diff --git a/amethyst/src/androidTest/java/com/vitorpamplona/amethyst/service/playback/composable/PlaybackErrorOverlayFitTest.kt b/amethyst/src/androidTest/java/com/vitorpamplona/amethyst/service/playback/composable/PlaybackErrorOverlayFitTest.kt index 6c2e86b123..dbf1d5720d 100644 --- a/amethyst/src/androidTest/java/com/vitorpamplona/amethyst/service/playback/composable/PlaybackErrorOverlayFitTest.kt +++ b/amethyst/src/androidTest/java/com/vitorpamplona/amethyst/service/playback/composable/PlaybackErrorOverlayFitTest.kt @@ -40,9 +40,14 @@ import androidx.media3.common.PlaybackException import androidx.media3.common.Player import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.platform.app.InstrumentationRegistry -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.error_video_open_in_browser +import com.vitorpamplona.amethyst.commons.resources.error_video_playback_failed +import com.vitorpamplona.amethyst.commons.resources.error_video_playback_failed_description +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.ui.stringRes import io.mockk.mockk +import kotlinx.coroutines.runBlocking import org.junit.Assert.assertTrue import org.junit.Rule import org.junit.Test @@ -107,7 +112,7 @@ class PlaybackErrorOverlayFitTest { private fun assertButtonUsable() { rule - .onNodeWithText(stringRes(targetContext, R.string.error_video_open_in_browser)) + .onNodeWithText(runBlocking { loadStringRes(Res.string.error_video_open_in_browser) }) .assertIsDisplayed() .assertHeightIsAtLeast(ButtonDefaults.MinHeight) } @@ -117,7 +122,7 @@ class PlaybackErrorOverlayFitTest { renderInBox(width = 322.dp, height = 181.dp) assertButtonUsable() rule - .onNodeWithText(stringRes(targetContext, R.string.error_video_playback_failed)) + .onNodeWithText(runBlocking { loadStringRes(Res.string.error_video_playback_failed) }) .assertIsDisplayed() } @@ -138,7 +143,7 @@ class PlaybackErrorOverlayFitTest { .onNodeWithText( stringRes( targetContext, - R.string.error_video_playback_failed_description, + Res.string.error_video_playback_failed_description, "ERROR_CODE_PARSING_MANIFEST_MALFORMED", ), ).assertDoesNotExist() @@ -225,7 +230,7 @@ class PlaybackErrorOverlayFitTest { private fun titleHeight(): Dp { val bounds = rule - .onNodeWithText(stringRes(targetContext, R.string.error_video_playback_failed)) + .onNodeWithText(runBlocking { loadStringRes(Res.string.error_video_playback_failed) }) .getUnclippedBoundsInRoot() return bounds.bottom - bounds.top } @@ -233,7 +238,7 @@ class PlaybackErrorOverlayFitTest { private fun buttonHeight(): Dp { val bounds = rule - .onNodeWithText(stringRes(targetContext, R.string.error_video_open_in_browser)) + .onNodeWithText(runBlocking { loadStringRes(Res.string.error_video_open_in_browser) }) .getUnclippedBoundsInRoot() return bounds.bottom - bounds.top } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/connectedApps/consent/SignerConnectActivity.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/connectedApps/consent/SignerConnectActivity.kt index d73156c2b1..68bb962348 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/connectedApps/consent/SignerConnectActivity.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/connectedApps/consent/SignerConnectActivity.kt @@ -57,7 +57,6 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.connectedApps.signers.AppConnectResult import com.vitorpamplona.amethyst.commons.connectedApps.signers.AppSignerPolicy import com.vitorpamplona.amethyst.commons.favorites.FavoriteApp @@ -66,6 +65,7 @@ import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.napplet_connect_block import com.vitorpamplona.amethyst.commons.resources.napplet_connect_button import com.vitorpamplona.amethyst.commons.resources.napplet_connect_how_handle @@ -272,7 +272,7 @@ private fun SignerConnectScreen( horizontalArrangement = Arrangement.spacedBy(12.dp), ) { OutlinedButton(onClick = onCancel, modifier = Modifier.weight(1f)) { - Text(stringResource(R.string.cancel)) + Text(stringResource(Res.string.cancel)) } Button(onClick = { onConnect(selected) }, modifier = Modifier.weight(1f)) { Text(stringRes(Res.string.napplet_connect_button)) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/connectedApps/consent/SignerConnectCoordinator.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/connectedApps/consent/SignerConnectCoordinator.kt index 43059fa570..670ae80131 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/connectedApps/consent/SignerConnectCoordinator.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/connectedApps/consent/SignerConnectCoordinator.kt @@ -22,8 +22,9 @@ package com.vitorpamplona.amethyst.connectedApps.consent import android.content.Context import android.content.Intent -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.connectedApps.signers.AppConnectResult +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_notif_connect_title import kotlinx.coroutines.CompletableDeferred import java.util.UUID import java.util.concurrent.ConcurrentHashMap @@ -88,7 +89,7 @@ object SignerConnectCoordinator { activityClass = SignerConnectActivity::class.java, extraKey = EXTRA_TOKEN, token = token, - titleRes = R.string.nip46_signer_notif_connect_title, + titleRes = Res.string.nip46_signer_notif_connect_title, ) return try { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/connectedApps/consent/SignerConsentActivity.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/connectedApps/consent/SignerConsentActivity.kt index 7c09dee9a3..35d1f7d0dc 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/connectedApps/consent/SignerConsentActivity.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/connectedApps/consent/SignerConsentActivity.kt @@ -69,7 +69,6 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.connectedApps.signers.SignerOpGrant import com.vitorpamplona.amethyst.commons.favorites.FavoriteApp import com.vitorpamplona.amethyst.commons.favorites.FavoriteAppIcon @@ -93,7 +92,10 @@ import com.vitorpamplona.amethyst.commons.resources.napplet_signer_deny_op import com.vitorpamplona.amethyst.commons.resources.nip46_signer_batch_allow import com.vitorpamplona.amethyst.commons.resources.nip46_signer_batch_deny import com.vitorpamplona.amethyst.commons.resources.nip46_signer_batch_remember +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_batch_select_all +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_batch_select_none import com.vitorpamplona.amethyst.commons.resources.nip46_signer_batch_signing_as +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_batch_title import com.vitorpamplona.amethyst.commons.resources.nip46_signer_messages_with import com.vitorpamplona.amethyst.service.call.CallSessionBridge import com.vitorpamplona.amethyst.ui.components.RobohashFallbackAsyncImage @@ -483,7 +485,7 @@ private fun BatchedConsentDialog( } Column(modifier = Modifier.weight(1f)) { Text( - pluralStringResource(R.plurals.nip46_signer_batch_title, pending.size, pending.size), + pluralStringResource(Res.plurals.nip46_signer_batch_title, pending.size, pending.size), style = MaterialTheme.typography.titleLarge, ) account.accountName?.let { name -> @@ -505,7 +507,7 @@ private fun BatchedConsentDialog( ) { Text( stringResource( - if (selected.size == pending.size) R.string.nip46_signer_batch_select_none else R.string.nip46_signer_batch_select_all, + if (selected.size == pending.size) Res.string.nip46_signer_batch_select_none else Res.string.nip46_signer_batch_select_all, ), style = MaterialTheme.typography.labelLarge, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/connectedApps/consent/SignerConsentCoordinator.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/connectedApps/consent/SignerConsentCoordinator.kt index ac3f5247fe..8a48dae072 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/connectedApps/consent/SignerConsentCoordinator.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/connectedApps/consent/SignerConsentCoordinator.kt @@ -22,9 +22,10 @@ package com.vitorpamplona.amethyst.connectedApps.consent import android.content.Context import android.content.Intent -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.connectedApps.signers.NostrSignerOp import com.vitorpamplona.amethyst.commons.connectedApps.signers.SignerOpGrant +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_notif_sign_title import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.signers.EventTemplate import kotlinx.coroutines.CompletableDeferred @@ -140,7 +141,7 @@ object SignerConsentCoordinator { activityClass = SignerConsentActivity::class.java, extraKey = EXTRA_TOKEN, token = "nip46-signer-consent", - titleRes = R.string.nip46_signer_notif_sign_title, + titleRes = Res.string.nip46_signer_notif_sign_title, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/connectedApps/consent/SignerConsentNotifier.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/connectedApps/consent/SignerConsentNotifier.kt index b76ca93b78..2490e419b9 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/connectedApps/consent/SignerConsentNotifier.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/connectedApps/consent/SignerConsentNotifier.kt @@ -28,7 +28,11 @@ import android.content.Intent import androidx.core.app.NotificationCompat import com.vitorpamplona.amethyst.Amethyst import com.vitorpamplona.amethyst.R -import com.vitorpamplona.amethyst.ui.stringRes +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_notif_channel_desc +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_notif_channel_name +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_notif_tap +import com.vitorpamplona.amethyst.commons.ui.loadStringRes /** * Surfaces a signer consent/connect [android.app.Activity] from the **background**. @@ -51,17 +55,17 @@ import com.vitorpamplona.amethyst.ui.stringRes object SignerConsentNotifier { private const val CHANNEL_ID = "com.vitorpamplona.amethyst.SIGNER_CONSENT_CHANNEL" - private fun ensureChannel(context: Context): NotificationChannel { + private suspend fun ensureChannel(context: Context): NotificationChannel { val manager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager manager.getNotificationChannel(CHANNEL_ID)?.let { return it } val channel = NotificationChannel( CHANNEL_ID, - stringRes(context, R.string.nip46_signer_notif_channel_name), + loadStringRes(Res.string.nip46_signer_notif_channel_name), NotificationManager.IMPORTANCE_HIGH, ).apply { - description = stringRes(context, R.string.nip46_signer_notif_channel_desc) + description = loadStringRes(Res.string.nip46_signer_notif_channel_desc) } manager.createNotificationChannel(channel) return channel @@ -72,7 +76,7 @@ object SignerConsentNotifier { * [activityClass] carrying [token]. Returns the notification id to pass to [cancel] once the * request resolves. */ - fun show( + suspend fun show( context: Context, activityClass: Class<*>, extraKey: String, @@ -104,8 +108,8 @@ object SignerConsentNotifier { NotificationCompat .Builder(context, channel.id) .setSmallIcon(R.drawable.amethyst) - .setContentTitle(stringRes(context, titleRes)) - .setContentText(stringRes(context, R.string.nip46_signer_notif_tap)) + .setContentTitle(loadStringRes(titleRes)) + .setContentText(loadStringRes(Res.string.nip46_signer_notif_tap)) .setContentIntent(pendingIntent) .setFullScreenIntent(pendingIntent, true) .setPriority(NotificationCompat.PRIORITY_HIGH) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/favorites/FavoriteAppLauncher.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/favorites/FavoriteAppLauncher.kt index 4d1d51c1ab..35ea5ec6ec 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/favorites/FavoriteAppLauncher.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/favorites/FavoriteAppLauncher.kt @@ -26,9 +26,10 @@ import android.content.res.Configuration import android.os.Bundle import android.widget.Toast import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.favorites.FavoriteApp import com.vitorpamplona.amethyst.commons.model.cache.LocalCache +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.favorite_app_still_loading import com.vitorpamplona.amethyst.model.ThemeType import com.vitorpamplona.amethyst.napplet.NappletLauncher import com.vitorpamplona.amethyst.napplet.NappletWebViewProfiles @@ -146,7 +147,7 @@ object FavoriteAppLauncher { ) else -> { Log.w("FavoriteAppLauncher") { "Favorited app not resolvable yet: $coordinate" } - Toast.makeText(context, R.string.favorite_app_still_loading, Toast.LENGTH_SHORT).show() + Toast.makeText(context, Res.string.favorite_app_still_loading, Toast.LENGTH_SHORT).show() } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/AccountZapActions.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/AccountZapActions.kt index 52a145f00c..157f5614ba 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/AccountZapActions.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/AccountZapActions.kt @@ -20,7 +20,6 @@ */ package com.vitorpamplona.amethyst.model -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.cache.LocalCache @@ -29,6 +28,9 @@ import com.vitorpamplona.amethyst.commons.onchain.OnchainZapSendResult import com.vitorpamplona.amethyst.commons.onchain.OnchainZapSendStage import com.vitorpamplona.amethyst.commons.onchain.OnchainZapSender import com.vitorpamplona.amethyst.commons.onchain.OnchainZapShare +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.bolt12_zap_invalid_receipt +import com.vitorpamplona.amethyst.commons.resources.bolt12_zap_paid_no_receipt import com.vitorpamplona.amethyst.model.nip47WalletConnect.NwcSignerState import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.core.HexKey @@ -250,27 +252,27 @@ class AccountZapActions( is PaySuccessResponse -> { val proof = response.result?.payer_proof if (proof.isNullOrBlank()) { - onError(R.string.bolt12_zap_paid_no_receipt, null) + onError(Res.string.bolt12_zap_paid_no_receipt, null) } else { val zap = Bolt12ZapBuilder.buildZap(zapSigner, intent, proof, anonymous) if (account.cache.bolt12ZapValidator.validate(zap, verifyEventSignature = false) is Bolt12ZapValidation.Valid) { account.cache.justConsumeMyOwnEvent(zap) account.client.publish(zap, account.broadcaster.computeRelayListToBroadcast(zap)) } else { - onError(R.string.bolt12_zap_invalid_receipt, null) + onError(Res.string.bolt12_zap_invalid_receipt, null) } } } is IErrorResponseLike -> onNotPaid(response.nwcErrorCode(), response.errorMessage()) - else -> onError(R.string.bolt12_zap_paid_no_receipt, null) + else -> onError(Res.string.bolt12_zap_paid_no_receipt, null) } } catch (e: CancellationException) { throw e } catch (e: Exception) { Log.w("Account", "BOLT12 zap receipt assembly failed after payment", e) - onError(R.string.bolt12_zap_paid_no_receipt, null) + onError(Res.string.bolt12_zap_paid_no_receipt, null) } finally { onProcessed() } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/UiSettings.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/UiSettings.kt index c8998243e1..fe5c388ce2 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/UiSettings.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/UiSettings.kt @@ -21,7 +21,35 @@ package com.vitorpamplona.amethyst.model import androidx.compose.runtime.Stable -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.accent_color_blue +import com.vitorpamplona.amethyst.commons.resources.accent_color_green +import com.vitorpamplona.amethyst.commons.resources.accent_color_orange +import com.vitorpamplona.amethyst.commons.resources.accent_color_pink +import com.vitorpamplona.amethyst.commons.resources.accent_color_purple +import com.vitorpamplona.amethyst.commons.resources.accent_color_red +import com.vitorpamplona.amethyst.commons.resources.connectivity_type_always +import com.vitorpamplona.amethyst.commons.resources.connectivity_type_never +import com.vitorpamplona.amethyst.commons.resources.connectivity_type_unmetered_wifi_only +import com.vitorpamplona.amethyst.commons.resources.content_warning_hide_all_sensitive_content_option +import com.vitorpamplona.amethyst.commons.resources.content_warning_see_warnings_option +import com.vitorpamplona.amethyst.commons.resources.content_warning_show_all_sensitive_content_option +import com.vitorpamplona.amethyst.commons.resources.dark +import com.vitorpamplona.amethyst.commons.resources.font_family_monospace +import com.vitorpamplona.amethyst.commons.resources.font_family_sans_serif +import com.vitorpamplona.amethyst.commons.resources.font_family_serif +import com.vitorpamplona.amethyst.commons.resources.font_family_system +import com.vitorpamplona.amethyst.commons.resources.font_size_huge +import com.vitorpamplona.amethyst.commons.resources.font_size_large +import com.vitorpamplona.amethyst.commons.resources.font_size_normal +import com.vitorpamplona.amethyst.commons.resources.font_size_small +import com.vitorpamplona.amethyst.commons.resources.gallery_type_classic +import com.vitorpamplona.amethyst.commons.resources.gallery_type_modern +import com.vitorpamplona.amethyst.commons.resources.light +import com.vitorpamplona.amethyst.commons.resources.system +import com.vitorpamplona.amethyst.commons.resources.ui_feature_set_type_complete +import com.vitorpamplona.amethyst.commons.resources.ui_feature_set_type_performance +import com.vitorpamplona.amethyst.commons.resources.ui_feature_set_type_simplified import kotlinx.serialization.Serializable @Stable @@ -71,9 +99,9 @@ enum class ThemeType( val screenCode: Int, val resourceId: Int, ) { - SYSTEM(0, R.string.system), - LIGHT(1, R.string.light), - DARK(2, R.string.dark), + SYSTEM(0, Res.string.system), + LIGHT(1, Res.string.light), + DARK(2, Res.string.dark), } fun parseThemeType(code: Int?): ThemeType = @@ -88,12 +116,12 @@ enum class AccentColorType( val screenCode: Int, val resourceId: Int, ) { - PURPLE(0, R.string.accent_color_purple), - BLUE(1, R.string.accent_color_blue), - GREEN(2, R.string.accent_color_green), - ORANGE(3, R.string.accent_color_orange), - RED(4, R.string.accent_color_red), - PINK(5, R.string.accent_color_pink), + PURPLE(0, Res.string.accent_color_purple), + BLUE(1, Res.string.accent_color_blue), + GREEN(2, Res.string.accent_color_green), + ORANGE(3, Res.string.accent_color_orange), + RED(4, Res.string.accent_color_red), + PINK(5, Res.string.accent_color_pink), } fun parseAccentColorType(screenCode: Int): AccentColorType = @@ -111,10 +139,10 @@ enum class FontFamilyType( val screenCode: Int, val resourceId: Int, ) { - SYSTEM(0, R.string.font_family_system), - SANS_SERIF(1, R.string.font_family_sans_serif), - SERIF(2, R.string.font_family_serif), - MONOSPACE(3, R.string.font_family_monospace), + SYSTEM(0, Res.string.font_family_system), + SANS_SERIF(1, Res.string.font_family_sans_serif), + SERIF(2, Res.string.font_family_serif), + MONOSPACE(3, Res.string.font_family_monospace), } fun parseFontFamilyType(screenCode: Int): FontFamilyType = @@ -131,10 +159,10 @@ enum class FontSizeType( val screenCode: Int, val resourceId: Int, ) { - SMALL(0.85f, 0, R.string.font_size_small), - NORMAL(1.0f, 1, R.string.font_size_normal), - LARGE(1.15f, 2, R.string.font_size_large), - HUGE(1.3f, 3, R.string.font_size_huge), + SMALL(0.85f, 0, Res.string.font_size_small), + NORMAL(1.0f, 1, Res.string.font_size_normal), + LARGE(1.15f, 2, Res.string.font_size_large), + HUGE(1.3f, 3, Res.string.font_size_huge), } fun parseFontSizeType(screenCode: Int): FontSizeType = @@ -151,26 +179,26 @@ enum class ConnectivityType( val screenCode: Int, val resourceId: Int, ) { - ALWAYS(null, 0, R.string.connectivity_type_always), - WIFI_ONLY(true, 1, R.string.connectivity_type_unmetered_wifi_only), - NEVER(false, 2, R.string.connectivity_type_never), + ALWAYS(null, 0, Res.string.connectivity_type_always), + WIFI_ONLY(true, 1, Res.string.connectivity_type_unmetered_wifi_only), + NEVER(false, 2, Res.string.connectivity_type_never), } enum class FeatureSetType( val screenCode: Int, val resourceId: Int, ) { - COMPLETE(0, R.string.ui_feature_set_type_complete), - SIMPLIFIED(1, R.string.ui_feature_set_type_simplified), - PERFORMANCE(2, R.string.ui_feature_set_type_performance), + COMPLETE(0, Res.string.ui_feature_set_type_complete), + SIMPLIFIED(1, Res.string.ui_feature_set_type_simplified), + PERFORMANCE(2, Res.string.ui_feature_set_type_performance), } enum class ProfileGalleryType( val screenCode: Int, val resourceId: Int, ) { - CLASSIC(0, R.string.gallery_type_classic), - MODERN(1, R.string.gallery_type_modern), + CLASSIC(0, Res.string.gallery_type_classic), + MODERN(1, Res.string.gallery_type_modern), } fun parseConnectivityType(code: Boolean?): ConnectivityType = @@ -209,8 +237,8 @@ enum class BooleanType( val screenCode: Int, val reourceId: Int, ) { - ALWAYS(null, 0, R.string.connectivity_type_always), - NEVER(false, 1, R.string.connectivity_type_never), + ALWAYS(null, 0, Res.string.connectivity_type_always), + NEVER(false, 1, Res.string.connectivity_type_never), } fun parseBooleanType(code: Boolean?): BooleanType = @@ -232,9 +260,9 @@ enum class WarningType( val screenCode: Int, val resourceId: Int, ) { - WARN(null, 0, R.string.content_warning_see_warnings_option), - SHOW(true, 1, R.string.content_warning_show_all_sensitive_content_option), - HIDE(false, 2, R.string.content_warning_hide_all_sensitive_content_option), + WARN(null, 0, Res.string.content_warning_see_warnings_option), + SHOW(true, 1, Res.string.content_warning_show_all_sensitive_content_option), + HIDE(false, 2, Res.string.content_warning_hide_all_sensitive_content_option), } fun parseWarningType(screenCode: Int): WarningType = diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/nip46Signer/Nip46ConsentBridge.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/nip46Signer/Nip46ConsentBridge.kt index b7219ff892..845493f695 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/nip46Signer/Nip46ConsentBridge.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/nip46Signer/Nip46ConsentBridge.kt @@ -21,12 +21,15 @@ package com.vitorpamplona.amethyst.model.nip46Signer import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.connectedApps.nip46.Nip46PermissionAuthorizer import com.vitorpamplona.amethyst.commons.connectedApps.signers.AppConnectResult import com.vitorpamplona.amethyst.commons.connectedApps.signers.NostrSignerOp import com.vitorpamplona.amethyst.commons.connectedApps.signers.SignerOpGrant import com.vitorpamplona.amethyst.commons.model.cache.LocalCache +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_allow_always_for +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_decrypt_failed +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_remote_app import com.vitorpamplona.amethyst.connectedApps.consent.SignerConnectCoordinator import com.vitorpamplona.amethyst.connectedApps.consent.SignerConnectInfo import com.vitorpamplona.amethyst.connectedApps.consent.SignerConsentCoordinator @@ -65,7 +68,7 @@ object Nip46ConsentBridge { ): AppConnectResult { val context = Amethyst.instance.appContext val meta = request.clientMetadata - val title = meta?.name?.ifBlank { null } ?: context.getString(R.string.nip46_signer_remote_app) + val title = meta?.name?.ifBlank { null } ?: context.getString(Res.string.nip46_signer_remote_app) val domain = meta?.url?.ifBlank { null } ?: (clientPubKey.take(12) + "…") // The identity being connected to lives in the coordinate; show it as an avatar + name. val face = accountFace(coordinate) @@ -100,7 +103,7 @@ object Nip46ConsentBridge { requestedOps: List, ): AppConnectResult { val context = Amethyst.instance.appContext - val title = name?.ifBlank { null } ?: context.getString(R.string.nip46_signer_remote_app) + val title = name?.ifBlank { null } ?: context.getString(Res.string.nip46_signer_remote_app) val domain = url?.ifBlank { null } ?: (Nip46PermissionAuthorizer.clientPubKeyOf(coordinate)?.take(12)?.plus("…") ?: "") val face = accountFace(coordinate) val info = @@ -138,7 +141,7 @@ object Nip46ConsentBridge { ): SignerOpGrant { val context = Amethyst.instance.appContext val info = runCatching { Amethyst.instance.nip46ClientStore.load(coordinate) }.getOrNull() - val title = info?.name?.ifBlank { null } ?: context.getString(R.string.nip46_signer_remote_app) + val title = info?.name?.ifBlank { null } ?: context.getString(Res.string.nip46_signer_remote_app) val consentInfo = Nip46ConsentInfoBuilder.build( @@ -152,8 +155,8 @@ object Nip46ConsentBridge { strings = Nip46ConsentStrings( opLabel = { it.label(context) }, - allowAlwaysFor = { context.getString(R.string.nip46_signer_allow_always_for, it) }, - decryptFailed = context.getString(R.string.nip46_signer_decrypt_failed), + allowAlwaysFor = { context.getString(Res.string.nip46_signer_allow_always_for, it) }, + decryptFailed = context.getString(Res.string.nip46_signer_decrypt_failed), ), decrypt = { decryptWithAccountSigner(signer, it) }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/napplet/NappletCapabilityLabels.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/napplet/NappletCapabilityLabels.kt index 5e988ce809..ed1c821410 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/napplet/NappletCapabilityLabels.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/napplet/NappletCapabilityLabels.kt @@ -21,39 +21,61 @@ package com.vitorpamplona.amethyst.napplet import androidx.annotation.StringRes -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.napplet.NappletCapability +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.napplet_cap_identity +import com.vitorpamplona.amethyst.commons.resources.napplet_cap_identity_desc +import com.vitorpamplona.amethyst.commons.resources.napplet_cap_inc +import com.vitorpamplona.amethyst.commons.resources.napplet_cap_inc_desc +import com.vitorpamplona.amethyst.commons.resources.napplet_cap_keys +import com.vitorpamplona.amethyst.commons.resources.napplet_cap_keys_desc +import com.vitorpamplona.amethyst.commons.resources.napplet_cap_notify +import com.vitorpamplona.amethyst.commons.resources.napplet_cap_notify_desc +import com.vitorpamplona.amethyst.commons.resources.napplet_cap_relay +import com.vitorpamplona.amethyst.commons.resources.napplet_cap_relay_desc +import com.vitorpamplona.amethyst.commons.resources.napplet_cap_resource +import com.vitorpamplona.amethyst.commons.resources.napplet_cap_resource_desc +import com.vitorpamplona.amethyst.commons.resources.napplet_cap_signer +import com.vitorpamplona.amethyst.commons.resources.napplet_cap_signer_desc +import com.vitorpamplona.amethyst.commons.resources.napplet_cap_storage +import com.vitorpamplona.amethyst.commons.resources.napplet_cap_storage_desc +import com.vitorpamplona.amethyst.commons.resources.napplet_cap_theme +import com.vitorpamplona.amethyst.commons.resources.napplet_cap_theme_desc +import com.vitorpamplona.amethyst.commons.resources.napplet_cap_upload +import com.vitorpamplona.amethyst.commons.resources.napplet_cap_upload_desc +import com.vitorpamplona.amethyst.commons.resources.napplet_cap_value +import com.vitorpamplona.amethyst.commons.resources.napplet_cap_value_desc /** Localized display name for a capability, shared by the consent dialog and the permissions screen. */ @StringRes fun NappletCapability.labelRes(): Int = when (this) { - NappletCapability.IDENTITY -> R.string.napplet_cap_identity - NappletCapability.KEYS -> R.string.napplet_cap_keys - NappletCapability.RELAY -> R.string.napplet_cap_relay - NappletCapability.SIGNER -> R.string.napplet_cap_signer - NappletCapability.STORAGE -> R.string.napplet_cap_storage - NappletCapability.VALUE -> R.string.napplet_cap_value - NappletCapability.RESOURCE -> R.string.napplet_cap_resource - NappletCapability.UPLOAD -> R.string.napplet_cap_upload - NappletCapability.THEME -> R.string.napplet_cap_theme - NappletCapability.NOTIFY -> R.string.napplet_cap_notify - NappletCapability.INC -> R.string.napplet_cap_inc + NappletCapability.IDENTITY -> Res.string.napplet_cap_identity + NappletCapability.KEYS -> Res.string.napplet_cap_keys + NappletCapability.RELAY -> Res.string.napplet_cap_relay + NappletCapability.SIGNER -> Res.string.napplet_cap_signer + NappletCapability.STORAGE -> Res.string.napplet_cap_storage + NappletCapability.VALUE -> Res.string.napplet_cap_value + NappletCapability.RESOURCE -> Res.string.napplet_cap_resource + NappletCapability.UPLOAD -> Res.string.napplet_cap_upload + NappletCapability.THEME -> Res.string.napplet_cap_theme + NappletCapability.NOTIFY -> Res.string.napplet_cap_notify + NappletCapability.INC -> Res.string.napplet_cap_inc } /** Localized one-line description of what a capability lets a napplet do. */ @StringRes fun NappletCapability.descriptionRes(): Int = when (this) { - NappletCapability.IDENTITY -> R.string.napplet_cap_identity_desc - NappletCapability.KEYS -> R.string.napplet_cap_keys_desc - NappletCapability.RELAY -> R.string.napplet_cap_relay_desc - NappletCapability.SIGNER -> R.string.napplet_cap_signer_desc - NappletCapability.STORAGE -> R.string.napplet_cap_storage_desc - NappletCapability.VALUE -> R.string.napplet_cap_value_desc - NappletCapability.RESOURCE -> R.string.napplet_cap_resource_desc - NappletCapability.UPLOAD -> R.string.napplet_cap_upload_desc - NappletCapability.THEME -> R.string.napplet_cap_theme_desc - NappletCapability.NOTIFY -> R.string.napplet_cap_notify_desc - NappletCapability.INC -> R.string.napplet_cap_inc_desc + NappletCapability.IDENTITY -> Res.string.napplet_cap_identity_desc + NappletCapability.KEYS -> Res.string.napplet_cap_keys_desc + NappletCapability.RELAY -> Res.string.napplet_cap_relay_desc + NappletCapability.SIGNER -> Res.string.napplet_cap_signer_desc + NappletCapability.STORAGE -> Res.string.napplet_cap_storage_desc + NappletCapability.VALUE -> Res.string.napplet_cap_value_desc + NappletCapability.RESOURCE -> Res.string.napplet_cap_resource_desc + NappletCapability.UPLOAD -> Res.string.napplet_cap_upload_desc + NappletCapability.THEME -> Res.string.napplet_cap_theme_desc + NappletCapability.NOTIFY -> Res.string.napplet_cap_notify_desc + NappletCapability.INC -> Res.string.napplet_cap_inc_desc } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/napplet/NappletConsentSummary.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/napplet/NappletConsentSummary.kt index 6b520ba30a..3dab2296f7 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/napplet/NappletConsentSummary.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/napplet/NappletConsentSummary.kt @@ -21,22 +21,56 @@ package com.vitorpamplona.amethyst.napplet import android.content.Context -import androidx.annotation.PluralsRes -import androidx.annotation.StringRes -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.browser.OmniboxInput import com.vitorpamplona.amethyst.commons.napplet.NappletCapability import com.vitorpamplona.amethyst.commons.napplet.NappletIdentity import com.vitorpamplona.amethyst.commons.napplet.protocol.NappletRequest +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_diff_follow_added +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_diff_follow_one +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_diff_follow_removed +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_diff_follows +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_diff_joiner +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_diff_mute_added +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_diff_mute_one +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_diff_mute_removed +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_diff_mutes +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_diff_no_baseline +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_diff_none +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_diff_relay_added +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_diff_relay_removed +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_diff_relays +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_diff_unfollow_one +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_diff_unmute_one +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_effect_deletes +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_effect_tags +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_get_pubkey +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_identity_read +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_nip44_decrypt +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_nip44_encrypt +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_notify +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_pay_amount +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_pay_no_amount +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_publish +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_publish_encrypted +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_publish_preview +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_query +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_resource +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_sign +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_storage +import com.vitorpamplona.amethyst.commons.resources.napplet_consent_upload +import com.vitorpamplona.amethyst.commons.resources.napplet_fallback_title +import com.vitorpamplona.amethyst.commons.ui.loadPluralStringRes import com.vitorpamplona.amethyst.favorites.BrowserIconRegistry import com.vitorpamplona.amethyst.model.Account -import com.vitorpamplona.amethyst.ui.pluralStringRes import com.vitorpamplona.quartz.lightning.LnInvoiceUtil import com.vitorpamplona.quartz.nip01Core.core.fastForEach import com.vitorpamplona.quartz.nip02FollowList.ContactListEvent import com.vitorpamplona.quartz.nip09Deletions.DeletionEvent import com.vitorpamplona.quartz.nip51Lists.muteList.MuteListEvent import com.vitorpamplona.quartz.nip65RelayList.AdvertisedRelayListEvent +import org.jetbrains.compose.resources.PluralStringResource +import org.jetbrains.compose.resources.StringResource /** * Turns a pending [NappletRequest] into the human-readable [NappletConsentInfo] the consent dialog @@ -56,7 +90,7 @@ class NappletConsentSummary( capability: NappletCapability, request: NappletRequest, ): NappletConsentInfo { - val untitled = context.getString(R.string.napplet_fallback_title, identity.authorPubKey.take(8)) + val untitled = context.getString(Res.string.napplet_fallback_title, identity.authorPubKey.take(8)) val (title, iconUrl) = if (identity.authorPubKey == "browser") { val host = OmniboxInput.hostOf(identity.identifier) ?: identity.identifier @@ -135,20 +169,20 @@ class NappletConsentSummary( current = account.kind3FollowList.getFollowListEvent()?.tags, proposed = tags, tagName = "p", - template = R.string.napplet_consent_diff_follows, - added = R.plurals.napplet_consent_diff_follow_added, - removed = R.plurals.napplet_consent_diff_follow_removed, - oneAdded = R.string.napplet_consent_diff_follow_one, - oneRemoved = R.string.napplet_consent_diff_unfollow_one, + template = Res.string.napplet_consent_diff_follows, + added = Res.plurals.napplet_consent_diff_follow_added, + removed = Res.plurals.napplet_consent_diff_follow_removed, + oneAdded = Res.string.napplet_consent_diff_follow_one, + oneRemoved = Res.string.napplet_consent_diff_unfollow_one, ) AdvertisedRelayListEvent.KIND -> diffOf( current = account.nip65RelayList.getNIP65RelayList()?.tags, proposed = tags, tagName = "r", - template = R.string.napplet_consent_diff_relays, - added = R.plurals.napplet_consent_diff_relay_added, - removed = R.plurals.napplet_consent_diff_relay_removed, + template = Res.string.napplet_consent_diff_relays, + added = Res.plurals.napplet_consent_diff_relay_added, + removed = Res.plurals.napplet_consent_diff_relay_removed, ) // Public entries only: a mute list also carries encrypted ones, which are not in `tags` // and so cannot be diffed here. @@ -157,21 +191,21 @@ class NappletConsentSummary( current = account.muteList.getMuteList()?.tags, proposed = tags, tagName = "p", - template = R.string.napplet_consent_diff_mutes, - added = R.plurals.napplet_consent_diff_mute_added, - removed = R.plurals.napplet_consent_diff_mute_removed, - oneAdded = R.string.napplet_consent_diff_mute_one, - oneRemoved = R.string.napplet_consent_diff_unmute_one, + template = Res.string.napplet_consent_diff_mutes, + added = Res.plurals.napplet_consent_diff_mute_added, + removed = Res.plurals.napplet_consent_diff_mute_removed, + oneAdded = Res.string.napplet_consent_diff_mute_one, + oneRemoved = Res.string.napplet_consent_diff_unmute_one, ) // Deletions have no prior version to compare against — the tags are the whole request. DeletionEvent.KIND -> - pluralFor(R.plurals.napplet_consent_effect_deletes, countTag(tags, "e") + countTag(tags, "a")) + pluralFor(Res.plurals.napplet_consent_effect_deletes, countTag(tags, "e") + countTag(tags, "a")) ?.let { Consequence(it) } // Any other kind: at least tell the user tags exist and can be inspected, so an empty // content preview never reads as "there is nothing else here". else -> if (tags.isNotEmpty()) { - pluralFor(R.plurals.napplet_consent_effect_tags, tags.size)?.let { Consequence(it) } + pluralFor(Res.plurals.napplet_consent_effect_tags, tags.size)?.let { Consequence(it) } } else { null } @@ -183,25 +217,25 @@ class NappletConsentSummary( * that silently drops 130 follows, and only a diff surfaces that. Falls back to the total when * nothing is cached to compare against. */ - private fun diffOf( + private suspend fun diffOf( current: Array>?, proposed: Array>, tagName: String, - @StringRes template: Int, - @PluralsRes added: Int, - @PluralsRes removed: Int, - @StringRes oneAdded: Int? = null, - @StringRes oneRemoved: Int? = null, + template: StringResource, + added: PluralStringResource, + removed: PluralStringResource, + oneAdded: StringResource? = null, + oneRemoved: StringResource? = null, ): Consequence { val next = valuesOf(proposed, tagName) val previous = current?.let { valuesOf(it, tagName) } - ?: return Consequence(pluralStringRes(context, R.plurals.napplet_consent_diff_no_baseline, next.size, next.size)) + ?: return Consequence(loadPluralStringRes(Res.plurals.napplet_consent_diff_no_baseline, next.size, next.size)) val addedKeys = next.filter { it !in previous } val removedKeys = previous.filter { it !in next } if (addedKeys.isEmpty() && removedKeys.isEmpty()) { - return Consequence(context.getString(R.string.napplet_consent_diff_none)) + return Consequence(context.getString(Res.string.napplet_consent_diff_none)) } // The overwhelmingly common edit is a single follow/unfollow. Naming and picturing that one @@ -217,7 +251,7 @@ class NappletConsentSummary( val parts = listOfNotNull(pluralFor(added, addedKeys.size), pluralFor(removed, removedKeys.size)) val summary = if (parts.size == 2) { - context.getString(R.string.napplet_consent_diff_joiner, parts[0], parts[1]) + context.getString(Res.string.napplet_consent_diff_joiner, parts[0], parts[1]) } else { parts.first() } @@ -244,67 +278,67 @@ class NappletConsentSummary( return out } - private fun pluralFor( + private suspend fun pluralFor( resId: Int, count: Int, - ): String? = if (count <= 0) null else pluralStringRes(context, resId, count, count) + ): String? = if (count <= 0) null else loadPluralStringRes(resId, count, count) private fun countTag( tags: Array>, name: String, ): Int = tags.count { it.isNotEmpty() && it[0] == name } - private fun summaryFor(request: NappletRequest): String = + private suspend fun summaryFor(request: NappletRequest): String = when (request) { - is NappletRequest.GetPublicKey -> context.getString(R.string.napplet_consent_get_pubkey) - is NappletRequest.IdentityRead -> context.getString(R.string.napplet_consent_identity_read) + is NappletRequest.GetPublicKey -> context.getString(Res.string.napplet_consent_get_pubkey) + is NappletRequest.IdentityRead -> context.getString(Res.string.napplet_consent_identity_read) is NappletRequest.Publish -> { val preview = request.content.take(160).trim() if (preview.isEmpty()) { - context.getString(R.string.napplet_consent_publish, request.kind) + context.getString(Res.string.napplet_consent_publish, request.kind) } else { - context.getString(R.string.napplet_consent_publish_preview, request.kind) + "\n“$preview”" + context.getString(Res.string.napplet_consent_publish_preview, request.kind) + "\n“$preview”" } } is NappletRequest.SignEvent -> { val preview = request.content.take(160).trim() if (preview.isEmpty()) { - context.getString(R.string.napplet_consent_sign, request.kind) + context.getString(Res.string.napplet_consent_sign, request.kind) } else { - context.getString(R.string.napplet_consent_sign, request.kind) + "\n“$preview”" + context.getString(Res.string.napplet_consent_sign, request.kind) + "\n“$preview”" } } - is NappletRequest.PublishEncrypted -> context.getString(R.string.napplet_consent_publish_encrypted) + is NappletRequest.PublishEncrypted -> context.getString(Res.string.napplet_consent_publish_encrypted) is NappletRequest.Nip44Encrypt -> { val preview = request.plaintext.take(160).trim() - val summary = context.getString(R.string.napplet_consent_nip44_encrypt, counterpartyLabel(request.peer)) + val summary = context.getString(Res.string.napplet_consent_nip44_encrypt, counterpartyLabel(request.peer)) if (preview.isEmpty()) summary else summary + "\n\u201C$preview\u201D" } // The ciphertext is meaningless to show, so name the counterparty instead — that is // the decision the user is actually making ("let this page read messages from X"). - is NappletRequest.Nip44Decrypt -> context.getString(R.string.napplet_consent_nip44_decrypt, counterpartyLabel(request.peer)) - is NappletRequest.QueryEvents, is NappletRequest.Subscribe -> context.getString(R.string.napplet_consent_query) + is NappletRequest.Nip44Decrypt -> context.getString(Res.string.napplet_consent_nip44_decrypt, counterpartyLabel(request.peer)) + is NappletRequest.QueryEvents, is NappletRequest.Subscribe -> context.getString(Res.string.napplet_consent_query) is NappletRequest.StorageGet, is NappletRequest.StorageSet, is NappletRequest.StorageRemove, is NappletRequest.StorageKeys -> - context.getString(R.string.napplet_consent_storage) + context.getString(Res.string.napplet_consent_storage) is NappletRequest.NotifyCreate -> { val preview = request.title.take(80).trim() - if (preview.isEmpty()) context.getString(R.string.napplet_consent_notify) else context.getString(R.string.napplet_consent_notify) + "\n“$preview”" + if (preview.isEmpty()) context.getString(Res.string.napplet_consent_notify) else context.getString(Res.string.napplet_consent_notify) + "\n“$preview”" } - is NappletRequest.NotifyList, is NappletRequest.NotifyDismiss -> context.getString(R.string.napplet_consent_notify) + is NappletRequest.NotifyList, is NappletRequest.NotifyDismiss -> context.getString(Res.string.napplet_consent_notify) is NappletRequest.PayInvoice -> { // getAmountInSats returns ZERO (not null, not a throw) for an amountless BOLT11, so a // naive read renders "pay 0 sats" — telling the user a payment is free when the amount // is in fact unspecified and decided by the payee. Treat non-positive as "no amount". val sats = runCatching { LnInvoiceUtil.getAmountInSats(request.invoice).toLong() }.getOrNull() if (sats != null && sats > 0) { - pluralStringRes(context, R.plurals.napplet_consent_pay_amount, sats.toInt(), sats) + loadPluralStringRes(Res.plurals.napplet_consent_pay_amount, sats.toInt(), sats) } else { - context.getString(R.string.napplet_consent_pay_no_amount) + context.getString(Res.string.napplet_consent_pay_no_amount) } } NappletRequest.ResourceInfo, is NappletRequest.ResourceBytes, is NappletRequest.ResourceBytesMany -> - context.getString(R.string.napplet_consent_resource) - is NappletRequest.UploadBlob -> context.getString(R.string.napplet_consent_upload) + context.getString(Res.string.napplet_consent_resource) + is NappletRequest.UploadBlob -> context.getString(Res.string.napplet_consent_upload) // Resolved in the broker before consent (negotiation / shell-mediated / cosmetic); never shown. is NappletRequest.RegisterAction, is NappletRequest.UnregisterAction, is NappletRequest.ThemeGet -> "" } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/napplet/NostrSignerOpLabels.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/napplet/NostrSignerOpLabels.kt index 15527dc5c7..8db738a5c1 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/napplet/NostrSignerOpLabels.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/napplet/NostrSignerOpLabels.kt @@ -21,7 +21,6 @@ package com.vitorpamplona.amethyst.napplet import android.content.Context -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.browser.OmniboxInput import com.vitorpamplona.amethyst.commons.connectedApps.signers.NostrSignerOp import com.vitorpamplona.amethyst.commons.model.cache.LocalCache @@ -30,6 +29,13 @@ import com.vitorpamplona.amethyst.commons.napplet.NappletIdentity import com.vitorpamplona.amethyst.commons.napplet.protocol.NappletRequest import com.vitorpamplona.amethyst.commons.napplet.protocol.counterpartyPubKey import com.vitorpamplona.amethyst.commons.napplet.protocol.toNarrowSignerOp +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.napplet_fallback_title +import com.vitorpamplona.amethyst.commons.resources.napplet_op_decrypt +import com.vitorpamplona.amethyst.commons.resources.napplet_op_decrypt_from +import com.vitorpamplona.amethyst.commons.resources.napplet_op_encrypt +import com.vitorpamplona.amethyst.commons.resources.napplet_op_sign_kind_named +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_allow_always_for import com.vitorpamplona.amethyst.connectedApps.consent.SignerConnectInfo import com.vitorpamplona.amethyst.connectedApps.consent.SignerConsentInfo import com.vitorpamplona.amethyst.favorites.BrowserIconRegistry @@ -44,10 +50,10 @@ import com.vitorpamplona.quartz.utils.TimeUtils /** Human-readable label for a [NostrSignerOp]. */ fun NostrSignerOp.label(context: Context): String = when (this) { - is NostrSignerOp.SignKind -> context.getString(R.string.napplet_op_sign_kind_named, kindNameFor(context, kind), kind) - NostrSignerOp.Encrypt -> context.getString(R.string.napplet_op_encrypt) - NostrSignerOp.Decrypt -> context.getString(R.string.napplet_op_decrypt) - is NostrSignerOp.DecryptFrom -> context.getString(R.string.napplet_op_decrypt_from, counterpartyLabel(counterparty)) + is NostrSignerOp.SignKind -> context.getString(Res.string.napplet_op_sign_kind_named, kindNameFor(context, kind), kind) + NostrSignerOp.Encrypt -> context.getString(Res.string.napplet_op_encrypt) + NostrSignerOp.Decrypt -> context.getString(Res.string.napplet_op_decrypt) + is NostrSignerOp.DecryptFrom -> context.getString(Res.string.napplet_op_decrypt_from, counterpartyLabel(counterparty)) } /** @@ -72,7 +78,7 @@ fun buildSignerConsentInfo( op: NostrSignerOp, request: NappletRequest, ): SignerConsentInfo { - val untitled = context.getString(R.string.napplet_fallback_title, identity.authorPubKey.take(8)) + val untitled = context.getString(Res.string.napplet_fallback_title, identity.authorPubKey.take(8)) val (title, iconUrl) = if (identity.authorPubKey == "browser") { val host = OmniboxInput.hostOf(identity.identifier) ?: identity.identifier @@ -156,7 +162,7 @@ fun buildSignerConsentInfo( // are present, so deriving them from one value keeps them from disagreeing. narrowOpLabel = (narrowOp as? NostrSignerOp.DecryptFrom)?.let { - context.getString(R.string.nip46_signer_allow_always_for, counterpartyLabel(it.counterparty)) + context.getString(Res.string.nip46_signer_allow_always_for, counterpartyLabel(it.counterparty)) }, ) } @@ -172,7 +178,7 @@ fun buildConnectInfo( identity: NappletIdentity, declared: Set = emptySet(), ): SignerConnectInfo { - val untitled = context.getString(R.string.napplet_fallback_title, identity.authorPubKey.take(8)) + val untitled = context.getString(Res.string.napplet_fallback_title, identity.authorPubKey.take(8)) val (title, iconUrl) = if (identity.authorPubKey == "browser") { val host = OmniboxInput.hostOf(identity.identifier) ?: identity.identifier diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/napplet/gateways/AccountNappletGateways.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/napplet/gateways/AccountNappletGateways.kt index 97841d1acb..27b3ad4db9 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/napplet/gateways/AccountNappletGateways.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/napplet/gateways/AccountNappletGateways.kt @@ -46,6 +46,8 @@ import com.vitorpamplona.amethyst.commons.napplet.NappletUploadGateway import com.vitorpamplona.amethyst.commons.napplet.NappletUploadResult import com.vitorpamplona.amethyst.commons.napplet.NappletWalletGateway import com.vitorpamplona.amethyst.commons.napplet.permissions.NappletPermissionLedger +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.napplet_cap_notify import com.vitorpamplona.amethyst.connectedApps.consent.SignerConnectCoordinator import com.vitorpamplona.amethyst.connectedApps.consent.SignerConsentCoordinator import com.vitorpamplona.amethyst.model.Account @@ -179,14 +181,14 @@ class AccountNappletGateways( val channel = NotificationChannelCompat .Builder(NOTIFY_CHANNEL_ID, NotificationManagerCompat.IMPORTANCE_DEFAULT) - .setName(context.getString(R.string.napplet_cap_notify)) + .setName(context.getString(Res.string.napplet_cap_notify)) .build() manager.createNotificationChannel(channel) val notification = NotificationCompat .Builder(context, NOTIFY_CHANNEL_ID) .setSmallIcon(R.drawable.amethyst) - .setContentTitle(title.ifBlank { context.getString(R.string.napplet_cap_notify) }) + .setContentTitle(title.ifBlank { context.getString(Res.string.napplet_cap_notify) }) .setContentText(body) .setAutoCancel(true) .build() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/HttpStatusMessages.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/HttpStatusMessages.kt index 76b1c4f48f..bf0948cd56 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/HttpStatusMessages.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/HttpStatusMessages.kt @@ -20,41 +20,70 @@ */ package com.vitorpamplona.amethyst.service -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.http_status_400 +import com.vitorpamplona.amethyst.commons.resources.http_status_401 +import com.vitorpamplona.amethyst.commons.resources.http_status_402 +import com.vitorpamplona.amethyst.commons.resources.http_status_403 +import com.vitorpamplona.amethyst.commons.resources.http_status_404 +import com.vitorpamplona.amethyst.commons.resources.http_status_405 +import com.vitorpamplona.amethyst.commons.resources.http_status_406 +import com.vitorpamplona.amethyst.commons.resources.http_status_407 +import com.vitorpamplona.amethyst.commons.resources.http_status_408 +import com.vitorpamplona.amethyst.commons.resources.http_status_409 +import com.vitorpamplona.amethyst.commons.resources.http_status_410 +import com.vitorpamplona.amethyst.commons.resources.http_status_411 +import com.vitorpamplona.amethyst.commons.resources.http_status_412 +import com.vitorpamplona.amethyst.commons.resources.http_status_413 +import com.vitorpamplona.amethyst.commons.resources.http_status_414 +import com.vitorpamplona.amethyst.commons.resources.http_status_415 +import com.vitorpamplona.amethyst.commons.resources.http_status_416 +import com.vitorpamplona.amethyst.commons.resources.http_status_417 +import com.vitorpamplona.amethyst.commons.resources.http_status_426 +import com.vitorpamplona.amethyst.commons.resources.http_status_500 +import com.vitorpamplona.amethyst.commons.resources.http_status_501 +import com.vitorpamplona.amethyst.commons.resources.http_status_502 +import com.vitorpamplona.amethyst.commons.resources.http_status_503 +import com.vitorpamplona.amethyst.commons.resources.http_status_504 +import com.vitorpamplona.amethyst.commons.resources.http_status_505 +import com.vitorpamplona.amethyst.commons.resources.http_status_506 +import com.vitorpamplona.amethyst.commons.resources.http_status_507 +import com.vitorpamplona.amethyst.commons.resources.http_status_508 +import com.vitorpamplona.amethyst.commons.resources.http_status_511 class HttpStatusMessages { companion object { fun resourceIdFor(statusCode: Int = 0): Int? = when (statusCode) { - 400 -> R.string.http_status_400 - 401 -> R.string.http_status_401 - 402 -> R.string.http_status_402 - 403 -> R.string.http_status_403 - 404 -> R.string.http_status_404 - 405 -> R.string.http_status_405 - 406 -> R.string.http_status_406 - 407 -> R.string.http_status_407 - 408 -> R.string.http_status_408 - 409 -> R.string.http_status_409 - 410 -> R.string.http_status_410 - 411 -> R.string.http_status_411 - 412 -> R.string.http_status_412 - 413 -> R.string.http_status_413 - 414 -> R.string.http_status_414 - 415 -> R.string.http_status_415 - 416 -> R.string.http_status_416 - 417 -> R.string.http_status_417 - 426 -> R.string.http_status_426 - 500 -> R.string.http_status_500 - 501 -> R.string.http_status_501 - 502 -> R.string.http_status_502 - 503 -> R.string.http_status_503 - 504 -> R.string.http_status_504 - 505 -> R.string.http_status_505 - 506 -> R.string.http_status_506 - 507 -> R.string.http_status_507 - 508 -> R.string.http_status_508 - 511 -> R.string.http_status_511 + 400 -> Res.string.http_status_400 + 401 -> Res.string.http_status_401 + 402 -> Res.string.http_status_402 + 403 -> Res.string.http_status_403 + 404 -> Res.string.http_status_404 + 405 -> Res.string.http_status_405 + 406 -> Res.string.http_status_406 + 407 -> Res.string.http_status_407 + 408 -> Res.string.http_status_408 + 409 -> Res.string.http_status_409 + 410 -> Res.string.http_status_410 + 411 -> Res.string.http_status_411 + 412 -> Res.string.http_status_412 + 413 -> Res.string.http_status_413 + 414 -> Res.string.http_status_414 + 415 -> Res.string.http_status_415 + 416 -> Res.string.http_status_416 + 417 -> Res.string.http_status_417 + 426 -> Res.string.http_status_426 + 500 -> Res.string.http_status_500 + 501 -> Res.string.http_status_501 + 502 -> Res.string.http_status_502 + 503 -> Res.string.http_status_503 + 504 -> Res.string.http_status_504 + 505 -> Res.string.http_status_505 + 506 -> Res.string.http_status_506 + 507 -> Res.string.http_status_507 + 508 -> Res.string.http_status_508 + 511 -> Res.string.http_status_511 else -> null } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/V4VPaymentHandler.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/V4VPaymentHandler.kt index 9449f97fa4..9542cce7cc 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/V4VPaymentHandler.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/V4VPaymentHandler.kt @@ -21,14 +21,21 @@ package com.vitorpamplona.amethyst.service import android.content.Context -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.payments.PaymentSource +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.clink_debit_no_response +import com.vitorpamplona.amethyst.commons.resources.error_dialog_pay_invoice_error +import com.vitorpamplona.amethyst.commons.resources.error_parsing_error_message +import com.vitorpamplona.amethyst.commons.resources.error_unable_to_fetch_invoice +import com.vitorpamplona.amethyst.commons.resources.podcast_value_error_title +import com.vitorpamplona.amethyst.commons.resources.podcast_value_keysend_requires_nwc +import com.vitorpamplona.amethyst.commons.resources.podcast_value_no_recipients +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.lnurl.LightningAddressResolver import com.vitorpamplona.amethyst.ui.nwc.nwcFailureDetail import com.vitorpamplona.amethyst.ui.nwc.nwcTimeoutMessage -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip01Core.core.toHexKey import com.vitorpamplona.quartz.nip47WalletConnect.rpc.PayKeysendMethod import com.vitorpamplona.quartz.nip47WalletConnect.rpc.Response @@ -88,8 +95,8 @@ class V4VPaymentHandler( val shares = value.computeShares(totalMilliSats) if (shares.isEmpty()) { onError( - stringRes(context, R.string.podcast_value_error_title), - stringRes(context, R.string.podcast_value_no_recipients), + loadStringRes(Res.string.podcast_value_error_title), + loadStringRes(Res.string.podcast_value_no_recipients), ) return@withContext } @@ -105,8 +112,8 @@ class V4VPaymentHandler( payNodeSharesViaKeysend(nodeShares, boostagram, context, onError) } else { onError( - stringRes(context, R.string.podcast_value_error_title), - stringRes(context, R.string.podcast_value_keysend_requires_nwc), + loadStringRes(Res.string.podcast_value_error_title), + loadStringRes(Res.string.podcast_value_keysend_requires_nwc), ) } } @@ -164,11 +171,11 @@ class V4VPaymentHandler( request = request, onResponse = { response: Response? -> response.nwcFailureDetail(context)?.let { detail -> - onError(stringRes(context, R.string.error_dialog_pay_invoice_error), detail) + onError(loadStringRes(Res.string.error_dialog_pay_invoice_error), detail) } }, onTimeout = { - onError(stringRes(context, R.string.error_dialog_pay_invoice_error), nwcTimeoutMessage(context)) + onError(loadStringRes(Res.string.error_dialog_pay_invoice_error), nwcTimeoutMessage(context)) }, ) } @@ -231,8 +238,8 @@ class V4VPaymentHandler( } catch (e: Exception) { if (e is CancellationException) throw e onError( - stringRes(context, R.string.error_unable_to_fetch_invoice), - e.message ?: stringRes(context, R.string.error_parsing_error_message), + loadStringRes(Res.string.error_unable_to_fetch_invoice), + e.message ?: loadStringRes(Res.string.error_parsing_error_message), ) null } @@ -258,11 +265,11 @@ class V4VPaymentHandler( zappedNote = zappedNote, onResponse = { response -> response.nwcFailureDetail(context)?.let { detail -> - onError(stringRes(context, R.string.error_dialog_pay_invoice_error), detail) + onError(loadStringRes(Res.string.error_dialog_pay_invoice_error), detail) } }, onTimeout = { - onError(stringRes(context, R.string.error_dialog_pay_invoice_error), nwcTimeoutMessage(context)) + onError(loadStringRes(Res.string.error_dialog_pay_invoice_error), nwcTimeoutMessage(context)) }, ) done++ @@ -276,9 +283,9 @@ class V4VPaymentHandler( val response = ClinkDebitPayer.payInvoice(account, source.wallet.pointer, payable.invoice) if (response?.isOk() != true) { onError( - stringRes(context, R.string.error_dialog_pay_invoice_error), + loadStringRes(Res.string.error_dialog_pay_invoice_error), response?.failureDetail() - ?: stringRes(context, R.string.clink_debit_no_response), + ?: loadStringRes(Res.string.clink_debit_no_response), ) } done++ diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/ZapPaymentHandler.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/ZapPaymentHandler.kt index cf5312996c..cff960e8a1 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/ZapPaymentHandler.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/ZapPaymentHandler.kt @@ -22,11 +22,23 @@ package com.vitorpamplona.amethyst.service import android.content.Context import androidx.compose.runtime.Immutable -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.payments.PaymentSource +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.bolt12_payment_failed +import com.vitorpamplona.amethyst.commons.resources.bolt12_zap_error +import com.vitorpamplona.amethyst.commons.resources.clink_debit_no_response +import com.vitorpamplona.amethyst.commons.resources.error_dialog_pay_invoice_error +import com.vitorpamplona.amethyst.commons.resources.error_dialog_zap_error +import com.vitorpamplona.amethyst.commons.resources.error_unable_to_fetch_invoice +import com.vitorpamplona.amethyst.commons.resources.missing_lud16 +import com.vitorpamplona.amethyst.commons.resources.unable_to_create_a_lightning_invoice_before_sending_the_zap_the_receiver_s_lightning_wallet_sent_the_following_error +import com.vitorpamplona.amethyst.commons.resources.user_does_not_have_a_lightning_address_setup_to_receive_sats +import com.vitorpamplona.amethyst.commons.resources.user_x_does_not_have_a_lightning_address_setup_to_receive_sats +import com.vitorpamplona.amethyst.commons.resources.wallet_connect_pay_invoice_error_error +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.lnurl.LightningAddressResolver import com.vitorpamplona.amethyst.ui.nwc.nwcFailureDetail @@ -212,15 +224,15 @@ class ZapPaymentHandler( if (it.user != null) { stringRes( context, - R.string.user_x_does_not_have_a_lightning_address_setup_to_receive_sats, + Res.string.user_x_does_not_have_a_lightning_address_setup_to_receive_sats, it.user.toBestDisplayName(), ) } else { - stringRes(context, R.string.user_does_not_have_a_lightning_address_setup_to_receive_sats) + loadStringRes(Res.string.user_does_not_have_a_lightning_address_setup_to_receive_sats) } onError( - stringRes(context, R.string.missing_lud16), + loadStringRes(Res.string.missing_lud16), message, it.user, ) @@ -432,11 +444,11 @@ class ZapPaymentHandler( onError( stringRes( context, - R.string.error_unable_to_fetch_invoice, + Res.string.error_unable_to_fetch_invoice, ), stringRes( context, - R.string.unable_to_create_a_lightning_invoice_before_sending_the_zap_the_receiver_s_lightning_wallet_sent_the_following_error, + Res.string.unable_to_create_a_lightning_invoice_before_sending_the_zap_the_receiver_s_lightning_wallet_sent_the_following_error, e.message, ), null, @@ -477,15 +489,15 @@ class ZapPaymentHandler( progress.step() response.nwcFailureDetail(context)?.let { detail -> onError( - stringRes(context, R.string.error_dialog_pay_invoice_error), - stringRes(context, R.string.wallet_connect_pay_invoice_error_error, detail), + loadStringRes(Res.string.error_dialog_pay_invoice_error), + loadStringRes(Res.string.wallet_connect_pay_invoice_error_error, detail), payable.info.user, ) } }, onTimeout = { onError( - stringRes(context, R.string.error_dialog_pay_invoice_error), + loadStringRes(Res.string.error_dialog_pay_invoice_error), nwcTimeoutMessage(context), payable.info.user, ) @@ -532,12 +544,12 @@ class ZapPaymentHandler( val progress = PaymentProgress(recipients.size, onProgress) mapNotNullAsync(recipients) { recipient: Bolt12Recipient -> - fun reportBolt12Error( + private suspend fun reportBolt12Error( msgRes: Int, detail: String?, ) { - val msg = if (detail != null) stringRes(context, msgRes, detail) else stringRes(context, msgRes) - onError(stringRes(context, R.string.bolt12_zap_error), msg, recipient.user) + val msg = if (detail != null) loadStringRes(msgRes, detail) else loadStringRes(msgRes) + onError(loadStringRes(Res.string.bolt12_zap_error), msg, recipient.user) } account.zaps.sendBolt12Zap( @@ -575,17 +587,17 @@ class ZapPaymentHandler( // Nothing was paid on either rail. Report it as the lightning failure it // is, rather than letting [sendBolt12Zap]'s catch call it "paid, no receipt". Log.w("ZapPaymentHandler", "BOLT11 fallback failed after a refused BOLT12 offer", e) - onError(stringRes(context, R.string.error_dialog_zap_error), e.message ?: e.toString(), recipient.user) + onError(loadStringRes(Res.string.error_dialog_zap_error), e.message ?: e.toString(), recipient.user) } } else { // bolt12_payment_failed always formats a detail; a wallet may send neither // message nor a recognised code. - reportBolt12Error(R.string.bolt12_payment_failed, detail ?: (code ?: NwcErrorCode.OTHER).name) + reportBolt12Error(Res.string.bolt12_payment_failed, detail ?: (code ?: NwcErrorCode.OTHER).name) } }, onTimeout = { // No response callback will fire, so account for the settlement step here. - reportBolt12Error(R.string.bolt12_payment_failed, nwcTimeoutMessage(context)) + reportBolt12Error(Res.string.bolt12_payment_failed, nwcTimeoutMessage(context)) progress.step() }, onProcessed = { progress.step() }, @@ -639,9 +651,9 @@ class ZapPaymentHandler( progress.step() if (response?.isOk() != true) { onError( - stringRes(context, R.string.error_dialog_pay_invoice_error), + loadStringRes(Res.string.error_dialog_pay_invoice_error), response?.failureDetail() - ?: stringRes(context, R.string.clink_debit_no_response), + ?: loadStringRes(Res.string.clink_debit_no_response), payable.info.user, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/calendar/CalendarReminderNotifier.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/calendar/CalendarReminderNotifier.kt index 4d6f9a71fc..e76e0db26f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/calendar/CalendarReminderNotifier.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/calendar/CalendarReminderNotifier.kt @@ -29,8 +29,12 @@ import androidx.core.app.NotificationCompat import androidx.core.app.NotificationManagerCompat import androidx.core.net.toUri import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.calendar_reminder_channel_description +import com.vitorpamplona.amethyst.commons.resources.calendar_reminder_channel_id +import com.vitorpamplona.amethyst.commons.resources.calendar_reminder_channel_name +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.ui.MainActivity -import com.vitorpamplona.amethyst.ui.stringRes /** * Posts user-visible "starting soon" notifications for NIP-52 appointments the user has RSVP'd @@ -52,7 +56,7 @@ object CalendarReminderNotifier { * calendar detail screen (CalendarTimeSlotEvent / CalendarDateSlotEvent * branches in RouteMaker resolve to Route.CalendarEventDetail). */ - fun notifyReminder( + suspend fun notifyReminder( context: Context, eventId: String, title: String, @@ -61,7 +65,7 @@ object CalendarReminderNotifier { ) { ensureChannel(context) val notId = idFor(eventId) - val channelId = stringRes(context, R.string.calendar_reminder_channel_id) + val channelId = loadStringRes(Res.string.calendar_reminder_channel_id) val tapIntent = Intent(context, MainActivity::class.java).apply { action = Intent.ACTION_VIEW @@ -100,15 +104,15 @@ object CalendarReminderNotifier { } } - fun ensureChannel(context: Context) { + suspend fun ensureChannel(context: Context) { if (channel != null) return channel = NotificationChannel( - stringRes(context, R.string.calendar_reminder_channel_id), - stringRes(context, R.string.calendar_reminder_channel_name), + loadStringRes(Res.string.calendar_reminder_channel_id), + loadStringRes(Res.string.calendar_reminder_channel_name), NotificationManager.IMPORTANCE_DEFAULT, ).apply { - description = stringRes(context, R.string.calendar_reminder_channel_description) + description = loadStringRes(Res.string.calendar_reminder_channel_description) } val nm = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager nm.createNotificationChannel(channel!!) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/calendar/CalendarReminderWorker.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/calendar/CalendarReminderWorker.kt index 2e438afb67..aec01cf3bc 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/calendar/CalendarReminderWorker.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/calendar/CalendarReminderWorker.kt @@ -27,12 +27,14 @@ import androidx.work.PeriodicWorkRequestBuilder import androidx.work.WorkManager import androidx.work.WorkerParameters import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.nip52Calendar.appointmentView +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.calendar_reminder_body +import com.vitorpamplona.amethyst.commons.resources.calendar_reminder_default_title +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.service.resourceusage.UsageKeys import com.vitorpamplona.amethyst.ui.pluralStringRes -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip52Calendar.appt.day.CalendarDateSlotEvent import com.vitorpamplona.quartz.nip52Calendar.appt.tags.RSVPStatusTag import com.vitorpamplona.quartz.nip52Calendar.appt.time.CalendarTimeSlotEvent @@ -98,12 +100,12 @@ class CalendarReminderWorker( // enters the lead window — the old notification stays valid in the system tray. if (store.wasNotified(eventId, start)) return@forEach - val title = view.title ?: stringRes(applicationContext, R.string.calendar_reminder_default_title) + val title = view.title ?: loadStringRes(Res.string.calendar_reminder_default_title) val minutesAway = ((start - now).coerceAtLeast(0L) / 60L).toInt() val body = pluralStringRes( applicationContext, - R.plurals.calendar_reminder_body, + Res.plurals.calendar_reminder_body, minutesAway, minutesAway, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/call/CallForegroundService.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/call/CallForegroundService.kt index 4997abf8b9..35057e0673 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/call/CallForegroundService.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/call/CallForegroundService.kt @@ -37,6 +37,12 @@ import androidx.core.content.ContextCompat import com.vitorpamplona.amethyst.Amethyst import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.nipACWebRtcCalls.CallState +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.app_name +import com.vitorpamplona.amethyst.commons.resources.call_hangup +import com.vitorpamplona.amethyst.commons.resources.call_ongoing +import com.vitorpamplona.amethyst.commons.resources.call_ongoing_description +import com.vitorpamplona.amethyst.commons.resources.call_with import com.vitorpamplona.amethyst.ui.call.CallActivity import com.vitorpamplona.quartz.utils.Log import kotlinx.coroutines.runBlocking @@ -219,10 +225,10 @@ class CallForegroundService : Service() { val channel = NotificationChannel( CHANNEL_ID, - getString(R.string.call_ongoing), + getString(Res.string.call_ongoing), NotificationManager.IMPORTANCE_LOW, ).apply { - description = getString(R.string.call_ongoing_description) + description = getString(Res.string.call_ongoing_description) } val notificationManager = getSystemService(NotificationManager::class.java) notificationManager.createNotificationChannel(channel) @@ -252,16 +258,16 @@ class CallForegroundService : Service() { PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT, ) - val contentText = statusText ?: getString(R.string.call_with, peerName) + val contentText = statusText ?: getString(Res.string.call_with, peerName) return NotificationCompat .Builder(this, CHANNEL_ID) - .setContentTitle(getString(R.string.app_name)) + .setContentTitle(getString(Res.string.app_name)) .setContentText(contentText) .setSmallIcon(R.drawable.amethyst) .setOngoing(true) .setContentIntent(openCallIntent) - .addAction(R.drawable.ic_call_end, getString(R.string.call_hangup), hangupIntent) + .addAction(R.drawable.ic_call_end, getString(Res.string.call_hangup), hangupIntent) .build() } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/call/notification/CallNotifier.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/call/notification/CallNotifier.kt index cdcff12365..fb88d494a6 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/call/notification/CallNotifier.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/call/notification/CallNotifier.kt @@ -33,9 +33,15 @@ import coil3.request.ImageRequest import coil3.request.allowHardware import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.cache.LocalCache +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.app_notification_calls_channel_description +import com.vitorpamplona.amethyst.commons.resources.app_notification_calls_channel_name +import com.vitorpamplona.amethyst.commons.resources.call_accept +import com.vitorpamplona.amethyst.commons.resources.call_incoming +import com.vitorpamplona.amethyst.commons.resources.call_reject +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.service.call.CallNotificationReceiver import com.vitorpamplona.amethyst.ui.call.CallActivity -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip01Core.core.hexToByteArray import com.vitorpamplona.quartz.nip19Bech32.toNpub import kotlinx.coroutines.Dispatchers @@ -63,16 +69,16 @@ object CallNotifier { const val CALL_CHANNEL_ID = "com.vitorpamplona.amethyst.CALL_CHANNEL" private const val CALL_NOTIFICATION_ID = 0x50000 - fun getOrCreateCallChannel(applicationContext: Context): NotificationChannel { + suspend fun getOrCreateCallChannel(applicationContext: Context): NotificationChannel { callChannel?.let { return it } val channel = NotificationChannel( CALL_CHANNEL_ID, - stringRes(applicationContext, R.string.app_notification_calls_channel_name), + loadStringRes(Res.string.app_notification_calls_channel_name), NotificationManager.IMPORTANCE_HIGH, ).apply { - description = stringRes(applicationContext, R.string.app_notification_calls_channel_description) + description = loadStringRes(Res.string.app_notification_calls_channel_description) // Silence the notification sound — CallAudioManager plays the ringtone setSound(null, null) enableVibration(false) @@ -91,7 +97,7 @@ object CallNotifier { * full-screen intent that opens [CallActivity] when the device is * unlocked, and provides Accept / Reject actions. */ - fun send( + suspend fun send( callerName: String, callerBitmap: Bitmap?, applicationContext: Context, @@ -148,7 +154,7 @@ object CallNotifier { NotificationCompat .Builder(applicationContext, channel.id) .setSmallIcon(R.drawable.amethyst) - .setContentTitle(stringRes(applicationContext, R.string.call_incoming)) + .setContentTitle(loadStringRes(Res.string.call_incoming)) .setContentText(callerName) .setLargeIcon(callerBitmap) .setContentIntent(contentPendingIntent) @@ -159,8 +165,8 @@ object CallNotifier { .setOngoing(true) .setTimeoutAfter(60_000) .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) - .addAction(R.drawable.amethyst, stringRes(applicationContext, R.string.call_reject), rejectPendingIntent) - .addAction(R.drawable.amethyst, stringRes(applicationContext, R.string.call_accept), acceptPendingIntent) + .addAction(R.drawable.amethyst, loadStringRes(Res.string.call_reject), rejectPendingIntent) + .addAction(R.drawable.amethyst, loadStringRes(Res.string.call_accept), acceptPendingIntent) notificationManager.notify("call", CALL_NOTIFICATION_ID, builder.build()) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/cashu/melt/MeltProcessor.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/cashu/melt/MeltProcessor.kt index 8301106b53..fe88b23d2b 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/cashu/melt/MeltProcessor.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/cashu/melt/MeltProcessor.kt @@ -21,8 +21,13 @@ package com.vitorpamplona.amethyst.service.cashu.melt import android.content.Context -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.cashu.melt.MeltResult +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cashu_failed_redemption +import com.vitorpamplona.amethyst.commons.resources.cashu_failed_redemption_explainer_error_msg +import com.vitorpamplona.amethyst.commons.resources.cashu_unsafe_mint_url +import com.vitorpamplona.amethyst.commons.resources.cashu_unsafe_mint_url_explainer +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.service.lnurl.LightningAddressResolver import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip60Cashu.mintApi.CashuMintOperations @@ -85,10 +90,10 @@ class MeltProcessor { val sendable = token.totalAmount - fees if (sendable <= 0) { throw LightningAddressResolver.LightningAddressError( - stringRes(context, R.string.cashu_failed_redemption), + loadStringRes(Res.string.cashu_failed_redemption), stringRes( context, - R.string.cashu_failed_redemption_explainer_error_msg, + Res.string.cashu_failed_redemption_explainer_error_msg, "Token value ${token.totalAmount} does not cover fees $fees", ), ) @@ -121,13 +126,13 @@ class MeltProcessor { // message, not the mint's, so don't dress it up as "the mint said". if (e is MintUrlException) { throw LightningAddressResolver.LightningAddressError( - stringRes(context, R.string.cashu_unsafe_mint_url), - stringRes(context, R.string.cashu_unsafe_mint_url_explainer, e.message), + loadStringRes(Res.string.cashu_unsafe_mint_url), + loadStringRes(Res.string.cashu_unsafe_mint_url_explainer, e.message), ) } throw LightningAddressResolver.LightningAddressError( - stringRes(context, R.string.cashu_failed_redemption), - stringRes(context, R.string.cashu_failed_redemption_explainer_error_msg, e.message), + loadStringRes(Res.string.cashu_failed_redemption), + loadStringRes(Res.string.cashu_failed_redemption_explainer_error_msg, e.message), ) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/crashreports/DisplayCrashMessages.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/crashreports/DisplayCrashMessages.kt index 2e2dcc5267..fdfafe0622 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/crashreports/DisplayCrashMessages.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/crashreports/DisplayCrashMessages.kt @@ -34,11 +34,11 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.crashreport_found import com.vitorpamplona.amethyst.commons.resources.crashreport_found_send import com.vitorpamplona.amethyst.commons.resources.would_you_like_to_send_the_recent_crash_report_to_amethyst_in_a_dm_no_personal_information_will_be_shared @@ -76,7 +76,7 @@ fun DisplayCrashMessages( }, dismissButton = { TextButton(onClick = { stackTrace.value = null }) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, confirmButton = { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/foreground/FlowProgressForegroundService.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/foreground/FlowProgressForegroundService.kt index dc90e77531..7a2df1dd66 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/foreground/FlowProgressForegroundService.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/foreground/FlowProgressForegroundService.kt @@ -32,6 +32,7 @@ import android.os.IBinder import androidx.core.app.NotificationCompat import androidx.core.app.NotificationManagerCompat import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.ui.MainActivity import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.utils.Log @@ -99,7 +100,7 @@ abstract class FlowProgressForegroundService : Service() { /** Keep the service (and notification) alive while this is true; stop once it goes false. */ protected abstract fun isActive(value: T): Boolean - protected abstract fun render(value: T): Content + protected abstract suspend fun render(value: T): Content /** Invoked by the cancel action. */ protected abstract fun cancelAll() @@ -264,7 +265,7 @@ abstract class FlowProgressForegroundService : Service() { } } - private fun buildNotification(value: T): Notification { + private suspend fun buildNotification(value: T): Notification { val content = render(value) val style = when (val bar = content.bar) { @@ -293,7 +294,7 @@ abstract class FlowProgressForegroundService : Service() { .setContentText(content.text) .setStyle(style) .setContentIntent(tapIntent) - .addAction(0, stringRes(this, cancelLabelRes), cancelIntent) + .addAction(0, loadStringRes(cancelLabelRes), cancelIntent) .setOngoing(true) .setOnlyAlertOnce(true) .setCategory(NotificationCompat.CATEGORY_PROGRESS) @@ -303,17 +304,17 @@ abstract class FlowProgressForegroundService : Service() { val secondaryLabel = secondaryLabelRes val secondaryPending = secondaryIntent if (secondaryLabel != null && secondaryPending != null) { - builder.addAction(0, stringRes(this, secondaryLabel), secondaryPending) + builder.addAction(0, loadStringRes(secondaryLabel), secondaryPending) } return builder.build() } - private fun ensureChannel() { + private suspend fun ensureChannel() { val manager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager if (manager.getNotificationChannel(channelId) != null) return manager.createNotificationChannel( - NotificationChannel(channelId, stringRes(this, channelNameRes), NotificationManager.IMPORTANCE_LOW).apply { + NotificationChannel(channelId, loadStringRes(channelNameRes), NotificationManager.IMPORTANCE_LOW).apply { description = stringRes(this@FlowProgressForegroundService, channelDescRes) setShowBadge(false) }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/lnurl/LightningAddressResolver.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/lnurl/LightningAddressResolver.kt index 305cb433a2..ef501cb97f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/lnurl/LightningAddressResolver.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/lnurl/LightningAddressResolver.kt @@ -22,7 +22,14 @@ package com.vitorpamplona.amethyst.service.lnurl import android.content.Context import com.fasterxml.jackson.databind.ObjectMapper -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.callback_url_not_found_in_the_user_s_lightning_address_server_configuration_with_user +import com.vitorpamplona.amethyst.commons.resources.could_not_assemble_lnurl_from_lightning_address_check_the_user_s_setup +import com.vitorpamplona.amethyst.commons.resources.could_not_fetch_invoice_from_details +import com.vitorpamplona.amethyst.commons.resources.error_parsing_json_from_lightning_address_check_the_user_s_lightning_setup_with_user +import com.vitorpamplona.amethyst.commons.resources.error_unable_to_fetch_invoice +import com.vitorpamplona.amethyst.commons.resources.incorrect_invoice_amount_sats_from_it_should_have_been +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.service.HttpStatusMessages import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.lightning.LnInvoiceUtil @@ -69,8 +76,8 @@ class LightningAddressResolver { ): String { val url = assembleUrl(lnAddress) ?: throw LightningAddressError( - stringRes(context, R.string.error_unable_to_fetch_invoice), - stringRes(context, R.string.could_not_assemble_lnurl_from_lightning_address_check_the_user_s_setup, lnAddress), + loadStringRes(Res.string.error_unable_to_fetch_invoice), + loadStringRes(Res.string.could_not_assemble_lnurl_from_lightning_address_check_the_user_s_setup, lnAddress), ) val client = okHttpClient(url) @@ -88,7 +95,7 @@ class LightningAddressResolver { response.body.string() } else { throw LightningAddressError( - stringRes(context, R.string.error_unable_to_fetch_invoice), + loadStringRes(Res.string.error_unable_to_fetch_invoice), stringRes( context, R.string @@ -104,7 +111,7 @@ class LightningAddressResolver { } catch (e: Exception) { if (e is CancellationException) throw e throw LightningAddressError( - stringRes(context, R.string.error_unable_to_fetch_invoice), + loadStringRes(Res.string.error_unable_to_fetch_invoice), stringRes( context, R.string @@ -151,15 +158,15 @@ class LightningAddressResolver { response.body.string() } else { throw LightningAddressError( - stringRes(context, R.string.error_unable_to_fetch_invoice), - stringRes(context, R.string.could_not_fetch_invoice_from_details, lnCallback, errorMessage(response, context)), + loadStringRes(Res.string.error_unable_to_fetch_invoice), + loadStringRes(Res.string.could_not_fetch_invoice_from_details, lnCallback, errorMessage(response, context)), ) } } } } - fun errorMessage( + suspend fun errorMessage( response: Response, context: Context, ): String { @@ -196,7 +203,7 @@ class LightningAddressResolver { } return errorMessage - ?: HttpStatusMessages.resourceIdFor(response.code)?.let { stringRes(context, it) } + ?: HttpStatusMessages.resourceIdFor(response.code)?.let { loadStringRes(it) } ?: response.message.ifBlank { null } ?: response.code.toString() } @@ -237,10 +244,10 @@ class LightningAddressResolver { } catch (t: Throwable) { if (t is CancellationException) throw t throw LightningAddressError( - stringRes(context, R.string.error_unable_to_fetch_invoice), + loadStringRes(Res.string.error_unable_to_fetch_invoice), stringRes( context, - R.string.error_parsing_json_from_lightning_address_check_the_user_s_lightning_setup_with_user, + Res.string.error_parsing_json_from_lightning_address_check_the_user_s_lightning_setup_with_user, lnAddress, ), ) @@ -250,10 +257,10 @@ class LightningAddressResolver { if (callbackUrl == null) { throw LightningAddressError( - stringRes(context, R.string.error_unable_to_fetch_invoice), + loadStringRes(Res.string.error_unable_to_fetch_invoice), stringRes( context, - R.string.callback_url_not_found_in_the_user_s_lightning_address_server_configuration_with_user, + Res.string.callback_url_not_found_in_the_user_s_lightning_address_server_configuration_with_user, lnAddress, ), ) @@ -297,7 +304,7 @@ class LightningAddressResolver { } catch (t: Throwable) { if (t is CancellationException) throw t throw LightningAddressError( - stringRes(context, R.string.error_unable_to_fetch_invoice), + loadStringRes(Res.string.error_unable_to_fetch_invoice), stringRes( context, R.string @@ -315,7 +322,7 @@ class LightningAddressResolver { if (reason != null) { throw LightningAddressError( - stringRes(context, R.string.error_unable_to_fetch_invoice), + loadStringRes(Res.string.error_unable_to_fetch_invoice), stringRes( context, R.string @@ -326,7 +333,7 @@ class LightningAddressResolver { ) } else { throw LightningAddressError( - stringRes(context, R.string.error_unable_to_fetch_invoice), + loadStringRes(Res.string.error_unable_to_fetch_invoice), stringRes( context, R.string @@ -346,10 +353,10 @@ class LightningAddressResolver { if (invoiceAmount.toLong() != expectedAmountInSats) { onProgress(0.0f) throw LightningAddressError( - stringRes(context, R.string.error_unable_to_fetch_invoice), + loadStringRes(Res.string.error_unable_to_fetch_invoice), stringRes( context, - R.string.incorrect_invoice_amount_sats_from_it_should_have_been, + Res.string.incorrect_invoice_amount_sats_from_it_should_have_been, invoiceAmount.toLong().toString(), lnAddress, expectedAmountInSats.toString(), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/nests/NestForegroundService.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/nests/NestForegroundService.kt index b629c41546..d3c637b486 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/nests/NestForegroundService.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/nests/NestForegroundService.kt @@ -41,6 +41,13 @@ import androidx.core.app.NotificationCompat import androidx.core.content.ContextCompat import com.vitorpamplona.amethyst.Amethyst import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.nest_notification_broadcasting +import com.vitorpamplona.amethyst.commons.resources.nest_notification_channel +import com.vitorpamplona.amethyst.commons.resources.nest_notification_channel_description +import com.vitorpamplona.amethyst.commons.resources.nest_notification_listening +import com.vitorpamplona.amethyst.commons.resources.nest_notification_stop +import com.vitorpamplona.amethyst.commons.resources.nest_notification_text import com.vitorpamplona.amethyst.commons.viewmodels.NestAudioFocusBus import com.vitorpamplona.amethyst.commons.viewmodels.NestAudioFocusState import com.vitorpamplona.amethyst.commons.viewmodels.NestNetworkChangeBus @@ -389,19 +396,19 @@ class NestForegroundService : Service() { val title = if (promoted) { - getString(R.string.nest_notification_broadcasting) + getString(Res.string.nest_notification_broadcasting) } else { - getString(R.string.nest_notification_listening) + getString(Res.string.nest_notification_listening) } return NotificationCompat .Builder(this, CHANNEL_ID) .setContentTitle(title) - .setContentText(getString(R.string.nest_notification_text)) + .setContentText(getString(Res.string.nest_notification_text)) .setSmallIcon(R.drawable.amethyst) .setOngoing(true) .setContentIntent(openIntent) - .addAction(0, getString(R.string.nest_notification_stop), stopIntent) + .addAction(0, getString(Res.string.nest_notification_stop), stopIntent) .setCategory(NotificationCompat.CATEGORY_CALL) .build() } @@ -412,10 +419,10 @@ class NestForegroundService : Service() { mgr.createNotificationChannel( NotificationChannel( CHANNEL_ID, - getString(R.string.nest_notification_channel), + getString(Res.string.nest_notification_channel), NotificationManager.IMPORTANCE_LOW, ).apply { - description = getString(R.string.nest_notification_channel_description) + description = getString(Res.string.nest_notification_channel_description) setShowBadge(false) }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/ConversationShortcuts.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/ConversationShortcuts.kt index 49b41c91f7..28da483cd7 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/ConversationShortcuts.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/ConversationShortcuts.kt @@ -28,9 +28,10 @@ import androidx.core.content.pm.ShortcutInfoCompat import androidx.core.content.pm.ShortcutManagerCompat import androidx.core.graphics.drawable.IconCompat import androidx.core.net.toUri -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.app_notification_shortcut_account_removed +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.ui.MainActivity -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.utils.Log /** @@ -140,7 +141,7 @@ object ConversationShortcuts { * the cache is what keeps a conversation alive after it falls out of the top slots, so * dropping only the dynamic copy would leave it recoverable. */ - fun removeForAccount( + suspend fun removeForAccount( context: Context, accountNpub: String, ) { @@ -170,7 +171,7 @@ object ConversationShortcuts { ShortcutManagerCompat.disableShortcuts( context, mine, - stringRes(context, R.string.app_notification_shortcut_account_removed), + loadStringRes(Res.string.app_notification_shortcut_account_removed), ) ShortcutManagerCompat.removeLongLivedShortcuts(context, mine) } catch (e: Exception) { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/EventNotificationConsumer.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/EventNotificationConsumer.kt index b965948513..30b71e240a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/EventNotificationConsumer.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/EventNotificationConsumer.kt @@ -30,13 +30,16 @@ import coil3.request.ImageRequest import coil3.request.allowHardware import com.vitorpamplona.amethyst.Amethyst import com.vitorpamplona.amethyst.LocalPreferences -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.isMutedPublicChatMessage import com.vitorpamplona.amethyst.commons.nipACWebRtcCalls.CallManager import com.vitorpamplona.amethyst.commons.relayClient.event.EventFinderQueryState import com.vitorpamplona.amethyst.commons.relayClient.user.UserFinderQueryState +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.app_notification_chess_challenge_accepted +import com.vitorpamplona.amethyst.commons.resources.app_notification_chess_your_turn +import com.vitorpamplona.amethyst.commons.resources.app_notification_poll_channel_message import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.call.notification.CallNotifier import com.vitorpamplona.amethyst.service.notifications.renderers.ArticleNotification @@ -275,7 +278,7 @@ class EventNotificationConsumer( is VideoVerticalEvent, -> MediaNotification.notify(applicationContext, account, event) - is PollEvent -> MentionNotification.notify(applicationContext, account, event, titleRes = R.string.app_notification_poll_channel_message) + is PollEvent -> MentionNotification.notify(applicationContext, account, event, titleRes = Res.string.app_notification_poll_channel_message) is HighlightEvent, is LongTextNoteEvent, @@ -292,8 +295,8 @@ class EventNotificationConsumer( is GitStatusClosedEvent -> CodeNotification.notify(applicationContext, account, event) is GitStatusDraftEvent -> CodeNotification.notify(applicationContext, account, event) - is LiveChessGameAcceptEvent -> ChessNotification.notify(applicationContext, account, event, R.string.app_notification_chess_challenge_accepted) - is LiveChessMoveEvent -> ChessNotification.notify(applicationContext, account, event, R.string.app_notification_chess_your_turn) + is LiveChessGameAcceptEvent -> ChessNotification.notify(applicationContext, account, event, Res.string.app_notification_chess_challenge_accepted) + is LiveChessMoveEvent -> ChessNotification.notify(applicationContext, account, event, Res.string.app_notification_chess_your_turn) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/InlineReplyFeedback.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/InlineReplyFeedback.kt index 88a9f7da7f..62cf07f2c4 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/InlineReplyFeedback.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/InlineReplyFeedback.kt @@ -27,7 +27,12 @@ import android.content.Context import androidx.core.app.NotificationCompat import androidx.core.app.Person import com.vitorpamplona.amethyst.R -import com.vitorpamplona.amethyst.ui.stringRes +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.app_notification_reply_failed +import com.vitorpamplona.amethyst.commons.resources.app_notification_reply_retry +import com.vitorpamplona.amethyst.commons.resources.app_notification_reply_sending +import com.vitorpamplona.amethyst.commons.resources.app_notification_reply_unconfirmed +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.quartz.utils.Log /** @@ -105,7 +110,7 @@ fun NotificationManager.renderReplyState( private const val TAG = "InlineReplyFeedback" -private fun NotificationManager.renderReplyStateOrThrow( +private suspend fun NotificationManager.renderReplyStateOrThrow( applicationContext: Context, notId: Int, state: ReplyState, @@ -126,7 +131,7 @@ private fun NotificationManager.renderReplyStateOrThrow( // `null` attributes the message to the MessagingStyle's own user. style?.addMessage(state.text, System.currentTimeMillis(), null as Person?) ?: builder.setRemoteInputHistory(arrayOf(state.text)) - builder.setSubText(stringRes(applicationContext, R.string.app_notification_reply_sending)) + builder.setSubText(loadStringRes(Res.string.app_notification_reply_sending)) } ReplyState.Sent -> { @@ -136,14 +141,14 @@ private fun NotificationManager.renderReplyStateOrThrow( is ReplyState.Unconfirmed -> { if (style == null) builder.setRemoteInputHistory(arrayOf(state.text)) - builder.setSubText(stringRes(applicationContext, R.string.app_notification_reply_unconfirmed)) + builder.setSubText(loadStringRes(Res.string.app_notification_reply_unconfirmed)) } is ReplyState.Failed -> { if (style == null) builder.setRemoteInputHistory(arrayOf(state.text)) - builder.setSubText(stringRes(applicationContext, R.string.app_notification_reply_failed)) + builder.setSubText(loadStringRes(Res.string.app_notification_reply_failed)) - val retryLabel = stringRes(applicationContext, R.string.app_notification_reply_retry) + val retryLabel = loadStringRes(Res.string.app_notification_reply_retry) // Rebuilt from the posted notification, so its actions come with it — and a bare // clearActions() would take Reply and Mark Read with them, leaving a failed reply diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/NotificationCategory.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/NotificationCategory.kt index e7b476fc49..56acce8c9e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/NotificationCategory.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/NotificationCategory.kt @@ -25,11 +25,66 @@ import android.app.NotificationChannelGroup import android.app.NotificationManager import android.content.Context import androidx.annotation.DrawableRes -import androidx.annotation.StringRes import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols -import com.vitorpamplona.amethyst.ui.stringRes +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.app_notification_articles_channel_description +import com.vitorpamplona.amethyst.commons.resources.app_notification_articles_channel_id +import com.vitorpamplona.amethyst.commons.resources.app_notification_articles_channel_name +import com.vitorpamplona.amethyst.commons.resources.app_notification_articles_summary +import com.vitorpamplona.amethyst.commons.resources.app_notification_badges_channel_description +import com.vitorpamplona.amethyst.commons.resources.app_notification_badges_channel_id +import com.vitorpamplona.amethyst.commons.resources.app_notification_badges_channel_name +import com.vitorpamplona.amethyst.commons.resources.app_notification_badges_summary +import com.vitorpamplona.amethyst.commons.resources.app_notification_chess_channel_description +import com.vitorpamplona.amethyst.commons.resources.app_notification_chess_channel_id +import com.vitorpamplona.amethyst.commons.resources.app_notification_chess_channel_name +import com.vitorpamplona.amethyst.commons.resources.app_notification_chess_summary +import com.vitorpamplona.amethyst.commons.resources.app_notification_code_channel_description +import com.vitorpamplona.amethyst.commons.resources.app_notification_code_channel_id +import com.vitorpamplona.amethyst.commons.resources.app_notification_code_channel_name +import com.vitorpamplona.amethyst.commons.resources.app_notification_code_summary +import com.vitorpamplona.amethyst.commons.resources.app_notification_dms_channel_description +import com.vitorpamplona.amethyst.commons.resources.app_notification_dms_channel_id +import com.vitorpamplona.amethyst.commons.resources.app_notification_dms_channel_name +import com.vitorpamplona.amethyst.commons.resources.app_notification_dms_summary +import com.vitorpamplona.amethyst.commons.resources.app_notification_group_content +import com.vitorpamplona.amethyst.commons.resources.app_notification_group_developer +import com.vitorpamplona.amethyst.commons.resources.app_notification_group_games +import com.vitorpamplona.amethyst.commons.resources.app_notification_group_messages +import com.vitorpamplona.amethyst.commons.resources.app_notification_group_payments +import com.vitorpamplona.amethyst.commons.resources.app_notification_group_social +import com.vitorpamplona.amethyst.commons.resources.app_notification_media_channel_description +import com.vitorpamplona.amethyst.commons.resources.app_notification_media_channel_id +import com.vitorpamplona.amethyst.commons.resources.app_notification_media_channel_name +import com.vitorpamplona.amethyst.commons.resources.app_notification_media_summary +import com.vitorpamplona.amethyst.commons.resources.app_notification_mentions_channel_description +import com.vitorpamplona.amethyst.commons.resources.app_notification_mentions_channel_id +import com.vitorpamplona.amethyst.commons.resources.app_notification_mentions_channel_name +import com.vitorpamplona.amethyst.commons.resources.app_notification_mentions_summary +import com.vitorpamplona.amethyst.commons.resources.app_notification_payments_channel_description +import com.vitorpamplona.amethyst.commons.resources.app_notification_payments_channel_id +import com.vitorpamplona.amethyst.commons.resources.app_notification_payments_channel_name +import com.vitorpamplona.amethyst.commons.resources.app_notification_payments_summary +import com.vitorpamplona.amethyst.commons.resources.app_notification_reactions_channel_description +import com.vitorpamplona.amethyst.commons.resources.app_notification_reactions_channel_id +import com.vitorpamplona.amethyst.commons.resources.app_notification_reactions_channel_name +import com.vitorpamplona.amethyst.commons.resources.app_notification_reactions_summary +import com.vitorpamplona.amethyst.commons.resources.app_notification_replies_channel_description +import com.vitorpamplona.amethyst.commons.resources.app_notification_replies_channel_id +import com.vitorpamplona.amethyst.commons.resources.app_notification_replies_channel_name +import com.vitorpamplona.amethyst.commons.resources.app_notification_replies_summary +import com.vitorpamplona.amethyst.commons.resources.app_notification_reposts_channel_description +import com.vitorpamplona.amethyst.commons.resources.app_notification_reposts_channel_id +import com.vitorpamplona.amethyst.commons.resources.app_notification_reposts_channel_name +import com.vitorpamplona.amethyst.commons.resources.app_notification_reposts_summary +import com.vitorpamplona.amethyst.commons.resources.app_notification_zaps_channel_description +import com.vitorpamplona.amethyst.commons.resources.app_notification_zaps_channel_id +import com.vitorpamplona.amethyst.commons.resources.app_notification_zaps_channel_name +import com.vitorpamplona.amethyst.commons.resources.app_notification_zaps_summary +import com.vitorpamplona.amethyst.commons.ui.loadStringRes +import org.jetbrains.compose.resources.StringResource /** * Logical grouping of notification channels, shown as a section header in the @@ -39,14 +94,14 @@ import com.vitorpamplona.amethyst.ui.stringRes */ enum class NotifChannelGroup( val id: String, - @param:StringRes val nameRes: Int, + val nameRes: StringResource, ) { - MESSAGES("com.vitorpamplona.amethyst.group.messages", R.string.app_notification_group_messages), - SOCIAL("com.vitorpamplona.amethyst.group.social", R.string.app_notification_group_social), - PAYMENTS("com.vitorpamplona.amethyst.group.payments", R.string.app_notification_group_payments), - CONTENT("com.vitorpamplona.amethyst.group.content", R.string.app_notification_group_content), - DEVELOPER("com.vitorpamplona.amethyst.group.developer", R.string.app_notification_group_developer), - GAMES("com.vitorpamplona.amethyst.group.games", R.string.app_notification_group_games), + MESSAGES("com.vitorpamplona.amethyst.group.messages", Res.string.app_notification_group_messages), + SOCIAL("com.vitorpamplona.amethyst.group.social", Res.string.app_notification_group_social), + PAYMENTS("com.vitorpamplona.amethyst.group.payments", Res.string.app_notification_group_payments), + CONTENT("com.vitorpamplona.amethyst.group.content", Res.string.app_notification_group_content), + DEVELOPER("com.vitorpamplona.amethyst.group.developer", Res.string.app_notification_group_developer), + GAMES("com.vitorpamplona.amethyst.group.games", Res.string.app_notification_group_games), } /** @@ -66,10 +121,10 @@ enum class NotifChannelGroup( * table-driven definition every renderer reads from. */ enum class NotificationCategory( - @param:StringRes val channelIdRes: Int, - @param:StringRes val channelNameRes: Int, - @param:StringRes val channelDescriptionRes: Int, - @param:StringRes val summaryTextRes: Int, + val channelIdRes: StringResource, + val channelNameRes: StringResource, + val channelDescriptionRes: StringResource, + val summaryTextRes: StringResource, val importance: Int, val color: Int, @param:DrawableRes val smallIcon: Int, @@ -81,10 +136,10 @@ enum class NotificationCategory( val colorized: Boolean = false, ) { DIRECT_MESSAGE( - channelIdRes = R.string.app_notification_dms_channel_id, - channelNameRes = R.string.app_notification_dms_channel_name, - channelDescriptionRes = R.string.app_notification_dms_channel_description, - summaryTextRes = R.string.app_notification_dms_summary, + channelIdRes = Res.string.app_notification_dms_channel_id, + channelNameRes = Res.string.app_notification_dms_channel_name, + channelDescriptionRes = Res.string.app_notification_dms_channel_description, + summaryTextRes = Res.string.app_notification_dms_summary, importance = NotificationManager.IMPORTANCE_HIGH, color = 0xFF2196F3.toInt(), // blue smallIcon = R.drawable.ic_notif_message, @@ -94,10 +149,10 @@ enum class NotificationCategory( summaryId = 0x10000, ), REPLY( - channelIdRes = R.string.app_notification_replies_channel_id, - channelNameRes = R.string.app_notification_replies_channel_name, - channelDescriptionRes = R.string.app_notification_replies_channel_description, - summaryTextRes = R.string.app_notification_replies_summary, + channelIdRes = Res.string.app_notification_replies_channel_id, + channelNameRes = Res.string.app_notification_replies_channel_name, + channelDescriptionRes = Res.string.app_notification_replies_channel_description, + summaryTextRes = Res.string.app_notification_replies_summary, importance = NotificationManager.IMPORTANCE_DEFAULT, color = 0xFF7C4DFF.toInt(), // deep purple smallIcon = R.drawable.ic_notif_reply, @@ -109,10 +164,10 @@ enum class NotificationCategory( summaryId = 0x50000, ), MENTION( - channelIdRes = R.string.app_notification_mentions_channel_id, - channelNameRes = R.string.app_notification_mentions_channel_name, - channelDescriptionRes = R.string.app_notification_mentions_channel_description, - summaryTextRes = R.string.app_notification_mentions_summary, + channelIdRes = Res.string.app_notification_mentions_channel_id, + channelNameRes = Res.string.app_notification_mentions_channel_name, + channelDescriptionRes = Res.string.app_notification_mentions_channel_description, + summaryTextRes = Res.string.app_notification_mentions_summary, importance = NotificationManager.IMPORTANCE_DEFAULT, color = 0xFF9C27B0.toInt(), // purple smallIcon = R.drawable.ic_notif_mention, @@ -122,10 +177,10 @@ enum class NotificationCategory( summaryId = 0x60000, ), REACTION( - channelIdRes = R.string.app_notification_reactions_channel_id, - channelNameRes = R.string.app_notification_reactions_channel_name, - channelDescriptionRes = R.string.app_notification_reactions_channel_description, - summaryTextRes = R.string.app_notification_reactions_summary, + channelIdRes = Res.string.app_notification_reactions_channel_id, + channelNameRes = Res.string.app_notification_reactions_channel_name, + channelDescriptionRes = Res.string.app_notification_reactions_channel_description, + summaryTextRes = Res.string.app_notification_reactions_summary, importance = NotificationManager.IMPORTANCE_LOW, color = 0xFFE91E63.toInt(), // pink / heart smallIcon = R.drawable.ic_notif_reaction, @@ -135,10 +190,10 @@ enum class NotificationCategory( summaryId = 0x40000, ), REPOST( - channelIdRes = R.string.app_notification_reposts_channel_id, - channelNameRes = R.string.app_notification_reposts_channel_name, - channelDescriptionRes = R.string.app_notification_reposts_channel_description, - summaryTextRes = R.string.app_notification_reposts_summary, + channelIdRes = Res.string.app_notification_reposts_channel_id, + channelNameRes = Res.string.app_notification_reposts_channel_name, + channelDescriptionRes = Res.string.app_notification_reposts_channel_description, + summaryTextRes = Res.string.app_notification_reposts_summary, importance = NotificationManager.IMPORTANCE_LOW, color = 0xFF4CAF50.toInt(), // green smallIcon = R.drawable.ic_notif_repost, @@ -148,10 +203,10 @@ enum class NotificationCategory( summaryId = 0x70000, ), ZAP( - channelIdRes = R.string.app_notification_zaps_channel_id, - channelNameRes = R.string.app_notification_zaps_channel_name, - channelDescriptionRes = R.string.app_notification_zaps_channel_description, - summaryTextRes = R.string.app_notification_zaps_summary, + channelIdRes = Res.string.app_notification_zaps_channel_id, + channelNameRes = Res.string.app_notification_zaps_channel_name, + channelDescriptionRes = Res.string.app_notification_zaps_channel_description, + summaryTextRes = Res.string.app_notification_zaps_summary, importance = NotificationManager.IMPORTANCE_DEFAULT, color = 0xFFF7931A.toInt(), // bitcoin orange smallIcon = R.drawable.ic_notif_zap, @@ -162,10 +217,10 @@ enum class NotificationCategory( colorized = true, ), MEDIA( - channelIdRes = R.string.app_notification_media_channel_id, - channelNameRes = R.string.app_notification_media_channel_name, - channelDescriptionRes = R.string.app_notification_media_channel_description, - summaryTextRes = R.string.app_notification_media_summary, + channelIdRes = Res.string.app_notification_media_channel_id, + channelNameRes = Res.string.app_notification_media_channel_name, + channelDescriptionRes = Res.string.app_notification_media_channel_description, + summaryTextRes = Res.string.app_notification_media_summary, importance = NotificationManager.IMPORTANCE_DEFAULT, color = 0xFF00BCD4.toInt(), // cyan smallIcon = R.drawable.ic_notif_media, @@ -175,10 +230,10 @@ enum class NotificationCategory( summaryId = 0x80000, ), ARTICLE( - channelIdRes = R.string.app_notification_articles_channel_id, - channelNameRes = R.string.app_notification_articles_channel_name, - channelDescriptionRes = R.string.app_notification_articles_channel_description, - summaryTextRes = R.string.app_notification_articles_summary, + channelIdRes = Res.string.app_notification_articles_channel_id, + channelNameRes = Res.string.app_notification_articles_channel_name, + channelDescriptionRes = Res.string.app_notification_articles_channel_description, + summaryTextRes = Res.string.app_notification_articles_summary, importance = NotificationManager.IMPORTANCE_DEFAULT, color = 0xFF3F51B5.toInt(), // indigo smallIcon = R.drawable.ic_notif_article, @@ -188,10 +243,10 @@ enum class NotificationCategory( summaryId = 0x90000, ), CODE( - channelIdRes = R.string.app_notification_code_channel_id, - channelNameRes = R.string.app_notification_code_channel_name, - channelDescriptionRes = R.string.app_notification_code_channel_description, - summaryTextRes = R.string.app_notification_code_summary, + channelIdRes = Res.string.app_notification_code_channel_id, + channelNameRes = Res.string.app_notification_code_channel_name, + channelDescriptionRes = Res.string.app_notification_code_channel_description, + summaryTextRes = Res.string.app_notification_code_summary, importance = NotificationManager.IMPORTANCE_DEFAULT, color = 0xFF607D8B.toInt(), // slate smallIcon = R.drawable.ic_notif_code, @@ -201,10 +256,10 @@ enum class NotificationCategory( summaryId = 0xA0000, ), BADGE( - channelIdRes = R.string.app_notification_badges_channel_id, - channelNameRes = R.string.app_notification_badges_channel_name, - channelDescriptionRes = R.string.app_notification_badges_channel_description, - summaryTextRes = R.string.app_notification_badges_summary, + channelIdRes = Res.string.app_notification_badges_channel_id, + channelNameRes = Res.string.app_notification_badges_channel_name, + channelDescriptionRes = Res.string.app_notification_badges_channel_description, + summaryTextRes = Res.string.app_notification_badges_summary, importance = NotificationManager.IMPORTANCE_DEFAULT, color = 0xFFFFC107.toInt(), // amber / gold smallIcon = R.drawable.ic_notif_badge, @@ -214,10 +269,10 @@ enum class NotificationCategory( summaryId = 0xB0000, ), CHESS( - channelIdRes = R.string.app_notification_chess_channel_id, - channelNameRes = R.string.app_notification_chess_channel_name, - channelDescriptionRes = R.string.app_notification_chess_channel_description, - summaryTextRes = R.string.app_notification_chess_summary, + channelIdRes = Res.string.app_notification_chess_channel_id, + channelNameRes = Res.string.app_notification_chess_channel_name, + channelDescriptionRes = Res.string.app_notification_chess_channel_description, + summaryTextRes = Res.string.app_notification_chess_summary, importance = NotificationManager.IMPORTANCE_DEFAULT, color = 0xFF795548.toInt(), // brown smallIcon = R.drawable.ic_notif_chess, @@ -227,10 +282,10 @@ enum class NotificationCategory( summaryId = 0x30000, ), PAYMENT_RECEIVED( - channelIdRes = R.string.app_notification_payments_channel_id, - channelNameRes = R.string.app_notification_payments_channel_name, - channelDescriptionRes = R.string.app_notification_payments_channel_description, - summaryTextRes = R.string.app_notification_payments_summary, + channelIdRes = Res.string.app_notification_payments_channel_id, + channelNameRes = Res.string.app_notification_payments_channel_name, + channelDescriptionRes = Res.string.app_notification_payments_channel_description, + summaryTextRes = Res.string.app_notification_payments_summary, importance = NotificationManager.IMPORTANCE_DEFAULT, color = 0xFF16B979.toInt(), // lightning green — distinct from the gold zap channel smallIcon = R.drawable.ic_notif_zap, @@ -241,7 +296,7 @@ enum class NotificationCategory( ), ; - fun channelId(context: Context): String = stringRes(context, channelIdRes) + suspend fun channelId(context: Context): String = loadStringRes(channelIdRes) @Volatile private var channelEnsured = false @@ -252,18 +307,18 @@ enum class NotificationCategory( * successful creation instead of paying two IPCs on every post and re-render. * Returns the channel id to post on. */ - fun ensureChannel(context: Context): String { + suspend fun ensureChannel(context: Context): String { val id = channelId(context) if (channelEnsured) return id synchronized(this) { if (!channelEnsured) { val nm = context.getSystemService(NotificationManager::class.java) nm.createNotificationChannelGroup( - NotificationChannelGroup(channelGroup.id, stringRes(context, channelGroup.nameRes)), + NotificationChannelGroup(channelGroup.id, loadStringRes(channelGroup.nameRes)), ) val channel = - NotificationChannel(id, stringRes(context, channelNameRes), importance).apply { - description = stringRes(context, channelDescriptionRes) + NotificationChannel(id, loadStringRes(channelNameRes), importance).apply { + description = loadStringRes(channelDescriptionRes) group = channelGroup.id } nm.createNotificationChannel(channel) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/NotificationChannels.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/NotificationChannels.kt index 7838e8e11d..488f2383e8 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/NotificationChannels.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/NotificationChannels.kt @@ -25,9 +25,12 @@ import android.content.Context import android.content.Intent import android.provider.Settings import androidx.core.app.NotificationManagerCompat -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.app_notification_calls_channel_name +import com.vitorpamplona.amethyst.commons.resources.app_notification_scheduled_posts_channel_id +import com.vitorpamplona.amethyst.commons.resources.app_notification_scheduled_posts_channel_name import com.vitorpamplona.amethyst.isDebug import com.vitorpamplona.amethyst.service.call.notification.CallNotifier import com.vitorpamplona.amethyst.service.scheduledposts.AndroidScheduledPostNotifier @@ -59,8 +62,8 @@ object NotificationChannels { data class Entry( val nameRes: Int, val icon: MaterialSymbol, - val channelId: (Context) -> String, - val ensure: (Context) -> Unit, + val channelId: suspend (Context) -> String, + val ensure: suspend (Context) -> Unit, ) /** The per-kind content channels, derived from [NotificationCategory], in a @@ -81,13 +84,13 @@ object NotificationChannels { } + listOf( Entry( - nameRes = R.string.app_notification_scheduled_posts_channel_name, + nameRes = Res.string.app_notification_scheduled_posts_channel_name, icon = MaterialSymbols.Schedule, - channelId = { stringRes(it, R.string.app_notification_scheduled_posts_channel_id) }, + channelId = { stringRes(it, Res.string.app_notification_scheduled_posts_channel_id) }, ensure = { AndroidScheduledPostNotifier.ensureChannel(it) }, ), Entry( - nameRes = R.string.app_notification_calls_channel_name, + nameRes = Res.string.app_notification_calls_channel_name, icon = MaterialSymbols.Call, channelId = { CallNotifier.CALL_CHANNEL_ID }, ensure = { CallNotifier.getOrCreateCallChannel(it) }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/NotificationRelayService.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/NotificationRelayService.kt index b94e006dd6..5563d734af 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/NotificationRelayService.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/NotificationRelayService.kt @@ -40,8 +40,17 @@ import androidx.core.net.toUri import com.vitorpamplona.amethyst.Amethyst import com.vitorpamplona.amethyst.LocalPreferences import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.always_on_notif_channel_description +import com.vitorpamplona.amethyst.commons.resources.always_on_notif_channel_name +import com.vitorpamplona.amethyst.commons.resources.always_on_notif_connected +import com.vitorpamplona.amethyst.commons.resources.always_on_notif_connected_foreground +import com.vitorpamplona.amethyst.commons.resources.always_on_notif_connecting +import com.vitorpamplona.amethyst.commons.resources.always_on_notif_hide_details +import com.vitorpamplona.amethyst.commons.resources.always_on_notif_show_details +import com.vitorpamplona.amethyst.commons.resources.always_on_notif_title +import com.vitorpamplona.amethyst.commons.ui.loadPluralStringRes import com.vitorpamplona.amethyst.ui.MainActivity -import com.vitorpamplona.amethyst.ui.pluralStringRes import com.vitorpamplona.quartz.utils.Log import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -354,17 +363,17 @@ class NotificationRelayService : Service() { notificationManager.notify(NOTIFICATION_ID, notification) } - private fun buildNotification(connectedRelays: Int): Notification { + private suspend fun buildNotification(connectedRelays: Int): Notification { val contentText = when { - connectedRelays <= 0 -> getString(R.string.always_on_notif_connecting) + connectedRelays <= 0 -> getString(Res.string.always_on_notif_connecting) // Foreground: the pool also holds the feed/finder outbox relays, so the // count reflects all connections, not just the inbox. Backgrounded, the // feeds tear down and only inbox + DM relays remain. MainActivity.isResumed -> - pluralStringRes(this, R.plurals.always_on_notif_connected_foreground, connectedRelays, connectedRelays) + loadPluralStringRes(Res.plurals.always_on_notif_connected_foreground, connectedRelays, connectedRelays) else -> - pluralStringRes(this, R.plurals.always_on_notif_connected, connectedRelays, connectedRelays) + loadPluralStringRes(Res.plurals.always_on_notif_connected, connectedRelays, connectedRelays) } // Tapping goes to the screen that answers the question the notification raises — "why is it @@ -421,9 +430,9 @@ class NotificationRelayService : Service() { val detailsLabel = getString( if (detailsExpanded) { - R.string.always_on_notif_hide_details + Res.string.always_on_notif_hide_details } else { - R.string.always_on_notif_show_details + Res.string.always_on_notif_show_details }, ) @@ -439,14 +448,14 @@ class NotificationRelayService : Service() { // threshold, so no bundle is formed and nothing gets stapled to it. return NotificationCompat .Builder(this, CHANNEL_ID) - .setContentTitle(getString(R.string.always_on_notif_title)) + .setContentTitle(getString(Res.string.always_on_notif_title)) .setContentText(contentText) .apply { breakdown?.let { setStyle( NotificationCompat .BigTextStyle() - .setBigContentTitle(getString(R.string.always_on_notif_title)) + .setBigContentTitle(getString(Res.string.always_on_notif_title)) .bigText(contentText + "\n\n" + it.joinToString("\n")), ) } @@ -464,10 +473,10 @@ class NotificationRelayService : Service() { val channel = NotificationChannel( CHANNEL_ID, - getString(R.string.always_on_notif_channel_name), + getString(Res.string.always_on_notif_channel_name), NotificationManager.IMPORTANCE_LOW, ).apply { - description = getString(R.string.always_on_notif_channel_description) + description = getString(Res.string.always_on_notif_channel_description) setShowBadge(false) } val notificationManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/NotificationServiceTileService.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/NotificationServiceTileService.kt index 7c9b4ea907..d6e4d38c74 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/NotificationServiceTileService.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/NotificationServiceTileService.kt @@ -25,7 +25,9 @@ import android.service.quicksettings.Tile import android.service.quicksettings.TileService import com.vitorpamplona.amethyst.Amethyst import com.vitorpamplona.amethyst.LocalPreferences -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.always_on_notif_tile_subtitle_off +import com.vitorpamplona.amethyst.commons.resources.always_on_notif_tile_subtitle_on import com.vitorpamplona.quartz.utils.Log import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -120,9 +122,9 @@ class NotificationServiceTileService : TileService() { tile.subtitleCompat( getString( if (enabled) { - R.string.always_on_notif_tile_subtitle_on + Res.string.always_on_notif_tile_subtitle_on } else { - R.string.always_on_notif_tile_subtitle_off + Res.string.always_on_notif_tile_subtitle_off }, ), ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/NotificationUtils.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/NotificationUtils.kt index bb697c2f53..ebddfe48e8 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/NotificationUtils.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/NotificationUtils.kt @@ -46,8 +46,13 @@ import coil3.asDrawable import coil3.request.ImageRequest import coil3.request.allowHardware import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.app_notification_mark_read_label +import com.vitorpamplona.amethyst.commons.resources.app_notification_me +import com.vitorpamplona.amethyst.commons.resources.app_notification_private_message +import com.vitorpamplona.amethyst.commons.resources.app_notification_reply_label +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.ui.MainActivity -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip01Core.core.HexKey import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext @@ -243,7 +248,7 @@ object NotificationUtils { .setSmallIcon(category.smallIcon) .setColor(category.color) .setContentTitle(messageTitle) - .setContentText(stringRes(applicationContext, R.string.app_notification_private_message)) + .setContentText(loadStringRes(Res.string.app_notification_private_message)) .setContentIntent(contentPendingIntent) .setPriority(category.priority()) .setAutoCancel(true) @@ -330,7 +335,7 @@ object NotificationUtils { val me = Person .Builder() - .setName(stringRes(applicationContext, R.string.app_notification_me)) + .setName(loadStringRes(Res.string.app_notification_me)) .apply { accountAvatar?.let { setIcon(IconCompat.createWithBitmap(it)) } } .build() @@ -373,7 +378,7 @@ object NotificationUtils { .setSmallIcon(category.smallIcon) .setColor(category.color) .setContentTitle(senderName) - .setContentText(stringRes(applicationContext, R.string.app_notification_private_message)) + .setContentText(loadStringRes(Res.string.app_notification_private_message)) .setLargeIcon(avatar) .setContentIntent(contentPendingIntent) .setPriority(category.priority()) @@ -469,13 +474,13 @@ object NotificationUtils { ) } - private fun replyRemoteInput(applicationContext: Context): RemoteInput = + private suspend fun replyRemoteInput(applicationContext: Context): RemoteInput = RemoteInput .Builder(KEY_REPLY_TEXT) - .setLabel(stringRes(applicationContext, R.string.app_notification_reply_label)) + .setLabel(loadStringRes(Res.string.app_notification_reply_label)) .build() - private fun buildReplyAction( + private suspend fun buildReplyAction( applicationContext: Context, notId: Int, intent: Intent, @@ -488,14 +493,14 @@ object NotificationUtils { PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT, ) return NotificationCompat.Action - .Builder(R.drawable.ic_action_reply, stringRes(applicationContext, R.string.app_notification_reply_label), replyPendingIntent) + .Builder(R.drawable.ic_action_reply, loadStringRes(Res.string.app_notification_reply_label), replyPendingIntent) .addRemoteInput(replyRemoteInput(applicationContext)) .setAllowGeneratedReplies(true) .setSemanticAction(NotificationCompat.Action.SEMANTIC_ACTION_REPLY) .build() } - private fun dmReplyAction( + private suspend fun dmReplyAction( applicationContext: Context, notId: Int, eventId: String, @@ -512,7 +517,7 @@ object NotificationUtils { return buildReplyAction(applicationContext, notId, intent) } - private fun marmotReplyAction( + private suspend fun marmotReplyAction( applicationContext: Context, notId: Int, eventId: String, @@ -531,7 +536,7 @@ object NotificationUtils { return buildReplyAction(applicationContext, notId, intent) } - private fun publicReplyAction( + private suspend fun publicReplyAction( applicationContext: Context, notId: Int, eventId: String, @@ -548,7 +553,7 @@ object NotificationUtils { return buildReplyAction(applicationContext, notId, intent) } - private fun markReadAction( + private suspend fun markReadAction( applicationContext: Context, notId: Int, eventId: String, @@ -567,7 +572,7 @@ object NotificationUtils { PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT, ) return NotificationCompat.Action - .Builder(R.drawable.ic_action_mark_read, stringRes(applicationContext, R.string.app_notification_mark_read_label), markReadPendingIntent) + .Builder(R.drawable.ic_action_mark_read, loadStringRes(Res.string.app_notification_mark_read_label), markReadPendingIntent) .setSemanticAction(NotificationCompat.Action.SEMANTIC_ACTION_MARK_AS_READ) .build() } @@ -676,7 +681,7 @@ object NotificationUtils { * it alone. It costs nothing visually: the shade hides any group with fewer than * two children and shows the child on its own. */ - private fun NotificationManager.sendGroupSummary( + private suspend fun NotificationManager.sendGroupSummary( category: NotificationCategory, groupKey: String, summaryId: Int, @@ -703,7 +708,7 @@ object NotificationUtils { .setStyle( NotificationCompat .InboxStyle() - .setSummaryText(stringRes(applicationContext, category.summaryTextRes)), + .setSummaryText(loadStringRes(category.summaryTextRes)), ) notify(summaryId, summaryBuilder.build()) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/RelayPurposeSummary.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/RelayPurposeSummary.kt index 4039025be3..d8cdd76e1b 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/RelayPurposeSummary.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/RelayPurposeSummary.kt @@ -22,10 +22,12 @@ package com.vitorpamplona.amethyst.service.notifications import android.content.Context import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.relayClient.subscriptions.SubPurpose import com.vitorpamplona.amethyst.commons.relayClient.subscriptions.purposes -import com.vitorpamplona.amethyst.ui.pluralStringRes +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_browsing +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_line +import com.vitorpamplona.amethyst.commons.ui.loadPluralStringRes import com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.common.SubPurposeLabels import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl @@ -51,7 +53,7 @@ object RelayPurposeSummary { * Lines for the expanded notification, busiest first. Empty when nothing is attributed yet — * the caller must then fall back to the bare count rather than render an empty section. */ - fun lines(ctx: Context): List { + suspend fun lines(ctx: Context): List { val client = Amethyst.instance.client val named = mutableMapOf>() val browsing = mutableSetOf() @@ -75,11 +77,11 @@ object RelayPurposeSummary { named.entries .sortedWith(compareByDescending>> { it.value.size }.thenBy { it.key.name }) .map { (purpose, relays) -> - pluralStringRes(ctx, R.plurals.relay_purpose_line, relays.size, ctx.getString(SubPurposeLabels.labelOf(purpose)), relays.size) + loadPluralStringRes(Res.plurals.relay_purpose_line, relays.size, ctx.getString(SubPurposeLabels.labelOf(purpose)), relays.size) }.toMutableList() if (browsing.isNotEmpty()) { - lines.add(pluralStringRes(ctx, R.plurals.relay_purpose_line, browsing.size, ctx.getString(R.string.relay_purpose_browsing), browsing.size)) + lines.add(loadPluralStringRes(Res.plurals.relay_purpose_line, browsing.size, ctx.getString(Res.string.relay_purpose_browsing), browsing.size)) } return lines } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/ArticleNotification.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/ArticleNotification.kt index 641b2970f4..f25f03ad42 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/ArticleNotification.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/ArticleNotification.kt @@ -21,8 +21,11 @@ package com.vitorpamplona.amethyst.service.notifications.renderers import android.content.Context -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.cache.LocalCache +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.app_notification_articles_channel_message +import com.vitorpamplona.amethyst.commons.resources.app_notification_articles_channel_message_highlight +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.notifications.NotificationCategory import com.vitorpamplona.amethyst.service.notifications.NotificationContent @@ -30,7 +33,6 @@ import com.vitorpamplona.amethyst.service.notifications.NotificationEnricher import com.vitorpamplona.amethyst.service.notifications.NotificationRoutes import com.vitorpamplona.amethyst.service.notifications.NotificationUtils.postStandard import com.vitorpamplona.amethyst.service.notifications.notificationManager -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip84Highlights.HighlightEvent @@ -56,9 +58,9 @@ object ArticleNotification { val isHighlight = event is HighlightEvent val titleRes = if (isHighlight) { - R.string.app_notification_articles_channel_message_highlight + Res.string.app_notification_articles_channel_message_highlight } else { - R.string.app_notification_articles_channel_message + Res.string.app_notification_articles_channel_message } val bodySource = if (event is HighlightEvent) event.quote() else event.content val rendered = NotificationContent.renderNoteText(bodySource) @@ -80,7 +82,7 @@ object ArticleNotification { nm.postStandard( category = NotificationCategory.ARTICLE, id = event.id, - messageTitle = stringRes(context, titleRes, author.toBestDisplayName()), + messageTitle = loadStringRes(titleRes, author.toBestDisplayName()), messageBody = body.text, time = event.createdAt, pictureUrl = author.profilePicture(), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/BadgeNotification.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/BadgeNotification.kt index 47f932ee0e..1311aa6853 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/BadgeNotification.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/BadgeNotification.kt @@ -21,15 +21,17 @@ package com.vitorpamplona.amethyst.service.notifications.renderers import android.content.Context -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.cache.LocalCache +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.app_notification_badges_channel_message +import com.vitorpamplona.amethyst.commons.resources.app_notification_badges_channel_message_from +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.notifications.NotificationCategory import com.vitorpamplona.amethyst.service.notifications.NotificationEnricher import com.vitorpamplona.amethyst.service.notifications.NotificationRoutes import com.vitorpamplona.amethyst.service.notifications.NotificationUtils.postStandard import com.vitorpamplona.amethyst.service.notifications.notificationManager -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip58Badges.award.BadgeAwardEvent /** @@ -61,8 +63,8 @@ object BadgeNotification { nm.postStandard( category = NotificationCategory.BADGE, id = event.id, - messageTitle = stringRes(context, R.string.app_notification_badges_channel_message), - messageBody = stringRes(context, R.string.app_notification_badges_channel_message_from, issuer.toBestDisplayName()), + messageTitle = loadStringRes(Res.string.app_notification_badges_channel_message), + messageBody = loadStringRes(Res.string.app_notification_badges_channel_message_from, issuer.toBestDisplayName()), time = event.createdAt, pictureUrl = issuer.profilePicture(), uri = uri, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/BuzzDmNotification.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/BuzzDmNotification.kt index 97f1e1fc8a..bb9de23cb3 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/BuzzDmNotification.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/BuzzDmNotification.kt @@ -21,10 +21,12 @@ package com.vitorpamplona.amethyst.service.notifications.renderers import android.content.Context -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.nip29RelayGroups.RelayGroupChannel +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.app_notification_new_message +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.notifications.NotificationCategory import com.vitorpamplona.amethyst.service.notifications.NotificationEnricher @@ -32,7 +34,6 @@ import com.vitorpamplona.amethyst.service.notifications.NotificationRoutes import com.vitorpamplona.amethyst.service.notifications.NotificationUtils.Conversation import com.vitorpamplona.amethyst.service.notifications.NotificationUtils.postConversation import com.vitorpamplona.amethyst.service.notifications.notificationManager -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.buzz.workspace.buzzParticipants import com.vitorpamplona.quartz.buzz.workspace.isBuzzDm import com.vitorpamplona.quartz.nip01Core.core.Event @@ -78,7 +79,7 @@ object BuzzDmNotification { val channel = buzzDmChannelForMe(note, account.signer.pubKey) ?: return val sender = LocalCache.getOrCreateUser(event.pubKey) - val body = event.content.takeIf { it.isNotBlank() } ?: stringRes(context, R.string.app_notification_new_message) + val body = event.content.takeIf { it.isNotBlank() } ?: loadStringRes(Res.string.app_notification_new_message) val accountNpub = NotificationRoutes.accountNpub(account) // The channel's kind-39000 naddr routes straight to the chatroom via the diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/ChessNotification.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/ChessNotification.kt index f29b7e028a..16e90743e8 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/ChessNotification.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/ChessNotification.kt @@ -21,9 +21,10 @@ package com.vitorpamplona.amethyst.service.notifications.renderers import android.content.Context -import androidx.annotation.StringRes -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.cache.LocalCache +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.app_notification_chess_channel_name +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.isDebug import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.notifications.NotificationCategory @@ -31,8 +32,8 @@ import com.vitorpamplona.amethyst.service.notifications.NotificationEnricher import com.vitorpamplona.amethyst.service.notifications.NotificationRoutes import com.vitorpamplona.amethyst.service.notifications.NotificationUtils.postStandard import com.vitorpamplona.amethyst.service.notifications.notificationManager -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip64Chess.baseEvent.BaseChessEvent +import org.jetbrains.compose.resources.StringResource /** * Chess game notifications — NIP-64 challenge-accepted and move events. Rendered @@ -44,7 +45,7 @@ object ChessNotification { context: Context, account: Account, event: BaseChessEvent, - @StringRes contentRes: Int, + contentRes: StringResource, ) { // NIP-64 chess is a debug-only feature for now; don't notify in release. if (!isDebug) return @@ -65,8 +66,8 @@ object ChessNotification { nm.postStandard( category = NotificationCategory.CHESS, id = event.id, - messageTitle = stringRes(context, R.string.app_notification_chess_channel_name), - messageBody = stringRes(context, contentRes, author.toBestDisplayName()), + messageTitle = loadStringRes(Res.string.app_notification_chess_channel_name), + messageBody = loadStringRes(contentRes, author.toBestDisplayName()), time = event.createdAt, pictureUrl = author.profilePicture(), uri = uri, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/CodeNotification.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/CodeNotification.kt index cad5666a60..9589ff6393 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/CodeNotification.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/CodeNotification.kt @@ -21,8 +21,24 @@ package com.vitorpamplona.amethyst.service.notifications.renderers import android.content.Context -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.cache.LocalCache +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.app_notification_code_channel_message_issue +import com.vitorpamplona.amethyst.commons.resources.app_notification_code_channel_message_patch +import com.vitorpamplona.amethyst.commons.resources.app_notification_code_channel_message_pr +import com.vitorpamplona.amethyst.commons.resources.app_notification_code_channel_message_pr_update +import com.vitorpamplona.amethyst.commons.resources.app_notification_code_channel_message_reply +import com.vitorpamplona.amethyst.commons.resources.app_notification_code_channel_message_status_applied +import com.vitorpamplona.amethyst.commons.resources.app_notification_code_channel_message_status_applied_issue +import com.vitorpamplona.amethyst.commons.resources.app_notification_code_channel_message_status_applied_patch +import com.vitorpamplona.amethyst.commons.resources.app_notification_code_channel_message_status_applied_pr +import com.vitorpamplona.amethyst.commons.resources.app_notification_code_channel_message_status_closed +import com.vitorpamplona.amethyst.commons.resources.app_notification_code_channel_message_status_closed_issue +import com.vitorpamplona.amethyst.commons.resources.app_notification_code_channel_message_status_closed_patch +import com.vitorpamplona.amethyst.commons.resources.app_notification_code_channel_message_status_closed_pr +import com.vitorpamplona.amethyst.commons.resources.app_notification_code_channel_message_status_draft +import com.vitorpamplona.amethyst.commons.resources.app_notification_code_channel_message_status_open +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.notifications.NotificationCategory import com.vitorpamplona.amethyst.service.notifications.NotificationContent @@ -30,7 +46,6 @@ import com.vitorpamplona.amethyst.service.notifications.NotificationEnricher import com.vitorpamplona.amethyst.service.notifications.NotificationRoutes import com.vitorpamplona.amethyst.service.notifications.NotificationUtils.postStandard import com.vitorpamplona.amethyst.service.notifications.notificationManager -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip34Git.issue.GitIssueEvent import com.vitorpamplona.quartz.nip34Git.patch.GitPatchEvent import com.vitorpamplona.quartz.nip34Git.pr.GitPullRequestEvent @@ -61,25 +76,25 @@ object CodeNotification { context: Context, account: Account, event: GitIssueEvent, - ) = post(context, account, event.id, event.createdAt, event.pubKey, R.string.app_notification_code_channel_message_issue, event.subject() ?: event.content) + ) = post(context, account, event.id, event.createdAt, event.pubKey, Res.string.app_notification_code_channel_message_issue, event.subject() ?: event.content) suspend fun notify( context: Context, account: Account, event: GitPatchEvent, - ) = post(context, account, event.id, event.createdAt, event.pubKey, R.string.app_notification_code_channel_message_patch, event.subject() ?: event.content) + ) = post(context, account, event.id, event.createdAt, event.pubKey, Res.string.app_notification_code_channel_message_patch, event.subject() ?: event.content) suspend fun notify( context: Context, account: Account, event: GitPullRequestEvent, - ) = post(context, account, event.id, event.createdAt, event.pubKey, R.string.app_notification_code_channel_message_pr, event.subject() ?: event.content) + ) = post(context, account, event.id, event.createdAt, event.pubKey, Res.string.app_notification_code_channel_message_pr, event.subject() ?: event.content) suspend fun notify( context: Context, account: Account, event: GitPullRequestUpdateEvent, - ) = post(context, account, event.id, event.createdAt, event.pubKey, R.string.app_notification_code_channel_message_pr_update, event.content) + ) = post(context, account, event.id, event.createdAt, event.pubKey, Res.string.app_notification_code_channel_message_pr_update, event.content) // GitReplyEvent (kind 1622) is deprecated in favour of NIP-22 comments, but // events already on relays still arrive and still have to be rendered. @@ -88,13 +103,13 @@ object CodeNotification { context: Context, account: Account, event: GitReplyEvent, - ) = post(context, account, event.id, event.createdAt, event.pubKey, R.string.app_notification_code_channel_message_reply, event.content) + ) = post(context, account, event.id, event.createdAt, event.pubKey, Res.string.app_notification_code_channel_message_reply, event.content) suspend fun notify( context: Context, account: Account, event: GitStatusOpenEvent, - ) = post(context, account, event.id, event.createdAt, event.pubKey, R.string.app_notification_code_channel_message_status_open, event.content) + ) = post(context, account, event.id, event.createdAt, event.pubKey, Res.string.app_notification_code_channel_message_status_open, event.content) suspend fun notify( context: Context, @@ -109,10 +124,10 @@ object CodeNotification { titleRes = titleForStatusOnTarget( event.rootEventId(), - pr = R.string.app_notification_code_channel_message_status_applied_pr, - patch = R.string.app_notification_code_channel_message_status_applied_patch, - issue = R.string.app_notification_code_channel_message_status_applied_issue, - fallback = R.string.app_notification_code_channel_message_status_applied, + pr = Res.string.app_notification_code_channel_message_status_applied_pr, + patch = Res.string.app_notification_code_channel_message_status_applied_patch, + issue = Res.string.app_notification_code_channel_message_status_applied_issue, + fallback = Res.string.app_notification_code_channel_message_status_applied, ), subject = event.content, ) @@ -130,10 +145,10 @@ object CodeNotification { titleRes = titleForStatusOnTarget( event.rootEventId(), - pr = R.string.app_notification_code_channel_message_status_closed_pr, - patch = R.string.app_notification_code_channel_message_status_closed_patch, - issue = R.string.app_notification_code_channel_message_status_closed_issue, - fallback = R.string.app_notification_code_channel_message_status_closed, + pr = Res.string.app_notification_code_channel_message_status_closed_pr, + patch = Res.string.app_notification_code_channel_message_status_closed_patch, + issue = Res.string.app_notification_code_channel_message_status_closed_issue, + fallback = Res.string.app_notification_code_channel_message_status_closed, ), subject = event.content, ) @@ -142,7 +157,7 @@ object CodeNotification { context: Context, account: Account, event: GitStatusDraftEvent, - ) = post(context, account, event.id, event.createdAt, event.pubKey, R.string.app_notification_code_channel_message_status_draft, event.content) + ) = post(context, account, event.id, event.createdAt, event.pubKey, Res.string.app_notification_code_channel_message_status_draft, event.content) /** * Pick a title string for a status event based on the *target*'s kind, so @@ -196,7 +211,7 @@ object CodeNotification { nm.postStandard( category = NotificationCategory.CODE, id = id, - messageTitle = stringRes(context, titleRes, author.toBestDisplayName()), + messageTitle = loadStringRes(titleRes, author.toBestDisplayName()), messageBody = body, time = createdAt, pictureUrl = author.profilePicture(), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/GroupMessageNotification.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/GroupMessageNotification.kt index c28ee82a8a..fe2b5b62bd 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/GroupMessageNotification.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/GroupMessageNotification.kt @@ -21,8 +21,11 @@ package com.vitorpamplona.amethyst.service.notifications.renderers import android.content.Context -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.cache.LocalCache +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.app_notification_added_to_group +import com.vitorpamplona.amethyst.commons.resources.app_notification_new_message +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.notifications.NotificationCategory import com.vitorpamplona.amethyst.service.notifications.NotificationEnricher @@ -32,7 +35,6 @@ import com.vitorpamplona.amethyst.service.notifications.NotificationUtils.ReplyA import com.vitorpamplona.amethyst.service.notifications.NotificationUtils.postConversation import com.vitorpamplona.amethyst.service.notifications.notificationManager import com.vitorpamplona.amethyst.ui.MainActivity -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.marmot.mip02Welcome.WelcomeEvent import com.vitorpamplona.quartz.nipC7Chats.ChatEvent import com.vitorpamplona.quartz.utils.TimeUtils @@ -58,7 +60,7 @@ object GroupMessageNotification { val chatroom = account.marmotGroupList.getOrCreateGroup(nostrGroupId) val groupName = chatroom.displayName.value?.takeIf { it.isNotBlank() } ?: DEFAULT_GROUP_NAME val sender = LocalCache.getOrCreateUser(innerEvent.pubKey) - val fallbackBody = innerEvent.content.takeIf { it.isNotBlank() } ?: stringRes(context, R.string.app_notification_new_message) + val fallbackBody = innerEvent.content.takeIf { it.isNotBlank() } ?: loadStringRes(Res.string.app_notification_new_message) val accountNpub = NotificationRoutes.accountNpub(account) val uri = NotificationRoutes.marmotUri(nostrGroupId, accountNpub) @@ -140,7 +142,7 @@ object GroupMessageNotification { id = event.id, senderName = inviter.toBestDisplayName(), pictureUrl = inviter.profilePicture(), - messageBody = stringRes(context, R.string.app_notification_added_to_group, groupName), + messageBody = loadStringRes(Res.string.app_notification_added_to_group, groupName), time = event.createdAt, uri = uri, applicationContext = context, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/MediaNotification.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/MediaNotification.kt index 3308e2f0f7..df898a6dca 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/MediaNotification.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/MediaNotification.kt @@ -21,8 +21,11 @@ package com.vitorpamplona.amethyst.service.notifications.renderers import android.content.Context -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.cache.LocalCache +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.app_notification_media_channel_message_photo +import com.vitorpamplona.amethyst.commons.resources.app_notification_media_channel_message_video +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.notifications.NotificationCategory import com.vitorpamplona.amethyst.service.notifications.NotificationContent @@ -30,7 +33,6 @@ import com.vitorpamplona.amethyst.service.notifications.NotificationEnricher import com.vitorpamplona.amethyst.service.notifications.NotificationRoutes import com.vitorpamplona.amethyst.service.notifications.NotificationUtils.postStandard import com.vitorpamplona.amethyst.service.notifications.notificationManager -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip71Video.VideoEvent @@ -72,14 +74,14 @@ object MediaNotification { val user = author.toBestDisplayName() val titleRes = if (isVideo) { - R.string.app_notification_media_channel_message_video + Res.string.app_notification_media_channel_message_video } else { - R.string.app_notification_media_channel_message_photo + Res.string.app_notification_media_channel_message_photo } nm.postStandard( category = NotificationCategory.MEDIA, id = event.id, - messageTitle = stringRes(context, titleRes, user), + messageTitle = loadStringRes(titleRes, user), messageBody = NotificationContent.resolveMentions(event.content, 140).text, time = event.createdAt, pictureUrl = author.profilePicture(), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/MentionNotification.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/MentionNotification.kt index 269d7d8774..c088acfbbc 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/MentionNotification.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/MentionNotification.kt @@ -21,9 +21,10 @@ package com.vitorpamplona.amethyst.service.notifications.renderers import android.content.Context -import androidx.annotation.StringRes -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.cache.LocalCache +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.app_notification_mentions_channel_message +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.notifications.NotificationCategory import com.vitorpamplona.amethyst.service.notifications.NotificationContent @@ -31,8 +32,8 @@ import com.vitorpamplona.amethyst.service.notifications.NotificationEnricher import com.vitorpamplona.amethyst.service.notifications.NotificationRoutes import com.vitorpamplona.amethyst.service.notifications.NotificationUtils.postStandard import com.vitorpamplona.amethyst.service.notifications.notificationManager -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip01Core.core.Event +import org.jetbrains.compose.resources.StringResource /** * Text-mention notifications — someone mentioned, quoted, or cited you in a note @@ -49,7 +50,7 @@ object MentionNotification { account: Account, event: Event, category: NotificationCategory = NotificationCategory.MENTION, - @StringRes titleRes: Int = R.string.app_notification_mentions_channel_message, + titleRes: StringResource = Res.string.app_notification_mentions_channel_message, ) { val note = LocalCache.getNoteIfExists(event.id) ?: return if (!account.isAcceptable(note)) return @@ -80,7 +81,7 @@ object MentionNotification { nm.postStandard( category = category, id = event.id, - messageTitle = stringRes(context, titleRes, author.toBestDisplayName()), + messageTitle = loadStringRes(titleRes, author.toBestDisplayName()), messageBody = body.text, time = event.createdAt, pictureUrl = author.profilePicture(), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/NwcPaymentNotifier.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/NwcPaymentNotifier.kt index 8c13cb2c15..d0c217ecf8 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/NwcPaymentNotifier.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/NwcPaymentNotifier.kt @@ -21,14 +21,15 @@ package com.vitorpamplona.amethyst.service.notifications.renderers import android.content.Context -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.app_notification_payments_channel_message +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.notifications.NotificationCategory import com.vitorpamplona.amethyst.service.notifications.NotificationRoutes import com.vitorpamplona.amethyst.service.notifications.NotificationUtils.postStandard import com.vitorpamplona.amethyst.service.notifications.notificationManager import com.vitorpamplona.amethyst.ui.note.showAmount -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip47WalletConnect.rpc.NwcTransaction import com.vitorpamplona.quartz.utils.TimeUtils @@ -57,7 +58,7 @@ object NwcPaymentNotifier { val id = tx.payment_hash ?: tx.invoice ?: tx.created_at?.toString() ?: return val time = tx.settled_at ?: tx.created_at ?: TimeUtils.now() - val title = stringRes(context, R.string.app_notification_payments_channel_message, amount) + val title = loadStringRes(Res.string.app_notification_payments_channel_message, amount) val comment = tx.parsedMetadata()?.displayComment() ?: tx.displayDescription() val body = comment ?: title diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/ReactionNotification.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/ReactionNotification.kt index 7b766c07f9..ef9dce7e28 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/ReactionNotification.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/ReactionNotification.kt @@ -21,8 +21,11 @@ package com.vitorpamplona.amethyst.service.notifications.renderers import android.content.Context -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.cache.LocalCache +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.app_notification_reactions_channel_message +import com.vitorpamplona.amethyst.commons.resources.app_notification_reactions_channel_message_for +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.notifications.NotificationCategory import com.vitorpamplona.amethyst.service.notifications.NotificationContent @@ -30,7 +33,6 @@ import com.vitorpamplona.amethyst.service.notifications.NotificationEnricher import com.vitorpamplona.amethyst.service.notifications.NotificationRoutes import com.vitorpamplona.amethyst.service.notifications.NotificationUtils.postStandard import com.vitorpamplona.amethyst.service.notifications.notificationManager -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip25Reactions.ReactionEvent import com.vitorpamplona.quartz.nip30CustomEmoji.CustomEmoji @@ -81,9 +83,9 @@ object ReactionNotification { val reactedContent = NotificationContent.excerpt(reactedNote?.event?.content, 140) val body = if (reactedContent.isNotBlank()) { - stringRes(context, R.string.app_notification_reactions_channel_message_for, reactedContent) + loadStringRes(Res.string.app_notification_reactions_channel_message_for, reactedContent) } else { - stringRes(context, R.string.app_notification_reactions_channel_message, user) + loadStringRes(Res.string.app_notification_reactions_channel_message, user) } nm.postStandard( category = NotificationCategory.REACTION, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/ReplyNotification.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/ReplyNotification.kt index f177dbaeb3..14119485f4 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/ReplyNotification.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/ReplyNotification.kt @@ -21,9 +21,11 @@ package com.vitorpamplona.amethyst.service.notifications.renderers import android.content.Context -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.cache.LocalCache +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.app_notification_me +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.notifications.NotificationCategory import com.vitorpamplona.amethyst.service.notifications.NotificationContent @@ -35,7 +37,6 @@ import com.vitorpamplona.amethyst.service.notifications.NotificationUtils.postCo import com.vitorpamplona.amethyst.service.notifications.NotificationUtils.replyGroupKeyFor import com.vitorpamplona.amethyst.service.notifications.NotificationUtils.replySummaryIdFor import com.vitorpamplona.amethyst.service.notifications.notificationManager -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip01Core.core.Event /** @@ -95,7 +96,7 @@ object ReplyNotification { ParentMessage( senderName = if (parentIsFromMe || parentAuthor == null) { - stringRes(context, R.string.app_notification_me) + loadStringRes(Res.string.app_notification_me) } else { parentAuthor.toBestDisplayName() }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/RepostNotification.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/RepostNotification.kt index ab1bff0521..ad780d38b5 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/RepostNotification.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/RepostNotification.kt @@ -21,8 +21,10 @@ package com.vitorpamplona.amethyst.service.notifications.renderers import android.content.Context -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.cache.LocalCache +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.app_notification_reposts_channel_message +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.notifications.NotificationCategory import com.vitorpamplona.amethyst.service.notifications.NotificationContent @@ -30,7 +32,6 @@ import com.vitorpamplona.amethyst.service.notifications.NotificationEnricher import com.vitorpamplona.amethyst.service.notifications.NotificationRoutes import com.vitorpamplona.amethyst.service.notifications.NotificationUtils.postStandard import com.vitorpamplona.amethyst.service.notifications.notificationManager -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip18Reposts.GenericRepostEvent import com.vitorpamplona.quartz.nip18Reposts.RepostEvent @@ -79,7 +80,7 @@ object RepostNotification { nm.postStandard( category = NotificationCategory.REPOST, id = id, - messageTitle = stringRes(context, R.string.app_notification_reposts_channel_message, booster.toBestDisplayName()), + messageTitle = loadStringRes(Res.string.app_notification_reposts_channel_message, booster.toBestDisplayName()), messageBody = NotificationContent.excerpt(boostedNote?.event?.content, 140), time = createdAt, pictureUrl = booster.profilePicture(), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/ZapNotification.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/ZapNotification.kt index fb1968df12..8ab1a1bf71 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/ZapNotification.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/notifications/renderers/ZapNotification.kt @@ -21,10 +21,16 @@ package com.vitorpamplona.amethyst.service.notifications.renderers import android.content.Context -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.cache.LocalCache +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.app_notification_nutzap_channel_message_from +import com.vitorpamplona.amethyst.commons.resources.app_notification_onchain_channel_message_from +import com.vitorpamplona.amethyst.commons.resources.app_notification_zaps_channel_message +import com.vitorpamplona.amethyst.commons.resources.app_notification_zaps_channel_message_for +import com.vitorpamplona.amethyst.commons.resources.app_notification_zaps_channel_message_from +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.notifications.NotificationCategory import com.vitorpamplona.amethyst.service.notifications.NotificationContent @@ -33,7 +39,6 @@ import com.vitorpamplona.amethyst.service.notifications.NotificationRoutes import com.vitorpamplona.amethyst.service.notifications.NotificationUtils.postStandard import com.vitorpamplona.amethyst.service.notifications.notificationManager import com.vitorpamplona.amethyst.ui.note.showAmount -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip57Zaps.LnZapEvent import com.vitorpamplona.quartz.nip57Zaps.LnZapRequestEvent import com.vitorpamplona.quartz.nip61Nutzaps.nutzap.NutzapEvent @@ -76,7 +81,7 @@ object ZapNotification { sender = sender, zappedNote = zappedNote, title = { _ -> zapTitle(context, amount, comment) }, - body = { user, excerpt -> fromLine(context, R.string.app_notification_zaps_channel_message_from, user, excerpt) }, + body = { user, excerpt -> fromLine(context, Res.string.app_notification_zaps_channel_message_from, user, excerpt) }, ) } @@ -96,7 +101,7 @@ object ZapNotification { createdAt = event.createdAt, sender = sender, zappedNote = zappedNote, - title = { user -> stringRes(context, R.string.app_notification_nutzap_channel_message_from, user) }, + title = { user -> loadStringRes(Res.string.app_notification_nutzap_channel_message_from, user) }, body = { user, excerpt -> excerpt.ifBlank { user } }, ) } @@ -120,12 +125,12 @@ object ZapNotification { zappedNote = zappedNote, title = { user -> if (sats != null) { - stringRes(context, R.string.app_notification_zaps_channel_message, showAmount(sats.toBigDecimal())) + loadStringRes(Res.string.app_notification_zaps_channel_message, showAmount(sats.toBigDecimal())) } else { - stringRes(context, R.string.app_notification_onchain_channel_message_from, user) + loadStringRes(Res.string.app_notification_onchain_channel_message_from, user) } }, - body = { user, excerpt -> fromLine(context, R.string.app_notification_onchain_channel_message_from, user, excerpt) }, + body = { user, excerpt -> fromLine(context, Res.string.app_notification_onchain_channel_message_from, user, excerpt) }, ) } @@ -167,24 +172,24 @@ object ZapNotification { } } - private fun zapTitle( + private suspend fun zapTitle( context: Context, amount: String, comment: String?, ): String { - val base = stringRes(context, R.string.app_notification_zaps_channel_message, amount) + val base = loadStringRes(Res.string.app_notification_zaps_channel_message, amount) return if (comment != null) "$base ($comment)" else base } - private fun fromLine( + private suspend fun fromLine( context: Context, fromRes: Int, user: String, excerpt: String, ): String { - var content = stringRes(context, fromRes, user) + var content = loadStringRes(fromRes, user) if (excerpt.isNotBlank()) { - content += " " + stringRes(context, R.string.app_notification_zaps_channel_message_for, excerpt) + content += " " + loadStringRes(Res.string.app_notification_zaps_channel_message_for, excerpt) } return content } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/RenderPlaybackError.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/RenderPlaybackError.kt index b0322cf50c..17c97f7094 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/RenderPlaybackError.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/RenderPlaybackError.kt @@ -43,9 +43,12 @@ import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.error_video_open_in_browser +import com.vitorpamplona.amethyst.commons.resources.error_video_playback_failed +import com.vitorpamplona.amethyst.commons.resources.error_video_playback_failed_description import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.utils.Log @@ -109,7 +112,7 @@ fun RenderPlaybackError( } Text( - text = stringRes(R.string.error_video_playback_failed), + text = stringRes(Res.string.error_video_playback_failed), color = Color.White, style = MaterialTheme.typography.titleSmall, textAlign = TextAlign.Center, @@ -119,7 +122,7 @@ fun RenderPlaybackError( Spacer(Modifier.height(4.dp)) Text( - text = stringRes(R.string.error_video_playback_failed_description, errorCodeName), + text = stringRes(Res.string.error_video_playback_failed_description, errorCodeName), color = Color.White.copy(alpha = 0.85f), style = MaterialTheme.typography.bodySmall, textAlign = TextAlign.Center, @@ -143,7 +146,7 @@ fun RenderPlaybackError( modifier = Modifier.size(18.dp), ) Spacer(Modifier.size(8.dp)) - Text(stringRes(R.string.error_video_open_in_browser)) + Text(stringRes(Res.string.error_video_open_in_browser)) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/CaptionLanguageControls.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/CaptionLanguageControls.kt index 8da9a6c2ea..0181d373e0 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/CaptionLanguageControls.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/CaptionLanguageControls.kt @@ -39,7 +39,9 @@ import androidx.media3.common.Player import androidx.media3.common.TrackSelectionOverride import androidx.media3.common.Tracks import androidx.media3.common.util.UnstableApi -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.captions_off +import com.vitorpamplona.amethyst.commons.resources.captions_unnamed_track import com.vitorpamplona.amethyst.ui.stringRes import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.toImmutableList @@ -130,7 +132,7 @@ internal fun CaptionLanguagePopup( val baseColors = ButtonDefaults.textButtonColors() val contentColor = MaterialTheme.colorScheme.onBackground val colors = remember(baseColors, contentColor) { baseColors.copy(contentColor = contentColor) } - val unnamed = stringRes(R.string.captions_unnamed_track) + val unnamed = stringRes(Res.string.captions_unnamed_track) Column( modifier = Modifier.background(MaterialTheme.colorScheme.background), @@ -139,7 +141,7 @@ internal fun CaptionLanguagePopup( ) { TextButton(colors = colors, onClick = onSelectOff) { Text( - stringRes(R.string.captions_off), + stringRes(Res.string.captions_off), fontWeight = if (!captionsEnabled) FontWeight(1000) else FontWeight(400), ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/MuteButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/MuteButton.kt index 787c7e30a3..fa14c6bc30 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/MuteButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/MuteButton.kt @@ -38,9 +38,11 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.tooling.preview.Preview -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.mute_button +import com.vitorpamplona.amethyst.commons.resources.muted_button import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.BitcoinOrange import com.vitorpamplona.amethyst.ui.theme.Size30Modifier @@ -123,7 +125,7 @@ fun MuteButton( fun MutedIcon() { Icon( symbol = MaterialSymbols.AutoMirrored.VolumeOff, - contentDescription = stringRes(id = R.string.muted_button), + contentDescription = stringRes(id = Res.string.muted_button), tint = MaterialTheme.colorScheme.onBackground, modifier = Size30Modifier, ) @@ -133,7 +135,7 @@ fun MutedIcon() { fun MuteIcon() { Icon( symbol = MaterialSymbols.AutoMirrored.VolumeUp, - contentDescription = stringRes(id = R.string.mute_button), + contentDescription = stringRes(id = Res.string.mute_button), tint = MaterialTheme.colorScheme.onBackground, modifier = Size30Modifier, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/OverflowMenu.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/OverflowMenu.kt index 5615a35f27..ae90c7d05d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/OverflowMenu.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/OverflowMenu.kt @@ -37,14 +37,18 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.tooling.preview.Preview -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.call_settings_video_quality +import com.vitorpamplona.amethyst.commons.resources.download_to_phone +import com.vitorpamplona.amethyst.commons.resources.more_options +import com.vitorpamplona.amethyst.commons.resources.mute_button +import com.vitorpamplona.amethyst.commons.resources.muted_button import com.vitorpamplona.amethyst.commons.resources.picture_in_picture import com.vitorpamplona.amethyst.commons.resources.playback_actions_dialog_title +import com.vitorpamplona.amethyst.commons.resources.share_or_save import com.vitorpamplona.amethyst.commons.resources.video_player_settings_action_fullscreen import com.vitorpamplona.amethyst.model.VideoPlayerAction import com.vitorpamplona.amethyst.ui.components.M3ActionDialog @@ -165,7 +169,7 @@ fun OverflowMenuButton( ) { Icon( symbol = MaterialSymbols.MoreVert, - contentDescription = stringRes(R.string.more_options), + contentDescription = stringRes(Res.string.more_options), tint = MaterialTheme.colorScheme.onBackground, modifier = Size20Modifier, ) @@ -195,7 +199,7 @@ fun OverflowMenuButton( VideoPlayerAction.Mute -> { M3ActionRow( icon = if (startingMuteState) MaterialSymbols.AutoMirrored.VolumeOff else MaterialSymbols.AutoMirrored.VolumeUp, - text = if (startingMuteState) stringRes(R.string.muted_button) else stringRes(R.string.mute_button), + text = if (startingMuteState) stringRes(Res.string.muted_button) else stringRes(Res.string.mute_button), ) { menuExpanded.value = false onMuteClick() @@ -215,7 +219,7 @@ fun OverflowMenuButton( VideoPlayerAction.Share -> { M3ActionRow( icon = MaterialSymbols.Share, - text = stringRes(R.string.share_or_save), + text = stringRes(Res.string.share_or_save), ) { menuExpanded.value = false onShareClick() @@ -225,7 +229,7 @@ fun OverflowMenuButton( VideoPlayerAction.Download -> { M3ActionRow( icon = MaterialSymbols.SaveAlt, - text = stringRes(R.string.download_to_phone), + text = stringRes(Res.string.download_to_phone), ) { menuExpanded.value = false onSaveClick() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/PlayPauseButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/PlayPauseButton.kt index 4addbc6320..7ae2356310 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/PlayPauseButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/PlayPauseButton.kt @@ -39,9 +39,11 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.pause +import com.vitorpamplona.amethyst.commons.resources.play import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.BitcoinOrange import com.vitorpamplona.amethyst.ui.theme.PlayIconSize @@ -117,13 +119,13 @@ fun PlayPauseButton( Icon( symbol = MaterialSymbols.PlayArrow, modifier = Size50Modifier, - contentDescription = stringRes(R.string.play), + contentDescription = stringRes(Res.string.play), ) } else { Icon( symbol = MaterialSymbols.Pause, modifier = Size50Modifier, - contentDescription = stringRes(R.string.pause), + contentDescription = stringRes(Res.string.pause), ) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/RenderTopButtons.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/RenderTopButtons.kt index cd27ed83fe..a96899582c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/RenderTopButtons.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/RenderTopButtons.kt @@ -52,12 +52,17 @@ import androidx.media3.common.Tracks import com.google.accompanist.permissions.ExperimentalPermissionsApi import com.vitorpamplona.amethyst.Amethyst import com.vitorpamplona.amethyst.BuildConfig -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.captions_turn_off +import com.vitorpamplona.amethyst.commons.resources.captions_turn_on +import com.vitorpamplona.amethyst.commons.resources.cast_stop_casting +import com.vitorpamplona.amethyst.commons.resources.cast_to_device +import com.vitorpamplona.amethyst.commons.resources.download_to_phone import com.vitorpamplona.amethyst.commons.resources.picture_in_picture +import com.vitorpamplona.amethyst.commons.resources.share_or_save import com.vitorpamplona.amethyst.commons.richtext.MediaUrlVideo import com.vitorpamplona.amethyst.model.VideoButtonLocation import com.vitorpamplona.amethyst.model.VideoPlayerAction @@ -306,7 +311,7 @@ fun RenderTopButtons( val buttonItems by accountViewModel.videoPlayerButtonItemsFlow().collectAsStateWithLifecycle() val captionsIcon = if (captionsEnabled) MaterialSymbols.ClosedCaption else MaterialSymbols.ClosedCaptionDisabled val captionsContentDescription = - stringRes(if (captionsEnabled) R.string.captions_turn_off else R.string.captions_turn_on) + stringRes(if (captionsEnabled) Res.string.captions_turn_off else Res.string.captions_turn_on) val shareDialogVisible = remember { mutableStateOf(false) } val castDialogVisible = remember { mutableStateOf(false) } val castSessionState by Amethyst.instance.castRegistry.sessionState @@ -315,7 +320,7 @@ fun RenderTopButtons( (castSessionState as? CastSessionState.Casting)?.request?.url == mediaData.videoUri val castIcon = if (isThisVideoCasting) MaterialSymbols.CastConnected else MaterialSymbols.Cast val castContentDescription = - stringRes(if (isThisVideoCasting) R.string.cast_stop_casting else R.string.cast_to_device) + stringRes(if (isThisVideoCasting) Res.string.cast_stop_casting else Res.string.cast_to_device) val onCastButtonClick = remember(isThisVideoCasting) { { @@ -419,7 +424,7 @@ fun RenderTopButtons( AnimatedTopBarIconButton( controllerVisible = controllerVisible, symbol = MaterialSymbols.Share, - contentDescription = stringRes(R.string.share_or_save), + contentDescription = stringRes(Res.string.share_or_save), onClick = { shareDialogVisible.value = true }, ) } @@ -428,7 +433,7 @@ fun RenderTopButtons( AnimatedTopBarIconButton( controllerVisible = controllerVisible, symbol = MaterialSymbols.SaveAlt, - contentDescription = stringRes(R.string.download_to_phone), + contentDescription = stringRes(Res.string.download_to_phone), onClick = saveAction, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/SaveMediaButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/SaveMediaButton.kt index 342514ff2b..3774439df5 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/SaveMediaButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/SaveMediaButton.kt @@ -46,9 +46,11 @@ import androidx.compose.ui.tooling.preview.Preview import com.google.accompanist.permissions.ExperimentalPermissionsApi import com.google.accompanist.permissions.isGranted import com.google.accompanist.permissions.rememberPermissionState -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.download_to_phone +import com.vitorpamplona.amethyst.commons.resources.video_download_has_started_toast import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.BitcoinOrange import com.vitorpamplona.amethyst.ui.theme.PinBottomIconSize @@ -100,7 +102,7 @@ fun rememberSaveMediaAction(onSaveClick: (Context) -> Unit): () -> Unit { Toast .makeText( context, - stringRes(context, R.string.video_download_has_started_toast), + stringRes(Res.string.video_download_has_started_toast), Toast.LENGTH_SHORT, ).show() } @@ -131,7 +133,7 @@ fun SaveMediaButton(onSaveClick: (localContext: Context) -> Unit) { Icon( symbol = MaterialSymbols.Download, modifier = Size20Modifier, - contentDescription = stringRes(R.string.download_to_phone), + contentDescription = stringRes(Res.string.download_to_phone), ) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/ShareButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/ShareButton.kt index 58f085d3be..a88b7bfb47 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/ShareButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/ShareButton.kt @@ -38,9 +38,10 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.tooling.preview.Preview -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.share_or_save import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.BitcoinOrange import com.vitorpamplona.amethyst.ui.theme.PinBottomIconSize @@ -99,7 +100,7 @@ fun ShareButton(innerAction: @Composable (MutableState, () -> Unit) -> Icon( symbol = MaterialSymbols.Share, modifier = Size20Modifier, - contentDescription = stringRes(R.string.share_or_save), + contentDescription = stringRes(Res.string.share_or_save), ) innerAction(popupExpanded) { popupExpanded.value = false } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/SkipButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/SkipButton.kt index 4ede63da3a..bd2aed613b 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/SkipButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/controls/SkipButton.kt @@ -33,9 +33,11 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.skip_back +import com.vitorpamplona.amethyst.commons.resources.skip_forward import com.vitorpamplona.amethyst.service.playback.composable.SKIP_SECONDS import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.BitcoinOrange @@ -89,7 +91,7 @@ fun SkipButton( onClick: () -> Unit, ) { val icon = if (isForward) MaterialSymbols.Forward10 else MaterialSymbols.Replay10 - val label = if (isForward) stringRes(R.string.skip_forward, SKIP_SECONDS) else stringRes(R.string.skip_back, SKIP_SECONDS) + val label = if (isForward) stringRes(Res.string.skip_forward, SKIP_SECONDS) else stringRes(Res.string.skip_back, SKIP_SECONDS) val tint = if (enabled) Color.White else Color.White.copy(alpha = 0.38f) IconButton(onClick = onClick, enabled = enabled, modifier = Modifier.size(48.dp)) { Icon(symbol = icon, contentDescription = label, tint = tint, modifier = Modifier.size(32.dp)) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/pip/VideoPlayerActions.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/pip/VideoPlayerActions.kt index 5f0a1afa4b..4c7cef696d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/pip/VideoPlayerActions.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/pip/VideoPlayerActions.kt @@ -27,8 +27,12 @@ import android.content.Context import android.content.Intent import android.content.IntentFilter import android.graphics.drawable.Icon -import com.vitorpamplona.amethyst.R -import com.vitorpamplona.amethyst.ui.stringRes +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.mute_button +import com.vitorpamplona.amethyst.commons.resources.muted_button +import com.vitorpamplona.amethyst.commons.resources.pause +import com.vitorpamplona.amethyst.commons.resources.play +import com.vitorpamplona.amethyst.commons.ui.loadStringRes const val ACTION_MUTE = "com.vitorpamplona.amethyst.MUTE" const val ACTION_PLAY_PAUSE = "com.vitorpamplona.amethyst.PLAY_PAUSE" @@ -51,7 +55,7 @@ class ActionReceiver( } } -fun createMuteAction( +suspend fun createMuteAction( context: Context, isMuted: Boolean, ): RemoteAction { @@ -61,7 +65,7 @@ fun createMuteAction( } else { Icon.createWithResource(context, androidx.media3.session.R.drawable.media3_icon_volume_off) } - val title = if (isMuted) stringRes(context, R.string.muted_button) else stringRes(context, R.string.mute_button) + val title = if (isMuted) loadStringRes(Res.string.muted_button) else loadStringRes(Res.string.mute_button) val intent = PendingIntent.getBroadcast( @@ -73,7 +77,7 @@ fun createMuteAction( return RemoteAction(icon, title, title, intent) } -fun createPlayPauseAction( +suspend fun createPlayPauseAction( context: Context, isPlaying: Boolean, ): RemoteAction { @@ -83,7 +87,7 @@ fun createPlayPauseAction( } else { Icon.createWithResource(context, androidx.media3.session.R.drawable.media3_icon_pause) } - val title = if (!isPlaying) stringRes(context, R.string.play) else stringRes(context, R.string.pause) + val title = if (!isPlaying) loadStringRes(Res.string.play) else loadStringRes(Res.string.pause) val intent = PendingIntent.getBroadcast( context, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/pow/PowDuration.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/pow/PowDuration.kt index da95a540b8..de15a9d1f9 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/pow/PowDuration.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/pow/PowDuration.kt @@ -20,12 +20,22 @@ */ package com.vitorpamplona.amethyst.service.pow -import android.content.Context -import com.vitorpamplona.amethyst.R +import androidx.compose.runtime.Composable +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.pow_estimate_days +import com.vitorpamplona.amethyst.commons.resources.pow_estimate_hours +import com.vitorpamplona.amethyst.commons.resources.pow_estimate_instant +import com.vitorpamplona.amethyst.commons.resources.pow_estimate_minutes +import com.vitorpamplona.amethyst.commons.resources.pow_estimate_seconds +import com.vitorpamplona.amethyst.commons.resources.pow_time_left +import com.vitorpamplona.amethyst.commons.resources.pow_time_left_soon import com.vitorpamplona.amethyst.commons.service.pow.PoWEstimator import com.vitorpamplona.amethyst.commons.service.pow.PoWPolicy +import com.vitorpamplona.amethyst.commons.ui.loadPluralStringRes +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.ui.pluralStringRes import com.vitorpamplona.amethyst.ui.stringRes +import org.jetbrains.compose.resources.PluralStringResource import kotlin.math.roundToLong /** @@ -46,21 +56,20 @@ suspend fun deviceHashesPerSecond(): Double = PoWEstimator.hashesPerSecond(PoWPo * and are the statistical mean of a memoryless search — any single post can be * much luckier or unluckier, so always present these as approximations. */ -fun formatApproxDuration( - context: Context, - seconds: Double, -): String { +@Composable +fun formatApproxDuration(seconds: Double): String { + @Composable fun quantity( - id: Int, + id: PluralStringResource, count: Long, - ) = pluralStringRes(context, id, count.toInt(), count.toInt()) + ) = pluralStringRes(id, count.toInt(), count.toInt()) return when { - seconds < 1.0 -> stringRes(context, R.string.pow_estimate_instant) - seconds < 90.0 -> quantity(R.plurals.pow_estimate_seconds, seconds.roundToLong()) - seconds < 90.0 * 60.0 -> quantity(R.plurals.pow_estimate_minutes, (seconds / 60.0).roundToLong()) - seconds < 48.0 * 3600.0 -> quantity(R.plurals.pow_estimate_hours, (seconds / 3600.0).roundToLong()) - else -> quantity(R.plurals.pow_estimate_days, (seconds / 86400.0).roundToLong()) + seconds < 1.0 -> stringRes(Res.string.pow_estimate_instant) + seconds < 90.0 -> quantity(Res.plurals.pow_estimate_seconds, seconds.roundToLong()) + seconds < 90.0 * 60.0 -> quantity(Res.plurals.pow_estimate_minutes, (seconds / 60.0).roundToLong()) + seconds < 48.0 * 3600.0 -> quantity(Res.plurals.pow_estimate_hours, (seconds / 3600.0).roundToLong()) + else -> quantity(Res.plurals.pow_estimate_days, (seconds / 86400.0).roundToLong()) } } @@ -69,15 +78,45 @@ fun formatApproxDuration( * "any moment now" once past it — a memoryless search has no shrinking * remainder, so past the mean the only honest claim is "soon". */ +@Composable fun formatTimeLeft( - context: Context, expectedSec: Double, elapsedSec: Long, ): String { val remaining = expectedSec - elapsedSec return if (remaining > 1.0) { - stringRes(context, R.string.pow_time_left, formatApproxDuration(context, remaining)) + stringRes(Res.string.pow_time_left, formatApproxDuration(remaining)) } else { - stringRes(context, R.string.pow_time_left_soon) + stringRes(Res.string.pow_time_left_soon) + } +} + +/** Suspend twin of [formatApproxDuration] for the mining foreground service, + * which builds its notification text outside composition. */ +suspend fun loadApproxDuration(seconds: Double): String { + suspend fun quantity( + id: PluralStringResource, + count: Long, + ) = loadPluralStringRes(id, count.toInt(), count.toInt()) + + return when { + seconds < 1.0 -> loadStringRes(Res.string.pow_estimate_instant) + seconds < 90.0 -> quantity(Res.plurals.pow_estimate_seconds, seconds.roundToLong()) + seconds < 90.0 * 60.0 -> quantity(Res.plurals.pow_estimate_minutes, (seconds / 60.0).roundToLong()) + seconds < 48.0 * 3600.0 -> quantity(Res.plurals.pow_estimate_hours, (seconds / 3600.0).roundToLong()) + else -> quantity(Res.plurals.pow_estimate_days, (seconds / 86400.0).roundToLong()) + } +} + +/** Suspend twin of [formatTimeLeft]; see [loadApproxDuration]. */ +suspend fun loadTimeLeft( + expectedSec: Double, + elapsedSec: Long, +): String { + val remaining = expectedSec - elapsedSec + return if (remaining > 1.0) { + loadStringRes(Res.string.pow_time_left, loadApproxDuration(remaining)) + } else { + loadStringRes(Res.string.pow_time_left_soon) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/pow/PowKindLabel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/pow/PowKindLabel.kt index 1e91ba492e..e7f98e30b0 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/pow/PowKindLabel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/pow/PowKindLabel.kt @@ -21,7 +21,15 @@ package com.vitorpamplona.amethyst.service.pow import androidx.annotation.StringRes -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.boost +import com.vitorpamplona.amethyst.commons.resources.post +import com.vitorpamplona.amethyst.commons.resources.pow_kind_chat_message +import com.vitorpamplona.amethyst.commons.resources.pow_kind_report +import com.vitorpamplona.amethyst.commons.resources.private_message +import com.vitorpamplona.amethyst.commons.resources.reaction +import com.vitorpamplona.amethyst.commons.resources.voice_post +import com.vitorpamplona.amethyst.commons.resources.voice_reply import com.vitorpamplona.quartz.nip18Reposts.GenericRepostEvent import com.vitorpamplona.quartz.nip18Reposts.RepostEvent import com.vitorpamplona.quartz.nip25Reactions.ReactionEvent @@ -40,12 +48,12 @@ import com.vitorpamplona.quartz.nipA0VoiceMessages.VoiceReplyEvent @StringRes fun powKindLabelRes(kind: Int): Int = when (kind) { - ReactionEvent.KIND -> R.string.reaction - RepostEvent.KIND, GenericRepostEvent.KIND -> R.string.boost - VoiceEvent.KIND -> R.string.voice_post - VoiceReplyEvent.KIND -> R.string.voice_reply - ReportEvent.KIND -> R.string.pow_kind_report - GiftWrapEvent.KIND -> R.string.private_message - ChannelMessageEvent.KIND, LiveActivitiesChatMessageEvent.KIND -> R.string.pow_kind_chat_message - else -> R.string.post + ReactionEvent.KIND -> Res.string.reaction + RepostEvent.KIND, GenericRepostEvent.KIND -> Res.string.boost + VoiceEvent.KIND -> Res.string.voice_post + VoiceReplyEvent.KIND -> Res.string.voice_reply + ReportEvent.KIND -> Res.string.pow_kind_report + GiftWrapEvent.KIND -> Res.string.private_message + ChannelMessageEvent.KIND, LiveActivitiesChatMessageEvent.KIND -> Res.string.pow_kind_chat_message + else -> Res.string.post } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/pow/PowMiningForegroundService.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/pow/PowMiningForegroundService.kt index 7b35946a1e..25398220dd 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/pow/PowMiningForegroundService.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/pow/PowMiningForegroundService.kt @@ -23,12 +23,19 @@ package com.vitorpamplona.amethyst.service.pow import android.content.Context import android.content.pm.ServiceInfo import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.pow_mining_job +import com.vitorpamplona.amethyst.commons.resources.pow_mining_progress +import com.vitorpamplona.amethyst.commons.resources.pow_mining_title +import com.vitorpamplona.amethyst.commons.resources.pow_notification_cancel_all +import com.vitorpamplona.amethyst.commons.resources.pow_notification_channel_description +import com.vitorpamplona.amethyst.commons.resources.pow_notification_channel_name +import com.vitorpamplona.amethyst.commons.resources.pow_notification_send_without_pow import com.vitorpamplona.amethyst.commons.service.pow.PoWEstimator import com.vitorpamplona.amethyst.commons.service.pow.PoWJobState +import com.vitorpamplona.amethyst.commons.ui.loadPluralStringRes +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.service.foreground.FlowProgressForegroundService -import com.vitorpamplona.amethyst.ui.pluralStringRes -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.utils.TimeUtils import kotlinx.collections.immutable.ImmutableList import kotlinx.coroutines.launch @@ -51,13 +58,13 @@ import kotlinx.coroutines.launch class PowMiningForegroundService : FlowProgressForegroundService>() { override val fgsType: Int = ServiceInfo.FOREGROUND_SERVICE_TYPE_SHORT_SERVICE override val channelId = CHANNEL_ID - override val channelNameRes = R.string.pow_notification_channel_name - override val channelDescRes = R.string.pow_notification_channel_description + override val channelNameRes = Res.string.pow_notification_channel_name + override val channelDescRes = Res.string.pow_notification_channel_description override val notificationId = NOTIFICATION_ID override val cancelAction = ACTION_CANCEL_ALL - override val cancelLabelRes = R.string.pow_notification_cancel_all + override val cancelLabelRes = Res.string.pow_notification_cancel_all override val secondaryAction = ACTION_SEND_ALL_NOW - override val secondaryLabelRes = R.string.pow_notification_send_without_pow + override val secondaryLabelRes = Res.string.pow_notification_send_without_pow // clock-driven refresh for the time-left text and bar; the shortService budget (~3 min) // caps this at a handful of updates. @@ -101,7 +108,7 @@ class PowMiningForegroundService : FlowProgressForegroundService): Content { + override suspend fun render(value: ImmutableList): Content { val done = (sessionTotal - value.size).coerceAtLeast(0) val total = (done + value.size).coerceAtLeast(1) @@ -116,11 +123,11 @@ class PowMiningForegroundService : FlowProgressForegroundService 1) { - pluralStringRes(this, R.plurals.pow_mining_progress, value.size, value.size) + loadPluralStringRes(Res.plurals.pow_mining_progress, value.size, value.size) } else { - stringRes(this, R.string.pow_mining_title) + loadStringRes(Res.string.pow_mining_title) } val bar = diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/authCommand/compose/RelayAuthComposeHelpers.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/authCommand/compose/RelayAuthComposeHelpers.kt index ca91785d89..66a6b3292b 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/authCommand/compose/RelayAuthComposeHelpers.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/authCommand/compose/RelayAuthComposeHelpers.kt @@ -26,9 +26,18 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.relayauth.AuthPurposeKind +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.relay_auth_purpose_my_inbox +import com.vitorpamplona.amethyst.commons.resources.relay_auth_purpose_my_own_relay +import com.vitorpamplona.amethyst.commons.resources.relay_auth_purpose_notify_inbox +import com.vitorpamplona.amethyst.commons.resources.relay_auth_purpose_other +import com.vitorpamplona.amethyst.commons.resources.relay_auth_purpose_post_venue +import com.vitorpamplona.amethyst.commons.resources.relay_auth_purpose_read_outbox +import com.vitorpamplona.amethyst.commons.resources.relay_auth_purpose_read_venue +import com.vitorpamplona.amethyst.commons.resources.relay_auth_purpose_send_dm +import com.vitorpamplona.amethyst.commons.resources.relay_auth_purpose_thread import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.quartz.nip01Core.core.HexKey @@ -60,13 +69,13 @@ internal fun LoadRelayAuthUser( */ internal fun relayAuthPurposeLabelRes(kind: AuthPurposeKind): Int = when (kind) { - AuthPurposeKind.SEND_DM -> R.string.relay_auth_purpose_send_dm - AuthPurposeKind.NOTIFY_INBOX -> R.string.relay_auth_purpose_notify_inbox - AuthPurposeKind.READ_OUTBOX -> R.string.relay_auth_purpose_read_outbox - AuthPurposeKind.POST_VENUE -> R.string.relay_auth_purpose_post_venue - AuthPurposeKind.READ_VENUE -> R.string.relay_auth_purpose_read_venue - AuthPurposeKind.MY_INBOX -> R.string.relay_auth_purpose_my_inbox - AuthPurposeKind.THREAD -> R.string.relay_auth_purpose_thread - AuthPurposeKind.MY_OWN_RELAY -> R.string.relay_auth_purpose_my_own_relay - AuthPurposeKind.OTHER -> R.string.relay_auth_purpose_other + AuthPurposeKind.SEND_DM -> Res.string.relay_auth_purpose_send_dm + AuthPurposeKind.NOTIFY_INBOX -> Res.string.relay_auth_purpose_notify_inbox + AuthPurposeKind.READ_OUTBOX -> Res.string.relay_auth_purpose_read_outbox + AuthPurposeKind.POST_VENUE -> Res.string.relay_auth_purpose_post_venue + AuthPurposeKind.READ_VENUE -> Res.string.relay_auth_purpose_read_venue + AuthPurposeKind.MY_INBOX -> Res.string.relay_auth_purpose_my_inbox + AuthPurposeKind.THREAD -> Res.string.relay_auth_purpose_thread + AuthPurposeKind.MY_OWN_RELAY -> Res.string.relay_auth_purpose_my_own_relay + AuthPurposeKind.OTHER -> Res.string.relay_auth_purpose_other } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/authCommand/compose/RelayAuthPromptHost.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/authCommand/compose/RelayAuthPromptHost.kt index 7813bcb039..cad1e253b0 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/authCommand/compose/RelayAuthPromptHost.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/authCommand/compose/RelayAuthPromptHost.kt @@ -63,7 +63,6 @@ import androidx.compose.ui.text.withStyle import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Channel import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.relayClient.auth.RelayAuthPrompt @@ -72,8 +71,19 @@ import com.vitorpamplona.amethyst.commons.relayauth.AuthPurpose import com.vitorpamplona.amethyst.commons.relayauth.AuthPurposeKind import com.vitorpamplona.amethyst.commons.relayauth.RelayAuthPolicy import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cancel +import com.vitorpamplona.amethyst.commons.resources.relay_auth_also_holding_back +import com.vitorpamplona.amethyst.commons.resources.relay_auth_always_allow_everywhere +import com.vitorpamplona.amethyst.commons.resources.relay_auth_always_everywhere_body +import com.vitorpamplona.amethyst.commons.resources.relay_auth_always_everywhere_title +import com.vitorpamplona.amethyst.commons.resources.relay_auth_always_log_in import com.vitorpamplona.amethyst.commons.resources.relay_auth_log_in import com.vitorpamplona.amethyst.commons.resources.relay_auth_login_as +import com.vitorpamplona.amethyst.commons.resources.relay_auth_name_and_n_others +import com.vitorpamplona.amethyst.commons.resources.relay_auth_never +import com.vitorpamplona.amethyst.commons.resources.relay_auth_never_allow_everywhere +import com.vitorpamplona.amethyst.commons.resources.relay_auth_never_everywhere_body +import com.vitorpamplona.amethyst.commons.resources.relay_auth_never_everywhere_title import com.vitorpamplona.amethyst.commons.resources.relay_auth_not_now import com.vitorpamplona.amethyst.commons.resources.relay_auth_relay_asks import com.vitorpamplona.amethyst.commons.resources.relay_auth_remember_relay @@ -300,11 +310,11 @@ private fun RelayAuthPromptDialog( } else { ButtonDefaults.outlinedButtonColors() }, - ) { Text(if (rememberRelay) stringRes(R.string.relay_auth_never) else stringRes(Res.string.relay_auth_not_now)) } + ) { Text(if (rememberRelay) stringRes(Res.string.relay_auth_never) else stringRes(Res.string.relay_auth_not_now)) } Button( onClick = { onChoice(if (rememberRelay) UserAuthChoice.ALWAYS_ALLOW else UserAuthChoice.ALLOW_ONCE) }, modifier = Modifier.weight(1f), - ) { Text(if (rememberRelay) stringRes(R.string.relay_auth_always_log_in) else stringRes(Res.string.relay_auth_log_in)) } + ) { Text(if (rememberRelay) stringRes(Res.string.relay_auth_always_log_in) else stringRes(Res.string.relay_auth_log_in)) } } Row( modifier = Modifier.fillMaxWidth(), @@ -313,10 +323,10 @@ private fun RelayAuthPromptDialog( TextButton( onClick = { confirming = UserAuthChoice.NEVER_ALLOW_EVERYWHERE }, colors = ButtonDefaults.textButtonColors(contentColor = MaterialTheme.colorScheme.error), - ) { Text(stringRes(R.string.relay_auth_never_allow_everywhere), style = MaterialTheme.typography.labelMedium) } + ) { Text(stringRes(Res.string.relay_auth_never_allow_everywhere), style = MaterialTheme.typography.labelMedium) } TextButton( onClick = { confirming = UserAuthChoice.ALWAYS_ALLOW_EVERYWHERE }, - ) { Text(stringRes(R.string.relay_auth_always_allow_everywhere), style = MaterialTheme.typography.labelMedium) } + ) { Text(stringRes(Res.string.relay_auth_always_allow_everywhere), style = MaterialTheme.typography.labelMedium) } } } }, @@ -343,12 +353,12 @@ private fun PolicyEverywhereConfirmation( AlertDialog( onDismissRequest = onDismiss, title = { - Text(stringRes(if (always) R.string.relay_auth_always_everywhere_title else R.string.relay_auth_never_everywhere_title)) + Text(stringRes(if (always) Res.string.relay_auth_always_everywhere_title else Res.string.relay_auth_never_everywhere_title)) }, text = { Text( stringRes( - if (always) R.string.relay_auth_always_everywhere_body else R.string.relay_auth_never_everywhere_body, + if (always) Res.string.relay_auth_always_everywhere_body else Res.string.relay_auth_never_everywhere_body, accountName, ), ) @@ -370,10 +380,10 @@ private fun PolicyEverywhereConfirmation( ) }, ) { - Text(stringRes(if (always) R.string.relay_auth_always_allow_everywhere else R.string.relay_auth_never_allow_everywhere)) + Text(stringRes(if (always) Res.string.relay_auth_always_allow_everywhere else Res.string.relay_auth_never_allow_everywhere)) } }, - dismissButton = { TextButton(onClick = onDismiss) { Text(stringRes(R.string.cancel)) } }, + dismissButton = { TextButton(onClick = onDismiss) { Text(stringRes(Res.string.cancel)) } }, ) } @@ -558,7 +568,7 @@ private fun secondaryLine( ): String? { val others = purposes.filter { it !== primary } if (others.isEmpty()) return null - return pluralStringResource(R.plurals.relay_auth_also_holding_back, others.size, others.size) + return pluralStringResource(Res.plurals.relay_auth_also_holding_back, others.size, others.size) } /** A short label for a set of counterparties: the first person's name, or "Alice and 4 others". */ @@ -571,7 +581,7 @@ private fun counterpartyLabel( val name = rememberCounterpartyName(first, accountViewModel) if (pubkeys.size == 1) return name val others = pubkeys.size - 1 - return pluralStringResource(R.plurals.relay_auth_name_and_n_others, others, name, others) + return pluralStringResource(Res.plurals.relay_auth_name_and_n_others, others, name, others) } /** diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/notifyCommand/compose/DisplayNotifyMessages.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/notifyCommand/compose/DisplayNotifyMessages.kt index 84d5f3aaa8..93a836cba3 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/notifyCommand/compose/DisplayNotifyMessages.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/notifyCommand/compose/DisplayNotifyMessages.kt @@ -22,8 +22,9 @@ package com.vitorpamplona.amethyst.service.relayClient.notifyCommand.compose import androidx.compose.runtime.Composable import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.relayClient.notify.NotifyRequestsCache +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.payment_required_title import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.stringRes @@ -50,7 +51,7 @@ fun DisplayNotifyMessages( NotifyRequestDialog( title = stringRes( - id = R.string.payment_required_title, + id = Res.string.payment_required_title, request.relayUrl.displayUrl(), ), textContent = request.description, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/notifyCommand/compose/NotifyRequestDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/notifyCommand/compose/NotifyRequestDialog.kt index 64be08b875..2a2b28894a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/notifyCommand/compose/NotifyRequestDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/notifyCommand/compose/NotifyRequestDialog.kt @@ -36,12 +36,12 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.EmptyTagList import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.error_dialog_button_ok +import com.vitorpamplona.amethyst.commons.resources.notify_block_relay import com.vitorpamplona.amethyst.ui.components.TranslatableRichTextViewer import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.navs.rememberExtendedNav @@ -119,7 +119,7 @@ fun NotifyRequestDialog( ) Spacer(StdHorzSpacer) Text( - text = stringRes(R.string.notify_block_relay), + text = stringRes(Res.string.notify_block_relay), color = MaterialTheme.colorScheme.error, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/resourceusage/DisplayResourceUsageAlert.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/resourceusage/DisplayResourceUsageAlert.kt index 364e6a6a62..764e054308 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/resourceusage/DisplayResourceUsageAlert.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/resourceusage/DisplayResourceUsageAlert.kt @@ -32,14 +32,19 @@ import androidx.compose.runtime.remember import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.pluralStringResource import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.collectMemorySnapshot import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.resource_usage_alert_message import com.vitorpamplona.amethyst.commons.resources.resource_usage_alert_not_now import com.vitorpamplona.amethyst.commons.resources.resource_usage_alert_opt_out import com.vitorpamplona.amethyst.commons.resources.resource_usage_alert_send import com.vitorpamplona.amethyst.commons.resources.resource_usage_alert_title +import com.vitorpamplona.amethyst.commons.resources.resource_usage_reason_bg_data +import com.vitorpamplona.amethyst.commons.resources.resource_usage_reason_churn +import com.vitorpamplona.amethyst.commons.resources.resource_usage_reason_conn_time +import com.vitorpamplona.amethyst.commons.resources.resource_usage_reason_reconnects +import com.vitorpamplona.amethyst.commons.resources.resource_usage_reason_wakelock import com.vitorpamplona.amethyst.commons.service.crashreports.DEV_REPORT_PUBKEY import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.routeToMessage @@ -111,7 +116,7 @@ fun DisplayResourceUsageAlert( text = { Text( stringRes( - R.string.resource_usage_alert_message, + Res.string.resource_usage_alert_message, reasonDescription(found), ), ) @@ -163,32 +168,32 @@ private fun reasonDescription(alert: ResourceUsageAlerts.Alert): String = when (alert.reason) { ResourceUsageAlerts.Reason.BACKGROUND_MOBILE_DATA -> stringRes( - R.string.resource_usage_reason_bg_data, + Res.string.resource_usage_reason_bg_data, ResourceUsageReportAssembler.formatBytes(alert.value), ) ResourceUsageAlerts.Reason.BACKGROUND_MOBILE_CONNECTION_TIME -> stringRes( - R.string.resource_usage_reason_conn_time, + Res.string.resource_usage_reason_conn_time, ResourceUsageReportAssembler.formatConnHours(alert.value), ) ResourceUsageAlerts.Reason.WAKELOCK_TIME -> stringRes( - R.string.resource_usage_reason_wakelock, + Res.string.resource_usage_reason_wakelock, ResourceUsageReportAssembler.formatDurationMs(alert.value), ) ResourceUsageAlerts.Reason.PROCESS_CHURN -> pluralStringResource( - R.plurals.resource_usage_reason_churn, + Res.plurals.resource_usage_reason_churn, alert.value.toInt(), alert.value.toInt(), ) ResourceUsageAlerts.Reason.RECONNECT_CHURN -> pluralStringResource( - R.plurals.resource_usage_reason_reconnects, + Res.plurals.resource_usage_reason_reconnects, alert.value.toInt(), alert.value.toInt(), ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/scheduledposts/AndroidScheduledPostNotifier.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/scheduledposts/AndroidScheduledPostNotifier.kt index 633a0d64ac..3444add4ac 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/scheduledposts/AndroidScheduledPostNotifier.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/scheduledposts/AndroidScheduledPostNotifier.kt @@ -28,11 +28,18 @@ import android.content.Intent import androidx.core.app.NotificationCompat import androidx.core.app.NotificationManagerCompat import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.app_notification_scheduled_posts_channel_description +import com.vitorpamplona.amethyst.commons.resources.app_notification_scheduled_posts_channel_id +import com.vitorpamplona.amethyst.commons.resources.app_notification_scheduled_posts_channel_name +import com.vitorpamplona.amethyst.commons.resources.scheduled_posts_error_prefix +import com.vitorpamplona.amethyst.commons.resources.scheduled_posts_notification_failed_title +import com.vitorpamplona.amethyst.commons.resources.scheduled_posts_notification_sent_title import com.vitorpamplona.amethyst.commons.scheduledposts.ScheduledPost import com.vitorpamplona.amethyst.commons.scheduledposts.ScheduledPostNotifier +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.ui.MainActivity import com.vitorpamplona.amethyst.ui.screen.loggedIn.scheduledposts.extractContentPreview -import com.vitorpamplona.amethyst.ui.stringRes /** * Android [ScheduledPostNotifier]: posts a user-visible system notification when a @@ -43,17 +50,17 @@ import com.vitorpamplona.amethyst.ui.stringRes class AndroidScheduledPostNotifier( private val context: Context, ) : ScheduledPostNotifier { - override fun notifySent(post: ScheduledPost) { + override suspend fun notifySent(post: ScheduledPost) { ensureChannel(context) post( context = context, notId = idFor(post.id), - title = stringRes(context, R.string.scheduled_posts_notification_sent_title), + title = loadStringRes(Res.string.scheduled_posts_notification_sent_title), body = extractContentPreview(post, 120), ) } - override fun notifyFailed( + override suspend fun notifyFailed( post: ScheduledPost, error: String?, ) { @@ -63,23 +70,23 @@ class AndroidScheduledPostNotifier( if (error.isNullOrBlank()) { snippet } else { - "$snippet\n${stringRes(context, R.string.scheduled_posts_error_prefix, error)}" + "$snippet\n${loadStringRes(Res.string.scheduled_posts_error_prefix, error)}" } post( context = context, notId = idFor(post.id), - title = stringRes(context, R.string.scheduled_posts_notification_failed_title), + title = loadStringRes(Res.string.scheduled_posts_notification_failed_title), body = body, ) } - private fun post( + private suspend fun post( context: Context, notId: Int, title: String, body: String, ) { - val channelId = stringRes(context, R.string.app_notification_scheduled_posts_channel_id) + val channelId = loadStringRes(Res.string.app_notification_scheduled_posts_channel_id) val tapIntent = Intent(context, MainActivity::class.java).apply { addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP) @@ -126,15 +133,15 @@ class AndroidScheduledPostNotifier( private var channel: NotificationChannel? = null private const val SCHEDULED_POST_NOT_ID_BASE = 0x70000 - fun ensureChannel(context: Context) { + suspend fun ensureChannel(context: Context) { if (channel != null) return channel = NotificationChannel( - stringRes(context, R.string.app_notification_scheduled_posts_channel_id), - stringRes(context, R.string.app_notification_scheduled_posts_channel_name), + loadStringRes(Res.string.app_notification_scheduled_posts_channel_id), + loadStringRes(Res.string.app_notification_scheduled_posts_channel_name), NotificationManager.IMPORTANCE_DEFAULT, ).apply { - description = stringRes(context, R.string.app_notification_scheduled_posts_channel_description) + description = loadStringRes(Res.string.app_notification_scheduled_posts_channel_description) } val nm = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager nm.createNotificationChannel(channel!!) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/UploadOrchestrator.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/UploadOrchestrator.kt index 5be855a6e2..c8faf9287f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/UploadOrchestrator.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/UploadOrchestrator.kt @@ -23,7 +23,17 @@ package com.vitorpamplona.amethyst.service.uploads import android.content.Context import android.net.Uri import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.avif_metadata_strip_failed +import com.vitorpamplona.amethyst.commons.resources.blossom_payment_required +import com.vitorpamplona.amethyst.commons.resources.could_not_check_downloaded_file +import com.vitorpamplona.amethyst.commons.resources.could_not_download_from_the_server +import com.vitorpamplona.amethyst.commons.resources.could_not_open_the_compressed_file +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_upload +import com.vitorpamplona.amethyst.commons.resources.media_too_big_for_nip95 +import com.vitorpamplona.amethyst.commons.resources.server_did_not_provide_a_url_after_uploading +import com.vitorpamplona.amethyst.commons.resources.upload_cancelled import com.vitorpamplona.amethyst.commons.service.upload.BlossomClient import com.vitorpamplona.amethyst.commons.service.upload.BlossomPaymentException import com.vitorpamplona.amethyst.model.Account @@ -115,7 +125,7 @@ class UploadOrchestrator { if (bytes != null) { if (bytes.size > 80000) { - return error(R.string.media_too_big_for_nip95) + return error(Res.string.media_too_big_for_nip95) } updateState(0.8, UploadingState.Hashing) @@ -132,11 +142,11 @@ class UploadOrchestrator { return finish(OrchestratorResult.NIP95Result(it, bytes, originalContentType, originalHash)) }, onFailure = { - return error(R.string.could_not_check_downloaded_file, it.message ?: it.javaClass.simpleName) + return error(Res.string.could_not_check_downloaded_file, it.message ?: it.javaClass.simpleName) }, ) } else { - return error(R.string.could_not_open_the_compressed_file) + return error(Res.string.could_not_open_the_compressed_file) } } @@ -184,10 +194,10 @@ class UploadOrchestrator { okHttpClient = Amethyst.instance.roleBasedHttpClientBuilder::okHttpClientForUploads, ) } catch (_: SignerExceptions.ReadOnlyException) { - error(R.string.login_with_a_private_key_to_be_able_to_upload) + error(Res.string.login_with_a_private_key_to_be_able_to_upload) } catch (e: Exception) { if (e is CancellationException) throw e - error(R.string.failed_to_upload_media, e.message ?: e.javaClass.simpleName) + error(Res.string.failed_to_upload_media, e.message ?: e.javaClass.simpleName) } } @@ -260,13 +270,13 @@ class UploadOrchestrator { finalState } catch (_: SignerExceptions.ReadOnlyException) { - error(R.string.login_with_a_private_key_to_be_able_to_upload) + error(Res.string.login_with_a_private_key_to_be_able_to_upload) } catch (e: BlossomPaymentException) { // BUD-07: the server wants payment before it will store the blob. - error(R.string.blossom_payment_required, e.payment.reason ?: serverBaseUrl) + error(Res.string.blossom_payment_required, e.payment.reason ?: serverBaseUrl) } catch (e: Exception) { if (e is CancellationException) throw e - error(R.string.failed_to_upload_media, e.message?.ifBlank { null } ?: e.javaClass.simpleName) + error(Res.string.failed_to_upload_media, e.message?.ifBlank { null } ?: e.javaClass.simpleName) } } @@ -318,7 +328,7 @@ class UploadOrchestrator { okHttpClient: (String) -> OkHttpClient, ): UploadingFinalState { if (uploadResult.url.isNullOrBlank()) { - return error(R.string.server_did_not_provide_a_url_after_uploading) + return error(Res.string.server_did_not_provide_a_url_after_uploading) } updateState(0.6, UploadingState.Downloading) @@ -326,7 +336,7 @@ class UploadOrchestrator { // Use streaming verification for memory efficiency with large files val verification = ImageDownloader().waitAndVerifyStream(uploadResult.url, okHttpClient) - ?: return error(R.string.could_not_download_from_the_server) + ?: return error(Res.string.could_not_download_from_the_server) updateState(0.8, UploadingState.Hashing) @@ -458,10 +468,10 @@ class UploadOrchestrator { try { stripAfterCompression(uri, compressed, mimeType, compressionQuality, stripMetadata, onStrippingFailed, context) } catch (e: AvifMetadataNotVerifiableException) { - return error(R.string.avif_metadata_strip_failed, e.message ?: e.javaClass.simpleName).also { + return error(Res.string.avif_metadata_strip_failed, e.message ?: e.javaClass.simpleName).also { deleteTempUri(compressed.uri, uri) } - } ?: return error(R.string.upload_cancelled).also { + } ?: return error(Res.string.upload_cancelled).also { deleteTempUri(compressed.uri, uri) } @@ -500,10 +510,10 @@ class UploadOrchestrator { try { stripAfterCompression(uri, compressed, mimeType, compressionQuality, stripMetadata, onStrippingFailed, context) } catch (e: AvifMetadataNotVerifiableException) { - return error(R.string.avif_metadata_strip_failed, e.message ?: e.javaClass.simpleName).also { + return error(Res.string.avif_metadata_strip_failed, e.message ?: e.javaClass.simpleName).also { deleteTempUri(compressed.uri, uri) } - } ?: return error(R.string.upload_cancelled).also { + } ?: return error(Res.string.upload_cancelled).also { deleteTempUri(compressed.uri, uri) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/blossom/BlossomSyncForegroundService.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/blossom/BlossomSyncForegroundService.kt index 0414ff950c..3b008cca21 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/blossom/BlossomSyncForegroundService.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/blossom/BlossomSyncForegroundService.kt @@ -23,9 +23,13 @@ package com.vitorpamplona.amethyst.service.uploads.blossom import android.content.Context import android.content.pm.ServiceInfo import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.blossom_sync_cancel +import com.vitorpamplona.amethyst.commons.resources.blossom_sync_channel_description +import com.vitorpamplona.amethyst.commons.resources.blossom_sync_channel_name +import com.vitorpamplona.amethyst.commons.resources.blossom_syncing +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.service.foreground.FlowProgressForegroundService -import com.vitorpamplona.amethyst.ui.stringRes /** * Foreground service that keeps the BUD-04 "sync all" sweep ([BlossomMirrorQueue]) running @@ -40,11 +44,11 @@ import com.vitorpamplona.amethyst.ui.stringRes class BlossomSyncForegroundService : FlowProgressForegroundService() { override val fgsType: Int = ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC override val channelId = CHANNEL_ID - override val channelNameRes = R.string.blossom_sync_channel_name - override val channelDescRes = R.string.blossom_sync_channel_description + override val channelNameRes = Res.string.blossom_sync_channel_name + override val channelDescRes = Res.string.blossom_sync_channel_description override val notificationId = NOTIFICATION_ID override val cancelAction = ACTION_CANCEL - override val cancelLabelRes = R.string.blossom_sync_cancel + override val cancelLabelRes = Res.string.blossom_sync_cancel override fun state() = Amethyst.instance.blossomMirrorQueue.state @@ -55,14 +59,14 @@ class BlossomSyncForegroundService : FlowProgressForegroundService 0) append(" · ${value.failed} failed") } - return Content(stringRes(this, R.string.blossom_syncing), text, Bar.Determinate(value.fraction.toDouble())) + return Content(loadStringRes(Res.string.blossom_syncing), text, Bar.Determinate(value.fraction.toDouble())) } companion object { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/blossom/BlossomUploader.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/blossom/BlossomUploader.kt index 95f14150c8..dc1531c46c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/blossom/BlossomUploader.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/blossom/BlossomUploader.kt @@ -25,14 +25,16 @@ import android.content.Context import android.net.Uri import android.provider.OpenableColumns import android.webkit.MimeTypeMap -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.failed_to_delete_with_message +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_to_server_with_message import com.vitorpamplona.amethyst.commons.service.upload.BlossomPaymentException +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.service.HttpStatusMessages import com.vitorpamplona.amethyst.service.checkNotInMainThread import com.vitorpamplona.amethyst.service.uploads.MediaUploadResult import com.vitorpamplona.amethyst.service.uploads.PreviewMetadataCalculator import com.vitorpamplona.amethyst.service.uploads.extensionFromMimeType -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.core.JsonMapper import com.vitorpamplona.quartz.nip01Core.core.toHexKey @@ -215,11 +217,11 @@ class BlossomUploader { val explanation = HttpStatusMessages.resourceIdFor(response.code) if (errorMessage != null) { - throw RuntimeException(stringRes(context, R.string.failed_to_upload_to_server_with_message, serverBaseUrl.displayUrl(), errorMessage)) + throw RuntimeException(loadStringRes(Res.string.failed_to_upload_to_server_with_message, serverBaseUrl.displayUrl(), errorMessage)) } else if (explanation != null) { - throw RuntimeException(stringRes(context, R.string.failed_to_upload_to_server_with_message, serverBaseUrl.displayUrl(), stringRes(context, explanation))) + throw RuntimeException(loadStringRes(Res.string.failed_to_upload_to_server_with_message, serverBaseUrl.displayUrl(), loadStringRes(explanation))) } else { - throw RuntimeException(stringRes(context, R.string.failed_to_upload_to_server_with_message, serverBaseUrl.displayUrl(), response.code.toString())) + throw RuntimeException(loadStringRes(Res.string.failed_to_upload_to_server_with_message, serverBaseUrl.displayUrl(), response.code.toString())) } } } @@ -274,9 +276,9 @@ class BlossomUploader { } else { val explanation = HttpStatusMessages.resourceIdFor(response.code) if (explanation != null) { - throw RuntimeException(stringRes(context, R.string.failed_to_delete_with_message, stringRes(context, explanation))) + throw RuntimeException(loadStringRes(Res.string.failed_to_delete_with_message, loadStringRes(explanation))) } else { - throw RuntimeException(stringRes(context, R.string.failed_to_delete_with_message, response.code)) + throw RuntimeException(loadStringRes(Res.string.failed_to_delete_with_message, response.code)) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/blossom/bud10/OpenBlossomUriAsIntent.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/blossom/bud10/OpenBlossomUriAsIntent.kt index d494d8ea6c..8535f70378 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/blossom/bud10/OpenBlossomUriAsIntent.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/blossom/bud10/OpenBlossomUriAsIntent.kt @@ -23,7 +23,9 @@ package com.vitorpamplona.amethyst.service.uploads.blossom.bud10 import android.content.Context import android.content.Intent import androidx.core.net.toUri -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.no_blossom_apps_found_description +import com.vitorpamplona.amethyst.commons.resources.no_blossom_apps_found_title import kotlin.coroutines.cancellation.CancellationException fun openBlossomUriAsIntent( @@ -38,6 +40,6 @@ fun openBlossomUriAsIntent( context.startActivity(intent) } catch (e: Exception) { if (e is CancellationException) throw e - onError(R.string.no_blossom_apps_found_title, R.string.no_blossom_apps_found_description) + onError(Res.string.no_blossom_apps_found_title, Res.string.no_blossom_apps_found_description) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/nip96/Nip96Uploader.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/nip96/Nip96Uploader.kt index da9f6875ca..affded5569 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/nip96/Nip96Uploader.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/nip96/Nip96Uploader.kt @@ -27,14 +27,16 @@ import android.provider.OpenableColumns import android.webkit.MimeTypeMap import androidx.core.net.toFile import com.fasterxml.jackson.databind.ObjectMapper -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.failed_to_delete_with_message +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_to_server_with_message +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.service.HttpStatusMessages import com.vitorpamplona.amethyst.service.checkNotInMainThread import com.vitorpamplona.amethyst.service.uploads.AVIF_EXTENSION import com.vitorpamplona.amethyst.service.uploads.AVIF_MIME import com.vitorpamplona.amethyst.service.uploads.MediaUploadResult import com.vitorpamplona.amethyst.service.uploads.PreviewMetadataCalculator -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip01Core.core.JsonMapper import com.vitorpamplona.quartz.nip36SensitiveContent.ContentWarningTag import com.vitorpamplona.quartz.nip94FileMetadata.tags.DimensionTag @@ -198,10 +200,10 @@ class Nip96Uploader { if (event != null) { convertToMediaResult(event) } else { - throw RuntimeException(stringRes(context, R.string.failed_to_upload_to_server_with_message, server.apiUrl.displayUrl(), result.message)) + throw RuntimeException(loadStringRes(Res.string.failed_to_upload_to_server_with_message, server.apiUrl.displayUrl(), result.message)) } } else { - throw RuntimeException(stringRes(context, R.string.failed_to_upload_to_server_with_message, server.apiUrl.displayUrl(), result.message)) + throw RuntimeException(loadStringRes(Res.string.failed_to_upload_to_server_with_message, server.apiUrl.displayUrl(), result.message)) } } } else { @@ -223,11 +225,11 @@ class Nip96Uploader { val explanation = HttpStatusMessages.resourceIdFor(response.code) if (errorMessage != null) { - throw RuntimeException(stringRes(context, R.string.failed_to_upload_to_server_with_message, server.apiUrl.displayUrl(), errorMessage)) + throw RuntimeException(loadStringRes(Res.string.failed_to_upload_to_server_with_message, server.apiUrl.displayUrl(), errorMessage)) } else if (explanation != null) { - throw RuntimeException(stringRes(context, R.string.failed_to_upload_to_server_with_message, server.apiUrl.displayUrl(), stringRes(context, explanation))) + throw RuntimeException(loadStringRes(Res.string.failed_to_upload_to_server_with_message, server.apiUrl.displayUrl(), loadStringRes(explanation))) } else { - throw RuntimeException(stringRes(context, R.string.failed_to_upload_to_server_with_message, server.apiUrl.displayUrl(), response.code.toString())) + throw RuntimeException(loadStringRes(Res.string.failed_to_upload_to_server_with_message, server.apiUrl.displayUrl(), response.code.toString())) } } } @@ -315,9 +317,9 @@ class Nip96Uploader { } else { val explanation = HttpStatusMessages.resourceIdFor(response.code) if (explanation != null) { - throw RuntimeException(stringRes(context, R.string.failed_to_delete_with_message, stringRes(context, explanation))) + throw RuntimeException(loadStringRes(Res.string.failed_to_delete_with_message, loadStringRes(explanation))) } else { - throw RuntimeException(stringRes(context, R.string.failed_to_delete_with_message, response.code)) + throw RuntimeException(loadStringRes(Res.string.failed_to_delete_with_message, response.code)) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/MainActivity.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/MainActivity.kt index c19fdebf92..d8452540a4 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/MainActivity.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/MainActivity.kt @@ -90,7 +90,6 @@ class MainActivity : AppCompatActivity() { Log.d("ActivityLifecycle") { "MainActivity.onCreate $this" } setContent { - StringResSetup() AmethystTheme { NowProvider { AccountScreen(Amethyst.instance.sessionManager) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/StringResourceCache.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/StringResourceCache.kt index 509b53c6c0..f80787a653 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/StringResourceCache.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/StringResourceCache.kt @@ -20,69 +20,28 @@ */ package com.vitorpamplona.amethyst.ui -import android.content.Context import android.util.LruCache import androidx.annotation.DrawableRes -import androidx.annotation.PluralsRes import androidx.compose.runtime.Composable import androidx.compose.ui.graphics.painter.Painter -import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.res.painterResource -import androidx.compose.ui.res.stringResource -import androidx.lifecycle.compose.LifecycleResumeEffect import org.jetbrains.compose.resources.PluralStringResource import org.jetbrains.compose.resources.StringResource import com.vitorpamplona.amethyst.commons.ui.pluralStringRes as commonsPluralStringRes import com.vitorpamplona.amethyst.commons.ui.stringRes as commonsStringRes -/** - * Cache for stringResource because it seems to be > 1ms function in some phones - */ -private val resourceCache = LruCache(300) -private var resourceCacheLanguage: String? = null +// Every user-facing string now lives in the commons Compose catalog +// (com.vitorpamplona.amethyst.commons.resources.Res.string.*), so these are thin +// aliases over the commons bridge. They exist only so the ~500 files that import +// `com.vitorpamplona.amethyst.ui.stringRes` did not all have to change their import +// in the same commit; a file moving to commons swaps this import for +// `com.vitorpamplona.amethyst.commons.ui.stringRes` and nothing else. +// +// The Android `R.string` overloads that used to live here (and the LruCache behind +// them, which existed because Resources.getString measured >1ms on some phones) are +// gone with the last R.string reference. compose-resources parses each locale file +// once into a process-wide cache, so repeat lookups are map hits. -// Caches most common icons in the app to avoid using disk -private val iconCache = LruCache>(30) - -fun resourceCacheInit() { - resourceCache - resourceCacheLanguage - iconCache -} - -fun checkLanguage(currentLanguage: String) { - if (resourceCacheLanguage == null) { - resourceCacheLanguage = currentLanguage - } else { - if (resourceCacheLanguage != currentLanguage) { - resourceCacheLanguage = currentLanguage - resourceCache.evictAll() - } - } -} - -@Composable -fun StringResSetup() { - val config = LocalConfiguration.current - if (!config.locales.isEmpty) { - val language = config.locales.get(0).language - LifecycleResumeEffect(language) { - checkLanguage(language) - - onPauseOrDispose { } - } - } -} - -@Composable -fun stringRes(id: Int): String = resourceCache.get(id) ?: stringResource(id).also { resourceCache.put(id, it) } - -// Overloads for keys already migrated to commons Compose resources -// (com.vitorpamplona.amethyst.commons.resources.Res.string.*). They let a file -// mix migrated and unmigrated keys under this one import — overload resolution -// picks by argument type — so migrating a key is just R.string.x -> Res.string.x. -// When a whole file moves to commons, swap this import for -// com.vitorpamplona.amethyst.commons.ui.stringRes. @Composable fun stringRes(id: StringResource): String = commonsStringRes(id) @@ -99,74 +58,14 @@ fun pluralStringRes( vararg args: Any, ): String = if (args.isEmpty()) commonsPluralStringRes(id, count) else commonsPluralStringRes(id, count, *args) -@Composable -fun stringRes( - id: Int, - vararg args: String, -): String = - String - .format( - LocalConfiguration.current.locales.get(0), - resourceCache.get(id) ?: stringResource(id).also { resourceCache.put(id, it) }, - *args, - ) +// Caches most common icons in the app to avoid using disk. Drawables are still +// Android resources - only strings moved to the Compose catalog. +private val iconCache = LruCache>(30) -@Composable -fun stringRes( - id: Int, - vararg args: Int?, -): String = - String - .format( - LocalConfiguration.current.locales.get(0), - resourceCache.get(id) ?: stringResource(id).also { resourceCache.put(id, it) }, - *args, - ) - -fun stringRes( - ctx: Context, - id: Int, -): String = resourceCache.get(id) ?: ctx.getString(id).also { resourceCache.put(id, it) } - -fun stringRes( - ctx: Context, - id: Int, - vararg args: String?, -): String { - val res = ctx.resources - - return String - .format( - res.configuration.locales.get(0), - resourceCache.get(id) ?: res.getString(id).also { resourceCache.put(id, it) }, - *args, - ) +fun resourceCacheInit() { + iconCache } -fun stringRes( - ctx: Context, - id: Int, - vararg args: Int?, -): String { - val res = ctx.resources - - return String - .format( - res.configuration.locales.get(0), - resourceCache.get(id) ?: res.getString(id).also { resourceCache.put(id, it) }, - *args, - ) -} - -// Plural resolver for non-composable scope (e.g. onClick callbacks). Not cached: -// the resolved string varies by `count` quantity and the resourceCache is keyed by id. -fun pluralStringRes( - ctx: Context, - @PluralsRes id: Int, - count: Int, - vararg formatArgs: Any?, -): String = ctx.resources.getQuantityString(id, count, *formatArgs) - /** * This cache can only be used if the painter is the only copy on the screen * It should store a separate Painter for each size. It's safe to just assume diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/EditPostView.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/EditPostView.kt index 88d25fcc0f..cdf6aa6818 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/EditPostView.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/EditPostView.kt @@ -68,7 +68,6 @@ import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties import androidx.lifecycle.viewmodel.compose.viewModel import coil3.compose.AsyncImage -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note @@ -77,6 +76,7 @@ import com.vitorpamplona.amethyst.commons.resources.add_bitcoin_invoice import com.vitorpamplona.amethyst.commons.resources.cancel_bitcoin_invoice import com.vitorpamplona.amethyst.commons.resources.lightning_create_and_add_invoice import com.vitorpamplona.amethyst.commons.resources.lightning_invoice +import com.vitorpamplona.amethyst.commons.resources.what_s_on_your_mind import com.vitorpamplona.amethyst.commons.richtext.RichTextParser import com.vitorpamplona.amethyst.service.playback.composable.VideoView import com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.observeUserInfo @@ -409,7 +409,7 @@ private fun MessageField(postViewModel: EditPostViewModel) { }, placeholder = { Text( - text = stringRes(R.string.what_s_on_your_mind), + text = stringRes(Res.string.what_s_on_your_mind), color = MaterialTheme.colorScheme.placeholderText, ) }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/EditPostViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/EditPostViewModel.kt index dc80cd0e16..73c1088a74 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/EditPostViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/EditPostViewModel.kt @@ -29,10 +29,15 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.compose.ui.text.input.TextFieldValue import androidx.lifecycle.ViewModel -import com.vitorpamplona.amethyst.R +import androidx.lifecycle.viewModelScope import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.User +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media_no_details +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_sign_events +import com.vitorpamplona.amethyst.commons.resources.read_only_user import com.vitorpamplona.amethyst.commons.richtext.RichTextParser +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.commons.ui.text.currentWord import com.vitorpamplona.amethyst.commons.ui.text.insertUrlAtCursor import com.vitorpamplona.amethyst.commons.ui.text.onUiThread @@ -48,7 +53,6 @@ import com.vitorpamplona.amethyst.ui.actions.uploads.SelectedMediaProcessing import com.vitorpamplona.amethyst.ui.note.creators.userSuggestions.UserSuggestionState import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.home.UserSuggestionAnchor -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.experimental.nip95.data.FileStorageEvent import com.vitorpamplona.quartz.experimental.nip95.header.FileStorageHeaderEvent import com.vitorpamplona.quartz.nip01Core.core.Event @@ -66,6 +70,7 @@ import com.vitorpamplona.quartz.nip94FileMetadata.sensitiveContent import com.vitorpamplona.quartz.nip94FileMetadata.size import com.vitorpamplona.quartz.nip94FileMetadata.thumbhash import kotlinx.collections.immutable.ImmutableList +import kotlinx.coroutines.launch @Stable open class EditPostViewModel : ViewModel() { @@ -167,13 +172,17 @@ open class EditPostViewModel : ViewModel() { onError: (String, String) -> Unit, context: Context, stripMetadata: Boolean = true, - ) = try { - uploadUnsafe(alt, sensitiveContent, mediaQuality, isPrivate, server, onError, context, stripMetadata) - } catch (e: SignerExceptions.ReadOnlyException) { - onError( - stringRes(context, R.string.read_only_user), - stringRes(context, R.string.login_with_a_private_key_to_be_able_to_sign_events), - ) + ) { + try { + uploadUnsafe(alt, sensitiveContent, mediaQuality, isPrivate, server, onError, context, stripMetadata) + } catch (e: SignerExceptions.ReadOnlyException) { + viewModelScope.launch { + onError( + loadStringRes(Res.string.read_only_user), + loadStringRes(Res.string.login_with_a_private_key_to_be_able_to_sign_events), + ) + } + } } fun uploadUnsafe( @@ -256,9 +265,9 @@ open class EditPostViewModel : ViewModel() { this@EditPostViewModel.multiOrchestrator = null } else { - val errorMessages = results.errors.map { stringRes(context, it.errorResource, *it.params) }.distinct() + val errorMessages = results.errors.map { loadStringRes(it.errorResource, *it.params) }.distinct() - onError(stringRes(context, R.string.failed_to_upload_media_no_details), errorMessages.joinToString(".\n")) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), errorMessages.joinToString(".\n")) } } finally { mediaUploadTracker.finishUpload() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewMediaModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewMediaModel.kt index 9e1e71238b..2b5f7f989a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewMediaModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewMediaModel.kt @@ -28,9 +28,13 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.VideoPostKind +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media_no_details +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_sign_events +import com.vitorpamplona.amethyst.commons.resources.read_only_user import com.vitorpamplona.amethyst.commons.richtext.RichTextParser +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.uploads.MediaCompressor import com.vitorpamplona.amethyst.service.uploads.MultiOrchestrator @@ -41,7 +45,6 @@ import com.vitorpamplona.amethyst.ui.actions.mediaServers.ServerName import com.vitorpamplona.amethyst.ui.actions.uploads.SelectedMedia import com.vitorpamplona.amethyst.ui.actions.uploads.SelectedMediaProcessing import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip01Core.signers.SignerExceptions import kotlinx.collections.immutable.ImmutableList import kotlinx.coroutines.Dispatchers @@ -101,13 +104,17 @@ open class NewMediaModel : ViewModel() { accountViewModel: AccountViewModel, onSucess: () -> Unit, onError: (String, String) -> Unit, - ) = try { - uploadUnsafe(context, accountViewModel, onSucess, onError) - } catch (e: SignerExceptions.ReadOnlyException) { - onError( - stringRes(context, R.string.read_only_user), - stringRes(context, R.string.login_with_a_private_key_to_be_able_to_sign_events), - ) + ) { + try { + uploadUnsafe(context, accountViewModel, onSucess, onError) + } catch (e: SignerExceptions.ReadOnlyException) { + viewModelScope.launch { + onError( + loadStringRes(Res.string.read_only_user), + loadStringRes(Res.string.login_with_a_private_key_to_be_able_to_sign_events), + ) + } + } } fun uploadUnsafe( @@ -215,9 +222,9 @@ open class NewMediaModel : ViewModel() { onceUploaded() cancelModel() } else { - val errorMessages = results.errors.map { stringRes(context, it.errorResource, *it.params) }.distinct() + val errorMessages = results.errors.map { loadStringRes(it.errorResource, *it.params) }.distinct() - onError(stringRes(context, R.string.failed_to_upload_media_no_details), errorMessages.joinToString(".\n")) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), errorMessages.joinToString(".\n")) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewMediaView.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewMediaView.kt index 0c12e0c07a..cee8564fd1 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewMediaView.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewMediaView.kt @@ -52,17 +52,24 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.VideoPostKind import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.add_caption import com.vitorpamplona.amethyst.commons.resources.add_caption_example +import com.vitorpamplona.amethyst.commons.resources.add_sensitive_content_description +import com.vitorpamplona.amethyst.commons.resources.add_sensitive_content_label +import com.vitorpamplona.amethyst.commons.resources.file_server +import com.vitorpamplona.amethyst.commons.resources.file_server_description import com.vitorpamplona.amethyst.commons.resources.media_compression_quality_explainer import com.vitorpamplona.amethyst.commons.resources.media_compression_quality_high import com.vitorpamplona.amethyst.commons.resources.media_compression_quality_label import com.vitorpamplona.amethyst.commons.resources.media_compression_quality_low import com.vitorpamplona.amethyst.commons.resources.media_compression_quality_medium import com.vitorpamplona.amethyst.commons.resources.media_compression_quality_uncompressed +import com.vitorpamplona.amethyst.commons.resources.strip_metadata_description +import com.vitorpamplona.amethyst.commons.resources.strip_metadata_label +import com.vitorpamplona.amethyst.commons.resources.video_codec_h265_description +import com.vitorpamplona.amethyst.commons.resources.video_codec_h265_label import com.vitorpamplona.amethyst.ui.actions.mediaServers.DEFAULT_MEDIA_SERVERS import com.vitorpamplona.amethyst.ui.actions.uploads.SelectedMedia import com.vitorpamplona.amethyst.ui.actions.uploads.ShowImageUploadGallery @@ -203,8 +210,8 @@ fun ImageVideoPost( ) SettingSwitchItem( - title = R.string.add_sensitive_content_label, - description = R.string.add_sensitive_content_description, + title = Res.string.add_sensitive_content_label, + description = Res.string.add_sensitive_content_description, modifier = Modifier .fillMaxWidth() @@ -213,7 +220,7 @@ fun ImageVideoPost( onCheckedChange = { postViewModel.sensitiveContent = it }, ) - SettingsRow(R.string.file_server, R.string.file_server_description) { + SettingsRow(Res.string.file_server, Res.string.file_server_description) { TextSpinner( label = "", placeholder = @@ -274,8 +281,8 @@ fun ImageVideoPost( // Only show H.265 codec option if there are videos in the upload if (postViewModel.multiOrchestrator?.hasVideo() == true) { SettingSwitchItem( - title = R.string.video_codec_h265_label, - description = R.string.video_codec_h265_description, + title = Res.string.video_codec_h265_label, + description = Res.string.video_codec_h265_description, modifier = Modifier .fillMaxWidth() @@ -286,8 +293,8 @@ fun ImageVideoPost( } SettingSwitchItem( - title = R.string.strip_metadata_label, - description = R.string.strip_metadata_description, + title = Res.string.strip_metadata_label, + description = Res.string.strip_metadata_description, modifier = Modifier .fillMaxWidth() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewUserMetadataScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewUserMetadataScreen.kt index 64aed04bbb..e95de3d2b3 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewUserMetadataScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewUserMetadataScreen.kt @@ -51,7 +51,6 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res @@ -60,15 +59,19 @@ import com.vitorpamplona.amethyst.commons.resources.avatar_url import com.vitorpamplona.amethyst.commons.resources.banner_url import com.vitorpamplona.amethyst.commons.resources.clink_offer_label import com.vitorpamplona.amethyst.commons.resources.display_name +import com.vitorpamplona.amethyst.commons.resources.github import com.vitorpamplona.amethyst.commons.resources.github_proof_url_template import com.vitorpamplona.amethyst.commons.resources.lightning_address import com.vitorpamplona.amethyst.commons.resources.lnurl +import com.vitorpamplona.amethyst.commons.resources.mastodon import com.vitorpamplona.amethyst.commons.resources.mastodon_proof_url_template import com.vitorpamplona.amethyst.commons.resources.my_display_name import com.vitorpamplona.amethyst.commons.resources.my_name import com.vitorpamplona.amethyst.commons.resources.nip_05 +import com.vitorpamplona.amethyst.commons.resources.profile import com.vitorpamplona.amethyst.commons.resources.pronouns import com.vitorpamplona.amethyst.commons.resources.social_proof +import com.vitorpamplona.amethyst.commons.resources.twitter import com.vitorpamplona.amethyst.commons.resources.twitter_proof_url_template import com.vitorpamplona.amethyst.commons.resources.username import com.vitorpamplona.amethyst.commons.resources.website_url @@ -104,7 +107,7 @@ fun NewUserMetadataScreen( Scaffold( topBar = { SavingTopBar( - titleRes = R.string.profile, + titleRes = Res.string.profile, onCancel = { nav.popBack() }, @@ -343,7 +346,7 @@ fun NewUserMetadataScreen( expanded = socialExpanded, ) { OutlinedTextField( - label = { Text(text = stringRes(R.string.twitter)) }, + label = { Text(text = stringRes(Res.string.twitter)) }, modifier = Modifier.fillMaxWidth(), value = postViewModel.twitter.value, onValueChange = { postViewModel.twitter.value = it }, @@ -358,7 +361,7 @@ fun NewUserMetadataScreen( Spacer(modifier = Modifier.height(10.dp)) OutlinedTextField( - label = { Text(text = stringRes(R.string.mastodon)) }, + label = { Text(text = stringRes(Res.string.mastodon)) }, modifier = Modifier.fillMaxWidth(), value = postViewModel.mastodon.value, onValueChange = { postViewModel.mastodon.value = it }, @@ -373,7 +376,7 @@ fun NewUserMetadataScreen( Spacer(modifier = Modifier.height(10.dp)) OutlinedTextField( - label = { Text(text = stringRes(R.string.github)) }, + label = { Text(text = stringRes(Res.string.github)) }, modifier = Modifier.fillMaxWidth(), value = postViewModel.github.value, onValueChange = { postViewModel.github.value = it }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewUserMetadataViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewUserMetadataViewModel.kt index 4d7a908ab9..4d3c74b6bf 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewUserMetadataViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewUserMetadataViewModel.kt @@ -26,7 +26,13 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.lifecycle.ViewModel import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.avif_metadata_strip_failed +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media_no_details +import com.vitorpamplona.amethyst.commons.resources.metadata_strip_failed_title +import com.vitorpamplona.amethyst.commons.resources.metadata_strip_failed_upload_cancelled +import com.vitorpamplona.amethyst.commons.resources.server_did_not_provide_a_url_after_uploading +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.uploads.AvifMetadataNotVerifiableException import com.vitorpamplona.amethyst.service.uploads.CompressorQuality @@ -37,7 +43,6 @@ import com.vitorpamplona.amethyst.service.uploads.nip96.Nip96Uploader import com.vitorpamplona.amethyst.ui.actions.mediaServers.ServerType import com.vitorpamplona.amethyst.ui.actions.uploads.SelectedMedia import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip39ExtIdentities.GitHubIdentity import com.vitorpamplona.quartz.nip39ExtIdentities.MastodonIdentity import com.vitorpamplona.quartz.nip39ExtIdentities.TwitterIdentity @@ -223,8 +228,8 @@ class NewUserMetadataViewModel : ViewModel() { } catch (e: AvifMetadataNotVerifiableException) { isUploadingImageForPicture = false onError( - stringRes(context, R.string.metadata_strip_failed_title), - stringRes(context, R.string.avif_metadata_strip_failed, e.message ?: e.javaClass.simpleName), + loadStringRes(Res.string.metadata_strip_failed_title), + loadStringRes(Res.string.avif_metadata_strip_failed, e.message ?: e.javaClass.simpleName), ) return null } @@ -238,8 +243,8 @@ class NewUserMetadataViewModel : ViewModel() { !strippingResult.stripped ) { onError( - stringRes(context, R.string.metadata_strip_failed_title), - stringRes(context, R.string.metadata_strip_failed_upload_cancelled), + loadStringRes(Res.string.metadata_strip_failed_title), + loadStringRes(Res.string.metadata_strip_failed_upload_cancelled), ) return null } else { @@ -278,13 +283,13 @@ class NewUserMetadataViewModel : ViewModel() { } if (result.url == null) { - onError(stringRes(context, R.string.failed_to_upload_media_no_details), stringRes(context, R.string.server_did_not_provide_a_url_after_uploading)) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), loadStringRes(Res.string.server_did_not_provide_a_url_after_uploading)) } result.url } catch (e: Exception) { if (e is CancellationException) throw e - onError(stringRes(context, R.string.failed_to_upload_media_no_details), e.message ?: e.javaClass.simpleName) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), e.message ?: e.javaClass.simpleName) null } finally { isUploadingImageForPicture = false diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/StrippingFailureDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/StrippingFailureDialog.kt index a6034c3aa3..eb8b90a9d1 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/StrippingFailureDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/StrippingFailureDialog.kt @@ -24,9 +24,10 @@ import androidx.compose.material3.AlertDialog import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.metadata_strip_failed_body +import com.vitorpamplona.amethyst.commons.resources.metadata_strip_failed_title import com.vitorpamplona.amethyst.commons.resources.metadata_strip_failed_upload import com.vitorpamplona.amethyst.service.uploads.ConfirmationCallbacks import com.vitorpamplona.amethyst.service.uploads.SuspendableConfirmation @@ -42,7 +43,7 @@ fun StrippingFailureDialog(confirmation: SuspendableConfirmation) { fun StrippingFailureDialog(dialogState: ConfirmationCallbacks) { AlertDialog( onDismissRequest = { dialogState.onCancel() }, - title = { Text(stringRes(R.string.metadata_strip_failed_title)) }, + title = { Text(stringRes(Res.string.metadata_strip_failed_title)) }, text = { Text(stringRes(Res.string.metadata_strip_failed_body)) }, confirmButton = { Button(onClick = { dialogState.onConfirm() }) { @@ -51,7 +52,7 @@ fun StrippingFailureDialog(dialogState: ConfirmationCallbacks) { }, dismissButton = { Button(onClick = { dialogState.onCancel() }) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/bolt12Offers/Bolt12OffersScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/bolt12Offers/Bolt12OffersScreen.kt index 0a0ef7d197..b876a0e0d5 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/bolt12Offers/Bolt12OffersScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/bolt12Offers/Bolt12OffersScreen.kt @@ -52,12 +52,14 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.add import com.vitorpamplona.amethyst.commons.resources.bolt12_offer +import com.vitorpamplona.amethyst.commons.resources.bolt12_offers import com.vitorpamplona.amethyst.commons.resources.bolt12_offers_explainer +import com.vitorpamplona.amethyst.commons.resources.bolt12_offers_section_explainer import com.vitorpamplona.amethyst.commons.resources.delete_bolt12_offer import com.vitorpamplona.amethyst.commons.resources.invalid_bolt12_offer import com.vitorpamplona.amethyst.commons.resources.no_bolt12_offers_message @@ -102,7 +104,7 @@ fun Bolt12OffersScaffold( Scaffold( topBar = { SavingTopBar( - titleRes = R.string.bolt12_offers, + titleRes = Res.string.bolt12_offers, onCancel = { viewModel.refresh() onClose() @@ -152,8 +154,8 @@ fun Bolt12OffersBody(viewModel: Bolt12OffersViewModel) { ) { item { SettingsCategory( - R.string.bolt12_offers, - R.string.bolt12_offers_section_explainer, + Res.string.bolt12_offers, + Res.string.bolt12_offers_section_explainer, SettingsCategoryFirstModifier, ) } @@ -251,7 +253,7 @@ fun Bolt12OfferAddField(onAdd: (raw: String) -> Boolean) { shape = ButtonBorder, enabled = offer.isNotBlank(), ) { - Text(text = stringRes(id = R.string.add), color = Color.White) + Text(text = stringRes(id = Res.string.add), color = Color.White) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/AllMediaServersLIstView.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/AllMediaServersLIstView.kt index 0e518be20d..24fba3a273 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/AllMediaServersLIstView.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/AllMediaServersLIstView.kt @@ -59,10 +59,10 @@ import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.add_a_blossom_server import com.vitorpamplona.amethyst.commons.resources.add_media_server import com.vitorpamplona.amethyst.commons.resources.blossom_mirror_uploads import com.vitorpamplona.amethyst.commons.resources.blossom_mirror_uploads_caption @@ -72,6 +72,9 @@ import com.vitorpamplona.amethyst.commons.resources.delete_media_server import com.vitorpamplona.amethyst.commons.resources.media_server_added import com.vitorpamplona.amethyst.commons.resources.media_server_primary_badge import com.vitorpamplona.amethyst.commons.resources.media_server_reorder +import com.vitorpamplona.amethyst.commons.resources.media_server_status_offline +import com.vitorpamplona.amethyst.commons.resources.media_server_status_online +import com.vitorpamplona.amethyst.commons.resources.media_server_status_slow import com.vitorpamplona.amethyst.commons.resources.media_servers_add_section import com.vitorpamplona.amethyst.commons.resources.media_servers_add_url_label import com.vitorpamplona.amethyst.commons.resources.media_servers_cache_section @@ -79,6 +82,7 @@ import com.vitorpamplona.amethyst.commons.resources.media_servers_priority_secti import com.vitorpamplona.amethyst.commons.resources.media_servers_recommended_label import com.vitorpamplona.amethyst.commons.resources.media_servers_reorder_hint import com.vitorpamplona.amethyst.commons.resources.media_servers_upload_section +import com.vitorpamplona.amethyst.commons.resources.my_blossom_data import com.vitorpamplona.amethyst.commons.resources.no_blossom_server_message import com.vitorpamplona.amethyst.commons.resources.use_default_servers import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -250,7 +254,7 @@ private fun UploadBehaviorSection( verticalAlignment = Alignment.CenterVertically, ) { Text( - text = stringRes(id = R.string.my_blossom_data), + text = stringRes(id = Res.string.my_blossom_data), style = MaterialTheme.typography.bodyLarge, modifier = Modifier.weight(1f), ) @@ -449,7 +453,7 @@ private fun AddServerSection( color = MaterialTheme.colorScheme.grayText, modifier = Modifier.padding(top = 16.dp, bottom = 8.dp), ) - MediaServerEditField(R.string.add_a_blossom_server) { onAddServer(it) } + MediaServerEditField(Res.string.add_a_blossom_server) { onAddServer(it) } } /** A recommended server as a tappable pill. Once added it reads as done and stops responding. */ @@ -611,15 +615,15 @@ private fun HealthIndicator(health: ServerHealth) { when (health) { ServerHealth.Online -> { color = MaterialTheme.colorScheme.allGoodColor - label = R.string.media_server_status_online + label = Res.string.media_server_status_online } ServerHealth.Slow -> { color = MaterialTheme.colorScheme.warningColor - label = R.string.media_server_status_slow + label = Res.string.media_server_status_slow } else -> { color = MaterialTheme.colorScheme.error - label = R.string.media_server_status_offline + label = Res.string.media_server_status_offline } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/AllMediaServersScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/AllMediaServersScreen.kt index c3b470ff70..338bad31e4 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/AllMediaServersScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/AllMediaServersScreen.kt @@ -47,7 +47,6 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res @@ -55,6 +54,7 @@ import com.vitorpamplona.amethyst.commons.resources.local_blossom_cache_detected import com.vitorpamplona.amethyst.commons.resources.local_blossom_cache_not_detected import com.vitorpamplona.amethyst.commons.resources.local_blossom_cache_profile_pics_only import com.vitorpamplona.amethyst.commons.resources.local_blossom_cache_profile_pics_only_caption +import com.vitorpamplona.amethyst.commons.resources.media_servers import com.vitorpamplona.amethyst.commons.resources.use_local_blossom_cache import com.vitorpamplona.amethyst.commons.resources.use_local_blossom_cache_caption import com.vitorpamplona.amethyst.ui.insets.imePaddingSafe @@ -91,7 +91,7 @@ fun MediaServersScaffold( Scaffold( topBar = { TopBarWithBackButton( - caption = stringRes(id = R.string.media_servers), + caption = stringRes(id = Res.string.media_servers), nav = nav, ) }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/BlossomBlobManagerScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/BlossomBlobManagerScreen.kt index 17ed5281d7..a606ce9307 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/BlossomBlobManagerScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/BlossomBlobManagerScreen.kt @@ -96,18 +96,21 @@ import coil3.compose.AsyncImage import coil3.compose.AsyncImagePainter import coil3.compose.SubcomposeAsyncImage import coil3.compose.SubcomposeAsyncImageContent -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back import com.vitorpamplona.amethyst.commons.resources.blossom_delete_from_host import com.vitorpamplona.amethyst.commons.resources.blossom_file_details import com.vitorpamplona.amethyst.commons.resources.blossom_import_menu import com.vitorpamplona.amethyst.commons.resources.blossom_mirror_to_missing import com.vitorpamplona.amethyst.commons.resources.blossom_more_actions +import com.vitorpamplona.amethyst.commons.resources.blossom_not_on_all_servers +import com.vitorpamplona.amethyst.commons.resources.blossom_on_all_servers import com.vitorpamplona.amethyst.commons.resources.blossom_open import com.vitorpamplona.amethyst.commons.resources.blossom_pay +import com.vitorpamplona.amethyst.commons.resources.blossom_pay_sats import com.vitorpamplona.amethyst.commons.resources.blossom_payment_message import com.vitorpamplona.amethyst.commons.resources.blossom_payment_server_says import com.vitorpamplona.amethyst.commons.resources.blossom_payment_title @@ -119,8 +122,12 @@ import com.vitorpamplona.amethyst.commons.resources.blossom_send import com.vitorpamplona.amethyst.commons.resources.blossom_stored_on import com.vitorpamplona.amethyst.commons.resources.blossom_sync_all import com.vitorpamplona.amethyst.commons.resources.blossom_sync_gaps +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.copy import com.vitorpamplona.amethyst.commons.resources.manage_stored_files_empty +import com.vitorpamplona.amethyst.commons.resources.my_blossom_data +import com.vitorpamplona.amethyst.commons.resources.quick_action_share +import com.vitorpamplona.amethyst.commons.resources.retry import com.vitorpamplona.amethyst.service.playback.composable.VideoViewInner import com.vitorpamplona.amethyst.ui.components.util.setText import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -197,7 +204,7 @@ fun BlossomBlobManagerScreen( Scaffold( topBar = { TopBarExtensibleWithBackButton( - title = { Text(stringRes(R.string.my_blossom_data)) }, + title = { Text(stringRes(Res.string.my_blossom_data)) }, showBackButton = nav.canPop(), popBack = { nav.popBack() }, actions = { @@ -233,7 +240,7 @@ fun BlossomBlobManagerScreen( Spacer(Modifier.height(12.dp)) Text(error ?: "", color = MaterialTheme.colorScheme.grayText) Spacer(Modifier.height(8.dp)) - OutlinedButton(onClick = { vm.refresh() }) { Text(stringRes(R.string.retry)) } + OutlinedButton(onClick = { vm.refresh() }) { Text(stringRes(Res.string.retry)) } } blobs.isEmpty() -> @@ -479,7 +486,7 @@ private fun SyncBadge( symbol = if (synced) MaterialSymbols.CheckCircle else MaterialSymbols.CloudUpload, contentDescription = stringRes( - if (synced) R.string.blossom_on_all_servers else R.string.blossom_not_on_all_servers, + if (synced) Res.string.blossom_on_all_servers else Res.string.blossom_not_on_all_servers, ), modifier = Modifier.size(13.dp), tint = accent, @@ -554,10 +561,10 @@ private fun BlossomBlobViewer( verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(8.dp), ) { - ViewerIconButton(MaterialSymbols.AutoMirrored.ArrowBack, stringRes(R.string.back), onDismiss) + ViewerIconButton(MaterialSymbols.AutoMirrored.ArrowBack, stringRes(Res.string.back), onDismiss) Spacer(Modifier.weight(1f)) if (url != null) { - ViewerIconButton(MaterialSymbols.Share, stringRes(R.string.quick_action_share)) { + ViewerIconButton(MaterialSymbols.Share, stringRes(Res.string.quick_action_share)) { shareUrl(context, url) } } @@ -711,7 +718,7 @@ private fun BlobActionsContent( DetailAction(MaterialSymbols.ContentCopy, stringRes(Res.string.copy)) { scope.launch { clipboard.setText(url) } } - DetailAction(MaterialSymbols.Share, stringRes(R.string.quick_action_share)) { + DetailAction(MaterialSymbols.Share, stringRes(Res.string.quick_action_share)) { shareUrl(context, url) } DetailAction(MaterialSymbols.AutoMirrored.OpenInNew, stringRes(Res.string.blossom_open)) { @@ -852,7 +859,7 @@ private fun BlossomPaymentDialog( Spacer(Modifier.size(8.dp)) Text( if (amountSats != null) { - pluralStringResource(R.plurals.blossom_pay_sats, amountSats.toInt(), amountSats.toInt()) + pluralStringResource(Res.plurals.blossom_pay_sats, amountSats.toInt(), amountSats.toInt()) } else { stringRes(Res.string.blossom_pay) }, @@ -860,7 +867,7 @@ private fun BlossomPaymentDialog( } }, dismissButton = { - TextButton(onClick = onDismiss) { Text(stringRes(R.string.cancel)) } + TextButton(onClick = onDismiss) { Text(stringRes(Res.string.cancel)) } }, ) } @@ -914,7 +921,7 @@ private fun BlossomReportDialog( }) { Text(stringRes(Res.string.blossom_send)) } }, dismissButton = { - TextButton(onClick = onDismiss) { Text(stringRes(R.string.cancel)) } + TextButton(onClick = onDismiss) { Text(stringRes(Res.string.cancel)) } }, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/BlossomImportScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/BlossomImportScreen.kt index 0904209f95..58755398f6 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/BlossomImportScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/BlossomImportScreen.kt @@ -61,11 +61,16 @@ import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.add_a_blossom_server import com.vitorpamplona.amethyst.commons.resources.blossom_import_add_url_label +import com.vitorpamplona.amethyst.commons.resources.blossom_import_busy +import com.vitorpamplona.amethyst.commons.resources.blossom_import_disable_all +import com.vitorpamplona.amethyst.commons.resources.blossom_import_enable_all +import com.vitorpamplona.amethyst.commons.resources.blossom_import_files_found +import com.vitorpamplona.amethyst.commons.resources.blossom_import_found_files import com.vitorpamplona.amethyst.commons.resources.blossom_import_intro import com.vitorpamplona.amethyst.commons.resources.blossom_import_manage_servers import com.vitorpamplona.amethyst.commons.resources.blossom_import_no_targets @@ -74,6 +79,7 @@ import com.vitorpamplona.amethyst.commons.resources.blossom_import_scan import com.vitorpamplona.amethyst.commons.resources.blossom_import_scanning import com.vitorpamplona.amethyst.commons.resources.blossom_import_source_failed import com.vitorpamplona.amethyst.commons.resources.blossom_import_sources_section +import com.vitorpamplona.amethyst.commons.resources.blossom_import_start_button import com.vitorpamplona.amethyst.commons.resources.blossom_import_title import com.vitorpamplona.amethyst.commons.resources.delete_media_server import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -174,7 +180,7 @@ fun BlossomImportScreen( TextButton(onClick = { vm.setAll(anyDisabled) }, enabled = sources.isNotEmpty()) { Text( stringRes( - if (anyDisabled) R.string.blossom_import_enable_all else R.string.blossom_import_disable_all, + if (anyDisabled) Res.string.blossom_import_enable_all else Res.string.blossom_import_disable_all, ), ) } @@ -196,7 +202,7 @@ fun BlossomImportScreen( color = MaterialTheme.colorScheme.grayText, modifier = Modifier.padding(top = 8.dp, bottom = 4.dp), ) - MediaServerEditField(R.string.add_a_blossom_server) { vm.addCustom(it) } + MediaServerEditField(Res.string.add_a_blossom_server) { vm.addCustom(it) } } item { @@ -247,7 +253,7 @@ fun BlossomImportScreen( is ImportStart.Started -> nav.popBack() ImportStart.Busy -> Toast - .makeText(context, stringRes(context, R.string.blossom_import_busy), Toast.LENGTH_LONG) + .makeText(context, stringRes(Res.string.blossom_import_busy), Toast.LENGTH_LONG) .show() ImportStart.Empty -> {} } @@ -367,7 +373,7 @@ private fun ScanStatusLabel( is SourceScanState.Found -> { val count = scan.count Text( - text = pluralStringResource(R.plurals.blossom_import_files_found, count, count), + text = pluralStringResource(Res.plurals.blossom_import_files_found, count, count), style = MaterialTheme.typography.bodySmall, color = if (count > 0) MaterialTheme.colorScheme.allGoodColor else MaterialTheme.colorScheme.grayText, ) @@ -398,13 +404,13 @@ private fun ImportResultCard( verticalArrangement = Arrangement.spacedBy(12.dp), ) { Text( - text = pluralStringResource(R.plurals.blossom_import_found_files, count, count), + text = pluralStringResource(Res.plurals.blossom_import_found_files, count, count), style = MaterialTheme.typography.bodyMedium, ) FilledTonalButton(onClick = onImport, modifier = Modifier.fillMaxWidth()) { Icon(symbol = MaterialSymbols.CloudDownload, contentDescription = null, modifier = Modifier.size(18.dp)) Spacer(Modifier.size(8.dp)) - Text(pluralStringResource(R.plurals.blossom_import_start_button, count, count)) + Text(pluralStringResource(Res.plurals.blossom_import_start_button, count, count)) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/DisplayBlossomSyncProgress.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/DisplayBlossomSyncProgress.kt index 6f3efb5a7c..7078a48c79 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/DisplayBlossomSyncProgress.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/DisplayBlossomSyncProgress.kt @@ -52,11 +52,11 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.blossom_sync_done +import com.vitorpamplona.amethyst.commons.resources.blossom_syncing import com.vitorpamplona.amethyst.service.uploads.blossom.BlossomSyncState import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.allGoodColor @@ -120,7 +120,7 @@ fun DisplayBlossomSyncProgress() { tint = if (s.running) MaterialTheme.colorScheme.primary else MaterialTheme.colorScheme.allGoodColor, ) Text( - text = if (s.running) stringRes(R.string.blossom_syncing) else stringRes(Res.string.blossom_sync_done), + text = if (s.running) stringRes(Res.string.blossom_syncing) else stringRes(Res.string.blossom_sync_done), style = MaterialTheme.typography.titleSmall, maxLines = 1, overflow = TextOverflow.Ellipsis, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/FileServerSelectionRow.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/FileServerSelectionRow.kt index 19b85ad26f..666ebcef10 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/FileServerSelectionRow.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/FileServerSelectionRow.kt @@ -22,7 +22,9 @@ package com.vitorpamplona.amethyst.ui.actions.mediaServers import androidx.compose.runtime.Composable import androidx.compose.runtime.remember -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.file_server +import com.vitorpamplona.amethyst.commons.resources.file_server_description import com.vitorpamplona.amethyst.ui.components.TextSpinner import com.vitorpamplona.amethyst.ui.components.TitleExplainer import com.vitorpamplona.amethyst.ui.screen.loggedIn.settings.SettingsRow @@ -49,7 +51,7 @@ fun FileServerSelectionRow( ?: fileServers.firstOrNull()?.name ?: "" - SettingsRow(R.string.file_server, R.string.file_server_description) { + SettingsRow(Res.string.file_server, Res.string.file_server_description) { TextSpinner( label = "", placeholder = placeholder, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/MediaServerEditField.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/MediaServerEditField.kt index 153a919f77..4fa45272b9 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/MediaServerEditField.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/MediaServerEditField.kt @@ -35,16 +35,19 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.add +import com.vitorpamplona.amethyst.commons.resources.add_a_nip96_server import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.ButtonBorder import com.vitorpamplona.amethyst.ui.theme.Size10dp import com.vitorpamplona.amethyst.ui.theme.placeholderText import com.vitorpamplona.quartz.nip01Core.tags.references.HttpUrlFormatter +import org.jetbrains.compose.resources.StringResource @Composable fun MediaServerEditField( - label: Int = R.string.add_a_nip96_server, + label: StringResource = Res.string.add_a_nip96_server, modifier: Modifier = Modifier, onAddServer: (String) -> Unit, ) { @@ -88,7 +91,7 @@ fun MediaServerEditField( shape = ButtonBorder, enabled = validUrl, ) { - Text(text = stringRes(id = R.string.add), color = Color.White) + Text(text = stringRes(id = Res.string.add), color = Color.White) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/nestsServers/NestsServersScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/nestsServers/NestsServersScreen.kt index d30dd72775..b3310d90e8 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/nestsServers/NestsServersScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/nestsServers/NestsServersScreen.kt @@ -51,7 +51,6 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res @@ -62,8 +61,13 @@ import com.vitorpamplona.amethyst.commons.resources.nests_servers_add_relay_fiel import com.vitorpamplona.amethyst.commons.resources.nests_servers_auth_label import com.vitorpamplona.amethyst.commons.resources.nests_servers_empty import com.vitorpamplona.amethyst.commons.resources.nests_servers_explainer +import com.vitorpamplona.amethyst.commons.resources.nests_servers_my_explainer +import com.vitorpamplona.amethyst.commons.resources.nests_servers_my_section +import com.vitorpamplona.amethyst.commons.resources.nests_servers_recommended_explainer +import com.vitorpamplona.amethyst.commons.resources.nests_servers_recommended_section import com.vitorpamplona.amethyst.commons.resources.nests_servers_relay_label import com.vitorpamplona.amethyst.commons.resources.nests_servers_remove +import com.vitorpamplona.amethyst.commons.resources.nests_servers_title import com.vitorpamplona.amethyst.commons.resources.nests_servers_use_defaults import com.vitorpamplona.amethyst.ui.actions.mediaServers.AllMediaServersScreen import com.vitorpamplona.amethyst.ui.insets.imePaddingSafe @@ -121,7 +125,7 @@ private fun NestsServersScaffold( Scaffold( topBar = { SavingTopBar( - titleRes = R.string.nests_servers_title, + titleRes = Res.string.nests_servers_title, onCancel = { viewModel.refresh() onClose() @@ -170,8 +174,8 @@ private fun NestsServersBody(viewModel: NestsServersViewModel) { ) { item { SettingsCategory( - R.string.nests_servers_my_section, - R.string.nests_servers_my_explainer, + Res.string.nests_servers_my_section, + Res.string.nests_servers_my_explainer, SettingsCategoryFirstModifier, ) } @@ -202,8 +206,8 @@ private fun NestsServersBody(viewModel: NestsServersViewModel) { item { SettingsCategoryWithButton( - title = R.string.nests_servers_recommended_section, - description = R.string.nests_servers_recommended_explainer, + title = Res.string.nests_servers_recommended_section, + description = Res.string.nests_servers_recommended_explainer, modifier = SettingsCategorySpacingModifier, ) { OutlinedButton( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/paymentTargets/PaymentTargetsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/paymentTargets/PaymentTargetsScreen.kt index c9fa360d69..62855a9c0c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/paymentTargets/PaymentTargetsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/paymentTargets/PaymentTargetsScreen.kt @@ -50,15 +50,17 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.add import com.vitorpamplona.amethyst.commons.resources.delete_payment_target import com.vitorpamplona.amethyst.commons.resources.no_payment_targets_message import com.vitorpamplona.amethyst.commons.resources.payment_target_authority import com.vitorpamplona.amethyst.commons.resources.payment_target_type +import com.vitorpamplona.amethyst.commons.resources.payment_targets import com.vitorpamplona.amethyst.commons.resources.payment_targets_explainer +import com.vitorpamplona.amethyst.commons.resources.payment_targets_section_explainer import com.vitorpamplona.amethyst.ui.insets.imePaddingSafe import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.topbars.SavingTopBar @@ -100,7 +102,7 @@ fun PaymentTargetsScaffold( Scaffold( topBar = { SavingTopBar( - titleRes = R.string.payment_targets, + titleRes = Res.string.payment_targets, onCancel = { viewModel.refresh() onClose() @@ -150,8 +152,8 @@ fun PaymentTargetsBody(viewModel: PaymentTargetsViewModel) { ) { item { SettingsCategory( - R.string.payment_targets, - R.string.payment_targets_section_explainer, + Res.string.payment_targets, + Res.string.payment_targets_section_explainer, SettingsCategoryFirstModifier, ) } @@ -270,7 +272,7 @@ fun PaymentTargetAddField(onAdd: (type: String, authority: String) -> Unit) { shape = ButtonBorder, enabled = isValid, ) { - Text(text = stringRes(id = R.string.add), color = Color.White) + Text(text = stringRes(id = Res.string.add), color = Color.White) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/uploads/RecordAudio.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/uploads/RecordAudio.kt index 0154ca0499..60bb477ecd 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/uploads/RecordAudio.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/uploads/RecordAudio.kt @@ -36,9 +36,10 @@ import androidx.compose.ui.platform.LocalContext import com.google.accompanist.permissions.ExperimentalPermissionsApi import com.google.accompanist.permissions.isGranted import com.google.accompanist.permissions.rememberPermissionState -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.record_a_message_description +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.ui.components.ToggleableBox -import com.vitorpamplona.amethyst.ui.stringRes import kotlinx.coroutines.delay import kotlinx.coroutines.isActive @@ -88,7 +89,7 @@ fun RecordAudioBox( Toast .makeText( context, - stringRes(context, R.string.record_a_message_description), + loadStringRes(Res.string.record_a_message_description), Toast.LENGTH_SHORT, ).show() } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/uploads/TakePicture.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/uploads/TakePicture.kt index 3253bd0fd2..bde7738820 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/uploads/TakePicture.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/uploads/TakePicture.kt @@ -46,10 +46,10 @@ import androidx.core.content.FileProvider import com.google.accompanist.permissions.ExperimentalPermissionsApi import com.google.accompanist.permissions.isGranted import com.google.accompanist.permissions.rememberPermissionState -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.no_camera_app_found import com.vitorpamplona.amethyst.commons.resources.record_a_video import com.vitorpamplona.amethyst.commons.resources.take_a_picture import com.vitorpamplona.amethyst.ui.stringRes @@ -162,7 +162,7 @@ private suspend fun ActivityResultLauncher.launchOrToast( try { this@launchOrToast.launch(uri) } catch (_: ActivityNotFoundException) { - Toast.makeText(context, R.string.no_camera_app_found, Toast.LENGTH_LONG).show() + Toast.makeText(context, Res.string.no_camera_app_found, Toast.LENGTH_LONG).show() onUnavailable() } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/uploads/VoiceMessagePreview.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/uploads/VoiceMessagePreview.kt index e060d3682e..fa6548a34a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/uploads/VoiceMessagePreview.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/uploads/VoiceMessagePreview.kt @@ -48,13 +48,15 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Brush import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.pause +import com.vitorpamplona.amethyst.commons.resources.play import com.vitorpamplona.amethyst.commons.resources.re_record import com.vitorpamplona.amethyst.commons.resources.record_a_message import com.vitorpamplona.amethyst.commons.resources.recording_indicator_description +import com.vitorpamplona.amethyst.commons.resources.remove import com.vitorpamplona.amethyst.ui.components.AudioWaveformReadOnly import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nipA0VoiceMessages.AudioMeta @@ -125,7 +127,7 @@ fun VoiceMessagePreview( ) { Icon( symbol = if (isPlaying) MaterialSymbols.Pause else MaterialSymbols.PlayArrow, - contentDescription = if (isPlaying) stringRes(context, R.string.pause) else stringRes(context, R.string.play), + contentDescription = if (isPlaying) stringRes(Res.string.pause) else stringRes(Res.string.play), tint = MaterialTheme.colorScheme.primary, ) } @@ -168,7 +170,7 @@ fun VoiceMessagePreview( ) { Icon( symbol = MaterialSymbols.Close, - contentDescription = stringRes(context, R.string.remove), + contentDescription = stringRes(Res.string.remove), tint = MaterialTheme.colorScheme.onSurfaceVariant, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/uploads/VoicePreset.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/uploads/VoicePreset.kt index ac8449e78a..b03dd383a2 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/uploads/VoicePreset.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/uploads/VoicePreset.kt @@ -20,14 +20,18 @@ */ package com.vitorpamplona.amethyst.ui.actions.uploads -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.voice_preset_deep +import com.vitorpamplona.amethyst.commons.resources.voice_preset_high +import com.vitorpamplona.amethyst.commons.resources.voice_preset_neutral +import com.vitorpamplona.amethyst.commons.resources.voice_preset_none enum class VoicePreset( val pitchFactor: Double, val labelRes: Int, ) { - NONE(1.0, R.string.voice_preset_none), - DEEP(1.4, R.string.voice_preset_deep), - HIGH(0.75, R.string.voice_preset_high), - NEUTRAL(1.1, R.string.voice_preset_neutral), + NONE(1.0, Res.string.voice_preset_none), + DEEP(1.4, Res.string.voice_preset_deep), + HIGH(0.75, Res.string.voice_preset_high), + NEUTRAL(1.1, Res.string.voice_preset_neutral), } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/uploads/VoicePresetSelector.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/uploads/VoicePresetSelector.kt index cb90fd1c3d..e635dd865c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/uploads/VoicePresetSelector.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/uploads/VoicePresetSelector.kt @@ -67,7 +67,7 @@ fun VoicePresetSelector( color = MaterialTheme.colorScheme.onPrimary, ) } else { - Text(stringRes(context, preset.labelRes)) + Text(stringRes(preset.labelRes)) } }, colors = diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/broadcast/BroadcastBanner.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/broadcast/BroadcastBanner.kt index 7939b23445..dc424200ce 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/broadcast/BroadcastBanner.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/broadcast/BroadcastBanner.kt @@ -66,11 +66,12 @@ import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.defaults.Constants import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.bookmarks +import com.vitorpamplona.amethyst.commons.resources.boost import com.vitorpamplona.amethyst.commons.resources.bradcasting_result_failure import com.vitorpamplona.amethyst.commons.resources.bradcasting_result_partial import com.vitorpamplona.amethyst.commons.resources.bradcasting_result_success @@ -78,14 +79,23 @@ import com.vitorpamplona.amethyst.commons.resources.broadcasting import com.vitorpamplona.amethyst.commons.resources.broadcasting_name import com.vitorpamplona.amethyst.commons.resources.broadcasting_number_events import com.vitorpamplona.amethyst.commons.resources.event_sent +import com.vitorpamplona.amethyst.commons.resources.post import com.vitorpamplona.amethyst.commons.resources.pow_cancel_dialog_discard import com.vitorpamplona.amethyst.commons.resources.pow_cancel_dialog_message import com.vitorpamplona.amethyst.commons.resources.pow_cancel_dialog_send_without_pow import com.vitorpamplona.amethyst.commons.resources.pow_cancel_dialog_title +import com.vitorpamplona.amethyst.commons.resources.pow_mining_job +import com.vitorpamplona.amethyst.commons.resources.pow_mining_progress +import com.vitorpamplona.amethyst.commons.resources.pow_mining_title +import com.vitorpamplona.amethyst.commons.resources.pow_notification_cancel_all +import com.vitorpamplona.amethyst.commons.resources.pow_queued_job +import com.vitorpamplona.amethyst.commons.resources.reaction import com.vitorpamplona.amethyst.commons.resources.retry_failed import com.vitorpamplona.amethyst.commons.resources.sent_number_events import com.vitorpamplona.amethyst.commons.resources.share_of import com.vitorpamplona.amethyst.commons.resources.tap_to_view_details +import com.vitorpamplona.amethyst.commons.resources.voice_post +import com.vitorpamplona.amethyst.commons.resources.voice_reply import com.vitorpamplona.amethyst.commons.service.broadcast.BroadcastEvent import com.vitorpamplona.amethyst.commons.service.broadcast.BroadcastStatus import com.vitorpamplona.amethyst.commons.service.broadcast.RelayResult @@ -255,13 +265,13 @@ private fun MiningContent( ) { Icon( symbol = MaterialSymbols.Manufacturing, - contentDescription = stringRes(R.string.pow_mining_title), + contentDescription = stringRes(Res.string.pow_mining_title), tint = MaterialTheme.colorScheme.primary.copy(alpha = gearAlpha), modifier = Modifier.size(18.dp), ) Text( - text = pluralStringResource(R.plurals.pow_mining_progress, miningJobs.size, miningJobs.size), + text = pluralStringResource(Res.plurals.pow_mining_progress, miningJobs.size, miningJobs.size), style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.onSurface, maxLines = 1, @@ -283,7 +293,7 @@ private fun MiningContent( val base = pluralStringResource( - if (job.isMining) R.plurals.pow_mining_job else R.plurals.pow_queued_job, + if (job.isMining) Res.plurals.pow_mining_job else Res.plurals.pow_queued_job, job.difficulty, kindToName(job.kind), job.difficulty, @@ -292,7 +302,7 @@ private fun MiningContent( buildList { elapsedSec?.let { add(DateUtils.formatElapsedTime(it)) } if (elapsedSec != null && expectedSec != null) { - add(formatTimeLeft(context, expectedSec, elapsedSec)) + add(formatTimeLeft(expectedSec, elapsedSec)) } }.joinToString(" • ") @@ -323,7 +333,7 @@ private fun MiningContent( ) { Icon( symbol = MaterialSymbols.Close, - contentDescription = stringRes(R.string.pow_notification_cancel_all), + contentDescription = stringRes(Res.string.pow_notification_cancel_all), tint = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier.size(14.dp), ) @@ -710,14 +720,14 @@ fun MultipleCompletedBroadcastContent( @Composable fun Event.toKindName(): String = when (this) { - is ReactionEvent -> stringRes(R.string.reaction) - is RepostEvent -> stringRes(R.string.boost) - is GenericRepostEvent -> stringRes(R.string.boost) - is VoiceEvent -> stringRes(R.string.voice_post) - is VoiceReplyEvent -> stringRes(R.string.voice_reply) - is BookmarkListEvent -> stringRes(R.string.bookmarks) - is OldBookmarkListEvent -> stringRes(R.string.bookmarks) - else -> stringRes(R.string.post) + is ReactionEvent -> stringRes(Res.string.reaction) + is RepostEvent -> stringRes(Res.string.boost) + is GenericRepostEvent -> stringRes(Res.string.boost) + is VoiceEvent -> stringRes(Res.string.voice_post) + is VoiceReplyEvent -> stringRes(Res.string.voice_reply) + is BookmarkListEvent -> stringRes(Res.string.bookmarks) + is OldBookmarkListEvent -> stringRes(Res.string.bookmarks) + else -> stringRes(Res.string.post) } @Composable diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/broadcast/BroadcastDetailsSheet.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/broadcast/BroadcastDetailsSheet.kt index 0293695485..ba5a8a9771 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/broadcast/BroadcastDetailsSheet.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/broadcast/BroadcastDetailsSheet.kt @@ -68,7 +68,6 @@ import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.defaults.Constants import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols @@ -77,6 +76,8 @@ import com.vitorpamplona.amethyst.commons.resources.broadcast_results import com.vitorpamplona.amethyst.commons.resources.broadcasts_number import com.vitorpamplona.amethyst.commons.resources.collapse import com.vitorpamplona.amethyst.commons.resources.dismiss +import com.vitorpamplona.amethyst.commons.resources.expand +import com.vitorpamplona.amethyst.commons.resources.retry import com.vitorpamplona.amethyst.commons.resources.retry_failed_number import com.vitorpamplona.amethyst.commons.resources.retrying import com.vitorpamplona.amethyst.commons.resources.share_of @@ -258,7 +259,7 @@ private fun BroadcastSection( Icon( symbol = if (isExpanded) MaterialSymbols.ExpandLess else MaterialSymbols.ExpandMore, - contentDescription = if (isExpanded) stringRes(Res.string.collapse) else stringRes(R.string.expand), + contentDescription = if (isExpanded) stringRes(Res.string.collapse) else stringRes(Res.string.expand), tint = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier.size(24.dp), ) @@ -443,7 +444,7 @@ private fun RelayResultRow( ) { Icon( symbol = MaterialSymbols.Refresh, - contentDescription = stringResource(R.string.retry), + contentDescription = stringResource(Res.string.retry), tint = MaterialTheme.colorScheme.primary, modifier = Modifier.size(18.dp), ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/call/CallActivity.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/call/CallActivity.kt index 8f7f0bc69c..45f2b9d45d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/call/CallActivity.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/call/CallActivity.kt @@ -41,11 +41,14 @@ import androidx.core.content.ContextCompat import androidx.lifecycle.lifecycleScope import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.nipACWebRtcCalls.CallState +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.call_hangup +import com.vitorpamplona.amethyst.commons.resources.call_mute +import com.vitorpamplona.amethyst.commons.resources.call_unmute import com.vitorpamplona.amethyst.service.call.CallSessionBridge import com.vitorpamplona.amethyst.service.call.notification.CallNotifier import com.vitorpamplona.amethyst.service.relayClient.authCommand.compose.RelayAuthSubscription import com.vitorpamplona.amethyst.service.relayClient.reqCommand.account.AccountFilterAssemblerSubscription -import com.vitorpamplona.amethyst.ui.StringResSetup import com.vitorpamplona.amethyst.ui.call.session.CallSession import com.vitorpamplona.amethyst.ui.screen.ManageRelayServices import com.vitorpamplona.amethyst.ui.screen.ManageWebOkHttp @@ -139,8 +142,6 @@ class CallActivity : AppCompatActivity() { setContent { AmethystTheme { - StringResSetup() - // Pauses relay services when the app pauses ManageRelayServices() ManageWebOkHttp() @@ -364,8 +365,8 @@ class CallActivity : AppCompatActivity() { this, if (isMuted) R.drawable.ic_mic_off else R.drawable.ic_mic_on, ), - getString(if (isMuted) R.string.call_unmute else R.string.call_mute), - getString(if (isMuted) R.string.call_unmute else R.string.call_mute), + getString(if (isMuted) Res.string.call_unmute else Res.string.call_mute), + getString(if (isMuted) Res.string.call_unmute else Res.string.call_mute), muteIntent, ) actions.add(muteAction) @@ -381,8 +382,8 @@ class CallActivity : AppCompatActivity() { val hangupAction = RemoteAction( Icon.createWithResource(this, R.drawable.ic_call_end), - getString(R.string.call_hangup), - getString(R.string.call_hangup), + getString(Res.string.call_hangup), + getString(Res.string.call_hangup), hangupIntent, ) actions.add(hangupAction) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/call/CallPermissions.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/call/CallPermissions.kt index e8ea3d9db6..00af4973e9 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/call/CallPermissions.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/call/CallPermissions.kt @@ -38,11 +38,12 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.core.content.ContextCompat -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.call_permission_denied_cancel import com.vitorpamplona.amethyst.commons.resources.call_permission_denied_open_settings import com.vitorpamplona.amethyst.commons.resources.call_permission_denied_title +import com.vitorpamplona.amethyst.commons.resources.call_permission_denied_video +import com.vitorpamplona.amethyst.commons.resources.call_permission_denied_voice import com.vitorpamplona.amethyst.ui.stringRes fun hasPermission( @@ -154,9 +155,9 @@ private fun CallPermissionDeniedDialog( Text( stringRes( if (isVideo) { - R.string.call_permission_denied_video + Res.string.call_permission_denied_video } else { - R.string.call_permission_denied_voice + Res.string.call_permission_denied_voice }, ), ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/call/CallScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/call/CallScreen.kt index 107dd1cc20..0532d0ba19 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/call/CallScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/call/CallScreen.kt @@ -56,16 +56,21 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.nipACWebRtcCalls.CallManager import com.vitorpamplona.amethyst.commons.nipACWebRtcCalls.CallState import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.call_accept import com.vitorpamplona.amethyst.commons.resources.call_calling import com.vitorpamplona.amethyst.commons.resources.call_connecting import com.vitorpamplona.amethyst.commons.resources.call_dismiss import com.vitorpamplona.amethyst.commons.resources.call_ended +import com.vitorpamplona.amethyst.commons.resources.call_hangup +import com.vitorpamplona.amethyst.commons.resources.call_incoming +import com.vitorpamplona.amethyst.commons.resources.call_incoming_video +import com.vitorpamplona.amethyst.commons.resources.call_incoming_voice +import com.vitorpamplona.amethyst.commons.resources.call_reject import com.vitorpamplona.amethyst.ui.call.session.CallSession import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.stringRes @@ -133,7 +138,7 @@ fun CallScreen( state.groupMembers - accountViewModel.account.signer.pubKey } if (isInPipMode) { - PipCallUI(peerPubKeys = otherMembers, statusText = stringRes(R.string.call_incoming), accountViewModel = accountViewModel) + PipCallUI(peerPubKeys = otherMembers, statusText = stringRes(Res.string.call_incoming), accountViewModel = accountViewModel) } else { val isVideoCall = state.callType == com.vitorpamplona.quartz.nipACWebRtcCalls.tags.CallType.VIDEO val acceptWithPermission = @@ -275,7 +280,7 @@ private fun CallInProgressUI( ) { Icon( MaterialSymbols.CallEnd, - contentDescription = stringRes(R.string.call_hangup), + contentDescription = stringRes(Res.string.call_hangup), tint = Color.White, modifier = Modifier.size(32.dp), ) @@ -320,9 +325,9 @@ private fun IncomingCallUI( text = stringRes( if (callType == com.vitorpamplona.quartz.nipACWebRtcCalls.tags.CallType.VIDEO) { - R.string.call_incoming_video + Res.string.call_incoming_video } else { - R.string.call_incoming_voice + Res.string.call_incoming_voice }, ), color = MaterialTheme.colorScheme.onSurfaceVariant, @@ -340,7 +345,7 @@ private fun IncomingCallUI( ) { Icon( MaterialSymbols.CallEnd, - contentDescription = stringRes(R.string.call_reject), + contentDescription = stringRes(Res.string.call_reject), tint = Color.White, modifier = Modifier.size(32.dp), ) @@ -353,7 +358,7 @@ private fun IncomingCallUI( ) { Icon( MaterialSymbols.Call, - contentDescription = stringRes(R.string.call_accept), + contentDescription = stringRes(Res.string.call_accept), tint = Color.White, modifier = Modifier.size(32.dp), ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/call/ConnectedCallUI.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/call/ConnectedCallUI.kt index 9a445c7bb3..8445ebfd3b 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/call/ConnectedCallUI.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/call/ConnectedCallUI.kt @@ -55,15 +55,25 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.nipACWebRtcCalls.CallState import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.call_add_participant +import com.vitorpamplona.amethyst.commons.resources.call_bluetooth +import com.vitorpamplona.amethyst.commons.resources.call_camera_off +import com.vitorpamplona.amethyst.commons.resources.call_camera_on import com.vitorpamplona.amethyst.commons.resources.call_dismiss +import com.vitorpamplona.amethyst.commons.resources.call_earpiece +import com.vitorpamplona.amethyst.commons.resources.call_hangup +import com.vitorpamplona.amethyst.commons.resources.call_mute +import com.vitorpamplona.amethyst.commons.resources.call_screen_share_start +import com.vitorpamplona.amethyst.commons.resources.call_screen_share_stop +import com.vitorpamplona.amethyst.commons.resources.call_screen_sharing import com.vitorpamplona.amethyst.commons.resources.call_search_users +import com.vitorpamplona.amethyst.commons.resources.call_speaker import com.vitorpamplona.amethyst.commons.resources.call_switch_camera +import com.vitorpamplona.amethyst.commons.resources.call_unmute import com.vitorpamplona.amethyst.service.call.AudioRoute import com.vitorpamplona.amethyst.ui.call.session.CallSession import com.vitorpamplona.amethyst.ui.note.creators.userSuggestions.ShowUserSuggestionList @@ -178,7 +188,7 @@ fun ConnectedCallUI( ) { if (isScreenSharing) { Text( - text = stringRes(R.string.call_screen_sharing), + text = stringRes(Res.string.call_screen_sharing), color = Color.Cyan, fontSize = 14.sp, ) @@ -273,7 +283,7 @@ private fun CallControls( IconButton(onClick = onToggleMute, modifier = Modifier.size(56.dp)) { Icon( symbol = if (isAudioMuted) MaterialSymbols.MicOff else MaterialSymbols.Mic, - contentDescription = stringRes(if (isAudioMuted) R.string.call_unmute else R.string.call_mute), + contentDescription = stringRes(if (isAudioMuted) Res.string.call_unmute else Res.string.call_mute), tint = if (isAudioMuted) Color.Red else Color.White, modifier = Modifier.size(28.dp), ) @@ -285,7 +295,7 @@ private fun CallControls( ) { Icon( symbol = if (isVideoEnabled) MaterialSymbols.Videocam else MaterialSymbols.VideocamOff, - contentDescription = stringRes(if (isVideoEnabled) R.string.call_camera_off else R.string.call_camera_on), + contentDescription = stringRes(if (isVideoEnabled) Res.string.call_camera_off else Res.string.call_camera_on), tint = when { isScreenSharing -> Color.Gray @@ -303,7 +313,7 @@ private fun CallControls( symbol = MaterialSymbols.Cast, contentDescription = stringRes( - if (isScreenSharing) R.string.call_screen_share_stop else R.string.call_screen_share_start, + if (isScreenSharing) Res.string.call_screen_share_stop else Res.string.call_screen_share_start, ), tint = if (isScreenSharing) Color.Cyan else Color.White, modifier = Modifier.size(28.dp), @@ -335,9 +345,9 @@ private fun CallControls( contentDescription = stringRes( when (currentAudioRoute) { - AudioRoute.EARPIECE -> R.string.call_earpiece - AudioRoute.SPEAKER -> R.string.call_speaker - AudioRoute.BLUETOOTH -> R.string.call_bluetooth + AudioRoute.EARPIECE -> Res.string.call_earpiece + AudioRoute.SPEAKER -> Res.string.call_speaker + AudioRoute.BLUETOOTH -> Res.string.call_bluetooth }, ), tint = @@ -367,7 +377,7 @@ private fun CallControls( ) { Icon( MaterialSymbols.CallEnd, - contentDescription = stringRes(R.string.call_hangup), + contentDescription = stringRes(Res.string.call_hangup), tint = Color.White, modifier = Modifier.size(32.dp), ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/call/session/CallSession.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/call/session/CallSession.kt index e198c246f5..b07cf7e5f0 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/call/session/CallSession.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/call/session/CallSession.kt @@ -27,7 +27,6 @@ import android.net.Network import android.net.NetworkCapabilities import android.net.NetworkRequest import androidx.compose.runtime.Stable -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.nipACWebRtcCalls.AnswerRouteAction import com.vitorpamplona.amethyst.commons.nipACWebRtcCalls.CallManager import com.vitorpamplona.amethyst.commons.nipACWebRtcCalls.CallState @@ -36,6 +35,8 @@ import com.vitorpamplona.amethyst.commons.nipACWebRtcCalls.PeerSession import com.vitorpamplona.amethyst.commons.nipACWebRtcCalls.PeerSessionManager import com.vitorpamplona.amethyst.commons.nipACWebRtcCalls.SdpType import com.vitorpamplona.amethyst.commons.nipACWebRtcCalls.SignalingState +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.call_screen_sharing import com.vitorpamplona.amethyst.service.call.AudioRoute import com.vitorpamplona.amethyst.service.call.CallAudioManager import com.vitorpamplona.amethyst.service.call.CallForegroundService @@ -865,7 +866,7 @@ class CallSession( putExtra(CallForegroundService.EXTRA_IS_SCREEN_SHARING, isScreenSharing) putExtra(CallForegroundService.EXTRA_IS_RINGING, isRinging) if (isScreenSharing) { - putExtra(CallForegroundService.EXTRA_STATUS_TEXT, context.getString(R.string.call_screen_sharing)) + putExtra(CallForegroundService.EXTRA_STATUS_TEXT, context.getString(Res.string.call_screen_sharing)) } } context.startForegroundService(intent) @@ -888,7 +889,7 @@ class CallSession( putExtra(CallForegroundService.EXTRA_IS_SCREEN_SHARING, isScreenSharing) putExtra(CallForegroundService.EXTRA_IS_RINGING, isRinging) if (isScreenSharing) { - putExtra(CallForegroundService.EXTRA_STATUS_TEXT, context.getString(R.string.call_screen_sharing)) + putExtra(CallForegroundService.EXTRA_STATUS_TEXT, context.getString(Res.string.call_screen_sharing)) } } context.startService(intent) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/CashuRedeem.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/CashuRedeem.kt index 0781bca19b..7d6565810b 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/CashuRedeem.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/CashuRedeem.kt @@ -49,12 +49,14 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.core.net.toUri -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.hashtags.Cashu import com.vitorpamplona.amethyst.commons.hashtags.CustomHashTagIcons import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cashu import com.vitorpamplona.amethyst.commons.resources.cashu_mint_label +import com.vitorpamplona.amethyst.commons.resources.cashu_no_wallet_found import com.vitorpamplona.amethyst.commons.resources.cashu_redeem +import com.vitorpamplona.amethyst.commons.resources.sats import com.vitorpamplona.amethyst.commons.ui.components.GenericLoadable import com.vitorpamplona.amethyst.commons.ui.components.LoadingAnimation import com.vitorpamplona.amethyst.service.cashu.CachedCashuParser @@ -163,7 +165,7 @@ fun CashuPreviewNew( val context = LocalContext.current PaymentCard( - title = stringRes(R.string.cashu), + title = stringRes(Res.string.cashu), icon = { Icon( imageVector = CustomHashTagIcons.Cashu, @@ -174,7 +176,7 @@ fun CashuPreviewNew( }, copyValue = token.token, ) { - val satsLabel = stringRes(R.string.sats) + val satsLabel = stringRes(Res.string.sats) val (amount, unit) = remember(token) { cashuAmountLabel(token, satsLabel) } PaymentCardAmount(amount = amount, unit = unit) @@ -238,7 +240,7 @@ fun CashuPreviewNew( context.startActivity(intent) } catch (e: Exception) { if (e is CancellationException) throw e - toast(stringRes(context, R.string.cashu), stringRes(context, R.string.cashu_no_wallet_found)) + toast(stringRes(Res.string.cashu), stringRes(Res.string.cashu_no_wallet_found)) } }, shape = ButtonBorder, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ClickableWithdrawal.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ClickableWithdrawal.kt index 9bf39bf031..a7c4667785 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ClickableWithdrawal.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ClickableWithdrawal.kt @@ -30,7 +30,8 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.style.TextDirection -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.error_dialog_pay_withdraw_error import com.vitorpamplona.amethyst.commons.ui.components.ClickableTextPrimary import com.vitorpamplona.amethyst.ui.actions.CrossfadeIfEnabled import com.vitorpamplona.amethyst.ui.note.ErrorMessageDialog @@ -72,7 +73,7 @@ fun ClickableWithdrawal(withdrawalString: String) { if (showErrorMessageDialog != null) { ErrorMessageDialog( - title = stringRes(context, R.string.error_dialog_pay_withdraw_error), + title = stringRes(Res.string.error_dialog_pay_withdraw_error), textContent = showErrorMessageDialog ?: "", onDismiss = { showErrorMessageDialog = null }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ConcordInviteCard.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ConcordInviteCard.kt index a2476216ee..a91ad46b23 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ConcordInviteCard.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ConcordInviteCard.kt @@ -42,10 +42,10 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.actions.ConcordActions import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.concord_home_title import com.vitorpamplona.amethyst.commons.resources.concord_invite_card_join import com.vitorpamplona.amethyst.commons.resources.concord_invite_card_subtitle import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -85,7 +85,7 @@ fun ConcordInviteCard( val autoPlayGif by accountViewModel.settings.autoPlayVideosFlow.collectAsStateWithLifecycle() // Robohash seed: the community id once known (stable), else the link signer. val robotSeed = invite?.communityId ?: parsed.linkSignerPubKey - val title = invite?.name?.takeIf { it.isNotBlank() } ?: stringRes(R.string.concord_home_title) + val title = invite?.name?.takeIf { it.isNotBlank() } ?: stringRes(Res.string.concord_home_title) ElevatedCard( onClick = { nav.nav(Route.ConcordInvite(linkText)) }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/FullScreenViewerChrome.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/FullScreenViewerChrome.kt index f6d8aa4e57..271e803c32 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/FullScreenViewerChrome.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/FullScreenViewerChrome.kt @@ -67,9 +67,13 @@ import androidx.lifecycle.viewModelScope import com.google.accompanist.permissions.ExperimentalPermissionsApi import com.google.accompanist.permissions.isGranted import com.google.accompanist.permissions.rememberPermissionState -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back +import com.vitorpamplona.amethyst.commons.resources.download_to_phone +import com.vitorpamplona.amethyst.commons.resources.media_download_has_started_toast +import com.vitorpamplona.amethyst.commons.resources.quick_action_share import com.vitorpamplona.amethyst.commons.richtext.BaseMediaContent import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.stringRes @@ -244,7 +248,7 @@ fun ViewerBackButton(onDismiss: () -> Unit) { ) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), ) } } @@ -264,7 +268,7 @@ fun ViewerShareButton( Icon( symbol = MaterialSymbols.Share, modifier = Size20Modifier, - contentDescription = stringRes(R.string.quick_action_share), + contentDescription = stringRes(Res.string.quick_action_share), ) ShareMediaAction( @@ -303,7 +307,7 @@ fun ViewerSaveToGalleryButton( Toast .makeText( localContext, - stringRes(localContext, R.string.media_download_has_started_toast), + stringRes(Res.string.media_download_has_started_toast), Toast.LENGTH_SHORT, ).show() } @@ -323,7 +327,7 @@ fun ViewerSaveToGalleryButton( Toast .makeText( localContext, - stringRes(localContext, R.string.media_download_has_started_toast), + stringRes(Res.string.media_download_has_started_toast), Toast.LENGTH_SHORT, ).show() } @@ -337,7 +341,7 @@ fun ViewerSaveToGalleryButton( Icon( symbol = MaterialSymbols.Download, modifier = Size20Modifier, - contentDescription = stringRes(R.string.download_to_phone), + contentDescription = stringRes(Res.string.download_to_phone), ) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/NowhereLinkCard.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/NowhereLinkCard.kt index a4abd49abe..496aeedce1 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/NowhereLinkCard.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/NowhereLinkCard.kt @@ -33,7 +33,16 @@ import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.nowhere_link_card_art +import com.vitorpamplona.amethyst.commons.resources.nowhere_link_card_drop +import com.vitorpamplona.amethyst.commons.resources.nowhere_link_card_event +import com.vitorpamplona.amethyst.commons.resources.nowhere_link_card_forum +import com.vitorpamplona.amethyst.commons.resources.nowhere_link_card_fundraiser +import com.vitorpamplona.amethyst.commons.resources.nowhere_link_card_generic +import com.vitorpamplona.amethyst.commons.resources.nowhere_link_card_message +import com.vitorpamplona.amethyst.commons.resources.nowhere_link_card_petition +import com.vitorpamplona.amethyst.commons.resources.nowhere_link_card_store import com.vitorpamplona.amethyst.commons.richtext.NowhereLinkSegment import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.innerPostModifier @@ -44,20 +53,20 @@ import com.vitorpamplona.amethyst.ui.theme.innerPostModifier // fall through to the generic "Nowhere site" label. private val nowhereToolLabels = mapOf( - "e" to R.string.nowhere_link_card_event, - "f" to R.string.nowhere_link_card_fundraiser, - "s" to R.string.nowhere_link_card_store, - "p" to R.string.nowhere_link_card_petition, - "m" to R.string.nowhere_link_card_message, - "d" to R.string.nowhere_link_card_drop, - "a" to R.string.nowhere_link_card_art, - "fo" to R.string.nowhere_link_card_forum, + "e" to Res.string.nowhere_link_card_event, + "f" to Res.string.nowhere_link_card_fundraiser, + "s" to Res.string.nowhere_link_card_store, + "p" to Res.string.nowhere_link_card_petition, + "m" to Res.string.nowhere_link_card_message, + "d" to Res.string.nowhere_link_card_drop, + "a" to Res.string.nowhere_link_card_art, + "fo" to Res.string.nowhere_link_card_forum, ) @Composable fun NowhereLinkCard(segment: NowhereLinkSegment) { val uri = LocalUriHandler.current - val titleRes = segment.tool?.lowercase()?.let { nowhereToolLabels[it] } ?: R.string.nowhere_link_card_generic + val titleRes = segment.tool?.lowercase()?.let { nowhereToolLabels[it] } ?: Res.string.nowhere_link_card_generic Column( modifier = diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/PaymentCard.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/PaymentCard.kt index 6687ff7927..fb54c2166c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/PaymentCard.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/PaymentCard.kt @@ -45,9 +45,11 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.copied_to_clipboard +import com.vitorpamplona.amethyst.commons.resources.copy_to_clipboard import com.vitorpamplona.amethyst.ui.components.util.setText import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.QuoteBorder @@ -111,7 +113,7 @@ private fun CopyToClipboardButton(value: String) { val context = LocalContext.current val clipboard = LocalClipboard.current val scope = rememberCoroutineScope() - val copiedMessage = stringRes(R.string.copied_to_clipboard) + val copiedMessage = stringRes(Res.string.copied_to_clipboard) IconButton( onClick = { @@ -124,7 +126,7 @@ private fun CopyToClipboardButton(value: String) { ) { Icon( symbol = MaterialSymbols.ContentCopy, - contentDescription = stringRes(R.string.copy_to_clipboard), + contentDescription = stringRes(Res.string.copy_to_clipboard), tint = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Size18Modifier, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/RelayGroupCard.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/RelayGroupCard.kt index 8b8cf94459..201e73b2ba 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/RelayGroupCard.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/RelayGroupCard.kt @@ -45,13 +45,13 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.nip29RelayGroups.RelayGroupChannel import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.relay_group_badge_invite_only import com.vitorpamplona.amethyst.commons.resources.relay_group_badge_private +import com.vitorpamplona.amethyst.commons.resources.relay_group_member_count import com.vitorpamplona.amethyst.commons.resources.relay_group_open import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route @@ -181,7 +181,7 @@ private fun RelayGroupCardContent( modifier = Modifier.size(14.dp), ) Text( - text = pluralStringResource(R.plurals.relay_group_member_count, memberCount, memberCount), + text = pluralStringResource(Res.plurals.relay_group_member_count, memberCount, memberCount), style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.onSurfaceVariant, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ReusableZapButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ReusableZapButton.kt index 2d26722335..5777b6d93c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ReusableZapButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ReusableZapButton.kt @@ -44,11 +44,15 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.donate_now +import com.vitorpamplona.amethyst.commons.resources.draft_note +import com.vitorpamplona.amethyst.commons.resources.error_dialog_zap_error +import com.vitorpamplona.amethyst.commons.resources.it_s_not_possible_to_zap_to_a_draft_note +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_send_zaps +import com.vitorpamplona.amethyst.commons.resources.no_zap_amount_setup_long_press_to_change import com.vitorpamplona.amethyst.commons.resources.thank_you import com.vitorpamplona.amethyst.service.ZapPaymentHandler import com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.UserFinderFilterAssemblerSubscription @@ -144,7 +148,7 @@ fun ReusableZapButton( onError = { _, message, toUser -> scope.launch { zappingProgress = 0f - accountViewModel.toastManager.toast(R.string.error_dialog_zap_error, message, toUser) + accountViewModel.toastManager.toast(Res.string.error_dialog_zap_error, message, toUser) } }, onPayViaIntent = { @@ -152,7 +156,7 @@ fun ReusableZapButton( val payable = it.first() payViaIntent(payable.invoice, context, { }) { zappingProgress = 0f - accountViewModel.toastManager.toast(R.string.error_dialog_zap_error, UserBasedErrorMessage(it, payable.info.user)) + accountViewModel.toastManager.toast(Res.string.error_dialog_zap_error, UserBasedErrorMessage(it, payable.info.user)) } } else { val uid = Uuid.random().toString() @@ -181,7 +185,7 @@ fun ReusableZapButton( onError = { _, message, user -> scope.launch { zappingProgress = 0f - accountViewModel.toastManager.toast(R.string.error_dialog_zap_error, message, user) + accountViewModel.toastManager.toast(Res.string.error_dialog_zap_error, message, user) } }, onProgress = { @@ -192,7 +196,7 @@ fun ReusableZapButton( val payable = it.first() payViaIntent(payable.invoice, context, { }) { zappingProgress = 0f - accountViewModel.toastManager.toast(R.string.error_dialog_zap_error, UserBasedErrorMessage(it, payable.info.user)) + accountViewModel.toastManager.toast(Res.string.error_dialog_zap_error, UserBasedErrorMessage(it, payable.info.user)) } } else { val uid = Uuid.random().toString() @@ -316,8 +320,8 @@ private fun handleZapClick( ) { if (baseNote.isDraft()) { accountViewModel.toastManager.toast( - R.string.draft_note, - R.string.it_s_not_possible_to_zap_to_a_draft_note, + Res.string.draft_note, + Res.string.it_s_not_possible_to_zap_to_a_draft_note, ) return } @@ -327,15 +331,15 @@ private fun handleZapClick( when { choices.isEmpty() -> { accountViewModel.toastManager.toast( - stringRes(context, R.string.error_dialog_zap_error), - stringRes(context, R.string.no_zap_amount_setup_long_press_to_change), + Res.string.error_dialog_zap_error, + Res.string.no_zap_amount_setup_long_press_to_change, ) } !accountViewModel.isWriteable() -> { accountViewModel.toastManager.toast( - stringRes(context, R.string.error_dialog_zap_error), - stringRes(context, R.string.login_with_a_private_key_to_be_able_to_send_zaps), + Res.string.error_dialog_zap_error, + Res.string.login_with_a_private_key_to_be_able_to_send_zaps, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/SwipeToDelete.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/SwipeToDelete.kt index c528a4ed22..c53d7f2abd 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/SwipeToDelete.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/SwipeToDelete.kt @@ -48,11 +48,14 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.hapticfeedback.HapticFeedbackType import androidx.compose.ui.platform.LocalHapticFeedback import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cancel +import com.vitorpamplona.amethyst.commons.resources.request_deletion import com.vitorpamplona.amethyst.ui.stringRes import kotlinx.coroutines.launch +import org.jetbrains.compose.resources.StringResource @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -81,7 +84,7 @@ fun SwipeToDeleteContainer( fun SwipeToDeleteWithConfirmation( modifier: Modifier = Modifier, onDelete: () -> Unit, - confirmLabelRes: Int = R.string.request_deletion, + confirmLabelRes: StringResource = Res.string.request_deletion, content: @Composable (RowScope.() -> Unit), ) { val scope = rememberCoroutineScope() @@ -142,12 +145,12 @@ fun DismissBackground(dismissState: SwipeToDismissBoxState) { ) { Icon( MaterialSymbols.Delete, - contentDescription = stringRes(id = R.string.request_deletion), + contentDescription = stringRes(id = Res.string.request_deletion), ) Spacer(modifier = Modifier) Icon( MaterialSymbols.Delete, - contentDescription = stringRes(id = R.string.request_deletion), + contentDescription = stringRes(id = Res.string.request_deletion), ) } } @@ -158,7 +161,7 @@ fun ConfirmDeleteBackground( dismissState: SwipeToDismissBoxState, onConfirmDelete: () -> Unit, onCancel: () -> Unit, - confirmLabelRes: Int = R.string.request_deletion, + confirmLabelRes: StringResource = Res.string.request_deletion, ) { val settled = dismissState.currentValue == Settled && dismissState.targetValue == Settled @@ -219,12 +222,12 @@ fun ConfirmDeleteBackground( ) { Icon( MaterialSymbols.Close, - contentDescription = stringRes(id = R.string.cancel), + contentDescription = stringRes(id = Res.string.cancel), tint = Color.White, ) Spacer(modifier = Modifier.padding(horizontal = 4.dp)) Text( - text = stringRes(id = R.string.cancel), + text = stringRes(id = Res.string.cancel), color = Color.White, style = MaterialTheme.typography.titleMedium, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreviewCard.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreviewCard.kt index 358cc53c1a..54c8c69bda 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreviewCard.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreviewCard.kt @@ -40,12 +40,12 @@ import androidx.compose.ui.platform.LocalClipboard import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.text.style.TextOverflow import coil3.compose.AsyncImage -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.preview.UrlInfoItem import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.copy_url_to_clipboard +import com.vitorpamplona.amethyst.commons.resources.kind_comments import com.vitorpamplona.amethyst.commons.resources.link_actions_dialog_title import com.vitorpamplona.amethyst.commons.resources.url_preview_open_in_browser import com.vitorpamplona.amethyst.ui.components.util.setText @@ -91,7 +91,7 @@ fun UrlPreviewCard( onUrlComments?.let { M3ActionRow( icon = MaterialSymbols.Link, - text = stringRes(R.string.kind_comments), + text = stringRes(Res.string.kind_comments), ) { popupExpanded.value = false it() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt index 8781527596..a577046176 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt @@ -66,7 +66,13 @@ import androidx.compose.ui.window.DialogProperties import androidx.core.net.toUri import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.failed_to_save_the_image +import com.vitorpamplona.amethyst.commons.resources.failed_to_save_the_pdf +import com.vitorpamplona.amethyst.commons.resources.failed_to_save_the_video +import com.vitorpamplona.amethyst.commons.resources.image_saved_to_the_gallery +import com.vitorpamplona.amethyst.commons.resources.pdf_saved_to_the_gallery +import com.vitorpamplona.amethyst.commons.resources.video_saved_to_the_gallery import com.vitorpamplona.amethyst.commons.richtext.BaseMediaContent import com.vitorpamplona.amethyst.commons.richtext.MediaLocalImage import com.vitorpamplona.amethyst.commons.richtext.MediaLocalVideo @@ -376,15 +382,15 @@ internal suspend fun saveMediaToGallery( val success = when { - isImage -> R.string.image_saved_to_the_gallery - isPdf -> R.string.pdf_saved_to_the_gallery - else -> R.string.video_saved_to_the_gallery + isImage -> Res.string.image_saved_to_the_gallery + isPdf -> Res.string.pdf_saved_to_the_gallery + else -> Res.string.video_saved_to_the_gallery } val failure = when { - isImage -> R.string.failed_to_save_the_image - isPdf -> R.string.failed_to_save_the_pdf - else -> R.string.failed_to_save_the_video + isImage -> Res.string.failed_to_save_the_image + isPdf -> Res.string.failed_to_save_the_pdf + else -> Res.string.failed_to_save_the_video } if (content is MediaUrlContent) { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt index 2e506c7b01..409716f83e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt @@ -83,9 +83,19 @@ import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.add_media_to_gallery import com.vitorpamplona.amethyst.commons.resources.copy_the_note_id_to_the_clipboard import com.vitorpamplona.amethyst.commons.resources.copy_url_to_clipboard +import com.vitorpamplona.amethyst.commons.resources.download_to_phone +import com.vitorpamplona.amethyst.commons.resources.downloading_video_for_sharing +import com.vitorpamplona.amethyst.commons.resources.hash_verification_failed +import com.vitorpamplona.amethyst.commons.resources.hash_verification_info_title +import com.vitorpamplona.amethyst.commons.resources.hash_verification_passed import com.vitorpamplona.amethyst.commons.resources.media_actions_dialog_title +import com.vitorpamplona.amethyst.commons.resources.media_added +import com.vitorpamplona.amethyst.commons.resources.media_added_to_profile_gallery +import com.vitorpamplona.amethyst.commons.resources.media_download_has_started_toast import com.vitorpamplona.amethyst.commons.resources.share_image import com.vitorpamplona.amethyst.commons.resources.share_video +import com.vitorpamplona.amethyst.commons.resources.unable_to_share_image +import com.vitorpamplona.amethyst.commons.resources.unable_to_share_video import com.vitorpamplona.amethyst.commons.richtext.BaseMediaContent import com.vitorpamplona.amethyst.commons.richtext.MediaLocalImage import com.vitorpamplona.amethyst.commons.richtext.MediaLocalVideo @@ -994,14 +1004,14 @@ fun ShareMediaAction( } if (content is MediaUrlPdf && videoUri != null && !videoUri.startsWith("file")) { val appContext = LocalContext.current.applicationContext - M3ActionRow(icon = MaterialSymbols.Download, text = stringRes(R.string.download_to_phone)) { + M3ActionRow(icon = MaterialSymbols.Download, text = stringRes(Res.string.download_to_phone)) { accountViewModel.viewModelScope.launch(Dispatchers.IO) { saveMediaToGallery(content, appContext, accountViewModel) } Toast .makeText( appContext, - stringRes(appContext, R.string.media_download_has_started_toast), + stringRes(Res.string.media_download_has_started_toast), Toast.LENGTH_SHORT, ).show() onDismiss() @@ -1026,7 +1036,7 @@ fun ShareMediaAction( (content as? MediaUrlVideo)?.thumbhash ?: (content as? MediaUrlImage)?.thumbhash accountViewModel.addMediaToGallery(n19.hex, videoUri, n19.relay.getOrNull(0), blurhash, dim, hash, mimeType, thumbhash = thumbhashFromContent, image = posterUrl) - accountViewModel.toastManager.toast(R.string.media_added, R.string.media_added_to_profile_gallery) + accountViewModel.toastManager.toast(Res.string.media_added, Res.string.media_added_to_profile_gallery) } } onDismiss() @@ -1061,7 +1071,7 @@ fun ShareMediaAction( enabled = !isDownloadingVideo.value, ) { isDownloadingVideo.value = true - Toast.makeText(context, stringRes(context, R.string.downloading_video_for_sharing), Toast.LENGTH_SHORT).show() + Toast.makeText(context, stringRes(Res.string.downloading_video_for_sharing), Toast.LENGTH_SHORT).show() accountViewModel.viewModelScope.launch { shareVideoFile( context = context, @@ -1125,7 +1135,7 @@ private suspend fun shareImageFile( } catch (e: Exception) { if (e is CancellationException) throw e Log.w("ZoomableContentView", "Failed to share image: $videoUri", e) - Toast.makeText(context, context.getString(R.string.unable_to_share_image), Toast.LENGTH_SHORT).show() + Toast.makeText(context, context.getString(Res.string.unable_to_share_image), Toast.LENGTH_SHORT).show() } } @@ -1216,7 +1226,7 @@ private suspend fun shareVideoFile( Toast .makeText( context, - context.getString(R.string.unable_to_share_video), + context.getString(Res.string.unable_to_share_video), Toast.LENGTH_SHORT, ).show() onError() @@ -1255,7 +1265,7 @@ private suspend fun shareLocalVideoFile( Toast .makeText( context, - context.getString(R.string.unable_to_share_video), + context.getString(Res.string.unable_to_share_video), Toast.LENGTH_SHORT, ).show() } @@ -1285,7 +1295,7 @@ private fun HashVerificationSymbol(verifiedHash: Boolean) { openDialogMsg.value?.let { InformationDialog( - title = stringRes(localContext, R.string.hash_verification_info_title), + title = stringRes(Res.string.hash_verification_info_title), textContent = it, ) { openDialogMsg.value = null @@ -1296,12 +1306,12 @@ private fun HashVerificationSymbol(verifiedHash: Boolean) { IconButton( modifier = hashVerifierMark, onClick = { - openDialogMsg.value = stringRes(localContext, R.string.hash_verification_passed) + openDialogMsg.value = stringRes(Res.string.hash_verification_passed) }, ) { Icon( painter = painterRes(R.drawable.original, 1), - contentDescription = stringRes(id = R.string.hash_verification_passed), + contentDescription = stringRes(id = Res.string.hash_verification_passed), modifier = Size30Modifier, tint = MaterialTheme.colorScheme.primary, ) @@ -1310,12 +1320,12 @@ private fun HashVerificationSymbol(verifiedHash: Boolean) { IconButton( modifier = hashVerifierMark, onClick = { - openDialogMsg.value = stringRes(localContext, R.string.hash_verification_failed) + openDialogMsg.value = stringRes(Res.string.hash_verification_failed) }, ) { Icon( symbol = MaterialSymbols.Report, - contentDescription = stringRes(id = R.string.hash_verification_failed), + contentDescription = stringRes(id = Res.string.hash_verification_failed), modifier = Size30Modifier, tint = MaterialTheme.colorScheme.error, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/toasts/ResourceToastMsg.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/toasts/ResourceToastMsg.kt index b09d8357d9..e8a3c263c8 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/toasts/ResourceToastMsg.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/toasts/ResourceToastMsg.kt @@ -21,10 +21,11 @@ package com.vitorpamplona.amethyst.ui.components.toasts import androidx.compose.runtime.Immutable +import org.jetbrains.compose.resources.StringResource @Immutable class ResourceToastMsg( - val titleResId: Int, - val resourceId: Int, + val titleResId: StringResource, + val resourceId: StringResource, val params: Array? = null, ) : ToastMsg() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/toasts/ThrowableToastMsg.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/toasts/ThrowableToastMsg.kt index 4148e4a817..2d7f77f9f3 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/toasts/ThrowableToastMsg.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/toasts/ThrowableToastMsg.kt @@ -21,17 +21,18 @@ package com.vitorpamplona.amethyst.ui.components.toasts import androidx.compose.runtime.Immutable +import org.jetbrains.compose.resources.StringResource @Immutable class ThrowableToastMsg( - val titleResId: Int, + val titleResId: StringResource, val msg: String? = null, val throwable: Throwable, ) : ToastMsg() @Immutable class ThrowableToastMsg2( - val titleResId: Int, - val description: Int, + val titleResId: StringResource, + val description: StringResource, val throwable: Throwable, ) : ToastMsg() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/toasts/ToastManager.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/toasts/ToastManager.kt index 0effd8dc48..2e30e70d17 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/toasts/ToastManager.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/toasts/ToastManager.kt @@ -25,6 +25,7 @@ import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.ui.components.toasts.multiline.MultiErrorToastMsg import com.vitorpamplona.amethyst.ui.components.toasts.multiline.UserBasedErrorMessage import kotlinx.coroutines.flow.MutableStateFlow +import org.jetbrains.compose.resources.StringResource @Stable class ToastManager { @@ -50,14 +51,14 @@ class ToastManager { } fun toast( - titleResId: Int, - resourceId: Int, + titleResId: StringResource, + resourceId: StringResource, ) { toasts.tryEmit(ResourceToastMsg(titleResId, resourceId)) } fun toast( - titleResId: Int, + titleResId: StringResource, message: String?, throwable: Throwable, ) { @@ -65,23 +66,23 @@ class ToastManager { } fun toast( - titleResId: Int, - description: Int, + titleResId: StringResource, + description: StringResource, throwable: Throwable, ) { toasts.tryEmit(ThrowableToastMsg2(titleResId, description, throwable)) } fun toast( - titleResId: Int, - resourceId: Int, + titleResId: StringResource, + resourceId: StringResource, vararg params: String, ) { toasts.tryEmit(ResourceToastMsg(titleResId, resourceId, params)) } fun toast( - titleResId: Int, + titleResId: StringResource, message: String, user: User?, ) { @@ -94,7 +95,7 @@ class ToastManager { } fun toast( - titleResId: Int, + titleResId: StringResource, data: UserBasedErrorMessage, ) { val current = toasts.value diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/toasts/multiline/ErrorList.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/toasts/multiline/ErrorList.kt index 42e7e376f8..1d26b2a69a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/toasts/multiline/ErrorList.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/toasts/multiline/ErrorList.kt @@ -47,6 +47,7 @@ import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.error_dialog_talk_to_user import com.vitorpamplona.amethyst.commons.resources.error_dialog_talk_to_user_name +import com.vitorpamplona.amethyst.commons.resources.error_dialog_zap_error import com.vitorpamplona.amethyst.ui.navigation.navs.EmptyNav import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.routeToMessage @@ -84,7 +85,7 @@ fun ErrorListPreview() { } } - val model = MultiErrorToastMsg(R.string.error_dialog_zap_error) + val model = MultiErrorToastMsg(Res.string.error_dialog_zap_error) model.add("Could not fetch invoice from https://minibits.cash/.well-known/lnurlp/victorieeman: There are too many unpaid invoices for this name.", user1) model.add("No Wallets found to pay a lightning invoice. Please install a Lightning wallet to use zaps.", user2) model.add("Could not fetch invoice", user3) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/toasts/multiline/MultiErrorToastMsg.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/toasts/multiline/MultiErrorToastMsg.kt index 80c64205f3..2d7c34bf76 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/toasts/multiline/MultiErrorToastMsg.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/toasts/multiline/MultiErrorToastMsg.kt @@ -25,10 +25,11 @@ import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.ui.components.toasts.ToastMsg import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.update +import org.jetbrains.compose.resources.StringResource @Immutable class MultiErrorToastMsg( - val titleResId: Int, + val titleResId: StringResource, ) : ToastMsg() { val errors = MutableStateFlow>(emptyList()) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/toasts/multiline/MultiUserErrorMessageDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/toasts/multiline/MultiUserErrorMessageDialog.kt index 1e7f675229..bfbe3236d6 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/toasts/multiline/MultiUserErrorMessageDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/toasts/multiline/MultiUserErrorMessageDialog.kt @@ -27,13 +27,13 @@ import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.error_dialog_button_ok +import com.vitorpamplona.amethyst.commons.resources.error_dialog_zap_error import com.vitorpamplona.amethyst.ui.navigation.navs.EmptyNav import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel @@ -64,7 +64,7 @@ fun MultiUserErrorMessageContentPreview() { } } - val model = MultiErrorToastMsg(R.string.error_dialog_zap_error) + val model = MultiErrorToastMsg(Res.string.error_dialog_zap_error) model.add("Could not fetch invoice from https://minibits.cash/.well-known/lnurlp/victorieeman: There are too many unpaid invoices for this name.", user1) model.add("No Wallets found to pay a lightning invoice. Please install a Lightning wallet to use zaps.", user2) model.add("Could not fetch invoice", user3) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/util/LongPressCopyText.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/util/LongPressCopyText.kt index 1fefe235a2..60fc0869f4 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/util/LongPressCopyText.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/util/LongPressCopyText.kt @@ -33,9 +33,12 @@ import androidx.compose.ui.platform.LocalClipboard import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.style.TextOverflow -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.copied_to_clipboard +import com.vitorpamplona.amethyst.commons.resources.copy_to_clipboard import com.vitorpamplona.amethyst.ui.stringRes import kotlinx.coroutines.launch +import org.jetbrains.compose.resources.StringResource /** * Text composable that opens [onClick] on a tap and copies [copyValue] to the @@ -70,8 +73,8 @@ fun LongPressCopyText( softWrap: Boolean = true, overflow: TextOverflow = TextOverflow.Ellipsis, maxLines: Int = Int.MAX_VALUE, - toastResId: Int = R.string.copied_to_clipboard, - onLongClickLabelResId: Int = R.string.copy_to_clipboard, + toastResId: StringResource = Res.string.copied_to_clipboard, + onLongClickLabelResId: StringResource = Res.string.copy_to_clipboard, ) { val context = LocalContext.current val clipboard = LocalClipboard.current @@ -91,7 +94,7 @@ fun LongPressCopyText( onLongClick = { scope.launch { clipboard.setText(copyValue) - Toast.makeText(context, stringRes(context, toastResId), Toast.LENGTH_SHORT).show() + Toast.makeText(context, stringRes(toastResId), Toast.LENGTH_SHORT).show() } }, onLongClickLabel = longClickLabel, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppNavigation.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppNavigation.kt index 561b4e0686..6a2dd2e9d9 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppNavigation.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppNavigation.kt @@ -45,11 +45,13 @@ import androidx.navigation.NavController import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.nipACWebRtcCalls.CallState import com.vitorpamplona.amethyst.commons.relayClient.event.LocalEventFinder import com.vitorpamplona.amethyst.commons.relayClient.user.LocalUserFinder import com.vitorpamplona.amethyst.commons.relayClient.user.LocalUserFinderAccount +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.invalid_nip19_uri +import com.vitorpamplona.amethyst.commons.resources.invalid_nip19_uri_description import com.vitorpamplona.amethyst.service.crashreports.DisplayCrashMessages import com.vitorpamplona.amethyst.service.relayClient.authCommand.compose.RelayAuthPromptHost import com.vitorpamplona.amethyst.service.relayClient.notifyCommand.compose.DisplayNotifyMessages @@ -1189,8 +1191,8 @@ private fun NavigateIfIntentRequested( actionableNextPage = null } else { accountViewModel.toastManager.toast( - R.string.invalid_nip19_uri, - R.string.invalid_nip19_uri_description, + Res.string.invalid_nip19_uri, + Res.string.invalid_nip19_uri_description, intentNextPage, ) } @@ -1275,8 +1277,8 @@ private fun NavigateIfIntentRequested( scope.launch { delay(1000) accountViewModel.toastManager.toast( - R.string.invalid_nip19_uri, - R.string.invalid_nip19_uri_description, + Res.string.invalid_nip19_uri, + Res.string.invalid_nip19_uri_description, uri, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/bottombars/GroupBottomBarEntries.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/bottombars/GroupBottomBarEntries.kt index eb47325310..f96e64bfc7 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/bottombars/GroupBottomBarEntries.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/bottombars/GroupBottomBarEntries.kt @@ -32,12 +32,13 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.unit.Dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Channel import com.vitorpamplona.amethyst.commons.model.ChannelState import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.nip28PublicChats.PublicChatChannel import com.vitorpamplona.amethyst.commons.model.nip29RelayGroups.RelayGroupChannel +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.concord_home_title import com.vitorpamplona.amethyst.model.nip11RelayInfo.loadRelayInfo import com.vitorpamplona.amethyst.service.relayClient.reqCommand.channel.ChannelFinderFilterAssemblerSubscription import com.vitorpamplona.amethyst.ui.components.RobohashFallbackAsyncImage @@ -183,7 +184,7 @@ fun rememberConcordEntryDisplay( val metadata = state.takeIf { revision >= 0 }?.metadata val fallbackName = remember(communities, entry.communityId) { communities.firstOrNull { it.id == entry.communityId }?.name?.ifBlank { null } } - val label = metadata?.name?.takeIf { it.isNotBlank() } ?: fallbackName ?: stringRes(R.string.concord_home_title) + val label = metadata?.name?.takeIf { it.isNotBlank() } ?: fallbackName ?: stringRes(Res.string.concord_home_title) val model = rememberConcordImageModel(metadata?.icon, accountViewModel) return GroupEntryDisplay( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/bottombars/NavBarItem.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/bottombars/NavBarItem.kt index 6d563bc387..3f480597de 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/bottombars/NavBarItem.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/bottombars/NavBarItem.kt @@ -20,9 +20,66 @@ */ package com.vitorpamplona.amethyst.ui.navigation.bottombars -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.badges +import com.vitorpamplona.amethyst.commons.resources.bookmarks +import com.vitorpamplona.amethyst.commons.resources.bottom_bar_category_apps +import com.vitorpamplona.amethyst.commons.resources.bottom_bar_category_chats +import com.vitorpamplona.amethyst.commons.resources.bottom_bar_category_feeds +import com.vitorpamplona.amethyst.commons.resources.bottom_bar_category_main +import com.vitorpamplona.amethyst.commons.resources.bottom_bar_category_other +import com.vitorpamplona.amethyst.commons.resources.bottom_bar_category_you +import com.vitorpamplona.amethyst.commons.resources.browser +import com.vitorpamplona.amethyst.commons.resources.communities +import com.vitorpamplona.amethyst.commons.resources.concord_home_title +import com.vitorpamplona.amethyst.commons.resources.discover_marketplace +import com.vitorpamplona.amethyst.commons.resources.discover_reads +import com.vitorpamplona.amethyst.commons.resources.drafts +import com.vitorpamplona.amethyst.commons.resources.emoji_sets +import com.vitorpamplona.amethyst.commons.resources.favorite_apps +import com.vitorpamplona.amethyst.commons.resources.favorite_dvms_title +import com.vitorpamplona.amethyst.commons.resources.follow_packs +import com.vitorpamplona.amethyst.commons.resources.git_repositories +import com.vitorpamplona.amethyst.commons.resources.highlights +import com.vitorpamplona.amethyst.commons.resources.interest_sets_title +import com.vitorpamplona.amethyst.commons.resources.live_streams +import com.vitorpamplona.amethyst.commons.resources.location_channels +import com.vitorpamplona.amethyst.commons.resources.longs +import com.vitorpamplona.amethyst.commons.resources.manage_emoji_packs +import com.vitorpamplona.amethyst.commons.resources.my_blossom_data +import com.vitorpamplona.amethyst.commons.resources.my_fitness +import com.vitorpamplona.amethyst.commons.resources.my_lists +import com.vitorpamplona.amethyst.commons.resources.napplets +import com.vitorpamplona.amethyst.commons.resources.nests +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_title +import com.vitorpamplona.amethyst.commons.resources.nsites +import com.vitorpamplona.amethyst.commons.resources.pictures +import com.vitorpamplona.amethyst.commons.resources.polls +import com.vitorpamplona.amethyst.commons.resources.profile +import com.vitorpamplona.amethyst.commons.resources.public_chats +import com.vitorpamplona.amethyst.commons.resources.relay_groups_title +import com.vitorpamplona.amethyst.commons.resources.route_calendar_collections +import com.vitorpamplona.amethyst.commons.resources.route_calendars +import com.vitorpamplona.amethyst.commons.resources.route_discover +import com.vitorpamplona.amethyst.commons.resources.route_geocache_hunts +import com.vitorpamplona.amethyst.commons.resources.route_geocaches +import com.vitorpamplona.amethyst.commons.resources.route_home +import com.vitorpamplona.amethyst.commons.resources.route_media +import com.vitorpamplona.amethyst.commons.resources.route_messages +import com.vitorpamplona.amethyst.commons.resources.route_music_playlists +import com.vitorpamplona.amethyst.commons.resources.route_music_tracks +import com.vitorpamplona.amethyst.commons.resources.route_notifications +import com.vitorpamplona.amethyst.commons.resources.route_podcast_episodes +import com.vitorpamplona.amethyst.commons.resources.route_podcasts +import com.vitorpamplona.amethyst.commons.resources.scheduled_posts +import com.vitorpamplona.amethyst.commons.resources.settings +import com.vitorpamplona.amethyst.commons.resources.shorts +import com.vitorpamplona.amethyst.commons.resources.software_apps +import com.vitorpamplona.amethyst.commons.resources.wallet +import com.vitorpamplona.amethyst.commons.resources.web_bookmarks +import com.vitorpamplona.amethyst.commons.resources.workouts import com.vitorpamplona.amethyst.ui.navigation.routes.GeocacheTab import com.vitorpamplona.amethyst.ui.navigation.routes.Route import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel @@ -112,14 +169,14 @@ val NavBarCatalog: Map = NavBarItem.HOME to NavBarItemDef( id = NavBarItem.HOME, - labelRes = R.string.route_home, + labelRes = Res.string.route_home, icon = MaterialSymbols.Home, resolveRoute = { Route.Home }, ), NavBarItem.MESSAGES to NavBarItemDef( id = NavBarItem.MESSAGES, - labelRes = R.string.route_messages, + labelRes = Res.string.route_messages, icon = MaterialSymbols.Mail, resolveRoute = { Route.Message }, ), @@ -129,203 +186,203 @@ val NavBarCatalog: Map = NavBarItem.VIDEO to NavBarItemDef( id = NavBarItem.VIDEO, - labelRes = R.string.route_media, + labelRes = Res.string.route_media, icon = MaterialSymbols.Subscriptions, resolveRoute = { Route.Video() }, ), NavBarItem.DISCOVER to NavBarItemDef( id = NavBarItem.DISCOVER, - labelRes = R.string.route_discover, + labelRes = Res.string.route_discover, icon = MaterialSymbols.Sensors, resolveRoute = { Route.Discover() }, ), NavBarItem.NOTIFICATIONS to NavBarItemDef( id = NavBarItem.NOTIFICATIONS, - labelRes = R.string.route_notifications, + labelRes = Res.string.route_notifications, icon = MaterialSymbols.Notifications, resolveRoute = { Route.Notification() }, ), NavBarItem.PROFILE to NavBarItemDef( id = NavBarItem.PROFILE, - labelRes = R.string.profile, + labelRes = Res.string.profile, icon = MaterialSymbols.AccountCircle, resolveRoute = { Route.Profile(it.userProfile().pubkeyHex) }, ), NavBarItem.MY_LISTS to NavBarItemDef( id = NavBarItem.MY_LISTS, - labelRes = R.string.my_lists, + labelRes = Res.string.my_lists, icon = MaterialSymbols.AutoMirrored.FormatListBulleted, resolveRoute = { Route.Lists }, ), NavBarItem.BOOKMARKS to NavBarItemDef( id = NavBarItem.BOOKMARKS, - labelRes = R.string.bookmarks, + labelRes = Res.string.bookmarks, icon = MaterialSymbols.CollectionsBookmark, resolveRoute = { Route.BookmarkGroups }, ), NavBarItem.WEB_BOOKMARKS to NavBarItemDef( id = NavBarItem.WEB_BOOKMARKS, - labelRes = R.string.web_bookmarks, + labelRes = Res.string.web_bookmarks, icon = MaterialSymbols.Language, resolveRoute = { Route.WebBookmarks }, ), NavBarItem.DRAFTS to NavBarItemDef( id = NavBarItem.DRAFTS, - labelRes = R.string.drafts, + labelRes = Res.string.drafts, icon = MaterialSymbols.Drafts, resolveRoute = { Route.Drafts }, ), NavBarItem.SCHEDULED_POSTS to NavBarItemDef( id = NavBarItem.SCHEDULED_POSTS, - labelRes = R.string.scheduled_posts, + labelRes = Res.string.scheduled_posts, icon = MaterialSymbols.Schedule, resolveRoute = { Route.ScheduledPosts }, ), NavBarItem.INTEREST_SETS to NavBarItemDef( id = NavBarItem.INTEREST_SETS, - labelRes = R.string.interest_sets_title, + labelRes = Res.string.interest_sets_title, icon = MaterialSymbols.Tag, resolveRoute = { Route.InterestSets }, ), NavBarItem.FAVORITE_ALGO_FEEDS to NavBarItemDef( id = NavBarItem.FAVORITE_ALGO_FEEDS, - labelRes = R.string.favorite_dvms_title, + labelRes = Res.string.favorite_dvms_title, icon = MaterialSymbols.AutoAwesome, resolveRoute = { Route.EditFavoriteAlgoFeeds }, ), NavBarItem.BLOSSOM_DATA to NavBarItemDef( id = NavBarItem.BLOSSOM_DATA, - labelRes = R.string.my_blossom_data, + labelRes = Res.string.my_blossom_data, icon = MaterialSymbols.Storage, resolveRoute = { Route.ManageBlossomBlobs }, ), NavBarItem.EMOJI_PACKS to NavBarItemDef( id = NavBarItem.EMOJI_PACKS, - labelRes = R.string.manage_emoji_packs, + labelRes = Res.string.manage_emoji_packs, icon = MaterialSymbols.EmojiEmotions, resolveRoute = { Route.EmojiPacks }, ), NavBarItem.WALLET to NavBarItemDef( id = NavBarItem.WALLET, - labelRes = R.string.wallet, + labelRes = Res.string.wallet, icon = MaterialSymbols.AccountBalanceWallet, resolveRoute = { Route.Wallet }, ), NavBarItem.NOSTR_SIGNER to NavBarItemDef( id = NavBarItem.NOSTR_SIGNER, - labelRes = R.string.nip46_signer_title, + labelRes = Res.string.nip46_signer_title, icon = MaterialSymbols.Key, resolveRoute = { Route.Nip46Signer() }, ), NavBarItem.COMMUNITIES to NavBarItemDef( id = NavBarItem.COMMUNITIES, - labelRes = R.string.communities, + labelRes = Res.string.communities, icon = MaterialSymbols.Groups, resolveRoute = { Route.Communities }, ), NavBarItem.ARTICLES to NavBarItemDef( id = NavBarItem.ARTICLES, - labelRes = R.string.discover_reads, + labelRes = Res.string.discover_reads, icon = MaterialSymbols.AutoMirrored.Article, resolveRoute = { Route.Articles }, ), NavBarItem.PICTURES to NavBarItemDef( id = NavBarItem.PICTURES, - labelRes = R.string.pictures, + labelRes = Res.string.pictures, icon = MaterialSymbols.Photo, resolveRoute = { Route.Pictures() }, ), NavBarItem.WORKOUTS to NavBarItemDef( id = NavBarItem.WORKOUTS, - labelRes = R.string.workouts, + labelRes = Res.string.workouts, icon = MaterialSymbols.DirectionsRun, resolveRoute = { Route.Workouts }, ), NavBarItem.MY_FITNESS to NavBarItemDef( id = NavBarItem.MY_FITNESS, - labelRes = R.string.my_fitness, + labelRes = Res.string.my_fitness, icon = MaterialSymbols.AutoMirrored.ShowChart, resolveRoute = { Route.MyFitness }, ), NavBarItem.GIT_REPOSITORIES to NavBarItemDef( id = NavBarItem.GIT_REPOSITORIES, - labelRes = R.string.git_repositories, + labelRes = Res.string.git_repositories, icon = MaterialSymbols.Code, resolveRoute = { Route.GitRepositories }, ), NavBarItem.HIGHLIGHTS to NavBarItemDef( id = NavBarItem.HIGHLIGHTS, - labelRes = R.string.highlights, + labelRes = Res.string.highlights, icon = MaterialSymbols.FormatQuote, resolveRoute = { Route.Highlights }, ), NavBarItem.SOFTWARE_APPS to NavBarItemDef( id = NavBarItem.SOFTWARE_APPS, - labelRes = R.string.software_apps, + labelRes = Res.string.software_apps, icon = MaterialSymbols.Apps, resolveRoute = { Route.SoftwareApps }, ), NavBarItem.NAPPLETS to NavBarItemDef( id = NavBarItem.NAPPLETS, - labelRes = R.string.napplets, + labelRes = Res.string.napplets, icon = MaterialSymbols.Apps, resolveRoute = { Route.Napplets }, ), NavBarItem.NSITES to NavBarItemDef( id = NavBarItem.NSITES, - labelRes = R.string.nsites, + labelRes = Res.string.nsites, icon = MaterialSymbols.Language, resolveRoute = { Route.Nsites }, ), NavBarItem.BROWSER to NavBarItemDef( id = NavBarItem.BROWSER, - labelRes = R.string.browser, + labelRes = Res.string.browser, icon = MaterialSymbols.Language, resolveRoute = { Route.Browser }, ), NavBarItem.FAVORITE_APPS to NavBarItemDef( id = NavBarItem.FAVORITE_APPS, - labelRes = R.string.favorite_apps, + labelRes = Res.string.favorite_apps, icon = MaterialSymbols.Star, resolveRoute = { Route.FavoriteApps }, ), NavBarItem.CALENDARS to NavBarItemDef( id = NavBarItem.CALENDARS, - labelRes = R.string.route_calendars, + labelRes = Res.string.route_calendars, icon = MaterialSymbols.CalendarMonth, resolveRoute = { Route.Calendars }, ), NavBarItem.CALENDAR_COLLECTIONS to NavBarItemDef( id = NavBarItem.CALENDAR_COLLECTIONS, - labelRes = R.string.route_calendar_collections, + labelRes = Res.string.route_calendar_collections, icon = MaterialSymbols.AutoMirrored.FormatListBulleted, resolveRoute = { Route.CalendarCollections }, ), @@ -334,140 +391,140 @@ val NavBarCatalog: Map = NavBarItem.SHORTS to NavBarItemDef( id = NavBarItem.SHORTS, - labelRes = R.string.shorts, + labelRes = Res.string.shorts, icon = MaterialSymbols.PlayCircle, resolveRoute = { Route.Shorts() }, ), NavBarItem.MUSIC_TRACKS to NavBarItemDef( id = NavBarItem.MUSIC_TRACKS, - labelRes = R.string.route_music_tracks, + labelRes = Res.string.route_music_tracks, icon = MaterialSymbols.MusicNote, resolveRoute = { Route.MusicTracks }, ), NavBarItem.MUSIC_PLAYLISTS to NavBarItemDef( id = NavBarItem.MUSIC_PLAYLISTS, - labelRes = R.string.route_music_playlists, + labelRes = Res.string.route_music_playlists, icon = MaterialSymbols.AutoMirrored.PlaylistAdd, resolveRoute = { Route.MusicPlaylists }, ), NavBarItem.PODCAST_EPISODES to NavBarItemDef( id = NavBarItem.PODCAST_EPISODES, - labelRes = R.string.route_podcast_episodes, + labelRes = Res.string.route_podcast_episodes, icon = MaterialSymbols.Headphones, resolveRoute = { Route.PodcastEpisodes }, ), NavBarItem.PODCASTS to NavBarItemDef( id = NavBarItem.PODCASTS, - labelRes = R.string.route_podcasts, + labelRes = Res.string.route_podcasts, icon = MaterialSymbols.Podcasts, resolveRoute = { Route.Podcasts }, ), NavBarItem.PUBLIC_CHATS to NavBarItemDef( id = NavBarItem.PUBLIC_CHATS, - labelRes = R.string.public_chats, + labelRes = Res.string.public_chats, icon = MaterialSymbols.AutoMirrored.Chat, resolveRoute = { Route.PublicChats }, ), NavBarItem.RELAY_GROUPS to NavBarItemDef( id = NavBarItem.RELAY_GROUPS, - labelRes = R.string.relay_groups_title, + labelRes = Res.string.relay_groups_title, icon = MaterialSymbols.Forum, resolveRoute = { Route.RelayGroups }, ), NavBarItem.CONCORD to NavBarItemDef( id = NavBarItem.CONCORD, - labelRes = R.string.concord_home_title, + labelRes = Res.string.concord_home_title, icon = MaterialSymbols.Group, resolveRoute = { Route.Concords }, ), NavBarItem.GEOHASH_CHATS to NavBarItemDef( id = NavBarItem.GEOHASH_CHATS, - labelRes = R.string.location_channels, + labelRes = Res.string.location_channels, icon = MaterialSymbols.LocationOn, resolveRoute = { Route.GeohashChats }, ), NavBarItem.FOLLOW_PACKS to NavBarItemDef( id = NavBarItem.FOLLOW_PACKS, - labelRes = R.string.follow_packs, + labelRes = Res.string.follow_packs, icon = MaterialSymbols.CollectionsBookmark, resolveRoute = { Route.FollowPacks }, ), NavBarItem.LIVE_STREAMS to NavBarItemDef( id = NavBarItem.LIVE_STREAMS, - labelRes = R.string.live_streams, + labelRes = Res.string.live_streams, icon = MaterialSymbols.Sensors, resolveRoute = { Route.LiveStreams }, ), NavBarItem.NESTS to NavBarItemDef( id = NavBarItem.NESTS, - labelRes = R.string.nests, + labelRes = Res.string.nests, icon = MaterialSymbols.Mic, resolveRoute = { Route.Nests }, ), NavBarItem.LONGS to NavBarItemDef( id = NavBarItem.LONGS, - labelRes = R.string.longs, + labelRes = Res.string.longs, icon = MaterialSymbols.SmartDisplay, resolveRoute = { Route.Longs }, ), NavBarItem.POLLS to NavBarItemDef( id = NavBarItem.POLLS, - labelRes = R.string.polls, + labelRes = Res.string.polls, icon = MaterialSymbols.Poll, resolveRoute = { Route.Polls }, ), NavBarItem.GEOCACHES to NavBarItemDef( id = NavBarItem.GEOCACHES, - labelRes = R.string.route_geocaches, + labelRes = Res.string.route_geocaches, icon = MaterialSymbols.Explore, resolveRoute = { Route.Geocaches() }, ), NavBarItem.GEOCACHE_HUNTS to NavBarItemDef( id = NavBarItem.GEOCACHE_HUNTS, - labelRes = R.string.route_geocache_hunts, + labelRes = Res.string.route_geocache_hunts, icon = MaterialSymbols.Hiking, resolveRoute = { Route.Geocaches(GeocacheTab.HUNTS) }, ), NavBarItem.BADGES to NavBarItemDef( id = NavBarItem.BADGES, - labelRes = R.string.badges, + labelRes = Res.string.badges, icon = MaterialSymbols.MilitaryTech, resolveRoute = { Route.Badges }, ), NavBarItem.PRODUCTS to NavBarItemDef( id = NavBarItem.PRODUCTS, - labelRes = R.string.discover_marketplace, + labelRes = Res.string.discover_marketplace, icon = MaterialSymbols.Storefront, resolveRoute = { Route.Products }, ), NavBarItem.EMOJI_SETS to NavBarItemDef( id = NavBarItem.EMOJI_SETS, - labelRes = R.string.emoji_sets, + labelRes = Res.string.emoji_sets, icon = MaterialSymbols.EmojiEmotions, resolveRoute = { Route.BrowseEmojiSets }, ), NavBarItem.SETTINGS to NavBarItemDef( id = NavBarItem.SETTINGS, - labelRes = R.string.settings, + labelRes = Res.string.settings, icon = MaterialSymbols.Settings, resolveRoute = { Route.AllSettings }, ), @@ -505,7 +562,7 @@ data class NavBarCategory( val BottomBarCategories: List = listOf( NavBarCategory( - R.string.bottom_bar_category_main, + Res.string.bottom_bar_category_main, MaterialSymbols.Home, listOf( NavBarItem.HOME, @@ -516,7 +573,7 @@ val BottomBarCategories: List = ), ), NavBarCategory( - R.string.bottom_bar_category_chats, + Res.string.bottom_bar_category_chats, MaterialSymbols.Group, listOf( NavBarItem.PUBLIC_CHATS, @@ -526,7 +583,7 @@ val BottomBarCategories: List = ), ), NavBarCategory( - R.string.bottom_bar_category_you, + Res.string.bottom_bar_category_you, MaterialSymbols.AccountCircle, listOf( NavBarItem.PROFILE, @@ -545,7 +602,7 @@ val BottomBarCategories: List = ), ), NavBarCategory( - R.string.bottom_bar_category_feeds, + Res.string.bottom_bar_category_feeds, MaterialSymbols.Subscriptions, listOf( NavBarItem.ARTICLES, @@ -574,7 +631,7 @@ val BottomBarCategories: List = ), ), NavBarCategory( - R.string.bottom_bar_category_apps, + Res.string.bottom_bar_category_apps, MaterialSymbols.Apps, listOf( NavBarItem.BROWSER, @@ -585,7 +642,7 @@ val BottomBarCategories: List = ), ), NavBarCategory( - R.string.bottom_bar_category_other, + Res.string.bottom_bar_category_other, MaterialSymbols.Settings, listOf( NavBarItem.SETTINGS, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/drawer/AccountSwitchBottomSheet.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/drawer/AccountSwitchBottomSheet.kt index 0c8f21ac26..6f3c914944 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/drawer/AccountSwitchBottomSheet.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/drawer/AccountSwitchBottomSheet.kt @@ -55,7 +55,6 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.vitorpamplona.amethyst.AccountInfo import com.vitorpamplona.amethyst.Amethyst import com.vitorpamplona.amethyst.LocalPreferences -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.User @@ -65,8 +64,12 @@ import com.vitorpamplona.amethyst.commons.resources.account_switch_active_accoun import com.vitorpamplona.amethyst.commons.resources.account_switch_add_account_btn import com.vitorpamplona.amethyst.commons.resources.account_switch_select_account import com.vitorpamplona.amethyst.commons.resources.are_you_sure_you_want_to_log_out +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.log_out import com.vitorpamplona.amethyst.commons.resources.profile_image +import com.vitorpamplona.amethyst.commons.resources.scheduled_posts_logout_toast +import com.vitorpamplona.amethyst.commons.resources.scheduled_posts_logout_toast_zero +import com.vitorpamplona.amethyst.commons.resources.scheduled_posts_logout_warning import com.vitorpamplona.amethyst.commons.scheduledposts.ScheduledPostStatus import com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.observeUserInfo import com.vitorpamplona.amethyst.ui.components.CreateTextWithEmoji @@ -301,7 +304,7 @@ private fun LogoutButton( Text( text = pluralStringResource( - id = R.plurals.scheduled_posts_logout_warning, + id = Res.plurals.scheduled_posts_logout_warning, count = unpublishedCount, unpublishedCount, ), @@ -327,12 +330,12 @@ private fun LogoutButton( if (confirmedCount > 0) { pluralStringRes( context, - R.plurals.scheduled_posts_logout_toast, + Res.plurals.scheduled_posts_logout_toast, confirmedCount, confirmedCount, ) } else { - stringRes(context, R.string.scheduled_posts_logout_toast_zero) + stringRes(Res.string.scheduled_posts_logout_toast_zero) } android.widget.Toast .makeText(context, toastMessage, android.widget.Toast.LENGTH_SHORT) @@ -346,7 +349,7 @@ private fun LogoutButton( TextButton( onClick = { logoutDialog = false }, ) { - Text(text = stringRes(R.string.cancel)) + Text(text = stringRes(Res.string.cancel)) } }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/drawer/DrawerContent.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/drawer/DrawerContent.kt index 8e5b7b4cd7..64565c5a0b 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/drawer/DrawerContent.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/drawer/DrawerContent.kt @@ -96,10 +96,21 @@ import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.ImmutableListOfLists import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.bookmarks +import com.vitorpamplona.amethyst.commons.resources.drafts +import com.vitorpamplona.amethyst.commons.resources.drawer_accounts +import com.vitorpamplona.amethyst.commons.resources.drawer_section_feeds +import com.vitorpamplona.amethyst.commons.resources.drawer_section_you import com.vitorpamplona.amethyst.commons.resources.followers import com.vitorpamplona.amethyst.commons.resources.following +import com.vitorpamplona.amethyst.commons.resources.longs +import com.vitorpamplona.amethyst.commons.resources.pictures +import com.vitorpamplona.amethyst.commons.resources.profile import com.vitorpamplona.amethyst.commons.resources.profile_banner import com.vitorpamplona.amethyst.commons.resources.profile_image +import com.vitorpamplona.amethyst.commons.resources.relay_setup +import com.vitorpamplona.amethyst.commons.resources.route_chess +import com.vitorpamplona.amethyst.commons.resources.share_hls_video import com.vitorpamplona.amethyst.commons.resources.show_npub_as_a_qr_code import com.vitorpamplona.amethyst.commons.resources.status_update import com.vitorpamplona.amethyst.commons.scheduledposts.ScheduledPostStatus @@ -147,6 +158,7 @@ import com.vitorpamplona.quartz.nip01Core.core.Address import com.vitorpamplona.quartz.nip01Core.core.HexKey import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.combine +import org.jetbrains.compose.resources.StringResource @Composable fun DrawerContent( @@ -618,7 +630,7 @@ fun ListContent( Spacer(modifier = Modifier.weight(1f)) IconRow( - title = R.string.drawer_accounts, + title = Res.string.drawer_accounts, icon = MaterialSymbols.GroupAdd, tint = MaterialTheme.colorScheme.onBackground, onClick = openSheet, @@ -630,7 +642,7 @@ fun ListContent( @Composable private fun CreateRows(nav: INav) { NavigationRow( - title = R.string.share_hls_video, + title = Res.string.share_hls_video, icon = MaterialSymbols.SettingsInputAntenna, tint = MaterialTheme.colorScheme.onBackground, nav = nav, @@ -639,7 +651,7 @@ private fun CreateRows(nav: INav) { if (isDebug) { NavigationRow( - title = R.string.route_chess, + title = Res.string.route_chess, icon = MaterialSymbols.ChessKnight, tint = MaterialTheme.colorScheme.onBackground, nav = nav, @@ -734,7 +746,7 @@ private fun ScheduledPostsNavigationRow( @Composable private fun IconRowWithBadge( - title: Int, + title: StringResource, icon: MaterialSymbol, tint: Color, badgeCount: Int, @@ -786,7 +798,7 @@ fun CatalogNavigationRow( @Composable private fun CollapsibleSection( - title: Int, + title: StringResource, expanded: Boolean, onToggleExpand: () -> Unit, content: @Composable () -> Unit, @@ -821,7 +833,7 @@ private fun CollapsibleSection( @Composable fun NavigationRow( - title: Int, + title: StringResource, icon: Int, iconReference: Int, tint: Color, @@ -842,7 +854,7 @@ fun NavigationRow( @Composable fun NavigationRow( - title: Int, + title: StringResource, icon: Int, iconReference: Int, tint: Color, @@ -863,7 +875,7 @@ fun NavigationRow( @Composable fun NavigationRow( - title: Int, + title: StringResource, icon: MaterialSymbol, tint: Color, nav: INav, @@ -882,7 +894,7 @@ fun NavigationRow( @Composable fun NavigationRow( - title: Int, + title: StringResource, icon: MaterialSymbol, tint: Color, nav: INav, @@ -901,7 +913,7 @@ fun NavigationRow( @Composable fun IconRow( - title: Int, + title: StringResource, icon: Int, iconReference: Int, tint: Color, @@ -935,7 +947,7 @@ fun IconRow( @Composable fun IconRow( - title: Int, + title: StringResource, icon: MaterialSymbol, tint: Color, onClick: () -> Unit, @@ -982,14 +994,14 @@ fun IconRowRelays( ) { Icon( painter = painterRes(R.drawable.relays, 4), - contentDescription = stringRes(R.string.relay_setup), + contentDescription = stringRes(Res.string.relay_setup), modifier = Size22Modifier, tint = MaterialTheme.colorScheme.onSurface, ) Text( modifier = IconRowTextModifier, - text = stringRes(id = R.string.relay_setup), + text = stringRes(id = Res.string.relay_setup), fontSize = Font18SP, ) @@ -1093,21 +1105,21 @@ fun BottomContent( private fun CollapsibleSectionPreview() { ThemeComparisonColumn { Column { - CollapsibleSection(title = R.string.drawer_section_you, expanded = true, onToggleExpand = {}) { + CollapsibleSection(title = Res.string.drawer_section_you, expanded = true, onToggleExpand = {}) { IconRow( - title = R.string.profile, + title = Res.string.profile, icon = MaterialSymbols.AccountCircle, tint = MaterialTheme.colorScheme.primary, onClick = {}, ) IconRow( - title = R.string.bookmarks, + title = Res.string.bookmarks, icon = MaterialSymbols.CollectionsBookmark, tint = MaterialTheme.colorScheme.onBackground, onClick = {}, ) IconRow( - title = R.string.drafts, + title = Res.string.drafts, icon = MaterialSymbols.Drafts, tint = MaterialTheme.colorScheme.onBackground, onClick = {}, @@ -1115,15 +1127,15 @@ private fun CollapsibleSectionPreview() { } // Collapsed, to preview the other half of the heading: its rows are hidden and the // chevron points down. Real collapse state lives in DrawerSectionCollapsePreferences. - CollapsibleSection(title = R.string.drawer_section_feeds, expanded = false, onToggleExpand = {}) { + CollapsibleSection(title = Res.string.drawer_section_feeds, expanded = false, onToggleExpand = {}) { IconRow( - title = R.string.pictures, + title = Res.string.pictures, icon = MaterialSymbols.Photo, tint = MaterialTheme.colorScheme.onBackground, onClick = {}, ) IconRow( - title = R.string.longs, + title = Res.string.longs, icon = MaterialSymbols.SmartDisplay, tint = MaterialTheme.colorScheme.onBackground, onClick = {}, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/drawer/DrawerSections.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/drawer/DrawerSections.kt index d2242d7759..52c3db8e80 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/drawer/DrawerSections.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/drawer/DrawerSections.kt @@ -22,9 +22,14 @@ package com.vitorpamplona.amethyst.ui.navigation.drawer import android.os.Build import androidx.compose.runtime.Immutable -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.drawer_section_create +import com.vitorpamplona.amethyst.commons.resources.drawer_section_feeds +import com.vitorpamplona.amethyst.commons.resources.drawer_section_navigate +import com.vitorpamplona.amethyst.commons.resources.drawer_section_system +import com.vitorpamplona.amethyst.commons.resources.drawer_section_you import com.vitorpamplona.amethyst.ui.navigation.bottombars.NavBarCatalog import com.vitorpamplona.amethyst.ui.navigation.bottombars.NavBarItem @@ -160,11 +165,11 @@ private val DrawerFeedsItems: List = val DrawerSections: List = listOf( - DrawerSection(DrawerSectionId.YOU, R.string.drawer_section_you, MaterialSymbols.AccountCircle, DrawerYouItems), - DrawerSection(DrawerSectionId.NAVIGATE, R.string.drawer_section_navigate, MaterialSymbols.Home, DrawerNavigateItems), - DrawerSection(DrawerSectionId.FEEDS, R.string.drawer_section_feeds, MaterialSymbols.Subscriptions, DrawerFeedsItems), - DrawerSection(DrawerSectionId.CREATE, R.string.drawer_section_create, MaterialSymbols.Edit, emptyList(), hasFixedRows = true), - DrawerSection(DrawerSectionId.SYSTEM, R.string.drawer_section_system, MaterialSymbols.Settings, listOf(NavBarItem.SETTINGS), hasFixedRows = true), + DrawerSection(DrawerSectionId.YOU, Res.string.drawer_section_you, MaterialSymbols.AccountCircle, DrawerYouItems), + DrawerSection(DrawerSectionId.NAVIGATE, Res.string.drawer_section_navigate, MaterialSymbols.Home, DrawerNavigateItems), + DrawerSection(DrawerSectionId.FEEDS, Res.string.drawer_section_feeds, MaterialSymbols.Subscriptions, DrawerFeedsItems), + DrawerSection(DrawerSectionId.CREATE, Res.string.drawer_section_create, MaterialSymbols.Edit, emptyList(), hasFixedRows = true), + DrawerSection(DrawerSectionId.SYSTEM, Res.string.drawer_section_system, MaterialSymbols.Settings, listOf(NavBarItem.SETTINGS), hasFixedRows = true), ) /** diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/topbars/ActionTopBar.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/topbars/ActionTopBar.kt index ca8cfc3c9c..b2fbe797f8 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/topbars/ActionTopBar.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/topbars/ActionTopBar.kt @@ -30,16 +30,21 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.create +import com.vitorpamplona.amethyst.commons.resources.post +import com.vitorpamplona.amethyst.commons.resources.save +import com.vitorpamplona.amethyst.commons.resources.send import com.vitorpamplona.amethyst.ui.note.buttons.CloseButton import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.HalfHorzPadding +import org.jetbrains.compose.resources.StringResource @OptIn(ExperimentalMaterial3Api::class) @Composable fun ActionTopBar( - postRes: Int, - titleRes: Int? = null, + postRes: StringResource, + titleRes: StringResource? = null, isActive: () -> Boolean = { true }, onCancel: () -> Unit, onPost: () -> Unit, @@ -85,13 +90,13 @@ fun ActionTopBar( @OptIn(ExperimentalMaterial3Api::class) @Composable fun PostingTopBar( - titleRes: Int? = null, + titleRes: StringResource? = null, isActive: () -> Boolean = { true }, onCancel: () -> Unit, onPost: () -> Unit, // A private note is not posted, it is sealed and delivered to a named set of // people. The button says which of the two is about to happen. - postRes: Int = R.string.post, + postRes: StringResource = Res.string.post, ) = ActionTopBar( titleRes = titleRes, postRes = postRes, @@ -103,14 +108,14 @@ fun PostingTopBar( @OptIn(ExperimentalMaterial3Api::class) @Composable fun SavingTopBar( - titleRes: Int? = null, + titleRes: StringResource? = null, isActive: () -> Boolean = { true }, onCancel: () -> Unit, onPost: () -> Unit, additionalActions: @Composable (() -> Unit)? = null, ) = ActionTopBar( titleRes = titleRes, - postRes = R.string.save, + postRes = Res.string.save, isActive = isActive, onCancel = onCancel, onPost = onPost, @@ -120,14 +125,14 @@ fun SavingTopBar( @OptIn(ExperimentalMaterial3Api::class) @Composable fun SendingTopBar( - titleRes: Int? = null, + titleRes: StringResource? = null, isActive: () -> Boolean = { true }, onCancel: () -> Unit, onPost: () -> Unit, additionalActions: @Composable (() -> Unit)? = null, ) = ActionTopBar( titleRes = titleRes, - postRes = R.string.send, + postRes = Res.string.send, isActive = isActive, onCancel = onCancel, onPost = onPost, @@ -137,13 +142,13 @@ fun SendingTopBar( @OptIn(ExperimentalMaterial3Api::class) @Composable fun CreatingTopBar( - titleRes: Int? = null, + titleRes: StringResource? = null, isActive: () -> Boolean = { true }, onCancel: () -> Unit, onPost: () -> Unit, ) = ActionTopBar( titleRes = titleRes, - postRes = R.string.create, + postRes = Res.string.create, isActive = isActive, onCancel = onCancel, onPost = onPost, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/topbars/FeedFilterSpinner.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/topbars/FeedFilterSpinner.kt index 8a0dc7cef7..0e152c23e0 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/topbars/FeedFilterSpinner.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/navigation/topbars/FeedFilterSpinner.kt @@ -45,6 +45,7 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.produceState import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment @@ -67,7 +68,6 @@ import com.google.accompanist.permissions.ExperimentalPermissionsApi import com.google.accompanist.permissions.isGranted import com.google.accompanist.permissions.rememberPermissionState import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.topNavFeeds.TopFilter @@ -75,10 +75,23 @@ import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.dvm_offline import com.vitorpamplona.amethyst.commons.resources.feed_filter_select_an_option import com.vitorpamplona.amethyst.commons.resources.feed_filter_selected +import com.vitorpamplona.amethyst.commons.resources.feed_group_communities +import com.vitorpamplona.amethyst.commons.resources.feed_group_dvms +import com.vitorpamplona.amethyst.commons.resources.feed_group_feeds +import com.vitorpamplona.amethyst.commons.resources.feed_group_hashtags +import com.vitorpamplona.amethyst.commons.resources.feed_group_interest_sets +import com.vitorpamplona.amethyst.commons.resources.feed_group_lists +import com.vitorpamplona.amethyst.commons.resources.feed_group_locations +import com.vitorpamplona.amethyst.commons.resources.feed_group_relays +import com.vitorpamplona.amethyst.commons.resources.follow_geohash import com.vitorpamplona.amethyst.commons.resources.lack_location_permissions import com.vitorpamplona.amethyst.commons.resources.loading_location +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_follow +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_unfollow import com.vitorpamplona.amethyst.commons.resources.open_dropdown_menu +import com.vitorpamplona.amethyst.commons.resources.read_only_user import com.vitorpamplona.amethyst.commons.resources.select_an_option +import com.vitorpamplona.amethyst.commons.resources.unfollow_geohash import com.vitorpamplona.amethyst.commons.ui.components.LoadingAnimation import com.vitorpamplona.amethyst.service.location.LocationState import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.observeNote @@ -131,7 +144,7 @@ fun FeedFilterSpinner( } } - val currentText = selected?.name?.name(context) ?: selectAnOption + val currentText = selected?.name?.let { rememberDisplayName(it) } ?: selectAnOption val accessibilityDescription = if (selected != null) { @@ -351,8 +364,8 @@ private fun FollowLocationToggle( IconButton(onClick = { if (!accountViewModel.isWriteable()) { accountViewModel.toastManager.toast( - R.string.read_only_user, - if (isFollowing) R.string.login_with_a_private_key_to_be_able_to_unfollow else R.string.login_with_a_private_key_to_be_able_to_follow, + Res.string.read_only_user, + if (isFollowing) Res.string.login_with_a_private_key_to_be_able_to_unfollow else Res.string.login_with_a_private_key_to_be_able_to_follow, ) } else if (isFollowing) { accountViewModel.unfollowGeohash(tag) @@ -364,7 +377,7 @@ private fun FollowLocationToggle( symbol = if (isFollowing) MaterialSymbols.Bookmark else MaterialSymbols.BookmarkAdd, contentDescription = stringRes( - if (isFollowing) R.string.unfollow_geohash else R.string.follow_geohash, + if (isFollowing) Res.string.unfollow_geohash else Res.string.follow_geohash, ), modifier = Size20Modifier, tint = if (isFollowing) MaterialTheme.colorScheme.primary else MaterialTheme.colorScheme.onSurfaceVariant, @@ -372,6 +385,17 @@ private fun FollowLocationToggle( } } +/** + * A [Name]'s displayed title. [Name.nameOrDefault] resolves a Compose string + * resource for the fixed-name variants, which is a suspend call, so the plain + * [Name.name] is shown for the frame it takes to arrive. + */ +@Composable +private fun rememberDisplayName(name: Name): String { + val fallback = remember(name) { name.name() } + return produceState(fallback, name) { value = name.nameOrDefault() }.value +} + @Composable fun RenderOption( option: Name, @@ -391,7 +415,7 @@ fun RenderOption( is PeopleListName, is CommunityName, is FavoriteAlgoFeedName -> { val backed = option as NoteBackedName val noteState by observeNote(backed.note, accountViewModel) - val name = remember(noteState) { option.name(context) } + val name = rememberDisplayName(option) val appDefAddress = (option as? FavoriteAlgoFeedName)?.note?.address val heartbeatFresh = if (appDefAddress != null) { @@ -425,7 +449,7 @@ fun RenderOption( is InterestSetName, -> { Text( - text = option.name(context), + text = rememberDisplayName(option), fontSize = Font14SP, color = MaterialTheme.colorScheme.onSurface, ) @@ -436,14 +460,14 @@ fun RenderOption( private enum class FeedGroup( @param:androidx.annotation.StringRes val labelRes: Int, ) { - FEEDS(R.string.feed_group_feeds), - RELAYS(R.string.feed_group_relays), - HASHTAGS(R.string.feed_group_hashtags), - INTEREST_SETS(R.string.feed_group_interest_sets), - LOCATIONS(R.string.feed_group_locations), - DVMS(R.string.feed_group_dvms), - COMMUNITIES(R.string.feed_group_communities), - LISTS(R.string.feed_group_lists), + FEEDS(Res.string.feed_group_feeds), + RELAYS(Res.string.feed_group_relays), + HASHTAGS(Res.string.feed_group_hashtags), + INTEREST_SETS(Res.string.feed_group_interest_sets), + LOCATIONS(Res.string.feed_group_locations), + DVMS(Res.string.feed_group_dvms), + COMMUNITIES(Res.string.feed_group_communities), + LISTS(Res.string.feed_group_lists), } private fun FeedDefinition.group(): FeedGroup = @@ -579,7 +603,7 @@ private fun GroupSection( color = Color.Transparent, ) { Text( - text = entry.name.name(context), + text = rememberDisplayName(entry.name), fontSize = 13.sp, color = MaterialTheme.colorScheme.onSurface, modifier = Modifier.padding(horizontal = 14.dp, vertical = 7.dp), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/BadgeCompose.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/BadgeCompose.kt index efe243d3d5..1966ec01a4 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/BadgeCompose.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/BadgeCompose.kt @@ -119,7 +119,7 @@ fun BadgeCompose( ) Text( - timeAgo(note.createdAt(), context = context), + timeAgo(note.createdAt()), color = MaterialTheme.colorScheme.placeholderText, maxLines = 1, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/BlankNote.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/BlankNote.kt index 7cb48c227b..cac393a1e1 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/BlankNote.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/BlankNote.kt @@ -36,13 +36,13 @@ import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.post_not_found import com.vitorpamplona.amethyst.commons.resources.post_not_found_short import com.vitorpamplona.amethyst.commons.resources.post_was_flagged_as_inappropriate_by import com.vitorpamplona.amethyst.commons.resources.post_was_hidden +import com.vitorpamplona.amethyst.commons.resources.post_was_hidden_due_to_too_many_hashtags import com.vitorpamplona.amethyst.commons.resources.show_anyway import com.vitorpamplona.amethyst.ui.navigation.navs.EmptyNav import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -155,7 +155,7 @@ fun HiddenNote( ) { if (hasExcessiveHashtags) { Text( - text = pluralStringResource(R.plurals.post_was_hidden_due_to_too_many_hashtags, hashtagLimit, hashtagLimit), + text = pluralStringResource(Res.plurals.post_was_hidden_due_to_too_many_hashtags, hashtagLimit, hashtagLimit), color = Color.Gray, textAlign = TextAlign.Center, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/Icons.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/Icons.kt index aeaeef05d0..e3c7256b00 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/Icons.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/Icons.kt @@ -31,7 +31,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.hashtags.Amethyst import com.vitorpamplona.amethyst.commons.hashtags.Cashu import com.vitorpamplona.amethyst.commons.hashtags.CustomHashTagIcons @@ -52,9 +51,13 @@ import com.vitorpamplona.amethyst.commons.resources.accessibility_download_for_o import com.vitorpamplona.amethyst.commons.resources.accessibility_play_username import com.vitorpamplona.amethyst.commons.resources.accessibility_pushpin import com.vitorpamplona.amethyst.commons.resources.app_logo +import com.vitorpamplona.amethyst.commons.resources.back import com.vitorpamplona.amethyst.commons.resources.boost_or_quote_description +import com.vitorpamplona.amethyst.commons.resources.cancel +import com.vitorpamplona.amethyst.commons.resources.cashu import com.vitorpamplona.amethyst.commons.resources.change_reaction import com.vitorpamplona.amethyst.commons.resources.clear +import com.vitorpamplona.amethyst.commons.resources.copy_to_clipboard import com.vitorpamplona.amethyst.commons.resources.enter_picture_in_picture import com.vitorpamplona.amethyst.commons.resources.following import com.vitorpamplona.amethyst.commons.resources.lightning_address @@ -65,7 +68,9 @@ import com.vitorpamplona.amethyst.commons.resources.onchain_zap_pending import com.vitorpamplona.amethyst.commons.resources.record_a_message import com.vitorpamplona.amethyst.commons.resources.reply_description import com.vitorpamplona.amethyst.commons.resources.search_button +import com.vitorpamplona.amethyst.commons.resources.share_or_save import com.vitorpamplona.amethyst.commons.resources.website +import com.vitorpamplona.amethyst.commons.resources.zap_description import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.BitcoinOrange import com.vitorpamplona.amethyst.ui.theme.LikedColor @@ -77,6 +82,7 @@ import com.vitorpamplona.amethyst.ui.theme.grayText import com.vitorpamplona.amethyst.ui.theme.isLight import com.vitorpamplona.amethyst.ui.theme.placeholderText import com.vitorpamplona.amethyst.ui.theme.subtleButton +import org.jetbrains.compose.resources.StringResource @Composable fun AmethystIcon(iconSize: Dp) { @@ -109,7 +115,7 @@ fun FollowingIcon(modifier: Modifier) { fun ArrowBackIcon(tint: Color = MaterialTheme.colorScheme.grayText) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), tint = tint, ) } @@ -233,7 +239,7 @@ fun ReactionRowIconPreview() { fun ZapIcon( modifier: Modifier, tint: Color = Color.Unspecified, - contentDescriptor: Int = R.string.zap_description, + contentDescriptor: StringResource = Res.string.zap_description, ) { Icon( symbol = MaterialSymbols.Bolt, @@ -247,7 +253,7 @@ fun ZapIcon( fun OutlinedZapIcon( modifier: Modifier, tint: Color = Color.Unspecified, - contentDescriptor: Int = R.string.zap_description, + contentDescriptor: StringResource = Res.string.zap_description, ) { Icon( imageVector = Zap, @@ -265,7 +271,7 @@ fun ShareIcon( Icon( symbol = MaterialSymbols.Share, modifier = modifier, - contentDescription = stringRes(R.string.share_or_save), + contentDescription = stringRes(Res.string.share_or_save), tint = tint, ) } @@ -274,7 +280,7 @@ fun ShareIcon( fun CashuIcon(modifier: Modifier) { Icon( imageVector = CustomHashTagIcons.Cashu, - stringRes(R.string.cashu), + stringRes(Res.string.cashu), modifier = modifier, ) } @@ -283,7 +289,7 @@ fun CashuIcon(modifier: Modifier) { fun CopyIcon(modifier: Modifier) { Icon( symbol = MaterialSymbols.ContentCopy, - stringRes(id = R.string.copy_to_clipboard), + stringRes(id = Res.string.copy_to_clipboard), modifier = modifier, ) } @@ -292,7 +298,7 @@ fun CopyIcon(modifier: Modifier) { fun OpenInNewIcon(modifier: Modifier) { Icon( symbol = MaterialSymbols.AutoMirrored.OpenInNew, - stringRes(id = R.string.copy_to_clipboard), + stringRes(id = Res.string.copy_to_clipboard), modifier = modifier, ) } @@ -300,7 +306,7 @@ fun OpenInNewIcon(modifier: Modifier) { @Composable fun ExpandLessIcon( modifier: Modifier, - contentDescriptor: Int, + contentDescriptor: StringResource, ) { Icon( symbol = MaterialSymbols.ExpandLess, @@ -313,7 +319,7 @@ fun ExpandLessIcon( @Composable fun ExpandMoreIcon( modifier: Modifier, - contentDescriptor: Int, + contentDescriptor: StringResource, ) { Icon( symbol = MaterialSymbols.ExpandMore, @@ -353,7 +359,7 @@ fun CommentIcon( fun CancelIcon() { Icon( symbol = MaterialSymbols.Cancel, - contentDescription = stringRes(id = R.string.cancel), + contentDescription = stringRes(id = Res.string.cancel), modifier = Size30Modifier, tint = MaterialTheme.colorScheme.placeholderText, ) @@ -363,7 +369,7 @@ fun CancelIcon() { fun CloseIcon() { Icon( symbol = MaterialSymbols.Close, - contentDescription = stringRes(id = R.string.cancel), + contentDescription = stringRes(id = Res.string.cancel), modifier = Size20Modifier, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt index ff2ed72696..54066752bd 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt @@ -55,7 +55,6 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.AddressableNote @@ -70,10 +69,14 @@ import com.vitorpamplona.amethyst.commons.model.textNoteModifications import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.approve import com.vitorpamplona.amethyst.commons.resources.draft +import com.vitorpamplona.amethyst.commons.resources.expiration_date_label +import com.vitorpamplona.amethyst.commons.resources.expiration_info_description import com.vitorpamplona.amethyst.commons.resources.group_picture import com.vitorpamplona.amethyst.commons.resources.jump_to_parent_reply import com.vitorpamplona.amethyst.commons.resources.one_year_plus import com.vitorpamplona.amethyst.commons.resources.pinned_notes +import com.vitorpamplona.amethyst.commons.resources.private_rumor_info_description +import com.vitorpamplona.amethyst.commons.resources.private_rumor_info_title import com.vitorpamplona.amethyst.commons.resources.private_rumor_mark import com.vitorpamplona.amethyst.commons.ui.components.GenericLoadable import com.vitorpamplona.amethyst.commons.ui.note.HeaderPill @@ -2080,16 +2083,16 @@ fun DisplayExpiration( if (expirationDate - TimeUtils.now() > TimeUtils.ONE_YEAR) { stringRes(Res.string.one_year_plus) } else { - timeAheadNoDot(expirationDate, context) + timeAheadNoDot(expirationDate) } HeaderPill( symbol = MaterialSymbols.Timer, text = text, - contentDescription = stringRes(R.string.expiration_date_label), + contentDescription = stringRes(Res.string.expiration_date_label), onClick = { accountViewModel.toastManager.toast( - R.string.expiration_date_label, - R.string.expiration_info_description, + Res.string.expiration_date_label, + Res.string.expiration_info_description, SimpleDateFormat.getDateTimeInstance().format(Date(expirationDate * 1000)), ) }, @@ -2258,8 +2261,8 @@ fun PrivateRumorMark(accountViewModel: AccountViewModel) { contentDescription = stringRes(Res.string.private_rumor_mark), onClick = { accountViewModel.toastManager.toast( - R.string.private_rumor_info_title, - R.string.private_rumor_info_description, + Res.string.private_rumor_info_title, + Res.string.private_rumor_info_description, ) }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteQuickActionMenu.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteQuickActionMenu.kt index dbee780385..0a4f70c78d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteQuickActionMenu.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteQuickActionMenu.kt @@ -63,7 +63,6 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.compose.ui.window.Popup import androidx.core.graphics.ColorUtils -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols @@ -76,18 +75,30 @@ import com.vitorpamplona.amethyst.commons.resources.broadcast import com.vitorpamplona.amethyst.commons.resources.concord_ban_user import com.vitorpamplona.amethyst.commons.resources.concord_ban_user_body import com.vitorpamplona.amethyst.commons.resources.concord_ban_user_title +import com.vitorpamplona.amethyst.commons.resources.concord_make_admin +import com.vitorpamplona.amethyst.commons.resources.concord_remove_admin +import com.vitorpamplona.amethyst.commons.resources.copied_note_id_to_clipboard +import com.vitorpamplona.amethyst.commons.resources.copied_note_text_to_clipboard +import com.vitorpamplona.amethyst.commons.resources.copied_user_id_to_clipboard import com.vitorpamplona.amethyst.commons.resources.edit_draft import com.vitorpamplona.amethyst.commons.resources.quick_action_block import com.vitorpamplona.amethyst.commons.resources.quick_action_block_dialog_btn +import com.vitorpamplona.amethyst.commons.resources.quick_action_copy_note_id import com.vitorpamplona.amethyst.commons.resources.quick_action_copy_text import com.vitorpamplona.amethyst.commons.resources.quick_action_copy_user_id +import com.vitorpamplona.amethyst.commons.resources.quick_action_delete import com.vitorpamplona.amethyst.commons.resources.quick_action_delete_dialog_btn import com.vitorpamplona.amethyst.commons.resources.quick_action_dont_show_again_button import com.vitorpamplona.amethyst.commons.resources.quick_action_follow +import com.vitorpamplona.amethyst.commons.resources.quick_action_mute_thread import com.vitorpamplona.amethyst.commons.resources.quick_action_report import com.vitorpamplona.amethyst.commons.resources.quick_action_request_deletion_alert_body import com.vitorpamplona.amethyst.commons.resources.quick_action_request_deletion_alert_title +import com.vitorpamplona.amethyst.commons.resources.quick_action_share +import com.vitorpamplona.amethyst.commons.resources.quick_action_share_browser_link import com.vitorpamplona.amethyst.commons.resources.quick_action_unfollow +import com.vitorpamplona.amethyst.commons.resources.quick_action_unmute_thread +import com.vitorpamplona.amethyst.commons.resources.report_dialog_block_hide_user_btn import com.vitorpamplona.amethyst.commons.resources.report_dialog_blocking_a_user import com.vitorpamplona.amethyst.commons.util.njumpLink import com.vitorpamplona.amethyst.ui.components.util.setText @@ -282,7 +293,7 @@ fun CardBody( Toast .makeText( context, - stringRes(context, stringRes), + stringRes(stringRes), Toast.LENGTH_SHORT, ).show() } @@ -328,7 +339,7 @@ fun CardBody( copyNoteTextAction( accountViewModel = accountViewModel, onCopied = { - showToast(R.string.copied_note_text_to_clipboard) + showToast(Res.string.copied_note_text_to_clipboard) onDismiss() }, onDismiss = onDismiss, @@ -350,7 +361,7 @@ fun CardBody( note.author?.let { scope.launch { clipboardManager.setText(it.toNostrUri()) - showToast(R.string.copied_user_id_to_clipboard) + showToast(Res.string.copied_user_id_to_clipboard) onDismiss() } } @@ -358,11 +369,11 @@ fun CardBody( VerticalDivider(color = primaryLight) NoteQuickActionItem( MaterialSymbols.FormatQuote, - stringRes(R.string.quick_action_copy_note_id), + stringRes(Res.string.quick_action_copy_note_id), ) { scope.launch { clipboardManager.setText(note.toNostrUri()) - showToast(R.string.copied_note_id_to_clipboard) + showToast(Res.string.copied_note_id_to_clipboard) onDismiss() } } @@ -395,9 +406,9 @@ fun CardBody( MaterialSymbols.AutoMirrored.VolumeOff, stringRes( if (isMuted) { - R.string.quick_action_unmute_thread + Res.string.quick_action_unmute_thread } else { - R.string.quick_action_mute_thread + Res.string.quick_action_mute_thread }, ), ) { @@ -418,7 +429,7 @@ fun CardBody( if (isOwnNote) { NoteQuickActionItem( MaterialSymbols.Delete, - stringRes(R.string.quick_action_delete), + stringRes(Res.string.quick_action_delete), ) { if (accountViewModel.account.settings.hideDeleteRequestDialog) { accountViewModel.delete(note) @@ -473,7 +484,7 @@ fun CardBody( } else { NoteQuickActionItem( icon = MaterialSymbols.Share, - label = stringRes(R.string.quick_action_share), + label = stringRes(Res.string.quick_action_share), ) { val sendIntent = Intent().apply { @@ -485,14 +496,14 @@ fun CardBody( ) putExtra( Intent.EXTRA_TITLE, - stringRes(context, R.string.quick_action_share_browser_link), + stringRes(Res.string.quick_action_share_browser_link), ) } val shareIntent = Intent.createChooser( sendIntent, - stringRes(context, R.string.quick_action_share), + stringRes(Res.string.quick_action_share), ) context.startActivity(shareIntent) onDismiss() @@ -516,7 +527,7 @@ fun CardBody( val isAdmin = concordAdmin.third NoteQuickActionItem( MaterialSymbols.Shield, - stringRes(if (isAdmin) R.string.concord_remove_admin else R.string.concord_make_admin), + stringRes(if (isAdmin) Res.string.concord_remove_admin else Res.string.concord_make_admin), ) { accountViewModel.toggleConcordAdmin(note) onDismiss() @@ -594,7 +605,7 @@ private fun BlockAlertDialog( accountViewModel: AccountViewModel, onDismiss: () -> Unit, ) = QuickActionAlertDialog( - title = stringRes(R.string.report_dialog_block_hide_user_btn), + title = stringRes(Res.string.report_dialog_block_hide_user_btn), textContent = stringRes(Res.string.report_dialog_blocking_a_user), buttonIcon = MaterialSymbols.Block, buttonText = stringRes(Res.string.quick_action_block_dialog_btn), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRow.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRow.kt index b469b4091e..c53ef7e935 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRow.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRow.kt @@ -114,7 +114,6 @@ import androidx.compose.ui.window.Popup import androidx.compose.ui.window.PopupProperties import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.google.accompanist.permissions.ExperimentalPermissionsApi -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.emojicoder.EmojiCoder import com.vitorpamplona.amethyst.commons.hashtags.Cashu import com.vitorpamplona.amethyst.commons.hashtags.CustomHashTagIcons @@ -125,10 +124,28 @@ import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.nip29RelayGroups.RelayGroupChannel import com.vitorpamplona.amethyst.commons.model.payments.PaymentTargetTypes import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.boost +import com.vitorpamplona.amethyst.commons.resources.close_all_reactions_to_this_post +import com.vitorpamplona.amethyst.commons.resources.copied_to_clipboard +import com.vitorpamplona.amethyst.commons.resources.draft_note +import com.vitorpamplona.amethyst.commons.resources.error_dialog_zap_error import com.vitorpamplona.amethyst.commons.resources.fork +import com.vitorpamplona.amethyst.commons.resources.it_s_not_possible_to_react_to_a_draft_note +import com.vitorpamplona.amethyst.commons.resources.it_s_not_possible_to_reply_to_a_draft_note +import com.vitorpamplona.amethyst.commons.resources.it_s_not_possible_to_zap_to_a_draft_note +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_reply +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_send_zaps +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_like_posts +import com.vitorpamplona.amethyst.commons.resources.no_payment_app_found_for_type +import com.vitorpamplona.amethyst.commons.resources.no_reaction_type_setup_long_press_to_change +import com.vitorpamplona.amethyst.commons.resources.no_reactions_setup import com.vitorpamplona.amethyst.commons.resources.nutzap +import com.vitorpamplona.amethyst.commons.resources.open_all_reactions_to_this_post +import com.vitorpamplona.amethyst.commons.resources.payment_targets +import com.vitorpamplona.amethyst.commons.resources.payto_amount_set_in_app import com.vitorpamplona.amethyst.commons.resources.quick_zap_amounts import com.vitorpamplona.amethyst.commons.resources.quote +import com.vitorpamplona.amethyst.commons.resources.read_only_user import com.vitorpamplona.amethyst.commons.resources.reload_mint_title import com.vitorpamplona.amethyst.commons.resources.sats_to_complete import com.vitorpamplona.amethyst.commons.ui.components.AnimatedBorderTextCornerRadius @@ -406,7 +423,7 @@ fun PayReaction( ) { Icon( symbol = MaterialSymbols.AccountBalanceWallet, - contentDescription = stringRes(R.string.payment_targets), + contentDescription = stringRes(Res.string.payment_targets), tint = grayTint, modifier = iconSizeModifier, ) @@ -575,9 +592,9 @@ private fun RenderShowIndividualReactionsButton( accountViewModel = accountViewModel, ) { if (it) { - ExpandLessIcon(modifier = Size22Modifier, R.string.close_all_reactions_to_this_post) + ExpandLessIcon(modifier = Size22Modifier, Res.string.close_all_reactions_to_this_post) } else { - ExpandMoreIcon(modifier = Size22Modifier, R.string.open_all_reactions_to_this_post) + ExpandMoreIcon(modifier = Size22Modifier, Res.string.open_all_reactions_to_this_post) } } } @@ -835,16 +852,16 @@ fun ReplyReaction( onClick = { if (baseNote.isDraft()) { accountViewModel.toastManager.toast( - R.string.draft_note, - R.string.it_s_not_possible_to_reply_to_a_draft_note, + Res.string.draft_note, + Res.string.it_s_not_possible_to_reply_to_a_draft_note, ) } else { if (accountViewModel.isWriteable()) { onPress() } else { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_reply, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_reply, ) } } @@ -1192,8 +1209,8 @@ private fun likeClick( ) { if (baseNote.isDraft()) { accountViewModel.toastManager.toast( - R.string.draft_note, - R.string.it_s_not_possible_to_react_to_a_draft_note, + Res.string.draft_note, + Res.string.it_s_not_possible_to_react_to_a_draft_note, ) return } @@ -1202,15 +1219,15 @@ private fun likeClick( when { choices.isEmpty() -> { accountViewModel.toastManager.toast( - R.string.no_reactions_setup, - R.string.no_reaction_type_setup_long_press_to_change, + Res.string.no_reactions_setup, + Res.string.no_reaction_type_setup_long_press_to_change, ) } !accountViewModel.isWriteable() -> { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_like_posts, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_like_posts, ) } @@ -1245,7 +1262,7 @@ fun payViaIntentOrManualSplit( val payable = payables.first() payViaIntent(payable.invoice, context, { }) { error -> onPaymentError() - accountViewModel.toastManager.toast(R.string.error_dialog_zap_error, UserBasedErrorMessage(error, payable.info.user)) + accountViewModel.toastManager.toast(Res.string.error_dialog_zap_error, UserBasedErrorMessage(error, payable.info.user)) } } else { val uid = Uuid.random().toString() @@ -1301,7 +1318,7 @@ fun ZapReaction( onError = { _, message, user -> scope.launch { zappingProgress = 0f - accountViewModel.toastManager.toast(R.string.error_dialog_zap_error, message, user) + accountViewModel.toastManager.toast(Res.string.error_dialog_zap_error, message, user) } }, onPayViaIntent = { @@ -1346,7 +1363,7 @@ fun ZapReaction( onError = { _, message, user -> scope.launch { zappingProgress = 0f - accountViewModel.toastManager.toast(R.string.error_dialog_zap_error, message, user) + accountViewModel.toastManager.toast(Res.string.error_dialog_zap_error, message, user) } }, onProgress = { scope.launch(Dispatchers.Main) { zappingProgress = it } }, @@ -1378,7 +1395,7 @@ fun ZapReaction( onError = { _, message, user -> scope.launch { zappingProgress = 0f - accountViewModel.toastManager.toast(R.string.error_dialog_zap_error, message, user) + accountViewModel.toastManager.toast(Res.string.error_dialog_zap_error, message, user) } }, onProgress = { scope.launch(Dispatchers.Main) { zappingProgress = it } }, @@ -1387,7 +1404,7 @@ fun ZapReaction( val payable = it.first() payViaIntent(payable.invoice, context, { }) { error -> zappingProgress = 0f - accountViewModel.toastManager.toast(R.string.error_dialog_zap_error, UserBasedErrorMessage(error, payable.info.user)) + accountViewModel.toastManager.toast(Res.string.error_dialog_zap_error, UserBasedErrorMessage(error, payable.info.user)) } } else { val uid = Uuid.random().toString() @@ -1460,8 +1477,8 @@ fun zapClick( ) { if (baseNote.isDraft()) { accountViewModel.toastManager.toast( - R.string.draft_note, - R.string.it_s_not_possible_to_zap_to_a_draft_note, + Res.string.draft_note, + Res.string.it_s_not_possible_to_zap_to_a_draft_note, ) return } @@ -1475,8 +1492,8 @@ fun zapClick( !accountViewModel.isWriteable() -> { accountViewModel.toastManager.toast( - R.string.error_dialog_zap_error, - R.string.login_with_a_private_key_to_be_able_to_send_zaps, + Res.string.error_dialog_zap_error, + Res.string.login_with_a_private_key_to_be_able_to_send_zaps, ) } @@ -1767,7 +1784,7 @@ fun BoostTypeChoicePopupContent( itemVerticalAlignment = CenterVertically, ) { BoostActionChip( - label = stringRes(R.string.boost), + label = stringRes(Res.string.boost), onClick = onBoost, ) { tint -> RepostedIcon(Size18Modifier, tint) @@ -2490,9 +2507,9 @@ private fun PayToHandoffChip( val context = LocalContext.current val clipboard = LocalClipboard.current val scope = rememberCoroutineScope() - val copiedMessage = stringRes(R.string.copied_to_clipboard) - val noAppMessage = stringRes(R.string.no_payment_app_found_for_type, style.label) - val amountElsewhere = stringRes(R.string.payto_amount_set_in_app, app?.label ?: style.label) + val copiedMessage = stringRes(Res.string.copied_to_clipboard) + val noAppMessage = stringRes(Res.string.no_payment_app_found_for_type, style.label) + val amountElsewhere = stringRes(Res.string.payto_amount_set_in_app, app?.label ?: style.label) Surface( shape = ButtonBorder, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/RelayCompose.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/RelayCompose.kt index 0218fce4e3..1c82fc3b51 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/RelayCompose.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/RelayCompose.kt @@ -30,9 +30,7 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedButton import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue -import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext @@ -40,9 +38,10 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.add import com.vitorpamplona.amethyst.commons.resources.posts_received +import com.vitorpamplona.amethyst.commons.resources.remove import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.profile.relays.MyRelayInfo import com.vitorpamplona.amethyst.ui.stringRes @@ -79,10 +78,7 @@ fun RelayCompose( overflow = TextOverflow.Ellipsis, ) - val lastTime by - remember(relay.lastEvent) { - derivedStateOf { timeAgo(relay.lastEvent, context = context) } - } + val lastTime = timeAgo(relay.lastEvent) Text( text = lastTime, @@ -129,7 +125,7 @@ fun AddRelayButton(onClick: () -> Unit) { shape = ButtonBorder, contentPadding = ButtonPadding, ) { - Text(text = stringRes(id = R.string.add)) + Text(text = stringRes(id = Res.string.add)) } } @@ -141,6 +137,6 @@ fun RemoveRelayButton(onClick: () -> Unit) { shape = ButtonBorder, contentPadding = ButtonPadding, ) { - Text(text = stringRes(R.string.remove)) + Text(text = stringRes(Res.string.remove)) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/TimeAgoFormatter.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/TimeAgoFormatter.kt index 6e3305263f..1e898a38c5 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/TimeAgoFormatter.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/TimeAgoFormatter.kt @@ -23,9 +23,27 @@ package com.vitorpamplona.amethyst.ui.note import android.content.Context import android.text.format.DateFormat import android.text.format.DateUtils -import com.vitorpamplona.amethyst.R +import androidx.compose.runtime.Composable +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.d +import com.vitorpamplona.amethyst.commons.resources.duration_days +import com.vitorpamplona.amethyst.commons.resources.duration_hours +import com.vitorpamplona.amethyst.commons.resources.duration_minutes +import com.vitorpamplona.amethyst.commons.resources.duration_months +import com.vitorpamplona.amethyst.commons.resources.duration_weeks +import com.vitorpamplona.amethyst.commons.resources.duration_years +import com.vitorpamplona.amethyst.commons.resources.h +import com.vitorpamplona.amethyst.commons.resources.last_seen +import com.vitorpamplona.amethyst.commons.resources.last_seen_just_now +import com.vitorpamplona.amethyst.commons.resources.last_seen_never +import com.vitorpamplona.amethyst.commons.resources.last_seen_on_date +import com.vitorpamplona.amethyst.commons.resources.m +import com.vitorpamplona.amethyst.commons.resources.never +import com.vitorpamplona.amethyst.commons.resources.now +import com.vitorpamplona.amethyst.ui.pluralStringRes import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.utils.TimeUtils +import org.jetbrains.compose.resources.StringResource import java.text.SimpleDateFormat import java.util.Calendar import java.util.Date @@ -77,13 +95,14 @@ private val yearNoDayFormatter = LocaleAwareFormatter(YEAR_NO_DAY_SKELETON) * Used by [com.vitorpamplona.amethyst.ui.note.elements.TimeAgo] when the user * taps the relative timestamp to reveal the absolute one. */ +@Composable fun timeAbsolute( time: Long?, context: Context, prefix: String = " • ", ): String { if (time == null) return " " - if (time == 0L) return prefix + stringRes(context, R.string.never) + if (time == 0L) return prefix + stringRes(Res.string.never) val timeMs = time * 1000 val now = Calendar.getInstance() @@ -101,22 +120,23 @@ fun timeAbsolute( } } +@Composable fun timeAbsoluteNoDot( time: Long?, context: Context, ): String = timeAbsolute(time, context, prefix = "") +@Composable fun timeAgo( time: Long?, - context: Context, prefix: String = " • ", - seconds: Int = R.string.now, - minutes: Int = R.string.m, - hours: Int = R.string.h, - days: Int = R.string.d, + seconds: StringResource = Res.string.now, + minutes: StringResource = Res.string.m, + hours: StringResource = Res.string.h, + days: StringResource = Res.string.d, ): String { if (time == null) return " " - if (time == 0L) return prefix + stringRes(context, R.string.never) + if (time == 0L) return prefix + stringRes(Res.string.never) val timeDifference = TimeUtils.now() - time @@ -130,29 +150,27 @@ fun timeAgo( } timeDifference > TimeUtils.ONE_DAY -> { - prefix + (timeDifference / TimeUtils.ONE_DAY).toString() + stringRes(context, days) + prefix + (timeDifference / TimeUtils.ONE_DAY).toString() + stringRes(days) } timeDifference > TimeUtils.ONE_HOUR -> { - prefix + (timeDifference / TimeUtils.ONE_HOUR).toString() + stringRes(context, hours) + prefix + (timeDifference / TimeUtils.ONE_HOUR).toString() + stringRes(hours) } timeDifference > TimeUtils.ONE_MINUTE -> { - prefix + (timeDifference / TimeUtils.ONE_MINUTE).toString() + stringRes(context, minutes) + prefix + (timeDifference / TimeUtils.ONE_MINUTE).toString() + stringRes(minutes) } else -> { - prefix + stringRes(context, seconds) + prefix + stringRes(seconds) } } } -fun timeAgoNoDot( - time: Long?, - context: Context, -): String { +@Composable +fun timeAgoNoDot(time: Long?): String { if (time == null) return " " - if (time == 0L) return " ${stringRes(context, R.string.never)}" + if (time == 0L) return " ${stringRes(Res.string.never)}" val timeDifference = TimeUtils.now() - time @@ -166,29 +184,27 @@ fun timeAgoNoDot( } timeDifference > TimeUtils.ONE_DAY -> { - (timeDifference / TimeUtils.ONE_DAY).toString() + stringRes(context, R.string.d) + (timeDifference / TimeUtils.ONE_DAY).toString() + stringRes(Res.string.d) } timeDifference > TimeUtils.ONE_HOUR -> { - (timeDifference / TimeUtils.ONE_HOUR).toString() + stringRes(context, R.string.h) + (timeDifference / TimeUtils.ONE_HOUR).toString() + stringRes(Res.string.h) } timeDifference > TimeUtils.ONE_MINUTE -> { - (timeDifference / TimeUtils.ONE_MINUTE).toString() + stringRes(context, R.string.m) + (timeDifference / TimeUtils.ONE_MINUTE).toString() + stringRes(Res.string.m) } else -> { - stringRes(context, R.string.now) + stringRes(Res.string.now) } } } -fun timeAgoNoDotNoDay( - time: Long?, - context: Context, -): String { +@Composable +fun timeAgoNoDotNoDay(time: Long?): String { if (time == null) return " " - if (time == 0L) return " ${stringRes(context, R.string.never)}" + if (time == 0L) return " ${stringRes(Res.string.never)}" val timeDifference = TimeUtils.now() - time @@ -202,29 +218,27 @@ fun timeAgoNoDotNoDay( } timeDifference > TimeUtils.ONE_DAY -> { - (timeDifference / TimeUtils.ONE_DAY).toString() + stringRes(context, R.string.d) + (timeDifference / TimeUtils.ONE_DAY).toString() + stringRes(Res.string.d) } timeDifference > TimeUtils.ONE_HOUR -> { - (timeDifference / TimeUtils.ONE_HOUR).toString() + stringRes(context, R.string.h) + (timeDifference / TimeUtils.ONE_HOUR).toString() + stringRes(Res.string.h) } timeDifference > TimeUtils.ONE_MINUTE -> { - (timeDifference / TimeUtils.ONE_MINUTE).toString() + stringRes(context, R.string.m) + (timeDifference / TimeUtils.ONE_MINUTE).toString() + stringRes(Res.string.m) } else -> { - stringRes(context, R.string.now) + stringRes(Res.string.now) } } } -fun timeAheadNoDot( - time: Long?, - context: Context, -): String { +@Composable +fun timeAheadNoDot(time: Long?): String { if (time == null) return " " - if (time == 0L) return " ${stringRes(context, R.string.never)}" + if (time == 0L) return " ${stringRes(Res.string.never)}" val timeDifference = time - TimeUtils.now() @@ -238,19 +252,19 @@ fun timeAheadNoDot( } timeDifference > TimeUtils.ONE_DAY -> { - round(timeDifference / TimeUtils.ONE_DAY.toFloat()).toInt().toString() + stringRes(context, R.string.d) + round(timeDifference / TimeUtils.ONE_DAY.toFloat()).toInt().toString() + stringRes(Res.string.d) } timeDifference > TimeUtils.ONE_HOUR -> { - round(timeDifference / TimeUtils.ONE_HOUR.toFloat()).toInt().toString() + stringRes(context, R.string.h) + round(timeDifference / TimeUtils.ONE_HOUR.toFloat()).toInt().toString() + stringRes(Res.string.h) } timeDifference > TimeUtils.ONE_MINUTE -> { - round(timeDifference / TimeUtils.ONE_MINUTE.toFloat()).toInt().toString() + stringRes(context, R.string.m) + round(timeDifference / TimeUtils.ONE_MINUTE.toFloat()).toInt().toString() + stringRes(Res.string.m) } else -> { - stringRes(context, R.string.now) + stringRes(Res.string.now) } } } @@ -292,43 +306,39 @@ fun dateFormatter( * and pluralizes via Android plural resources. For anything older than a week we also * include the absolute date so users see exactly when the activity happened. */ -fun lastSeenSentence( - time: Long?, - context: Context, -): String { +@Composable +fun lastSeenSentence(time: Long?): String { if (time == null) return "" - if (time == 0L) return stringRes(context, R.string.last_seen_never) + if (time == 0L) return stringRes(Res.string.last_seen_never) val nowSec = TimeUtils.now() val diff = nowSec - time // Negative drift (clock skew, future timestamp) — treat as "just now". if (diff < TimeUtils.ONE_MINUTE) { - return stringRes(context, R.string.last_seen_just_now) + return stringRes(Res.string.last_seen_just_now) } - val resources = context.resources - // Recent: render purely as a relative duration. if (diff < TimeUtils.ONE_WEEK) { val durationText = when { diff < TimeUtils.ONE_HOUR -> { val n = (diff / TimeUtils.ONE_MINUTE).toInt() - resources.getQuantityString(R.plurals.duration_minutes, n, n) + pluralStringRes(Res.plurals.duration_minutes, n, n) } diff < TimeUtils.ONE_DAY -> { val n = (diff / TimeUtils.ONE_HOUR).toInt() - resources.getQuantityString(R.plurals.duration_hours, n, n) + pluralStringRes(Res.plurals.duration_hours, n, n) } else -> { val n = (diff / TimeUtils.ONE_DAY).toInt() - resources.getQuantityString(R.plurals.duration_days, n, n) + pluralStringRes(Res.plurals.duration_days, n, n) } } - return stringRes(context, R.string.last_seen, durationText) + return stringRes(Res.string.last_seen, durationText) } // Older than a week: include absolute date plus a coarse relative duration. @@ -336,23 +346,23 @@ fun lastSeenSentence( when { diff < TimeUtils.ONE_MONTH -> { val n = (diff / TimeUtils.ONE_WEEK).toInt() - resources.getQuantityString(R.plurals.duration_weeks, n, n) + pluralStringRes(Res.plurals.duration_weeks, n, n) } diff < TimeUtils.ONE_YEAR -> { val n = (diff / TimeUtils.ONE_MONTH).toInt().coerceAtLeast(1) - resources.getQuantityString(R.plurals.duration_months, n, n) + pluralStringRes(Res.plurals.duration_months, n, n) } else -> { val n = (diff / TimeUtils.ONE_YEAR).toInt().coerceAtLeast(1) - resources.getQuantityString(R.plurals.duration_years, n, n) + pluralStringRes(Res.plurals.duration_years, n, n) } } val dateText = yearFormatter.get().format(time * 1000) - return stringRes(context, R.string.last_seen_on_date, dateText, durationText) + return stringRes(Res.string.last_seen_on_date, dateText, durationText) } fun timeAgoShort( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/UpdateReactionTypeDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/UpdateReactionTypeDialog.kt index 6c155575e9..b36332c5cc 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/UpdateReactionTypeDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/UpdateReactionTypeDialog.kt @@ -70,10 +70,10 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.lifecycle.ViewModel import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.emojicoder.EmojiCoder import com.vitorpamplona.amethyst.commons.model.AddressableNote import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.add import com.vitorpamplona.amethyst.commons.resources.new_reaction_symbol import com.vitorpamplona.amethyst.commons.ui.components.AnimatedBorderTextCornerRadius import com.vitorpamplona.amethyst.commons.util.firstFullChar @@ -250,7 +250,7 @@ fun UpdateReactionTypeScreen( containerColor = MaterialTheme.colorScheme.primary, ), ) { - Text(text = stringRes(R.string.add), color = Color.White) + Text(text = stringRes(Res.string.add), color = Color.White) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/UpdateZapAmountDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/UpdateZapAmountDialog.kt index 84e48444dc..26258bab2e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/UpdateZapAmountDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/UpdateZapAmountDialog.kt @@ -59,6 +59,7 @@ import androidx.compose.material3.Surface import androidx.compose.material3.Switch import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.Immutable import androidx.compose.runtime.getValue import androidx.compose.runtime.key import androidx.compose.runtime.mutableStateMapOf @@ -81,13 +82,21 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.zIndex import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.add +import com.vitorpamplona.amethyst.commons.resources.app_name +import com.vitorpamplona.amethyst.commons.resources.biometric_authentication_failed +import com.vitorpamplona.amethyst.commons.resources.biometric_authentication_failed_explainer +import com.vitorpamplona.amethyst.commons.resources.biometric_authentication_failed_explainer_with_error import com.vitorpamplona.amethyst.commons.resources.new_amount_in_sats import com.vitorpamplona.amethyst.commons.resources.quick_zap_amounts import com.vitorpamplona.amethyst.commons.resources.quick_zap_amounts_explainer +import com.vitorpamplona.amethyst.commons.resources.remove +import com.vitorpamplona.amethyst.commons.resources.zap_payto_section +import com.vitorpamplona.amethyst.commons.resources.zap_payto_section_explainer +import com.vitorpamplona.amethyst.commons.resources.zap_payto_toggle import com.vitorpamplona.amethyst.commons.resources.zap_privacy_section import com.vitorpamplona.amethyst.commons.resources.zap_type_anonymous import com.vitorpamplona.amethyst.commons.resources.zap_type_anonymous_explainer @@ -300,7 +309,7 @@ fun UpdateZapAmountContent( ) { Icon( symbol = MaterialSymbols.AddCircle, - contentDescription = stringRes(R.string.add), + contentDescription = stringRes(Res.string.add), modifier = Size20Modifier, ) } @@ -346,13 +355,13 @@ fun UpdateZapAmountContent( // ── Section 3: Pay-to hand-off ─────────────────────────────────────── Text( - text = stringRes(R.string.zap_payto_section), + text = stringRes(Res.string.zap_payto_section), color = MaterialTheme.colorScheme.primary, style = MaterialTheme.typography.titleSmall, modifier = SettingsCategorySpacingModifier, ) Text( - text = stringRes(R.string.zap_payto_section_explainer), + text = stringRes(Res.string.zap_payto_section_explainer), style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.placeholderText, modifier = Modifier.padding(bottom = 8.dp), @@ -366,7 +375,7 @@ fun UpdateZapAmountContent( verticalAlignment = Alignment.CenterVertically, ) { Text( - text = stringRes(R.string.zap_payto_toggle), + text = stringRes(Res.string.zap_payto_toggle), modifier = Modifier.weight(1f), ) Switch( @@ -431,7 +440,7 @@ private fun ZapAmountPresetChip( IconButton(onClick = onRemove, modifier = Modifier.size(28.dp)) { Icon( symbol = MaterialSymbols.Close, - contentDescription = stringRes(R.string.remove), + contentDescription = stringRes(Res.string.remove), modifier = Modifier.size(16.dp), tint = MaterialTheme.colorScheme.placeholderText, ) @@ -440,9 +449,33 @@ private fun ZapAmountPresetChip( } } +/** + * Labels the device-credential and biometric prompts need. Resolved in + * composition and passed down because [authenticate] runs from an onClick + * lambda and from Android's own biometric callbacks, neither of which can + * reach a Compose resource. + */ +@Immutable +data class AuthPromptLabels( + val appName: String, + val failedTitle: String, + val failedExplainer: String, + val failedExplainerWithError: String, +) + +@Composable +fun rememberAuthPromptLabels(): AuthPromptLabels = + AuthPromptLabels( + appName = stringRes(Res.string.app_name), + failedTitle = stringRes(Res.string.biometric_authentication_failed), + failedExplainer = stringRes(Res.string.biometric_authentication_failed_explainer), + failedExplainerWithError = stringRes(Res.string.biometric_authentication_failed_explainer_with_error), + ) + fun authenticate( title: String, context: Context, + labels: AuthPromptLabels, keyguardLauncher: ManagedActivityResultLauncher, onApproved: () -> Unit, onError: (String, String) -> Unit, @@ -460,7 +493,7 @@ fun authenticate( fun keyguardPrompt() { val intent = keyguardManager.createConfirmDeviceCredentialIntent( - stringRes(context, R.string.app_name), + labels.appName, title, ) @@ -480,7 +513,7 @@ fun authenticate( val promptInfo = BiometricPrompt.PromptInfo .Builder() - .setTitle(stringRes(context, R.string.app_name)) + .setTitle(labels.appName) .setSubtitle(title) .setAllowedAuthenticators(authenticators) .build() @@ -506,12 +539,8 @@ fun authenticate( else -> { onError( - stringRes(context, R.string.biometric_authentication_failed), - stringRes( - context, - R.string.biometric_authentication_failed_explainer_with_error, - errString.toString(), - ), + labels.failedTitle, + labels.failedExplainerWithError.format(errString.toString()), ) } } @@ -519,10 +548,7 @@ fun authenticate( override fun onAuthenticationFailed() { super.onAuthenticationFailed() - onError( - stringRes(context, R.string.biometric_authentication_failed), - stringRes(context, R.string.biometric_authentication_failed_explainer), - ) + onError(labels.failedTitle, labels.failedExplainer) } override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/UserCompose.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/UserCompose.kt index ac935f5ebd..2cff4cfaf1 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/UserCompose.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/UserCompose.kt @@ -32,8 +32,12 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.User +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.follow +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_follow +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_unfollow +import com.vitorpamplona.amethyst.commons.resources.read_only_user import com.vitorpamplona.amethyst.service.relayClient.reqCommand.account.observeAccountIsHiddenUser import com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.observeUserAboutMe import com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.observeUserIsFollowing @@ -101,19 +105,19 @@ fun ShowFollowingOrUnfollowingButton( UnfollowButton(true) { if (!accountViewModel.isWriteable()) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_unfollow, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_unfollow, ) } else { accountViewModel.unfollow(baseAuthor) } } } else { - FollowButton(R.string.follow, true) { + FollowButton(Res.string.follow, true) { if (!accountViewModel.isWriteable()) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_follow, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_follow, ) } else { accountViewModel.follow(baseAuthor) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/UserReactionsRow.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/UserReactionsRow.kt index c9c2f01aac..e3b03d2ff6 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/UserReactionsRow.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/UserReactionsRow.kt @@ -35,9 +35,11 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.today +import com.vitorpamplona.amethyst.commons.resources.zaps import com.vitorpamplona.amethyst.ui.screen.loggedIn.notifications.NotificationSummaryState import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.BitcoinOrange @@ -61,7 +63,7 @@ fun UserReactionsRow( ) { Row(verticalAlignment = CenterVertically, modifier = Modifier.width(68.dp)) { Text( - text = stringRes(id = R.string.today), + text = stringRes(id = Res.string.today), fontWeight = FontWeight.Bold, ) @@ -95,7 +97,7 @@ fun UserReactionsRow( private fun UserZapModel(model: NotificationSummaryState) { Icon( symbol = MaterialSymbols.Bolt, - contentDescription = stringRes(R.string.zaps), + contentDescription = stringRes(Res.string.zaps), modifier = Size24Modifier, tint = BitcoinOrange, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/ZapCustomDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/ZapCustomDialog.kt index e062ed1d4d..22a92c961a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/ZapCustomDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/ZapCustomDialog.kt @@ -72,7 +72,6 @@ import androidx.core.net.toUri import androidx.lifecycle.ViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.resources.Res @@ -81,9 +80,13 @@ import com.vitorpamplona.amethyst.commons.resources.custom_zaps_add_a_message import com.vitorpamplona.amethyst.commons.resources.custom_zaps_add_a_message_example import com.vitorpamplona.amethyst.commons.resources.custom_zaps_add_a_message_nonzap import com.vitorpamplona.amethyst.commons.resources.custom_zaps_add_a_message_private +import com.vitorpamplona.amethyst.commons.resources.error_dialog_zap_error import com.vitorpamplona.amethyst.commons.resources.feed_is_empty import com.vitorpamplona.amethyst.commons.resources.manual_zaps +import com.vitorpamplona.amethyst.commons.resources.no_wallet_found import com.vitorpamplona.amethyst.commons.resources.paid +import com.vitorpamplona.amethyst.commons.resources.pay +import com.vitorpamplona.amethyst.commons.resources.sats import com.vitorpamplona.amethyst.commons.resources.send_onchain_instead import com.vitorpamplona.amethyst.commons.resources.send_zap import com.vitorpamplona.amethyst.commons.resources.wallet_number @@ -96,6 +99,7 @@ import com.vitorpamplona.amethyst.commons.resources.zap_type_private import com.vitorpamplona.amethyst.commons.resources.zap_type_private_explainer import com.vitorpamplona.amethyst.commons.resources.zap_type_public import com.vitorpamplona.amethyst.commons.resources.zap_type_public_explainer +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.ZapPaymentHandler import com.vitorpamplona.amethyst.ui.components.toasts.multiline.UserBasedErrorMessage @@ -282,7 +286,7 @@ fun ZapCustomDialog( color = MaterialTheme.colorScheme.placeholderText, ) }, - suffix = { Text(text = stringRes(id = R.string.sats)) }, + suffix = { Text(text = stringRes(id = Res.string.sats)) }, singleLine = true, modifier = Modifier @@ -518,7 +522,7 @@ fun DisplayPayable( ) Spacer(modifier = StdHorzSpacer) Text( - text = stringRes(id = R.string.sats), + text = stringRes(id = Res.string.sats), maxLines = 1, overflow = TextOverflow.Ellipsis, fontWeight = FontWeight.Bold, @@ -533,7 +537,7 @@ fun DisplayPayable( PayButton(isActive = !paid.value) { payViaIntent(payable.invoice, context, { paid.value = true }) { accountViewModel.toastManager.toast( - R.string.error_dialog_zap_error, + Res.string.error_dialog_zap_error, UserBasedErrorMessage(it, payable.info.user), ) } @@ -557,9 +561,9 @@ fun payViaIntent( if (e is CancellationException) throw e // don't display ugly error messages // if (e.message != null) { - // onError(stringRes(context, R.string.no_wallet_found_with_error, e.message!!)) + // onError(loadStringRes(Res.string.no_wallet_found_with_error, e.message!!)) // } else { - onError(stringRes(context, R.string.no_wallet_found)) + onError(loadStringRes(Res.string.no_wallet_found)) // } } } @@ -587,7 +591,7 @@ fun payViaBolt12Intent( onPaid() } catch (e: Exception) { if (e is CancellationException) throw e - onError(stringRes(context, R.string.no_wallet_found)) + onError(loadStringRes(Res.string.no_wallet_found)) } } @@ -608,7 +612,7 @@ fun PayButton( contentPadding = ZeroPadding, ) { if (isActive) { - Text(text = stringRes(R.string.pay), color = Color.White) + Text(text = stringRes(Res.string.pay), color = Color.White) } else { Text(text = stringRes(Res.string.paid), color = Color.White) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/ZapPollNote.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/ZapPollNote.kt index 9d807b8ca0..f681173566 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/ZapPollNote.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/ZapPollNote.kt @@ -70,7 +70,6 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Popup import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.EmptyTagList @@ -79,6 +78,15 @@ import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.toImmutableListOfLists +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.error_dialog_zap_error +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_send_zaps +import com.vitorpamplona.amethyst.commons.resources.one_vote_per_user_on_atomic_votes +import com.vitorpamplona.amethyst.commons.resources.poll_author_no_vote +import com.vitorpamplona.amethyst.commons.resources.poll_is_closed_explainer +import com.vitorpamplona.amethyst.commons.resources.poll_unable_to_vote +import com.vitorpamplona.amethyst.commons.resources.read_only_user +import com.vitorpamplona.amethyst.commons.resources.zaps import com.vitorpamplona.amethyst.service.ZapPaymentHandler import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.observeNoteZaps import com.vitorpamplona.amethyst.ui.components.TranslatableRichTextViewer @@ -548,30 +556,30 @@ fun ZapVote( when { !accountViewModel.isWriteable() -> { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_send_zaps, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_send_zaps, ) } pollViewModel.isPollClosed() -> { accountViewModel.toastManager.toast( - R.string.poll_unable_to_vote, - R.string.poll_is_closed_explainer, + Res.string.poll_unable_to_vote, + Res.string.poll_is_closed_explainer, ) } isLoggedUser -> { accountViewModel.toastManager.toast( - R.string.poll_unable_to_vote, - R.string.poll_author_no_vote, + Res.string.poll_unable_to_vote, + Res.string.poll_author_no_vote, ) } pollViewModel.isVoteAmountAtomic() && poolOption.zappedByLoggedIn.value -> { // only allow one vote per option when min==max, i.e. atomic vote amount specified accountViewModel.toastManager.toast( - R.string.poll_unable_to_vote, - R.string.one_vote_per_user_on_atomic_votes, + Res.string.poll_unable_to_vote, + Res.string.one_vote_per_user_on_atomic_votes, ) return@combinedClickable } @@ -594,7 +602,7 @@ fun ZapVote( val payable = it.first() payViaIntent(payable.invoice, context, { }) { error -> zappingProgress = 0f - showErrorMessageDialog = StringToastMsg(stringRes(context, R.string.error_dialog_zap_error), error) + showErrorMessageDialog = StringToastMsg(stringRes(Res.string.error_dialog_zap_error), error) } } else { val uid = Uuid.random().toString() @@ -635,7 +643,7 @@ fun ZapVote( val payable = it.first() payViaIntent(payable.invoice, context, { }) { error -> zappingProgress = 0f - showErrorMessageDialog = StringToastMsg(stringRes(context, R.string.error_dialog_zap_error), error) + showErrorMessageDialog = StringToastMsg(stringRes(Res.string.error_dialog_zap_error), error) } } else { val uid = Uuid.random().toString() @@ -667,7 +675,7 @@ fun ZapVote( zappingProgress = 1f Icon( symbol = MaterialSymbols.Bolt, - contentDescription = stringRes(R.string.zaps), + contentDescription = stringRes(Res.string.zaps), modifier = Modifier.size(20.dp), tint = BitcoinOrange, ) @@ -675,7 +683,7 @@ fun ZapVote( if (zappingProgress < 0.1 || zappingProgress > 0.99) { Icon( symbol = MaterialSymbols.Bolt, - contentDescription = stringRes(id = R.string.zaps), + contentDescription = stringRes(id = Res.string.zaps), modifier = Modifier.size(20.dp), tint = MaterialTheme.colorScheme.placeholderText, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/buttons/PostButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/buttons/PostButton.kt index ac28787122..287bca4548 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/buttons/PostButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/buttons/PostButton.kt @@ -24,7 +24,8 @@ import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.post import com.vitorpamplona.amethyst.ui.stringRes @Composable @@ -38,6 +39,6 @@ fun PostButton( enabled = isActive, onClick = onPost, ) { - Text(text = stringRes(R.string.post)) + Text(text = stringRes(Res.string.post)) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/buttons/SaveButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/buttons/SaveButton.kt index dec455eebd..ad005b2f33 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/buttons/SaveButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/buttons/SaveButton.kt @@ -24,7 +24,8 @@ import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.save import com.vitorpamplona.amethyst.ui.stringRes @Composable @@ -38,6 +39,6 @@ fun SaveButton( modifier = modifier, onClick = onPost, ) { - Text(text = stringRes(R.string.save)) + Text(text = stringRes(Res.string.save)) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/contentWarning/ContentSensitivityExplainer.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/contentWarning/ContentSensitivityExplainer.kt index 0c1be799b0..55d30a1fb5 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/contentWarning/ContentSensitivityExplainer.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/contentWarning/ContentSensitivityExplainer.kt @@ -39,12 +39,12 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.add_sensitive_content_description_placeholder import com.vitorpamplona.amethyst.commons.resources.add_sensitive_content_explainer +import com.vitorpamplona.amethyst.commons.resources.add_sensitive_content_label import com.vitorpamplona.amethyst.commons.resources.content_warning import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.DividerThickness @@ -89,7 +89,7 @@ fun ContentSensitivityExplainer( } Text( - text = stringRes(R.string.add_sensitive_content_label), + text = stringRes(Res.string.add_sensitive_content_label), fontSize = 20.sp, fontWeight = FontWeight.W500, modifier = Modifier.padding(start = 10.dp), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/expiration/ExpirationDatePicker.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/expiration/ExpirationDatePicker.kt index 272b17e408..a903188dc8 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/expiration/ExpirationDatePicker.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/expiration/ExpirationDatePicker.kt @@ -53,12 +53,12 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.confirm import com.vitorpamplona.amethyst.commons.resources.expiration_date_explainer +import com.vitorpamplona.amethyst.commons.resources.expiration_date_label import com.vitorpamplona.amethyst.commons.resources.expiration_date_select import com.vitorpamplona.amethyst.commons.resources.expiration_expires_in import com.vitorpamplona.amethyst.commons.resources.expiration_time @@ -108,13 +108,13 @@ fun ExpirationDatePicker(model: IExpiration) { ) { Icon( symbol = MaterialSymbols.Timer, - contentDescription = stringRes(R.string.expiration_date_label), + contentDescription = stringRes(Res.string.expiration_date_label), modifier = Modifier.size(20.dp), tint = Color(0xFFFF6600), ) Text( - text = stringRes(R.string.expiration_date_label), + text = stringRes(Res.string.expiration_date_label), fontSize = 20.sp, fontWeight = FontWeight.W500, modifier = Modifier.padding(start = 10.dp), @@ -141,10 +141,10 @@ fun ExpirationDatePicker(model: IExpiration) { Spacer(Modifier.width(12.dp)) if (model.expirationDate < TimeUtils.oneMinuteFromNow()) { - Text(stringRes(R.string.expiration_date_label) + " " + model.expirationDate, style = MaterialTheme.typography.bodyLarge) + Text(stringRes(Res.string.expiration_date_label) + " " + model.expirationDate, style = MaterialTheme.typography.bodyLarge) } else { Text( - text = stringRes(Res.string.expiration_expires_in, timeAheadNoDot(model.expirationDate, context)), + text = stringRes(Res.string.expiration_expires_in, timeAheadNoDot(model.expirationDate)), style = MaterialTheme.typography.bodyLarge, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/invoice/ClinkOfferPreview.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/invoice/ClinkOfferPreview.kt index 9ef7727067..1f005a98cb 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/invoice/ClinkOfferPreview.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/invoice/ClinkOfferPreview.kt @@ -44,14 +44,19 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.hashtags.CustomHashTagIcons import com.vitorpamplona.amethyst.commons.hashtags.Lightning import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.clink_lightning_offer import com.vitorpamplona.amethyst.commons.resources.clink_offer_amount_range import com.vitorpamplona.amethyst.commons.resources.clink_offer_amount_sats +import com.vitorpamplona.amethyst.commons.resources.clink_offer_invalid_amount import com.vitorpamplona.amethyst.commons.resources.clink_offer_pay_to +import com.vitorpamplona.amethyst.commons.resources.clink_requesting_invoice +import com.vitorpamplona.amethyst.commons.resources.error_dialog_pay_invoice_error +import com.vitorpamplona.amethyst.commons.resources.pay +import com.vitorpamplona.amethyst.commons.resources.sats +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.service.ClinkOfferPayer import com.vitorpamplona.amethyst.ui.components.PaymentCard import com.vitorpamplona.amethyst.ui.components.PaymentCardAmount @@ -103,7 +108,7 @@ fun ClinkOfferPreview( errorMessage?.let { ErrorMessageDialog( - title = stringRes(context, R.string.error_dialog_pay_invoice_error), + title = stringRes(Res.string.error_dialog_pay_invoice_error), textContent = it, onDismiss = { errorMessage = null }, ) @@ -139,7 +144,7 @@ fun ClinkOfferPreview( activeOffer.price?.let { PaymentCardAmount( amount = NumberFormat.getIntegerInstance().format(it), - unit = stringRes(R.string.sats), + unit = stringRes(Res.string.sats), ) } } @@ -203,13 +208,13 @@ fun ClinkOfferPreview( amountRange = response.range errorMessage = response.error?.takeIf { it.isNotBlank() } - ?: stringRes(context, R.string.clink_offer_invalid_amount) + ?: loadStringRes(Res.string.clink_offer_invalid_amount) } else -> { requesting = false errorMessage = response?.error?.takeIf { it.isNotBlank() } - ?: stringRes(context, R.string.error_dialog_pay_invoice_error) + ?: loadStringRes(Res.string.error_dialog_pay_invoice_error) } } } @@ -226,7 +231,7 @@ fun ClinkOfferPreview( }, shape = ButtonBorder, ) { - Text(text = stringRes(if (requesting) R.string.clink_requesting_invoice else R.string.pay)) + Text(text = stringRes(if (requesting) Res.string.clink_requesting_invoice else Res.string.pay)) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/invoice/InvoicePaymentDispatcher.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/invoice/InvoicePaymentDispatcher.kt index 2873f9214f..637575f690 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/invoice/InvoicePaymentDispatcher.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/invoice/InvoicePaymentDispatcher.kt @@ -28,10 +28,15 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.remember import androidx.compose.ui.platform.LocalContext -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.payments.PaymentSource import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cancel +import com.vitorpamplona.amethyst.commons.resources.clink_confirm_pay_amount_via_source +import com.vitorpamplona.amethyst.commons.resources.clink_confirm_pay_via_source import com.vitorpamplona.amethyst.commons.resources.clink_confirm_payment_title +import com.vitorpamplona.amethyst.commons.resources.clink_debit_no_response +import com.vitorpamplona.amethyst.commons.resources.pay +import com.vitorpamplona.amethyst.commons.resources.sats import com.vitorpamplona.amethyst.ui.note.payViaIntent import com.vitorpamplona.amethyst.ui.nwc.nwcFailureDetail import com.vitorpamplona.amethyst.ui.nwc.nwcTimeoutMessage @@ -104,7 +109,7 @@ fun InvoicePaymentDispatcher( } else { onError( response?.failureDetail() - ?: stringRes(context, R.string.clink_debit_no_response), + ?: stringRes(Res.string.clink_debit_no_response), ) } } @@ -125,10 +130,10 @@ private fun ConfirmPaymentDialog( val context = LocalContext.current val message = if (amountSats != null) { - val amountText = "$amountSats ${stringRes(context, R.string.sats)}" - stringRes(context, R.string.clink_confirm_pay_amount_via_source, amountText, sourceName) + val amountText = "$amountSats ${stringRes(Res.string.sats)}" + stringRes(Res.string.clink_confirm_pay_amount_via_source, amountText, sourceName) } else { - stringRes(context, R.string.clink_confirm_pay_via_source, sourceName) + stringRes(Res.string.clink_confirm_pay_via_source, sourceName) } AlertDialog( @@ -136,10 +141,10 @@ private fun ConfirmPaymentDialog( title = { Text(stringRes(Res.string.clink_confirm_payment_title)) }, text = { Text(message) }, confirmButton = { - Button(onClick = onConfirm) { Text(stringRes(R.string.pay)) } + Button(onClick = onConfirm) { Text(stringRes(Res.string.pay)) } }, dismissButton = { - TextButton(onClick = onDismiss) { Text(stringRes(R.string.cancel)) } + TextButton(onClick = onDismiss) { Text(stringRes(Res.string.cancel)) } }, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/invoice/InvoicePreview.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/invoice/InvoicePreview.kt index e570d0b14c..a906169076 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/invoice/InvoicePreview.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/invoice/InvoicePreview.kt @@ -39,12 +39,14 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextDirection import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.hashtags.CustomHashTagIcons import com.vitorpamplona.amethyst.commons.hashtags.Lightning import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.error_dialog_pay_invoice_error import com.vitorpamplona.amethyst.commons.resources.invoice_expired import com.vitorpamplona.amethyst.commons.resources.lightning_invoice +import com.vitorpamplona.amethyst.commons.resources.pay +import com.vitorpamplona.amethyst.commons.resources.sats import com.vitorpamplona.amethyst.service.lnurl.CachedLnInvoiceParser import com.vitorpamplona.amethyst.service.lnurl.InvoiceAmount import com.vitorpamplona.amethyst.ui.actions.CrossfadeIfEnabled @@ -111,7 +113,7 @@ fun InvoicePreview( if (showErrorMessageDialog != null) { ErrorMessageDialog( - title = stringRes(context, R.string.error_dialog_pay_invoice_error), + title = stringRes(Res.string.error_dialog_pay_invoice_error), textContent = showErrorMessageDialog ?: "", onDismiss = { showErrorMessageDialog = null }, ) @@ -141,7 +143,7 @@ fun InvoicePreview( copyValue = lnInvoice, ) { amount?.let { - PaymentCardAmount(amount = it, unit = stringRes(R.string.sats)) + PaymentCardAmount(amount = it, unit = stringRes(Res.string.sats)) } description?.let { @@ -170,7 +172,7 @@ fun InvoicePreview( onClick = { payingInvoice = lnInvoice }, shape = ButtonBorder, ) { - Text(text = stringRes(R.string.pay)) + Text(text = stringRes(Res.string.pay)) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/location/GeoHashPostSection.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/location/GeoHashPostSection.kt index 1fe5ebd6ec..8baa4ccff4 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/location/GeoHashPostSection.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/location/GeoHashPostSection.kt @@ -40,11 +40,12 @@ import androidx.compose.ui.Alignment.Companion.CenterVertically import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.geohash_title +import com.vitorpamplona.amethyst.commons.resources.location_change_place +import com.vitorpamplona.amethyst.commons.resources.location_pick_on_map import com.vitorpamplona.amethyst.commons.resources.remove_location import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.Size10dp @@ -111,7 +112,7 @@ fun GeoHashPostSection( tint = MaterialTheme.colorScheme.primary, ) Text( - text = stringRes(if (picked != null) R.string.location_change_place else R.string.location_pick_on_map), + text = stringRes(if (picked != null) Res.string.location_change_place else Res.string.location_pick_on_map), modifier = Modifier.padding(start = 6.dp), ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/location/GeohashLocationPickerDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/location/GeohashLocationPickerDialog.kt index 83637f2935..944ae96780 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/location/GeohashLocationPickerDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/location/GeohashLocationPickerDialog.kt @@ -83,10 +83,10 @@ import com.google.accompanist.permissions.ExperimentalPermissionsApi import com.google.accompanist.permissions.isGranted import com.google.accompanist.permissions.rememberPermissionState import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.clear import com.vitorpamplona.amethyst.commons.resources.location_picker_area import com.vitorpamplona.amethyst.commons.resources.location_picker_confirm @@ -446,7 +446,7 @@ private fun PickerHeader(onClose: () -> Unit) { IconButton(onClick = onClose) { Icon( symbol = MaterialSymbols.Close, - contentDescription = stringRes(R.string.cancel), + contentDescription = stringRes(Res.string.cancel), modifier = Modifier.size(22.dp), tint = MaterialTheme.colorScheme.onSurface, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/notify/AudienceFlap.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/notify/AudienceFlap.kt index c8754b6e15..cdf3002a2b 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/notify/AudienceFlap.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/notify/AudienceFlap.kt @@ -69,15 +69,21 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.audience_empty_private +import com.vitorpamplona.amethyst.commons.resources.audience_empty_public import com.vitorpamplona.amethyst.commons.resources.audience_group_chip import com.vitorpamplona.amethyst.commons.resources.audience_group_remove import com.vitorpamplona.amethyst.commons.resources.audience_manage +import com.vitorpamplona.amethyst.commons.resources.audience_summary_others import com.vitorpamplona.amethyst.commons.resources.audience_summary_two +import com.vitorpamplona.amethyst.commons.resources.notify_mute_user +import com.vitorpamplona.amethyst.commons.resources.notify_unmute_user +import com.vitorpamplona.amethyst.commons.resources.private_note_visible_to +import com.vitorpamplona.amethyst.commons.resources.reply_notify import com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.observeUserName import com.vitorpamplona.amethyst.ui.note.BaseUserPicture import com.vitorpamplona.amethyst.ui.note.UsernameDisplay @@ -169,7 +175,7 @@ fun AudienceFlap( FlapLock(isPrivate, accent) Text( - text = stringRes(if (isPrivate) R.string.private_note_visible_to else R.string.reply_notify), + text = stringRes(if (isPrivate) Res.string.private_note_visible_to else Res.string.reply_notify), fontSize = 11.sp, fontWeight = FontWeight.SemiBold, color = accent, @@ -272,7 +278,7 @@ private fun AudienceInvitation( tint = MaterialTheme.colorScheme.primary, ) Text( - text = stringRes(if (isPrivate) R.string.audience_empty_private else R.string.audience_empty_public), + text = stringRes(if (isPrivate) Res.string.audience_empty_private else Res.string.audience_empty_public), style = MaterialTheme.typography.bodySmall, fontWeight = FontWeight.SemiBold, color = MaterialTheme.colorScheme.primary, @@ -376,7 +382,7 @@ private fun AudienceSummary( users.size == 2 -> stringRes(Res.string.audience_summary_two, first, second) else -> { val others = users.size - AudienceSelection.SUMMARY_NAMES - pluralStringResource(R.plurals.audience_summary_others, others, first, second, others) + pluralStringResource(Res.plurals.audience_summary_others, others, first, second, others) } } @@ -492,7 +498,7 @@ private fun AudienceMemberChip( trailingIcon = { Icon( symbol = if (isMuted) MaterialSymbols.NotificationsOff else MaterialSymbols.Notifications, - contentDescription = stringRes(if (isMuted) R.string.notify_unmute_user else R.string.notify_mute_user), + contentDescription = stringRes(if (isMuted) Res.string.notify_unmute_user else Res.string.notify_mute_user), modifier = Modifier.size(InputChipDefaults.IconSize), ) }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/notify/AudienceSheet.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/notify/AudienceSheet.kt index 1fb3162291..8e836f6eb7 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/notify/AudienceSheet.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/notify/AudienceSheet.kt @@ -59,18 +59,27 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.audience_add_anyway +import com.vitorpamplona.amethyst.commons.resources.audience_add_people +import com.vitorpamplona.amethyst.commons.resources.audience_badge_already_added +import com.vitorpamplona.amethyst.commons.resources.audience_badge_muted +import com.vitorpamplona.amethyst.commons.resources.audience_badge_private_member import com.vitorpamplona.amethyst.commons.resources.audience_count_with_private +import com.vitorpamplona.amethyst.commons.resources.audience_hard_cap import com.vitorpamplona.amethyst.commons.resources.audience_over_limit import com.vitorpamplona.amethyst.commons.resources.audience_recipients_are_visible import com.vitorpamplona.amethyst.commons.resources.audience_sheet_no_lists import com.vitorpamplona.amethyst.commons.resources.audience_sheet_search import com.vitorpamplona.amethyst.commons.resources.audience_sheet_title +import com.vitorpamplona.amethyst.commons.resources.audience_soft_cap_private +import com.vitorpamplona.amethyst.commons.resources.audience_soft_cap_public +import com.vitorpamplona.amethyst.commons.resources.back +import com.vitorpamplona.amethyst.commons.resources.discover_follows import com.vitorpamplona.amethyst.commons.resources.follow_sets import com.vitorpamplona.amethyst.commons.resources.num_selected import com.vitorpamplona.amethyst.commons.resources.select_all @@ -90,6 +99,7 @@ import com.vitorpamplona.amethyst.ui.theme.warningColor import com.vitorpamplona.quartz.nip01Core.core.HexKey import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.ImmutableSet +import org.jetbrains.compose.resources.StringResource /** * The one place the composer's audience is edited: search for a person, pick a @@ -235,7 +245,7 @@ private fun AudienceCatalog( items(sets, key = { "set-" + it.id }) { AudienceListRow(it) { onPickList(it) } } } if (packs.isNotEmpty()) { - item { SectionHeader(stringRes(R.string.discover_follows)) } + item { SectionHeader(stringRes(Res.string.discover_follows)) } items(packs, key = { "pack-" + it.id }) { AudienceListRow(it) { onPickList(it) } } } if (sets.isEmpty() && packs.isEmpty()) { @@ -349,7 +359,7 @@ private fun AudienceReview( ) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), modifier = Modifier.size(20.dp), tint = MaterialTheme.colorScheme.onBackground, ) @@ -425,7 +435,7 @@ private fun AudienceReview( when (cap) { is AudienceCap.OverHard -> NoteLine( - text = pluralStringResource(R.plurals.audience_hard_cap, cap.total, cap.total, AudienceSelection.HARD_CAP), + text = pluralStringResource(Res.plurals.audience_hard_cap, cap.total, cap.total, AudienceSelection.HARD_CAP), color = MaterialTheme.colorScheme.error, symbol = MaterialSymbols.Warning, ) @@ -433,9 +443,9 @@ private fun AudienceReview( NoteLine( text = if (isPrivate) { - pluralStringResource(R.plurals.audience_soft_cap_private, cap.total, cap.total) + pluralStringResource(Res.plurals.audience_soft_cap_private, cap.total, cap.total) } else { - pluralStringResource(R.plurals.audience_soft_cap_public, cap.total, cap.total) + pluralStringResource(Res.plurals.audience_soft_cap_public, cap.total, cap.total) }, color = MaterialTheme.colorScheme.warningColor, symbol = MaterialSymbols.Warning, @@ -453,9 +463,9 @@ private fun AudienceReview( Text( text = if (cap is AudienceCap.OverSoft) { - pluralStringResource(R.plurals.audience_add_anyway, additions.size, additions.size) + pluralStringResource(Res.plurals.audience_add_anyway, additions.size, additions.size) } else { - pluralStringResource(R.plurals.audience_add_people, additions.size, additions.size) + pluralStringResource(Res.plurals.audience_add_people, additions.size, additions.size) }, ) } @@ -504,16 +514,16 @@ private fun AudienceMemberRow( } when { - member.isAlreadyInAudience -> MemberBadge(R.string.audience_badge_already_added, MaterialTheme.colorScheme.placeholderText) - member.isHidden -> MemberBadge(R.string.audience_badge_muted, MaterialTheme.colorScheme.placeholderText) - member.isPrivateMember -> MemberBadge(R.string.audience_badge_private_member, MaterialTheme.colorScheme.primary) + member.isAlreadyInAudience -> MemberBadge(Res.string.audience_badge_already_added, MaterialTheme.colorScheme.placeholderText) + member.isHidden -> MemberBadge(Res.string.audience_badge_muted, MaterialTheme.colorScheme.placeholderText) + member.isPrivateMember -> MemberBadge(Res.string.audience_badge_private_member, MaterialTheme.colorScheme.primary) } } } @Composable private fun MemberBadge( - textRes: Int, + textRes: StringResource, color: Color, ) { Text( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/polls/PollDeadlinePicker.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/polls/PollDeadlinePicker.kt index 5788a3a335..2bfe87fc3a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/polls/PollDeadlinePicker.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/polls/PollDeadlinePicker.kt @@ -110,7 +110,7 @@ fun PollDeadlinePicker(model: ShortNotePostViewModel) { Text(stringRes(Res.string.poll_closing_date_time) + " " + model.closedAt, style = MaterialTheme.typography.bodyLarge) } else { Text( - text = stringRes(Res.string.poll_closing_in, timeAheadNoDot(model.closedAt, context)), + text = stringRes(Res.string.poll_closing_in, timeAheadNoDot(model.closedAt)), style = MaterialTheme.typography.bodyLarge, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/polls/PollOptionsField.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/polls/PollOptionsField.kt index 6d7c9e50a2..83b9aa0eaa 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/polls/PollOptionsField.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/polls/PollOptionsField.kt @@ -41,13 +41,15 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.add_poll_option_button import com.vitorpamplona.amethyst.commons.resources.clear +import com.vitorpamplona.amethyst.commons.resources.poll_multiple_choice import com.vitorpamplona.amethyst.commons.resources.poll_option_description +import com.vitorpamplona.amethyst.commons.resources.poll_option_index +import com.vitorpamplona.amethyst.commons.resources.poll_single_choice import com.vitorpamplona.amethyst.ui.screen.loggedIn.home.ShortNotePostViewModel import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.placeholderText @@ -77,7 +79,7 @@ fun PollOptionsField(postViewModel: ShortNotePostViewModel) { }, label = { Text( - text = stringRes(R.string.poll_option_index, option.key + 1), + text = stringRes(Res.string.poll_option_index, option.key + 1), color = MaterialTheme.colorScheme.placeholderText, ) }, @@ -142,12 +144,12 @@ fun PollTypeSelector( FilterChip( selected = selectedType == PollType.SINGLE_CHOICE, onClick = { onTypeSelected(PollType.SINGLE_CHOICE) }, - label = { Text(stringRes(R.string.poll_single_choice)) }, + label = { Text(stringRes(Res.string.poll_single_choice)) }, ) FilterChip( selected = selectedType == PollType.MULTI_CHOICE, onClick = { onTypeSelected(PollType.MULTI_CHOICE) }, - label = { Text(stringRes(R.string.poll_multiple_choice)) }, + label = { Text(stringRes(Res.string.poll_multiple_choice)) }, ) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/pow/PowOverrideButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/pow/PowOverrideButton.kt index 3356cef029..75fdead30c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/pow/PowOverrideButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/pow/PowOverrideButton.kt @@ -44,12 +44,14 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.pow_option_bits import com.vitorpamplona.amethyst.commons.resources.pow_option_default_off +import com.vitorpamplona.amethyst.commons.resources.pow_option_default_on import com.vitorpamplona.amethyst.commons.resources.pow_option_off +import com.vitorpamplona.amethyst.commons.resources.pow_settings_title import com.vitorpamplona.amethyst.commons.service.pow.PoWEstimator import com.vitorpamplona.amethyst.service.pow.deviceHashesPerSecond import com.vitorpamplona.amethyst.service.pow.formatApproxDuration @@ -90,7 +92,7 @@ fun PowOverrideButton( ) { Icon( symbol = MaterialSymbols.Manufacturing, - contentDescription = stringRes(R.string.pow_settings_title), + contentDescription = stringRes(Res.string.pow_settings_title), modifier = Modifier.size(18.dp).align(Alignment.BottomStart), tint = if (isActive) { @@ -124,7 +126,8 @@ fun PowOverrideButton( value = deviceHashesPerSecond() } - fun eta(difficulty: Int): String? = hashRate?.let { formatApproxDuration(context, PoWEstimator.estimateSeconds(difficulty, it)) } + @Composable + fun eta(difficulty: Int): String? = hashRate?.let { formatApproxDuration(PoWEstimator.estimateSeconds(difficulty, it)) } fun withEta( label: String, @@ -136,7 +139,7 @@ fun PowOverrideButton( Text( if (defaultDifficulty != null && defaultDifficulty > 0) { withEta( - pluralStringResource(R.plurals.pow_option_default_on, defaultDifficulty, defaultDifficulty), + pluralStringResource(Res.plurals.pow_option_default_on, defaultDifficulty, defaultDifficulty), defaultDifficulty, ) } else { @@ -166,7 +169,7 @@ fun PowOverrideButton( DropdownMenuItem( text = { Text( - withEta(pluralStringResource(R.plurals.pow_option_bits, preset, preset), preset), + withEta(pluralStringResource(Res.plurals.pow_option_bits, preset, preset), preset), fontWeight = if (isOverridden && effectiveDifficulty == preset) FontWeight.Bold else null, ) }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/scheduling/ScheduleAtButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/scheduling/ScheduleAtButton.kt index 1c5440e9b6..1eda8ae8ab 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/scheduling/ScheduleAtButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/scheduling/ScheduleAtButton.kt @@ -26,9 +26,11 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.schedule_post_button_add +import com.vitorpamplona.amethyst.commons.resources.schedule_post_button_remove import com.vitorpamplona.amethyst.ui.stringRes @Composable @@ -41,7 +43,7 @@ fun ScheduleAtButton( symbol = MaterialSymbols.Schedule, contentDescription = stringRes( - if (isActive) R.string.schedule_post_button_remove else R.string.schedule_post_button_add, + if (isActive) Res.string.schedule_post_button_remove else Res.string.schedule_post_button_add, ), modifier = Modifier.size(20.dp), tint = if (isActive) MaterialTheme.colorScheme.primary else MaterialTheme.colorScheme.onBackground, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/scheduling/ScheduleAtPicker.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/scheduling/ScheduleAtPicker.kt index f9662666ac..152b88a830 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/scheduling/ScheduleAtPicker.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/scheduling/ScheduleAtPicker.kt @@ -58,7 +58,6 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res @@ -74,6 +73,8 @@ import com.vitorpamplona.amethyst.commons.resources.schedule_post_preset_next_mo import com.vitorpamplona.amethyst.commons.resources.schedule_post_preset_tomorrow_morning import com.vitorpamplona.amethyst.commons.resources.schedule_post_publishes_in import com.vitorpamplona.amethyst.commons.resources.schedule_post_time_label +import com.vitorpamplona.amethyst.commons.resources.schedule_post_warning_multi +import com.vitorpamplona.amethyst.commons.resources.schedule_post_warning_single import com.vitorpamplona.amethyst.commons.resources.schedule_post_warning_title import com.vitorpamplona.amethyst.ui.note.timeAheadNoDot import com.vitorpamplona.amethyst.ui.stringRes @@ -183,7 +184,7 @@ fun ScheduleAtPicker( Text(stringRes(Res.string.schedule_post_pick_label), style = MaterialTheme.typography.bodyLarge) } else { Text( - text = stringRes(Res.string.schedule_post_publishes_in, timeAheadNoDot(scheduledForSec, context)), + text = stringRes(Res.string.schedule_post_publishes_in, timeAheadNoDot(scheduledForSec)), style = MaterialTheme.typography.bodyLarge, ) } @@ -261,9 +262,9 @@ private fun ReliabilityWarning(hasMultipleAccounts: Boolean) { text = stringRes( if (hasMultipleAccounts) { - R.string.schedule_post_warning_multi + Res.string.schedule_post_warning_multi } else { - R.string.schedule_post_warning_single + Res.string.schedule_post_warning_single }, ), color = MaterialTheme.colorScheme.onErrorContainer, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/uploads/ImageVideoDescription.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/uploads/ImageVideoDescription.kt index 30611e2ab7..3cf7fb77ae 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/uploads/ImageVideoDescription.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/uploads/ImageVideoDescription.kt @@ -61,21 +61,33 @@ import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.add_content +import com.vitorpamplona.amethyst.commons.resources.add_sensitive_content_description +import com.vitorpamplona.amethyst.commons.resources.add_sensitive_content_label import com.vitorpamplona.amethyst.commons.resources.ai_suggested_alt_text_dismiss import com.vitorpamplona.amethyst.commons.resources.ai_suggested_alt_text_hint import com.vitorpamplona.amethyst.commons.resources.content_description +import com.vitorpamplona.amethyst.commons.resources.content_description_add_document +import com.vitorpamplona.amethyst.commons.resources.content_description_add_image +import com.vitorpamplona.amethyst.commons.resources.content_description_add_media +import com.vitorpamplona.amethyst.commons.resources.content_description_add_video import com.vitorpamplona.amethyst.commons.resources.content_description_example +import com.vitorpamplona.amethyst.commons.resources.convert_gif_to_mp4_description +import com.vitorpamplona.amethyst.commons.resources.convert_gif_to_mp4_label +import com.vitorpamplona.amethyst.commons.resources.file_server import com.vitorpamplona.amethyst.commons.resources.media_compression_quality_explainer import com.vitorpamplona.amethyst.commons.resources.media_compression_quality_high import com.vitorpamplona.amethyst.commons.resources.media_compression_quality_label import com.vitorpamplona.amethyst.commons.resources.media_compression_quality_low import com.vitorpamplona.amethyst.commons.resources.media_compression_quality_medium import com.vitorpamplona.amethyst.commons.resources.media_compression_quality_uncompressed +import com.vitorpamplona.amethyst.commons.resources.strip_metadata_description +import com.vitorpamplona.amethyst.commons.resources.strip_metadata_label +import com.vitorpamplona.amethyst.commons.resources.video_codec_h265_description +import com.vitorpamplona.amethyst.commons.resources.video_codec_h265_label import com.vitorpamplona.amethyst.service.ai.MLKitImageLabelService import com.vitorpamplona.amethyst.service.uploads.MultiOrchestrator import com.vitorpamplona.amethyst.ui.actions.mediaServers.DEFAULT_MEDIA_SERVERS @@ -193,16 +205,16 @@ fun ImageVideoDescription( val text = if (uris.size() == 1) { if (uris.first().media.isImage() == true) { - R.string.content_description_add_image + Res.string.content_description_add_image } else { if (uris.first().media.isVideo() == true) { - R.string.content_description_add_video + Res.string.content_description_add_video } else { - R.string.content_description_add_document + Res.string.content_description_add_document } } } else { - R.string.content_description_add_media + Res.string.content_description_add_media } Text( @@ -245,7 +257,7 @@ fun ImageVideoDescription( modifier = Modifier.fillMaxWidth(), ) { TextSpinner( - label = stringRes(id = R.string.file_server), + label = stringRes(id = Res.string.file_server), placeholder = fileServers .firstOrNull { it == defaultServer } @@ -272,8 +284,8 @@ fun ImageVideoDescription( .padding(vertical = 8.dp), checked = sensitiveContent, onCheckedChange = { sensitiveContent = it }, - title = R.string.add_sensitive_content_label, - description = R.string.add_sensitive_content_description, + title = Res.string.add_sensitive_content_label, + description = Res.string.add_sensitive_content_description, ) } @@ -353,8 +365,8 @@ fun ImageVideoDescription( if (!isVideoWithCompression) { SettingSwitchItem( - title = R.string.strip_metadata_label, - description = R.string.strip_metadata_description, + title = Res.string.strip_metadata_label, + description = Res.string.strip_metadata_description, modifier = Modifier .fillMaxWidth() @@ -417,8 +429,8 @@ fun ImageVideoDescription( if (uris.first().media.isVideo() == true && mediaQualitySlider != 3) { SettingSwitchItem( - title = R.string.video_codec_h265_label, - description = R.string.video_codec_h265_description, + title = Res.string.video_codec_h265_label, + description = Res.string.video_codec_h265_description, modifier = Modifier .fillMaxWidth() @@ -430,8 +442,8 @@ fun ImageVideoDescription( if (uris.hasGif()) { SettingSwitchItem( - title = R.string.convert_gif_to_mp4_label, - description = R.string.convert_gif_to_mp4_description, + title = Res.string.convert_gif_to_mp4_label, + description = Res.string.convert_gif_to_mp4_description, modifier = Modifier .fillMaxWidth() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/zappolls/ZapPollConsensusThreshold.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/zappolls/ZapPollConsensusThreshold.kt index 2fe2fa7d1c..811b362744 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/zappolls/ZapPollConsensusThreshold.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/zappolls/ZapPollConsensusThreshold.kt @@ -40,9 +40,9 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.poll_consensus_threshold +import com.vitorpamplona.amethyst.commons.resources.poll_consensus_threshold_percent import com.vitorpamplona.amethyst.ui.screen.loggedIn.home.ShortNotePostViewModel import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.placeholderText @@ -96,7 +96,7 @@ fun ZapPollConsensusThreshold(pollViewModel: ShortNotePostViewModel) { }, placeholder = { Text( - text = stringRes(R.string.poll_consensus_threshold_percent), + text = stringRes(Res.string.poll_consensus_threshold_percent), color = MaterialTheme.colorScheme.placeholderText, ) }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/zappolls/ZapPollDeadlinePicker.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/zappolls/ZapPollDeadlinePicker.kt index 56ff07c4ff..afae6f8b5d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/zappolls/ZapPollDeadlinePicker.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/zappolls/ZapPollDeadlinePicker.kt @@ -110,7 +110,7 @@ fun ZapPollDeadlinePicker(model: ShortNotePostViewModel) { Text(stringRes(Res.string.poll_closing_date_time) + " " + model.zapPollClosedAt, style = MaterialTheme.typography.bodyLarge) } else { Text( - text = stringRes(Res.string.poll_closing_in, timeAheadNoDot(model.zapPollClosedAt, context)), + text = stringRes(Res.string.poll_closing_in, timeAheadNoDot(model.zapPollClosedAt)), style = MaterialTheme.typography.bodyLarge, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/zappolls/ZapPollOption.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/zappolls/ZapPollOption.kt index 751b857b88..9301bb17ef 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/zappolls/ZapPollOption.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/zappolls/ZapPollOption.kt @@ -31,12 +31,12 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.tooling.preview.Preview -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.clear import com.vitorpamplona.amethyst.commons.resources.poll_option_description +import com.vitorpamplona.amethyst.commons.resources.poll_option_index import com.vitorpamplona.amethyst.ui.screen.loggedIn.home.ShortNotePostViewModel import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.placeholderText @@ -68,7 +68,7 @@ fun ZapPollOption( }, label = { Text( - text = stringRes(R.string.poll_option_index).format(optionIndex + 1), + text = stringRes(Res.string.poll_option_index).format(optionIndex + 1), color = MaterialTheme.colorScheme.placeholderText, ) }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/zappolls/ZapPollVoteValueRange.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/zappolls/ZapPollVoteValueRange.kt index 05b8e7b146..891c653202 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/zappolls/ZapPollVoteValueRange.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/zappolls/ZapPollVoteValueRange.kt @@ -38,11 +38,11 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.poll_zap_value_max import com.vitorpamplona.amethyst.commons.resources.poll_zap_value_min import com.vitorpamplona.amethyst.commons.resources.poll_zap_value_min_max_explainer +import com.vitorpamplona.amethyst.commons.resources.sats import com.vitorpamplona.amethyst.ui.screen.loggedIn.home.ShortNotePostViewModel import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.DoubleHorzSpacer @@ -79,7 +79,7 @@ fun ZapPollVoteValueRange(pollViewModel: ShortNotePostViewModel) { }, placeholder = { Text( - text = stringRes(R.string.sats), + text = stringRes(Res.string.sats), color = MaterialTheme.colorScheme.placeholderText, ) }, @@ -101,7 +101,7 @@ fun ZapPollVoteValueRange(pollViewModel: ShortNotePostViewModel) { }, placeholder = { Text( - text = stringRes(R.string.sats), + text = stringRes(Res.string.sats), color = MaterialTheme.colorScheme.placeholderText, ) }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/zapsplits/ForwardZapToButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/zapsplits/ForwardZapToButton.kt index 39ba9724ff..ac20db1f94 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/zapsplits/ForwardZapToButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/creators/zapsplits/ForwardZapToButton.kt @@ -34,12 +34,12 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.ZapSplit import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.zap_split_title +import com.vitorpamplona.amethyst.commons.resources.zaps import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.BitcoinOrange import com.vitorpamplona.amethyst.ui.theme.Size20Modifier @@ -84,7 +84,7 @@ fun ZapSplitPreview() { ) { Icon( symbol = MaterialSymbols.Bolt, - contentDescription = stringRes(id = R.string.zaps), + contentDescription = stringRes(id = Res.string.zaps), modifier = Modifier .size(20.dp) @@ -93,7 +93,7 @@ fun ZapSplitPreview() { ) Icon( symbol = MaterialSymbols.AutoMirrored.ArrowForwardIos, - contentDescription = stringRes(id = R.string.zaps), + contentDescription = stringRes(id = Res.string.zaps), modifier = Modifier .size(13.dp) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/AddHashtagLabelDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/AddHashtagLabelDialog.kt index fdfbfa1add..a9a496192f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/AddHashtagLabelDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/AddHashtagLabelDialog.kt @@ -35,13 +35,13 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardCapitalization -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.add_hashtag_label_confirm import com.vitorpamplona.amethyst.commons.resources.add_hashtag_label_explainer import com.vitorpamplona.amethyst.commons.resources.add_hashtag_label_field import com.vitorpamplona.amethyst.commons.resources.add_hashtag_label_title +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.stringRes @@ -101,7 +101,7 @@ fun AddHashtagLabelDialog( }, dismissButton = { TextButton(onClick = onDismiss) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/AddRemoveButtons.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/AddRemoveButtons.kt index dfdc01b1cf..4b308693e6 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/AddRemoveButtons.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/AddRemoveButtons.kt @@ -30,10 +30,13 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.add +import com.vitorpamplona.amethyst.commons.resources.remove import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.ButtonBorder import com.vitorpamplona.amethyst.ui.theme.ThemeComparisonColumn +import org.jetbrains.compose.resources.StringResource @Composable @Preview @@ -56,7 +59,7 @@ fun AddButtonPreview() { @Composable fun AddButton( modifier: Modifier = Modifier, - text: Int = R.string.add, + text: StringResource = Res.string.add, isActive: Boolean = true, onClick: () -> Unit, ) { @@ -74,7 +77,7 @@ fun AddButton( @Composable fun RemoveButton( modifier: Modifier = Modifier, - text: Int = R.string.remove, + text: StringResource = Res.string.remove, isActive: Boolean = true, onClick: () -> Unit, ) { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/DefaultImageHeader.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/DefaultImageHeader.kt index 6b6dda6959..efc44f2ed0 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/DefaultImageHeader.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/DefaultImageHeader.kt @@ -32,6 +32,7 @@ import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.preview_card_image_for import com.vitorpamplona.amethyst.commons.resources.profile_banner import com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.observeUserBanner import com.vitorpamplona.amethyst.ui.components.MyAsyncImage @@ -121,7 +122,7 @@ fun BannerImage( if (!banner.isNullOrBlank()) { MyAsyncImage( imageUrl = banner, - contentDescription = stringRes(R.string.preview_card_image_for, banner), + contentDescription = stringRes(Res.string.preview_card_image_for, banner), contentScale = ContentScale.Crop, mainImageModifier = Modifier, loadedImageModifier = modifier, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/DisplayOts.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/DisplayOts.kt index a93024fd4d..c95b43cda0 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/DisplayOts.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/DisplayOts.kt @@ -25,10 +25,12 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.ui.platform.LocalContext -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.ots_info_description +import com.vitorpamplona.amethyst.commons.resources.ots_info_pending_description +import com.vitorpamplona.amethyst.commons.resources.ots_info_title import com.vitorpamplona.amethyst.commons.resources.timestamp_pending_short import com.vitorpamplona.amethyst.commons.ui.note.HeaderPill import com.vitorpamplona.amethyst.ui.note.LoadOts @@ -65,11 +67,11 @@ fun DisplayOts( HeaderPill( symbol = MaterialSymbols.OpenTimestamps, text = timeStr, - contentDescription = stringRes(R.string.ots_info_title), + contentDescription = stringRes(Res.string.ots_info_title), onClick = { accountViewModel.toastManager.toast( - R.string.ots_info_title, - R.string.ots_info_description, + Res.string.ots_info_title, + Res.string.ots_info_description, SimpleDateFormat.getDateTimeInstance().format(Date(unixtimestamp * 1000)), ) }, @@ -85,8 +87,8 @@ fun DisplayOts( contentDescription = stringRes(Res.string.timestamp_pending_short), onClick = { accountViewModel.toastManager.toast( - R.string.ots_info_title, - R.string.ots_info_pending_description, + Res.string.ots_info_title, + Res.string.ots_info_pending_description, ) }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/DisplayPoW.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/DisplayPoW.kt index 681975f006..7d728111db 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/DisplayPoW.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/DisplayPoW.kt @@ -22,8 +22,10 @@ package com.vitorpamplona.amethyst.ui.note.elements import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.pow_info_description +import com.vitorpamplona.amethyst.commons.resources.pow_settings_title import com.vitorpamplona.amethyst.commons.ui.note.HeaderPill import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.mockAccountViewModel @@ -51,11 +53,11 @@ fun DisplayPoW( HeaderPill( symbol = MaterialSymbols.Manufacturing, text = pow.toString(), - contentDescription = stringRes(R.string.pow_settings_title), + contentDescription = stringRes(Res.string.pow_settings_title), onClick = { accountViewModel.toastManager.toast( - R.string.pow_settings_title, - R.string.pow_info_description, + Res.string.pow_settings_title, + Res.string.pow_info_description, pow.toString(), ) }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/NoteActionSections.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/NoteActionSections.kt index 98b1ed48d2..715f6a90a6 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/NoteActionSections.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/NoteActionSections.kt @@ -26,7 +26,6 @@ import androidx.compose.runtime.Immutable import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalClipboard -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.AddressableNote @@ -36,25 +35,40 @@ import com.vitorpamplona.amethyst.commons.resources.add_hashtag_label import com.vitorpamplona.amethyst.commons.resources.add_to_emoji_list import com.vitorpamplona.amethyst.commons.resources.add_to_music_playlist import com.vitorpamplona.amethyst.commons.resources.add_to_private_bookmarks +import com.vitorpamplona.amethyst.commons.resources.add_to_public_bookmarks import com.vitorpamplona.amethyst.commons.resources.article import com.vitorpamplona.amethyst.commons.resources.block_report import com.vitorpamplona.amethyst.commons.resources.broadcast import com.vitorpamplona.amethyst.commons.resources.concord_ban_user import com.vitorpamplona.amethyst.commons.resources.concord_ban_user_body import com.vitorpamplona.amethyst.commons.resources.concord_ban_user_title +import com.vitorpamplona.amethyst.commons.resources.concord_make_admin +import com.vitorpamplona.amethyst.commons.resources.concord_remove_admin import com.vitorpamplona.amethyst.commons.resources.copy_note_id import com.vitorpamplona.amethyst.commons.resources.copy_raw_json import com.vitorpamplona.amethyst.commons.resources.copy_text import com.vitorpamplona.amethyst.commons.resources.copy_user_pubkey import com.vitorpamplona.amethyst.commons.resources.edit_article import com.vitorpamplona.amethyst.commons.resources.edit_draft +import com.vitorpamplona.amethyst.commons.resources.edit_post +import com.vitorpamplona.amethyst.commons.resources.follow import com.vitorpamplona.amethyst.commons.resources.follow_set_add_author_from_note_action import com.vitorpamplona.amethyst.commons.resources.highlight_action import com.vitorpamplona.amethyst.commons.resources.manage_bookmark_label +import com.vitorpamplona.amethyst.commons.resources.pin_to_profile +import com.vitorpamplona.amethyst.commons.resources.post +import com.vitorpamplona.amethyst.commons.resources.propose_an_edit +import com.vitorpamplona.amethyst.commons.resources.quick_action_mute_thread +import com.vitorpamplona.amethyst.commons.resources.quick_action_share +import com.vitorpamplona.amethyst.commons.resources.quick_action_unmute_thread import com.vitorpamplona.amethyst.commons.resources.remove_from_emoji_list import com.vitorpamplona.amethyst.commons.resources.remove_from_private_bookmarks +import com.vitorpamplona.amethyst.commons.resources.remove_from_public_bookmarks +import com.vitorpamplona.amethyst.commons.resources.request_deletion import com.vitorpamplona.amethyst.commons.resources.timestamp_it import com.vitorpamplona.amethyst.commons.resources.timestamp_pending +import com.vitorpamplona.amethyst.commons.resources.unfollow +import com.vitorpamplona.amethyst.commons.resources.unpin_from_profile import com.vitorpamplona.amethyst.ui.components.util.setText import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route @@ -132,14 +146,14 @@ fun noteActionSections( if (!state.isLoggedUser) { if (!state.isFollowingAuthor) { add( - NoteAction(MaterialSymbols.PersonAdd, stringRes(R.string.follow)) { + NoteAction(MaterialSymbols.PersonAdd, stringRes(Res.string.follow)) { note.author?.let { accountViewModel.follow(it) } handlers.onDismiss() }, ) } else { add( - NoteAction(MaterialSymbols.PersonRemove, stringRes(R.string.unfollow)) { + NoteAction(MaterialSymbols.PersonRemove, stringRes(Res.string.unfollow)) { note.author?.let { accountViewModel.unfollow(it) } handlers.onDismiss() }, @@ -224,7 +238,7 @@ fun noteActionSections( ) } if (!isPrivateRumor) { - add(NoteAction(MaterialSymbols.Share, stringRes(R.string.quick_action_share), onClick = handlers.onShare)) + add(NoteAction(MaterialSymbols.Share, stringRes(Res.string.quick_action_share), onClick = handlers.onShare)) } } @@ -238,7 +252,7 @@ fun noteActionSections( add( NoteAction( MaterialSymbols.Edit, - stringRes(if (state.isLoggedUser) R.string.edit_post else R.string.propose_an_edit), + stringRes(if (state.isLoggedUser) Res.string.edit_post else Res.string.propose_an_edit), onClick = handlers.onEditPost, ), ) @@ -280,7 +294,7 @@ fun noteActionSections( add( NoteAction( MaterialSymbols.PushPin, - stringRes(if (state.isPinnedNote) R.string.unpin_from_profile else R.string.pin_to_profile), + stringRes(if (state.isPinnedNote) Res.string.unpin_from_profile else Res.string.pin_to_profile), ) { if (state.isPinnedNote) { accountViewModel.removePin(note) @@ -329,7 +343,7 @@ fun noteActionSections( } else -> { - val noteBookmarkType = if (note.event is LongTextNoteEvent) stringRes(Res.string.article) else stringRes(R.string.post) + val noteBookmarkType = if (note.event is LongTextNoteEvent) stringRes(Res.string.article) else stringRes(Res.string.post) add( NoteAction(MaterialSymbols.BookmarkAdd, stringRes(Res.string.manage_bookmark_label, noteBookmarkType)) { if (note.event is LongTextNoteEvent) { @@ -357,14 +371,14 @@ fun noteActionSections( } if (state.isPublicBookmarkNote) { add( - NoteAction(MaterialSymbols.BookmarkRemove, stringRes(R.string.remove_from_public_bookmarks)) { + NoteAction(MaterialSymbols.BookmarkRemove, stringRes(Res.string.remove_from_public_bookmarks)) { accountViewModel.removePublicBookmark(note) handlers.onDismiss() }, ) } else { add( - NoteAction(MaterialSymbols.Bookmark, stringRes(R.string.add_to_public_bookmarks)) { + NoteAction(MaterialSymbols.Bookmark, stringRes(Res.string.add_to_public_bookmarks)) { accountViewModel.addPublicBookmark(note) handlers.onDismiss() }, @@ -386,7 +400,7 @@ fun noteActionSections( add( NoteAction( MaterialSymbols.AutoMirrored.VolumeOff, - stringRes(if (isThreadMuted) R.string.quick_action_unmute_thread else R.string.quick_action_mute_thread), + stringRes(if (isThreadMuted) Res.string.quick_action_unmute_thread else Res.string.quick_action_mute_thread), ) { if (isThreadMuted) { accountViewModel.unmuteThread(note) @@ -402,7 +416,7 @@ fun noteActionSections( // rumors through the gift-wrapped deletion); reporting yourself never // makes sense, so Report is others-only. if (state.isLoggedUser) { - add(NoteAction(MaterialSymbols.Delete, stringRes(R.string.request_deletion), isDestructive = true, onClick = handlers.onDeleteRequest)) + add(NoteAction(MaterialSymbols.Delete, stringRes(Res.string.request_deletion), isDestructive = true, onClick = handlers.onDeleteRequest)) } else { add(NoteAction(MaterialSymbols.Report, stringRes(Res.string.block_report), isDestructive = true, onClick = handlers.onReport)) } @@ -417,7 +431,7 @@ fun noteActionSections( add( NoteAction( MaterialSymbols.Shield, - stringRes(if (isAdmin) R.string.concord_remove_admin else R.string.concord_make_admin), + stringRes(if (isAdmin) Res.string.concord_remove_admin else Res.string.concord_make_admin), ) { accountViewModel.toggleConcordAdmin(note) handlers.onDismiss() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/ShareActions.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/ShareActions.kt index f13ff82563..3fe3446a3e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/ShareActions.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/ShareActions.kt @@ -23,11 +23,14 @@ package com.vitorpamplona.amethyst.ui.note.elements import android.content.Intent import androidx.compose.runtime.Composable import androidx.compose.ui.platform.LocalContext -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.AddressableNote import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.quick_action_share +import com.vitorpamplona.amethyst.commons.resources.quick_action_share_browser_link +import com.vitorpamplona.amethyst.commons.resources.share_as_image +import com.vitorpamplona.amethyst.commons.resources.share_as_image_url import com.vitorpamplona.amethyst.commons.resources.share_as_qr import com.vitorpamplona.amethyst.ui.components.M3ActionRow import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -59,23 +62,23 @@ fun ShareActionRows( // by event id. The two image routes resolve the note from this same id. val shareId = if (note is AddressableNote) note.address.toValue() else note.idHex - M3ActionRow(icon = MaterialSymbols.Share, text = stringRes(R.string.quick_action_share)) { + M3ActionRow(icon = MaterialSymbols.Share, text = stringRes(Res.string.quick_action_share)) { val sendIntent = Intent().apply { action = Intent.ACTION_SEND type = "text/plain" putExtra(Intent.EXTRA_TEXT, externalLinkForNote(note)) - putExtra(Intent.EXTRA_TITLE, stringRes(actContext, R.string.quick_action_share_browser_link)) + putExtra(Intent.EXTRA_TITLE, stringRes(Res.string.quick_action_share_browser_link)) } - val shareIntent = Intent.createChooser(sendIntent, stringRes(actContext, R.string.quick_action_share)) + val shareIntent = Intent.createChooser(sendIntent, stringRes(Res.string.quick_action_share)) actContext.startActivity(shareIntent) onDismiss() } - M3ActionRow(icon = MaterialSymbols.Image, text = stringRes(R.string.share_as_image)) { + M3ActionRow(icon = MaterialSymbols.Image, text = stringRes(Res.string.share_as_image)) { nav.nav(Route.ShareNoteAsImageFile(shareId)) onDismiss() } - M3ActionRow(icon = MaterialSymbols.Image, text = stringRes(R.string.share_as_image_url)) { + M3ActionRow(icon = MaterialSymbols.Image, text = stringRes(Res.string.share_as_image_url)) { nav.nav(Route.ShareNoteAsImage(shareId)) onDismiss() } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/ShareOptionsBottomSheet.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/ShareOptionsBottomSheet.kt index fe11d45ff3..c99a299d22 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/ShareOptionsBottomSheet.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/ShareOptionsBottomSheet.kt @@ -32,8 +32,9 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.quick_action_share import com.vitorpamplona.amethyst.ui.components.M3ActionSection import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.stringRes @@ -60,7 +61,7 @@ fun ShareOptionsBottomSheet( .padding(bottom = 12.dp), ) { Text( - text = stringRes(R.string.quick_action_share), + text = stringRes(Res.string.quick_action_share), style = MaterialTheme.typography.titleSmall, color = MaterialTheme.colorScheme.onSurfaceVariant, textAlign = TextAlign.Center, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/TimeAgo.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/TimeAgo.kt index b776e41e57..75de18ed23 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/TimeAgo.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/elements/TimeAgo.kt @@ -36,8 +36,9 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.TextUnit -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.now import com.vitorpamplona.amethyst.ui.note.timeAbsolute import com.vitorpamplona.amethyst.ui.note.timeAbsoluteNoDot import com.vitorpamplona.amethyst.ui.note.timeAgo @@ -95,7 +96,7 @@ fun ToggleableTimeAgoText( ) { val context = LocalContext.current val nowState = LocalNowSeconds.current - val nowStr = stringRes(id = R.string.now) + val nowStr = stringRes(id = Res.string.now) val interactionSource = remember { MutableInteractionSource() } var showAbsolute by remember(timestamp) { mutableStateOf(false) } @@ -113,8 +114,8 @@ fun ToggleableTimeAgoText( // toggled to absolute doesn't recompose on every 30-second tick. nowState.value when (style) { - TimeAgoStyle.Dotted -> timeAgo(timestamp, context) - TimeAgoStyle.DottedTight -> timeAgo(timestamp, context).trimStart() + TimeAgoStyle.Dotted -> timeAgo(timestamp) + TimeAgoStyle.DottedTight -> timeAgo(timestamp).trimStart() TimeAgoStyle.Short -> timeAgoShort(timestamp, nowStr) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/nip22Comments/CommentPostViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/nip22Comments/CommentPostViewModel.kt index 1a52f53068..348a13f798 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/nip22Comments/CommentPostViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/nip22Comments/CommentPostViewModel.kt @@ -32,14 +32,18 @@ import androidx.compose.runtime.setValue import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.AddressableNote import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.nip30CustomEmojis.EmojiPackState import com.vitorpamplona.amethyst.commons.model.nip30CustomEmojis.EmojiSuggestionState +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media_no_details +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_sign_events +import com.vitorpamplona.amethyst.commons.resources.read_only_user import com.vitorpamplona.amethyst.commons.service.pow.PoWReplay +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.commons.ui.text.appendSignature import com.vitorpamplona.amethyst.commons.ui.text.currentWord import com.vitorpamplona.amethyst.commons.ui.text.insertUrlAtCursor @@ -771,13 +775,17 @@ open class CommentPostViewModel : onError: (title: String, message: String) -> Unit, context: Context, stripMetadata: Boolean = true, - ) = try { - uploadUnsafe(alt, contentWarningReason, mediaQuality, server, onError, context, stripMetadata) - } catch (_: SignerExceptions.ReadOnlyException) { - onError( - stringRes(context, R.string.read_only_user), - stringRes(context, R.string.login_with_a_private_key_to_be_able_to_sign_events), - ) + ) { + try { + uploadUnsafe(alt, contentWarningReason, mediaQuality, server, onError, context, stripMetadata) + } catch (_: SignerExceptions.ReadOnlyException) { + viewModelScope.launch { + onError( + loadStringRes(Res.string.read_only_user), + loadStringRes(Res.string.login_with_a_private_key_to_be_able_to_sign_events), + ) + } + } } fun uploadUnsafe( @@ -862,7 +870,7 @@ open class CommentPostViewModel : ) }.distinct() - onError(stringRes(context, R.string.failed_to_upload_media_no_details), errorMessages.joinToString(".\n")) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), errorMessages.joinToString(".\n")) } mediaUploadTracker.finishUpload() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/nip22Comments/CommunityRulesViolationBanner.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/nip22Comments/CommunityRulesViolationBanner.kt index ac4de3f6c8..b0afdcfcfb 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/nip22Comments/CommunityRulesViolationBanner.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/nip22Comments/CommunityRulesViolationBanner.kt @@ -35,13 +35,15 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.community_rules_violation_author_denied import com.vitorpamplona.amethyst.commons.resources.community_rules_violation_icon import com.vitorpamplona.amethyst.commons.resources.community_rules_violation_kind_not_allowed +import com.vitorpamplona.amethyst.commons.resources.community_rules_violation_kind_size_exceeded +import com.vitorpamplona.amethyst.commons.resources.community_rules_violation_max_size_exceeded +import com.vitorpamplona.amethyst.commons.resources.community_rules_violation_quota_exceeded import com.vitorpamplona.amethyst.commons.resources.community_rules_violation_stale_rules import com.vitorpamplona.amethyst.commons.resources.community_rules_violation_wot_gate_failed import com.vitorpamplona.amethyst.ui.stringRes @@ -93,7 +95,7 @@ private fun describeViolation(violation: CommunityRulesValidator.Violation): Str is CommunityRulesValidator.Violation.KindSizeExceeded -> { stringRes( - R.string.community_rules_violation_kind_size_exceeded, + Res.string.community_rules_violation_kind_size_exceeded, violation.sizeBytes, violation.maxBytes, ) @@ -101,7 +103,7 @@ private fun describeViolation(violation: CommunityRulesValidator.Violation): Str is CommunityRulesValidator.Violation.MaxSizeExceeded -> { stringRes( - R.string.community_rules_violation_max_size_exceeded, + Res.string.community_rules_violation_max_size_exceeded, violation.sizeBytes, violation.maxBytes, ) @@ -109,7 +111,7 @@ private fun describeViolation(violation: CommunityRulesValidator.Violation): Str is CommunityRulesValidator.Violation.QuotaExceeded -> { stringRes( - R.string.community_rules_violation_quota_exceeded, + Res.string.community_rules_violation_quota_exceeded, violation.postsToday, violation.maxPerDay, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/nip22Comments/DisplayGeoHashExternalId.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/nip22Comments/DisplayGeoHashExternalId.kt index ff51358360..7abf44016a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/nip22Comments/DisplayGeoHashExternalId.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/nip22Comments/DisplayGeoHashExternalId.kt @@ -36,9 +36,10 @@ import androidx.compose.ui.text.buildAnnotatedString import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.withLink import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.geohash_exclusive import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route import com.vitorpamplona.amethyst.ui.note.creators.location.LoadCityName @@ -68,7 +69,7 @@ fun DisplayGeohashExternalId( LoadCityName(geohash) { cityName -> Icon( symbol = MaterialSymbols.LocationOn, - contentDescription = stringRes(id = R.string.geohash_exclusive), + contentDescription = stringRes(id = Res.string.geohash_exclusive), modifier = Modifier.size(20.dp), tint = MaterialTheme.colorScheme.primary, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/nip22Comments/GenericCommentPostScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/nip22Comments/GenericCommentPostScreen.kt index 2aa95b4c21..86ed5e4751 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/nip22Comments/GenericCommentPostScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/nip22Comments/GenericCommentPostScreen.kt @@ -62,7 +62,6 @@ import androidx.core.content.IntentCompat import androidx.core.net.toUri import androidx.core.util.Consumer import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.AddressableNote @@ -74,6 +73,7 @@ import com.vitorpamplona.amethyst.commons.resources.geo_post_posting_to import com.vitorpamplona.amethyst.commons.resources.lightning_create_and_add_invoice import com.vitorpamplona.amethyst.commons.resources.lightning_invoice import com.vitorpamplona.amethyst.commons.resources.post_anonymously +import com.vitorpamplona.amethyst.commons.resources.what_s_on_your_mind import com.vitorpamplona.amethyst.commons.resources.zapraiser import com.vitorpamplona.amethyst.commons.ui.text.onUiThread import com.vitorpamplona.amethyst.ui.actions.StrippingFailureDialog @@ -405,7 +405,7 @@ private fun GenericCommentPostBody( } } MessageField( - R.string.what_s_on_your_mind, + Res.string.what_s_on_your_mind, postViewModel, onContentReceived = { uri, mimeType -> postViewModel.selectImage( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/share/ShareNoteAsImageScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/share/ShareNoteAsImageScreen.kt index a52f6bb05a..b0a93968a1 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/share/ShareNoteAsImageScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/share/ShareNoteAsImageScreen.kt @@ -81,7 +81,13 @@ import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media_no_details +import com.vitorpamplona.amethyst.commons.resources.file_server +import com.vitorpamplona.amethyst.commons.resources.quick_action_share +import com.vitorpamplona.amethyst.commons.resources.server_did_not_provide_a_url_after_uploading +import com.vitorpamplona.amethyst.commons.resources.share_as_image import com.vitorpamplona.amethyst.commons.resources.share_as_image_generating +import com.vitorpamplona.amethyst.commons.resources.share_as_image_url import com.vitorpamplona.amethyst.commons.resources.share_as_image_watermark import com.vitorpamplona.amethyst.service.uploads.CompressorQuality import com.vitorpamplona.amethyst.service.uploads.UploadOrchestrator @@ -151,13 +157,15 @@ fun ShareNoteAsImageFileScreen( nav: INav, ) { val context = LocalContext.current + val shareImageTitle = stringRes(Res.string.share_as_image) + val shareUrlTitle = stringRes(Res.string.share_as_image_url) val graphicsLayer = rememberGraphicsLayer() // Guards against capturing/sharing more than once across recompositions. var shared by remember { mutableStateOf(false) } Scaffold( - topBar = { TopBarWithBackButton(stringRes(R.string.share_as_image), nav) }, + topBar = { TopBarWithBackButton(stringRes(Res.string.share_as_image), nav) }, ) { pad -> Box( modifier = @@ -199,7 +207,7 @@ fun ShareNoteAsImageFileScreen( withContext(Dispatchers.IO) { saveBitmapToCache(context, bitmap.asAndroidBitmap()) } - startShareImageFileIntent(context, uri) + startShareImageFileIntent(context, uri, shareImageTitle) nav.popBack() } } @@ -271,19 +279,19 @@ fun ShareNoteAsImageScreen( val result = finalState.result if (result is UploadOrchestrator.OrchestratorResult.ServerResult) { account.settings.changeDefaultFileServer(server) - startShareUrlIntent(context, result.url) + startShareUrlIntent(context, result.url, shareUrlTitle) nav.popBack() } else { accountViewModel.toastManager.toast( - R.string.failed_to_upload_media_no_details, - R.string.server_did_not_provide_a_url_after_uploading, + Res.string.failed_to_upload_media_no_details, + Res.string.server_did_not_provide_a_url_after_uploading, ) } } is UploadingState.Error -> { accountViewModel.toastManager.toast( - R.string.failed_to_upload_media_no_details, + Res.string.failed_to_upload_media_no_details, finalState.errorResource, *finalState.params, ) @@ -293,7 +301,7 @@ fun ShareNoteAsImageScreen( } Scaffold( - topBar = { TopBarWithBackButton(stringRes(R.string.share_as_image_url), nav) }, + topBar = { TopBarWithBackButton(stringRes(Res.string.share_as_image_url), nav) }, bottomBar = { ShareBottomBar( serverName = selectedServer.name, @@ -353,7 +361,7 @@ fun ShareNoteAsImageScreen( if (captured != null) { Image( bitmap = captured, - contentDescription = stringRes(R.string.share_as_image), + contentDescription = stringRes(Res.string.share_as_image), contentScale = ContentScale.FillWidth, modifier = Modifier @@ -424,7 +432,7 @@ private fun ShareBottomBar( verticalArrangement = Arrangement.spacedBy(12.dp), ) { TextSpinner( - label = stringRes(R.string.file_server), + label = stringRes(Res.string.file_server), placeholder = serverName, options = serverOptions, onSelect = onSelectServer, @@ -442,7 +450,7 @@ private fun ShareBottomBar( modifier = Size18Modifier, ) Spacer(Modifier.width(8.dp)) - Text(stringRes(R.string.quick_action_share)) + Text(stringRes(Res.string.quick_action_share)) } } } @@ -529,6 +537,7 @@ private fun saveBitmapToCache( private fun startShareUrlIntent( context: Context, url: String, + chooserTitle: String, ) { val sendIntent = Intent().apply { @@ -536,13 +545,14 @@ private fun startShareUrlIntent( type = "text/plain" putExtra(Intent.EXTRA_TEXT, url) } - val shareIntent = Intent.createChooser(sendIntent, stringRes(context, R.string.share_as_image_url)) + val shareIntent = Intent.createChooser(sendIntent, chooserTitle) context.startActivity(shareIntent) } private fun startShareImageFileIntent( context: Context, uri: Uri, + chooserTitle: String, ) { val sendIntent = Intent().apply { @@ -554,6 +564,6 @@ private fun startShareImageFileIntent( clipData = ClipData.newUri(context.contentResolver, "Image", uri) addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) } - val shareIntent = Intent.createChooser(sendIntent, stringRes(context, R.string.share_as_image)) + val shareIntent = Intent.createChooser(sendIntent, chooserTitle) context.startActivity(shareIntent) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/share/SharedNoteCard.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/share/SharedNoteCard.kt index 8906c5f07d..243fcfebab 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/share/SharedNoteCard.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/share/SharedNoteCard.kt @@ -42,13 +42,13 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.article import com.vitorpamplona.amethyst.commons.resources.content_warning_with_reason +import com.vitorpamplona.amethyst.commons.resources.kind_video import com.vitorpamplona.amethyst.commons.resources.share_as_qr_kind_picture import com.vitorpamplona.amethyst.commons.resources.share_as_qr_thumbnail_hidden_sensitive import com.vitorpamplona.amethyst.commons.richtext.MediaUrlImage @@ -277,7 +277,7 @@ private fun secondaryLineFor( return when { event is PictureEvent -> stringRes(Res.string.share_as_qr_kind_picture) - event is VideoEvent -> stringRes(R.string.kind_video) + event is VideoEvent -> stringRes(Res.string.kind_video) event is LongTextNoteEvent -> stringRes(Res.string.article) hasContentImage -> stringRes(Res.string.share_as_qr_kind_picture) else -> "" diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Attestation.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Attestation.kt index 921f49f624..582460c537 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Attestation.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Attestation.kt @@ -49,7 +49,6 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols @@ -58,13 +57,17 @@ import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.toImmutableListOfLists import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.attestation import com.vitorpamplona.amethyst.commons.resources.attestation_invalid +import com.vitorpamplona.amethyst.commons.resources.attestation_request import com.vitorpamplona.amethyst.commons.resources.attestation_requests_attestation_to import com.vitorpamplona.amethyst.commons.resources.attestation_status_revoked import com.vitorpamplona.amethyst.commons.resources.attestation_status_verifying import com.vitorpamplona.amethyst.commons.resources.attestation_valid import com.vitorpamplona.amethyst.commons.resources.attestation_valid_from import com.vitorpamplona.amethyst.commons.resources.attestation_valid_to +import com.vitorpamplona.amethyst.commons.resources.attestor_proficiency +import com.vitorpamplona.amethyst.commons.resources.attestor_recommendation import com.vitorpamplona.amethyst.commons.resources.attestor_recommendation_for_kinds import com.vitorpamplona.amethyst.ui.components.LoadNote import com.vitorpamplona.amethyst.ui.components.TranslatableRichTextViewer @@ -183,7 +186,7 @@ fun RenderAttestation( ) { Icon( symbol = statusIcon, - contentDescription = stringRes(R.string.attestation), + contentDescription = stringRes(Res.string.attestation), tint = statusColor, modifier = Modifier.size(24.dp), ) @@ -310,12 +313,12 @@ fun RenderAttestationRequest( ) { Icon( symbol = MaterialSymbols.AutoMirrored.Send, - contentDescription = stringRes(R.string.attestation_request), + contentDescription = stringRes(Res.string.attestation_request), tint = MaterialTheme.colorScheme.primary, modifier = Modifier.size(24.dp), ) Text( - text = stringRes(R.string.attestation_request), + text = stringRes(Res.string.attestation_request), style = MaterialTheme.typography.titleMedium, fontWeight = FontWeight.SemiBold, color = MaterialTheme.colorScheme.primary, @@ -443,12 +446,12 @@ fun RenderAttestorRecommendation( ) { Icon( symbol = MaterialSymbols.Recommend, - contentDescription = stringRes(R.string.attestor_recommendation), + contentDescription = stringRes(Res.string.attestor_recommendation), tint = MaterialTheme.colorScheme.tertiary, modifier = Modifier.size(24.dp), ) Text( - text = stringRes(R.string.attestor_recommendation), + text = stringRes(Res.string.attestor_recommendation), style = MaterialTheme.typography.titleMedium, fontWeight = FontWeight.SemiBold, color = MaterialTheme.colorScheme.tertiary, @@ -535,12 +538,12 @@ fun RenderAttestorProficiency( ) { Icon( symbol = MaterialSymbols.Star, - contentDescription = stringRes(R.string.attestor_proficiency), + contentDescription = stringRes(Res.string.attestor_proficiency), tint = MaterialTheme.colorScheme.secondary, modifier = Modifier.size(24.dp), ) Text( - text = stringRes(R.string.attestor_proficiency), + text = stringRes(Res.string.attestor_proficiency), style = MaterialTheme.typography.titleMedium, fontWeight = FontWeight.SemiBold, color = MaterialTheme.colorScheme.secondary, @@ -608,5 +611,5 @@ private fun attestationStatusLabel(status: AttestationStatus?): String = status == AttestationStatus.VALID -> stringRes(Res.string.attestation_valid) status == AttestationStatus.REVOKED -> stringRes(Res.string.attestation_status_revoked) status == AttestationStatus.VERIFYING -> stringRes(Res.string.attestation_status_verifying) - else -> stringRes(R.string.attestation) + else -> stringRes(Res.string.attestation) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Badge.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Badge.kt index 1aff4c975c..21e92ef104 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Badge.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Badge.kt @@ -57,7 +57,6 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import coil3.compose.AsyncImage -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note @@ -65,6 +64,7 @@ import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.accept_badge +import com.vitorpamplona.amethyst.commons.resources.award_badge import com.vitorpamplona.amethyst.commons.resources.award_granted_to import com.vitorpamplona.amethyst.commons.resources.badge_and_n_others import com.vitorpamplona.amethyst.commons.resources.badge_award_image @@ -132,7 +132,7 @@ fun BadgeDisplay( modifier = Modifier.size(18.dp), ) Spacer(modifier = Modifier.size(6.dp)) - Text(stringRes(R.string.award_badge)) + Text(stringRes(Res.string.award_badge)) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/CalendarEvent.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/CalendarEvent.kt index f61ad417be..34b26e913e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/CalendarEvent.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/CalendarEvent.kt @@ -36,9 +36,10 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.cache.LocalCache +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.preview_card_image_for import com.vitorpamplona.amethyst.ui.components.MyAsyncImage import com.vitorpamplona.amethyst.ui.navigation.navs.EmptyNav import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -155,7 +156,7 @@ private fun CalendarHeader( image?.let { MyAsyncImage( imageUrl = it, - contentDescription = stringRes(R.string.preview_card_image_for, it), + contentDescription = stringRes(Res.string.preview_card_image_for, it), contentScale = ContentScale.FillWidth, mainImageModifier = Modifier.fillMaxWidth(), loadedImageModifier = Modifier, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/ChannelInvite.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/ChannelInvite.kt index d9adeefd45..009dfc9ea6 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/ChannelInvite.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/ChannelInvite.kt @@ -53,17 +53,18 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.lifecycle.compose.collectAsStateWithLifecycle import coil3.compose.AsyncImage -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.nip29RelayGroups.RelayGroupChannel import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.add_to_messages import com.vitorpamplona.amethyst.commons.resources.channel_invite_added_you import com.vitorpamplona.amethyst.commons.resources.channel_invite_ignore import com.vitorpamplona.amethyst.commons.resources.channel_invite_leave import com.vitorpamplona.amethyst.commons.resources.channel_invite_unknown_actor import com.vitorpamplona.amethyst.commons.resources.relay_group_badge_invite_only import com.vitorpamplona.amethyst.commons.resources.relay_group_badge_private +import com.vitorpamplona.amethyst.commons.resources.relay_group_member_count import com.vitorpamplona.amethyst.model.buzz.toMembershipNotice import com.vitorpamplona.amethyst.service.relayClient.reqCommand.channel.observeChannel import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -188,7 +189,7 @@ fun RenderChannelInvite( contentPadding = ButtonDefaults.TextButtonContentPadding, modifier = Modifier.height(34.dp), ) { - Text(stringRes(R.string.add_to_messages), fontSize = 13.sp) + Text(stringRes(Res.string.add_to_messages), fontSize = 13.sp) } } } @@ -337,7 +338,7 @@ private fun ChannelRosterLine( Text( text = if (memberCount > 0) { - pluralStringResource(R.plurals.relay_group_member_count, memberCount, memberCount) + " · " + host + pluralStringResource(Res.plurals.relay_group_member_count, memberCount, memberCount) + " · " + host } else { host }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/CommunityHeader.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/CommunityHeader.kt index a59c96fab8..0f08ff0bb0 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/CommunityHeader.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/CommunityHeader.kt @@ -55,7 +55,6 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.AddressableNote @@ -66,11 +65,16 @@ import com.vitorpamplona.amethyst.commons.model.toImmutableListOfLists import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.about_us import com.vitorpamplona.amethyst.commons.resources.community_no_descriptor +import com.vitorpamplona.amethyst.commons.resources.edit_community import com.vitorpamplona.amethyst.commons.resources.guidelines import com.vitorpamplona.amethyst.commons.resources.join +import com.vitorpamplona.amethyst.commons.resources.leave import com.vitorpamplona.amethyst.commons.resources.moderators import com.vitorpamplona.amethyst.commons.resources.owner +import com.vitorpamplona.amethyst.commons.resources.preview_card_image_for import com.vitorpamplona.amethyst.commons.resources.profile_image +import com.vitorpamplona.amethyst.commons.resources.quick_action_share +import com.vitorpamplona.amethyst.commons.resources.quick_action_share_browser_link import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.observeNoteEvent import com.vitorpamplona.amethyst.ui.components.MyAsyncImage import com.vitorpamplona.amethyst.ui.components.RichTextViewer @@ -168,7 +172,7 @@ fun LongCommunityHeader( imageUrl = it, contentDescription = stringRes( - R.string.preview_card_image_for, + Res.string.preview_card_image_for, it, ), contentScale = ContentScale.FillWidth, @@ -479,7 +483,7 @@ fun EditCommunityButton( Icon( symbol = MaterialSymbols.Edit, modifier = Size18Modifier, - contentDescription = stringRes(R.string.edit_community), + contentDescription = stringRes(Res.string.edit_community), ) } } @@ -524,7 +528,7 @@ fun LeaveCommunityButton( onClick = { accountViewModel.unfollow(note) }, contentPadding = ButtonPadding, ) { - Text(text = stringRes(R.string.leave)) + Text(text = stringRes(Res.string.leave)) } } @@ -548,19 +552,19 @@ fun ShareCommunityButton( ) putExtra( Intent.EXTRA_TITLE, - stringRes(actContext, R.string.quick_action_share_browser_link), + stringRes(Res.string.quick_action_share_browser_link), ) } val shareIntent = - Intent.createChooser(sendIntent, stringRes(actContext, R.string.quick_action_share)) + Intent.createChooser(sendIntent, stringRes(Res.string.quick_action_share)) actContext.startActivity(shareIntent) }, ) { Icon( symbol = MaterialSymbols.Share, modifier = Size18Modifier, - contentDescription = stringRes(R.string.quick_action_share), + contentDescription = stringRes(Res.string.quick_action_share), ) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/EntityRating.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/EntityRating.kt index 8030b95880..b933382c2f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/EntityRating.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/EntityRating.kt @@ -50,13 +50,15 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.AddressableNote import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.toImmutableListOfLists +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.preview_card_image_for +import com.vitorpamplona.amethyst.commons.resources.rating_stars_out_of_five import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.observeNote import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.observeNoteEvent import com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.observeUserInfo @@ -208,7 +210,7 @@ internal fun RatingStars( // The glyphs can only show whole and half stars, so anything else would drop precision // silently; the numeral carries it. Next to five filled stars a "5" is just noise. val showLabel = label.contains('.') - val a11y = stringRes(R.string.rating_stars_out_of_five, label) + val a11y = stringRes(Res.string.rating_stars_out_of_five, label) Row( modifier = Modifier.semantics(mergeDescendants = true) { contentDescription = a11y }, @@ -304,7 +306,7 @@ private fun RatedPublicationCard( Box(CoverModifier) { MyAsyncImage( imageUrl = cover, - contentDescription = stringRes(R.string.preview_card_image_for, cover), + contentDescription = stringRes(Res.string.preview_card_image_for, cover), contentScale = ContentScale.Crop, mainImageModifier = Modifier.fillMaxSize(), loadedImageModifier = CoverModifier, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/FollowList.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/FollowList.kt index 95ecf48a1d..903e48aa21 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/FollowList.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/FollowList.kt @@ -40,13 +40,13 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.sp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.EmptyTagList import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.toImmutableListOfLists import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.follow_list_item_label +import com.vitorpamplona.amethyst.commons.resources.preview_card_image_for import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.observeNoteEventAndMap import com.vitorpamplona.amethyst.ui.components.MyAsyncImage import com.vitorpamplona.amethyst.ui.components.TranslatableRichTextViewer @@ -126,7 +126,7 @@ fun RenderFollowSetThumbEmbed( card.media?.let { MyAsyncImage( imageUrl = it, - contentDescription = stringRes(R.string.preview_card_image_for, it), + contentDescription = stringRes(Res.string.preview_card_image_for, it), contentScale = ContentScale.Crop, mainImageModifier = Modifier, loadedImageModifier = FollowSetImageModifier, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Fundraiser.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Fundraiser.kt index 9bd6a36c55..ccd4c6de4a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Fundraiser.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Fundraiser.kt @@ -41,11 +41,13 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.copied_to_clipboard +import com.vitorpamplona.amethyst.commons.resources.copy_to_clipboard import com.vitorpamplona.amethyst.commons.resources.fundraiser_ends import com.vitorpamplona.amethyst.commons.resources.fundraiser_onchain_donation +import com.vitorpamplona.amethyst.commons.resources.preview_card_image_for import com.vitorpamplona.amethyst.ui.components.MyAsyncImage import com.vitorpamplona.amethyst.ui.components.util.setText import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -85,7 +87,7 @@ fun RenderFundraiser( Box { MyAsyncImage( imageUrl = it, - contentDescription = stringRes(R.string.preview_card_image_for, it), + contentDescription = stringRes(Res.string.preview_card_image_for, it), contentScale = ContentScale.FillWidth, mainImageModifier = Modifier.fillMaxWidth(), loadedImageModifier = Modifier, @@ -130,7 +132,7 @@ fun RenderFundraiser( val context = LocalContext.current Spacer(Modifier.height(6.dp)) Text( - text = stringRes(Res.string.fundraiser_ends, timeAheadNoDot(it, context)), + text = stringRes(Res.string.fundraiser_ends, timeAheadNoDot(it)), style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.placeholderText, ) @@ -179,8 +181,8 @@ private fun OnChainDonation( scope.launch { clipboard.setText(address) accountViewModel.toastManager.toast( - R.string.copy_to_clipboard, - R.string.copied_to_clipboard, + Res.string.copy_to_clipboard, + Res.string.copied_to_clipboard, ) } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Git.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Git.kt index afdbae26c3..9255ad948e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Git.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Git.kt @@ -51,7 +51,6 @@ import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols @@ -70,6 +69,11 @@ import com.vitorpamplona.amethyst.commons.resources.git_merge_base import com.vitorpamplona.amethyst.commons.resources.git_pr_revised import com.vitorpamplona.amethyst.commons.resources.git_pr_update_description import com.vitorpamplona.amethyst.commons.resources.git_repo_personal_fork +import com.vitorpamplona.amethyst.commons.resources.kind_git_issue +import com.vitorpamplona.amethyst.commons.resources.kind_git_patch +import com.vitorpamplona.amethyst.commons.resources.kind_git_pr +import com.vitorpamplona.amethyst.commons.resources.kind_git_pr_update +import com.vitorpamplona.amethyst.commons.resources.kind_git_repo import com.vitorpamplona.amethyst.commons.ui.note.GitDiffView import com.vitorpamplona.amethyst.commons.ui.note.StatusKind import com.vitorpamplona.amethyst.model.GitPullRequestUpdateIndex @@ -435,7 +439,7 @@ private fun RenderGitPatchEvent( horizontalArrangement = HeaderSpacing, ) { TypeChip( - text = stringRes(id = R.string.kind_git_patch), + text = stringRes(id = Res.string.kind_git_patch), background = MaterialTheme.colorScheme.tertiary.copy(alpha = 0.15f), contentColor = MaterialTheme.colorScheme.tertiary, ) @@ -529,7 +533,7 @@ private fun RenderGitIssueEvent( horizontalArrangement = HeaderSpacing, ) { TypeChip( - text = stringRes(id = R.string.kind_git_issue), + text = stringRes(id = Res.string.kind_git_issue), background = MaterialTheme.colorScheme.primary.copy(alpha = 0.15f), contentColor = MaterialTheme.colorScheme.primary, ) @@ -618,7 +622,7 @@ private fun RenderGitPullRequestEvent( horizontalArrangement = HeaderSpacing, ) { TypeChip( - text = stringRes(id = R.string.kind_git_pr), + text = stringRes(id = Res.string.kind_git_pr), background = MaterialTheme.colorScheme.secondary.copy(alpha = 0.15f), contentColor = MaterialTheme.colorScheme.secondary, symbol = MaterialSymbols.CallMerge, @@ -736,7 +740,7 @@ private fun RenderGitPullRequestUpdateEvent( horizontalArrangement = HeaderSpacing, ) { TypeChip( - text = stringRes(id = R.string.kind_git_pr_update), + text = stringRes(id = Res.string.kind_git_pr_update), background = MaterialTheme.colorScheme.surfaceVariant, contentColor = MaterialTheme.colorScheme.onSurfaceVariant, symbol = MaterialSymbols.Sync, @@ -830,7 +834,7 @@ private fun RenderGitRepositoryEvent( Column(modifier = Modifier.weight(1f, fill = true)) { Text( - text = stringRes(id = R.string.kind_git_repo), + text = stringRes(id = Res.string.kind_git_repo), style = MaterialTheme.typography.labelSmall, color = MaterialTheme.colorScheme.grayText, maxLines = 1, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Goal.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Goal.kt index 7983517aec..d4200bbfcc 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Goal.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Goal.kt @@ -43,10 +43,11 @@ import androidx.compose.ui.graphics.StrokeCap import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.goal_closed +import com.vitorpamplona.amethyst.commons.resources.goal_progress +import com.vitorpamplona.amethyst.commons.resources.preview_card_image_for import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.observeNoteZaps import com.vitorpamplona.amethyst.ui.components.MyAsyncImage import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -97,7 +98,7 @@ fun GoalHeader( Box { MyAsyncImage( imageUrl = it, - contentDescription = stringRes(R.string.preview_card_image_for, it), + contentDescription = stringRes(Res.string.preview_card_image_for, it), contentScale = ContentScale.FillWidth, mainImageModifier = Modifier.fillMaxWidth(), loadedImageModifier = Modifier, @@ -190,7 +191,7 @@ fun GoalProgressBar( Text( text = stringRes( - R.string.goal_progress, + Res.string.goal_progress, totalPercentage, showAmount(goalAmountSats.toBigDecimal()), ), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Library.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Library.kt index 4048fe5891..399bb96468 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Library.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Library.kt @@ -52,12 +52,18 @@ import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.toImmutableListOfLists +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.library_blossom_piece +import com.vitorpamplona.amethyst.commons.resources.library_directory +import com.vitorpamplona.amethyst.commons.resources.library_directory_items +import com.vitorpamplona.amethyst.commons.resources.library_directory_more_items +import com.vitorpamplona.amethyst.commons.resources.library_learning_resource +import com.vitorpamplona.amethyst.commons.resources.preview_card_image_for import com.vitorpamplona.amethyst.commons.richtext.MediaContentKind import com.vitorpamplona.amethyst.commons.richtext.MediaUrlImage import com.vitorpamplona.amethyst.commons.richtext.MediaUrlPdf @@ -125,7 +131,7 @@ fun RenderLearningResource( Column(Modifier.fillMaxWidth()) { LibraryHeader( symbol = MaterialSymbols.MenuBook, - label = stringRes(R.string.library_learning_resource), + label = stringRes(Res.string.library_learning_resource), title = remember(noteEvent) { noteEvent.titleOrIdentifier() }, subtitle = remember(noteEvent) { noteEvent.summary()?.ifBlank { null } }, // The byline is what tells a shelf of books apart; without it "Effective Executive" @@ -272,10 +278,10 @@ fun RenderBookshelfDirectory( Column(Modifier.fillMaxWidth()) { LibraryHeader( symbol = MaterialSymbols.Collections, - label = stringRes(R.string.library_directory), + label = stringRes(Res.string.library_directory), title = remember(noteEvent) { noteEvent.titleOrIdentifier() }, subtitle = remember(noteEvent) { noteEvent.summary()?.ifBlank { null } }, - detail = if (itemCount > 0) pluralStringResource(R.plurals.library_directory_items, itemCount, itemCount) else null, + detail = if (itemCount > 0) pluralStringResource(Res.plurals.library_directory_items, itemCount, itemCount) else null, banner = remember(noteEvent) { noteEvent.image()?.ifBlank { null } }, accountViewModel = accountViewModel, ) @@ -302,7 +308,7 @@ fun RenderBlossomPieceIndex( LibraryHeader( symbol = MaterialSymbols.Storage, - label = stringRes(R.string.library_blossom_piece), + label = stringRes(Res.string.library_blossom_piece), title = remember(noteEvent) { noteEvent.titleOrIdentifier() }, subtitle = remember(noteEvent) { noteEvent.summary()?.ifBlank { null } }, // What actually distinguishes one file record from another: what it is, how big, and how @@ -359,7 +365,7 @@ private fun DirectoryContents( val remaining = items.size - MAX_PREVIEW_ITEMS Text( - text = pluralStringResource(R.plurals.library_directory_more_items, remaining, remaining), + text = pluralStringResource(Res.plurals.library_directory_more_items, remaining, remaining), style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.grayText, modifier = Modifier.fillMaxWidth().padding(vertical = 10.dp), @@ -468,7 +474,7 @@ private fun LibraryBanner( if (banner != null) { MyAsyncImage( imageUrl = banner, - contentDescription = stringRes(R.string.preview_card_image_for, banner), + contentDescription = stringRes(Res.string.preview_card_image_for, banner), contentScale = ContentScale.Crop, mainImageModifier = Modifier.fillMaxSize(), loadedImageModifier = modifier, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/LiveActivity.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/LiveActivity.kt index cae9fc9ebc..f20bdabe48 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/LiveActivity.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/LiveActivity.kt @@ -45,13 +45,13 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.live_stream_has_ended import com.vitorpamplona.amethyst.commons.resources.live_stream_is_offline +import com.vitorpamplona.amethyst.commons.resources.preview_card_image_for import com.vitorpamplona.amethyst.service.playback.composable.VideoView import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.observeNote import com.vitorpamplona.amethyst.ui.actions.CrossfadeIfEnabled @@ -238,7 +238,7 @@ fun RenderLiveActivityEventInner( imageUrl = it, contentDescription = stringRes( - R.string.preview_card_image_for, + Res.string.preview_card_image_for, it, ), contentScale = ContentScale.FillWidth, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/LongForm.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/LongForm.kt index 609258bf9e..8b67259ac2 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/LongForm.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/LongForm.kt @@ -45,12 +45,12 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.long_form_reading_minutes +import com.vitorpamplona.amethyst.commons.resources.preview_card_image_for import com.vitorpamplona.amethyst.ui.components.MyAsyncImage import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.note.BaseUserPicture @@ -170,7 +170,7 @@ private fun LongFormCoverImage( if (image != null) { MyAsyncImage( imageUrl = image, - contentDescription = stringRes(R.string.preview_card_image_for, image), + contentDescription = stringRes(Res.string.preview_card_image_for, image), contentScale = ContentScale.Crop, mainImageModifier = Modifier.fillMaxWidth(), loadedImageModifier = imageModifier, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/MeetingSpace.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/MeetingSpace.kt index 968a64bfd6..e50580e844 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/MeetingSpace.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/MeetingSpace.kt @@ -46,7 +46,6 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.core.net.toUri -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.resources.Res @@ -57,8 +56,14 @@ import com.vitorpamplona.amethyst.commons.resources.meeting_space_open_tag import com.vitorpamplona.amethyst.commons.resources.meeting_space_planned_starts_at import com.vitorpamplona.amethyst.commons.resources.meeting_space_planned_tag import com.vitorpamplona.amethyst.commons.resources.meeting_space_private_tag +import com.vitorpamplona.amethyst.commons.resources.nest_chat_send_failed_title import com.vitorpamplona.amethyst.commons.resources.nest_listen_to_recording import com.vitorpamplona.amethyst.commons.resources.nest_no_app_to_open_link +import com.vitorpamplona.amethyst.commons.resources.nest_presence_left +import com.vitorpamplona.amethyst.commons.resources.nest_presence_listening +import com.vitorpamplona.amethyst.commons.resources.nest_presence_on_stage +import com.vitorpamplona.amethyst.commons.resources.nest_presence_raised_hand +import com.vitorpamplona.amethyst.commons.resources.nest_presence_speaking import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.observeNote import com.vitorpamplona.amethyst.ui.actions.CrossfadeIfEnabled import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -220,7 +225,7 @@ private fun ListenToRecordingButton( }.isSuccess if (!launched) { accountViewModel.toastManager.toast( - R.string.nest_chat_send_failed_title, + Res.string.nest_chat_send_failed_title, noAppMessage, user = null, ) @@ -393,11 +398,11 @@ fun RenderMeetingRoomPresence( val stateRes = when { - !publishing && !onstage && !handRaised -> R.string.nest_presence_left - handRaised -> R.string.nest_presence_raised_hand - onstage && publishing -> R.string.nest_presence_speaking - onstage -> R.string.nest_presence_on_stage - else -> R.string.nest_presence_listening + !publishing && !onstage && !handRaised -> Res.string.nest_presence_left + handRaised -> Res.string.nest_presence_raised_hand + onstage && publishing -> Res.string.nest_presence_speaking + onstage -> Res.string.nest_presence_on_stage + else -> Res.string.nest_presence_listening } val user = diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/MusicPlaylist.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/MusicPlaylist.kt index 155532ee7f..b4ed51501f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/MusicPlaylist.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/MusicPlaylist.kt @@ -56,7 +56,6 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import coil3.compose.AsyncImagePainter import coil3.compose.rememberAsyncImagePainter -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.AddressableNote @@ -67,8 +66,11 @@ import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.music_playlist_collaborative import com.vitorpamplona.amethyst.commons.resources.music_playlist_edit_action import com.vitorpamplona.amethyst.commons.resources.music_playlist_loading_track +import com.vitorpamplona.amethyst.commons.resources.music_playlist_more_tracks import com.vitorpamplona.amethyst.commons.resources.music_playlist_private +import com.vitorpamplona.amethyst.commons.resources.music_playlist_track_count import com.vitorpamplona.amethyst.commons.resources.music_playlist_unknown_track +import com.vitorpamplona.amethyst.commons.resources.preview_card_image_for import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.observeNoteEvent import com.vitorpamplona.amethyst.ui.components.LoadNote import com.vitorpamplona.amethyst.ui.components.MyAsyncImage @@ -190,7 +192,7 @@ fun MusicPlaylistHeader( Spacer(Modifier.padding(start = 6.dp)) val trackCount = trackAddresses.size Text( - text = pluralStringResource(R.plurals.music_playlist_track_count, trackCount, trackCount), + text = pluralStringResource(Res.plurals.music_playlist_track_count, trackCount, trackCount), style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.grayText, ) @@ -276,7 +278,7 @@ fun MusicPlaylistHeader( HorizontalDivider(color = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.06f)) val remaining = trackAddresses.size - MAX_PREVIEW_TRACKS Text( - text = pluralStringResource(R.plurals.music_playlist_more_tracks, remaining, remaining), + text = pluralStringResource(Res.plurals.music_playlist_more_tracks, remaining, remaining), style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.grayText, modifier = @@ -321,7 +323,7 @@ private fun MusicPlaylistCover( is AsyncImagePainter.State.Success -> { Image( painter = painter, - contentDescription = stringRes(R.string.preview_card_image_for, image), + contentDescription = stringRes(Res.string.preview_card_image_for, image), contentScale = ContentScale.Crop, modifier = Modifier.matchParentSize(), ) @@ -404,7 +406,7 @@ private fun TrackCountChip( ) Spacer(Modifier.padding(start = 6.dp)) Text( - text = pluralStringResource(R.plurals.music_playlist_track_count, trackCount, trackCount), + text = pluralStringResource(Res.plurals.music_playlist_track_count, trackCount, trackCount), style = MaterialTheme.typography.bodySmall, color = Color.White, fontWeight = FontWeight.SemiBold, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/MusicTrack.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/MusicTrack.kt index dc7a631390..9889a5a349 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/MusicTrack.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/MusicTrack.kt @@ -52,12 +52,13 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.toImmutableListOfLists +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.preview_card_image_for import com.vitorpamplona.amethyst.service.playback.composable.GetVideoController import com.vitorpamplona.amethyst.service.playback.composable.LoadThumbAndThenVideoView import com.vitorpamplona.amethyst.service.playback.composable.PauseControllerWhenInBackground @@ -363,7 +364,7 @@ private fun MusicTrackCover( if (image != null) { MyAsyncImage( imageUrl = image, - contentDescription = stringRes(R.string.preview_card_image_for, image), + contentDescription = stringRes(Res.string.preview_card_image_for, image), contentScale = ContentScale.Crop, mainImageModifier = Modifier.fillMaxSize(), loadedImageModifier = imageModifier, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/PodcastBookmarkButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/PodcastBookmarkButton.kt index e104c40a82..777e2c2dbc 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/PodcastBookmarkButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/PodcastBookmarkButton.kt @@ -36,11 +36,13 @@ import androidx.compose.ui.semantics.Role import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.AddressableNote import com.vitorpamplona.amethyst.commons.model.Note +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.add_to_public_bookmarks +import com.vitorpamplona.amethyst.commons.resources.remove_from_public_bookmarks import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.stringRes @@ -100,7 +102,7 @@ fun PodcastBookmarkButton( symbol = if (isBookmarked) MaterialSymbols.Bookmark else MaterialSymbols.BookmarkAdd, contentDescription = stringRes( - if (isBookmarked) R.string.remove_from_public_bookmarks else R.string.add_to_public_bookmarks, + if (isBookmarked) Res.string.remove_from_public_bookmarks else Res.string.add_to_public_bookmarks, ), tint = if (isBookmarked) MaterialTheme.colorScheme.primary else MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier.size(iconSize), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/PodcastChaptersView.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/PodcastChaptersView.kt index 2411199aab..f4732cb97a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/PodcastChaptersView.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/PodcastChaptersView.kt @@ -41,11 +41,12 @@ import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.podcasts.PodcastRemoteContent +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.podcast_chapters_count import com.vitorpamplona.amethyst.commons.ui.note.PodcastSoundbites import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.theme.Size18Modifier @@ -78,7 +79,7 @@ fun PodcastChaptersView( Column(Modifier.fillMaxWidth().padding(vertical = 2.dp)) { CollapsibleHeader( symbol = MaterialSymbols.AutoMirrored.FormatListBulleted, - title = pluralStringResource(R.plurals.podcast_chapters_count, chapters.size, chapters.size), + title = pluralStringResource(Res.plurals.podcast_chapters_count, chapters.size, chapters.size), expanded = expanded, onToggle = { expanded = !expanded }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/PodcastCoverCard.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/PodcastCoverCard.kt index f99a9a9128..fc0f3c7689 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/PodcastCoverCard.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/PodcastCoverCard.kt @@ -30,8 +30,9 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.preview_card_image_for import com.vitorpamplona.amethyst.ui.components.MyAsyncImage import com.vitorpamplona.amethyst.ui.note.elements.DefaultImageHeader import com.vitorpamplona.amethyst.ui.note.elements.DefaultImageHeaderBackground @@ -57,7 +58,7 @@ internal fun PodcastCoverCard( if (image != null) { MyAsyncImage( imageUrl = image, - contentDescription = stringRes(R.string.preview_card_image_for, image), + contentDescription = stringRes(Res.string.preview_card_image_for, image), contentScale = ContentScale.Crop, mainImageModifier = Modifier.fillMaxSize(), loadedImageModifier = COVER_IMAGE_MODIFIER, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/PodcastStreamingControl.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/PodcastStreamingControl.kt index 20ba0a7f7d..e3a0516552 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/PodcastStreamingControl.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/PodcastStreamingControl.kt @@ -46,14 +46,15 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.podcast_value_error_title import com.vitorpamplona.amethyst.commons.resources.podcast_value_stream import com.vitorpamplona.amethyst.commons.resources.podcast_value_stream_hint import com.vitorpamplona.amethyst.commons.resources.podcast_value_stream_rate +import com.vitorpamplona.amethyst.commons.resources.podcast_value_stream_requires_wallet import com.vitorpamplona.amethyst.commons.resources.podcast_value_streamed_total import com.vitorpamplona.amethyst.service.playback.composable.MediaControllerState import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel @@ -217,8 +218,8 @@ fun PodcastStreamingControl( if (wantOn && !hasInAppWallet) { // No NWC/CLINK wallet -> we won't auto-stream; tell the user why and stay off. accountViewModel.toastManager.toast( - R.string.podcast_value_error_title, - R.string.podcast_value_stream_requires_wallet, + Res.string.podcast_value_error_title, + Res.string.podcast_value_stream_requires_wallet, ) } else { enabled = wantOn diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Poll.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Poll.kt index 620431d218..89bc2d8898 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Poll.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Poll.kt @@ -70,7 +70,6 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.EmptyTagList import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.User @@ -79,6 +78,7 @@ import com.vitorpamplona.amethyst.commons.model.nip88Polls.PollResponsesCache import com.vitorpamplona.amethyst.commons.model.nip88Polls.TallyResults import com.vitorpamplona.amethyst.commons.model.toImmutableListOfLists import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.poll_results_vote_count_link import com.vitorpamplona.amethyst.commons.resources.poll_submit import com.vitorpamplona.amethyst.commons.resources.poll_view_results import com.vitorpamplona.amethyst.ui.components.SensitivityWarning @@ -233,7 +233,7 @@ private fun PollResultsLink( val voters = tally.totalVoters() Text( - text = pluralStringResource(R.plurals.poll_results_vote_count_link, voters, voters), + text = pluralStringResource(Res.plurals.poll_results_vote_count_link, voters, voters), style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.primary, modifier = diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/PrivateMessage.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/PrivateMessage.kt index aaa5949b5a..da2c0e6945 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/PrivateMessage.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/PrivateMessage.kt @@ -34,10 +34,11 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.EmptyTagList import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.toImmutableListOfLists +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.private_conversation_notification import com.vitorpamplona.amethyst.ui.components.SensitivityWarning import com.vitorpamplona.amethyst.ui.components.TranslatableRichTextViewer import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -132,7 +133,7 @@ fun RenderPrivateMessage( TranslatableRichTextViewer( stringRes( - id = R.string.private_conversation_notification, + id = Res.string.private_conversation_notification, "@${note.author?.pubkeyNpub()}", "@$recipient", ), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Publication.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Publication.kt index 751c8c1733..4a5bc2e971 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Publication.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Publication.kt @@ -51,12 +51,12 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.toImmutableListOfLists import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.preview_card_image_for import com.vitorpamplona.amethyst.commons.resources.publication_contents import com.vitorpamplona.amethyst.commons.resources.publication_more_sections import com.vitorpamplona.amethyst.commons.resources.publication_section_count @@ -435,7 +435,7 @@ private fun PublicationCover( if (cover != null) { MyAsyncImage( imageUrl = cover, - contentDescription = stringRes(R.string.preview_card_image_for, cover), + contentDescription = stringRes(Res.string.preview_card_image_for, cover), contentScale = ContentScale.Crop, mainImageModifier = Modifier.fillMaxSize(), loadedImageModifier = modifier, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/RelayList.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/RelayList.kt index 19a09d3425..16d4a31c2d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/RelayList.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/RelayList.kt @@ -44,15 +44,18 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.nip51Lists.relayLists.RelayListCard import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.blocked_relays_title import com.vitorpamplona.amethyst.commons.resources.broadcast_relays_title +import com.vitorpamplona.amethyst.commons.resources.dm_relays_title import com.vitorpamplona.amethyst.commons.resources.favorite_relays_title import com.vitorpamplona.amethyst.commons.resources.indexer_relays_title import com.vitorpamplona.amethyst.commons.resources.proxy_relays_title +import com.vitorpamplona.amethyst.commons.resources.public_home_section +import com.vitorpamplona.amethyst.commons.resources.public_notif_section +import com.vitorpamplona.amethyst.commons.resources.search_relays_title import com.vitorpamplona.amethyst.commons.resources.trusted_relays_title import com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.observeUserRelayIntoList import com.vitorpamplona.amethyst.ui.components.ShowMoreButton @@ -131,7 +134,7 @@ fun DisplayNIP65RelayList( DisplayRelaySet( writeRelays, - stringRes(id = R.string.public_home_section), + stringRes(id = Res.string.public_home_section), null, backgroundColor, accountViewModel, @@ -140,7 +143,7 @@ fun DisplayNIP65RelayList( DisplayRelaySet( readRelays, - stringRes(id = R.string.public_notif_section), + stringRes(id = Res.string.public_notif_section), null, backgroundColor, accountViewModel, @@ -166,7 +169,7 @@ fun DisplayDMRelayList( DisplayRelaySet( relays, - stringRes(id = R.string.dm_relays_title), + stringRes(id = Res.string.dm_relays_title), null, backgroundColor, accountViewModel, @@ -187,7 +190,7 @@ fun DisplaySearchRelayList( DisplayRelaySet( relays, - stringRes(id = R.string.search_relays_title), + stringRes(id = Res.string.search_relays_title), null, backgroundColor, accountViewModel, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/RenderVideoCollaboration.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/RenderVideoCollaboration.kt index 264a2d73f9..e28ca4abee 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/RenderVideoCollaboration.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/RenderVideoCollaboration.kt @@ -32,8 +32,10 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.video_collaboration_accepted_on +import com.vitorpamplona.amethyst.commons.resources.video_collaboration_declined_on import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.note.LoadAddressableNote import com.vitorpamplona.amethyst.ui.note.NoteCompose @@ -65,9 +67,9 @@ fun RenderVideoCollaboration( ) { val headline = if (noteEvent.isAccepted()) { - stringRes(R.string.video_collaboration_accepted_on) + stringRes(Res.string.video_collaboration_accepted_on) } else { - stringRes(R.string.video_collaboration_declined_on) + stringRes(Res.string.video_collaboration_declined_on) } val role = remember(noteEvent) { noteEvent.role() } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/RenderVideoCredits.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/RenderVideoCredits.kt index 2c8521a293..00d4e61a10 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/RenderVideoCredits.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/RenderVideoCredits.kt @@ -35,9 +35,14 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.video_credit_accepted +import com.vitorpamplona.amethyst.commons.resources.video_credit_audio_from +import com.vitorpamplona.amethyst.commons.resources.video_credit_featuring +import com.vitorpamplona.amethyst.commons.resources.video_credit_inspired_by +import com.vitorpamplona.amethyst.commons.resources.video_credit_references import com.vitorpamplona.amethyst.commons.ui.components.ClickableTextColor import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route @@ -177,7 +182,7 @@ private fun AcceptedCollaboration( if (response?.isAccepted() == true) { Icon( symbol = MaterialSymbols.CheckCircle, - contentDescription = stringRes(R.string.video_credit_accepted), + contentDescription = stringRes(Res.string.video_credit_accepted), modifier = Modifier.padding(start = 2.dp), tint = MaterialTheme.colorScheme.lessImportantLink, ) @@ -220,8 +225,8 @@ private fun CreditRow( @Composable private fun personLabel(marker: String?): String = when (marker) { - INSPIRED_BY_MARKER -> stringRes(R.string.video_credit_inspired_by) - MENTION_MARKER, null -> stringRes(R.string.video_credit_featuring) + INSPIRED_BY_MARKER -> stringRes(Res.string.video_credit_inspired_by) + MENTION_MARKER, null -> stringRes(Res.string.video_credit_featuring) // Anything else is a role the video's author typed ("Collaborator", "Director"): print it. else -> marker } @@ -232,8 +237,8 @@ private fun personLabel(marker: String?): String = @Composable private fun workLabel(marker: String?): String = when (marker) { - AUDIO_MARKER -> stringRes(R.string.video_credit_audio_from) - MENTION_MARKER, null -> stringRes(R.string.video_credit_references) + AUDIO_MARKER -> stringRes(Res.string.video_credit_audio_from) + MENTION_MARKER, null -> stringRes(Res.string.video_credit_references) else -> marker } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/RenderVideoCurationSet.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/RenderVideoCurationSet.kt index efab5f36da..b71ff25c25 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/RenderVideoCurationSet.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/RenderVideoCurationSet.kt @@ -44,8 +44,10 @@ import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.video_curation_set_private_items +import com.vitorpamplona.amethyst.commons.resources.video_curation_set_video_count import com.vitorpamplona.amethyst.ui.components.DisplayBlurHash import com.vitorpamplona.amethyst.ui.components.LoadNote import com.vitorpamplona.amethyst.ui.components.MyAsyncImage @@ -135,9 +137,9 @@ fun RenderVideoCurationSet( Text( text = if (membersAreHidden) { - stringRes(R.string.video_curation_set_private_items) + stringRes(Res.string.video_curation_set_private_items) } else { - pluralStringResource(R.plurals.video_curation_set_video_count, items.size, items.size) + pluralStringResource(Res.plurals.video_curation_set_video_count, items.size, items.size) }, style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.onSurfaceVariant, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/ReportTypeLabel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/ReportTypeLabel.kt index 562e3cd035..3a456f1cbc 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/ReportTypeLabel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/ReportTypeLabel.kt @@ -21,12 +21,16 @@ package com.vitorpamplona.amethyst.ui.note.types import androidx.compose.runtime.Composable -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.explicit_content import com.vitorpamplona.amethyst.commons.resources.harassment +import com.vitorpamplona.amethyst.commons.resources.illegal_behavior +import com.vitorpamplona.amethyst.commons.resources.impersonation import com.vitorpamplona.amethyst.commons.resources.malware +import com.vitorpamplona.amethyst.commons.resources.nudity import com.vitorpamplona.amethyst.commons.resources.other +import com.vitorpamplona.amethyst.commons.resources.profanity_hateful_speech +import com.vitorpamplona.amethyst.commons.resources.spam import com.vitorpamplona.amethyst.commons.resources.violence import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip56Reports.ReportType @@ -43,11 +47,11 @@ fun reportTypeLabels(types: Collection): List = types.map { fun reportTypeLabel(type: ReportType?): String = when (type) { ReportType.EXPLICIT -> stringRes(Res.string.explicit_content) - ReportType.NUDITY -> stringRes(R.string.nudity) - ReportType.PROFANITY -> stringRes(R.string.profanity_hateful_speech) - ReportType.SPAM -> stringRes(R.string.spam) - ReportType.IMPERSONATION -> stringRes(R.string.impersonation) - ReportType.ILLEGAL -> stringRes(R.string.illegal_behavior) + ReportType.NUDITY -> stringRes(Res.string.nudity) + ReportType.PROFANITY -> stringRes(Res.string.profanity_hateful_speech) + ReportType.SPAM -> stringRes(Res.string.spam) + ReportType.IMPERSONATION -> stringRes(Res.string.impersonation) + ReportType.ILLEGAL -> stringRes(Res.string.illegal_behavior) ReportType.MALWARE -> stringRes(Res.string.malware) ReportType.OTHER -> stringRes(Res.string.other) ReportType.HARASSMENT -> stringRes(Res.string.harassment) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/SoftwareApp.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/SoftwareApp.kt index 752dcabce6..9bb2dfb279 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/SoftwareApp.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/SoftwareApp.kt @@ -62,11 +62,11 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.lifecycle.compose.collectAsStateWithLifecycle import coil3.compose.AsyncImage -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.cache.filterIntoSet import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.nip82_assets_count import com.vitorpamplona.amethyst.commons.resources.nip82_by_author import com.vitorpamplona.amethyst.commons.resources.nip82_download import com.vitorpamplona.amethyst.commons.resources.nip82_repository_label @@ -564,7 +564,7 @@ fun RenderSoftwareReleaseBody( Spacer(StdVertSpacer) val n = assets.size Text( - text = pluralStringResource(R.plurals.nip82_assets_count, n, n), + text = pluralStringResource(Res.plurals.nip82_assets_count, n, n), style = MaterialTheme.typography.labelMedium, color = MaterialTheme.colorScheme.placeholderText, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Torrent.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Torrent.kt index 9f03ba2e80..64d87535e3 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Torrent.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Torrent.kt @@ -48,9 +48,12 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.core.net.toUri -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.cache.LocalCache +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.torrent_failure +import com.vitorpamplona.amethyst.commons.resources.torrent_no_apps +import com.vitorpamplona.amethyst.commons.resources.torrent_no_info import com.vitorpamplona.amethyst.commons.util.countToHumanReadableBytes import com.vitorpamplona.amethyst.ui.components.ShowMoreButton import com.vitorpamplona.amethyst.ui.navigation.navs.EmptyNav @@ -226,11 +229,11 @@ fun DisplayFileList( intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK context.startActivity(intent) } else { - accountViewModel.toastManager.toast(R.string.torrent_failure, R.string.torrent_no_info) + accountViewModel.toastManager.toast(Res.string.torrent_failure, Res.string.torrent_no_info) } } catch (e: Exception) { if (e is CancellationException) throw e - accountViewModel.toastManager.toast(R.string.torrent_failure, R.string.torrent_no_apps) + accountViewModel.toastManager.toast(Res.string.torrent_failure, Res.string.torrent_no_apps) } }, Modifier.size(Size30dp), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Video.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Video.kt index 638fc4f628..e526693e19 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Video.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Video.kt @@ -39,11 +39,12 @@ import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.EmptyTagList import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.nip71Video.selectVideoTrack import com.vitorpamplona.amethyst.commons.model.toImmutableListOfLists +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.preview_card_image_for import com.vitorpamplona.amethyst.commons.richtext.BaseMediaContent import com.vitorpamplona.amethyst.commons.richtext.MediaContentKind import com.vitorpamplona.amethyst.commons.richtext.MediaUrlImage @@ -145,7 +146,7 @@ fun VideoDisplay( imageUrl = it, contentDescription = stringRes( - R.string.preview_card_image_for, + Res.string.preview_card_image_for, it, ), contentScale = ContentScale.FillWidth, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/VoiceTrack.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/VoiceTrack.kt index 3f6ee575f4..b7cd64a1bf 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/VoiceTrack.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/VoiceTrack.kt @@ -46,10 +46,12 @@ import androidx.media3.common.util.UnstableApi import androidx.media3.ui.compose.ContentFrame import androidx.media3.ui.compose.SURFACE_TYPE_TEXTURE_VIEW import androidx.media3.ui.compose.state.rememberPlayPauseButtonState -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.pause +import com.vitorpamplona.amethyst.commons.resources.play import com.vitorpamplona.amethyst.commons.richtext.MediaUrlVideo import com.vitorpamplona.amethyst.service.playback.composable.DEFAULT_MUTED_SETTING import com.vitorpamplona.amethyst.service.playback.composable.GetVideoController @@ -253,7 +255,7 @@ fun PlayPauseButton(controllerState: MediaControllerState) { ) { Icon( symbol = if (state.showPlay) MaterialSymbols.PlayCircleOutline else MaterialSymbols.PauseCircleOutline, - contentDescription = if (state.showPlay) stringResource(R.string.play) else stringResource(R.string.pause), + contentDescription = if (state.showPlay) stringResource(Res.string.play) else stringResource(Res.string.pause), modifier = Size50Modifier, tint = Color.White, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Wiki.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Wiki.kt index aac7bdd771..e483717512 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Wiki.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Wiki.kt @@ -36,8 +36,9 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.preview_card_image_for import com.vitorpamplona.amethyst.ui.components.MyAsyncImage import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.note.elements.DefaultImageHeader @@ -94,7 +95,7 @@ private fun WikiNoteHeader( imageUrl = it, contentDescription = stringRes( - R.string.preview_card_image_for, + Res.string.preview_card_image_for, it, ), contentScale = ContentScale.FillWidth, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/AddressLists.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/AddressLists.kt index 14becb275b..99640c193b 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/AddressLists.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/AddressLists.kt @@ -26,8 +26,12 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.key import androidx.compose.runtime.remember import androidx.compose.ui.graphics.Color -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.kind_app_curation_set +import com.vitorpamplona.amethyst.commons.resources.kind_favorite_algo_feeds +import com.vitorpamplona.amethyst.commons.resources.kind_git_repositories +import com.vitorpamplona.amethyst.commons.resources.kind_simple_groups import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.stringRes @@ -51,7 +55,7 @@ fun RenderGitRepositoryList( val private by loadPrivateItems(noteEvent, accountViewModel) { noteEvent.privateRepositories(it) } ListCard( - title = stringRes(R.string.kind_git_repositories), + title = stringRes(Res.string.kind_git_repositories), description = null, items = rememberAllMembers(public, private), hasUnreadablePrivateItems = noteEvent.hidesPrivateMembers(private), @@ -78,7 +82,7 @@ fun RenderFavoriteAlgoFeedsList( val private by loadPrivateItems(noteEvent, accountViewModel) { noteEvent.privateFavoriteAlgoFeeds(it) } ListCard( - title = stringRes(R.string.kind_favorite_algo_feeds), + title = stringRes(Res.string.kind_favorite_algo_feeds), description = null, items = rememberAllMembers(public, private), hasUnreadablePrivateItems = noteEvent.hidesPrivateMembers(private), @@ -104,7 +108,7 @@ fun RenderAppCurationSet( val apps = remember(noteEvent) { noteEvent.apps() } ListCard( - title = listTitle(noteEvent.title(), noteEvent.dTag(), R.string.kind_app_curation_set), + title = listTitle(noteEvent.title(), noteEvent.dTag(), Res.string.kind_app_curation_set), description = noteEvent.description(), items = apps, // Not a PrivateTagArrayEvent: an app set has no encrypted half to be locked out of. @@ -135,7 +139,7 @@ fun RenderSimpleGroupList( val private by loadPrivateItems(noteEvent, accountViewModel) { noteEvent.privateGroups(it) } ListCard( - title = stringRes(R.string.kind_simple_groups), + title = stringRes(Res.string.kind_simple_groups), description = null, items = rememberAllMembers(public, private), hasUnreadablePrivateItems = noteEvent.hidesPrivateMembers(private), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/BookmarkLists.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/BookmarkLists.kt index a3e5fc3521..5e1132ac3e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/BookmarkLists.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/BookmarkLists.kt @@ -26,8 +26,12 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.key import androidx.compose.runtime.remember import androidx.compose.ui.graphics.Color -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.kind_article_curation_set +import com.vitorpamplona.amethyst.commons.resources.kind_bookmark_list +import com.vitorpamplona.amethyst.commons.resources.kind_bookmark_set +import com.vitorpamplona.amethyst.commons.resources.kind_picture_curation_set import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.quartz.nip51Lists.articleCurationSet.ArticleCurationSetEvent @@ -52,7 +56,7 @@ fun RenderBookmarkList( val private by loadPrivateItems(noteEvent, accountViewModel) { noteEvent.privateBookmarks(it) } BookmarkCard( - title = listTitle(noteEvent.title(), null, R.string.kind_bookmark_list), + title = listTitle(noteEvent.title(), null, Res.string.kind_bookmark_list), description = null, public = public, private = private, @@ -83,7 +87,7 @@ fun RenderOldBookmarkList( val private by loadPrivateItems(noteEvent, accountViewModel) { noteEvent.privateBookmarks(it) } BookmarkCard( - title = listTitle(noteEvent.title(), noteEvent.dTag(), R.string.kind_bookmark_list), + title = listTitle(noteEvent.title(), noteEvent.dTag(), Res.string.kind_bookmark_list), description = null, public = public, private = private, @@ -110,7 +114,7 @@ fun RenderLabeledBookmarkList( val private by loadPrivateItems(noteEvent, accountViewModel) { noteEvent.privateBookmarks(it) } BookmarkCard( - title = listTitle(noteEvent.titleOrName(), noteEvent.dTag(), R.string.kind_bookmark_set), + title = listTitle(noteEvent.titleOrName(), noteEvent.dTag(), Res.string.kind_bookmark_set), description = noteEvent.description(), public = public, private = private, @@ -137,7 +141,7 @@ fun RenderArticleCurationSet( val private by loadPrivateItems(noteEvent, accountViewModel) { noteEvent.privateItems(it) } BookmarkCard( - title = listTitle(noteEvent.title(), noteEvent.dTag(), R.string.kind_article_curation_set), + title = listTitle(noteEvent.title(), noteEvent.dTag(), Res.string.kind_article_curation_set), description = noteEvent.description(), public = public, private = private, @@ -164,7 +168,7 @@ fun RenderPictureCurationSet( val private by loadPrivateItems(noteEvent, accountViewModel) { noteEvent.privateItems(it) } BookmarkCard( - title = listTitle(noteEvent.title(), noteEvent.dTag(), R.string.kind_picture_curation_set), + title = listTitle(noteEvent.title(), noteEvent.dTag(), Res.string.kind_picture_curation_set), description = noteEvent.description(), public = public, private = private, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/GoodWikiRelayList.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/GoodWikiRelayList.kt index 3adc4b8265..51e8206219 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/GoodWikiRelayList.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/GoodWikiRelayList.kt @@ -26,8 +26,9 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.key import androidx.compose.runtime.remember import androidx.compose.ui.graphics.Color -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.kind_good_wiki_relays import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip01Core.relay.normalizer.displayUrl @@ -46,7 +47,7 @@ fun RenderGoodWikiRelayList( val private by loadPrivateItems(noteEvent, accountViewModel) { noteEvent.privateRelays(it) } ListCard( - title = stringRes(R.string.kind_good_wiki_relays), + title = stringRes(Res.string.kind_good_wiki_relays), description = null, items = rememberAllMembers(public, private), hasUnreadablePrivateItems = noteEvent.hidesPrivateMembers(private), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/ListCard.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/ListCard.kt index 61ea6e76f7..287b25c5ec 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/ListCard.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/ListCard.kt @@ -45,7 +45,8 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.nip51_list_has_private_members import com.vitorpamplona.amethyst.ui.components.ShowMoreButton import com.vitorpamplona.amethyst.ui.note.getGradient import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel @@ -53,6 +54,7 @@ import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.signers.NostrSigner import com.vitorpamplona.quartz.utils.Log +import org.jetbrains.compose.resources.StringResource /** How many members a list card shows before it asks to be expanded. Matches DisplayPeopleList. */ private const val COLLAPSED_MEMBERS = 3 @@ -104,7 +106,7 @@ fun ListCard( // which is what divine.video publishes — so that it reads as closed rather than as broken. if (hasUnreadablePrivateItems && items.isEmpty()) { Text( - text = stringRes(R.string.nip51_list_has_private_members), + text = stringRes(Res.string.nip51_list_has_private_members), style = MaterialTheme.typography.bodySmall, modifier = Modifier.fillMaxWidth().padding(horizontal = 5.dp, vertical = 2.dp), textAlign = TextAlign.Center, @@ -171,7 +173,7 @@ fun Event.hidesPrivateMembers(privateItems: List<*>?): Boolean = content.isNotEm fun listTitle( explicitTitle: String?, dTag: String?, - fallback: Int, + fallback: StringResource, ): String = explicitTitle?.takeIf { it.isNotBlank() } ?: dTag?.takeIf { it.isNotBlank() } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/MuteList.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/MuteList.kt index cb424d8010..867ea67fef 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/MuteList.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/MuteList.kt @@ -26,8 +26,9 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.key import androidx.compose.runtime.remember import androidx.compose.ui.graphics.Color -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.kind_mute_list import com.vitorpamplona.amethyst.ui.components.LoadNote import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.note.NoteCompose @@ -65,7 +66,7 @@ fun RenderMuteList( val private by loadPrivateItems(noteEvent, accountViewModel) { noteEvent.privateMutes(it) } ListCard( - title = stringRes(R.string.kind_mute_list), + title = stringRes(Res.string.kind_mute_list), description = null, items = rememberAllMembers(public, private), hasUnreadablePrivateItems = noteEvent.hidesPrivateMembers(private), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/TagLists.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/TagLists.kt index 83dbbc5f50..c66e67ebca 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/TagLists.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/TagLists.kt @@ -26,8 +26,11 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.key import androidx.compose.runtime.remember import androidx.compose.ui.graphics.Color -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.kind_geohash_follows +import com.vitorpamplona.amethyst.commons.resources.kind_hashtag_follows +import com.vitorpamplona.amethyst.commons.resources.kind_interest_set import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.stringRes @@ -54,7 +57,7 @@ fun RenderHashtagList( } ListCard( - title = stringRes(R.string.kind_hashtag_follows), + title = stringRes(Res.string.kind_hashtag_follows), description = null, items = rememberAllMembers(public, private), hasUnreadablePrivateItems = noteEvent.hidesPrivateMembers(private), @@ -78,7 +81,7 @@ fun RenderInterestSet( val private by loadPrivateItems(noteEvent, accountViewModel) { noteEvent.privateHashtags(it) } ListCard( - title = listTitle(noteEvent.title(), noteEvent.dTag(), R.string.kind_interest_set), + title = listTitle(noteEvent.title(), noteEvent.dTag(), Res.string.kind_interest_set), description = noteEvent.description(), items = rememberAllMembers(public, private), hasUnreadablePrivateItems = noteEvent.hidesPrivateMembers(private), @@ -107,7 +110,7 @@ fun RenderGeohashList( val private by loadPrivateItems(noteEvent, accountViewModel) { noteEvent.decryptPrivateGeohashes(it) } ListCard( - title = stringRes(R.string.kind_geohash_follows), + title = stringRes(Res.string.kind_geohash_follows), description = null, items = rememberAllMembers(public, private), hasUnreadablePrivateItems = noteEvent.hidesPrivateMembers(private), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/UserLists.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/UserLists.kt index 4fd165e252..f58b9b09c2 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/UserLists.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/lists/UserLists.kt @@ -26,8 +26,13 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.key import androidx.compose.runtime.remember import androidx.compose.ui.graphics.Color -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.kind_git_authors +import com.vitorpamplona.amethyst.commons.resources.kind_good_wiki_authors +import com.vitorpamplona.amethyst.commons.resources.kind_media_follows +import com.vitorpamplona.amethyst.commons.resources.kind_media_starter_pack +import com.vitorpamplona.amethyst.commons.resources.kind_mute_set_for_kind import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.stringRes @@ -51,7 +56,7 @@ fun RenderGitAuthorList( val private by loadPrivateItems(noteEvent, accountViewModel) { noteEvent.privateAuthors(it) } ListCard( - title = stringRes(R.string.kind_git_authors), + title = stringRes(Res.string.kind_git_authors), description = null, items = rememberAllMembers(public, private), hasUnreadablePrivateItems = noteEvent.hidesPrivateMembers(private), @@ -75,7 +80,7 @@ fun RenderMediaFollowList( val private by loadPrivateItems(noteEvent, accountViewModel) { noteEvent.privateFollows(it) } ListCard( - title = stringRes(R.string.kind_media_follows), + title = stringRes(Res.string.kind_media_follows), description = null, items = rememberAllMembers(public, private), hasUnreadablePrivateItems = noteEvent.hidesPrivateMembers(private), @@ -99,7 +104,7 @@ fun RenderGoodWikiAuthorList( val private by loadPrivateItems(noteEvent, accountViewModel) { noteEvent.privateAuthors(it) } ListCard( - title = stringRes(R.string.kind_good_wiki_authors), + title = stringRes(Res.string.kind_good_wiki_authors), description = null, items = rememberAllMembers(public, private), hasUnreadablePrivateItems = noteEvent.hidesPrivateMembers(private), @@ -129,7 +134,7 @@ fun RenderKindMuteSet( val mutedKind = remember(noteEvent) { noteEvent.dTag() } ListCard( - title = stringRes(R.string.kind_mute_set_for_kind, mutedKind), + title = stringRes(Res.string.kind_mute_set_for_kind, mutedKind), description = null, items = rememberAllMembers(public, private), hasUnreadablePrivateItems = noteEvent.hidesPrivateMembers(private), @@ -155,7 +160,7 @@ fun RenderMediaStarterPack( val members = remember(noteEvent) { noteEvent.followIds() } ListCard( - title = listTitle(noteEvent.title(), noteEvent.dTag(), R.string.kind_media_starter_pack), + title = listTitle(noteEvent.title(), noteEvent.dTag(), Res.string.kind_media_starter_pack), description = noteEvent.description(), items = members, hasUnreadablePrivateItems = false, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/nwc/NwcResponseMessages.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/nwc/NwcResponseMessages.kt index 677505588c..bca605aace 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/nwc/NwcResponseMessages.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/nwc/NwcResponseMessages.kt @@ -20,11 +20,13 @@ */ package com.vitorpamplona.amethyst.ui.nwc -import android.content.Context -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.error_parsing_error_message +import com.vitorpamplona.amethyst.commons.resources.wallet_connect_no_response_error +import com.vitorpamplona.amethyst.commons.resources.wallet_connect_unreadable_response_error +import com.vitorpamplona.amethyst.commons.ui.loadPluralStringRes +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.nip47WalletConnect.NwcSignerState -import com.vitorpamplona.amethyst.ui.pluralStringRes -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip47WalletConnect.rpc.IErrorResponseLike import com.vitorpamplona.quartz.nip47WalletConnect.rpc.Response @@ -33,10 +35,9 @@ import com.vitorpamplona.quartz.nip47WalletConnect.rpc.Response // nothing at all — which is the failure mode these exist to prevent. /** Shown when no kind-23195 reply arrived before the client gave up waiting. */ -fun nwcTimeoutMessage(context: Context): String = - pluralStringRes( - context, - R.plurals.wallet_connect_no_response_error, +suspend fun nwcTimeoutMessage(): String = + loadPluralStringRes( + Res.plurals.wallet_connect_no_response_error, NwcSignerState.NWC_RESPONSE_TIMEOUT_SECONDS, NwcSignerState.NWC_RESPONSE_TIMEOUT_SECONDS, ) @@ -57,9 +58,9 @@ fun nwcTimeoutMessage(context: Context): String = * settled payment is guessed into `PayInvoiceSuccessResponse` by the deserializer, so * demanding (say) `PayKeysendSuccessResponse` would report a real payment as unreadable. */ -fun Response?.nwcFailureDetail(context: Context): String? = +suspend fun Response?.nwcFailureDetail(): String? = when (this) { - null -> stringRes(context, R.string.wallet_connect_unreadable_response_error) - is IErrorResponseLike -> errorMessage() ?: stringRes(context, R.string.error_parsing_error_message) + null -> loadStringRes(Res.string.wallet_connect_unreadable_response_error) + is IErrorResponseLike -> errorMessage() ?: loadStringRes(Res.string.error_parsing_error_message) else -> null } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/TopNavFilterState.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/TopNavFilterState.kt index a62ae6e088..4f18cf97b3 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/TopNavFilterState.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/TopNavFilterState.kt @@ -20,17 +20,26 @@ */ package com.vitorpamplona.amethyst.ui.screen -import android.content.Context import androidx.compose.runtime.Immutable import androidx.compose.runtime.Stable -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.AddressableNote import com.vitorpamplona.amethyst.commons.model.nip51Lists.interestSets.InterestSet import com.vitorpamplona.amethyst.commons.model.topNavFeeds.TopFilter +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.follow_list_all_favorite_dvms +import com.vitorpamplona.amethyst.commons.resources.follow_list_aroundme +import com.vitorpamplona.amethyst.commons.resources.follow_list_curated +import com.vitorpamplona.amethyst.commons.resources.follow_list_global +import com.vitorpamplona.amethyst.commons.resources.follow_list_kind3_follows_users_only +import com.vitorpamplona.amethyst.commons.resources.follow_list_kind3follows +import com.vitorpamplona.amethyst.commons.resources.follow_list_kind3follows_users_only +import com.vitorpamplona.amethyst.commons.resources.follow_list_mine +import com.vitorpamplona.amethyst.commons.resources.follow_list_mute_list +import com.vitorpamplona.amethyst.commons.resources.follow_list_teleport +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.checkNotInMainThread import com.vitorpamplona.amethyst.ui.navigation.routes.Route -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl import com.vitorpamplona.quartz.nip01Core.relay.normalizer.RelayUrlNormalizer import com.vitorpamplona.quartz.nip01Core.relay.normalizer.displayUrl @@ -62,25 +71,25 @@ class TopNavFilterState( val allFollows = FeedDefinition( code = TopFilter.AllFollows, - name = ResourceName(R.string.follow_list_kind3follows), + name = ResourceName(Res.string.follow_list_kind3follows), ) val userFollows = FeedDefinition( code = TopFilter.AllUserFollows, - name = ResourceName(R.string.follow_list_kind3follows_users_only), + name = ResourceName(Res.string.follow_list_kind3follows_users_only), ) val kind3Follows = FeedDefinition( code = TopFilter.DefaultFollows, - name = ResourceName(R.string.follow_list_kind3_follows_users_only), + name = ResourceName(Res.string.follow_list_kind3_follows_users_only), ) val globalFollow = FeedDefinition( code = TopFilter.Global, - name = ResourceName(R.string.follow_list_global), + name = ResourceName(Res.string.follow_list_global), ) // Notifications-only curated mode; in Notifications, Global itself shows @@ -88,13 +97,13 @@ class TopNavFilterState( val selectedFollow = FeedDefinition( code = TopFilter.Selected, - name = ResourceName(R.string.follow_list_curated), + name = ResourceName(Res.string.follow_list_curated), ) val aroundMe = FeedDefinition( code = TopFilter.AroundMe, - name = ResourceName(R.string.follow_list_aroundme), + name = ResourceName(Res.string.follow_list_aroundme), ) // A UI-only entry: selecting it opens the map picker (handled in FeedFilterSpinner) @@ -102,25 +111,25 @@ class TopNavFilterState( val teleport = FeedDefinition( code = TopFilter.TeleportPicker, - name = ResourceName(R.string.follow_list_teleport), + name = ResourceName(Res.string.follow_list_teleport), ) val muteListFollow = FeedDefinition( code = TopFilter.MuteList(account.muteList.getMuteListAddress()), - name = ResourceName(R.string.follow_list_mute_list), + name = ResourceName(Res.string.follow_list_mute_list), ) val mineFollow = FeedDefinition( code = TopFilter.Mine, - name = ResourceName(R.string.follow_list_mine), + name = ResourceName(Res.string.follow_list_mine), ) val allFavoriteAlgoFeedsFollow = FeedDefinition( code = TopFilter.AllFavoriteAlgoFeeds, - name = ResourceName(R.string.follow_list_all_favorite_dvms), + name = ResourceName(Res.string.follow_list_all_favorite_dvms), ) val defaultLists = persistentListOf(allFollows, userFollows, kind3Follows, aroundMe, teleport, globalFollow, muteListFollow) @@ -535,7 +544,7 @@ class TopNavFilterState( sealed class Name { abstract fun name(): String - open fun name(context: Context) = name() + open suspend fun nameOrDefault() = name() } /** @@ -574,7 +583,7 @@ class ResourceName( ) : Name() { override fun name() = " $resourceId " // Space to make sure it goes first - override fun name(context: Context) = stringRes(context, resourceId) + override suspend fun nameOrDefault() = loadStringRes(resourceId) } @Stable diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt index 87097743bb..47264bf26f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt @@ -39,7 +39,6 @@ import androidx.lifecycle.viewModelScope import com.vitorpamplona.amethyst.AccountInfo import com.vitorpamplona.amethyst.Amethyst import com.vitorpamplona.amethyst.LocalPreferences -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.audio.VisualizerStyle import com.vitorpamplona.amethyst.commons.cashu.ops.describeMintError import com.vitorpamplona.amethyst.commons.feeds.FeedState @@ -61,12 +60,45 @@ import com.vitorpamplona.amethyst.commons.model.observables.CreatedAtComparator import com.vitorpamplona.amethyst.commons.model.privateChatLastReadRoute import com.vitorpamplona.amethyst.commons.relayClient.BlockedRelayFilteringClient import com.vitorpamplona.amethyst.commons.relayClient.nip47WalletConnect.NWCPaymentFilterAssembler +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.bolt12_offers +import com.vitorpamplona.amethyst.commons.resources.bolt12_payment_failed +import com.vitorpamplona.amethyst.commons.resources.bolt12_payment_sent +import com.vitorpamplona.amethyst.commons.resources.cashu_failed_redemption +import com.vitorpamplona.amethyst.commons.resources.cashu_failed_redemption_explainer_error_msg +import com.vitorpamplona.amethyst.commons.resources.cashu_successful_redemption +import com.vitorpamplona.amethyst.commons.resources.cashu_successful_redemption_explainer +import com.vitorpamplona.amethyst.commons.resources.concord_members_roles_failed +import com.vitorpamplona.amethyst.commons.resources.concord_members_roles_title +import com.vitorpamplona.amethyst.commons.resources.draft_note +import com.vitorpamplona.amethyst.commons.resources.error_dialog_zap_error +import com.vitorpamplona.amethyst.commons.resources.failed_to_save_the_video +import com.vitorpamplona.amethyst.commons.resources.it_s_not_possible_to_quote_to_a_draft_note +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_boost_posts +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_sign_events +import com.vitorpamplona.amethyst.commons.resources.no_lightning_address_set +import com.vitorpamplona.amethyst.commons.resources.nutzap_failed_no_event +import com.vitorpamplona.amethyst.commons.resources.nutzap_failed_no_recipient +import com.vitorpamplona.amethyst.commons.resources.nutzap_failed_private_note +import com.vitorpamplona.amethyst.commons.resources.nutzap_failed_title +import com.vitorpamplona.amethyst.commons.resources.pow_publish_failed +import com.vitorpamplona.amethyst.commons.resources.pow_publish_failed_retry +import com.vitorpamplona.amethyst.commons.resources.pow_settings_title +import com.vitorpamplona.amethyst.commons.resources.read_only_user +import com.vitorpamplona.amethyst.commons.resources.signer_illegal_state_exception_description +import com.vitorpamplona.amethyst.commons.resources.signer_not_found_exception +import com.vitorpamplona.amethyst.commons.resources.signer_not_found_exception_description +import com.vitorpamplona.amethyst.commons.resources.unauthorized_exception +import com.vitorpamplona.amethyst.commons.resources.unauthorized_exception_description +import com.vitorpamplona.amethyst.commons.resources.user_x_does_not_have_a_lightning_address_setup_to_receive_sats +import com.vitorpamplona.amethyst.commons.resources.video_saved_to_the_gallery import com.vitorpamplona.amethyst.commons.service.broadcast.BroadcastTracker import com.vitorpamplona.amethyst.commons.service.http.EmptyRoleBasedHttpClientBuilder import com.vitorpamplona.amethyst.commons.service.http.IRoleBasedHttpClientBuilder import com.vitorpamplona.amethyst.commons.service.pow.PoWCategory import com.vitorpamplona.amethyst.commons.tor.TorType import com.vitorpamplona.amethyst.commons.ui.components.UrlPreviewState +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.commons.ui.notifications.CardFeedState import com.vitorpamplona.amethyst.commons.ui.state.GenericBaseCache import com.vitorpamplona.amethyst.commons.ui.state.GenericBaseCacheAsync @@ -297,11 +329,11 @@ class AccountViewModel( // silently — the composer already returned when it was enqueued. viewModelScope.launch { Amethyst.instance.powPublishQueue.failures.collect { failure -> - val kindLabel = stringRes(Amethyst.instance.appContext, powKindLabelRes(failure.kind)) + val kindLabel = loadStringRes(powKindLabelRes(failure.kind)) if (failure.willRetryOnRestart) { - toastManager.toast(R.string.pow_settings_title, R.string.pow_publish_failed_retry, kindLabel) + toastManager.toast(Res.string.pow_settings_title, Res.string.pow_publish_failed_retry, kindLabel) } else { - toastManager.toast(R.string.pow_settings_title, R.string.pow_publish_failed, kindLabel, failure.message.orEmpty()) + toastManager.toast(Res.string.pow_settings_title, Res.string.pow_publish_failed, kindLabel, failure.message.orEmpty()) } } } @@ -635,7 +667,7 @@ class AccountViewModel( roleIds: List, ) = launchSigner { if (!account.concord.grantConcordRole(communityId, member, roleIds)) { - toastManager.toast(R.string.concord_members_roles_title, R.string.concord_members_roles_failed) + toastManager.toast(Res.string.concord_members_roles_title, Res.string.concord_members_roles_failed) } } @@ -1210,10 +1242,10 @@ class AccountViewModel( ) = launchSigner { account.zaps.sendNwcRequest(PayMethod.create("bitcoin:?lno=$offer", amountMillisats)) { response -> when (response) { - is PaySuccessResponse -> toastManager.toast(R.string.bolt12_offers, R.string.bolt12_payment_sent) + is PaySuccessResponse -> toastManager.toast(Res.string.bolt12_offers, Res.string.bolt12_payment_sent) is IErrorResponseLike -> - toastManager.toast(R.string.bolt12_offers, R.string.bolt12_payment_failed, response.errorMessage() ?: "") - else -> toastManager.toast(R.string.bolt12_offers, R.string.bolt12_payment_failed, "") + toastManager.toast(Res.string.bolt12_offers, Res.string.bolt12_payment_failed, response.errorMessage() ?: "") + else -> toastManager.toast(Res.string.bolt12_offers, Res.string.bolt12_payment_failed, "") } } } @@ -1296,7 +1328,7 @@ class AccountViewModel( if (!streaming) { invoices.forEach { invoice -> payViaIntent(invoice, context, onPaid = {}, onError = { - toastManager.toast(stringRes(context, R.string.error_dialog_zap_error), it) + toastManager.toast(loadStringRes(Res.string.error_dialog_zap_error), it) }) } } @@ -1322,8 +1354,8 @@ class AccountViewModel( // on a private rumor that would leak the rumor id to public relays. if (baseNote.isPrivateRumor()) { onError( - stringRes(com.vitorpamplona.amethyst.Amethyst.instance.appContext, R.string.nutzap_failed_title), - stringRes(com.vitorpamplona.amethyst.Amethyst.instance.appContext, R.string.nutzap_failed_private_note), + loadStringRes(Res.string.nutzap_failed_title), + loadStringRes(Res.string.nutzap_failed_private_note), baseNote.author, ) return@launchSigner @@ -1331,8 +1363,8 @@ class AccountViewModel( val recipient = baseNote.author?.pubkeyHex if (recipient == null) { onError( - stringRes(com.vitorpamplona.amethyst.Amethyst.instance.appContext, R.string.nutzap_failed_title), - stringRes(com.vitorpamplona.amethyst.Amethyst.instance.appContext, R.string.nutzap_failed_no_recipient), + loadStringRes(Res.string.nutzap_failed_title), + loadStringRes(Res.string.nutzap_failed_no_recipient), null, ) return@launchSigner @@ -1340,8 +1372,8 @@ class AccountViewModel( val zappedEvent = baseNote.toEventHint() if (zappedEvent == null) { onError( - stringRes(com.vitorpamplona.amethyst.Amethyst.instance.appContext, R.string.nutzap_failed_title), - stringRes(com.vitorpamplona.amethyst.Amethyst.instance.appContext, R.string.nutzap_failed_no_event), + loadStringRes(Res.string.nutzap_failed_title), + loadStringRes(Res.string.nutzap_failed_no_event), baseNote.author, ) return@launchSigner @@ -1361,7 +1393,7 @@ class AccountViewModel( // noise. } catch (e: Exception) { onError( - stringRes(com.vitorpamplona.amethyst.Amethyst.instance.appContext, R.string.nutzap_failed_title), + loadStringRes(Res.string.nutzap_failed_title), describeMintError(e), baseNote.author, ) @@ -1393,7 +1425,7 @@ class AccountViewModel( } catch (e: Exception) { if (e is CancellationException) throw e onError( - stringRes(com.vitorpamplona.amethyst.Amethyst.instance.appContext, R.string.nutzap_failed_title), + loadStringRes(Res.string.nutzap_failed_title), describeMintError(e), getUserIfExists(recipientPubKey), ) @@ -1648,18 +1680,18 @@ class AccountViewModel( throw e } catch (_: SignerExceptions.ReadOnlyException) { toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_sign_events, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_sign_events, ) } catch (_: SignerExceptions.UnauthorizedDecryptionException) { toastManager.toast( - R.string.unauthorized_exception, - R.string.unauthorized_exception_description, + Res.string.unauthorized_exception, + Res.string.unauthorized_exception_description, ) } catch (_: SignerExceptions.SignerNotFoundException) { toastManager.toast( - R.string.signer_not_found_exception, - R.string.signer_not_found_exception_description, + Res.string.signer_not_found_exception, + Res.string.signer_not_found_exception_description, ) } catch (e: SignerExceptions.TimedOutException) { Log.w("AccountViewModel", "TimedOutException", e) @@ -1675,8 +1707,8 @@ class AccountViewModel( Log.w("AccountViewModel", "TimedOutRunningOnBackgroundWithoutAutomaticPermissionExceptionException", e) } catch (e: IllegalStateException) { toastManager.toast( - R.string.signer_not_found_exception, - R.string.signer_illegal_state_exception_description, + Res.string.signer_not_found_exception, + Res.string.signer_illegal_state_exception_description, e, ) } @@ -2677,8 +2709,8 @@ class AccountViewModel( ) { if (baseNote.isDraft()) { toastManager.toast( - R.string.draft_note, - R.string.it_s_not_possible_to_quote_to_a_draft_note, + Res.string.draft_note, + Res.string.it_s_not_possible_to_quote_to_a_draft_note, ) return } @@ -2694,8 +2726,8 @@ class AccountViewModel( } } else { toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_boost_posts, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_boost_posts, ) } } @@ -2729,10 +2761,10 @@ class AccountViewModel( .toSet(), ) onDone( - stringRes(context, R.string.cashu_successful_redemption), + loadStringRes(Res.string.cashu_successful_redemption), stringRes( context, - R.string.cashu_successful_redemption_explainer, + Res.string.cashu_successful_redemption_explainer, token.totalAmount.toString(), meltResult.fees.toString(), ), @@ -2742,17 +2774,17 @@ class AccountViewModel( } catch (e: Exception) { if (e is kotlin.coroutines.cancellation.CancellationException) throw e onDone( - stringRes(context, R.string.cashu_failed_redemption), - stringRes(context, R.string.cashu_failed_redemption_explainer_error_msg, e.message), + loadStringRes(Res.string.cashu_failed_redemption), + loadStringRes(Res.string.cashu_failed_redemption_explainer_error_msg, e.message), ) } } } else { onDone( - stringRes(context, R.string.no_lightning_address_set), + loadStringRes(Res.string.no_lightning_address_set), stringRes( context, - R.string.user_x_does_not_have_a_lightning_address_setup_to_receive_sats, + Res.string.user_x_does_not_have_a_lightning_address_setup_to_receive_sats, account.userProfile().toBestDisplayName(), ), ) @@ -3011,12 +3043,12 @@ class AccountViewModel( onSuccess = { Handler(Looper.getMainLooper()).post { Toast - .makeText(localContext.applicationContext, R.string.video_saved_to_the_gallery, Toast.LENGTH_SHORT) + .makeText(localContext.applicationContext, Res.string.video_saved_to_the_gallery, Toast.LENGTH_SHORT) .show() } }, onError = { - toastManager.toast(R.string.failed_to_save_the_video, null, it) + toastManager.toast(Res.string.failed_to_save_the_video, null, it) }, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/LoggedInPage.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/LoggedInPage.kt index 935683f480..75ac6ff5b1 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/LoggedInPage.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/LoggedInPage.kt @@ -40,7 +40,9 @@ import com.google.accompanist.permissions.isGranted import com.google.accompanist.permissions.rememberPermissionState import com.vitorpamplona.amethyst.Amethyst import com.vitorpamplona.amethyst.LocalPreferences -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.error_opening_external_signer +import com.vitorpamplona.amethyst.commons.resources.error_opening_external_signer_description import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.notifications.PushNotificationUtils import com.vitorpamplona.amethyst.service.relayClient.authCommand.compose.RelayAuthSubscription @@ -212,8 +214,8 @@ private fun ListenToExternalSignerIfNeeded(accountViewModel: AccountViewModel) { launcher.launch(intent) } catch (e: ActivityNotFoundException) { accountViewModel.toastManager.toast( - R.string.error_opening_external_signer, - R.string.error_opening_external_signer_description, + Res.string.error_opening_external_signer, + Res.string.error_opening_external_signer_description, ) throw e } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/articles/NewArticleButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/articles/NewArticleButton.kt index e5d419b4ec..4553d2cdbc 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/articles/NewArticleButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/articles/NewArticleButton.kt @@ -24,9 +24,10 @@ import androidx.compose.foundation.shape.CircleShape import androidx.compose.material3.FloatingActionButton import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.new_long_form_post import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route import com.vitorpamplona.amethyst.ui.stringRes @@ -43,7 +44,7 @@ fun NewArticleButton(nav: INav) { ) { Icon( symbol = MaterialSymbols.Add, - contentDescription = stringRes(id = R.string.new_long_form_post), + contentDescription = stringRes(id = Res.string.new_long_form_post), modifier = Size26Modifier, tint = MaterialTheme.colorScheme.onPrimary, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/badges/NewBadgeButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/badges/NewBadgeButton.kt index ea9017c3fd..829204e62f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/badges/NewBadgeButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/badges/NewBadgeButton.kt @@ -31,6 +31,8 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.lifecycle.viewmodel.compose.viewModel import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.new_badge import com.vitorpamplona.amethyst.ui.painterRes import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.badges.post.NewBadgeDialog @@ -60,7 +62,7 @@ fun NewBadgeButton(accountViewModel: AccountViewModel) { ) { Icon( painter = painterRes(R.drawable.ic_compose, 5), - contentDescription = stringRes(id = R.string.new_badge), + contentDescription = stringRes(id = Res.string.new_badge), modifier = Size26Modifier, tint = MaterialTheme.colorScheme.onPrimary, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/badges/award/AwardBadgeScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/badges/award/AwardBadgeScreen.kt index b2bcba19ab..afda620c1e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/badges/award/AwardBadgeScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/badges/award/AwardBadgeScreen.kt @@ -48,9 +48,9 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.award_badge import com.vitorpamplona.amethyst.commons.resources.award_badge_loading import com.vitorpamplona.amethyst.commons.resources.award_badge_remove_recipient import com.vitorpamplona.amethyst.commons.resources.award_badge_search_label @@ -100,7 +100,7 @@ fun AwardBadgeScreen( Scaffold( topBar = { SavingTopBar( - titleRes = R.string.award_badge, + titleRes = Res.string.award_badge, isActive = { vm.definition != null && selectedUsers.isNotEmpty() }, onCancel = { nav.popBack() }, onPost = { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/badges/post/NewBadgeDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/badges/post/NewBadgeDialog.kt index 000746c3aa..a39cf2f2a0 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/badges/post/NewBadgeDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/badges/post/NewBadgeDialog.kt @@ -62,7 +62,6 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res @@ -72,12 +71,17 @@ import com.vitorpamplona.amethyst.commons.resources.badge_name_label import com.vitorpamplona.amethyst.commons.resources.badge_name_placeholder import com.vitorpamplona.amethyst.commons.resources.badge_upload_image_cta import com.vitorpamplona.amethyst.commons.resources.badge_upload_image_hint +import com.vitorpamplona.amethyst.commons.resources.file_server +import com.vitorpamplona.amethyst.commons.resources.file_server_description import com.vitorpamplona.amethyst.commons.resources.media_compression_quality_explainer import com.vitorpamplona.amethyst.commons.resources.media_compression_quality_high import com.vitorpamplona.amethyst.commons.resources.media_compression_quality_label import com.vitorpamplona.amethyst.commons.resources.media_compression_quality_low import com.vitorpamplona.amethyst.commons.resources.media_compression_quality_medium import com.vitorpamplona.amethyst.commons.resources.media_compression_quality_uncompressed +import com.vitorpamplona.amethyst.commons.resources.new_badge +import com.vitorpamplona.amethyst.commons.resources.strip_metadata_description +import com.vitorpamplona.amethyst.commons.resources.strip_metadata_label import com.vitorpamplona.amethyst.ui.actions.StrippingFailureDialog import com.vitorpamplona.amethyst.ui.actions.mediaServers.DEFAULT_MEDIA_SERVERS import com.vitorpamplona.amethyst.ui.actions.uploads.GallerySelect @@ -140,7 +144,7 @@ fun NewBadgeDialog( Scaffold( topBar = { CreatingTopBar( - titleRes = R.string.new_badge, + titleRes = Res.string.new_badge, isActive = postViewModel::canPost, onCancel = { postViewModel.cancelModel() @@ -310,7 +314,7 @@ private fun BadgeFormFields( Spacer(modifier = Modifier.height(12.dp)) - SettingsRow(R.string.file_server, R.string.file_server_description) { + SettingsRow(Res.string.file_server, Res.string.file_server_description) { TextSpinner( label = "", placeholder = @@ -369,8 +373,8 @@ private fun BadgeFormFields( } SettingSwitchItem( - title = R.string.strip_metadata_label, - description = R.string.strip_metadata_description, + title = Res.string.strip_metadata_label, + description = Res.string.strip_metadata_description, modifier = Modifier .fillMaxWidth() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/badges/post/NewBadgeModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/badges/post/NewBadgeModel.kt index 1c33781fe8..e6fb1d7eb8 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/badges/post/NewBadgeModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/badges/post/NewBadgeModel.kt @@ -28,7 +28,11 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media_no_details +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_sign_events +import com.vitorpamplona.amethyst.commons.resources.read_only_user +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.uploads.MediaCompressor import com.vitorpamplona.amethyst.service.uploads.MultiOrchestrator @@ -37,7 +41,6 @@ import com.vitorpamplona.amethyst.service.uploads.UploadOrchestrator import com.vitorpamplona.amethyst.ui.actions.mediaServers.DEFAULT_MEDIA_SERVERS import com.vitorpamplona.amethyst.ui.actions.mediaServers.ServerName import com.vitorpamplona.amethyst.ui.actions.uploads.SelectedMedia -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip01Core.signers.SignerExceptions import com.vitorpamplona.quartz.nip58Badges.definition.tags.ThumbTag import kotlinx.collections.immutable.ImmutableList @@ -110,13 +113,17 @@ class NewBadgeModel : ViewModel() { context: Context, onSuccess: () -> Unit, onError: (String, String) -> Unit, - ) = try { - uploadUnsafe(context, onSuccess, onError) - } catch (e: SignerExceptions.ReadOnlyException) { - onError( - stringRes(context, R.string.read_only_user), - stringRes(context, R.string.login_with_a_private_key_to_be_able_to_sign_events), - ) + ) { + try { + uploadUnsafe(context, onSuccess, onError) + } catch (e: SignerExceptions.ReadOnlyException) { + viewModelScope.launch { + onError( + loadStringRes(Res.string.read_only_user), + loadStringRes(Res.string.login_with_a_private_key_to_be_able_to_sign_events), + ) + } + } } private fun uploadUnsafe( @@ -147,10 +154,10 @@ class NewBadgeModel : ViewModel() { if (!results.allGood) { val messages = results.errors - .map { stringRes(context, it.errorResource, *it.params) } + .map { loadStringRes(it.errorResource, *it.params) } .distinct() .joinToString(".\n") - onError(stringRes(context, R.string.failed_to_upload_media_no_details), messages) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), messages) isUploading = false return@launch } @@ -162,7 +169,7 @@ class NewBadgeModel : ViewModel() { if (uploaded == null) { onError( - stringRes(context, R.string.failed_to_upload_media_no_details), + loadStringRes(Res.string.failed_to_upload_media_no_details), "Upload succeeded but no image URL was returned by the server.", ) isUploading = false diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/badges/profile/ProfileBadgesScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/badges/profile/ProfileBadgesScreen.kt index 6ff1484bfb..33fdbb24f4 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/badges/profile/ProfileBadgesScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/badges/profile/ProfileBadgesScreen.kt @@ -51,12 +51,12 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import coil3.compose.AsyncImage -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.badge_untitled import com.vitorpamplona.amethyst.commons.resources.profile_badges_description import com.vitorpamplona.amethyst.commons.resources.profile_badges_empty +import com.vitorpamplona.amethyst.commons.resources.profile_badges_title import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.EventFinderFilterAssemblerSubscription import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.observeNoteEvent import com.vitorpamplona.amethyst.ui.components.RobohashAsyncImage @@ -147,7 +147,7 @@ fun ProfileBadgesScreen( Scaffold( topBar = { - TopBarWithBackButton(stringRes(id = R.string.profile_badges_title), nav) + TopBarWithBackButton(stringRes(id = Res.string.profile_badges_title), nav) }, ) { pad -> Column(Modifier.padding(pad).fillMaxSize()) { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/bookmarkgroups/display/BookmarkGroupItemOptions.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/bookmarkgroups/display/BookmarkGroupItemOptions.kt index a476fe938d..bb54a8423d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/bookmarkgroups/display/BookmarkGroupItemOptions.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/bookmarkgroups/display/BookmarkGroupItemOptions.kt @@ -31,7 +31,6 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.platform.LocalClipboard import androidx.compose.ui.platform.LocalContext import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.resources.Res @@ -44,8 +43,17 @@ import com.vitorpamplona.amethyst.commons.resources.copy_text import com.vitorpamplona.amethyst.commons.resources.copy_user_pubkey import com.vitorpamplona.amethyst.commons.resources.edit_article import com.vitorpamplona.amethyst.commons.resources.edit_draft +import com.vitorpamplona.amethyst.commons.resources.edit_post +import com.vitorpamplona.amethyst.commons.resources.follow +import com.vitorpamplona.amethyst.commons.resources.move_bookmark_to_private_label +import com.vitorpamplona.amethyst.commons.resources.move_bookmark_to_public_label +import com.vitorpamplona.amethyst.commons.resources.propose_an_edit +import com.vitorpamplona.amethyst.commons.resources.quick_action_share +import com.vitorpamplona.amethyst.commons.resources.quick_action_share_browser_link +import com.vitorpamplona.amethyst.commons.resources.request_deletion import com.vitorpamplona.amethyst.commons.resources.timestamp_it import com.vitorpamplona.amethyst.commons.resources.timestamp_pending +import com.vitorpamplona.amethyst.commons.resources.unfollow import com.vitorpamplona.amethyst.commons.ui.components.GenericLoadable import com.vitorpamplona.amethyst.ui.actions.EditPostView import com.vitorpamplona.amethyst.ui.components.ClickableBox @@ -168,7 +176,7 @@ fun BookmarkGroupItemOptionsMenu( M3ActionSection { M3ActionRow( icon = if (isBookmarkItemPrivate) MaterialSymbols.LockOpen else MaterialSymbols.Lock, - text = stringRes(if (isBookmarkItemPrivate) R.string.move_bookmark_to_public_label else R.string.move_bookmark_to_private_label), + text = stringRes(if (isBookmarkItemPrivate) Res.string.move_bookmark_to_public_label else Res.string.move_bookmark_to_private_label), ) { if (isBookmarkItemPrivate) onMoveBookmarkToPublic() else onMoveBookmarkToPrivate() } @@ -185,13 +193,13 @@ fun BookmarkGroupItemOptionsMenu( // Follow section M3ActionSection { if (!state.isFollowingAuthor) { - M3ActionRow(icon = MaterialSymbols.PersonAdd, text = stringRes(R.string.follow)) { + M3ActionRow(icon = MaterialSymbols.PersonAdd, text = stringRes(Res.string.follow)) { val author = note.author ?: return@M3ActionRow accountViewModel.follow(author) onDismiss() } } else { - M3ActionRow(icon = MaterialSymbols.PersonRemove, text = stringRes(R.string.unfollow)) { + M3ActionRow(icon = MaterialSymbols.PersonRemove, text = stringRes(Res.string.unfollow)) { val author = note.author ?: return@M3ActionRow accountViewModel.unfollow(author) onDismiss() @@ -229,7 +237,7 @@ fun BookmarkGroupItemOptionsMenu( onDismiss() } } - M3ActionRow(icon = MaterialSymbols.Share, text = stringRes(R.string.quick_action_share)) { + M3ActionRow(icon = MaterialSymbols.Share, text = stringRes(Res.string.quick_action_share)) { val sendIntent = Intent().apply { action = Intent.ACTION_SEND @@ -240,12 +248,12 @@ fun BookmarkGroupItemOptionsMenu( ) putExtra( Intent.EXTRA_TITLE, - stringRes(actContext, R.string.quick_action_share_browser_link), + stringRes(Res.string.quick_action_share_browser_link), ) } val shareIntent = - Intent.createChooser(sendIntent, stringRes(actContext, R.string.quick_action_share)) + Intent.createChooser(sendIntent, stringRes(Res.string.quick_action_share)) actContext.startActivity(shareIntent) onDismiss() } @@ -263,11 +271,11 @@ fun BookmarkGroupItemOptionsMenu( if (!note.isDraft()) { if (note.event is TextNoteEvent) { if (state.isLoggedUser) { - M3ActionRow(icon = MaterialSymbols.Edit, text = stringRes(R.string.edit_post)) { + M3ActionRow(icon = MaterialSymbols.Edit, text = stringRes(Res.string.edit_post)) { wantsToEditPost.value = true } } else { - M3ActionRow(icon = MaterialSymbols.Edit, text = stringRes(R.string.propose_an_edit)) { + M3ActionRow(icon = MaterialSymbols.Edit, text = stringRes(Res.string.propose_an_edit)) { wantsToEditPost.value = true } } @@ -296,7 +304,7 @@ fun BookmarkGroupItemOptionsMenu( } } if (state.isLoggedUser) { - M3ActionRow(icon = MaterialSymbols.Delete, text = stringRes(R.string.request_deletion), isDestructive = true) { + M3ActionRow(icon = MaterialSymbols.Delete, text = stringRes(Res.string.request_deletion), isDestructive = true) { accountViewModel.delete(note) onDismiss() } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/bookmarkgroups/list/BookmarkGroupItem.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/bookmarkgroups/list/BookmarkGroupItem.kt index a7d233069a..5839d72a80 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/bookmarkgroups/list/BookmarkGroupItem.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/bookmarkgroups/list/BookmarkGroupItem.kt @@ -47,7 +47,6 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.nip51Lists.labeledBookmarkLists.LabeledBookmarkList @@ -56,6 +55,7 @@ import com.vitorpamplona.amethyst.commons.resources.bookmark_list_articles_btn_l import com.vitorpamplona.amethyst.commons.resources.bookmark_list_clone_btn_label import com.vitorpamplona.amethyst.commons.resources.bookmark_list_icon_label import com.vitorpamplona.amethyst.commons.resources.bookmark_list_posts_btn_label +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.follow_set_copy_action_btn_label import com.vitorpamplona.amethyst.commons.resources.follow_set_copy_desc_label import com.vitorpamplona.amethyst.commons.resources.follow_set_copy_indicator_description @@ -64,6 +64,7 @@ import com.vitorpamplona.amethyst.commons.resources.follow_set_desc_modify_label import com.vitorpamplona.amethyst.commons.resources.follow_set_empty_label2 import com.vitorpamplona.amethyst.commons.resources.follow_set_rename_btn_label import com.vitorpamplona.amethyst.commons.resources.group_actions_dialog_title +import com.vitorpamplona.amethyst.commons.resources.quick_action_delete import com.vitorpamplona.amethyst.ui.components.ClickableBox import com.vitorpamplona.amethyst.ui.components.M3ActionDialog import com.vitorpamplona.amethyst.ui.components.M3ActionRow @@ -319,7 +320,7 @@ private fun GroupOptionsMenu( } } M3ActionSection { - M3ActionRow(icon = MaterialSymbols.Delete, text = stringRes(R.string.quick_action_delete), isDestructive = true) { + M3ActionRow(icon = MaterialSymbols.Delete, text = stringRes(Res.string.quick_action_delete), isDestructive = true) { onDelete() onDismiss() } @@ -410,7 +411,7 @@ private fun GroupCloneDialog( Button( onClick = onDismiss, ) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/bookmarkgroups/list/metadata/BookmarkGroupMetadataScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/bookmarkgroups/list/metadata/BookmarkGroupMetadataScreen.kt index 8daddfc649..d5ea289bdf 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/bookmarkgroups/list/metadata/BookmarkGroupMetadataScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/bookmarkgroups/list/metadata/BookmarkGroupMetadataScreen.kt @@ -41,13 +41,18 @@ import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.style.TextDirection import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.about_us +import com.vitorpamplona.amethyst.commons.resources.bookmark_list_creation_screen_title +import com.vitorpamplona.amethyst.commons.resources.bookmark_list_edit_sub_title +import com.vitorpamplona.amethyst.commons.resources.bookmark_list_explainer import com.vitorpamplona.amethyst.commons.resources.follow_set_copy_name_label import com.vitorpamplona.amethyst.commons.resources.follow_set_creation_desc_label import com.vitorpamplona.amethyst.commons.resources.follow_set_creation_name_label +import com.vitorpamplona.amethyst.commons.resources.follow_set_edit_list_metadata +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_sign_events import com.vitorpamplona.amethyst.commons.resources.optional_picture_url +import com.vitorpamplona.amethyst.commons.resources.read_only_user import com.vitorpamplona.amethyst.ui.actions.uploads.SelectSingleFromGallery import com.vitorpamplona.amethyst.ui.insets.imePaddingSafe import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -112,8 +117,8 @@ private fun BookmarkGroupMetadataScaffold( ) { item { SettingsCategory( - R.string.bookmark_list_edit_sub_title, - R.string.bookmark_list_explainer, + Res.string.bookmark_list_edit_sub_title, + Res.string.bookmark_list_explainer, SettingsCategoryFirstModifier, ) @@ -139,7 +144,7 @@ fun BookmarkGroupMetadataTopBar( ) { if (bookmarkGroupInfoViewModel.isNewList) { CreatingTopBar( - titleRes = R.string.bookmark_list_creation_screen_title, + titleRes = Res.string.bookmark_list_creation_screen_title, isActive = bookmarkGroupInfoViewModel::canPost, onCancel = { bookmarkGroupInfoViewModel.clear() @@ -151,15 +156,15 @@ fun BookmarkGroupMetadataTopBar( nav.popBack() } catch (e: SignerExceptions.ReadOnlyException) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_sign_events, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_sign_events, ) } }, ) } else { SavingTopBar( - titleRes = R.string.follow_set_edit_list_metadata, + titleRes = Res.string.follow_set_edit_list_metadata, isActive = bookmarkGroupInfoViewModel::canPost, onCancel = { bookmarkGroupInfoViewModel.clear() @@ -171,8 +176,8 @@ fun BookmarkGroupMetadataTopBar( nav.popBack() } catch (e: SignerExceptions.ReadOnlyException) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_sign_events, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_sign_events, ) } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/bookmarkgroups/list/metadata/BookmarkGroupMetadataViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/bookmarkgroups/list/metadata/BookmarkGroupMetadataViewModel.kt index 835f5fc517..2964517f36 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/bookmarkgroups/list/metadata/BookmarkGroupMetadataViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/bookmarkgroups/list/metadata/BookmarkGroupMetadataViewModel.kt @@ -30,8 +30,15 @@ import androidx.compose.ui.text.input.TextFieldValue import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.nip51Lists.labeledBookmarkLists.LabeledBookmarkList +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.avif_metadata_strip_failed +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media_no_details +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_upload +import com.vitorpamplona.amethyst.commons.resources.metadata_strip_failed_title +import com.vitorpamplona.amethyst.commons.resources.metadata_strip_failed_upload_cancelled +import com.vitorpamplona.amethyst.commons.resources.server_did_not_provide_a_url_after_uploading +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.uploads.AvifMetadataNotVerifiableException import com.vitorpamplona.amethyst.service.uploads.CompressorQuality @@ -42,7 +49,6 @@ import com.vitorpamplona.amethyst.service.uploads.nip96.Nip96Uploader import com.vitorpamplona.amethyst.ui.actions.mediaServers.ServerType import com.vitorpamplona.amethyst.ui.actions.uploads.SelectedMedia import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip01Core.signers.SignerExceptions import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -146,8 +152,8 @@ class BookmarkGroupMetadataViewModel : ViewModel() { val result = MetadataStripper.strip(galleryUri.uri, galleryUri.mimeType, context.applicationContext) if (!result.stripped) { onError( - stringRes(context, R.string.metadata_strip_failed_title), - stringRes(context, R.string.metadata_strip_failed_upload_cancelled), + loadStringRes(Res.string.metadata_strip_failed_title), + loadStringRes(Res.string.metadata_strip_failed_upload_cancelled), ) onUploading(false) return @@ -159,8 +165,8 @@ class BookmarkGroupMetadataViewModel : ViewModel() { } catch (e: AvifMetadataNotVerifiableException) { onUploading(false) onError( - stringRes(context, R.string.metadata_strip_failed_title), - stringRes(context, R.string.avif_metadata_strip_failed, e.message ?: e.javaClass.simpleName), + loadStringRes(Res.string.metadata_strip_failed_title), + loadStringRes(Res.string.avif_metadata_strip_failed, e.message ?: e.javaClass.simpleName), ) return } @@ -200,15 +206,15 @@ class BookmarkGroupMetadataViewModel : ViewModel() { onUploaded(result.url) } else { onUploading(false) - onError(stringRes(context, R.string.failed_to_upload_media_no_details), stringRes(context, R.string.server_did_not_provide_a_url_after_uploading)) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), loadStringRes(Res.string.server_did_not_provide_a_url_after_uploading)) } } catch (_: SignerExceptions.ReadOnlyException) { onUploading(false) - onError(stringRes(context, R.string.failed_to_upload_media_no_details), stringRes(context, R.string.login_with_a_private_key_to_be_able_to_upload)) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), loadStringRes(Res.string.login_with_a_private_key_to_be_able_to_upload)) } catch (e: Exception) { if (e is CancellationException) throw e onUploading(false) - onError(stringRes(context, R.string.failed_to_upload_media_no_details), e.message ?: e.javaClass.simpleName) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), e.message ?: e.javaClass.simpleName) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/bookmarkgroups/old/OldBookmarkListScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/bookmarkgroups/old/OldBookmarkListScreen.kt index 4a33d9f2e5..33676fbe5a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/bookmarkgroups/old/OldBookmarkListScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/bookmarkgroups/old/OldBookmarkListScreen.kt @@ -48,13 +48,13 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.AddressableNote import com.vitorpamplona.amethyst.commons.relayClient.event.EventFinderQueryState import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.migrate_bookmarks_button +import com.vitorpamplona.amethyst.commons.resources.migrate_bookmarks_success import com.vitorpamplona.amethyst.commons.resources.old_bookmarks_title import com.vitorpamplona.amethyst.commons.resources.private_bookmarks import com.vitorpamplona.amethyst.commons.resources.public_bookmarks @@ -180,7 +180,7 @@ private fun RenderOldBookmarkScreen( Toast .makeText( context, - context.getString(R.string.migrate_bookmarks_success), + context.getString(Res.string.migrate_bookmarks_success), Toast.LENGTH_SHORT, ).show() } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/browser/BrowserScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/browser/BrowserScreen.kt index 6c6374bdb1..812de72db3 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/browser/BrowserScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/browser/BrowserScreen.kt @@ -76,7 +76,6 @@ import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import coil3.compose.AsyncImage import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.browser.DefaultWebClients import com.vitorpamplona.amethyst.commons.browser.OmniboxInput import com.vitorpamplona.amethyst.commons.browser.OmniboxSuggestions @@ -91,9 +90,14 @@ import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.browser_clear import com.vitorpamplona.amethyst.commons.resources.browser_discover_napplets import com.vitorpamplona.amethyst.commons.resources.browser_discover_nsites +import com.vitorpamplona.amethyst.commons.resources.browser_favorites import com.vitorpamplona.amethyst.commons.resources.browser_go import com.vitorpamplona.amethyst.commons.resources.browser_recent_options import com.vitorpamplona.amethyst.commons.resources.browser_recent_remove +import com.vitorpamplona.amethyst.commons.resources.browser_suggested +import com.vitorpamplona.amethyst.commons.resources.favorite_app_add +import com.vitorpamplona.amethyst.commons.resources.favorite_app_recent +import com.vitorpamplona.amethyst.commons.resources.favorite_app_remove import com.vitorpamplona.amethyst.favorites.BrowserHistoryEntry import com.vitorpamplona.amethyst.favorites.BrowserHistoryRegistry import com.vitorpamplona.amethyst.favorites.BrowserIconRegistry @@ -115,6 +119,7 @@ import com.vitorpamplona.quartz.nip5aStaticWebsites.NamedSiteEvent import com.vitorpamplona.quartz.nip5aStaticWebsites.RootSiteEvent import com.vitorpamplona.quartz.nip5dNapplets.NamedNappletEvent import com.vitorpamplona.quartz.nip5dNapplets.RootNappletEvent +import org.jetbrains.compose.resources.StringResource import com.vitorpamplona.amethyst.commons.R as CommonsR /** How many of the most recent history entries the idle browser home surfaces under "Recent". */ @@ -392,7 +397,7 @@ private fun SuggestionGrid( fun LazyGridScope.section( keyPrefix: String, - title: Int, + title: StringResource, rows: List, highlighted: Boolean, ) { @@ -412,9 +417,9 @@ private fun SuggestionGrid( } LazyVerticalGrid(columns = GridCells.Fixed(1), modifier = modifier) { - section("f", R.string.browser_favorites, favorites, highlighted = true) - section("o", R.string.favorite_app_recent, recent, highlighted = false) - section("s", R.string.browser_suggested, discover, highlighted = false) + section("f", Res.string.browser_favorites, favorites, highlighted = true) + section("o", Res.string.favorite_app_recent, recent, highlighted = false) + section("s", Res.string.browser_suggested, discover, highlighted = false) } } @@ -464,7 +469,7 @@ private fun SuggestionRow( } DropdownMenu(expanded = menuOpen, onDismissRequest = { menuOpen = false }) { DropdownMenuItem( - text = { Text(stringResource(if (suggestion.isFavorite) R.string.favorite_app_remove else R.string.favorite_app_add)) }, + text = { Text(stringResource(if (suggestion.isFavorite) Res.string.favorite_app_remove else Res.string.favorite_app_add)) }, leadingIcon = { Icon(if (suggestion.isFavorite) MaterialSymbols.Star else MaterialSymbols.StarBorder, contentDescription = null) }, @@ -515,11 +520,11 @@ private fun BrowserHome( verticalArrangement = Arrangement.spacedBy(8.dp), ) { if (apps.isNotEmpty()) { - item(span = { GridItemSpan(maxLineSpan) }, key = "h-fav") { SectionHeader(stringResource(R.string.browser_favorites)) } + item(span = { GridItemSpan(maxLineSpan) }, key = "h-fav") { SectionHeader(stringResource(Res.string.browser_favorites)) } favoriteAppItems(apps, onOpenApp, onRemoveApp) } if (recents.isNotEmpty()) { - item(span = { GridItemSpan(maxLineSpan) }, key = "h-rec") { SectionHeader(stringResource(R.string.favorite_app_recent)) } + item(span = { GridItemSpan(maxLineSpan) }, key = "h-rec") { SectionHeader(stringResource(Res.string.favorite_app_recent)) } items(recents, span = { GridItemSpan(maxLineSpan) }, key = { "r:" + it.url }) { entry -> RecentRow( entry = entry, @@ -544,7 +549,7 @@ private fun BrowserHome( } } if (suggested.isNotEmpty()) { - item(span = { GridItemSpan(maxLineSpan) }, key = "h-sug") { SectionHeader(stringResource(R.string.browser_suggested)) } + item(span = { GridItemSpan(maxLineSpan) }, key = "h-sug") { SectionHeader(stringResource(Res.string.browser_suggested)) } items(suggested, span = { GridItemSpan(maxLineSpan) }, key = { "s:" + it.app.url }) { entry -> SuggestedRow( entry = entry, @@ -598,7 +603,7 @@ private fun SuggestedRow( ) } IconButton(onClick = onAddFavorite) { - Icon(MaterialSymbols.StarBorder, contentDescription = stringResource(R.string.favorite_app_add)) + Icon(MaterialSymbols.StarBorder, contentDescription = stringResource(Res.string.favorite_app_add)) } } } @@ -705,7 +710,7 @@ private fun NostrAppRow( } } IconButton(onClick = onAddFavorite) { - Icon(MaterialSymbols.StarBorder, contentDescription = stringResource(R.string.favorite_app_add)) + Icon(MaterialSymbols.StarBorder, contentDescription = stringResource(Res.string.favorite_app_add)) } } } @@ -752,7 +757,7 @@ private fun RecentRow( } DropdownMenu(expanded = menuOpen, onDismissRequest = { menuOpen = false }) { DropdownMenuItem( - text = { Text(stringResource(if (isFavorited) R.string.favorite_app_remove else R.string.favorite_app_add)) }, + text = { Text(stringResource(if (isFavorited) Res.string.favorite_app_remove else Res.string.favorite_app_add)) }, leadingIcon = { Icon(if (isFavorited) MaterialSymbols.Star else MaterialSymbols.StarBorder, contentDescription = null) }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/BuzzAddPeopleDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/BuzzAddPeopleDialog.kt index d0a8a8e1ca..9c56c9e336 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/BuzzAddPeopleDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/BuzzAddPeopleDialog.kt @@ -42,13 +42,13 @@ import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.buzz_add_people_empty import com.vitorpamplona.amethyst.commons.resources.buzz_add_people_hint import com.vitorpamplona.amethyst.commons.resources.buzz_import_added +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.relay_group_add_member import com.vitorpamplona.amethyst.ui.note.creators.userSuggestions.ShowUserSuggestionList import com.vitorpamplona.amethyst.ui.note.creators.userSuggestions.UserSuggestionState @@ -158,6 +158,6 @@ fun BuzzAddPeopleDialog( } }, confirmButton = {}, - dismissButton = { TextButton(onClick = onDismiss) { Text(stringRes(R.string.cancel)) } }, + dismissButton = { TextButton(onClick = onDismiss) { Text(stringRes(Res.string.cancel)) } }, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/BuzzCanvasScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/BuzzCanvasScreen.kt index 4689e7d999..6f3865d0c5 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/BuzzCanvasScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/BuzzCanvasScreen.kt @@ -51,7 +51,6 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.EmptyTagList @@ -63,6 +62,7 @@ import com.vitorpamplona.amethyst.commons.resources.buzz_canvas_edit import com.vitorpamplona.amethyst.commons.resources.buzz_canvas_empty import com.vitorpamplona.amethyst.commons.resources.buzz_canvas_save import com.vitorpamplona.amethyst.commons.resources.buzz_canvas_title +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.ui.components.TranslatableRichTextViewer import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.topbars.TopBarExtensibleWithBackButton @@ -230,7 +230,7 @@ private fun CanvasEditor( title = { Text(stringRes(Res.string.buzz_canvas_edit)) }, navigationIcon = { IconButton(onClick = onClose, enabled = !saving) { - Icon(symbol = MaterialSymbols.Close, contentDescription = stringRes(R.string.cancel)) + Icon(symbol = MaterialSymbols.Close, contentDescription = stringRes(Res.string.cancel)) } }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/BuzzDmListScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/BuzzDmListScreen.kt index 9ade640b48..1379ec1c39 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/BuzzDmListScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/BuzzDmListScreen.kt @@ -64,22 +64,26 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.add_to_messages import com.vitorpamplona.amethyst.commons.resources.buzz_dm_add_hint import com.vitorpamplona.amethyst.commons.resources.buzz_dm_add_member import com.vitorpamplona.amethyst.commons.resources.buzz_dm_add_member_invalid import com.vitorpamplona.amethyst.commons.resources.buzz_dm_add_member_title import com.vitorpamplona.amethyst.commons.resources.buzz_dm_empty_body import com.vitorpamplona.amethyst.commons.resources.buzz_dm_empty_title +import com.vitorpamplona.amethyst.commons.resources.buzz_dm_hidden_count import com.vitorpamplona.amethyst.commons.resources.buzz_dm_just_you import com.vitorpamplona.amethyst.commons.resources.buzz_dm_more import com.vitorpamplona.amethyst.commons.resources.buzz_dm_new import com.vitorpamplona.amethyst.commons.resources.buzz_dm_title +import com.vitorpamplona.amethyst.commons.resources.cancel +import com.vitorpamplona.amethyst.commons.resources.now +import com.vitorpamplona.amethyst.commons.resources.remove_from_messages import com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.observeUserName import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route @@ -194,7 +198,7 @@ fun HiddenDmHeader( modifier = Modifier.size(18.dp), ) Text( - text = pluralStringResource(R.plurals.buzz_dm_hidden_count, count, count), + text = pluralStringResource(Res.plurals.buzz_dm_hidden_count, count, count), style = MaterialTheme.typography.labelLarge, color = MaterialTheme.colorScheme.onSurfaceVariant, ) @@ -252,7 +256,7 @@ private fun DmRowCard( } Spacer(Modifier.width(8.dp)) Text( - text = timeAgoShort(row.lastActivity, stringRes(R.string.now)), + text = timeAgoShort(row.lastActivity, stringRes(Res.string.now)), style = MaterialTheme.typography.labelMedium, color = MaterialTheme.colorScheme.onSurfaceVariant, ) @@ -287,7 +291,7 @@ private fun DmRowCard( // relay-side flag (kind-41012 / the 30622 snapshot), never a departure — so a // hidden conversation must offer its own way back rather than vanishing for good. DropdownMenuItem( - text = { Text(stringRes(if (isHidden) R.string.add_to_messages else R.string.remove_from_messages)) }, + text = { Text(stringRes(if (isHidden) Res.string.add_to_messages else Res.string.remove_from_messages)) }, leadingIcon = { Icon( symbol = if (isHidden) MaterialSymbols.Add else MaterialSymbols.VisibilityOff, @@ -431,7 +435,7 @@ private fun AddDmMemberDialog( } }, dismissButton = { - TextButton(onClick = onDismiss) { Text(stringRes(R.string.cancel)) } + TextButton(onClick = onDismiss) { Text(stringRes(Res.string.cancel)) } }, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/BuzzForumThreadScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/BuzzForumThreadScreen.kt index 18fe0cc7cb..b668fe6b21 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/BuzzForumThreadScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/BuzzForumThreadScreen.kt @@ -45,13 +45,13 @@ import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.buzz_forum_no_replies import com.vitorpamplona.amethyst.commons.resources.buzz_forum_thread_title +import com.vitorpamplona.amethyst.commons.resources.chat_minichat_reply_count import com.vitorpamplona.amethyst.ui.layouts.DisappearingScaffold import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.topbars.TopBarWithBackButton @@ -191,7 +191,7 @@ private fun RepliesCountHeader(count: Int) { modifier = Modifier.size(16.dp), ) Text( - text = pluralStringResource(R.plurals.chat_minichat_reply_count, count, count), + text = pluralStringResource(Res.plurals.chat_minichat_reply_count, count, count), style = MaterialTheme.typography.bodyMedium, fontWeight = FontWeight.Medium, color = MaterialTheme.colorScheme.onSurfaceVariant, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/BuzzImportRow.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/BuzzImportRow.kt index 7af8efcdf5..771e10c40d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/BuzzImportRow.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/BuzzImportRow.kt @@ -41,19 +41,18 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color -import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.nip29RelayGroups.RelayGroupChannel import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.relay_group_member_count import com.vitorpamplona.amethyst.commons.resources.relay_group_no_messages_yet import com.vitorpamplona.amethyst.service.relayClient.reqCommand.channel.observeChannel import com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.observeUserName @@ -213,7 +212,7 @@ private fun BuzzImportRowContent( } lastNote?.createdAt()?.let { ts -> Text( - timeAgo(ts, LocalContext.current, prefix = ""), + timeAgo(ts, prefix = ""), style = MaterialTheme.typography.labelSmall, color = if (hasUnread) MaterialTheme.colorScheme.primary else MaterialTheme.colorScheme.onSurfaceVariant, maxLines = 1, @@ -247,7 +246,7 @@ private fun BuzzChannelPreviewLine( val preview: String = if (event == null) { if (memberCount > 0) { - pluralStringResource(R.plurals.relay_group_member_count, memberCount, memberCount) + pluralStringResource(Res.plurals.relay_group_member_count, memberCount, memberCount) } else { stringRes(Res.string.relay_group_no_messages_yet) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/BuzzWorkspaceOverflowMenu.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/BuzzWorkspaceOverflowMenu.kt index 0a556f6485..562a103abd 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/BuzzWorkspaceOverflowMenu.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/BuzzWorkspaceOverflowMenu.kt @@ -42,7 +42,6 @@ import androidx.compose.ui.platform.LocalClipboard import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.actions.BuzzInviteMinter import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols @@ -56,6 +55,7 @@ import com.vitorpamplona.amethyst.commons.resources.buzz_invite_dismiss import com.vitorpamplona.amethyst.commons.resources.buzz_invite_error_title import com.vitorpamplona.amethyst.commons.resources.buzz_invite_link_title import com.vitorpamplona.amethyst.commons.resources.buzz_invite_share +import com.vitorpamplona.amethyst.commons.resources.more_options import com.vitorpamplona.amethyst.ui.components.util.setText import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.stringRes @@ -94,7 +94,7 @@ fun BuzzWorkspaceOverflowMenu( IconButton(onClick = { menuOpen = true }) { Icon( symbol = MaterialSymbols.MoreVert, - contentDescription = stringRes(R.string.more_options), + contentDescription = stringRes(Res.string.more_options), modifier = Modifier.size(24.dp), ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/WorkflowRunBoardScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/WorkflowRunBoardScreen.kt index dadde9aa6d..aa547fdb9f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/WorkflowRunBoardScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/buzz/WorkflowRunBoardScreen.kt @@ -93,7 +93,6 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols @@ -134,6 +133,14 @@ import com.vitorpamplona.amethyst.commons.resources.buzz_workflow_no_description import com.vitorpamplona.amethyst.commons.resources.buzz_workflow_picker_choose import com.vitorpamplona.amethyst.commons.resources.buzz_workflow_picker_empty import com.vitorpamplona.amethyst.commons.resources.buzz_workflow_picker_label +import com.vitorpamplona.amethyst.commons.resources.buzz_workflow_pill_approved +import com.vitorpamplona.amethyst.commons.resources.buzz_workflow_pill_cancelled +import com.vitorpamplona.amethyst.commons.resources.buzz_workflow_pill_denied +import com.vitorpamplona.amethyst.commons.resources.buzz_workflow_pill_failed +import com.vitorpamplona.amethyst.commons.resources.buzz_workflow_pill_needs_approval +import com.vitorpamplona.amethyst.commons.resources.buzz_workflow_pill_queued +import com.vitorpamplona.amethyst.commons.resources.buzz_workflow_pill_shipped +import com.vitorpamplona.amethyst.commons.resources.buzz_workflow_pill_working import com.vitorpamplona.amethyst.commons.resources.buzz_workflow_publishing import com.vitorpamplona.amethyst.commons.resources.buzz_workflow_readonly_approver import com.vitorpamplona.amethyst.commons.resources.buzz_workflow_runs_title @@ -992,12 +999,12 @@ private fun styleColors(style: RunStyle): Pair = private fun pillContent(state: WorkflowRunState): Pair = when (state) { - WorkflowRunState.TRIGGERED -> R.string.buzz_workflow_pill_queued to MaterialSymbols.Schedule - WorkflowRunState.RUNNING -> R.string.buzz_workflow_pill_working to MaterialSymbols.Bolt - WorkflowRunState.AWAITING_APPROVAL -> R.string.buzz_workflow_pill_needs_approval to MaterialSymbols.Gavel - WorkflowRunState.APPROVED -> R.string.buzz_workflow_pill_approved to MaterialSymbols.CheckCircle - WorkflowRunState.COMPLETED -> R.string.buzz_workflow_pill_shipped to MaterialSymbols.CheckCircle - WorkflowRunState.FAILED -> R.string.buzz_workflow_pill_failed to MaterialSymbols.Error - WorkflowRunState.CANCELLED -> R.string.buzz_workflow_pill_cancelled to MaterialSymbols.Cancel - WorkflowRunState.DENIED -> R.string.buzz_workflow_pill_denied to MaterialSymbols.Close + WorkflowRunState.TRIGGERED -> Res.string.buzz_workflow_pill_queued to MaterialSymbols.Schedule + WorkflowRunState.RUNNING -> Res.string.buzz_workflow_pill_working to MaterialSymbols.Bolt + WorkflowRunState.AWAITING_APPROVAL -> Res.string.buzz_workflow_pill_needs_approval to MaterialSymbols.Gavel + WorkflowRunState.APPROVED -> Res.string.buzz_workflow_pill_approved to MaterialSymbols.CheckCircle + WorkflowRunState.COMPLETED -> Res.string.buzz_workflow_pill_shipped to MaterialSymbols.CheckCircle + WorkflowRunState.FAILED -> Res.string.buzz_workflow_pill_failed to MaterialSymbols.Error + WorkflowRunState.CANCELLED -> Res.string.buzz_workflow_pill_cancelled to MaterialSymbols.Cancel + WorkflowRunState.DENIED -> Res.string.buzz_workflow_pill_denied to MaterialSymbols.Close } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/CalendarCollectionsView.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/CalendarCollectionsView.kt index 06c638559d..c575117d22 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/CalendarCollectionsView.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/CalendarCollectionsView.kt @@ -59,6 +59,7 @@ import com.vitorpamplona.amethyst.commons.resources.calendar_collection_count import com.vitorpamplona.amethyst.commons.resources.calendar_empty_collections_subtitle import com.vitorpamplona.amethyst.commons.resources.calendar_empty_collections_title import com.vitorpamplona.amethyst.commons.resources.calendar_export_event +import com.vitorpamplona.amethyst.commons.resources.calendar_export_share_title import com.vitorpamplona.amethyst.commons.ui.layouts.rememberFeedContentPadding import com.vitorpamplona.amethyst.ui.feeds.RefresheableBox import com.vitorpamplona.amethyst.ui.feeds.ScrollStateKeys @@ -156,6 +157,7 @@ fun CalendarCollectionCard( val description = remember(note.idHex) { event.content.take(180) } val count = remember(note.idHex) { event.calendarEventAddresses().size } val context = LocalContext.current + val icsChooserTitle = stringRes(Res.string.calendar_export_share_title) // Calendar collections are addressable (kind 31924); route to the dedicated // CalendarEventDetail screen instead of the generic Route.Note thread view, which @@ -220,7 +222,7 @@ fun CalendarCollectionCard( val members = collectMembers(event) val ics = IcsExport.calendarToIcs(event, members, TimeUtils.now()) val filename = IcsExport.calendarFilename(event) - shareIcs(context, filename, ics) + shareIcs(context, filename, ics, icsChooserTitle) }) { Icon( symbol = MaterialSymbols.Share, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/CalendarDayA11y.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/CalendarDayA11y.kt index d7c35ca73a..7de37aadf9 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/CalendarDayA11y.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/CalendarDayA11y.kt @@ -22,8 +22,8 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn.calendars import androidx.compose.runtime.Composable import androidx.compose.ui.res.pluralStringResource -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.calendar_day_a11y_events import com.vitorpamplona.amethyst.commons.resources.calendar_day_a11y_no_events import com.vitorpamplona.amethyst.ui.stringRes @@ -38,5 +38,5 @@ fun calendarDayA11yLabel( if (count == 0) { stringRes(Res.string.calendar_day_a11y_no_events, dateLabel) } else { - pluralStringResource(R.plurals.calendar_day_a11y_events, count, dateLabel, count) + pluralStringResource(Res.plurals.calendar_day_a11y_events, count, dateLabel, count) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/CalendarRelativeTime.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/CalendarRelativeTime.kt index ebc8caa322..76ad90b9f7 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/CalendarRelativeTime.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/CalendarRelativeTime.kt @@ -22,8 +22,10 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn.calendars import android.content.Context import android.text.format.DateUtils -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.nip52Calendar.CalendarAppointmentView +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.calendar_relative_ongoing +import com.vitorpamplona.amethyst.commons.resources.calendar_relative_ongoing_with_end /** * Localised "starts in 2 hours" / "started 5 minutes ago" / "Happening now · ends in 2 hours" @@ -48,7 +50,7 @@ fun relativeTimeLabel( val end = view.endSeconds if (end != null && start <= nowSeconds && nowSeconds <= end) { - val ongoing = context.getString(R.string.calendar_relative_ongoing) + val ongoing = context.getString(Res.string.calendar_relative_ongoing) val endsIn = DateUtils .getRelativeTimeSpanString( @@ -57,7 +59,7 @@ fun relativeTimeLabel( if (view.isAllDay) DateUtils.DAY_IN_MILLIS else DateUtils.MINUTE_IN_MILLIS, DateUtils.FORMAT_ABBREV_RELATIVE, ).toString() - return context.getString(R.string.calendar_relative_ongoing_with_end, ongoing, endsIn) + return context.getString(Res.string.calendar_relative_ongoing_with_end, ongoing, endsIn) } val minResolution = diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/CalendarReminderSettingsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/CalendarReminderSettingsScreen.kt index 669a21a1f1..b60fa4f48a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/CalendarReminderSettingsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/CalendarReminderSettingsScreen.kt @@ -42,11 +42,15 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.calendar_reminder_settings_enabled_subtitle +import com.vitorpamplona.amethyst.commons.resources.calendar_reminder_settings_enabled_title +import com.vitorpamplona.amethyst.commons.resources.calendar_reminder_settings_lead_choice import com.vitorpamplona.amethyst.commons.resources.calendar_reminder_settings_lead_subtitle import com.vitorpamplona.amethyst.commons.resources.calendar_reminder_settings_lead_title +import com.vitorpamplona.amethyst.commons.resources.calendar_reminder_settings_title +import com.vitorpamplona.amethyst.commons.resources.settings_section_reminders import com.vitorpamplona.amethyst.service.calendar.CalendarReminderPrefs import com.vitorpamplona.amethyst.service.calendar.CalendarReminderWorker import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -67,7 +71,7 @@ fun CalendarReminderSettingsScreen(nav: INav) { Scaffold( topBar = { - TopBarWithBackButton(stringRes(R.string.calendar_reminder_settings_title), nav) + TopBarWithBackButton(stringRes(Res.string.calendar_reminder_settings_title), nav) }, ) { padding -> Column( @@ -78,14 +82,14 @@ fun CalendarReminderSettingsScreen(nav: INav) { .verticalScroll(rememberScrollState()) .padding(horizontal = 16.dp, vertical = 12.dp), ) { - SettingsSection(R.string.settings_section_reminders) { + SettingsSection(Res.string.settings_section_reminders) { // The switch writes straight to the device-scoped prefs and re-schedules (or // cancels) the WorkManager job on the spot — no Save button, the change is applied // the instant it's toggled. SettingsSwitchTile( icon = MaterialSymbols.Notifications, - title = R.string.calendar_reminder_settings_enabled_title, - description = R.string.calendar_reminder_settings_enabled_subtitle, + title = Res.string.calendar_reminder_settings_enabled_title, + description = Res.string.calendar_reminder_settings_enabled_subtitle, checked = enabled, onCheckedChange = { enabled = it @@ -119,7 +123,7 @@ fun CalendarReminderSettingsScreen(nav: INav) { shape = SegmentedButtonDefaults.itemShape(index = index, count = choices.size), icon = {}, ) { - Text(pluralStringResource(R.plurals.calendar_reminder_settings_lead_choice, choice, choice)) + Text(pluralStringResource(Res.plurals.calendar_reminder_settings_lead_choice, choice, choice)) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/CalendarsViewMode.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/CalendarsViewMode.kt index 76dace19ad..9dd2439014 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/CalendarsViewMode.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/CalendarsViewMode.kt @@ -20,8 +20,12 @@ */ package com.vitorpamplona.amethyst.ui.screen.loggedIn.calendars -import androidx.annotation.StringRes -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.calendar_view_day +import com.vitorpamplona.amethyst.commons.resources.calendar_view_feed +import com.vitorpamplona.amethyst.commons.resources.calendar_view_month +import com.vitorpamplona.amethyst.commons.resources.calendar_view_week +import org.jetbrains.compose.resources.StringResource /** * Lenses on the same appointment timeline. Calendar *collections* (kind 31924) live on their @@ -29,10 +33,10 @@ import com.vitorpamplona.amethyst.R * of the appointment data. */ enum class CalendarsViewMode( - @StringRes val labelRes: Int, + val labelRes: StringResource, ) { - FEED(R.string.calendar_view_feed), - MONTH(R.string.calendar_view_month), - WEEK(R.string.calendar_view_week), - DAY(R.string.calendar_view_day), + FEED(Res.string.calendar_view_feed), + MONTH(Res.string.calendar_view_month), + WEEK(Res.string.calendar_view_week), + DAY(Res.string.calendar_view_day), } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/IcsShare.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/IcsShare.kt index 7a3ce84c45..fad8c29ef1 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/IcsShare.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/IcsShare.kt @@ -23,8 +23,6 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn.calendars import android.content.Context import android.content.Intent import androidx.core.content.FileProvider -import com.vitorpamplona.amethyst.R -import com.vitorpamplona.amethyst.ui.stringRes import java.io.File /** @@ -40,6 +38,7 @@ fun shareIcs( context: Context, filename: String, content: String, + chooserTitle: String, ) { val dir = File(context.cacheDir, "calendar").apply { mkdirs() } val file = File(dir, filename) @@ -55,7 +54,7 @@ fun shareIcs( } val chooser = Intent - .createChooser(intent, stringRes(context, R.string.calendar_export_share_title)) + .createChooser(intent, chooserTitle) .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) context.startActivity(chooser) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/create/CalendarDateTimePickerButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/create/CalendarDateTimePickerButton.kt index a08ea64f93..009fc7abaf 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/create/CalendarDateTimePickerButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/create/CalendarDateTimePickerButton.kt @@ -39,9 +39,9 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.platform.LocalContext -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.calendar_event_pick_time +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.confirm import com.vitorpamplona.amethyst.ui.stringRes import java.text.DateFormat @@ -135,7 +135,7 @@ fun CalendarDateTimePickerButton( TextButton(onClick = { reset() showDate = false - }) { Text(stringRes(R.string.cancel)) } + }) { Text(stringRes(Res.string.cancel)) } }, ) { DatePicker(state = datePickerState) @@ -165,7 +165,7 @@ fun CalendarDateTimePickerButton( TextButton(onClick = { reset() showTime = false - }) { Text(stringRes(R.string.cancel)) } + }) { Text(stringRes(Res.string.cancel)) } }, ) { TimePicker(state = timePickerState) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/create/NewCalendarCollectionScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/create/NewCalendarCollectionScreen.kt index aea68fcb28..29388e7914 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/create/NewCalendarCollectionScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/create/NewCalendarCollectionScreen.kt @@ -54,7 +54,6 @@ import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.calendar_all_day import com.vitorpamplona.amethyst.commons.resources.calendar_collection_delete @@ -66,6 +65,9 @@ import com.vitorpamplona.amethyst.commons.resources.calendar_collection_invalid import com.vitorpamplona.amethyst.commons.resources.calendar_collection_no_events_yet import com.vitorpamplona.amethyst.commons.resources.calendar_collection_title import com.vitorpamplona.amethyst.commons.resources.calendar_untitled +import com.vitorpamplona.amethyst.commons.resources.cancel +import com.vitorpamplona.amethyst.commons.resources.edit_calendar_collection +import com.vitorpamplona.amethyst.commons.resources.new_calendar_collection import com.vitorpamplona.amethyst.ui.insets.imePaddingSafe import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.topbars.SavingTopBar @@ -86,7 +88,7 @@ fun NewCalendarCollectionScreen( Scaffold( topBar = { SavingTopBar( - titleRes = if (editDTag == null) R.string.new_calendar_collection else R.string.edit_calendar_collection, + titleRes = if (editDTag == null) Res.string.new_calendar_collection else Res.string.edit_calendar_collection, onCancel = { nav.popBack() }, onPost = { accountViewModel.launchSigner { @@ -183,7 +185,7 @@ private fun DeleteCalendarRow( }, dismissButton = { TextButton(onClick = { confirming = false }) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/create/NewCalendarEventScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/create/NewCalendarEventScreen.kt index 2defbbac11..bd8feec2e6 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/create/NewCalendarEventScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/create/NewCalendarEventScreen.kt @@ -55,7 +55,6 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res @@ -65,6 +64,8 @@ import com.vitorpamplona.amethyst.commons.resources.calendar_event_end import com.vitorpamplona.amethyst.commons.resources.calendar_event_end_before_start import com.vitorpamplona.amethyst.commons.resources.calendar_event_hashtags import com.vitorpamplona.amethyst.commons.resources.calendar_event_image +import com.vitorpamplona.amethyst.commons.resources.calendar_event_image_upload_failed +import com.vitorpamplona.amethyst.commons.resources.calendar_event_image_upload_failed_body import com.vitorpamplona.amethyst.commons.resources.calendar_event_invalid import com.vitorpamplona.amethyst.commons.resources.calendar_event_location import com.vitorpamplona.amethyst.commons.resources.calendar_event_participant_input @@ -75,6 +76,8 @@ import com.vitorpamplona.amethyst.commons.resources.calendar_event_pick_image import com.vitorpamplona.amethyst.commons.resources.calendar_event_start import com.vitorpamplona.amethyst.commons.resources.calendar_event_summary import com.vitorpamplona.amethyst.commons.resources.calendar_event_title +import com.vitorpamplona.amethyst.commons.resources.edit_calendar_event +import com.vitorpamplona.amethyst.commons.resources.new_calendar_event import com.vitorpamplona.amethyst.ui.insets.imePaddingSafe import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.topbars.SavingTopBar @@ -108,7 +111,7 @@ fun NewCalendarEventScreen( Scaffold( topBar = { SavingTopBar( - titleRes = if (vm.isEditing) R.string.edit_calendar_event else R.string.new_calendar_event, + titleRes = if (vm.isEditing) Res.string.edit_calendar_event else Res.string.new_calendar_event, onCancel = { nav.popBack() }, onPost = { accountViewModel.launchSigner { @@ -275,8 +278,8 @@ private fun ImageRow( val ok = vm.uploadAndSetImage(uri, mime, context) if (!ok) { accountViewModel.toastManager.toast( - R.string.calendar_event_image_upload_failed, - R.string.calendar_event_image_upload_failed_body, + Res.string.calendar_event_image_upload_failed, + Res.string.calendar_event_image_upload_failed_body, ) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/detail/CalendarEventDetailScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/detail/CalendarEventDetailScreen.kt index 6f14d86a3b..00f6f7f233 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/detail/CalendarEventDetailScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/calendars/detail/CalendarEventDetailScreen.kt @@ -58,7 +58,6 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.core.net.toUri import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note @@ -66,6 +65,7 @@ import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.nip52Calendar.IcsExport import com.vitorpamplona.amethyst.commons.model.nip52Calendar.appointmentView import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back import com.vitorpamplona.amethyst.commons.resources.calendar_add_to_calendar_action import com.vitorpamplona.amethyst.commons.resources.calendar_add_to_phone_calendar import com.vitorpamplona.amethyst.commons.resources.calendar_collection_count @@ -74,6 +74,9 @@ import com.vitorpamplona.amethyst.commons.resources.calendar_event_in_calendars import com.vitorpamplona.amethyst.commons.resources.calendar_event_in_no_calendars import com.vitorpamplona.amethyst.commons.resources.calendar_event_loading import com.vitorpamplona.amethyst.commons.resources.calendar_export_event +import com.vitorpamplona.amethyst.commons.resources.calendar_export_share_title +import com.vitorpamplona.amethyst.commons.resources.calendar_open_in_maps +import com.vitorpamplona.amethyst.commons.resources.calendar_open_link import com.vitorpamplona.amethyst.commons.resources.calendar_participants_section import com.vitorpamplona.amethyst.commons.resources.calendar_rsvp_going_prefixed import com.vitorpamplona.amethyst.commons.resources.calendar_rsvp_maybe_prefixed @@ -83,6 +86,7 @@ import com.vitorpamplona.amethyst.commons.resources.calendar_rsvp_section import com.vitorpamplona.amethyst.commons.resources.calendar_share_nostr import com.vitorpamplona.amethyst.commons.resources.calendar_share_nostr_title import com.vitorpamplona.amethyst.commons.resources.calendar_untitled +import com.vitorpamplona.amethyst.commons.resources.edit_calendar_event import com.vitorpamplona.amethyst.commons.resources.route_calendar_event_detail import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.observeNote import com.vitorpamplona.amethyst.ui.components.MyAsyncImage @@ -165,7 +169,7 @@ fun CalendarEventDetailScreen( IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), modifier = Modifier.size(20.dp), tint = MaterialTheme.colorScheme.onSurface, ) @@ -173,6 +177,7 @@ fun CalendarEventDetailScreen( }, actions = { val context = LocalContext.current + val icsChooserTitle = stringRes(Res.string.calendar_export_share_title) // Two share modes: // - .ics for non-nostr calendar apps (Google Calendar / iOS / Outlook) // - nostr:naddr… link for sharing inside the nostr ecosystem (in DMs, @@ -187,7 +192,7 @@ fun CalendarEventDetailScreen( if (!addToPhoneCalendar(context, event)) { val ics = IcsExport.appointmentToIcs(event, targetAddress, TimeUtils.now()) val filename = IcsExport.appointmentFilename(event, targetAddress) - shareIcs(context, filename, ics) + shareIcs(context, filename, ics, icsChooserTitle) } }) { Icon( @@ -200,7 +205,7 @@ fun CalendarEventDetailScreen( IconButton(onClick = { val ics = IcsExport.appointmentToIcs(event, targetAddress, TimeUtils.now()) val filename = IcsExport.appointmentFilename(event, targetAddress) - shareIcs(context, filename, ics) + shareIcs(context, filename, ics, icsChooserTitle) }) { Icon( symbol = MaterialSymbols.Share, @@ -250,7 +255,7 @@ fun CalendarEventDetailScreen( }) { Icon( symbol = MaterialSymbols.Edit, - contentDescription = stringRes(R.string.edit_calendar_event), + contentDescription = stringRes(Res.string.edit_calendar_event), modifier = Modifier.size(20.dp), tint = MaterialTheme.colorScheme.onSurface, ) @@ -621,7 +626,7 @@ private fun LocationRow(location: String) { Icon( symbol = if (isUrl) MaterialSymbols.Link else MaterialSymbols.LocationOn, contentDescription = - stringRes(if (isUrl) R.string.calendar_open_link else R.string.calendar_open_in_maps), + stringRes(if (isUrl) Res.string.calendar_open_link else Res.string.calendar_open_in_maps), modifier = Modifier.size(18.dp), tint = MaterialTheme.colorScheme.primary, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/feed/ChatDeliveryTicks.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/feed/ChatDeliveryTicks.kt index 12360e246d..f70d8a1a24 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/feed/ChatDeliveryTicks.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/feed/ChatDeliveryTicks.kt @@ -44,7 +44,6 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols @@ -54,7 +53,11 @@ import com.vitorpamplona.amethyst.commons.relayClient.chatDelivery.ChatDelivery import com.vitorpamplona.amethyst.commons.relayClient.chatDelivery.RecipientDelivery import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.broadcast +import com.vitorpamplona.amethyst.commons.resources.chat_delivery_accepted +import com.vitorpamplona.amethyst.commons.resources.chat_delivery_delivered_all import com.vitorpamplona.amethyst.commons.resources.chat_delivery_details_title +import com.vitorpamplona.amethyst.commons.resources.chat_delivery_no_relay_info +import com.vitorpamplona.amethyst.commons.resources.chat_delivery_pending import com.vitorpamplona.amethyst.commons.resources.close import com.vitorpamplona.amethyst.ui.components.ClickableBox import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -71,6 +74,7 @@ import com.vitorpamplona.amethyst.ui.theme.allGoodColor import com.vitorpamplona.amethyst.ui.theme.placeholderText import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl import com.vitorpamplona.quartz.nip01Core.relay.normalizer.displayUrl +import org.jetbrains.compose.resources.StringResource /** * The timestamp on a chat message, as a single tap target that opens the relay / @@ -232,9 +236,9 @@ private fun ChatDeliveryDetailDialog( text = stringRes( if (delivery != null) { - R.string.chat_delivery_pending + Res.string.chat_delivery_pending } else { - R.string.chat_delivery_no_relay_info + Res.string.chat_delivery_no_relay_info }, ), color = MaterialTheme.colorScheme.placeholderText, @@ -311,9 +315,9 @@ private fun RelayDeliveryRow( @Composable private fun DeliveryStatusTick(delivered: Boolean) { if (delivered) { - TickIcon(MaterialSymbols.Done, R.string.chat_delivery_accepted, MaterialTheme.colorScheme.allGoodColor) + TickIcon(MaterialSymbols.Done, Res.string.chat_delivery_accepted, MaterialTheme.colorScheme.allGoodColor) } else { - TickIcon(MaterialSymbols.Schedule, R.string.chat_delivery_pending, MaterialTheme.colorScheme.placeholderText) + TickIcon(MaterialSymbols.Schedule, Res.string.chat_delivery_pending, MaterialTheme.colorScheme.placeholderText) } } @@ -328,9 +332,9 @@ private fun RenderDeliveryTicks( if (delivery == null) { // Untracked (sent before a restart): the seen-on relay set is the only signal. if (seenSomewhere) { - TickIcon(MaterialSymbols.Done, R.string.chat_delivery_accepted, pendingColor) + TickIcon(MaterialSymbols.Done, Res.string.chat_delivery_accepted, pendingColor) } else { - TickIcon(MaterialSymbols.Schedule, R.string.chat_delivery_pending, pendingColor) + TickIcon(MaterialSymbols.Schedule, Res.string.chat_delivery_pending, pendingColor) } return } @@ -372,20 +376,20 @@ private fun DeliveryLadderTick( ) { when { pending -> - TickIcon(MaterialSymbols.Schedule, R.string.chat_delivery_pending, MaterialTheme.colorScheme.placeholderText) + TickIcon(MaterialSymbols.Schedule, Res.string.chat_delivery_pending, MaterialTheme.colorScheme.placeholderText) fullyAccepted -> - TickIcon(MaterialSymbols.DoneAll, R.string.chat_delivery_delivered_all, MaterialTheme.colorScheme.allGoodColor) + TickIcon(MaterialSymbols.DoneAll, Res.string.chat_delivery_delivered_all, MaterialTheme.colorScheme.allGoodColor) else -> - TickIcon(MaterialSymbols.Done, R.string.chat_delivery_accepted, MaterialTheme.colorScheme.placeholderText) + TickIcon(MaterialSymbols.Done, Res.string.chat_delivery_accepted, MaterialTheme.colorScheme.placeholderText) } } @Composable private fun TickIcon( symbol: MaterialSymbol, - contentDescription: Int, + contentDescription: StringResource, tint: Color, ) { Icon( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/feed/ChatMessageActionSheet.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/feed/ChatMessageActionSheet.kt index cd02a0939a..534fd42fd4 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/feed/ChatMessageActionSheet.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/feed/ChatMessageActionSheet.kt @@ -55,7 +55,6 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols @@ -64,14 +63,19 @@ import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.concord.ConcordChannel import com.vitorpamplona.amethyst.commons.model.nip29RelayGroups.RelayGroupChannel import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.buzz_edit_message import com.vitorpamplona.amethyst.commons.resources.chat_delivery_details_title import com.vitorpamplona.amethyst.commons.resources.edit_draft +import com.vitorpamplona.amethyst.commons.resources.edit_message +import com.vitorpamplona.amethyst.commons.resources.error_dialog_zap_error +import com.vitorpamplona.amethyst.commons.resources.more_options import com.vitorpamplona.amethyst.commons.resources.quick_action_delete_dialog_btn import com.vitorpamplona.amethyst.commons.resources.quick_action_request_deletion_alert_body import com.vitorpamplona.amethyst.commons.resources.quick_action_request_deletion_alert_title import com.vitorpamplona.amethyst.commons.resources.relay_group_pin_message import com.vitorpamplona.amethyst.commons.resources.relay_group_unpin_message import com.vitorpamplona.amethyst.commons.resources.reply_description +import com.vitorpamplona.amethyst.commons.resources.show_less import com.vitorpamplona.amethyst.service.ZapPaymentHandler import com.vitorpamplona.amethyst.service.relayClient.reqCommand.channel.observeChannel import com.vitorpamplona.amethyst.ui.actions.EditPostView @@ -294,7 +298,7 @@ fun ChatMessageActionSheet( if (canEditBuzz || canEditConcord) { SectionDivider() TileRow { - val label = if (canEditBuzz) R.string.buzz_edit_message else R.string.edit_message + val label = if (canEditBuzz) Res.string.buzz_edit_message else Res.string.edit_message ActionTile(MaterialSymbols.Edit, stringRes(label)) { onWantsToEditChatMessage(note) onDismiss() @@ -435,7 +439,7 @@ private fun MoreActionsToggle( verticalAlignment = Alignment.CenterVertically, ) { Text( - text = stringRes(if (expanded) R.string.show_less else R.string.more_options), + text = stringRes(if (expanded) Res.string.show_less else Res.string.more_options), fontSize = 14.sp, color = MaterialTheme.colorScheme.onSurfaceVariant, ) @@ -637,7 +641,7 @@ private fun QuickZapAmountRow( val onError = { _: String, message: String, user: User? -> // Payment failed — drop the optimistic "zapping" indicator on the bubble. accountViewModel.endZapInFlight(note.idHex) - accountViewModel.toastManager.toast(R.string.error_dialog_zap_error, message, user) + accountViewModel.toastManager.toast(Res.string.error_dialog_zap_error, message, user) } val onPayViaIntent = { payables: ImmutableList -> diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/feed/ChatReactionChips.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/feed/ChatReactionChips.kt index 5d0803e2e3..848689dec6 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/feed/ChatReactionChips.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/feed/ChatReactionChips.kt @@ -51,7 +51,6 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.emojicoder.EmojiCoder import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols @@ -59,6 +58,8 @@ import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.concord.ConcordChannel import com.vitorpamplona.amethyst.commons.model.nip28PublicChats.PublicChatChannel import com.vitorpamplona.amethyst.commons.model.nip29RelayGroups.RelayGroupChannel +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.chat_minichat_reply_count import com.vitorpamplona.amethyst.commons.ui.components.AnimatedBorderTextCornerRadius import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.observeNoteMinichatReplyCount import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.observeNoteReactions @@ -277,7 +278,7 @@ private fun MinichatChip( modifier = Size14Modifier, ) Text( - text = pluralStringResource(R.plurals.chat_minichat_reply_count, count, count), + text = pluralStringResource(Res.plurals.chat_minichat_reply_count, count, count), fontSize = Font12SP, fontWeight = FontWeight.Bold, color = MaterialTheme.colorScheme.grayText, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/feed/ChatTimeAgo.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/feed/ChatTimeAgo.kt index 3fec4c55dc..8c6dd3d166 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/feed/ChatTimeAgo.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/feed/ChatTimeAgo.kt @@ -31,12 +31,12 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.nip29RelayGroups.RelayGroupChannel import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.expiration_date_label import com.vitorpamplona.amethyst.commons.resources.relay_group_pinned_content_description import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.note.elements.DisplayLocation @@ -178,13 +178,13 @@ fun ChatDisplayExpiration(expirationDate: Long) { Spacer(modifier = StdHorzSpacer) Icon( symbol = MaterialSymbols.Timer, - contentDescription = stringRes(R.string.expiration_date_label), + contentDescription = stringRes(Res.string.expiration_date_label), modifier = Modifier.size(12.dp), tint = MaterialTheme.colorScheme.placeholderText, ) val context = LocalContext.current Text( - text = timeAheadNoDot(expirationDate, context), + text = timeAheadNoDot(expirationDate), color = MaterialTheme.colorScheme.placeholderText, fontSize = Font12SP, maxLines = 1, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/feed/NewDateOrSubjectDivisor.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/feed/NewDateOrSubjectDivisor.kt index 1b54af6eb1..617f49d2cb 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/feed/NewDateOrSubjectDivisor.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/feed/NewDateOrSubjectDivisor.kt @@ -22,8 +22,10 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.feed import androidx.compose.runtime.Composable import androidx.compose.runtime.remember -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.never +import com.vitorpamplona.amethyst.commons.resources.today import com.vitorpamplona.amethyst.ui.note.dateFormatter import com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.feed.layouts.ChatDivisor import com.vitorpamplona.amethyst.ui.stringRes @@ -36,8 +38,8 @@ fun NewDateOrSubjectDivisor( ) { if (previous == null) return - val never = stringRes(R.string.never) - val today = stringRes(R.string.today) + val never = stringRes(Res.string.never) + val today = stringRes(Res.string.today) val prevDate = remember(previous) { dateFormatter(previous.event?.createdAt, never, today) } val date = remember(note) { dateFormatter(note.event?.createdAt, never, today) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/feed/types/RenderBuzzSystemMessage.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/feed/types/RenderBuzzSystemMessage.kt index 16de25a535..7dcb1cf369 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/feed/types/RenderBuzzSystemMessage.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/feed/types/RenderBuzzSystemMessage.kt @@ -27,7 +27,6 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.res.pluralStringResource -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.buzz_system_channel_archived @@ -51,6 +50,9 @@ import com.vitorpamplona.amethyst.commons.resources.buzz_system_unknown import com.vitorpamplona.amethyst.commons.resources.buzz_system_visibility_open import com.vitorpamplona.amethyst.commons.resources.buzz_system_visibility_other import com.vitorpamplona.amethyst.commons.resources.buzz_system_visibility_private +import com.vitorpamplona.amethyst.commons.resources.duration_days +import com.vitorpamplona.amethyst.commons.resources.duration_hours +import com.vitorpamplona.amethyst.commons.resources.duration_minutes import com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.observeUserName import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route @@ -190,15 +192,15 @@ private fun ttlDurationText(seconds: Long): String = when { seconds >= TimeUtils.ONE_DAY -> { val n = (seconds / TimeUtils.ONE_DAY).toInt() - pluralStringResource(R.plurals.duration_days, n, n) + pluralStringResource(Res.plurals.duration_days, n, n) } seconds >= TimeUtils.ONE_HOUR -> { val n = (seconds / TimeUtils.ONE_HOUR).toInt() - pluralStringResource(R.plurals.duration_hours, n, n) + pluralStringResource(Res.plurals.duration_hours, n, n) } else -> { val n = (seconds / TimeUtils.ONE_MINUTE).toInt().coerceAtLeast(1) - pluralStringResource(R.plurals.duration_minutes, n, n) + pluralStringResource(Res.plurals.duration_minutes, n, n) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/geohashChat/GeohashChatsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/geohashChat/GeohashChatsScreen.kt index 2967042ad3..d0b55e93f6 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/geohashChat/GeohashChatsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/geohashChat/GeohashChatsScreen.kt @@ -61,8 +61,9 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.location_channels import com.vitorpamplona.amethyst.ui.layouts.DisappearingScaffold import com.vitorpamplona.amethyst.ui.navigation.bottombars.AppBottomBar import com.vitorpamplona.amethyst.ui.navigation.bottombars.FabBottomBarPadded @@ -92,7 +93,7 @@ fun GeohashChatsScreen( topBar = { // No seed: this lists every location channel, so there is no one geohash to carry. UserDrawerSearchTopBar(accountViewModel, nav, null) { - Text(stringRes(R.string.location_channels), fontWeight = FontWeight.Bold) + Text(stringRes(Res.string.location_channels), fontWeight = FontWeight.Bold) } }, bottomBar = { @@ -109,7 +110,7 @@ fun GeohashChatsScreen( ) { SymbolIcon( symbol = MaterialSymbols.Add, - contentDescription = stringRes(R.string.location_channels), + contentDescription = stringRes(Res.string.location_channels), tint = Color.White, modifier = Modifier.size(26.dp), ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/CreateGroupScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/CreateGroupScreen.kt index a0604b0bf2..bad6d09076 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/CreateGroupScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/CreateGroupScreen.kt @@ -42,16 +42,18 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.description import com.vitorpamplona.amethyst.commons.resources.marmot_create_group_footer import com.vitorpamplona.amethyst.commons.resources.marmot_create_group_title +import com.vitorpamplona.amethyst.commons.resources.marmot_failed_to_create_group import com.vitorpamplona.amethyst.commons.resources.marmot_group_description_placeholder import com.vitorpamplona.amethyst.commons.resources.marmot_group_name import com.vitorpamplona.amethyst.commons.resources.marmot_keypackage_relays_not_set_message import com.vitorpamplona.amethyst.commons.resources.marmot_keypackage_relays_not_set_title import com.vitorpamplona.amethyst.commons.resources.marmot_skip_for_now import com.vitorpamplona.amethyst.commons.resources.marmot_use_outbox_relays +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.ui.actions.uploads.SelectedMedia import com.vitorpamplona.amethyst.ui.insets.imePaddingSafe import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -137,7 +139,7 @@ fun CreateGroupScreen( Toast .makeText( context, - stringRes(context, R.string.marmot_failed_to_create_group, e.message), + loadStringRes(Res.string.marmot_failed_to_create_group, e.message), Toast.LENGTH_LONG, ).show() } @@ -201,7 +203,7 @@ fun CreateGroupScreen( OutlinedTextField( value = groupDescription, onValueChange = { groupDescription = it }, - label = { Text(stringRes(R.string.description)) }, + label = { Text(stringRes(Res.string.description)) }, placeholder = { Text(stringRes(Res.string.marmot_group_description_placeholder)) }, modifier = Modifier.fillMaxWidth(), minLines = 3, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/EditGroupInfoScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/EditGroupInfoScreen.kt index c4498c5d7b..1219e2b062 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/EditGroupInfoScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/EditGroupInfoScreen.kt @@ -41,16 +41,19 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.description import com.vitorpamplona.amethyst.commons.resources.marmot_avatar_url import com.vitorpamplona.amethyst.commons.resources.marmot_avatar_url_footer import com.vitorpamplona.amethyst.commons.resources.marmot_avatar_url_placeholder import com.vitorpamplona.amethyst.commons.resources.marmot_edit_info_footer +import com.vitorpamplona.amethyst.commons.resources.marmot_failed_to_update import com.vitorpamplona.amethyst.commons.resources.marmot_group_description_placeholder +import com.vitorpamplona.amethyst.commons.resources.marmot_group_info_updated import com.vitorpamplona.amethyst.commons.resources.marmot_group_name import com.vitorpamplona.amethyst.commons.resources.marmot_group_name_placeholder import com.vitorpamplona.amethyst.commons.resources.marmot_legacy_group_no_avatar_url +import com.vitorpamplona.amethyst.commons.resources.save import com.vitorpamplona.amethyst.ui.actions.uploads.SelectedMedia import com.vitorpamplona.amethyst.ui.insets.imePaddingSafe import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -98,7 +101,7 @@ fun EditGroupInfoScreen( Scaffold( topBar = { ActionTopBar( - postRes = R.string.save, + postRes = Res.string.save, onCancel = { nav.popBack() }, onPost = { isSaving = true @@ -130,7 +133,7 @@ fun EditGroupInfoScreen( } launch(Dispatchers.Main) { Toast - .makeText(context, stringRes(context, R.string.marmot_group_info_updated), Toast.LENGTH_SHORT) + .makeText(context, stringRes(Res.string.marmot_group_info_updated), Toast.LENGTH_SHORT) .show() } nav.popBack() @@ -140,7 +143,7 @@ fun EditGroupInfoScreen( Toast .makeText( context, - stringRes(context, R.string.marmot_failed_to_update, e.message), + stringRes(Res.string.marmot_failed_to_update, e.message), Toast.LENGTH_LONG, ).show() } @@ -195,7 +198,7 @@ fun EditGroupInfoScreen( OutlinedTextField( value = description, onValueChange = { description = it }, - label = { Text(stringRes(R.string.description)) }, + label = { Text(stringRes(Res.string.description)) }, placeholder = { Text(stringRes(Res.string.marmot_group_description_placeholder)) }, modifier = Modifier.fillMaxWidth(), minLines = 3, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/MarmotGroupChatScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/MarmotGroupChatScreen.kt index 4ba619ce8e..c9b567386c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/MarmotGroupChatScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/MarmotGroupChatScreen.kt @@ -39,12 +39,13 @@ import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back import com.vitorpamplona.amethyst.commons.resources.marmot_add_member_action import com.vitorpamplona.amethyst.commons.resources.marmot_group_default_name +import com.vitorpamplona.amethyst.commons.resources.marmot_member_count import com.vitorpamplona.amethyst.ui.layouts.DisappearingScaffold import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route @@ -80,7 +81,7 @@ fun MarmotGroupChatScreen( IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), ) } }, @@ -114,7 +115,7 @@ fun MarmotGroupChatScreen( } if (memberCount > 0) { Text( - text = pluralStringResource(R.plurals.marmot_member_count, memberCount, memberCount), + text = pluralStringResource(Res.plurals.marmot_member_count, memberCount, memberCount), style = MaterialTheme.typography.bodySmall, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/MarmotGroupChatView.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/MarmotGroupChatView.kt index 7d4efc6ded..38f2b4e150 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/MarmotGroupChatView.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/MarmotGroupChatView.kt @@ -48,9 +48,13 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.marmot_group_composer_disbanding +import com.vitorpamplona.amethyst.commons.resources.marmot_group_composer_leaving +import com.vitorpamplona.amethyst.commons.resources.marmot_group_composer_removed import com.vitorpamplona.amethyst.commons.resources.marmot_group_default_name +import com.vitorpamplona.amethyst.commons.resources.marmot_not_a_member +import com.vitorpamplona.amethyst.commons.resources.reply_here import com.vitorpamplona.amethyst.ui.actions.MentionPreservingInputTransformation import com.vitorpamplona.amethyst.ui.actions.UrlUserTagOutputTransformation import com.vitorpamplona.amethyst.ui.actions.uploads.SelectFromGallery @@ -250,7 +254,7 @@ fun MarmotGroupMessageComposer( shape = EditFieldBorder, placeholder = { Text( - text = stringRes(R.string.reply_here), + text = stringRes(Res.string.reply_here), color = MaterialTheme.colorScheme.placeholderText, ) }, @@ -338,7 +342,7 @@ private fun MarmotGroupFileUploadDialog( Toast .makeText( context, - stringRes(context, R.string.marmot_not_a_member), + stringRes(Res.string.marmot_not_a_member), Toast.LENGTH_SHORT, ).show() } @@ -383,9 +387,9 @@ private fun MarmotGroupFileUploadDialog( private fun MarmotGroupClosedComposer(gate: LocalOutboundGate) { val message = when (gate) { - LocalOutboundGate.DISBANDING -> stringRes(R.string.marmot_group_composer_disbanding) - LocalOutboundGate.LEAVING -> stringRes(R.string.marmot_group_composer_leaving) - LocalOutboundGate.REMOVED -> stringRes(R.string.marmot_group_composer_removed) + LocalOutboundGate.DISBANDING -> stringRes(Res.string.marmot_group_composer_disbanding) + LocalOutboundGate.LEAVING -> stringRes(Res.string.marmot_group_composer_leaving) + LocalOutboundGate.REMOVED -> stringRes(Res.string.marmot_group_composer_removed) } Row( modifier = EditFieldModifier.fillMaxWidth(), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/MarmotGroupIconEditor.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/MarmotGroupIconEditor.kt index 2f5a3da1bf..92efb4a313 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/MarmotGroupIconEditor.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/MarmotGroupIconEditor.kt @@ -38,9 +38,10 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.marmotGroups.MarmotGroupImage import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.marmot_add_photo +import com.vitorpamplona.amethyst.commons.resources.marmot_change_photo import com.vitorpamplona.amethyst.commons.resources.marmot_group_icon import com.vitorpamplona.amethyst.commons.resources.marmot_remove_photo import com.vitorpamplona.amethyst.ui.actions.uploads.SelectedMedia @@ -110,7 +111,7 @@ fun MarmotGroupIconEditor( enabled = enabled, onClick = { launcher.launch(PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageOnly)) }, ) { - Text(stringRes(if (hasIcon) R.string.marmot_change_photo else R.string.marmot_add_photo)) + Text(stringRes(if (hasIcon) Res.string.marmot_change_photo else Res.string.marmot_add_photo)) } if (hasIcon) { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/MarmotGroupInfoScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/MarmotGroupInfoScreen.kt index bab18ae3dd..92e3fb1a5d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/MarmotGroupInfoScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/MarmotGroupInfoScreen.kt @@ -68,30 +68,48 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.marmot.GroupMemberInfo import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back +import com.vitorpamplona.amethyst.commons.resources.cancel +import com.vitorpamplona.amethyst.commons.resources.leave import com.vitorpamplona.amethyst.commons.resources.marmot_add_member import com.vitorpamplona.amethyst.commons.resources.marmot_add_member_placeholder import com.vitorpamplona.amethyst.commons.resources.marmot_add_to_group +import com.vitorpamplona.amethyst.commons.resources.marmot_adding_user +import com.vitorpamplona.amethyst.commons.resources.marmot_admin_granted +import com.vitorpamplona.amethyst.commons.resources.marmot_admin_revoked import com.vitorpamplona.amethyst.commons.resources.marmot_disband_group import com.vitorpamplona.amethyst.commons.resources.marmot_disband_group_action import com.vitorpamplona.amethyst.commons.resources.marmot_disband_group_confirm import com.vitorpamplona.amethyst.commons.resources.marmot_edit_group_info import com.vitorpamplona.amethyst.commons.resources.marmot_enable_encrypted_media import com.vitorpamplona.amethyst.commons.resources.marmot_enable_encrypted_media_explainer +import com.vitorpamplona.amethyst.commons.resources.marmot_enable_encrypted_media_needs_server +import com.vitorpamplona.amethyst.commons.resources.marmot_encrypted_media_enabled_toast +import com.vitorpamplona.amethyst.commons.resources.marmot_failed_to_add_user +import com.vitorpamplona.amethyst.commons.resources.marmot_failed_to_disband +import com.vitorpamplona.amethyst.commons.resources.marmot_failed_to_enable_encrypted_media +import com.vitorpamplona.amethyst.commons.resources.marmot_failed_to_grant_admin +import com.vitorpamplona.amethyst.commons.resources.marmot_failed_to_leave_group +import com.vitorpamplona.amethyst.commons.resources.marmot_failed_to_remove_member +import com.vitorpamplona.amethyst.commons.resources.marmot_failed_to_revoke_admin import com.vitorpamplona.amethyst.commons.resources.marmot_grant import com.vitorpamplona.amethyst.commons.resources.marmot_grant_admin_confirm import com.vitorpamplona.amethyst.commons.resources.marmot_grant_admin_privileges import com.vitorpamplona.amethyst.commons.resources.marmot_grant_admin_title +import com.vitorpamplona.amethyst.commons.resources.marmot_group_disbanded_toast +import com.vitorpamplona.amethyst.commons.resources.marmot_group_disbanding_toast import com.vitorpamplona.amethyst.commons.resources.marmot_group_fallback_name import com.vitorpamplona.amethyst.commons.resources.marmot_group_info_title import com.vitorpamplona.amethyst.commons.resources.marmot_keypackage_required import com.vitorpamplona.amethyst.commons.resources.marmot_leave_group import com.vitorpamplona.amethyst.commons.resources.marmot_leave_group_confirm import com.vitorpamplona.amethyst.commons.resources.marmot_legacy_group_no_disband +import com.vitorpamplona.amethyst.commons.resources.marmot_member_count +import com.vitorpamplona.amethyst.commons.resources.marmot_member_removed import com.vitorpamplona.amethyst.commons.resources.marmot_member_suffix_admin import com.vitorpamplona.amethyst.commons.resources.marmot_member_suffix_you import com.vitorpamplona.amethyst.commons.resources.marmot_relay_last_event @@ -105,8 +123,10 @@ import com.vitorpamplona.amethyst.commons.resources.marmot_revoke_admin_confirm import com.vitorpamplona.amethyst.commons.resources.marmot_revoke_admin_privileges import com.vitorpamplona.amethyst.commons.resources.marmot_revoke_admin_title import com.vitorpamplona.amethyst.commons.resources.marmot_this_group +import com.vitorpamplona.amethyst.commons.resources.marmot_unknown_error import com.vitorpamplona.amethyst.commons.resources.marmot_user_fallback_name import com.vitorpamplona.amethyst.commons.resources.members +import com.vitorpamplona.amethyst.commons.resources.remove import com.vitorpamplona.amethyst.model.nip11RelayInfo.loadRelayInfo import com.vitorpamplona.amethyst.ui.components.util.setText import com.vitorpamplona.amethyst.ui.insets.imePaddingSafe @@ -182,7 +202,7 @@ fun MarmotGroupInfoScreen( IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), ) } }, @@ -262,7 +282,7 @@ fun MarmotGroupInfoScreen( ) } Text( - text = pluralStringResource(R.plurals.marmot_member_count, members.size, members.size), + text = pluralStringResource(Res.plurals.marmot_member_count, members.size, members.size), style = MaterialTheme.typography.bodyMedium, color = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier.padding(top = 4.dp), @@ -321,7 +341,7 @@ fun MarmotGroupInfoScreen( Toast .makeText( context, - stringRes(context, R.string.marmot_enable_encrypted_media_needs_server), + stringRes(Res.string.marmot_enable_encrypted_media_needs_server), Toast.LENGTH_LONG, ).show() return@Button @@ -334,7 +354,7 @@ fun MarmotGroupInfoScreen( Toast .makeText( context, - stringRes(context, R.string.marmot_encrypted_media_enabled_toast), + stringRes(Res.string.marmot_encrypted_media_enabled_toast), Toast.LENGTH_SHORT, ).show() } @@ -345,7 +365,7 @@ fun MarmotGroupInfoScreen( context, stringRes( context, - R.string.marmot_failed_to_enable_encrypted_media, + Res.string.marmot_failed_to_enable_encrypted_media, e.message, ), Toast.LENGTH_LONG, @@ -445,7 +465,7 @@ fun MarmotGroupInfoScreen( onAdd = { user -> isAdding = true isAddError = false - addStatus = stringRes(context, R.string.marmot_adding_user, user.toBestDisplayName()) + addStatus = stringRes(Res.string.marmot_adding_user, user.toBestDisplayName()) val targetPubkey = user.pubkeyHex val targetName = user.toBestDisplayName() scope.launch(Dispatchers.IO) { @@ -457,11 +477,11 @@ fun MarmotGroupInfoScreen( addSearchInput = "" userSuggestions.reset() } else { - addStatus = stringRes(context, R.string.marmot_failed_to_add_user, targetName, result.removePrefix("Error: ")) + addStatus = stringRes(Res.string.marmot_failed_to_add_user, targetName, result.removePrefix("Error: ")) isAddError = true } } catch (e: Exception) { - addStatus = stringRes(context, R.string.marmot_failed_to_add_user, targetName, e.message ?: stringRes(context, R.string.marmot_unknown_error)) + addStatus = stringRes(Res.string.marmot_failed_to_add_user, targetName, e.message ?: stringRes(Res.string.marmot_unknown_error)) isAddError = true } finally { isAdding = false @@ -488,7 +508,7 @@ fun MarmotGroupInfoScreen( Toast .makeText( context, - stringRes(context, R.string.marmot_failed_to_leave_group, e.message), + stringRes(Res.string.marmot_failed_to_leave_group, e.message), Toast.LENGTH_LONG, ).show() } @@ -521,9 +541,9 @@ fun MarmotGroupInfoScreen( stringRes( context, if (ended) { - R.string.marmot_group_disbanded_toast + Res.string.marmot_group_disbanded_toast } else { - R.string.marmot_group_disbanding_toast + Res.string.marmot_group_disbanding_toast }, ), Toast.LENGTH_SHORT, @@ -539,7 +559,7 @@ fun MarmotGroupInfoScreen( Toast .makeText( context, - stringRes(context, R.string.marmot_failed_to_disband, e.message), + stringRes(Res.string.marmot_failed_to_disband, e.message), Toast.LENGTH_LONG, ).show() } @@ -561,7 +581,7 @@ fun MarmotGroupInfoScreen( accountViewModel.removeMarmotGroupMember(nostrGroupId, member.leafIndex) launch(Dispatchers.Main) { Toast - .makeText(context, stringRes(context, R.string.marmot_member_removed), Toast.LENGTH_SHORT) + .makeText(context, stringRes(Res.string.marmot_member_removed), Toast.LENGTH_SHORT) .show() } } catch (e: Exception) { @@ -569,7 +589,7 @@ fun MarmotGroupInfoScreen( Toast .makeText( context, - stringRes(context, R.string.marmot_failed_to_remove_member, e.message), + stringRes(Res.string.marmot_failed_to_remove_member, e.message), Toast.LENGTH_LONG, ).show() } @@ -591,7 +611,7 @@ fun MarmotGroupInfoScreen( accountViewModel.grantMarmotGroupAdmin(nostrGroupId, member.pubkey) launch(Dispatchers.Main) { Toast - .makeText(context, stringRes(context, R.string.marmot_admin_granted), Toast.LENGTH_SHORT) + .makeText(context, stringRes(Res.string.marmot_admin_granted), Toast.LENGTH_SHORT) .show() } } catch (e: Exception) { @@ -599,7 +619,7 @@ fun MarmotGroupInfoScreen( Toast .makeText( context, - stringRes(context, R.string.marmot_failed_to_grant_admin, e.message), + stringRes(Res.string.marmot_failed_to_grant_admin, e.message), Toast.LENGTH_LONG, ).show() } @@ -621,7 +641,7 @@ fun MarmotGroupInfoScreen( accountViewModel.revokeMarmotGroupAdmin(nostrGroupId, member.pubkey) launch(Dispatchers.Main) { Toast - .makeText(context, stringRes(context, R.string.marmot_admin_revoked), Toast.LENGTH_SHORT) + .makeText(context, stringRes(Res.string.marmot_admin_revoked), Toast.LENGTH_SHORT) .show() } } catch (e: Exception) { @@ -629,7 +649,7 @@ fun MarmotGroupInfoScreen( Toast .makeText( context, - stringRes(context, R.string.marmot_failed_to_revoke_admin, e.message), + stringRes(Res.string.marmot_failed_to_revoke_admin, e.message), Toast.LENGTH_LONG, ).show() } @@ -801,12 +821,12 @@ fun LeaveGroupDialog( }, confirmButton = { TextButton(onClick = onConfirm) { - Text(stringRes(R.string.leave), color = MaterialTheme.colorScheme.error) + Text(stringRes(Res.string.leave), color = MaterialTheme.colorScheme.error) } }, dismissButton = { TextButton(onClick = onDismiss) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) @@ -838,7 +858,7 @@ fun DisbandGroupDialog( }, dismissButton = { TextButton(onClick = onDismiss) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) @@ -862,12 +882,12 @@ private fun ConfirmRemoveMemberDialog( }, confirmButton = { TextButton(onClick = onConfirm) { - Text(stringRes(R.string.remove), color = MaterialTheme.colorScheme.error) + Text(stringRes(Res.string.remove), color = MaterialTheme.colorScheme.error) } }, dismissButton = { TextButton(onClick = onDismiss) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) @@ -896,7 +916,7 @@ private fun ConfirmGrantAdminDialog( }, dismissButton = { TextButton(onClick = onDismiss) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) @@ -925,7 +945,7 @@ private fun ConfirmRevokeAdminDialog( }, dismissButton = { TextButton(onClick = onDismiss) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) @@ -1098,7 +1118,7 @@ private fun RelayHealthRow( if (lastSeen == null) { stringRes(Res.string.marmot_relay_no_events) } else { - stringRes(Res.string.marmot_relay_last_event, timeAgo(lastSeen, context)) + stringRes(Res.string.marmot_relay_last_event, timeAgo(lastSeen)) } Row( modifier = diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/MarmotGroupListScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/MarmotGroupListScreen.kt index 52239ce076..490542cd09 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/MarmotGroupListScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/MarmotGroupListScreen.kt @@ -60,14 +60,15 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.marmotGroups.MarmotGroupChatroom import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back import com.vitorpamplona.amethyst.commons.resources.marmot_create_group import com.vitorpamplona.amethyst.commons.resources.marmot_group_fallback_name import com.vitorpamplona.amethyst.commons.resources.marmot_groups_title +import com.vitorpamplona.amethyst.commons.resources.marmot_message_count import com.vitorpamplona.amethyst.commons.resources.marmot_no_groups import com.vitorpamplona.amethyst.commons.resources.marmot_no_groups_desc import com.vitorpamplona.amethyst.commons.resources.marmot_no_invitations @@ -126,7 +127,7 @@ fun MarmotGroupListScreen( IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), ) } }, @@ -342,7 +343,7 @@ fun MarmotGroupListItem( } } else { Text( - text = pluralStringResource(R.plurals.marmot_message_count, chatroom.messages.size, chatroom.messages.size), + text = pluralStringResource(Res.plurals.marmot_message_count, chatroom.messages.size, chatroom.messages.size), style = MaterialTheme.typography.labelSmall, color = MaterialTheme.colorScheme.onSurfaceVariant, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/send/MarmotFileUploader.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/send/MarmotFileUploader.kt index 81ba7c19cc..51a3ff7a77 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/send/MarmotFileUploader.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/send/MarmotFileUploader.kt @@ -22,13 +22,14 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.marmotGroup.send import android.content.Context import android.net.Uri -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media_no_details +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.uploads.MediaCompressor import com.vitorpamplona.amethyst.service.uploads.UploadOrchestrator import com.vitorpamplona.amethyst.service.uploads.UploadingState import com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.utils.ChatFileUploadState -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.marmot.appComponents.EncryptedMediaPolicyV2 import com.vitorpamplona.quartz.marmot.appComponents.EncryptedMediaReferenceV2 import com.vitorpamplona.quartz.marmot.appComponents.EncryptedMediaV2Cipher @@ -175,12 +176,12 @@ class MarmotFileUploader( } else { val errorMessage = if (state is UploadingState.Error) { - stringRes(context, state.errorResource, *state.params) + loadStringRes(state.errorResource, *state.params) } else { "Upload failed for $filename" } onError( - stringRes(context, R.string.failed_to_upload_media_no_details), + loadStringRes(Res.string.failed_to_upload_media_no_details), errorMessage, ) viewState.mediaUploadTracker.finishUpload() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/send/MarmotGroupIconUploader.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/send/MarmotGroupIconUploader.kt index accf66d404..0024b1360f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/send/MarmotGroupIconUploader.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/marmotGroup/send/MarmotGroupIconUploader.kt @@ -22,13 +22,13 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.marmotGroup.send import android.content.Context import android.net.Uri +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.uploads.CompressorQuality import com.vitorpamplona.amethyst.service.uploads.MediaCompressor import com.vitorpamplona.amethyst.service.uploads.UploadOrchestrator import com.vitorpamplona.amethyst.service.uploads.UploadingState import com.vitorpamplona.amethyst.ui.actions.mediaServers.ServerName -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.marmot.mip01Groups.MarmotGroupImageCipher import com.vitorpamplona.quartz.marmot.mip01Groups.MarmotGroupImageEncryption import com.vitorpamplona.quartz.nip01Core.core.HexKey @@ -138,7 +138,7 @@ class MarmotGroupIconUploader( val message = if (state is UploadingState.Error) { - stringRes(context, state.errorResource, *state.params) + loadStringRes(state.errorResource, *state.params) } else { "Group icon upload failed" } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/minichat/MinichatScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/minichat/MinichatScreen.kt index 4f9a9a50db..44e3ae75d8 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/minichat/MinichatScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/minichat/MinichatScreen.kt @@ -53,15 +53,16 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.concord.ConcordChannel import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back import com.vitorpamplona.amethyst.commons.resources.chat_minichat_title import com.vitorpamplona.amethyst.commons.resources.chat_send_image_title import com.vitorpamplona.amethyst.commons.resources.concord_open_channel +import com.vitorpamplona.amethyst.commons.resources.reply_here import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.EventFinderFilterAssemblerSubscription import com.vitorpamplona.amethyst.ui.actions.uploads.SelectFromGallery import com.vitorpamplona.amethyst.ui.actions.uploads.SelectedMedia @@ -166,7 +167,7 @@ fun MinichatScreen( title = { Text(stringRes(Res.string.chat_minichat_title), maxLines = 1) }, navigationIcon = { IconButton(onClick = { nav.popBack() }) { - SymbolIcon(symbol = MaterialSymbols.AutoMirrored.ArrowBack, contentDescription = stringRes(R.string.back)) + SymbolIcon(symbol = MaterialSymbols.AutoMirrored.ArrowBack, contentDescription = stringRes(Res.string.back)) } }, actions = { @@ -270,7 +271,7 @@ fun MinichatScreen( shape = EditFieldBorder, placeholder = { Text( - text = stringRes(R.string.reply_here), + text = stringRes(Res.string.reply_here), color = MaterialTheme.colorScheme.placeholderText, ) }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/header/DmReportWarningCard.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/header/DmReportWarningCard.kt index 121cee5eaf..8223038b8c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/header/DmReportWarningCard.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/header/DmReportWarningCard.kt @@ -55,11 +55,11 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.nip56Reports.UserReportWarningState import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.dm_sender_reported import com.vitorpamplona.amethyst.commons.resources.dm_sender_reported_dismiss import com.vitorpamplona.amethyst.commons.resources.dm_sender_reported_hide import com.vitorpamplona.amethyst.commons.resources.dm_sender_reported_icon @@ -307,7 +307,7 @@ private fun OverflowChip(count: Int) { @Composable private fun reportWarningHeadline(state: UserReportWarningState): String = pluralStringResource( - R.plurals.dm_sender_reported, + Res.plurals.dm_sender_reported, state.reporterCount, state.reporterCount, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/header/NewChatroomSubjectDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/header/NewChatroomSubjectDialog.kt index e05c96bab3..48e295c873 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/header/NewChatroomSubjectDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/header/NewChatroomSubjectDialog.kt @@ -46,9 +46,9 @@ import androidx.compose.ui.text.style.TextDirection import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.messages_new_message_subject import com.vitorpamplona.amethyst.commons.resources.messages_new_message_subject_caption import com.vitorpamplona.amethyst.commons.resources.messages_new_subject_message import com.vitorpamplona.amethyst.commons.resources.messages_new_subject_message_placeholder @@ -123,7 +123,7 @@ fun NewChatroomSubjectDialog( Spacer(modifier = Modifier.height(15.dp)) OutlinedTextField( - label = { Text(text = stringRes(R.string.messages_new_message_subject)) }, + label = { Text(text = stringRes(Res.string.messages_new_message_subject)) }, modifier = Modifier.fillMaxWidth(), value = groupName.value, onValueChange = { groupName.value = it }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/send/NewGroupDMScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/send/NewGroupDMScreen.kt index 9fe6d48b1c..e9e1085ddb 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/send/NewGroupDMScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/send/NewGroupDMScreen.kt @@ -67,17 +67,21 @@ import androidx.core.net.toUri import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.nip30CustomEmojis.ui.ShowEmojiSuggestionList import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.messages_cant_upload_explainer +import com.vitorpamplona.amethyst.commons.resources.messages_cant_upload_title +import com.vitorpamplona.amethyst.commons.resources.messages_new_message_subject import com.vitorpamplona.amethyst.commons.resources.messages_new_message_subject_caption import com.vitorpamplona.amethyst.commons.resources.messages_new_message_to import com.vitorpamplona.amethyst.commons.resources.messages_new_message_to_caption +import com.vitorpamplona.amethyst.commons.resources.private_message import com.vitorpamplona.amethyst.commons.resources.record_a_video import com.vitorpamplona.amethyst.commons.resources.take_a_picture import com.vitorpamplona.amethyst.commons.resources.upload_image +import com.vitorpamplona.amethyst.commons.resources.write_a_message import com.vitorpamplona.amethyst.commons.resources.zapraiser import com.vitorpamplona.amethyst.commons.richtext.BaseMediaContent import com.vitorpamplona.amethyst.commons.richtext.EncryptedMediaUrlImage @@ -189,7 +193,7 @@ fun NewGroupDMScreen( Scaffold( topBar = { PostingTopBar( - titleRes = R.string.private_message, + titleRes = Res.string.private_message, isActive = postViewModel::canPost, onCancel = { // uses the accountViewModel scope to avoid cancelling this @@ -368,7 +372,7 @@ fun MessageFieldRow( Size35dp, accountViewModel, ) - MessageField(R.string.write_a_message, postViewModel, requestFocus, onContentReceived) + MessageField(Res.string.write_a_message, postViewModel, requestFocus, onContentReceived) } } @@ -435,7 +439,7 @@ private fun BottomRowActions( } } else { IconButton( - onClick = { accountViewModel.toastManager.toast(R.string.messages_cant_upload_title, R.string.messages_cant_upload_explainer) }, + onClick = { accountViewModel.toastManager.toast(Res.string.messages_cant_upload_title, Res.string.messages_cant_upload_explainer) }, ) { Icon( symbol = MaterialSymbols.AddPhotoAlternate, @@ -453,7 +457,7 @@ private fun BottomRowActions( } else { IconButton( onClick = { - accountViewModel.toastManager.toast(R.string.messages_cant_upload_title, R.string.messages_cant_upload_explainer) + accountViewModel.toastManager.toast(Res.string.messages_cant_upload_title, Res.string.messages_cant_upload_explainer) }, ) { Icon( @@ -472,7 +476,7 @@ private fun BottomRowActions( } else { IconButton( onClick = { - accountViewModel.toastManager.toast(R.string.messages_cant_upload_title, R.string.messages_cant_upload_explainer) + accountViewModel.toastManager.toast(Res.string.messages_cant_upload_title, Res.string.messages_cant_upload_explainer) }, ) { Icon( @@ -582,7 +586,7 @@ fun SendDirectMessageTo( modifier = Modifier.fillMaxWidth(), ) { Text( - text = stringRes(R.string.messages_new_message_subject), + text = stringRes(Res.string.messages_new_message_subject), fontSize = Font14SP, fontWeight = FontWeight.W500, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/send/PrivateMessageEditFieldRow.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/send/PrivateMessageEditFieldRow.kt index 91e5118d54..34a2c7287f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/send/PrivateMessageEditFieldRow.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/send/PrivateMessageEditFieldRow.kt @@ -50,13 +50,15 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.nip30CustomEmojis.ui.ShowEmojiSuggestionList import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.recipient_missing_dm_relays +import com.vitorpamplona.amethyst.commons.resources.reply_here import com.vitorpamplona.amethyst.commons.resources.retry_without_encryption +import com.vitorpamplona.amethyst.commons.resources.this_message_will_disappear_in import com.vitorpamplona.amethyst.commons.resources.upload_without_encryption_warning import com.vitorpamplona.amethyst.commons.ui.text.onUiThread import com.vitorpamplona.amethyst.ui.actions.MentionPreservingInputTransformation @@ -187,8 +189,8 @@ fun PrivateMessageEditFieldRow( val context = LocalContext.current Text( stringRes( - R.string.this_message_will_disappear_in, - timeAheadNoDot(channelScreenModel.expirationDate, context), + Res.string.this_message_will_disappear_in, + timeAheadNoDot(channelScreenModel.expirationDate), ), fontSize = Font12SP, color = MaterialTheme.colorScheme.placeholderText, @@ -225,7 +227,7 @@ fun EditField( modifier = Modifier.fillMaxWidth(), placeholder = { Text( - text = stringRes(R.string.reply_here), + text = stringRes(Res.string.reply_here), color = MaterialTheme.colorScheme.placeholderText, ) }, @@ -381,7 +383,7 @@ fun EncryptedUploadErrorDialog( }, dismissButton = { TextButton(onClick = onDismiss) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/send/upload/ChatFileUploader.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/send/upload/ChatFileUploader.kt index 6ad4b5accb..7cfa676036 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/send/upload/ChatFileUploader.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/send/upload/ChatFileUploader.kt @@ -21,12 +21,16 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.privateDM.send.upload import android.content.Context -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.avif_metadata_strip_failed +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_encrypted_media_message +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_encrypted_media_title +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media_no_details +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.uploads.MediaCompressor import com.vitorpamplona.amethyst.service.uploads.UploadOrchestrator import com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.utils.ChatFileUploadState -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.utils.ciphers.AESGCM class ChatFileUploader( @@ -76,19 +80,19 @@ class ChatFileUploader( onceUploaded(list) viewState.reset() } else { - val errorMessages = results.errors.map { stringRes(context, it.errorResource, *it.params) }.distinct() - val allAvifMetadata = results.errors.all { it.errorResource == R.string.avif_metadata_strip_failed } + val errorMessages = results.errors.map { loadStringRes(it.errorResource, *it.params) }.distinct() + val allAvifMetadata = results.errors.all { it.errorResource == Res.string.avif_metadata_strip_failed } if (allAvifMetadata) { // AVIF strip refusal is a pre-encryption check — "retry without encryption" wouldn't help. onError( - stringRes(context, R.string.failed_to_upload_media_no_details), + loadStringRes(Res.string.failed_to_upload_media_no_details), errorMessages.joinToString(".\n"), ) } else { onEncryptedUploadError( - stringRes(context, R.string.failed_to_upload_encrypted_media_title), - stringRes(context, R.string.failed_to_upload_encrypted_media_message) + "\n\n" + errorMessages.joinToString(".\n"), + loadStringRes(Res.string.failed_to_upload_encrypted_media_title), + loadStringRes(Res.string.failed_to_upload_encrypted_media_message) + "\n\n" + errorMessages.joinToString(".\n"), ) } } @@ -134,9 +138,9 @@ class ChatFileUploader( onceUploaded(list) viewState.reset() } else { - val errorMessages = results.errors.map { stringRes(context, it.errorResource, *it.params) }.distinct() + val errorMessages = results.errors.map { loadStringRes(it.errorResource, *it.params) }.distinct() - onError(stringRes(context, R.string.failed_to_upload_media_no_details), errorMessages.joinToString(".\n")) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), errorMessages.joinToString(".\n")) } viewState.mediaUploadTracker.finishUpload() @@ -181,9 +185,9 @@ class ChatFileUploader( onceUploaded(list) viewState.reset() } else { - val errorMessages = results.errors.map { stringRes(context, it.errorResource, *it.params) }.distinct() + val errorMessages = results.errors.map { loadStringRes(it.errorResource, *it.params) }.distinct() - onError(stringRes(context, R.string.failed_to_upload_media_no_details), errorMessages.joinToString(".\n")) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), errorMessages.joinToString(".\n")) } viewState.mediaUploadTracker.finishUpload() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordChannelListScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordChannelListScreen.kt index 16fd5f91c5..12fbc287e7 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordChannelListScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordChannelListScreen.kt @@ -68,6 +68,36 @@ import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.concord.ConcordCommunitySession +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.app_name +import com.vitorpamplona.amethyst.commons.resources.back +import com.vitorpamplona.amethyst.commons.resources.cancel +import com.vitorpamplona.amethyst.commons.resources.concord_channel_create +import com.vitorpamplona.amethyst.commons.resources.concord_channel_delete +import com.vitorpamplona.amethyst.commons.resources.concord_channel_delete_confirm +import com.vitorpamplona.amethyst.commons.resources.concord_channel_delete_message +import com.vitorpamplona.amethyst.commons.resources.concord_channel_delete_title +import com.vitorpamplona.amethyst.commons.resources.concord_channel_name_label +import com.vitorpamplona.amethyst.commons.resources.concord_channel_no_messages +import com.vitorpamplona.amethyst.commons.resources.concord_channel_rename +import com.vitorpamplona.amethyst.commons.resources.concord_channel_rename_save +import com.vitorpamplona.amethyst.commons.resources.concord_channels_empty +import com.vitorpamplona.amethyst.commons.resources.concord_edit_title +import com.vitorpamplona.amethyst.commons.resources.concord_invite_action +import com.vitorpamplona.amethyst.commons.resources.concord_invite_links_action +import com.vitorpamplona.amethyst.commons.resources.concord_invite_title +import com.vitorpamplona.amethyst.commons.resources.concord_leave_community +import com.vitorpamplona.amethyst.commons.resources.concord_leave_message +import com.vitorpamplona.amethyst.commons.resources.concord_leave_owner_warning +import com.vitorpamplona.amethyst.commons.resources.concord_leave_title +import com.vitorpamplona.amethyst.commons.resources.concord_members_title +import com.vitorpamplona.amethyst.commons.resources.concord_typing_many +import com.vitorpamplona.amethyst.commons.resources.concord_typing_one +import com.vitorpamplona.amethyst.commons.resources.concord_typing_two +import com.vitorpamplona.amethyst.commons.resources.copy_to_clipboard +import com.vitorpamplona.amethyst.commons.resources.leave +import com.vitorpamplona.amethyst.commons.resources.more_options +import com.vitorpamplona.amethyst.commons.resources.quick_action_share import com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.observeUserName import com.vitorpamplona.amethyst.ui.components.util.setText import com.vitorpamplona.amethyst.ui.navigation.bottombars.AppBottomBar @@ -137,7 +167,7 @@ fun ConcordChannelListScreen( val communityName = state?.metadata?.name ?: session?.entry?.name?.ifBlank { null } - ?: stringRes(com.vitorpamplona.amethyst.R.string.app_name) + ?: stringRes(Res.string.app_name) // Owner from the list entry, not the folded authority: a community whose relays are dead never // folds a Control Plane, and that is exactly the case where leaving matters most. @@ -211,19 +241,19 @@ fun ConcordChannelListScreen( val id = target.channelIdHex ?: return@let AlertDialog( onDismissRequest = { channelToDelete = null }, - title = { Text(stringRes(com.vitorpamplona.amethyst.R.string.concord_channel_delete_title)) }, - text = { Text(stringRes(com.vitorpamplona.amethyst.R.string.concord_channel_delete_message, target.initialName)) }, + title = { Text(stringRes(Res.string.concord_channel_delete_title)) }, + text = { Text(stringRes(Res.string.concord_channel_delete_message, target.initialName)) }, confirmButton = { TextButton(onClick = { channelToDelete = null scope.launch { account.concord.deleteConcordChannel(communityId, id, target.initialName) } }) { - Text(stringRes(com.vitorpamplona.amethyst.R.string.concord_channel_delete_confirm)) + Text(stringRes(Res.string.concord_channel_delete_confirm)) } }, dismissButton = { TextButton(onClick = { channelToDelete = null }) { - Text(stringRes(com.vitorpamplona.amethyst.R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) @@ -237,7 +267,7 @@ fun ConcordChannelListScreen( // Back arrow only when pushed from elsewhere; as a bottom-nav tab the bar takes its place. if (canPop) { IconButton(onClick = { nav.popBack() }) { - SymbolIcon(symbol = MaterialSymbols.AutoMirrored.ArrowBack, contentDescription = stringRes(com.vitorpamplona.amethyst.R.string.back)) + SymbolIcon(symbol = MaterialSymbols.AutoMirrored.ArrowBack, contentDescription = stringRes(Res.string.back)) } } }, @@ -260,11 +290,11 @@ fun ConcordChannelListScreen( } == true IconButton(onClick = { nav.nav(Route.ConcordMembers(communityId)) }) { - SymbolIcon(symbol = MaterialSymbols.Group, contentDescription = stringRes(com.vitorpamplona.amethyst.R.string.concord_members_title)) + SymbolIcon(symbol = MaterialSymbols.Group, contentDescription = stringRes(Res.string.concord_members_title)) } if (canEdit) { IconButton(onClick = { nav.nav(Route.ConcordEdit(communityId)) }) { - SymbolIcon(symbol = MaterialSymbols.Edit, contentDescription = stringRes(com.vitorpamplona.amethyst.R.string.concord_edit_title)) + SymbolIcon(symbol = MaterialSymbols.Edit, contentDescription = stringRes(Res.string.concord_edit_title)) } } if (canInvite) { @@ -283,7 +313,7 @@ fun ConcordChannelListScreen( } }, ) { - SymbolIcon(symbol = MaterialSymbols.PersonAdd, contentDescription = stringRes(com.vitorpamplona.amethyst.R.string.concord_invite_action)) + SymbolIcon(symbol = MaterialSymbols.PersonAdd, contentDescription = stringRes(Res.string.concord_invite_action)) } } @@ -291,7 +321,7 @@ fun ConcordChannelListScreen( // actions live behind the menu, never as a one-tap icon. var menuOpen by remember { mutableStateOf(false) } IconButton(onClick = { menuOpen = true }) { - SymbolIcon(symbol = MaterialSymbols.MoreVert, contentDescription = stringRes(com.vitorpamplona.amethyst.R.string.more_options)) + SymbolIcon(symbol = MaterialSymbols.MoreVert, contentDescription = stringRes(Res.string.more_options)) } DropdownMenu(expanded = menuOpen, onDismissRequest = { menuOpen = false }) { // Deliberately not gated on CREATE_INVITE, unlike minting: the links listed @@ -299,7 +329,7 @@ fun ConcordChannelListScreen( // Gating on the bit would mean a demoted admin could no longer retire the // links they had already handed out — exactly when that matters most. DropdownMenuItem( - text = { Text(stringRes(com.vitorpamplona.amethyst.R.string.concord_invite_links_action)) }, + text = { Text(stringRes(Res.string.concord_invite_links_action)) }, onClick = { menuOpen = false nav.nav(Route.ConcordInviteLinks(communityId)) @@ -308,7 +338,7 @@ fun ConcordChannelListScreen( DropdownMenuItem( text = { Text( - stringRes(com.vitorpamplona.amethyst.R.string.concord_leave_community), + stringRes(Res.string.concord_leave_community), color = MaterialTheme.colorScheme.error, ) }, @@ -334,7 +364,7 @@ fun ConcordChannelListScreen( onClick = { channelEditor = ConcordChannelEditor(channelIdHex = null, initialName = "") }, shape = CircleShape, ) { - SymbolIcon(symbol = MaterialSymbols.Add, contentDescription = stringRes(com.vitorpamplona.amethyst.R.string.concord_channel_create)) + SymbolIcon(symbol = MaterialSymbols.Add, contentDescription = stringRes(Res.string.concord_channel_create)) } } }, @@ -348,7 +378,7 @@ fun ConcordChannelListScreen( if (channels.isEmpty()) { Box(Modifier.fillMaxSize().padding(padding), contentAlignment = Alignment.Center) { Text( - stringRes(com.vitorpamplona.amethyst.R.string.concord_channels_empty), + stringRes(Res.string.concord_channels_empty), style = MaterialTheme.typography.bodyMedium, color = MaterialTheme.colorScheme.onSurfaceVariant, ) @@ -463,7 +493,7 @@ private fun ConcordChannelListRow( ) lastNote?.createdAt()?.let { ts -> Text( - timeAgo(ts, LocalContext.current, prefix = ""), + timeAgo(ts, prefix = ""), style = MaterialTheme.typography.labelSmall, color = if (hasUnread) MaterialTheme.colorScheme.primary else MaterialTheme.colorScheme.onSurfaceVariant, maxLines = 1, @@ -509,14 +539,14 @@ private fun ConcordChannelPreviewLine( if (typingAuthors.isNotEmpty()) { val label = when (typingAuthors.size) { - 1 -> stringRes(com.vitorpamplona.amethyst.R.string.concord_typing_one, rememberConcordDisplayName(typingAuthors[0], accountViewModel)) + 1 -> stringRes(Res.string.concord_typing_one, rememberConcordDisplayName(typingAuthors[0], accountViewModel)) 2 -> stringRes( - com.vitorpamplona.amethyst.R.string.concord_typing_two, + Res.string.concord_typing_two, rememberConcordDisplayName(typingAuthors[0], accountViewModel), rememberConcordDisplayName(typingAuthors[1], accountViewModel), ) - else -> stringRes(com.vitorpamplona.amethyst.R.string.concord_typing_many) + else -> stringRes(Res.string.concord_typing_many) } Text( label, @@ -541,7 +571,7 @@ private fun ConcordChannelPreviewLine( } else { // Voice channels never carry chat notes, so "No messages yet" would read oddly — leave blank. if (isVoice) return - stringRes(com.vitorpamplona.amethyst.R.string.concord_channel_no_messages) + stringRes(Res.string.concord_channel_no_messages) } Text( preview, @@ -579,13 +609,13 @@ internal fun ConcordLeaveDialog( ) { AlertDialog( onDismissRequest = onDismiss, - title = { Text(stringRes(com.vitorpamplona.amethyst.R.string.concord_leave_title)) }, + title = { Text(stringRes(Res.string.concord_leave_title)) }, text = { Column(verticalArrangement = Arrangement.spacedBy(8.dp)) { - Text(stringRes(com.vitorpamplona.amethyst.R.string.concord_leave_message, communityName)) + Text(stringRes(Res.string.concord_leave_message, communityName)) if (isOwner) { Text( - stringRes(com.vitorpamplona.amethyst.R.string.concord_leave_owner_warning), + stringRes(Res.string.concord_leave_owner_warning), color = MaterialTheme.colorScheme.error, ) } @@ -594,14 +624,14 @@ internal fun ConcordLeaveDialog( confirmButton = { TextButton(onClick = onConfirm) { Text( - stringRes(com.vitorpamplona.amethyst.R.string.leave), + stringRes(Res.string.leave), color = MaterialTheme.colorScheme.error, ) } }, dismissButton = { TextButton(onClick = onDismiss) { - Text(stringRes(com.vitorpamplona.amethyst.R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) @@ -624,13 +654,13 @@ private fun ConcordChannelRowMenu( IconButton(onClick = { expanded = true }) { SymbolIcon( symbol = MaterialSymbols.MoreVert, - contentDescription = stringRes(com.vitorpamplona.amethyst.R.string.more_options), + contentDescription = stringRes(Res.string.more_options), tint = MaterialTheme.colorScheme.onSurfaceVariant, ) } DropdownMenu(expanded = expanded, onDismissRequest = { expanded = false }) { DropdownMenuItem( - text = { Text(stringRes(com.vitorpamplona.amethyst.R.string.concord_channel_rename)) }, + text = { Text(stringRes(Res.string.concord_channel_rename)) }, onClick = { expanded = false onRename() @@ -639,7 +669,7 @@ private fun ConcordChannelRowMenu( DropdownMenuItem( text = { Text( - stringRes(com.vitorpamplona.amethyst.R.string.concord_channel_delete), + stringRes(Res.string.concord_channel_delete), color = MaterialTheme.colorScheme.error, ) }, @@ -667,9 +697,9 @@ private fun ConcordChannelEditDialog( Text( stringRes( if (isCreate) { - com.vitorpamplona.amethyst.R.string.concord_channel_create + Res.string.concord_channel_create } else { - com.vitorpamplona.amethyst.R.string.concord_channel_rename + Res.string.concord_channel_rename }, ), ) @@ -679,7 +709,7 @@ private fun ConcordChannelEditDialog( value = name, onValueChange = { name = it }, singleLine = true, - label = { Text(stringRes(com.vitorpamplona.amethyst.R.string.concord_channel_name_label)) }, + label = { Text(stringRes(Res.string.concord_channel_name_label)) }, modifier = Modifier.fillMaxWidth(), ) }, @@ -691,9 +721,9 @@ private fun ConcordChannelEditDialog( Text( stringRes( if (isCreate) { - com.vitorpamplona.amethyst.R.string.concord_channel_create + Res.string.concord_channel_create } else { - com.vitorpamplona.amethyst.R.string.concord_channel_rename_save + Res.string.concord_channel_rename_save }, ), ) @@ -701,7 +731,7 @@ private fun ConcordChannelEditDialog( }, dismissButton = { TextButton(onClick = onDismiss) { - Text(stringRes(com.vitorpamplona.amethyst.R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) @@ -718,7 +748,7 @@ private fun InviteLinkDialog( val context = LocalContext.current AlertDialog( onDismissRequest = onDismiss, - title = { Text(stringRes(com.vitorpamplona.amethyst.R.string.concord_invite_title)) }, + title = { Text(stringRes(Res.string.concord_invite_title)) }, text = { Column(horizontalAlignment = Alignment.CenterHorizontally) { QrCodeDrawer(contents = link, modifier = Modifier.size(220.dp)) @@ -740,10 +770,10 @@ private fun InviteLinkDialog( type = "text/plain" putExtra(Intent.EXTRA_TEXT, link) } - context.startActivity(Intent.createChooser(send, stringRes(context, com.vitorpamplona.amethyst.R.string.concord_invite_title))) + context.startActivity(Intent.createChooser(send, stringRes(Res.string.concord_invite_title))) onDismiss() }) { - Text(stringRes(com.vitorpamplona.amethyst.R.string.quick_action_share)) + Text(stringRes(Res.string.quick_action_share)) } }, dismissButton = { @@ -751,7 +781,7 @@ private fun InviteLinkDialog( scope.launch { clipboard.setText(link) } onDismiss() }) { - Text(stringRes(com.vitorpamplona.amethyst.R.string.copy_to_clipboard)) + Text(stringRes(Res.string.copy_to_clipboard)) } }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordChannelScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordChannelScreen.kt index b5bfc9573c..9d633e8156 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordChannelScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordChannelScreen.kt @@ -53,7 +53,6 @@ import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.feeds.FeedContentState import com.vitorpamplona.amethyst.commons.feeds.FeedState import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols @@ -61,7 +60,15 @@ import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.concord.ConcordCommunitySession import com.vitorpamplona.amethyst.commons.nip30CustomEmojis.ui.ShowEmojiSuggestionList import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.concord_dissolved_read_only +import com.vitorpamplona.amethyst.commons.resources.concord_editing_banner +import com.vitorpamplona.amethyst.commons.resources.concord_send_image_title +import com.vitorpamplona.amethyst.commons.resources.concord_typing_many +import com.vitorpamplona.amethyst.commons.resources.concord_typing_one +import com.vitorpamplona.amethyst.commons.resources.concord_typing_two +import com.vitorpamplona.amethyst.commons.resources.reply_here import com.vitorpamplona.amethyst.commons.ui.feeds.DmHistoryLoadingCard import com.vitorpamplona.amethyst.commons.ui.feeds.RelayReachCursor import com.vitorpamplona.amethyst.commons.ui.feeds.RelayReachMarkers @@ -183,7 +190,7 @@ fun ConcordChannelScreen( }, navigationIcon = { IconButton(onClick = { nav.popBack() }) { - SymbolIcon(symbol = MaterialSymbols.AutoMirrored.ArrowBack, contentDescription = stringRes(com.vitorpamplona.amethyst.R.string.back)) + SymbolIcon(symbol = MaterialSymbols.AutoMirrored.ArrowBack, contentDescription = stringRes(Res.string.back)) } }, ) @@ -358,14 +365,14 @@ private fun ConcordTypingIndicator( val label = when (typers.size) { - 1 -> stringRes(R.string.concord_typing_one, rememberTypistName(typers[0], accountViewModel)) + 1 -> stringRes(Res.string.concord_typing_one, rememberTypistName(typers[0], accountViewModel)) 2 -> stringRes( - R.string.concord_typing_two, + Res.string.concord_typing_two, rememberTypistName(typers[0], accountViewModel), rememberTypistName(typers[1], accountViewModel), ) - else -> stringRes(R.string.concord_typing_many) + else -> stringRes(Res.string.concord_typing_many) } Row(modifier = Modifier.fillMaxWidth().padding(horizontal = 12.dp, vertical = 2.dp)) { @@ -458,7 +465,7 @@ private fun ConcordMessageComposer( tint = MaterialTheme.colorScheme.primary, ) Text( - text = stringRes(com.vitorpamplona.amethyst.R.string.concord_editing_banner), + text = stringRes(Res.string.concord_editing_banner), style = MaterialTheme.typography.labelMedium, color = MaterialTheme.colorScheme.primary, modifier = Modifier.weight(1f).padding(start = 8.dp), @@ -466,7 +473,7 @@ private fun ConcordMessageComposer( IconButton(onClick = { newMessageModel.cancelEdit() }) { SymbolIcon( symbol = MaterialSymbols.Close, - contentDescription = stringRes(com.vitorpamplona.amethyst.R.string.cancel), + contentDescription = stringRes(Res.string.cancel), modifier = Modifier.size(16.dp), ) } @@ -516,7 +523,7 @@ private fun ConcordMessageComposer( shape = EditFieldBorder, placeholder = { Text( - text = stringRes(com.vitorpamplona.amethyst.R.string.reply_here), + text = stringRes(Res.string.reply_here), color = MaterialTheme.colorScheme.placeholderText, ) }, @@ -579,7 +586,7 @@ private fun ConcordFileUploadDialog( ChatFileUploadDialog( state = state, - title = { Text(stringRes(com.vitorpamplona.amethyst.R.string.concord_send_image_title)) }, + title = { Text(stringRes(Res.string.concord_send_image_title)) }, upload = { scope.launch(Dispatchers.IO) { val community = newMessageModel.communityId diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordCreateScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordCreateScreen.kt index 5d2a043e15..0251f93a06 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordCreateScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordCreateScreen.kt @@ -45,6 +45,12 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back +import com.vitorpamplona.amethyst.commons.resources.concord_create_action +import com.vitorpamplona.amethyst.commons.resources.concord_create_relays +import com.vitorpamplona.amethyst.commons.resources.concord_create_relays_desc +import com.vitorpamplona.amethyst.commons.resources.concord_create_title import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel @@ -75,10 +81,10 @@ fun ConcordCreateScreen( Scaffold( topBar = { TopAppBar( - title = { Text(stringRes(com.vitorpamplona.amethyst.R.string.concord_create_title)) }, + title = { Text(stringRes(Res.string.concord_create_title)) }, navigationIcon = { IconButton(onClick = { nav.popBack() }) { - SymbolIcon(symbol = MaterialSymbols.AutoMirrored.ArrowBack, contentDescription = stringRes(com.vitorpamplona.amethyst.R.string.back)) + SymbolIcon(symbol = MaterialSymbols.AutoMirrored.ArrowBack, contentDescription = stringRes(Res.string.back)) } }, ) @@ -102,8 +108,8 @@ fun ConcordCreateScreen( ) ConcordSectionHeader( - title = stringRes(com.vitorpamplona.amethyst.R.string.concord_create_relays), - description = stringRes(com.vitorpamplona.amethyst.R.string.concord_create_relays_desc), + title = stringRes(Res.string.concord_create_relays), + description = stringRes(Res.string.concord_create_relays_desc), ) ConcordRelayListEditor( relays = relays, @@ -136,7 +142,7 @@ fun ConcordCreateScreen( enabled = name.value.isNotBlank() && !working, modifier = Modifier.fillMaxWidth().padding(top = 8.dp), ) { - Text(stringRes(com.vitorpamplona.amethyst.R.string.concord_create_action)) + Text(stringRes(Res.string.concord_create_action)) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordEditScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordEditScreen.kt index 3b32b6ba84..8f478e110d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordEditScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordEditScreen.kt @@ -47,11 +47,13 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back +import com.vitorpamplona.amethyst.commons.resources.concord_create_relays import com.vitorpamplona.amethyst.commons.resources.concord_edit_relays_desc import com.vitorpamplona.amethyst.commons.resources.concord_edit_save +import com.vitorpamplona.amethyst.commons.resources.concord_edit_title import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.publicChannels.concord.datasource.ConcordChannelSubscription @@ -114,10 +116,10 @@ fun ConcordEditScreen( Scaffold( topBar = { TopAppBar( - title = { Text(stringRes(R.string.concord_edit_title), maxLines = 1) }, + title = { Text(stringRes(Res.string.concord_edit_title), maxLines = 1) }, navigationIcon = { IconButton(onClick = { nav.popBack() }) { - SymbolIcon(symbol = MaterialSymbols.AutoMirrored.ArrowBack, contentDescription = stringRes(R.string.back)) + SymbolIcon(symbol = MaterialSymbols.AutoMirrored.ArrowBack, contentDescription = stringRes(Res.string.back)) } }, ) @@ -148,7 +150,7 @@ fun ConcordEditScreen( ) ConcordSectionHeader( - title = stringRes(R.string.concord_create_relays), + title = stringRes(Res.string.concord_create_relays), description = stringRes(Res.string.concord_edit_relays_desc), ) ConcordRelayListEditor( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordHomeScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordHomeScreen.kt index aa4f38cb7f..eddbc8dc16 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordHomeScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordHomeScreen.kt @@ -50,18 +50,21 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip -import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back +import com.vitorpamplona.amethyst.commons.resources.concord_channel_count +import com.vitorpamplona.amethyst.commons.resources.concord_create_title import com.vitorpamplona.amethyst.commons.resources.concord_home_empty +import com.vitorpamplona.amethyst.commons.resources.concord_home_title +import com.vitorpamplona.amethyst.commons.resources.concord_member_count import com.vitorpamplona.amethyst.commons.resources.concord_show_all_channels import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.observeUserName @@ -119,13 +122,13 @@ fun ConcordHomeScreen( Scaffold( topBar = { ShorterTopAppBar( - title = { Text(stringRes(R.string.concord_home_title)) }, + title = { Text(stringRes(Res.string.concord_home_title)) }, navigationIcon = { // Back arrow only when this is a pushed screen (from the drawer / a deep link); // as a bottom-nav root there is nothing to pop and the bar takes its place. if (nav.canPop()) { IconButton(onClick = { nav.popBack() }) { - SymbolIcon(symbol = MaterialSymbols.AutoMirrored.ArrowBack, contentDescription = stringRes(R.string.back)) + SymbolIcon(symbol = MaterialSymbols.AutoMirrored.ArrowBack, contentDescription = stringRes(Res.string.back)) } } }, @@ -143,7 +146,7 @@ fun ConcordHomeScreen( FloatingActionButton(onClick = { nav.nav(Route.ConcordCreate) }, shape = CircleShape) { SymbolIcon( symbol = MaterialSymbols.Add, - contentDescription = stringRes(R.string.concord_create_title), + contentDescription = stringRes(Res.string.concord_create_title), modifier = Modifier.size(24.dp), ) } @@ -193,7 +196,7 @@ fun ConcordHomeScreen( item(key = entry.id) { CommunityHeader( communityId = entry.id, - name = state?.metadata?.name?.takeIf { it.isNotBlank() } ?: entry.name.ifBlank { stringRes(R.string.concord_home_title) }, + name = state?.metadata?.name?.takeIf { it.isNotBlank() } ?: entry.name.ifBlank { stringRes(Res.string.concord_home_title) }, iconPointer = state?.metadata?.icon, channelKeys = channelKeys, revision = revision, @@ -332,8 +335,8 @@ private fun CommunityHeader( ?.memberCount() ?: 0 } val parts = mutableListOf() - if (channelKeys.isNotEmpty()) parts += pluralStringResource(R.plurals.concord_channel_count, channelKeys.size, channelKeys.size) - if (memberCount > 0) parts += pluralStringResource(R.plurals.concord_member_count, memberCount, memberCount) + if (channelKeys.isNotEmpty()) parts += pluralStringResource(Res.plurals.concord_channel_count, channelKeys.size, channelKeys.size) + if (memberCount > 0) parts += pluralStringResource(Res.plurals.concord_member_count, memberCount, memberCount) val subtitle = parts.joinToString(" · ") if (subtitle.isNotEmpty()) { Text( @@ -437,7 +440,7 @@ private fun ConcordChannelRow( } lastNote?.createdAt()?.let { ts -> Text( - timeAgo(ts, LocalContext.current, prefix = ""), + timeAgo(ts, prefix = ""), style = MaterialTheme.typography.labelSmall, color = if (unread) MaterialTheme.colorScheme.primary else MaterialTheme.colorScheme.onSurfaceVariant, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordImageUploader.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordImageUploader.kt index 89abba6951..a3b274e89c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordImageUploader.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordImageUploader.kt @@ -22,6 +22,7 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.publicChannels.conco import android.content.Context import android.net.Uri +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.uploads.CompressorQuality import com.vitorpamplona.amethyst.service.uploads.UploadOrchestrator @@ -29,7 +30,6 @@ import com.vitorpamplona.amethyst.service.uploads.UploadingState import com.vitorpamplona.amethyst.ui.actions.mediaServers.DEFAULT_MEDIA_SERVERS import com.vitorpamplona.amethyst.ui.actions.mediaServers.ServerName import com.vitorpamplona.amethyst.ui.actions.mediaServers.ServerType -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.concord.cord02Community.ImagePointer import com.vitorpamplona.quartz.nip01Core.core.toHexKey import com.vitorpamplona.quartz.utils.ciphers.AESGCM @@ -84,7 +84,7 @@ class ConcordImageUploader( val result = when (finalState) { is UploadingState.Finished -> finalState.result - is UploadingState.Error -> throw IllegalStateException(stringRes(context, finalState.errorResource, *finalState.params)) + is UploadingState.Error -> throw IllegalStateException(loadStringRes(finalState.errorResource, *finalState.params)) } val server = diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordInviteLinksScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordInviteLinksScreen.kt index 2a0497b836..75b05aee65 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordInviteLinksScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordInviteLinksScreen.kt @@ -56,16 +56,22 @@ import androidx.compose.ui.platform.LocalClipboard import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.concord_invite_links_created import com.vitorpamplona.amethyst.commons.resources.concord_invite_links_empty +import com.vitorpamplona.amethyst.commons.resources.concord_invite_links_title import com.vitorpamplona.amethyst.commons.resources.concord_invite_links_unreadable import com.vitorpamplona.amethyst.commons.resources.concord_invite_revoke_action import com.vitorpamplona.amethyst.commons.resources.concord_invite_revoke_confirm import com.vitorpamplona.amethyst.commons.resources.concord_invite_revoke_explainer import com.vitorpamplona.amethyst.commons.resources.concord_invite_revoke_title +import com.vitorpamplona.amethyst.commons.resources.concord_invite_revoked_failed +import com.vitorpamplona.amethyst.commons.resources.concord_invite_revoked_ok +import com.vitorpamplona.amethyst.commons.resources.copy_to_clipboard +import com.vitorpamplona.amethyst.commons.resources.more_options import com.vitorpamplona.amethyst.ui.components.util.setText import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel @@ -137,7 +143,7 @@ fun ConcordInviteLinksScreen( TopAppBar( title = { Column { - Text(stringRes(R.string.concord_invite_links_title), fontWeight = FontWeight.Bold) + Text(stringRes(Res.string.concord_invite_links_title), fontWeight = FontWeight.Bold) if (communityName.isNotBlank()) { Text(communityName, style = MaterialTheme.typography.bodySmall, maxLines = 1, overflow = TextOverflow.Ellipsis) } @@ -145,7 +151,7 @@ fun ConcordInviteLinksScreen( }, navigationIcon = { IconButton(onClick = { nav.popBack() }) { - SymbolIcon(symbol = MaterialSymbols.AutoMirrored.ArrowBack, contentDescription = stringRes(R.string.back)) + SymbolIcon(symbol = MaterialSymbols.AutoMirrored.ArrowBack, contentDescription = stringRes(Res.string.back)) } }, ) @@ -192,8 +198,8 @@ fun ConcordInviteLinksScreen( try { val ok = account.concord.revokeConcordInvite(communityId, link.token) accountViewModel.toastManager.toast( - R.string.concord_invite_links_title, - if (ok) R.string.concord_invite_revoked_ok else R.string.concord_invite_revoked_failed, + Res.string.concord_invite_links_title, + if (ok) Res.string.concord_invite_revoked_ok else Res.string.concord_invite_revoked_failed, ) // Re-read either way: on success the link is gone from the list, and on // failure the list is the only thing that can say whether it changed. @@ -210,7 +216,7 @@ fun ConcordInviteLinksScreen( }, dismissButton = { TextButton(enabled = !revoking, onClick = { confirming = null }) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) @@ -259,11 +265,11 @@ private fun InviteLinkRow( } IconButton(enabled = enabled, onClick = { menuOpen = true }) { - SymbolIcon(symbol = MaterialSymbols.MoreVert, contentDescription = stringRes(R.string.more_options)) + SymbolIcon(symbol = MaterialSymbols.MoreVert, contentDescription = stringRes(Res.string.more_options)) } DropdownMenu(expanded = menuOpen, onDismissRequest = { menuOpen = false }) { DropdownMenuItem( - text = { Text(stringRes(R.string.copy_to_clipboard)) }, + text = { Text(stringRes(Res.string.copy_to_clipboard)) }, onClick = { menuOpen = false onCopy() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordInviteScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordInviteScreen.kt index bef90ac5ec..c2a9b12d6e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordInviteScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordInviteScreen.kt @@ -41,16 +41,22 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.actions.ConcordActions import com.vitorpamplona.amethyst.commons.model.ConcordInviteResult import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.concord_invite_card_join import com.vitorpamplona.amethyst.commons.resources.concord_invite_card_subtitle +import com.vitorpamplona.amethyst.commons.resources.concord_invite_failed +import com.vitorpamplona.amethyst.commons.resources.concord_invite_failed_banned +import com.vitorpamplona.amethyst.commons.resources.concord_invite_failed_expired +import com.vitorpamplona.amethyst.commons.resources.concord_invite_failed_incompatible +import com.vitorpamplona.amethyst.commons.resources.concord_invite_failed_invalid +import com.vitorpamplona.amethyst.commons.resources.concord_invite_failed_revoked import com.vitorpamplona.amethyst.commons.resources.concord_invite_preview_explainer import com.vitorpamplona.amethyst.commons.resources.concord_invite_preview_relays import com.vitorpamplona.amethyst.commons.resources.concord_invite_preview_unknown_name import com.vitorpamplona.amethyst.commons.resources.concord_redeeming_invite +import com.vitorpamplona.amethyst.commons.resources.retry import com.vitorpamplona.amethyst.ui.components.ConcordInvitePreviewRow import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route @@ -113,7 +119,7 @@ fun ConcordInviteScreen( remember(link) { mutableStateOf( if (parsed == null) { - RedeemState.Failed(R.string.concord_invite_failed_invalid, canRetry = false) + RedeemState.Failed(Res.string.concord_invite_failed_invalid, canRetry = false) } else { RedeemState.AwaitingConsent }, @@ -126,17 +132,17 @@ fun ConcordInviteScreen( when (val result = accountViewModel.account.concord.joinConcordViaInvite(link)) { is ConcordInviteResult.Joined -> RedeemState.Done(result.communityId) is ConcordInviteResult.InvalidLink -> - RedeemState.Failed(R.string.concord_invite_failed_invalid, canRetry = false) + RedeemState.Failed(Res.string.concord_invite_failed_invalid, canRetry = false) is ConcordInviteResult.Incompatible -> - RedeemState.Failed(R.string.concord_invite_failed_incompatible, canRetry = false) + RedeemState.Failed(Res.string.concord_invite_failed_incompatible, canRetry = false) is ConcordInviteResult.Revoked -> - RedeemState.Failed(R.string.concord_invite_failed_revoked, canRetry = false) + RedeemState.Failed(Res.string.concord_invite_failed_revoked, canRetry = false) is ConcordInviteResult.Banned -> - RedeemState.Failed(R.string.concord_invite_failed_banned, canRetry = false) + RedeemState.Failed(Res.string.concord_invite_failed_banned, canRetry = false) is ConcordInviteResult.Expired -> - RedeemState.Failed(R.string.concord_invite_failed_expired, canRetry = false) + RedeemState.Failed(Res.string.concord_invite_failed_expired, canRetry = false) is ConcordInviteResult.NotReachable -> - RedeemState.Failed(R.string.concord_invite_failed, canRetry = true) + RedeemState.Failed(Res.string.concord_invite_failed, canRetry = true) } } } @@ -191,7 +197,7 @@ fun ConcordInviteScreen( onClick = { state = RedeemState.Working }, modifier = Modifier.padding(top = 16.dp), ) { - Text(stringRes(R.string.retry)) + Text(stringRes(Res.string.retry)) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordMembersScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordMembersScreen.kt index 303e2c8bb7..0f97832727 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordMembersScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordMembersScreen.kt @@ -56,12 +56,16 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.concord.ConcordMembership import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back +import com.vitorpamplona.amethyst.commons.resources.cancel +import com.vitorpamplona.amethyst.commons.resources.concord_members_ban import com.vitorpamplona.amethyst.commons.resources.concord_members_empty +import com.vitorpamplona.amethyst.commons.resources.concord_members_make_admin import com.vitorpamplona.amethyst.commons.resources.concord_members_remove +import com.vitorpamplona.amethyst.commons.resources.concord_members_remove_admin import com.vitorpamplona.amethyst.commons.resources.concord_members_remove_confirm import com.vitorpamplona.amethyst.commons.resources.concord_members_remove_message import com.vitorpamplona.amethyst.commons.resources.concord_members_remove_title @@ -70,9 +74,13 @@ import com.vitorpamplona.amethyst.commons.resources.concord_members_roles_messag import com.vitorpamplona.amethyst.commons.resources.concord_members_roles_none_assignable import com.vitorpamplona.amethyst.commons.resources.concord_members_roles_out_of_reach import com.vitorpamplona.amethyst.commons.resources.concord_members_roles_save +import com.vitorpamplona.amethyst.commons.resources.concord_members_roles_title +import com.vitorpamplona.amethyst.commons.resources.concord_members_title +import com.vitorpamplona.amethyst.commons.resources.concord_members_unban import com.vitorpamplona.amethyst.commons.resources.concord_role_admin import com.vitorpamplona.amethyst.commons.resources.concord_role_banned import com.vitorpamplona.amethyst.commons.resources.concord_role_owner +import com.vitorpamplona.amethyst.commons.resources.more_options import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.note.UserPicture import com.vitorpamplona.amethyst.ui.note.UsernameDisplay @@ -173,7 +181,7 @@ fun ConcordMembersScreen( TopAppBar( title = { Column { - Text(stringRes(R.string.concord_members_title), maxLines = 1) + Text(stringRes(Res.string.concord_members_title), maxLines = 1) state?.metadata?.name?.takeIf { it.isNotBlank() }?.let { Text(it, style = MaterialTheme.typography.labelSmall, maxLines = 1, overflow = TextOverflow.Ellipsis) } @@ -181,7 +189,7 @@ fun ConcordMembersScreen( }, navigationIcon = { IconButton(onClick = { nav.popBack() }) { - SymbolIcon(symbol = MaterialSymbols.AutoMirrored.ArrowBack, contentDescription = stringRes(R.string.back)) + SymbolIcon(symbol = MaterialSymbols.AutoMirrored.ArrowBack, contentDescription = stringRes(Res.string.back)) } }, ) @@ -311,12 +319,12 @@ private fun ConcordMemberRow( // of this `spacedBy` Row that adds a gap and shifts the button as you tap it. Box { IconButton(onClick = { expanded = true }) { - SymbolIcon(symbol = MaterialSymbols.MoreVert, contentDescription = stringRes(R.string.more_options)) + SymbolIcon(symbol = MaterialSymbols.MoreVert, contentDescription = stringRes(Res.string.more_options)) } DropdownMenu(expanded = expanded, onDismissRequest = { expanded = false }) { if (canToggleAdmin) { DropdownMenuItem( - text = { Text(stringRes(if (isAdmin) R.string.concord_members_remove_admin else R.string.concord_members_make_admin)) }, + text = { Text(stringRes(if (isAdmin) Res.string.concord_members_remove_admin else Res.string.concord_members_make_admin)) }, onClick = { accountViewModel.setConcordAdmin(communityId, entry.pubkey, makeAdmin = !isAdmin) expanded = false @@ -346,7 +354,7 @@ private fun ConcordMemberRow( } if (canBan) { DropdownMenuItem( - text = { Text(stringRes(if (isBanned) R.string.concord_members_unban else R.string.concord_members_ban)) }, + text = { Text(stringRes(if (isBanned) Res.string.concord_members_unban else Res.string.concord_members_ban)) }, onClick = { accountViewModel.setConcordBan(communityId, entry.pubkey, ban = !isBanned) expanded = false @@ -423,7 +431,7 @@ private fun ConcordRolesDialog( AlertDialog( onDismissRequest = onDismiss, - title = { Text(stringRes(R.string.concord_members_roles_title)) }, + title = { Text(stringRes(Res.string.concord_members_roles_title)) }, text = { Column(verticalArrangement = Arrangement.spacedBy(4.dp)) { Text( @@ -455,7 +463,7 @@ private fun ConcordRolesDialog( } }, dismissButton = { - TextButton(onClick = onDismiss) { Text(stringRes(R.string.cancel)) } + TextButton(onClick = onDismiss) { Text(stringRes(Res.string.cancel)) } }, ) } @@ -476,7 +484,7 @@ private fun ConcordRemoveMemberDialog( } }, dismissButton = { - TextButton(onClick = onDismiss) { Text(stringRes(R.string.cancel)) } + TextButton(onClick = onDismiss) { Text(stringRes(Res.string.cancel)) } }, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordMetadataForm.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordMetadataForm.kt index 60f5b2b275..aab51a5a3a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordMetadataForm.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordMetadataForm.kt @@ -64,13 +64,15 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import coil3.compose.AsyncImage -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.concord_create_about import com.vitorpamplona.amethyst.commons.resources.concord_create_icon_hint import com.vitorpamplona.amethyst.commons.resources.concord_create_name +import com.vitorpamplona.amethyst.commons.resources.concord_create_title import com.vitorpamplona.amethyst.commons.resources.concord_edit_banner_hint +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media_no_details +import com.vitorpamplona.amethyst.commons.resources.remove import com.vitorpamplona.amethyst.model.nip11RelayInfo.loadRelayInfo import com.vitorpamplona.amethyst.ui.components.RobohashFallbackAsyncImage import com.vitorpamplona.amethyst.ui.components.util.setText @@ -168,7 +170,7 @@ private fun ConcordIconHero( throw e } catch (e: Exception) { Log.w("ConcordImageUpload", "Community icon upload failed", e) - val msg = e.message?.takeIf { it.isNotBlank() } ?: stringRes(context, R.string.failed_to_upload_media_no_details) + val msg = e.message?.takeIf { it.isNotBlank() } ?: stringRes(Res.string.failed_to_upload_media_no_details) Toast.makeText(context, msg, Toast.LENGTH_LONG).show() } finally { uploading = false @@ -188,7 +190,7 @@ private fun ConcordIconHero( RobohashFallbackAsyncImage( robot = robotSeed, model = iconModel, - contentDescription = displayName.ifBlank { stringRes(R.string.concord_create_title) }, + contentDescription = displayName.ifBlank { stringRes(Res.string.concord_create_title) }, modifier = Modifier.size(104.dp).clip(CircleShape), loadProfilePicture = accountViewModel.settings.showProfilePictures(), loadRobohash = accountViewModel.settings.isNotPerformanceMode(), @@ -239,7 +241,7 @@ private fun ConcordBannerHero( throw e } catch (e: Exception) { Log.w("ConcordImageUpload", "Community banner upload failed", e) - val msg = e.message?.takeIf { it.isNotBlank() } ?: stringRes(context, R.string.failed_to_upload_media_no_details) + val msg = e.message?.takeIf { it.isNotBlank() } ?: stringRes(Res.string.failed_to_upload_media_no_details) Toast.makeText(context, msg, Toast.LENGTH_LONG).show() } finally { uploading = false @@ -291,7 +293,7 @@ private fun ConcordBannerHero( ) { SymbolIcon( symbol = MaterialSymbols.Close, - contentDescription = stringRes(R.string.remove), + contentDescription = stringRes(Res.string.remove), tint = MaterialTheme.colorScheme.onSurface, ) } @@ -368,7 +370,7 @@ private fun ConcordRelayRow( ) } IconButton(onClick = onRemove) { - SymbolIcon(symbol = MaterialSymbols.Close, contentDescription = stringRes(R.string.remove)) + SymbolIcon(symbol = MaterialSymbols.Close, contentDescription = stringRes(Res.string.remove)) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordUnreadBadge.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordUnreadBadge.kt index 7b321b32af..ecb30b28b6 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordUnreadBadge.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordUnreadBadge.kt @@ -37,7 +37,8 @@ import androidx.compose.ui.semantics.contentDescription import androidx.compose.ui.semantics.semantics import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.concord_unread_messages /** Counts above this render as "N+" so a very busy channel doesn't blow out the row. */ private const val CONCORD_UNREAD_CAP = 99 @@ -54,7 +55,7 @@ fun ConcordUnreadBadge( ) { if (count <= 0) return val label = if (count > CONCORD_UNREAD_CAP) "$CONCORD_UNREAD_CAP+" else count.toString() - val description = pluralStringResource(R.plurals.concord_unread_messages, count, count) + val description = pluralStringResource(Res.plurals.concord_unread_messages, count, count) Box( modifier = modifier diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/ephemChat/header/actions/LeaveChatButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/ephemChat/header/actions/LeaveChatButton.kt index d616e780a4..478be556b8 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/ephemChat/header/actions/LeaveChatButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/ephemChat/header/actions/LeaveChatButton.kt @@ -23,8 +23,9 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.publicChannels.ephem import androidx.compose.material3.FilledTonalButton import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.emphChat.EphemeralChatChannel +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.leave import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.stringRes @@ -42,6 +43,6 @@ fun LeaveChatButton( onClick = { accountViewModel.unfollow(channel) }, contentPadding = ButtonPadding, ) { - Text(text = stringRes(R.string.leave)) + Text(text = stringRes(Res.string.leave)) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/ephemChat/metadata/NewEphemeralChatScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/ephemChat/metadata/NewEphemeralChatScreen.kt index 6173f89db4..4ab0567db2 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/ephemChat/metadata/NewEphemeralChatScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/ephemChat/metadata/NewEphemeralChatScreen.kt @@ -40,11 +40,13 @@ import androidx.compose.ui.text.style.TextDirection import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.channel_name import com.vitorpamplona.amethyst.commons.resources.group_relay import com.vitorpamplona.amethyst.commons.resources.my_awesome_group +import com.vitorpamplona.amethyst.commons.resources.relay_chat +import com.vitorpamplona.amethyst.commons.resources.relay_chat_explainer +import com.vitorpamplona.amethyst.commons.resources.relay_chat_title import com.vitorpamplona.amethyst.ui.insets.imePaddingSafe import com.vitorpamplona.amethyst.ui.navigation.navs.EmptyNav import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -100,7 +102,7 @@ private fun ChannelMetadataScaffold( Scaffold( topBar = { PostingTopBar( - titleRes = R.string.relay_chat, + titleRes = Res.string.relay_chat, isActive = postViewModel::canPost, onCancel = { nav.popBack() @@ -127,8 +129,8 @@ private fun ChannelMetadataScaffold( ) { item { SettingsCategory( - R.string.relay_chat_title, - R.string.relay_chat_explainer, + Res.string.relay_chat_title, + Res.string.relay_chat_explainer, SettingsCategoryFirstModifier, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/header/actions/LeaveChatButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/header/actions/LeaveChatButton.kt index 5c6993eab8..49d6fc3430 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/header/actions/LeaveChatButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/header/actions/LeaveChatButton.kt @@ -23,8 +23,9 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.publicChannels.nip28 import androidx.compose.material3.FilledTonalButton import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.nip28PublicChats.PublicChatChannel +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.leave import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.stringRes @@ -42,6 +43,6 @@ fun LeaveChatButton( onClick = { accountViewModel.unfollow(channel) }, contentPadding = ButtonPadding, ) { - Text(text = stringRes(R.string.leave)) + Text(text = stringRes(Res.string.leave)) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/header/actions/LinkChatButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/header/actions/LinkChatButton.kt index bcd33b134f..27da570e20 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/header/actions/LinkChatButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/header/actions/LinkChatButton.kt @@ -29,10 +29,12 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp import androidx.core.net.toUri -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.nip28PublicChats.PublicChatChannel +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.quick_action_copy_note_id +import com.vitorpamplona.amethyst.commons.resources.quick_action_share_browser_link import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.stringRes @@ -63,13 +65,13 @@ fun LinkChatButton( action = Intent.ACTION_SEND type = "text/plain" putExtra(Intent.EXTRA_TEXT, channel.toNostrUri()) - putExtra(Intent.EXTRA_TITLE, stringRes(context, R.string.quick_action_share_browser_link)) + putExtra(Intent.EXTRA_TITLE, stringRes(Res.string.quick_action_share_browser_link)) } val shareIntent = Intent.createChooser( sendIntent, - stringRes(context, R.string.quick_action_copy_note_id), + stringRes(Res.string.quick_action_copy_note_id), ) context.startActivity(shareIntent) @@ -78,7 +80,7 @@ fun LinkChatButton( ) { Icon( symbol = MaterialSymbols.ContentCopy, - contentDescription = stringRes(R.string.quick_action_copy_note_id), + contentDescription = stringRes(Res.string.quick_action_copy_note_id), modifier = Size20Modifier, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/header/actions/MuteChatButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/header/actions/MuteChatButton.kt index a6220fe8ac..f0b98d685a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/header/actions/MuteChatButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/header/actions/MuteChatButton.kt @@ -28,10 +28,12 @@ import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.nip28PublicChats.PublicChatChannel +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.mute_notifications +import com.vitorpamplona.amethyst.commons.resources.unmute_notifications import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.Size20Modifier @@ -47,7 +49,7 @@ fun MuteChatButton( val label = stringRes( - if (isMuted) R.string.unmute_notifications else R.string.mute_notifications, + if (isMuted) Res.string.unmute_notifications else Res.string.mute_notifications, ) FilledTonalButton( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/header/actions/ShareChatButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/header/actions/ShareChatButton.kt index e8f7a146a7..b5e7e2be34 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/header/actions/ShareChatButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/header/actions/ShareChatButton.kt @@ -28,10 +28,12 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.nip28PublicChats.PublicChatChannel +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.quick_action_share +import com.vitorpamplona.amethyst.commons.resources.quick_action_share_browser_link import com.vitorpamplona.amethyst.commons.util.njumpLink import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel @@ -58,13 +60,13 @@ fun ShareChatButton( action = Intent.ACTION_SEND type = "text/plain" putExtra(Intent.EXTRA_TEXT, njumpLink(channel.toNEvent())) - putExtra(Intent.EXTRA_TITLE, stringRes(context, R.string.quick_action_share_browser_link)) + putExtra(Intent.EXTRA_TITLE, stringRes(Res.string.quick_action_share_browser_link)) } val shareIntent = Intent.createChooser( sendIntent, - stringRes(context, R.string.quick_action_share), + stringRes(Res.string.quick_action_share), ) context.startActivity(shareIntent) @@ -73,7 +75,7 @@ fun ShareChatButton( ) { Icon( symbol = MaterialSymbols.Share, - contentDescription = stringRes(R.string.quick_action_share), + contentDescription = stringRes(Res.string.quick_action_share), modifier = Size20Modifier, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/metadata/ChannelMetadataScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/metadata/ChannelMetadataScreen.kt index 6371037daf..48c2cc4852 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/metadata/ChannelMetadataScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/metadata/ChannelMetadataScreen.kt @@ -46,13 +46,20 @@ import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.nip28PublicChats.PublicChatChannel import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.about_us import com.vitorpamplona.amethyst.commons.resources.channel_name +import com.vitorpamplona.amethyst.commons.resources.description +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_sign_events import com.vitorpamplona.amethyst.commons.resources.my_awesome_group import com.vitorpamplona.amethyst.commons.resources.picture_url +import com.vitorpamplona.amethyst.commons.resources.public_chat +import com.vitorpamplona.amethyst.commons.resources.public_chat_explainer +import com.vitorpamplona.amethyst.commons.resources.public_chat_relays_explainer +import com.vitorpamplona.amethyst.commons.resources.public_chat_relays_title +import com.vitorpamplona.amethyst.commons.resources.public_chat_title +import com.vitorpamplona.amethyst.commons.resources.read_only_user import com.vitorpamplona.amethyst.ui.actions.uploads.SelectSingleFromGallery import com.vitorpamplona.amethyst.ui.insets.imePaddingSafe import com.vitorpamplona.amethyst.ui.navigation.navs.EmptyNav @@ -148,7 +155,7 @@ private fun ChannelMetadataScaffold( topBar = { if (postViewModel.isNewChannel()) { CreatingTopBar( - titleRes = R.string.public_chat, + titleRes = Res.string.public_chat, isActive = { canPost }, onCancel = { postViewModel.clear() @@ -162,15 +169,15 @@ private fun ChannelMetadataScaffold( nav.popBack() } catch (e: SignerExceptions.ReadOnlyException) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_sign_events, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_sign_events, ) } }, ) } else { SavingTopBar( - titleRes = R.string.public_chat, + titleRes = Res.string.public_chat, isActive = { canPost }, onCancel = { postViewModel.clear() @@ -182,8 +189,8 @@ private fun ChannelMetadataScaffold( nav.popBack() } catch (e: SignerExceptions.ReadOnlyException) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_sign_events, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_sign_events, ) } }, @@ -204,8 +211,8 @@ private fun ChannelMetadataScaffold( ) { item { SettingsCategory( - R.string.public_chat_title, - R.string.public_chat_explainer, + Res.string.public_chat_title, + Res.string.public_chat_explainer, SettingsCategoryFirstModifier, ) @@ -220,8 +227,8 @@ private fun ChannelMetadataScaffold( Description(postViewModel) SettingsCategory( - R.string.public_chat_relays_title, - R.string.public_chat_relays_explainer, + Res.string.public_chat_relays_title, + Res.string.public_chat_relays_explainer, SettingsCategorySpacingModifier, ) } @@ -254,7 +261,7 @@ private fun ChannelMetadataScaffold( @Composable private fun Description(postViewModel: ChannelMetadataViewModel) { OutlinedTextField( - label = { Text(text = stringRes(R.string.description)) }, + label = { Text(text = stringRes(Res.string.description)) }, modifier = Modifier.fillMaxWidth(), value = postViewModel.channelDescription.value, onValueChange = { postViewModel.channelDescription.value = it }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/metadata/ChannelMetadataViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/metadata/ChannelMetadataViewModel.kt index 93209faf56..1260288d39 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/metadata/ChannelMetadataViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/metadata/ChannelMetadataViewModel.kt @@ -30,9 +30,16 @@ import androidx.compose.ui.text.input.TextFieldValue import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.nip28PublicChats.PublicChatChannel +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.avif_metadata_strip_failed +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media_no_details +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_upload +import com.vitorpamplona.amethyst.commons.resources.metadata_strip_failed_title +import com.vitorpamplona.amethyst.commons.resources.metadata_strip_failed_upload_cancelled +import com.vitorpamplona.amethyst.commons.resources.server_did_not_provide_a_url_after_uploading +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.uploads.AvifMetadataNotVerifiableException import com.vitorpamplona.amethyst.service.uploads.CompressorQuality @@ -45,7 +52,6 @@ import com.vitorpamplona.amethyst.ui.actions.uploads.SelectedMedia import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.common.BasicRelaySetupInfo import com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.common.relaySetupInfoBuilder -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip01Core.hints.EventHintBundle import com.vitorpamplona.quartz.nip01Core.signers.SignerExceptions import com.vitorpamplona.quartz.nip01Core.tags.events.ETag @@ -215,8 +221,8 @@ class ChannelMetadataViewModel : ViewModel() { val result = MetadataStripper.strip(galleryUri.uri, galleryUri.mimeType, context.applicationContext) if (!result.stripped) { onError( - stringRes(context, R.string.metadata_strip_failed_title), - stringRes(context, R.string.metadata_strip_failed_upload_cancelled), + loadStringRes(Res.string.metadata_strip_failed_title), + loadStringRes(Res.string.metadata_strip_failed_upload_cancelled), ) onUploading(false) return @@ -228,8 +234,8 @@ class ChannelMetadataViewModel : ViewModel() { } catch (e: AvifMetadataNotVerifiableException) { onUploading(false) onError( - stringRes(context, R.string.metadata_strip_failed_title), - stringRes(context, R.string.avif_metadata_strip_failed, e.message ?: e.javaClass.simpleName), + loadStringRes(Res.string.metadata_strip_failed_title), + loadStringRes(Res.string.avif_metadata_strip_failed, e.message ?: e.javaClass.simpleName), ) return } @@ -269,15 +275,15 @@ class ChannelMetadataViewModel : ViewModel() { onUploaded(result.url) } else { onUploading(false) - onError(stringRes(context, R.string.failed_to_upload_media_no_details), stringRes(context, R.string.server_did_not_provide_a_url_after_uploading)) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), loadStringRes(Res.string.server_did_not_provide_a_url_after_uploading)) } } catch (_: SignerExceptions.ReadOnlyException) { onUploading(false) - onError(stringRes(context, R.string.failed_to_upload_media_no_details), stringRes(context, R.string.login_with_a_private_key_to_be_able_to_upload)) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), loadStringRes(Res.string.login_with_a_private_key_to_be_able_to_upload)) } catch (e: Exception) { if (e is CancellationException) throw e onUploading(false) - onError(stringRes(context, R.string.failed_to_upload_media_no_details), e.message ?: e.javaClass.simpleName) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), e.message ?: e.javaClass.simpleName) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/metadata/CreateButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/metadata/CreateButton.kt index 2a49f4a9f9..9367213b6f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/metadata/CreateButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/nip28PublicChat/metadata/CreateButton.kt @@ -24,7 +24,8 @@ import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.create import com.vitorpamplona.amethyst.ui.stringRes @Composable @@ -38,6 +39,6 @@ fun CreateButton( modifier = modifier, onClick = onPost, ) { - Text(text = stringRes(R.string.create)) + Text(text = stringRes(Res.string.create)) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/BuzzChannelMenuItems.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/BuzzChannelMenuItems.kt index e6f762607d..ef62210504 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/BuzzChannelMenuItems.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/BuzzChannelMenuItems.kt @@ -29,11 +29,15 @@ import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.buzz.BuzzChannelStars import com.vitorpamplona.amethyst.commons.model.nip29RelayGroups.RelayGroupChannel +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.add_to_messages +import com.vitorpamplona.amethyst.commons.resources.buzz_pin +import com.vitorpamplona.amethyst.commons.resources.buzz_unpin +import com.vitorpamplona.amethyst.commons.resources.remove_from_messages import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip29RelayGroups.GroupId @@ -61,7 +65,7 @@ fun BuzzPinDropdownItem( modifier = Modifier.size(20.dp), ) }, - text = { Text(stringRes(if (isStarred) R.string.buzz_unpin else R.string.buzz_pin)) }, + text = { Text(stringRes(if (isStarred) Res.string.buzz_unpin else Res.string.buzz_pin)) }, onClick = { closeMenu() stars.toggle(groupId.id) @@ -93,7 +97,7 @@ fun RelayGroupMessagesDropdownItem( modifier = Modifier.size(20.dp), ) }, - text = { Text(stringRes(if (onMyList) R.string.remove_from_messages else R.string.add_to_messages)) }, + text = { Text(stringRes(if (onMyList) Res.string.remove_from_messages else Res.string.add_to_messages)) }, onClick = { closeMenu() if (onMyList) { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/BuzzTypingIndicator.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/BuzzTypingIndicator.kt index 1528d3fa11..a51cc82297 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/BuzzTypingIndicator.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/BuzzTypingIndicator.kt @@ -55,11 +55,11 @@ import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.buzz.BuzzTypingState import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.buzz_typing_many import com.vitorpamplona.amethyst.commons.resources.buzz_typing_one +import com.vitorpamplona.amethyst.commons.resources.buzz_typing_two import com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.observeUserInfo import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.stringRes @@ -138,7 +138,7 @@ private fun typingLabel( 1 -> stringRes(Res.string.buzz_typing_one, rememberTypistName(typers[0], accountViewModel)) 2 -> stringRes( - R.string.buzz_typing_two, + Res.string.buzz_typing_two, rememberTypistName(typers[0], accountViewModel), rememberTypistName(typers[1], accountViewModel), ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/InviteRelayGroupDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/InviteRelayGroupDialog.kt index 3126395624..fcb768d19c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/InviteRelayGroupDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/InviteRelayGroupDialog.kt @@ -35,9 +35,9 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.platform.LocalClipboard import androidx.compose.ui.text.font.FontFamily import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.nip29RelayGroups.RelayGroupChannel import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.copy import com.vitorpamplona.amethyst.commons.resources.relay_group_invite_code_label import com.vitorpamplona.amethyst.commons.resources.relay_group_invite_description @@ -143,7 +143,7 @@ fun InviteRelayGroupDialog( } }, dismissButton = { - TextButton(onClick = onDismiss) { Text(stringRes(R.string.cancel)) } + TextButton(onClick = onDismiss) { Text(stringRes(Res.string.cancel)) } }, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/JoinRelayGroupDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/JoinRelayGroupDialog.kt index cf704c90d6..1a9641bcf5 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/JoinRelayGroupDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/JoinRelayGroupDialog.kt @@ -34,9 +34,9 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.nip29RelayGroups.RelayGroupChannel import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.relay_group_join_code_hint import com.vitorpamplona.amethyst.commons.resources.relay_group_join_code_label import com.vitorpamplona.amethyst.commons.resources.relay_group_join_confirm @@ -86,7 +86,7 @@ fun JoinRelayGroupDialog( } }, dismissButton = { - TextButton(onClick = onDismiss) { Text(stringRes(R.string.cancel)) } + TextButton(onClick = onDismiss) { Text(stringRes(Res.string.cancel)) } }, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupChannelListScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupChannelListScreen.kt index 97252e2d54..ef0fe2a0f9 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupChannelListScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupChannelListScreen.kt @@ -64,7 +64,6 @@ import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note @@ -74,13 +73,19 @@ import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.nip29RelayGroups.RelayGroupChannel import com.vitorpamplona.amethyst.commons.model.nip29RelayGroups.RelayGroupDeletions import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.buzz_channel_create_title import com.vitorpamplona.amethyst.commons.resources.buzz_community_add_people import com.vitorpamplona.amethyst.commons.resources.buzz_dm_new import com.vitorpamplona.amethyst.commons.resources.buzz_dm_section_empty +import com.vitorpamplona.amethyst.commons.resources.buzz_dm_see_all_count import com.vitorpamplona.amethyst.commons.resources.buzz_dm_title +import com.vitorpamplona.amethyst.commons.resources.buzz_forum_create_title import com.vitorpamplona.amethyst.commons.resources.buzz_import_loading +import com.vitorpamplona.amethyst.commons.resources.now import com.vitorpamplona.amethyst.commons.resources.relay_group_channels_empty import com.vitorpamplona.amethyst.commons.resources.relay_group_channels_not_nip29 +import com.vitorpamplona.amethyst.commons.resources.relay_group_create_title +import com.vitorpamplona.amethyst.commons.resources.relay_group_member_count import com.vitorpamplona.amethyst.commons.resources.relay_group_role_member import com.vitorpamplona.amethyst.commons.resources.relay_group_section_archived import com.vitorpamplona.amethyst.commons.resources.relay_group_section_channels @@ -443,7 +448,7 @@ fun RelayGroupChannelListScreen( FloatingActionButton(onClick = { nav.nav(Route.RelayGroupCreate(relay.url)) }, shape = CircleShape) { Icon( symbol = MaterialSymbols.Add, - contentDescription = stringRes(R.string.relay_group_create_title), + contentDescription = stringRes(Res.string.relay_group_create_title), modifier = Modifier.size(24.dp), ) } @@ -525,7 +530,7 @@ fun RelayGroupChannelListScreen( collapsed = channelsCollapsed, onToggle = if (buzzChatChannels.isNotEmpty()) ({ toggleSection("channels") }) else null, ) { - SectionAddButton(stringRes(R.string.buzz_channel_create_title)) { + SectionAddButton(stringRes(Res.string.buzz_channel_create_title)) { nav.nav(Route.RelayGroupCreate(relay.url)) } } @@ -553,7 +558,7 @@ fun RelayGroupChannelListScreen( collapsed = forumsCollapsed, onToggle = if (buzzForumChannels.isNotEmpty()) ({ toggleSection("forums") }) else null, ) { - SectionAddButton(stringRes(R.string.buzz_forum_create_title)) { + SectionAddButton(stringRes(Res.string.buzz_forum_create_title)) { nav.nav(Route.RelayGroupCreate(relay.url, isForum = true)) } } @@ -647,7 +652,7 @@ fun RelayGroupChannelListScreen( if (dmRows.size > INLINE_DM_LIMIT) { val extra = dmRows.size - INLINE_DM_LIMIT item(key = "dm-see-all") { - SeeAllRow(pluralStringResource(R.plurals.buzz_dm_see_all_count, extra, extra)) { + SeeAllRow(pluralStringResource(Res.plurals.buzz_dm_see_all_count, extra, extra)) { nav.nav(Route.BuzzDmList(relay.url)) } } @@ -878,7 +883,7 @@ private fun BuzzDmInlineRow( } if (row.lastActivity > 0) { Text( - text = timeAgoShort(row.lastActivity, stringRes(R.string.now)), + text = timeAgoShort(row.lastActivity, stringRes(Res.string.now)), style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.onSurfaceVariant, ) @@ -992,7 +997,7 @@ private fun RelayGroupChannelRow( val subtitle = channel.summary()?.takeIf { it.isNotBlank() } ?: if (memberCount > 0) { - pluralStringResource(R.plurals.relay_group_member_count, memberCount, memberCount) + pluralStringResource(Res.plurals.relay_group_member_count, memberCount, memberCount) } else { null } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupDiscoveryScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupDiscoveryScreen.kt index c0f3f19e0d..206f36621c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupDiscoveryScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupDiscoveryScreen.kt @@ -49,13 +49,11 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color -import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.feeds.FeedContentState import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols @@ -67,7 +65,9 @@ import com.vitorpamplona.amethyst.commons.resources.relay_group_badge_live import com.vitorpamplona.amethyst.commons.resources.relay_group_badge_private import com.vitorpamplona.amethyst.commons.resources.relay_group_browse_title import com.vitorpamplona.amethyst.commons.resources.relay_group_favorite_relay +import com.vitorpamplona.amethyst.commons.resources.relay_group_member_count import com.vitorpamplona.amethyst.commons.resources.relay_group_message_count_short_capped +import com.vitorpamplona.amethyst.commons.resources.relay_group_relay_group_count import com.vitorpamplona.amethyst.commons.resources.select_list_to_filter import com.vitorpamplona.amethyst.commons.ui.layouts.rememberFeedContentPadding import com.vitorpamplona.amethyst.model.nip11RelayInfo.WarmNip11 @@ -392,7 +392,7 @@ private fun RelayRailHeader( } } Text( - text = pluralStringResource(R.plurals.relay_group_relay_group_count, groupCount, groupCount), + text = pluralStringResource(Res.plurals.relay_group_relay_group_count, groupCount, groupCount), style = MaterialTheme.typography.labelMedium, color = MaterialTheme.colorScheme.onSurfaceVariant, maxLines = 1, @@ -542,7 +542,7 @@ private fun RelayGroupRailRowContent( // load, so it tracks whatever the preview shows. lastNote?.createdAt()?.let { ts -> Text( - text = timeAgo(ts, LocalContext.current, prefix = ""), + text = timeAgo(ts, prefix = ""), style = MaterialTheme.typography.labelSmall, color = MaterialTheme.colorScheme.onSurfaceVariant, maxLines = 1, @@ -589,7 +589,7 @@ private fun RelayGroupPreviewLine( } else { val memberCount = channel.memberCount() if (memberCount > 0) { - pluralStringResource(R.plurals.relay_group_member_count, memberCount, memberCount) + pluralStringResource(Res.plurals.relay_group_member_count, memberCount, memberCount) } else { return } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupMembersScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupMembersScreen.kt index d50dffdcc7..e38fea8ef6 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupMembersScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupMembersScreen.kt @@ -63,7 +63,6 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.buzz.BuzzAgentActivityState @@ -74,6 +73,8 @@ import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.buzz_add_people_hint import com.vitorpamplona.amethyst.commons.resources.buzz_agent_working import com.vitorpamplona.amethyst.commons.resources.buzz_import_added +import com.vitorpamplona.amethyst.commons.resources.cancel +import com.vitorpamplona.amethyst.commons.resources.more_options import com.vitorpamplona.amethyst.commons.resources.relay_group_add_member import com.vitorpamplona.amethyst.commons.resources.relay_group_assign_role import com.vitorpamplona.amethyst.commons.resources.relay_group_demote_member @@ -401,7 +402,7 @@ private fun RelayGroupMemberRow( IconButton(onClick = { menuOpen = true }) { Icon( symbol = MaterialSymbols.MoreVert, - contentDescription = stringRes(R.string.more_options), + contentDescription = stringRes(Res.string.more_options), modifier = Modifier.size(20.dp), ) } @@ -504,7 +505,7 @@ private fun RelayGroupMemberRow( }, dismissButton = { TextButton(onClick = { confirmRemove = false }) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupMetadataScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupMetadataScreen.kt index 023ee8063f..eaea62ff27 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupMetadataScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupMetadataScreen.kt @@ -67,13 +67,18 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel import coil3.compose.AsyncImage import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.nip29RelayGroups.RelayGroupChannel import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.buzz_channel_create_title +import com.vitorpamplona.amethyst.commons.resources.buzz_channel_flag_private +import com.vitorpamplona.amethyst.commons.resources.buzz_channel_flag_private_desc +import com.vitorpamplona.amethyst.commons.resources.buzz_forum_create_title import com.vitorpamplona.amethyst.commons.resources.relay_group_add_photo import com.vitorpamplona.amethyst.commons.resources.relay_group_change_photo +import com.vitorpamplona.amethyst.commons.resources.relay_group_create_title +import com.vitorpamplona.amethyst.commons.resources.relay_group_edit_title import com.vitorpamplona.amethyst.commons.resources.relay_group_field_about import com.vitorpamplona.amethyst.commons.resources.relay_group_field_geohash import com.vitorpamplona.amethyst.commons.resources.relay_group_field_geohash_hint @@ -85,6 +90,8 @@ import com.vitorpamplona.amethyst.commons.resources.relay_group_flag_hidden import com.vitorpamplona.amethyst.commons.resources.relay_group_flag_hidden_desc import com.vitorpamplona.amethyst.commons.resources.relay_group_flag_invite_only import com.vitorpamplona.amethyst.commons.resources.relay_group_flag_invite_only_desc +import com.vitorpamplona.amethyst.commons.resources.relay_group_flag_private +import com.vitorpamplona.amethyst.commons.resources.relay_group_flag_private_desc import com.vitorpamplona.amethyst.commons.resources.relay_group_flag_restricted import com.vitorpamplona.amethyst.commons.resources.relay_group_flag_restricted_desc import com.vitorpamplona.amethyst.commons.resources.relay_group_location_add @@ -231,9 +238,9 @@ private fun RelayGroupMetadataScaffold( CreatingTopBar( titleRes = when { - !viewModel.isBuzzRelay -> R.string.relay_group_create_title - viewModel.isForum -> R.string.buzz_forum_create_title - else -> R.string.buzz_channel_create_title + !viewModel.isBuzzRelay -> Res.string.relay_group_create_title + viewModel.isForum -> Res.string.buzz_forum_create_title + else -> Res.string.buzz_channel_create_title }, isActive = { viewModel.canPost && (nip29Support == true || viewModel.isBuzzRelay) }, onCancel = nav::popBack, @@ -241,7 +248,7 @@ private fun RelayGroupMetadataScaffold( ) } else { SavingTopBar( - titleRes = R.string.relay_group_edit_title, + titleRes = Res.string.relay_group_edit_title, isActive = viewModel::canPost, onCancel = nav::popBack, onPost = onSubmit, @@ -438,8 +445,8 @@ private fun GroupMetadataFields(viewModel: RelayGroupMetadataViewModel) { // Buzz's `visibility`: open = searchable and anyone may join, private = hidden and invite-only. // One switch covers both, so it keeps NIP-29's private flag but says what Buzz actually does. LabeledSwitchRow( - label = stringRes(if (viewModel.isBuzzRelay) R.string.buzz_channel_flag_private else R.string.relay_group_flag_private), - description = stringRes(if (viewModel.isBuzzRelay) R.string.buzz_channel_flag_private_desc else R.string.relay_group_flag_private_desc), + label = stringRes(if (viewModel.isBuzzRelay) Res.string.buzz_channel_flag_private else Res.string.relay_group_flag_private), + description = stringRes(if (viewModel.isBuzzRelay) Res.string.buzz_channel_flag_private_desc else Res.string.relay_group_flag_private_desc), checked = viewModel.isPrivate, ) { viewModel.isPrivate = it diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupMetadataViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupMetadataViewModel.kt index ae5275e8f1..bbdbccacb3 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupMetadataViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupMetadataViewModel.kt @@ -30,9 +30,18 @@ import androidx.compose.ui.text.input.TextFieldValue import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.buzz.BuzzRelayDialect import com.vitorpamplona.amethyst.commons.model.nip29RelayGroups.RelayGroupChannel +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.avif_metadata_strip_failed +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media_no_details +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_sign_events +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_upload +import com.vitorpamplona.amethyst.commons.resources.metadata_strip_failed_title +import com.vitorpamplona.amethyst.commons.resources.metadata_strip_failed_upload_cancelled +import com.vitorpamplona.amethyst.commons.resources.read_only_user +import com.vitorpamplona.amethyst.commons.resources.server_did_not_provide_a_url_after_uploading +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.uploads.AvifMetadataNotVerifiableException import com.vitorpamplona.amethyst.service.uploads.CompressorQuality @@ -43,7 +52,6 @@ import com.vitorpamplona.amethyst.service.uploads.nip96.Nip96Uploader import com.vitorpamplona.amethyst.ui.actions.mediaServers.ServerType import com.vitorpamplona.amethyst.ui.actions.uploads.SelectedMedia import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.buzz.workspace.BUZZ_CHANNEL_TYPE_FORUM import com.vitorpamplona.quartz.buzz.workspace.BUZZ_CHANNEL_TYPE_STREAM import com.vitorpamplona.quartz.buzz.workspace.newBuzzChannelId @@ -228,8 +236,8 @@ class RelayGroupMetadataViewModel : ViewModel() { publish() } catch (e: SignerExceptions.ReadOnlyException) { onError( - stringRes(context, R.string.read_only_user), - stringRes(context, R.string.login_with_a_private_key_to_be_able_to_sign_events), + loadStringRes(Res.string.read_only_user), + loadStringRes(Res.string.login_with_a_private_key_to_be_able_to_sign_events), ) return@launch } @@ -301,8 +309,8 @@ class RelayGroupMetadataViewModel : ViewModel() { val result = MetadataStripper.strip(galleryUri.uri, galleryUri.mimeType, context.applicationContext) if (!result.stripped) { onError( - stringRes(context, R.string.metadata_strip_failed_title), - stringRes(context, R.string.metadata_strip_failed_upload_cancelled), + loadStringRes(Res.string.metadata_strip_failed_title), + loadStringRes(Res.string.metadata_strip_failed_upload_cancelled), ) return null } @@ -312,8 +320,8 @@ class RelayGroupMetadataViewModel : ViewModel() { } } catch (e: AvifMetadataNotVerifiableException) { onError( - stringRes(context, R.string.metadata_strip_failed_title), - stringRes(context, R.string.avif_metadata_strip_failed, e.message ?: e.javaClass.simpleName), + loadStringRes(Res.string.metadata_strip_failed_title), + loadStringRes(Res.string.avif_metadata_strip_failed, e.message ?: e.javaClass.simpleName), ) return null } @@ -350,20 +358,20 @@ class RelayGroupMetadataViewModel : ViewModel() { result.url ?: run { onError( - stringRes(context, R.string.failed_to_upload_media_no_details), - stringRes(context, R.string.server_did_not_provide_a_url_after_uploading), + loadStringRes(Res.string.failed_to_upload_media_no_details), + loadStringRes(Res.string.server_did_not_provide_a_url_after_uploading), ) null } } catch (_: SignerExceptions.ReadOnlyException) { onError( - stringRes(context, R.string.failed_to_upload_media_no_details), - stringRes(context, R.string.login_with_a_private_key_to_be_able_to_upload), + loadStringRes(Res.string.failed_to_upload_media_no_details), + loadStringRes(Res.string.login_with_a_private_key_to_be_able_to_upload), ) null } catch (e: Exception) { if (e is CancellationException) throw e - onError(stringRes(context, R.string.failed_to_upload_media_no_details), e.message ?: e.javaClass.simpleName) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), e.message ?: e.javaClass.simpleName) null } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupParentPicker.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupParentPicker.kt index d0ce191cda..5b40b1aef5 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupParentPicker.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupParentPicker.kt @@ -61,12 +61,12 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.nip29RelayGroups.RelayGroupChannel import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.relay_group_member_count import com.vitorpamplona.amethyst.commons.resources.relay_group_parent_desc import com.vitorpamplona.amethyst.commons.resources.relay_group_parent_empty import com.vitorpamplona.amethyst.commons.resources.relay_group_parent_label @@ -408,7 +408,7 @@ private fun GroupPickRow( val subtitle = channel.summary()?.takeIf { it.isNotBlank() } ?: if (memberCount > 0) { - pluralStringResource(R.plurals.relay_group_member_count, memberCount, memberCount) + pluralStringResource(Res.plurals.relay_group_member_count, memberCount, memberCount) } else { null } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupThreadsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupThreadsScreen.kt index e29720b840..21e7008bff 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupThreadsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupThreadsScreen.kt @@ -56,7 +56,6 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note @@ -64,6 +63,9 @@ import com.vitorpamplona.amethyst.commons.model.buzz.BuzzRelayDialect import com.vitorpamplona.amethyst.commons.model.nip29RelayGroups.RelayGroupChannel import com.vitorpamplona.amethyst.commons.model.nip29RelayGroups.RelayGroupMembership import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.buzz_channel_archive +import com.vitorpamplona.amethyst.commons.resources.buzz_channel_unarchive +import com.vitorpamplona.amethyst.commons.resources.more_options import com.vitorpamplona.amethyst.commons.resources.relay_group_thread_new import com.vitorpamplona.amethyst.commons.resources.relay_group_thread_untitled import com.vitorpamplona.amethyst.commons.resources.relay_group_threads_all_caught_up @@ -191,7 +193,7 @@ private fun RelayGroupThreads( IconButton(onClick = { menuOpen = true }) { Icon( symbol = MaterialSymbols.MoreVert, - contentDescription = stringRes(R.string.more_options), + contentDescription = stringRes(Res.string.more_options), modifier = Modifier.size(22.dp), ) } @@ -201,7 +203,7 @@ private fun RelayGroupThreads( if (isAdmin) { val archived = channel.isArchived() DropdownMenuItem( - text = { Text(stringRes(if (archived) R.string.buzz_channel_unarchive else R.string.buzz_channel_archive)) }, + text = { Text(stringRes(if (archived) Res.string.buzz_channel_unarchive else Res.string.buzz_channel_archive)) }, onClick = { menuOpen = false accountViewModel.archiveRelayGroup(channel, !archived) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupTopBar.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupTopBar.kt index ccba211bb3..5c5aa551b3 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupTopBar.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/relayGroup/RelayGroupTopBar.kt @@ -50,7 +50,6 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.buzz.BuzzDmRegistry @@ -60,9 +59,21 @@ import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.nip29RelayGroups.RelayGroupChannel import com.vitorpamplona.amethyst.commons.model.nip29RelayGroups.RelayGroupMembership import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.add_to_messages import com.vitorpamplona.amethyst.commons.resources.buzz_agent_work_title import com.vitorpamplona.amethyst.commons.resources.buzz_canvas_title +import com.vitorpamplona.amethyst.commons.resources.buzz_channel_archive +import com.vitorpamplona.amethyst.commons.resources.buzz_channel_delete +import com.vitorpamplona.amethyst.commons.resources.buzz_channel_delete_confirm +import com.vitorpamplona.amethyst.commons.resources.buzz_channel_unarchive +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.join +import com.vitorpamplona.amethyst.commons.resources.leave +import com.vitorpamplona.amethyst.commons.resources.more_options +import com.vitorpamplona.amethyst.commons.resources.quick_action_share +import com.vitorpamplona.amethyst.commons.resources.quick_action_share_browser_link +import com.vitorpamplona.amethyst.commons.resources.relay_group_delete +import com.vitorpamplona.amethyst.commons.resources.relay_group_delete_confirm import com.vitorpamplona.amethyst.commons.resources.relay_group_invite_title import com.vitorpamplona.amethyst.commons.resources.relay_group_menu_edit import com.vitorpamplona.amethyst.commons.resources.relay_group_menu_members @@ -70,6 +81,7 @@ import com.vitorpamplona.amethyst.commons.resources.relay_group_pending import com.vitorpamplona.amethyst.commons.resources.relay_group_role_admin import com.vitorpamplona.amethyst.commons.resources.relay_group_role_moderator import com.vitorpamplona.amethyst.commons.resources.relay_group_threads_title +import com.vitorpamplona.amethyst.commons.resources.remove_from_messages import com.vitorpamplona.amethyst.commons.search.SearchSeed import com.vitorpamplona.amethyst.commons.util.njumpLink import com.vitorpamplona.amethyst.service.relayClient.reqCommand.channel.observeChannel @@ -265,7 +277,7 @@ fun RelayGroupTopBar( IconButton(onClick = { menuOpen = true }) { Icon( symbol = MaterialSymbols.MoreVert, - contentDescription = stringRes(R.string.more_options), + contentDescription = stringRes(Res.string.more_options), modifier = Modifier.size(22.dp), ) } @@ -281,7 +293,7 @@ fun RelayGroupTopBar( if (isBuzzRelay && isDm) { val dmHidden = channel.groupId.id in (hiddenDms[myPubkey] ?: emptySet()) DropdownMenuItem( - text = { Text(stringRes(if (dmHidden) R.string.add_to_messages else R.string.remove_from_messages)) }, + text = { Text(stringRes(if (dmHidden) Res.string.add_to_messages else Res.string.remove_from_messages)) }, onClick = { menuOpen = false if (dmHidden) { @@ -322,11 +334,13 @@ fun RelayGroupTopBar( } if (naddr != null) { val context = LocalContext.current + val shareLinkTitle = stringRes(Res.string.quick_action_share_browser_link) + val shareChooserTitle = stringRes(Res.string.quick_action_share) DropdownMenuItem( - text = { Text(stringRes(R.string.quick_action_share)) }, + text = { Text(stringRes(Res.string.quick_action_share)) }, onClick = { menuOpen = false - shareRelayGroup(context, naddr) + shareRelayGroup(context, naddr, shareLinkTitle, shareChooserTitle) }, ) } @@ -370,7 +384,7 @@ fun RelayGroupTopBar( // what makes the entry flip so the action is visibly undoable. Leave still pops. val onMyList = channel.groupId in joinedGroupIds DropdownMenuItem( - text = { Text(stringRes(if (onMyList) R.string.remove_from_messages else R.string.add_to_messages)) }, + text = { Text(stringRes(if (onMyList) Res.string.remove_from_messages else Res.string.add_to_messages)) }, onClick = { menuOpen = false if (onMyList) { @@ -381,7 +395,7 @@ fun RelayGroupTopBar( }, ) DropdownMenuItem( - text = { Text(stringRes(R.string.leave), color = MaterialTheme.colorScheme.error) }, + text = { Text(stringRes(Res.string.leave), color = MaterialTheme.colorScheme.error) }, onClick = { menuOpen = false accountViewModel.leaveRelayGroup(channel) @@ -394,7 +408,7 @@ fun RelayGroupTopBar( if (isBuzzRelay && !isDm && displayMembership == RelayGroupMembership.ADMIN) { val archived = channel.isArchived() DropdownMenuItem( - text = { Text(stringRes(if (archived) R.string.buzz_channel_unarchive else R.string.buzz_channel_archive)) }, + text = { Text(stringRes(if (archived) Res.string.buzz_channel_unarchive else Res.string.buzz_channel_archive)) }, onClick = { menuOpen = false accountViewModel.archiveRelayGroup(channel, !archived) @@ -408,7 +422,7 @@ fun RelayGroupTopBar( DropdownMenuItem( text = { Text( - text = stringRes(if (isBuzzRelay) R.string.buzz_channel_delete else R.string.relay_group_delete), + text = stringRes(if (isBuzzRelay) Res.string.buzz_channel_delete else Res.string.relay_group_delete), color = MaterialTheme.colorScheme.error, ) }, @@ -441,14 +455,14 @@ fun RelayGroupTopBar( } if (confirmDelete) { - val deleteLabel = stringRes(if (isBuzzRelay) R.string.buzz_channel_delete else R.string.relay_group_delete) + val deleteLabel = stringRes(if (isBuzzRelay) Res.string.buzz_channel_delete else Res.string.relay_group_delete) AlertDialog( onDismissRequest = { confirmDelete = false }, title = { Text(deleteLabel) }, text = { Text( stringRes( - if (isBuzzRelay) R.string.buzz_channel_delete_confirm else R.string.relay_group_delete_confirm, + if (isBuzzRelay) Res.string.buzz_channel_delete_confirm else Res.string.relay_group_delete_confirm, channel.toBestDisplayName(), ), ) @@ -464,7 +478,7 @@ fun RelayGroupTopBar( }, dismissButton = { TextButton(onClick = { confirmDelete = false }) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) @@ -493,15 +507,17 @@ private fun DmParticipantTitle( private fun shareRelayGroup( context: Context, naddr: String, + linkTitle: String, + chooserTitle: String, ) { val sendIntent = Intent().apply { action = Intent.ACTION_SEND type = "text/plain" putExtra(Intent.EXTRA_TEXT, njumpLink(naddr)) - putExtra(Intent.EXTRA_TITLE, stringRes(context, R.string.quick_action_share_browser_link)) + putExtra(Intent.EXTRA_TITLE, linkTitle) } - context.startActivity(Intent.createChooser(sendIntent, stringRes(context, R.string.quick_action_share))) + context.startActivity(Intent.createChooser(sendIntent, chooserTitle)) } /** A small colored pill naming the user's role/status in the group. */ diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/send/ChannelNewMessageViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/send/ChannelNewMessageViewModel.kt index dead22568f..86aa3966dc 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/send/ChannelNewMessageViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/send/ChannelNewMessageViewModel.kt @@ -32,7 +32,6 @@ import androidx.compose.runtime.setValue import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.AddressableNote import com.vitorpamplona.amethyst.commons.model.Channel import com.vitorpamplona.amethyst.commons.model.Note @@ -47,8 +46,13 @@ import com.vitorpamplona.amethyst.commons.model.nip29RelayGroups.RelayGroupMembe import com.vitorpamplona.amethyst.commons.model.nip30CustomEmojis.EmojiPackState import com.vitorpamplona.amethyst.commons.model.nip30CustomEmojis.EmojiSuggestionState import com.vitorpamplona.amethyst.commons.model.nip53LiveActivities.LiveActivitiesChannel +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media_no_details +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_sign_events +import com.vitorpamplona.amethyst.commons.resources.read_only_user import com.vitorpamplona.amethyst.commons.richtext.UrlParser import com.vitorpamplona.amethyst.commons.service.pow.PoWReplay +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.commons.ui.text.currentWord import com.vitorpamplona.amethyst.commons.ui.text.insertUrlAtCursor import com.vitorpamplona.amethyst.commons.ui.text.onUiThread @@ -70,7 +74,6 @@ import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.privateDM.send.IMetaAttachments import com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.utils.ChatFileUploadState import com.vitorpamplona.amethyst.ui.screen.loggedIn.home.UserSuggestionAnchor -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.buzz.stream.StreamMessageEditEvent import com.vitorpamplona.quartz.buzz.stream.StreamMessageV2Event import com.vitorpamplona.quartz.buzz.stream.mentions @@ -479,13 +482,17 @@ open class ChannelNewMessageViewModel : onError: (title: String, message: String) -> Unit, context: Context, onceUploaded: suspend () -> Unit, - ) = try { - uploadUnsafe(onError, context, onceUploaded) - } catch (_: SignerExceptions.ReadOnlyException) { - onError( - stringRes(context, R.string.read_only_user), - stringRes(context, R.string.login_with_a_private_key_to_be_able_to_sign_events), - ) + ) { + try { + uploadUnsafe(onError, context, onceUploaded) + } catch (_: SignerExceptions.ReadOnlyException) { + viewModelScope.launch { + onError( + loadStringRes(Res.string.read_only_user), + loadStringRes(Res.string.login_with_a_private_key_to_be_able_to_sign_events), + ) + } + } } fun uploadUnsafe( @@ -537,9 +544,9 @@ open class ChannelNewMessageViewModel : onceUploaded() draftTag.newVersion() } else { - val errorMessages = results.errors.map { stringRes(context, it.errorResource, *it.params) }.distinct() + val errorMessages = results.errors.map { loadStringRes(it.errorResource, *it.params) }.distinct() - onError(stringRes(context, R.string.failed_to_upload_media_no_details), errorMessages.joinToString(".\n")) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), errorMessages.joinToString(".\n")) } uploadState.mediaUploadTracker.finishUpload() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/send/EditFieldRow.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/send/EditFieldRow.kt index 05b76b8888..f81a33a663 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/send/EditFieldRow.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/send/EditFieldRow.kt @@ -41,7 +41,6 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.style.TextDirection import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.buzz.BuzzRelayDialect @@ -50,6 +49,8 @@ import com.vitorpamplona.amethyst.commons.model.nip29RelayGroups.RelayGroupChann import com.vitorpamplona.amethyst.commons.nip30CustomEmojis.ui.ShowEmojiSuggestionList import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.buzz_editing_banner +import com.vitorpamplona.amethyst.commons.resources.cancel +import com.vitorpamplona.amethyst.commons.resources.reply_here import com.vitorpamplona.amethyst.commons.ui.text.onUiThread import com.vitorpamplona.amethyst.ui.actions.MentionPreservingInputTransformation import com.vitorpamplona.amethyst.ui.actions.StrippingFailureDialog @@ -123,7 +124,7 @@ fun EditFieldRow( IconButton(onClick = { channelScreenModel.clearBuzzEdit() }) { Icon( symbol = MaterialSymbols.Close, - contentDescription = stringRes(R.string.cancel), + contentDescription = stringRes(Res.string.cancel), modifier = Modifier.size(16.dp), ) } @@ -198,7 +199,7 @@ fun EditFieldRow( modifier = Modifier.fillMaxWidth(), placeholder = { Text( - text = stringRes(R.string.reply_here), + text = stringRes(Res.string.reply_here), color = MaterialTheme.colorScheme.placeholderText, ) }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/ChatroomHeaderCompose.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/ChatroomHeaderCompose.kt index 010d604ed3..0023a52386 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/ChatroomHeaderCompose.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/ChatroomHeaderCompose.kt @@ -45,7 +45,6 @@ import androidx.compose.ui.text.style.TextDirection import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols @@ -63,6 +62,7 @@ import com.vitorpamplona.amethyst.commons.model.privateChatLastReadRoute import com.vitorpamplona.amethyst.commons.model.privateChats.ChatPreview import com.vitorpamplona.amethyst.commons.model.privateChats.chatPreviewOf import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.add_to_messages import com.vitorpamplona.amethyst.commons.resources.channel_created import com.vitorpamplona.amethyst.commons.resources.channel_image import com.vitorpamplona.amethyst.commons.resources.channel_information_changed_to @@ -72,13 +72,26 @@ import com.vitorpamplona.amethyst.commons.resources.channel_invite_row_added_you import com.vitorpamplona.amethyst.commons.resources.channel_invite_row_added_you_by import com.vitorpamplona.amethyst.commons.resources.chat_preview_decrypting import com.vitorpamplona.amethyst.commons.resources.chat_preview_you_prefix +import com.vitorpamplona.amethyst.commons.resources.concord_home_title +import com.vitorpamplona.amethyst.commons.resources.concord_server_label import com.vitorpamplona.amethyst.commons.resources.could_not_decrypt_the_message +import com.vitorpamplona.amethyst.commons.resources.ephemeral_relay_chat +import com.vitorpamplona.amethyst.commons.resources.geohash_chat +import com.vitorpamplona.amethyst.commons.resources.leave import com.vitorpamplona.amethyst.commons.resources.loading_feed +import com.vitorpamplona.amethyst.commons.resources.marmot_group import com.vitorpamplona.amethyst.commons.resources.marmot_group_no_messages_yet +import com.vitorpamplona.amethyst.commons.resources.mute_notifications import com.vitorpamplona.amethyst.commons.resources.muted_chat_content_description +import com.vitorpamplona.amethyst.commons.resources.pin_conversation import com.vitorpamplona.amethyst.commons.resources.pinned_to_top +import com.vitorpamplona.amethyst.commons.resources.public_chat import com.vitorpamplona.amethyst.commons.resources.referenced_event_not_found import com.vitorpamplona.amethyst.commons.resources.relay_group_no_messages_yet +import com.vitorpamplona.amethyst.commons.resources.relay_group_server_label +import com.vitorpamplona.amethyst.commons.resources.remove_from_messages +import com.vitorpamplona.amethyst.commons.resources.unmute_notifications +import com.vitorpamplona.amethyst.commons.resources.unpin_conversation import com.vitorpamplona.amethyst.commons.ui.note.HeaderPill import com.vitorpamplona.amethyst.model.buzz.toMembershipNotice import com.vitorpamplona.amethyst.model.nip11RelayInfo.loadRelayInfo @@ -344,7 +357,7 @@ private fun ChannelRoomCompose( ChannelTitleWithLabelInfo( channelName, if (isMuted) MaterialSymbols.NotificationsOff else MaterialSymbols.Public, - R.string.public_chat, + Res.string.public_chat, modifier, labelContentDescription = if (isMuted) stringRes(Res.string.muted_chat_content_description) else null, ) @@ -371,9 +384,9 @@ private fun ChannelRoomCompose( Text( stringRes( if (channel.idHex in mutedChats.value) { - R.string.unmute_notifications + Res.string.unmute_notifications } else { - R.string.mute_notifications + Res.string.mute_notifications }, ), ) @@ -408,7 +421,7 @@ private fun ChannelRoomCompose( ChannelName( channelIdHex = channel.roomId.toKey(), channelPicture = relayInfo.icon, - channelTitle = { modifier -> ChannelTitleWithLabelInfo(channel.toBestDisplayName(), MaterialSymbols.Timer, R.string.ephemeral_relay_chat, modifier) }, + channelTitle = { modifier -> ChannelTitleWithLabelInfo(channel.toBestDisplayName(), MaterialSymbols.Timer, Res.string.ephemeral_relay_chat, modifier) }, channelLastTime = lastMessage.createdAt(), channelLastContent = "$authorName: $description", hasNewMessages = (noteEvent?.createdAt ?: Long.MIN_VALUE) > lastReadTime, @@ -443,7 +456,7 @@ private fun GeohashRoomCompose( ChannelName( channelIdHex = "Geohash/${geohashChannel.geohash}", channelPicture = null, - channelTitle = { modifier -> ChannelTitleWithLabelInfo(geohashChannel.toBestDisplayName(), MaterialSymbols.LocationOn, R.string.geohash_chat, modifier) }, + channelTitle = { modifier -> ChannelTitleWithLabelInfo(geohashChannel.toBestDisplayName(), MaterialSymbols.LocationOn, Res.string.geohash_chat, modifier) }, channelLastTime = lastMessage.createdAt(), channelLastContent = lastContent, hasNewMessages = (noteEvent?.createdAt ?: Long.MIN_VALUE) > lastReadTime, @@ -497,7 +510,7 @@ private fun MarmotGroupRoomCompose( ChannelName( channelIdHex = chatroom.nostrGroupId, channelPicture = channelPicture, - channelTitle = { modifier -> ChannelTitleWithLabelInfo(groupName, MaterialSymbols.Lock, R.string.marmot_group, modifier) }, + channelTitle = { modifier -> ChannelTitleWithLabelInfo(groupName, MaterialSymbols.Lock, Res.string.marmot_group, modifier) }, channelLastTime = lastMessage.createdAt(), channelLastContent = lastContent, hasNewMessages = (lastMessage.createdAt() ?: Long.MIN_VALUE) > lastReadTime, @@ -554,14 +567,14 @@ private fun RelayGroupRoomCompose( // group top bar so "Remove from Messages" (drop from my list, stay a member) and "Leave" // (kind-9022) are reachable without opening the group first. DropdownMenuItem( - text = { Text(stringRes(R.string.remove_from_messages)) }, + text = { Text(stringRes(Res.string.remove_from_messages)) }, onClick = { dismiss() accountViewModel.removeRelayGroupFromMessages(channel) }, ) DropdownMenuItem( - text = { Text(stringRes(R.string.leave), color = MaterialTheme.colorScheme.error) }, + text = { Text(stringRes(Res.string.leave), color = MaterialTheme.colorScheme.error) }, onClick = { dismiss() accountViewModel.leaveRelayGroup(channel) @@ -690,7 +703,7 @@ private fun ChannelInviteRoomCompose( nav = nav, ) { channel, dismiss -> DropdownMenuItem( - text = { Text(stringRes(R.string.add_to_messages)) }, + text = { Text(stringRes(Res.string.add_to_messages)) }, onClick = { dismiss() accountViewModel.acceptChannelInvite(channel) @@ -809,7 +822,7 @@ private fun ConcordRoomCompose( DropdownMenu(expanded = menuOpen, onDismissRequest = { menuOpen = false }) { DropdownMenuItem( - text = { Text(stringRes(R.string.leave), color = MaterialTheme.colorScheme.error) }, + text = { Text(stringRes(Res.string.leave), color = MaterialTheme.colorScheme.error) }, onClick = { menuOpen = false showLeave = true @@ -850,7 +863,7 @@ private fun RelayGroupServerRoomCompose( ChannelName( channelIdHex = relay.url, channelPicture = relayInfo.icon, - channelTitle = { modifier -> ChannelTitleWithLabelInfo(name, MaterialSymbols.Dns, R.string.relay_group_server_label, modifier) }, + channelTitle = { modifier -> ChannelTitleWithLabelInfo(name, MaterialSymbols.Dns, Res.string.relay_group_server_label, modifier) }, channelLastTime = row.newestMessage?.createdAt(), channelLastContent = lastContent, hasNewMessages = hasNewMessages, @@ -881,7 +894,7 @@ private fun ConcordServerRoomCompose( ?.value ?.metadata } - val name = metadata?.name?.takeIf { it.isNotBlank() } ?: stringRes(R.string.concord_home_title) + val name = metadata?.name?.takeIf { it.isNotBlank() } ?: stringRes(Res.string.concord_home_title) val author = row.newestMessage?.author val noteEvent = row.newestMessage?.event @@ -901,7 +914,7 @@ private fun ConcordServerRoomCompose( ChannelName( channelIdHex = row.communityId, channelPicture = rememberConcordImageModel(metadata?.icon, accountViewModel), - channelTitle = { modifier -> ChannelTitleWithLabelInfo(name, MaterialSymbols.Group, R.string.concord_server_label, modifier) }, + channelTitle = { modifier -> ChannelTitleWithLabelInfo(name, MaterialSymbols.Group, Res.string.concord_server_label, modifier) }, channelLastTime = row.newestMessage?.createdAt(), channelLastContent = lastContent, hasNewMessages = hasNewMessages, @@ -1043,7 +1056,7 @@ private fun UserRoomCompose( ) { DropdownMenuItem( text = { - Text(stringRes(if (room in pinnedRooms.value) R.string.unpin_conversation else R.string.pin_conversation)) + Text(stringRes(if (room in pinnedRooms.value) Res.string.unpin_conversation else Res.string.pin_conversation)) }, onClick = { accountViewModel.toggleChatroomPin(room) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/NewConversationScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/NewConversationScreen.kt index 56b5a98e70..e5ac769e80 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/NewConversationScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/NewConversationScreen.kt @@ -20,7 +20,6 @@ */ package com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.rooms -import androidx.annotation.StringRes import androidx.compose.animation.animateContentSize import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.layout.Arrangement @@ -59,14 +58,74 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.new_conversation_best_for +import com.vitorpamplona.amethyst.commons.resources.new_conversation_concord_best +import com.vitorpamplona.amethyst.commons.resources.new_conversation_concord_chip +import com.vitorpamplona.amethyst.commons.resources.new_conversation_concord_con_1 +import com.vitorpamplona.amethyst.commons.resources.new_conversation_concord_cta +import com.vitorpamplona.amethyst.commons.resources.new_conversation_concord_pro_1 +import com.vitorpamplona.amethyst.commons.resources.new_conversation_concord_pro_2 +import com.vitorpamplona.amethyst.commons.resources.new_conversation_concord_tagline +import com.vitorpamplona.amethyst.commons.resources.new_conversation_concord_title import com.vitorpamplona.amethyst.commons.resources.new_conversation_cons +import com.vitorpamplona.amethyst.commons.resources.new_conversation_dm_best +import com.vitorpamplona.amethyst.commons.resources.new_conversation_dm_chip +import com.vitorpamplona.amethyst.commons.resources.new_conversation_dm_con_1 +import com.vitorpamplona.amethyst.commons.resources.new_conversation_dm_cta +import com.vitorpamplona.amethyst.commons.resources.new_conversation_dm_pro_1 +import com.vitorpamplona.amethyst.commons.resources.new_conversation_dm_pro_2 +import com.vitorpamplona.amethyst.commons.resources.new_conversation_dm_tagline +import com.vitorpamplona.amethyst.commons.resources.new_conversation_dm_title +import com.vitorpamplona.amethyst.commons.resources.new_conversation_ephemeral_best +import com.vitorpamplona.amethyst.commons.resources.new_conversation_ephemeral_chip +import com.vitorpamplona.amethyst.commons.resources.new_conversation_ephemeral_con_1 +import com.vitorpamplona.amethyst.commons.resources.new_conversation_ephemeral_con_2 +import com.vitorpamplona.amethyst.commons.resources.new_conversation_ephemeral_cta +import com.vitorpamplona.amethyst.commons.resources.new_conversation_ephemeral_pro_1 +import com.vitorpamplona.amethyst.commons.resources.new_conversation_ephemeral_pro_2 +import com.vitorpamplona.amethyst.commons.resources.new_conversation_ephemeral_tagline +import com.vitorpamplona.amethyst.commons.resources.new_conversation_ephemeral_title +import com.vitorpamplona.amethyst.commons.resources.new_conversation_location_best +import com.vitorpamplona.amethyst.commons.resources.new_conversation_location_chip +import com.vitorpamplona.amethyst.commons.resources.new_conversation_location_con_1 +import com.vitorpamplona.amethyst.commons.resources.new_conversation_location_cta +import com.vitorpamplona.amethyst.commons.resources.new_conversation_location_pro_1 +import com.vitorpamplona.amethyst.commons.resources.new_conversation_location_pro_2 +import com.vitorpamplona.amethyst.commons.resources.new_conversation_location_tagline +import com.vitorpamplona.amethyst.commons.resources.new_conversation_location_title +import com.vitorpamplona.amethyst.commons.resources.new_conversation_marmot_best +import com.vitorpamplona.amethyst.commons.resources.new_conversation_marmot_chip +import com.vitorpamplona.amethyst.commons.resources.new_conversation_marmot_con_1 +import com.vitorpamplona.amethyst.commons.resources.new_conversation_marmot_cta +import com.vitorpamplona.amethyst.commons.resources.new_conversation_marmot_pro_1 +import com.vitorpamplona.amethyst.commons.resources.new_conversation_marmot_pro_2 +import com.vitorpamplona.amethyst.commons.resources.new_conversation_marmot_tagline +import com.vitorpamplona.amethyst.commons.resources.new_conversation_marmot_title import com.vitorpamplona.amethyst.commons.resources.new_conversation_pros +import com.vitorpamplona.amethyst.commons.resources.new_conversation_public_chat_best +import com.vitorpamplona.amethyst.commons.resources.new_conversation_public_chat_chip +import com.vitorpamplona.amethyst.commons.resources.new_conversation_public_chat_con_1 +import com.vitorpamplona.amethyst.commons.resources.new_conversation_public_chat_con_2 +import com.vitorpamplona.amethyst.commons.resources.new_conversation_public_chat_cta +import com.vitorpamplona.amethyst.commons.resources.new_conversation_public_chat_pro_1 +import com.vitorpamplona.amethyst.commons.resources.new_conversation_public_chat_pro_2 +import com.vitorpamplona.amethyst.commons.resources.new_conversation_public_chat_tagline +import com.vitorpamplona.amethyst.commons.resources.new_conversation_public_chat_title +import com.vitorpamplona.amethyst.commons.resources.new_conversation_relay_group_best +import com.vitorpamplona.amethyst.commons.resources.new_conversation_relay_group_chip +import com.vitorpamplona.amethyst.commons.resources.new_conversation_relay_group_con_1 +import com.vitorpamplona.amethyst.commons.resources.new_conversation_relay_group_cta +import com.vitorpamplona.amethyst.commons.resources.new_conversation_relay_group_pro_1 +import com.vitorpamplona.amethyst.commons.resources.new_conversation_relay_group_pro_2 +import com.vitorpamplona.amethyst.commons.resources.new_conversation_relay_group_tagline +import com.vitorpamplona.amethyst.commons.resources.new_conversation_relay_group_title +import com.vitorpamplona.amethyst.commons.resources.new_conversation_section_direct +import com.vitorpamplona.amethyst.commons.resources.new_conversation_section_encrypted +import com.vitorpamplona.amethyst.commons.resources.new_conversation_section_relay import com.vitorpamplona.amethyst.commons.resources.new_conversation_title import com.vitorpamplona.amethyst.ui.navigation.navs.EmptyNav import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -75,6 +134,7 @@ import com.vitorpamplona.amethyst.ui.navigation.topbars.TopBarWithBackButton import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.ThemeComparisonColumn import com.vitorpamplona.amethyst.ui.theme.grayText +import org.jetbrains.compose.resources.StringResource // Per-type accent colors. Each protocol gets its own hue so private-vs-public reads at a glance // instead of via text. Used at full strength for the icon tile (white glyph on top) and, tint-mixed, @@ -98,11 +158,11 @@ private val ColorLocation = Color(0xFF0891B2) private class ConversationType( val icon: MaterialSymbol, val color: Color, - @StringRes val title: Int, - @StringRes val tagline: Int, - @StringRes val chip: Int, - @StringRes val bestFor: Int, - @StringRes val cta: Int, + val title: StringResource, + val tagline: StringResource, + val chip: StringResource, + val bestFor: StringResource, + val cta: StringResource, val pros: List, val cons: List, val route: Route, @@ -110,7 +170,7 @@ private class ConversationType( @Immutable private class ConversationSection( - @StringRes val header: Int, + val header: StringResource, val types: List, ) @@ -119,103 +179,103 @@ private class ConversationSection( private val conversationSections = listOf( ConversationSection( - header = R.string.new_conversation_section_direct, + header = Res.string.new_conversation_section_direct, types = listOf( ConversationType( icon = MaterialSymbols.Mail, color = ColorPrivate, - title = R.string.new_conversation_dm_title, - tagline = R.string.new_conversation_dm_tagline, - chip = R.string.new_conversation_dm_chip, - bestFor = R.string.new_conversation_dm_best, - cta = R.string.new_conversation_dm_cta, - pros = listOf(R.string.new_conversation_dm_pro_1, R.string.new_conversation_dm_pro_2), - cons = listOf(R.string.new_conversation_dm_con_1), + title = Res.string.new_conversation_dm_title, + tagline = Res.string.new_conversation_dm_tagline, + chip = Res.string.new_conversation_dm_chip, + bestFor = Res.string.new_conversation_dm_best, + cta = Res.string.new_conversation_dm_cta, + pros = listOf(Res.string.new_conversation_dm_pro_1, Res.string.new_conversation_dm_pro_2), + cons = listOf(Res.string.new_conversation_dm_con_1), route = Route.NewGroupDM(), ), ), ), ConversationSection( - header = R.string.new_conversation_section_encrypted, + header = Res.string.new_conversation_section_encrypted, types = listOf( ConversationType( icon = MaterialSymbols.Lock, color = ColorMarmot, - title = R.string.new_conversation_marmot_title, - tagline = R.string.new_conversation_marmot_tagline, - chip = R.string.new_conversation_marmot_chip, - bestFor = R.string.new_conversation_marmot_best, - cta = R.string.new_conversation_marmot_cta, - pros = listOf(R.string.new_conversation_marmot_pro_1, R.string.new_conversation_marmot_pro_2), - cons = listOf(R.string.new_conversation_marmot_con_1), + title = Res.string.new_conversation_marmot_title, + tagline = Res.string.new_conversation_marmot_tagline, + chip = Res.string.new_conversation_marmot_chip, + bestFor = Res.string.new_conversation_marmot_best, + cta = Res.string.new_conversation_marmot_cta, + pros = listOf(Res.string.new_conversation_marmot_pro_1, Res.string.new_conversation_marmot_pro_2), + cons = listOf(Res.string.new_conversation_marmot_con_1), route = Route.CreateMarmotGroup, ), ConversationType( icon = MaterialSymbols.Groups, color = ColorConcord, - title = R.string.new_conversation_concord_title, - tagline = R.string.new_conversation_concord_tagline, - chip = R.string.new_conversation_concord_chip, - bestFor = R.string.new_conversation_concord_best, - cta = R.string.new_conversation_concord_cta, - pros = listOf(R.string.new_conversation_concord_pro_1, R.string.new_conversation_concord_pro_2), - cons = listOf(R.string.new_conversation_concord_con_1), + title = Res.string.new_conversation_concord_title, + tagline = Res.string.new_conversation_concord_tagline, + chip = Res.string.new_conversation_concord_chip, + bestFor = Res.string.new_conversation_concord_best, + cta = Res.string.new_conversation_concord_cta, + pros = listOf(Res.string.new_conversation_concord_pro_1, Res.string.new_conversation_concord_pro_2), + cons = listOf(Res.string.new_conversation_concord_con_1), route = Route.ConcordCreate, ), ), ), ConversationSection( - header = R.string.new_conversation_section_relay, + header = Res.string.new_conversation_section_relay, types = listOf( ConversationType( icon = MaterialSymbols.Public, color = ColorPublic, - title = R.string.new_conversation_public_chat_title, - tagline = R.string.new_conversation_public_chat_tagline, - chip = R.string.new_conversation_public_chat_chip, - bestFor = R.string.new_conversation_public_chat_best, - cta = R.string.new_conversation_public_chat_cta, - pros = listOf(R.string.new_conversation_public_chat_pro_1, R.string.new_conversation_public_chat_pro_2), - cons = listOf(R.string.new_conversation_public_chat_con_1, R.string.new_conversation_public_chat_con_2), + title = Res.string.new_conversation_public_chat_title, + tagline = Res.string.new_conversation_public_chat_tagline, + chip = Res.string.new_conversation_public_chat_chip, + bestFor = Res.string.new_conversation_public_chat_best, + cta = Res.string.new_conversation_public_chat_cta, + pros = listOf(Res.string.new_conversation_public_chat_pro_1, Res.string.new_conversation_public_chat_pro_2), + cons = listOf(Res.string.new_conversation_public_chat_con_1, Res.string.new_conversation_public_chat_con_2), route = Route.ChannelMetadataEdit(), ), ConversationType( icon = MaterialSymbols.Dns, color = ColorRelay, - title = R.string.new_conversation_relay_group_title, - tagline = R.string.new_conversation_relay_group_tagline, - chip = R.string.new_conversation_relay_group_chip, - bestFor = R.string.new_conversation_relay_group_best, - cta = R.string.new_conversation_relay_group_cta, - pros = listOf(R.string.new_conversation_relay_group_pro_1, R.string.new_conversation_relay_group_pro_2), - cons = listOf(R.string.new_conversation_relay_group_con_1), + title = Res.string.new_conversation_relay_group_title, + tagline = Res.string.new_conversation_relay_group_tagline, + chip = Res.string.new_conversation_relay_group_chip, + bestFor = Res.string.new_conversation_relay_group_best, + cta = Res.string.new_conversation_relay_group_cta, + pros = listOf(Res.string.new_conversation_relay_group_pro_1, Res.string.new_conversation_relay_group_pro_2), + cons = listOf(Res.string.new_conversation_relay_group_con_1), route = Route.RelayGroupBrowse, ), ConversationType( icon = MaterialSymbols.Timer, color = ColorEphemeral, - title = R.string.new_conversation_ephemeral_title, - tagline = R.string.new_conversation_ephemeral_tagline, - chip = R.string.new_conversation_ephemeral_chip, - bestFor = R.string.new_conversation_ephemeral_best, - cta = R.string.new_conversation_ephemeral_cta, - pros = listOf(R.string.new_conversation_ephemeral_pro_1, R.string.new_conversation_ephemeral_pro_2), - cons = listOf(R.string.new_conversation_ephemeral_con_1, R.string.new_conversation_ephemeral_con_2), + title = Res.string.new_conversation_ephemeral_title, + tagline = Res.string.new_conversation_ephemeral_tagline, + chip = Res.string.new_conversation_ephemeral_chip, + bestFor = Res.string.new_conversation_ephemeral_best, + cta = Res.string.new_conversation_ephemeral_cta, + pros = listOf(Res.string.new_conversation_ephemeral_pro_1, Res.string.new_conversation_ephemeral_pro_2), + cons = listOf(Res.string.new_conversation_ephemeral_con_1, Res.string.new_conversation_ephemeral_con_2), route = Route.NewEphemeralChat, ), ConversationType( icon = MaterialSymbols.LocationOn, color = ColorLocation, - title = R.string.new_conversation_location_title, - tagline = R.string.new_conversation_location_tagline, - chip = R.string.new_conversation_location_chip, - bestFor = R.string.new_conversation_location_best, - cta = R.string.new_conversation_location_cta, - pros = listOf(R.string.new_conversation_location_pro_1, R.string.new_conversation_location_pro_2), - cons = listOf(R.string.new_conversation_location_con_1), + title = Res.string.new_conversation_location_title, + tagline = Res.string.new_conversation_location_tagline, + chip = Res.string.new_conversation_location_chip, + bestFor = Res.string.new_conversation_location_best, + cta = Res.string.new_conversation_location_cta, + pros = listOf(Res.string.new_conversation_location_pro_1, Res.string.new_conversation_location_pro_2), + cons = listOf(Res.string.new_conversation_location_con_1), route = Route.NewGeohashChat, ), ), @@ -400,7 +460,7 @@ private fun ColumnHeader(text: String) { @Composable private fun ProConRow( - @StringRes text: Int, + text: StringResource, accent: Color, isPro: Boolean, ) { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/feed/ChatroomListTabs.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/feed/ChatroomListTabs.kt index 591388afaf..0e3113c26a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/feed/ChatroomListTabs.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/feed/ChatroomListTabs.kt @@ -39,7 +39,6 @@ import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.feeds.FeedContentState import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols @@ -48,6 +47,7 @@ import com.vitorpamplona.amethyst.commons.resources.mark_all_as_read import com.vitorpamplona.amethyst.commons.resources.mark_all_known_as_read import com.vitorpamplona.amethyst.commons.resources.mark_all_new_as_read import com.vitorpamplona.amethyst.commons.resources.mark_as_read_dialog_title +import com.vitorpamplona.amethyst.commons.resources.more_options import com.vitorpamplona.amethyst.ui.components.M3ActionDialog import com.vitorpamplona.amethyst.ui.components.M3ActionRow import com.vitorpamplona.amethyst.ui.components.M3ActionSection @@ -103,7 +103,7 @@ fun MessagesTabHeader( ) { Icon( symbol = MaterialSymbols.MoreVert, - contentDescription = stringRes(id = R.string.more_options), + contentDescription = stringRes(id = Res.string.more_options), tint = MaterialTheme.colorScheme.placeholderText, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/singlepane/MessagesSinglePane.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/singlepane/MessagesSinglePane.kt index 6f7b18e1f1..98ec78a813 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/singlepane/MessagesSinglePane.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/singlepane/MessagesSinglePane.kt @@ -28,8 +28,10 @@ import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.ui.Modifier -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.feeds.FeedContentState +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.known +import com.vitorpamplona.amethyst.commons.resources.new_requests import com.vitorpamplona.amethyst.ui.feeds.ScrollStateKeys import com.vitorpamplona.amethyst.ui.feeds.WatchLifecycleAndUpdateModel import com.vitorpamplona.amethyst.ui.layouts.DisappearingScaffold @@ -66,8 +68,8 @@ fun MessagesSinglePane( remember(knownFeedContentState) { derivedStateOf { persistentListOf( - MessagesTabItem(R.string.known, ScrollStateKeys.MESSAGES_KNOWN, knownFeedContentState), - MessagesTabItem(R.string.new_requests, ScrollStateKeys.MESSAGES_NEW, newFeedContentState), + MessagesTabItem(Res.string.known, ScrollStateKeys.MESSAGES_KNOWN, knownFeedContentState), + MessagesTabItem(Res.string.new_requests, ScrollStateKeys.MESSAGES_NEW, newFeedContentState), ) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/twopane/ChatroomListPane.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/twopane/ChatroomListPane.kt index ad037ac95b..cba75d12aa 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/twopane/ChatroomListPane.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/twopane/ChatroomListPane.kt @@ -26,8 +26,10 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue import androidx.compose.runtime.remember -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.feeds.FeedContentState +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.known +import com.vitorpamplona.amethyst.commons.resources.new_requests import com.vitorpamplona.amethyst.ui.feeds.ScrollStateKeys import com.vitorpamplona.amethyst.ui.feeds.WatchLifecycleAndUpdateModel import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -56,8 +58,8 @@ fun ChatroomList( remember(knownFeedContentState) { derivedStateOf { persistentListOf( - MessagesTabItem(R.string.known, ScrollStateKeys.MESSAGES_KNOWN, knownFeedContentState), - MessagesTabItem(R.string.new_requests, ScrollStateKeys.MESSAGES_NEW, newFeedContentState), + MessagesTabItem(Res.string.known, ScrollStateKeys.MESSAGES_KNOWN, knownFeedContentState), + MessagesTabItem(Res.string.new_requests, ScrollStateKeys.MESSAGES_NEW, newFeedContentState), ) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/utils/ChatFileUploadDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/utils/ChatFileUploadDialog.kt index a1469e2e10..03d6e5c1eb 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/utils/ChatFileUploadDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/utils/ChatFileUploadDialog.kt @@ -53,17 +53,24 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.accessibility_send +import com.vitorpamplona.amethyst.commons.resources.add_sensitive_content_description +import com.vitorpamplona.amethyst.commons.resources.add_sensitive_content_label import com.vitorpamplona.amethyst.commons.resources.content_description import com.vitorpamplona.amethyst.commons.resources.content_description_example +import com.vitorpamplona.amethyst.commons.resources.encrypt_files_description +import com.vitorpamplona.amethyst.commons.resources.encrypt_files_label +import com.vitorpamplona.amethyst.commons.resources.file_server +import com.vitorpamplona.amethyst.commons.resources.file_server_description import com.vitorpamplona.amethyst.commons.resources.media_compression_quality_explainer import com.vitorpamplona.amethyst.commons.resources.media_compression_quality_high import com.vitorpamplona.amethyst.commons.resources.media_compression_quality_label import com.vitorpamplona.amethyst.commons.resources.media_compression_quality_low import com.vitorpamplona.amethyst.commons.resources.media_compression_quality_medium import com.vitorpamplona.amethyst.commons.resources.media_compression_quality_uncompressed +import com.vitorpamplona.amethyst.commons.resources.strip_metadata_description +import com.vitorpamplona.amethyst.commons.resources.strip_metadata_label import com.vitorpamplona.amethyst.ui.actions.mediaServers.DEFAULT_MEDIA_SERVERS import com.vitorpamplona.amethyst.ui.actions.uploads.ShowImageUploadGallery import com.vitorpamplona.amethyst.ui.components.SetDialogToEdgeToEdge @@ -195,8 +202,8 @@ private fun ImageVideoPostChat( ) SettingSwitchItem( - title = R.string.add_sensitive_content_label, - description = R.string.add_sensitive_content_description, + title = Res.string.add_sensitive_content_label, + description = Res.string.add_sensitive_content_description, modifier = Modifier.fillMaxWidth().padding(top = 8.dp), checked = fileUploadState.contentWarning, onCheckedChange = fileUploadState::updateContentWarning, @@ -204,15 +211,15 @@ private fun ImageVideoPostChat( if (isNip17) { SettingSwitchItem( - title = R.string.encrypt_files_label, - description = R.string.encrypt_files_description, + title = Res.string.encrypt_files_label, + description = Res.string.encrypt_files_description, modifier = Modifier.fillMaxWidth().padding(top = 8.dp), checked = fileUploadState.encryptFiles, onCheckedChange = { fileUploadState.encryptFiles = it }, ) } - SettingsRow(R.string.file_server, R.string.file_server_description) { + SettingsRow(Res.string.file_server, Res.string.file_server_description) { TextSpinner( label = "", placeholder = @@ -270,8 +277,8 @@ private fun ImageVideoPostChat( } SettingSwitchItem( - title = R.string.strip_metadata_label, - description = R.string.strip_metadata_description, + title = Res.string.strip_metadata_label, + description = Res.string.strip_metadata_description, modifier = Modifier.fillMaxWidth().padding(top = 8.dp), checked = fileUploadState.stripMetadata, onCheckedChange = { fileUploadState.stripMetadata = it }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/utils/ReplyModeToggle.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/utils/ReplyModeToggle.kt index 6d2a56165a..fc394eeb49 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/utils/ReplyModeToggle.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/utils/ReplyModeToggle.kt @@ -34,8 +34,10 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.chat_reply_in_chat +import com.vitorpamplona.amethyst.commons.resources.chat_reply_in_thread import com.vitorpamplona.amethyst.commons.viewmodels.ReplyMode import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.commons.icons.symbols.Icon as SymbolIcon @@ -74,7 +76,7 @@ fun ReplyModeToggle( modifier = Modifier.size(14.dp), ) Text( - text = stringRes(if (minichat) R.string.chat_reply_in_thread else R.string.chat_reply_in_chat), + text = stringRes(if (minichat) Res.string.chat_reply_in_thread else Res.string.chat_reply_in_chat), style = MaterialTheme.typography.labelSmall, color = MaterialTheme.colorScheme.onSecondaryContainer, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chess/ChessGameScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chess/ChessGameScreen.kt index 4fcdc9cdc1..07b3045303 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chess/ChessGameScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chess/ChessGameScreen.kt @@ -58,7 +58,6 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.fragment.app.FragmentActivity import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.nip64Chess.ChessBroadcastStatus @@ -66,11 +65,13 @@ import com.vitorpamplona.amethyst.commons.nip64Chess.ui.ChessBroadcastBanner import com.vitorpamplona.amethyst.commons.nip64Chess.ui.ChessSyncBanner import com.vitorpamplona.amethyst.commons.nip64Chess.ui.LiveChessGameScreen import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back import com.vitorpamplona.amethyst.commons.resources.chess_game_id import com.vitorpamplona.amethyst.commons.resources.chess_game_not_found import com.vitorpamplona.amethyst.commons.resources.chess_game_waiting import com.vitorpamplona.amethyst.commons.resources.chess_loading_game import com.vitorpamplona.amethyst.commons.resources.go_back +import com.vitorpamplona.amethyst.commons.resources.relay_settings import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel @@ -193,7 +194,7 @@ fun ChessGameScreen( IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), ) } }, @@ -201,7 +202,7 @@ fun ChessGameScreen( IconButton(onClick = { showRelaySettings = true }) { Icon( symbol = MaterialSymbols.Settings, - contentDescription = stringRes(R.string.relay_settings), + contentDescription = stringRes(Res.string.relay_settings), ) } }, @@ -293,7 +294,7 @@ fun ChessGameScreen( }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), modifier = Modifier.padding(end = 8.dp), ) Text(stringRes(Res.string.go_back)) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chess/ChessLobbyScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chess/ChessLobbyScreen.kt index 108f71cb76..29d199cc7e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chess/ChessLobbyScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chess/ChessLobbyScreen.kt @@ -59,7 +59,6 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.fragment.app.FragmentActivity import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.nip64Chess.ChessChallenge @@ -73,7 +72,10 @@ import com.vitorpamplona.amethyst.commons.nip64Chess.ui.OverlappingAvatars import com.vitorpamplona.amethyst.commons.nip64Chess.ui.PublicGameCard import com.vitorpamplona.amethyst.commons.nip64Chess.ui.SpectatingGameCard import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back import com.vitorpamplona.amethyst.commons.resources.dismiss +import com.vitorpamplona.amethyst.commons.resources.relay_settings +import com.vitorpamplona.amethyst.commons.resources.route_chess import com.vitorpamplona.amethyst.ui.feeds.RefresheableBox import com.vitorpamplona.amethyst.ui.navigation.bottombars.FabBottomBarPadded import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -163,12 +165,12 @@ fun ChessLobbyScreen( Scaffold( topBar = { TopAppBar( - title = { Text(stringResource(R.string.route_chess)) }, + title = { Text(stringResource(Res.string.route_chess)) }, navigationIcon = { IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), ) } }, @@ -176,7 +178,7 @@ fun ChessLobbyScreen( IconButton(onClick = { showRelaySettings = true }) { Icon( symbol = MaterialSymbols.Settings, - contentDescription = stringRes(R.string.relay_settings), + contentDescription = stringRes(Res.string.relay_settings), ) } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/communities/list/NewCommunityButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/communities/list/NewCommunityButton.kt index b9f5273384..bcb57314a1 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/communities/list/NewCommunityButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/communities/list/NewCommunityButton.kt @@ -24,9 +24,10 @@ import androidx.compose.foundation.shape.CircleShape import androidx.compose.material3.FloatingActionButton import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.new_community import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route import com.vitorpamplona.amethyst.ui.stringRes @@ -43,7 +44,7 @@ fun NewCommunityButton(nav: INav) { ) { Icon( symbol = MaterialSymbols.Add, - contentDescription = stringRes(id = R.string.new_community), + contentDescription = stringRes(id = Res.string.new_community), modifier = Size26Modifier, tint = MaterialTheme.colorScheme.onPrimary, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/communities/newCommunity/CommunityRulesEditor.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/communities/newCommunity/CommunityRulesEditor.kt index 65dad36010..0915c02bf6 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/communities/newCommunity/CommunityRulesEditor.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/communities/newCommunity/CommunityRulesEditor.kt @@ -47,28 +47,39 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.new_community_rules_banned_add import com.vitorpamplona.amethyst.commons.resources.new_community_rules_banned_hint import com.vitorpamplona.amethyst.commons.resources.new_community_rules_banned_placeholder +import com.vitorpamplona.amethyst.commons.resources.new_community_rules_banned_section import com.vitorpamplona.amethyst.commons.resources.new_community_rules_hint import com.vitorpamplona.amethyst.commons.resources.new_community_rules_kind_add +import com.vitorpamplona.amethyst.commons.resources.new_community_rules_kind_comment import com.vitorpamplona.amethyst.commons.resources.new_community_rules_kind_custom_label +import com.vitorpamplona.amethyst.commons.resources.new_community_rules_kind_long_form +import com.vitorpamplona.amethyst.commons.resources.new_community_rules_kind_picture +import com.vitorpamplona.amethyst.commons.resources.new_community_rules_kind_short_text +import com.vitorpamplona.amethyst.commons.resources.new_community_rules_kind_short_video +import com.vitorpamplona.amethyst.commons.resources.new_community_rules_kind_video import com.vitorpamplona.amethyst.commons.resources.new_community_rules_kinds_hint +import com.vitorpamplona.amethyst.commons.resources.new_community_rules_kinds_section import com.vitorpamplona.amethyst.commons.resources.new_community_rules_limits_max_bytes import com.vitorpamplona.amethyst.commons.resources.new_community_rules_limits_max_per_day import com.vitorpamplona.amethyst.commons.resources.new_community_rules_limits_save import com.vitorpamplona.amethyst.commons.resources.new_community_rules_limits_title import com.vitorpamplona.amethyst.commons.resources.new_community_rules_limits_unlimited import com.vitorpamplona.amethyst.commons.resources.new_community_rules_max_event_size_hint +import com.vitorpamplona.amethyst.commons.resources.new_community_rules_max_event_size_section import com.vitorpamplona.amethyst.commons.resources.new_community_rules_wot_add import com.vitorpamplona.amethyst.commons.resources.new_community_rules_wot_depth import com.vitorpamplona.amethyst.commons.resources.new_community_rules_wot_hint import com.vitorpamplona.amethyst.commons.resources.new_community_rules_wot_root +import com.vitorpamplona.amethyst.commons.resources.new_community_rules_wot_section +import com.vitorpamplona.amethyst.commons.resources.remove import com.vitorpamplona.amethyst.commons.ui.components.Nip05OrPubkeyLine import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.note.UserPicture @@ -119,18 +130,18 @@ private data class KnownKind( private val KNOWN_KINDS = listOf( - KnownKind(1, R.string.new_community_rules_kind_short_text), - KnownKind(20, R.string.new_community_rules_kind_picture), - KnownKind(21, R.string.new_community_rules_kind_video), - KnownKind(22, R.string.new_community_rules_kind_short_video), - KnownKind(1111, R.string.new_community_rules_kind_comment), - KnownKind(30023, R.string.new_community_rules_kind_long_form), + KnownKind(1, Res.string.new_community_rules_kind_short_text), + KnownKind(20, Res.string.new_community_rules_kind_picture), + KnownKind(21, Res.string.new_community_rules_kind_video), + KnownKind(22, Res.string.new_community_rules_kind_short_video), + KnownKind(1111, Res.string.new_community_rules_kind_comment), + KnownKind(30023, Res.string.new_community_rules_kind_long_form), ) @OptIn(ExperimentalMaterial3Api::class) @Composable private fun AllowedKindsBlock(model: NewCommunityModel) { - SectionLabel(R.string.new_community_rules_kinds_section) + SectionLabel(Res.string.new_community_rules_kinds_section) Text( text = stringRes(Res.string.new_community_rules_kinds_hint), @@ -191,7 +202,7 @@ private fun AllowedKindsBlock(model: NewCommunityModel) { IconButton(onClick = { model.removeKindRule(rule.kind) }) { Icon( symbol = MaterialSymbols.Close, - contentDescription = stringRes(R.string.remove), + contentDescription = stringRes(Res.string.remove), ) } }, @@ -303,7 +314,7 @@ private fun KindRuleLimitsDialog( }, dismissButton = { TextButton(onClick = onDismiss) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) @@ -317,7 +328,7 @@ private fun BannedUsersBlock( accountViewModel: AccountViewModel, nav: INav, ) { - SectionLabel(R.string.new_community_rules_banned_section) + SectionLabel(Res.string.new_community_rules_banned_section) Text( text = stringRes(Res.string.new_community_rules_banned_hint), @@ -410,7 +421,7 @@ private fun BannedPubkeyRow( if (user != null) Nip05OrPubkeyLine(user) } IconButton(onClick = onRemove) { - Icon(symbol = MaterialSymbols.Close, contentDescription = stringRes(R.string.remove)) + Icon(symbol = MaterialSymbols.Close, contentDescription = stringRes(Res.string.remove)) } } } @@ -421,7 +432,7 @@ private fun shortenHex(hex: String): String = if (hex.length <= 16) hex else hex @Composable private fun WotGateBlock(model: NewCommunityModel) { - SectionLabel(R.string.new_community_rules_wot_section) + SectionLabel(Res.string.new_community_rules_wot_section) Text( text = stringRes(Res.string.new_community_rules_wot_hint), @@ -441,7 +452,7 @@ private fun WotGateBlock(model: NewCommunityModel) { modifier = Modifier.weight(1f), ) IconButton(onClick = { model.removeWotGate(gate) }) { - Icon(symbol = MaterialSymbols.Close, contentDescription = stringRes(R.string.remove)) + Icon(symbol = MaterialSymbols.Close, contentDescription = stringRes(Res.string.remove)) } } } @@ -506,7 +517,7 @@ internal fun parsePubkeyToHex(input: String): HexKey? { @Composable private fun MaxEventSizeField(model: NewCommunityModel) { - SectionLabel(R.string.new_community_rules_max_event_size_section) + SectionLabel(Res.string.new_community_rules_max_event_size_section) Text( text = stringRes(Res.string.new_community_rules_max_event_size_hint), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/communities/newCommunity/NewCommunityModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/communities/newCommunity/NewCommunityModel.kt index 5599f5dafa..cbcd57984a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/communities/newCommunity/NewCommunityModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/communities/newCommunity/NewCommunityModel.kt @@ -30,8 +30,12 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.User +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media_no_details +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_sign_events +import com.vitorpamplona.amethyst.commons.resources.read_only_user +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.uploads.MediaCompressor import com.vitorpamplona.amethyst.service.uploads.MultiOrchestrator @@ -40,7 +44,6 @@ import com.vitorpamplona.amethyst.service.uploads.UploadOrchestrator import com.vitorpamplona.amethyst.ui.actions.mediaServers.DEFAULT_MEDIA_SERVERS import com.vitorpamplona.amethyst.ui.actions.mediaServers.ServerName import com.vitorpamplona.amethyst.ui.actions.uploads.SelectedMedia -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl import com.vitorpamplona.quartz.nip01Core.signers.SignerExceptions @@ -271,13 +274,17 @@ class NewCommunityModel : ViewModel() { context: Context, onSuccess: () -> Unit, onError: (String, String) -> Unit, - ) = try { - publishUnsafe(context, onSuccess, onError) - } catch (e: SignerExceptions.ReadOnlyException) { - onError( - stringRes(context, R.string.read_only_user), - stringRes(context, R.string.login_with_a_private_key_to_be_able_to_sign_events), - ) + ) { + try { + publishUnsafe(context, onSuccess, onError) + } catch (e: SignerExceptions.ReadOnlyException) { + viewModelScope.launch { + onError( + loadStringRes(Res.string.read_only_user), + loadStringRes(Res.string.login_with_a_private_key_to_be_able_to_sign_events), + ) + } + } } @OptIn(ExperimentalUuidApi::class) @@ -327,8 +334,8 @@ class NewCommunityModel : ViewModel() { if (definition == null) { onError( - stringRes(context, R.string.read_only_user), - stringRes(context, R.string.login_with_a_private_key_to_be_able_to_sign_events), + loadStringRes(Res.string.read_only_user), + loadStringRes(Res.string.login_with_a_private_key_to_be_able_to_sign_events), ) return@launch } @@ -387,10 +394,10 @@ class NewCommunityModel : ViewModel() { if (!results.allGood) { val messages = results.errors - .map { stringRes(context, it.errorResource, *it.params) } + .map { loadStringRes(it.errorResource, *it.params) } .distinct() .joinToString(".\n") - onError(stringRes(context, R.string.failed_to_upload_media_no_details), messages) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), messages) return null } @@ -399,7 +406,7 @@ class NewCommunityModel : ViewModel() { it.result as? UploadOrchestrator.OrchestratorResult.ServerResult } ?: run { onError( - stringRes(context, R.string.failed_to_upload_media_no_details), + loadStringRes(Res.string.failed_to_upload_media_no_details), "Upload succeeded but no image URL was returned by the server.", ) return null diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/communities/newCommunity/NewCommunityScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/communities/newCommunity/NewCommunityScreen.kt index 7da98867f4..21b6199e37 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/communities/newCommunity/NewCommunityScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/communities/newCommunity/NewCommunityScreen.kt @@ -67,16 +67,18 @@ import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel import coil3.compose.AsyncImage import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.edit_community +import com.vitorpamplona.amethyst.commons.resources.new_community import com.vitorpamplona.amethyst.commons.resources.new_community_add_moderator import com.vitorpamplona.amethyst.commons.resources.new_community_add_moderator_placeholder import com.vitorpamplona.amethyst.commons.resources.new_community_description import com.vitorpamplona.amethyst.commons.resources.new_community_moderators_hint +import com.vitorpamplona.amethyst.commons.resources.new_community_moderators_section import com.vitorpamplona.amethyst.commons.resources.new_community_name import com.vitorpamplona.amethyst.commons.resources.new_community_owner import com.vitorpamplona.amethyst.commons.resources.new_community_pick_cover @@ -86,7 +88,11 @@ import com.vitorpamplona.amethyst.commons.resources.new_community_relay_marker_a import com.vitorpamplona.amethyst.commons.resources.new_community_relay_marker_none import com.vitorpamplona.amethyst.commons.resources.new_community_relay_marker_requests import com.vitorpamplona.amethyst.commons.resources.new_community_relays_hint +import com.vitorpamplona.amethyst.commons.resources.new_community_relays_section import com.vitorpamplona.amethyst.commons.resources.new_community_rules +import com.vitorpamplona.amethyst.commons.resources.new_community_rules_section +import com.vitorpamplona.amethyst.commons.resources.remove +import com.vitorpamplona.amethyst.commons.resources.save import com.vitorpamplona.amethyst.commons.ui.components.Nip05OrPubkeyLine import com.vitorpamplona.amethyst.ui.actions.StrippingFailureDialog import com.vitorpamplona.amethyst.ui.actions.uploads.GallerySelect @@ -166,11 +172,11 @@ private fun CommunityFormScreen( // first composition of the edit screen already shows "Save" before // loadFrom() runs in its LaunchedEffect. val isEditing = editing != null - val titleRes = if (isEditing) R.string.edit_community else R.string.new_community + val titleRes = if (isEditing) Res.string.edit_community else Res.string.new_community if (isEditing) { ActionTopBar( titleRes = titleRes, - postRes = R.string.save, + postRes = Res.string.save, isActive = model::canPost, onCancel = { model.reset() @@ -264,7 +270,7 @@ private fun CommunityFormScreen( HorizontalDivider() - SectionHeader(R.string.new_community_moderators_section) + SectionHeader(Res.string.new_community_moderators_section) ModeratorsSection( model = model, accountViewModel = accountViewModel, @@ -273,7 +279,7 @@ private fun CommunityFormScreen( HorizontalDivider() - SectionHeader(R.string.new_community_relays_section) + SectionHeader(Res.string.new_community_relays_section) RelaysSection( model = model, accountViewModel = accountViewModel, @@ -282,7 +288,7 @@ private fun CommunityFormScreen( HorizontalDivider() - SectionHeader(R.string.new_community_rules_section) + SectionHeader(Res.string.new_community_rules_section) CommunityRulesEditorSection( model = model, accountViewModel = accountViewModel, @@ -367,7 +373,7 @@ private fun ExistingCommunityCover( IconButton(onClick = onClear) { Icon( symbol = MaterialSymbols.Close, - contentDescription = stringRes(R.string.remove), + contentDescription = stringRes(Res.string.remove), tint = MaterialTheme.colorScheme.onSurface, ) } @@ -538,7 +544,7 @@ private fun SelectedModeratorRow( IconButton(onClick = onRemove) { Icon( symbol = MaterialSymbols.Close, - contentDescription = stringRes(R.string.remove), + contentDescription = stringRes(Res.string.remove), ) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/DiscoverScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/DiscoverScreen.kt index 7f9d31b72a..9a91b12a2d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/DiscoverScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/DiscoverScreen.kt @@ -50,11 +50,20 @@ import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.feeds.FeedContentState import com.vitorpamplona.amethyst.commons.feeds.FeedState import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.discover_chat +import com.vitorpamplona.amethyst.commons.resources.discover_community_v2 +import com.vitorpamplona.amethyst.commons.resources.discover_content_v2 +import com.vitorpamplona.amethyst.commons.resources.discover_follows +import com.vitorpamplona.amethyst.commons.resources.discover_live_v2 +import com.vitorpamplona.amethyst.commons.resources.discover_marketplace +import com.vitorpamplona.amethyst.commons.resources.discover_reads +import com.vitorpamplona.amethyst.commons.resources.new_long_form_post +import com.vitorpamplona.amethyst.commons.resources.new_product import com.vitorpamplona.amethyst.commons.ui.layouts.rememberFeedContentPadding import com.vitorpamplona.amethyst.ui.actions.CrossfadeIfEnabled import com.vitorpamplona.amethyst.ui.feeds.FeedEmpty @@ -133,42 +142,42 @@ fun DiscoverScreen( mutableStateOf( listOf( TabItem( - R.string.discover_follows, + Res.string.discover_follows, discoveryFollowSetsFeedContentState, "DiscoverFollowSets", ScrollStateKeys.DISCOVER_FOLLOWS, FollowListEvent.KIND, ), TabItem( - R.string.discover_reads, + Res.string.discover_reads, discoveryReadsFeedContentState, "DiscoverReads", ScrollStateKeys.DISCOVER_READS, LongTextNoteEvent.KIND, ), TabItem( - R.string.discover_content_v2, + Res.string.discover_content_v2, discoveryContentNIP89FeedContentState, "DiscoverDiscoverContent", ScrollStateKeys.DISCOVER_CONTENT, AppDefinitionEvent.KIND, ), TabItem( - R.string.discover_live_v2, + Res.string.discover_live_v2, discoveryLiveFeedContentState, "DiscoverLive", ScrollStateKeys.DISCOVER_LIVE, LiveActivitiesEvent.KIND, ), TabItem( - R.string.discover_community_v2, + Res.string.discover_community_v2, discoveryCommunityFeedContentState, "DiscoverCommunity", ScrollStateKeys.DISCOVER_COMMUNITY, CommunityDefinitionEvent.KIND, ), TabItem( - R.string.discover_marketplace, + Res.string.discover_marketplace, discoveryMarketplaceFeedContentState, "DiscoverMarketplace", ScrollStateKeys.DISCOVER_MARKETPLACE, @@ -176,7 +185,7 @@ fun DiscoverScreen( useGridLayout = true, ), TabItem( - R.string.discover_chat, + Res.string.discover_chat, discoveryChatFeedContentState, "DiscoverChats", ScrollStateKeys.DISCOVER_CHATS, @@ -263,11 +272,11 @@ private fun DiscoverPages( val currentPage = pagerState.currentPage if (currentPage >= 0 && currentPage < feedTabs.size) { FabBottomBarPadded(nav) { - if (feedTabs[currentPage].resource == R.string.discover_marketplace) { + if (feedTabs[currentPage].resource == Res.string.discover_marketplace) { NewProductButton(accountViewModel, nav) } - if (feedTabs[currentPage].resource == R.string.discover_reads) { + if (feedTabs[currentPage].resource == Res.string.discover_reads) { NewLongFormMarkdownButton(accountViewModel, nav) } } @@ -378,7 +387,7 @@ fun NewProductButton( ) { Icon( symbol = MaterialSymbols.Add, - contentDescription = stringRes(id = R.string.new_product), + contentDescription = stringRes(id = Res.string.new_product), modifier = Size26Modifier, tint = MaterialTheme.colorScheme.onPrimary, ) @@ -400,7 +409,7 @@ fun NewLongFormMarkdownButton( ) { Icon( symbol = MaterialSymbols.Add, - contentDescription = stringRes(id = R.string.new_long_form_post), + contentDescription = stringRes(id = Res.string.new_long_form_post), modifier = Size26Modifier, tint = MaterialTheme.colorScheme.onPrimary, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip23LongForm/LongFormPostScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip23LongForm/LongFormPostScreen.kt index 3d935ae3c3..fac6c918fd 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip23LongForm/LongFormPostScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip23LongForm/LongFormPostScreen.kt @@ -78,7 +78,6 @@ import androidx.compose.ui.text.style.TextDirection import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.EmptyTagList @@ -88,10 +87,13 @@ import com.vitorpamplona.amethyst.commons.resources.add_a_tag import com.vitorpamplona.amethyst.commons.resources.add_header_image import com.vitorpamplona.amethyst.commons.resources.article_description_placeholder import com.vitorpamplona.amethyst.commons.resources.article_summary +import com.vitorpamplona.amethyst.commons.resources.geohash_exclusive +import com.vitorpamplona.amethyst.commons.resources.geohash_exclusive_explainer import com.vitorpamplona.amethyst.commons.resources.lightning_create_and_add_invoice import com.vitorpamplona.amethyst.commons.resources.lightning_invoice import com.vitorpamplona.amethyst.commons.resources.markdown_edit import com.vitorpamplona.amethyst.commons.resources.markdown_preview +import com.vitorpamplona.amethyst.commons.resources.new_long_form_post import com.vitorpamplona.amethyst.commons.resources.start_writing_article import com.vitorpamplona.amethyst.commons.resources.tags_label import com.vitorpamplona.amethyst.commons.resources.url_slug @@ -177,7 +179,7 @@ fun LongFormPostScreen( Scaffold( topBar = { PostingTopBar( - titleRes = R.string.new_long_form_post, + titleRes = Res.string.new_long_form_post, isActive = postViewModel::canPost, onPost = { accountViewModel.launchSigner { @@ -464,8 +466,8 @@ private fun MarkdownPostScreenBody( ) { GeoHashPostSection(postViewModel) { SettingsRow( - R.string.geohash_exclusive, - R.string.geohash_exclusive_explainer, + Res.string.geohash_exclusive, + Res.string.geohash_exclusive_explainer, ) { Switch(postViewModel.wantsExclusiveGeoPost, onCheckedChange = { postViewModel.wantsExclusiveGeoPost = it }) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip23LongForm/LongFormPostViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip23LongForm/LongFormPostViewModel.kt index 565620e593..1dff21b75f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip23LongForm/LongFormPostViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip23LongForm/LongFormPostViewModel.kt @@ -33,14 +33,19 @@ import androidx.compose.ui.text.input.TextFieldValue import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.AddressableNote import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.nip30CustomEmojis.EmojiPackState.EmojiMedia import com.vitorpamplona.amethyst.commons.model.nip30CustomEmojis.EmojiSuggestionState +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media_no_details +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_sign_events +import com.vitorpamplona.amethyst.commons.resources.read_only_user +import com.vitorpamplona.amethyst.commons.resources.server_did_not_provide_a_url_after_uploading import com.vitorpamplona.amethyst.commons.service.pow.PoWReplay +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.commons.ui.text.appendSignature import com.vitorpamplona.amethyst.commons.ui.text.currentWord import com.vitorpamplona.amethyst.commons.ui.text.insertUrlAtCursor @@ -73,7 +78,6 @@ import com.vitorpamplona.amethyst.ui.note.creators.zapsplits.toZapSplitSetup import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.privateDM.send.IMetaAttachments import com.vitorpamplona.amethyst.ui.screen.loggedIn.home.UserSuggestionAnchor -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip01Core.core.AddressableEvent import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.signers.EventTemplate @@ -505,13 +509,13 @@ class LongFormPostViewModel : } if (result.url == null) { - onError(stringRes(context, R.string.failed_to_upload_media_no_details), stringRes(context, R.string.server_did_not_provide_a_url_after_uploading)) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), loadStringRes(Res.string.server_did_not_provide_a_url_after_uploading)) } result.url } catch (e: Exception) { if (e is CancellationException) throw e - onError(stringRes(context, R.string.failed_to_upload_media_no_details), e.message ?: e.javaClass.simpleName) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), e.message ?: e.javaClass.simpleName) null } } @@ -526,13 +530,17 @@ class LongFormPostViewModel : useH265: Boolean, stripMetadata: Boolean = true, convertGifToMp4: Boolean = false, - ) = try { - uploadUnsafe(alt, contentWarningReason, mediaQuality, server, onError, context, useH265, stripMetadata, convertGifToMp4) - } catch (_: SignerExceptions.ReadOnlyException) { - onError( - stringRes(context, R.string.read_only_user), - stringRes(context, R.string.login_with_a_private_key_to_be_able_to_sign_events), - ) + ) { + try { + uploadUnsafe(alt, contentWarningReason, mediaQuality, server, onError, context, useH265, stripMetadata, convertGifToMp4) + } catch (_: SignerExceptions.ReadOnlyException) { + viewModelScope.launch { + onError( + loadStringRes(Res.string.read_only_user), + loadStringRes(Res.string.login_with_a_private_key_to_be_able_to_sign_events), + ) + } + } } private fun uploadUnsafe( @@ -601,8 +609,8 @@ class LongFormPostViewModel : multiOrchestrator = null } else { - val errorMessages = results.errors.map { stringRes(context, it.errorResource, *it.params) }.distinct() - onError(stringRes(context, R.string.failed_to_upload_media_no_details), errorMessages.joinToString(".\n")) + val errorMessages = results.errors.map { loadStringRes(it.errorResource, *it.params) }.distinct() + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), errorMessages.joinToString(".\n")) } mediaUploadTracker.finishUpload() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip51FollowSets/FollowSetCard.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip51FollowSets/FollowSetCard.kt index 6317adc7ec..5e9023aa02 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip51FollowSets/FollowSetCard.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip51FollowSets/FollowSetCard.kt @@ -37,9 +37,10 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.cache.LocalCache +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.preview_card_image_for import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.observeNoteAndMap import com.vitorpamplona.amethyst.ui.components.MyAsyncImage import com.vitorpamplona.amethyst.ui.navigation.navs.EmptyNav @@ -170,7 +171,7 @@ fun RenderFollowSetThumb( imageUrl = it, contentDescription = stringRes( - R.string.preview_card_image_for, + Res.string.preview_card_image_for, it, ), contentScale = ContentScale.Crop, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip99Classifieds/NewProductScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip99Classifieds/NewProductScreen.kt index 392def28b2..8ed43d7b80 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip99Classifieds/NewProductScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip99Classifieds/NewProductScreen.kt @@ -44,11 +44,12 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp import androidx.core.net.toUri import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.nip30CustomEmojis.ui.ShowEmojiSuggestionList import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.description import com.vitorpamplona.amethyst.commons.resources.lightning_create_and_add_invoice import com.vitorpamplona.amethyst.commons.resources.lightning_invoice +import com.vitorpamplona.amethyst.commons.resources.new_product import com.vitorpamplona.amethyst.commons.resources.zapraiser import com.vitorpamplona.amethyst.commons.ui.text.onUiThread import com.vitorpamplona.amethyst.ui.actions.StrippingFailureDialog @@ -157,7 +158,7 @@ fun NewProductScreen( Scaffold( topBar = { PostingTopBar( - titleRes = R.string.new_product, + titleRes = Res.string.new_product, isActive = postViewModel::canPost, onCancel = { // uses the accountViewModel scope to avoid cancelling this @@ -225,7 +226,7 @@ private fun NewProductBody( accountViewModel = accountViewModel, ) MessageField( - R.string.description, + Res.string.description, postViewModel, onContentReceived = { uri, mimeType -> postViewModel.selectImage( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip99Classifieds/NewProductViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip99Classifieds/NewProductViewModel.kt index 5366094a25..0e3b051131 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip99Classifieds/NewProductViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip99Classifieds/NewProductViewModel.kt @@ -32,13 +32,15 @@ import androidx.compose.runtime.setValue import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.AddressableNote import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.nip30CustomEmojis.EmojiPackState import com.vitorpamplona.amethyst.commons.model.nip30CustomEmojis.EmojiSuggestionState +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media_no_details +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.commons.ui.text.currentWord import com.vitorpamplona.amethyst.commons.ui.text.insertUrlAtCursor import com.vitorpamplona.amethyst.commons.ui.text.onUiThread @@ -67,7 +69,6 @@ import com.vitorpamplona.amethyst.ui.note.creators.zapsplits.toZapSplitSetup import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.privateDM.send.IMetaAttachments import com.vitorpamplona.amethyst.ui.screen.loggedIn.home.UserSuggestionAnchor -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip01Core.core.AddressableEvent import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl @@ -456,9 +457,9 @@ open class NewProductViewModel : multiOrchestrator = null } else { - val errorMessages = results.errors.map { stringRes(context, it.errorResource, *it.params) }.distinct() + val errorMessages = results.errors.map { loadStringRes(it.errorResource, *it.params) }.distinct() - onError(stringRes(context, R.string.failed_to_upload_media_no_details), errorMessages.joinToString(".\n")) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), errorMessages.joinToString(".\n")) } mediaUploadTracker.finishUpload() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip99Classifieds/SellProduct.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip99Classifieds/SellProduct.kt index a6da4293d2..af6c09053d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip99Classifieds/SellProduct.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/discover/nip99Classifieds/SellProduct.kt @@ -48,9 +48,24 @@ import androidx.compose.ui.text.input.TextFieldValue // kept for readonly dropdo import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import coil3.compose.AsyncImage -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.classifieds_category +import com.vitorpamplona.amethyst.commons.resources.classifieds_category_accessories +import com.vitorpamplona.amethyst.commons.resources.classifieds_category_art +import com.vitorpamplona.amethyst.commons.resources.classifieds_category_books +import com.vitorpamplona.amethyst.commons.resources.classifieds_category_clothing +import com.vitorpamplona.amethyst.commons.resources.classifieds_category_collectibles +import com.vitorpamplona.amethyst.commons.resources.classifieds_category_crafts +import com.vitorpamplona.amethyst.commons.resources.classifieds_category_electronics +import com.vitorpamplona.amethyst.commons.resources.classifieds_category_fitness +import com.vitorpamplona.amethyst.commons.resources.classifieds_category_food +import com.vitorpamplona.amethyst.commons.resources.classifieds_category_furniture +import com.vitorpamplona.amethyst.commons.resources.classifieds_category_home +import com.vitorpamplona.amethyst.commons.resources.classifieds_category_misc +import com.vitorpamplona.amethyst.commons.resources.classifieds_category_office +import com.vitorpamplona.amethyst.commons.resources.classifieds_category_other +import com.vitorpamplona.amethyst.commons.resources.classifieds_category_pets +import com.vitorpamplona.amethyst.commons.resources.classifieds_category_sports import com.vitorpamplona.amethyst.commons.resources.classifieds_condition import com.vitorpamplona.amethyst.commons.resources.classifieds_condition_fair import com.vitorpamplona.amethyst.commons.resources.classifieds_condition_fair_explainer @@ -264,22 +279,22 @@ fun SellProduct(postViewModel: NewProductViewModel) { val categoryList = listOf( - R.string.classifieds_category_clothing, - R.string.classifieds_category_accessories, - R.string.classifieds_category_electronics, - R.string.classifieds_category_furniture, - R.string.classifieds_category_collectibles, - R.string.classifieds_category_books, - R.string.classifieds_category_pets, - R.string.classifieds_category_sports, - R.string.classifieds_category_fitness, - R.string.classifieds_category_art, - R.string.classifieds_category_crafts, - R.string.classifieds_category_home, - R.string.classifieds_category_office, - R.string.classifieds_category_food, - R.string.classifieds_category_misc, - R.string.classifieds_category_other, + Res.string.classifieds_category_clothing, + Res.string.classifieds_category_accessories, + Res.string.classifieds_category_electronics, + Res.string.classifieds_category_furniture, + Res.string.classifieds_category_collectibles, + Res.string.classifieds_category_books, + Res.string.classifieds_category_pets, + Res.string.classifieds_category_sports, + Res.string.classifieds_category_fitness, + Res.string.classifieds_category_art, + Res.string.classifieds_category_crafts, + Res.string.classifieds_category_home, + Res.string.classifieds_category_office, + Res.string.classifieds_category_food, + Res.string.classifieds_category_misc, + Res.string.classifieds_category_other, ) val categoryTypes = categoryList.map { Triple(it, stringRes(id = it), null) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/drafts/DraftListScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/drafts/DraftListScreen.kt index 2dd017f1f8..bc5726565a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/drafts/DraftListScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/drafts/DraftListScreen.kt @@ -41,7 +41,6 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.feeds.FeedContentState import com.vitorpamplona.amethyst.commons.feeds.FeedState import com.vitorpamplona.amethyst.commons.icons.symbols.Icon @@ -49,6 +48,7 @@ import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.delete_all import com.vitorpamplona.amethyst.commons.resources.delete_all_drafts_confirmation +import com.vitorpamplona.amethyst.commons.resources.drafts import com.vitorpamplona.amethyst.commons.resources.no import com.vitorpamplona.amethyst.commons.resources.yes import com.vitorpamplona.amethyst.commons.ui.layouts.rememberFeedContentPadding @@ -96,7 +96,7 @@ private fun RenderDraftListScreen( showDeleteDialog = false }, title = { - Text(text = stringResource(R.string.drafts)) + Text(text = stringResource(Res.string.drafts)) }, text = { Text(text = stringRes(Res.string.delete_all_drafts_confirmation)) @@ -132,7 +132,7 @@ private fun RenderDraftListScreen( ShorterTopAppBar( title = { Text( - text = stringRes(id = R.string.drafts), + text = stringRes(id = Res.string.drafts), ) }, navigationIcon = { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/dvms/DvmContentDiscoveryScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/dvms/DvmContentDiscoveryScreen.kt index 6210bc89bd..3f8e9c28cc 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/dvms/DvmContentDiscoveryScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/dvms/DvmContentDiscoveryScreen.kt @@ -48,11 +48,11 @@ import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.payments.PaymentSource import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.clink_debit_no_response import com.vitorpamplona.amethyst.commons.resources.dvm_looking_for_app import com.vitorpamplona.amethyst.commons.resources.dvm_pay_amount_to_dvm import com.vitorpamplona.amethyst.commons.resources.dvm_pay_invoice_from_dvm @@ -60,6 +60,7 @@ import com.vitorpamplona.amethyst.commons.resources.dvm_requesting_job import com.vitorpamplona.amethyst.commons.resources.dvm_waiting_status import com.vitorpamplona.amethyst.commons.resources.dvm_waiting_to_confirm_payment import com.vitorpamplona.amethyst.commons.resources.nwc_payment_request +import com.vitorpamplona.amethyst.commons.resources.wallet_connect_pay_invoice_error_error import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.EventFinderFilterAssemblerSubscription import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.observeNoteAndMap import com.vitorpamplona.amethyst.ui.components.LoadNote @@ -397,7 +398,7 @@ fun DvmPaymentActions( thankYou } else { response?.error?.takeIf { it.isNotBlank() } - ?: stringRes(context, R.string.clink_debit_no_response) + ?: stringRes(Res.string.clink_debit_no_response) }, ) } @@ -414,7 +415,7 @@ fun DvmPaymentActions( onResponse = { response -> onStatusUpdate( response.nwcFailureDetail(context)?.let { detail -> - stringRes(context, R.string.wallet_connect_pay_invoice_error_error, detail) + stringRes(Res.string.wallet_connect_pay_invoice_error_error, detail) } ?: thankYou, ) }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/dvms/favorites/FavoriteAlgoFeedsListScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/dvms/favorites/FavoriteAlgoFeedsListScreen.kt index f043cc8483..2ce617c27b 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/dvms/favorites/FavoriteAlgoFeedsListScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/dvms/favorites/FavoriteAlgoFeedsListScreen.kt @@ -63,7 +63,6 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.AddressableNote @@ -75,6 +74,7 @@ import com.vitorpamplona.amethyst.commons.resources.favorite_dvms_empty_headline import com.vitorpamplona.amethyst.commons.resources.favorite_dvms_empty_step1 import com.vitorpamplona.amethyst.commons.resources.favorite_dvms_empty_step2 import com.vitorpamplona.amethyst.commons.resources.favorite_dvms_explainer +import com.vitorpamplona.amethyst.commons.resources.favorite_dvms_title import com.vitorpamplona.amethyst.commons.resources.remove_dvm_from_favorites import com.vitorpamplona.amethyst.ui.components.MyAsyncImage import com.vitorpamplona.amethyst.ui.layouts.DisappearingScaffold @@ -111,7 +111,7 @@ fun FavoriteAlgoFeedsListScreen( isInvertedLayout = false, topBar = { TopBarWithBackButton( - caption = stringRes(R.string.favorite_dvms_title), + caption = stringRes(Res.string.favorite_dvms_title), nav = nav, ) }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/embed/EmbeddedLoadOverlay.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/embed/EmbeddedLoadOverlay.kt index c98e56d7bb..7d9830a983 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/embed/EmbeddedLoadOverlay.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/embed/EmbeddedLoadOverlay.kt @@ -38,9 +38,9 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.embedded_tab_load_failed +import com.vitorpamplona.amethyst.commons.resources.retry import com.vitorpamplona.amethyst.ui.stringRes /** @@ -71,7 +71,7 @@ fun BoxScope.EmbeddedLoadOverlay( ) Spacer(Modifier.height(16.dp)) Button(onClick = onRetry) { - Text(stringResource(R.string.retry)) + Text(stringResource(Res.string.retry)) } } else { CircularProgressIndicator() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/embed/TopControlSheet.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/embed/TopControlSheet.kt index 70e66223f8..b4987f3288 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/embed/TopControlSheet.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/embed/TopControlSheet.kt @@ -53,14 +53,17 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.browser_reload import com.vitorpamplona.amethyst.commons.resources.favorite_app_access_show +import com.vitorpamplona.amethyst.commons.resources.favorite_app_add +import com.vitorpamplona.amethyst.commons.resources.favorite_app_network_open +import com.vitorpamplona.amethyst.commons.resources.favorite_app_network_tor import com.vitorpamplona.amethyst.commons.resources.favorite_app_open_window +import com.vitorpamplona.amethyst.commons.resources.favorite_app_remove import com.vitorpamplona.amethyst.commons.resources.napplet_manage_permissions import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.commons.R as CommonsR @@ -125,7 +128,7 @@ fun TopControlSheet( chrome.torOn?.let { torOn -> SheetSwitchItem( symbol = MaterialSymbols.Lock, - label = stringResource(if (torOn) R.string.favorite_app_network_tor else R.string.favorite_app_network_open), + label = stringResource(if (torOn) Res.string.favorite_app_network_tor else Res.string.favorite_app_network_open), checked = torOn, onToggle = { chrome.onToggleTor() }, ) @@ -153,7 +156,7 @@ fun TopControlSheet( chrome.onFavorite?.let { toggleFavorite -> SheetItem( if (chrome.isFavorite) MaterialSymbols.Star else MaterialSymbols.StarBorder, - stringResource(if (chrome.isFavorite) R.string.favorite_app_remove else R.string.favorite_app_add), + stringResource(if (chrome.isFavorite) Res.string.favorite_app_remove else Res.string.favorite_app_add), ) { onExpandedChange(false) toggleFavorite() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/embed/TorToggleButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/embed/TorToggleButton.kt index c1fb04d8b0..e7bb131289 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/embed/TorToggleButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/embed/TorToggleButton.kt @@ -30,6 +30,9 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.browser_tor_off +import com.vitorpamplona.amethyst.commons.resources.browser_tor_on /** * The Tor routing toggle for an embedded web surface, drawn with the app's standard Tor onion @@ -44,7 +47,7 @@ fun TorToggleButton( IconButton(onClick = onToggle) { Icon( painter = painterResource(R.drawable.ic_tor), - contentDescription = stringResource(if (torOn) R.string.browser_tor_on else R.string.browser_tor_off), + contentDescription = stringResource(if (torOn) Res.string.browser_tor_on else Res.string.browser_tor_off), // A vector painter renders at its intrinsic size unless constrained; pin to the standard // 24dp icon size so it matches the reload icon next to it. modifier = Modifier.size(24.dp), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/emojipacks/display/AddEmojiDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/emojipacks/display/AddEmojiDialog.kt index ebb8d5eb13..6cbe21fc18 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/emojipacks/display/AddEmojiDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/emojipacks/display/AddEmojiDialog.kt @@ -43,13 +43,16 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.add +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.emoji_add_dialog_title import com.vitorpamplona.amethyst.commons.resources.emoji_pack_address_label +import com.vitorpamplona.amethyst.commons.resources.emoji_private_explainer import com.vitorpamplona.amethyst.commons.resources.emoji_private_toggle +import com.vitorpamplona.amethyst.commons.resources.emoji_public_explainer import com.vitorpamplona.amethyst.commons.resources.emoji_shortcode_invalid import com.vitorpamplona.amethyst.commons.resources.emoji_shortcode_label import com.vitorpamplona.amethyst.commons.resources.emoji_url_label @@ -163,9 +166,9 @@ fun AddEmojiDialog( text = stringRes( if (isPrivate) { - R.string.emoji_private_explainer + Res.string.emoji_private_explainer } else { - R.string.emoji_public_explainer + Res.string.emoji_public_explainer }, ), style = MaterialTheme.typography.bodySmall, @@ -187,12 +190,12 @@ fun AddEmojiDialog( ) }, ) { - Text(stringRes(R.string.add)) + Text(stringRes(Res.string.add)) } }, dismissButton = { Button(onClick = onDismiss) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/emojipacks/display/EmojiPackScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/emojipacks/display/EmojiPackScreen.kt index 0a398baa82..9f0cde2ded 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/emojipacks/display/EmojiPackScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/emojipacks/display/EmojiPackScreen.kt @@ -56,7 +56,6 @@ import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel import coil3.compose.AsyncImage -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.nip30CustomEmojis.OwnedEmojiPack @@ -65,6 +64,7 @@ import com.vitorpamplona.amethyst.commons.resources.add_emoji_fab import com.vitorpamplona.amethyst.commons.resources.emoji_long_press_hint import com.vitorpamplona.amethyst.commons.resources.emoji_private_badge import com.vitorpamplona.amethyst.commons.resources.emoji_remove_dialog_title +import com.vitorpamplona.amethyst.commons.resources.quick_action_delete import com.vitorpamplona.amethyst.ui.components.M3ActionDialog import com.vitorpamplona.amethyst.ui.components.M3ActionRow import com.vitorpamplona.amethyst.ui.components.M3ActionSection @@ -202,7 +202,7 @@ private fun EmojiPackScreenView( M3ActionSection { M3ActionRow( icon = MaterialSymbols.Delete, - text = stringRes(R.string.quick_action_delete), + text = stringRes(Res.string.quick_action_delete), isDestructive = true, ) { accountViewModel.launchSigner { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/emojipacks/display/EmojiPackViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/emojipacks/display/EmojiPackViewModel.kt index 327ab3eb1d..26ff6acfb7 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/emojipacks/display/EmojiPackViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/emojipacks/display/EmojiPackViewModel.kt @@ -29,7 +29,14 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.avif_metadata_strip_failed +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media_no_details +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_upload +import com.vitorpamplona.amethyst.commons.resources.metadata_strip_failed_title +import com.vitorpamplona.amethyst.commons.resources.metadata_strip_failed_upload_cancelled +import com.vitorpamplona.amethyst.commons.resources.server_did_not_provide_a_url_after_uploading +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.uploads.AvifMetadataNotVerifiableException import com.vitorpamplona.amethyst.service.uploads.CompressorQuality @@ -39,7 +46,6 @@ import com.vitorpamplona.amethyst.service.uploads.blossom.BlossomUploader import com.vitorpamplona.amethyst.service.uploads.nip96.Nip96Uploader import com.vitorpamplona.amethyst.ui.actions.mediaServers.ServerType import com.vitorpamplona.amethyst.ui.actions.uploads.SelectedMedia -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip01Core.signers.SignerExceptions import com.vitorpamplona.quartz.nip30CustomEmoji.EmojiUrlTag import kotlinx.coroutines.Dispatchers @@ -110,8 +116,8 @@ class EmojiPackViewModel( val result = MetadataStripper.strip(galleryUri.uri, galleryUri.mimeType, context.applicationContext) if (!result.stripped) { onError( - stringRes(context, R.string.metadata_strip_failed_title), - stringRes(context, R.string.metadata_strip_failed_upload_cancelled), + loadStringRes(Res.string.metadata_strip_failed_title), + loadStringRes(Res.string.metadata_strip_failed_upload_cancelled), ) onUploading(false) return @@ -123,8 +129,8 @@ class EmojiPackViewModel( } catch (e: AvifMetadataNotVerifiableException) { onUploading(false) onError( - stringRes(context, R.string.metadata_strip_failed_title), - stringRes(context, R.string.avif_metadata_strip_failed, e.message ?: e.javaClass.simpleName), + loadStringRes(Res.string.metadata_strip_failed_title), + loadStringRes(Res.string.avif_metadata_strip_failed, e.message ?: e.javaClass.simpleName), ) return } @@ -164,15 +170,15 @@ class EmojiPackViewModel( onUploaded(result.url) } else { onUploading(false) - onError(stringRes(context, R.string.failed_to_upload_media_no_details), stringRes(context, R.string.server_did_not_provide_a_url_after_uploading)) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), loadStringRes(Res.string.server_did_not_provide_a_url_after_uploading)) } } catch (_: SignerExceptions.ReadOnlyException) { onUploading(false) - onError(stringRes(context, R.string.failed_to_upload_media_no_details), stringRes(context, R.string.login_with_a_private_key_to_be_able_to_upload)) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), loadStringRes(Res.string.login_with_a_private_key_to_be_able_to_upload)) } catch (e: Exception) { if (e is CancellationException) throw e onUploading(false) - onError(stringRes(context, R.string.failed_to_upload_media_no_details), e.message ?: e.javaClass.simpleName) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), e.message ?: e.javaClass.simpleName) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/emojipacks/list/ListOfEmojiPacksScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/emojipacks/list/ListOfEmojiPacksScreen.kt index 7393dbbcaf..443f1b79bf 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/emojipacks/list/ListOfEmojiPacksScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/emojipacks/list/ListOfEmojiPacksScreen.kt @@ -52,19 +52,21 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.NoteState import com.vitorpamplona.amethyst.commons.model.nip30CustomEmojis.OwnedEmojiPack import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.add_to_emoji_list +import com.vitorpamplona.amethyst.commons.resources.edit_emoji_pack import com.vitorpamplona.amethyst.commons.resources.emoji_pack_actions_dialog_title import com.vitorpamplona.amethyst.commons.resources.emoji_pack_count import com.vitorpamplona.amethyst.commons.resources.emoji_packs_title import com.vitorpamplona.amethyst.commons.resources.my_emoji_list_explainer import com.vitorpamplona.amethyst.commons.resources.my_emoji_list_title +import com.vitorpamplona.amethyst.commons.resources.new_emoji_pack import com.vitorpamplona.amethyst.commons.resources.no_emoji_packs +import com.vitorpamplona.amethyst.commons.resources.quick_action_delete import com.vitorpamplona.amethyst.commons.resources.remove_from_emoji_list import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.observeNoteAndMap import com.vitorpamplona.amethyst.ui.components.ClickableBox @@ -280,7 +282,7 @@ private fun EmojiPackOptionsButton( onDismiss = { isMenuOpen.value = false }, ) { M3ActionSection { - M3ActionRow(icon = MaterialSymbols.Edit, text = stringRes(R.string.edit_emoji_pack)) { + M3ActionRow(icon = MaterialSymbols.Edit, text = stringRes(Res.string.edit_emoji_pack)) { onEdit() isMenuOpen.value = false } @@ -291,7 +293,7 @@ private fun EmojiPackOptionsButton( ) } M3ActionSection { - M3ActionRow(icon = MaterialSymbols.Delete, text = stringRes(R.string.quick_action_delete), isDestructive = true) { + M3ActionRow(icon = MaterialSymbols.Delete, text = stringRes(Res.string.quick_action_delete), isDestructive = true) { onDelete() isMenuOpen.value = false } @@ -388,7 +390,7 @@ fun EmojiPackFab( ) { ExtendedFloatingActionButton( text = { - Text(text = stringRes(R.string.new_emoji_pack)) + Text(text = stringRes(Res.string.new_emoji_pack)) }, icon = { Icon( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/emojipacks/list/metadata/EmojiPackMetadataScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/emojipacks/list/metadata/EmojiPackMetadataScreen.kt index 5b7183e7d0..ed139891c9 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/emojipacks/list/metadata/EmojiPackMetadataScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/emojipacks/list/metadata/EmojiPackMetadataScreen.kt @@ -61,15 +61,16 @@ import androidx.compose.ui.text.style.TextDirection import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel import coil3.compose.AsyncImage -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.edit_emoji_pack import com.vitorpamplona.amethyst.commons.resources.emoji_pack_description_label import com.vitorpamplona.amethyst.commons.resources.emoji_pack_image_label import com.vitorpamplona.amethyst.commons.resources.emoji_pack_name_label import com.vitorpamplona.amethyst.commons.resources.emoji_pack_upload_image_cta import com.vitorpamplona.amethyst.commons.resources.emoji_pack_upload_image_hint +import com.vitorpamplona.amethyst.commons.resources.new_emoji_pack import com.vitorpamplona.amethyst.ui.actions.uploads.GallerySelectSingle import com.vitorpamplona.amethyst.ui.insets.imePaddingSafe import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -180,7 +181,7 @@ private fun EmojiPackMetadataTopBar( ) { if (viewModel.isNewPack) { CreatingTopBar( - titleRes = R.string.new_emoji_pack, + titleRes = Res.string.new_emoji_pack, isActive = viewModel::canPost, onCancel = { viewModel.clear() @@ -190,7 +191,7 @@ private fun EmojiPackMetadataTopBar( ) } else { SavingTopBar( - titleRes = R.string.edit_emoji_pack, + titleRes = Res.string.edit_emoji_pack, isActive = viewModel::canPost, onCancel = { viewModel.clear() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/emojipacks/list/metadata/EmojiPackMetadataViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/emojipacks/list/metadata/EmojiPackMetadataViewModel.kt index 4f139befb9..c64cbdb98b 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/emojipacks/list/metadata/EmojiPackMetadataViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/emojipacks/list/metadata/EmojiPackMetadataViewModel.kt @@ -30,8 +30,17 @@ import androidx.compose.ui.text.input.TextFieldValue import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.nip30CustomEmojis.OwnedEmojiPack +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.avif_metadata_strip_failed +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media_no_details +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_sign_events +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_upload +import com.vitorpamplona.amethyst.commons.resources.metadata_strip_failed_title +import com.vitorpamplona.amethyst.commons.resources.metadata_strip_failed_upload_cancelled +import com.vitorpamplona.amethyst.commons.resources.read_only_user +import com.vitorpamplona.amethyst.commons.resources.server_did_not_provide_a_url_after_uploading +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.uploads.AvifMetadataNotVerifiableException import com.vitorpamplona.amethyst.service.uploads.CompressorQuality @@ -42,7 +51,6 @@ import com.vitorpamplona.amethyst.service.uploads.nip96.Nip96Uploader import com.vitorpamplona.amethyst.ui.actions.mediaServers.ServerType import com.vitorpamplona.amethyst.ui.actions.uploads.SelectedMedia import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip01Core.signers.SignerExceptions import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -116,8 +124,8 @@ class EmojiPackMetadataViewModel : ViewModel() { publish() } catch (e: SignerExceptions.ReadOnlyException) { onError( - stringRes(context, R.string.read_only_user), - stringRes(context, R.string.login_with_a_private_key_to_be_able_to_sign_events), + loadStringRes(Res.string.read_only_user), + loadStringRes(Res.string.login_with_a_private_key_to_be_able_to_sign_events), ) isWorking = false return@launch @@ -166,8 +174,8 @@ class EmojiPackMetadataViewModel : ViewModel() { val result = MetadataStripper.strip(galleryUri.uri, galleryUri.mimeType, context.applicationContext) if (!result.stripped) { onError( - stringRes(context, R.string.metadata_strip_failed_title), - stringRes(context, R.string.metadata_strip_failed_upload_cancelled), + loadStringRes(Res.string.metadata_strip_failed_title), + loadStringRes(Res.string.metadata_strip_failed_upload_cancelled), ) return null } @@ -177,8 +185,8 @@ class EmojiPackMetadataViewModel : ViewModel() { } } catch (e: AvifMetadataNotVerifiableException) { onError( - stringRes(context, R.string.metadata_strip_failed_title), - stringRes(context, R.string.avif_metadata_strip_failed, e.message ?: e.javaClass.simpleName), + loadStringRes(Res.string.metadata_strip_failed_title), + loadStringRes(Res.string.avif_metadata_strip_failed, e.message ?: e.javaClass.simpleName), ) return null } @@ -217,20 +225,20 @@ class EmojiPackMetadataViewModel : ViewModel() { result.url } else { onError( - stringRes(context, R.string.failed_to_upload_media_no_details), - stringRes(context, R.string.server_did_not_provide_a_url_after_uploading), + loadStringRes(Res.string.failed_to_upload_media_no_details), + loadStringRes(Res.string.server_did_not_provide_a_url_after_uploading), ) null } } catch (_: SignerExceptions.ReadOnlyException) { onError( - stringRes(context, R.string.failed_to_upload_media_no_details), - stringRes(context, R.string.login_with_a_private_key_to_be_able_to_upload), + loadStringRes(Res.string.failed_to_upload_media_no_details), + loadStringRes(Res.string.login_with_a_private_key_to_be_able_to_upload), ) null } catch (e: Exception) { if (e is CancellationException) throw e - onError(stringRes(context, R.string.failed_to_upload_media_no_details), e.message ?: e.javaClass.simpleName) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), e.message ?: e.javaClass.simpleName) null } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/favorites/FavoriteAppsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/favorites/FavoriteAppsScreen.kt index 993b316a0b..1a18c35f28 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/favorites/FavoriteAppsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/favorites/FavoriteAppsScreen.kt @@ -60,13 +60,14 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.browser.OmniboxInput import com.vitorpamplona.amethyst.commons.favorites.FavoriteApp import com.vitorpamplona.amethyst.commons.favorites.FavoriteAppIcon import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.favorite_app_remove +import com.vitorpamplona.amethyst.commons.resources.favorite_apps import com.vitorpamplona.amethyst.commons.resources.favorite_apps_empty import com.vitorpamplona.amethyst.favorites.BrowserIconRegistry import com.vitorpamplona.amethyst.favorites.FavoriteAppLauncher @@ -100,7 +101,7 @@ fun FavoriteAppsScreen( Scaffold( topBar = { - TopAppBar(title = { Text(stringResource(R.string.favorite_apps)) }) + TopAppBar(title = { Text(stringResource(Res.string.favorite_apps)) }) }, bottomBar = { AppBottomBar(Route.FavoriteApps, nav, accountViewModel) { route -> nav.navBottomBar(route) } @@ -234,7 +235,7 @@ internal fun FavoriteAppCell( DropdownMenu(expanded = menuOpen, onDismissRequest = { menuOpen = false }) { DropdownMenuItem( - text = { Text(stringResource(R.string.favorite_app_remove)) }, + text = { Text(stringResource(Res.string.favorite_app_remove)) }, leadingIcon = { Icon(MaterialSymbols.Delete, contentDescription = null) }, onClick = { menuOpen = false diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/favorites/FavoriteToggleButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/favorites/FavoriteToggleButton.kt index 3ef40d8905..98f2b5c600 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/favorites/FavoriteToggleButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/favorites/FavoriteToggleButton.kt @@ -28,10 +28,12 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.ui.res.stringResource import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.favorites.FavoriteApp import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.favorite_app_add +import com.vitorpamplona.amethyst.commons.resources.favorite_app_remove import com.vitorpamplona.amethyst.favorites.FavoriteAppsRegistry /** @@ -60,7 +62,7 @@ fun FavoriteToggleButton( ) { Icon( if (isFavorite) MaterialSymbols.Star else MaterialSymbols.StarBorder, - contentDescription = stringResource(if (isFavorite) R.string.favorite_app_remove else R.string.favorite_app_add), + contentDescription = stringResource(if (isFavorite) Res.string.favorite_app_remove else Res.string.favorite_app_add), tint = if (isFavorite) MaterialTheme.colorScheme.primary else LocalContentColor.current, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/favorites/NostrAppScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/favorites/NostrAppScreen.kt index 6630e022f7..2d4ba242ae 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/favorites/NostrAppScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/favorites/NostrAppScreen.kt @@ -54,13 +54,18 @@ import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.compose.LocalLifecycleOwner import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.favorites.FavoriteApp import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.browser_unsupported import com.vitorpamplona.amethyst.commons.resources.favorite_app_access_static import com.vitorpamplona.amethyst.commons.resources.favorite_app_access_title +import com.vitorpamplona.amethyst.commons.resources.favorite_app_network_open +import com.vitorpamplona.amethyst.commons.resources.favorite_app_network_tor import com.vitorpamplona.amethyst.commons.resources.favorite_app_unavailable +import com.vitorpamplona.amethyst.commons.resources.favorite_apps +import com.vitorpamplona.amethyst.commons.resources.favorite_notice_paid +import com.vitorpamplona.amethyst.commons.resources.favorite_notice_published +import com.vitorpamplona.amethyst.commons.resources.favorite_notice_uploaded import com.vitorpamplona.amethyst.favorites.FavoriteAppLauncher import com.vitorpamplona.amethyst.favorites.FavoriteAppsRegistry import com.vitorpamplona.amethyst.napplethost.HostProfile @@ -239,7 +244,7 @@ private fun UnavailableTab( nav: INav, ) { Scaffold( - topBar = { TopAppBar(title = { Text(stringResource(R.string.favorite_apps)) }) }, + topBar = { TopAppBar(title = { Text(stringResource(Res.string.favorite_apps)) }) }, bottomBar = { AppBottomBar(Route.NostrApp(coordinate), nav, accountViewModel) { route -> nav.navBottomBar(route) } }, @@ -276,7 +281,7 @@ private fun AccessDialog( } val networkBody = if (showsNetwork) { - "\n\n" + stringResource(if (useTor) R.string.favorite_app_network_tor else R.string.favorite_app_network_open) + "\n\n" + stringResource(if (useTor) Res.string.favorite_app_network_tor else Res.string.favorite_app_network_open) } else { "" } @@ -292,8 +297,8 @@ private fun AccessDialog( private fun noticeResId(notice: String): Int? = when (notice) { - NappletEmbedContract.NOTICE_PUBLISHED -> R.string.favorite_notice_published - NappletEmbedContract.NOTICE_UPLOADED -> R.string.favorite_notice_uploaded - NappletEmbedContract.NOTICE_PAID -> R.string.favorite_notice_paid + NappletEmbedContract.NOTICE_PUBLISHED -> Res.string.favorite_notice_published + NappletEmbedContract.NOTICE_UPLOADED -> Res.string.favorite_notice_uploaded + NappletEmbedContract.NOTICE_PAID -> Res.string.favorite_notice_paid else -> null } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/followPacks/feed/FollowPackFeedScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/followPacks/feed/FollowPackFeedScreen.kt index ea8552e388..553325f5e0 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/followPacks/feed/FollowPackFeedScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/followPacks/feed/FollowPackFeedScreen.kt @@ -50,12 +50,15 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.text.style.TextOverflow import androidx.lifecycle.viewmodel.compose.viewModel import coil3.compose.AsyncImage -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.AddressableNote import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back +import com.vitorpamplona.amethyst.commons.resources.conversations import com.vitorpamplona.amethyst.commons.resources.members +import com.vitorpamplona.amethyst.commons.resources.new_threads +import com.vitorpamplona.amethyst.commons.resources.preview_card_image_for import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.observeNoteEvent import com.vitorpamplona.amethyst.ui.feeds.WatchLifecycleAndUpdateModel import com.vitorpamplona.amethyst.ui.feeds.rememberForeverPagerState @@ -233,7 +236,7 @@ private fun FollowPackFeedTopBar( ) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), ) } } @@ -283,12 +286,12 @@ private fun FollowPackFeedTopBar( val coroutineScope = rememberCoroutineScope() Tab( selected = pagerState.currentPage == 0, - text = { Text(text = stringRes(R.string.new_threads)) }, + text = { Text(text = stringRes(Res.string.new_threads)) }, onClick = { coroutineScope.launch { pagerState.animateScrollToPage(0) } }, ) Tab( selected = pagerState.currentPage == 1, - text = { Text(text = stringRes(R.string.conversations)) }, + text = { Text(text = stringRes(Res.string.conversations)) }, onClick = { coroutineScope.launch { pagerState.animateScrollToPage(1) } }, ) Tab( @@ -311,7 +314,7 @@ private fun DisplayBanner( noteEvent?.image()?.let { AsyncImage( model = it, - contentDescription = stringRes(R.string.preview_card_image_for, it), + contentDescription = stringRes(Res.string.preview_card_image_for, it), contentScale = ContentScale.Crop, modifier = Modifier, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/geocaches/create/NewGeocacheScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/geocaches/create/NewGeocacheScreen.kt index 77463233df..a3cd829fd8 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/geocaches/create/NewGeocacheScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/geocaches/create/NewGeocacheScreen.kt @@ -72,10 +72,10 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back import com.vitorpamplona.amethyst.commons.resources.geocache_log_add_photo import com.vitorpamplona.amethyst.commons.resources.geocache_new_description import com.vitorpamplona.amethyst.commons.resources.geocache_new_difficulty @@ -98,6 +98,8 @@ import com.vitorpamplona.amethyst.commons.resources.geocache_new_section_where import com.vitorpamplona.amethyst.commons.resources.geocache_new_terrain import com.vitorpamplona.amethyst.commons.resources.geocache_owner_qr_warning import com.vitorpamplona.amethyst.commons.resources.geocache_photo_remove +import com.vitorpamplona.amethyst.commons.resources.route_edit_geocache +import com.vitorpamplona.amethyst.commons.resources.route_new_geocache import com.vitorpamplona.amethyst.commons.ui.note.geocacheEmoji import com.vitorpamplona.amethyst.commons.ui.note.geocacheLabelRes import com.vitorpamplona.amethyst.ui.components.MyAsyncImage @@ -163,13 +165,13 @@ fun NewGeocacheScreen( topBar = { TopAppBar( title = { - Text(stringRes(if (model.isEditing) R.string.route_edit_geocache else R.string.route_new_geocache)) + Text(stringRes(if (model.isEditing) Res.string.route_edit_geocache else Res.string.route_new_geocache)) }, navigationIcon = { IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.Close, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), modifier = Modifier.size(20.dp), tint = MaterialTheme.colorScheme.onSurface, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/geocaches/detail/GeocacheDetailScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/geocaches/detail/GeocacheDetailScreen.kt index 2cf318336e..3715c9475d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/geocaches/detail/GeocacheDetailScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/geocaches/detail/GeocacheDetailScreen.kt @@ -68,11 +68,11 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.core.net.toUri -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back import com.vitorpamplona.amethyst.commons.resources.geocache_add_note import com.vitorpamplona.amethyst.commons.resources.geocache_add_to_hunt import com.vitorpamplona.amethyst.commons.resources.geocache_archived_notice @@ -86,6 +86,7 @@ import com.vitorpamplona.amethyst.commons.resources.geocache_navigate import com.vitorpamplona.amethyst.commons.resources.geocache_needs_maintenance import com.vitorpamplona.amethyst.commons.resources.geocache_no_logs import com.vitorpamplona.amethyst.commons.resources.geocache_photos_section +import com.vitorpamplona.amethyst.commons.resources.route_geocache_detail import com.vitorpamplona.amethyst.commons.ui.note.GeocacheChips import com.vitorpamplona.amethyst.commons.ui.note.GeocacheDetailHero import com.vitorpamplona.amethyst.commons.ui.note.GeocacheSpoilerHint @@ -153,12 +154,12 @@ fun GeocacheDetailScreen( Scaffold( topBar = { TopAppBar( - title = { Text(stringRes(R.string.route_geocache_detail)) }, + title = { Text(stringRes(Res.string.route_geocache_detail)) }, navigationIcon = { IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), modifier = Modifier.size(20.dp), tint = MaterialTheme.colorScheme.onSurface, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/geocaches/hunt/GeocacheHuntScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/geocaches/hunt/GeocacheHuntScreen.kt index 27e0f8bf16..7e4ec496af 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/geocaches/hunt/GeocacheHuntScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/geocaches/hunt/GeocacheHuntScreen.kt @@ -51,15 +51,16 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back import com.vitorpamplona.amethyst.commons.resources.geocache_hunt_progress import com.vitorpamplona.amethyst.commons.resources.geocache_hunt_start import com.vitorpamplona.amethyst.commons.resources.geocache_loading import com.vitorpamplona.amethyst.commons.resources.geocache_unnamed +import com.vitorpamplona.amethyst.commons.resources.route_geocache_hunt_detail import com.vitorpamplona.amethyst.commons.ui.note.GeocacheSpecLine import com.vitorpamplona.amethyst.commons.ui.note.geocacheEmoji import com.vitorpamplona.amethyst.commons.ui.note.rememberGeocachePalette @@ -114,12 +115,12 @@ fun GeocacheHuntScreen( Scaffold( topBar = { TopAppBar( - title = { Text(stringRes(R.string.route_geocache_hunt_detail)) }, + title = { Text(stringRes(Res.string.route_geocache_hunt_detail)) }, navigationIcon = { IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), modifier = Modifier.size(20.dp), tint = MaterialTheme.colorScheme.onSurface, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/geocaches/hunt/NewGeocacheHuntScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/geocaches/hunt/NewGeocacheHuntScreen.kt index c8aa9ce26e..3eb758a83e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/geocaches/hunt/NewGeocacheHuntScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/geocaches/hunt/NewGeocacheHuntScreen.kt @@ -47,10 +47,10 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back import com.vitorpamplona.amethyst.commons.resources.geocache_hunt_banner import com.vitorpamplona.amethyst.commons.resources.geocache_hunt_description import com.vitorpamplona.amethyst.commons.resources.geocache_hunt_move_down @@ -61,6 +61,8 @@ import com.vitorpamplona.amethyst.commons.resources.geocache_hunt_remove import com.vitorpamplona.amethyst.commons.resources.geocache_hunt_title import com.vitorpamplona.amethyst.commons.resources.geocache_new_publish import com.vitorpamplona.amethyst.commons.resources.geocache_unnamed +import com.vitorpamplona.amethyst.commons.resources.route_edit_geocache_hunt +import com.vitorpamplona.amethyst.commons.resources.route_new_geocache_hunt import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.observeNoteEvent import com.vitorpamplona.amethyst.ui.insets.imePaddingSafe import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -110,13 +112,13 @@ fun NewGeocacheHuntScreen( topBar = { TopAppBar( title = { - Text(stringRes(if (model.isEditing) R.string.route_edit_geocache_hunt else R.string.route_new_geocache_hunt)) + Text(stringRes(if (model.isEditing) Res.string.route_edit_geocache_hunt else Res.string.route_new_geocache_hunt)) }, navigationIcon = { IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.Close, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), modifier = Modifier.size(20.dp), tint = MaterialTheme.colorScheme.onSurface, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/geocaches/log/LogGeocacheFindScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/geocaches/log/LogGeocacheFindScreen.kt index 4484f675e5..27e738d77d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/geocaches/log/LogGeocacheFindScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/geocaches/log/LogGeocacheFindScreen.kt @@ -67,10 +67,10 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back import com.vitorpamplona.amethyst.commons.resources.geocache_log_add_photo import com.vitorpamplona.amethyst.commons.resources.geocache_log_cache_label import com.vitorpamplona.amethyst.commons.resources.geocache_log_mission_answer @@ -87,6 +87,7 @@ import com.vitorpamplona.amethyst.commons.resources.geocache_log_scan_again import com.vitorpamplona.amethyst.commons.resources.geocache_log_scan_code import com.vitorpamplona.amethyst.commons.resources.geocache_log_your_log import com.vitorpamplona.amethyst.commons.resources.geocache_unnamed +import com.vitorpamplona.amethyst.commons.resources.route_log_geocache_find import com.vitorpamplona.amethyst.commons.ui.note.rememberGeocachePalette import com.vitorpamplona.amethyst.ui.insets.imePaddingSafe import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -144,12 +145,12 @@ fun LogGeocacheFindScreen( Scaffold( topBar = { TopAppBar( - title = { Text(stringRes(R.string.route_log_geocache_find)) }, + title = { Text(stringRes(Res.string.route_log_geocache_find)) }, navigationIcon = { IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.Close, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), modifier = Modifier.size(20.dp), tint = MaterialTheme.colorScheme.onSurface, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/geohash/GeoHashScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/geohash/GeoHashScreen.kt index 43deee6546..d59bf26ad8 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/geohash/GeoHashScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/geohash/GeoHashScreen.kt @@ -28,10 +28,12 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.geohash_chat_open +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_follow +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_unfollow +import com.vitorpamplona.amethyst.commons.resources.read_only_user import com.vitorpamplona.amethyst.commons.search.SearchSeed import com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.observeUserIsFollowingGeohash import com.vitorpamplona.amethyst.ui.feeds.WatchLifecycleAndUpdateModel @@ -158,8 +160,8 @@ fun GeoHashActionOptions( UnfollowButton { if (!accountViewModel.isWriteable()) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_unfollow, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_unfollow, ) } else { accountViewModel.unfollowGeohash(tag) @@ -169,8 +171,8 @@ fun GeoHashActionOptions( FollowButton { if (!accountViewModel.isWriteable()) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_follow, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_follow, ) } else { accountViewModel.followGeohash(tag) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/gitRepo/code/GitBrowseUi.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/gitRepo/code/GitBrowseUi.kt index f9b174f978..78eae6788c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/gitRepo/code/GitBrowseUi.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/gitRepo/code/GitBrowseUi.kt @@ -54,7 +54,6 @@ import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols @@ -62,6 +61,7 @@ import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.git_repo_branches import com.vitorpamplona.amethyst.commons.resources.git_repo_commits import com.vitorpamplona.amethyst.commons.resources.git_repo_default_branch +import com.vitorpamplona.amethyst.commons.resources.git_repo_item_count import com.vitorpamplona.amethyst.commons.resources.git_repo_retry import com.vitorpamplona.amethyst.commons.resources.git_repo_tags import com.vitorpamplona.amethyst.ui.stringRes @@ -166,7 +166,7 @@ fun RepoInfoBar( } InfoChip(symbol = MaterialSymbols.Commit, label = headCommit.take(7), monospace = true) Text( - text = pluralStringResource(R.plurals.git_repo_item_count, entryCount, entryCount), + text = pluralStringResource(Res.plurals.git_repo_item_count, entryCount, entryCount), style = MaterialTheme.typography.labelMedium, color = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.5f), ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/gitRepo/code/GitFileViewer.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/gitRepo/code/GitFileViewer.kt index dcb7b5b11a..e8b29bd436 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/gitRepo/code/GitFileViewer.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/gitRepo/code/GitFileViewer.kt @@ -56,13 +56,13 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import coil3.compose.AsyncImage import coil3.request.ImageRequest -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.EmptyTagList import com.vitorpamplona.amethyst.commons.nip34Git.GitRepositoryBrowserViewModel import com.vitorpamplona.amethyst.commons.nip34Git.ui.CodeHighlighter import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.copied_to_clipboard import com.vitorpamplona.amethyst.commons.resources.git_repo_binary_file import com.vitorpamplona.amethyst.commons.resources.git_repo_code_loading import com.vitorpamplona.amethyst.commons.resources.git_repo_copy_file @@ -214,7 +214,7 @@ private fun CodeBar( onClick = { scope.launch { clipboard.setText(code) - Toast.makeText(context, stringRes(context, R.string.copied_to_clipboard), Toast.LENGTH_SHORT).show() + Toast.makeText(context, stringRes(Res.string.copied_to_clipboard), Toast.LENGTH_SHORT).show() } }, ) { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/gitRepositories/GitRepositoriesTopBar.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/gitRepositories/GitRepositoriesTopBar.kt index c37e944761..50b0ebae0c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/gitRepositories/GitRepositoriesTopBar.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/gitRepositories/GitRepositoriesTopBar.kt @@ -31,11 +31,12 @@ import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.topNavFeeds.TopFilter import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.git_repositories_search_close +import com.vitorpamplona.amethyst.commons.resources.git_repositories_search_open import com.vitorpamplona.amethyst.commons.resources.select_list_to_filter import com.vitorpamplona.amethyst.commons.search.SearchSeed import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -111,9 +112,9 @@ fun GitRepositoriesTopBar( contentDescription = stringRes( if (isSearchOpen) { - R.string.git_repositories_search_close + Res.string.git_repositories_search_close } else { - R.string.git_repositories_search_open + Res.string.git_repositories_search_open }, ), ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/hashtag/HashtagScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/hashtag/HashtagScreen.kt index f4ab4c1b45..88f3c8afd3 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/hashtag/HashtagScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/hashtag/HashtagScreen.kt @@ -40,11 +40,16 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_follow +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_hide_word +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_show_word +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_unfollow +import com.vitorpamplona.amethyst.commons.resources.more_options import com.vitorpamplona.amethyst.commons.resources.mute_hashtag +import com.vitorpamplona.amethyst.commons.resources.read_only_user import com.vitorpamplona.amethyst.commons.resources.unmute_hashtag import com.vitorpamplona.amethyst.commons.search.SearchSeed import com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.observeUserIsFollowingHashtag @@ -172,8 +177,8 @@ fun HashtagActionOptions( UnfollowButton { if (!accountViewModel.isWriteable()) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_unfollow, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_unfollow, ) } else { accountViewModel.unfollowHashtag(tag) @@ -183,8 +188,8 @@ fun HashtagActionOptions( FollowButton { if (!accountViewModel.isWriteable()) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_follow, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_follow, ) } else { accountViewModel.followHashtag(tag) @@ -206,7 +211,7 @@ fun HashtagMuteMenu( IconButton(onClick = { menuOpen = true }) { Icon( symbol = MaterialSymbols.MoreVert, - contentDescription = stringRes(R.string.more_options), + contentDescription = stringRes(Res.string.more_options), modifier = Modifier.size(22.dp), ) } @@ -219,8 +224,8 @@ fun HashtagMuteMenu( menuOpen = false if (!accountViewModel.isWriteable()) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_show_word, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_show_word, ) } else { accountViewModel.showHashtag(tag) @@ -234,8 +239,8 @@ fun HashtagMuteMenu( menuOpen = false if (!accountViewModel.isWriteable()) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_hide_word, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_hide_word, ) } else { accountViewModel.hideHashtag(tag) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/highlights/NewHighlightButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/highlights/NewHighlightButton.kt index 3ecdf8ef80..2d52669184 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/highlights/NewHighlightButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/highlights/NewHighlightButton.kt @@ -26,6 +26,8 @@ import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.new_highlight_title import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route import com.vitorpamplona.amethyst.ui.painterRes @@ -45,7 +47,7 @@ fun NewHighlightButton(nav: INav) { ) { Icon( painter = painterRes(R.drawable.ic_compose, 4), - contentDescription = stringRes(R.string.new_highlight_title), + contentDescription = stringRes(Res.string.new_highlight_title), modifier = Size26Modifier, tint = MaterialTheme.colorScheme.onPrimary, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/highlights/NewHighlightScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/highlights/NewHighlightScreen.kt index 8fd06b4273..32f3b4675d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/highlights/NewHighlightScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/highlights/NewHighlightScreen.kt @@ -61,15 +61,16 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.em import androidx.compose.ui.unit.sp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.nip30CustomEmojis.ui.ShowEmojiSuggestionList import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.new_highlight_note_label +import com.vitorpamplona.amethyst.commons.resources.new_highlight_note_placeholder import com.vitorpamplona.amethyst.commons.resources.new_highlight_passage_placeholder import com.vitorpamplona.amethyst.commons.resources.new_highlight_source_label +import com.vitorpamplona.amethyst.commons.resources.new_highlight_title import com.vitorpamplona.amethyst.ui.insets.imePaddingSafe import com.vitorpamplona.amethyst.ui.navigation.navs.Nav import com.vitorpamplona.amethyst.ui.navigation.topbars.PostingTopBar @@ -124,7 +125,7 @@ fun NewHighlightScreen( Scaffold( topBar = { PostingTopBar( - titleRes = R.string.new_highlight_title, + titleRes = Res.string.new_highlight_title, isActive = postViewModel::canPost, onCancel = { nav.popBack() }, onPost = { @@ -198,7 +199,7 @@ fun NewHighlightScreen( ) } MessageField( - placeholder = R.string.new_highlight_note_placeholder, + placeholder = Res.string.new_highlight_note_placeholder, viewModel = postViewModel, requestFocus = false, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/AddOutboxRelayListDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/AddOutboxRelayListDialog.kt index b126e8a91d..9456810563 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/AddOutboxRelayListDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/AddOutboxRelayListDialog.kt @@ -36,10 +36,10 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.outbox_relays_not_found_editing import com.vitorpamplona.amethyst.commons.resources.outbox_relays_not_found_examples +import com.vitorpamplona.amethyst.commons.resources.outbox_relays_title import com.vitorpamplona.amethyst.ui.components.SetDialogToEdgeToEdge import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.topbars.SavingTopBar @@ -73,7 +73,7 @@ fun AddOutboxRelayListDialog( Scaffold( topBar = { SavingTopBar( - titleRes = R.string.outbox_relays_title, + titleRes = Res.string.outbox_relays_title, onCancel = { postViewModel.clear() onClose() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/HomeScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/HomeScreen.kt index e9ae7e948e..890648ed01 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/HomeScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/HomeScreen.kt @@ -55,7 +55,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.feeds.FeedContentState import com.vitorpamplona.amethyst.commons.feeds.FeedState import com.vitorpamplona.amethyst.commons.model.emphChat.EphemeralChatChannel @@ -63,7 +62,10 @@ import com.vitorpamplona.amethyst.commons.model.geohashChat.GeohashChatChannel import com.vitorpamplona.amethyst.commons.model.nip53LiveActivities.LiveActivitiesChannel import com.vitorpamplona.amethyst.commons.model.topNavFeeds.TopFilter import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.conversations import com.vitorpamplona.amethyst.commons.resources.feed_is_empty +import com.vitorpamplona.amethyst.commons.resources.home_tab_everything +import com.vitorpamplona.amethyst.commons.resources.new_threads import com.vitorpamplona.amethyst.commons.resources.refresh import com.vitorpamplona.amethyst.commons.ui.layouts.rememberFeedContentPadding import com.vitorpamplona.amethyst.service.OnlineChecker @@ -168,7 +170,7 @@ private fun AssembleHomeTabs( if (showNewThreads) { add( TabItem( - resource = R.string.new_threads, + resource = Res.string.new_threads, feedState = newThreadsFeedState, routeForLastRead = "HomeFollows", scrollStateKey = ScrollStateKeys.HOME_FOLLOWS, @@ -179,7 +181,7 @@ private fun AssembleHomeTabs( if (showConversations) { add( TabItem( - resource = R.string.conversations, + resource = Res.string.conversations, feedState = repliesFeedState, routeForLastRead = "HomeFollowsReplies", scrollStateKey = ScrollStateKeys.HOME_REPLIES, @@ -190,7 +192,7 @@ private fun AssembleHomeTabs( if (showEverything) { add( TabItem( - resource = R.string.home_tab_everything, + resource = Res.string.home_tab_everything, feedState = everythingFeedState, routeForLastRead = "HomeFollowsEverything", scrollStateKey = ScrollStateKeys.HOME_EVERYTHING, @@ -203,7 +205,7 @@ private fun AssembleHomeTabs( if (isEmpty()) { add( TabItem( - resource = R.string.new_threads, + resource = Res.string.new_threads, feedState = newThreadsFeedState, routeForLastRead = "HomeFollows", scrollStateKey = ScrollStateKeys.HOME_FOLLOWS, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/ShortNotePostScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/ShortNotePostScreen.kt index 4168839498..d178d194fd 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/ShortNotePostScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/ShortNotePostScreen.kt @@ -79,21 +79,32 @@ import androidx.core.net.toUri import androidx.core.util.Consumer import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.nip30CustomEmojis.ui.ShowEmojiSuggestionList import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.audience_send_privately import com.vitorpamplona.amethyst.commons.resources.disable_poll +import com.vitorpamplona.amethyst.commons.resources.disable_private_note +import com.vitorpamplona.amethyst.commons.resources.geohash_exclusive +import com.vitorpamplona.amethyst.commons.resources.geohash_exclusive_explainer +import com.vitorpamplona.amethyst.commons.resources.kind_poll +import com.vitorpamplona.amethyst.commons.resources.kind_zap_poll import com.vitorpamplona.amethyst.commons.resources.lightning_create_and_add_invoice import com.vitorpamplona.amethyst.commons.resources.lightning_invoice +import com.vitorpamplona.amethyst.commons.resources.messages_new_message_subject import com.vitorpamplona.amethyst.commons.resources.messages_new_message_subject_caption import com.vitorpamplona.amethyst.commons.resources.poll +import com.vitorpamplona.amethyst.commons.resources.post import com.vitorpamplona.amethyst.commons.resources.post_anonymously +import com.vitorpamplona.amethyst.commons.resources.private_note +import com.vitorpamplona.amethyst.commons.resources.private_note_locked +import com.vitorpamplona.amethyst.commons.resources.relay_group_thread_title_label import com.vitorpamplona.amethyst.commons.resources.schedule_post_always_on_prompt_continue import com.vitorpamplona.amethyst.commons.resources.schedule_post_always_on_prompt_message import com.vitorpamplona.amethyst.commons.resources.schedule_post_always_on_prompt_open_settings import com.vitorpamplona.amethyst.commons.resources.schedule_post_always_on_prompt_title +import com.vitorpamplona.amethyst.commons.resources.what_s_on_your_mind import com.vitorpamplona.amethyst.commons.resources.zapraiser import com.vitorpamplona.amethyst.commons.ui.text.onUiThread import com.vitorpamplona.amethyst.model.BooleanType @@ -276,7 +287,7 @@ internal fun NewPostScreenInner( topBar = { PostingTopBar( isActive = postViewModel::canPost, - postRes = if (postViewModel.wantsPrivateNote) R.string.audience_send_privately else R.string.post, + postRes = if (postViewModel.wantsPrivateNote) Res.string.audience_send_privately else Res.string.post, onPost = { // uses the accountViewModel scope to avoid cancelling this // function when the postViewModel is released @@ -417,9 +428,9 @@ private fun NewPostScreenBody( text = stringRes( if (postViewModel.groupThreadTarget != null) { - R.string.relay_group_thread_title_label + Res.string.relay_group_thread_title_label } else { - R.string.messages_new_message_subject + Res.string.messages_new_message_subject }, ), fontSize = Font14SP, @@ -482,7 +493,7 @@ private fun NewPostScreenBody( } } MessageField( - R.string.what_s_on_your_mind, + Res.string.what_s_on_your_mind, postViewModel, onContentReceived = { uri, mimeType -> postViewModel.selectImage( @@ -508,7 +519,7 @@ private fun NewPostScreenBody( postViewModel.wantsPoll = true postViewModel.wantsZapPoll = false }, - label = { Text(stringRes(R.string.kind_poll)) }, + label = { Text(stringRes(Res.string.kind_poll)) }, ) FilterChip( selected = postViewModel.wantsZapPoll, @@ -516,7 +527,7 @@ private fun NewPostScreenBody( postViewModel.wantsZapPoll = true postViewModel.wantsPoll = false }, - label = { Text(stringRes(R.string.kind_zap_poll)) }, + label = { Text(stringRes(Res.string.kind_zap_poll)) }, ) } if (postViewModel.wantsPoll) { @@ -577,8 +588,8 @@ private fun NewPostScreenBody( if (postViewModel.wantsToAddGeoHash) { GeoHashPostSection(postViewModel) { SettingsRow( - R.string.geohash_exclusive, - R.string.geohash_exclusive_explainer, + Res.string.geohash_exclusive, + Res.string.geohash_exclusive_explainer, ) { Switch(postViewModel.wantsExclusiveGeoPost, onCheckedChange = { postViewModel.wantsExclusiveGeoPost = it }) } @@ -995,9 +1006,9 @@ private fun AddPrivateNoteButton( stringRes( id = when { - isLocked -> R.string.private_note_locked - isActive -> R.string.disable_private_note - else -> R.string.private_note + isLocked -> Res.string.private_note_locked + isActive -> Res.string.disable_private_note + else -> Res.string.private_note }, ), modifier = Modifier.height(22.dp), @@ -1014,7 +1025,7 @@ private fun AddSubjectButton( IconButton(onClick = onClick) { Icon( symbol = MaterialSymbols.Topic, - contentDescription = stringRes(R.string.messages_new_message_subject), + contentDescription = stringRes(Res.string.messages_new_message_subject), modifier = Modifier.height(22.dp), tint = if (isActive) MaterialTheme.colorScheme.primary else MaterialTheme.colorScheme.onBackground, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/ShortNotePostViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/ShortNotePostViewModel.kt index aa775d3a91..126fe7bcc2 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/ShortNotePostViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/ShortNotePostViewModel.kt @@ -34,19 +34,28 @@ import androidx.compose.runtime.snapshots.SnapshotStateMap import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.AddressableNote import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.nip30CustomEmojis.EmojiPackState.EmojiMedia import com.vitorpamplona.amethyst.commons.model.nip30CustomEmojis.EmojiSuggestionState +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.error +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media_no_details +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_sign_events +import com.vitorpamplona.amethyst.commons.resources.read_only_user +import com.vitorpamplona.amethyst.commons.resources.upload_error_title +import com.vitorpamplona.amethyst.commons.resources.upload_error_voice_message_exception +import com.vitorpamplona.amethyst.commons.resources.upload_error_voice_message_failed +import com.vitorpamplona.amethyst.commons.resources.upload_error_voice_message_nip95_not_supported import com.vitorpamplona.amethyst.commons.scheduledposts.ScheduledPost import com.vitorpamplona.amethyst.commons.service.ai.WritingAssistant import com.vitorpamplona.amethyst.commons.service.ai.WritingAssistantStatus import com.vitorpamplona.amethyst.commons.service.ai.WritingResult import com.vitorpamplona.amethyst.commons.service.ai.WritingTone import com.vitorpamplona.amethyst.commons.service.pow.PoWReplay +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.commons.ui.text.appendSignature import com.vitorpamplona.amethyst.commons.ui.text.currentWord import com.vitorpamplona.amethyst.commons.ui.text.insertUrlAtCursor @@ -85,7 +94,6 @@ import com.vitorpamplona.amethyst.ui.note.creators.zapsplits.SplitBuilder import com.vitorpamplona.amethyst.ui.note.creators.zapsplits.toZapSplitSetup import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.privateDM.send.IMetaAttachments -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.experimental.nip95.data.FileStorageEvent import com.vitorpamplona.quartz.experimental.nip95.header.FileStorageHeaderEvent import com.vitorpamplona.quartz.experimental.zapPolls.ZapPollEvent @@ -286,7 +294,7 @@ open class ShortNotePostViewModel : logTag = "ShortNotePostViewModel", onError = { error -> accountViewModel.toastManager.toast( - stringRes(Amethyst.instance.appContext, R.string.error), + loadStringRes(Res.string.error), error.message ?: "Voice anonymization failed", ) }, @@ -1552,13 +1560,17 @@ open class ShortNotePostViewModel : useH265: Boolean, stripMetadata: Boolean = true, convertGifToMp4: Boolean = false, - ) = try { - uploadUnsafe(alt, contentWarningReason, mediaQuality, server, onError, context, useH265, stripMetadata, convertGifToMp4) - } catch (_: SignerExceptions.ReadOnlyException) { - onError( - stringRes(context, R.string.read_only_user), - stringRes(context, R.string.login_with_a_private_key_to_be_able_to_sign_events), - ) + ) { + try { + uploadUnsafe(alt, contentWarningReason, mediaQuality, server, onError, context, useH265, stripMetadata, convertGifToMp4) + } catch (_: SignerExceptions.ReadOnlyException) { + viewModelScope.launch { + onError( + loadStringRes(Res.string.read_only_user), + loadStringRes(Res.string.login_with_a_private_key_to_be_able_to_sign_events), + ) + } + } } fun uploadUnsafe( @@ -1637,8 +1649,8 @@ open class ShortNotePostViewModel : multiOrchestrator = null } else { - val errorMessages = results.errors.map { stringRes(context, it.errorResource, *it.params) }.distinct() - onError(stringRes(context, R.string.failed_to_upload_media_no_details), errorMessages.joinToString(".\n")) + val errorMessages = results.errors.map { loadStringRes(it.errorResource, *it.params) }.distinct() + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), errorMessages.joinToString(".\n")) } mediaUploadTracker.finishUpload() @@ -1899,11 +1911,11 @@ open class ShortNotePostViewModel : val fileToUpload = activeFile ?: recording.file val waveform = activeWaveform ?: recording.amplitudes val appContext = Amethyst.instance.appContext - val uploadErrorTitle = stringRes(appContext, R.string.upload_error_title) - val uploadVoiceNip95NotSupported = stringRes(appContext, R.string.upload_error_voice_message_nip95_not_supported) - val uploadVoiceFailed = stringRes(appContext, R.string.upload_error_voice_message_failed) + val uploadErrorTitle = loadStringRes(Res.string.upload_error_title) + val uploadVoiceNip95NotSupported = loadStringRes(Res.string.upload_error_voice_message_nip95_not_supported) + val uploadVoiceFailed = loadStringRes(Res.string.upload_error_voice_message_failed) val uploadVoiceExceptionMessage: (String) -> String = { detail -> - stringRes(appContext, R.string.upload_error_voice_message_exception, detail) + loadStringRes(Res.string.upload_error_voice_message_exception, detail) } isUploadingVoice = true diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/VoiceReplyViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/VoiceReplyViewModel.kt index 0bf353eea1..55c2fc3f2e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/VoiceReplyViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/VoiceReplyViewModel.kt @@ -27,9 +27,15 @@ import androidx.compose.runtime.setValue import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.error +import com.vitorpamplona.amethyst.commons.resources.upload_error_title +import com.vitorpamplona.amethyst.commons.resources.upload_error_voice_message_exception +import com.vitorpamplona.amethyst.commons.resources.upload_error_voice_message_failed +import com.vitorpamplona.amethyst.commons.resources.upload_error_voice_message_nip95_not_supported import com.vitorpamplona.amethyst.commons.service.pow.PoWReplay +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.commons.util.deleteOrWarn import com.vitorpamplona.amethyst.service.uploads.CompressorQuality import com.vitorpamplona.amethyst.service.uploads.UploadOrchestrator @@ -39,7 +45,6 @@ import com.vitorpamplona.amethyst.ui.actions.uploads.RecordingResult import com.vitorpamplona.amethyst.ui.actions.uploads.VoiceAnonymizationController import com.vitorpamplona.amethyst.ui.actions.uploads.VoicePreset import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip01Core.tags.people.toPTag import com.vitorpamplona.quartz.nip10Notes.TextNoteEvent import com.vitorpamplona.quartz.nip10Notes.tags.markedETags @@ -77,7 +82,7 @@ class VoiceReplyViewModel : ViewModel() { onError = { error -> if (::accountViewModel.isInitialized) { accountViewModel.toastManager.toast( - stringRes(Amethyst.instance.appContext, R.string.error), + loadStringRes(Res.string.error), error.message ?: "Voice anonymization failed", ) } @@ -207,9 +212,9 @@ class VoiceReplyViewModel : ViewModel() { Log.w("VoiceReplyViewModel", "User canceled, or ViewModel cleared", e) } catch (e: Exception) { val appContext = Amethyst.instance.appContext - val uploadErrorTitle = stringRes(appContext, R.string.upload_error_title) + val uploadErrorTitle = loadStringRes(Res.string.upload_error_title) val uploadVoiceExceptionMessage: (String) -> String = { detail -> - stringRes(appContext, R.string.upload_error_voice_message_exception, detail) + loadStringRes(Res.string.upload_error_voice_message_exception, detail) } accountViewModel.toastManager.toast( uploadErrorTitle, @@ -232,9 +237,9 @@ class VoiceReplyViewModel : ViewModel() { onSuccess: () -> Unit, ) { val appContext = Amethyst.instance.appContext - val uploadErrorTitle = stringRes(appContext, R.string.upload_error_title) - val uploadVoiceNip95NotSupported = stringRes(appContext, R.string.upload_error_voice_message_nip95_not_supported) - val uploadVoiceFailed = stringRes(appContext, R.string.upload_error_voice_message_failed) + val uploadErrorTitle = loadStringRes(Res.string.upload_error_title) + val uploadVoiceNip95NotSupported = loadStringRes(Res.string.upload_error_voice_message_nip95_not_supported) + val uploadVoiceFailed = loadStringRes(Res.string.upload_error_voice_message_failed) when (result) { is UploadingState.Finished -> { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/nip75Goals/NewGoalScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/nip75Goals/NewGoalScreen.kt index fe126878d0..13a1689736 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/nip75Goals/NewGoalScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/nip75Goals/NewGoalScreen.kt @@ -46,7 +46,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.goal_amount_label import com.vitorpamplona.amethyst.commons.resources.goal_amount_placeholder @@ -59,6 +58,7 @@ import com.vitorpamplona.amethyst.commons.resources.goal_summary_label import com.vitorpamplona.amethyst.commons.resources.goal_summary_placeholder import com.vitorpamplona.amethyst.commons.resources.goal_website_label import com.vitorpamplona.amethyst.commons.resources.goal_website_placeholder +import com.vitorpamplona.amethyst.commons.resources.new_goal import com.vitorpamplona.amethyst.ui.insets.imePaddingSafe import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.navs.Nav @@ -101,7 +101,7 @@ fun NewGoalScreen( Scaffold( topBar = { PostingTopBar( - titleRes = R.string.new_goal, + titleRes = Res.string.new_goal, isActive = goalViewModel::canPost, onCancel = { goalViewModel.cancel() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/interestSets/display/InterestSetScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/interestSets/display/InterestSetScreen.kt index 21f50bb83c..ec500876dd 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/interestSets/display/InterestSetScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/interestSets/display/InterestSetScreen.kt @@ -46,7 +46,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.nip51Lists.interestSets.InterestSet @@ -56,6 +55,8 @@ import com.vitorpamplona.amethyst.commons.resources.interest_set_hashtag_add_pla import com.vitorpamplona.amethyst.commons.resources.interest_set_hashtag_private_toggle import com.vitorpamplona.amethyst.commons.resources.interest_set_toggle_visibility import com.vitorpamplona.amethyst.commons.resources.interest_sets_empty +import com.vitorpamplona.amethyst.commons.resources.interest_sets_title +import com.vitorpamplona.amethyst.commons.resources.quick_action_delete import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.topbars.TopBarWithBackButton import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel @@ -73,7 +74,7 @@ fun InterestSetScreen( Scaffold( topBar = { - TopBarWithBackButton(caption = set?.title ?: stringRes(R.string.interest_sets_title), nav) + TopBarWithBackButton(caption = set?.title ?: stringRes(Res.string.interest_sets_title), nav) }, ) { paddingValues -> if (set == null) { @@ -241,7 +242,7 @@ private fun HashtagRow( IconButton(onClick = onDelete) { Icon( symbol = MaterialSymbols.Delete, - contentDescription = stringRes(R.string.quick_action_delete), + contentDescription = stringRes(Res.string.quick_action_delete), ) } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/interestSets/list/InterestSetItem.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/interestSets/list/InterestSetItem.kt index 789c5dccaf..fb0dcbd9d3 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/interestSets/list/InterestSetItem.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/interestSets/list/InterestSetItem.kt @@ -33,7 +33,6 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextOverflow -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.nip51Lists.interestSets.InterestSet @@ -41,6 +40,8 @@ import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.interest_set_actions_dialog_title import com.vitorpamplona.amethyst.commons.resources.interest_set_clone import com.vitorpamplona.amethyst.commons.resources.interest_set_hashtag_count +import com.vitorpamplona.amethyst.commons.resources.interest_set_rename +import com.vitorpamplona.amethyst.commons.resources.quick_action_delete import com.vitorpamplona.amethyst.ui.components.ClickableBox import com.vitorpamplona.amethyst.ui.components.M3ActionDialog import com.vitorpamplona.amethyst.ui.components.M3ActionRow @@ -126,7 +127,7 @@ private fun InterestSetOptionsButton( onDismiss = { isMenuOpen.value = false }, ) { M3ActionSection { - M3ActionRow(icon = MaterialSymbols.Edit, text = stringRes(R.string.interest_set_rename)) { + M3ActionRow(icon = MaterialSymbols.Edit, text = stringRes(Res.string.interest_set_rename)) { onRename() isMenuOpen.value = false } @@ -136,7 +137,7 @@ private fun InterestSetOptionsButton( } } M3ActionSection { - M3ActionRow(icon = MaterialSymbols.Delete, text = stringRes(R.string.quick_action_delete), isDestructive = true) { + M3ActionRow(icon = MaterialSymbols.Delete, text = stringRes(Res.string.quick_action_delete), isDestructive = true) { onDelete() isMenuOpen.value = false } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/interestSets/list/ListOfInterestSetsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/interestSets/list/ListOfInterestSetsScreen.kt index 36c722dbb7..c2f05b1261 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/interestSets/list/ListOfInterestSetsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/interestSets/list/ListOfInterestSetsScreen.kt @@ -44,12 +44,12 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.interest_set_create_btn_label import com.vitorpamplona.amethyst.commons.resources.interest_sets_empty +import com.vitorpamplona.amethyst.commons.resources.interest_sets_title import com.vitorpamplona.amethyst.ui.navigation.bottombars.AppBottomBar import com.vitorpamplona.amethyst.ui.navigation.bottombars.fabBottomBarPadding import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -74,7 +74,7 @@ fun ListOfInterestSetsScreen( Scaffold( topBar = { - TopBarWithBackButton(caption = stringRes(R.string.interest_sets_title), nav) + TopBarWithBackButton(caption = stringRes(Res.string.interest_sets_title), nav) }, bottomBar = { AppBottomBar(Route.InterestSets, nav, accountViewModel) { route -> diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/interestSets/list/metadata/InterestSetMetadataScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/interestSets/list/metadata/InterestSetMetadataScreen.kt index 38ee0c9fd6..1efa506c98 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/interestSets/list/metadata/InterestSetMetadataScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/interestSets/list/metadata/InterestSetMetadataScreen.kt @@ -39,10 +39,13 @@ import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.style.TextDirection import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.interest_set_creation_screen_title import com.vitorpamplona.amethyst.commons.resources.interest_set_name_label import com.vitorpamplona.amethyst.commons.resources.interest_set_name_placeholder +import com.vitorpamplona.amethyst.commons.resources.interest_set_rename +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_sign_events +import com.vitorpamplona.amethyst.commons.resources.read_only_user import com.vitorpamplona.amethyst.ui.insets.imePaddingSafe import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.topbars.CreatingTopBar @@ -108,7 +111,7 @@ fun InterestSetMetadataTopBar( ) { if (viewModel.isNewList) { CreatingTopBar( - titleRes = R.string.interest_set_creation_screen_title, + titleRes = Res.string.interest_set_creation_screen_title, isActive = viewModel::canPost, onCancel = { viewModel.clear() @@ -120,15 +123,15 @@ fun InterestSetMetadataTopBar( nav.popBack() } catch (_: SignerExceptions.ReadOnlyException) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_sign_events, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_sign_events, ) } }, ) } else { SavingTopBar( - titleRes = R.string.interest_set_rename, + titleRes = Res.string.interest_set_rename, isActive = viewModel::canPost, onCancel = { viewModel.clear() @@ -140,8 +143,8 @@ fun InterestSetMetadataTopBar( nav.popBack() } catch (_: SignerExceptions.ReadOnlyException) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_sign_events, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_sign_events, ) } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/keyBackup/AccountBackupScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/keyBackup/AccountBackupScreen.kt index c33dfb33dd..0ddce04fd7 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/keyBackup/AccountBackupScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/keyBackup/AccountBackupScreen.kt @@ -90,10 +90,19 @@ import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.account_backup_tips2_md import com.vitorpamplona.amethyst.commons.resources.account_backup_tips3_md +import com.vitorpamplona.amethyst.commons.resources.backup_keys import com.vitorpamplona.amethyst.commons.resources.copies_the_nsec_id_your_password_to_the_clipboard_for_backup +import com.vitorpamplona.amethyst.commons.resources.copy_my_secret_key import com.vitorpamplona.amethyst.commons.resources.encrypt_and_copy_my_secret_key +import com.vitorpamplona.amethyst.commons.resources.failed_to_encrypt_key +import com.vitorpamplona.amethyst.commons.resources.hide_password import com.vitorpamplona.amethyst.commons.resources.ncryptsec_password +import com.vitorpamplona.amethyst.commons.resources.password_is_required +import com.vitorpamplona.amethyst.commons.resources.secret_key_copied_to_clipboard +import com.vitorpamplona.amethyst.commons.resources.show_encrypted_private_key_qr_code import com.vitorpamplona.amethyst.commons.resources.show_password +import com.vitorpamplona.amethyst.commons.resources.show_private_key_qr_code +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.ui.components.util.getText import com.vitorpamplona.amethyst.ui.components.util.setText @@ -101,6 +110,7 @@ import com.vitorpamplona.amethyst.ui.navigation.navs.EmptyNav import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.topbars.TopBarWithBackButton import com.vitorpamplona.amethyst.ui.note.authenticate +import com.vitorpamplona.amethyst.ui.note.rememberAuthPromptLabels import com.vitorpamplona.amethyst.ui.painterRes import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.mockAccountViewModel @@ -151,6 +161,8 @@ private fun AccountBackupScreenContent( // screen is on-screen. Cleared on dispose so the flag never leaks to other // screens. This is the only FLAG_SECURE usage in the app — scoped on purpose. val context = LocalContext.current + val authLabels = rememberAuthPromptLabels() + val authLabelCopyKey = stringRes(Res.string.copy_my_secret_key) DisposableEffect(context) { val window = context.getFragmentActivity()?.window window?.setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE) @@ -162,7 +174,7 @@ private fun AccountBackupScreenContent( Scaffold( topBar = { TopBarWithBackButton( - stringRes(R.string.backup_keys), + stringRes(Res.string.backup_keys), nav = nav, ) }, @@ -256,7 +268,7 @@ private fun AccountBackupScreenContent( stringRes(Res.string.show_password) } else { stringRes( - R.string.hide_password, + Res.string.hide_password, ) }, ) @@ -286,6 +298,8 @@ private fun AccountBackupScreenContent( private fun NSecCopyButton(accountViewModel: AccountViewModel) { val clipboardManager = LocalClipboard.current val context = LocalContext.current + val authLabels = rememberAuthPromptLabels() + val authLabelCopyKey = stringRes(Res.string.copy_my_secret_key) val scope = rememberCoroutineScope() val keyguardLauncher = @@ -299,8 +313,9 @@ private fun NSecCopyButton(accountViewModel: AccountViewModel) { modifier = Modifier.padding(horizontal = 3.dp), onClick = { authenticate( - title = stringRes(context, R.string.copy_my_secret_key), + title = authLabelCopyKey, context = context, + labels = authLabels, keyguardLauncher = keyguardLauncher, onApproved = { copyNSec(context, scope, accountViewModel.account, clipboardManager) }, onError = { title, message -> accountViewModel.toastManager.toast(title, message) }, @@ -321,7 +336,7 @@ private fun NSecCopyButton(accountViewModel: AccountViewModel) { modifier = Modifier.padding(end = 5.dp), ) Text( - stringRes(id = R.string.copy_my_secret_key), + stringRes(id = Res.string.copy_my_secret_key), color = MaterialTheme.colorScheme.onPrimary, ) } @@ -334,6 +349,8 @@ private fun EncryptNSecCopyButton( ) { val clipboardManager = LocalClipboard.current val context = LocalContext.current + val authLabels = rememberAuthPromptLabels() + val authLabelCopyKey = stringRes(Res.string.copy_my_secret_key) val scope = rememberCoroutineScope() val keyguardLauncher = @@ -349,8 +366,9 @@ private fun EncryptNSecCopyButton( modifier = Modifier.padding(horizontal = 3.dp), onClick = { authenticate( - title = stringRes(context, R.string.copy_my_secret_key), + title = authLabelCopyKey, context = context, + labels = authLabels, keyguardLauncher = keyguardLauncher, onApproved = { encryptCopyNSec(password, context, scope, accountViewModel, clipboardManager) }, onError = { title, message -> accountViewModel.toastManager.toast(title, message) }, @@ -402,7 +420,7 @@ private fun copyNSec( Toast .makeText( context, - stringRes(context, R.string.secret_key_copied_to_clipboard), + loadStringRes(Res.string.secret_key_copied_to_clipboard), Toast.LENGTH_SHORT, ).show() @@ -429,7 +447,7 @@ private fun encryptCopyNSec( Toast .makeText( context, - stringRes(context, R.string.password_is_required), + loadStringRes(Res.string.password_is_required), Toast.LENGTH_SHORT, ).show() } @@ -442,7 +460,7 @@ private fun encryptCopyNSec( Toast .makeText( context, - stringRes(context, R.string.secret_key_copied_to_clipboard), + loadStringRes(Res.string.secret_key_copied_to_clipboard), Toast.LENGTH_SHORT, ).show() } @@ -451,7 +469,7 @@ private fun encryptCopyNSec( Toast .makeText( context, - stringRes(context, R.string.failed_to_encrypt_key), + loadStringRes(Res.string.failed_to_encrypt_key), Toast.LENGTH_SHORT, ).show() } @@ -468,6 +486,8 @@ private fun QrCodeButtonBase( onDialogShow: () -> String?, ) { val context = LocalContext.current + val authLabels = rememberAuthPromptLabels() + val authLabelCopyKey = stringRes(Res.string.copy_my_secret_key) // store the dialog open or close state var dialogOpen by remember { mutableStateOf(false) } @@ -483,8 +503,9 @@ private fun QrCodeButtonBase( enabled = isEnabled, onClick = { authenticate( - title = stringRes(context, R.string.copy_my_secret_key), + title = authLabelCopyKey, context = context, + labels = authLabels, keyguardLauncher = keyguardLauncher, onApproved = { dialogOpen = true }, onError = { title, message -> accountViewModel.toastManager.toast(title, message) }, @@ -511,7 +532,7 @@ private fun QrCodeButtonBase( private fun QrCodeButton(accountViewModel: AccountViewModel) { QrCodeButtonBase( accountViewModel = accountViewModel, - contentDescription = R.string.show_private_key_qr_code, + contentDescription = Res.string.show_private_key_qr_code, onDialogShow = { accountViewModel.account.settings.keyPair.privKey ?.toNsec() @@ -527,7 +548,7 @@ private fun QrCodeButtonEncrypted( QrCodeButtonBase( accountViewModel = accountViewModel, isEnabled = password.value.text.isNotBlank(), - contentDescription = R.string.show_encrypted_private_key_qr_code, + contentDescription = Res.string.show_encrypted_private_key_qr_code, onDialogShow = { accountViewModel.account.settings.keyPair.privKey ?.toHexKey() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/display/ShowUserSuggestions.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/display/ShowUserSuggestions.kt index 92810efc52..fc228214cb 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/display/ShowUserSuggestions.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/display/ShowUserSuggestions.kt @@ -59,13 +59,13 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.in_the_list +import com.vitorpamplona.amethyst.commons.resources.remove import com.vitorpamplona.amethyst.commons.resources.search_and_add_a_user import com.vitorpamplona.amethyst.service.relayClient.searchCommand.UserSearchDataSourceSubscription import com.vitorpamplona.amethyst.ui.note.AboutDisplay @@ -274,7 +274,7 @@ private fun RowScope.HasUserTag( ) { Icon( symbol = MaterialSymbols.Cancel, - contentDescription = stringRes(id = R.string.remove), + contentDescription = stringRes(id = Res.string.remove), modifier = Modifier.size(15.dp), tint = LightRedColor, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/display/lists/PeopleListScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/display/lists/PeopleListScreen.kt index 48b658bb0f..7f922264f6 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/display/lists/PeopleListScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/display/lists/PeopleListScreen.kt @@ -66,7 +66,6 @@ import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.AddressableNote import com.vitorpamplona.amethyst.commons.model.User @@ -74,11 +73,14 @@ import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.follow_set_broadcast import com.vitorpamplona.amethyst.commons.resources.follow_set_delete +import com.vitorpamplona.amethyst.commons.resources.follow_set_edit_list_metadata import com.vitorpamplona.amethyst.commons.resources.list_actions_dialog_title import com.vitorpamplona.amethyst.commons.resources.private_members import com.vitorpamplona.amethyst.commons.resources.private_members_count import com.vitorpamplona.amethyst.commons.resources.public_members import com.vitorpamplona.amethyst.commons.resources.public_members_count +import com.vitorpamplona.amethyst.commons.resources.quick_action_share +import com.vitorpamplona.amethyst.commons.resources.quick_action_share_browser_link import com.vitorpamplona.amethyst.commons.resources.search_and_add_a_user import com.vitorpamplona.amethyst.ui.components.ClickableBox import com.vitorpamplona.amethyst.ui.components.M3ActionDialog @@ -435,7 +437,7 @@ private fun ListActionsMenuButton( onDismiss = { isActionListOpen.value = false }, ) { M3ActionSection { - M3ActionRow(icon = MaterialSymbols.Share, text = stringRes(R.string.quick_action_share)) { + M3ActionRow(icon = MaterialSymbols.Share, text = stringRes(Res.string.quick_action_share)) { val sendIntent = Intent().apply { action = Intent.ACTION_SEND @@ -446,16 +448,16 @@ private fun ListActionsMenuButton( ) putExtra( Intent.EXTRA_TITLE, - stringRes(context, R.string.quick_action_share_browser_link), + stringRes(Res.string.quick_action_share_browser_link), ) } val shareIntent = - Intent.createChooser(sendIntent, stringRes(context, R.string.quick_action_share)) + Intent.createChooser(sendIntent, stringRes(Res.string.quick_action_share)) context.startActivity(shareIntent) isActionListOpen.value = false } - M3ActionRow(icon = MaterialSymbols.Edit, text = stringRes(R.string.follow_set_edit_list_metadata)) { + M3ActionRow(icon = MaterialSymbols.Edit, text = stringRes(Res.string.follow_set_edit_list_metadata)) { onEditList() isActionListOpen.value = false } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/display/packs/FollowPackScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/display/packs/FollowPackScreen.kt index e42905b659..7664e279a3 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/display/packs/FollowPackScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/display/packs/FollowPackScreen.kt @@ -59,7 +59,6 @@ import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.AddressableNote import com.vitorpamplona.amethyst.commons.model.User @@ -67,7 +66,10 @@ import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.follow_pack_broadcast import com.vitorpamplona.amethyst.commons.resources.follow_pack_delete +import com.vitorpamplona.amethyst.commons.resources.follow_pack_edit_list_metadata import com.vitorpamplona.amethyst.commons.resources.pack_actions_dialog_title +import com.vitorpamplona.amethyst.commons.resources.quick_action_share +import com.vitorpamplona.amethyst.commons.resources.quick_action_share_browser_link import com.vitorpamplona.amethyst.commons.resources.search_and_add_a_user import com.vitorpamplona.amethyst.ui.components.ClickableBox import com.vitorpamplona.amethyst.ui.components.M3ActionDialog @@ -286,7 +288,7 @@ private fun ListActionsMenuButton( onDismiss = { isActionListOpen.value = false }, ) { M3ActionSection { - M3ActionRow(icon = MaterialSymbols.Share, text = stringRes(R.string.quick_action_share)) { + M3ActionRow(icon = MaterialSymbols.Share, text = stringRes(Res.string.quick_action_share)) { val sendIntent = Intent().apply { action = Intent.ACTION_SEND @@ -297,16 +299,16 @@ private fun ListActionsMenuButton( ) putExtra( Intent.EXTRA_TITLE, - stringRes(context, R.string.quick_action_share_browser_link), + stringRes(Res.string.quick_action_share_browser_link), ) } val shareIntent = - Intent.createChooser(sendIntent, stringRes(context, R.string.quick_action_share)) + Intent.createChooser(sendIntent, stringRes(Res.string.quick_action_share)) context.startActivity(shareIntent) isActionListOpen.value = false } - M3ActionRow(icon = MaterialSymbols.Edit, text = stringRes(R.string.follow_pack_edit_list_metadata)) { + M3ActionRow(icon = MaterialSymbols.Edit, text = stringRes(Res.string.follow_pack_edit_list_metadata)) { onEditList() isActionListOpen.value = false } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/ListOfPeopleListFeedView.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/ListOfPeopleListFeedView.kt index 4ccf2fc35b..77443505b7 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/ListOfPeopleListFeedView.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/ListOfPeopleListFeedView.kt @@ -39,8 +39,8 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.discover_follows import com.vitorpamplona.amethyst.commons.resources.discover_follows_explainer import com.vitorpamplona.amethyst.commons.resources.feed_is_empty import com.vitorpamplona.amethyst.commons.resources.follow_sets @@ -131,7 +131,7 @@ fun AllPeopleListFeedView( ) { Column(modifier = Modifier.weight(1f)) { Text( - text = stringRes(R.string.discover_follows), + text = stringRes(Res.string.discover_follows), color = MaterialTheme.colorScheme.primary, style = MaterialTheme.typography.titleSmall, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/ListOfPeopleListsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/ListOfPeopleListsScreen.kt index eedd0c6bd3..0071c5e796 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/ListOfPeopleListsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/ListOfPeopleListsScreen.kt @@ -33,11 +33,11 @@ import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.follow_set_create_btn_label +import com.vitorpamplona.amethyst.commons.resources.my_lists import com.vitorpamplona.amethyst.ui.navigation.bottombars.AppBottomBar import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route @@ -73,7 +73,7 @@ fun ListOfPeopleListsScreen( Scaffold( topBar = { - TopBarWithBackButton(stringRes(R.string.my_lists), nav) + TopBarWithBackButton(stringRes(Res.string.my_lists), nav) }, bottomBar = { AppBottomBar(Route.Lists, nav, accountViewModel) { route -> diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/NewPeopleListCreationDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/NewPeopleListCreationDialog.kt index a610e75ca9..7f46040753 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/NewPeopleListCreationDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/NewPeopleListCreationDialog.kt @@ -34,17 +34,19 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.follow_set_creation_action_btn_label import com.vitorpamplona.amethyst.commons.resources.follow_set_creation_desc_label +import com.vitorpamplona.amethyst.commons.resources.follow_set_creation_dialog_title import com.vitorpamplona.amethyst.commons.resources.follow_set_creation_name_label import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.DoubleVertSpacer +import org.jetbrains.compose.resources.StringResource @Composable fun NewPeopleListCreationDialog( - title: Int = R.string.follow_set_creation_dialog_title, + title: StringResource = Res.string.follow_set_creation_dialog_title, modifier: Modifier = Modifier, onDismiss: () -> Unit, onCreateList: (name: String, description: String?) -> Unit, @@ -105,7 +107,7 @@ fun NewPeopleListCreationDialog( Button( onClick = onDismiss, ) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/PeopleListItem.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/PeopleListItem.kt index 2c12c3a2b5..1889fc8606 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/PeopleListItem.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/PeopleListItem.kt @@ -47,12 +47,12 @@ import androidx.compose.ui.text.withStyle import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.follow_set_copy_action_btn_label import com.vitorpamplona.amethyst.commons.resources.follow_set_copy_desc_label import com.vitorpamplona.amethyst.commons.resources.follow_set_copy_dialog_title @@ -61,6 +61,7 @@ import com.vitorpamplona.amethyst.commons.resources.follow_set_copy_name_label import com.vitorpamplona.amethyst.commons.resources.follow_set_current_desc_label import com.vitorpamplona.amethyst.commons.resources.follow_set_desc_modify_btn_label import com.vitorpamplona.amethyst.commons.resources.follow_set_desc_modify_label +import com.vitorpamplona.amethyst.commons.resources.follow_set_edit_list_metadata import com.vitorpamplona.amethyst.commons.resources.follow_set_empty_desc_label import com.vitorpamplona.amethyst.commons.resources.follow_set_empty_label2 import com.vitorpamplona.amethyst.commons.resources.follow_set_icon_description @@ -68,6 +69,8 @@ import com.vitorpamplona.amethyst.commons.resources.follow_set_rename_btn_label import com.vitorpamplona.amethyst.commons.resources.follow_set_rename_dialog_indicator_first_part import com.vitorpamplona.amethyst.commons.resources.follow_set_rename_dialog_indicator_second_part import com.vitorpamplona.amethyst.commons.resources.list_management_dialog_title +import com.vitorpamplona.amethyst.commons.resources.quick_action_delete +import com.vitorpamplona.amethyst.commons.resources.rename import com.vitorpamplona.amethyst.model.nip51Lists.peopleList.PeopleList import com.vitorpamplona.amethyst.ui.components.ClickableBox import com.vitorpamplona.amethyst.ui.components.M3ActionDialog @@ -329,7 +332,7 @@ private fun ListOptionsMenu( onDismiss = onDismiss, ) { M3ActionSection { - M3ActionRow(icon = MaterialSymbols.Edit, text = stringRes(R.string.follow_set_edit_list_metadata)) { + M3ActionRow(icon = MaterialSymbols.Edit, text = stringRes(Res.string.follow_set_edit_list_metadata)) { onListEditMetadata() onDismiss() } @@ -339,7 +342,7 @@ private fun ListOptionsMenu( } } M3ActionSection { - M3ActionRow(icon = MaterialSymbols.Delete, text = stringRes(R.string.quick_action_delete), isDestructive = true) { + M3ActionRow(icon = MaterialSymbols.Delete, text = stringRes(Res.string.quick_action_delete), isDestructive = true) { onDelete() onDismiss() } @@ -417,10 +420,10 @@ private fun ListRenameDialog( onListRename(newName) onDismissDialog() }, - ) { Text(text = stringRes(R.string.rename)) } + ) { Text(text = stringRes(Res.string.rename)) } }, dismissButton = { - Button(onClick = onDismissDialog) { Text(text = stringRes(R.string.cancel)) } + Button(onClick = onDismissDialog) { Text(text = stringRes(Res.string.cancel)) } }, ) } @@ -483,7 +486,7 @@ private fun ListModifyDescriptionDialog( ) { Text(text = stringRes(Res.string.follow_set_desc_modify_btn_label)) } }, dismissButton = { - Button(onClick = onDismissDialog) { Text(text = stringRes(R.string.cancel)) } + Button(onClick = onDismissDialog) { Text(text = stringRes(Res.string.cancel)) } }, ) } @@ -553,7 +556,7 @@ private fun ListCloneDialog( Button( onClick = onDismiss, ) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/metadata/FollowPackMetadataScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/metadata/FollowPackMetadataScreen.kt index e6589161d2..f731403c25 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/metadata/FollowPackMetadataScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/metadata/FollowPackMetadataScreen.kt @@ -42,13 +42,18 @@ import androidx.compose.ui.text.style.TextDirection import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.about_us import com.vitorpamplona.amethyst.commons.resources.follow_pack_copy_name_label import com.vitorpamplona.amethyst.commons.resources.follow_pack_creation_desc_label +import com.vitorpamplona.amethyst.commons.resources.follow_pack_creation_dialog_title import com.vitorpamplona.amethyst.commons.resources.follow_pack_creation_name_label +import com.vitorpamplona.amethyst.commons.resources.follow_pack_edit_list_metadata +import com.vitorpamplona.amethyst.commons.resources.follow_pack_explainer +import com.vitorpamplona.amethyst.commons.resources.follow_pack_title +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_sign_events import com.vitorpamplona.amethyst.commons.resources.picture_url +import com.vitorpamplona.amethyst.commons.resources.read_only_user import com.vitorpamplona.amethyst.ui.actions.uploads.SelectSingleFromGallery import com.vitorpamplona.amethyst.ui.insets.imePaddingSafe import com.vitorpamplona.amethyst.ui.navigation.navs.EmptyNav @@ -136,8 +141,8 @@ private fun FollowPackMetadataScaffold( ) { item { SettingsCategory( - R.string.follow_pack_title, - R.string.follow_pack_explainer, + Res.string.follow_pack_title, + Res.string.follow_pack_explainer, SettingsCategoryFirstModifier, ) @@ -163,7 +168,7 @@ fun FollowPackMetadataTopBar( ) { if (postViewModel.isNewPack) { CreatingTopBar( - titleRes = R.string.follow_pack_creation_dialog_title, + titleRes = Res.string.follow_pack_creation_dialog_title, isActive = postViewModel::canPost, onCancel = { postViewModel.clear() @@ -175,15 +180,15 @@ fun FollowPackMetadataTopBar( nav.popBack() } catch (e: SignerExceptions.ReadOnlyException) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_sign_events, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_sign_events, ) } }, ) } else { SavingTopBar( - titleRes = R.string.follow_pack_edit_list_metadata, + titleRes = Res.string.follow_pack_edit_list_metadata, isActive = postViewModel::canPost, onCancel = { postViewModel.clear() @@ -195,8 +200,8 @@ fun FollowPackMetadataTopBar( nav.popBack() } catch (e: SignerExceptions.ReadOnlyException) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_sign_events, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_sign_events, ) } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/metadata/FollowPackMetadataViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/metadata/FollowPackMetadataViewModel.kt index d5fd18eac5..e4adbb99ba 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/metadata/FollowPackMetadataViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/metadata/FollowPackMetadataViewModel.kt @@ -30,7 +30,14 @@ import androidx.compose.ui.text.input.TextFieldValue import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.avif_metadata_strip_failed +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media_no_details +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_upload +import com.vitorpamplona.amethyst.commons.resources.metadata_strip_failed_title +import com.vitorpamplona.amethyst.commons.resources.metadata_strip_failed_upload_cancelled +import com.vitorpamplona.amethyst.commons.resources.server_did_not_provide_a_url_after_uploading +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.model.nip51Lists.peopleList.PeopleList import com.vitorpamplona.amethyst.service.uploads.AvifMetadataNotVerifiableException @@ -42,7 +49,6 @@ import com.vitorpamplona.amethyst.service.uploads.nip96.Nip96Uploader import com.vitorpamplona.amethyst.ui.actions.mediaServers.ServerType import com.vitorpamplona.amethyst.ui.actions.uploads.SelectedMedia import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip01Core.signers.SignerExceptions import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -146,16 +152,16 @@ class FollowPackMetadataViewModel : ViewModel() { MetadataStripper.strip(galleryUri.uri, galleryUri.mimeType, context.applicationContext) } catch (e: AvifMetadataNotVerifiableException) { onError( - stringRes(context, R.string.metadata_strip_failed_title), - stringRes(context, R.string.avif_metadata_strip_failed, e.message ?: e.javaClass.simpleName), + loadStringRes(Res.string.metadata_strip_failed_title), + loadStringRes(Res.string.avif_metadata_strip_failed, e.message ?: e.javaClass.simpleName), ) onUploading(false) return } if (!result.stripped) { onError( - stringRes(context, R.string.metadata_strip_failed_title), - stringRes(context, R.string.metadata_strip_failed_upload_cancelled), + loadStringRes(Res.string.metadata_strip_failed_title), + loadStringRes(Res.string.metadata_strip_failed_upload_cancelled), ) onUploading(false) return @@ -200,15 +206,15 @@ class FollowPackMetadataViewModel : ViewModel() { onUploaded(result.url) } else { onUploading(false) - onError(stringRes(context, R.string.failed_to_upload_media_no_details), stringRes(context, R.string.server_did_not_provide_a_url_after_uploading)) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), loadStringRes(Res.string.server_did_not_provide_a_url_after_uploading)) } } catch (_: SignerExceptions.ReadOnlyException) { onUploading(false) - onError(stringRes(context, R.string.failed_to_upload_media_no_details), stringRes(context, R.string.login_with_a_private_key_to_be_able_to_upload)) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), loadStringRes(Res.string.login_with_a_private_key_to_be_able_to_upload)) } catch (e: Exception) { if (e is CancellationException) throw e onUploading(false) - onError(stringRes(context, R.string.failed_to_upload_media_no_details), e.message ?: e.javaClass.simpleName) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), e.message ?: e.javaClass.simpleName) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/metadata/PeopleListMetadataScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/metadata/PeopleListMetadataScreen.kt index bd22a19493..d9edeac979 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/metadata/PeopleListMetadataScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/metadata/PeopleListMetadataScreen.kt @@ -42,13 +42,18 @@ import androidx.compose.ui.text.style.TextDirection import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.about_us import com.vitorpamplona.amethyst.commons.resources.follow_set_copy_name_label import com.vitorpamplona.amethyst.commons.resources.follow_set_creation_desc_label +import com.vitorpamplona.amethyst.commons.resources.follow_set_creation_dialog_title import com.vitorpamplona.amethyst.commons.resources.follow_set_creation_name_label +import com.vitorpamplona.amethyst.commons.resources.follow_set_edit_list_metadata +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_sign_events +import com.vitorpamplona.amethyst.commons.resources.people_list_explainer +import com.vitorpamplona.amethyst.commons.resources.people_list_title import com.vitorpamplona.amethyst.commons.resources.picture_url +import com.vitorpamplona.amethyst.commons.resources.read_only_user import com.vitorpamplona.amethyst.ui.actions.uploads.SelectSingleFromGallery import com.vitorpamplona.amethyst.ui.insets.imePaddingSafe import com.vitorpamplona.amethyst.ui.navigation.navs.EmptyNav @@ -136,8 +141,8 @@ private fun PeopleListMetadataScaffold( ) { item { SettingsCategory( - R.string.people_list_title, - R.string.people_list_explainer, + Res.string.people_list_title, + Res.string.people_list_explainer, SettingsCategoryFirstModifier, ) @@ -163,7 +168,7 @@ fun PeopleListMetadataTopBar( ) { if (postViewModel.isNewList) { CreatingTopBar( - titleRes = R.string.follow_set_creation_dialog_title, + titleRes = Res.string.follow_set_creation_dialog_title, isActive = postViewModel::canPost, onCancel = { postViewModel.clear() @@ -175,15 +180,15 @@ fun PeopleListMetadataTopBar( nav.popBack() } catch (e: SignerExceptions.ReadOnlyException) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_sign_events, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_sign_events, ) } }, ) } else { SavingTopBar( - titleRes = R.string.follow_set_edit_list_metadata, + titleRes = Res.string.follow_set_edit_list_metadata, isActive = postViewModel::canPost, onCancel = { postViewModel.clear() @@ -195,8 +200,8 @@ fun PeopleListMetadataTopBar( nav.popBack() } catch (e: SignerExceptions.ReadOnlyException) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_sign_events, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_sign_events, ) } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/metadata/PeopleListMetadataViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/metadata/PeopleListMetadataViewModel.kt index 956c3bb0aa..39ad5d09c5 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/metadata/PeopleListMetadataViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/list/metadata/PeopleListMetadataViewModel.kt @@ -30,7 +30,14 @@ import androidx.compose.ui.text.input.TextFieldValue import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.avif_metadata_strip_failed +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media_no_details +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_upload +import com.vitorpamplona.amethyst.commons.resources.metadata_strip_failed_title +import com.vitorpamplona.amethyst.commons.resources.metadata_strip_failed_upload_cancelled +import com.vitorpamplona.amethyst.commons.resources.server_did_not_provide_a_url_after_uploading +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.model.nip51Lists.peopleList.PeopleList import com.vitorpamplona.amethyst.service.uploads.AvifMetadataNotVerifiableException @@ -42,7 +49,6 @@ import com.vitorpamplona.amethyst.service.uploads.nip96.Nip96Uploader import com.vitorpamplona.amethyst.ui.actions.mediaServers.ServerType import com.vitorpamplona.amethyst.ui.actions.uploads.SelectedMedia import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip01Core.signers.SignerExceptions import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -146,8 +152,8 @@ class PeopleListMetadataViewModel : ViewModel() { val result = MetadataStripper.strip(galleryUri.uri, galleryUri.mimeType, context.applicationContext) if (!result.stripped) { onError( - stringRes(context, R.string.metadata_strip_failed_title), - stringRes(context, R.string.metadata_strip_failed_upload_cancelled), + loadStringRes(Res.string.metadata_strip_failed_title), + loadStringRes(Res.string.metadata_strip_failed_upload_cancelled), ) onUploading(false) return @@ -159,8 +165,8 @@ class PeopleListMetadataViewModel : ViewModel() { } catch (e: AvifMetadataNotVerifiableException) { onUploading(false) onError( - stringRes(context, R.string.metadata_strip_failed_title), - stringRes(context, R.string.avif_metadata_strip_failed, e.message ?: e.javaClass.simpleName), + loadStringRes(Res.string.metadata_strip_failed_title), + loadStringRes(Res.string.avif_metadata_strip_failed, e.message ?: e.javaClass.simpleName), ) return } @@ -200,15 +206,15 @@ class PeopleListMetadataViewModel : ViewModel() { onUploaded(result.url) } else { onUploading(false) - onError(stringRes(context, R.string.failed_to_upload_media_no_details), stringRes(context, R.string.server_did_not_provide_a_url_after_uploading)) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), loadStringRes(Res.string.server_did_not_provide_a_url_after_uploading)) } } catch (_: SignerExceptions.ReadOnlyException) { onUploading(false) - onError(stringRes(context, R.string.failed_to_upload_media_no_details), stringRes(context, R.string.login_with_a_private_key_to_be_able_to_upload)) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), loadStringRes(Res.string.login_with_a_private_key_to_be_able_to_upload)) } catch (e: Exception) { if (e is CancellationException) throw e onUploading(false) - onError(stringRes(context, R.string.failed_to_upload_media_no_details), e.message ?: e.javaClass.simpleName) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), e.message ?: e.javaClass.simpleName) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/memberEdit/FollowListAndPackAndUserView.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/memberEdit/FollowListAndPackAndUserView.kt index d037cfce85..61d9eea177 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/memberEdit/FollowListAndPackAndUserView.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/lists/memberEdit/FollowListAndPackAndUserView.kt @@ -36,9 +36,9 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.discover_follows import com.vitorpamplona.amethyst.commons.resources.discover_follows_explainer import com.vitorpamplona.amethyst.commons.resources.feed_is_empty import com.vitorpamplona.amethyst.commons.resources.follow_sets @@ -150,7 +150,7 @@ fun FollowListAndPackAndUserView( ) { Column(modifier = Modifier.weight(1f)) { Text( - text = stringRes(R.string.discover_follows), + text = stringRes(Res.string.discover_follows), color = MaterialTheme.colorScheme.primary, style = MaterialTheme.typography.titleSmall, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/music/AddToMusicPlaylistSheet.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/music/AddToMusicPlaylistSheet.kt index 46f318fd3c..478fa12e02 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/music/AddToMusicPlaylistSheet.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/music/AddToMusicPlaylistSheet.kt @@ -59,7 +59,6 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res @@ -68,6 +67,7 @@ import com.vitorpamplona.amethyst.commons.resources.add_to_music_playlist_manage import com.vitorpamplona.amethyst.commons.resources.add_to_music_playlist_title import com.vitorpamplona.amethyst.commons.resources.music_playlist_create_action import com.vitorpamplona.amethyst.commons.resources.music_playlist_new_title_placeholder +import com.vitorpamplona.amethyst.commons.resources.music_playlist_track_count_short import com.vitorpamplona.amethyst.commons.resources.music_playlist_untitled import com.vitorpamplona.amethyst.ui.insets.imePaddingSafe import com.vitorpamplona.amethyst.ui.navigation.navs.EmptyNav @@ -244,7 +244,7 @@ private fun PlaylistPickerRow( ) val count = summary.trackCount Text( - text = pluralStringResource(R.plurals.music_playlist_track_count_short, count, count), + text = pluralStringResource(Res.plurals.music_playlist_track_count_short, count, count), style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.grayText, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/music/NewMusicPlaylistFab.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/music/NewMusicPlaylistFab.kt index 3b002a1cf6..ed35b24d37 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/music/NewMusicPlaylistFab.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/music/NewMusicPlaylistFab.kt @@ -25,9 +25,10 @@ import androidx.compose.material3.FloatingActionButton import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.new_music_playlist import com.vitorpamplona.amethyst.ui.navigation.navs.EmptyNav import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route @@ -49,7 +50,7 @@ fun NewMusicPlaylistFab(nav: INav) { ) { Icon( symbol = MaterialSymbols.AutoMirrored.PlaylistAdd, - contentDescription = stringRes(R.string.new_music_playlist), + contentDescription = stringRes(Res.string.new_music_playlist), modifier = Size26Modifier, tint = MaterialTheme.colorScheme.onPrimary, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/music/NewMusicPlaylistScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/music/NewMusicPlaylistScreen.kt index 95ae98d88d..580a8fceff 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/music/NewMusicPlaylistScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/music/NewMusicPlaylistScreen.kt @@ -65,14 +65,17 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.AddressableNote import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cancel +import com.vitorpamplona.amethyst.commons.resources.edit_music_playlist import com.vitorpamplona.amethyst.commons.resources.music_playlist_collaborative import com.vitorpamplona.amethyst.commons.resources.music_playlist_collaborative_hint +import com.vitorpamplona.amethyst.commons.resources.music_playlist_cover_upload_cta +import com.vitorpamplona.amethyst.commons.resources.music_playlist_cover_upload_hint import com.vitorpamplona.amethyst.commons.resources.music_playlist_delete import com.vitorpamplona.amethyst.commons.resources.music_playlist_delete_confirm import com.vitorpamplona.amethyst.commons.resources.music_playlist_description_label @@ -86,7 +89,10 @@ import com.vitorpamplona.amethyst.commons.resources.music_playlist_private import com.vitorpamplona.amethyst.commons.resources.music_playlist_private_hint import com.vitorpamplona.amethyst.commons.resources.music_playlist_remove_track import com.vitorpamplona.amethyst.commons.resources.music_playlist_title_label +import com.vitorpamplona.amethyst.commons.resources.music_playlist_track_count import com.vitorpamplona.amethyst.commons.resources.music_playlist_unknown_track +import com.vitorpamplona.amethyst.commons.resources.music_playlist_uploading_banner +import com.vitorpamplona.amethyst.commons.resources.new_music_playlist import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.observeNoteEvent import com.vitorpamplona.amethyst.ui.actions.StrippingFailureDialog import com.vitorpamplona.amethyst.ui.actions.uploads.GallerySelectSingle @@ -143,7 +149,7 @@ fun NewMusicPlaylistScreen( Scaffold( topBar = { SendingTopBar( - titleRes = if (vm.isEditing) R.string.edit_music_playlist else R.string.new_music_playlist, + titleRes = if (vm.isEditing) Res.string.edit_music_playlist else Res.string.new_music_playlist, onCancel = { nav.popBack() }, isActive = { vm.isValid() && !isBusy }, onPost = { @@ -166,7 +172,7 @@ fun NewMusicPlaylistScreen( .verticalScroll(rememberScrollState()), verticalArrangement = Arrangement.spacedBy(12.dp), ) { - if (isBusy) UploadInProgressBanner(R.string.music_playlist_uploading_banner) + if (isBusy) UploadInProgressBanner(Res.string.music_playlist_uploading_banner) CoverImagePicker( cover = vm.coverMedia.value, @@ -175,8 +181,8 @@ fun NewMusicPlaylistScreen( onDelete = { vm.clearPickedCover() }, accountViewModel = accountViewModel, enabled = !isBusy, - ctaRes = R.string.music_playlist_cover_upload_cta, - hintRes = R.string.music_playlist_cover_upload_hint, + ctaRes = Res.string.music_playlist_cover_upload_cta, + hintRes = Res.string.music_playlist_cover_upload_hint, ) OutlinedTextField( @@ -302,7 +308,7 @@ private fun TrackManagementSection( val count = tracks.size Text( - text = pluralStringResource(R.plurals.music_playlist_track_count, count, count), + text = pluralStringResource(Res.plurals.music_playlist_track_count, count, count), style = MaterialTheme.typography.titleSmall, fontWeight = FontWeight.SemiBold, ) @@ -524,7 +530,7 @@ private fun DeleteMusicPlaylistRow( }, dismissButton = { TextButton(onClick = { confirming = false }) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/music/NewMusicTrackButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/music/NewMusicTrackButton.kt index ef3dcfdb93..edfa98d440 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/music/NewMusicTrackButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/music/NewMusicTrackButton.kt @@ -25,9 +25,10 @@ import androidx.compose.material3.FloatingActionButton import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.new_music_track import com.vitorpamplona.amethyst.ui.navigation.navs.EmptyNav import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route @@ -51,7 +52,7 @@ fun NewMusicTrackButton( ) { Icon( symbol = MaterialSymbols.MusicNote, - contentDescription = stringRes(R.string.new_music_track), + contentDescription = stringRes(Res.string.new_music_track), modifier = Size26Modifier, tint = MaterialTheme.colorScheme.onPrimary, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/music/NewMusicTrackScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/music/NewMusicTrackScreen.kt index b05947877c..aa4ecf112e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/music/NewMusicTrackScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/music/NewMusicTrackScreen.kt @@ -63,20 +63,26 @@ import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.music_track_album_label import com.vitorpamplona.amethyst.commons.resources.music_track_artist_label import com.vitorpamplona.amethyst.commons.resources.music_track_artist_placeholder import com.vitorpamplona.amethyst.commons.resources.music_track_audio_picked +import com.vitorpamplona.amethyst.commons.resources.music_track_audio_upload_cta +import com.vitorpamplona.amethyst.commons.resources.music_track_audio_upload_hint +import com.vitorpamplona.amethyst.commons.resources.music_track_cover_upload_cta +import com.vitorpamplona.amethyst.commons.resources.music_track_cover_upload_hint import com.vitorpamplona.amethyst.commons.resources.music_track_delete import com.vitorpamplona.amethyst.commons.resources.music_track_delete_confirm import com.vitorpamplona.amethyst.commons.resources.music_track_description_label import com.vitorpamplona.amethyst.commons.resources.music_track_duration_label import com.vitorpamplona.amethyst.commons.resources.music_track_title_label import com.vitorpamplona.amethyst.commons.resources.music_track_title_placeholder +import com.vitorpamplona.amethyst.commons.resources.music_track_uploading_banner +import com.vitorpamplona.amethyst.commons.resources.new_music_track import com.vitorpamplona.amethyst.ui.actions.StrippingFailureDialog import com.vitorpamplona.amethyst.ui.actions.uploads.GallerySelectSingle import com.vitorpamplona.amethyst.ui.actions.uploads.SelectedMedia @@ -142,7 +148,7 @@ fun NewMusicTrackScreen( Scaffold( topBar = { SendingTopBar( - titleRes = R.string.new_music_track, + titleRes = Res.string.new_music_track, onCancel = { nav.popBack() }, isActive = { vm.isValid() && !isBusy }, onPost = { @@ -176,7 +182,7 @@ fun NewMusicTrackScreen( // their tiles for the whole operation (so the user doesn't think one phase is // done while the other is still running), and the banner gives clear // top-of-screen feedback that something IS happening. - if (isBusy) UploadInProgressBanner(R.string.music_track_uploading_banner) + if (isBusy) UploadInProgressBanner(Res.string.music_track_uploading_banner) CoverImagePicker( cover = vm.coverMedia.value, @@ -185,8 +191,8 @@ fun NewMusicTrackScreen( onDelete = { vm.clearPickedCover() }, accountViewModel = accountViewModel, enabled = !isBusy, - ctaRes = R.string.music_track_cover_upload_cta, - hintRes = R.string.music_track_cover_upload_hint, + ctaRes = Res.string.music_track_cover_upload_cta, + hintRes = Res.string.music_track_cover_upload_hint, ) AudioFilePicker( @@ -302,15 +308,15 @@ private fun AudioFilePicker( } if (enabled) { TextButton(onClick = { vm.clearPickedAudio() }) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } } } } else { UploadPlaceholder( iconSymbol = MaterialSymbols.MusicNote, - ctaRes = R.string.music_track_audio_upload_cta, - hintRes = R.string.music_track_audio_upload_hint, + ctaRes = Res.string.music_track_audio_upload_cta, + hintRes = Res.string.music_track_audio_upload_hint, onClick = onPick, aspectRatio = null, enabled = enabled, @@ -372,7 +378,7 @@ private fun DeleteMusicTrackRow( }, dismissButton = { TextButton(onClick = { confirming = false }) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/napplets/ConnectedAppDetailScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/napplets/ConnectedAppDetailScreen.kt index 06f8ddfd47..68145066b1 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/napplets/ConnectedAppDetailScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/napplets/ConnectedAppDetailScreen.kt @@ -63,7 +63,6 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.browser.OmniboxInput import com.vitorpamplona.amethyst.commons.connectedApps.nip46.Nip46ClientInfo import com.vitorpamplona.amethyst.commons.connectedApps.nip46.Nip46PermissionAuthorizer @@ -80,6 +79,7 @@ import com.vitorpamplona.amethyst.commons.napplet.NappletIdentity import com.vitorpamplona.amethyst.commons.napplet.permissions.GrantState import com.vitorpamplona.amethyst.commons.napplet.permissions.NappletPermissionLedger import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.napplet_connected_app_capabilities import com.vitorpamplona.amethyst.commons.resources.napplet_connected_app_forget import com.vitorpamplona.amethyst.commons.resources.napplet_connected_app_op_overrides @@ -89,6 +89,9 @@ import com.vitorpamplona.amethyst.commons.resources.napplet_consent_deny_always import com.vitorpamplona.amethyst.commons.resources.napplet_decision_allow import com.vitorpamplona.amethyst.commons.resources.napplet_decision_ask import com.vitorpamplona.amethyst.commons.resources.napplet_decision_deny +import com.vitorpamplona.amethyst.commons.resources.napplet_op_decrypt +import com.vitorpamplona.amethyst.commons.resources.napplet_op_decrypt_from +import com.vitorpamplona.amethyst.commons.resources.napplet_op_encrypt import com.vitorpamplona.amethyst.commons.resources.napplet_op_sign_kind import com.vitorpamplona.amethyst.commons.resources.napplet_permissions_ask_each_time import com.vitorpamplona.amethyst.commons.resources.napplet_policy_full_trust @@ -102,6 +105,8 @@ import com.vitorpamplona.amethyst.commons.resources.nip46_signer_activity_title import com.vitorpamplona.amethyst.commons.resources.nip46_signer_app_relays_inbox import com.vitorpamplona.amethyst.commons.resources.nip46_signer_app_relays_own_hint import com.vitorpamplona.amethyst.commons.resources.nip46_signer_app_relays_title +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_reconnecting +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_remote_app import com.vitorpamplona.amethyst.favorites.BrowserIconRegistry import com.vitorpamplona.amethyst.favorites.rememberManifestIconModel import com.vitorpamplona.amethyst.favorites.rememberWebAppIconModel @@ -186,7 +191,7 @@ fun ConnectedAppDetailScreen( val allActivity by accountViewModel.account.nip46Signer.activityLog.entries .collectAsStateWithLifecycle() val nip46Activity = remember(allActivity, nip46Client) { allActivity.filter { nip46Client != null && it.clientPubKey == nip46Client } } - val nip46Title = nip46Info?.name?.ifBlank { null } ?: stringResource(R.string.nip46_signer_remote_app) + val nip46Title = nip46Info?.name?.ifBlank { null } ?: stringResource(Res.string.nip46_signer_remote_app) Scaffold( topBar = { @@ -382,7 +387,7 @@ private fun Nip46RelaysSection( if (anyOffline) { Nip46ReconnectPill { onReconnect() - Toast.makeText(context, R.string.nip46_signer_reconnecting, Toast.LENGTH_SHORT).show() + Toast.makeText(context, Res.string.nip46_signer_reconnecting, Toast.LENGTH_SHORT).show() } } } @@ -458,7 +463,7 @@ private fun Nip46AppHeader( overflow = TextOverflow.Ellipsis, ) Text( - stringResource(R.string.nip46_signer_remote_app), + stringResource(Res.string.nip46_signer_remote_app), style = MaterialTheme.typography.labelSmall, color = MaterialTheme.colorScheme.onSurfaceVariant, ) @@ -722,7 +727,7 @@ private fun CapabilityPermissionDialog( }, dismissButton = { TextButton(onClick = onDismiss) { - Text(stringResource(R.string.cancel)) + Text(stringResource(Res.string.cancel)) } }, ) @@ -747,9 +752,9 @@ private fun GrantOption( private fun NostrSignerOp.opLabel(): String = when (this) { is NostrSignerOp.SignKind -> stringRes(Res.string.napplet_op_sign_kind, kind) - NostrSignerOp.Encrypt -> stringResource(R.string.napplet_op_encrypt) - NostrSignerOp.Decrypt -> stringResource(R.string.napplet_op_decrypt) - is NostrSignerOp.DecryptFrom -> stringResource(R.string.napplet_op_decrypt_from, counterpartyLabel(counterparty)) + NostrSignerOp.Encrypt -> stringResource(Res.string.napplet_op_encrypt) + NostrSignerOp.Decrypt -> stringResource(Res.string.napplet_op_decrypt) + is NostrSignerOp.DecryptFrom -> stringResource(Res.string.napplet_op_decrypt_from, counterpartyLabel(counterparty)) } @Composable diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/napplets/ConnectedAppsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/napplets/ConnectedAppsScreen.kt index 9586878ed9..1783331eaf 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/napplets/ConnectedAppsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/napplets/ConnectedAppsScreen.kt @@ -54,7 +54,6 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.connectedApps.nip46.Nip46PermissionAuthorizer import com.vitorpamplona.amethyst.commons.connectedApps.signers.AppSignerPolicy import com.vitorpamplona.amethyst.commons.connectedApps.signers.NostrSignerPermissionLedger @@ -66,6 +65,7 @@ import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.napplet.permissions.NappletPermissionLedger import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.napplet_connected_app_empty +import com.vitorpamplona.amethyst.commons.resources.napplet_permissions_title import com.vitorpamplona.amethyst.commons.resources.napplet_policy_full_trust import com.vitorpamplona.amethyst.commons.resources.napplet_policy_paranoid import com.vitorpamplona.amethyst.commons.resources.napplet_policy_reasonable @@ -126,7 +126,7 @@ fun ConnectedAppsScreen( ConnectedAppsFilterAssemblerSubscription(accountViewModel, nappletAuthors) Scaffold( - topBar = { TopBarWithBackButton(stringResource(R.string.napplet_permissions_title), nav) }, + topBar = { TopBarWithBackButton(stringResource(Res.string.napplet_permissions_title), nav) }, ) { padding -> val current = items when { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/NestsFeedLoaded.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/NestsFeedLoaded.kt index 9d7d9cd085..e2aba73c66 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/NestsFeedLoaded.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/NestsFeedLoaded.kt @@ -355,7 +355,7 @@ private fun NestEndedCompactCard( val name = meetingEvent.room()?.ifBlank { null } ?: meetingEvent.dTag() val cover = meetingEvent.image()?.ifBlank { null } val endedAt = baseNote.createdAt() - val endedAgo = endedAt?.let { timeAgoNoDot(it, context) }.orEmpty() + val endedAgo = endedAt?.let { timeAgoNoDot(it) }.orEmpty() LongPressToQuickAction(baseNote, accountViewModel, nav) { showQuickAction -> Row( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/NestsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/NestsScreen.kt index 9dbc1a5715..d28e66fb84 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/NestsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/NestsScreen.kt @@ -32,7 +32,6 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.feeds.FeedContentState import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols @@ -40,8 +39,10 @@ import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.nest_create_fab import com.vitorpamplona.amethyst.commons.resources.nest_no_server_body import com.vitorpamplona.amethyst.commons.resources.nest_no_server_cancel +import com.vitorpamplona.amethyst.commons.resources.nest_no_server_save_failed import com.vitorpamplona.amethyst.commons.resources.nest_no_server_title import com.vitorpamplona.amethyst.commons.resources.nest_no_server_use_default +import com.vitorpamplona.amethyst.commons.resources.nests import com.vitorpamplona.amethyst.ui.feeds.RefresheableBox import com.vitorpamplona.amethyst.ui.feeds.RenderFeedContentState import com.vitorpamplona.amethyst.ui.feeds.SaveableFeedContentState @@ -167,8 +168,8 @@ fun NestsScreen( showCreateSheet = true } catch (_: Throwable) { accountViewModel.toastManager.toast( - R.string.nests, - R.string.nest_no_server_save_failed, + Res.string.nests, + Res.string.nest_no_server_save_failed, ) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/create/CreateNestViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/create/CreateNestViewModel.kt index aeefadd8fb..9e2e2f7f07 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/create/CreateNestViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/create/CreateNestViewModel.kt @@ -23,7 +23,13 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn.nests.create import android.content.Context import androidx.lifecycle.ViewModel import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.avif_metadata_strip_failed +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media_no_details +import com.vitorpamplona.amethyst.commons.resources.metadata_strip_failed_title +import com.vitorpamplona.amethyst.commons.resources.metadata_strip_failed_upload_cancelled +import com.vitorpamplona.amethyst.commons.resources.server_did_not_provide_a_url_after_uploading +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.uploads.AvifMetadataNotVerifiableException import com.vitorpamplona.amethyst.service.uploads.CompressorQuality @@ -35,7 +41,6 @@ import com.vitorpamplona.amethyst.ui.actions.mediaServers.ServerType import com.vitorpamplona.amethyst.ui.actions.uploads.SelectedMedia import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.nests.room.activity.NestActivity -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip53LiveActivities.meetingSpaces.MeetingSpaceEvent import com.vitorpamplona.quartz.nip53LiveActivities.meetingSpaces.endpoint import com.vitorpamplona.quartz.nip53LiveActivities.meetingSpaces.image @@ -158,8 +163,8 @@ class CreateNestViewModel : ViewModel() { !strippingResult.stripped ) { onError( - stringRes(context, R.string.metadata_strip_failed_title), - stringRes(context, R.string.metadata_strip_failed_upload_cancelled), + loadStringRes(Res.string.metadata_strip_failed_title), + loadStringRes(Res.string.metadata_strip_failed_upload_cancelled), ) return null } else { @@ -199,21 +204,21 @@ class CreateNestViewModel : ViewModel() { if (result.url == null) { onError( - stringRes(context, R.string.failed_to_upload_media_no_details), - stringRes(context, R.string.server_did_not_provide_a_url_after_uploading), + loadStringRes(Res.string.failed_to_upload_media_no_details), + loadStringRes(Res.string.server_did_not_provide_a_url_after_uploading), ) } result.url } catch (e: Exception) { if (e is CancellationException) throw e - onError(stringRes(context, R.string.failed_to_upload_media_no_details), e.message ?: e.javaClass.simpleName) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), e.message ?: e.javaClass.simpleName) null } } catch (e: AvifMetadataNotVerifiableException) { onError( - stringRes(context, R.string.metadata_strip_failed_title), - stringRes(context, R.string.avif_metadata_strip_failed, e.message ?: e.javaClass.simpleName), + loadStringRes(Res.string.metadata_strip_failed_title), + loadStringRes(Res.string.avif_metadata_strip_failed, e.message ?: e.javaClass.simpleName), ) null } finally { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/activity/NestActivity.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/activity/NestActivity.kt index f40c7277b7..8c3714f8b6 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/activity/NestActivity.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/activity/NestActivity.kt @@ -36,9 +36,12 @@ import androidx.activity.compose.setContent import androidx.appcompat.app.AppCompatActivity import androidx.compose.runtime.mutableStateOf import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.nest_leave +import com.vitorpamplona.amethyst.commons.resources.nest_mute +import com.vitorpamplona.amethyst.commons.resources.nest_unmute import com.vitorpamplona.amethyst.service.relayClient.authCommand.compose.RelayAuthSubscription import com.vitorpamplona.amethyst.service.relayClient.reqCommand.account.AccountFilterAssemblerSubscription -import com.vitorpamplona.amethyst.ui.StringResSetup import com.vitorpamplona.amethyst.ui.components.toasts.DisplayErrorMessages import com.vitorpamplona.amethyst.ui.navigation.navs.EmptyNav import com.vitorpamplona.amethyst.ui.screen.ManageRelayServices @@ -165,8 +168,6 @@ class NestActivity : AppCompatActivity() { setContent { AmethystTheme { - StringResSetup() - // Pauses relay services when the app pauses ManageRelayServices() ManageWebOkHttp() @@ -306,13 +307,13 @@ class NestActivity : AppCompatActivity() { PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT, ) val muteIconRes = if (isMuted.value) R.drawable.ic_mic_off else R.drawable.ic_mic_on - val muteLabel = getString(if (isMuted.value) R.string.nest_unmute else R.string.nest_mute) + val muteLabel = getString(if (isMuted.value) Res.string.nest_unmute else Res.string.nest_mute) return listOf( RemoteAction(Icon.createWithResource(this, muteIconRes), muteLabel, muteLabel, muteIntent), RemoteAction( Icon.createWithResource(this, R.drawable.ic_call_end), - getString(R.string.nest_leave), - getString(R.string.nest_leave), + getString(Res.string.nest_leave), + getString(Res.string.nest_leave), leaveIntent, ), ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/chat/NestEditFieldRow.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/chat/NestEditFieldRow.kt index 3e5fba076b..b7c26c4d83 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/chat/NestEditFieldRow.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/chat/NestEditFieldRow.kt @@ -35,8 +35,9 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.style.TextDirection import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.nip30CustomEmojis.ui.ShowEmojiSuggestionList +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.reply_here import com.vitorpamplona.amethyst.ui.actions.MentionPreservingInputTransformation import com.vitorpamplona.amethyst.ui.actions.StrippingFailureDialog import com.vitorpamplona.amethyst.ui.actions.UrlUserTagOutputTransformation @@ -139,7 +140,7 @@ fun NestEditFieldRow( modifier = Modifier.fillMaxWidth(), placeholder = { Text( - text = stringRes(R.string.reply_here), + text = stringRes(Res.string.reply_here), color = MaterialTheme.colorScheme.placeholderText, ) }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/chat/NestNewMessageViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/chat/NestNewMessageViewModel.kt index 5176e76344..3bcc76964d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/chat/NestNewMessageViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/chat/NestNewMessageViewModel.kt @@ -32,14 +32,18 @@ import androidx.compose.runtime.setValue import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.AddressableNote import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.nip30CustomEmojis.EmojiPackState import com.vitorpamplona.amethyst.commons.model.nip30CustomEmojis.EmojiSuggestionState +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media_no_details +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_sign_events +import com.vitorpamplona.amethyst.commons.resources.read_only_user import com.vitorpamplona.amethyst.commons.richtext.UrlParser +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.commons.ui.text.currentWord import com.vitorpamplona.amethyst.commons.ui.text.insertUrlAtCursor import com.vitorpamplona.amethyst.commons.ui.text.onUiThread @@ -60,7 +64,6 @@ import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.privateDM.send.IMetaAttachments import com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.utils.ChatFileUploadState import com.vitorpamplona.amethyst.ui.screen.loggedIn.home.UserSuggestionAnchor -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.experimental.nip95.data.FileStorageEvent import com.vitorpamplona.quartz.experimental.nip95.header.FileStorageHeaderEvent import com.vitorpamplona.quartz.nip01Core.core.AddressableEvent @@ -347,13 +350,17 @@ open class NestNewMessageViewModel : onError: (title: String, message: String) -> Unit, context: Context, onceUploaded: suspend () -> Unit, - ) = try { - uploadUnsafe(onError, context, onceUploaded) - } catch (_: SignerExceptions.ReadOnlyException) { - onError( - stringRes(context, R.string.read_only_user), - stringRes(context, R.string.login_with_a_private_key_to_be_able_to_sign_events), - ) + ) { + try { + uploadUnsafe(onError, context, onceUploaded) + } catch (_: SignerExceptions.ReadOnlyException) { + viewModelScope.launch { + onError( + loadStringRes(Res.string.read_only_user), + loadStringRes(Res.string.login_with_a_private_key_to_be_able_to_sign_events), + ) + } + } } fun uploadUnsafe( @@ -405,9 +412,9 @@ open class NestNewMessageViewModel : onceUploaded() draftTag.newVersion() } else { - val errorMessages = results.errors.map { stringRes(context, it.errorResource, *it.params) }.distinct() + val errorMessages = results.errors.map { loadStringRes(it.errorResource, *it.params) }.distinct() - onError(stringRes(context, R.string.failed_to_upload_media_no_details), errorMessages.joinToString(".\n")) + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), errorMessages.joinToString(".\n")) } uploadState.mediaUploadTracker.finishUpload() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/participants/ParticipantHostActionsSheet.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/participants/ParticipantHostActionsSheet.kt index 1614f0e736..996dd7fd66 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/participants/ParticipantHostActionsSheet.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/participants/ParticipantHostActionsSheet.kt @@ -51,10 +51,11 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp import androidx.core.net.toUri import androidx.lifecycle.viewModelScope -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.error_dialog_zap_error +import com.vitorpamplona.amethyst.commons.resources.nest_chat_send_failed_title import com.vitorpamplona.amethyst.commons.resources.nest_confirm_cancel import com.vitorpamplona.amethyst.commons.resources.nest_confirm_force_mute_body import com.vitorpamplona.amethyst.commons.resources.nest_confirm_force_mute_confirm @@ -65,8 +66,14 @@ import com.vitorpamplona.amethyst.commons.resources.nest_confirm_kick_title import com.vitorpamplona.amethyst.commons.resources.nest_demote_listener import com.vitorpamplona.amethyst.commons.resources.nest_force_mute import com.vitorpamplona.amethyst.commons.resources.nest_force_mute_note +import com.vitorpamplona.amethyst.commons.resources.nest_hush_local +import com.vitorpamplona.amethyst.commons.resources.nest_hush_local_restore import com.vitorpamplona.amethyst.commons.resources.nest_kick_action import com.vitorpamplona.amethyst.commons.resources.nest_no_app_to_open_link +import com.vitorpamplona.amethyst.commons.resources.nest_participant_follow +import com.vitorpamplona.amethyst.commons.resources.nest_participant_mute +import com.vitorpamplona.amethyst.commons.resources.nest_participant_unfollow +import com.vitorpamplona.amethyst.commons.resources.nest_participant_unmute import com.vitorpamplona.amethyst.commons.resources.nest_participant_view_profile import com.vitorpamplona.amethyst.commons.resources.nest_participant_zap import com.vitorpamplona.amethyst.commons.resources.nest_participant_zap_split_unsupported @@ -288,7 +295,7 @@ private fun AudienceActions( ActionRow( text = stringRes( - if (isFollowing) R.string.nest_participant_unfollow else R.string.nest_participant_follow, + if (isFollowing) Res.string.nest_participant_unfollow else Res.string.nest_participant_follow, ), ) { if (isFollowing) { @@ -302,7 +309,7 @@ private fun AudienceActions( ActionRow( text = stringRes( - if (isHidden) R.string.nest_participant_unmute else R.string.nest_participant_mute, + if (isHidden) Res.string.nest_participant_unmute else Res.string.nest_participant_mute, ), ) { if (isHidden) { @@ -324,7 +331,7 @@ private fun AudienceActions( ActionRow( text = stringRes( - if (isHushedLocally) R.string.nest_hush_local_restore else R.string.nest_hush_local, + if (isHushedLocally) Res.string.nest_hush_local_restore else Res.string.nest_hush_local, ), ) { nestViewModel.setLocalHushed(target, !isHushedLocally) @@ -437,7 +444,7 @@ private fun ParticipantZapDialog( onClose = onClose, onError = { _, message, user -> accountViewModel.toastManager.toast( - R.string.error_dialog_zap_error, + Res.string.error_dialog_zap_error, UserBasedErrorMessage(message, user), ) }, @@ -447,7 +454,7 @@ private fun ParticipantZapDialog( val payable = payables.first() payViaIntent(payable.invoice, context, { }) { error -> accountViewModel.toastManager.toast( - R.string.error_dialog_zap_error, + Res.string.error_dialog_zap_error, UserBasedErrorMessage(error, payable.info.user), ) } @@ -457,7 +464,7 @@ private fun ParticipantZapDialog( // we route the user back to the profile screen instead // of half-implementing the split flow here. accountViewModel.toastManager.toast( - R.string.error_dialog_zap_error, + Res.string.error_dialog_zap_error, UserBasedErrorMessage(zapSplitUnsupported, null), ) } @@ -572,7 +579,7 @@ private fun openProfileInMainActivity( }.isSuccess if (!launched) { accountViewModel.toastManager.toast( - R.string.nest_chat_send_failed_title, + Res.string.nest_chat_send_failed_title, noAppMessage, user = null, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/screen/NestActionBar.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/screen/NestActionBar.kt index 487c1a51d4..210211b4b7 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/screen/NestActionBar.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/screen/NestActionBar.kt @@ -64,11 +64,11 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp import androidx.core.content.ContextCompat -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.AddressableNote import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.error_dialog_zap_error import com.vitorpamplona.amethyst.commons.resources.nest_audio_failed import com.vitorpamplona.amethyst.commons.resources.nest_broadcast_connecting import com.vitorpamplona.amethyst.commons.resources.nest_broadcast_failed @@ -76,12 +76,18 @@ import com.vitorpamplona.amethyst.commons.resources.nest_connect import com.vitorpamplona.amethyst.commons.resources.nest_connecting_handshake import com.vitorpamplona.amethyst.commons.resources.nest_connecting_resolving import com.vitorpamplona.amethyst.commons.resources.nest_connecting_transport +import com.vitorpamplona.amethyst.commons.resources.nest_leave import com.vitorpamplona.amethyst.commons.resources.nest_leave_stage +import com.vitorpamplona.amethyst.commons.resources.nest_lower_hand +import com.vitorpamplona.amethyst.commons.resources.nest_mic_mute +import com.vitorpamplona.amethyst.commons.resources.nest_mic_unmute import com.vitorpamplona.amethyst.commons.resources.nest_mute_failed import com.vitorpamplona.amethyst.commons.resources.nest_open_settings +import com.vitorpamplona.amethyst.commons.resources.nest_raise_hand import com.vitorpamplona.amethyst.commons.resources.nest_reactions_button import com.vitorpamplona.amethyst.commons.resources.nest_reconnecting import com.vitorpamplona.amethyst.commons.resources.nest_talk +import com.vitorpamplona.amethyst.commons.resources.zap_description import com.vitorpamplona.amethyst.commons.viewmodels.BroadcastUiState import com.vitorpamplona.amethyst.commons.viewmodels.ConnectionUiState import com.vitorpamplona.amethyst.commons.viewmodels.NestUiState @@ -491,7 +497,7 @@ private fun NestZapButton( onError = { _, message, user -> scope.launch { zappingProgress = 0f - accountViewModel.toastManager.toast(R.string.error_dialog_zap_error, message, user) + accountViewModel.toastManager.toast(Res.string.error_dialog_zap_error, message, user) } }, onPayViaIntent = { @@ -505,7 +511,7 @@ private fun NestZapButton( payViaIntent(payable.invoice, context, { }) { error -> zappingProgress = 0f accountViewModel.toastManager.toast( - R.string.error_dialog_zap_error, + Res.string.error_dialog_zap_error, UserBasedErrorMessage(error, payable.info.user), ) } @@ -529,7 +535,7 @@ private fun NestZapButton( } else { Icon( symbol = MaterialSymbols.Bolt, - contentDescription = stringRes(R.string.zap_description), + contentDescription = stringRes(Res.string.zap_description), ) } } @@ -553,7 +559,7 @@ private fun NestZapButton( onError = { _, message, user -> scope.launch { zappingProgress = 0f - accountViewModel.toastManager.toast(R.string.error_dialog_zap_error, message, user) + accountViewModel.toastManager.toast(Res.string.error_dialog_zap_error, message, user) } }, onProgress = { scope.launch(Dispatchers.Main) { zappingProgress = it } }, @@ -568,7 +574,7 @@ private fun NestZapButton( payViaIntent(payable.invoice, context, { }) { error -> zappingProgress = 0f accountViewModel.toastManager.toast( - R.string.error_dialog_zap_error, + Res.string.error_dialog_zap_error, UserBasedErrorMessage(error, payable.info.user), ) } @@ -592,7 +598,7 @@ private fun NestZapButton( onError = { _, message, user -> scope.launch { zappingProgress = 0f - accountViewModel.toastManager.toast(R.string.error_dialog_zap_error, message, user) + accountViewModel.toastManager.toast(Res.string.error_dialog_zap_error, message, user) } }, onProgress = { scope.launch(Dispatchers.Main) { zappingProgress = it } }, @@ -607,7 +613,7 @@ private fun NestZapButton( payViaIntent(payable.invoice, context, { }) { error -> zappingProgress = 0f accountViewModel.toastManager.toast( - R.string.error_dialog_zap_error, + Res.string.error_dialog_zap_error, UserBasedErrorMessage(error, payable.info.user), ) } @@ -692,7 +698,7 @@ private fun MicMuteToggle( ) { Icon( symbol = if (isMuted) MaterialSymbols.MicOff else MaterialSymbols.Mic, - contentDescription = stringRes(if (isMuted) R.string.nest_mic_unmute else R.string.nest_mic_mute), + contentDescription = stringRes(if (isMuted) Res.string.nest_mic_unmute else Res.string.nest_mic_mute), ) } } @@ -708,7 +714,7 @@ private fun HandRaiseToggle( ) { Icon( symbol = MaterialSymbols.PanTool, - contentDescription = stringRes(if (handRaised) R.string.nest_lower_hand else R.string.nest_raise_hand), + contentDescription = stringRes(if (handRaised) Res.string.nest_lower_hand else Res.string.nest_raise_hand), ) } } @@ -728,7 +734,7 @@ private fun LeaveRoomButton(onClick: () -> Unit) { tint = MaterialTheme.colorScheme.error, ) Spacer(Modifier.width(6.dp)) - Text(stringRes(R.string.nest_leave)) + Text(stringRes(Res.string.nest_leave)) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/screen/NestFullScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/screen/NestFullScreen.kt index d6548488e3..177ced46bf 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/screen/NestFullScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/screen/NestFullScreen.kt @@ -58,13 +58,13 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.nest_edit_title import com.vitorpamplona.amethyst.commons.resources.nest_leave_host_body import com.vitorpamplona.amethyst.commons.resources.nest_leave_host_close +import com.vitorpamplona.amethyst.commons.resources.nest_leave_host_close_failed import com.vitorpamplona.amethyst.commons.resources.nest_leave_host_just_leave import com.vitorpamplona.amethyst.commons.resources.nest_leave_host_title import com.vitorpamplona.amethyst.commons.resources.nest_minimize_description @@ -73,6 +73,7 @@ import com.vitorpamplona.amethyst.commons.resources.nest_share_action import com.vitorpamplona.amethyst.commons.resources.nest_tab_audience import com.vitorpamplona.amethyst.commons.resources.nest_tab_chat import com.vitorpamplona.amethyst.commons.resources.nest_tab_hands +import com.vitorpamplona.amethyst.commons.resources.nests import com.vitorpamplona.amethyst.commons.viewmodels.NestUiState import com.vitorpamplona.amethyst.commons.viewmodels.NestViewModel import com.vitorpamplona.amethyst.commons.viewmodels.ParticipantGrid @@ -386,8 +387,8 @@ internal fun NestFullScreen( val ok = closeMeetingSpace(accountViewModel, event) if (!ok) { accountViewModel.toastManager.toast( - R.string.nests, - R.string.nest_leave_host_close_failed, + Res.string.nests, + Res.string.nest_leave_host_close_failed, ) } // Tear down the speaker session + listener diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/screen/NestPipScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/screen/NestPipScreen.kt index ca77ab8335..a4924a6336 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/screen/NestPipScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/screen/NestPipScreen.kt @@ -46,11 +46,13 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.nest_audio_dropped +import com.vitorpamplona.amethyst.commons.resources.nest_lower_hand +import com.vitorpamplona.amethyst.commons.resources.nest_mic_mute +import com.vitorpamplona.amethyst.commons.resources.nest_mic_unmute import com.vitorpamplona.amethyst.commons.resources.nest_reconnecting import com.vitorpamplona.amethyst.commons.viewmodels.BroadcastUiState import com.vitorpamplona.amethyst.commons.viewmodels.ConnectionUiState @@ -254,7 +256,7 @@ private fun PipSelfStatus( Icon( symbol = if (isMuted) MaterialSymbols.MicOff else MaterialSymbols.Mic, contentDescription = - stringRes(if (isMuted) R.string.nest_mic_mute else R.string.nest_mic_unmute), + stringRes(if (isMuted) Res.string.nest_mic_mute else Res.string.nest_mic_unmute), tint = if (isMuted) MaterialTheme.colorScheme.error else PIP_SPEAKING_COLOR, modifier = Modifier.size(STATUS_ICON_SIZE), ) @@ -262,7 +264,7 @@ private fun PipSelfStatus( if (handRaised) { Icon( symbol = MaterialSymbols.PanTool, - contentDescription = stringRes(R.string.nest_lower_hand), + contentDescription = stringRes(Res.string.nest_lower_hand), tint = MaterialTheme.colorScheme.primary, modifier = Modifier.size(STATUS_ICON_SIZE), ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/stage/ParticipantsGrid.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/stage/ParticipantsGrid.kt index 8e0d0d96eb..0237e6fdb8 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/stage/ParticipantsGrid.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/nests/room/stage/ParticipantsGrid.kt @@ -65,13 +65,14 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.IntOffset import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.nest_audience_empty +import com.vitorpamplona.amethyst.commons.resources.nest_listener_count import com.vitorpamplona.amethyst.commons.resources.nest_live_chip +import com.vitorpamplona.amethyst.commons.resources.nest_raise_hand import com.vitorpamplona.amethyst.commons.resources.nest_role_host import com.vitorpamplona.amethyst.commons.resources.nest_role_moderator import com.vitorpamplona.amethyst.commons.resources.nest_stage @@ -209,7 +210,7 @@ internal fun StageGrid( Text( text = pluralStringResource( - R.plurals.nest_listener_count, + Res.plurals.nest_listener_count, listenerCount, listenerCount, ), @@ -687,7 +688,7 @@ private fun HandRaiseBadge(modifier: Modifier = Modifier) { ) { Icon( symbol = MaterialSymbols.PanTool, - contentDescription = stringRes(R.string.nest_raise_hand), + contentDescription = stringRes(Res.string.nest_raise_hand), tint = MaterialTheme.colorScheme.onTertiary, modifier = Modifier.size(MAX_BADGE_SIZE - 4.dp), ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/AddInboxRelayListDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/AddInboxRelayListDialog.kt index 1efe71da55..3f4ddab48f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/AddInboxRelayListDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/AddInboxRelayListDialog.kt @@ -36,10 +36,10 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.inbox_relays_not_found_editing import com.vitorpamplona.amethyst.commons.resources.inbox_relays_not_found_examples +import com.vitorpamplona.amethyst.commons.resources.inbox_relays_title import com.vitorpamplona.amethyst.ui.components.SetDialogToEdgeToEdge import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.topbars.SavingTopBar @@ -73,7 +73,7 @@ fun AddInboxRelayListDialog( Scaffold( topBar = { SavingTopBar( - titleRes = R.string.inbox_relays_title, + titleRes = Res.string.inbox_relays_title, onCancel = { postViewModel.clear() onClose() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/NotificationSidePanel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/NotificationSidePanel.kt index 737c9439c9..998730c66e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/NotificationSidePanel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/NotificationSidePanel.kt @@ -43,9 +43,10 @@ import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.route_notifications import com.vitorpamplona.amethyst.ui.feeds.ScrollStateKeys import com.vitorpamplona.amethyst.ui.layouts.NotificationPanelWidth import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -122,7 +123,7 @@ fun NotificationSidePanel( ) Spacer(modifier = StdHorzSpacer) Text( - text = stringRes(R.string.route_notifications), + text = stringRes(Res.string.route_notifications), style = MaterialTheme.typography.titleMedium, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/NotificationTopBar.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/NotificationTopBar.kt index 97b59b3009..d5b1fffb03 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/NotificationTopBar.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/NotificationTopBar.kt @@ -25,9 +25,9 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.topNavFeeds.TopFilter import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.route_notifications import com.vitorpamplona.amethyst.commons.resources.select_list_to_filter import com.vitorpamplona.amethyst.commons.search.SearchQuery import com.vitorpamplona.amethyst.commons.search.SearchSeed @@ -67,7 +67,7 @@ fun NotificationTopBar( onChange = accountViewModel.account.settings::changeDefaultNotificationFollowList, ) } else { - Text(text = stringRes(R.string.route_notifications)) + Text(text = stringRes(Res.string.route_notifications)) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/donations/ZapTheDevsCard.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/donations/ZapTheDevsCard.kt index 59873759a3..b9f0274f0d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/donations/ZapTheDevsCard.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/donations/ZapTheDevsCard.kt @@ -52,13 +52,13 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.vitorpamplona.amethyst.BuildConfig -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.brought_to_you_by +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.this_version_brought_to_you_by import com.vitorpamplona.amethyst.commons.resources.version_name import com.vitorpamplona.amethyst.commons.resources.zap_the_devs_description @@ -193,7 +193,7 @@ fun ZapTheDevsCard( ) { Icon( symbol = MaterialSymbols.Close, - contentDescription = stringRes(id = R.string.cancel), + contentDescription = stringRes(id = Res.string.cancel), tint = Color.White, modifier = Modifier.size(20.dp), ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/publicMessages/NewPublicMessageScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/publicMessages/NewPublicMessageScreen.kt index ea689ae165..e2a07e059c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/publicMessages/NewPublicMessageScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/publicMessages/NewPublicMessageScreen.kt @@ -53,11 +53,11 @@ import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.nip30CustomEmojis.ui.ShowEmojiSuggestionList import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.messages_new_message_to import com.vitorpamplona.amethyst.commons.resources.messages_new_message_to_caption +import com.vitorpamplona.amethyst.commons.resources.public_message import com.vitorpamplona.amethyst.commons.resources.zapraiser import com.vitorpamplona.amethyst.commons.ui.text.onUiThread import com.vitorpamplona.amethyst.ui.actions.MentionPreservingInputTransformation @@ -152,7 +152,7 @@ fun NewPublicMessageScreen( Scaffold( topBar = { PostingTopBar( - titleRes = R.string.public_message, + titleRes = Res.string.public_message, isActive = postViewModel::canPost, onCancel = { // uses the accountViewModel scope to avoid cancelling this diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/publicMessages/NewPublicMessageViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/publicMessages/NewPublicMessageViewModel.kt index d905efd48a..0e870ad711 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/publicMessages/NewPublicMessageViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/publicMessages/NewPublicMessageViewModel.kt @@ -32,13 +32,17 @@ import androidx.compose.runtime.setValue import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.AddressableNote import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.nip30CustomEmojis.EmojiPackState import com.vitorpamplona.amethyst.commons.model.nip30CustomEmojis.EmojiSuggestionState +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.failed_to_upload_media_no_details +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_sign_events +import com.vitorpamplona.amethyst.commons.resources.read_only_user +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.commons.ui.text.currentWord import com.vitorpamplona.amethyst.commons.ui.text.insertUrlAtCursor import com.vitorpamplona.amethyst.commons.ui.text.onUiThread @@ -67,7 +71,6 @@ import com.vitorpamplona.amethyst.ui.note.creators.zapsplits.toZapSplitSetup import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.privateDM.send.IMetaAttachments import com.vitorpamplona.amethyst.ui.screen.loggedIn.home.UserSuggestionAnchor -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.experimental.nip95.data.FileStorageEvent import com.vitorpamplona.quartz.experimental.nip95.header.FileStorageHeaderEvent import com.vitorpamplona.quartz.nip01Core.core.AddressableEvent @@ -428,13 +431,17 @@ class NewPublicMessageViewModel : onError: (title: String, message: String) -> Unit, context: Context, stripMetadata: Boolean = true, - ) = try { - uploadUnsafe(alt, contentWarningReason, mediaQuality, server, onError, context, stripMetadata) - } catch (e: SignerExceptions.ReadOnlyException) { - onError( - stringRes(context, R.string.read_only_user), - stringRes(context, R.string.login_with_a_private_key_to_be_able_to_sign_events), - ) + ) { + try { + uploadUnsafe(alt, contentWarningReason, mediaQuality, server, onError, context, stripMetadata) + } catch (e: SignerExceptions.ReadOnlyException) { + viewModelScope.launch { + onError( + loadStringRes(Res.string.read_only_user), + loadStringRes(Res.string.login_with_a_private_key_to_be_able_to_sign_events), + ) + } + } } fun uploadUnsafe( @@ -508,8 +515,8 @@ class NewPublicMessageViewModel : multiOrchestrator = null } else { - val errorMessages = results.errors.map { stringRes(context, it.errorResource, *it.params) }.distinct() - onError(stringRes(context, R.string.failed_to_upload_media_no_details), errorMessages.joinToString(".\n")) + val errorMessages = results.errors.map { loadStringRes(it.errorResource, *it.params) }.distinct() + onError(loadStringRes(Res.string.failed_to_upload_media_no_details), errorMessages.joinToString(".\n")) } mediaUploadTracker.finishUpload() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/PodcastEpisodeListItem.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/PodcastEpisodeListItem.kt index c99131533b..601c60dd58 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/PodcastEpisodeListItem.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/PodcastEpisodeListItem.kt @@ -78,7 +78,7 @@ fun PodcastEpisodeListItem( val episodeNumber = remember(noteEvent) { episode.episodeNumber() } val context = LocalContext.current - val dateStr = remember(noteEvent) { timeAgo(noteEvent.createdAt, context, prefix = "") } + val dateStr = remember(noteEvent) { timeAgo(noteEvent.createdAt, prefix = "") } val seasonEpisodeLabel = when { season != null && episodeNumber != null -> stringRes(Res.string.podcast_season_episode, season, episodeNumber) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/PodcastHeader.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/PodcastHeader.kt index 73c694907f..ee0335dd90 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/PodcastHeader.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/PodcastHeader.kt @@ -38,10 +38,11 @@ import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.EmptyTagList import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.toImmutableListOfLists +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.podcast_episode_count import com.vitorpamplona.amethyst.ui.components.TranslatableRichTextViewer import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.note.ReactionsRow @@ -165,7 +166,7 @@ fun PodcastHeader( HorizontalDivider(thickness = DividerThickness) Text( - text = pluralStringResource(R.plurals.podcast_episode_count, count, count), + text = pluralStringResource(Res.plurals.podcast_episode_count, count, count), style = MaterialTheme.typography.titleMedium, fontWeight = FontWeight.Bold, modifier = diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/PodcastScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/PodcastScreen.kt index aa64532d26..6ac7d1e2dd 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/PodcastScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/PodcastScreen.kt @@ -42,13 +42,13 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.feeds.FeedState import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.podcast_no_episodes +import com.vitorpamplona.amethyst.commons.resources.route_podcasts import com.vitorpamplona.amethyst.commons.ui.layouts.rememberFeedContentPadding import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.observeNoteEvent import com.vitorpamplona.amethyst.ui.feeds.FeedError @@ -130,7 +130,7 @@ fun PodcastScreen( TopBarExtensibleWithBackButton( title = { Text( - text = show?.showTitle() ?: stringRes(R.string.route_podcasts), + text = show?.showTitle() ?: stringRes(Res.string.route_podcasts), maxLines = 1, overflow = TextOverflow.Ellipsis, modifier = Modifier.weight(1f), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/PodcastTrailerListItem.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/PodcastTrailerListItem.kt index e1c04284bc..4c920a0c52 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/PodcastTrailerListItem.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/PodcastTrailerListItem.kt @@ -75,7 +75,7 @@ fun PodcastTrailerListItem( } val context = LocalContext.current - val dateStr = remember(noteEvent) { timeAgo(noteEvent.createdAt, context, prefix = "") } + val dateStr = remember(noteEvent) { timeAgo(noteEvent.createdAt, prefix = "") } Column( modifier = diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/authoring/EditPodcastShowScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/authoring/EditPodcastShowScreen.kt index 5bbb802d29..76d8c8d867 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/authoring/EditPodcastShowScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/authoring/EditPodcastShowScreen.kt @@ -49,15 +49,30 @@ import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.podcast_edit_show +import com.vitorpamplona.amethyst.commons.resources.podcast_publishing_banner +import com.vitorpamplona.amethyst.commons.resources.podcast_show_author_label +import com.vitorpamplona.amethyst.commons.resources.podcast_show_categories_label +import com.vitorpamplona.amethyst.commons.resources.podcast_show_categories_placeholder import com.vitorpamplona.amethyst.commons.resources.podcast_show_complete +import com.vitorpamplona.amethyst.commons.resources.podcast_show_copyright_label +import com.vitorpamplona.amethyst.commons.resources.podcast_show_cover_cta +import com.vitorpamplona.amethyst.commons.resources.podcast_show_cover_hint import com.vitorpamplona.amethyst.commons.resources.podcast_show_description_label +import com.vitorpamplona.amethyst.commons.resources.podcast_show_email_label import com.vitorpamplona.amethyst.commons.resources.podcast_show_explicit +import com.vitorpamplona.amethyst.commons.resources.podcast_show_funding_label +import com.vitorpamplona.amethyst.commons.resources.podcast_show_funding_placeholder +import com.vitorpamplona.amethyst.commons.resources.podcast_show_language_label +import com.vitorpamplona.amethyst.commons.resources.podcast_show_language_placeholder import com.vitorpamplona.amethyst.commons.resources.podcast_show_locked +import com.vitorpamplona.amethyst.commons.resources.podcast_show_title_label +import com.vitorpamplona.amethyst.commons.resources.podcast_show_title_placeholder import com.vitorpamplona.amethyst.commons.resources.podcast_show_type_episodic import com.vitorpamplona.amethyst.commons.resources.podcast_show_type_label import com.vitorpamplona.amethyst.commons.resources.podcast_show_type_serial +import com.vitorpamplona.amethyst.commons.resources.podcast_show_website_label import com.vitorpamplona.amethyst.ui.actions.StrippingFailureDialog import com.vitorpamplona.amethyst.ui.actions.uploads.GallerySelectSingle import com.vitorpamplona.amethyst.ui.insets.imePaddingSafe @@ -68,6 +83,7 @@ import com.vitorpamplona.amethyst.ui.screen.loggedIn.music.CoverImagePicker import com.vitorpamplona.amethyst.ui.screen.loggedIn.music.UploadInProgressBanner import com.vitorpamplona.amethyst.ui.stringRes import kotlinx.collections.immutable.persistentListOf +import org.jetbrains.compose.resources.StringResource /** * Editor for the creator's Podcasting-2.0 show metadata (`kind:30078`, `d="podcast-metadata"`). @@ -103,7 +119,7 @@ fun EditPodcastShowScreen( Scaffold( topBar = { SendingTopBar( - titleRes = R.string.podcast_edit_show, + titleRes = Res.string.podcast_edit_show, onCancel = { nav.popBack() }, isActive = { vm.isValid() && !isBusy }, onPost = { @@ -123,7 +139,7 @@ fun EditPodcastShowScreen( .verticalScroll(rememberScrollState()), verticalArrangement = Arrangement.spacedBy(12.dp), ) { - if (isBusy) UploadInProgressBanner(R.string.podcast_publishing_banner) + if (isBusy) UploadInProgressBanner(Res.string.podcast_publishing_banner) CoverImagePicker( cover = vm.coverMedia.value, @@ -132,11 +148,11 @@ fun EditPodcastShowScreen( onDelete = { vm.clearPickedCover() }, accountViewModel = accountViewModel, enabled = !isBusy, - ctaRes = R.string.podcast_show_cover_cta, - hintRes = R.string.podcast_show_cover_hint, + ctaRes = Res.string.podcast_show_cover_cta, + hintRes = Res.string.podcast_show_cover_hint, ) - Field(vm.title, R.string.podcast_show_title_label, R.string.podcast_show_title_placeholder, isError = vm.title.value.isBlank()) + Field(vm.title, Res.string.podcast_show_title_label, Res.string.podcast_show_title_placeholder, isError = vm.title.value.isBlank()) OutlinedTextField( value = vm.description.value, @@ -147,13 +163,13 @@ fun EditPodcastShowScreen( keyboardOptions = KeyboardOptions(capitalization = KeyboardCapitalization.Sentences), ) - Field(vm.author, R.string.podcast_show_author_label, null, capitalization = KeyboardCapitalization.Words) - Field(vm.email, R.string.podcast_show_email_label, null, keyboardType = KeyboardType.Email) - Field(vm.website, R.string.podcast_show_website_label, null, keyboardType = KeyboardType.Uri) - Field(vm.categories, R.string.podcast_show_categories_label, R.string.podcast_show_categories_placeholder) - Field(vm.funding, R.string.podcast_show_funding_label, R.string.podcast_show_funding_placeholder, keyboardType = KeyboardType.Uri) - Field(vm.language, R.string.podcast_show_language_label, R.string.podcast_show_language_placeholder) - Field(vm.copyright, R.string.podcast_show_copyright_label, null) + Field(vm.author, Res.string.podcast_show_author_label, null, capitalization = KeyboardCapitalization.Words) + Field(vm.email, Res.string.podcast_show_email_label, null, keyboardType = KeyboardType.Email) + Field(vm.website, Res.string.podcast_show_website_label, null, keyboardType = KeyboardType.Uri) + Field(vm.categories, Res.string.podcast_show_categories_label, Res.string.podcast_show_categories_placeholder) + Field(vm.funding, Res.string.podcast_show_funding_label, Res.string.podcast_show_funding_placeholder, keyboardType = KeyboardType.Uri) + Field(vm.language, Res.string.podcast_show_language_label, Res.string.podcast_show_language_placeholder) + Field(vm.copyright, Res.string.podcast_show_copyright_label, null) // Episodic vs serial. Text( @@ -186,7 +202,7 @@ fun EditPodcastShowScreen( @Composable private fun Field( state: androidx.compose.runtime.MutableState, - labelRes: Int, + labelRes: StringResource, placeholderRes: Int?, isError: Boolean = false, capitalization: KeyboardCapitalization = KeyboardCapitalization.Sentences, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/authoring/NewPodcastEpisodeScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/authoring/NewPodcastEpisodeScreen.kt index 69bd85b214..fd95f615d4 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/authoring/NewPodcastEpisodeScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/authoring/NewPodcastEpisodeScreen.kt @@ -61,13 +61,19 @@ import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cancel +import com.vitorpamplona.amethyst.commons.resources.podcast_cover_upload_cta +import com.vitorpamplona.amethyst.commons.resources.podcast_cover_upload_hint +import com.vitorpamplona.amethyst.commons.resources.podcast_edit_episode import com.vitorpamplona.amethyst.commons.resources.podcast_episode_audio_picked +import com.vitorpamplona.amethyst.commons.resources.podcast_episode_audio_upload_cta +import com.vitorpamplona.amethyst.commons.resources.podcast_episode_audio_upload_hint import com.vitorpamplona.amethyst.commons.resources.podcast_episode_audio_url_label import com.vitorpamplona.amethyst.commons.resources.podcast_episode_audio_url_placeholder +import com.vitorpamplona.amethyst.commons.resources.podcast_episode_chapters_label import com.vitorpamplona.amethyst.commons.resources.podcast_episode_delete import com.vitorpamplona.amethyst.commons.resources.podcast_episode_delete_confirm import com.vitorpamplona.amethyst.commons.resources.podcast_episode_duration_label @@ -79,6 +85,10 @@ import com.vitorpamplona.amethyst.commons.resources.podcast_episode_title_label import com.vitorpamplona.amethyst.commons.resources.podcast_episode_title_placeholder import com.vitorpamplona.amethyst.commons.resources.podcast_episode_topics_label import com.vitorpamplona.amethyst.commons.resources.podcast_episode_topics_placeholder +import com.vitorpamplona.amethyst.commons.resources.podcast_episode_transcript_label +import com.vitorpamplona.amethyst.commons.resources.podcast_episode_video_label +import com.vitorpamplona.amethyst.commons.resources.podcast_new_episode +import com.vitorpamplona.amethyst.commons.resources.podcast_publishing_banner import com.vitorpamplona.amethyst.ui.actions.StrippingFailureDialog import com.vitorpamplona.amethyst.ui.actions.uploads.GallerySelectSingle import com.vitorpamplona.amethyst.ui.actions.uploads.SelectedMedia @@ -91,6 +101,7 @@ import com.vitorpamplona.amethyst.ui.screen.loggedIn.music.UploadInProgressBanne import com.vitorpamplona.amethyst.ui.screen.loggedIn.music.UploadPlaceholder import com.vitorpamplona.amethyst.ui.stringRes import kotlinx.collections.immutable.persistentListOf +import org.jetbrains.compose.resources.StringResource /** * Composer for a Podcasting-2.0 episode. Cover art + audio file upload at the top (or paste URLs), @@ -136,7 +147,7 @@ fun NewPodcastEpisodeScreen( Scaffold( topBar = { SendingTopBar( - titleRes = if (vm.isEditing) R.string.podcast_edit_episode else R.string.podcast_new_episode, + titleRes = if (vm.isEditing) Res.string.podcast_edit_episode else Res.string.podcast_new_episode, onCancel = { nav.popBack() }, isActive = { vm.isValid() && !isBusy }, onPost = { @@ -156,7 +167,7 @@ fun NewPodcastEpisodeScreen( .verticalScroll(rememberScrollState()), verticalArrangement = Arrangement.spacedBy(12.dp), ) { - if (isBusy) UploadInProgressBanner(R.string.podcast_publishing_banner) + if (isBusy) UploadInProgressBanner(Res.string.podcast_publishing_banner) CoverImagePicker( cover = vm.coverMedia.value, @@ -165,8 +176,8 @@ fun NewPodcastEpisodeScreen( onDelete = { vm.clearPickedCover() }, accountViewModel = accountViewModel, enabled = !isBusy, - ctaRes = R.string.podcast_cover_upload_cta, - hintRes = R.string.podcast_cover_upload_hint, + ctaRes = Res.string.podcast_cover_upload_cta, + hintRes = Res.string.podcast_cover_upload_hint, ) AudioFilePickerRow( @@ -243,9 +254,9 @@ fun NewPodcastEpisodeScreen( ) } - UrlField(vm.videoUrl, R.string.podcast_episode_video_label) - UrlField(vm.transcriptUrl, R.string.podcast_episode_transcript_label) - UrlField(vm.chaptersUrl, R.string.podcast_episode_chapters_label) + UrlField(vm.videoUrl, Res.string.podcast_episode_video_label) + UrlField(vm.transcriptUrl, Res.string.podcast_episode_transcript_label) + UrlField(vm.chaptersUrl, Res.string.podcast_episode_chapters_label) OutlinedTextField( value = vm.topics.value, @@ -281,7 +292,7 @@ fun NewPodcastEpisodeScreen( @Composable private fun UrlField( state: androidx.compose.runtime.MutableState, - labelRes: Int, + labelRes: StringResource, ) { OutlinedTextField( value = state.value, @@ -325,14 +336,14 @@ private fun AudioFilePickerRow( ) } if (enabled) { - TextButton(onClick = onClear) { Text(stringRes(R.string.cancel)) } + TextButton(onClick = onClear) { Text(stringRes(Res.string.cancel)) } } } } else { UploadPlaceholder( iconSymbol = MaterialSymbols.MusicNote, - ctaRes = R.string.podcast_episode_audio_upload_cta, - hintRes = R.string.podcast_episode_audio_upload_hint, + ctaRes = Res.string.podcast_episode_audio_upload_cta, + hintRes = Res.string.podcast_episode_audio_upload_hint, onClick = onPick, aspectRatio = null, enabled = enabled, @@ -382,7 +393,7 @@ private fun DeleteEpisodeRow( } }, dismissButton = { - TextButton(onClick = { confirming = false }) { Text(stringRes(R.string.cancel)) } + TextButton(onClick = { confirming = false }) { Text(stringRes(Res.string.cancel)) } }, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/authoring/NewPodcastTrailerScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/authoring/NewPodcastTrailerScreen.kt index 07e21a6be4..9684e04887 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/authoring/NewPodcastTrailerScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/authoring/NewPodcastTrailerScreen.kt @@ -56,15 +56,19 @@ import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.podcast_episode_audio_picked import com.vitorpamplona.amethyst.commons.resources.podcast_episode_audio_url_placeholder import com.vitorpamplona.amethyst.commons.resources.podcast_episode_season_label import com.vitorpamplona.amethyst.commons.resources.podcast_episode_title_label +import com.vitorpamplona.amethyst.commons.resources.podcast_new_trailer +import com.vitorpamplona.amethyst.commons.resources.podcast_publishing_banner import com.vitorpamplona.amethyst.commons.resources.podcast_trailer_title_placeholder +import com.vitorpamplona.amethyst.commons.resources.podcast_trailer_upload_cta +import com.vitorpamplona.amethyst.commons.resources.podcast_trailer_upload_hint import com.vitorpamplona.amethyst.commons.resources.podcast_trailer_url_label import com.vitorpamplona.amethyst.ui.actions.StrippingFailureDialog import com.vitorpamplona.amethyst.ui.actions.uploads.SelectedMedia @@ -103,7 +107,7 @@ fun NewPodcastTrailerScreen( Scaffold( topBar = { SendingTopBar( - titleRes = R.string.podcast_new_trailer, + titleRes = Res.string.podcast_new_trailer, onCancel = { nav.popBack() }, isActive = { vm.isValid() && !isBusy }, onPost = { @@ -123,7 +127,7 @@ fun NewPodcastTrailerScreen( .verticalScroll(rememberScrollState()), verticalArrangement = Arrangement.spacedBy(12.dp), ) { - if (isBusy) UploadInProgressBanner(R.string.podcast_publishing_banner) + if (isBusy) UploadInProgressBanner(Res.string.podcast_publishing_banner) val pickedName = vm.pickedName.value if (pickedName != null) { @@ -151,14 +155,14 @@ fun NewPodcastTrailerScreen( ) } if (!isBusy) { - TextButton(onClick = { vm.clearPickedMedia() }) { Text(stringRes(R.string.cancel)) } + TextButton(onClick = { vm.clearPickedMedia() }) { Text(stringRes(Res.string.cancel)) } } } } else { UploadPlaceholder( iconSymbol = MaterialSymbols.MusicNote, - ctaRes = R.string.podcast_trailer_upload_cta, - hintRes = R.string.podcast_trailer_upload_hint, + ctaRes = Res.string.podcast_trailer_upload_cta, + hintRes = Res.string.podcast_trailer_upload_hint, onClick = { wantsToPick = true }, aspectRatio = null, enabled = !isBusy, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/authoring/PodcastAuthoringScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/authoring/PodcastAuthoringScreen.kt index 05ba2110b9..72cad34e27 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/authoring/PodcastAuthoringScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/authoring/PodcastAuthoringScreen.kt @@ -56,15 +56,18 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.LifecycleResumeEffect import coil3.compose.rememberAsyncImagePainter -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.podcast_create_show_hint import com.vitorpamplona.amethyst.commons.resources.podcast_create_your_show +import com.vitorpamplona.amethyst.commons.resources.podcast_episode_count +import com.vitorpamplona.amethyst.commons.resources.podcast_new_episode +import com.vitorpamplona.amethyst.commons.resources.podcast_new_trailer import com.vitorpamplona.amethyst.commons.resources.podcast_no_episodes_yet import com.vitorpamplona.amethyst.commons.resources.podcast_tap_to_edit_show +import com.vitorpamplona.amethyst.commons.resources.podcast_trailer_count import com.vitorpamplona.amethyst.commons.resources.podcast_untitled import com.vitorpamplona.amethyst.commons.resources.podcast_your_podcast import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -166,19 +169,19 @@ fun PodcastAuthoringScreen( modifier = Modifier.weight(1f), ) { Icon(symbol = MaterialSymbols.Add, contentDescription = null, modifier = Modifier.size(18.dp)) - Text(text = stringRes(R.string.podcast_new_episode), modifier = Modifier.padding(start = 6.dp)) + Text(text = stringRes(Res.string.podcast_new_episode), modifier = Modifier.padding(start = 6.dp)) } OutlinedButton( onClick = { nav.nav(Route.NewPodcastTrailer) }, modifier = Modifier.weight(1f), ) { - Text(text = stringRes(R.string.podcast_new_trailer)) + Text(text = stringRes(Res.string.podcast_new_trailer)) } } } if (episodes.isNotEmpty()) { - item { SectionHeader(pluralStringResource(R.plurals.podcast_episode_count, episodes.size, episodes.size)) } + item { SectionHeader(pluralStringResource(Res.plurals.podcast_episode_count, episodes.size, episodes.size)) } items(episodes, key = { it.id }) { ep -> EpisodeRow( title = ep.title() ?: stringRes(Res.string.podcast_untitled), @@ -189,7 +192,7 @@ fun PodcastAuthoringScreen( } if (trailers.isNotEmpty()) { - item { SectionHeader(pluralStringResource(R.plurals.podcast_trailer_count, trailers.size, trailers.size)) } + item { SectionHeader(pluralStringResource(Res.plurals.podcast_trailer_count, trailers.size, trailers.size)) } items(trailers, key = { it.id }) { tr -> EpisodeRow( title = tr.title() ?: stringRes(Res.string.podcast_untitled), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/authoring/V4VSplitEditor.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/authoring/V4VSplitEditor.kt index eed92452d4..c00a4a33f1 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/authoring/V4VSplitEditor.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/podcasts/authoring/V4VSplitEditor.kt @@ -49,7 +49,6 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.podcasts.RecipientDraft @@ -58,6 +57,7 @@ import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.podcast_value_add_address import com.vitorpamplona.amethyst.commons.resources.podcast_value_editor_hint import com.vitorpamplona.amethyst.commons.resources.podcast_value_fee +import com.vitorpamplona.amethyst.commons.resources.podcast_value_for_value import com.vitorpamplona.amethyst.commons.resources.podcast_value_lnaddress import com.vitorpamplona.amethyst.commons.resources.podcast_value_lnaddress_hint import com.vitorpamplona.amethyst.commons.resources.podcast_value_node_pubkey @@ -69,6 +69,7 @@ import com.vitorpamplona.amethyst.commons.resources.podcast_value_search_user_hi import com.vitorpamplona.amethyst.commons.resources.podcast_value_split_percent import com.vitorpamplona.amethyst.commons.resources.podcast_value_type_lnaddress import com.vitorpamplona.amethyst.commons.resources.podcast_value_type_node +import com.vitorpamplona.amethyst.commons.resources.podcast_value_user_no_lnaddress import com.vitorpamplona.amethyst.commons.resources.podcast_value_weight import com.vitorpamplona.amethyst.ui.note.BaseUserPicture import com.vitorpamplona.amethyst.ui.note.UsernameDisplay @@ -114,7 +115,7 @@ fun V4VSplitEditor( tint = MaterialTheme.colorScheme.primary, ) Text( - text = stringRes(R.string.podcast_value_for_value), + text = stringRes(Res.string.podcast_value_for_value), style = MaterialTheme.typography.titleSmall, fontWeight = FontWeight.Bold, color = MaterialTheme.colorScheme.primary, @@ -157,8 +158,8 @@ fun V4VSplitEditor( val added = state.addUser(user) if (!added) { accountViewModel.toastManager.toast( - R.string.podcast_value_for_value, - R.string.podcast_value_user_no_lnaddress, + Res.string.podcast_value_for_value, + Res.string.podcast_value_user_no_lnaddress, ) } search = "" @@ -236,7 +237,7 @@ private fun UserRecipientCard( UsernameDisplay(user, accountViewModel = accountViewModel) val lud = user.lnAddress() Text( - text = lud ?: stringRes(R.string.podcast_value_user_no_lnaddress), + text = lud ?: stringRes(Res.string.podcast_value_user_no_lnaddress), style = MaterialTheme.typography.labelSmall, color = MaterialTheme.colorScheme.grayText, maxLines = 1, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/polls/PollsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/polls/PollsScreen.kt index c05833f142..4aa0ac2549 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/polls/PollsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/polls/PollsScreen.kt @@ -35,8 +35,10 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.feeds.FeedContentState +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.closed_polls +import com.vitorpamplona.amethyst.commons.resources.open_polls import com.vitorpamplona.amethyst.ui.feeds.PagerStateKeys import com.vitorpamplona.amethyst.ui.feeds.RefresheableBox import com.vitorpamplona.amethyst.ui.feeds.RenderFeedContentState @@ -100,13 +102,13 @@ private fun AssemblePollsTabs( mutableStateOf( listOf( PollsTabItem( - resource = R.string.open_polls, + resource = Res.string.open_polls, feedState = openPollsFeedContentState, routeForLastRead = "PollsOpenFeed", scrollStateKey = ScrollStateKeys.POLLS_OPEN, ), PollsTabItem( - resource = R.string.closed_polls, + resource = Res.string.closed_polls, feedState = closedPollsFeedContentState, routeForLastRead = "PollsClosedFeed", scrollStateKey = ScrollStateKeys.POLLS_CLOSED, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/polls/results/PollResultsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/polls/results/PollResultsScreen.kt index db62ffaf5f..eefbfaf82f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/polls/results/PollResultsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/polls/results/PollResultsScreen.kt @@ -64,7 +64,6 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.drawWithContent import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.drawscope.clipRect -import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign @@ -72,18 +71,27 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.poll_multiple_choice import com.vitorpamplona.amethyst.commons.resources.poll_results_all_options +import com.vitorpamplona.amethyst.commons.resources.poll_results_backdated_votes import com.vitorpamplona.amethyst.commons.resources.poll_results_checking_completeness import com.vitorpamplona.amethyst.commons.resources.poll_results_closes_in import com.vitorpamplona.amethyst.commons.resources.poll_results_ended +import com.vitorpamplona.amethyst.commons.resources.poll_results_hidden_voters +import com.vitorpamplona.amethyst.commons.resources.poll_results_ignored_votes +import com.vitorpamplona.amethyst.commons.resources.poll_results_late_votes import com.vitorpamplona.amethyst.commons.resources.poll_results_loading import com.vitorpamplona.amethyst.commons.resources.poll_results_no_votes import com.vitorpamplona.amethyst.commons.resources.poll_results_open +import com.vitorpamplona.amethyst.commons.resources.poll_results_option_count +import com.vitorpamplona.amethyst.commons.resources.poll_results_partial +import com.vitorpamplona.amethyst.commons.resources.poll_results_partial_approx +import com.vitorpamplona.amethyst.commons.resources.poll_results_selections import com.vitorpamplona.amethyst.commons.resources.poll_results_title import com.vitorpamplona.amethyst.commons.resources.poll_results_your_pick +import com.vitorpamplona.amethyst.commons.resources.poll_single_choice import com.vitorpamplona.amethyst.commons.viewmodels.nip88Polls.PollOptionResult import com.vitorpamplona.amethyst.commons.viewmodels.nip88Polls.PollResultsUiState import com.vitorpamplona.amethyst.commons.viewmodels.nip88Polls.PollResultsViewModel @@ -339,10 +347,10 @@ private fun PollStatusChip(endsAt: Long?) { if (endsAt == null) { stringRes(Res.string.poll_results_open) } else if (hasEnded) { - stringRes(Res.string.poll_results_ended, timeAgoNoDot(endsAt, LocalContext.current)) + stringRes(Res.string.poll_results_ended, timeAgoNoDot(endsAt)) } else { // Ahead, not ago: timeAgoNoDot on a future stamp collapses to "now". - stringRes(Res.string.poll_results_closes_in, timeAheadNoDot(endsAt, LocalContext.current)) + stringRes(Res.string.poll_results_closes_in, timeAheadNoDot(endsAt)) }, style = MaterialTheme.typography.labelMedium, color = tint, @@ -357,9 +365,9 @@ private fun PollTypeChip(state: PollResultsUiState) { val type = stringRes( if (state.type == PollType.MULTI_CHOICE) { - R.string.poll_multiple_choice + Res.string.poll_multiple_choice } else { - R.string.poll_single_choice + Res.string.poll_single_choice }, ) @@ -368,7 +376,7 @@ private fun PollTypeChip(state: PollResultsUiState) { // chip is what explains why the bars below may sum past 100% — so it carries the count. text = if (state.totalSelections != state.totalVoters) { - type + " " + pluralStringResource(R.plurals.poll_results_selections, state.totalSelections, state.totalSelections) + type + " " + pluralStringResource(Res.plurals.poll_results_selections, state.totalSelections, state.totalSelections) } else { type }, @@ -482,7 +490,7 @@ private fun OptionBar( } } Text( - text = pluralStringResource(R.plurals.poll_results_option_count, option.voters, option.voters), + text = pluralStringResource(Res.plurals.poll_results_option_count, option.voters, option.voters), style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.placeholderText, ) @@ -624,10 +632,10 @@ private fun ResultsFooter(state: PollResultsUiState) { val notes = remember(state) { buildList { - if (state.lateVotes > 0) add(R.plurals.poll_results_late_votes to state.lateVotes) - if (state.backdatedVotes > 0) add(R.plurals.poll_results_backdated_votes to state.backdatedVotes) - if (state.ignoredVotes > 0) add(R.plurals.poll_results_ignored_votes to state.ignoredVotes) - if (state.hiddenVoters > 0) add(R.plurals.poll_results_hidden_voters to state.hiddenVoters) + if (state.lateVotes > 0) add(Res.plurals.poll_results_late_votes to state.lateVotes) + if (state.backdatedVotes > 0) add(Res.plurals.poll_results_backdated_votes to state.backdatedVotes) + if (state.ignoredVotes > 0) add(Res.plurals.poll_results_ignored_votes to state.ignoredVotes) + if (state.hiddenVoters > 0) add(Res.plurals.poll_results_hidden_voters to state.hiddenVoters) } } @@ -688,9 +696,9 @@ private fun Completeness(state: PollResultsUiState) { text = stringRes( if (state.reportIsApproximate) { - R.string.poll_results_partial_approx + Res.string.poll_results_partial_approx } else { - R.string.poll_results_partial + Res.string.poll_results_partial }, state.loadedResponses, reported, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/privacy/PrivacyOptionsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/privacy/PrivacyOptionsScreen.kt index c8a3df996d..3d8616476a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/privacy/PrivacyOptionsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/privacy/PrivacyOptionsScreen.kt @@ -55,10 +55,39 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.connect_through_your_orbot_setup_short +import com.vitorpamplona.amethyst.commons.resources.orbot_socks_port +import com.vitorpamplona.amethyst.commons.resources.privacy_options +import com.vitorpamplona.amethyst.commons.resources.settings_section_tor_engine +import com.vitorpamplona.amethyst.commons.resources.settings_section_tor_routing +import com.vitorpamplona.amethyst.commons.resources.tor_preset +import com.vitorpamplona.amethyst.commons.resources.tor_preset_explainer +import com.vitorpamplona.amethyst.commons.resources.tor_use_dm_relays +import com.vitorpamplona.amethyst.commons.resources.tor_use_dm_relays_explainer +import com.vitorpamplona.amethyst.commons.resources.tor_use_images +import com.vitorpamplona.amethyst.commons.resources.tor_use_images_explainer +import com.vitorpamplona.amethyst.commons.resources.tor_use_media_uploads +import com.vitorpamplona.amethyst.commons.resources.tor_use_media_uploads_explainer +import com.vitorpamplona.amethyst.commons.resources.tor_use_money_operations +import com.vitorpamplona.amethyst.commons.resources.tor_use_money_operations_explainer +import com.vitorpamplona.amethyst.commons.resources.tor_use_new_relays +import com.vitorpamplona.amethyst.commons.resources.tor_use_new_relays_explainer +import com.vitorpamplona.amethyst.commons.resources.tor_use_nip05_verification +import com.vitorpamplona.amethyst.commons.resources.tor_use_nip05_verification_explainer +import com.vitorpamplona.amethyst.commons.resources.tor_use_onion_address +import com.vitorpamplona.amethyst.commons.resources.tor_use_onion_address_explainer +import com.vitorpamplona.amethyst.commons.resources.tor_use_trusted_relays +import com.vitorpamplona.amethyst.commons.resources.tor_use_trusted_relays_explainer +import com.vitorpamplona.amethyst.commons.resources.tor_use_url_previews +import com.vitorpamplona.amethyst.commons.resources.tor_use_url_previews_explainer +import com.vitorpamplona.amethyst.commons.resources.tor_use_videos +import com.vitorpamplona.amethyst.commons.resources.tor_use_videos_explainer +import com.vitorpamplona.amethyst.commons.resources.use_internal_tor +import com.vitorpamplona.amethyst.commons.resources.use_internal_tor_explainer import com.vitorpamplona.amethyst.commons.tor.TorPresetType import com.vitorpamplona.amethyst.commons.tor.TorType import com.vitorpamplona.amethyst.commons.tor.torDefaultPreset @@ -99,7 +128,7 @@ fun PrivacyOptionsScreen( nav: INav, ) { Scaffold( - topBar = { TopBarWithBackButton(stringRes(R.string.privacy_options), nav) }, + topBar = { TopBarWithBackButton(stringRes(Res.string.privacy_options), nav) }, ) { padding -> PrivacyOptionsContent(torSettings, Modifier.padding(padding)) } @@ -122,7 +151,7 @@ fun PrivacyOptionsContent( .verticalScroll(rememberScrollState()) .padding(horizontal = 16.dp, vertical = 12.dp), ) { - SettingsSection(R.string.settings_section_tor_engine) { + SettingsSection(Res.string.settings_section_tor_engine) { TorEngineTile(torSettings, torType) AnimatedVisibility( visible = torType == TorType.EXTERNAL, @@ -143,28 +172,28 @@ fun PrivacyOptionsContent( ) { Column { Spacer(Modifier.height(20.dp)) - SettingsSection(R.string.settings_section_tor_routing) { + SettingsSection(Res.string.settings_section_tor_routing) { PresetTile(torSettings) SettingsDivider() - TorSwitchTile(torSettings.onionRelaysViaTor, MaterialSymbols.Public, R.string.tor_use_onion_address, R.string.tor_use_onion_address_explainer) + TorSwitchTile(torSettings.onionRelaysViaTor, MaterialSymbols.Public, Res.string.tor_use_onion_address, Res.string.tor_use_onion_address_explainer) SettingsDivider() - TorSwitchTile(torSettings.dmRelaysViaTor, MaterialSymbols.Mail, R.string.tor_use_dm_relays, R.string.tor_use_dm_relays_explainer) + TorSwitchTile(torSettings.dmRelaysViaTor, MaterialSymbols.Mail, Res.string.tor_use_dm_relays, Res.string.tor_use_dm_relays_explainer) SettingsDivider() - TorSwitchTile(torSettings.newRelaysViaTor, MaterialSymbols.Dns, R.string.tor_use_new_relays, R.string.tor_use_new_relays_explainer) + TorSwitchTile(torSettings.newRelaysViaTor, MaterialSymbols.Dns, Res.string.tor_use_new_relays, Res.string.tor_use_new_relays_explainer) SettingsDivider() - TorSwitchTile(torSettings.trustedRelaysViaTor, MaterialSymbols.Shield, R.string.tor_use_trusted_relays, R.string.tor_use_trusted_relays_explainer) + TorSwitchTile(torSettings.trustedRelaysViaTor, MaterialSymbols.Shield, Res.string.tor_use_trusted_relays, Res.string.tor_use_trusted_relays_explainer) SettingsDivider() - TorSwitchTile(torSettings.moneyOperationsViaTor, MaterialSymbols.CurrencyBitcoin, R.string.tor_use_money_operations, R.string.tor_use_money_operations_explainer) + TorSwitchTile(torSettings.moneyOperationsViaTor, MaterialSymbols.CurrencyBitcoin, Res.string.tor_use_money_operations, Res.string.tor_use_money_operations_explainer) SettingsDivider() - TorSwitchTile(torSettings.nip05VerificationsViaTor, MaterialSymbols.AlternateEmail, R.string.tor_use_nip05_verification, R.string.tor_use_nip05_verification_explainer) + TorSwitchTile(torSettings.nip05VerificationsViaTor, MaterialSymbols.AlternateEmail, Res.string.tor_use_nip05_verification, Res.string.tor_use_nip05_verification_explainer) SettingsDivider() - TorSwitchTile(torSettings.urlPreviewsViaTor, MaterialSymbols.Link, R.string.tor_use_url_previews, R.string.tor_use_url_previews_explainer) + TorSwitchTile(torSettings.urlPreviewsViaTor, MaterialSymbols.Link, Res.string.tor_use_url_previews, Res.string.tor_use_url_previews_explainer) SettingsDivider() - TorSwitchTile(torSettings.imagesViaTor, MaterialSymbols.Image, R.string.tor_use_images, R.string.tor_use_images_explainer) + TorSwitchTile(torSettings.imagesViaTor, MaterialSymbols.Image, Res.string.tor_use_images, Res.string.tor_use_images_explainer) SettingsDivider() - TorSwitchTile(torSettings.videosViaTor, MaterialSymbols.Videocam, R.string.tor_use_videos, R.string.tor_use_videos_explainer) + TorSwitchTile(torSettings.videosViaTor, MaterialSymbols.Videocam, Res.string.tor_use_videos, Res.string.tor_use_videos_explainer) SettingsDivider() - TorSwitchTile(torSettings.mediaUploadsViaTor, MaterialSymbols.CloudUpload, R.string.tor_use_media_uploads, R.string.tor_use_media_uploads_explainer) + TorSwitchTile(torSettings.mediaUploadsViaTor, MaterialSymbols.CloudUpload, Res.string.tor_use_media_uploads, Res.string.tor_use_media_uploads_explainer) } } } @@ -180,8 +209,8 @@ private fun TorEngineTile( ) { SegmentedChoiceTile( icon = MaterialSymbols.Security, - title = R.string.use_internal_tor, - description = R.string.use_internal_tor_explainer, + title = Res.string.use_internal_tor, + description = Res.string.use_internal_tor_explainer, options = TorType.entries, labelRes = { it.resourceId }, selected = torType, @@ -198,8 +227,8 @@ private fun OrbotPortTile(torSettings: TorSettingsFlow) { SettingsBlockTile( icon = MaterialSymbols.Dns, - title = stringRes(R.string.orbot_socks_port), - description = stringRes(R.string.connect_through_your_orbot_setup_short), + title = stringRes(Res.string.orbot_socks_port), + description = stringRes(Res.string.connect_through_your_orbot_setup_short), ) { OutlinedTextField( value = text, @@ -232,8 +261,8 @@ private fun PresetTile(torSettings: TorSettingsFlow) { SettingsControlRow( icon = MaterialSymbols.Tune, - title = stringRes(R.string.tor_preset), - description = stringRes(R.string.tor_preset_explainer), + title = stringRes(Res.string.tor_preset), + description = stringRes(Res.string.tor_preset_explainer), onClick = { showPicker = true }, ) { Row(verticalAlignment = Alignment.CenterVertically) { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/products/NewProductButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/products/NewProductButton.kt index 17f154ebfb..1c5ed79cfb 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/products/NewProductButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/products/NewProductButton.kt @@ -24,9 +24,10 @@ import androidx.compose.foundation.shape.CircleShape import androidx.compose.material3.FloatingActionButton import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.new_product import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel @@ -49,7 +50,7 @@ fun NewProductButton( ) { Icon( symbol = MaterialSymbols.Add, - contentDescription = stringRes(id = R.string.new_product), + contentDescription = stringRes(id = Res.string.new_product), modifier = Size26Modifier, tint = MaterialTheme.colorScheme.onPrimary, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/FollowButtons.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/FollowButtons.kt index 9aeb62c858..4708501f8c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/FollowButtons.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/FollowButtons.kt @@ -30,20 +30,22 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.follow import com.vitorpamplona.amethyst.commons.resources.follow_set_profile_actions_menu_description +import com.vitorpamplona.amethyst.commons.resources.unfollow import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.ButtonBorder import com.vitorpamplona.amethyst.ui.theme.ButtonPadding import com.vitorpamplona.amethyst.ui.theme.LeftHalfCircleButtonBorder import com.vitorpamplona.amethyst.ui.theme.ZeroPadding +import org.jetbrains.compose.resources.StringResource @Composable fun FollowButton( - text: Int = R.string.follow, + text: StringResource = Res.string.follow, // Needed for when browsing a user's profile, for list functionality. isInProfileActions: Boolean = false, onClick: () -> Unit, @@ -69,7 +71,7 @@ fun UnfollowButton( shape = if (isInProfileActions) LeftHalfCircleButtonBorder else ButtonBorder, contentPadding = ButtonPadding, ) { - Text(text = stringRes(R.string.unfollow)) + Text(text = stringRes(Res.string.unfollow)) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/gallery/GalleryThumb.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/gallery/GalleryThumb.kt index 2ce85eb3b0..d697780b35 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/gallery/GalleryThumb.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/gallery/GalleryThumb.kt @@ -40,10 +40,11 @@ import androidx.media3.common.util.UnstableApi import coil3.compose.AsyncImagePainter import coil3.compose.SubcomposeAsyncImage import coil3.compose.SubcomposeAsyncImageContent -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.play import com.vitorpamplona.amethyst.commons.richtext.MediaUrlContent import com.vitorpamplona.amethyst.commons.richtext.MediaUrlImage import com.vitorpamplona.amethyst.commons.richtext.MediaUrlVideo @@ -303,7 +304,7 @@ fun UrlImageView( if (isVideo) { Icon( symbol = MaterialSymbols.PlayCircleOutline, - contentDescription = stringRes(id = R.string.play), + contentDescription = stringRes(id = Res.string.play), modifier = Size50Modifier, tint = Color.White, ) @@ -326,14 +327,14 @@ fun UrlImageView( ) Icon( symbol = MaterialSymbols.PlayCircleOutline, - contentDescription = stringRes(id = R.string.play), + contentDescription = stringRes(id = Res.string.play), modifier = Size50Modifier, tint = Color.White, ) } else { Icon( symbol = MaterialSymbols.PlayCircleOutline, - contentDescription = stringRes(id = R.string.play), + contentDescription = stringRes(id = Res.string.play), modifier = Size50Modifier, tint = Color.White, ) @@ -359,7 +360,7 @@ private fun VideoPlaceholder( Box(defaultModifier, contentAlignment = Alignment.Center) { Icon( symbol = MaterialSymbols.PlayCircleOutline, - contentDescription = stringRes(id = R.string.play), + contentDescription = stringRes(id = Res.string.play), modifier = Size50Modifier, tint = if (content.blurhash != null || content.thumbhash != null) Color.White else MaterialTheme.colorScheme.onBackground, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/Bolt12OffersDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/Bolt12OffersDialog.kt index e377c20473..81c269650b 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/Bolt12OffersDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/Bolt12OffersDialog.kt @@ -51,12 +51,14 @@ import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.bolt12_offers import com.vitorpamplona.amethyst.commons.resources.bolt12_pay_with_wallet import com.vitorpamplona.amethyst.commons.resources.bolt12_payment_amount_sats +import com.vitorpamplona.amethyst.commons.resources.copied_to_clipboard +import com.vitorpamplona.amethyst.commons.resources.copy_to_clipboard import com.vitorpamplona.amethyst.ui.components.M3ActionDialog import com.vitorpamplona.amethyst.ui.components.M3ActionSection import com.vitorpamplona.amethyst.ui.components.util.setText @@ -85,7 +87,7 @@ fun Bolt12OffersDialog( var nwcPayOffer by remember { mutableStateOf(null) } M3ActionDialog( - title = stringRes(R.string.bolt12_offers), + title = stringRes(Res.string.bolt12_offers), onDismiss = onDismiss, ) { M3ActionSection { @@ -99,7 +101,7 @@ fun Bolt12OffersDialog( Toast .makeText( context, - stringRes(context, R.string.copied_to_clipboard), + stringRes(Res.string.copied_to_clipboard), Toast.LENGTH_SHORT, ).show() } @@ -160,7 +162,7 @@ private fun Bolt12OfferRow( IconButton(onClick = onCopy) { Icon( symbol = MaterialSymbols.ContentCopy, - contentDescription = stringRes(R.string.copy_to_clipboard), + contentDescription = stringRes(Res.string.copy_to_clipboard), modifier = Size20Modifier, tint = MaterialTheme.colorScheme.onSurfaceVariant, ) @@ -178,7 +180,7 @@ private fun Bolt12OfferRow( IconButton(onClick = onPayViaIntent) { Icon( symbol = MaterialSymbols.Bolt, - contentDescription = stringRes(R.string.bolt12_offers), + contentDescription = stringRes(Res.string.bolt12_offers), modifier = Size20Modifier, tint = MaterialTheme.colorScheme.onSurfaceVariant, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/DisplayFollowUnfollowButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/DisplayFollowUnfollowButton.kt index 978ab234b6..1ece5a8658 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/DisplayFollowUnfollowButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/DisplayFollowUnfollowButton.kt @@ -22,8 +22,13 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn.profile.header import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.User +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.follow +import com.vitorpamplona.amethyst.commons.resources.follow_back +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_follow +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_unfollow +import com.vitorpamplona.amethyst.commons.resources.read_only_user import com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.observeUserIsFollowing import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.profile.FollowButton @@ -41,8 +46,8 @@ fun DisplayFollowUnfollowButton( UnfollowButton(isInProfileActions = true) { if (!accountViewModel.isWriteable()) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_unfollow, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_unfollow, ) } else { accountViewModel.unfollow(baseUser) @@ -50,22 +55,22 @@ fun DisplayFollowUnfollowButton( } } else { if (isUserFollowingLoggedIn) { - FollowButton(R.string.follow_back, isInProfileActions = true) { + FollowButton(Res.string.follow_back, isInProfileActions = true) { if (!accountViewModel.isWriteable()) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_follow, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_follow, ) } else { accountViewModel.follow(baseUser) } } } else { - FollowButton(R.string.follow, isInProfileActions = true) { + FollowButton(Res.string.follow, isInProfileActions = true) { if (!accountViewModel.isWriteable()) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_follow, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_follow, ) } else { accountViewModel.follow(baseUser) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/DisplayPaymentTargets.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/DisplayPaymentTargets.kt index 102e3fb2ae..40e07077df 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/DisplayPaymentTargets.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/DisplayPaymentTargets.kt @@ -24,13 +24,15 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalUriHandler -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.payments.PaymentTargetTypes +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.error_dialog_payment_error +import com.vitorpamplona.amethyst.commons.resources.no_payment_app_found_for_type import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel @@ -106,8 +108,8 @@ fun PaymentTargetChip( runCatching { uriHandler.openUri(paymentTargetUri(target)) } .onFailure { accountViewModel.toastManager.toast( - R.string.error_dialog_payment_error, - R.string.no_payment_app_found_for_type, + Res.string.error_dialog_payment_error, + Res.string.no_payment_app_found_for_type, style.label, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/DrawAdditionalInfo.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/DrawAdditionalInfo.kt index 854f56e481..78ec4a9773 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/DrawAdditionalInfo.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/DrawAdditionalInfo.kt @@ -57,7 +57,11 @@ import com.vitorpamplona.amethyst.commons.model.nip05DnsIdentifiers.Nip05State import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.copy_nprofile_to_clipboard import com.vitorpamplona.amethyst.commons.resources.copy_npub_to_clipboard +import com.vitorpamplona.amethyst.commons.resources.github +import com.vitorpamplona.amethyst.commons.resources.mastodon import com.vitorpamplona.amethyst.commons.resources.show_nprofile_as_a_qr_code +import com.vitorpamplona.amethyst.commons.resources.telegram +import com.vitorpamplona.amethyst.commons.resources.twitter import com.vitorpamplona.amethyst.commons.resources.website import com.vitorpamplona.amethyst.commons.util.toShortDisplay import com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.observeUserInfo @@ -326,7 +330,7 @@ fun DisplayLastSeen( lastSeen?.let { timestamp -> val context = LocalContext.current Text( - text = lastSeenSentence(timestamp, context), + text = lastSeenSentence(timestamp), color = MaterialTheme.colorScheme.placeholderText, maxLines = 1, overflow = TextOverflow.Ellipsis, @@ -378,9 +382,9 @@ fun getIdentityClaimIcon(identity: IdentityClaimTag): Int = fun getIdentityClaimDescription(identity: IdentityClaimTag): Int = when (identity) { - is TwitterIdentity -> R.string.twitter - is TelegramIdentity -> R.string.telegram - is MastodonIdentity -> R.string.mastodon - is GitHubIdentity -> R.string.github - else -> R.string.github + is TwitterIdentity -> Res.string.twitter + is TelegramIdentity -> Res.string.telegram + is MastodonIdentity -> Res.string.mastodon + is GitHubIdentity -> Res.string.github + else -> Res.string.github } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/PaymentTargetsDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/PaymentTargetsDialog.kt index 86bea970f0..722a93743b 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/PaymentTargetsDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/PaymentTargetsDialog.kt @@ -50,11 +50,15 @@ import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.copied_to_clipboard +import com.vitorpamplona.amethyst.commons.resources.copy_to_clipboard +import com.vitorpamplona.amethyst.commons.resources.error_dialog_payment_error +import com.vitorpamplona.amethyst.commons.resources.no_payment_app_found import com.vitorpamplona.amethyst.commons.resources.no_payment_targets_message +import com.vitorpamplona.amethyst.commons.resources.payment_targets import com.vitorpamplona.amethyst.commons.resources.show_qr import com.vitorpamplona.amethyst.ui.components.M3ActionDialog import com.vitorpamplona.amethyst.ui.components.M3ActionRow @@ -82,7 +86,7 @@ fun PaymentTargetsDialog( var qrContent by remember { mutableStateOf(null) } M3ActionDialog( - title = stringRes(R.string.payment_targets), + title = stringRes(Res.string.payment_targets), onDismiss = onDismiss, ) { M3ActionSection { @@ -104,7 +108,7 @@ fun PaymentTargetsDialog( Toast .makeText( context, - stringRes(context, R.string.copied_to_clipboard), + stringRes(Res.string.copied_to_clipboard), Toast.LENGTH_SHORT, ).show() } @@ -117,7 +121,7 @@ fun PaymentTargetsDialog( // wipe whatever the wallet app already had open. runCatching { uriHandler.openUri(paymentTargetUri(target)) } .onSuccess { onDismiss() } - .onFailure { errorMessage = stringRes(context, R.string.no_payment_app_found) } + .onFailure { errorMessage = stringRes(Res.string.no_payment_app_found) } } }, ) @@ -132,7 +136,7 @@ fun PaymentTargetsDialog( errorMessage?.let { msg -> ErrorMessageDialog( - title = stringRes(R.string.error_dialog_payment_error), + title = stringRes(Res.string.error_dialog_payment_error), textContent = msg, onDismiss = { errorMessage = null }, ) @@ -173,7 +177,7 @@ private fun PaymentTargetRow( IconButton(onClick = onCopy) { Icon( symbol = MaterialSymbols.ContentCopy, - contentDescription = stringRes(R.string.copy_to_clipboard), + contentDescription = stringRes(Res.string.copy_to_clipboard), modifier = Size20Modifier, tint = MaterialTheme.colorScheme.onSurfaceVariant, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/ProfilePaymentRailChips.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/ProfilePaymentRailChips.kt index 1bd1ea1185..7b249d4811 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/ProfilePaymentRailChips.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/ProfilePaymentRailChips.kt @@ -50,7 +50,6 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.hashtags.Cashu import com.vitorpamplona.amethyst.commons.hashtags.CustomHashTagIcons import com.vitorpamplona.amethyst.commons.icons.symbols.Icon @@ -61,6 +60,8 @@ import com.vitorpamplona.amethyst.commons.model.nip01Core.UserInfo import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.bolt12_lightning_offer import com.vitorpamplona.amethyst.commons.resources.clink_lightning_offer +import com.vitorpamplona.amethyst.commons.resources.copied_to_clipboard +import com.vitorpamplona.amethyst.commons.resources.copy_to_clipboard import com.vitorpamplona.amethyst.commons.resources.send_payment_method_cashu import com.vitorpamplona.amethyst.commons.resources.send_payment_method_lightning import com.vitorpamplona.amethyst.commons.resources.send_payment_method_onchain @@ -315,8 +316,8 @@ fun ProfilePaymentChip( val context = LocalContext.current val clipboard = LocalClipboard.current val scope = rememberCoroutineScope() - val copyLabel = stringRes(R.string.copy_to_clipboard) - val copiedMessage = stringRes(R.string.copied_to_clipboard) + val copyLabel = stringRes(Res.string.copy_to_clipboard) + val copiedMessage = stringRes(Res.string.copied_to_clipboard) val clickModifier = if (copyValue != null) { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/ProfileTopBar.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/ProfileTopBar.kt index ece947eb87..890ff022b2 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/ProfileTopBar.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/ProfileTopBar.kt @@ -35,11 +35,11 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.more_options import com.vitorpamplona.amethyst.commons.resources.search_button import com.vitorpamplona.amethyst.commons.search.SearchSeed import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -118,7 +118,7 @@ fun ProfileTopBar( Icon( tint = MaterialTheme.colorScheme.placeholderText, symbol = MaterialSymbols.MoreVert, - contentDescription = stringRes(R.string.more_options), + contentDescription = stringRes(Res.string.more_options), ) UserProfileDropDownMenu( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/UserProfileDropDownMenu.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/UserProfileDropDownMenu.kt index 6b957ad73e..19da3b66b5 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/UserProfileDropDownMenu.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/UserProfileDropDownMenu.kt @@ -27,14 +27,16 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.platform.LocalClipboard import androidx.compose.ui.platform.LocalContext -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.nip85TrustedAssertions.ui.EditNicknameDialog import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.block_hide_user import com.vitorpamplona.amethyst.commons.resources.copy_user_id import com.vitorpamplona.amethyst.commons.resources.edit_nickname import com.vitorpamplona.amethyst.commons.resources.profile_actions_dialog_title +import com.vitorpamplona.amethyst.commons.resources.quick_action_share +import com.vitorpamplona.amethyst.commons.resources.quick_action_share_browser_link import com.vitorpamplona.amethyst.commons.resources.report_hateful_speech import com.vitorpamplona.amethyst.commons.resources.report_illegal_behaviour import com.vitorpamplona.amethyst.commons.resources.report_impersonation @@ -96,7 +98,7 @@ fun UserProfileDropDownMenu( } M3ActionRow( icon = MaterialSymbols.Share, - text = stringRes(R.string.quick_action_share), + text = stringRes(Res.string.quick_action_share), ) { val sendIntent = Intent().apply { @@ -105,10 +107,10 @@ fun UserProfileDropDownMenu( putExtra(Intent.EXTRA_TEXT, externalLinkForUser(user)) putExtra( Intent.EXTRA_TITLE, - stringRes(context, R.string.quick_action_share_browser_link), + stringRes(Res.string.quick_action_share_browser_link), ) } - val shareIntent = Intent.createChooser(sendIntent, stringRes(context, R.string.quick_action_share)) + val shareIntent = Intent.createChooser(sendIntent, stringRes(Res.string.quick_action_share)) context.startActivity(shareIntent) onDismiss() } @@ -138,7 +140,7 @@ fun UserProfileDropDownMenu( } else { M3ActionRow( icon = MaterialSymbols.Block, - text = stringRes(R.string.block_hide_user), + text = stringRes(Res.string.block_hide_user), isDestructive = true, ) { accountViewModel.hide(user) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/badges/DisplayBadges.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/badges/DisplayBadges.kt index c3d90b26a6..aefc751c8e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/badges/DisplayBadges.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/header/badges/DisplayBadges.kt @@ -57,7 +57,6 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.AddressableNote @@ -69,6 +68,7 @@ import com.vitorpamplona.amethyst.commons.resources.badge_award_image import com.vitorpamplona.amethyst.commons.resources.badge_award_image_for import com.vitorpamplona.amethyst.commons.resources.badge_untitled import com.vitorpamplona.amethyst.commons.resources.profile_badges_header +import com.vitorpamplona.amethyst.commons.resources.profile_badges_title import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.EventFinderFilterAssemblerSubscription import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.observeNoteEvent import com.vitorpamplona.amethyst.ui.components.RobohashAsyncImage @@ -177,7 +177,7 @@ private fun RenderProfileBadgeStrip( ) { Icon( symbol = MaterialSymbols.Settings, - contentDescription = stringRes(R.string.profile_badges_title), + contentDescription = stringRes(Res.string.profile_badges_title), modifier = Modifier.size(18.dp), tint = MaterialTheme.colorScheme.onSurfaceVariant, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/payment/SendPaymentContent.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/payment/SendPaymentContent.kt index 9e5fd6aa2e..2a9d2dfc28 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/payment/SendPaymentContent.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/payment/SendPaymentContent.kt @@ -66,7 +66,6 @@ import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.hashtags.Cashu import com.vitorpamplona.amethyst.commons.hashtags.CustomHashTagIcons import com.vitorpamplona.amethyst.commons.icons.symbols.Icon @@ -74,9 +73,13 @@ import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.amount_in_sats +import com.vitorpamplona.amethyst.commons.resources.copied_to_clipboard +import com.vitorpamplona.amethyst.commons.resources.copy_to_clipboard import com.vitorpamplona.amethyst.commons.resources.custom_zaps_add_a_message_example +import com.vitorpamplona.amethyst.commons.resources.sats import com.vitorpamplona.amethyst.commons.resources.send_payment_amount import com.vitorpamplona.amethyst.commons.resources.send_payment_done +import com.vitorpamplona.amethyst.commons.resources.send_payment_failed import com.vitorpamplona.amethyst.commons.resources.send_payment_fixed_price import com.vitorpamplona.amethyst.commons.resources.send_payment_from import com.vitorpamplona.amethyst.commons.resources.send_payment_message_recipient @@ -395,7 +398,7 @@ fun SendPaymentContent( ResultCard( symbol = MaterialSymbols.Error, tint = MaterialTheme.colorScheme.error, - title = stringRes(R.string.send_payment_failed), + title = stringRes(Res.string.send_payment_failed), detail = stage.message, ) Row(horizontalArrangement = Arrangement.spacedBy(12.dp)) { @@ -469,8 +472,8 @@ private fun MethodChip( val context = LocalContext.current val clipboard = LocalClipboard.current val scope = rememberCoroutineScope() - val copyLabel = stringRes(R.string.copy_to_clipboard) - val copiedMessage = stringRes(R.string.copied_to_clipboard) + val copyLabel = stringRes(Res.string.copy_to_clipboard) + val copiedMessage = stringRes(Res.string.copied_to_clipboard) val containerColor = if (selected) MaterialTheme.colorScheme.primary else MaterialTheme.colorScheme.surface @@ -606,7 +609,7 @@ private fun AmountSection( enabled = enabled && !locked, isError = isError, keyboardOptions = KeyboardOptions.Default.copy(keyboardType = KeyboardType.Number), - suffix = { Text(stringRes(R.string.sats)) }, + suffix = { Text(stringRes(Res.string.sats)) }, supportingText = when { supportText != null -> { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/payment/SendPaymentScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/payment/SendPaymentScreen.kt index abe067e213..eb3d0ad1b1 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/payment/SendPaymentScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/payment/SendPaymentScreen.kt @@ -44,24 +44,30 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.User import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.payments.PaymentSource import com.vitorpamplona.amethyst.commons.model.payments.PaymentSourceResolver import com.vitorpamplona.amethyst.commons.onchain.OnchainZapSendResult import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.clink_debit_no_response import com.vitorpamplona.amethyst.commons.resources.clink_offer_amount_range +import com.vitorpamplona.amethyst.commons.resources.clink_offer_invalid_amount import com.vitorpamplona.amethyst.commons.resources.custom_zaps_add_a_message import com.vitorpamplona.amethyst.commons.resources.custom_zaps_add_a_message_nonzap import com.vitorpamplona.amethyst.commons.resources.custom_zaps_add_a_message_private +import com.vitorpamplona.amethyst.commons.resources.error_dialog_pay_invoice_error import com.vitorpamplona.amethyst.commons.resources.note_to_receiver +import com.vitorpamplona.amethyst.commons.resources.onchain_send_fee_tier_label_rate_eta import com.vitorpamplona.amethyst.commons.resources.send_payment_building_tx +import com.vitorpamplona.amethyst.commons.resources.send_payment_cashu_balance import com.vitorpamplona.amethyst.commons.resources.send_payment_cashu_insufficient import com.vitorpamplona.amethyst.commons.resources.send_payment_min_onchain import com.vitorpamplona.amethyst.commons.resources.send_payment_onchain_fee +import com.vitorpamplona.amethyst.commons.resources.send_payment_onchain_txid import com.vitorpamplona.amethyst.commons.resources.send_payment_pay_button import com.vitorpamplona.amethyst.commons.resources.send_payment_pay_button_empty +import com.vitorpamplona.amethyst.commons.resources.send_payment_paying_via import com.vitorpamplona.amethyst.commons.resources.send_payment_receipt_cashu import com.vitorpamplona.amethyst.commons.resources.send_payment_receipt_clink import com.vitorpamplona.amethyst.commons.resources.send_payment_receipt_onchain @@ -83,6 +89,7 @@ import com.vitorpamplona.amethyst.commons.resources.zap_type_private import com.vitorpamplona.amethyst.commons.resources.zap_type_private_explainer import com.vitorpamplona.amethyst.commons.resources.zap_type_public import com.vitorpamplona.amethyst.commons.resources.zap_type_public_explainer +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.DEFAULT_ONCHAIN_ZAP_SATS import com.vitorpamplona.amethyst.model.MIN_ONCHAIN_ZAP_SATS import com.vitorpamplona.amethyst.service.ClinkOfferPayer @@ -359,7 +366,7 @@ private fun SendPaymentLoaded( cashuInsufficient -> stringRes(Res.string.send_payment_cashu_insufficient) selectedMethod == ProfilePaymentMethod.CASHU -> stringRes( - R.string.send_payment_cashu_balance, + Res.string.send_payment_cashu_balance, showAmount((cashuFunding?.bestSingleMintSats ?: 0L).toBigDecimal()), ) selectedMethod == ProfilePaymentMethod.CLINK && clinkRange?.min != null && clinkRange?.max != null -> @@ -385,8 +392,8 @@ private fun SendPaymentLoaded( val buildingTxLabel = stringRes(Res.string.send_payment_building_tx) val successTitle = stringRes(Res.string.send_payment_success) val sentToWalletLabel = stringRes(Res.string.send_payment_sent_to_wallet) - val clinkNoResponseLabel = stringRes(R.string.clink_debit_no_response) - val invoiceErrorLabel = stringRes(R.string.error_dialog_pay_invoice_error) + val clinkNoResponseLabel = stringRes(Res.string.clink_debit_no_response) + val invoiceErrorLabel = stringRes(Res.string.error_dialog_pay_invoice_error) // Payment callbacks arrive on IO/relay threads. Snapshot state writes are // thread-safe, but every other payment flow in the app marshals UI state @@ -413,7 +420,7 @@ private fun SendPaymentLoaded( } when (val source = pickedSource) { is PaymentSource.Nwc -> { - postStage(PaymentFlowStage.InProgress(stringRes(context, R.string.send_payment_paying_via, source.name))) + postStage(PaymentFlowStage.InProgress(loadStringRes(Res.string.send_payment_paying_via, source.name))) accountViewModel.sendZapPaymentRequestFor( bolt11 = invoice, zappedNote = null, @@ -428,7 +435,7 @@ private fun SendPaymentLoaded( } is PaymentSource.ClinkDebit -> { - postStage(PaymentFlowStage.InProgress(stringRes(context, R.string.send_payment_paying_via, source.name))) + postStage(PaymentFlowStage.InProgress(loadStringRes(Res.string.send_payment_paying_via, source.name))) accountViewModel.payInvoiceViaClinkDebit(source.wallet.pointer, invoice) { response -> postStage( if (response?.isOk() == true) { @@ -497,7 +504,7 @@ private fun SendPaymentLoaded( stage = PaymentFlowStage.Failure( response.error?.takeIf { it.isNotBlank() } - ?: stringRes(context, R.string.clink_offer_invalid_amount), + ?: loadStringRes(Res.string.clink_offer_invalid_amount), ) } else -> @@ -558,7 +565,7 @@ private fun SendPaymentLoaded( is OnchainZapSendResult.Success -> PaymentFlowStage.Success( successTitle, - stringRes(context, R.string.send_payment_onchain_txid, result.txid.shortenMiddle()), + loadStringRes(Res.string.send_payment_onchain_txid, result.txid.shortenMiddle()), ) is OnchainZapSendResult.Failure -> PaymentFlowStage.Failure( @@ -783,7 +790,7 @@ private fun OnchainFeeSection( Text( if (rate != null) { stringRes( - R.string.onchain_send_fee_tier_label_rate_eta, + Res.string.onchain_send_fee_tier_label_rate_eta, stringRes(tier.labelRes), "%.1f".format(rate), stringRes(tier.etaLabelRes), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/relays/RelayFeedView.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/relays/RelayFeedView.kt index 523cad2228..3b44bc8c74 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/relays/RelayFeedView.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/relays/RelayFeedView.kt @@ -33,7 +33,13 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalClipboard import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.private_inbox_section +import com.vitorpamplona.amethyst.commons.resources.private_inbox_section_explainer_profile +import com.vitorpamplona.amethyst.commons.resources.public_home_section +import com.vitorpamplona.amethyst.commons.resources.public_home_section_explainer_profile +import com.vitorpamplona.amethyst.commons.resources.public_notif_section +import com.vitorpamplona.amethyst.commons.resources.public_notif_section_explainer_profile import com.vitorpamplona.amethyst.ui.components.util.setText import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route @@ -59,8 +65,8 @@ fun RelayFeedView( ) { item { SettingsCategory( - R.string.public_home_section, - R.string.public_home_section_explainer_profile, + Res.string.public_home_section, + Res.string.public_home_section_explainer_profile, Modifier.padding(top = 10.dp, bottom = 8.dp, start = 10.dp, end = 10.dp), ) } @@ -69,8 +75,8 @@ fun RelayFeedView( } item { SettingsCategory( - R.string.public_notif_section, - R.string.public_notif_section_explainer_profile, + Res.string.public_notif_section, + Res.string.public_notif_section_explainer_profile, Modifier.padding(top = 24.dp, bottom = 8.dp, start = 10.dp, end = 10.dp), ) } @@ -79,8 +85,8 @@ fun RelayFeedView( } item { SettingsCategory( - R.string.private_inbox_section, - R.string.private_inbox_section_explainer_profile, + Res.string.private_inbox_section, + Res.string.private_inbox_section_explainer_profile, Modifier.padding(top = 24.dp, bottom = 8.dp, start = 10.dp, end = 10.dp), ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/zaps/ZapTabHeader.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/zaps/ZapTabHeader.kt index 60477ab368..816159a9ee 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/zaps/ZapTabHeader.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/profile/zaps/ZapTabHeader.kt @@ -24,7 +24,8 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.zaps import com.vitorpamplona.amethyst.ui.note.showAmountInteger import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.profile.zaps.dal.UserProfileZapsViewModel @@ -37,5 +38,5 @@ fun ZapTabHeader( ) { val zapAmount by zapsViewModel.totalReceivedZaps.collectAsStateWithLifecycle() - Text(text = "${showAmountInteger(zapAmount)} ${stringRes(id = R.string.zaps)}") + Text(text = "${showAmountInteger(zapAmount)} ${stringRes(id = Res.string.zaps)}") } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relay/RelayFeedScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relay/RelayFeedScreen.kt index 79a6325d4f..7ff2da6854 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relay/RelayFeedScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relay/RelayFeedScreen.kt @@ -26,7 +26,10 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_follow +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_unfollow +import com.vitorpamplona.amethyst.commons.resources.read_only_user import com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.observeUserIsFollowingRelay import com.vitorpamplona.amethyst.ui.feeds.WatchLifecycleAndUpdateModel import com.vitorpamplona.amethyst.ui.layouts.DisappearingScaffold @@ -126,8 +129,8 @@ fun RelayFeedActionOptions( UnfollowButton { if (!accountViewModel.isWriteable()) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_unfollow, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_unfollow, ) } else { accountViewModel.unfollowRelayFeed(relayUrl) @@ -137,8 +140,8 @@ fun RelayFeedActionOptions( FollowButton { if (!accountViewModel.isWriteable()) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_follow, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_follow, ) } else { accountViewModel.followRelayFeed(relayUrl) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relayauth/RelayAuthSettingsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relayauth/RelayAuthSettingsScreen.kt index 66cbcd6a0d..d02908ea15 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relayauth/RelayAuthSettingsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relayauth/RelayAuthSettingsScreen.kt @@ -68,7 +68,6 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.relayauth.AuthPurposeKind @@ -78,8 +77,14 @@ import com.vitorpamplona.amethyst.commons.relayauth.RelayAuthPolicy import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.relay_auth_ago import com.vitorpamplona.amethyst.commons.resources.relay_auth_auto_login_when +import com.vitorpamplona.amethyst.commons.resources.relay_auth_auto_message_follows +import com.vitorpamplona.amethyst.commons.resources.relay_auth_auto_message_strangers +import com.vitorpamplona.amethyst.commons.resources.relay_auth_auto_my_relays_and_venues +import com.vitorpamplona.amethyst.commons.resources.relay_auth_auto_read_follows import com.vitorpamplona.amethyst.commons.resources.relay_auth_blocked_row_desc import com.vitorpamplona.amethyst.commons.resources.relay_auth_blocked_section +import com.vitorpamplona.amethyst.commons.resources.relay_auth_exception_always +import com.vitorpamplona.amethyst.commons.resources.relay_auth_exception_never import com.vitorpamplona.amethyst.commons.resources.relay_auth_exception_removed_undo import com.vitorpamplona.amethyst.commons.resources.relay_auth_exceptions import com.vitorpamplona.amethyst.commons.resources.relay_auth_forget_session @@ -87,6 +92,12 @@ import com.vitorpamplona.amethyst.commons.resources.relay_auth_global_policy import com.vitorpamplona.amethyst.commons.resources.relay_auth_no_blocked import com.vitorpamplona.amethyst.commons.resources.relay_auth_no_exceptions import com.vitorpamplona.amethyst.commons.resources.relay_auth_no_recent +import com.vitorpamplona.amethyst.commons.resources.relay_auth_policy_always +import com.vitorpamplona.amethyst.commons.resources.relay_auth_policy_always_desc +import com.vitorpamplona.amethyst.commons.resources.relay_auth_policy_custom +import com.vitorpamplona.amethyst.commons.resources.relay_auth_policy_custom_desc +import com.vitorpamplona.amethyst.commons.resources.relay_auth_policy_never +import com.vitorpamplona.amethyst.commons.resources.relay_auth_policy_never_desc import com.vitorpamplona.amethyst.commons.resources.relay_auth_recent_section import com.vitorpamplona.amethyst.commons.resources.relay_auth_remove_exception import com.vitorpamplona.amethyst.commons.resources.relay_auth_segment_always @@ -95,6 +106,7 @@ import com.vitorpamplona.amethyst.commons.resources.relay_auth_session_forgotten import com.vitorpamplona.amethyst.commons.resources.relay_auth_session_row_desc import com.vitorpamplona.amethyst.commons.resources.relay_auth_session_section import com.vitorpamplona.amethyst.commons.resources.relay_auth_session_undo_blocked +import com.vitorpamplona.amethyst.commons.resources.relay_auth_settings_title import com.vitorpamplona.amethyst.commons.resources.relay_auth_undo import com.vitorpamplona.amethyst.commons.resources.relay_info import com.vitorpamplona.amethyst.model.nip11RelayInfo.loadRelayInfo @@ -227,7 +239,7 @@ fun RelayAuthSettingsScreen( Scaffold( topBar = { TopBarWithBackButton( - caption = stringResource(R.string.relay_auth_settings_title), + caption = stringResource(Res.string.relay_auth_settings_title), nav = nav, actions = { AccountChip(accountViewModel) }, ) @@ -254,11 +266,11 @@ fun RelayAuthSettingsScreen( val (titleRes, descRes) = when (policy) { RelayAuthPolicy.ALWAYS -> - R.string.relay_auth_policy_always to R.string.relay_auth_policy_always_desc + Res.string.relay_auth_policy_always to Res.string.relay_auth_policy_always_desc RelayAuthPolicy.NEVER -> - R.string.relay_auth_policy_never to R.string.relay_auth_policy_never_desc + Res.string.relay_auth_policy_never to Res.string.relay_auth_policy_never_desc RelayAuthPolicy.CUSTOM -> - R.string.relay_auth_policy_custom to R.string.relay_auth_policy_custom_desc + Res.string.relay_auth_policy_custom to Res.string.relay_auth_policy_custom_desc } PolicyRow( selected = globalPolicy == policy, @@ -290,28 +302,28 @@ fun RelayAuthSettingsScreen( ) { SettingsSwitchTile( icon = MaterialSymbols.Dns, - title = R.string.relay_auth_auto_my_relays_and_venues, + title = Res.string.relay_auth_auto_my_relays_and_venues, checked = myRelays, onCheckedChange = { account.settings.changeRelayAuthTrustMyRelaysAndVenues(it) }, ) SettingsDivider() SettingsSwitchTile( icon = MaterialSymbols.Download, - title = R.string.relay_auth_auto_read_follows, + title = Res.string.relay_auth_auto_read_follows, checked = readFollows, onCheckedChange = { account.settings.changeRelayAuthTrustReadFollows(it) }, ) SettingsDivider() SettingsSwitchTile( icon = MaterialSymbols.Mail, - title = R.string.relay_auth_auto_message_follows, + title = Res.string.relay_auth_auto_message_follows, checked = messageFollows, onCheckedChange = { account.settings.changeRelayAuthTrustMessageFollows(it) }, ) SettingsDivider() SettingsSwitchTile( icon = MaterialSymbols.Public, - title = R.string.relay_auth_auto_message_strangers, + title = Res.string.relay_auth_auto_message_strangers, checked = messageStrangers, onCheckedChange = { account.settings.changeRelayAuthTrustMessageStrangers(it) }, ) @@ -543,7 +555,7 @@ private fun ExceptionRow( Text( text = stringResource( - if (decision == RelayAuthDecision.ALLOW) R.string.relay_auth_exception_always else R.string.relay_auth_exception_never, + if (decision == RelayAuthDecision.ALLOW) Res.string.relay_auth_exception_always else Res.string.relay_auth_exception_never, ), fontSize = 13.sp, color = MaterialTheme.colorScheme.onSurfaceVariant, @@ -654,7 +666,7 @@ private fun RecentLoginRow( } if (lastUsedSecs != null && lastUsedSecs > 0L) { Text( - text = stringRes(Res.string.relay_auth_ago, timeAgo(lastUsedSecs, context, prefix = "")), + text = stringRes(Res.string.relay_auth_ago, timeAgo(lastUsedSecs, prefix = "")), fontSize = 13.sp, color = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier.padding(top = 2.dp), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/AllRelayListScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/AllRelayListScreen.kt index 78834d0ec1..557f83db16 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/AllRelayListScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/AllRelayListScreen.kt @@ -42,17 +42,46 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.defaults.DefaultDMRelayList import com.vitorpamplona.amethyst.commons.defaults.DefaultIndexerRelayList import com.vitorpamplona.amethyst.commons.defaults.DefaultSearchRelayList import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.blocked_section +import com.vitorpamplona.amethyst.commons.resources.blocked_section_explainer +import com.vitorpamplona.amethyst.commons.resources.broadcast_section +import com.vitorpamplona.amethyst.commons.resources.broadcast_section_explainer +import com.vitorpamplona.amethyst.commons.resources.connected_section +import com.vitorpamplona.amethyst.commons.resources.connected_section_description import com.vitorpamplona.amethyst.commons.resources.default_relays import com.vitorpamplona.amethyst.commons.resources.export_actions_dialog_title import com.vitorpamplona.amethyst.commons.resources.export_as_text import com.vitorpamplona.amethyst.commons.resources.export_as_zip +import com.vitorpamplona.amethyst.commons.resources.export_relay_settings +import com.vitorpamplona.amethyst.commons.resources.favorite_section +import com.vitorpamplona.amethyst.commons.resources.favorite_section_explainer +import com.vitorpamplona.amethyst.commons.resources.indexer_section +import com.vitorpamplona.amethyst.commons.resources.indexer_section_explainer +import com.vitorpamplona.amethyst.commons.resources.keypackage_section +import com.vitorpamplona.amethyst.commons.resources.keypackage_section_explainer +import com.vitorpamplona.amethyst.commons.resources.local_section +import com.vitorpamplona.amethyst.commons.resources.local_section_explainer +import com.vitorpamplona.amethyst.commons.resources.private_inbox_section +import com.vitorpamplona.amethyst.commons.resources.private_inbox_section_explainer +import com.vitorpamplona.amethyst.commons.resources.private_outbox_section +import com.vitorpamplona.amethyst.commons.resources.private_outbox_section_explainer +import com.vitorpamplona.amethyst.commons.resources.proxy_section +import com.vitorpamplona.amethyst.commons.resources.proxy_section_explainer +import com.vitorpamplona.amethyst.commons.resources.public_home_section +import com.vitorpamplona.amethyst.commons.resources.public_home_section_explainer +import com.vitorpamplona.amethyst.commons.resources.public_notif_section +import com.vitorpamplona.amethyst.commons.resources.public_notif_section_explainer +import com.vitorpamplona.amethyst.commons.resources.relay_settings +import com.vitorpamplona.amethyst.commons.resources.search_section +import com.vitorpamplona.amethyst.commons.resources.search_section_explainer +import com.vitorpamplona.amethyst.commons.resources.trusted_section +import com.vitorpamplona.amethyst.commons.resources.trusted_section_explainer import com.vitorpamplona.amethyst.ui.components.M3ActionDialog import com.vitorpamplona.amethyst.ui.components.M3ActionRow import com.vitorpamplona.amethyst.ui.components.M3ActionSection @@ -98,6 +127,7 @@ import com.vitorpamplona.amethyst.ui.theme.RowColSpacing import com.vitorpamplona.amethyst.ui.theme.SettingsCategoryFirstWithHorzBorderModifier import com.vitorpamplona.amethyst.ui.theme.SettingsCategorySpacingWithHorzBorderModifier import com.vitorpamplona.amethyst.ui.theme.grayText +import org.jetbrains.compose.resources.StringResource @Composable fun AllRelayListScreen( @@ -279,7 +309,7 @@ fun MappedAllRelayListView( Scaffold( topBar = { SavingTopBar( - titleRes = R.string.relay_settings, + titleRes = Res.string.relay_settings, additionalActions = { ExportDropdownMenu { RelayListCollection( @@ -354,8 +384,8 @@ fun MappedAllRelayListView( ) { item { SettingsCategory( - R.string.public_home_section, - R.string.public_home_section_explainer, + Res.string.public_home_section, + Res.string.public_home_section_explainer, SettingsCategoryFirstWithHorzBorderModifier, ) } @@ -363,8 +393,8 @@ fun MappedAllRelayListView( item { SettingsCategory( - R.string.public_notif_section, - R.string.public_notif_section_explainer, + Res.string.public_notif_section, + Res.string.public_notif_section_explainer, SettingsCategorySpacingWithHorzBorderModifier, ) } @@ -372,8 +402,8 @@ fun MappedAllRelayListView( item { SettingsCategoryWithButton( - R.string.private_inbox_section, - R.string.private_inbox_section_explainer, + Res.string.private_inbox_section, + Res.string.private_inbox_section_explainer, SettingsCategorySpacingWithHorzBorderModifier, action = { ResetDMRelays(dmViewModel) @@ -384,8 +414,8 @@ fun MappedAllRelayListView( item { SettingsCategory( - R.string.keypackage_section, - R.string.keypackage_section_explainer, + Res.string.keypackage_section, + Res.string.keypackage_section_explainer, SettingsCategorySpacingWithHorzBorderModifier, ) } @@ -393,8 +423,8 @@ fun MappedAllRelayListView( item { SettingsCategory( - R.string.private_outbox_section, - R.string.private_outbox_section_explainer, + Res.string.private_outbox_section, + Res.string.private_outbox_section_explainer, SettingsCategorySpacingWithHorzBorderModifier, ) } @@ -402,8 +432,8 @@ fun MappedAllRelayListView( item { SettingsCategory( - R.string.proxy_section, - R.string.proxy_section_explainer, + Res.string.proxy_section, + Res.string.proxy_section_explainer, SettingsCategorySpacingWithHorzBorderModifier, ) } @@ -411,8 +441,8 @@ fun MappedAllRelayListView( item { SettingsCategory( - R.string.broadcast_section, - R.string.broadcast_section_explainer, + Res.string.broadcast_section, + Res.string.broadcast_section_explainer, SettingsCategorySpacingWithHorzBorderModifier, ) } @@ -420,8 +450,8 @@ fun MappedAllRelayListView( item { SettingsCategoryWithButton( - R.string.indexer_section, - R.string.indexer_section_explainer, + Res.string.indexer_section, + Res.string.indexer_section_explainer, SettingsCategorySpacingWithHorzBorderModifier, ) { ResetIndexerRelays(indexerViewModel) @@ -431,8 +461,8 @@ fun MappedAllRelayListView( item { SettingsCategoryWithButton( - R.string.search_section, - R.string.search_section_explainer, + Res.string.search_section, + Res.string.search_section_explainer, SettingsCategorySpacingWithHorzBorderModifier, ) { ResetSearchRelays(searchViewModel) @@ -442,8 +472,8 @@ fun MappedAllRelayListView( item { SettingsCategory( - R.string.local_section, - R.string.local_section_explainer, + Res.string.local_section, + Res.string.local_section_explainer, SettingsCategorySpacingWithHorzBorderModifier, ) } @@ -451,8 +481,8 @@ fun MappedAllRelayListView( item { SettingsCategory( - R.string.trusted_section, - R.string.trusted_section_explainer, + Res.string.trusted_section, + Res.string.trusted_section_explainer, SettingsCategorySpacingWithHorzBorderModifier, ) } @@ -460,8 +490,8 @@ fun MappedAllRelayListView( item { SettingsCategory( - R.string.favorite_section, - R.string.favorite_section_explainer, + Res.string.favorite_section, + Res.string.favorite_section_explainer, SettingsCategorySpacingWithHorzBorderModifier, ) } @@ -469,8 +499,8 @@ fun MappedAllRelayListView( item { SettingsCategory( - R.string.blocked_section, - R.string.blocked_section_explainer, + Res.string.blocked_section, + Res.string.blocked_section_explainer, SettingsCategorySpacingWithHorzBorderModifier, ) } @@ -478,8 +508,8 @@ fun MappedAllRelayListView( item { SettingsCategory( - R.string.connected_section, - R.string.connected_section_description, + Res.string.connected_section, + Res.string.connected_section_description, SettingsCategorySpacingWithHorzBorderModifier, ) } @@ -539,8 +569,8 @@ fun ResetDMRelays(postViewModel: DMRelayListViewModel) { @Composable fun SettingsCategory( - title: Int, - description: Int? = null, + title: StringResource, + description: StringResource? = null, modifier: Modifier, ) { Column(modifier) { @@ -561,8 +591,8 @@ fun SettingsCategory( @Composable fun SettingsCategoryWithButton( - title: Int, - description: Int? = null, + title: StringResource, + description: StringResource? = null, modifier: Modifier, action: @Composable () -> Unit, ) { @@ -594,7 +624,7 @@ fun ExportDropdownMenu(collection: () -> RelayListCollection) { IconButton(onClick = { expanded = true }) { Icon( symbol = MaterialSymbols.Share, - contentDescription = stringRes(R.string.export_relay_settings), + contentDescription = stringRes(Res.string.export_relay_settings), ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/KindDisplayName.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/KindDisplayName.kt index 3de420ba59..20c100e370 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/KindDisplayName.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/KindDisplayName.kt @@ -22,7 +22,160 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn.relays import android.content.Context import androidx.annotation.StringRes -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.attestation +import com.vitorpamplona.amethyst.commons.resources.attestation_request +import com.vitorpamplona.amethyst.commons.resources.attestor_proficiency +import com.vitorpamplona.amethyst.commons.resources.attestor_recommendation +import com.vitorpamplona.amethyst.commons.resources.kind_accepted_badge_set +import com.vitorpamplona.amethyst.commons.resources.kind_adventure_prologue +import com.vitorpamplona.amethyst.commons.resources.kind_adventure_reading +import com.vitorpamplona.amethyst.commons.resources.kind_adventure_scene +import com.vitorpamplona.amethyst.commons.resources.kind_app_recommendations +import com.vitorpamplona.amethyst.commons.resources.kind_appointment +import com.vitorpamplona.amethyst.commons.resources.kind_apps +import com.vitorpamplona.amethyst.commons.resources.kind_appt_rsvp +import com.vitorpamplona.amethyst.commons.resources.kind_audio_header +import com.vitorpamplona.amethyst.commons.resources.kind_audio_track +import com.vitorpamplona.amethyst.commons.resources.kind_authored_podcasts +import com.vitorpamplona.amethyst.commons.resources.kind_badge_awards +import com.vitorpamplona.amethyst.commons.resources.kind_badge_definitions +import com.vitorpamplona.amethyst.commons.resources.kind_blob_data +import com.vitorpamplona.amethyst.commons.resources.kind_blob_headers +import com.vitorpamplona.amethyst.commons.resources.kind_blocked_relays +import com.vitorpamplona.amethyst.commons.resources.kind_blogs +import com.vitorpamplona.amethyst.commons.resources.kind_blossom_auth +import com.vitorpamplona.amethyst.commons.resources.kind_blossom_servers +import com.vitorpamplona.amethyst.commons.resources.kind_bookmark_list +import com.vitorpamplona.amethyst.commons.resources.kind_broadcast_relays +import com.vitorpamplona.amethyst.commons.resources.kind_calendar +import com.vitorpamplona.amethyst.commons.resources.kind_channel_definition +import com.vitorpamplona.amethyst.commons.resources.kind_channel_hide_msg +import com.vitorpamplona.amethyst.commons.resources.kind_channel_list +import com.vitorpamplona.amethyst.commons.resources.kind_channel_message +import com.vitorpamplona.amethyst.commons.resources.kind_channel_metadata +import com.vitorpamplona.amethyst.commons.resources.kind_channel_mute_user +import com.vitorpamplona.amethyst.commons.resources.kind_chess_auth +import com.vitorpamplona.amethyst.commons.resources.kind_chess_challenges +import com.vitorpamplona.amethyst.commons.resources.kind_chess_draw_offer +import com.vitorpamplona.amethyst.commons.resources.kind_chess_game_accept +import com.vitorpamplona.amethyst.commons.resources.kind_chess_game_end +import com.vitorpamplona.amethyst.commons.resources.kind_chess_games +import com.vitorpamplona.amethyst.commons.resources.kind_chess_move +import com.vitorpamplona.amethyst.commons.resources.kind_classifieds +import com.vitorpamplona.amethyst.commons.resources.kind_comments +import com.vitorpamplona.amethyst.commons.resources.kind_community_def +import com.vitorpamplona.amethyst.commons.resources.kind_community_list +import com.vitorpamplona.amethyst.commons.resources.kind_community_post +import com.vitorpamplona.amethyst.commons.resources.kind_contact_card +import com.vitorpamplona.amethyst.commons.resources.kind_day_appointment +import com.vitorpamplona.amethyst.commons.resources.kind_deletions +import com.vitorpamplona.amethyst.commons.resources.kind_dm_file +import com.vitorpamplona.amethyst.commons.resources.kind_dm_message +import com.vitorpamplona.amethyst.commons.resources.kind_dm_relays +import com.vitorpamplona.amethyst.commons.resources.kind_drafts +import com.vitorpamplona.amethyst.commons.resources.kind_dvm_content_req +import com.vitorpamplona.amethyst.commons.resources.kind_dvm_content_resp +import com.vitorpamplona.amethyst.commons.resources.kind_dvm_status +import com.vitorpamplona.amethyst.commons.resources.kind_dvm_user_req +import com.vitorpamplona.amethyst.commons.resources.kind_dvm_user_resp +import com.vitorpamplona.amethyst.commons.resources.kind_edits +import com.vitorpamplona.amethyst.commons.resources.kind_emoji_pack_list +import com.vitorpamplona.amethyst.commons.resources.kind_emoji_packs +import com.vitorpamplona.amethyst.commons.resources.kind_ephemeral_chat +import com.vitorpamplona.amethyst.commons.resources.kind_ephemeral_chatrooms +import com.vitorpamplona.amethyst.commons.resources.kind_favorite_podcasts +import com.vitorpamplona.amethyst.commons.resources.kind_favorite_relays +import com.vitorpamplona.amethyst.commons.resources.kind_file_headers +import com.vitorpamplona.amethyst.commons.resources.kind_file_servers +import com.vitorpamplona.amethyst.commons.resources.kind_follow_list +import com.vitorpamplona.amethyst.commons.resources.kind_follow_packs +import com.vitorpamplona.amethyst.commons.resources.kind_geohash_follows +import com.vitorpamplona.amethyst.commons.resources.kind_gift_wraps +import com.vitorpamplona.amethyst.commons.resources.kind_git_issue +import com.vitorpamplona.amethyst.commons.resources.kind_git_patch +import com.vitorpamplona.amethyst.commons.resources.kind_git_pr +import com.vitorpamplona.amethyst.commons.resources.kind_git_pr_update +import com.vitorpamplona.amethyst.commons.resources.kind_git_reply +import com.vitorpamplona.amethyst.commons.resources.kind_git_repo +import com.vitorpamplona.amethyst.commons.resources.kind_git_status_applied +import com.vitorpamplona.amethyst.commons.resources.kind_git_status_closed +import com.vitorpamplona.amethyst.commons.resources.kind_git_status_draft +import com.vitorpamplona.amethyst.commons.resources.kind_git_status_open +import com.vitorpamplona.amethyst.commons.resources.kind_hashtag_follows +import com.vitorpamplona.amethyst.commons.resources.kind_highlights +import com.vitorpamplona.amethyst.commons.resources.kind_http_auth +import com.vitorpamplona.amethyst.commons.resources.kind_index_relay_list +import com.vitorpamplona.amethyst.commons.resources.kind_live_chats +import com.vitorpamplona.amethyst.commons.resources.kind_live_streams +import com.vitorpamplona.amethyst.commons.resources.kind_medical_data +import com.vitorpamplona.amethyst.commons.resources.kind_meeting_room +import com.vitorpamplona.amethyst.commons.resources.kind_meeting_space +import com.vitorpamplona.amethyst.commons.resources.kind_music_playlist +import com.vitorpamplona.amethyst.commons.resources.kind_music_track +import com.vitorpamplona.amethyst.commons.resources.kind_mute_list +import com.vitorpamplona.amethyst.commons.resources.kind_named_bookmarks +import com.vitorpamplona.amethyst.commons.resources.kind_nests_servers +import com.vitorpamplona.amethyst.commons.resources.kind_nip +import com.vitorpamplona.amethyst.commons.resources.kind_nip04_dms +import com.vitorpamplona.amethyst.commons.resources.kind_nns +import com.vitorpamplona.amethyst.commons.resources.kind_nostr_connect +import com.vitorpamplona.amethyst.commons.resources.kind_notes +import com.vitorpamplona.amethyst.commons.resources.kind_nwc_request +import com.vitorpamplona.amethyst.commons.resources.kind_nwc_response +import com.vitorpamplona.amethyst.commons.resources.kind_old_bookmark_list +import com.vitorpamplona.amethyst.commons.resources.kind_ots +import com.vitorpamplona.amethyst.commons.resources.kind_outbox_relays +import com.vitorpamplona.amethyst.commons.resources.kind_pay_to +import com.vitorpamplona.amethyst.commons.resources.kind_people_lists +import com.vitorpamplona.amethyst.commons.resources.kind_pictures +import com.vitorpamplona.amethyst.commons.resources.kind_pins +import com.vitorpamplona.amethyst.commons.resources.kind_podcast_episode +import com.vitorpamplona.amethyst.commons.resources.kind_podcast_metadata +import com.vitorpamplona.amethyst.commons.resources.kind_poll +import com.vitorpamplona.amethyst.commons.resources.kind_poll_response +import com.vitorpamplona.amethyst.commons.resources.kind_private_relays +import com.vitorpamplona.amethyst.commons.resources.kind_private_zaps +import com.vitorpamplona.amethyst.commons.resources.kind_profile +import com.vitorpamplona.amethyst.commons.resources.kind_profile_badges +import com.vitorpamplona.amethyst.commons.resources.kind_profile_gallery +import com.vitorpamplona.amethyst.commons.resources.kind_proxy_relays +import com.vitorpamplona.amethyst.commons.resources.kind_public_message +import com.vitorpamplona.amethyst.commons.resources.kind_reactions +import com.vitorpamplona.amethyst.commons.resources.kind_relay_auth +import com.vitorpamplona.amethyst.commons.resources.kind_relay_discovery +import com.vitorpamplona.amethyst.commons.resources.kind_relay_monitor +import com.vitorpamplona.amethyst.commons.resources.kind_relay_set +import com.vitorpamplona.amethyst.commons.resources.kind_reports +import com.vitorpamplona.amethyst.commons.resources.kind_reposts +import com.vitorpamplona.amethyst.commons.resources.kind_reposts_16 +import com.vitorpamplona.amethyst.commons.resources.kind_room_presence +import com.vitorpamplona.amethyst.commons.resources.kind_seals +import com.vitorpamplona.amethyst.commons.resources.kind_search_relays +import com.vitorpamplona.amethyst.commons.resources.kind_shorts +import com.vitorpamplona.amethyst.commons.resources.kind_shorts_repl +import com.vitorpamplona.amethyst.commons.resources.kind_torrent_comments +import com.vitorpamplona.amethyst.commons.resources.kind_torrents +import com.vitorpamplona.amethyst.commons.resources.kind_trusted_providers +import com.vitorpamplona.amethyst.commons.resources.kind_trusted_relays +import com.vitorpamplona.amethyst.commons.resources.kind_user_delete +import com.vitorpamplona.amethyst.commons.resources.kind_user_settings +import com.vitorpamplona.amethyst.commons.resources.kind_user_status +import com.vitorpamplona.amethyst.commons.resources.kind_video +import com.vitorpamplona.amethyst.commons.resources.kind_video_collaboration +import com.vitorpamplona.amethyst.commons.resources.kind_video_list +import com.vitorpamplona.amethyst.commons.resources.kind_video_repl +import com.vitorpamplona.amethyst.commons.resources.kind_video_subtitles +import com.vitorpamplona.amethyst.commons.resources.kind_voice_msg +import com.vitorpamplona.amethyst.commons.resources.kind_voice_reply +import com.vitorpamplona.amethyst.commons.resources.kind_wake +import com.vitorpamplona.amethyst.commons.resources.kind_web_bookmark +import com.vitorpamplona.amethyst.commons.resources.kind_wiki +import com.vitorpamplona.amethyst.commons.resources.kind_workouts +import com.vitorpamplona.amethyst.commons.resources.kind_zap_goals +import com.vitorpamplona.amethyst.commons.resources.kind_zap_poll +import com.vitorpamplona.amethyst.commons.resources.kind_zap_req +import com.vitorpamplona.amethyst.commons.resources.kind_zaps import com.vitorpamplona.quartz.experimental.attestations.attestation.AttestationEvent import com.vitorpamplona.quartz.experimental.attestations.proficiency.AttestorProficiencyEvent import com.vitorpamplona.quartz.experimental.attestations.recommendation.AttestorRecommendationEvent @@ -185,161 +338,161 @@ import com.vitorpamplona.quartz.nipF4Podcasts.metadata.PodcastMetadataEvent @StringRes fun kindDisplayName(kind: Int): Int = when (kind) { - AcceptedBadgeSetEvent.KIND -> R.string.kind_accepted_badge_set - AdvertisedRelayListEvent.KIND -> R.string.kind_outbox_relays - AppDefinitionEvent.KIND -> R.string.kind_apps - AppRecommendationEvent.KIND -> R.string.kind_app_recommendations - AppSpecificDataEvent.KIND -> R.string.kind_user_settings - AudioHeaderEvent.KIND -> R.string.kind_audio_header - AudioTrackEvent.KIND -> R.string.kind_audio_track - MusicTrackEvent.KIND -> R.string.kind_music_track - MusicPlaylistEvent.KIND -> R.string.kind_music_playlist - PodcastEpisodeEvent.KIND -> R.string.kind_podcast_episode - PodcastMetadataEvent.KIND -> R.string.kind_podcast_metadata - AuthoredPodcastsEvent.KIND -> R.string.kind_authored_podcasts - FavoritePodcastsListEvent.KIND -> R.string.kind_favorite_podcasts - AttestationEvent.KIND -> R.string.attestation - AttestationRequestEvent.KIND -> R.string.attestation_request - AttestorRecommendationEvent.KIND -> R.string.attestor_recommendation - AttestorProficiencyEvent.KIND -> R.string.attestor_proficiency - BadgeAwardEvent.KIND -> R.string.kind_badge_awards - BadgeDefinitionEvent.KIND -> R.string.kind_badge_definitions - BlockedRelayListEvent.KIND -> R.string.kind_blocked_relays - BlossomServersEvent.KIND -> R.string.kind_blossom_servers - NestsServersEvent.KIND -> R.string.kind_nests_servers - BlossomAuthorizationEvent.KIND -> R.string.kind_blossom_auth - BroadcastRelayListEvent.KIND -> R.string.kind_broadcast_relays - BookmarkListEvent.KIND -> R.string.kind_bookmark_list - OldBookmarkListEvent.KIND -> R.string.kind_old_bookmark_list - CalendarDateSlotEvent.KIND -> R.string.kind_day_appointment - CalendarEvent.KIND -> R.string.kind_calendar - CalendarTimeSlotEvent.KIND -> R.string.kind_appointment - CalendarRSVPEvent.KIND -> R.string.kind_appt_rsvp - ChessGameEvent.KIND -> R.string.kind_chess_games - JesterEvent.KIND -> R.string.kind_chess_auth - RelayFeedsListEvent.KIND -> R.string.kind_favorite_relays - LiveChessGameChallengeEvent.KIND -> R.string.kind_chess_challenges - LiveChessGameAcceptEvent.KIND -> R.string.kind_chess_game_accept - LiveChessMoveEvent.KIND -> R.string.kind_chess_move - LiveChessGameEndEvent.KIND -> R.string.kind_chess_game_end - LiveChessDrawOfferEvent.KIND -> R.string.kind_chess_draw_offer - ChannelCreateEvent.KIND -> R.string.kind_channel_definition - ChannelHideMessageEvent.KIND -> R.string.kind_channel_hide_msg - ChannelListEvent.KIND -> R.string.kind_channel_list - ChannelMessageEvent.KIND -> R.string.kind_channel_message - ChannelMetadataEvent.KIND -> R.string.kind_channel_metadata - ChannelMuteUserEvent.KIND -> R.string.kind_channel_mute_user - ChatMessageEncryptedFileHeaderEvent.KIND -> R.string.kind_dm_file - ChatMessageEvent.KIND -> R.string.kind_dm_message - ChatMessageRelayListEvent.KIND -> R.string.kind_dm_relays - ClassifiedsEvent.KIND -> R.string.kind_classifieds - CommentEvent.KIND -> R.string.kind_comments - CommunityDefinitionEvent.KIND -> R.string.kind_community_def - CommunityListEvent.KIND -> R.string.kind_community_list - CommunityPostApprovalEvent.KIND -> R.string.kind_community_post - ContactListEvent.KIND -> R.string.kind_follow_list - DeletionEvent.KIND -> R.string.kind_deletions - DraftWrapEvent.KIND -> R.string.kind_drafts - EmojiPackEvent.KIND -> R.string.kind_emoji_packs - EmojiPackSelectionEvent.KIND -> R.string.kind_emoji_pack_list - EphemeralChatEvent.KIND -> R.string.kind_ephemeral_chat - EphemeralChatListEvent.KIND -> R.string.kind_ephemeral_chatrooms - FileHeaderEvent.KIND -> R.string.kind_file_headers - ProfileGalleryEntryEvent.KIND -> R.string.kind_profile_gallery - FileServersEvent.KIND -> R.string.kind_file_servers - FileStorageEvent.KIND -> R.string.kind_blob_data - FileStorageHeaderEvent.KIND -> R.string.kind_blob_headers - FhirResourceEvent.KIND -> R.string.kind_medical_data - FollowListEvent.KIND -> R.string.kind_follow_packs - GenericRepostEvent.KIND -> R.string.kind_reposts_16 - GeohashListEvent.KIND -> R.string.kind_geohash_follows - GiftWrapEvent.KIND -> R.string.kind_gift_wraps - EphemeralGiftWrapEvent.KIND -> R.string.kind_gift_wraps - GitIssueEvent.KIND -> R.string.kind_git_issue - GitPatchEvent.KIND -> R.string.kind_git_patch - GitPullRequestEvent.KIND -> R.string.kind_git_pr - GitPullRequestUpdateEvent.KIND -> R.string.kind_git_pr_update - GitRepositoryEvent.KIND -> R.string.kind_git_repo - GitReplyEvent.KIND -> R.string.kind_git_reply - GitStatusOpenEvent.KIND -> R.string.kind_git_status_open - GitStatusAppliedEvent.KIND -> R.string.kind_git_status_applied - GitStatusClosedEvent.KIND -> R.string.kind_git_status_closed - GitStatusDraftEvent.KIND -> R.string.kind_git_status_draft - GoalEvent.KIND -> R.string.kind_zap_goals - HashtagListEvent.KIND -> R.string.kind_hashtag_follows - HighlightEvent.KIND -> R.string.kind_highlights - HTTPAuthorizationEvent.KIND -> R.string.kind_http_auth - IndexerRelayListEvent.KIND -> R.string.kind_index_relay_list - InteractiveStoryPrologueEvent.KIND -> R.string.kind_adventure_prologue - InteractiveStorySceneEvent.KIND -> R.string.kind_adventure_scene - InteractiveStoryReadingStateEvent.KIND -> R.string.kind_adventure_reading - LabeledBookmarkListEvent.KIND -> R.string.kind_named_bookmarks - LiveActivitiesChatMessageEvent.KIND -> R.string.kind_live_chats - LiveActivitiesEvent.KIND -> R.string.kind_live_streams - LnZapEvent.KIND -> R.string.kind_zaps - Bolt12ZapEvent.KIND -> R.string.kind_zaps - LnZapPaymentRequestEvent.KIND -> R.string.kind_nwc_request - LnZapPaymentResponseEvent.KIND -> R.string.kind_nwc_response - LnZapPrivateEvent.KIND -> R.string.kind_private_zaps - LnZapRequestEvent.KIND -> R.string.kind_zap_req - LongTextNoteEvent.KIND -> R.string.kind_blogs - MeetingRoomEvent.KIND -> R.string.kind_meeting_room - MeetingRoomPresenceEvent.KIND -> R.string.kind_room_presence - MeetingSpaceEvent.KIND -> R.string.kind_meeting_space - MetadataEvent.KIND -> R.string.kind_profile - MuteListEvent.KIND -> R.string.kind_mute_list - NNSEvent.KIND -> R.string.kind_nns - NipTextEvent.KIND -> R.string.kind_nip - NostrConnectEvent.KIND -> R.string.kind_nostr_connect - NIP90StatusEvent.KIND -> R.string.kind_dvm_status - NIP90ContentDiscoveryRequestEvent.KIND -> R.string.kind_dvm_content_req - NIP90ContentDiscoveryResponseEvent.KIND -> R.string.kind_dvm_content_resp - NIP90UserDiscoveryRequestEvent.KIND -> R.string.kind_dvm_user_req - NIP90UserDiscoveryResponseEvent.KIND -> R.string.kind_dvm_user_resp - OtsEvent.KIND -> R.string.kind_ots - PaymentTargetsEvent.KIND -> R.string.kind_pay_to - PeopleListEvent.KIND -> R.string.kind_people_lists - ProfileBadgesEvent.KIND -> R.string.kind_profile_badges - PictureEvent.KIND -> R.string.kind_pictures - WorkoutRecordEvent.KIND -> R.string.kind_workouts - PinListEvent.KIND -> R.string.kind_pins - ZapPollEvent.KIND -> R.string.kind_zap_poll - PollEvent.KIND -> R.string.kind_poll - PollResponseEvent.KIND -> R.string.kind_poll_response - PrivateDmEvent.KIND -> R.string.kind_nip04_dms - PrivateOutboxRelayListEvent.KIND -> R.string.kind_private_relays - ProxyRelayListEvent.KIND -> R.string.kind_proxy_relays - PublicMessageEvent.KIND -> R.string.kind_public_message - ReactionEvent.KIND -> R.string.kind_reactions - ContactCardEvent.KIND -> R.string.kind_contact_card - RelayAuthEvent.KIND -> R.string.kind_relay_auth - RelayDiscoveryEvent.KIND -> R.string.kind_relay_discovery - RelayMonitorEvent.KIND -> R.string.kind_relay_monitor - RelaySetEvent.KIND -> R.string.kind_relay_set - ReportEvent.KIND -> R.string.kind_reports - RepostEvent.KIND -> R.string.kind_reposts - RequestToVanishEvent.KIND -> R.string.kind_user_delete - SealedRumorEvent.KIND -> R.string.kind_seals - SearchRelayListEvent.KIND -> R.string.kind_search_relays - StatusEvent.KIND -> R.string.kind_user_status - TextNoteEvent.KIND -> R.string.kind_notes - TextNoteModificationEvent.KIND -> R.string.kind_edits - TorrentEvent.KIND -> R.string.kind_torrents - TorrentCommentEvent.KIND -> R.string.kind_torrent_comments - TrustedRelayListEvent.KIND -> R.string.kind_trusted_relays - TrustProviderListEvent.KIND -> R.string.kind_trusted_providers - VideoCurationSetEvent.KIND -> R.string.kind_video_list - VideoCollaborationEvent.KIND -> R.string.kind_video_collaboration - TextTrackEvent.KIND -> R.string.kind_video_subtitles - VideoHorizontalEvent.KIND -> R.string.kind_video_repl - VideoVerticalEvent.KIND -> R.string.kind_shorts_repl - VideoNormalEvent.KIND -> R.string.kind_video - VideoShortEvent.KIND -> R.string.kind_shorts - VoiceEvent.KIND -> R.string.kind_voice_msg - VoiceReplyEvent.KIND -> R.string.kind_voice_reply - WakeUpEvent.KIND -> R.string.kind_wake - WebBookmarkEvent.KIND -> R.string.kind_web_bookmark - WikiNoteEvent.KIND -> R.string.kind_wiki + AcceptedBadgeSetEvent.KIND -> Res.string.kind_accepted_badge_set + AdvertisedRelayListEvent.KIND -> Res.string.kind_outbox_relays + AppDefinitionEvent.KIND -> Res.string.kind_apps + AppRecommendationEvent.KIND -> Res.string.kind_app_recommendations + AppSpecificDataEvent.KIND -> Res.string.kind_user_settings + AudioHeaderEvent.KIND -> Res.string.kind_audio_header + AudioTrackEvent.KIND -> Res.string.kind_audio_track + MusicTrackEvent.KIND -> Res.string.kind_music_track + MusicPlaylistEvent.KIND -> Res.string.kind_music_playlist + PodcastEpisodeEvent.KIND -> Res.string.kind_podcast_episode + PodcastMetadataEvent.KIND -> Res.string.kind_podcast_metadata + AuthoredPodcastsEvent.KIND -> Res.string.kind_authored_podcasts + FavoritePodcastsListEvent.KIND -> Res.string.kind_favorite_podcasts + AttestationEvent.KIND -> Res.string.attestation + AttestationRequestEvent.KIND -> Res.string.attestation_request + AttestorRecommendationEvent.KIND -> Res.string.attestor_recommendation + AttestorProficiencyEvent.KIND -> Res.string.attestor_proficiency + BadgeAwardEvent.KIND -> Res.string.kind_badge_awards + BadgeDefinitionEvent.KIND -> Res.string.kind_badge_definitions + BlockedRelayListEvent.KIND -> Res.string.kind_blocked_relays + BlossomServersEvent.KIND -> Res.string.kind_blossom_servers + NestsServersEvent.KIND -> Res.string.kind_nests_servers + BlossomAuthorizationEvent.KIND -> Res.string.kind_blossom_auth + BroadcastRelayListEvent.KIND -> Res.string.kind_broadcast_relays + BookmarkListEvent.KIND -> Res.string.kind_bookmark_list + OldBookmarkListEvent.KIND -> Res.string.kind_old_bookmark_list + CalendarDateSlotEvent.KIND -> Res.string.kind_day_appointment + CalendarEvent.KIND -> Res.string.kind_calendar + CalendarTimeSlotEvent.KIND -> Res.string.kind_appointment + CalendarRSVPEvent.KIND -> Res.string.kind_appt_rsvp + ChessGameEvent.KIND -> Res.string.kind_chess_games + JesterEvent.KIND -> Res.string.kind_chess_auth + RelayFeedsListEvent.KIND -> Res.string.kind_favorite_relays + LiveChessGameChallengeEvent.KIND -> Res.string.kind_chess_challenges + LiveChessGameAcceptEvent.KIND -> Res.string.kind_chess_game_accept + LiveChessMoveEvent.KIND -> Res.string.kind_chess_move + LiveChessGameEndEvent.KIND -> Res.string.kind_chess_game_end + LiveChessDrawOfferEvent.KIND -> Res.string.kind_chess_draw_offer + ChannelCreateEvent.KIND -> Res.string.kind_channel_definition + ChannelHideMessageEvent.KIND -> Res.string.kind_channel_hide_msg + ChannelListEvent.KIND -> Res.string.kind_channel_list + ChannelMessageEvent.KIND -> Res.string.kind_channel_message + ChannelMetadataEvent.KIND -> Res.string.kind_channel_metadata + ChannelMuteUserEvent.KIND -> Res.string.kind_channel_mute_user + ChatMessageEncryptedFileHeaderEvent.KIND -> Res.string.kind_dm_file + ChatMessageEvent.KIND -> Res.string.kind_dm_message + ChatMessageRelayListEvent.KIND -> Res.string.kind_dm_relays + ClassifiedsEvent.KIND -> Res.string.kind_classifieds + CommentEvent.KIND -> Res.string.kind_comments + CommunityDefinitionEvent.KIND -> Res.string.kind_community_def + CommunityListEvent.KIND -> Res.string.kind_community_list + CommunityPostApprovalEvent.KIND -> Res.string.kind_community_post + ContactListEvent.KIND -> Res.string.kind_follow_list + DeletionEvent.KIND -> Res.string.kind_deletions + DraftWrapEvent.KIND -> Res.string.kind_drafts + EmojiPackEvent.KIND -> Res.string.kind_emoji_packs + EmojiPackSelectionEvent.KIND -> Res.string.kind_emoji_pack_list + EphemeralChatEvent.KIND -> Res.string.kind_ephemeral_chat + EphemeralChatListEvent.KIND -> Res.string.kind_ephemeral_chatrooms + FileHeaderEvent.KIND -> Res.string.kind_file_headers + ProfileGalleryEntryEvent.KIND -> Res.string.kind_profile_gallery + FileServersEvent.KIND -> Res.string.kind_file_servers + FileStorageEvent.KIND -> Res.string.kind_blob_data + FileStorageHeaderEvent.KIND -> Res.string.kind_blob_headers + FhirResourceEvent.KIND -> Res.string.kind_medical_data + FollowListEvent.KIND -> Res.string.kind_follow_packs + GenericRepostEvent.KIND -> Res.string.kind_reposts_16 + GeohashListEvent.KIND -> Res.string.kind_geohash_follows + GiftWrapEvent.KIND -> Res.string.kind_gift_wraps + EphemeralGiftWrapEvent.KIND -> Res.string.kind_gift_wraps + GitIssueEvent.KIND -> Res.string.kind_git_issue + GitPatchEvent.KIND -> Res.string.kind_git_patch + GitPullRequestEvent.KIND -> Res.string.kind_git_pr + GitPullRequestUpdateEvent.KIND -> Res.string.kind_git_pr_update + GitRepositoryEvent.KIND -> Res.string.kind_git_repo + GitReplyEvent.KIND -> Res.string.kind_git_reply + GitStatusOpenEvent.KIND -> Res.string.kind_git_status_open + GitStatusAppliedEvent.KIND -> Res.string.kind_git_status_applied + GitStatusClosedEvent.KIND -> Res.string.kind_git_status_closed + GitStatusDraftEvent.KIND -> Res.string.kind_git_status_draft + GoalEvent.KIND -> Res.string.kind_zap_goals + HashtagListEvent.KIND -> Res.string.kind_hashtag_follows + HighlightEvent.KIND -> Res.string.kind_highlights + HTTPAuthorizationEvent.KIND -> Res.string.kind_http_auth + IndexerRelayListEvent.KIND -> Res.string.kind_index_relay_list + InteractiveStoryPrologueEvent.KIND -> Res.string.kind_adventure_prologue + InteractiveStorySceneEvent.KIND -> Res.string.kind_adventure_scene + InteractiveStoryReadingStateEvent.KIND -> Res.string.kind_adventure_reading + LabeledBookmarkListEvent.KIND -> Res.string.kind_named_bookmarks + LiveActivitiesChatMessageEvent.KIND -> Res.string.kind_live_chats + LiveActivitiesEvent.KIND -> Res.string.kind_live_streams + LnZapEvent.KIND -> Res.string.kind_zaps + Bolt12ZapEvent.KIND -> Res.string.kind_zaps + LnZapPaymentRequestEvent.KIND -> Res.string.kind_nwc_request + LnZapPaymentResponseEvent.KIND -> Res.string.kind_nwc_response + LnZapPrivateEvent.KIND -> Res.string.kind_private_zaps + LnZapRequestEvent.KIND -> Res.string.kind_zap_req + LongTextNoteEvent.KIND -> Res.string.kind_blogs + MeetingRoomEvent.KIND -> Res.string.kind_meeting_room + MeetingRoomPresenceEvent.KIND -> Res.string.kind_room_presence + MeetingSpaceEvent.KIND -> Res.string.kind_meeting_space + MetadataEvent.KIND -> Res.string.kind_profile + MuteListEvent.KIND -> Res.string.kind_mute_list + NNSEvent.KIND -> Res.string.kind_nns + NipTextEvent.KIND -> Res.string.kind_nip + NostrConnectEvent.KIND -> Res.string.kind_nostr_connect + NIP90StatusEvent.KIND -> Res.string.kind_dvm_status + NIP90ContentDiscoveryRequestEvent.KIND -> Res.string.kind_dvm_content_req + NIP90ContentDiscoveryResponseEvent.KIND -> Res.string.kind_dvm_content_resp + NIP90UserDiscoveryRequestEvent.KIND -> Res.string.kind_dvm_user_req + NIP90UserDiscoveryResponseEvent.KIND -> Res.string.kind_dvm_user_resp + OtsEvent.KIND -> Res.string.kind_ots + PaymentTargetsEvent.KIND -> Res.string.kind_pay_to + PeopleListEvent.KIND -> Res.string.kind_people_lists + ProfileBadgesEvent.KIND -> Res.string.kind_profile_badges + PictureEvent.KIND -> Res.string.kind_pictures + WorkoutRecordEvent.KIND -> Res.string.kind_workouts + PinListEvent.KIND -> Res.string.kind_pins + ZapPollEvent.KIND -> Res.string.kind_zap_poll + PollEvent.KIND -> Res.string.kind_poll + PollResponseEvent.KIND -> Res.string.kind_poll_response + PrivateDmEvent.KIND -> Res.string.kind_nip04_dms + PrivateOutboxRelayListEvent.KIND -> Res.string.kind_private_relays + ProxyRelayListEvent.KIND -> Res.string.kind_proxy_relays + PublicMessageEvent.KIND -> Res.string.kind_public_message + ReactionEvent.KIND -> Res.string.kind_reactions + ContactCardEvent.KIND -> Res.string.kind_contact_card + RelayAuthEvent.KIND -> Res.string.kind_relay_auth + RelayDiscoveryEvent.KIND -> Res.string.kind_relay_discovery + RelayMonitorEvent.KIND -> Res.string.kind_relay_monitor + RelaySetEvent.KIND -> Res.string.kind_relay_set + ReportEvent.KIND -> Res.string.kind_reports + RepostEvent.KIND -> Res.string.kind_reposts + RequestToVanishEvent.KIND -> Res.string.kind_user_delete + SealedRumorEvent.KIND -> Res.string.kind_seals + SearchRelayListEvent.KIND -> Res.string.kind_search_relays + StatusEvent.KIND -> Res.string.kind_user_status + TextNoteEvent.KIND -> Res.string.kind_notes + TextNoteModificationEvent.KIND -> Res.string.kind_edits + TorrentEvent.KIND -> Res.string.kind_torrents + TorrentCommentEvent.KIND -> Res.string.kind_torrent_comments + TrustedRelayListEvent.KIND -> Res.string.kind_trusted_relays + TrustProviderListEvent.KIND -> Res.string.kind_trusted_providers + VideoCurationSetEvent.KIND -> Res.string.kind_video_list + VideoCollaborationEvent.KIND -> Res.string.kind_video_collaboration + TextTrackEvent.KIND -> Res.string.kind_video_subtitles + VideoHorizontalEvent.KIND -> Res.string.kind_video_repl + VideoVerticalEvent.KIND -> Res.string.kind_shorts_repl + VideoNormalEvent.KIND -> Res.string.kind_video + VideoShortEvent.KIND -> Res.string.kind_shorts + VoiceEvent.KIND -> Res.string.kind_voice_msg + VoiceReplyEvent.KIND -> Res.string.kind_voice_reply + WakeUpEvent.KIND -> Res.string.kind_wake + WebBookmarkEvent.KIND -> Res.string.kind_web_bookmark + WikiNoteEvent.KIND -> Res.string.kind_wiki else -> -1 } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/RelayInformationScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/RelayInformationScreen.kt index b34fdbeceb..24ad016a27 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/RelayInformationScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/RelayInformationScreen.kt @@ -74,7 +74,6 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols @@ -94,6 +93,7 @@ import com.vitorpamplona.amethyst.commons.resources.content_size import com.vitorpamplona.amethyst.commons.resources.countries import com.vitorpamplona.amethyst.commons.resources.discards_older_than import com.vitorpamplona.amethyst.commons.resources.duplicated_post +import com.vitorpamplona.amethyst.commons.resources.errors import com.vitorpamplona.amethyst.commons.resources.event_retention import com.vitorpamplona.amethyst.commons.resources.fees_and_payments import com.vitorpamplona.amethyst.commons.resources.languages @@ -115,6 +115,7 @@ import com.vitorpamplona.amethyst.commons.resources.payment_required import com.vitorpamplona.amethyst.commons.resources.payments_url import com.vitorpamplona.amethyst.commons.resources.policies_and_links import com.vitorpamplona.amethyst.commons.resources.posting_policy +import com.vitorpamplona.amethyst.commons.resources.privacy_policy import com.vitorpamplona.amethyst.commons.resources.publication import com.vitorpamplona.amethyst.commons.resources.relay_active_subscriptions import com.vitorpamplona.amethyst.commons.resources.relay_count_subscriptions @@ -141,6 +142,7 @@ import com.vitorpamplona.amethyst.commons.resources.restricted_writes import com.vitorpamplona.amethyst.commons.resources.see_relay_feed import com.vitorpamplona.amethyst.commons.resources.self import com.vitorpamplona.amethyst.commons.resources.software +import com.vitorpamplona.amethyst.commons.resources.spam import com.vitorpamplona.amethyst.commons.resources.subscription import com.vitorpamplona.amethyst.commons.resources.supported_grasps import com.vitorpamplona.amethyst.commons.resources.supports @@ -642,7 +644,7 @@ private fun FilterVisual( // Since filter.since?.let { since -> FilterAttributeChip( - text = stringRes(Res.string.relay_filter_since, timeAgoNoDot(since, context)), + text = stringRes(Res.string.relay_filter_since, timeAgoNoDot(since)), color = MaterialTheme.colorScheme.surfaceVariant, textColor = MaterialTheme.colorScheme.onSurfaceVariant, ) @@ -651,7 +653,7 @@ private fun FilterVisual( // Until filter.until?.let { until -> FilterAttributeChip( - text = stringRes(Res.string.relay_filter_until, timeAgoNoDot(until, context)), + text = stringRes(Res.string.relay_filter_until, timeAgoNoDot(until)), ) } @@ -779,7 +781,7 @@ private fun RenderDebugMessage(msg: IRelayDebugMessage) { ) { // Timestamp with Monospace font for alignment Text( - text = timeAgoNoDot(msg.time, context), + text = timeAgoNoDot(msg.time), style = MaterialTheme.typography.labelSmall.copy(fontFamily = FontFamily.Monospace), color = MaterialTheme.colorScheme.onSurfaceVariant.copy(alpha = 0.6f), ) @@ -788,9 +790,9 @@ private fun RenderDebugMessage(msg: IRelayDebugMessage) { Text( text = when (msg) { - is ErrorDebugMessage -> stringRes(R.string.errors) + is ErrorDebugMessage -> stringRes(Res.string.errors) is NoticeDebugMessage -> stringRes(Res.string.relay_notice) - is SpamDebugMessage -> stringRes(R.string.spam) + is SpamDebugMessage -> stringRes(Res.string.spam) }, style = MaterialTheme.typography.labelSmall.copy( @@ -1365,13 +1367,13 @@ fun PoliciesCard(relay: Nip11RelayInformation) { val pp = relay.privacy_policy if (pp != null) { - ClickableInfoRow(MaterialSymbols.PrivacyTip, stringRes(R.string.privacy_policy), pp.removePrefix(HTTPS_PREFIX)) { + ClickableInfoRow(MaterialSymbols.PrivacyTip, stringRes(Res.string.privacy_policy), pp.removePrefix(HTTPS_PREFIX)) { runCatching { uri.openUri(pp) } } } else { - InfoRow(MaterialSymbols.PrivacyTip, stringRes(R.string.privacy_policy), stringRes(Res.string.not_available_acronym)) + InfoRow(MaterialSymbols.PrivacyTip, stringRes(Res.string.privacy_policy), stringRes(Res.string.not_available_acronym)) } val ts = relay.terms_of_service @@ -1441,7 +1443,7 @@ private fun RelayMonitorReportCard( } Text( - text = timeAgoNoDot(event.createdAt, context), + text = timeAgoNoDot(event.createdAt), style = MaterialTheme.typography.labelSmall, color = MaterialTheme.colorScheme.onSurfaceVariant.copy(alpha = 0.6f), ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayExporter.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayExporter.kt index ff226f4c81..e9c8d29582 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayExporter.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayExporter.kt @@ -22,7 +22,9 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.common import android.content.Context import android.content.Intent -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.export_relay_settings +import com.vitorpamplona.amethyst.commons.resources.relay_settings class RelayExporter( val context: Context, @@ -35,20 +37,20 @@ class RelayExporter( action = Intent.ACTION_SEND type = "text/plain" putExtra(Intent.EXTRA_TEXT, text) - putExtra(Intent.EXTRA_TITLE, context.getString(R.string.export_relay_settings)) + putExtra(Intent.EXTRA_TITLE, context.getString(Res.string.export_relay_settings)) } val shareIntent = Intent.createChooser( sendIntent, - context.getString(R.string.export_relay_settings), + context.getString(Res.string.export_relay_settings), ) context.startActivity(shareIntent) } fun buildExportText(collection: RelayListCollection): String { val builder = StringBuilder() - builder.appendLine("# ${context.getString(R.string.relay_settings)}") + builder.appendLine("# ${context.getString(Res.string.relay_settings)}") builder.appendLine() collection.sections().forEach { section -> diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayListCollection.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayListCollection.kt index 126f208a6a..4b7dff2198 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayListCollection.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayListCollection.kt @@ -20,7 +20,31 @@ */ package com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.common -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.blocked_section +import com.vitorpamplona.amethyst.commons.resources.blocked_section_explainer +import com.vitorpamplona.amethyst.commons.resources.broadcast_section +import com.vitorpamplona.amethyst.commons.resources.broadcast_section_explainer +import com.vitorpamplona.amethyst.commons.resources.favorite_section +import com.vitorpamplona.amethyst.commons.resources.favorite_section_explainer +import com.vitorpamplona.amethyst.commons.resources.indexer_section +import com.vitorpamplona.amethyst.commons.resources.indexer_section_explainer +import com.vitorpamplona.amethyst.commons.resources.local_section +import com.vitorpamplona.amethyst.commons.resources.local_section_explainer +import com.vitorpamplona.amethyst.commons.resources.private_inbox_section +import com.vitorpamplona.amethyst.commons.resources.private_inbox_section_explainer +import com.vitorpamplona.amethyst.commons.resources.private_outbox_section +import com.vitorpamplona.amethyst.commons.resources.private_outbox_section_explainer +import com.vitorpamplona.amethyst.commons.resources.proxy_section +import com.vitorpamplona.amethyst.commons.resources.proxy_section_explainer +import com.vitorpamplona.amethyst.commons.resources.public_home_section +import com.vitorpamplona.amethyst.commons.resources.public_home_section_explainer +import com.vitorpamplona.amethyst.commons.resources.public_notif_section +import com.vitorpamplona.amethyst.commons.resources.public_notif_section_explainer +import com.vitorpamplona.amethyst.commons.resources.search_section +import com.vitorpamplona.amethyst.commons.resources.search_section_explainer +import com.vitorpamplona.amethyst.commons.resources.trusted_section +import com.vitorpamplona.amethyst.commons.resources.trusted_section_explainer data class RelayListCollection( val homeRelays: List, @@ -38,18 +62,18 @@ data class RelayListCollection( ) { fun sections(): List = listOf( - RelaySection("home", R.string.public_home_section, R.string.public_home_section_explainer, homeRelays), - RelaySection("notifications", R.string.public_notif_section, R.string.public_notif_section_explainer, notifRelays), - RelaySection("private_inbox", R.string.private_inbox_section, R.string.private_inbox_section_explainer, dmRelays), - RelaySection("private_outbox", R.string.private_outbox_section, R.string.private_outbox_section_explainer, privateOutboxRelays), - RelaySection("proxy", R.string.proxy_section, R.string.proxy_section_explainer, proxyRelays), - RelaySection("broadcast", R.string.broadcast_section, R.string.broadcast_section_explainer, broadcastRelays), - RelaySection("indexer", R.string.indexer_section, R.string.indexer_section_explainer, indexerRelays), - RelaySection("search", R.string.search_section, R.string.search_section_explainer, searchRelays), - RelaySection("local", R.string.local_section, R.string.local_section_explainer, localRelays), - RelaySection("trusted", R.string.trusted_section, R.string.trusted_section_explainer, trustedRelays), - RelaySection("favorites", R.string.favorite_section, R.string.favorite_section_explainer, favoriteRelays), - RelaySection("blocked", R.string.blocked_section, R.string.blocked_section_explainer, blockedRelays), + RelaySection("home", Res.string.public_home_section, Res.string.public_home_section_explainer, homeRelays), + RelaySection("notifications", Res.string.public_notif_section, Res.string.public_notif_section_explainer, notifRelays), + RelaySection("private_inbox", Res.string.private_inbox_section, Res.string.private_inbox_section_explainer, dmRelays), + RelaySection("private_outbox", Res.string.private_outbox_section, Res.string.private_outbox_section_explainer, privateOutboxRelays), + RelaySection("proxy", Res.string.proxy_section, Res.string.proxy_section_explainer, proxyRelays), + RelaySection("broadcast", Res.string.broadcast_section, Res.string.broadcast_section_explainer, broadcastRelays), + RelaySection("indexer", Res.string.indexer_section, Res.string.indexer_section_explainer, indexerRelays), + RelaySection("search", Res.string.search_section, Res.string.search_section_explainer, searchRelays), + RelaySection("local", Res.string.local_section, Res.string.local_section_explainer, localRelays), + RelaySection("trusted", Res.string.trusted_section, Res.string.trusted_section_explainer, trustedRelays), + RelaySection("favorites", Res.string.favorite_section, Res.string.favorite_section_explainer, favoriteRelays), + RelaySection("blocked", Res.string.blocked_section, Res.string.blocked_section_explainer, blockedRelays), ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayNameAndRemoveButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayNameAndRemoveButton.kt index 9f170e3e47..12da200c02 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayNameAndRemoveButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayNameAndRemoveButton.kt @@ -41,6 +41,7 @@ import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.paid_relay +import com.vitorpamplona.amethyst.commons.resources.remove import com.vitorpamplona.amethyst.commons.resources.tor_relay import com.vitorpamplona.amethyst.ui.components.util.setText import com.vitorpamplona.amethyst.ui.painterRes @@ -109,7 +110,7 @@ fun RelayNameAndRemoveButton( ) { Icon( symbol = MaterialSymbols.Cancel, - contentDescription = stringRes(id = R.string.remove), + contentDescription = stringRes(id = Res.string.remove), modifier = Modifier .padding(start = 10.dp) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayStatusRow.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayStatusRow.kt index b444354b05..653294eea5 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayStatusRow.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayStatusRow.kt @@ -33,9 +33,18 @@ import androidx.compose.ui.input.pointer.pointerInput import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.connection_success_rate_description +import com.vitorpamplona.amethyst.commons.resources.errors +import com.vitorpamplona.amethyst.commons.resources.read_from_relay +import com.vitorpamplona.amethyst.commons.resources.read_from_relay_description +import com.vitorpamplona.amethyst.commons.resources.spam +import com.vitorpamplona.amethyst.commons.resources.spam_description +import com.vitorpamplona.amethyst.commons.resources.uptime +import com.vitorpamplona.amethyst.commons.resources.write_to_relay +import com.vitorpamplona.amethyst.commons.resources.write_to_relay_description import com.vitorpamplona.amethyst.commons.util.countToHumanReadable import com.vitorpamplona.amethyst.commons.util.countToHumanReadableBytes import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel @@ -99,8 +108,8 @@ fun RelayStatusRow( }, onLongPress = { accountViewModel.toastManager.toast( - R.string.read_from_relay, - R.string.read_from_relay_description, + Res.string.read_from_relay, + Res.string.read_from_relay_description, ) }, ) @@ -108,7 +117,7 @@ fun RelayStatusRow( ) { Icon( symbol = MaterialSymbols.Download, - contentDescription = stringRes(R.string.read_from_relay), + contentDescription = stringRes(Res.string.read_from_relay), modifier = Size15Modifier, tint = MaterialTheme.colorScheme.allGoodColor, ) @@ -131,8 +140,8 @@ fun RelayStatusRow( }, onLongPress = { accountViewModel.toastManager.toast( - R.string.write_to_relay, - R.string.write_to_relay_description, + Res.string.write_to_relay, + Res.string.write_to_relay_description, ) }, ) @@ -140,7 +149,7 @@ fun RelayStatusRow( ) { Icon( symbol = MaterialSymbols.Upload, - stringRes(R.string.write_to_relay), + stringRes(Res.string.write_to_relay), modifier = Size15Modifier, tint = MaterialTheme.colorScheme.allGoodColor, ) @@ -163,8 +172,8 @@ fun RelayStatusRow( }, onLongPress = { accountViewModel.toastManager.toast( - R.string.errors, - R.string.connection_success_rate_description, + Res.string.errors, + Res.string.connection_success_rate_description, ) }, ) @@ -174,7 +183,7 @@ fun RelayStatusRow( Icon( symbol = MaterialSymbols.SyncProblem, - stringRes(R.string.errors), + stringRes(Res.string.errors), modifier = Size15Modifier, tint = if (successRate < 0.1) { @@ -187,7 +196,7 @@ fun RelayStatusRow( ) Text( - text = stringResource(R.string.uptime, successRate), + text = stringResource(Res.string.uptime, successRate), maxLines = 1, fontSize = Font12SP, modifier = HalfStartPadding, @@ -204,8 +213,8 @@ fun RelayStatusRow( }, onLongPress = { accountViewModel.toastManager.toast( - R.string.spam, - R.string.spam_description, + Res.string.spam, + Res.string.spam_description, ) }, ) @@ -214,7 +223,7 @@ fun RelayStatusRow( ) { Icon( symbol = MaterialSymbols.DeleteSweep, - stringRes(R.string.spam), + stringRes(Res.string.spam), modifier = Size15Modifier, tint = if (item.relayStat.spamCounter > 0) { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayUrlEditField.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayUrlEditField.kt index 2031db8c4e..b3b26f4bf7 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayUrlEditField.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayUrlEditField.kt @@ -45,8 +45,8 @@ import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.add import com.vitorpamplona.amethyst.commons.resources.add_a_relay import com.vitorpamplona.amethyst.commons.resources.relay_url_not_valid import com.vitorpamplona.amethyst.model.nip11RelayInfo.Nip11CachedRetriever @@ -250,7 +250,7 @@ fun RelayUrlEditField( ), modifier = StdEndPadding, ) { - Text(text = stringRes(id = R.string.add), color = Color.White) + Text(text = stringRes(id = Res.string.add), color = Color.White) } }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayZipExporter.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayZipExporter.kt index d1613f5e30..baab777c39 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayZipExporter.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/RelayZipExporter.kt @@ -23,7 +23,8 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.common import android.content.Context import android.content.Intent import androidx.core.content.FileProvider -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.export_relay_settings import java.io.File import java.io.FileOutputStream import java.util.zip.ZipEntry @@ -47,14 +48,14 @@ class RelayZipExporter( action = Intent.ACTION_SEND type = "application/zip" putExtra(Intent.EXTRA_STREAM, uri) - putExtra(Intent.EXTRA_TITLE, context.getString(R.string.export_relay_settings)) + putExtra(Intent.EXTRA_TITLE, context.getString(Res.string.export_relay_settings)) addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) } val shareIntent = Intent.createChooser( sendIntent, - context.getString(R.string.export_relay_settings), + context.getString(Res.string.export_relay_settings), ) context.startActivity(shareIntent) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/SubPurposeLabels.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/SubPurposeLabels.kt index b4254ebbc5..de9d541b33 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/SubPurposeLabels.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/common/SubPurposeLabels.kt @@ -20,9 +20,65 @@ */ package com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.common -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.relayClient.subscriptions.SubPurpose import com.vitorpamplona.amethyst.commons.relayClient.subscriptions.SubPurposeGroup +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.kind_follow_list +import com.vitorpamplona.amethyst.commons.resources.kind_profile +import com.vitorpamplona.amethyst.commons.resources.marmot_group +import com.vitorpamplona.amethyst.commons.resources.nests +import com.vitorpamplona.amethyst.commons.resources.public_chat +import com.vitorpamplona.amethyst.commons.resources.relay_explain_account_data +import com.vitorpamplona.amethyst.commons.resources.relay_explain_community_chats +import com.vitorpamplona.amethyst.commons.resources.relay_explain_direct_messages +import com.vitorpamplona.amethyst.commons.resources.relay_explain_encrypted_groups +import com.vitorpamplona.amethyst.commons.resources.relay_explain_engagement +import com.vitorpamplona.amethyst.commons.resources.relay_explain_ephemeral_chats +import com.vitorpamplona.amethyst.commons.resources.relay_explain_follows +import com.vitorpamplona.amethyst.commons.resources.relay_explain_geohash_chats +import com.vitorpamplona.amethyst.commons.resources.relay_explain_home +import com.vitorpamplona.amethyst.commons.resources.relay_explain_live_chat +import com.vitorpamplona.amethyst.commons.resources.relay_explain_live_rooms +import com.vitorpamplona.amethyst.commons.resources.relay_explain_mint_directory +import com.vitorpamplona.amethyst.commons.resources.relay_explain_moderation +import com.vitorpamplona.amethyst.commons.resources.relay_explain_notifications +import com.vitorpamplona.amethyst.commons.resources.relay_explain_nutzap_inbox +import com.vitorpamplona.amethyst.commons.resources.relay_explain_nwc +import com.vitorpamplona.amethyst.commons.resources.relay_explain_profiles +import com.vitorpamplona.amethyst.commons.resources.relay_explain_public_chats +import com.vitorpamplona.amethyst.commons.resources.relay_explain_referenced +import com.vitorpamplona.amethyst.commons.resources.relay_explain_relay_groups +import com.vitorpamplona.amethyst.commons.resources.relay_explain_relay_lists +import com.vitorpamplona.amethyst.commons.resources.relay_explain_wallet +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_add_ons +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_community_chats +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_community_feeds +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_dm_inbox +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_engagement +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_ephemeral_chats +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_geohash_chats +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_home_feed +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_live_chat +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_media +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_mint_directory +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_nutzap_inbox +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_nwc +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_observing_profiles +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_other +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_referenced +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_relay_groups +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_relay_info +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_relay_list_finder +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_reports_from_follows +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_search +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_tags +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_thread +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_topics +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_your_account +import com.vitorpamplona.amethyst.commons.resources.relay_purpose_your_wallet +import com.vitorpamplona.amethyst.commons.resources.route_chess +import com.vitorpamplona.amethyst.commons.resources.route_discover +import com.vitorpamplona.amethyst.commons.resources.route_notifications /** * The one place a [SubPurpose] becomes words, shared by the relay screens and the always-on @@ -39,43 +95,43 @@ object SubPurposeLabels { fun labelOf(purpose: SubPurpose): Int = when (purpose) { // account — always on - SubPurpose.ACCOUNT_DATA -> R.string.relay_purpose_your_account - SubPurpose.PROFILE_METADATA -> R.string.relay_purpose_observing_profiles - SubPurpose.RELAY_LISTS -> R.string.relay_purpose_relay_list_finder - SubPurpose.FOLLOW_LISTS -> R.string.kind_follow_list - SubPurpose.MODERATION -> R.string.relay_purpose_reports_from_follows - SubPurpose.WALLET -> R.string.relay_purpose_your_wallet - SubPurpose.NUTZAP_INBOX -> R.string.relay_purpose_nutzap_inbox - SubPurpose.MINT_DIRECTORY -> R.string.relay_purpose_mint_directory - SubPurpose.NWC -> R.string.relay_purpose_nwc + SubPurpose.ACCOUNT_DATA -> Res.string.relay_purpose_your_account + SubPurpose.PROFILE_METADATA -> Res.string.relay_purpose_observing_profiles + SubPurpose.RELAY_LISTS -> Res.string.relay_purpose_relay_list_finder + SubPurpose.FOLLOW_LISTS -> Res.string.kind_follow_list + SubPurpose.MODERATION -> Res.string.relay_purpose_reports_from_follows + SubPurpose.WALLET -> Res.string.relay_purpose_your_wallet + SubPurpose.NUTZAP_INBOX -> Res.string.relay_purpose_nutzap_inbox + SubPurpose.MINT_DIRECTORY -> Res.string.relay_purpose_mint_directory + SubPurpose.NWC -> Res.string.relay_purpose_nwc // messages — always on - SubPurpose.NOTIFICATIONS -> R.string.route_notifications - SubPurpose.DIRECT_MESSAGES -> R.string.relay_purpose_dm_inbox - SubPurpose.PUBLIC_CHATS -> R.string.public_chat - SubPurpose.RELAY_GROUPS -> R.string.relay_purpose_relay_groups - SubPurpose.EPHEMERAL_CHATS -> R.string.relay_purpose_ephemeral_chats - SubPurpose.GEOHASH_CHATS -> R.string.relay_purpose_geohash_chats - SubPurpose.LIVE_CHAT -> R.string.relay_purpose_live_chat - SubPurpose.COMMUNITY_CHATS -> R.string.relay_purpose_community_chats - SubPurpose.ENCRYPTED_GROUPS -> R.string.marmot_group - SubPurpose.LIVE_ROOMS -> R.string.nests + SubPurpose.NOTIFICATIONS -> Res.string.route_notifications + SubPurpose.DIRECT_MESSAGES -> Res.string.relay_purpose_dm_inbox + SubPurpose.PUBLIC_CHATS -> Res.string.public_chat + SubPurpose.RELAY_GROUPS -> Res.string.relay_purpose_relay_groups + SubPurpose.EPHEMERAL_CHATS -> Res.string.relay_purpose_ephemeral_chats + SubPurpose.GEOHASH_CHATS -> Res.string.relay_purpose_geohash_chats + SubPurpose.LIVE_CHAT -> Res.string.relay_purpose_live_chat + SubPurpose.COMMUNITY_CHATS -> Res.string.relay_purpose_community_chats + SubPurpose.ENCRYPTED_GROUPS -> Res.string.marmot_group + SubPurpose.LIVE_ROOMS -> Res.string.nests // feeds - SubPurpose.HOME_FEED -> R.string.relay_purpose_home_feed - SubPurpose.DISCOVER_FEED -> R.string.route_discover - SubPurpose.MEDIA_FEED -> R.string.relay_purpose_media - SubPurpose.TAG_FEED -> R.string.relay_purpose_tags - SubPurpose.COMMUNITY_FEED -> R.string.relay_purpose_community_feeds - SubPurpose.TOPIC_FEED -> R.string.relay_purpose_topics + SubPurpose.HOME_FEED -> Res.string.relay_purpose_home_feed + SubPurpose.DISCOVER_FEED -> Res.string.route_discover + SubPurpose.MEDIA_FEED -> Res.string.relay_purpose_media + SubPurpose.TAG_FEED -> Res.string.relay_purpose_tags + SubPurpose.COMMUNITY_FEED -> Res.string.relay_purpose_community_feeds + SubPurpose.TOPIC_FEED -> Res.string.relay_purpose_topics // current screen - SubPurpose.THREAD -> R.string.relay_purpose_thread - SubPurpose.USER_PROFILE -> R.string.kind_profile - SubPurpose.SEARCH -> R.string.relay_purpose_search - SubPurpose.ENGAGEMENT -> R.string.relay_purpose_engagement - SubPurpose.REFERENCED_EVENTS -> R.string.relay_purpose_referenced - SubPurpose.ADD_ONS -> R.string.relay_purpose_add_ons - SubPurpose.GAMES -> R.string.route_chess - SubPurpose.RELAY_INFO -> R.string.relay_purpose_relay_info - SubPurpose.OTHER -> R.string.relay_purpose_other + SubPurpose.THREAD -> Res.string.relay_purpose_thread + SubPurpose.USER_PROFILE -> Res.string.kind_profile + SubPurpose.SEARCH -> Res.string.relay_purpose_search + SubPurpose.ENGAGEMENT -> Res.string.relay_purpose_engagement + SubPurpose.REFERENCED_EVENTS -> Res.string.relay_purpose_referenced + SubPurpose.ADD_ONS -> Res.string.relay_purpose_add_ons + SubPurpose.GAMES -> Res.string.route_chess + SubPurpose.RELAY_INFO -> Res.string.relay_purpose_relay_info + SubPurpose.OTHER -> Res.string.relay_purpose_other } /** @@ -99,28 +155,28 @@ object SubPurposeLabels { */ fun explainerOf(purpose: SubPurpose): Int? = when (purpose) { - SubPurpose.NOTIFICATIONS -> R.string.relay_explain_notifications - SubPurpose.DIRECT_MESSAGES -> R.string.relay_explain_direct_messages - SubPurpose.PUBLIC_CHATS -> R.string.relay_explain_public_chats - SubPurpose.RELAY_GROUPS -> R.string.relay_explain_relay_groups - SubPurpose.EPHEMERAL_CHATS -> R.string.relay_explain_ephemeral_chats - SubPurpose.GEOHASH_CHATS -> R.string.relay_explain_geohash_chats - SubPurpose.LIVE_CHAT -> R.string.relay_explain_live_chat - SubPurpose.COMMUNITY_CHATS -> R.string.relay_explain_community_chats - SubPurpose.ENCRYPTED_GROUPS -> R.string.relay_explain_encrypted_groups - SubPurpose.LIVE_ROOMS -> R.string.relay_explain_live_rooms - SubPurpose.ACCOUNT_DATA -> R.string.relay_explain_account_data - SubPurpose.PROFILE_METADATA -> R.string.relay_explain_profiles - SubPurpose.RELAY_LISTS -> R.string.relay_explain_relay_lists - SubPurpose.FOLLOW_LISTS -> R.string.relay_explain_follows - SubPurpose.MODERATION -> R.string.relay_explain_moderation - SubPurpose.WALLET -> R.string.relay_explain_wallet - SubPurpose.NUTZAP_INBOX -> R.string.relay_explain_nutzap_inbox - SubPurpose.MINT_DIRECTORY -> R.string.relay_explain_mint_directory - SubPurpose.NWC -> R.string.relay_explain_nwc - SubPurpose.HOME_FEED -> R.string.relay_explain_home - SubPurpose.ENGAGEMENT -> R.string.relay_explain_engagement - SubPurpose.REFERENCED_EVENTS -> R.string.relay_explain_referenced + SubPurpose.NOTIFICATIONS -> Res.string.relay_explain_notifications + SubPurpose.DIRECT_MESSAGES -> Res.string.relay_explain_direct_messages + SubPurpose.PUBLIC_CHATS -> Res.string.relay_explain_public_chats + SubPurpose.RELAY_GROUPS -> Res.string.relay_explain_relay_groups + SubPurpose.EPHEMERAL_CHATS -> Res.string.relay_explain_ephemeral_chats + SubPurpose.GEOHASH_CHATS -> Res.string.relay_explain_geohash_chats + SubPurpose.LIVE_CHAT -> Res.string.relay_explain_live_chat + SubPurpose.COMMUNITY_CHATS -> Res.string.relay_explain_community_chats + SubPurpose.ENCRYPTED_GROUPS -> Res.string.relay_explain_encrypted_groups + SubPurpose.LIVE_ROOMS -> Res.string.relay_explain_live_rooms + SubPurpose.ACCOUNT_DATA -> Res.string.relay_explain_account_data + SubPurpose.PROFILE_METADATA -> Res.string.relay_explain_profiles + SubPurpose.RELAY_LISTS -> Res.string.relay_explain_relay_lists + SubPurpose.FOLLOW_LISTS -> Res.string.relay_explain_follows + SubPurpose.MODERATION -> Res.string.relay_explain_moderation + SubPurpose.WALLET -> Res.string.relay_explain_wallet + SubPurpose.NUTZAP_INBOX -> Res.string.relay_explain_nutzap_inbox + SubPurpose.MINT_DIRECTORY -> Res.string.relay_explain_mint_directory + SubPurpose.NWC -> Res.string.relay_explain_nwc + SubPurpose.HOME_FEED -> Res.string.relay_explain_home + SubPurpose.ENGAGEMENT -> Res.string.relay_explain_engagement + SubPurpose.REFERENCED_EVENTS -> Res.string.relay_explain_referenced else -> null } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/connected/ConnectedRelayListView.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/connected/ConnectedRelayListView.kt index 8023dafcf3..435c6e499b 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/connected/ConnectedRelayListView.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/connected/ConnectedRelayListView.kt @@ -37,7 +37,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.active_subs_title import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.navs.rememberExtendedNav import com.vitorpamplona.amethyst.ui.navigation.routes.Route @@ -85,7 +86,7 @@ fun LazyListScope.renderConnectedItems( .padding(horizontal = 16.dp, vertical = 12.dp), ) { Text( - text = stringRes(R.string.active_subs_title), + text = stringRes(Res.string.active_subs_title), style = MaterialTheme.typography.bodyMedium, color = MaterialTheme.colorScheme.primary, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/dm/AddDMRelayListDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/dm/AddDMRelayListDialog.kt index 9037f8a9b7..4b6c6ad263 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/dm/AddDMRelayListDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/dm/AddDMRelayListDialog.kt @@ -37,12 +37,12 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.defaults.DefaultDMRelayList import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.default_relays_longer import com.vitorpamplona.amethyst.commons.resources.dm_relays_not_found_editing import com.vitorpamplona.amethyst.commons.resources.dm_relays_not_found_examples2 +import com.vitorpamplona.amethyst.commons.resources.dm_relays_title import com.vitorpamplona.amethyst.ui.components.SetDialogToEdgeToEdge import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.topbars.SavingTopBar @@ -75,7 +75,7 @@ fun AddDMRelayListDialog( Scaffold( topBar = { SavingTopBar( - titleRes = R.string.dm_relays_title, + titleRes = Res.string.dm_relays_title, onCancel = { postViewModel.clear() onClose() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/dm/DMRelayListViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/dm/DMRelayListViewModel.kt index 22b1917584..5e5bf68732 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/dm/DMRelayListViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/dm/DMRelayListViewModel.kt @@ -21,7 +21,8 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.dm import androidx.compose.runtime.Stable -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.dms import com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.common.BasicRelaySetupInfoModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.common.CountFilter import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter @@ -41,7 +42,7 @@ class DMRelayListViewModel : BasicRelaySetupInfoModel() { override fun countFilters(relayUrl: NormalizedRelayUrl): List = listOf( CountFilter( - label = R.string.dms, + label = Res.string.dms, filter = Filter( kinds = listOf(GiftWrapEvent.KIND, EphemeralGiftWrapEvent.KIND, PrivateDmEvent.KIND), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/eventsync/EventSyncScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/eventsync/EventSyncScreen.kt index b1c05b57cc..90f705deda 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/eventsync/EventSyncScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/eventsync/EventSyncScreen.kt @@ -66,7 +66,6 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.event_sync_activity_log import com.vitorpamplona.amethyst.commons.resources.event_sync_activity_log_finished @@ -101,6 +100,7 @@ import com.vitorpamplona.amethyst.commons.resources.event_sync_status_error import com.vitorpamplona.amethyst.commons.resources.event_sync_step1 import com.vitorpamplona.amethyst.commons.resources.event_sync_step2 import com.vitorpamplona.amethyst.commons.resources.event_sync_step3 +import com.vitorpamplona.amethyst.commons.resources.event_sync_title import com.vitorpamplona.amethyst.commons.resources.event_sync_what_happens_body import com.vitorpamplona.amethyst.commons.resources.event_sync_what_happens_title import com.vitorpamplona.amethyst.commons.resources.event_sync_wifi_warning @@ -127,7 +127,7 @@ fun EventSyncScreen( Scaffold( topBar = { TopBarWithBackButton( - caption = stringRes(R.string.event_sync_title), + caption = stringRes(Res.string.event_sync_title), nav = nav, ) }, @@ -685,7 +685,7 @@ private fun ActivityLogRow(info: EventSync.LiveSyncActivity.SourceRelayInfo) { val eventsAccepted by info.eventsAccepted.collectAsStateWithLifecycle() untilPage?.let { Text( - text = stringRes(Res.string.event_sync_less_than_until, timeAgoNoDotNoDay(it, context)), + text = stringRes(Res.string.event_sync_less_than_until, timeAgoNoDotNoDay(it)), style = MaterialTheme.typography.bodySmall, color = textColor, modifier = Modifier.weight(0.3f), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/indexer/IndexerRelayListViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/indexer/IndexerRelayListViewModel.kt index 9b53017dc7..1b5e8a58a6 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/indexer/IndexerRelayListViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/indexer/IndexerRelayListViewModel.kt @@ -21,7 +21,9 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.indexer import androidx.compose.runtime.Stable -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.profiles +import com.vitorpamplona.amethyst.commons.resources.relay_settings_lower2 import com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.common.BasicRelaySetupInfoModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.common.CountFilter import com.vitorpamplona.quartz.nip01Core.metadata.MetadataEvent @@ -42,11 +44,11 @@ class IndexerRelayListViewModel : BasicRelaySetupInfoModel() { override fun countFilters(relayUrl: NormalizedRelayUrl): List = listOf( CountFilter( - label = R.string.profiles, + label = Res.string.profiles, filter = Filter(kinds = listOf(MetadataEvent.KIND)), ), CountFilter( - label = R.string.relay_settings_lower2, + label = Res.string.relay_settings_lower2, filter = Filter(kinds = listOf(AdvertisedRelayListEvent.KIND)), ), ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/keyPackage/KeyPackageRelayListViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/keyPackage/KeyPackageRelayListViewModel.kt index 510a5f5533..1c6cd8da9b 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/keyPackage/KeyPackageRelayListViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/keyPackage/KeyPackageRelayListViewModel.kt @@ -21,7 +21,8 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.keyPackage import androidx.compose.runtime.Stable -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.keypackages import com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.common.BasicRelaySetupInfoModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.common.CountFilter import com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageEvent @@ -39,7 +40,7 @@ class KeyPackageRelayListViewModel : BasicRelaySetupInfoModel() { override fun countFilters(relayUrl: NormalizedRelayUrl): List = listOf( CountFilter( - label = R.string.keypackages, + label = Res.string.keypackages, filter = Filter( kinds = listOf(KeyPackageEvent.KIND), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/local/LocalRelayListView.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/local/LocalRelayListView.kt index 6c9bff9a92..42589e3841 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/local/LocalRelayListView.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/local/LocalRelayListView.kt @@ -31,7 +31,9 @@ import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.send_kind0_to_local_relay_description +import com.vitorpamplona.amethyst.commons.resources.send_kind0_to_local_relay_title import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.navs.rememberExtendedNav import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel @@ -97,8 +99,8 @@ fun LazyListScope.renderLocalItems( Spacer(modifier = StdVertSpacer) if (feedState.isNotEmpty()) { SettingsRow( - R.string.send_kind0_to_local_relay_title, - R.string.send_kind0_to_local_relay_description, + Res.string.send_kind0_to_local_relay_title, + Res.string.send_kind0_to_local_relay_description, SettingsCategorySpacingWithHorzBorderModifier, ) { val checked by accountViewModel.account.settings.syncedSettings.security.sendKind0EventsToLocalRelay diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/nip37/PrivateOutboxRelayListViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/nip37/PrivateOutboxRelayListViewModel.kt index de158507f2..250929e9b4 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/nip37/PrivateOutboxRelayListViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/nip37/PrivateOutboxRelayListViewModel.kt @@ -21,7 +21,8 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.nip37 import androidx.compose.runtime.Stable -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.events_from_you import com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.common.BasicRelaySetupInfoModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.common.CountFilter import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter @@ -40,7 +41,7 @@ class PrivateOutboxRelayListViewModel : BasicRelaySetupInfoModel() { override fun countFilters(relayUrl: NormalizedRelayUrl): List = listOf( CountFilter( - label = R.string.events_from_you, + label = Res.string.events_from_you, filter = Filter(authors = listOf(account.pubKey)), ), ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/nip65/Nip65RelayListViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/nip65/Nip65RelayListViewModel.kt index 05b76dbaf2..19dd98abe1 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/nip65/Nip65RelayListViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/nip65/Nip65RelayListViewModel.kt @@ -24,7 +24,9 @@ import androidx.compose.runtime.Stable import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.events_from_you +import com.vitorpamplona.amethyst.commons.resources.events_to_you import com.vitorpamplona.amethyst.commons.util.replace import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel @@ -137,7 +139,7 @@ class Nip65RelayListViewModel : ViewModel() { RelayCountResult( listOf( RelayCountResult.CountEntry( - label = R.string.events_from_you, + label = Res.string.events_from_you, count = result.count, approximate = result.approximate, ), @@ -156,7 +158,7 @@ class Nip65RelayListViewModel : ViewModel() { RelayCountResult( listOf( RelayCountResult.CountEntry( - label = R.string.events_to_you, + label = Res.string.events_to_you, count = result.count, approximate = result.approximate, ), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/nip86/RelayManagementScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/nip86/RelayManagementScreen.kt index 1a58a2cff7..e48cac37c8 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/nip86/RelayManagementScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/nip86/RelayManagementScreen.kt @@ -74,7 +74,6 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.User @@ -117,6 +116,11 @@ import com.vitorpamplona.amethyst.commons.resources.relay_management_relay_descr import com.vitorpamplona.amethyst.commons.resources.relay_management_relay_icon_url import com.vitorpamplona.amethyst.commons.resources.relay_management_relay_name import com.vitorpamplona.amethyst.commons.resources.relay_management_remove +import com.vitorpamplona.amethyst.commons.resources.relay_management_tab_events +import com.vitorpamplona.amethyst.commons.resources.relay_management_tab_ips +import com.vitorpamplona.amethyst.commons.resources.relay_management_tab_kinds +import com.vitorpamplona.amethyst.commons.resources.relay_management_tab_pubkeys +import com.vitorpamplona.amethyst.commons.resources.relay_management_tab_settings import com.vitorpamplona.amethyst.commons.resources.relay_management_title import com.vitorpamplona.amethyst.commons.resources.search_and_add_a_user import com.vitorpamplona.amethyst.service.relayClient.searchCommand.UserSearchDataSourceSubscription @@ -378,11 +382,11 @@ private fun RelayManagementContent( private enum class ManagementTab( val titleRes: Int, ) { - PUBKEYS(R.string.relay_management_tab_pubkeys), - EVENTS(R.string.relay_management_tab_events), - KINDS(R.string.relay_management_tab_kinds), - IPS(R.string.relay_management_tab_ips), - SETTINGS(R.string.relay_management_tab_settings), + PUBKEYS(Res.string.relay_management_tab_pubkeys), + EVENTS(Res.string.relay_management_tab_events), + KINDS(Res.string.relay_management_tab_kinds), + IPS(Res.string.relay_management_tab_ips), + SETTINGS(Res.string.relay_management_tab_settings), } // Pubkeys Tab diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/search/SearchRelayListViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/search/SearchRelayListViewModel.kt index 7351f83493..a135b19586 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/search/SearchRelayListViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/search/SearchRelayListViewModel.kt @@ -21,7 +21,8 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.search import androidx.compose.runtime.Stable -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.searchable_events import com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.common.BasicRelaySetupInfoModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.common.CountFilter import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter @@ -40,7 +41,7 @@ class SearchRelayListViewModel : BasicRelaySetupInfoModel() { override fun countFilters(relayUrl: NormalizedRelayUrl): List = listOf( CountFilter( - label = R.string.searchable_events, + label = Res.string.searchable_events, filter = Filter(), ), ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/subscriptions/ActiveSubscriptionsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/subscriptions/ActiveSubscriptionsScreen.kt index c55c3122d7..150fba4f53 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/subscriptions/ActiveSubscriptionsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/subscriptions/ActiveSubscriptionsScreen.kt @@ -59,7 +59,6 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.model.topNavFeeds.IFeedTopNavPerRelayFilter import com.vitorpamplona.amethyst.commons.model.topNavFeeds.allFollows.AllFollowsTopNavPerRelayFilter @@ -73,14 +72,20 @@ import com.vitorpamplona.amethyst.commons.model.topNavFeeds.noteBased.muted.Mute import com.vitorpamplona.amethyst.commons.relayClient.subscriptions.SubPurpose import com.vitorpamplona.amethyst.commons.relayClient.subscriptions.SubPurposeGroup import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.active_subs_filters +import com.vitorpamplona.amethyst.commons.resources.active_subs_groups import com.vitorpamplona.amethyst.commons.resources.active_subs_no_entity +import com.vitorpamplona.amethyst.commons.resources.active_subs_relays import com.vitorpamplona.amethyst.commons.resources.active_subs_scope_algo import com.vitorpamplona.amethyst.commons.resources.active_subs_scope_all_communities import com.vitorpamplona.amethyst.commons.resources.active_subs_scope_authors import com.vitorpamplona.amethyst.commons.resources.active_subs_scope_follows import com.vitorpamplona.amethyst.commons.resources.active_subs_scope_global import com.vitorpamplona.amethyst.commons.resources.active_subs_scope_muted +import com.vitorpamplona.amethyst.commons.resources.active_subs_share +import com.vitorpamplona.amethyst.commons.resources.active_subs_title import com.vitorpamplona.amethyst.commons.resources.active_subs_unattributed +import com.vitorpamplona.amethyst.commons.resources.active_subs_untagged import com.vitorpamplona.amethyst.commons.resources.marmot_group_fallback_name import com.vitorpamplona.amethyst.model.nip11RelayInfo.loadRelayInfo import com.vitorpamplona.amethyst.ui.components.RobohashFallbackAsyncImage @@ -125,7 +130,7 @@ fun ActiveSubscriptionsScreen( val state by viewModel.state.collectAsStateWithLifecycle() Scaffold( - topBar = { TopBarWithBackButton(stringRes(R.string.active_subs_title), nav) }, + topBar = { TopBarWithBackButton(stringRes(Res.string.active_subs_title), nav) }, ) { pad -> LazyColumn( modifier = Modifier.padding(pad).fillMaxWidth(), @@ -153,13 +158,13 @@ private fun TotalsHeader(state: ActiveSubscriptionsState) { ) { Column(Modifier.padding(16.dp)) { Text( - text = pluralStringResource(R.plurals.active_subs_filters, state.totalFilters, state.totalFilters), + text = pluralStringResource(Res.plurals.active_subs_filters, state.totalFilters, state.totalFilters), style = MaterialTheme.typography.headlineSmall, fontWeight = FontWeight.Bold, color = MaterialTheme.colorScheme.onSurfaceVariant, ) Text( - text = pluralStringResource(R.plurals.active_subs_relays, state.totalRelays, state.totalRelays), + text = pluralStringResource(Res.plurals.active_subs_relays, state.totalRelays, state.totalRelays), style = MaterialTheme.typography.bodyMedium, color = MaterialTheme.colorScheme.onSurfaceVariant, ) @@ -168,7 +173,7 @@ private fun TotalsHeader(state: ActiveSubscriptionsState) { // explain, and a total that claims to be fully attributed would defeat the point. Spacer(Modifier.height(6.dp)) Text( - text = pluralStringResource(R.plurals.active_subs_untagged, state.untaggedFilters, state.untaggedFilters), + text = pluralStringResource(Res.plurals.active_subs_untagged, state.untaggedFilters, state.untaggedFilters), style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.placeholderText, ) @@ -194,7 +199,7 @@ private fun AccountHeader(account: SubscriptionAccountRow) { modifier = Modifier.weight(1f), ) Text( - text = pluralStringResource(R.plurals.active_subs_relays, account.relays.size, account.relays.size), + text = pluralStringResource(Res.plurals.active_subs_relays, account.relays.size, account.relays.size), style = MaterialTheme.typography.labelMedium, color = MaterialTheme.colorScheme.placeholderText, ) @@ -236,7 +241,7 @@ private fun PurposeCard( modifier = Modifier.weight(1f), ) Text( - text = pluralStringResource(R.plurals.active_subs_filters, row.filterCount, row.filterCount), + text = pluralStringResource(Res.plurals.active_subs_filters, row.filterCount, row.filterCount), style = MaterialTheme.typography.labelMedium, color = MaterialTheme.colorScheme.placeholderText, ) @@ -254,13 +259,13 @@ private fun PurposeCard( Row(verticalAlignment = Alignment.CenterVertically, modifier = Modifier.fillMaxWidth()) { Text( - text = pluralStringResource(R.plurals.active_subs_relays, row.relays.size, row.relays.size), + text = pluralStringResource(Res.plurals.active_subs_relays, row.relays.size, row.relays.size), style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.placeholderText, modifier = Modifier.weight(1f), ) Text( - text = stringRes(R.string.active_subs_share, (share * 100).roundToInt()), + text = stringRes(Res.string.active_subs_share, (share * 100).roundToInt()), style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.placeholderText, ) @@ -379,7 +384,7 @@ private fun RelayGroupedEntities( ) { RelayLine(relay, accountViewModel, modifier = Modifier.weight(1f)) Text( - text = pluralStringResource(R.plurals.active_subs_groups, hosted.size, hosted.size), + text = pluralStringResource(Res.plurals.active_subs_groups, hosted.size, hosted.size), style = MaterialTheme.typography.labelMedium, color = MaterialTheme.colorScheme.placeholderText, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/vanish/RequestToVanishScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/vanish/RequestToVanishScreen.kt index 9603083caa..173af5ec4f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/vanish/RequestToVanishScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/relays/vanish/RequestToVanishScreen.kt @@ -66,12 +66,13 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.confirm import com.vitorpamplona.amethyst.commons.resources.next +import com.vitorpamplona.amethyst.commons.resources.request_to_vanish import com.vitorpamplona.amethyst.commons.resources.request_to_vanish_description import com.vitorpamplona.amethyst.commons.resources.vanish_all_relays import com.vitorpamplona.amethyst.commons.resources.vanish_all_relays_warning @@ -82,6 +83,7 @@ import com.vitorpamplona.amethyst.commons.resources.vanish_date_explainer import com.vitorpamplona.amethyst.commons.resources.vanish_date_label import com.vitorpamplona.amethyst.commons.resources.vanish_reason_label import com.vitorpamplona.amethyst.commons.resources.vanish_reason_placeholder +import com.vitorpamplona.amethyst.commons.resources.vanish_request_sent import com.vitorpamplona.amethyst.commons.resources.vanish_select_date import com.vitorpamplona.amethyst.commons.resources.vanish_select_time import com.vitorpamplona.amethyst.commons.resources.vanish_send_request @@ -167,7 +169,7 @@ fun RequestToVanishScreen( Scaffold( topBar = { - TopBarWithBackButton(stringRes(id = R.string.request_to_vanish), nav) + TopBarWithBackButton(stringRes(id = Res.string.request_to_vanish), nav) }, ) { padding -> Column( @@ -411,8 +413,8 @@ fun RequestToVanishScreen( } } accountViewModel.toastManager.toast( - R.string.request_to_vanish, - R.string.vanish_request_sent, + Res.string.request_to_vanish, + Res.string.vanish_request_sent, ) nav.popBack() }, @@ -473,7 +475,7 @@ private fun ConfirmVanishDialog( }, dismissButton = { TextButton(onClick = onDismiss) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/report/ReportNoteDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/report/ReportNoteDialog.kt index bb7381fa28..dc49c62556 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/report/ReportNoteDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/report/ReportNoteDialog.kt @@ -53,14 +53,15 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.block_only import com.vitorpamplona.amethyst.commons.resources.report_dialog_additional_reason_label import com.vitorpamplona.amethyst.commons.resources.report_dialog_additional_reason_placeholder +import com.vitorpamplona.amethyst.commons.resources.report_dialog_block_hide_user_btn import com.vitorpamplona.amethyst.commons.resources.report_dialog_blocking_a_user import com.vitorpamplona.amethyst.commons.resources.report_dialog_illegal import com.vitorpamplona.amethyst.commons.resources.report_dialog_impersonation @@ -129,14 +130,14 @@ fun ReportNoteDialog( verticalArrangement = Arrangement.SpaceAround, ) { SpacerH16() - SectionHeader(text = stringRes(id = R.string.block_only)) + SectionHeader(text = stringRes(id = Res.string.block_only)) SpacerH16() Text( text = stringRes(Res.string.report_dialog_blocking_a_user), ) SpacerH16() ActionButton( - text = stringRes(R.string.report_dialog_block_hide_user_btn), + text = stringRes(Res.string.report_dialog_block_hide_user_btn), icon = MaterialSymbols.Block, onClick = { note.author?.let { accountViewModel.hide(it) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/scheduledposts/ScheduledPostsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/scheduledposts/ScheduledPostsScreen.kt index 73c2e1c616..61982855cc 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/scheduledposts/ScheduledPostsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/scheduledposts/ScheduledPostsScreen.kt @@ -91,14 +91,32 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.new_post +import com.vitorpamplona.amethyst.commons.resources.quick_action_copy_note_id +import com.vitorpamplona.amethyst.commons.resources.quick_action_delete import com.vitorpamplona.amethyst.commons.resources.relays +import com.vitorpamplona.amethyst.commons.resources.retry +import com.vitorpamplona.amethyst.commons.resources.scheduled_posts +import com.vitorpamplona.amethyst.commons.resources.scheduled_posts_action_send_now +import com.vitorpamplona.amethyst.commons.resources.scheduled_posts_at_time +import com.vitorpamplona.amethyst.commons.resources.scheduled_posts_at_time_past +import com.vitorpamplona.amethyst.commons.resources.scheduled_posts_day_tomorrow import com.vitorpamplona.amethyst.commons.resources.scheduled_posts_empty_hint import com.vitorpamplona.amethyst.commons.resources.scheduled_posts_empty_title +import com.vitorpamplona.amethyst.commons.resources.scheduled_posts_error_prefix +import com.vitorpamplona.amethyst.commons.resources.scheduled_posts_event_id_copied +import com.vitorpamplona.amethyst.commons.resources.scheduled_posts_relay_count +import com.vitorpamplona.amethyst.commons.resources.scheduled_posts_status_cancelled +import com.vitorpamplona.amethyst.commons.resources.scheduled_posts_status_failed +import com.vitorpamplona.amethyst.commons.resources.scheduled_posts_status_pending +import com.vitorpamplona.amethyst.commons.resources.scheduled_posts_status_publishing +import com.vitorpamplona.amethyst.commons.resources.scheduled_posts_status_sent +import com.vitorpamplona.amethyst.commons.resources.scheduled_posts_subtitle_due_suffix +import com.vitorpamplona.amethyst.commons.resources.scheduled_posts_subtitle_queued +import com.vitorpamplona.amethyst.commons.resources.today import com.vitorpamplona.amethyst.commons.scheduledposts.ScheduledPost import com.vitorpamplona.amethyst.commons.scheduledposts.ScheduledPostStatus import com.vitorpamplona.amethyst.service.scheduledposts.ScheduledPostWorker @@ -165,18 +183,18 @@ fun ScheduledPostsScreen( expandedHeight = barHeight, title = { Column(modifier = Modifier.semantics(mergeDescendants = true) {}) { - Text(stringRes(R.string.scheduled_posts)) + Text(stringRes(Res.string.scheduled_posts)) if (totalActive > 0) { val queuedText = pluralStringResource( - id = R.plurals.scheduled_posts_subtitle_queued, + id = Res.plurals.scheduled_posts_subtitle_queued, count = totalActive, totalActive, ) val dueText = if (dueSoonCount > 0) { pluralStringResource( - id = R.plurals.scheduled_posts_subtitle_due_suffix, + id = Res.plurals.scheduled_posts_subtitle_due_suffix, count = dueSoonCount, dueSoonCount, ) @@ -222,7 +240,7 @@ fun ScheduledPostsScreen( ) { groups.forEach { group -> stickyHeader(key = group.day) { - DayHeader(group.day, today, context) + DayHeader(group.day, today) } items(group.posts, key = { it.id }) { post -> val isExpanded = expandedId == post.id @@ -260,7 +278,7 @@ fun ScheduledPostsScreen( SwipeToDeleteWithConfirmation( modifier = Modifier.fillMaxWidth().animateContentSize(), onDelete = { viewModel.cancel(post.id) }, - confirmLabelRes = R.string.quick_action_delete, + confirmLabelRes = Res.string.quick_action_delete, ) { ScheduledPostCardCollapsed( post = post, @@ -313,7 +331,7 @@ private fun ScheduledPostCardCollapsed( val media = remember(post.id) { extractFirstMediaUrl(post) } val relayCountText = pluralStringResource( - id = R.plurals.scheduled_posts_relay_count, + id = Res.plurals.scheduled_posts_relay_count, count = post.relayUrls.size, post.relayUrls.size, ) @@ -361,7 +379,7 @@ private fun ScheduledPostCardCollapsed( ) { StatusPill(post.status) Text( - text = formatAtTime(post.publishAtSec, nowSec, context), + text = formatAtTime(post.publishAtSec, nowSec), style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.onSurfaceVariant, ) @@ -425,7 +443,7 @@ private fun ScheduledPostCardExpandedPanel( if (eventId != null) { Column { - SectionLabel(stringRes(R.string.quick_action_copy_note_id)) + SectionLabel(stringRes(Res.string.quick_action_copy_note_id)) Text( text = eventId, style = MaterialTheme.typography.bodySmall.copy(fontFamily = FontFamily.Monospace), @@ -440,7 +458,7 @@ private fun ScheduledPostCardExpandedPanel( Toast .makeText( context, - stringRes(context, R.string.scheduled_posts_event_id_copied), + stringRes(Res.string.scheduled_posts_event_id_copied), Toast.LENGTH_SHORT, ).show() }, @@ -452,7 +470,7 @@ private fun ScheduledPostCardExpandedPanel( val err = post.lastError if (post.status == ScheduledPostStatus.FAILED && !err.isNullOrBlank()) { Text( - text = stringRes(R.string.scheduled_posts_error_prefix, err), + text = stringRes(Res.string.scheduled_posts_error_prefix, err), style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.error, ) @@ -466,9 +484,9 @@ private fun ScheduledPostCardExpandedPanel( ) { val labelRes = when (post.status) { - ScheduledPostStatus.FAILED -> R.string.retry - ScheduledPostStatus.PUBLISHING -> R.string.scheduled_posts_status_publishing - else -> R.string.scheduled_posts_action_send_now + ScheduledPostStatus.FAILED -> Res.string.retry + ScheduledPostStatus.PUBLISHING -> Res.string.scheduled_posts_status_publishing + else -> Res.string.scheduled_posts_action_send_now } Text(stringRes(labelRes)) } @@ -480,7 +498,7 @@ private fun ScheduledPostCardExpandedPanel( contentColor = MaterialTheme.colorScheme.error, ), ) { - Text(stringRes(R.string.quick_action_delete)) + Text(stringRes(Res.string.quick_action_delete)) } } } @@ -501,14 +519,13 @@ private fun SectionLabel(text: String) { private fun DayHeader( day: LocalDate, today: LocalDate, - context: android.content.Context, ) { Surface( color = MaterialTheme.colorScheme.background, modifier = Modifier.fillMaxWidth(), ) { Text( - text = formatDayHeader(day, today, context), + text = formatDayHeader(day, today), style = MaterialTheme.typography.titleSmall, fontWeight = FontWeight.SemiBold, color = MaterialTheme.colorScheme.onSurfaceVariant, @@ -522,23 +539,23 @@ private fun StatusPill(status: ScheduledPostStatus) { val (labelRes, color, pulse) = when (status) { ScheduledPostStatus.PENDING -> { - Triple(R.string.scheduled_posts_status_pending, MaterialTheme.colorScheme.primary, false) + Triple(Res.string.scheduled_posts_status_pending, MaterialTheme.colorScheme.primary, false) } ScheduledPostStatus.PUBLISHING -> { - Triple(R.string.scheduled_posts_status_publishing, PublishingAmber, true) + Triple(Res.string.scheduled_posts_status_publishing, PublishingAmber, true) } ScheduledPostStatus.FAILED -> { - Triple(R.string.scheduled_posts_status_failed, MaterialTheme.colorScheme.error, false) + Triple(Res.string.scheduled_posts_status_failed, MaterialTheme.colorScheme.error, false) } ScheduledPostStatus.SENT -> { - Triple(R.string.scheduled_posts_status_sent, MaterialTheme.colorScheme.tertiary, false) + Triple(Res.string.scheduled_posts_status_sent, MaterialTheme.colorScheme.tertiary, false) } ScheduledPostStatus.CANCELLED -> { - Triple(R.string.scheduled_posts_status_cancelled, MaterialTheme.colorScheme.onSurfaceVariant, false) + Triple(Res.string.scheduled_posts_status_cancelled, MaterialTheme.colorScheme.onSurfaceVariant, false) } } val dotAlpha = @@ -632,10 +649,10 @@ private fun EmptyState( private val shortTimeFormatter: DateTimeFormatter = DateTimeFormatter.ofLocalizedTime(FormatStyle.SHORT) private val fullDateFormatter: DateTimeFormatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL) +@Composable private fun formatAtTime( publishAtSec: Long, nowSec: Long, - context: android.content.Context, ): String { val absolute = Instant @@ -644,19 +661,19 @@ private fun formatAtTime( .toLocalTime() .format(shortTimeFormatter) return if (publishAtSec > nowSec) { - stringRes(context, R.string.scheduled_posts_at_time, absolute, timeAheadNoDot(publishAtSec, context)) + stringRes(Res.string.scheduled_posts_at_time, absolute, timeAheadNoDot(publishAtSec)) } else { - stringRes(context, R.string.scheduled_posts_at_time_past, absolute, timeAgoNoDot(publishAtSec, context).trim()) + stringRes(Res.string.scheduled_posts_at_time_past, absolute, timeAgoNoDot(publishAtSec).trim()) } } +@Composable private fun formatDayHeader( day: LocalDate, today: LocalDate, - context: android.content.Context, ): String = when (day) { - today -> stringRes(context, R.string.today) - today.plusDays(1) -> stringRes(context, R.string.scheduled_posts_day_tomorrow) + today -> stringRes(Res.string.today) + today.plusDays(1) -> stringRes(Res.string.scheduled_posts_day_tomorrow) else -> day.format(fullDateFormatter) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/search/AddSearchRelayListDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/search/AddSearchRelayListDialog.kt index 90f5a4de97..6ea16c178f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/search/AddSearchRelayListDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/search/AddSearchRelayListDialog.kt @@ -37,11 +37,12 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.defaults.DefaultSearchRelayList import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.default_relays_longer import com.vitorpamplona.amethyst.commons.resources.search_relays_not_found_editing +import com.vitorpamplona.amethyst.commons.resources.search_relays_not_found_examples +import com.vitorpamplona.amethyst.commons.resources.search_relays_title import com.vitorpamplona.amethyst.ui.components.SetDialogToEdgeToEdge import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.topbars.SavingTopBar @@ -77,7 +78,7 @@ fun AddSearchRelayListDialog( Scaffold( topBar = { SavingTopBar( - titleRes = R.string.search_relays_title, + titleRes = Res.string.search_relays_title, onCancel = { postViewModel.clear() onClose() @@ -120,7 +121,7 @@ private fun Explanation(postViewModel: SearchRelayListViewModel) { Text( text = stringRes( - R.string.search_relays_not_found_examples, + Res.string.search_relays_not_found_examples, DefaultSearchRelayList.joinToString("\n") { " - ${it.displayUrl()}" }, ), ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/search/SearchScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/search/SearchScreen.kt index 4a6fde7ba4..702962b30f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/search/SearchScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/search/SearchScreen.kt @@ -81,11 +81,11 @@ import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.ephemeral_relay_chat import com.vitorpamplona.amethyst.commons.resources.npub_hex_username import com.vitorpamplona.amethyst.commons.resources.search_by_hashtag import com.vitorpamplona.amethyst.commons.resources.search_filters_open @@ -879,7 +879,7 @@ private fun DisplaySearchResults( ) }, channelLastTime = null, - channelLastContent = stringRes(R.string.ephemeral_relay_chat), + channelLastContent = stringRes(Res.string.ephemeral_relay_chat), hasNewMessages = false, loadProfilePicture = accountViewModel.settings.showProfilePictures(), loadRobohash = accountViewModel.settings.isNotPerformanceMode(), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/AllSettingsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/AllSettingsScreen.kt index c47fa6859d..7d8e27cd56 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/AllSettingsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/AllSettingsScreen.kt @@ -51,13 +51,15 @@ import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.reset_marmot_confirm_action import com.vitorpamplona.amethyst.commons.resources.reset_marmot_confirm_body import com.vitorpamplona.amethyst.commons.resources.reset_marmot_confirm_title +import com.vitorpamplona.amethyst.commons.resources.reset_marmot_failure +import com.vitorpamplona.amethyst.commons.resources.reset_marmot_success import com.vitorpamplona.amethyst.commons.resources.settings_search_no_results import com.vitorpamplona.amethyst.ui.navigation.bottombars.AppBottomBar import com.vitorpamplona.amethyst.ui.navigation.navs.EmptyNav @@ -115,7 +117,7 @@ fun AllSettingsScreen( filterSettings( catalog = catalog, query = query, - stringLookup = { stringRes(context, it) }, + stringLookup = { stringRes(it) }, ) Scaffold( @@ -167,7 +169,7 @@ fun AllSettingsScreen( showResetMarmotDialog = false isResettingMarmot = true scope.launch(Dispatchers.IO) { - val successMessage = stringRes(context, R.string.reset_marmot_success) + val successMessage = stringRes(Res.string.reset_marmot_success) try { accountViewModel.resetMarmotState() launch(Dispatchers.Main) { @@ -175,7 +177,7 @@ fun AllSettingsScreen( } } catch (e: Exception) { val failureMessage = - stringRes(context, R.string.reset_marmot_failure, e.message ?: "") + stringRes(Res.string.reset_marmot_failure, e.message ?: "") launch(Dispatchers.Main) { Toast.makeText(context, failureMessage, Toast.LENGTH_LONG).show() } @@ -273,7 +275,7 @@ private fun ResetMarmotStateDialog( }, dismissButton = { TextButton(onClick = onDismiss) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/AppSettingsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/AppSettingsScreen.kt index 8e294d8547..e51a008b85 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/AppSettingsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/AppSettingsScreen.kt @@ -78,8 +78,41 @@ import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.accent_color import com.vitorpamplona.amethyst.commons.resources.accent_color_description import com.vitorpamplona.amethyst.commons.resources.application_preferences +import com.vitorpamplona.amethyst.commons.resources.automatically_hide_nav_bars +import com.vitorpamplona.amethyst.commons.resources.automatically_hide_nav_bars_description +import com.vitorpamplona.amethyst.commons.resources.automatically_load_images_gifs +import com.vitorpamplona.amethyst.commons.resources.automatically_load_images_gifs_description +import com.vitorpamplona.amethyst.commons.resources.automatically_play_videos +import com.vitorpamplona.amethyst.commons.resources.automatically_play_videos_description +import com.vitorpamplona.amethyst.commons.resources.automatically_show_profile_picture +import com.vitorpamplona.amethyst.commons.resources.automatically_show_profile_picture_description +import com.vitorpamplona.amethyst.commons.resources.automatically_show_url_preview +import com.vitorpamplona.amethyst.commons.resources.automatically_show_url_preview_description +import com.vitorpamplona.amethyst.commons.resources.autoplay_videos +import com.vitorpamplona.amethyst.commons.resources.autoplay_videos_description +import com.vitorpamplona.amethyst.commons.resources.connectivity_type_always +import com.vitorpamplona.amethyst.commons.resources.connectivity_type_never +import com.vitorpamplona.amethyst.commons.resources.connectivity_type_unmetered_wifi_only_short +import com.vitorpamplona.amethyst.commons.resources.font_family +import com.vitorpamplona.amethyst.commons.resources.font_family_description +import com.vitorpamplona.amethyst.commons.resources.font_family_monospace_short +import com.vitorpamplona.amethyst.commons.resources.font_family_sans_serif_short +import com.vitorpamplona.amethyst.commons.resources.font_family_serif_short +import com.vitorpamplona.amethyst.commons.resources.font_family_system_short +import com.vitorpamplona.amethyst.commons.resources.font_size +import com.vitorpamplona.amethyst.commons.resources.font_size_description import com.vitorpamplona.amethyst.commons.resources.language import com.vitorpamplona.amethyst.commons.resources.language_description +import com.vitorpamplona.amethyst.commons.resources.settings_section_appearance +import com.vitorpamplona.amethyst.commons.resources.settings_section_general +import com.vitorpamplona.amethyst.commons.resources.settings_section_media +import com.vitorpamplona.amethyst.commons.resources.theme +import com.vitorpamplona.amethyst.commons.resources.theme_description +import com.vitorpamplona.amethyst.commons.resources.ui_feature_set_type_complete_short +import com.vitorpamplona.amethyst.commons.resources.ui_feature_set_type_performance_short +import com.vitorpamplona.amethyst.commons.resources.ui_feature_set_type_simplified_short +import com.vitorpamplona.amethyst.commons.resources.ui_style +import com.vitorpamplona.amethyst.commons.resources.ui_style_description import com.vitorpamplona.amethyst.model.AccentColorType import com.vitorpamplona.amethyst.model.BooleanType import com.vitorpamplona.amethyst.model.ConnectivityType @@ -106,6 +139,7 @@ import kotlinx.collections.immutable.ImmutableMap import kotlinx.collections.immutable.toImmutableList import kotlinx.collections.immutable.toImmutableMap import kotlinx.coroutines.flow.MutableStateFlow +import org.jetbrains.compose.resources.StringResource import org.xmlpull.v1.XmlPullParser import org.xmlpull.v1.XmlPullParserException import java.io.IOException @@ -153,7 +187,7 @@ fun SettingsScreen( .padding(horizontal = 16.dp, vertical = 12.dp), verticalArrangement = Arrangement.spacedBy(20.dp), ) { - SettingsSection(R.string.settings_section_appearance) { + SettingsSection(Res.string.settings_section_appearance) { ThemeTile(sharedPrefs) SettingsDivider() AccentColorTile(sharedPrefs) @@ -163,7 +197,7 @@ fun SettingsScreen( FontSizeTile(sharedPrefs) } - SettingsSection(R.string.settings_section_media) { + SettingsSection(Res.string.settings_section_media) { ImagePreviewTile(sharedPrefs) SettingsDivider() VideoPlaybackTile(sharedPrefs) @@ -175,7 +209,7 @@ fun SettingsScreen( ProfilePictureTile(sharedPrefs) } - SettingsSection(R.string.settings_section_general) { + SettingsSection(Res.string.settings_section_general) { LanguageTile(sharedPrefs) SettingsDivider() UiModeTile(sharedPrefs) @@ -197,8 +231,8 @@ fun SettingsScreen( @Composable internal fun SegmentedChoiceTile( icon: MaterialSymbol, - @StringRes title: Int, - @StringRes description: Int, + title: StringResource, + description: StringResource, options: List, labelRes: (T) -> Int, selected: T, @@ -237,8 +271,8 @@ internal fun SegmentedChoiceTile( private fun BooleanSwitchTile( flow: MutableStateFlow, icon: MaterialSymbol, - @StringRes title: Int, - @StringRes description: Int, + title: StringResource, + description: StringResource, ) { val value by flow.collectAsState() val checked = value == BooleanType.ALWAYS @@ -261,8 +295,8 @@ private fun ThemeTile(sharedPrefs: UiSettingsFlow) { val theme by sharedPrefs.theme.collectAsState() SegmentedChoiceTile( icon = MaterialSymbols.BrightnessMedium, - title = R.string.theme, - description = R.string.theme_description, + title = Res.string.theme, + description = Res.string.theme_description, options = ThemeType.entries, labelRes = { it.resourceId }, selected = theme, @@ -275,26 +309,26 @@ private fun ThemeTile(sharedPrefs: UiSettingsFlow) { @StringRes private fun ConnectivityType.shortLabelRes(): Int = when (this) { - ConnectivityType.ALWAYS -> R.string.connectivity_type_always - ConnectivityType.WIFI_ONLY -> R.string.connectivity_type_unmetered_wifi_only_short - ConnectivityType.NEVER -> R.string.connectivity_type_never + ConnectivityType.ALWAYS -> Res.string.connectivity_type_always + ConnectivityType.WIFI_ONLY -> Res.string.connectivity_type_unmetered_wifi_only_short + ConnectivityType.NEVER -> Res.string.connectivity_type_never } @StringRes private fun FontFamilyType.shortLabelRes(): Int = when (this) { - FontFamilyType.SYSTEM -> R.string.font_family_system_short - FontFamilyType.SANS_SERIF -> R.string.font_family_sans_serif_short - FontFamilyType.SERIF -> R.string.font_family_serif_short - FontFamilyType.MONOSPACE -> R.string.font_family_monospace_short + FontFamilyType.SYSTEM -> Res.string.font_family_system_short + FontFamilyType.SANS_SERIF -> Res.string.font_family_sans_serif_short + FontFamilyType.SERIF -> Res.string.font_family_serif_short + FontFamilyType.MONOSPACE -> Res.string.font_family_monospace_short } @StringRes private fun FeatureSetType.shortLabelRes(): Int = when (this) { - FeatureSetType.COMPLETE -> R.string.ui_feature_set_type_complete_short - FeatureSetType.SIMPLIFIED -> R.string.ui_feature_set_type_simplified_short - FeatureSetType.PERFORMANCE -> R.string.ui_feature_set_type_performance_short + FeatureSetType.COMPLETE -> Res.string.ui_feature_set_type_complete_short + FeatureSetType.SIMPLIFIED -> Res.string.ui_feature_set_type_simplified_short + FeatureSetType.PERFORMANCE -> Res.string.ui_feature_set_type_performance_short } @Composable @@ -302,8 +336,8 @@ private fun FontFamilyTile(sharedPrefs: UiSettingsFlow) { val fontFamily by sharedPrefs.fontFamily.collectAsState() SegmentedChoiceTile( icon = MaterialSymbols.Description, - title = R.string.font_family, - description = R.string.font_family_description, + title = Res.string.font_family, + description = Res.string.font_family_description, options = FontFamilyType.entries, labelRes = { it.shortLabelRes() }, selected = fontFamily, @@ -318,8 +352,8 @@ private fun FontSizeTile(sharedPrefs: UiSettingsFlow) { val fontSize by sharedPrefs.fontSize.collectAsState() SegmentedChoiceTile( icon = MaterialSymbols.ZoomOutMap, - title = R.string.font_size, - description = R.string.font_size_description, + title = Res.string.font_size, + description = Res.string.font_size_description, options = FontSizeType.entries, labelRes = { it.resourceId }, selected = fontSize, @@ -335,8 +369,8 @@ private fun UiModeTile(sharedPrefs: UiSettingsFlow) { val featureSet by sharedPrefs.featureSet.collectAsState() SegmentedChoiceTile( icon = MaterialSymbols.Tune, - title = R.string.ui_style, - description = R.string.ui_style_description, + title = Res.string.ui_style, + description = Res.string.ui_style_description, options = FeatureSetType.entries, labelRes = { it.shortLabelRes() }, selected = featureSet, @@ -349,8 +383,8 @@ private fun ImagePreviewTile(sharedPrefs: UiSettingsFlow) { val value by sharedPrefs.automaticallyShowImages.collectAsState() SegmentedChoiceTile( icon = MaterialSymbols.Image, - title = R.string.automatically_load_images_gifs, - description = R.string.automatically_load_images_gifs_description, + title = Res.string.automatically_load_images_gifs, + description = Res.string.automatically_load_images_gifs_description, options = ConnectivityType.entries, labelRes = { it.shortLabelRes() }, selected = value, @@ -363,8 +397,8 @@ private fun VideoPlaybackTile(sharedPrefs: UiSettingsFlow) { val value by sharedPrefs.automaticallyStartPlayback.collectAsState() SegmentedChoiceTile( icon = MaterialSymbols.Videocam, - title = R.string.automatically_play_videos, - description = R.string.automatically_play_videos_description, + title = Res.string.automatically_play_videos, + description = Res.string.automatically_play_videos_description, options = ConnectivityType.entries, labelRes = { it.shortLabelRes() }, selected = value, @@ -377,8 +411,8 @@ private fun UrlPreviewTile(sharedPrefs: UiSettingsFlow) { val value by sharedPrefs.automaticallyShowUrlPreview.collectAsState() SegmentedChoiceTile( icon = MaterialSymbols.Link, - title = R.string.automatically_show_url_preview, - description = R.string.automatically_show_url_preview_description, + title = Res.string.automatically_show_url_preview, + description = Res.string.automatically_show_url_preview_description, options = ConnectivityType.entries, labelRes = { it.shortLabelRes() }, selected = value, @@ -391,8 +425,8 @@ private fun ProfilePictureTile(sharedPrefs: UiSettingsFlow) { val value by sharedPrefs.automaticallyShowProfilePictures.collectAsState() SegmentedChoiceTile( icon = MaterialSymbols.AccountCircle, - title = R.string.automatically_show_profile_picture, - description = R.string.automatically_show_profile_picture_description, + title = Res.string.automatically_show_profile_picture, + description = Res.string.automatically_show_profile_picture_description, options = ConnectivityType.entries, labelRes = { it.shortLabelRes() }, selected = value, @@ -405,8 +439,8 @@ private fun AutoplayVideosTile(sharedPrefs: UiSettingsFlow) { BooleanSwitchTile( flow = sharedPrefs.automaticallyPlayVideos, icon = MaterialSymbols.PlayCircle, - title = R.string.autoplay_videos, - description = R.string.autoplay_videos_description, + title = Res.string.autoplay_videos, + description = Res.string.autoplay_videos_description, ) } @@ -415,8 +449,8 @@ private fun ImmersiveScrollingTile(sharedPrefs: UiSettingsFlow) { BooleanSwitchTile( flow = sharedPrefs.automaticallyHideNavigationBars, icon = MaterialSymbols.Fullscreen, - title = R.string.automatically_hide_nav_bars, - description = R.string.automatically_hide_nav_bars_description, + title = Res.string.automatically_hide_nav_bars, + description = Res.string.automatically_hide_nav_bars_description, ) } @@ -589,8 +623,8 @@ private fun AccentColorSwatch( @Composable fun SettingsRow( - name: Int, - description: Int, + name: StringResource, + description: StringResource, selectedItems: ImmutableList, selectedIndex: Int, onSelect: (Int) -> Unit, @@ -608,8 +642,8 @@ fun SettingsRow( @Composable fun SettingsRow( - name: Int, - description: Int, + name: StringResource, + description: StringResource, modifier: Modifier = Modifier.fillMaxWidth(), content: @Composable () -> Unit, ) { @@ -647,8 +681,8 @@ fun SettingsRow( @Composable fun SettingsRow( - name: Int, - description: Int, + name: StringResource, + description: StringResource, ) { Row( verticalAlignment = Alignment.CenterVertically, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/AudioVisualizerSettingsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/AudioVisualizerSettingsScreen.kt index 3ccde693f4..6e911ddaa9 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/AudioVisualizerSettingsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/AudioVisualizerSettingsScreen.kt @@ -50,7 +50,6 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.audio.AudioVisualizer import com.vitorpamplona.amethyst.commons.audio.Spectrum import com.vitorpamplona.amethyst.commons.audio.SyntheticSpectrum @@ -61,6 +60,7 @@ import com.vitorpamplona.amethyst.commons.resources.audio_visualizer_bars import com.vitorpamplona.amethyst.commons.resources.audio_visualizer_classic import com.vitorpamplona.amethyst.commons.resources.audio_visualizer_off import com.vitorpamplona.amethyst.commons.resources.audio_visualizer_radial +import com.vitorpamplona.amethyst.commons.resources.audio_visualizer_settings import com.vitorpamplona.amethyst.commons.resources.audio_visualizer_settings_description import com.vitorpamplona.amethyst.commons.resources.audio_visualizer_static import com.vitorpamplona.amethyst.commons.resources.audio_visualizer_waves @@ -78,7 +78,7 @@ fun AudioVisualizerSettingsScreen( ) { Scaffold( topBar = { - TopBarWithBackButton(stringRes(id = R.string.audio_visualizer_settings), nav) + TopBarWithBackButton(stringRes(id = Res.string.audio_visualizer_settings), nav) }, ) { padding -> AudioVisualizerSettingsContent(accountViewModel, Modifier.padding(padding)) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/BlockedUsersScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/BlockedUsersScreen.kt index b9f2d672c6..0e4e2f1ed9 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/BlockedUsersScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/BlockedUsersScreen.kt @@ -29,7 +29,9 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.blocked_users +import com.vitorpamplona.amethyst.commons.resources.security_blocked_users_empty import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.settings.dal.HiddenAccountsFeedViewModel @@ -49,7 +51,7 @@ fun BlockedUsersScreen( Scaffold( topBar = { BlockListTopBar( - title = R.string.blocked_users, + title = Res.string.blocked_users, selectedCount = selected.size, onCancel = { selected = emptySet() }, onUnblock = { @@ -63,7 +65,7 @@ fun BlockedUsersScreen( SelectableUserList( modifier = Modifier.padding(padding), viewModel = viewModel, - emptyMessage = R.string.security_blocked_users_empty, + emptyMessage = Res.string.security_blocked_users_empty, selected = selected, onToggle = { selected = if (it in selected) selected - it else selected + it }, accountViewModel = accountViewModel, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/BottomBarSettingsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/BottomBarSettingsScreen.kt index 165714c445..9c2654c4b8 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/BottomBarSettingsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/BottomBarSettingsScreen.kt @@ -67,15 +67,19 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.zIndex import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.favorites.FavoriteApp import com.vitorpamplona.amethyst.commons.favorites.FavoriteAppIcon import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.bottom_bar_settings +import com.vitorpamplona.amethyst.commons.resources.bottom_bar_settings_add +import com.vitorpamplona.amethyst.commons.resources.bottom_bar_settings_added import com.vitorpamplona.amethyst.commons.resources.bottom_bar_settings_available import com.vitorpamplona.amethyst.commons.resources.bottom_bar_settings_expand +import com.vitorpamplona.amethyst.commons.resources.bottom_bar_settings_no_favorites +import com.vitorpamplona.amethyst.commons.resources.bottom_bar_settings_no_groups import com.vitorpamplona.amethyst.commons.resources.bottom_bar_settings_pinned import com.vitorpamplona.amethyst.commons.resources.bottom_bar_settings_pinned_empty import com.vitorpamplona.amethyst.commons.resources.bottom_bar_settings_remove @@ -134,7 +138,7 @@ fun BottomBarSettingsScreen( ) { Scaffold( topBar = { - TopBarWithBackButton(stringRes(id = R.string.bottom_bar_settings), nav) + TopBarWithBackButton(stringRes(id = Res.string.bottom_bar_settings), nav) }, ) { padding -> Column(Modifier.padding(padding)) { @@ -495,7 +499,7 @@ private fun PickerChildren( NavBarItem.BROWSER -> { val favorites by FavoriteAppsRegistry.favorites.collectAsStateWithLifecycle() if (favorites.isEmpty()) { - EmptyChildHint(R.string.bottom_bar_settings_no_favorites) + EmptyChildHint(Res.string.bottom_bar_settings_no_favorites) } else { favorites.forEach { fav -> val entry = BottomBarEntry.Favorite(fav.id) @@ -521,7 +525,7 @@ private fun PickerChildren( val groups by accountViewModel.account.relayGroupList.liveRelayGroupList .collectAsStateWithLifecycle() if (groups.isEmpty()) { - EmptyChildHint(R.string.bottom_bar_settings_no_groups) + EmptyChildHint(Res.string.bottom_bar_settings_no_groups) } else { // Group joined groups by their host relay: the relay itself is addable (opens its home // page listing every group on it) with each individual group nested beneath it. NIP-29 @@ -545,7 +549,7 @@ private fun PickerChildren( val communities by accountViewModel.account.concordChannelList.liveCommunities .collectAsStateWithLifecycle() if (communities.isEmpty()) { - EmptyChildHint(R.string.bottom_bar_settings_no_groups) + EmptyChildHint(Res.string.bottom_bar_settings_no_groups) } else { // Group by community: the community itself is addable (opens its channel list) with each // channel nested beneath it — the mirror of the relay-group layout above. @@ -576,7 +580,7 @@ private fun GroupChildList( onTogglePin: (BottomBarEntry) -> Unit, ) { if (entries.isEmpty()) { - EmptyChildHint(R.string.bottom_bar_settings_no_groups) + EmptyChildHint(Res.string.bottom_bar_settings_no_groups) return } entries.forEach { entry -> @@ -753,7 +757,7 @@ private fun AddPill( ) { TogglePill( on = added, - label = stringRes(if (added) R.string.bottom_bar_settings_added else R.string.bottom_bar_settings_add), + label = stringRes(if (added) Res.string.bottom_bar_settings_added else Res.string.bottom_bar_settings_add), icon = if (added) MaterialSymbols.Check else MaterialSymbols.Add, onClick = onClick, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/CallSettingsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/CallSettingsScreen.kt index 4755966984..c5f02e17b5 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/CallSettingsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/CallSettingsScreen.kt @@ -52,10 +52,10 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.call_settings import com.vitorpamplona.amethyst.commons.resources.call_settings_add_turn import com.vitorpamplona.amethyst.commons.resources.call_settings_custom_turn import com.vitorpamplona.amethyst.commons.resources.call_settings_default_servers @@ -70,6 +70,7 @@ import com.vitorpamplona.amethyst.commons.resources.call_settings_turn_servers import com.vitorpamplona.amethyst.commons.resources.call_settings_turn_url import com.vitorpamplona.amethyst.commons.resources.call_settings_turn_username import com.vitorpamplona.amethyst.commons.resources.call_settings_video_quality +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.model.CallTurnServer import com.vitorpamplona.amethyst.model.CallVideoResolution import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -84,7 +85,7 @@ fun CallSettingsScreen( ) { Scaffold( topBar = { - TopBarWithBackButton(stringRes(id = R.string.call_settings), nav) + TopBarWithBackButton(stringRes(id = Res.string.call_settings), nav) }, ) { padding -> Column( @@ -426,7 +427,7 @@ private fun AddTurnServerForm( onClick = onCancel, colors = ButtonDefaults.textButtonColors(), ) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } Spacer(modifier = Modifier.width(8.dp)) Button( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/ComposeSettingsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/ComposeSettingsScreen.kt index a048ef2097..6bf6c5a7b7 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/ComposeSettingsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/ComposeSettingsScreen.kt @@ -44,21 +44,52 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.add_client_tag_explainer +import com.vitorpamplona.amethyst.commons.resources.add_client_tag_title +import com.vitorpamplona.amethyst.commons.resources.ai_writing_setting_description +import com.vitorpamplona.amethyst.commons.resources.ai_writing_setting_title +import com.vitorpamplona.amethyst.commons.resources.auto_create_drafts_setting_description +import com.vitorpamplona.amethyst.commons.resources.auto_create_drafts_setting_title +import com.vitorpamplona.amethyst.commons.resources.compose_settings import com.vitorpamplona.amethyst.commons.resources.compose_signature_setting_description import com.vitorpamplona.amethyst.commons.resources.compose_signature_setting_hint import com.vitorpamplona.amethyst.commons.resources.compose_signature_setting_title import com.vitorpamplona.amethyst.commons.resources.pow_categories_explainer import com.vitorpamplona.amethyst.commons.resources.pow_categories_title +import com.vitorpamplona.amethyst.commons.resources.pow_category_comments +import com.vitorpamplona.amethyst.commons.resources.pow_category_comments_explainer +import com.vitorpamplona.amethyst.commons.resources.pow_category_gift_wraps +import com.vitorpamplona.amethyst.commons.resources.pow_category_gift_wraps_explainer +import com.vitorpamplona.amethyst.commons.resources.pow_category_long_form +import com.vitorpamplona.amethyst.commons.resources.pow_category_long_form_explainer +import com.vitorpamplona.amethyst.commons.resources.pow_category_other_public +import com.vitorpamplona.amethyst.commons.resources.pow_category_other_public_explainer +import com.vitorpamplona.amethyst.commons.resources.pow_category_public_chat +import com.vitorpamplona.amethyst.commons.resources.pow_category_public_chat_explainer +import com.vitorpamplona.amethyst.commons.resources.pow_category_reactions +import com.vitorpamplona.amethyst.commons.resources.pow_category_reactions_explainer +import com.vitorpamplona.amethyst.commons.resources.pow_category_reports +import com.vitorpamplona.amethyst.commons.resources.pow_category_reports_explainer +import com.vitorpamplona.amethyst.commons.resources.pow_category_reposts +import com.vitorpamplona.amethyst.commons.resources.pow_category_reposts_explainer +import com.vitorpamplona.amethyst.commons.resources.pow_category_short_notes +import com.vitorpamplona.amethyst.commons.resources.pow_category_short_notes_explainer +import com.vitorpamplona.amethyst.commons.resources.pow_category_voice +import com.vitorpamplona.amethyst.commons.resources.pow_category_voice_explainer import com.vitorpamplona.amethyst.commons.resources.pow_custom_difficulty_explainer import com.vitorpamplona.amethyst.commons.resources.pow_custom_difficulty_title import com.vitorpamplona.amethyst.commons.resources.pow_difficulty_estimate import com.vitorpamplona.amethyst.commons.resources.pow_difficulty_explainer import com.vitorpamplona.amethyst.commons.resources.pow_difficulty_off import com.vitorpamplona.amethyst.commons.resources.pow_difficulty_title +import com.vitorpamplona.amethyst.commons.resources.pow_settings_title +import com.vitorpamplona.amethyst.commons.resources.suggest_workouts_setting_description +import com.vitorpamplona.amethyst.commons.resources.suggest_workouts_setting_title +import com.vitorpamplona.amethyst.commons.resources.tracked_broadcasts_setting_description +import com.vitorpamplona.amethyst.commons.resources.tracked_broadcasts_setting_title import com.vitorpamplona.amethyst.commons.service.pow.PoWCategory import com.vitorpamplona.amethyst.commons.service.pow.PoWEstimator import com.vitorpamplona.amethyst.model.AccountPoWPreferences @@ -75,6 +106,7 @@ import com.vitorpamplona.amethyst.ui.screen.loggedIn.mockAccountViewModel import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.ThemeComparisonColumn import kotlinx.coroutines.flow.MutableStateFlow +import org.jetbrains.compose.resources.StringResource @Composable fun ComposeSettingsScreen( @@ -83,7 +115,7 @@ fun ComposeSettingsScreen( ) { Scaffold( topBar = { - TopBarWithBackButton(stringRes(id = R.string.compose_settings), nav) + TopBarWithBackButton(stringRes(id = Res.string.compose_settings), nav) }, ) { padding -> ComposeSettingsContent( @@ -107,12 +139,12 @@ fun ComposeSettingsContent( .padding(horizontal = 16.dp, vertical = 12.dp), verticalArrangement = Arrangement.spacedBy(20.dp), ) { - SettingsSection(R.string.compose_settings) { + SettingsSection(Res.string.compose_settings) { BooleanSwitchTile( flow = sharedPrefs.automaticallyCreateDrafts, icon = MaterialSymbols.Drafts, - title = R.string.auto_create_drafts_setting_title, - description = R.string.auto_create_drafts_setting_description, + title = Res.string.auto_create_drafts_setting_title, + description = Res.string.auto_create_drafts_setting_description, ) SettingsDivider() // The F-Droid build ships no on-device model, so the toggle would do nothing there. @@ -120,23 +152,23 @@ fun ComposeSettingsContent( BooleanSwitchTile( flow = sharedPrefs.automaticallyProposeAiImprovements, icon = MaterialSymbols.AutoAwesome, - title = R.string.ai_writing_setting_title, - description = R.string.ai_writing_setting_description, + title = Res.string.ai_writing_setting_title, + description = Res.string.ai_writing_setting_description, ) SettingsDivider() } BooleanSwitchTile( flow = sharedPrefs.useTrackedBroadcasts, icon = MaterialSymbols.CellTower, - title = R.string.tracked_broadcasts_setting_title, - description = R.string.tracked_broadcasts_setting_description, + title = Res.string.tracked_broadcasts_setting_title, + description = Res.string.tracked_broadcasts_setting_description, ) SettingsDivider() BooleanSwitchTile( flow = sharedPrefs.suggestWorkoutsFromHealthConnect, icon = MaterialSymbols.DirectionsRun, - title = R.string.suggest_workouts_setting_title, - description = R.string.suggest_workouts_setting_description, + title = Res.string.suggest_workouts_setting_title, + description = Res.string.suggest_workouts_setting_description, ) SettingsDivider() AddClientTagTile(accountViewModel) @@ -144,7 +176,7 @@ fun ComposeSettingsContent( SignatureTile(sharedPrefs.composeSignature) } - SettingsSection(R.string.pow_settings_title) { + SettingsSection(Res.string.pow_settings_title) { PowDifficultyTile(accountViewModel) SettingsDivider() PowCategoryChecklist(accountViewModel) @@ -213,7 +245,7 @@ private fun PowTimeEstimate(difficulty: Int) { val estimate by produceState(initialValue = null, difficulty) { val rate = deviceHashesPerSecond() - value = formatApproxDuration(context, PoWEstimator.estimateSeconds(difficulty, rate)) + value = formatApproxDuration(PoWEstimator.estimateSeconds(difficulty, rate)) } estimate?.let { @@ -261,31 +293,31 @@ private fun PowCategoryChecklist(accountViewModel: AccountViewModel) { @StringRes private fun PoWCategory.titleRes(): Int = when (this) { - PoWCategory.SHORT_NOTES -> R.string.pow_category_short_notes - PoWCategory.COMMENTS -> R.string.pow_category_comments - PoWCategory.REPORTS -> R.string.pow_category_reports - PoWCategory.LONG_FORM -> R.string.pow_category_long_form - PoWCategory.VOICE -> R.string.pow_category_voice - PoWCategory.REPOSTS -> R.string.pow_category_reposts - PoWCategory.REACTIONS -> R.string.pow_category_reactions - PoWCategory.PUBLIC_CHAT -> R.string.pow_category_public_chat - PoWCategory.GIFT_WRAPS -> R.string.pow_category_gift_wraps - PoWCategory.OTHER_PUBLIC -> R.string.pow_category_other_public + PoWCategory.SHORT_NOTES -> Res.string.pow_category_short_notes + PoWCategory.COMMENTS -> Res.string.pow_category_comments + PoWCategory.REPORTS -> Res.string.pow_category_reports + PoWCategory.LONG_FORM -> Res.string.pow_category_long_form + PoWCategory.VOICE -> Res.string.pow_category_voice + PoWCategory.REPOSTS -> Res.string.pow_category_reposts + PoWCategory.REACTIONS -> Res.string.pow_category_reactions + PoWCategory.PUBLIC_CHAT -> Res.string.pow_category_public_chat + PoWCategory.GIFT_WRAPS -> Res.string.pow_category_gift_wraps + PoWCategory.OTHER_PUBLIC -> Res.string.pow_category_other_public } @StringRes private fun PoWCategory.descriptionRes(): Int = when (this) { - PoWCategory.SHORT_NOTES -> R.string.pow_category_short_notes_explainer - PoWCategory.COMMENTS -> R.string.pow_category_comments_explainer - PoWCategory.REPORTS -> R.string.pow_category_reports_explainer - PoWCategory.LONG_FORM -> R.string.pow_category_long_form_explainer - PoWCategory.VOICE -> R.string.pow_category_voice_explainer - PoWCategory.REPOSTS -> R.string.pow_category_reposts_explainer - PoWCategory.REACTIONS -> R.string.pow_category_reactions_explainer - PoWCategory.PUBLIC_CHAT -> R.string.pow_category_public_chat_explainer - PoWCategory.GIFT_WRAPS -> R.string.pow_category_gift_wraps_explainer - PoWCategory.OTHER_PUBLIC -> R.string.pow_category_other_public_explainer + PoWCategory.SHORT_NOTES -> Res.string.pow_category_short_notes_explainer + PoWCategory.COMMENTS -> Res.string.pow_category_comments_explainer + PoWCategory.REPORTS -> Res.string.pow_category_reports_explainer + PoWCategory.LONG_FORM -> Res.string.pow_category_long_form_explainer + PoWCategory.VOICE -> Res.string.pow_category_voice_explainer + PoWCategory.REPOSTS -> Res.string.pow_category_reposts_explainer + PoWCategory.REACTIONS -> Res.string.pow_category_reactions_explainer + PoWCategory.PUBLIC_CHAT -> Res.string.pow_category_public_chat_explainer + PoWCategory.GIFT_WRAPS -> Res.string.pow_category_gift_wraps_explainer + PoWCategory.OTHER_PUBLIC -> Res.string.pow_category_other_public_explainer } @Composable @@ -314,8 +346,8 @@ private fun AddClientTagTile(accountViewModel: AccountViewModel) { SwitchTile( icon = MaterialSymbols.Code, - title = R.string.add_client_tag_title, - description = R.string.add_client_tag_explainer, + title = Res.string.add_client_tag_title, + description = Res.string.add_client_tag_explainer, checked = addClientTag, onCheckedChange = accountViewModel::updateAddClientTag, ) @@ -325,8 +357,8 @@ private fun AddClientTagTile(accountViewModel: AccountViewModel) { private fun BooleanSwitchTile( flow: MutableStateFlow, icon: MaterialSymbol, - @StringRes title: Int, - @StringRes description: Int, + title: StringResource, + description: StringResource, ) { val value by flow.collectAsState() @@ -344,8 +376,8 @@ private fun BooleanSwitchTile( @Composable private fun SwitchTile( icon: MaterialSymbol, - @StringRes title: Int, - @StringRes description: Int, + title: StringResource, + description: StringResource, checked: Boolean, onCheckedChange: (Boolean) -> Unit, ) { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/DrawerSettingsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/DrawerSettingsScreen.kt index a50ff60fa3..215518d7f2 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/DrawerSettingsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/DrawerSettingsScreen.kt @@ -45,14 +45,18 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.drawer_settings +import com.vitorpamplona.amethyst.commons.resources.drawer_settings_always_on import com.vitorpamplona.amethyst.commons.resources.drawer_settings_description +import com.vitorpamplona.amethyst.commons.resources.drawer_settings_hidden +import com.vitorpamplona.amethyst.commons.resources.drawer_settings_hidden_count import com.vitorpamplona.amethyst.commons.resources.drawer_settings_hide_all import com.vitorpamplona.amethyst.commons.resources.drawer_settings_sections import com.vitorpamplona.amethyst.commons.resources.drawer_settings_show_all import com.vitorpamplona.amethyst.commons.resources.drawer_settings_title +import com.vitorpamplona.amethyst.commons.resources.drawer_settings_visible import com.vitorpamplona.amethyst.ui.navigation.bottombars.NavBarCatalog import com.vitorpamplona.amethyst.ui.navigation.drawer.DrawerItemVisibility import com.vitorpamplona.amethyst.ui.navigation.drawer.DrawerSection @@ -85,7 +89,7 @@ fun DrawerSettingsScreen( ) { Scaffold( topBar = { - TopBarWithBackButton(stringRes(id = R.string.drawer_settings), nav) + TopBarWithBackButton(stringRes(id = Res.string.drawer_settings), nav) }, ) { padding -> Column(Modifier.padding(padding)) { @@ -165,7 +169,7 @@ private fun SummaryCard(totalHidden: Int) { title = stringRes(Res.string.drawer_settings_title), trailing = { Text( - text = pluralStringResource(R.plurals.drawer_settings_hidden_count, totalHidden, totalHidden), + text = pluralStringResource(Res.plurals.drawer_settings_hidden_count, totalHidden, totalHidden), style = MaterialTheme.typography.labelMedium, color = MaterialTheme.colorScheme.primary, fontWeight = FontWeight.Bold, @@ -199,7 +203,7 @@ private fun SectionCard( trailing = { if (hiddenHere > 0) { Text( - text = pluralStringResource(R.plurals.drawer_settings_hidden_count, hiddenHere, hiddenHere), + text = pluralStringResource(Res.plurals.drawer_settings_hidden_count, hiddenHere, hiddenHere), style = MaterialTheme.typography.labelMedium, color = MaterialTheme.colorScheme.onSurfaceVariant, ) @@ -251,9 +255,9 @@ private fun VisibilityPill( // One branch decides both halves of the pill, so a label can't drift away from its glyph. val (labelRes, icon) = when { - mandatory -> R.string.drawer_settings_always_on to MaterialSymbols.Lock - visible -> R.string.drawer_settings_visible to MaterialSymbols.Visibility - else -> R.string.drawer_settings_hidden to MaterialSymbols.VisibilityOff + mandatory -> Res.string.drawer_settings_always_on to MaterialSymbols.Lock + visible -> Res.string.drawer_settings_visible to MaterialSymbols.Visibility + else -> Res.string.drawer_settings_hidden to MaterialSymbols.VisibilityOff } TogglePill( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/HiddenWordsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/HiddenWordsScreen.kt index fbf6ba8024..29cf948e25 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/HiddenWordsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/HiddenWordsScreen.kt @@ -60,9 +60,13 @@ import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.hidden_words import com.vitorpamplona.amethyst.commons.resources.hide_new_word_label +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_hide_word +import com.vitorpamplona.amethyst.commons.resources.login_with_a_private_key_to_be_able_to_show_word +import com.vitorpamplona.amethyst.commons.resources.read_only_user +import com.vitorpamplona.amethyst.commons.resources.security_hidden_words_empty import com.vitorpamplona.amethyst.ui.feeds.FeedError import com.vitorpamplona.amethyst.ui.feeds.LoadingFeed import com.vitorpamplona.amethyst.ui.insets.rememberSafeImeInsets @@ -92,14 +96,14 @@ fun HiddenWordsScreen( Scaffold( topBar = { BlockListTopBar( - title = R.string.hidden_words, + title = Res.string.hidden_words, selectedCount = selected.size, onCancel = { selected = emptySet() }, onUnblock = { if (!accountViewModel.isWriteable()) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_show_word, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_show_word, ) } else { accountViewModel.showWords(selected.toList()) @@ -146,7 +150,7 @@ private fun HiddenWordsList( is StringFeedState.Loaded -> { val items by state.feed.collectAsStateWithLifecycle() if (items.isEmpty()) { - EmptyState(R.string.security_hidden_words_empty) + EmptyState(Res.string.security_hidden_words_empty) } else { val listState = rememberLazyListState() LazyColumn( @@ -168,7 +172,7 @@ private fun HiddenWordsList( } is StringFeedState.Empty -> { - EmptyState(R.string.security_hidden_words_empty) + EmptyState(Res.string.security_hidden_words_empty) } is StringFeedState.Loading -> { @@ -266,8 +270,8 @@ private fun showWordIfWritable( ) { if (!accountViewModel.isWriteable()) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_show_word, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_show_word, ) } else { accountViewModel.showWord(word) @@ -280,8 +284,8 @@ private fun hideIfWritable( ) { if (!accountViewModel.isWriteable()) { accountViewModel.toastManager.toast( - R.string.read_only_user, - R.string.login_with_a_private_key_to_be_able_to_hide_word, + Res.string.read_only_user, + Res.string.login_with_a_private_key_to_be_able_to_hide_word, ) } else { accountViewModel.hide(currentWordToAdd.value.trim()) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/HomeTabsSettingsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/HomeTabsSettingsScreen.kt index c5ecee8a5a..128df7b642 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/HomeTabsSettingsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/HomeTabsSettingsScreen.kt @@ -33,12 +33,40 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.HomeFeedType import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.conversations +import com.vitorpamplona.amethyst.commons.resources.home_content_type_articles +import com.vitorpamplona.amethyst.commons.resources.home_content_type_attestations +import com.vitorpamplona.amethyst.commons.resources.home_content_type_birds +import com.vitorpamplona.amethyst.commons.resources.home_content_type_chess +import com.vitorpamplona.amethyst.commons.resources.home_content_type_classifieds +import com.vitorpamplona.amethyst.commons.resources.home_content_type_comments +import com.vitorpamplona.amethyst.commons.resources.home_content_type_ephemeral_chat +import com.vitorpamplona.amethyst.commons.resources.home_content_type_fundraisers +import com.vitorpamplona.amethyst.commons.resources.home_content_type_highlights +import com.vitorpamplona.amethyst.commons.resources.home_content_type_interactive_stories +import com.vitorpamplona.amethyst.commons.resources.home_content_type_live_activities +import com.vitorpamplona.amethyst.commons.resources.home_content_type_music +import com.vitorpamplona.amethyst.commons.resources.home_content_type_nips +import com.vitorpamplona.amethyst.commons.resources.home_content_type_pictures +import com.vitorpamplona.amethyst.commons.resources.home_content_type_podcasts +import com.vitorpamplona.amethyst.commons.resources.home_content_type_polls +import com.vitorpamplona.amethyst.commons.resources.home_content_type_ratings +import com.vitorpamplona.amethyst.commons.resources.home_content_type_reposts +import com.vitorpamplona.amethyst.commons.resources.home_content_type_shorts +import com.vitorpamplona.amethyst.commons.resources.home_content_type_text_notes +import com.vitorpamplona.amethyst.commons.resources.home_content_type_torrents +import com.vitorpamplona.amethyst.commons.resources.home_content_type_videos +import com.vitorpamplona.amethyst.commons.resources.home_content_type_voice +import com.vitorpamplona.amethyst.commons.resources.home_content_type_wiki +import com.vitorpamplona.amethyst.commons.resources.home_tab_everything import com.vitorpamplona.amethyst.commons.resources.home_tabs_settings +import com.vitorpamplona.amethyst.commons.resources.new_threads +import com.vitorpamplona.amethyst.commons.resources.settings_section_home_content_types +import com.vitorpamplona.amethyst.commons.resources.settings_section_home_tabs import com.vitorpamplona.amethyst.model.UiSettingsFlow import com.vitorpamplona.amethyst.ui.navigation.navs.EmptyNav import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -92,10 +120,10 @@ private fun HomeTabsSection(ui: UiSettingsFlow) { val activeCount = listOf(showNewThreads, showConversations, showEverything).count { it } - SettingsSection(R.string.settings_section_home_tabs) { + SettingsSection(Res.string.settings_section_home_tabs) { SettingsSwitchTile( icon = MaterialSymbols.Forum, - title = R.string.new_threads, + title = Res.string.new_threads, checked = showNewThreads, // Don't allow disabling the last remaining tab. enabled = !(showNewThreads && activeCount == 1), @@ -104,7 +132,7 @@ private fun HomeTabsSection(ui: UiSettingsFlow) { SettingsDivider() SettingsSwitchTile( icon = MaterialSymbols.Chat, - title = R.string.conversations, + title = Res.string.conversations, checked = showConversations, enabled = !(showConversations && activeCount == 1), onCheckedChange = { ui.showHomeConversationsTab.tryEmit(it) }, @@ -112,7 +140,7 @@ private fun HomeTabsSection(ui: UiSettingsFlow) { SettingsDivider() SettingsSwitchTile( icon = MaterialSymbols.Public, - title = R.string.home_tab_everything, + title = Res.string.home_tab_everything, checked = showEverything, enabled = !(showEverything && activeCount == 1), onCheckedChange = { ui.showHomeEverythingTab.tryEmit(it) }, @@ -130,30 +158,30 @@ private data class HomeFeedTypeUi( // Ordered by how common each group is on a typical home feed (everyday posts first, niche last). private val HOME_FEED_TYPES = listOf( - HomeFeedTypeUi(HomeFeedType.TEXT_NOTES, R.string.home_content_type_text_notes, MaterialSymbols.EditNote), - HomeFeedTypeUi(HomeFeedType.REPOSTS, R.string.home_content_type_reposts, MaterialSymbols.Forward), - HomeFeedTypeUi(HomeFeedType.COMMENTS, R.string.home_content_type_comments, MaterialSymbols.Chat), - HomeFeedTypeUi(HomeFeedType.PICTURES, R.string.home_content_type_pictures, MaterialSymbols.Image), - HomeFeedTypeUi(HomeFeedType.VIDEOS, R.string.home_content_type_videos, MaterialSymbols.Videocam), - HomeFeedTypeUi(HomeFeedType.SHORTS, R.string.home_content_type_shorts, MaterialSymbols.SmartDisplay), - HomeFeedTypeUi(HomeFeedType.ARTICLES, R.string.home_content_type_articles, MaterialSymbols.AutoMirrored.Article), - HomeFeedTypeUi(HomeFeedType.WIKI, R.string.home_content_type_wiki, MaterialSymbols.MenuBook), - HomeFeedTypeUi(HomeFeedType.HIGHLIGHTS, R.string.home_content_type_highlights, MaterialSymbols.FormatQuote), - HomeFeedTypeUi(HomeFeedType.POLLS, R.string.home_content_type_polls, MaterialSymbols.Poll), - HomeFeedTypeUi(HomeFeedType.CLASSIFIEDS, R.string.home_content_type_classifieds, MaterialSymbols.Storefront), - HomeFeedTypeUi(HomeFeedType.TORRENTS, R.string.home_content_type_torrents, MaterialSymbols.Download), - HomeFeedTypeUi(HomeFeedType.VOICE, R.string.home_content_type_voice, MaterialSymbols.Mic), - HomeFeedTypeUi(HomeFeedType.LIVE_ACTIVITIES, R.string.home_content_type_live_activities, MaterialSymbols.Sensors), - HomeFeedTypeUi(HomeFeedType.EPHEMERAL_CHAT, R.string.home_content_type_ephemeral_chat, MaterialSymbols.Forum), - HomeFeedTypeUi(HomeFeedType.INTERACTIVE_STORIES, R.string.home_content_type_interactive_stories, MaterialSymbols.AutoAwesome), - HomeFeedTypeUi(HomeFeedType.CHESS, R.string.home_content_type_chess, MaterialSymbols.ChessKnight), - HomeFeedTypeUi(HomeFeedType.BIRDS, R.string.home_content_type_birds, MaterialSymbols.TravelExplore), - HomeFeedTypeUi(HomeFeedType.ATTESTATIONS, R.string.home_content_type_attestations, MaterialSymbols.Shield), - HomeFeedTypeUi(HomeFeedType.NIPS, R.string.home_content_type_nips, MaterialSymbols.Code), - HomeFeedTypeUi(HomeFeedType.MUSIC, R.string.home_content_type_music, MaterialSymbols.MusicNote), - HomeFeedTypeUi(HomeFeedType.PODCASTS, R.string.home_content_type_podcasts, MaterialSymbols.Podcasts), - HomeFeedTypeUi(HomeFeedType.FUNDRAISERS, R.string.home_content_type_fundraisers, MaterialSymbols.Paid), - HomeFeedTypeUi(HomeFeedType.RATINGS, R.string.home_content_type_ratings, MaterialSymbols.Star), + HomeFeedTypeUi(HomeFeedType.TEXT_NOTES, Res.string.home_content_type_text_notes, MaterialSymbols.EditNote), + HomeFeedTypeUi(HomeFeedType.REPOSTS, Res.string.home_content_type_reposts, MaterialSymbols.Forward), + HomeFeedTypeUi(HomeFeedType.COMMENTS, Res.string.home_content_type_comments, MaterialSymbols.Chat), + HomeFeedTypeUi(HomeFeedType.PICTURES, Res.string.home_content_type_pictures, MaterialSymbols.Image), + HomeFeedTypeUi(HomeFeedType.VIDEOS, Res.string.home_content_type_videos, MaterialSymbols.Videocam), + HomeFeedTypeUi(HomeFeedType.SHORTS, Res.string.home_content_type_shorts, MaterialSymbols.SmartDisplay), + HomeFeedTypeUi(HomeFeedType.ARTICLES, Res.string.home_content_type_articles, MaterialSymbols.AutoMirrored.Article), + HomeFeedTypeUi(HomeFeedType.WIKI, Res.string.home_content_type_wiki, MaterialSymbols.MenuBook), + HomeFeedTypeUi(HomeFeedType.HIGHLIGHTS, Res.string.home_content_type_highlights, MaterialSymbols.FormatQuote), + HomeFeedTypeUi(HomeFeedType.POLLS, Res.string.home_content_type_polls, MaterialSymbols.Poll), + HomeFeedTypeUi(HomeFeedType.CLASSIFIEDS, Res.string.home_content_type_classifieds, MaterialSymbols.Storefront), + HomeFeedTypeUi(HomeFeedType.TORRENTS, Res.string.home_content_type_torrents, MaterialSymbols.Download), + HomeFeedTypeUi(HomeFeedType.VOICE, Res.string.home_content_type_voice, MaterialSymbols.Mic), + HomeFeedTypeUi(HomeFeedType.LIVE_ACTIVITIES, Res.string.home_content_type_live_activities, MaterialSymbols.Sensors), + HomeFeedTypeUi(HomeFeedType.EPHEMERAL_CHAT, Res.string.home_content_type_ephemeral_chat, MaterialSymbols.Forum), + HomeFeedTypeUi(HomeFeedType.INTERACTIVE_STORIES, Res.string.home_content_type_interactive_stories, MaterialSymbols.AutoAwesome), + HomeFeedTypeUi(HomeFeedType.CHESS, Res.string.home_content_type_chess, MaterialSymbols.ChessKnight), + HomeFeedTypeUi(HomeFeedType.BIRDS, Res.string.home_content_type_birds, MaterialSymbols.TravelExplore), + HomeFeedTypeUi(HomeFeedType.ATTESTATIONS, Res.string.home_content_type_attestations, MaterialSymbols.Shield), + HomeFeedTypeUi(HomeFeedType.NIPS, Res.string.home_content_type_nips, MaterialSymbols.Code), + HomeFeedTypeUi(HomeFeedType.MUSIC, Res.string.home_content_type_music, MaterialSymbols.MusicNote), + HomeFeedTypeUi(HomeFeedType.PODCASTS, Res.string.home_content_type_podcasts, MaterialSymbols.Podcasts), + HomeFeedTypeUi(HomeFeedType.FUNDRAISERS, Res.string.home_content_type_fundraisers, MaterialSymbols.Paid), + HomeFeedTypeUi(HomeFeedType.RATINGS, Res.string.home_content_type_ratings, MaterialSymbols.Star), ) /** @@ -166,7 +194,7 @@ private fun HomeContentTypesSection(accountViewModel: AccountViewModel) { val enabled by accountViewModel.account.settings.enabledHomeFeedTypes .collectAsStateWithLifecycle() - SettingsSection(R.string.settings_section_home_content_types) { + SettingsSection(Res.string.settings_section_home_content_types) { HOME_FEED_TYPES.forEachIndexed { index, item -> if (index > 0) SettingsDivider() SettingsSwitchTile( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/MessagesSettingsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/MessagesSettingsScreen.kt index 3c1f89effc..dad0ab085e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/MessagesSettingsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/MessagesSettingsScreen.kt @@ -52,12 +52,27 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.chats.ChatFeedType import com.vitorpamplona.amethyst.commons.model.concord.ConcordViewMode import com.vitorpamplona.amethyst.commons.model.nip29RelayGroups.RelayGroupViewMode import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.chat_type_concord_desc +import com.vitorpamplona.amethyst.commons.resources.chat_type_concord_title +import com.vitorpamplona.amethyst.commons.resources.chat_type_ephemeral_desc +import com.vitorpamplona.amethyst.commons.resources.chat_type_ephemeral_title +import com.vitorpamplona.amethyst.commons.resources.chat_type_geohash_desc +import com.vitorpamplona.amethyst.commons.resources.chat_type_geohash_title +import com.vitorpamplona.amethyst.commons.resources.chat_type_marmot_desc +import com.vitorpamplona.amethyst.commons.resources.chat_type_marmot_title +import com.vitorpamplona.amethyst.commons.resources.chat_type_nip04_desc +import com.vitorpamplona.amethyst.commons.resources.chat_type_nip04_title +import com.vitorpamplona.amethyst.commons.resources.chat_type_nip17_desc +import com.vitorpamplona.amethyst.commons.resources.chat_type_nip17_title +import com.vitorpamplona.amethyst.commons.resources.chat_type_nip28_desc +import com.vitorpamplona.amethyst.commons.resources.chat_type_nip28_title +import com.vitorpamplona.amethyst.commons.resources.chat_type_nip29_desc +import com.vitorpamplona.amethyst.commons.resources.chat_type_nip29_title import com.vitorpamplona.amethyst.commons.resources.concord_view_grouped import com.vitorpamplona.amethyst.commons.resources.concord_view_grouped_desc import com.vitorpamplona.amethyst.commons.resources.concord_view_inline @@ -65,6 +80,7 @@ import com.vitorpamplona.amethyst.commons.resources.concord_view_inline_desc import com.vitorpamplona.amethyst.commons.resources.concord_view_mode_title import com.vitorpamplona.amethyst.commons.resources.messages_load_types_desc import com.vitorpamplona.amethyst.commons.resources.messages_load_types_title +import com.vitorpamplona.amethyst.commons.resources.messages_settings import com.vitorpamplona.amethyst.commons.resources.relay_group_view_grouped import com.vitorpamplona.amethyst.commons.resources.relay_group_view_grouped_desc import com.vitorpamplona.amethyst.commons.resources.relay_group_view_inline @@ -101,14 +117,14 @@ private data class ChatFeedTypeUi( // Ordered by how central each type is to the inbox (private first, exotic last). private val CHAT_FEED_TYPES = listOf( - ChatFeedTypeUi(ChatFeedType.NIP17, R.string.chat_type_nip17_title, R.string.chat_type_nip17_desc, Color(0xFF2EBD85)), - ChatFeedTypeUi(ChatFeedType.NIP04, R.string.chat_type_nip04_title, R.string.chat_type_nip04_desc, Color(0xFFF6A609)), - ChatFeedTypeUi(ChatFeedType.NIP28, R.string.chat_type_nip28_title, R.string.chat_type_nip28_desc, Color(0xFF2E90FA)), - ChatFeedTypeUi(ChatFeedType.NIP29, R.string.chat_type_nip29_title, R.string.chat_type_nip29_desc, Color(0xFF9E77ED)), - ChatFeedTypeUi(ChatFeedType.MARMOT, R.string.chat_type_marmot_title, R.string.chat_type_marmot_desc, Color(0xFF5B6AD0)), - ChatFeedTypeUi(ChatFeedType.CONCORD, R.string.chat_type_concord_title, R.string.chat_type_concord_desc, Color(0xFFEC4899)), - ChatFeedTypeUi(ChatFeedType.GEOHASH, R.string.chat_type_geohash_title, R.string.chat_type_geohash_desc, Color(0xFFEF4444)), - ChatFeedTypeUi(ChatFeedType.EPHEMERAL, R.string.chat_type_ephemeral_title, R.string.chat_type_ephemeral_desc, Color(0xFF06B6D4)), + ChatFeedTypeUi(ChatFeedType.NIP17, Res.string.chat_type_nip17_title, Res.string.chat_type_nip17_desc, Color(0xFF2EBD85)), + ChatFeedTypeUi(ChatFeedType.NIP04, Res.string.chat_type_nip04_title, Res.string.chat_type_nip04_desc, Color(0xFFF6A609)), + ChatFeedTypeUi(ChatFeedType.NIP28, Res.string.chat_type_nip28_title, Res.string.chat_type_nip28_desc, Color(0xFF2E90FA)), + ChatFeedTypeUi(ChatFeedType.NIP29, Res.string.chat_type_nip29_title, Res.string.chat_type_nip29_desc, Color(0xFF9E77ED)), + ChatFeedTypeUi(ChatFeedType.MARMOT, Res.string.chat_type_marmot_title, Res.string.chat_type_marmot_desc, Color(0xFF5B6AD0)), + ChatFeedTypeUi(ChatFeedType.CONCORD, Res.string.chat_type_concord_title, Res.string.chat_type_concord_desc, Color(0xFFEC4899)), + ChatFeedTypeUi(ChatFeedType.GEOHASH, Res.string.chat_type_geohash_title, Res.string.chat_type_geohash_desc, Color(0xFFEF4444)), + ChatFeedTypeUi(ChatFeedType.EPHEMERAL, Res.string.chat_type_ephemeral_title, Res.string.chat_type_ephemeral_desc, Color(0xFF06B6D4)), ) /** @@ -131,7 +147,7 @@ fun MessagesSettingsScreen( Scaffold( topBar = { - TopBarWithBackButton(stringRes(R.string.messages_settings), nav) + TopBarWithBackButton(stringRes(Res.string.messages_settings), nav) }, ) { padding -> LazyColumn( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/MutedThreadsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/MutedThreadsScreen.kt index 850c0826c6..13b7d28676 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/MutedThreadsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/MutedThreadsScreen.kt @@ -44,11 +44,12 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.feeds.FeedState import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.action_unmute +import com.vitorpamplona.amethyst.commons.resources.settings_muted_threads_empty +import com.vitorpamplona.amethyst.commons.resources.settings_muted_threads_title import com.vitorpamplona.amethyst.commons.resources.settings_muted_threads_unknown import com.vitorpamplona.amethyst.commons.ui.layouts.rememberFeedContentPadding import com.vitorpamplona.amethyst.ui.feeds.FeedError @@ -76,7 +77,7 @@ fun MutedThreadsScreen( InvalidateOnBlockListChange(accountViewModel) { viewModel.invalidateData() } Scaffold( - topBar = { TopBarWithBackButton(stringRes(R.string.settings_muted_threads_title), nav) }, + topBar = { TopBarWithBackButton(stringRes(Res.string.settings_muted_threads_title), nav) }, ) { padding -> MutedThreadsList( modifier = Modifier.padding(padding), @@ -112,7 +113,7 @@ private fun MutedThreadsList( } is FeedState.Empty -> { - EmptyState(R.string.settings_muted_threads_empty) + EmptyState(Res.string.settings_muted_threads_empty) } is FeedState.Loading -> { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/NIP47SetupScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/NIP47SetupScreen.kt index c8159f1293..f8d194ee75 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/NIP47SetupScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/NIP47SetupScreen.kt @@ -41,13 +41,15 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.delete_payment_target import com.vitorpamplona.amethyst.commons.resources.lightning_address import com.vitorpamplona.amethyst.commons.resources.no_payment_targets_message +import com.vitorpamplona.amethyst.commons.resources.payment_targets +import com.vitorpamplona.amethyst.commons.resources.payment_targets_section_explainer +import com.vitorpamplona.amethyst.commons.resources.wallet_connect import com.vitorpamplona.amethyst.ui.actions.paymentTargets.PaymentTargetAddField import com.vitorpamplona.amethyst.ui.actions.paymentTargets.PaymentTargetsViewModel import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -100,7 +102,7 @@ fun NIP47SetupScreen( Scaffold( topBar = { SavingTopBar( - titleRes = R.string.wallet_connect, + titleRes = Res.string.wallet_connect, isActive = postViewModel::hasChanged, onCancel = { postViewModel.cancel() @@ -168,8 +170,8 @@ private fun PaymentTargetsInlineSection(viewModel: PaymentTargetsViewModel) { val targets by viewModel.paymentTargets.collectAsStateWithLifecycle() SettingsCategory( - R.string.payment_targets, - R.string.payment_targets_section_explainer, + Res.string.payment_targets, + Res.string.payment_targets_section_explainer, SettingsCategorySpacingModifier, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/NamecoinSettingsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/NamecoinSettingsScreen.kt index 79adc0dfc1..f6e0fffb36 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/NamecoinSettingsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/NamecoinSettingsScreen.kt @@ -34,7 +34,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.namecoin_settings import com.vitorpamplona.amethyst.model.preferences.NamecoinSharedPreferences import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.topbars.TopBarWithBackButton @@ -67,7 +68,7 @@ fun NamecoinSettingsScreen( Scaffold( topBar = { - TopBarWithBackButton(stringRes(id = R.string.namecoin_settings), nav) + TopBarWithBackButton(stringRes(id = Res.string.namecoin_settings), nav) }, ) { Column( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/NamecoinSettingsSection.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/NamecoinSettingsSection.kt index 9a1de147ea..ea8efbaec0 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/NamecoinSettingsSection.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/NamecoinSettingsSection.kt @@ -69,7 +69,6 @@ import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.nip05DnsIdentifiers.namecoin.NamecoinSettings @@ -82,6 +81,7 @@ import com.vitorpamplona.amethyst.commons.resources.namecoin_pin_cert_accept import com.vitorpamplona.amethyst.commons.resources.namecoin_pin_cert_body import com.vitorpamplona.amethyst.commons.resources.namecoin_pin_cert_reject import com.vitorpamplona.amethyst.commons.resources.namecoin_pin_cert_title +import com.vitorpamplona.amethyst.commons.resources.namecoin_response_time import com.vitorpamplona.amethyst.commons.resources.namecoin_test_connection import com.vitorpamplona.amethyst.commons.resources.namecoin_test_results import com.vitorpamplona.amethyst.commons.resources.namecoin_test_success @@ -451,7 +451,7 @@ private fun ServerTestResultRow(result: ServerTestResult) { modifier = Modifier.weight(1f), ) Text( - text = stringResource(R.string.namecoin_response_time, result.responseTimeMs), + text = stringResource(Res.string.namecoin_response_time, result.responseTimeMs), style = MaterialTheme.typography.labelSmall, color = MaterialTheme.colorScheme.onSurfaceVariant, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/NavPickerUi.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/NavPickerUi.kt index 3c72c6e44a..245c0aa076 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/NavPickerUi.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/NavPickerUi.kt @@ -78,6 +78,7 @@ import com.vitorpamplona.amethyst.ui.theme.Size24dp import com.vitorpamplona.amethyst.ui.theme.Size34dp import com.vitorpamplona.amethyst.ui.theme.Size40dp import com.vitorpamplona.amethyst.ui.theme.Size6dp +import org.jetbrains.compose.resources.StringResource /** * The shared visual language of the navigation-configuration screens — the Bottom Navigation Bar @@ -148,7 +149,7 @@ fun LeadingGlyph(icon: MaterialSymbol) { @Composable fun EmptyChildHint( - textRes: Int, + textRes: StringResource, indentLevel: Int = 1, ) { Text( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/NotificationSettingsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/NotificationSettingsScreen.kt index 8ed9af005a..909fed5137 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/NotificationSettingsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/NotificationSettingsScreen.kt @@ -39,10 +39,12 @@ import androidx.compose.material3.Scaffold import androidx.compose.material3.Switch import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.produceState import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -53,11 +55,13 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import androidx.lifecycle.Lifecycle import androidx.lifecycle.compose.LifecycleResumeEffect +import androidx.lifecycle.compose.LocalLifecycleOwner import androidx.lifecycle.compose.collectAsStateWithLifecycle +import androidx.lifecycle.repeatOnLifecycle import com.vitorpamplona.amethyst.AccountInfo import com.vitorpamplona.amethyst.LocalPreferences -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.battery_optimization_description @@ -66,7 +70,18 @@ import com.vitorpamplona.amethyst.commons.resources.battery_optimization_title import com.vitorpamplona.amethyst.commons.resources.notification_channel_status_off import com.vitorpamplona.amethyst.commons.resources.notification_channel_status_on import com.vitorpamplona.amethyst.commons.resources.notification_channel_status_silent +import com.vitorpamplona.amethyst.commons.resources.notification_service_accounts_title +import com.vitorpamplona.amethyst.commons.resources.notification_service_master_description +import com.vitorpamplona.amethyst.commons.resources.notification_service_master_title +import com.vitorpamplona.amethyst.commons.resources.notification_settings import com.vitorpamplona.amethyst.commons.resources.notification_settings_categories_explainer +import com.vitorpamplona.amethyst.commons.resources.notification_settings_section_categories +import com.vitorpamplona.amethyst.commons.resources.notification_settings_section_delivery +import com.vitorpamplona.amethyst.commons.resources.notification_settings_section_display +import com.vitorpamplona.amethyst.commons.resources.show_messages_in_notifications_setting_description +import com.vitorpamplona.amethyst.commons.resources.show_messages_in_notifications_setting_title +import com.vitorpamplona.amethyst.commons.resources.split_notifications_setting_description +import com.vitorpamplona.amethyst.commons.resources.split_notifications_setting_title import com.vitorpamplona.amethyst.model.AccountSettings import com.vitorpamplona.amethyst.service.notifications.BatteryOptimizationHelper import com.vitorpamplona.amethyst.service.notifications.NotificationChannels @@ -85,6 +100,7 @@ import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.Size35dp import com.vitorpamplona.amethyst.ui.theme.ThemeComparisonColumn import com.vitorpamplona.quartz.nip19Bech32.decodePublicKeyAsHexOrNull +import kotlinx.coroutines.launch @Composable fun NotificationSettingsScreen( @@ -92,7 +108,7 @@ fun NotificationSettingsScreen( nav: INav, ) { Scaffold( - topBar = { TopBarWithBackButton(stringRes(id = R.string.notification_settings), nav) }, + topBar = { TopBarWithBackButton(stringRes(id = Res.string.notification_settings), nav) }, ) { padding -> Column( modifier = @@ -119,15 +135,15 @@ private fun DeliverySection(accountViewModel: AccountViewModel) { } } - SettingsSection(R.string.notification_settings_section_delivery) { + SettingsSection(Res.string.notification_settings_section_delivery) { if (hasPushNotificationProvider()) { PushNotificationProviderTile(accountViewModel.settings.uiSettingsFlow) SettingsDivider() } SettingsSwitchTile( icon = MaterialSymbols.Notifications, - title = R.string.notification_service_master_title, - description = R.string.notification_service_master_description, + title = Res.string.notification_service_master_title, + description = Res.string.notification_service_master_description, checked = master, onCheckedChange = { LocalPreferences.setNotificationServiceEnabled(it) }, ) @@ -162,7 +178,7 @@ private fun BackgroundAccountsSection(accountViewModel: AccountViewModel) { if (accounts.isEmpty()) return - SettingsSection(R.string.notification_service_accounts_title) { + SettingsSection(Res.string.notification_service_accounts_title) { accounts.forEachIndexed { index, (info, settings) -> if (index > 0) SettingsDivider() AccountParticipationRow(info, settings, accountViewModel) @@ -245,19 +261,19 @@ private fun DisplaySection(accountViewModel: AccountViewModel) { val showMessages by accountViewModel.account.settings.showMessagesInNotifications .collectAsStateWithLifecycle() - SettingsSection(R.string.notification_settings_section_display) { + SettingsSection(Res.string.notification_settings_section_display) { SettingsSwitchTile( icon = MaterialSymbols.Forum, - title = R.string.split_notifications_setting_title, - description = R.string.split_notifications_setting_description, + title = Res.string.split_notifications_setting_title, + description = Res.string.split_notifications_setting_description, checked = splitByFollows, onCheckedChange = { accountViewModel.account.settings.toggleSplitNotificationsEnabled() }, ) SettingsDivider() SettingsSwitchTile( icon = MaterialSymbols.Mail, - title = R.string.show_messages_in_notifications_setting_title, - description = R.string.show_messages_in_notifications_setting_description, + title = Res.string.show_messages_in_notifications_setting_title, + description = Res.string.show_messages_in_notifications_setting_description, checked = showMessages, onCheckedChange = { accountViewModel.account.settings.toggleShowMessagesInNotifications() }, ) @@ -268,6 +284,7 @@ private fun DisplaySection(accountViewModel: AccountViewModel) { private fun CategoriesSection() { val context = LocalContext.current val entries = NotificationChannels.contentChannels + val scope = rememberCoroutineScope() // Read each channel's importance after every resume so toggling // sound/importance in the system page reflects back here. The map IS @@ -275,19 +292,26 @@ private fun CategoriesSection() { var statuses by remember { mutableStateOf>(emptyMap()) } - LifecycleResumeEffect(Unit) { - statuses = - entries.associate { - val id = it.channelId(context) - id to NotificationChannels.statusOf(context, id) - } - onPauseOrDispose {} + val lifecycleOwner = LocalLifecycleOwner.current + LaunchedEffect(lifecycleOwner) { + // Re-read each channel's importance on every resume, so toggling + // sound/importance in the system page reflects back here. The map IS + // the state - no key-bump trick needed. Reading a channel id is a + // suspend call now (Compose resources), hence a coroutine rather than + // LifecycleResumeEffect. + lifecycleOwner.lifecycle.repeatOnLifecycle(Lifecycle.State.RESUMED) { + statuses = + entries.associate { + val id = it.channelId(context) + id to NotificationChannels.statusOf(context, id) + } + } } - SettingsSection(R.string.notification_settings_section_categories) { + SettingsSection(Res.string.notification_settings_section_categories) { entries.forEachIndexed { index, entry -> if (index > 0) SettingsDivider() - val channelId = remember(entry) { entry.channelId(context) } + val channelId by produceState("", entry) { value = entry.channelId(context) } // Default to ON for channels not yet created — matches Android's // own default importance, so the badge isn't misleading before the // user has interacted with the channel. @@ -297,10 +321,12 @@ private fun CategoriesSection() { icon = entry.icon, trailing = { ChannelStatusBadge(status) }, onClick = { - // Lazy-create the channel right before opening so the system - // per-channel page has something to display; idempotent. - entry.ensure(context) - NotificationChannels.openChannelSettings(context, channelId) + scope.launch { + // Lazy-create the channel right before opening so the system + // per-channel page has something to display; idempotent. + entry.ensure(context) + NotificationChannels.openChannelSettings(context, channelId) + } }, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/OtsSettingsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/OtsSettingsScreen.kt index 2a5476787f..d35f62e0df 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/OtsSettingsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/OtsSettingsScreen.kt @@ -34,7 +34,8 @@ import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.ots_explorer_settings import com.vitorpamplona.amethyst.commons.tor.TorType import com.vitorpamplona.amethyst.model.preferences.OtsSharedPreferences import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -65,7 +66,7 @@ fun OtsSettingsScreen( Scaffold( topBar = { - TopBarWithBackButton(stringRes(id = R.string.ots_explorer_settings), nav) + TopBarWithBackButton(stringRes(id = Res.string.ots_explorer_settings), nav) }, ) { Column( diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/OtsSettingsSection.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/OtsSettingsSection.kt index 368386c3e4..7a6eb30b20 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/OtsSettingsSection.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/OtsSettingsSection.kt @@ -54,7 +54,6 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.nip03Timestamp.OtsSettings @@ -62,6 +61,7 @@ import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.clear import com.vitorpamplona.amethyst.commons.resources.ots_explorer_api_label import com.vitorpamplona.amethyst.commons.resources.ots_reset_to_auto_select +import com.vitorpamplona.amethyst.commons.resources.save import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.BitcoinOrange import com.vitorpamplona.quartz.nip03Timestamp.okhttp.OkHttpBitcoinExplorer @@ -318,7 +318,7 @@ private fun CustomExplorerInput( onClick = { trySave() }, modifier = Modifier.padding(top = 6.dp), ) { - Text(stringRes(R.string.save)) + Text(stringRes(Res.string.save)) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/ProfileUiSettingsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/ProfileUiSettingsScreen.kt index b3e10a008b..e5069142e3 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/ProfileUiSettingsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/ProfileUiSettingsScreen.kt @@ -33,8 +33,18 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.gallery_style +import com.vitorpamplona.amethyst.commons.resources.gallery_style_description +import com.vitorpamplona.amethyst.commons.resources.profile_ui_setting_app_recommendations +import com.vitorpamplona.amethyst.commons.resources.profile_ui_setting_badges +import com.vitorpamplona.amethyst.commons.resources.profile_ui_setting_followers_feed +import com.vitorpamplona.amethyst.commons.resources.profile_ui_setting_onchain_wallet +import com.vitorpamplona.amethyst.commons.resources.profile_ui_setting_zap_received_feed +import com.vitorpamplona.amethyst.commons.resources.profile_ui_settings +import com.vitorpamplona.amethyst.commons.resources.settings_section_appearance +import com.vitorpamplona.amethyst.commons.resources.settings_section_profile_sections import com.vitorpamplona.amethyst.model.ProfileGalleryType import com.vitorpamplona.amethyst.model.UiSettingsFlow import com.vitorpamplona.amethyst.ui.navigation.navs.EmptyNav @@ -63,7 +73,7 @@ fun ProfileUiSettingsScreen( ) { Scaffold( topBar = { - TopBarWithBackButton(stringRes(id = R.string.profile_ui_settings), nav) + TopBarWithBackButton(stringRes(id = Res.string.profile_ui_settings), nav) }, ) { padding -> ProfileUiSettingsContent(accountViewModel.settings.uiSettingsFlow, Modifier.padding(padding)) @@ -90,48 +100,48 @@ fun ProfileUiSettingsContent( .padding(horizontal = 16.dp, vertical = 12.dp), verticalArrangement = Arrangement.spacedBy(20.dp), ) { - SettingsSection(R.string.settings_section_profile_sections) { + SettingsSection(Res.string.settings_section_profile_sections) { SettingsSwitchTile( icon = MaterialSymbols.MilitaryTech, - title = R.string.profile_ui_setting_badges, + title = Res.string.profile_ui_setting_badges, checked = showBadges, onCheckedChange = { ui.showProfileBadges.tryEmit(it) }, ) SettingsDivider() SettingsSwitchTile( icon = MaterialSymbols.Recommend, - title = R.string.profile_ui_setting_app_recommendations, + title = Res.string.profile_ui_setting_app_recommendations, checked = showAppRecommendations, onCheckedChange = { ui.showProfileAppRecommendations.tryEmit(it) }, ) SettingsDivider() SettingsSwitchTile( icon = MaterialSymbols.Bolt, - title = R.string.profile_ui_setting_zap_received_feed, + title = Res.string.profile_ui_setting_zap_received_feed, checked = showZapReceived, onCheckedChange = { ui.showProfileZapReceivedFeed.tryEmit(it) }, ) SettingsDivider() SettingsSwitchTile( icon = MaterialSymbols.Group, - title = R.string.profile_ui_setting_followers_feed, + title = Res.string.profile_ui_setting_followers_feed, checked = showFollowers, onCheckedChange = { ui.showProfileFollowersFeed.tryEmit(it) }, ) SettingsDivider() SettingsSwitchTile( icon = MaterialSymbols.AccountBalanceWallet, - title = R.string.profile_ui_setting_onchain_wallet, + title = Res.string.profile_ui_setting_onchain_wallet, checked = showOnchainWallet, onCheckedChange = { ui.showOnchainWallet.tryEmit(it) }, ) } - SettingsSection(R.string.settings_section_appearance) { + SettingsSection(Res.string.settings_section_appearance) { SegmentedChoiceTile( icon = MaterialSymbols.Collections, - title = R.string.gallery_style, - description = R.string.gallery_style_description, + title = Res.string.gallery_style, + description = Res.string.gallery_style_description, options = ProfileGalleryType.entries, labelRes = { it.resourceId }, selected = gallery, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/ReactionsSettingsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/ReactionsSettingsScreen.kt index 58fc24368e..87733f4264 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/ReactionsSettingsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/ReactionsSettingsScreen.kt @@ -58,10 +58,10 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.zIndex import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.reactions_settings import com.vitorpamplona.amethyst.commons.resources.reactions_settings_boost import com.vitorpamplona.amethyst.commons.resources.reactions_settings_boost_description import com.vitorpamplona.amethyst.commons.resources.reactions_settings_description @@ -107,7 +107,7 @@ fun ReactionsSettingsScreen( ) { Scaffold( topBar = { - TopBarWithBackButton(stringRes(id = R.string.reactions_settings), nav) + TopBarWithBackButton(stringRes(id = Res.string.reactions_settings), nav) }, ) { padding -> Column(Modifier.padding(padding)) { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/ResourceUsageScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/ResourceUsageScreen.kt index d6557f22ec..5969bf1368 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/ResourceUsageScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/ResourceUsageScreen.kt @@ -60,19 +60,78 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import com.vitorpamplona.amethyst.Amethyst import com.vitorpamplona.amethyst.MemorySnapshot -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.collectMemorySnapshot import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.resource_usage_activity_section +import com.vitorpamplona.amethyst.commons.resources.resource_usage_alwayson_battery +import com.vitorpamplona.amethyst.commons.resources.resource_usage_alwayson_bg_relay import com.vitorpamplona.amethyst.commons.resources.resource_usage_alwayson_explanation +import com.vitorpamplona.amethyst.commons.resources.resource_usage_alwayson_section import com.vitorpamplona.amethyst.commons.resources.resource_usage_alwayson_settings_button +import com.vitorpamplona.amethyst.commons.resources.resource_usage_alwayson_starts +import com.vitorpamplona.amethyst.commons.resources.resource_usage_alwayson_uptime +import com.vitorpamplona.amethyst.commons.resources.resource_usage_app_starts +import com.vitorpamplona.amethyst.commons.resources.resource_usage_battery_drain +import com.vitorpamplona.amethyst.commons.resources.resource_usage_by_subsystem +import com.vitorpamplona.amethyst.commons.resources.resource_usage_by_subsystem_cellular +import com.vitorpamplona.amethyst.commons.resources.resource_usage_calls import com.vitorpamplona.amethyst.commons.resources.resource_usage_cell_of_total import com.vitorpamplona.amethyst.commons.resources.resource_usage_copy_button +import com.vitorpamplona.amethyst.commons.resources.resource_usage_cpu +import com.vitorpamplona.amethyst.commons.resources.resource_usage_decrypts import com.vitorpamplona.amethyst.commons.resources.resource_usage_empty +import com.vitorpamplona.amethyst.commons.resources.resource_usage_http_active +import com.vitorpamplona.amethyst.commons.resources.resource_usage_http_requests +import com.vitorpamplona.amethyst.commons.resources.resource_usage_location +import com.vitorpamplona.amethyst.commons.resources.resource_usage_media_play +import com.vitorpamplona.amethyst.commons.resources.resource_usage_memory_addressables +import com.vitorpamplona.amethyst.commons.resources.resource_usage_memory_chatrooms +import com.vitorpamplona.amethyst.commons.resources.resource_usage_memory_device_class +import com.vitorpamplona.amethyst.commons.resources.resource_usage_memory_heap +import com.vitorpamplona.amethyst.commons.resources.resource_usage_memory_image_cache +import com.vitorpamplona.amethyst.commons.resources.resource_usage_memory_image_disk +import com.vitorpamplona.amethyst.commons.resources.resource_usage_memory_native +import com.vitorpamplona.amethyst.commons.resources.resource_usage_memory_notes +import com.vitorpamplona.amethyst.commons.resources.resource_usage_memory_section +import com.vitorpamplona.amethyst.commons.resources.resource_usage_memory_users +import com.vitorpamplona.amethyst.commons.resources.resource_usage_nests +import com.vitorpamplona.amethyst.commons.resources.resource_usage_pow +import com.vitorpamplona.amethyst.commons.resources.resource_usage_radio_bursts +import com.vitorpamplona.amethyst.commons.resources.resource_usage_reconnects +import com.vitorpamplona.amethyst.commons.resources.resource_usage_relay_time +import com.vitorpamplona.amethyst.commons.resources.resource_usage_relay_time_bg_mobile +import com.vitorpamplona.amethyst.commons.resources.resource_usage_remote_signs +import com.vitorpamplona.amethyst.commons.resources.resource_usage_screen_time_section import com.vitorpamplona.amethyst.commons.resources.resource_usage_send_button import com.vitorpamplona.amethyst.commons.resources.resource_usage_send_explanation +import com.vitorpamplona.amethyst.commons.resources.resource_usage_send_section +import com.vitorpamplona.amethyst.commons.resources.resource_usage_share_button +import com.vitorpamplona.amethyst.commons.resources.resource_usage_subsystem_image +import com.vitorpamplona.amethyst.commons.resources.resource_usage_subsystem_money +import com.vitorpamplona.amethyst.commons.resources.resource_usage_subsystem_nip05 +import com.vitorpamplona.amethyst.commons.resources.resource_usage_subsystem_other +import com.vitorpamplona.amethyst.commons.resources.resource_usage_subsystem_preview +import com.vitorpamplona.amethyst.commons.resources.resource_usage_subsystem_push +import com.vitorpamplona.amethyst.commons.resources.resource_usage_subsystem_relay +import com.vitorpamplona.amethyst.commons.resources.resource_usage_subsystem_uploads +import com.vitorpamplona.amethyst.commons.resources.resource_usage_subsystem_video +import com.vitorpamplona.amethyst.commons.resources.resource_usage_tile_avg_relays +import com.vitorpamplona.amethyst.commons.resources.resource_usage_tile_battery_rate +import com.vitorpamplona.amethyst.commons.resources.resource_usage_tile_cellular +import com.vitorpamplona.amethyst.commons.resources.resource_usage_tile_data_rate +import com.vitorpamplona.amethyst.commons.resources.resource_usage_tile_in_app +import com.vitorpamplona.amethyst.commons.resources.resource_usage_tile_relay +import com.vitorpamplona.amethyst.commons.resources.resource_usage_tile_wifi +import com.vitorpamplona.amethyst.commons.resources.resource_usage_title +import com.vitorpamplona.amethyst.commons.resources.resource_usage_tor import com.vitorpamplona.amethyst.commons.resources.resource_usage_tor_explanation +import com.vitorpamplona.amethyst.commons.resources.resource_usage_tor_section import com.vitorpamplona.amethyst.commons.resources.resource_usage_tor_settings_button +import com.vitorpamplona.amethyst.commons.resources.resource_usage_trend_section +import com.vitorpamplona.amethyst.commons.resources.resource_usage_verifies +import com.vitorpamplona.amethyst.commons.resources.resource_usage_wakelock +import com.vitorpamplona.amethyst.commons.resources.resource_usage_worker_runs import com.vitorpamplona.amethyst.commons.service.crashreports.DEV_REPORT_PUBKEY import com.vitorpamplona.amethyst.service.resourceusage.ResourceUsageAccountant import com.vitorpamplona.amethyst.service.resourceusage.ResourceUsageReportAssembler @@ -93,6 +152,7 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay import kotlinx.coroutines.launch import kotlinx.coroutines.withContext +import org.jetbrains.compose.resources.StringResource import java.util.Locale /** @@ -129,7 +189,7 @@ fun ResourceUsageScreen( } Scaffold( - topBar = { TopBarWithBackButton(stringRes(id = R.string.resource_usage_title), nav) }, + topBar = { TopBarWithBackButton(stringRes(id = Res.string.resource_usage_title), nav) }, ) { padding -> Column( modifier = @@ -157,7 +217,7 @@ fun ResourceUsageScreen( TodayTiles(todaySummary) WeekRatesTiles(weekSummary) if (weekSummary.totalBytes > 0) { - SettingsSection(R.string.resource_usage_trend_section) { + SettingsSection(Res.string.resource_usage_trend_section) { UsageTrendChart(loaded, today) } } @@ -178,19 +238,19 @@ fun ResourceUsageScreen( private fun TodayTiles(s: UsageSummary) { Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { Row(horizontalArrangement = Arrangement.spacedBy(12.dp)) { - StatTile(R.string.resource_usage_tile_cellular, formatBytes(s.mobileBytes), Modifier.weight(1f)) - StatTile(R.string.resource_usage_tile_wifi, formatBytes(s.wifiBytesBg + s.wifiBytesFg), Modifier.weight(1f)) + StatTile(Res.string.resource_usage_tile_cellular, formatBytes(s.mobileBytes), Modifier.weight(1f)) + StatTile(Res.string.resource_usage_tile_wifi, formatBytes(s.wifiBytesBg + s.wifiBytesFg), Modifier.weight(1f)) } Row(horizontalArrangement = Arrangement.spacedBy(12.dp)) { - StatTile(R.string.resource_usage_tile_relay, formatConnHours(s.relayConnMs), Modifier.weight(1f)) - StatTile(R.string.resource_usage_tile_in_app, formatDurationMs(s.foregroundMs), Modifier.weight(1f)) + StatTile(Res.string.resource_usage_tile_relay, formatConnHours(s.relayConnMs), Modifier.weight(1f)) + StatTile(Res.string.resource_usage_tile_in_app, formatDurationMs(s.foregroundMs), Modifier.weight(1f)) } } } @Composable private fun StatTile( - @StringRes label: Int, + label: StringResource, value: String, modifier: Modifier = Modifier, ) { @@ -229,14 +289,14 @@ private fun WeekRatesTiles(s: UsageSummary) { val tiles = buildList { if (fgHours >= 0.5 && s.batteryDrainFg > 0) { - add(R.string.resource_usage_tile_battery_rate to String.format(Locale.US, "%.1f%%", s.batteryDrainFg / fgHours)) + add(Res.string.resource_usage_tile_battery_rate to String.format(Locale.US, "%.1f%%", s.batteryDrainFg / fgHours)) } if (fgHours >= 0.5) { - add(R.string.resource_usage_tile_data_rate to formatBytes(((s.mobileBytesFg + s.wifiBytesFg) / fgHours).toLong())) + add(Res.string.resource_usage_tile_data_rate to formatBytes(((s.mobileBytesFg + s.wifiBytesFg) / fgHours).toLong())) } val avgRelays = s.relayConnMs.toDouble() / (s.dayCount * ResourceUsageAccountant.DAY_MS) if (avgRelays >= 0.5) { - add(R.string.resource_usage_tile_avg_relays to String.format(Locale.US, "%.1f", avgRelays)) + add(Res.string.resource_usage_tile_avg_relays to String.format(Locale.US, "%.1f", avgRelays)) } } if (tiles.isEmpty()) return @@ -257,7 +317,7 @@ private fun SubsystemSection(week: UsageSummary) { if (cellular.isNotEmpty()) { val rows = cellular.entries.sortedByDescending { it.value } val max = rows.first().value.coerceAtLeast(1L) - SettingsSection(R.string.resource_usage_by_subsystem_cellular) { + SettingsSection(Res.string.resource_usage_by_subsystem_cellular) { rows.forEach { (subsystem, bytes) -> BarRow( label = subsystemLabel(subsystem), @@ -271,7 +331,7 @@ private fun SubsystemSection(week: UsageSummary) { if (week.bytesPerSubsystem.isEmpty()) return val rows = week.bytesPerSubsystem.entries.sortedByDescending { it.value } val max = rows.first().value.coerceAtLeast(1L) - SettingsSection(R.string.resource_usage_by_subsystem) { + SettingsSection(Res.string.resource_usage_by_subsystem) { rows.forEach { (subsystem, bytes) -> BarRow( label = subsystemLabel(subsystem), @@ -294,7 +354,7 @@ private fun ScreenTimeSection(week: UsageSummary) { .sortedByDescending { it.value } .take(6) val max = rows.first().value.coerceAtLeast(1L) - SettingsSection(R.string.resource_usage_screen_time_section) { + SettingsSection(Res.string.resource_usage_screen_time_section) { rows.forEach { (name, ms) -> BarRow( label = name, @@ -308,20 +368,20 @@ private fun ScreenTimeSection(week: UsageSummary) { @StringRes private fun subsystemLabel(subsystem: String): Int = when (subsystem) { - "relay" -> R.string.resource_usage_subsystem_relay - "image" -> R.string.resource_usage_subsystem_image - "video" -> R.string.resource_usage_subsystem_video - "uploads" -> R.string.resource_usage_subsystem_uploads - "money" -> R.string.resource_usage_subsystem_money - "nip05" -> R.string.resource_usage_subsystem_nip05 - "preview" -> R.string.resource_usage_subsystem_preview - "push" -> R.string.resource_usage_subsystem_push - else -> R.string.resource_usage_subsystem_other + "relay" -> Res.string.resource_usage_subsystem_relay + "image" -> Res.string.resource_usage_subsystem_image + "video" -> Res.string.resource_usage_subsystem_video + "uploads" -> Res.string.resource_usage_subsystem_uploads + "money" -> Res.string.resource_usage_subsystem_money + "nip05" -> Res.string.resource_usage_subsystem_nip05 + "preview" -> Res.string.resource_usage_subsystem_preview + "push" -> Res.string.resource_usage_subsystem_push + else -> Res.string.resource_usage_subsystem_other } @Composable private fun BarRow( - @StringRes label: Int, + label: StringResource, value: String, fraction: Float, color: Color = MaterialTheme.colorScheme.primary, @@ -374,68 +434,68 @@ private fun BarRow( /** Background/CPU activity counters for the last 7 days. */ @Composable private fun ActivitySection(s: UsageSummary) { - SettingsSection(R.string.resource_usage_activity_section) { - MetricRow(R.string.resource_usage_relay_time, formatConnHours(s.relayConnMs)) + SettingsSection(Res.string.resource_usage_activity_section) { + MetricRow(Res.string.resource_usage_relay_time, formatConnHours(s.relayConnMs)) SettingsDivider() - MetricRow(R.string.resource_usage_relay_time_bg_mobile, formatConnHours(s.relayConnMsMobileBg)) + MetricRow(Res.string.resource_usage_relay_time_bg_mobile, formatConnHours(s.relayConnMsMobileBg)) SettingsDivider() - MetricRow(R.string.resource_usage_reconnects, "${s.relayConnects} (${s.relayConnectFails})") + MetricRow(Res.string.resource_usage_reconnects, "${s.relayConnects} (${s.relayConnectFails})") SettingsDivider() - MetricRow(R.string.resource_usage_http_requests, s.httpRequests.toString()) + MetricRow(Res.string.resource_usage_http_requests, s.httpRequests.toString()) SettingsDivider() - MetricRow(R.string.resource_usage_radio_bursts, s.radioBursts.toString()) + MetricRow(Res.string.resource_usage_radio_bursts, s.radioBursts.toString()) SettingsDivider() - MetricRow(R.string.resource_usage_http_active, formatDurationMs(s.httpActiveMs)) + MetricRow(Res.string.resource_usage_http_active, formatDurationMs(s.httpActiveMs)) SettingsDivider() - MetricRow(R.string.resource_usage_media_play, formatDurationMs(s.mediaPlayMs)) + MetricRow(Res.string.resource_usage_media_play, formatDurationMs(s.mediaPlayMs)) SettingsDivider() - MetricRow(R.string.resource_usage_verifies, s.verifyCount.toString()) + MetricRow(Res.string.resource_usage_verifies, s.verifyCount.toString()) SettingsDivider() - MetricRow(R.string.resource_usage_cpu, formatDurationMs(s.cpuMs)) + MetricRow(Res.string.resource_usage_cpu, formatDurationMs(s.cpuMs)) SettingsDivider() - MetricRow(R.string.resource_usage_wakelock, formatDurationMs(s.wakelockMs)) + MetricRow(Res.string.resource_usage_wakelock, formatDurationMs(s.wakelockMs)) SettingsDivider() - MetricRow(R.string.resource_usage_worker_runs, s.workerRuns.toString()) + MetricRow(Res.string.resource_usage_worker_runs, s.workerRuns.toString()) SettingsDivider() - MetricRow(R.string.resource_usage_app_starts, s.appStarts.toString()) + MetricRow(Res.string.resource_usage_app_starts, s.appStarts.toString()) if (s.decryptCount > 0) { SettingsDivider() - MetricRow(R.string.resource_usage_decrypts, s.decryptCount.toString()) + MetricRow(Res.string.resource_usage_decrypts, s.decryptCount.toString()) } if (s.signNip46 + s.signNip55 > 0) { SettingsDivider() - MetricRow(R.string.resource_usage_remote_signs, (s.signNip46 + s.signNip55).toString()) + MetricRow(Res.string.resource_usage_remote_signs, (s.signNip46 + s.signNip55).toString()) } if (s.powMs > 0) { SettingsDivider() - MetricRow(R.string.resource_usage_pow, formatDurationMs(s.powMs)) + MetricRow(Res.string.resource_usage_pow, formatDurationMs(s.powMs)) } if (s.torMs > 0) { SettingsDivider() - MetricRow(R.string.resource_usage_tor, formatDurationMs(s.torMs)) + MetricRow(Res.string.resource_usage_tor, formatDurationMs(s.torMs)) } if (s.callMs > 0) { SettingsDivider() - MetricRow(R.string.resource_usage_calls, formatDurationMs(s.callMs)) + MetricRow(Res.string.resource_usage_calls, formatDurationMs(s.callMs)) } if (s.nestsMs > 0) { SettingsDivider() - MetricRow(R.string.resource_usage_nests, formatDurationMs(s.nestsMs)) + MetricRow(Res.string.resource_usage_nests, formatDurationMs(s.nestsMs)) } if (s.locationMs > 0) { SettingsDivider() - MetricRow(R.string.resource_usage_location, formatDurationMs(s.locationMs)) + MetricRow(Res.string.resource_usage_location, formatDurationMs(s.locationMs)) } if (s.batteryDrainFg + s.batteryDrainBg > 0) { SettingsDivider() - MetricRow(R.string.resource_usage_battery_drain, "${s.batteryDrainFg}% / ${s.batteryDrainBg}%") + MetricRow(Res.string.resource_usage_battery_drain, "${s.batteryDrainFg}% / ${s.batteryDrainBg}%") } } } @Composable private fun MetricRow( - @StringRes label: Int, + label: StringResource, value: String, ) { Row( @@ -468,35 +528,35 @@ private fun MemorySection(memory: MemorySnapshot?) { memory.heapFraction > 0.60f -> MaterialTheme.colorScheme.warningColor else -> MaterialTheme.colorScheme.allGoodColor } - SettingsSection(R.string.resource_usage_memory_section) { + SettingsSection(Res.string.resource_usage_memory_section) { BarRow( - label = R.string.resource_usage_memory_heap, + label = Res.string.resource_usage_memory_heap, value = "${memory.heapUsedMb} / ${memory.heapMaxMb} MB", fraction = memory.heapFraction, color = heapColor, ) BarRow( - label = R.string.resource_usage_memory_image_cache, + label = Res.string.resource_usage_memory_image_cache, value = "${memory.imageCacheUsedMb} / ${memory.imageCacheMaxMb} MB", fraction = memory.imageCacheUsedMb.toFloat() / memory.imageCacheMaxMb.coerceAtLeast(1L).toFloat(), ) BarRow( - label = R.string.resource_usage_memory_image_disk, + label = Res.string.resource_usage_memory_image_disk, value = "${memory.imageDiskUsedMb} / ${memory.imageDiskMaxMb} MB", fraction = memory.imageDiskUsedMb.toFloat() / memory.imageDiskMaxMb.coerceAtLeast(1L).toFloat(), ) SettingsDivider() - MetricRow(R.string.resource_usage_memory_native, "${memory.nativeHeapUsedMb} MB") + MetricRow(Res.string.resource_usage_memory_native, "${memory.nativeHeapUsedMb} MB") SettingsDivider() - MetricRow(R.string.resource_usage_memory_notes, memory.noteCount.toString()) + MetricRow(Res.string.resource_usage_memory_notes, memory.noteCount.toString()) SettingsDivider() - MetricRow(R.string.resource_usage_memory_users, memory.userCount.toString()) + MetricRow(Res.string.resource_usage_memory_users, memory.userCount.toString()) SettingsDivider() - MetricRow(R.string.resource_usage_memory_addressables, memory.addressableCount.toString()) + MetricRow(Res.string.resource_usage_memory_addressables, memory.addressableCount.toString()) SettingsDivider() - MetricRow(R.string.resource_usage_memory_chatrooms, memory.chatroomCount.toString()) + MetricRow(Res.string.resource_usage_memory_chatrooms, memory.chatroomCount.toString()) SettingsDivider() - MetricRow(R.string.resource_usage_memory_device_class, "${memory.memoryClassMb} MB") + MetricRow(Res.string.resource_usage_memory_device_class, "${memory.memoryClassMb} MB") } } @@ -514,7 +574,7 @@ private fun AlwaysOnServiceSection( ) { if (s.alwaysOnMs <= 0) return val starts = s.alwaysOnStarts.toInt() - SettingsSection(R.string.resource_usage_alwayson_section) { + SettingsSection(Res.string.resource_usage_alwayson_section) { Column( modifier = Modifier.padding(16.dp), verticalArrangement = Arrangement.spacedBy(12.dp), @@ -526,17 +586,17 @@ private fun AlwaysOnServiceSection( ) } MetricRow( - R.string.resource_usage_alwayson_uptime, - "${formatDurationMs(s.alwaysOnMs)} · ${pluralStringResource(R.plurals.resource_usage_alwayson_starts, starts, starts)}", + Res.string.resource_usage_alwayson_uptime, + "${formatDurationMs(s.alwaysOnMs)} · ${pluralStringResource(Res.plurals.resource_usage_alwayson_starts, starts, starts)}", ) SettingsDivider() MetricRow( - R.string.resource_usage_alwayson_bg_relay, + Res.string.resource_usage_alwayson_bg_relay, formatConnHours(s.relayConnMsMobileBg + s.relayConnMsWifiBg), ) if (s.batteryDrainBg > 0) { SettingsDivider() - MetricRow(R.string.resource_usage_alwayson_battery, "${s.batteryDrainBg}%") + MetricRow(Res.string.resource_usage_alwayson_battery, "${s.batteryDrainBg}%") } Column(modifier = Modifier.padding(horizontal = 8.dp, vertical = 4.dp)) { TextButton( @@ -560,7 +620,7 @@ private fun TorServiceSection( ) { if (s.torMs <= 0) return val starts = s.torStarts.toInt() - SettingsSection(R.string.resource_usage_tor_section) { + SettingsSection(Res.string.resource_usage_tor_section) { Column( modifier = Modifier.padding(16.dp), verticalArrangement = Arrangement.spacedBy(12.dp), @@ -572,8 +632,8 @@ private fun TorServiceSection( ) } MetricRow( - R.string.resource_usage_alwayson_uptime, - "${formatDurationMs(s.torMs)} · ${pluralStringResource(R.plurals.resource_usage_alwayson_starts, starts, starts)}", + Res.string.resource_usage_alwayson_uptime, + "${formatDurationMs(s.torMs)} · ${pluralStringResource(Res.plurals.resource_usage_alwayson_starts, starts, starts)}", ) Column(modifier = Modifier.padding(horizontal = 8.dp, vertical = 4.dp)) { TextButton( @@ -606,7 +666,7 @@ private fun SendReportSection( // navigation) stays on Main. suspend fun buildReport(): String = withContext(Dispatchers.Default) { ResourceUsageReportAssembler().buildReport(days, today, memory) } - SettingsSection(R.string.resource_usage_send_section) { + SettingsSection(Res.string.resource_usage_send_section) { Column( modifier = Modifier.padding(16.dp), verticalArrangement = Arrangement.spacedBy(12.dp), @@ -640,15 +700,15 @@ private fun SendReportSection( action = Intent.ACTION_SEND type = "text/plain" putExtra(Intent.EXTRA_TEXT, buildReport()) - putExtra(Intent.EXTRA_TITLE, stringRes(context, R.string.resource_usage_send_section)) + putExtra(Intent.EXTRA_TITLE, stringRes(Res.string.resource_usage_send_section)) } context.startActivity( - Intent.createChooser(send, stringRes(context, R.string.resource_usage_share_button)), + Intent.createChooser(send, stringRes(Res.string.resource_usage_share_button)), ) } }, ) { - Text(stringRes(R.string.resource_usage_share_button)) + Text(stringRes(Res.string.resource_usage_share_button)) } Button( onClick = { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/SecurityFiltersScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/SecurityFiltersScreen.kt index ae4d93ec5f..2d8eec01f9 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/SecurityFiltersScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/SecurityFiltersScreen.kt @@ -37,16 +37,28 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.blocked_users +import com.vitorpamplona.amethyst.commons.resources.filter_spam_from_strangers_explainer +import com.vitorpamplona.amethyst.commons.resources.filter_spam_from_strangers_title +import com.vitorpamplona.amethyst.commons.resources.hidden_words +import com.vitorpamplona.amethyst.commons.resources.hide_community_rules_violations_explainer +import com.vitorpamplona.amethyst.commons.resources.hide_community_rules_violations_title import com.vitorpamplona.amethyst.commons.resources.max_hashtag_limit_explainer import com.vitorpamplona.amethyst.commons.resources.max_hashtag_limit_title import com.vitorpamplona.amethyst.commons.resources.report_warning_threshold_explainer import com.vitorpamplona.amethyst.commons.resources.report_warning_threshold_title +import com.vitorpamplona.amethyst.commons.resources.security_filters +import com.vitorpamplona.amethyst.commons.resources.security_section_blocked_content +import com.vitorpamplona.amethyst.commons.resources.security_section_filtering_preferences import com.vitorpamplona.amethyst.commons.resources.security_unlimited +import com.vitorpamplona.amethyst.commons.resources.settings_muted_threads_title import com.vitorpamplona.amethyst.commons.resources.show_sensitive_content_explainer import com.vitorpamplona.amethyst.commons.resources.show_sensitive_content_title +import com.vitorpamplona.amethyst.commons.resources.spamming_users +import com.vitorpamplona.amethyst.commons.resources.warn_when_posts_have_reports_from_your_follows_explainer +import com.vitorpamplona.amethyst.commons.resources.warn_when_posts_have_reports_from_your_follows_title import com.vitorpamplona.amethyst.model.WarningType import com.vitorpamplona.amethyst.model.parseWarningType import com.vitorpamplona.amethyst.ui.navigation.navs.EmptyNav @@ -64,7 +76,7 @@ fun SecurityFiltersScreen( nav: INav, ) { Scaffold( - topBar = { TopBarWithBackButton(stringRes(id = R.string.security_filters), nav) }, + topBar = { TopBarWithBackButton(stringRes(id = Res.string.security_filters), nav) }, ) { padding -> Column( modifier = @@ -82,7 +94,7 @@ fun SecurityFiltersScreen( @Composable private fun SecurityPreferencesSection(accountViewModel: AccountViewModel) { - SettingsSection(R.string.security_section_filtering_preferences) { + SettingsSection(Res.string.security_section_filtering_preferences) { SensitiveContentTile(accountViewModel) SettingsDivider() FilterSpamTile(accountViewModel) @@ -129,8 +141,8 @@ private fun FilterSpamTile(accountViewModel: AccountViewModel) { SettingsSwitchTile( icon = MaterialSymbols.FilterAlt, - title = R.string.filter_spam_from_strangers_title, - description = R.string.filter_spam_from_strangers_explainer, + title = Res.string.filter_spam_from_strangers_title, + description = Res.string.filter_spam_from_strangers_explainer, checked = filterSpam, onCheckedChange = accountViewModel::updateFilterSpam, ) @@ -143,8 +155,8 @@ private fun HideCommunityViolationsTile(accountViewModel: AccountViewModel) { SettingsSwitchTile( icon = MaterialSymbols.Shield, - title = R.string.hide_community_rules_violations_title, - description = R.string.hide_community_rules_violations_explainer, + title = Res.string.hide_community_rules_violations_title, + description = Res.string.hide_community_rules_violations_explainer, checked = hideViolations, onCheckedChange = { accountViewModel.account.settings.changeHideCommunityRulesViolations(it) }, ) @@ -158,8 +170,8 @@ private fun WarnReportsTile(accountViewModel: AccountViewModel) { SettingsSwitchTile( icon = MaterialSymbols.Report, - title = R.string.warn_when_posts_have_reports_from_your_follows_title, - description = R.string.warn_when_posts_have_reports_from_your_follows_explainer, + title = Res.string.warn_when_posts_have_reports_from_your_follows_title, + description = Res.string.warn_when_posts_have_reports_from_your_follows_explainer, checked = warnReports, onCheckedChange = accountViewModel::updateWarnReports, ) @@ -207,30 +219,30 @@ private fun BlockedContentSection( val hidden by accountViewModel.account.hiddenUsers.flow .collectAsStateWithLifecycle() - SettingsSection(R.string.security_section_blocked_content) { + SettingsSection(Res.string.security_section_blocked_content) { SettingsItem( - title = R.string.blocked_users, + title = Res.string.blocked_users, icon = MaterialSymbols.PersonOff, trailing = { SettingsCountBadge(hidden.hiddenUsers.size) }, onClick = { nav.nav(Route.BlockedUsers) }, ) SettingsDivider() SettingsItem( - title = R.string.spamming_users, + title = Res.string.spamming_users, icon = MaterialSymbols.Block, trailing = { SettingsCountBadge(hidden.spammers.size) }, onClick = { nav.nav(Route.SpammingUsers) }, ) SettingsDivider() SettingsItem( - title = R.string.hidden_words, + title = Res.string.hidden_words, icon = MaterialSymbols.VisibilityOff, trailing = { SettingsCountBadge(hidden.hiddenWords.size) }, onClick = { nav.nav(Route.HiddenWords) }, ) SettingsDivider() SettingsItem( - title = R.string.settings_muted_threads_title, + title = Res.string.settings_muted_threads_title, icon = MaterialSymbols.Forum, trailing = { SettingsCountBadge(hidden.mutedThreads.size) }, onClick = { nav.nav(Route.MutedThreads) }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/SecurityListsCommon.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/SecurityListsCommon.kt index 975e34a6fc..41b1cc943e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/SecurityListsCommon.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/SecurityListsCommon.kt @@ -20,7 +20,6 @@ */ package com.vitorpamplona.amethyst.ui.screen.loggedIn.settings -import androidx.annotation.StringRes import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background import androidx.compose.foundation.combinedClickable @@ -78,6 +77,7 @@ import com.vitorpamplona.amethyst.ui.theme.HalfHorzPadding import com.vitorpamplona.amethyst.ui.theme.Size10dp import com.vitorpamplona.amethyst.ui.theme.Size15dp import com.vitorpamplona.amethyst.ui.theme.Size55dp +import org.jetbrains.compose.resources.StringResource /** * Re-runs [invalidate] whenever the user's block/mute state changes. `hiddenUsers.flow` @@ -97,7 +97,7 @@ internal fun InvalidateOnBlockListChange( @OptIn(ExperimentalMaterial3Api::class) @Composable internal fun BlockListTopBar( - @StringRes title: Int, + title: StringResource, selectedCount: Int, onCancel: () -> Unit, onUnblock: () -> Unit, @@ -137,7 +137,7 @@ internal fun BlockListTopBar( internal fun SelectableUserList( modifier: Modifier = Modifier, viewModel: UserFeedViewModel, - @StringRes emptyMessage: Int, + emptyMessage: StringResource, selected: Set, onToggle: (String) -> Unit, accountViewModel: AccountViewModel, @@ -224,9 +224,7 @@ internal fun SelectableUserList( } @Composable -internal fun EmptyState( - @StringRes message: Int, -) { +internal fun EmptyState(message: StringResource) { Column( modifier = Modifier.fillMaxSize().padding(32.dp), horizontalAlignment = Alignment.CenterHorizontally, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/SettingsCatalogBuilder.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/SettingsCatalogBuilder.kt index d164a3deba..7b4d5bc3ed 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/SettingsCatalogBuilder.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/SettingsCatalogBuilder.kt @@ -20,13 +20,91 @@ */ package com.vitorpamplona.amethyst.ui.screen.loggedIn.settings -import androidx.annotation.StringRes import androidx.compose.ui.platform.UriHandler import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.account_settings +import com.vitorpamplona.amethyst.commons.resources.active_subs_search_keywords +import com.vitorpamplona.amethyst.commons.resources.active_subs_title +import com.vitorpamplona.amethyst.commons.resources.app_settings +import com.vitorpamplona.amethyst.commons.resources.audio_visualizer_search_keywords +import com.vitorpamplona.amethyst.commons.resources.audio_visualizer_settings +import com.vitorpamplona.amethyst.commons.resources.backup_keys +import com.vitorpamplona.amethyst.commons.resources.backup_keys_search_keywords +import com.vitorpamplona.amethyst.commons.resources.bolt12_offers +import com.vitorpamplona.amethyst.commons.resources.bolt12_offers_search_keywords +import com.vitorpamplona.amethyst.commons.resources.bottom_bar_search_keywords +import com.vitorpamplona.amethyst.commons.resources.bottom_bar_settings +import com.vitorpamplona.amethyst.commons.resources.calendar_reminder_search_keywords +import com.vitorpamplona.amethyst.commons.resources.calendar_reminder_settings_title +import com.vitorpamplona.amethyst.commons.resources.call_settings +import com.vitorpamplona.amethyst.commons.resources.call_settings_search_keywords +import com.vitorpamplona.amethyst.commons.resources.compose_search_keywords +import com.vitorpamplona.amethyst.commons.resources.compose_settings +import com.vitorpamplona.amethyst.commons.resources.danger_zone +import com.vitorpamplona.amethyst.commons.resources.drawer_search_keywords +import com.vitorpamplona.amethyst.commons.resources.drawer_settings +import com.vitorpamplona.amethyst.commons.resources.event_sync_search_keywords +import com.vitorpamplona.amethyst.commons.resources.event_sync_title +import com.vitorpamplona.amethyst.commons.resources.favorite_dvms_search_keywords +import com.vitorpamplona.amethyst.commons.resources.favorite_dvms_title +import com.vitorpamplona.amethyst.commons.resources.home_tabs_search_keywords +import com.vitorpamplona.amethyst.commons.resources.import_follows_search_keywords +import com.vitorpamplona.amethyst.commons.resources.media_servers +import com.vitorpamplona.amethyst.commons.resources.media_servers_search_keywords +import com.vitorpamplona.amethyst.commons.resources.messages_settings +import com.vitorpamplona.amethyst.commons.resources.messages_settings_search_keywords +import com.vitorpamplona.amethyst.commons.resources.namecoin_search_keywords +import com.vitorpamplona.amethyst.commons.resources.namecoin_settings +import com.vitorpamplona.amethyst.commons.resources.napplet_connected_apps_search_keywords +import com.vitorpamplona.amethyst.commons.resources.napplet_permissions_title +import com.vitorpamplona.amethyst.commons.resources.nests_servers_search_keywords +import com.vitorpamplona.amethyst.commons.resources.nests_servers_title +import com.vitorpamplona.amethyst.commons.resources.notification_settings +import com.vitorpamplona.amethyst.commons.resources.notification_settings_search_keywords +import com.vitorpamplona.amethyst.commons.resources.ots_explorer_search_keywords +import com.vitorpamplona.amethyst.commons.resources.ots_explorer_settings +import com.vitorpamplona.amethyst.commons.resources.payment_targets +import com.vitorpamplona.amethyst.commons.resources.payment_targets_search_keywords +import com.vitorpamplona.amethyst.commons.resources.privacy_options +import com.vitorpamplona.amethyst.commons.resources.privacy_options_search_keywords +import com.vitorpamplona.amethyst.commons.resources.profile_badges_search_keywords +import com.vitorpamplona.amethyst.commons.resources.profile_badges_title +import com.vitorpamplona.amethyst.commons.resources.profile_ui_search_keywords +import com.vitorpamplona.amethyst.commons.resources.profile_ui_settings +import com.vitorpamplona.amethyst.commons.resources.reactions +import com.vitorpamplona.amethyst.commons.resources.reactions_search_keywords +import com.vitorpamplona.amethyst.commons.resources.reactions_settings +import com.vitorpamplona.amethyst.commons.resources.reactions_settings_search_keywords +import com.vitorpamplona.amethyst.commons.resources.relay_auth_search_keywords +import com.vitorpamplona.amethyst.commons.resources.relay_auth_settings_title +import com.vitorpamplona.amethyst.commons.resources.relay_setup +import com.vitorpamplona.amethyst.commons.resources.relay_setup_search_keywords +import com.vitorpamplona.amethyst.commons.resources.request_to_vanish +import com.vitorpamplona.amethyst.commons.resources.request_to_vanish_search_keywords +import com.vitorpamplona.amethyst.commons.resources.reset_marmot_search_keywords +import com.vitorpamplona.amethyst.commons.resources.reset_marmot_state +import com.vitorpamplona.amethyst.commons.resources.resource_usage_search_keywords +import com.vitorpamplona.amethyst.commons.resources.resource_usage_title +import com.vitorpamplona.amethyst.commons.resources.route_home +import com.vitorpamplona.amethyst.commons.resources.route_import_follows +import com.vitorpamplona.amethyst.commons.resources.security_filters +import com.vitorpamplona.amethyst.commons.resources.security_filters_search_keywords +import com.vitorpamplona.amethyst.commons.resources.translations +import com.vitorpamplona.amethyst.commons.resources.translations_search_keywords +import com.vitorpamplona.amethyst.commons.resources.ui_preferences +import com.vitorpamplona.amethyst.commons.resources.ui_preferences_search_keywords +import com.vitorpamplona.amethyst.commons.resources.vanish_history +import com.vitorpamplona.amethyst.commons.resources.vanish_history_search_keywords +import com.vitorpamplona.amethyst.commons.resources.video_player_search_keywords +import com.vitorpamplona.amethyst.commons.resources.video_player_settings +import com.vitorpamplona.amethyst.commons.resources.zaps +import com.vitorpamplona.amethyst.commons.resources.zaps_search_keywords import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route +import org.jetbrains.compose.resources.StringResource /** * Assembles the full settings catalog. Not composable: actions close over [nav], @@ -43,9 +121,9 @@ fun buildSettingsCatalog( // helper collapses that shape to one line per row and makes a mismatched keyword/route // obvious. Painter-icon rows and the danger rows below are spelled out explicitly. fun symEntry( - @StringRes titleRes: Int, + titleRes: StringResource, symbol: MaterialSymbol, - @StringRes keywordsRes: Int, + keywordsRes: StringResource, route: Route, ) = SettingsEntry( titleRes = titleRes, @@ -55,98 +133,98 @@ fun buildSettingsCatalog( val account = SettingsCategory( - titleRes = R.string.account_settings, + titleRes = Res.string.account_settings, entries = listOf( SettingsEntry( - titleRes = R.string.relay_setup, + titleRes = Res.string.relay_setup, icon = SettingsIcon.Painter(R.drawable.relays, 4), - keywordsRes = R.string.relay_setup_search_keywords, + keywordsRes = Res.string.relay_setup_search_keywords, ) { nav.nav(Route.EditRelays) }, - symEntry(R.string.event_sync_title, MaterialSymbols.Sync, R.string.event_sync_search_keywords, Route.EventSync), - symEntry(R.string.route_import_follows, MaterialSymbols.GroupAdd, R.string.import_follows_search_keywords, Route.ImportFollowsSelectUser), - symEntry(R.string.media_servers, MaterialSymbols.CloudUpload, R.string.media_servers_search_keywords, Route.EditMediaServers), - symEntry(R.string.nests_servers_title, MaterialSymbols.CloudUpload, R.string.nests_servers_search_keywords, Route.EditNestsServers), - symEntry(R.string.zaps, MaterialSymbols.Bolt, R.string.zaps_search_keywords, Route.UpdateZapAmount()), - symEntry(R.string.reactions, MaterialSymbols.FavoriteBorder, R.string.reactions_search_keywords, Route.UpdateReactionType), - symEntry(R.string.reactions_settings, MaterialSymbols.ThumbUp, R.string.reactions_settings_search_keywords, Route.ReactionsSettings), - symEntry(R.string.messages_settings, MaterialSymbols.Mail, R.string.messages_settings_search_keywords, Route.MessagesSettings), - symEntry(R.string.bottom_bar_settings, MaterialSymbols.Dashboard, R.string.bottom_bar_search_keywords, Route.BottomBarSettings), - symEntry(R.string.drawer_settings, MaterialSymbols.AutoMirrored.ViewList, R.string.drawer_search_keywords, Route.DrawerSettings), - symEntry(R.string.video_player_settings, MaterialSymbols.VideoSettings, R.string.video_player_search_keywords, Route.VideoPlayerSettings), - symEntry(R.string.audio_visualizer_settings, MaterialSymbols.MusicNote, R.string.audio_visualizer_search_keywords, Route.AudioVisualizerSettings), - symEntry(R.string.favorite_dvms_title, MaterialSymbols.AutoAwesome, R.string.favorite_dvms_search_keywords, Route.EditFavoriteAlgoFeeds), - symEntry(R.string.profile_badges_title, MaterialSymbols.MilitaryTech, R.string.profile_badges_search_keywords, Route.ProfileBadges), - symEntry(R.string.payment_targets, MaterialSymbols.Payment, R.string.payment_targets_search_keywords, Route.EditPaymentTargets), - symEntry(R.string.bolt12_offers, MaterialSymbols.Payment, R.string.bolt12_offers_search_keywords, Route.EditBolt12Offers), - symEntry(R.string.security_filters, MaterialSymbols.Security, R.string.security_filters_search_keywords, Route.SecurityFilters), - symEntry(R.string.translations, MaterialSymbols.Translate, R.string.translations_search_keywords, Route.UserSettings), - symEntry(R.string.napplet_permissions_title, MaterialSymbols.Apps, R.string.napplet_connected_apps_search_keywords, Route.ConnectedApps), - symEntry(R.string.relay_auth_settings_title, MaterialSymbols.Lock, R.string.relay_auth_search_keywords, Route.RelayAuthSettings), - symEntry(R.string.call_settings, MaterialSymbols.Phone, R.string.call_settings_search_keywords, Route.CallSettings), + symEntry(Res.string.event_sync_title, MaterialSymbols.Sync, Res.string.event_sync_search_keywords, Route.EventSync), + symEntry(Res.string.route_import_follows, MaterialSymbols.GroupAdd, Res.string.import_follows_search_keywords, Route.ImportFollowsSelectUser), + symEntry(Res.string.media_servers, MaterialSymbols.CloudUpload, Res.string.media_servers_search_keywords, Route.EditMediaServers), + symEntry(Res.string.nests_servers_title, MaterialSymbols.CloudUpload, Res.string.nests_servers_search_keywords, Route.EditNestsServers), + symEntry(Res.string.zaps, MaterialSymbols.Bolt, Res.string.zaps_search_keywords, Route.UpdateZapAmount()), + symEntry(Res.string.reactions, MaterialSymbols.FavoriteBorder, Res.string.reactions_search_keywords, Route.UpdateReactionType), + symEntry(Res.string.reactions_settings, MaterialSymbols.ThumbUp, Res.string.reactions_settings_search_keywords, Route.ReactionsSettings), + symEntry(Res.string.messages_settings, MaterialSymbols.Mail, Res.string.messages_settings_search_keywords, Route.MessagesSettings), + symEntry(Res.string.bottom_bar_settings, MaterialSymbols.Dashboard, Res.string.bottom_bar_search_keywords, Route.BottomBarSettings), + symEntry(Res.string.drawer_settings, MaterialSymbols.AutoMirrored.ViewList, Res.string.drawer_search_keywords, Route.DrawerSettings), + symEntry(Res.string.video_player_settings, MaterialSymbols.VideoSettings, Res.string.video_player_search_keywords, Route.VideoPlayerSettings), + symEntry(Res.string.audio_visualizer_settings, MaterialSymbols.MusicNote, Res.string.audio_visualizer_search_keywords, Route.AudioVisualizerSettings), + symEntry(Res.string.favorite_dvms_title, MaterialSymbols.AutoAwesome, Res.string.favorite_dvms_search_keywords, Route.EditFavoriteAlgoFeeds), + symEntry(Res.string.profile_badges_title, MaterialSymbols.MilitaryTech, Res.string.profile_badges_search_keywords, Route.ProfileBadges), + symEntry(Res.string.payment_targets, MaterialSymbols.Payment, Res.string.payment_targets_search_keywords, Route.EditPaymentTargets), + symEntry(Res.string.bolt12_offers, MaterialSymbols.Payment, Res.string.bolt12_offers_search_keywords, Route.EditBolt12Offers), + symEntry(Res.string.security_filters, MaterialSymbols.Security, Res.string.security_filters_search_keywords, Route.SecurityFilters), + symEntry(Res.string.translations, MaterialSymbols.Translate, Res.string.translations_search_keywords, Route.UserSettings), + symEntry(Res.string.napplet_permissions_title, MaterialSymbols.Apps, Res.string.napplet_connected_apps_search_keywords, Route.ConnectedApps), + symEntry(Res.string.relay_auth_settings_title, MaterialSymbols.Lock, Res.string.relay_auth_search_keywords, Route.RelayAuthSettings), + symEntry(Res.string.call_settings, MaterialSymbols.Phone, Res.string.call_settings_search_keywords, Route.CallSettings), ), ) val app = SettingsCategory( - titleRes = R.string.app_settings, + titleRes = Res.string.app_settings, entries = listOf( SettingsEntry( - titleRes = R.string.privacy_options, + titleRes = Res.string.privacy_options, icon = SettingsIcon.Painter(R.drawable.ic_tor, 1), - keywordsRes = R.string.privacy_options_search_keywords, + keywordsRes = Res.string.privacy_options_search_keywords, ) { nav.nav(Route.PrivacyOptions) }, - symEntry(R.string.ui_preferences, MaterialSymbols.Settings, R.string.ui_preferences_search_keywords, Route.Settings), - symEntry(R.string.route_home, MaterialSymbols.Home, R.string.home_tabs_search_keywords, Route.HomeTabsSettings), - symEntry(R.string.notification_settings, MaterialSymbols.Notifications, R.string.notification_settings_search_keywords, Route.NotificationSettings), - symEntry(R.string.compose_settings, MaterialSymbols.Edit, R.string.compose_search_keywords, Route.ComposeSettings), - symEntry(R.string.profile_ui_settings, MaterialSymbols.AccountCircle, R.string.profile_ui_search_keywords, Route.ProfileUiSettings), - symEntry(R.string.calendar_reminder_settings_title, MaterialSymbols.CalendarMonth, R.string.calendar_reminder_search_keywords, Route.CalendarReminderSettings), - symEntry(R.string.ots_explorer_settings, MaterialSymbols.Search, R.string.ots_explorer_search_keywords, Route.OtsSettings), - symEntry(R.string.namecoin_settings, MaterialSymbols.Security, R.string.namecoin_search_keywords, Route.NamecoinSettings), - symEntry(R.string.active_subs_title, MaterialSymbols.CloudSync, R.string.active_subs_search_keywords, Route.ActiveSubscriptions), - symEntry(R.string.resource_usage_title, MaterialSymbols.Bolt, R.string.resource_usage_search_keywords, Route.ResourceUsage), + symEntry(Res.string.ui_preferences, MaterialSymbols.Settings, Res.string.ui_preferences_search_keywords, Route.Settings), + symEntry(Res.string.route_home, MaterialSymbols.Home, Res.string.home_tabs_search_keywords, Route.HomeTabsSettings), + symEntry(Res.string.notification_settings, MaterialSymbols.Notifications, Res.string.notification_settings_search_keywords, Route.NotificationSettings), + symEntry(Res.string.compose_settings, MaterialSymbols.Edit, Res.string.compose_search_keywords, Route.ComposeSettings), + symEntry(Res.string.profile_ui_settings, MaterialSymbols.AccountCircle, Res.string.profile_ui_search_keywords, Route.ProfileUiSettings), + symEntry(Res.string.calendar_reminder_settings_title, MaterialSymbols.CalendarMonth, Res.string.calendar_reminder_search_keywords, Route.CalendarReminderSettings), + symEntry(Res.string.ots_explorer_settings, MaterialSymbols.Search, Res.string.ots_explorer_search_keywords, Route.OtsSettings), + symEntry(Res.string.namecoin_settings, MaterialSymbols.Security, Res.string.namecoin_search_keywords, Route.NamecoinSettings), + symEntry(Res.string.active_subs_title, MaterialSymbols.CloudSync, Res.string.active_subs_search_keywords, Route.ActiveSubscriptions), + symEntry(Res.string.resource_usage_title, MaterialSymbols.Bolt, Res.string.resource_usage_search_keywords, Route.ResourceUsage), ), ) val danger = SettingsCategory( - titleRes = R.string.danger_zone, + titleRes = Res.string.danger_zone, isDanger = true, entries = buildList { if (hasPrivateKey) { add( SettingsEntry( - titleRes = R.string.backup_keys, + titleRes = Res.string.backup_keys, icon = SettingsIcon.Symbol(MaterialSymbols.Key), - keywordsRes = R.string.backup_keys_search_keywords, + keywordsRes = Res.string.backup_keys_search_keywords, isDanger = true, ) { nav.nav(Route.AccountBackup) }, ) add( SettingsEntry( - titleRes = R.string.request_to_vanish, + titleRes = Res.string.request_to_vanish, icon = SettingsIcon.Symbol(MaterialSymbols.DeleteForever), - keywordsRes = R.string.request_to_vanish_search_keywords, + keywordsRes = Res.string.request_to_vanish_search_keywords, isDanger = true, ) { nav.nav(Route.RequestToVanish) }, ) } add( SettingsEntry( - titleRes = R.string.vanish_history, + titleRes = Res.string.vanish_history, icon = SettingsIcon.Symbol(MaterialSymbols.History), - keywordsRes = R.string.vanish_history_search_keywords, + keywordsRes = Res.string.vanish_history_search_keywords, isDanger = true, ) { nav.nav(Route.VanishEvents) }, ) add( SettingsEntry( - titleRes = R.string.reset_marmot_state, + titleRes = Res.string.reset_marmot_state, icon = SettingsIcon.Symbol(MaterialSymbols.DeleteSweep), - keywordsRes = R.string.reset_marmot_search_keywords, + keywordsRes = Res.string.reset_marmot_search_keywords, isDanger = true, onClick = onResetMarmot, ), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/SpammingUsersScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/SpammingUsersScreen.kt index fc4095298b..77b88c0f86 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/SpammingUsersScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/SpammingUsersScreen.kt @@ -29,7 +29,9 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.security_spamming_users_empty +import com.vitorpamplona.amethyst.commons.resources.spamming_users import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.settings.dal.SpammerAccountsFeedViewModel @@ -49,7 +51,7 @@ fun SpammingUsersScreen( Scaffold( topBar = { BlockListTopBar( - title = R.string.spamming_users, + title = Res.string.spamming_users, selectedCount = selected.size, onCancel = { selected = emptySet() }, onUnblock = { @@ -63,7 +65,7 @@ fun SpammingUsersScreen( SelectableUserList( modifier = Modifier.padding(padding), viewModel = viewModel, - emptyMessage = R.string.security_spamming_users_empty, + emptyMessage = Res.string.security_spamming_users_empty, selected = selected, onToggle = { selected = if (it in selected) selected - it else selected + it }, accountViewModel = accountViewModel, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/UpdateZapAmountScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/UpdateZapAmountScreen.kt index 3c31bc59a8..4241e89aa1 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/UpdateZapAmountScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/UpdateZapAmountScreen.kt @@ -28,7 +28,8 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.ui.Modifier import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.zaps import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.topbars.SavingTopBar import com.vitorpamplona.amethyst.ui.note.UpdateZapAmountContent @@ -62,7 +63,7 @@ fun UpdateZapAmountScreen( Scaffold( topBar = { SavingTopBar( - titleRes = R.string.zaps, + titleRes = Res.string.zaps, isActive = postViewModel::hasChanged, onCancel = { postViewModel.cancel() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/UsageTrendChart.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/UsageTrendChart.kt index fed0882e3b..d0263df554 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/UsageTrendChart.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/UsageTrendChart.kt @@ -20,7 +20,6 @@ */ package com.vitorpamplona.amethyst.ui.screen.loggedIn.settings -import androidx.annotation.StringRes import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -50,13 +49,16 @@ import com.patrykandpatrick.vico.compose.cartesian.data.CartesianValueFormatter import com.patrykandpatrick.vico.compose.cartesian.data.LineCartesianLayerModel import com.patrykandpatrick.vico.compose.cartesian.layer.LineCartesianLayer import com.patrykandpatrick.vico.compose.cartesian.rememberCartesianChart -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.resource_usage_legend_cellular +import com.vitorpamplona.amethyst.commons.resources.resource_usage_legend_wifi import com.vitorpamplona.amethyst.service.resourceusage.UsageSummary import com.vitorpamplona.amethyst.ui.screen.loggedIn.notifications.chart.LastWeekLabelFormatter import com.vitorpamplona.amethyst.ui.screen.loggedIn.notifications.chart.makeLine import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.BitcoinOrange import com.vitorpamplona.amethyst.ui.theme.RoyalBlue +import org.jetbrains.compose.resources.StringResource import kotlin.math.roundToInt /** @@ -133,8 +135,8 @@ fun UsageTrendChart( modifier = Modifier.fillMaxWidth().height(170.dp), ) Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) { - LegendEntry(cellularColor, R.string.resource_usage_legend_cellular) - LegendEntry(wifiColor, R.string.resource_usage_legend_wifi) + LegendEntry(cellularColor, Res.string.resource_usage_legend_cellular) + LegendEntry(wifiColor, Res.string.resource_usage_legend_wifi) } } } @@ -142,7 +144,7 @@ fun UsageTrendChart( @Composable private fun LegendEntry( color: Color, - @StringRes label: Int, + label: StringResource, ) { Row( verticalAlignment = Alignment.CenterVertically, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/UserSettingsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/UserSettingsScreen.kt index ff9175529a..bcb0b086dc 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/UserSettingsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/UserSettingsScreen.kt @@ -60,14 +60,17 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.add_language import com.vitorpamplona.amethyst.commons.resources.add_language_pair import com.vitorpamplona.amethyst.commons.resources.delete_preference +import com.vitorpamplona.amethyst.commons.resources.dont_translate_from +import com.vitorpamplona.amethyst.commons.resources.dont_translate_from_description import com.vitorpamplona.amethyst.commons.resources.language_preference_pair +import com.vitorpamplona.amethyst.commons.resources.language_preferences +import com.vitorpamplona.amethyst.commons.resources.language_preferences_description import com.vitorpamplona.amethyst.commons.resources.no_language_preferences import com.vitorpamplona.amethyst.commons.resources.quick_action_select import com.vitorpamplona.amethyst.commons.resources.remove_language @@ -75,6 +78,8 @@ import com.vitorpamplona.amethyst.commons.resources.search_languages import com.vitorpamplona.amethyst.commons.resources.show_first import com.vitorpamplona.amethyst.commons.resources.source_language import com.vitorpamplona.amethyst.commons.resources.target_language +import com.vitorpamplona.amethyst.commons.resources.translate_to +import com.vitorpamplona.amethyst.commons.resources.translate_to_description import com.vitorpamplona.amethyst.commons.resources.user_preferences import com.vitorpamplona.amethyst.ui.navigation.navs.EmptyNav import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -208,8 +213,8 @@ fun TranslateToSetting(accountViewModel: AccountViewModel) { Column(modifier = Modifier.fillMaxWidth()) { SettingsRow( - name = R.string.translate_to, - description = R.string.translate_to_description, + name = Res.string.translate_to, + description = Res.string.translate_to_description, ) { OutlinedCard( modifier = Modifier.clickable { showPicker = !showPicker }, @@ -256,8 +261,8 @@ fun DontTranslateFromSetting(accountViewModel: AccountViewModel) { Column(modifier = Modifier.fillMaxWidth()) { SettingsRow( - name = R.string.dont_translate_from, - description = R.string.dont_translate_from_description, + name = Res.string.dont_translate_from, + description = Res.string.dont_translate_from_description, ) Spacer(modifier = Modifier.height(8.dp)) @@ -319,8 +324,8 @@ fun LanguagePreferencesSetting(accountViewModel: AccountViewModel) { Column(modifier = Modifier.fillMaxWidth(), verticalArrangement = Arrangement.spacedBy(8.dp)) { SettingsRow( - name = R.string.language_preferences, - description = R.string.language_preferences_description, + name = Res.string.language_preferences, + description = Res.string.language_preferences_description, ) if (languagePreferences.isEmpty() && !showAddPair) { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/VideoPlayerSettingsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/VideoPlayerSettingsScreen.kt index 0d9c54fb7a..094a093803 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/VideoPlayerSettingsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/VideoPlayerSettingsScreen.kt @@ -59,10 +59,10 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.zIndex import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.vitorpamplona.amethyst.BuildConfig -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.video_player_settings import com.vitorpamplona.amethyst.commons.resources.video_player_settings_action_captions import com.vitorpamplona.amethyst.commons.resources.video_player_settings_action_captions_description import com.vitorpamplona.amethyst.commons.resources.video_player_settings_action_cast @@ -113,7 +113,7 @@ fun VideoPlayerSettingsScreen( ) { Scaffold( topBar = { - TopBarWithBackButton(stringRes(id = R.string.video_player_settings), nav) + TopBarWithBackButton(stringRes(id = Res.string.video_player_settings), nav) }, ) { padding -> Column(Modifier.padding(padding)) { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/nip46/Nip46ConnectedAppsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/nip46/Nip46ConnectedAppsScreen.kt index de6dbee86e..517bbfdc0d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/nip46/Nip46ConnectedAppsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/nip46/Nip46ConnectedAppsScreen.kt @@ -66,7 +66,6 @@ import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import coil3.compose.AsyncImage import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.connectedApps.nip46.Nip46ClientInfo import com.vitorpamplona.amethyst.commons.connectedApps.nip46.Nip46PermissionAuthorizer import com.vitorpamplona.amethyst.commons.connectedApps.signers.AppSignerPolicy @@ -78,9 +77,14 @@ import com.vitorpamplona.amethyst.commons.resources.napplet_policy_full_trust import com.vitorpamplona.amethyst.commons.resources.napplet_policy_paranoid import com.vitorpamplona.amethyst.commons.resources.napplet_policy_reasonable import com.vitorpamplona.amethyst.commons.resources.nip46_signer_app_last_used +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_app_offline +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_app_online import com.vitorpamplona.amethyst.commons.resources.nip46_signer_app_reconnect +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_app_relay_count import com.vitorpamplona.amethyst.commons.resources.nip46_signer_apps_empty import com.vitorpamplona.amethyst.commons.resources.nip46_signer_manage_apps +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_reconnecting +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_remote_app import com.vitorpamplona.amethyst.commons.util.toTimeAgo import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route @@ -183,7 +187,7 @@ fun Nip46ConnectedAppsScreen( online = online, onReconnect = { account.client.reconnect(ignoreRetryDelays = true) - Toast.makeText(context, R.string.nip46_signer_reconnecting, Toast.LENGTH_SHORT).show() + Toast.makeText(context, Res.string.nip46_signer_reconnecting, Toast.LENGTH_SHORT).show() }, onClick = { nav.nav(Route.ConnectedAppDetail(entry.coordinate)) }, ) @@ -203,7 +207,7 @@ private fun Nip46AppCard( // Same identity line the detail screen (Nip46AppHeader) uses: the app's self-declared website // when it has one, npub otherwise — so a row and its detail never disagree. val subtitle = remember(entry.info?.url, entry.clientPubKey) { nip46ClientSubtitle(entry.info?.url, entry.clientPubKey) } - val title = entry.info?.name?.ifBlank { null } ?: stringResource(R.string.nip46_signer_remote_app) + val title = entry.info?.name?.ifBlank { null } ?: stringResource(Res.string.nip46_signer_remote_app) val relayCount = entry.info?.relays?.size ?: 0 Card( @@ -236,7 +240,7 @@ private fun Nip46AppCard( ) val meta = buildList { - if (relayCount > 0) add(pluralStringResource(R.plurals.nip46_signer_app_relay_count, relayCount, relayCount)) + if (relayCount > 0) add(pluralStringResource(Res.plurals.nip46_signer_app_relay_count, relayCount, relayCount)) entry.lastUsedSeconds?.let { add(stringRes(Res.string.nip46_signer_app_last_used, it.toTimeAgo().trim())) } }.joinToString(" · ") if (meta.isNotEmpty()) { @@ -317,7 +321,7 @@ internal fun Nip46LiveStatus(online: Boolean) { Row(verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(6.dp)) { Nip46StatusDot(online) Text( - stringResource(if (online) R.string.nip46_signer_app_online else R.string.nip46_signer_app_offline), + stringResource(if (online) Res.string.nip46_signer_app_online else Res.string.nip46_signer_app_offline), style = MaterialTheme.typography.labelSmall, color = MaterialTheme.colorScheme.onSurfaceVariant, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/nip46/Nip46SignerScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/nip46/Nip46SignerScreen.kt index 3d284eba68..1a2c91d864 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/nip46/Nip46SignerScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/nip46/Nip46SignerScreen.kt @@ -80,7 +80,6 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.connectedApps.nip46.Nip46PermissionAuthorizer import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols @@ -89,15 +88,26 @@ import com.vitorpamplona.amethyst.commons.resources.nip46_signer_activity_title import com.vitorpamplona.amethyst.commons.resources.nip46_signer_background_hint import com.vitorpamplona.amethyst.commons.resources.nip46_signer_cancel import com.vitorpamplona.amethyst.commons.resources.nip46_signer_connect_button +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_connect_declined +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_connect_failed import com.vitorpamplona.amethyst.commons.resources.nip46_signer_connect_hint +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_connect_invalid import com.vitorpamplona.amethyst.commons.resources.nip46_signer_connect_label +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_connect_no_relays +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_connected_count +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_connected_named +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_connected_ok +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_copied import com.vitorpamplona.amethyst.commons.resources.nip46_signer_copy import com.vitorpamplona.amethyst.commons.resources.nip46_signer_explainer import com.vitorpamplona.amethyst.commons.resources.nip46_signer_hero_title import com.vitorpamplona.amethyst.commons.resources.nip46_signer_live import com.vitorpamplona.amethyst.commons.resources.nip46_signer_manage_apps import com.vitorpamplona.amethyst.commons.resources.nip46_signer_paste_link +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_readonly import com.vitorpamplona.amethyst.commons.resources.nip46_signer_regenerate +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_regenerated +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_relays_all_live import com.vitorpamplona.amethyst.commons.resources.nip46_signer_relays_some_down import com.vitorpamplona.amethyst.commons.resources.nip46_signer_rotate_confirm_button import com.vitorpamplona.amethyst.commons.resources.nip46_signer_rotate_confirm_message @@ -105,6 +115,7 @@ import com.vitorpamplona.amethyst.commons.resources.nip46_signer_rotate_confirm_ import com.vitorpamplona.amethyst.commons.resources.nip46_signer_scan_caption import com.vitorpamplona.amethyst.commons.resources.nip46_signer_scan_connect import com.vitorpamplona.amethyst.commons.resources.nip46_signer_status_no_relays +import com.vitorpamplona.amethyst.commons.resources.nip46_signer_title import com.vitorpamplona.amethyst.commons.resources.nip46_signer_turn_on import com.vitorpamplona.amethyst.model.nip46Signer.Nip46ActivityEntry import com.vitorpamplona.amethyst.model.nip46Signer.Nip46SignerState @@ -178,7 +189,7 @@ fun Nip46SignerScreen( } Scaffold( - topBar = { TopBarWithBackButton(stringResource(R.string.nip46_signer_title), nav) }, + topBar = { TopBarWithBackButton(stringResource(Res.string.nip46_signer_title), nav) }, ) { padding -> Column( modifier = @@ -211,7 +222,7 @@ fun Nip46SignerScreen( uri = uri, onCopy = { scope.launch { clipboard.setText(uri) } - Toast.makeText(context, R.string.nip46_signer_copied, Toast.LENGTH_SHORT).show() + Toast.makeText(context, Res.string.nip46_signer_copied, Toast.LENGTH_SHORT).show() }, onRegenerate = { confirmRotate = true }, ) @@ -253,7 +264,7 @@ fun Nip46SignerScreen( onConfirm = { confirmRotate = false signer.rotateAddress() - Toast.makeText(context, R.string.nip46_signer_regenerated, Toast.LENGTH_SHORT).show() + Toast.makeText(context, Res.string.nip46_signer_regenerated, Toast.LENGTH_SHORT).show() }, onDismiss = { confirmRotate = false }, ) @@ -366,11 +377,11 @@ private fun LiveStatusCard( if (liveRelayCount < relayCount) { stringRes(Res.string.nip46_signer_relays_some_down, liveRelayCount, relayCount) } else { - pluralStringResource(R.plurals.nip46_signer_relays_all_live, relayCount, relayCount) + pluralStringResource(Res.plurals.nip46_signer_relays_all_live, relayCount, relayCount) } Text( buildString { - append(pluralStringResource(R.plurals.nip46_signer_connected_count, connectedCount, connectedCount)) + append(pluralStringResource(Res.plurals.nip46_signer_connected_count, connectedCount, connectedCount)) append(" · ") append(relayStatus) }, @@ -540,7 +551,7 @@ private fun ConnectedAppsRow( style = MaterialTheme.typography.titleSmall, ) Text( - pluralStringResource(R.plurals.nip46_signer_connected_count, count, count), + pluralStringResource(Res.plurals.nip46_signer_connected_count, count, count), style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.onSurfaceVariant, ) @@ -597,7 +608,7 @@ private fun ReadOnlyNotice() { ) { Icon(MaterialSymbols.Key, contentDescription = null, tint = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier.size(28.dp)) Text( - stringResource(R.string.nip46_signer_readonly), + stringResource(Res.string.nip46_signer_readonly), style = MaterialTheme.typography.bodyMedium, color = MaterialTheme.colorScheme.onSurfaceVariant, ) @@ -611,11 +622,11 @@ private fun describe( ): String = when (result) { is Nip46SignerState.ConnectResult.Connected -> - result.name?.let { context.getString(R.string.nip46_signer_connected_named, it) } - ?: context.getString(R.string.nip46_signer_connected_ok) - Nip46SignerState.ConnectResult.InvalidUri -> context.getString(R.string.nip46_signer_connect_invalid) - Nip46SignerState.ConnectResult.NoRelays -> context.getString(R.string.nip46_signer_connect_no_relays) - Nip46SignerState.ConnectResult.NotWriteable -> context.getString(R.string.nip46_signer_readonly) - Nip46SignerState.ConnectResult.Declined -> context.getString(R.string.nip46_signer_connect_declined) - is Nip46SignerState.ConnectResult.Failed -> context.getString(R.string.nip46_signer_connect_failed, result.reason) + result.name?.let { context.getString(Res.string.nip46_signer_connected_named, it) } + ?: context.getString(Res.string.nip46_signer_connected_ok) + Nip46SignerState.ConnectResult.InvalidUri -> context.getString(Res.string.nip46_signer_connect_invalid) + Nip46SignerState.ConnectResult.NoRelays -> context.getString(Res.string.nip46_signer_connect_no_relays) + Nip46SignerState.ConnectResult.NotWriteable -> context.getString(Res.string.nip46_signer_readonly) + Nip46SignerState.ConnectResult.Declined -> context.getString(Res.string.nip46_signer_connect_declined) + is Nip46SignerState.ConnectResult.Failed -> context.getString(Res.string.nip46_signer_connect_failed, result.reason) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/threadview/ThreadFeedView.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/threadview/ThreadFeedView.kt index 730a6d6502..8f70b2ac03 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/threadview/ThreadFeedView.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/threadview/ThreadFeedView.kt @@ -80,9 +80,14 @@ import com.vitorpamplona.amethyst.commons.feeds.FeedState import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.expand +import com.vitorpamplona.amethyst.commons.resources.hi_seller_is_this_still_available import com.vitorpamplona.amethyst.commons.resources.hi_there_is_this_still_available +import com.vitorpamplona.amethyst.commons.resources.preview_card_image_for +import com.vitorpamplona.amethyst.commons.resources.reply_here import com.vitorpamplona.amethyst.commons.resources.send_a_direct_message import com.vitorpamplona.amethyst.commons.resources.send_the_seller_a_message +import com.vitorpamplona.amethyst.commons.resources.thread_collapsed_reply_count import com.vitorpamplona.amethyst.commons.richtext.MediaUrlImage import com.vitorpamplona.amethyst.commons.ui.components.GenericLoadable import com.vitorpamplona.amethyst.commons.ui.layouts.rememberFeedContentPadding @@ -639,7 +644,7 @@ private fun CollapsedNoteCompose( // lines (e.g. "+1\nreply"), keeping the horizontal footprint small and consistent. // Always shown — even "+0 replies" — so every collapsed card looks the same. Text( - text = pluralStringResource(R.plurals.thread_collapsed_reply_count, hiddenReplyCount, hiddenReplyCount), + text = pluralStringResource(Res.plurals.thread_collapsed_reply_count, hiddenReplyCount, hiddenReplyCount), color = MaterialTheme.colorScheme.placeholderText, textAlign = TextAlign.Center, style = MaterialTheme.typography.labelMedium, @@ -647,7 +652,7 @@ private fun CollapsedNoteCompose( Spacer(modifier = StdHorzSpacer) - ExpandMoreIcon(modifier = Modifier.size(Size20dp), contentDescriptor = R.string.expand) + ExpandMoreIcon(modifier = Modifier.size(Size20dp), contentDescriptor = Res.string.expand) } } } @@ -1416,7 +1421,7 @@ private fun RenderClassifiedsReaderForThread( val msg = if (sellerName != null) { stringRes( - id = R.string.hi_seller_is_this_still_available, + id = Res.string.hi_seller_is_this_still_available, sellerName, ) } else { @@ -1436,7 +1441,7 @@ private fun RenderClassifiedsReaderForThread( modifier = Modifier.weight(1f, true), placeholder = { Text( - text = stringRes(R.string.reply_here), + text = stringRes(Res.string.reply_here), color = MaterialTheme.colorScheme.placeholderText, ) }, @@ -1480,7 +1485,7 @@ private fun RenderLongFormHeaderForThread( imageUrl = it, contentDescription = stringRes( - R.string.preview_card_image_for, + Res.string.preview_card_image_for, it, ), contentScale = ContentScale.FillWidth, @@ -1591,7 +1596,7 @@ private fun RenderWikiHeaderForThread( model = it, contentDescription = stringRes( - R.string.preview_card_image_for, + Res.string.preview_card_image_for, it, ), contentScale = ContentScale.FillWidth, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/video/hls/NewHlsVideoScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/video/hls/NewHlsVideoScreen.kt index 1a4ebd6601..ad785882a5 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/video/hls/NewHlsVideoScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/video/hls/NewHlsVideoScreen.kt @@ -77,11 +77,12 @@ import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel import com.davotoula.lightcompressor.hls.HlsLadder import com.davotoula.lightcompressor.utils.CompressorUtils -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.content_warning +import com.vitorpamplona.amethyst.commons.resources.file_server import com.vitorpamplona.amethyst.commons.resources.hls_change_video import com.vitorpamplona.amethyst.commons.resources.hls_codec_fallback_notice import com.vitorpamplona.amethyst.commons.resources.hls_codec_h264 @@ -105,9 +106,11 @@ import com.vitorpamplona.amethyst.commons.resources.hls_state_transcoding_format import com.vitorpamplona.amethyst.commons.resources.hls_state_uploaded_format import com.vitorpamplona.amethyst.commons.resources.hls_state_uploading_format import com.vitorpamplona.amethyst.commons.resources.hls_state_uploading_idle +import com.vitorpamplona.amethyst.commons.resources.hls_state_uploading_with_label_format import com.vitorpamplona.amethyst.commons.resources.hls_title_label import com.vitorpamplona.amethyst.commons.resources.hls_title_placeholder import com.vitorpamplona.amethyst.commons.resources.hls_try_again +import com.vitorpamplona.amethyst.commons.resources.share_hls_video import com.vitorpamplona.amethyst.ui.components.TextSpinner import com.vitorpamplona.amethyst.ui.components.TitleExplainer import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -135,7 +138,7 @@ fun NewHlsVideoScreen( Scaffold( topBar = { TopBarWithBackButton( - caption = stringResource(R.string.share_hls_video), + caption = stringResource(Res.string.share_hls_video), nav = nav, ) }, @@ -356,7 +359,7 @@ private fun FormFields(vm: NewHlsVideoViewModel) { // Server picker — reads the user's configured Blossom servers from the account Text( - text = stringResource(R.string.file_server), + text = stringResource(Res.string.file_server), style = MaterialTheme.typography.labelLarge, color = MaterialTheme.colorScheme.onSurfaceVariant, ) @@ -553,7 +556,7 @@ private fun ProgressBody( // Currently in flight: present-tense, file label in the line. state is HlsPublishState.Uploading && state.currentLabel.isNotBlank() -> { stringResource( - R.string.hls_state_uploading_with_label_format, + Res.string.hls_state_uploading_with_label_format, state.currentLabel, state.done, state.total, @@ -601,7 +604,7 @@ private fun ProgressBody( onClick = { vm.cancel() }, modifier = Modifier.fillMaxWidth(), ) { - Text(stringResource(R.string.cancel)) + Text(stringResource(Res.string.cancel)) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/AddClinkDebitWalletScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/AddClinkDebitWalletScreen.kt index 7530aef7a3..ee6a96742f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/AddClinkDebitWalletScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/AddClinkDebitWalletScreen.kt @@ -55,6 +55,7 @@ import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.accessibility_scan_qr_code +import com.vitorpamplona.amethyst.commons.resources.back import com.vitorpamplona.amethyst.commons.resources.paste_from_clipboard import com.vitorpamplona.amethyst.commons.resources.wallet_add_clink_invalid import com.vitorpamplona.amethyst.commons.resources.wallet_add_clink_title @@ -103,7 +104,7 @@ fun AddClinkDebitWalletScreen( IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), ) } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/AddNwcWalletScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/AddNwcWalletScreen.kt index 20f1008d33..d71761723b 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/AddNwcWalletScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/AddNwcWalletScreen.kt @@ -57,6 +57,9 @@ import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.accessibility_scan_qr_code +import com.vitorpamplona.amethyst.commons.resources.back +import com.vitorpamplona.amethyst.commons.resources.couldnt_find_nwc_wallets +import com.vitorpamplona.amethyst.commons.resources.couldnt_find_nwc_wallets_description import com.vitorpamplona.amethyst.commons.resources.paste_from_clipboard import com.vitorpamplona.amethyst.commons.resources.wallet_add_nwc_title import com.vitorpamplona.amethyst.commons.resources.wallet_connect_connect_app @@ -107,7 +110,7 @@ fun AddNwcWalletScreen( IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), ) } }, @@ -155,8 +158,8 @@ fun AddNwcWalletScreen( ) } catch (_: IllegalArgumentException) { accountViewModel.toastManager.toast( - R.string.couldnt_find_nwc_wallets, - R.string.couldnt_find_nwc_wallets_description, + Res.string.couldnt_find_nwc_wallets, + Res.string.couldnt_find_nwc_wallets_description, ) } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/AddWalletScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/AddWalletScreen.kt index 3ec9fcd399..06231775bc 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/AddWalletScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/AddWalletScreen.kt @@ -46,12 +46,13 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back import com.vitorpamplona.amethyst.commons.resources.wallet_add_cashu_description +import com.vitorpamplona.amethyst.commons.resources.wallet_add_cashu_title import com.vitorpamplona.amethyst.commons.resources.wallet_add_choose_type import com.vitorpamplona.amethyst.commons.resources.wallet_add_clink_description import com.vitorpamplona.amethyst.commons.resources.wallet_add_clink_title @@ -80,7 +81,7 @@ fun AddWalletScreen( IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), ) } }, @@ -108,7 +109,7 @@ fun AddWalletScreen( ) WalletTypeCard( icon = MaterialSymbols.AccountBalanceWallet, - title = stringRes(R.string.wallet_add_cashu_title), + title = stringRes(Res.string.wallet_add_cashu_title), description = stringRes(Res.string.wallet_add_cashu_description), // Route through the find-or-create wizard, not straight to the // mint manager: a portable NIP-60 wallet may already exist on diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/CashuMintRecommendationsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/CashuMintRecommendationsScreen.kt index 837b4ca3a8..04669b0e90 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/CashuMintRecommendationsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/CashuMintRecommendationsScreen.kt @@ -61,14 +61,16 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.hashtags.Cashu import com.vitorpamplona.amethyst.commons.hashtags.CustomHashTagIcons import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.cashu_settings_add_recommendation +import com.vitorpamplona.amethyst.commons.resources.cashu_settings_delete_confirm_body import com.vitorpamplona.amethyst.commons.resources.cashu_settings_delete_confirm_title import com.vitorpamplona.amethyst.commons.resources.cashu_settings_delete_recommendation import com.vitorpamplona.amethyst.commons.resources.cashu_settings_my_recommendations @@ -112,7 +114,7 @@ fun CashuMintRecommendationsScreen( IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), ) } }, @@ -158,7 +160,7 @@ fun CashuMintRecommendationsScreen( text = { Text( stringRes( - R.string.cashu_settings_delete_confirm_body, + Res.string.cashu_settings_delete_confirm_body, target.mintUrls().firstOrNull() ?: target.dTag() ?: target.id.take(8), ), ) @@ -173,7 +175,7 @@ fun CashuMintRecommendationsScreen( }, dismissButton = { TextButton(onClick = { pendingDelete = null }) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/CashuMintsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/CashuMintsScreen.kt index 790d396f73..0571d3f219 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/CashuMintsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/CashuMintsScreen.kt @@ -64,12 +64,14 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back import com.vitorpamplona.amethyst.commons.resources.cashu_add_mint +import com.vitorpamplona.amethyst.commons.resources.cashu_mint_matches_header +import com.vitorpamplona.amethyst.commons.resources.cashu_mint_popular_header import com.vitorpamplona.amethyst.commons.resources.cashu_mint_reachable import com.vitorpamplona.amethyst.commons.resources.cashu_mint_reachable_named import com.vitorpamplona.amethyst.commons.resources.cashu_mint_unreachable @@ -79,6 +81,8 @@ import com.vitorpamplona.amethyst.commons.resources.cashu_remove_mint import com.vitorpamplona.amethyst.commons.resources.cashu_verify import com.vitorpamplona.amethyst.commons.resources.cashu_wallet_autosaves import com.vitorpamplona.amethyst.commons.resources.cashu_wallet_saving +import com.vitorpamplona.amethyst.commons.resources.wallet_add_cashu_title +import com.vitorpamplona.amethyst.commons.resources.wallet_edit_cashu_title import com.vitorpamplona.amethyst.model.nip60Cashu.CashuMintDirectoryEntry import com.vitorpamplona.amethyst.ui.insets.imePaddingSafe import com.vitorpamplona.amethyst.ui.navigation.navs.INav @@ -136,7 +140,7 @@ fun CashuMintsScreen( title = { Text( stringRes( - if (isEditMode) R.string.wallet_edit_cashu_title else R.string.wallet_add_cashu_title, + if (isEditMode) Res.string.wallet_edit_cashu_title else Res.string.wallet_add_cashu_title, ), ) }, @@ -144,7 +148,7 @@ fun CashuMintsScreen( IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), ) } }, @@ -325,9 +329,9 @@ fun CashuMintsScreen( text = stringRes( if (mintInput.isBlank()) { - R.string.cashu_mint_popular_header + Res.string.cashu_mint_popular_header } else { - R.string.cashu_mint_matches_header + Res.string.cashu_mint_matches_header }, ), style = MaterialTheme.typography.labelMedium, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/CashuWalletScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/CashuWalletScreen.kt index 433a37f2f6..50acbad3a3 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/CashuWalletScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/CashuWalletScreen.kt @@ -79,7 +79,6 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.hashtags.Cashu import com.vitorpamplona.amethyst.commons.hashtags.CustomHashTagIcons import com.vitorpamplona.amethyst.commons.icons.symbols.Icon @@ -87,6 +86,8 @@ import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.cache.LocalCache import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.cashu_action_receive import com.vitorpamplona.amethyst.commons.resources.cashu_action_redeem import com.vitorpamplona.amethyst.commons.resources.cashu_action_send_ln @@ -94,6 +95,7 @@ import com.vitorpamplona.amethyst.commons.resources.cashu_action_send_token import com.vitorpamplona.amethyst.commons.resources.cashu_amount_sats import com.vitorpamplona.amethyst.commons.resources.cashu_balance import com.vitorpamplona.amethyst.commons.resources.cashu_building_token +import com.vitorpamplona.amethyst.commons.resources.cashu_checking_mint import com.vitorpamplona.amethyst.commons.resources.cashu_completing_mint import com.vitorpamplona.amethyst.commons.resources.cashu_copy_invoice import com.vitorpamplona.amethyst.commons.resources.cashu_copy_token @@ -106,12 +108,15 @@ import com.vitorpamplona.amethyst.commons.resources.cashu_get_quote import com.vitorpamplona.amethyst.commons.resources.cashu_getting_quote import com.vitorpamplona.amethyst.commons.resources.cashu_history import com.vitorpamplona.amethyst.commons.resources.cashu_history_all_loaded +import com.vitorpamplona.amethyst.commons.resources.cashu_history_incoming import com.vitorpamplona.amethyst.commons.resources.cashu_history_loading_older +import com.vitorpamplona.amethyst.commons.resources.cashu_history_outgoing import com.vitorpamplona.amethyst.commons.resources.cashu_history_some_relays_unreachable import com.vitorpamplona.amethyst.commons.resources.cashu_invoice_bolt11 import com.vitorpamplona.amethyst.commons.resources.cashu_memo_optional import com.vitorpamplona.amethyst.commons.resources.cashu_mints import com.vitorpamplona.amethyst.commons.resources.cashu_move_coins_body +import com.vitorpamplona.amethyst.commons.resources.cashu_move_coins_done import com.vitorpamplona.amethyst.commons.resources.cashu_move_coins_export_token import com.vitorpamplona.amethyst.commons.resources.cashu_move_coins_fee_hint import com.vitorpamplona.amethyst.commons.resources.cashu_move_coins_move @@ -127,7 +132,9 @@ import com.vitorpamplona.amethyst.commons.resources.cashu_pay_invoice import com.vitorpamplona.amethyst.commons.resources.cashu_paying_invoice import com.vitorpamplona.amethyst.commons.resources.cashu_pending_quotes_resume import com.vitorpamplona.amethyst.commons.resources.cashu_pending_quotes_subtitle +import com.vitorpamplona.amethyst.commons.resources.cashu_pending_quotes_title import com.vitorpamplona.amethyst.commons.resources.cashu_pick_mint +import com.vitorpamplona.amethyst.commons.resources.cashu_quote_confirm import com.vitorpamplona.amethyst.commons.resources.cashu_receive_invoice_explainer import com.vitorpamplona.amethyst.commons.resources.cashu_received_amount import com.vitorpamplona.amethyst.commons.resources.cashu_redeem_button @@ -141,9 +148,12 @@ import com.vitorpamplona.amethyst.commons.resources.cashu_token_ready import com.vitorpamplona.amethyst.commons.resources.cashu_untrusted_mint_badge import com.vitorpamplona.amethyst.commons.resources.cashu_untrusted_mint_move import com.vitorpamplona.amethyst.commons.resources.cashu_untrusted_mint_subtitle +import com.vitorpamplona.amethyst.commons.resources.cashu_untrusted_mint_title +import com.vitorpamplona.amethyst.commons.resources.cashu_waiting_for_payment import com.vitorpamplona.amethyst.commons.resources.cashu_wallet_title import com.vitorpamplona.amethyst.commons.resources.paste_from_clipboard import com.vitorpamplona.amethyst.commons.resources.topup_mint_action +import com.vitorpamplona.amethyst.commons.resources.wallet_add_cashu_title import com.vitorpamplona.amethyst.commons.resources.wallet_sats import com.vitorpamplona.amethyst.service.relayClient.reqCommand.account.nip60Cashu.CashuWalletHistoryEoseManager import com.vitorpamplona.amethyst.ui.components.util.getText @@ -243,7 +253,7 @@ fun CashuWalletScreen( IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), ) } }, @@ -425,7 +435,7 @@ private fun EmptyCashuWallet( ) Spacer(modifier = Modifier.height(24.dp)) Button(onClick = onCreate) { - Text(stringRes(R.string.wallet_add_cashu_title)) + Text(stringRes(Res.string.wallet_add_cashu_title)) } } } @@ -646,7 +656,7 @@ private fun PendingQuoteBanner( Text( text = pluralStringResource( - R.plurals.cashu_pending_quotes_title, + Res.plurals.cashu_pending_quotes_title, count, count, ), @@ -705,7 +715,7 @@ private fun UntrustedMintBanner( Text( text = pluralStringResource( - R.plurals.cashu_untrusted_mint_title, + Res.plurals.cashu_untrusted_mint_title, count, count, ), @@ -782,7 +792,7 @@ private fun EvacuateMintDialog( Text( text = stringRes( - R.string.cashu_move_coins_done, + Res.string.cashu_move_coins_done, s.movedSats.toString(), s.targetMintUrl, ), @@ -856,7 +866,7 @@ private fun EvacuateMintDialog( }, dismissButton = { if (!busy && !done) { - TextButton(onClick = onDismiss) { Text(stringRes(R.string.cancel)) } + TextButton(onClick = onDismiss) { Text(stringRes(Res.string.cancel)) } } }, ) @@ -1122,9 +1132,9 @@ private fun HistoryRow( text = stringRes( if (isIncoming) { - R.string.cashu_history_incoming + Res.string.cashu_history_incoming } else { - R.string.cashu_history_outgoing + Res.string.cashu_history_outgoing }, ), style = MaterialTheme.typography.bodyMedium, @@ -1272,9 +1282,9 @@ private fun ReceiveDialog( Text( stringRes( if (s.checking) { - R.string.cashu_checking_mint + Res.string.cashu_checking_mint } else { - R.string.cashu_waiting_for_payment + Res.string.cashu_waiting_for_payment }, ), style = MaterialTheme.typography.bodySmall, @@ -1361,7 +1371,7 @@ private fun ReceiveDialog( } }, dismissButton = { - TextButton(onClick = onDismiss) { Text(stringRes(R.string.cancel)) } + TextButton(onClick = onDismiss) { Text(stringRes(Res.string.cancel)) } }, ) } @@ -1459,7 +1469,7 @@ private fun SendLnDialog( is CashuMeltFlowState.Quoted -> { Text( stringRes( - R.string.cashu_quote_confirm, + Res.string.cashu_quote_confirm, s.quote.amount.toString(), s.quote.feeReserve.toString(), ), @@ -1531,7 +1541,7 @@ private fun SendLnDialog( } }, dismissButton = { - TextButton(onClick = onDismiss) { Text(stringRes(R.string.cancel)) } + TextButton(onClick = onDismiss) { Text(stringRes(Res.string.cancel)) } }, ) } @@ -1653,7 +1663,7 @@ private fun SendTokenDialog( } }, dismissButton = { - TextButton(onClick = onDismiss) { Text(stringRes(R.string.cancel)) } + TextButton(onClick = onDismiss) { Text(stringRes(Res.string.cancel)) } }, ) } @@ -1757,7 +1767,7 @@ private fun RedeemDialog( } }, dismissButton = { - TextButton(onClick = onDismiss) { Text(stringRes(R.string.cancel)) } + TextButton(onClick = onDismiss) { Text(stringRes(Res.string.cancel)) } }, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/CashuWalletSettingsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/CashuWalletSettingsScreen.kt index f478807a9c..87cbae4a17 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/CashuWalletSettingsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/CashuWalletSettingsScreen.kt @@ -59,11 +59,12 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.cashu_settings_delete_wallet import com.vitorpamplona.amethyst.commons.resources.cashu_settings_delete_wallet_confirm_body import com.vitorpamplona.amethyst.commons.resources.cashu_settings_delete_wallet_confirm_title @@ -84,6 +85,7 @@ import com.vitorpamplona.amethyst.commons.resources.cashu_settings_recreate_key_ import com.vitorpamplona.amethyst.commons.resources.cashu_settings_recreate_key_confirm_title import com.vitorpamplona.amethyst.commons.resources.cashu_settings_recreate_key_subtitle import com.vitorpamplona.amethyst.commons.resources.cashu_settings_restore_nothing_found +import com.vitorpamplona.amethyst.commons.resources.cashu_settings_restore_result import com.vitorpamplona.amethyst.commons.resources.cashu_settings_restore_running import com.vitorpamplona.amethyst.commons.resources.cashu_settings_restore_subtitle import com.vitorpamplona.amethyst.commons.resources.cashu_settings_restore_title @@ -92,6 +94,7 @@ import com.vitorpamplona.amethyst.commons.resources.cashu_settings_stop_nutzaps_ import com.vitorpamplona.amethyst.commons.resources.cashu_settings_stop_nutzaps_confirm_title import com.vitorpamplona.amethyst.commons.resources.cashu_settings_stop_nutzaps_subtitle import com.vitorpamplona.amethyst.commons.resources.cashu_settings_title +import com.vitorpamplona.amethyst.commons.resources.danger_zone import com.vitorpamplona.amethyst.ui.insets.imePaddingSafe import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route @@ -132,7 +135,7 @@ fun CashuWalletSettingsScreen( IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), ) } }, @@ -187,7 +190,7 @@ fun CashuWalletSettingsScreen( stringRes(Res.string.cashu_settings_restore_nothing_found) } else { stringRes( - R.string.cashu_settings_restore_result, + Res.string.cashu_settings_restore_result, s.totalSatsRecovered.toString(), s.proofsRecovered.toString(), ) @@ -211,7 +214,7 @@ fun CashuWalletSettingsScreen( item { Spacer(modifier = Modifier.height(8.dp)) Text( - text = stringRes(R.string.danger_zone), + text = stringRes(Res.string.danger_zone), style = MaterialTheme.typography.titleMedium, fontWeight = FontWeight.SemiBold, color = MaterialTheme.colorScheme.error, @@ -274,7 +277,7 @@ fun CashuWalletSettingsScreen( }, dismissButton = { TextButton(onClick = { showStopNutzapsConfirm = false }) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) @@ -295,7 +298,7 @@ fun CashuWalletSettingsScreen( }, dismissButton = { TextButton(onClick = { showRecreateKeyConfirm = false }) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) @@ -355,7 +358,7 @@ fun CashuWalletSettingsScreen( }, dismissButton = { TextButton(onClick = { showImportKeyDialog = false }, enabled = !working) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) @@ -383,7 +386,7 @@ fun CashuWalletSettingsScreen( }, dismissButton = { TextButton(onClick = { showDeleteWalletConfirm = false }) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/ClinkBudgetDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/ClinkBudgetDialog.kt index 9a642308e0..aa0f9ba9cd 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/ClinkBudgetDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/ClinkBudgetDialog.kt @@ -41,11 +41,15 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.clink_budget_amount_sats +import com.vitorpamplona.amethyst.commons.resources.clink_budget_daily +import com.vitorpamplona.amethyst.commons.resources.clink_budget_monthly +import com.vitorpamplona.amethyst.commons.resources.clink_budget_one_time import com.vitorpamplona.amethyst.commons.resources.clink_budget_request import com.vitorpamplona.amethyst.commons.resources.clink_budget_title +import com.vitorpamplona.amethyst.commons.resources.clink_budget_weekly import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.experimental.clink.debits.DebitFrequency @@ -96,7 +100,7 @@ fun ClinkBudgetDialog( } }, dismissButton = { - TextButton(onClick = onDismiss) { Text(stringRes(R.string.cancel)) } + TextButton(onClick = onDismiss) { Text(stringRes(Res.string.cancel)) } }, ) } @@ -123,10 +127,10 @@ private fun CadenceRow( private enum class BudgetCadence( val labelRes: Int, ) { - ONE_TIME(R.string.clink_budget_one_time), - DAILY(R.string.clink_budget_daily), - WEEKLY(R.string.clink_budget_weekly), - MONTHLY(R.string.clink_budget_monthly), + ONE_TIME(Res.string.clink_budget_one_time), + DAILY(Res.string.clink_budget_daily), + WEEKLY(Res.string.clink_budget_weekly), + MONTHLY(Res.string.clink_budget_monthly), ; fun toFrequency(): DebitFrequency? = diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/MintDirectoryRow.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/MintDirectoryRow.kt index a1a5fa72ad..b3ea07f0f6 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/MintDirectoryRow.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/MintDirectoryRow.kt @@ -40,10 +40,11 @@ import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.cashu_mint_no_recs +import com.vitorpamplona.amethyst.commons.resources.cashu_mint_plus_others import com.vitorpamplona.amethyst.commons.resources.cashu_mint_recommended_by +import com.vitorpamplona.amethyst.commons.resources.cashu_mint_recommended_by_others import com.vitorpamplona.amethyst.model.nip60Cashu.CashuMintDirectoryEntry import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.note.UserPicture @@ -155,7 +156,7 @@ private fun RecommendersLine( } if (plusOthers > 0) { Text( - text = pluralStringResource(R.plurals.cashu_mint_plus_others, plusOthers, plusOthers), + text = pluralStringResource(Res.plurals.cashu_mint_plus_others, plusOthers, plusOthers), style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier.align(Alignment.CenterVertically), @@ -167,7 +168,7 @@ private fun RecommendersLine( Text( text = pluralStringResource( - R.plurals.cashu_mint_recommended_by_others, + Res.plurals.cashu_mint_recommended_by_others, entry.recommendationCount, entry.recommendationCount, ), diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/OnchainSection.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/OnchainSection.kt index 52eed08d56..81594748ea 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/OnchainSection.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/OnchainSection.kt @@ -62,12 +62,12 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.copy import com.vitorpamplona.amethyst.commons.resources.quick_action_dont_show_again_button +import com.vitorpamplona.amethyst.commons.resources.send import com.vitorpamplona.amethyst.commons.resources.wallet_onchain_copy_dialog_confirm import com.vitorpamplona.amethyst.commons.resources.wallet_onchain_public_chip import com.vitorpamplona.amethyst.commons.resources.wallet_onchain_public_dialog_body @@ -385,7 +385,7 @@ private fun ActionRow( modifier = Modifier.size(14.dp), ) Spacer(modifier = Modifier.width(4.dp)) - Text(stringRes(R.string.send), style = MaterialTheme.typography.bodySmall, fontWeight = FontWeight.SemiBold) + Text(stringRes(Res.string.send), style = MaterialTheme.typography.bodySmall, fontWeight = FontWeight.SemiBold) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/OnchainTransactionsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/OnchainTransactionsScreen.kt index a5d54e22fd..db2edd0827 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/OnchainTransactionsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/OnchainTransactionsScreen.kt @@ -59,10 +59,10 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back import com.vitorpamplona.amethyst.commons.resources.wallet_filter_all import com.vitorpamplona.amethyst.commons.resources.wallet_filter_non_zaps import com.vitorpamplona.amethyst.commons.resources.wallet_filter_zaps @@ -145,7 +145,7 @@ fun OnchainTransactionsScreen( IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), ) } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/OnchainZapErrorStrings.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/OnchainZapErrorStrings.kt index 54610c98da..5044157e7c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/OnchainZapErrorStrings.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/OnchainZapErrorStrings.kt @@ -20,31 +20,42 @@ */ package com.vitorpamplona.amethyst.ui.screen.loggedIn.wallet -import android.content.Context import androidx.annotation.StringRes -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.onchain.OnchainZapSendError import com.vitorpamplona.amethyst.commons.onchain.OnchainZapSendResult import com.vitorpamplona.amethyst.commons.onchain.OnchainZapSendStage -import com.vitorpamplona.amethyst.ui.pluralStringRes -import com.vitorpamplona.amethyst.ui.stringRes +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.onchain_send_error_backend_not_configured +import com.vitorpamplona.amethyst.commons.resources.onchain_send_error_broadcast +import com.vitorpamplona.amethyst.commons.resources.onchain_send_error_build +import com.vitorpamplona.amethyst.commons.resources.onchain_send_error_load_utxos +import com.vitorpamplona.amethyst.commons.resources.onchain_send_error_publish_receipt +import com.vitorpamplona.amethyst.commons.resources.onchain_send_error_publish_receipt_partial +import com.vitorpamplona.amethyst.commons.resources.onchain_send_error_recipient_dust +import com.vitorpamplona.amethyst.commons.resources.onchain_send_error_sign +import com.vitorpamplona.amethyst.commons.resources.onchain_stage_broadcasting +import com.vitorpamplona.amethyst.commons.resources.onchain_stage_building +import com.vitorpamplona.amethyst.commons.resources.onchain_stage_loading_utxos +import com.vitorpamplona.amethyst.commons.resources.onchain_stage_publishing +import com.vitorpamplona.amethyst.commons.resources.onchain_stage_signing +import com.vitorpamplona.amethyst.commons.ui.loadPluralStringRes +import com.vitorpamplona.amethyst.commons.ui.loadStringRes /** * Maps the machine-readable [OnchainZapSendResult.Failure] coming out of the * KMP sender (which only carries English text) to localized UI strings. */ -fun OnchainZapSendResult.Failure.userMessage(context: Context): String { +suspend fun OnchainZapSendResult.Failure.userMessage(): String { val total = totalReceipts return if (error == OnchainZapSendError.RECEIPT_PUBLISH_FAILED && total != null) { - pluralStringRes( - context, - R.plurals.onchain_send_error_publish_receipt_partial, + loadPluralStringRes( + Res.plurals.onchain_send_error_publish_receipt_partial, total, publishedReceiptEventIds.size, total, ) } else { - stringRes(context, error.messageRes()) + loadStringRes(error.messageRes()) } } @@ -58,21 +69,21 @@ fun OnchainZapSendResult.Failure.technicalDetail(): String? = if (error.causeIsU @StringRes private fun OnchainZapSendError.messageRes(): Int = when (this) { - OnchainZapSendError.BACKEND_NOT_CONFIGURED -> R.string.onchain_send_error_backend_not_configured - OnchainZapSendError.LOAD_UTXOS_FAILED -> R.string.onchain_send_error_load_utxos - OnchainZapSendError.BUILD_FAILED -> R.string.onchain_send_error_build - OnchainZapSendError.RECIPIENT_BELOW_DUST -> R.string.onchain_send_error_recipient_dust - OnchainZapSendError.SIGN_FAILED -> R.string.onchain_send_error_sign - OnchainZapSendError.BROADCAST_FAILED -> R.string.onchain_send_error_broadcast - OnchainZapSendError.RECEIPT_PUBLISH_FAILED -> R.string.onchain_send_error_publish_receipt + OnchainZapSendError.BACKEND_NOT_CONFIGURED -> Res.string.onchain_send_error_backend_not_configured + OnchainZapSendError.LOAD_UTXOS_FAILED -> Res.string.onchain_send_error_load_utxos + OnchainZapSendError.BUILD_FAILED -> Res.string.onchain_send_error_build + OnchainZapSendError.RECIPIENT_BELOW_DUST -> Res.string.onchain_send_error_recipient_dust + OnchainZapSendError.SIGN_FAILED -> Res.string.onchain_send_error_sign + OnchainZapSendError.BROADCAST_FAILED -> Res.string.onchain_send_error_broadcast + OnchainZapSendError.RECEIPT_PUBLISH_FAILED -> Res.string.onchain_send_error_publish_receipt } @StringRes fun OnchainZapSendStage.labelRes(): Int = when (this) { - OnchainZapSendStage.LOADING_UTXOS -> R.string.onchain_stage_loading_utxos - OnchainZapSendStage.BUILDING -> R.string.onchain_stage_building - OnchainZapSendStage.SIGNING -> R.string.onchain_stage_signing - OnchainZapSendStage.BROADCASTING -> R.string.onchain_stage_broadcasting - OnchainZapSendStage.PUBLISHING -> R.string.onchain_stage_publishing + OnchainZapSendStage.LOADING_UTXOS -> Res.string.onchain_stage_loading_utxos + OnchainZapSendStage.BUILDING -> Res.string.onchain_stage_building + OnchainZapSendStage.SIGNING -> Res.string.onchain_stage_signing + OnchainZapSendStage.BROADCASTING -> Res.string.onchain_stage_broadcasting + OnchainZapSendStage.PUBLISHING -> Res.string.onchain_stage_publishing } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/OnchainZapSendDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/OnchainZapSendDialog.kt index 881d8311e4..4ddab74b6e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/OnchainZapSendDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/OnchainZapSendDialog.kt @@ -20,7 +20,6 @@ */ package com.vitorpamplona.amethyst.ui.screen.loggedIn.wallet -import androidx.annotation.StringRes import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -68,7 +67,6 @@ import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.User @@ -83,13 +81,20 @@ import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.onchain_send_amount import com.vitorpamplona.amethyst.commons.resources.onchain_send_broadcast_no_receipt import com.vitorpamplona.amethyst.commons.resources.onchain_send_button_amount +import com.vitorpamplona.amethyst.commons.resources.onchain_send_button_amount_split import com.vitorpamplona.amethyst.commons.resources.onchain_send_change_recipient import com.vitorpamplona.amethyst.commons.resources.onchain_send_close import com.vitorpamplona.amethyst.commons.resources.onchain_send_comment_label import com.vitorpamplona.amethyst.commons.resources.onchain_send_done import com.vitorpamplona.amethyst.commons.resources.onchain_send_dont_split import com.vitorpamplona.amethyst.commons.resources.onchain_send_failed_at +import com.vitorpamplona.amethyst.commons.resources.onchain_send_fee_eta_fast +import com.vitorpamplona.amethyst.commons.resources.onchain_send_fee_eta_normal +import com.vitorpamplona.amethyst.commons.resources.onchain_send_fee_eta_slow +import com.vitorpamplona.amethyst.commons.resources.onchain_send_fee_fast +import com.vitorpamplona.amethyst.commons.resources.onchain_send_fee_normal import com.vitorpamplona.amethyst.commons.resources.onchain_send_fee_rate_eta +import com.vitorpamplona.amethyst.commons.resources.onchain_send_fee_slow import com.vitorpamplona.amethyst.commons.resources.onchain_send_loading_fees import com.vitorpamplona.amethyst.commons.resources.onchain_send_min_warning import com.vitorpamplona.amethyst.commons.resources.onchain_send_post_author @@ -102,9 +107,13 @@ import com.vitorpamplona.amethyst.commons.resources.onchain_send_result_transact import com.vitorpamplona.amethyst.commons.resources.onchain_send_sats_amount import com.vitorpamplona.amethyst.commons.resources.onchain_send_sats_suffix import com.vitorpamplona.amethyst.commons.resources.onchain_send_sending +import com.vitorpamplona.amethyst.commons.resources.onchain_send_splits_label +import com.vitorpamplona.amethyst.commons.resources.onchain_send_splits_skipped import com.vitorpamplona.amethyst.commons.resources.onchain_send_success import com.vitorpamplona.amethyst.commons.resources.onchain_send_title import com.vitorpamplona.amethyst.commons.resources.onchain_send_to +import com.vitorpamplona.amethyst.commons.resources.onchain_send_use_note_split +import com.vitorpamplona.amethyst.commons.resources.send import com.vitorpamplona.amethyst.model.DEFAULT_ONCHAIN_ZAP_SATS import com.vitorpamplona.amethyst.model.MIN_ONCHAIN_ZAP_SATS import com.vitorpamplona.amethyst.ui.components.namecoin.NamecoinResolutionRow @@ -131,16 +140,17 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay import kotlinx.coroutines.launch import kotlinx.coroutines.withContext +import org.jetbrains.compose.resources.StringResource import java.text.NumberFormat /** Shared with the profile Send Payment screen's on-chain rail. */ internal enum class FeeTier( - @param:StringRes val labelRes: Int, - @param:StringRes val etaLabelRes: Int, + val labelRes: StringResource, + val etaLabelRes: StringResource, ) { - SLOW(R.string.onchain_send_fee_slow, R.string.onchain_send_fee_eta_slow), - NORMAL(R.string.onchain_send_fee_normal, R.string.onchain_send_fee_eta_normal), - FAST(R.string.onchain_send_fee_fast, R.string.onchain_send_fee_eta_fast), + SLOW(Res.string.onchain_send_fee_slow, Res.string.onchain_send_fee_eta_slow), + NORMAL(Res.string.onchain_send_fee_normal, Res.string.onchain_send_fee_eta_normal), + FAST(Res.string.onchain_send_fee_fast, Res.string.onchain_send_fee_eta_fast), } internal fun FeeEstimates.rateFor(tier: FeeTier): Double = @@ -388,7 +398,7 @@ fun OnchainZapSendDialog( TextButton( onClick = { useSplits = true }, ) { - Text(pluralStringResource(R.plurals.onchain_send_use_note_split, onchainSplits.size, onchainSplits.size)) + Text(pluralStringResource(Res.plurals.onchain_send_use_note_split, onchainSplits.size, onchainSplits.size)) } } } @@ -798,9 +808,9 @@ private fun SendButton( text = when { sats != null && splitWays > 1 -> - pluralStringResource(R.plurals.onchain_send_button_amount_split, splitWays, sats, splitWays) + pluralStringResource(Res.plurals.onchain_send_button_amount_split, splitWays, sats, splitWays) sats != null -> stringRes(Res.string.onchain_send_button_amount, sats) - else -> stringRes(R.string.send) + else -> stringRes(Res.string.send) }, fontWeight = FontWeight.SemiBold, ) @@ -815,7 +825,7 @@ private fun SplitsRecipientSection( onDisable: () -> Unit, accountViewModel: AccountViewModel, ) { - SectionLabel(pluralStringResource(R.plurals.onchain_send_splits_label, splits.size, splits.size)) + SectionLabel(pluralStringResource(Res.plurals.onchain_send_splits_label, splits.size, splits.size)) val totalWeight = splits.sumOf { it.second } // Index the preview by pubkey once — the splits list scan would otherwise @@ -873,7 +883,7 @@ private fun SplitsRecipientSection( Spacer(Modifier.height(6.dp)) val skipped = skippedLnSplits.size Text( - text = pluralStringResource(R.plurals.onchain_send_splits_skipped, skipped, skipped), + text = pluralStringResource(Res.plurals.onchain_send_splits_skipped, skipped, skipped), style = MaterialTheme.typography.labelSmall, color = MaterialTheme.colorScheme.onSurfaceVariant, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/ReloadMintScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/ReloadMintScreen.kt index 8650e361de..0d327c43ee 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/ReloadMintScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/ReloadMintScreen.kt @@ -66,15 +66,16 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.hashtags.Cashu import com.vitorpamplona.amethyst.commons.hashtags.CustomHashTagIcons import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back import com.vitorpamplona.amethyst.commons.resources.reload_mint_available import com.vitorpamplona.amethyst.commons.resources.reload_mint_awaiting_payment +import com.vitorpamplona.amethyst.commons.resources.reload_mint_confirm import com.vitorpamplona.amethyst.commons.resources.reload_mint_copy_invoice import com.vitorpamplona.amethyst.commons.resources.reload_mint_funded import com.vitorpamplona.amethyst.commons.resources.reload_mint_lightning_desc @@ -86,9 +87,12 @@ import com.vitorpamplona.amethyst.commons.resources.reload_mint_retry import com.vitorpamplona.amethyst.commons.resources.reload_mint_sats_amount import com.vitorpamplona.amethyst.commons.resources.reload_mint_section_from import com.vitorpamplona.amethyst.commons.resources.reload_mint_section_to +import com.vitorpamplona.amethyst.commons.resources.reload_mint_send_confirm +import com.vitorpamplona.amethyst.commons.resources.reload_mint_summary import com.vitorpamplona.amethyst.commons.resources.reload_mint_summary_funded import com.vitorpamplona.amethyst.commons.resources.reload_mint_title import com.vitorpamplona.amethyst.commons.resources.reload_mint_topup_label +import com.vitorpamplona.amethyst.commons.resources.sats import com.vitorpamplona.amethyst.ui.components.util.setText import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route @@ -166,7 +170,7 @@ fun ReloadMintScreen( IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), ) } }, @@ -237,7 +241,7 @@ fun ReloadMintScreen( }, singleLine = true, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number), - suffix = { Text(stringRes(R.string.sats)) }, + suffix = { Text(stringRes(Res.string.sats)) }, modifier = Modifier.fillMaxWidth(), ) } @@ -313,7 +317,7 @@ fun ReloadMintScreen( text = if (ui.shortfallSats > 0) { stringRes( - R.string.reload_mint_summary, + Res.string.reload_mint_summary, sats(maxOf(ui.topUpSats, ui.shortfallSats)), shortMint(ui.selectedTarget), recipientName, @@ -367,7 +371,7 @@ fun ReloadMintScreen( enabled = enabled, modifier = Modifier.fillMaxWidth(), ) { - Text(stringRes(if (ui.shortfallSats > 0) R.string.reload_mint_confirm else R.string.reload_mint_send_confirm)) + Text(stringRes(if (ui.shortfallSats > 0) Res.string.reload_mint_confirm else Res.string.reload_mint_send_confirm)) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/TopUpMintScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/TopUpMintScreen.kt index fc6e86f7a9..2ea8d7cc81 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/TopUpMintScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/TopUpMintScreen.kt @@ -62,17 +62,18 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.hashtags.Cashu import com.vitorpamplona.amethyst.commons.hashtags.CustomHashTagIcons import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back import com.vitorpamplona.amethyst.commons.resources.reload_mint_available import com.vitorpamplona.amethyst.commons.resources.reload_mint_awaiting_payment import com.vitorpamplona.amethyst.commons.resources.reload_mint_copy_invoice import com.vitorpamplona.amethyst.commons.resources.reload_mint_retry import com.vitorpamplona.amethyst.commons.resources.reload_mint_section_from +import com.vitorpamplona.amethyst.commons.resources.sats import com.vitorpamplona.amethyst.commons.resources.topup_mint_amount_label import com.vitorpamplona.amethyst.commons.resources.topup_mint_confirm import com.vitorpamplona.amethyst.commons.resources.topup_mint_title @@ -112,7 +113,7 @@ fun TopUpMintScreen( IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), ) } }, @@ -168,7 +169,7 @@ fun TopUpMintScreen( }, singleLine = true, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number), - suffix = { Text(stringRes(R.string.sats)) }, + suffix = { Text(stringRes(Res.string.sats)) }, modifier = Modifier.fillMaxWidth(), ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/WalletDetailScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/WalletDetailScreen.kt index a436f76b82..545cab43ce 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/WalletDetailScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/WalletDetailScreen.kt @@ -52,10 +52,11 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back +import com.vitorpamplona.amethyst.commons.resources.wallet import com.vitorpamplona.amethyst.commons.resources.wallet_receive import com.vitorpamplona.amethyst.commons.resources.wallet_sats import com.vitorpamplona.amethyst.commons.resources.wallet_send @@ -82,7 +83,7 @@ fun WalletDetailScreen( val isLoading by walletViewModel.isLoading.collectAsState() val error by walletViewModel.error.collectAsState() val wallets by walletViewModel.wallets.collectAsState() - val walletName = wallets.firstOrNull { it.id == walletId }?.name ?: stringRes(R.string.wallet) + val walletName = wallets.firstOrNull { it.id == walletId }?.name ?: stringRes(Res.string.wallet) LaunchedEffect(walletId) { walletViewModel.fetchBalance() @@ -97,7 +98,7 @@ fun WalletDetailScreen( IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), ) } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/WalletReceiveScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/WalletReceiveScreen.kt index 05da0a77ea..85238e1c2a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/WalletReceiveScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/WalletReceiveScreen.kt @@ -62,10 +62,10 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back import com.vitorpamplona.amethyst.commons.resources.wallet_amount_sats import com.vitorpamplona.amethyst.commons.resources.wallet_copy_invoice import com.vitorpamplona.amethyst.commons.resources.wallet_create_invoice @@ -110,7 +110,7 @@ fun WalletReceiveScreen( IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), ) } }, @@ -266,7 +266,7 @@ fun WalletReceiveScreen( ) Spacer(modifier = Modifier.height(16.dp)) Button(onClick = { walletViewModel.resetReceiveState() }) { - Text(stringRes(R.string.back)) + Text(stringRes(Res.string.back)) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/WalletScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/WalletScreen.kt index 1195609879..d499cbc215 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/WalletScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/WalletScreen.kt @@ -74,16 +74,20 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.hashtags.Cashu import com.vitorpamplona.amethyst.commons.hashtags.CustomHashTagIcons import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back +import com.vitorpamplona.amethyst.commons.resources.cancel +import com.vitorpamplona.amethyst.commons.resources.cashu_wallet_subtitle_mints import com.vitorpamplona.amethyst.commons.resources.cashu_wallet_title import com.vitorpamplona.amethyst.commons.resources.clink_budget_approved import com.vitorpamplona.amethyst.commons.resources.clink_budget_set +import com.vitorpamplona.amethyst.commons.resources.clink_debit_no_response import com.vitorpamplona.amethyst.commons.resources.clink_debit_pay_only +import com.vitorpamplona.amethyst.commons.resources.wallet import com.vitorpamplona.amethyst.commons.resources.wallet_add import com.vitorpamplona.amethyst.commons.resources.wallet_add_connection import com.vitorpamplona.amethyst.commons.resources.wallet_default @@ -136,13 +140,13 @@ fun WalletScreen( Scaffold( topBar = { TopAppBar( - title = { Text(stringRes(R.string.wallet)) }, + title = { Text(stringRes(Res.string.wallet)) }, navigationIcon = { if (nav.canPop()) { IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), ) } } @@ -242,7 +246,7 @@ private fun MultiWalletHomeContent( val walletInfoList by walletViewModel.walletInfoList.collectAsState() val context = LocalContext.current val budgetApprovedMsg = stringRes(Res.string.clink_budget_approved) - val debitNoResponseMsg = stringRes(R.string.clink_debit_no_response) + val debitNoResponseMsg = stringRes(Res.string.clink_debit_no_response) LaunchedEffect(Unit) { walletViewModel.fetchAllBalances() @@ -366,7 +370,7 @@ private fun WalletCard( }, dismissButton = { TextButton(onClick = { showRemoveDialog = false }) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) @@ -593,7 +597,7 @@ private fun CashuWalletRow( Text( text = pluralStringResource( - R.plurals.cashu_wallet_subtitle_mints, + Res.plurals.cashu_wallet_subtitle_mints, mintCount, mintCount, ), @@ -647,7 +651,7 @@ private fun RenameWalletDialog( }, dismissButton = { TextButton(onClick = onDismiss) { - Text(stringRes(R.string.cancel)) + Text(stringRes(Res.string.cancel)) } }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/WalletSendScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/WalletSendScreen.kt index a4de538192..69712dd243 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/WalletSendScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/WalletSendScreen.kt @@ -54,10 +54,10 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back import com.vitorpamplona.amethyst.commons.resources.wallet_paste_invoice import com.vitorpamplona.amethyst.commons.resources.wallet_pay import com.vitorpamplona.amethyst.commons.resources.wallet_payment_sending @@ -97,7 +97,7 @@ fun WalletSendScreen( IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), ) } }, @@ -196,7 +196,7 @@ fun WalletSendScreen( .height(56.dp), shape = RoundedCornerShape(16.dp), ) { - Text(stringRes(R.string.back)) + Text(stringRes(Res.string.back)) } Spacer(modifier = Modifier.height(24.dp)) } @@ -214,7 +214,7 @@ fun WalletSendScreen( ) Spacer(modifier = Modifier.height(16.dp)) Button(onClick = { walletViewModel.resetSendState() }) { - Text(stringRes(R.string.back)) + Text(stringRes(Res.string.back)) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/WalletTransactionsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/WalletTransactionsScreen.kt index ecfa6e6065..a205ab370b 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/WalletTransactionsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/WalletTransactionsScreen.kt @@ -56,10 +56,10 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back import com.vitorpamplona.amethyst.commons.resources.wallet_filter_all import com.vitorpamplona.amethyst.commons.resources.wallet_filter_non_zaps import com.vitorpamplona.amethyst.commons.resources.wallet_filter_zaps @@ -70,6 +70,7 @@ import com.vitorpamplona.amethyst.commons.resources.wallet_open_zapped_note import com.vitorpamplona.amethyst.commons.resources.wallet_outgoing import com.vitorpamplona.amethyst.commons.resources.wallet_refresh import com.vitorpamplona.amethyst.commons.resources.wallet_transactions +import com.vitorpamplona.amethyst.commons.resources.wallet_transactions_load_failed import com.vitorpamplona.amethyst.commons.ui.components.EmptyState import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route @@ -132,7 +133,7 @@ fun WalletTransactionsScreen( IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), ) } }, @@ -168,7 +169,7 @@ fun WalletTransactionsScreen( // A wallet refusal (e.g. RESTRICTED) leaves the list empty. Without this // branch the screen would claim "no transactions yet" and hide the reason. EmptyState( - title = stringRes(R.string.wallet_transactions_load_failed), + title = stringRes(Res.string.wallet_transactions_load_failed), modifier = Modifier.padding(padding).padding(24.dp), description = currentError, onRefresh = { walletViewModel.fetchTransactions() }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/WalletViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/WalletViewModel.kt index 4905248d7d..9c42c5739e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/WalletViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/WalletViewModel.kt @@ -20,18 +20,29 @@ */ package com.vitorpamplona.amethyst.ui.screen.loggedIn.wallet -import androidx.annotation.StringRes import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.model.clink.ClinkDebitWalletEntryNorm import com.vitorpamplona.amethyst.commons.model.nip47WalletConnect.NwcWalletEntryNorm +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.send_payment_failed +import com.vitorpamplona.amethyst.commons.resources.wallet_balance_request_failed +import com.vitorpamplona.amethyst.commons.resources.wallet_connect_decrypt_failed +import com.vitorpamplona.amethyst.commons.resources.wallet_connect_unreadable_response_error +import com.vitorpamplona.amethyst.commons.resources.wallet_connect_unrecognized_reply +import com.vitorpamplona.amethyst.commons.resources.wallet_invoice_creation_failed +import com.vitorpamplona.amethyst.commons.resources.wallet_no_invoice_returned +import com.vitorpamplona.amethyst.commons.resources.wallet_request_failed +import com.vitorpamplona.amethyst.commons.resources.wallet_request_timed_out +import com.vitorpamplona.amethyst.commons.resources.wallet_request_timed_out_spoofed +import com.vitorpamplona.amethyst.commons.resources.wallet_transactions_load_failed +import com.vitorpamplona.amethyst.commons.resources.wallet_transactions_load_more_failed +import com.vitorpamplona.amethyst.commons.ui.loadPluralStringRes +import com.vitorpamplona.amethyst.commons.ui.loadStringRes import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.ClinkDebitPayer -import com.vitorpamplona.amethyst.ui.pluralStringRes import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel -import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.experimental.clink.debits.DebitFrequency import com.vitorpamplona.quartz.experimental.clink.debits.DebitResponse import com.vitorpamplona.quartz.experimental.clink.pointers.ClinkPointerParser @@ -61,6 +72,7 @@ import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.launch +import org.jetbrains.compose.resources.StringResource sealed class SendState { data object Idle : SendState() @@ -118,14 +130,12 @@ class WalletViewModel : ViewModel() { // pattern); the :napplet process never builds a wallet screen. private val appContext get() = Amethyst.instance.appContext - private fun text( - @StringRes id: Int, - ) = stringRes(appContext, id) + private suspend fun text(id: StringResource) = loadStringRes(id) - private fun text( - @StringRes id: Int, + private suspend fun text( + id: StringResource, vararg args: String?, - ) = stringRes(appContext, id, *args) + ) = loadStringRes(id, *args) private var account: Account? = null private var accountViewModel: AccountViewModel? = null @@ -229,9 +239,9 @@ class WalletViewModel : ViewModel() { // something we can't read". private fun unreadableResponseError(response: Response?): String = if (response == null) { - text(R.string.wallet_connect_decrypt_failed) + text(Res.string.wallet_connect_decrypt_failed) } else { - text(R.string.wallet_connect_unrecognized_reply, response.resultType) + text(Res.string.wallet_connect_unrecognized_reply, response.resultType) } private fun launchTimeout( @@ -244,9 +254,9 @@ class WalletViewModel : ViewModel() { val spoofs = requestId?.let { account?.zaps?.nwcSpoofAttempts(it) ?: 0 } ?: 0 _error.value = if (spoofs > 0) { - pluralStringRes(appContext, R.plurals.wallet_request_timed_out_spoofed, spoofs, spoofs) + loadPluralStringRes(Res.plurals.wallet_request_timed_out_spoofed, spoofs, spoofs) } else { - text(R.string.wallet_request_timed_out) + text(Res.string.wallet_request_timed_out) } requestId?.let { account?.zaps?.cleanupNwcRequest(it) } onTimeout() @@ -433,7 +443,7 @@ class WalletViewModel : ViewModel() { is NwcErrorResponse -> { updateWalletInfo(walletId) { - it.copy(error = response.error?.message ?: text(R.string.wallet_balance_request_failed), isLoading = false) + it.copy(error = response.error?.message ?: text(Res.string.wallet_balance_request_failed), isLoading = false) } } @@ -445,7 +455,7 @@ class WalletViewModel : ViewModel() { } } } catch (e: Exception) { - updateWalletInfo(walletId) { it.copy(error = text(R.string.wallet_request_failed, e.message), isLoading = false) } + updateWalletInfo(walletId) { it.copy(error = text(Res.string.wallet_request_failed, e.message), isLoading = false) } } } } @@ -507,7 +517,7 @@ class WalletViewModel : ViewModel() { } is NwcErrorResponse -> { - _error.value = response.error?.message ?: text(R.string.wallet_balance_request_failed) + _error.value = response.error?.message ?: text(Res.string.wallet_balance_request_failed) } else -> { @@ -518,7 +528,7 @@ class WalletViewModel : ViewModel() { } } catch (e: Exception) { timeoutJob.cancel() - _error.value = text(R.string.wallet_request_failed, e.message) + _error.value = text(Res.string.wallet_request_failed, e.message) _isLoading.value = false } } @@ -582,7 +592,7 @@ class WalletViewModel : ViewModel() { } is NwcErrorResponse -> { - _error.value = response.error?.message ?: text(R.string.wallet_transactions_load_failed) + _error.value = response.error?.message ?: text(Res.string.wallet_transactions_load_failed) } else -> { @@ -593,7 +603,7 @@ class WalletViewModel : ViewModel() { } } catch (e: Exception) { timeoutJob.cancel() - _error.value = text(R.string.wallet_request_failed, e.message) + _error.value = text(Res.string.wallet_request_failed, e.message) _isLoading.value = false } } @@ -636,7 +646,7 @@ class WalletViewModel : ViewModel() { } is NwcErrorResponse -> { - _error.value = response.error?.message ?: text(R.string.wallet_transactions_load_more_failed) + _error.value = response.error?.message ?: text(Res.string.wallet_transactions_load_more_failed) } else -> { @@ -647,7 +657,7 @@ class WalletViewModel : ViewModel() { } } catch (e: Exception) { timeoutJob.cancel() - _error.value = text(R.string.wallet_request_failed, e.message) + _error.value = text(Res.string.wallet_request_failed, e.message) _isLoadingMore.value = false } } @@ -673,17 +683,17 @@ class WalletViewModel : ViewModel() { // same user-visible "payment failed" message. _sendState.value = SendState.Error( - response.errorMessage() ?: text(R.string.send_payment_failed), + response.errorMessage() ?: text(Res.string.send_payment_failed), ) } else -> { - _sendState.value = SendState.Error(text(R.string.wallet_connect_unreadable_response_error)) + _sendState.value = SendState.Error(text(Res.string.wallet_connect_unreadable_response_error)) } } } } catch (e: Exception) { - _sendState.value = SendState.Error(e.message ?: text(R.string.send_payment_failed)) + _sendState.value = SendState.Error(e.message ?: text(Res.string.send_payment_failed)) } } } @@ -711,24 +721,24 @@ class WalletViewModel : ViewModel() { if (invoice != null) { _receiveState.value = ReceiveState.Created(invoice, amountSats) } else { - _receiveState.value = ReceiveState.Error(text(R.string.wallet_no_invoice_returned)) + _receiveState.value = ReceiveState.Error(text(Res.string.wallet_no_invoice_returned)) } } is NwcErrorResponse -> { _receiveState.value = ReceiveState.Error( - response.error?.message ?: text(R.string.wallet_invoice_creation_failed), + response.error?.message ?: text(Res.string.wallet_invoice_creation_failed), ) } else -> { - _receiveState.value = ReceiveState.Error(text(R.string.wallet_connect_unreadable_response_error)) + _receiveState.value = ReceiveState.Error(text(Res.string.wallet_connect_unreadable_response_error)) } } } } catch (e: Exception) { - _receiveState.value = ReceiveState.Error(e.message ?: text(R.string.wallet_invoice_creation_failed)) + _receiveState.value = ReceiveState.Error(e.message ?: text(Res.string.wallet_invoice_creation_failed)) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/wizard/CashuWalletWizardScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/wizard/CashuWalletWizardScreen.kt index b053f3570d..dc58eef859 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/wizard/CashuWalletWizardScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/wallet/wizard/CashuWalletWizardScreen.kt @@ -68,10 +68,10 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.back import com.vitorpamplona.amethyst.commons.resources.cashu_wallet_title import com.vitorpamplona.amethyst.commons.resources.cashu_wizard_adopting import com.vitorpamplona.amethyst.commons.resources.cashu_wizard_analyzing @@ -151,7 +151,7 @@ fun CashuWalletWizardScreen( IconButton(onClick = { nav.popBack() }) { Icon( symbol = MaterialSymbols.AutoMirrored.ArrowBack, - contentDescription = stringRes(R.string.back), + contentDescription = stringRes(Res.string.back), ) } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/webBookmarks/WebBookmarksScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/webBookmarks/WebBookmarksScreen.kt index 452f8c8643..e8082358a5 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/webBookmarks/WebBookmarksScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/webBookmarks/WebBookmarksScreen.kt @@ -63,18 +63,20 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import coil3.compose.AsyncImage -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.feeds.FeedContentState import com.vitorpamplona.amethyst.commons.feeds.FeedState import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.cancel import com.vitorpamplona.amethyst.commons.resources.no +import com.vitorpamplona.amethyst.commons.resources.web_bookmark_add_title import com.vitorpamplona.amethyst.commons.resources.web_bookmark_delete import com.vitorpamplona.amethyst.commons.resources.web_bookmark_delete_confirm import com.vitorpamplona.amethyst.commons.resources.web_bookmark_description_label import com.vitorpamplona.amethyst.commons.resources.web_bookmark_description_placeholder +import com.vitorpamplona.amethyst.commons.resources.web_bookmark_edit_title import com.vitorpamplona.amethyst.commons.resources.web_bookmark_open_url import com.vitorpamplona.amethyst.commons.resources.web_bookmark_save import com.vitorpamplona.amethyst.commons.resources.web_bookmark_tags_label @@ -83,6 +85,7 @@ import com.vitorpamplona.amethyst.commons.resources.web_bookmark_title_label import com.vitorpamplona.amethyst.commons.resources.web_bookmark_title_placeholder import com.vitorpamplona.amethyst.commons.resources.web_bookmark_url_label import com.vitorpamplona.amethyst.commons.resources.web_bookmark_url_placeholder +import com.vitorpamplona.amethyst.commons.resources.web_bookmarks import com.vitorpamplona.amethyst.commons.resources.yes import com.vitorpamplona.amethyst.commons.ui.components.UrlPreviewState import com.vitorpamplona.amethyst.commons.ui.layouts.rememberFeedContentPadding @@ -145,7 +148,7 @@ private fun RenderWebBookmarksScreen( topBar = { ShorterTopAppBar( title = { - Text(text = stringRes(id = R.string.web_bookmarks)) + Text(text = stringRes(id = Res.string.web_bookmarks)) }, navigationIcon = { if (nav.canPop()) { @@ -175,7 +178,7 @@ private fun RenderWebBookmarksScreen( ) { Icon( symbol = MaterialSymbols.Add, - contentDescription = stringResource(R.string.web_bookmark_add_title), + contentDescription = stringResource(Res.string.web_bookmark_add_title), ) } } @@ -338,7 +341,7 @@ private fun WebBookmarkCard( IconButton(onClick = { showEditDialog = true }) { Icon( symbol = MaterialSymbols.Edit, - contentDescription = stringResource(R.string.web_bookmark_edit_title), + contentDescription = stringResource(Res.string.web_bookmark_edit_title), ) } IconButton(onClick = { showDeleteDialog = true }) { @@ -431,7 +434,7 @@ fun WebBookmarkEditDialog( title = { Text( stringResource( - if (isEditing) R.string.web_bookmark_edit_title else R.string.web_bookmark_add_title, + if (isEditing) Res.string.web_bookmark_edit_title else Res.string.web_bookmark_add_title, ), ) }, @@ -511,7 +514,7 @@ fun WebBookmarkEditDialog( }, dismissButton = { TextButton(onClick = onDismiss) { - Text(stringResource(R.string.cancel)) + Text(stringResource(Res.string.cancel)) } }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/workouts/NewWorkoutButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/workouts/NewWorkoutButton.kt index 8cbe58f87c..7377f89dca 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/workouts/NewWorkoutButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/workouts/NewWorkoutButton.kt @@ -24,9 +24,10 @@ import androidx.compose.foundation.shape.CircleShape import androidx.compose.material3.FloatingActionButton import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.new_workout import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.routes.Route import com.vitorpamplona.amethyst.ui.stringRes @@ -43,7 +44,7 @@ fun NewWorkoutButton(nav: INav) { ) { Icon( symbol = MaterialSymbols.Add, - contentDescription = stringRes(id = R.string.new_workout), + contentDescription = stringRes(id = Res.string.new_workout), modifier = Size26Modifier, tint = MaterialTheme.colorScheme.onPrimary, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/workouts/NewWorkoutScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/workouts/NewWorkoutScreen.kt index b41dca95d6..2bfaabc60f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/workouts/NewWorkoutScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/workouts/NewWorkoutScreen.kt @@ -56,11 +56,11 @@ import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.new_workout import com.vitorpamplona.amethyst.commons.resources.workout_calories import com.vitorpamplona.amethyst.commons.resources.workout_distance import com.vitorpamplona.amethyst.commons.resources.workout_duration @@ -97,7 +97,7 @@ fun NewWorkoutScreen( Scaffold( topBar = { PostingTopBar( - titleRes = R.string.new_workout, + titleRes = Res.string.new_workout, isActive = postViewModel::canPost, onCancel = { postViewModel.cancel() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/workouts/WorkoutDisplay.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/workouts/WorkoutDisplay.kt index 1abb0ae7cd..4fb68caa68 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/workouts/WorkoutDisplay.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/workouts/WorkoutDisplay.kt @@ -45,13 +45,26 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbol import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.model.Note import com.vitorpamplona.amethyst.commons.model.toImmutableListOfLists import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.exercise_amrap +import com.vitorpamplona.amethyst.commons.resources.exercise_circuit +import com.vitorpamplona.amethyst.commons.resources.exercise_cycling +import com.vitorpamplona.amethyst.commons.resources.exercise_diet +import com.vitorpamplona.amethyst.commons.resources.exercise_emom +import com.vitorpamplona.amethyst.commons.resources.exercise_fasting +import com.vitorpamplona.amethyst.commons.resources.exercise_hiking +import com.vitorpamplona.amethyst.commons.resources.exercise_meditation +import com.vitorpamplona.amethyst.commons.resources.exercise_rowing +import com.vitorpamplona.amethyst.commons.resources.exercise_running +import com.vitorpamplona.amethyst.commons.resources.exercise_strength +import com.vitorpamplona.amethyst.commons.resources.exercise_swimming +import com.vitorpamplona.amethyst.commons.resources.exercise_walking +import com.vitorpamplona.amethyst.commons.resources.exercise_yoga import com.vitorpamplona.amethyst.commons.resources.workout import com.vitorpamplona.amethyst.commons.resources.workout_calories import com.vitorpamplona.amethyst.commons.resources.workout_distance @@ -109,20 +122,20 @@ fun ExerciseType?.symbol(): MaterialSymbol = fun ExerciseType.labelRes(): Int = when (this) { - ExerciseType.RUNNING -> R.string.exercise_running - ExerciseType.WALKING -> R.string.exercise_walking - ExerciseType.CYCLING -> R.string.exercise_cycling - ExerciseType.HIKING -> R.string.exercise_hiking - ExerciseType.SWIMMING -> R.string.exercise_swimming - ExerciseType.ROWING -> R.string.exercise_rowing - ExerciseType.STRENGTH -> R.string.exercise_strength - ExerciseType.YOGA -> R.string.exercise_yoga - ExerciseType.MEDITATION -> R.string.exercise_meditation - ExerciseType.DIET -> R.string.exercise_diet - ExerciseType.FASTING -> R.string.exercise_fasting - ExerciseType.CIRCUIT -> R.string.exercise_circuit - ExerciseType.EMOM -> R.string.exercise_emom - ExerciseType.AMRAP -> R.string.exercise_amrap + ExerciseType.RUNNING -> Res.string.exercise_running + ExerciseType.WALKING -> Res.string.exercise_walking + ExerciseType.CYCLING -> Res.string.exercise_cycling + ExerciseType.HIKING -> Res.string.exercise_hiking + ExerciseType.SWIMMING -> Res.string.exercise_swimming + ExerciseType.ROWING -> Res.string.exercise_rowing + ExerciseType.STRENGTH -> Res.string.exercise_strength + ExerciseType.YOGA -> Res.string.exercise_yoga + ExerciseType.MEDITATION -> Res.string.exercise_meditation + ExerciseType.DIET -> Res.string.exercise_diet + ExerciseType.FASTING -> Res.string.exercise_fasting + ExerciseType.CIRCUIT -> Res.string.exercise_circuit + ExerciseType.EMOM -> Res.string.exercise_emom + ExerciseType.AMRAP -> Res.string.exercise_amrap } private fun Double.trimmed(): String = if (this % 1.0 == 0.0 && abs(this) < 1e15) toLong().toString() else toString() diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/workouts/health/HealthConnectRationaleActivity.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/workouts/health/HealthConnectRationaleActivity.kt index 140313cf99..bd3f830fca 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/workouts/health/HealthConnectRationaleActivity.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/workouts/health/HealthConnectRationaleActivity.kt @@ -26,7 +26,6 @@ import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity import androidx.core.net.toUri -import com.vitorpamplona.amethyst.ui.StringResSetup import com.vitorpamplona.amethyst.ui.theme.AmethystTheme /** @@ -54,7 +53,6 @@ class HealthConnectRationaleActivity : AppCompatActivity() { setContent { AmethystTheme { - StringResSetup() HealthConnectRationaleScreen( onOpenPrivacyPolicy = { runCatching { startActivity(Intent(Intent.ACTION_VIEW, PRIVACY_POLICY_URL.toUri())) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/workouts/suggestion/DetectedWorkoutCarousel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/workouts/suggestion/DetectedWorkoutCarousel.kt index 0f2322ca1d..c4b14c77c4 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/workouts/suggestion/DetectedWorkoutCarousel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/workouts/suggestion/DetectedWorkoutCarousel.kt @@ -56,7 +56,6 @@ import androidx.compose.ui.unit.dp import androidx.health.connect.client.PermissionController import androidx.lifecycle.compose.LifecycleResumeEffect import androidx.lifecycle.compose.collectAsStateWithLifecycle -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.fitness.DetectedWorkout import com.vitorpamplona.amethyst.commons.fitness.TrainingLog import com.vitorpamplona.amethyst.commons.fitness.WorkoutOrigin @@ -64,6 +63,7 @@ import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.workout_from_health_connect +import com.vitorpamplona.amethyst.commons.resources.workout_suggestion_combined_sessions import com.vitorpamplona.amethyst.commons.resources.workout_suggestion_connect_button import com.vitorpamplona.amethyst.commons.resources.workout_suggestion_connect_details import com.vitorpamplona.amethyst.commons.resources.workout_suggestion_connect_message @@ -248,7 +248,7 @@ private fun summaryLine(workout: DetectedWorkout): String { parts.add(formatWorkoutDuration(workout.durationSeconds)) if (workout.sessionCount > 1) { val sessions = workout.sessionCount - parts.add(pluralStringResource(R.plurals.workout_suggestion_combined_sessions, sessions, sessions)) + parts.add(pluralStringResource(Res.plurals.workout_suggestion_combined_sessions, sessions, sessions)) } return parts.joinToString(" · ") } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/ExternalSignerButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/ExternalSignerButton.kt index 1b17aaa5ed..10cc83622c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/ExternalSignerButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/ExternalSignerButton.kt @@ -55,9 +55,10 @@ import androidx.compose.ui.unit.sp import androidx.compose.ui.window.Dialog import androidx.core.graphics.drawable.toBitmap import coil3.compose.rememberAsyncImagePainter -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.error_opening_external_signer import com.vitorpamplona.amethyst.commons.resources.select_signer +import com.vitorpamplona.amethyst.commons.resources.sign_request_rejected2 import com.vitorpamplona.amethyst.model.DefaultSignerPermissions import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.Size0dp @@ -91,7 +92,7 @@ fun ExternalSignerButton(loginViewModel: LoginViewModel) { loginViewModel.loginWithExternalSigner(loginInfo.result.packageName) } } else { - loginViewModel.errorManager.error(R.string.sign_request_rejected2) + loginViewModel.errorManager.error(Res.string.sign_request_rejected2) } } } @@ -134,7 +135,7 @@ fun ExternalSignerButton(loginViewModel: LoginViewModel) { } catch (e: Exception) { if (e is CancellationException) throw e Log.e("ExternalSigner", "Error opening Signer app", e) - loginViewModel.errorManager.error(R.string.error_opening_external_signer) + loginViewModel.errorManager.error(Res.string.error_opening_external_signer) } finally { shouldSelectSigner = false } @@ -187,7 +188,7 @@ fun ExternalSignerButton(loginViewModel: LoginViewModel) { } catch (e: Exception) { if (e is CancellationException) throw e Log.e("ExternalSigner", "Error opening Signer app", e) - loginViewModel.errorManager.error(R.string.error_opening_external_signer) + loginViewModel.errorManager.error(Res.string.error_opening_external_signer) } } }, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/KeyTextField.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/KeyTextField.kt index f5be348f99..5874e8f4da 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/KeyTextField.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/KeyTextField.kt @@ -48,6 +48,7 @@ import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.Icon import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.hide_password import com.vitorpamplona.amethyst.commons.resources.login_with_qr_code import com.vitorpamplona.amethyst.commons.resources.nsec_npub_hex_private_key import com.vitorpamplona.amethyst.commons.resources.show_password @@ -94,7 +95,7 @@ fun KeyTextField( stringRes(Res.string.show_password) } else { stringRes( - R.string.hide_password, + Res.string.hide_password, ) }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/LoginScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/LoginScreen.kt index 98e9317bfa..03da8b9941 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/LoginScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/LoginScreen.kt @@ -66,7 +66,6 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.hashtags.Amethyst import com.vitorpamplona.amethyst.commons.hashtags.CustomHashTagIcons import com.vitorpamplona.amethyst.commons.icons.symbols.Icon @@ -74,6 +73,7 @@ import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols import com.vitorpamplona.amethyst.commons.resources.Res import com.vitorpamplona.amethyst.commons.resources.app_logo import com.vitorpamplona.amethyst.commons.resources.don_t_have_an_account +import com.vitorpamplona.amethyst.commons.resources.hide_password import com.vitorpamplona.amethyst.commons.resources.ncryptsec_password import com.vitorpamplona.amethyst.commons.resources.show_password import com.vitorpamplona.amethyst.commons.resources.temporary_account @@ -315,7 +315,7 @@ fun PasswordField( stringRes(Res.string.show_password) } else { stringRes( - R.string.hide_password, + Res.string.hide_password, ) }, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/LoginViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/LoginViewModel.kt index 720f4ae845..5b3af89c9a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/LoginViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/LoginViewModel.kt @@ -28,7 +28,14 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.text.input.TextFieldValue import androidx.lifecycle.ViewModel import com.vitorpamplona.amethyst.BuildConfig -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.invalid_key +import com.vitorpamplona.amethyst.commons.resources.invalid_key_with_message +import com.vitorpamplona.amethyst.commons.resources.key_is_required +import com.vitorpamplona.amethyst.commons.resources.login_bunker_not_supported +import com.vitorpamplona.amethyst.commons.resources.login_nostrconnect_not_supported +import com.vitorpamplona.amethyst.commons.resources.password_is_required +import com.vitorpamplona.amethyst.commons.resources.sign_request_rejected_description import com.vitorpamplona.amethyst.ui.screen.AccountSessionManager import com.vitorpamplona.amethyst.ui.tor.TorSettingsFlow @@ -124,7 +131,7 @@ class LoginViewModel : ViewModel() { } if (key.text.isBlank()) { - errorManager.error(R.string.key_is_required) + errorManager.error(Res.string.key_is_required) return false } @@ -135,16 +142,16 @@ class LoginViewModel : ViewModel() { // can persist is an external signer app (see AccountSettings.isWriteable). val trimmedKey = key.text.trim() if (trimmedKey.startsWith("bunker:", ignoreCase = true)) { - errorManager.error(R.string.login_bunker_not_supported) + errorManager.error(Res.string.login_bunker_not_supported) return false } if (trimmedKey.startsWith("nostrconnect:", ignoreCase = true)) { - errorManager.error(R.string.login_nostrconnect_not_supported) + errorManager.error(Res.string.login_nostrconnect_not_supported) return false } if (needsPassword && password.text.isBlank()) { - errorManager.error(R.string.password_is_required) + errorManager.error(Res.string.password_is_required) return false } @@ -161,9 +168,9 @@ class LoginViewModel : ViewModel() { ) { processingLogin = false if (it != null) { - errorManager.error(R.string.invalid_key_with_message, it) + errorManager.error(Res.string.invalid_key_with_message, it) } else { - errorManager.error(R.string.invalid_key) + errorManager.error(Res.string.invalid_key) } } } @@ -179,7 +186,7 @@ class LoginViewModel : ViewModel() { packageName = packageName, ) { processingLogin = false - errorManager.error(R.string.sign_request_rejected_description) + errorManager.error(Res.string.sign_request_rejected_description) } } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/OpenURIIfNotLoggedIn.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/OpenURIIfNotLoggedIn.kt index 5c1748cca1..b74fa7d73d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/OpenURIIfNotLoggedIn.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/OpenURIIfNotLoggedIn.kt @@ -32,7 +32,8 @@ import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.platform.LocalContext import androidx.core.util.Consumer -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.invalid_nip19_uri_description import com.vitorpamplona.amethyst.ui.components.getActivityOrNull import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.quartz.nip19Bech32.Nip19Parser @@ -77,7 +78,7 @@ fun OpenURIIfNotLoggedIn(onNewNIP19: suspend (String) -> Unit) { Toast .makeText( context, - stringRes(context, R.string.invalid_nip19_uri_description, intentNextPage), + stringRes(Res.string.invalid_nip19_uri_description, intentNextPage), Toast.LENGTH_SHORT, ).show() } @@ -103,7 +104,7 @@ fun OpenURIIfNotLoggedIn(onNewNIP19: suspend (String) -> Unit) { Toast .makeText( context, - stringRes(context, R.string.invalid_nip19_uri_description, uri), + stringRes(Res.string.invalid_nip19_uri_description, uri), Toast.LENGTH_SHORT, ).show() } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/signup/SignUpViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/signup/SignUpViewModel.kt index 206878f39c..c076422ea3 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/signup/SignUpViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/signup/SignUpViewModel.kt @@ -27,7 +27,8 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.text.input.TextFieldValue import androidx.lifecycle.ViewModel import com.vitorpamplona.amethyst.BuildConfig -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.name_is_required import com.vitorpamplona.amethyst.ui.screen.AccountSessionManager import com.vitorpamplona.amethyst.ui.screen.loggedOff.login.LoginErrorManager import com.vitorpamplona.amethyst.ui.tor.TorSettingsFlow @@ -73,7 +74,7 @@ class SignUpViewModel : ViewModel() { } if (displayName.text.isBlank()) { - errorManager.error(R.string.name_is_required) + errorManager.error(Res.string.name_is_required) return false } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/tor/TorSettings.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/tor/TorSettings.kt index 0268df8218..2d882709c4 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/tor/TorSettings.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/tor/TorSettings.kt @@ -20,7 +20,20 @@ */ package com.vitorpamplona.amethyst.ui.tor -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.tor_custom +import com.vitorpamplona.amethyst.commons.resources.tor_custom_explainer +import com.vitorpamplona.amethyst.commons.resources.tor_default +import com.vitorpamplona.amethyst.commons.resources.tor_default_explainer +import com.vitorpamplona.amethyst.commons.resources.tor_external +import com.vitorpamplona.amethyst.commons.resources.tor_full_privacy +import com.vitorpamplona.amethyst.commons.resources.tor_full_privacy_explainer +import com.vitorpamplona.amethyst.commons.resources.tor_internal +import com.vitorpamplona.amethyst.commons.resources.tor_off +import com.vitorpamplona.amethyst.commons.resources.tor_small_payloads +import com.vitorpamplona.amethyst.commons.resources.tor_small_payloads_explainer +import com.vitorpamplona.amethyst.commons.resources.tor_when_needed +import com.vitorpamplona.amethyst.commons.resources.tor_when_needed_explainer import com.vitorpamplona.amethyst.commons.tor.TorPresetType import com.vitorpamplona.amethyst.commons.tor.TorType @@ -33,28 +46,28 @@ private const val RE_EXPORTS = 0 val TorType.resourceId: Int get() = when (this) { - TorType.OFF -> R.string.tor_off - TorType.INTERNAL -> R.string.tor_internal - TorType.EXTERNAL -> R.string.tor_external + TorType.OFF -> Res.string.tor_off + TorType.INTERNAL -> Res.string.tor_internal + TorType.EXTERNAL -> Res.string.tor_external } // Android-specific resource ID mappings for TorPresetType val TorPresetType.resourceId: Int get() = when (this) { - TorPresetType.ONLY_WHEN_NEEDED -> R.string.tor_when_needed - TorPresetType.DEFAULT -> R.string.tor_default - TorPresetType.SMALL_PAYLOADS -> R.string.tor_small_payloads - TorPresetType.FULL_PRIVACY -> R.string.tor_full_privacy - TorPresetType.CUSTOM -> R.string.tor_custom + TorPresetType.ONLY_WHEN_NEEDED -> Res.string.tor_when_needed + TorPresetType.DEFAULT -> Res.string.tor_default + TorPresetType.SMALL_PAYLOADS -> Res.string.tor_small_payloads + TorPresetType.FULL_PRIVACY -> Res.string.tor_full_privacy + TorPresetType.CUSTOM -> Res.string.tor_custom } val TorPresetType.explainerId: Int get() = when (this) { - TorPresetType.ONLY_WHEN_NEEDED -> R.string.tor_when_needed_explainer - TorPresetType.DEFAULT -> R.string.tor_default_explainer - TorPresetType.SMALL_PAYLOADS -> R.string.tor_small_payloads_explainer - TorPresetType.FULL_PRIVACY -> R.string.tor_full_privacy_explainer - TorPresetType.CUSTOM -> R.string.tor_custom_explainer + TorPresetType.ONLY_WHEN_NEEDED -> Res.string.tor_when_needed_explainer + TorPresetType.DEFAULT -> Res.string.tor_default_explainer + TorPresetType.SMALL_PAYLOADS -> Res.string.tor_small_payloads_explainer + TorPresetType.FULL_PRIVACY -> Res.string.tor_full_privacy_explainer + TorPresetType.CUSTOM -> Res.string.tor_custom_explainer } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/tor/TorSettingsDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/tor/TorSettingsDialog.kt index 7af8528c4a..a7e0be5e2f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/tor/TorSettingsDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/tor/TorSettingsDialog.kt @@ -48,9 +48,35 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties import androidx.lifecycle.viewmodel.compose.viewModel -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.connect_through_your_orbot_setup_short import com.vitorpamplona.amethyst.commons.resources.invalid_port_number +import com.vitorpamplona.amethyst.commons.resources.orbot_socks_port +import com.vitorpamplona.amethyst.commons.resources.privacy_options +import com.vitorpamplona.amethyst.commons.resources.tor_preset +import com.vitorpamplona.amethyst.commons.resources.tor_preset_explainer +import com.vitorpamplona.amethyst.commons.resources.tor_use_dm_relays +import com.vitorpamplona.amethyst.commons.resources.tor_use_dm_relays_explainer +import com.vitorpamplona.amethyst.commons.resources.tor_use_images +import com.vitorpamplona.amethyst.commons.resources.tor_use_images_explainer +import com.vitorpamplona.amethyst.commons.resources.tor_use_media_uploads +import com.vitorpamplona.amethyst.commons.resources.tor_use_media_uploads_explainer +import com.vitorpamplona.amethyst.commons.resources.tor_use_money_operations +import com.vitorpamplona.amethyst.commons.resources.tor_use_money_operations_explainer +import com.vitorpamplona.amethyst.commons.resources.tor_use_new_relays +import com.vitorpamplona.amethyst.commons.resources.tor_use_new_relays_explainer +import com.vitorpamplona.amethyst.commons.resources.tor_use_nip05_verification +import com.vitorpamplona.amethyst.commons.resources.tor_use_nip05_verification_explainer +import com.vitorpamplona.amethyst.commons.resources.tor_use_onion_address +import com.vitorpamplona.amethyst.commons.resources.tor_use_onion_address_explainer +import com.vitorpamplona.amethyst.commons.resources.tor_use_trusted_relays +import com.vitorpamplona.amethyst.commons.resources.tor_use_trusted_relays_explainer +import com.vitorpamplona.amethyst.commons.resources.tor_use_url_previews +import com.vitorpamplona.amethyst.commons.resources.tor_use_url_previews_explainer +import com.vitorpamplona.amethyst.commons.resources.tor_use_videos +import com.vitorpamplona.amethyst.commons.resources.tor_use_videos_explainer +import com.vitorpamplona.amethyst.commons.resources.use_internal_tor +import com.vitorpamplona.amethyst.commons.resources.use_internal_tor_explainer import com.vitorpamplona.amethyst.commons.tor.TorPresetType import com.vitorpamplona.amethyst.commons.tor.TorSettings import com.vitorpamplona.amethyst.commons.tor.TorType @@ -137,7 +163,7 @@ fun TorDialogContents( topBar = { val toastMessage = stringRes(Res.string.invalid_port_number) SavingTopBar( - titleRes = R.string.privacy_options, + titleRes = Res.string.privacy_options, onCancel = onClose, onPost = { try { @@ -170,8 +196,8 @@ fun PrivacySettingsBody(dialogViewModel: TorDialogViewModel) { verticalArrangement = Arrangement.spacedBy(Size10dp), ) { SettingsRow( - R.string.use_internal_tor, - R.string.use_internal_tor_explainer, + Res.string.use_internal_tor, + Res.string.use_internal_tor_explainer, persistentListOf( TitleExplainer(stringRes(TorType.OFF.resourceId)), TitleExplainer(stringRes(TorType.INTERNAL.resourceId)), @@ -188,8 +214,8 @@ fun PrivacySettingsBody(dialogViewModel: TorDialogViewModel) { exit = fadeOut() + shrinkVertically(), ) { SettingsRow( - R.string.orbot_socks_port, - R.string.connect_through_your_orbot_setup_short, + Res.string.orbot_socks_port, + Res.string.connect_through_your_orbot_setup_short, ) { OutlinedTextField( value = dialogViewModel.socksPortStr.value, @@ -220,8 +246,8 @@ fun PrivacySettingsBody(dialogViewModel: TorDialogViewModel) { verticalArrangement = Arrangement.spacedBy(Size10dp), ) { SettingsRow( - R.string.tor_preset, - R.string.tor_preset_explainer, + Res.string.tor_preset, + Res.string.tor_preset_explainer, persistentListOf( TitleExplainer(stringRes(TorPresetType.ONLY_WHEN_NEEDED.resourceId), stringRes(TorPresetType.ONLY_WHEN_NEEDED.explainerId)), TitleExplainer(stringRes(TorPresetType.DEFAULT.resourceId), stringRes(TorPresetType.DEFAULT.explainerId)), @@ -235,71 +261,71 @@ fun PrivacySettingsBody(dialogViewModel: TorDialogViewModel) { } SwitchSettingsRow( - R.string.tor_use_onion_address, - R.string.tor_use_onion_address_explainer, + Res.string.tor_use_onion_address, + Res.string.tor_use_onion_address_explainer, dialogViewModel.onionRelaysViaTor, ) SwitchSettingsRow( - R.string.tor_use_dm_relays, - R.string.tor_use_dm_relays_explainer, + Res.string.tor_use_dm_relays, + Res.string.tor_use_dm_relays_explainer, dialogViewModel.dmRelaysViaTor, ) SwitchSettingsRow( - R.string.tor_use_new_relays, - R.string.tor_use_new_relays_explainer, + Res.string.tor_use_new_relays, + Res.string.tor_use_new_relays_explainer, dialogViewModel.newRelaysViaTor, ) SwitchSettingsRow( - R.string.tor_use_trusted_relays, - R.string.tor_use_trusted_relays_explainer, + Res.string.tor_use_trusted_relays, + Res.string.tor_use_trusted_relays_explainer, dialogViewModel.trustedRelaysViaTor, ) SwitchSettingsRow( - R.string.tor_use_money_operations, - R.string.tor_use_money_operations_explainer, + Res.string.tor_use_money_operations, + Res.string.tor_use_money_operations_explainer, dialogViewModel.moneyOperationsViaTor, ) /* * Too hard to separate Coil into regular images and profile pics SwitchSettingsRow( - R.string.tor_use_profile_pictures, - R.string.tor_use_profile_pictures_explainer, + Res.string.tor_use_profile_pictures, + Res.string.tor_use_profile_pictures_explainer, dialogViewModel.profilePicsViaTor, ) */ SwitchSettingsRow( - R.string.tor_use_nip05_verification, - R.string.tor_use_nip05_verification_explainer, + Res.string.tor_use_nip05_verification, + Res.string.tor_use_nip05_verification_explainer, dialogViewModel.nip05VerificationsViaTor, ) SwitchSettingsRow( - R.string.tor_use_url_previews, - R.string.tor_use_url_previews_explainer, + Res.string.tor_use_url_previews, + Res.string.tor_use_url_previews_explainer, dialogViewModel.urlPreviewsViaTor, ) SwitchSettingsRow( - R.string.tor_use_images, - R.string.tor_use_images_explainer, + Res.string.tor_use_images, + Res.string.tor_use_images_explainer, dialogViewModel.imagesViaTor, ) SwitchSettingsRow( - R.string.tor_use_videos, - R.string.tor_use_videos_explainer, + Res.string.tor_use_videos, + Res.string.tor_use_videos_explainer, dialogViewModel.videosViaTor, ) SwitchSettingsRow( - R.string.tor_use_media_uploads, - R.string.tor_use_media_uploads_explainer, + Res.string.tor_use_media_uploads, + Res.string.tor_use_media_uploads_explainer, dialogViewModel.mediaUploadsViaTor, ) } diff --git a/amethyst/src/main/res/values-ar-rSA/strings.xml b/amethyst/src/main/res/values-ar-rSA/strings.xml index 77f9054935..139e642b70 100644 --- a/amethyst/src/main/res/values-ar-rSA/strings.xml +++ b/amethyst/src/main/res/values-ar-rSA/strings.xml @@ -1,128 +1,12 @@ - - تم إخفاء هذا المنشور لأنه يحتوي على أكثر من %1$d وسم - تم إخفاء هذا المنشور لأنه يحتوي على أكثر من %1$d وسم - تم إخفاء هذا المنشور لأنه يحتوي على أكثر من %1$d وسمَين - تم إخفاء هذا المنشور لأنه يحتوي على أكثر من %1$d وسوم - تم إخفاء هذا المنشور لأنه يحتوي على أكثر من %1$d وسمًا - تم إخفاء هذا المنشور لأنه يحتوي على أكثر من %1$d وسم - - - %1$d أصل مجمَّع - %1$d أصل مجمَّع - %1$d أصلَان مجمَّعان - %1$d أصول مجمَّعة - %1$d أصلًا مجمَّعًا - %1$d أصل مجمَّع - - - +%1$d\nردود - +%1$d\nرد - +%1$d\nردَّان - +%1$d\nردود - +%1$d\nردًّا - +%1$d\nردود - - محتوى عشوائي - عدد الأحداث المزعجة من هذا المرحل - أنتحال - تصرف غير قانوني - طلب حذفها - قم بتسجيل الدخول باستخدام مفتاح خاص لتتمكن من الرد - قم بتسجيل الدخول باستخدام مفتاح خاص لتتمكن من تعزيز المشاركات - تسجيل الدخول باستخدام مفتاح خاص لإبداء الإعجاب بالمنشورات - لا يوجد إعداد لمبلغ Zap. اضغط لفترة طويلة للتغيير - قم بتسجيل الدخول باستخدام مفتاح خاص لتتمكن من إرسال Zaps - قم بتسجيل الدخول باستخدام مفتاح خاص لتتمكن من متابعة المستخدمين - قم بتسجيل الدخول بمفتاحك الخاص للتتمكن من إلغاء متابعة المستخدمين - قم بتسجيل الدخول باستخدام مفتاحك السري لتتمكن من إخفاء الكلمة أو الجملة - قم بتسجيل الدخول باستخدام مفتاحك السري لتتمكن من إظهار الكلمة أو الجملة - أنت تستخدم مفتاحًا عامًا وهو للقراءة فقط. سجّل الدخول بمفتاح خاص لتتمكن من الرفع - أنت تستخدم مفتاحًا عامًا وهو للقراءة فقط. سجّل الدخول بمفتاح خاص لتتمكن من توقيع الأحداث - فك تشفير غير مصرح به - لم يأذن الموقِّع بعملية فك التشفير المطلوبة لإتمام هذه العملية. قم بتفعيل فك تشفير NIP-44 في تطبيق الموقِّع وحاول مرة أخرى - الموقِّع غير موجود - هل تم إلغاء تثبيت تطبيق الموقِّع؟ تحقق من تثبيته وأنه يحتوي على هذا الحساب. سجّل الخروج وأعد تسجيل الدخول إن تغيّر تطبيق الموقِّع. - أعاد الموقِّع الخارجي بيانات غير متوقعة للطلب. قد يكون هناك خطأ في Amethyst أو في تطبيق الموقِّع. - زاب - تعزيز معزز تعديل #%1$s - اقتراح تعديل - إضافة - خطأ أثناء تحليل رسالة الخطأ - الملف الشخصي - مرشحات الأمان - جارٍ طلب الفاتورة… - لم تُكمل خدمة الخصم عملية الدفع. - دفع %1$s عبر %2$s؟ - دفع هذه الفاتورة عبر %1$s؟ - أدخل مبلغًا صحيحًا لهذا العرض. - مرة واحدة - يوميًا - أسبوعيًا - شهريًا - اإدفع - جارٍ الدفع عبر %1$s… - فشل الدفع - القابل للإنفاق لهذا المستلم: %1$s sat - المعاملة: %1$s - "معاينة صورة البطاقة لـ %1$s" - الوصف - ما الذي يدور في ذهنك؟ - اكتب رسالة… - نشر حفظ - إرسال - إنشاء إعادة تسمية - إلغاء - خطأ - الأخطاء - نسبة الاتصالات الناجحة بالـ relay - حفظ في الهاتف - تم حفظ الصورة في المعرض - بدأ تنزيل الفيديو… - بدأ تنزيل الوسائط… - تثبيت في الأعلى - إلغاء التثبيت - فشل حفظ الصورة - تم حفظ الفيديو في الجهاز - فشل حفظ الفيديو - تم حفظ ملف PDF في Downloads/Amethyst - فشل حفظ ملف PDF - لم يتم العثور على تطبيق كاميرا في هذا الجهاز - اضغط مطوّلًا لتسجيل رسالة - خطأ في الرفع - فشل رفع الرسالة الصوتية - NIP-95 غير مدعوم للرسائل الصوتية بعد - فشل رفع الصوت: %1$s - لا شيء - عميق - مرتفع - محايد - لا يمتلك المستخدم عنوان (Lightning Address) لاستقبال sats - "الرد هنا…" - معروف - طلبات جديدة - المستخدمين المحظورين - المنشورات - المحادثات - المزيد من الخيارات - إظهار رمز QR المفتاح الخاص - إظهار رمز QR المفتاح الخاص المشفر - متابعة - إرجاع المتابعة - اخفاء كلمة السر - مفتاح غير صحيح - مفتاح غير صالح: %1$s - كلمة السر مطلوبة - المفتاح مطلوب - يجب ادخال اسم @@ -131,177 +15,7 @@ ملف المحادثة الجديد: - مغادرة - الغاء المتابعة - محادثة تختفي - محادثة relay - محادثات relay - محادثات relay هي مجموعات دردشة يتحكم فيها الـ relay المضيف. - إنها مرئية للجميع على Nostr ويمكن لأي شخص المشاركة فيها. - إنها مناسبة للمجتمعات المفتوحة حول مواضيع محددة. بعض هذه المجموعات مؤقتة - وبالتالي تختفي رسائل الدردشة بمرور الوقت - الدردشة العامة - مجموعة MLS - بيانات المحادثة العامة - المحادثات العامة مرئية للجميع على Nostr ويمكن لأي شخص - المشاركة فيها. إنها مناسبة للمجتمعات المفتوحة حول مواضيع محددة. - يمكن التحكم في الإشراف عبر حذف المنشورات على relay المجموعة - أدخل من 1 إلى 3 relay تستضيف هذه المجموعة. - تستخدم تطبيقات Nostr هذا الإعداد لمعرفة مكان تنزيل الرسائل وإرسالها. - ازالة - ابداً - الان - س - د - يوم - عُري - الألفاظ النابية / خطاب كراهية - نسخ المفاتيح - فشل في تشفير مفتاحك الخاص - مفتاحك السري (nsec) قد تم نسخه في الحافظة - إنسخ مفتاحي السري - فشلت المصادقة - فشل التحقق البيومتري في مصادقة مالك هذا الهاتف - فشل التحقق البيومتري في مصادقة مالك هذا الهاتف. الخطأ: %1$s - تم نسخ نص الملاحظة/المنشور إلى الحافظة - تم نسخ عنوان @npub المؤلف إلى الحافظة - تم نسخ رمز الملاحظة/المنشور (note ID) إلى الحافظة - "<استحالة فك تشفير الرسالة الخاصة> -\n\n أنت الآن في محادثة خاصة/مشفرة بين %1$s و %2$s ." - الحسابات - التنقل - أنت - الخلاصات - إنشاء - النظام - رجوع - شارك رابط المتصفح - مشاركة - مشاركة كصورة - مشاركة كرابط صورة - معرف الملاحظة - حذف - كتم المحادثة - إلغاء كتم المحادثة - - حظر - المفضلة - تم نقل الإشارات المرجعية بنجاح - المسودات - المنشورات المجدولة - جدولة منشور - إلغاء الجدولة - قد لا تُنشر المنشورات المجدولة حتى تعيد فتح التطبيق. فعّل الوضع الدائم في الإعدادات ← تفضيلات واجهة المستخدم لجدولة موثوقة في الخلفية. - قد لا تُنشر المنشورات المجدولة حتى تعيد فتح التطبيق. لن تُطلق منشورات الحسابات الأخرى المجدولة أثناء نشاط هذا الحساب. فعّل الوضع الدائم في الإعدادات ← تفضيلات واجهة المستخدم لجدولة موثوقة في الخلفية. - %1$s · خلال %2$s - %1$s · منذ %2$s - غدًا - تم تسجيل الخروج - - تم تسجيل الخروج - تم تسجيل الخروج · تم حذف منشور مجدول واحد - تم تسجيل الخروج · تم حذف منشورَين مجدولَين - تم تسجيل الخروج · تم حذف %d منشورات مجدولة - تم تسجيل الخروج · تم حذف %d منشورًا مجدولًا - تم تسجيل الخروج · تم حذف %d منشور مجدول - - تم نشر المنشور المجدول - فشل المنشور المجدول - المنشورات المجدولة - إشعارات عند نشر منشور مجدول أو فشل نشره. - إرسال الآن - خطأ: %1$s - مجدول - جارٍ الإرسال… - فشل - أُرسل - ملغى - - لديك %d منشورات مجدولة لم تُنشر بعد. سيؤدي تسجيل الخروج إلى حذفها نهائيًا. - لديك %d منشور مجدول لم يُنشر بعد. سيؤدي تسجيل الخروج إلى حذفه نهائيًا. - لديك %d منشورَان مجدولان لم يُنشرا بعد. سيؤدي تسجيل الخروج إلى حذفهما نهائيًا. - لديك %d منشورات مجدولة لم تُنشر بعد. سيؤدي تسجيل الخروج إلى حذفها نهائيًا. - لديك %d منشورًا مجدولًا لم يُنشر بعد. سيؤدي تسجيل الخروج إلى حذفها نهائيًا. - لديك %d منشور مجدول لم يُنشر بعد. سيؤدي تسجيل الخروج إلى حذفها نهائيًا. - - - %d في الطابور - %d في الطابور - %d في الطابور - %d في الطابور - %d في الطابور - %d في الطابور - - - · %d مستحق خلال ساعة - · %d مستحق خلال ساعة - · %d مستحقان خلال ساعة - · %d مستحقة خلال ساعة - · %d مستحقاً خلال ساعة - · %d مستحق خلال ساعة - - - إلى %d relay - إلى %d relay - إلى %d relays - إلى %d relays - إلى %d relays - إلى %d relays - - تم نسخ معرّف الملاحظة - استطلاعات - مفتوح - مغلق - الشارات - المجتمعات - مجتمع جديد - تعديل المجتمع - المشرفون - قواعد قابلة للتحقق (اختياري) - أنواع الأحداث المسموح بها - نص قصير (1) - مقالة طويلة (30023) - منشور صورة (20) - منشور فيديو (21) - فيديو قصير (22) - تعليق مجتمعي (1111) - المستخدمون المحظورون - بوابة شبكة الثقة (اختياري) - الحجم الأقصى العالمي للحدث (اختياري) - شارة جديدة - منح الشارة - شارات الملف الشخصي - الصور - التمارين - تمرين جديد - الجري - المشي - ركوب الدراجة - التنزه - السباحة - التجديف - تمارين القوة - اليوغا - التأمل - الحمية الغذائية - الصيام - التمرين الدائري - التطبيقات التطبيقات - المتصفح - يتم التحميل عبر Tor. اضغط للاستخدام عبر الإنترنت المفتوح. - يتم التحميل عبر الإنترنت المفتوح. اضغط للاستخدام عبر Tor. - المفضلة - التطبيقات المفضلة - إضافة إلى المفضلة - إزالة من المفضلة - يتم التحميل عبر Tor. - يتم التحميل عبر الإنترنت المفتوح. - تم النشر على relays - تم رفع ملف - تم إجراء دفعة - هذا التطبيق غير محمّل بعد. حاول مجدداً بعد لحظة. - الأخيرة أذونات nApplet لا توجد أذونات nApplet بعد الأذونات التي تمنحها لـ nApplets ستظهر هنا. @@ -310,49 +24,11 @@ إلغاء - الهوية - إجراءات لوحة المفاتيح - التخزين - المدفوعات - الشبكة - الرفع سؤال عن القدرات المتاحة - قراءة مفتاحك العام - ربط اختصارات لوحة المفاتيح - قراءة أحداثك والتوقيع عليها ونشرها - تخزين خاص به - دفع فواتير Lightning - جلب موارد الويب وموارد Blossom - رفع الملفات إلى خادم الوسائط الخاص بك - المظهر - الإشعارات - المراسلة - مطابقة ألوان تطبيقك - عرض الإشعارات لك - تبادل الرسائل مع nApplets الأخرى القدرة: %1$s - يريد هذا nApplet قراءة مفتاحك العام. - يريد هذا nApplet قراءة ملفك الشخصي وبيانات حسابك. - يريد هذا nApplet توقيع ونشر حدث من النوع %1$d نيابةً عنك. - يريد هذا nApplet توقيع ونشر حدث من النوع %1$d نيابةً عنك: - يريد هذا nApplet إرسال حدث مشفَّر نيابةً عنك. - يريد هذا nApplet قراءة الأحداث من relay الخاصة بك. - يريد هذا nApplet استخدام مساحة التخزين الخاصة به. يريد هذا nApplet دفع فاتورة Lightning. - يريد هذا nApplet جلب مورد ويب. - يريد هذا nApplet تحميل ملف إلى خادم الوسائط الخاص بك. - يريد هذا nApplet عرض إشعارات لك. - يريد هذا الموقع توقيع حدث من النوع %1$d باستخدام مفتاح Nostr الخاص بك. - - يريد هذا nApplet دفع فاتورة Lightning بقيمة %1$d sat. - يريد هذا nApplet دفع فاتورة Lightning بقيمة %1$d sat. - يريد هذا nApplet دفع فاتورة Lightning بقيمة %1$d sats. - يريد هذا nApplet دفع فاتورة Lightning بقيمة %1$d sats. - يريد هذا nApplet دفع فاتورة Lightning بقيمة %1$d sats. - يريد هذا nApplet دفع فاتورة Lightning بقيمة %1$d sats. - - مقاطع قصيرة - المحادثات العامة - حزم المتابعة - البث المباشر - رفع اليد - خفض اليد - كتم الصوت - إلغاء كتم الصوت - تعذّر إرسال الرسالة - كتم الميكروفون - إلغاء كتم الميكروفون - يبقي الصوت قيد التشغيل أثناء فتح الغرفة. - Nest متصل - Nest — مباشر - اضغط للعودة. - إيقاف - رفع يده - صعد إلى المنصة - يتحدث - انضم كمستمع - غادر nest - مغادرة - تعذّر تحديد الغرفة كمغلقة. جارٍ المغادرة على أي حال — ستُغلق الغرفة تلقائيًا. - - %1$d مستمع - %1$d مستمع - %1$d مستمعان - %1$d مستمعين - %1$d مستمعًا - %1$d مستمع - - كتم هذا المتحدث محليًا - استعادة هذا المتحدث - متابعة - إلغاء المتابعة - كتم - إلغاء الكتم - تعذّر حفظ قائمة خوادم nest. حاول مجددًا. - خوادم Nest - خوادمك - محفوظ كحدث قابل للاستبدال من النوع kind-10112 حتى يتمكن العملاء الآخرون من قراءة تفضيلاتك. - الخوادم الموصى بها - اقتراحات مدمجة يمكنك إضافتها إلى قائمتك بنقرة واحدة. - مقاطع فيديو - موسيقى - قوائم التشغيل - الحلقات - البودكاست - - %1$d حلقة - %1$d حلقة - %1$d حلقتان - %1$d حلقات - %1$d حلقة - %1$d حلقة - - مقطع موسيقي جديد - قائمة تشغيل جديدة - - %1$d مقطع - %1$d مقطع - %1$d مقطعان - %1$d مقاطع - %1$d مقطعًا - %1$d مقطع - - إضافة إلى المفضلات العامة - إزالة من المفضلات العامة - تثبيت في الملف الشخصي - إلغاء التثبيت من الملف الشخصي - قائمة إشارات مرجعية جديدة - بيانات تعريف قائمة الإشارات المرجعية - مجموعات الوسوم - مجموعة اهتمامات جديدة - إعادة التسمية - جعل خاصاً: تغليف الملاحظة هدية للمستخدمين المُخطَرين فقط - جعل عاماً - الردود على الملاحظة الخاصة تبقى خاصة دائماً - مرئي لـ لا يوجد مستلمون بعد: ستكون الملاحظة مرئية لك فقط. أضف أشخاصاً لمشاركتها معهم. إضافة إزالة المستخدم من الإشعارات البحث عن مستخدم وإضافته للإشعارات - يمكن لأي شخص على Nostr رؤية بيانات تعريف قوائم الإشارات المرجعية. الأعضاء الخاصون فقط مشفَّرون. - نقل إلى العام - نقل إلى الخاص - تعبئة وإرسال Zap - إرسال Zap - تعبئة %1$s sats إلى %2$s وإرسال Zap %3$s %4$s sats · الرسوم ≈ %5$s sats - الخيار %s - اختيار واحد - اختيار متعدد - تعذر التصويت - تم إغلاق الاستطلاع لأي تصويت جديد - يسمح بصوت واحد فقط لكل مستخدم في هذا النوع من الاستطلاع - لا يستطيع مؤلف الاستطلاع التصويت في استطلاعه. - ماذا يعني هذا؟ - هذا المحتوى هو نفسه منذ النشر - لقد تغير هذا المحتوى. ربما لم يشاهد مؤلفه التغيير أو يوافق عليه بعد. - إضافة وسائط - أضف صورة - اضف فيديو - أضف مستند - خادم الملفات - اختر خادم لرفع الملف به - خوادم الوسائط تعيين خوادم رفع الوسائط المفضلة لديك. خوادم الوسائط الموصى بها القائمة الافتراضية لـ Amethyst. يمكنك إضافتها بشكل فردي أو إضافة القائمة بأكملها. - أهداف الدفع - أضف عناوين دفع لشبكات مختلفة (مثل bitcoin، lightning، ethereum). - لم يتم العثور على تطبيق للتعامل مع هذه المدفوعات. يرجى تثبيت محفظة متوافقة. - لم يتم العثور على تطبيق مثبت للتعامل مع مدفوعات %1$s. يرجى تثبيت محفظة متوافقة. - تعذّر فتح الدفع - خيارات الخصوصية - جميع المتابعات - جميع المتابَعين - قائمة المتابَعين الافتراضية - حولي - العالمي - منسَّق - قائمتي - قائمة الكتم - قائمة متابَعين جديدة - حزمة متابَعين جديدة - تعديل القائمة - المنفذ الافتراضي هو 9050 - منفذ Orbot Socks - محرك Tor النشط - استخدم الإصدار الداخلي أو Orbot - إعدادات Tor/الخصوصية المسبقة - تعديل جميع الإعدادات أدناه بسرعة - رابط/مرحل بصلي - استخدام Tor لأي رابط .onion - مرحلات DM - استخدام Tor لإرسال و أستقبال الرسائل الخاصة - مرحلات غير موثوقة - أستخدام Tor لمرحلات الأحداث الواردة و المرسلة - مرحلات موثوقة - أستخدام Tor للإتصال بالمرحلات - الصور الشخصية - أستخدام Tor عند تنزيل الصور الشخصية - معاينة الروابط - أستخدام Tor لطلب معاينة الروابط - الصور - أستخدام Tor عند تنزيل الصور - الفيديوهات - أستخدام Tor عند تنزيل الفديوهات - المعاملات المالية - فرض Tor على عمليات Zap وتحويلات Lightning وCashu - التحقق من عنوان Nostr - أستخدام Tor عند التحقق من عناوين NIP-05 - رفع الوسائط - أستخدام Tor عند رفع الوسائط - مضمن - إيقاف - أساسي - الافتراضي - الكل ما عدا الوسائط - الخصوصية الكاملة - مخصص - أستخدام Tor عندما يكون مطلوباً من الخادم - إخفاء عنوان الـIP من المرحلات العشوائية - إخفاء عنوان الـIP من الكل ماعدا الصور و الفيديوهات - إخفاء عنوان الـIP من جميع الإتصالات - خصصه بنفسك - الرسائل الخاصة - التنبيه عند وصول رسالة خاصة - تم استلام الزاب - تنبيهك عند أستقبالك زاب - ساتوشي %1$s - من طرف %1$s - ل %1$s - رد - تحديد كمقروء - رسائل جديدة - Zaps جديدة - التفاعلات - يُعلمك عندما يتفاعل شخص ما مع منشورك - تفاعل %1$s مع منشورك - لـ %1$s - تفاعلات جديدة - الشطرنج - يُعلمك بأحداث لعبة الشطرنج - قبِل %1$s تحديك في الشطرنج - تحرّك %1$s — دورك - تحديثات الشطرنج - الردود - يُعلمك عندما يرد شخص ما على منشورك رد عليك %1$s على: %1$s - ردود جديدة - الإشارات - يُعلمك عندما يذكرك شخص ما أو يستشهد بك في منشور - أشار إليك %1$s - إشارات جديدة @@ -591,44 +80,6 @@ - المكالمات الواردة - إشعارات للمكالمات الصوتية والمرئية الواردة - مكالمة واردة - مكالمة صوتية واردة… - مكالمة مرئية واردة… - مكالمة مع %1$s - المكالمات - إشعار المكالمة الجارية - إنهاء المكالمة - قبول - رفض - كتم الصوت - إلغاء كتم الصوت - الكاميرا مفعّلة - الكاميرا معطّلة - مكبّر الصوت - السماعة - يحتاج Amethyst إلى إذن الوصول إلى الميكروفون لبدء مكالمة صوتية. يُرجى تفعيله من إعدادات التطبيق. - يحتاج Amethyst إلى إذن الوصول إلى الكاميرا والميكروفون لبدء مكالمة مرئية. يُرجى تفعيلهما من إعدادات التطبيق. - إعدادات المكالمات - يحافظ على الاتصال بـ relay صندوق الوارد الخاص بك لتلقّي الإشعارات في الوقت الفعلي - إشعارات Amethyst نشطة - - متصل بـ %1$d relay للصندوق الوارد - متصل بـ %1$d relay للصندوق الوارد - متصل بـ %1$d relay للصندوق الوارد - متصل بـ %1$d relay للصندوق الوارد - متصل بـ %1$d relay للصندوق الوارد - متصل بـ %1$d relay للصندوق الوارد - - - متصل بـ %1$d relay - متصل بـ %1$d relay - متصل بـ %1$d relay - متصل بـ %1$d relay - متصل بـ %1$d relay - متصل بـ %1$d relay - - جارٍ الاتصال بـ relay صندوق الوارد… خدمة الإشعارات الدائمة تحافظ على اتصال دائم بـ relay صندوق الوارد الخاص بك لضمان تسليم الإشعارات فورًا. تُظهر إشعارًا مستمرًا. تستهلك بطارية أكثر لكنها تضمن عدم فوات أي رسالة. - تقسيم الإشعارات حسب المتابَعين - عرض تبويبين للإشعارات — المتابَعون (الأشخاص الذين تتابعهم) والجميع. يضيء مؤشر غير المقروء فقط لنشاط الأشخاص الذين تتابعهم. - إظهار الرسائل - تضمين الرسائل المباشرة والجماعية في تبويب الإشعارات. أوقف التشغيل للاحتفاظ بالرسائل في تبويب الرسائل فقط. - تنبيه: - اليوم - إخفاء - إظهار - تحذير - تصفية الرسائل المزعجة - تُخفي المنشورات من الغرباء التي تكررت بنفس المحتوى 5 مرات أو أكثر - إضافة وسم العميل إلى أحداثي - عند التفعيل، يُضيف Amethyst وسم عميل NIP-89 إلى الأحداث التي تنشرها. - التحذير عند وجود بلاغات - يعرض رسالة تحذير عندما تحتوي المنشورات أو الملفات الشخصية على بلاغات من أشخاص تتابعهم - إخفاء المنشورات التي تنتهك قواعد المجتمع - تُسقط المنشورات من خلاصات المجتمع عندما ينشر المجتمع وثيقة قواعد NIP-9B وتخفق فيها الحدث. لا تأثير عندما لا تملك المجتمع قواعد منظّمة. - تفضيلات التصفية - المحتوى المحجوب - لم تحجب أي مستخدمين بعد. - لم يُصنَّف أي حساب كرسائل مزعجة في هذه الجلسة. - لا توجد كلمات مخفية. أضف كلمة أدناه لإخفاء المنشورات التي تحتويها. - لم يتم تحديد أي نوع من ردود الفعل. اضغط مطولاً للتغيير - القراءة من الخادم (Relay) - الكتابة للخادم - عدد البايتات الذي تم إرساله إلى هذا المرحل - عدد البايتات الذي تم أستقباله من هذا المرحل - سياسة الخصوصية - معايير سلامة الأطفال - حول & القانونية - رمز Cashu - لم يتم تعيين عنوان Lightning - مرحلات - حزم المتابعة - القراءات - خوارزميات الخلاصة - السوق - البثوث المباشرة - المجتمعات - االدردشات - محتوى حساس - يُضيف تحذير محتوى حساس قبل عرض هذا المحتوى - تفضيلات الواجهة تفضيلات التطبيق - الترجمات - التفاعلات - الإعدادات - إعدادات الحساب - إعدادات التطبيق - منطقة الخطر - إعادة تعيين حالة Marmot - تمت إعادة تعيين حالة Marmot. - فشلت إعادة تعيين حالة Marmot: %1$s - دائماً - WiFi غير المحدودة - ابداً - كامل - مبسّط - أداء - كلاسيكي - حديث - النظام - فاتح - غامق - ربط المحفظة - المظهر - معاينة الصورة - تشغيل الفيديو - تشغيل الفيديو تلقائيًا - معاينة الرابط - التمرير الغامر - إخفاء أشرطة التنقل عند التمرير - وضع الواجهة - اختر نمط المنشور - نمط معرض الملف الشخصي - اختر نمط المعرض - المستخدمون المزعجون - الصوت مكتوم. انقر لإلغاء كتم الصوت - الصوت مفعل. انقر لكتم الصوت - التخطي للخلف %d ثانية - التخطي للأمام %d ثانية - منشور حصري للموقع - سيراه فقط متابعو الموقع. لن يراه متابعوك العامون. - - %1$d مقطع - %1$d مقطع - %1$d مقطع - %1$d مقاطع - %1$d مقطعًا - %1$d مقطع - - - +%1$d مقاطع إضافية - +%1$d مقطع إضافي - +%1$d مقطعان إضافيان - +%1$d مقاطع إضافية - +%1$d مقطعًا إضافيًا - +%1$d مقاطع إضافية - - تحميل صورة غلاف - اختر صورة مربعة لتكون غلاف هذا المقطع. - تحميل ملف صوتي - اختر ملف MP3 أو WAV أو FLAC. سيتم تحميله إلى خادم الوسائط الخاص بك عند الحفظ. - جارٍ تحميل الغلاف والصوت ونشرهما. سيستمر هذا حتى لو غادرت الشاشة. - تعديل قائمة التشغيل - تحميل صورة غلاف - اختر صورة مربعة لتكون غلاف قائمة التشغيل هذه. - جارٍ رفع الغلاف والنشر. سيستمر هذا حتى لو غادرت الشاشة. عام مجموعة خاص - الموضوع - تعذّر الرفع - أدخل وجهة الرسالة أولًا - لم يتم العثور على المحفظة - لم يتمكن Amethyst من العثور على أي تطبيقات محافظ تدعم Nostr Wallet Connect (NWC). -\n\nما يمكنك فعله: -\n\t1. التحقق من دعم NWC: تأكد من أن تطبيق محفظتك المفضل متوافق مع Nostr Wallet Connect. -\n\t2. إنشاء اتصال: انتقل إلى تطبيق محفظتك وأنشئ اتصال NWC جديدًا. -\n\t3. الربط بـ Amethyst: عادةً ما تتيح محفظتك ثلاثة خيارات: -\n\t\t3.1 ربط تلقائي: زر لفتح Amethyst والاتصال به تلقائيًا. إذا كان الأمر كذلك، اضغط على الزر، وافتح Amethyst واضغط على حفظ في الشاشة الجديدة. -\n\t\t3.2 ربط يدوي: عنوان URI للاتصال يمكنك نسخه والضغط على أيقونة اللصق في هذه الشاشة لإدخاله مباشرةً. -\n\t\t3.3 رمز QR: تنشئ المحفظة رمز QR يمكنك قراءته من زر رمز QR في هذه الشاشة. - - مظهر غامق أو فاتح أو اوتوماتيكي - تحميل الصور و الصور المتحركة تلقائياً - تشغيل الفيديوهات و الصور المتحركة تلقائياً - تشغيل مقاطع الفيديو تلقائيًا عند ظهورها على الشاشة - إظهار معاينات الروابط - نسخ إلى الحافظة - تم النسخ إلى الحافظة - مشاركة أو حفظ إرسال كرسالة مباشرة - تمت إضافة الوسائط - تمت إضافة الوسائط إلى معرض ملفك الشخصي - تعذّر إرسال الـ zap - إعداد Lightning مفقود - المستخدم %1$s ليس لديه عنوان Lightning مُعدّ لاستقبال sats - خطأ في فتح تطبيق الموقِّع (signer app) - لم يتم العثور على الموقّع، تأكد مما إذا لم يتم إلغاء تثبيت تثبيته - تعذّر تشغيل هذا الفيديو - الترميز أو التنسيق غير مدعوم على هذا الجهاز (%1$s). حاول فتحه في متصفحك. - فتح في المتصفح - تم رفض طلب التوقيع - تأكد من أن تطبيق الموقِّع قد أذن بهذه المعاملة - لم يتم العثور على محافظ لدفع فاتورة Lightning (الخطأ: %1$s). يرجى تثبيت محفظة Lightning لاستخدام الـ zaps - لم يتم العثور على محافظ لدفع فاتورة Lightning. يرجى تثبيت محفظة Lightning لاستخدام الـ zaps - تعذّر فتح روابط Blossom - لم يتم العثور على تطبيقات Blossom. يرجى تثبيت تطبيق Blossom محلي لعرض هذا الملف - الكلمات المخفية - الخيوط المكتومة - لا توجد خيوط مكتومة - صورة الملف الشخصي - إظهار الصور الشخصية - تعذر دفع الفاتورة - لا يمكن السحب - تعذّر استرداد Cashu - أرسل mint رسالة الخطأ التالية: %1$s - تم استلام Cashu - %1$s sats أرسلت الى محفظتك -(الرسوم: sats %2$s ) - لم يتم العثور على محفظة Cashu متوافقة على النظام - تعذر جلب الinvoice من خوادم المستلم - موفر wallet connect الخاص بك أعاد الخطأ التالي: %1$s - تعذّر إنشاء LNUrl من عنوان Lightning \"%1$s\". تحقق من إعداد المستخدم - تعذّر جلب الفاتورة من %1$s: %2$s - خطأ في تحليل JSON من %1$s. تحقق من إعداد Lightning للمستخدم - لم يتم العثور على عنوان URL للاستجابة في رد %1$s - مبلغ الinvoice غير صحيح (sats %1$s ) من %2$s. كان يجب أن يكون %3$s - تعذّر إنشاء فاتورة Lightning قبل إرسال الـ zap. أرسلت محفظة Lightning للمستقبل الخطأ التالي: %1$s - مستخدم في وضع القراءة فقط - لا توجد اعدادات لردود الفعل - الإشعارات - التسليم - العرض داخل التطبيق - الفئات - رسالة من %1$s - مرحبًا %1$s، هل هذا لا يزال متاحًا؟ - ملابس - اكسسوارات - إلكترونيات - أثاث - مقتنيات - كتب - حيوانات أليفة - الرياضة - اللياقة البدنية - فن - الحرف - الصفحة الرئيسية - المكتب - طعام - متنوع - أخرى - فشل في تحميل الوسائط - تعذّر فتح الملف المضغوط - خطأ في التحميل: %1$s - لم يوفر الخادم عنوان URL بعد الرفع - تعذّر تنزيل الوسائط المرفوعة من الخادم - تعذّر التحقق من الملف المنزّل بعد الرفع: %1$s - فشل الرفع إلى %1$s: %2$s - فشل الحذف: %1$s - الوسائط أكبر من اللازم لـ NIP-95 - تشفير الملفات - تشفير الملفات قبل الرفع للحفاظ على الخصوصية. قد لا تقبل بعض الخوادم الملفات المشفرة في الحسابات المجانية. - فشل الرفع المشفر - كثير من الخوادم لا تقبل الملفات المشفرة في الحسابات المجانية. يمكنك إعادة المحاولة بدون تشفير. - استخدام ترميز H.265/HEVC - جودة أفضل بأحجام ملفات أصغر لكن ليس كل الأجهزة تدعم تشغيل H.265. - تحويل GIF إلى MP4 - يحوّل ملفات GIF المتحركة إلى فيديو MP4 لحجم ملف أصغر وتوافق تشغيل أفضل. - إزالة البيانات الوصفية الخاصة - يحاول إزالة البيانات الوصفية الخاصة من ملفات الوسائط المدعومة قبل الرفع - تعذّر إزالة البيانات الوصفية - فشل إزالة البيانات الوصفية الخاصة من الوسائط. تم إلغاء الرفع. - تم إلغاء الرفع - تعذّر إزالة البيانات الوصفية من AVIF: %1$s - الصفحة الرئيسية - اكتشاف - الرسائل - الإشعارات - التقاويم - قوائم التقاويم - الشطرنج - المحفظة - محفظة Cashu (NIP-60) مفتاح Nutzap (متقدم) مفتاح خاص منفصل يُستخدم فقط لاستلام nutzaps وفق NIP-61. ليس مفتاح هويتك على Nostr. توليد مفتاح جديد المفتاح الخاص P2PK (hex) - تعديل الـ mints حفظ التغييرات - - +%1$d أخرى - +%1$d أخرى - +%1$d أخريان - +%1$d أخريات - +%1$d أخرى - +%1$d أخرى - - - موصى به من قِبَل %1$d آخرين - موصى به من قِبَل %1$d آخر - موصى به من قِبَل %1$d آخرين - موصى به من قِبَل %1$d آخرين - موصى به من قِبَل %1$d آخرين - موصى به من قِبَل %1$d آخرين - - Mints الشائعة - Mints مطابقة - مستلم - مُرسَل - نشر طلب حذف لتوصية kind:38000 الخاصة بك لـ %1$s. ستحذفها الـ relays التي تحترم NIP-09. - تم استرداد %1$s sats عبر %2$s أدلة. - دفع %1$s sat + ما يصل إلى %2$s sat كرسوم؟ - فشل Nutzap - لا توجد مفتاح عمومي للمستلم في الملاحظة - Nutzaps عامة وستكشف هذه الملاحظة الخاصة. استخدم Lightning zap بدلًا من ذلك. - تعذّر بناء مرجع الحدث - في انتظار دفع الفاتورة… - جارٍ فحص mint… - بطيء - عادي - سريع - ~ساعة واحدة - ~30 دقيقة - ~10 دقائق - - إرسال %1$s sats، بدون تقسيم - إرسال %1$s sats، بطريقة %2$d - إرسال %1$s sats، بطريقتين %2$d - إرسال %1$s sats، %2$d طرق - إرسال %1$s sats، %2$d طريقة - إرسال %1$s sats، %2$d طريقة - - - استخدام تقسيم zap الخاص بهذه الملاحظة بـ %1$d طرق - استخدام تقسيم zap الخاص بهذه الملاحظة بطريقة %1$d - استخدام تقسيم zap الخاص بهذه الملاحظة بطريقتين %1$d - استخدام تقسيم zap الخاص بهذه الملاحظة بـ %1$d طرق - استخدام تقسيم zap الخاص بهذه الملاحظة بـ %1$d طريقة - استخدام تقسيم zap الخاص بهذه الملاحظة بـ %1$d طريقة - - - تقسيم بين %1$d مستلمين - تقسيم بين %1$d مستلم - تقسيم بين %1$d مستلمين - تقسيم بين %1$d مستلمين - تقسيم بين %1$d مستلمًا - تقسيم بين %1$d مستلم - - - تخطي %1$d مستلمين لديهم عنوان Lightning فقط — تحتاج المعاملات على السلسلة إلى مفتاح عام Nostr لاشتقاق العنوان. - تخطي %1$d مستلم لديه عنوان Lightning فقط — تحتاج المعاملات على السلسلة إلى مفتاح عام Nostr لاشتقاق العنوان. - تخطي %1$d مستلمين لديهم عنوان Lightning فقط — تحتاج المعاملات على السلسلة إلى مفتاح عام Nostr لاشتقاق العنوان. - تخطي %1$d مستلمين لديهم عنوان Lightning فقط — تحتاج المعاملات على السلسلة إلى مفتاح عام Nostr لاشتقاق العنوان. - تخطي %1$d مستلمًا لديهم عنوان Lightning فقط — تحتاج المعاملات على السلسلة إلى مفتاح عام Nostr لاشتقاق العنوان. - تخطي %1$d مستلم لديهم عنوان Lightning فقط — تحتاج المعاملات على السلسلة إلى مفتاح عام Nostr لاشتقاق العنوان. - - جارٍ تحميل الرصيد - جارٍ بناء المعاملة - جارٍ التوقيع - جارٍ البث - جارٍ نشر الإيصال - لم يتم تكوين واجهة خلفية لسلسلة Bitcoin - تعذّر تحميل رصيد Bitcoin الخاص بك - تعذّر بناء المعاملة - حصة أحد المستلمين أقل من الحد الأدنى - تعذّر توقيع المعاملة - تعذّر بث المعاملة - تم إرسال الدفع، ولكن تعذّر نشر إيصال zap - - تم إرسال الدفع (%1$d من %2$d إيصال منشور)، ولكن تعذّر نشر الإيصال التالي - تم إرسال الدفع (%1$d من %2$d إيصال منشور)، ولكن تعذّر نشر الإيصال التالي - تم إرسال الدفع (%1$d من %2$d إيصالين منشورين)، ولكن تعذّر نشر الإيصال التالي - تم إرسال الدفع (%1$d من %2$d إيصالات منشورة)، ولكن تعذّر نشر الإيصال التالي - تم إرسال الدفع (%1$d من %2$d إيصالًا منشورًا)، ولكن تعذّر نشر الإيصال التالي - تم إرسال الدفع (%1$d من %2$d إيصال منشور)، ولكن تعذّر نشر الإيصال التالي - - استيراد المتابَعين - منتج جديد - مقال جديد - حدث تقويم جديد - تعديل حدث التقويم - تقويم جديد - تعديل التقويم - موجز - شهر - أسبوع - يوم - - %1$s، لا أحداث - %1$s، %2$d حدث - %1$s، %2$d حدثان - %1$s، %2$d أحداث - %1$s، %2$d حدثًا - %1$s، %2$d حدث - - يجري الآن - %1$s · ينتهي %2$s - مشاركة حدث التقويم - تذكيرات التقويم - تنبيه عندما يوشك حدث تحضره على البدء. - حدث تقويم - - يبدأ خلال %1$d دقائق - يبدأ خلال %1$d دقيقة - يبدأ خلال %1$d دقيقتين - يبدأ خلال %1$d دقائق - يبدأ خلال %1$d دقيقة - يبدأ خلال %1$d دقيقة - - فشل رفع الصورة - تعذّر رفع الصورة المختارة. حاول مرة أخرى أو الصق رابطًا. - تذكيرات التقويم - إرسال تذكيرات - يُطلق إشعار عندما يوشك حدث تحضره على البدء. - - %1$d دقيقة - %1$d دقيقة - %1$d دقيقتان - %1$d دقائق - %1$d دقيقة - %1$d دقيقة - - فتح في الخرائط - فتح الرابط - فتح جميع ردود الفعل على هذا المنشور - إغلاق جميع ردود الفعل على هذا المنشور - شريط التنقل السفلي اسحب لإعادة الترتيب. فعّل أو عطّل لإضافة عنصر أو إزالته من الشريط السفلي. عند إزالة جميع العناصر، يُخفى الشريط السفلي. إعادة الترتيب اختر التبويبات التي تظهر في الشاشة الرئيسية. عندما يكون تبويب واحد فقط نشطًا، يُخفى شريط التبويبات. - الكل - واجهة الملف الشخصي اختر الأقسام والتغذيات التي تظهر في شاشات الملف الشخصي للمستخدم. جميع الخيارات مفعّلة افتراضيًا. - شارات الملف الشخصي - توصيات التطبيقات - تغذية Zap المستلم - تغذية المتابعين - صف التفاعلات - أزرار مشغّل الفيديو - مرئيات الصوت - تاريخ انتهاء الصلاحية - عنوان غير صالح - تلقّى Amethyst رابطًا لفتحه لكن الرابط غير صالح: %1$s - مرحلات الرسائل الخاصة - مرحلات البحث - بعض المرحلات الجيدة:\n%1$s - إعدادات المرحل - المستخدم ينشر محتواه إلى هذه الـ relays - يخزّن هذا النوع من الـ relay جميع محتواك. سيرسل Amethyst منشوراتك إليها وسيستخدم الآخرون هذه الـ relays للعثور على محتواك. أدخل ما بين 1 و3 relays. يمكن أن تكون relays شخصية أو مدفوعة أو عامة. - المستخدم يستقبل الإشعارات على هذه الـ relays - يستقبل هذا النوع من الـ relay جميع الردود والتعليقات والإعجابات والـ zaps على منشوراتك. يمكن أن تكون مدفوعة أو مجانية. القيود التي يضعها مشغّل الـ relay يمكن أن تحدّ من الإشعارات التي تستقبلها بشكل جيد أو سيء. على سبيل المثال، إذا كنت تتعرض لهجوم بريد مزعج في التعليقات، يمكن للـ relays المدفوعة تصفية البريد المزعج. أدخل ما بين 1 و3 relays. - المستخدم يستقبل الرسائل المباشرة على هذه الـ relays - أدخل ما بين 1 و3 relays لتكون صندوقًا واردًا خاصًا. سيستخدم الآخرون هذه الـ relays لإرسال رسائل مباشرة إليك. يجب أن تقبل DM Inbox relays أي رسالة من أي شخص، لكن تسمح لك وحدك بتنزيلها. خيارات جيدة:\n - inbox.nostr.wine (مدفوع)\n - auth.nostr1.com (مجاني)\n - you.nostr1.com (relays شخصية - مدفوعة) - الـ relays التي تُنشر عليها MLS KeyPackages الخاصة بك (MIP-00). يجلب المستخدمون الآخرون هذه الـ KeyPackages لدعوتك إلى محادثات مجموعة Marmot. أدخل ما بين 1 و3 relays تقبل أحداث KeyPackage منك وتسمح بالقراءة العامة. - أدخل ما بين 1 و3 relays لتخزين الأحداث التي لا يستطيع أحد رؤيتها، كالمسودات و/أو إعدادات التطبيق. من الأفضل أن تكون هذه الـ relays محلية أو تتطلب مصادقة قبل تنزيل محتوى كل مستخدم. - القائمة الحالية للـ relays المستخدمة - قائمة الـ relays المستخدمة عند البحث عن المحتوى أو المستخدمين. لن يعمل وضع الوسوم والبحث إذا لم تكن هناك خيارات متاحة. تأكد من أنها تطبّق NIP-50. - قائمة الـ relays التي تعمل على هذا الجهاز. - إعادة توجيه الملفات الشخصية إلى الـ relay المحلي - إرسال جميع أحداث الملف الشخصي المستلمة (kind 0) إلى الـ relay المحلي - الـ relays التي تثق بها ولا تحتاج إلى اتصال Tor - الـ relays التي تزورها كثيرًا لمشاهدة تغذيتها العالمية - الـ relays التجميعية التي يجب أن يستخدمها التطبيق لتنزيل تغذياتك منها، مثل filter.nostr.wine. هذا يستبدل نموذج outbox وسيجعل التطبيق يتصل فقط بالـ relays الموجودة في قوائمك. - الـ relays المتخصصة في دفع ملاحظاتك إلى جميع الـ relays الأخرى، مثل sendit.nosflare.com. سيضيف Amethyst هذا الـ relay إلى جميع الأحداث الجديدة التي تصدر منك - الـ relays المتخصصة في استضافة بيانات وصفية الجميع وقوائم الـ relays، مثل purplepag.es. سيستخدم Amethyst هذه الـ relays للعثور على المستخدمين الغير موجودين في قوائمك. - لن يتصل Amethyst أبدًا بهذه الـ relays - تصدير إعدادات الـ relay الويب: نظرة عامة حول الروابط المشرفون المواضيع - إثبات الطابع الزمني - يوجد دليل على أن هذا المنشور تم توقيعه في وقت ما قبل %1$s. تم ختم الإثبات في بلوكتشين Bitcoin في ذلك التاريخ والوقت. - تعديل المنشور - لا يمكن الرد على ملاحظة مسودة - لا يمكن اقتباس ملاحظة مسودة - لا يمكن التفاعل مع ملاحظة مسودة - لا يمكن إرسال Zap لملاحظة مسودة - ملاحظة مسودة - طلب غير صالح - لا يستطيع الخادم معالجة الطلب أو يرفض ذلك. - غير مصرح به - لا يمتلك المستخدم بيانات اعتماد مصادقة صالحة - الدفع مطلوب - يشترط الخادم الدفع لإتمام الطلب - محظور - لا يمتلك المستخدم صلاحيات الوصول اللازمة لتنفيذ الطلب - غير موجود - لا يستطيع الخادم العثور على العنوان المطلوب - الطريقة غير مسموح بها - يدعم الخادم طريقة الطلب لكن ليس المورد المستهدف - غير مقبول - لا يجد الخادم أي محتوى يلبّي متطلبات الطلب. - مصادقة الوكيل مطلوبة - لا يمتلك المستخدم بيانات اعتماد مصادقة صالحة - انتهت مهلة الطلب - انتهت مهلة الخادم أثناء انتظاره لطرف آخر - تعارض - لا يستطيع الخادم تلبية الطلب بسبب تعارض مع المورد - غير متاح - تم حذف المحتوى المطلوب نهائيًا من الخادم ولن يُستعاد - الطول مطلوب - يرفض الخادم الطلب لأنه يستلزم تحديد طول محدد - فشل الشرط المسبق - لا يستوفي الخادم الشروط المسبقة للطلب المحددة في حقول الترويسة - الحمولة كبيرة جدًا - الطلب أكبر من الحدود المحددة للخادم ويرفض معالجته - URI طويل جدًا - عنوان URL الذي طلبه العميل طويل جدًا لمعالجته من قِبل الخادم. - نوع وسائط غير مدعوم - يستخدم الطلب تنسيق وسائط لا يدعمه الخادم - النطاق غير قابل للتحقيق - لا يستطيع الخادم تلبية القيمة المحددة في حقل ترويسة Range للطلب. - فشل التوقع - لا يستطيع الخادم تلبية المتطلبات المحددة في حقل ترويسة Expect للطلب - الترقية مطلوبة - يرفض الخادم معالجة الطلب باستخدام البروتوكول الحالي ما لم يرقّ العميل إلى بروتوكول مختلف. - خطأ داخلي في الخادم - واجه الخادم خطأً غير متوقع ولا يستطيع إتمام الطلب - غير منفّذ - لا يستطيع الخادم تلبية الطلب أو لا يتعرّف على طريقة الطلب - بوابة خاطئة - يعمل الخادم كبوابة وتلقّى استجابة غير صالحة من المضيف - الخدمة غير متاحة - يحدث هذا عادةً عندما يكون الخادم مثقلًا بالأحمال أو متوقفًا للصيانة - انتهاء مهلة البوابة - كان الخادم يعمل كبوابة أو وكيل وانتهت مهلته أثناء انتظار استجابة - إصدار HTTP غير مدعوم - لا يدعم الخادم إصدار HTTP المستخدم في الطلب - المتغير يتفاوض أيضًا - يعاني الخادم من خطأ في الإعداد الداخلي - مساحة تخزين غير كافية - لا يمتلك الخادم مساحة تخزين كافية لمعالجة الطلب بنجاح - تم اكتشاف حلقة - اكتشف الخادم حلقة لا نهاية لها أثناء معالجة الطلب - مصادقة الشبكة مطلوبة - يجب على العميل المصادقة للوصول إلى الشبكة خوادم Blossom أضف عددًا من الخوادم كما تشاء. يمكنك اختيار الخادم المناسب لاحقًا عند رفع صورتك - إضافة خادم NIP-96 - إضافة خادم Blossom تنزيل - فشل فتح الملف - لا توجد تطبيقات torrent مثبّتة لفتح الملف وتنزيله. - لا تحتوي الحدث على معلومات كافية لبناء رابط magnet - قوائمي - الخلاصات - الوسوم - مجموعات الاهتمامات - المواقع - المجتمعات - القوائم - خوارزميات الخلاصة - جميع خوارزميات الخلاصة المفضلة - خوارزميات الخلاصة المفضلة - رسالة خاصة - رسالة عامة - تعذّرت مشاركة الصورة، يرجى المحاولة مرة أخرى لاحقًا… - تعذّرت مشاركة الفيديو، يرجى المحاولة مرة أخرى لاحقًا… - جارٍ تنزيل الفيديو… - عدم الترجمة من - اللغات المعروضة هنا لن تُترجم. اختر لغة لإزالتها وإعادة ترجمتها. - الترجمة إلى - اختر اللغة التي تريد ترجمة المحتوى إليها. - تفضيلات عرض اللغة - لكل زوج لغوي مُترجم، اختر اللغة التي تريد عرضها أولًا. - إيقاف مؤقت - تشغيل - ستختفي هذه الرسالة خلال %1$s - بيانات تعريفية لقائمة المتابعة - يمكن لأي شخص على Nostr رؤية البيانات التعريفية لقوائم المتابعة. الأعضاء الخاصون فقط مشفّرون. - بيانات تعريفية لحزمة المتابعة - يمكن لأي شخص على Nostr رؤية البيانات التعريفية لحزمة المتابعة، وكثيرًا ما تُنشر في مواقع عديدة كأطقم بدء تشغيل للمستخدمين الجدد. - تعديل حزمة المتابعة - توسيع - إعادة المحاولة - تفاعل - منشور صوتي - رد صوتي - Relays الصادرة - التطبيقات - توصيات التطبيقات - إعدادات المستخدم - رأس ملف الصوت - مسار صوتي - مسار موسيقي - قائمة تشغيل موسيقية - حلقة بودكاست - برنامج بودكاست - البودكاستات المؤلَّفة - البودكاستات المفضلة - جوائز الشارات - تعريفات الشارات - مجموعة الشارات المقبولة - شارات الملف الشخصي - Relays المحظورة - خوادم Blossom - خوادم Nests - مصادقة Blossom - Relays البثّ - قائمة الإشارات المرجعية - قائمة الإشارات المرجعية القديمة - موعد يومي - التقويم - موعد - تأكيد الموعد - ألعاب الشطرنج - مصادقة الشطرنج - المرحّلات المفضلة - تحديات الشطرنج - قبول لعبة الشطرنج - حركة الشطرنج - نهاية لعبة الشطرنج - عرض تعادل الشطرنج - تعريف القناة - إخفاء رسالة القناة - قائمة القنوات - رسالة القناة - بيانات القناة الوصفية - كتم مستخدم في القناة - ملف DM - رسالة DM - مرحّلات DM - إعلانات مبوبة - التعليقات - تعريف المجتمع - قائمة المجتمعات - منشور المجتمع - قائمة المتابَعين - الحذوفات - المسودات - حزم الرموز التعبيرية - قائمة حزم الرموز التعبيرية - دردشة مؤقتة - غرف دردشة مؤقتة - رؤوس الملفات - معرض الملف الشخصي - خوادم الملفات - بيانات Blob - رؤوس Blob - البيانات الطبية - حزم المتابعة - إعادة نشر (16) - متابعات Geohash - مشكلة Git - تصحيح Git - مستودع Git - رد Git - أهداف Zap - متابعات الوسوم - المقتطفات المميزة - مصادقة Http - قائمة مرحّلات الفهرس - مقدمة المغامرة - مشهد المغامرة - قراءة المغامرة - إشارات مرجعية مسماة - الدردشات المباشرة - البث المباشر - طلب NWC - استجابة NWC - Zaps الخاصة - طلب Zap - المدونات - غرفة الاجتماع - تواجد في الغرفة - فضاء الاجتماع - الملف الشخصي - قائمة الكتم - حالة DVM - طلب محتوى DVM - استجابة محتوى DVM - طلب مستخدم DVM - استجابة مستخدم DVM - قوائم الأشخاص - الصور - التمارين الرياضية - الدبابيس - استطلاع Zap - استطلاع - رد الاستطلاع - مرحّلات خاصة - مرحّلات وكيلة - رسالة عامة - ردود الفعل - بطاقة جهة الاتصال - مصادقة المرحّل - اكتشاف المرحّل - إعلان مراقب المرحّل - مجموعة المرحّلات - التقارير - إعادة النشر - حذف المستخدم - الأختام - مرحّلات البحث - حالة المستخدم - الملاحظات - التعديلات - الملفات التورنت - تعليقات التورنت - المرحّلات الموثوقة - المزودون الموثوقون - فيديو (Repl) - مقاطع قصيرة (Repl) - فيديو - مقاطع قصيرة - رسالة صوتية - رد صوتي - إشارة مرجعية للويب - %1$d%% وقت التشغيل - إعدادات Namecoin - مزامنة المرحّل - مستكشف Bitcoin ‏(OTS) - أحداث منك - أحداث إليك - أحداث قابلة للبحث - الملفات الشخصية - قوائم صندوق الصادر - آخر ظهور منذ %1$s - آخر ظهور في %1$s ‏(منذ %2$s) - آخر ظهور للتو - لم يُرَ قط - - لا دقائق - دقيقة واحدة - دقيقتان - %1$d دقائق - %1$d دقيقة - %1$d دقيقة - - - لا ساعات - ساعة واحدة - ساعتان - %1$d ساعات - %1$d ساعة - %1$d ساعة - - - لا أيام - يوم واحد - يومان - %1$d أيام - %1$d يوم - %1$d يوم - - - لا أسابيع - أسبوع واحد - أسبوعان - %1$d أسابيع - %1$d أسبوع - %1$d أسبوع - - - لا أشهر - شهر واحد - شهران - %1$d أشهر - %1$d شهر - %1$d شهر - - - لا سنوات - سنة واحدة - سنتان - %1$d سنوات - %1$d سنة - %1$d سنة - - - لا فواتير معلقة - فاتورة معلقة واحدة - فاتورتان معلقتان - %1$d فواتير معلقة - %1$d فاتورة معلقة - %1$d فاتورة معلقة - - - لا أموال محتجزة في mint غير مستخدم - أموال محتجزة في %1$d mint لا تستخدمه - أموال محتجزة في %1$d mint لا تستخدمهما - أموال محتجزة في %1$d mints لا تستخدمها - أموال محتجزة في %1$d mint لا تستخدمها - أموال محتجزة في %1$d mint لا تستخدمها - - تم نقل %1$s sat إلى %2$s. - البث إلى جهاز - إيقاف البث - رفع HLS - جارٍ رفع %1$s (%2$d من %3$d) - شهادة - طلب الشهادة - توصية المُصدِّق - كفاءة المُصدِّق - إشارات الويب المرجعية - إضافة إشارة ويب مرجعية - تعديل إشارة الويب المرجعية - %1$s ممولة من هدف %2$s sat - هدف جديد - طلب الاختفاء - تم إرسال طلب الاختفاء - سجل الاختفاء - المستخدمون - الأحداث - الأنواع - عناوين IP - الإعدادات - اقتراح تحسينات النص - يستخدم نموذج ذكاء اصطناعي على الجهاز لاقتراح تصحيحات نصية وتغييرات في النبرة. - البث المتتبَّع - استخدم المذيع المتتبَّع عند إرسال الأحداث. يعرض تقدمًا مباشرًا وحالة كل relay أثناء البث. - اقتراح تمارين للمشاركة - يقرأ التمارين المنتهية من Health Connect (Samsung Health، Google Fit، Fitbit، Garmin…) ويقترح مشاركتها كمنشور. يُطلب الإذن فقط عند الاتصال. - إعدادات الكتابة - إنشاء مسودات تلقائياً - يحفظ حدثاً كمسودة تلقائياً عند الكتابة أو مغادرة محرر النص بنص غير مُرسل، ويرسله إلى relay صناديق الصادر الخاصة. - حزمة إيموجي جديدة - تعديل حزمة الإيموجي - حزم الإيموجي الخاصة بي - الإيموجي - الإيموجي العامة مرئية للجميع وتظهر في قائمة ردود أفعالك ومنتقي الإكمال التلقائي \":\" عندما تكون هذه الحزمة في قائمة الإيموجي الخاصة بك. - الإيموجي الخاصة مخزنة بشكل مشفر على relay ولا تراها إلا أنت. تظهر في قائمة ردود أفعالك ومنتقي \":\" تماماً مثل الإيموجي العامة. - حجم المسودة %1$d بايت؛ يحدد هذا المجتمع الحد الأقصى لهذا النوع بـ %2$d بايت. - حجم المسودة %1$d بايت؛ يحدد هذا المجتمع الحد الأقصى للأحداث بـ %2$d بايت. - لقد نشرت بالفعل %1$d أحداث من هذا النوع اليوم (الحد الأقصى %2$d). - موقع Nowhere - حدث Nowhere - حملة تمويل Nowhere - متجر Nowhere - عريضة Nowhere - رسالة Nowhere - إسقاط Nowhere - فن Nowhere - منتدى Nowhere - - لا رسائل - %1$d رسالة - %1$d رسالتان - %1$d رسائل - %1$d رسالة - %1$d رسالة - - - لا أعضاء - %1$d عضو - %1$d عضوان - %1$d أعضاء - %1$d عضواً - %1$d عضو - - تم تحديث معلومات المجموعة - فشل التحديث: %1$s - فشل إنشاء المجموعة: %1$s - فشل مغادرة المجموعة: %1$s - جارٍ إضافة %1$s… - فشل إضافة %1$s: %2$s - خطأ غير معروف - تمت إزالة العضو - فشل إزالة العضو: %1$s - تم منح صلاحيات المسؤول - فشل منح صلاحيات المسؤول: %1$s - تم سحب صلاحيات المسؤول - فشل سحب صلاحيات المسؤول: %1$s - لست عضواً في هذه المجموعة خدمة Lightning للمستلم على %1$s غير متاحة. تم احتسابها من عنوان Lightning \"%2$s\". الخطأ: %3$s. تحقق مما إذا كان الخادم يعمل وما إذا كان عنوان Lightning صحيحاً تعذر حل %1$s. تحقق مما إذا كنت متصلاً، وما إذا كان الخادم يعمل وما إذا كان عنوان Lightning %2$s صحيحاً.\n\nالاستثناء: %3$s خطأ في تحليل JSON من جلب فاتورة %1$s. تحقق من إعداد Lightning للمستخدم diff --git a/amethyst/src/main/res/values-bn-rBD/strings.xml b/amethyst/src/main/res/values-bn-rBD/strings.xml index f648f3c080..32d8ad5ad8 100644 --- a/amethyst/src/main/res/values-bn-rBD/strings.xml +++ b/amethyst/src/main/res/values-bn-rBD/strings.xml @@ -1,116 +1,12 @@ - - এই পোস্টে %1$d টির বেশি হ্যাশট্যাগ আছে - এই পোস্টে %1$d টির বেশি হ্যাশট্যাগ আছে - - - %1$d টি সম্পদ একত্রিত - %1$d টি সম্পদ একত্রিত - - - +%1$d\nউত্তর - +%1$d\nউত্তর - - স্প্যাম - এই রিলে থেকে আসা স্প্যামিং ইভেন্টের সংখ্যা - ছদ্মবেশ - বেআইনী আচরণ - নোটটি মুছে ফেলার অনুরোধ করুন - প্রতিউত্তর দিতে ব্যক্তিগত চাবি দিয়ে লগ ইন করুন - পোস্টগুলি বুস্ট করতে ব্যক্তিগত চাবি দিয়ে লগ ইন করুন - পোস্টগুলি লাইক করতে ব্যক্তিগত চাবি দিয়ে লগ ইন করুন - জ্যাপের কোনো পরিমাণ নির্দিষ্ট করা নেই। এটি পরিবর্তন করতে চাইলে দীর্ঘক্ষণ চাপুন - কাউকে জ্যাপ পাঠাতে ব্যক্তিগত চাবি দিয়ে লগ ইন করুন - কাউকে অনুসরণ করতে ব্যক্তিগত চাবি দিয়ে লগইন করুন - কাউকে আনফলো করতে ব্যক্তিগত চাবি দিয়ে লগ ইন করুন - পোস্টগুলি বুস্ট করতে ব্যক্তিগত চাবি দিয়ে লগ ইন করুন - পোস্টগুলি বুস্ট করতে ব্যক্তিগত চাবি দিয়ে লগ ইন করুন - আপনি একটি পাবলিক কী ব্যবহার করছেন এবং পাবলিক কীগুলি শুধুমাত্র পড়ার জন্য। আপলোড করতে সক্ষম হতে একটি প্রাইভেট কী দিয়ে লগইন করুন - আপনি একটি পাবলিক কী ব্যবহার করছেন এবং পাবলিক কীগুলি শুধুমাত্র পড়ার জন্য। ইভেন্টে সাইন করতে সক্ষম হতে একটি প্রাইভেট কী দিয়ে লগইন করুন - অননুমোদিত ডিক্রিপশন - সাইনার এই অপারেশন সম্পন্ন করতে প্রয়োজনীয় একটি ডিক্রিপশন অনুমোদন করেনি। আপনার সাইনার অ্যাপে NIP-44 ডিক্রিপশন সক্রিয় করুন এবং আবার চেষ্টা করুন - সাইনার পাওয়া যায়নি - সাইনার অ্যাপটি কি আনইনস্টল করা হয়েছে? সাইনারটি ইনস্টল আছে এবং এই অ্যাকাউন্টটি আছে কিনা পরীক্ষা করুন। সাইনার অ্যাপ পরিবর্তন হলে লগ আউট করুন এবং আবার লগইন করুন। - এক্সটার্নাল সাইনার অনুরোধের জন্য একটি অপরিচিত পেলোড ফেরত দিয়েছে। Amethyst বা সাইনারে একটি বাগ থাকতে পারে। - জ্যাপস - বুস্ট বুস্ট করা হয়েছে সম্পাদনা #%1$s - একটি সম্পাদনা প্রস্তাব করুন - যুক্ত করুন - ত্রুটি বার্তা পার্স করতে ব্যর্থ - প্রোফাইল - নিরাপত্তা-ফিল্টার - ইনভয়েস অনুরোধ করা হচ্ছে… - ডেবিট সেবা পেমেন্ট সম্পন্ন করেনি। - %2$s-এর মাধ্যমে %1$s পরিশোধ করবেন? - %1$s-এর মাধ্যমে এই ইনভয়েস পরিশোধ করবেন? - এই অফারের জন্য একটি বৈধ পরিমাণ লিখুন। - একবার - দৈনিক - সাপ্তাহিক - মাসিক - পরিশোধ করুন - %1$s-এর মাধ্যমে পরিশোধ করা হচ্ছে… - পেমেন্ট ব্যর্থ হয়েছে - এই প্রাপকের জন্য ব্যয়যোগ্য: %1$s sats - লেনদেন: %1$s - "%1$s এর জন্য কার্ড ইমেজের পূর্বরূপ দেখুন" - বিবরণ - নিজের কোনো ভাবনা প্রকাশ করতে চান? - একটি বার্তা লিখুন… - পেশ করুন সংরক্ষণ করুন - পাঠান - তৈরি করুন নাম পরিবর্তন করুন - বাতিল করুন - ত্রুটি - ত্রুটিসমূহ - relay-এ সফল সংযোগের শতাংশ - ফোনে সেভ করুন - ছবিটি গ্যালারিতে সংরক্ষণ করা হয়েছে - ভিডিও ডাউনলোড শুরু হয়েছে… - মিডিয়া ডাউনলোড শুরু হয়েছে… - শীর্ষে পিন করুন - পিন সরান - ছবিটি সফলভাবে সংরক্ষণ করা যায় নি - ফোনের ভিডিও গ্যালারিতে ভিডিও সেভ করা হয়েছে - ভিডিও সেভ করতে ব্যর্থ হয়েছে - Downloads/Amethyst-এ PDF সেভ করা হয়েছে - PDF সেভ করতে ব্যর্থ হয়েছে - এই ডিভাইসে কোনো ক্যামেরা অ্যাপ পাওয়া যায়নি - একটি বার্তা রেকর্ড করতে ক্লিক করুন এবং ধরে রাখুন - আপলোড ত্রুটি - ভয়েস বার্তা আপলোড করতে ব্যর্থ হয়েছে - NIP-95 এখনও ভয়েস বার্তার জন্য সমর্থিত নয় - ভয়েস আপলোড ব্যর্থ হয়েছে: %1$s - কোনোটি নয় - গভীর - উচ্চ - নিরপেক্ষ - স্যাট গ্রহণের জন্য ব্যবহারকারীর কোনো বিজলি-ঠিকানা দেওয়া নেই - "এখানে প্রতিউত্তর দিন.. " - জ্ঞাত - নয়া অনুরোধসমূহ - ব্লক করে রাখা ব্যবহারকারীরা - নতুন থ্রেড - কথোপকথন - আরও বিকল্প - প্রাইভেট কী QR কোড দেখান - এনক্রিপ্টেড প্রাইভেট কী QR কোড দেখান - অনুসরণ করুন - প্রতি-অনুসরণ করুন - পাসওয়ার্ড লুকান - অকেজো চাবি - ভুল চাবি: %1$s - একটি পাসওয়ার্ড প্রয়োজন. - চাবি প্রয়োজন - নাম প্রদান আবশ্যক @@ -119,158 +15,7 @@ নতুন চ্যাট প্রোফাইল: - ছেড়ে দিন - আনফলো করুন - অদৃশ্য হওয়া চ্যাট - Relay চ্যাট - Relay চ্যাট - Relay চ্যাটগুলো হলো চ্যাট গ্রুপ যা তাদের হোম relay দ্বারা নিয়ন্ত্রিত হয়। - এগুলো Nostr-এর সবার কাছে দৃশ্যমান এবং যে কেউ এতে অংশগ্রহণ করতে পারে। - নির্দিষ্ট বিষয়ের চারপাশে উন্মুক্ত সম্প্রদায়ের জন্য এগুলো দুর্দান্ত। এই গ্রুপগুলোর কিছু ক্ষণস্থায়ী - এবং সেজন্য চ্যাট বার্তাগুলো সময়ের সাথে মুছে যায় - সার্বজনীন আলাপ - MLS গ্রুপ - পাবলিক চ্যাট মেটাডেটা - পাবলিক চ্যাটগুলো Nostr-এর সবার কাছে দৃশ্যমান এবং যে কেউ - এতে অংশগ্রহণ করতে পারে। নির্দিষ্ট বিষয়ের চারপাশে উন্মুক্ত সম্প্রদায়ের জন্য এগুলো দুর্দান্ত। - এর relay-তে পোস্ট মুছে পরিচালনা নিয়ন্ত্রণ করা যায় - Relay-গুলি - এই গ্রুপটি হোস্ট করে এমন ১-৩ টি relay যোগ করুন। - Nostr ক্লায়েন্টগুলো এই সেটিং ব্যবহার করে জানে যে কোথা থেকে বার্তা ডাউনলোড করতে হবে এবং আপনার বার্তা কোথায় পাঠাতে হবে। - সরিয়ে ফেলুন - কখনো না - এখন - h - m - d - নগ্নতা - অশ্লীলতা / বিদ্বেষপূর্ণ বক্তব্য - ব্যাকআপ চাবিগুলি - আপনার ব্যক্তিগত কী এনক্রিপ্ট করতে ব্যর্থ হয়েছে৷ - ব্যক্তিগত চাবি (nsec) ক্লিপবোর্ডে কপি করা হয়েছে - আমার ব্যক্তিগত চাবিটি কপি করুন - প্রমাণীকরণ ব্যর্থ হয়েছে। - বায়োমেট্রিক্স এই ফোনের মালিককে প্রমাণ করতে ব্যর্থ হয়েছে৷ - বায়োমেট্রিক্স এই ফোনের মালিককে প্রমাণীকরণ করতে ব্যর্থ হয়েছে। ত্রুটি: %1$s - নোটের রচনাটি ক্লিপবোর্ডে কপি করা হয়েছে - রচয়িতার @npub ক্লিপবোর্ডে কপি করুন - নোট আইডিটি (@note1) ক্লিপবোর্ডে কপি করা হয়েছে - "<Unable to decrypt private message>\n\nআপনাকে %1$s এবং %2$s এর মধ্যে একটি ব্যক্তিগত/এনক্রিপ্টেড কথোপকথনে উদ্ধৃত করা হয়েছে৷" - অ্যাকাউন্টগুলি - নেভিগেট - আপনি - ফিড - তৈরি করুন - সিস্টেম - পিছে যান - ব্রাউজারের লিংক শেয়ার করুন - শেয়ার - ছবি হিসেবে শেয়ার করুন - ছবির URL হিসেবে শেয়ার করুন - নোটের আইডি - মুছে ফেলুন - থ্রেড মিউট করুন - থ্রেড আনমিউট করুন - - ব্লক করুন - বুকমার্ক করুন - বুকমার্ক সফলভাবে মাইগ্রেট করা হয়েছে - খসড়া - নির্ধারিত পোস্ট - পোস্ট নির্ধারণ করুন - নির্ধারণ বাতিল করুন - আপনি পরের বার অ্যাপটি পুনরায় খোলার আগ পর্যন্ত নির্ধারিত পোস্টগুলি প্রকাশিত নাও হতে পারে। নির্ভরযোগ্য ব্যাকগ্রাউন্ড নির্ধারণের জন্য সেটিংস → UI পছন্দে সর্বদা-চালু সক্রিয় করুন। - আপনি অ্যাপটি পুনরায় না খোলা পর্যন্ত নির্ধারিত পোস্টগুলি প্রকাশিত নাও হতে পারে। এই অ্যাকাউন্ট সক্রিয় থাকাকালীন অন্য অ্যাকাউন্টের নির্ধারিত পোস্টগুলি কাজ করবে না। নির্ভরযোগ্য ব্যাকগ্রাউন্ড নির্ধারণের জন্য সেটিংস → UI পছন্দে সর্বদা-চালু সক্রিয় করুন। - %1$s · %2$s-এর মধ্যে - %1$s · %2$s আগে - আগামীকাল - লগ আউট হয়েছে - - লগ আউট হয়েছে · %d টি নির্ধারিত পোস্ট মুছে ফেলা হয়েছে - লগ আউট হয়েছে · %d টি নির্ধারিত পোস্ট মুছে ফেলা হয়েছে - - নির্ধারিত পোস্ট প্রকাশিত হয়েছে - নির্ধারিত পোস্ট ব্যর্থ হয়েছে - নির্ধারিত পোস্ট - একটি নির্ধারিত পোস্ট প্রকাশিত হলে বা প্রকাশ করতে ব্যর্থ হলে বিজ্ঞপ্তি। - এখনই পাঠান - ত্রুটি: %1$s - নির্ধারিত - পাঠানো হচ্ছে… - ব্যর্থ - পাঠানো হয়েছে - বাতিল - - আপনার %d টি নির্ধারিত পোস্ট এখনো প্রকাশিত হয়নি। লগ আউট করলে এটি স্থায়ীভাবে মুছে যাবে। - আপনার %d টি নির্ধারিত পোস্ট এখনো প্রকাশিত হয়নি। লগ আউট করলে সেগুলো স্থায়ীভাবে মুছে যাবে। - - - %d টি কিউতে - %d টি কিউতে - - - · %d টি ১ ঘণ্টায় নির্ধারিত - · %d টি ১ ঘণ্টায় নির্ধারিত - - - %d টি relay-তে - %d টি relay-তে - - নোট ID কপি করা হয়েছে - পোল - খোলা - বন্ধ - ব্যাজ - কমিউনিটি - নতুন কমিউনিটি - কমিউনিটি সম্পাদনা করুন - মডারেটর - Relay-গুলি - যাচাইযোগ্য নিয়ম (ঐচ্ছিক) - অনুমোদিত ইভেন্টের ধরন - সংক্ষিপ্ত টেক্সট (1) - দীর্ঘ-ফর্ম নিবন্ধ (30023) - ছবি পোস্ট (20) - ভিডিও পোস্ট (21) - সংক্ষিপ্ত ভিডিও (22) - কমিউনিটি মন্তব্য (1111) - নিষিদ্ধ ব্যবহারকারী - ওয়েব-অব-ট্রাস্ট গেট (ঐচ্ছিক) - গ্লোবাল সর্বোচ্চ ইভেন্ট আকার (ঐচ্ছিক) - নতুন ব্যাজ - ব্যাজ প্রদান করুন - প্রোফাইল ব্যাজ - ছবি - ওয়ার্কআউট - নতুন ওয়ার্কআউট - দৌড়ানো - হাঁটা - সাইক্লিং - হাইকিং - সাঁতার - রোয়িং - শক্তি প্রশিক্ষণ - যোগব্যায়াম - ধ্যান - ডায়েট - উপবাস - সার্কিট - অ্যাপ অ্যাপ - ব্রাউজার - Tor-এর মাধ্যমে লোড হচ্ছে। উন্মুক্ত ওয়েব ব্যবহার করতে ট্যাপ করুন। - উন্মুক্ত ওয়েবের মাধ্যমে লোড হচ্ছে। Tor ব্যবহার করতে ট্যাপ করুন। - প্রিয় - প্রিয় অ্যাপ - প্রিয়তে যোগ করুন - প্রিয় থেকে সরিয়ে দিন - Tor-এর মাধ্যমে লোড হয়। - উন্মুক্ত ওয়েবের মাধ্যমে লোড হয়। - relay-তে প্রকাশিত হয়েছে - একটি ফাইল আপলোড করা হয়েছে - একটি পেমেন্ট করা হয়েছে - সেই অ্যাপটি এখনো লোড হয়নি। একটু পরে আবার চেষ্টা করুন। - সাম্প্রতিক nApplet অনুমতি এখনো কোনো nApplet অনুমতি নেই আপনি nApplet-গুলোকে যে অনুমতি দেবেন সেগুলো এখানে দেখা যাবে। @@ -280,46 +25,11 @@ শেল - পরিচয় - কীবোর্ড অ্যাকশন - Relay - স্টোরেজ - পেমেন্ট - নেটওয়ার্ক - আপলোড কোন সক্ষমতা উপলব্ধ তা জিজ্ঞেস করুন - আপনার পাবলিক কী পড়ুন - কীবোর্ড শর্টকাট বাঁধুন - আপনার ইভেন্ট পড়ুন, সাইন করুন এবং প্রকাশ করুন - এর নিজস্ব প্রাইভেট স্টোরেজ - Lightning ইনভয়েস পরিশোধ করুন - ওয়েব এবং Blossom রিসোর্স আনুন - আপনার মিডিয়া সার্ভারে ফাইল আপলোড করুন - থিম - বিজ্ঞপ্তি - মেসেজিং - আপনার অ্যাপের রঙের সাথে মেলান - আপনাকে বিজ্ঞপ্তি দেখান - অন্য napplet-গুলোর সাথে বার্তা বিনিময় করুন সক্ষমতা: %1$s - এই nApplet আপনার পাবলিক কী পড়তে চায়। - এই nApplet আপনার প্রোফাইল এবং অ্যাকাউন্ট ডেটা পড়তে চায়। - এই nApplet আপনার হয়ে একটি কাইন্ড %1$d ইভেন্ট সাইন এবং প্রকাশ করতে চায়। - এই nApplet আপনার হয়ে একটি কাইন্ড %1$d ইভেন্ট সাইন এবং প্রকাশ করতে চায়: - এই nApplet আপনার হয়ে একটি এনক্রিপ্টেড ইভেন্ট পাঠাতে চায়। - এই nApplet আপনার relay-গুলো থেকে ইভেন্ট পড়তে চায়। - এই nApplet তার প্রাইভেট স্টোরেজ ব্যবহার করতে চায়। এই nApplet একটি Lightning ইনভয়েস পরিশোধ করতে চায়। - এই nApplet একটি ওয়েব রিসোর্স আনতে চায়। - এই nApplet আপনার মিডিয়া সার্ভারে একটি ফাইল আপলোড করতে চায়। - এই nApplet আপনাকে বিজ্ঞপ্তি দেখাতে চায়। - এই সাইটটি আপনার Nostr কী দিয়ে একটি কাইন্ড %1$d ইভেন্ট সাইন করতে চায়। - - এই nApplet %1$d sat-এর জন্য একটি Lightning ইনভয়েস পরিশোধ করতে চায়। - এই nApplet %1$d sats-এর জন্য একটি Lightning ইনভয়েস পরিশোধ করতে চায়। - - শর্টস - পাবলিক চ্যাট - ফলো প্যাক - লাইভ স্ট্রিম - হাত তুলুন - হাত নামান - মিউট করুন - আনমিউট করুন - বার্তা পাঠানো যায়নি - মাইক মিউট করুন - মাইক আনমিউট করুন - একটি রুম খোলা থাকলে অডিও চালু রাখে। - Nest সংযুক্ত - Nest — লাইভ - ফিরে যেতে ট্যাপ করুন। - থামুন - হাত তুলেছে - স্টেজে উঠেছে - কথা বলছে - দর্শক হিসেবে যোগ দিয়েছেন - নেস্ট ছেড়ে গেছেন - ছেড়ে যান - রুম বন্ধ হিসেবে চিহ্নিত করা যায়নি। যাইহোক ছেড়ে যাচ্ছি — রুম স্বয়ংক্রিয়ভাবে বন্ধ হবে। - - %1$d জন শ্রোতা - %1$d জন শ্রোতা - - এই বক্তাকে চুপ করান - এই বক্তাকে পুনরুদ্ধার করুন - অনুসরণ করুন - অনুসরণ বন্ধ করুন - মিউট করুন - মিউট বাতিল করুন - নেস্ট সার্ভার তালিকা সংরক্ষণ করা যায়নি। আবার চেষ্টা করুন। - নেস্ট সার্ভার - আপনার সার্ভার - kind-10112 রিপ্লেসযোগ্য ইভেন্ট হিসেবে সংরক্ষিত যাতে অন্য ক্লায়েন্টরা আপনার পছন্দ পড়তে পারে। - প্রস্তাবিত সার্ভার - বিল্ট-ইন পরামর্শ যা এক ট্যাপে আপনার তালিকায় যোগ করা যাবে। - ভিডিও - সংগীত - প্লেলিস্ট - এপিসোড - পডকাস্ট - - %1$d টি এপিসোড - %1$d টি এপিসোড - - নতুন মিউজিক ট্র্যাক - নতুন প্লেলিস্ট - - %1$d টি ট্র্যাক - %1$d টি ট্র্যাক - - সর্বজনীন বুকমার্কে যুক্ত করুন - সর্বজনীন বুকমার্ক থেকে সরিয়ে দিন - প্রোফাইলে পিন করুন - প্রোফাইল থেকে আনপিন করুন - নতুন বুকমার্ক তালিকা - বুকমার্ক তালিকার মেটাডেটা - হ্যাশট্যাগ সেট - নতুন আগ্রহ সেট - নাম পরিবর্তন করুন - ব্যক্তিগত করুন: শুধুমাত্র বিজ্ঞাপিত ব্যবহারকারীদের কাছে নোট গিফট-র‍্যাপ করুন - পাবলিক করুন - ব্যক্তিগত নোটের উত্তর সবসময় ব্যক্তিগত থাকে - দৃশ্যমান এখনো কোনো প্রাপক নেই: শুধুমাত্র আপনি এই নোট দেখতে পাবেন। শেয়ার করতে লোক যোগ করুন। যোগ করুন বিজ্ঞপ্তি থেকে ব্যবহারকারী সরান বিজ্ঞাপনের জন্য ব্যবহারকারী অনুসন্ধান ও যোগ করুন - বুকমার্ক তালিকার মেটাডেটা Nostr-এ যে কেউ দেখতে পারে। শুধুমাত্র আপনার প্রাইভেট সদস্যরা এনক্রিপ্টেড। - পাবলিকে সরান - প্রাইভেটে সরান - টপ আপ & Zap পাঠান - Zap পাঠান - %2$s-এ %1$s sats টপ আপ করুন এবং %3$s-কে %4$s sats zap করুন · ফি ≈ %5$s sats - বিকল্প %s - (০–১০০)% - একক পছন্দ - একাধিক পছন্দ - ভোট দিতে অক্ষম - পোল নতুন ভোটের জন্য বন্ধ - এই জাতীয় পোলে একজন ব্যবহারকারী শুধুমাত্র একটি করেই ভোট দিতে পারবেন - পোল-রচয়িতারা নিজেদের পোলে ভোট দিতে পারবেন না। - এটি কী বোঝায়? - ঐ পোস্ট এবং এই আধেয়র বিষয়বস্তু অভিন্ন - এই আধেয়র বিষয়বস্তু পরিবর্তিত হয়েছে। লেখক হয়তো পরিবর্তনটি দেখেন নি বা অনুমোদন করেন নি - মিডিয়া যোগ করুন - ছবি যোগ করুন - ভিডিও যোগ করুন - নথি যোগ করুন - ফাইল সার্ভার - এই ফাইল আপলোড করতে একটি সার্ভার বেছে নিন - মিডিয়া সার্ভার আপনার পছন্দের মিডিয়া আপলোড সার্ভার সেট করুন। প্রস্তাবিত মিডিয়া সার্ভার Amethyst-এর ডিফল্ট তালিকা। আপনি এগুলো আলাদাভাবে বা তালিকা হিসেবে যোগ করতে পারেন। - পেমেন্ট লক্ষ্যমাত্রা - বিভিন্ন নেটওয়ার্কের জন্য পেমেন্ট ঠিকানা যোগ করুন (যেমন bitcoin, lightning, ethereum)। - এই পেমেন্ট পরিচালনার জন্য কোনো অ্যাপ পাওয়া যায়নি। একটি সামঞ্জস্যপূর্ণ ওয়ালেট ইনস্টল করুন। - %1$s পেমেন্ট পরিচালনার জন্য কোনো অ্যাপ ইনস্টল নেই। একটি সামঞ্জস্যপূর্ণ ওয়ালেট ইনস্টল করুন। - পেমেন্ট খুলতে অক্ষম - গোপনীয়তার বিকল্প - অনুসৃত সকলেরা - সকল ব্যবহারকারী ফলোস - ডিফল্ট ফলো তালিকা - আমার আশেপাশে - বৈশ্বিক - কিউরেটেড - আমার - নিঃশব্দ তালিকা - নতুন ফলো তালিকা - নতুন ফলো প্যাক - তালিকা সম্পাদনা করুন - ডিফল্ট পোর্ট হলো 9050 - Orbot এর Socks পোর্ট - সক্রিয় Tor ইঞ্জিন - অভ্যন্তরীণ সংস্করণ বা Orbot ব্যবহার করুন - Tor/গোপনীয়তা প্রিসেট - নিচের সকল সেটিংস দ্রুত পরিবর্তন করুন - যেকোনো .onion url-এর জন্য Tor ব্যবহার করুন - DM পাঠাতে ও গ্রহণ করতে Tor বাধ্যতামূলক করুন - অবিশ্বস্ত Relays - আউটবক্স/ইনবক্স relays-এ Tor বাধ্যতামূলক করুন - বিশ্বস্ত Relays - আপনার তালিকার সকল relays-এ Tor বাধ্যতামূলক করুন - প্রোফাইল ছবি - প্রোফাইল ছবি লোড করার সময় Tor বাধ্যতামূলক করুন - URL প্রিভিউ - URL প্রিভিউ লোড করার সময় Tor বাধ্যতামূলক করুন - ছবি - ছবি লোড করার সময় Tor বাধ্যতামূলক করুন - ভিডিও - ভিডিও লোড করার সময় Tor বাধ্যতামূলক করুন - অর্থ পরিচালনা - Zap, Lightning এবং Cashu ট্রান্সফারে Tor বাধ্যতামূলক করুন - Nostr ঠিকানা যাচাই - NIP-05 ঠিকানা যাচাই করার সময় Tor বাধ্যতামূলক করুন - মিডিয়া আপলোড - কন্টেন্ট আপলোড করার সময় Tor বাধ্যতামূলক করুন - অভ্যন্তরীণ - বন্ধ - বেসিক - ডিফল্ট - মিডিয়া ছাড়া সব - সম্পূর্ণ গোপনীয়তা - পছন্দমতন - সার্ভারের প্রয়োজন হলে Tor ব্যবহার করুন - এলোমেলো relays থেকে আপনার IP লুকান - ছবি ও ভিডিও ছাড়া সব কিছু থেকে আপনার IP লুকান - সকল সংযোগে আপনার IP লুকান - নিজেই তৈরি করুন - ব্যক্তিগত বার্তাসমূহ - যখন একটি ব্যক্তিগত বার্তা আসে তখন আপনাকে অবহিত করে - জ্যাপ গৃহীত হয়েছে - কেউ জ্যাপ পাঠালে আপনাকে অবহিত করে - %1$s স্যাট - %1$s থেকে - %1$s এর জন্য - উত্তর দিন - পঠিত চিহ্নিত করুন - নতুন বার্তা - নতুন Zap - প্রতিক্রিয়া - কেউ আপনার পোস্টে প্রতিক্রিয়া জানালে আপনাকে জানায় - %1$s আপনার পোস্টে প্রতিক্রিয়া জানিয়েছে - %1$s-এর জন্য - নতুন প্রতিক্রিয়া - দাবা - দাবা খেলার ঘটনা সম্পর্কে আপনাকে জানায় - %1$s আপনার দাবা চ্যালেঞ্জ গ্রহণ করেছে - %1$s চাল দিয়েছে — আপনার পালা - দাবার আপডেট - উত্তরসমূহ - কেউ আপনার পোস্টে উত্তর দিলে আপনাকে জানায় %1$s উত্তর দিয়েছে বিষয়ে: %1$s - নতুন উত্তর - উল্লেখ - কেউ পোস্টে আপনাকে উল্লেখ বা উদ্ধৃত করলে আপনাকে জানায় - %1$s আপনাকে উল্লেখ করেছে - নতুন উল্লেখ @@ -545,36 +81,6 @@ - আসা কল - ইনকামিং ভয়েস ও ভিডিও কলের বিজ্ঞপ্তি - ইনকামিং কল - ইনকামিং ভয়েস কল… - ইনকামিং ভিডিও কল… - %1$s-এর সাথে কল - কলসমূহ - চলমান কলের বিজ্ঞপ্তি - রাখুন - গ্রহণ করুন - প্রত্যাখ্যান করুন - মিউট করুন - আনমিউট করুন - ক্যামেরা চালু - ক্যামেরা বন্ধ - স্পিকার - ইয়ারপিস - ভয়েস কল শুরু করতে Amethyst-এর মাইক্রোফোনের অ্যাক্সেস প্রয়োজন। অ্যাপ সেটিংসে এটি সক্ষম করুন। - ভিডিও কল শুরু করতে Amethyst-এর ক্যামেরা ও মাইক্রোফোনের অ্যাক্সেস প্রয়োজন। অ্যাপ সেটিংসে এগুলো সক্ষম করুন। - কল সেটিংস - রিয়েল-টাইম বিজ্ঞপ্তির জন্য আপনার ইনবক্স relays-এর সাথে সংযোগ সক্রিয় রাখে - Amethyst বিজ্ঞপ্তি সক্রিয় - - %1$d টি ইনবক্স relay-তে সংযুক্ত - %1$d টি ইনবক্স relay-তে সংযুক্ত - - - %1$d টি relay-তে সংযুক্ত - %1$d টি relay-তে সংযুক্ত - - ইনবক্স relays-এ সংযুক্ত হচ্ছে… সর্বদা-চালু বিজ্ঞপ্তি সেবা তাৎক্ষণিক বিজ্ঞপ্তি প্রদানের জন্য আপনার ইনবক্স relays-এর সাথে স্থায়ী সংযোগ বজায় রাখে। একটি চলমান বিজ্ঞপ্তি দেখায়। বেশি ব্যাটারি ব্যবহার করে কিন্তু নিশ্চিত করে যে কোনো বার্তা মিস হবে না। - ফলো অনুযায়ী বিজ্ঞপ্তি ভাগ করুন - দুটি বিজ্ঞপ্তি ট্যাব দেখান — Following (যাদের আপনি ফলো করেন) এবং Everyone। অপঠিত সূচক শুধুমাত্র আপনি যাদের ফলো করেন তাদের কার্যকলাপের জন্য জ্বলে। - বার্তা দেখান - বিজ্ঞপ্তি ট্যাবে সরাসরি ও গ্রুপ বার্তা অন্তর্ভুক্ত করুন। বার্তাগুলো শুধুমাত্র বার্তা ট্যাবে রাখতে বন্ধ করুন। - অবহিত করুন: - আজ - লুকান - দেখান - সতর্ক করুন - স্প্যাম ফিল্টার করুন - অপরিচিতদের পোস্ট লুকায় যা ৫ বা তার বেশি বার হুবহু একই ছিল - আমার ইভেন্টে ক্লায়েন্ট ট্যাগ যোগ করুন - সক্ষম করলে, Amethyst আপনার প্রকাশিত ইভেন্টে একটি NIP-89 ক্লায়েন্ট ট্যাগ যোগ করে। - রিপোর্টে সতর্ক করুন - পোস্ট বা প্রোফাইলে আপনার ফলো করা লোকদের রিপোর্ট থাকলে সতর্কবার্তা দেখায় - কমিউনিটি নিয়ম লঙ্ঘনকারী পোস্ট লুকান - কমিউনিটি NIP-9B নিয়ম দলিল প্রকাশ করলে এবং কোনো ইভেন্ট তা লঙ্ঘন করলে কমিউনিটি ফিড থেকে সেই পোস্ট বাদ দেয়। কমিউনিটির কোনো কাঠামোবদ্ধ নিয়ম না থাকলে কোনো প্রভাব নেই। - ফিল্টারিং পছন্দ - ব্লক করা কন্টেন্ট - আপনি এখনো কোনো ব্যবহারকারীকে ব্লক করেননি। - এই সেশনে কোনো অ্যাকাউন্টকে স্প্যাম হিসেবে চিহ্নিত করা হয়নি। - কোনো লুকানো শব্দ নেই। এটি ধারণকারী পোস্ট লুকাতে নিচে একটি শব্দ যোগ করুন। - প্রতিক্রিয়ার কোনো ধরন বেছে নেওয়া হয়নি। পরিবর্তন করতে দীর্ঘক্ষণ চাপুন - রিলে থেকে পড়ুন - রিলেতে লিখুন - এই relay-তে পাঠানো বাইটের পরিমাণ, ফিল্টার ও ইভেন্ট সহ - এই relay থেকে প্রাপ্ত বাইটের পরিমাণ, ফিল্টার ও ইভেন্ট সহ - গোপনীয়তা নীতি - শিশু সুরক্ষা মান - সম্পর্কে & আইনি - ক্যাশু টোকেন - কোনো বিজলি-ঠিকানা সেট করা নেই - রিলেগুলি - ফলো প্যাক - পড়ার তালিকা - ফিড অ্যালগরিদম - মার্কেটপ্লেস - লাইভ স্ট্রিম - কমিউনিটি - বার্তালাপগুলি - সংবেদনশীল আধেয় - সংবেদনশীল আধেয় দেখানোর আগে এ সম্পর্কিত সতর্কতা প্রদর্শন করে - UI পছন্দ অ্যাপ পছন্দ - অনুবাদ - প্রতিক্রিয়া - সেটিংস - অ্যাকাউন্ট সেটিংস - অ্যাপ সেটিংস - বিপদজনক এলাকা - Marmot স্টেট রিসেট করুন - Marmot স্টেট রিসেট হয়েছে। - Marmot স্টেট রিসেট করতে ব্যর্থ: %1$s - সবসময় - আনমিটার্ড WiFi - কখনো না - সম্পূর্ণ - সরলীকৃত - পারফরম্যান্স - ক্লাসিক - আধুনিক - সিস্টেম - উজ্জ্বল - আঁধারি - থিম - ছবির পূর্বরূপ - ভিডিও প্লেব্যাক - ভিডিও স্বয়ংক্রিয়ভাবে চালান - URL-এর পূর্বরূপ - ইমারসিভ স্ক্রোলিং - স্ক্রোল করার সময় নেভিগেশন বার লুকান - UI মোড - পোস্ট শৈলী চয়ন করুন - প্রোফাইল গ্যালারি স্টাইল - গ্যালারি স্টাইল বেছে নিন - স্প্যামাররা - মৌন করে রাখা। এটি তুলে নিতে ক্লিক করুন - শব্দ চালু আছে। মৌন করতে ক্লিক করুন - %d সেকেন্ড পিছিয়ে যান - %d সেকেন্ড এগিয়ে যান - লোকেশন-এক্সক্লুসিভ পোস্ট - শুধুমাত্র লোকেশনের ফলোয়াররা এটি দেখতে পাবেন। আপনার সাধারণ ফলোয়াররা এটি দেখতে পাবেন না। - - %1$d টি ট্র্যাক - %1$d টি ট্র্যাক - - - +%1$d টি আরও ট্র্যাক - +%1$d টি আরও ট্র্যাক - - একটি কভার ছবি আপলোড করুন - এই ট্র্যাকের আর্টওয়ার্কের জন্য একটি বর্গাকার ছবি বেছে নিন। - একটি অডিও ফাইল আপলোড করুন - একটি MP3, WAV, বা FLAC বেছে নিন। সেভ করলে এটি আপনার মিডিয়া সার্ভারে আপলোড হবে। - কভার + অডিও আপলোড করা হচ্ছে এবং প্রকাশিত হচ্ছে। আপনি স্ক্রিন ছেড়ে গেলেও এটি চলতে থাকবে। - প্লেলিস্ট সম্পাদনা করুন - একটি কভার ছবি আপলোড করুন - এই প্লেলিস্টের আর্টওয়ার্কের জন্য একটি বর্গাকার ছবি বেছে নিন। - কভার আপলোড করা হচ্ছে এবং প্রকাশিত হচ্ছে। আপনি স্ক্রিন ছেড়ে গেলেও এটি চলতে থাকবে। সর্বজনীন গ্রুপ ব্যক্তিগত - বিষয় - আপলোড করা যাচ্ছে না - প্রথমে বার্তার গন্তব্য লিখুন - ওয়ালেট পাওয়া যায়নি - Amethyst কোনো ওয়ালেট অ্যাপ খুঁজে পায়নি যা Nostr Wallet Connect (NWC) সমর্থন করে। -\n\nআপনি যা করতে পারেন: -\n\t১. NWC সমর্থন যাচাই করুন: নিশ্চিত করুন যে আপনার পছন্দের ওয়ালেট অ্যাপ Nostr Wallet Connect-এর সাথে সামঞ্জস্যপূর্ণ। -\n\t২. সংযোগ তৈরি করুন: আপনার ওয়ালেট অ্যাপে যান এবং একটি নতুন NWC সংযোগ তৈরি করুন। -\n\t৩. Amethyst-এ লিঙ্ক করুন: আপনার ওয়ালেট সাধারণত তিনটি বিকল্প দেবে: -\n\t\t৩.১ স্বয়ংক্রিয় লিঙ্ক: একটি বোতাম যা স্বয়ংক্রিয়ভাবে Amethyst খুলে সংযুক্ত করবে। যদি তাই হয়, সেই বোতামে ক্লিক করুন, Amethyst খুলুন এবং নতুন স্ক্রিনে সেভ চাপুন। -\n\t\t৩.২ ম্যানুয়াল লিঙ্ক: একটি Connection URI যা কপি করে এই স্ক্রিনের পেস্ট আইকনে ক্লিক করে সরাসরি ইনপুট করতে পারবেন। -\n\t\t৩.৩ QR কোড: ওয়ালেট একটি QR কোড তৈরি করে যা আপনি এই স্ক্রিনের QR কোড বোতাম থেকে পড়তে পারবেন। - - আঁধারি, উজ্জ্বল কিংবা সিস্টেমের থিম - স্বয়ংক্রিয়ভাবে ছবি এবং GIF লোড করুন - স্বয়ংক্রিয়ভাবে ভিডিও এবং GIF চালু করুন - স্ক্রিনে দৃশ্যমান হলে স্বয়ংক্রিয়ভাবে ভিডিও চালান - URL এর পূর্বরূপ দেখান - ক্লিপবোর্ডে কপি করুন - ক্লিপবোর্ডে কপি হয়েছে - শেয়ার বা সেভ করুন DM হিসেবে পাঠান - মিডিয়া যোগ হয়েছে - আপনার প্রোফাইল গ্যালারিতে মিডিয়া যোগ হয়েছে - জ্যাপ পাঠানো যায় নি - Lightning সেটআপ নেই - %1$s ব্যবহারকারীর স্যাট গ্রহণের উপযোগী কোনো বিজলি ঠিকানা সেট করা নেই - স্বাক্ষরের অ্যাপ খোলা যাচ্ছে না - সাইনার অ্যাপটি পাওয়া যায়নি। অ্যাপটি আনইনস্টল হয়নি কিনা পরীক্ষা করুন - এই ভিডিওটি চালানো যাচ্ছে না - কোডেক বা ফরম্যাটটি এই ডিভাইসে সমর্থিত নয় (%1$s)। আপনার ব্রাউজারে খুলে দেখুন। - ব্রাউজারে খুলুন - সাইন অনুরোধ প্রত্যাখ্যাত - নিশ্চিত করুন যে সাইনার অ্যাপ্লিকেশনটি এই লেনদেন অনুমোদন করেছে - Lightning ইনভয়েস পরিশোধ করার জন্য কোনো ওয়ালেট পাওয়া যায়নি (ত্রুটি: %1$s)। Zap ব্যবহার করতে একটি Lightning ওয়ালেট ইনস্টল করুন - Lightning ইনভয়েস পরিশোধ করার জন্য কোনো ওয়ালেট পাওয়া যায়নি। Zap ব্যবহার করতে একটি Lightning ওয়ালেট ইনস্টল করুন - Blossom লিংক খোলা যাচ্ছে না - Blossom অ্যাপ পাওয়া যায়নি। এই ফাইলটি দেখতে একটি স্থানীয় Blossom অ্যাপ ইনস্টল করুন - লুকানো শব্দ - মিউট করা থ্রেড - কোনো মিউট করা থ্রেড নেই - প্রোফাইল ছবি - প্রোফাইল ছবি দেখান - ইনভয়েস পরিশোধ করা যায়নি - উইথড্র করা যায়নি - Cashu রিডিম করা যায়নি - Mint নিম্নলিখিত ত্রুটি বার্তা প্রদান করেছে: %1$s - Cashu প্রাপ্ত হয়েছে - %1$s sats আপনার ওয়ালেটে পাঠানো হয়েছে। (ফি: %2$s sats) - সিস্টেমে কোনো সামঞ্জস্যপূর্ণ Cashu ওয়ালেট পাওয়া যায়নি - প্রাপকের সার্ভার থেকে ইনভয়েস আনতে পারছে না - আপনার wallet connect প্রোভাইডার নিম্নলিখিত ত্রুটি ফিরিয়ে দিয়েছে: %1$s - Lightning Address \"%1$s\" থেকে LNUrl তৈরি করা যায়নি। ব্যবহারকারীর সেটআপ পরীক্ষা করুন - %1$s থেকে ইনভয়েস আনতে পারেনি: %2$s - %1$s থেকে JSON পার্স করতে ত্রুটি। ব্যবহারকারীর lightning সেটআপ পরীক্ষা করুন - %1$s এর প্রতিক্রিয়া থেকে Callback URL পাওয়া যায়নি - %2$s থেকে ইনভয়েসের পরিমাণ ভুল (%1$s sats)। এটি %3$s হওয়া উচিত ছিল - Zap পাঠানোর আগে Lightning ইনভয়েস তৈরি করতে অক্ষম। প্রাপকের lightning ওয়ালেট নিম্নলিখিত ত্রুটি পাঠিয়েছে: %1$s - শুধু-পড়ার ব্যবহারকারী - কোন প্রতিক্রিয়া সেটআপ - বিজ্ঞপ্তি - ডেলিভারি - অ্যাপে প্রদর্শন - বিভাগ - %1$s এর বার্তা - হাই %1$s, এটা কি এখনও পাওয়া যায়? - পোশাক - আনুষাঙ্গিক - ইলেকট্রনিক্স - আসবাবপত্র - সংগ্রহযোগ্য বস্তু - বই - পোষা প্রাণী - খেলাধুলা - ফিটনেস - শিল্পকলা - কারুশিল্প - নীড় - দপ্তর - খাদ্য - বিবিধ - অন্যান্য - মিডিয়া আপলোড করতে ব্যর্থ - সংকুচিত ফাইলটি খোলা যায়নি - আপলোড ত্রুটি: %1$s - আপলোডের পরে সার্ভার কোনো URL প্রদান করেনি - সার্ভার থেকে আপলোড করা মিডিয়া ডাউনলোড করা যায়নি - আপলোডের পরে ডাউনলোড করা ফাইল পরীক্ষা করা যায়নি: %1$s - %1$s তে আপলোড করতে ব্যর্থ: %2$s - মুছে দিতে ব্যর্থ: %1$s - NIP-95 এর জন্য মিডিয়া অনেক বড় - ফাইল এনক্রিপ্ট করুন - গোপনীয়তার জন্য আপলোডের আগে ফাইল এনক্রিপ্ট করুন। কিছু সার্ভার বিনামূল্যের অ্যাকাউন্টে এনক্রিপ্টেড ফাইল গ্রহণ নাও করতে পারে। - এনক্রিপ্টেড আপলোড ব্যর্থ হয়েছে - অনেক সার্ভার বিনামূল্যের অ্যাকাউন্টে এনক্রিপ্টেড ফাইল গ্রহণ করে না। আপনি এনক্রিপশন ছাড়া আবার চেষ্টা করতে পারেন। - H.265/HEVC কোডেক ব্যবহার করুন - ছোট ফাইলে ভালো মান, কিন্তু সব ডিভাইস H.265 প্লেব্যাক সমর্থন করে না। - GIF কে MP4 তে রূপান্তর করুন - ছোট ফাইল সাইজ এবং ভালো প্লেব্যাক সামঞ্জস্যের জন্য অ্যানিমেটেড GIF কে MP4 ভিডিওতে রূপান্তর করে। - ব্যক্তিগত মেটাডেটা সরান - আপলোডের আগে সমর্থিত মিডিয়া ফাইল থেকে ব্যক্তিগত মেটাডেটা সরানোর চেষ্টা করে - মেটাডেটা সরানো যায়নি - মিডিয়া থেকে ব্যক্তিগত মেটাডেটা সরাতে ব্যর্থ। আপলোড বাতিল করা হয়েছে। - আপলোড বাতিল - AVIF থেকে মেটাডেটা সরানো যায়নি: %1$s - নীড় - আবিস্কার - বার্তা - অবহিতকরন - ক্যালেন্ডার - ক্যালেন্ডার তালিকা - দাবা - ওয়ালেট - Cashu ওয়ালেট (NIP-60) Nutzap কী (উন্নত) NIP-61 nutzap গ্রহণ করতে ব্যবহৃত একটি পৃথক প্রাইভেট কী। এটি আপনার Nostr পরিচয় কী নয়। একটি নতুন কী তৈরি করুন P2PK প্রাইভেট কী (hex) - Mints সম্পাদনা করুন পরিবর্তন সংরক্ষণ করুন - - +%1$d টি আরও - +%1$d টি আরও - - - %1$d জন অন্য ব্যক্তি সুপারিশ করেছেন - %1$d জন অন্য ব্যক্তি সুপারিশ করেছেন - - জনপ্রিয় mints - মিলে যাওয়া mints - প্রাপ্ত - পাঠানো - %1$s-এর আপনার kind:38000 সুপারিশের জন্য একটি ডিলিট অনুরোধ প্রকাশ করুন। NIP-09 মেনে চলা relay গুলো এটি সরিয়ে দেবে। - %2$s প্রমাণ জুড়ে %1$s sats পুনরুদ্ধার করা হয়েছে। - %1$s sat + সর্বোচ্চ %2$s sat ফি দেবেন? - Nutzap ব্যর্থ হয়েছে - নোটে কোনো প্রাপক pubkey নেই - Nutzap পাবলিক এবং এই প্রাইভেট নোটটি প্রকাশ করে দেবে। পরিবর্তে একটি Lightning zap ব্যবহার করুন। - ইভেন্ট রেফারেন্স তৈরি করা যাচ্ছে না - ইনভয়েস পরিশোধের জন্য অপেক্ষা করা হচ্ছে… - mint পরীক্ষা করা হচ্ছে… - ধীর - স্বাভাবিক - দ্রুত - ~১ ঘণ্টা - ~৩০ মিনিট - ~১০ মিনিট - - %1$s sats পাঠান, %2$d ভাগে - %1$s sats পাঠান, %2$d ভাগে - - - এই নোটের %1$d-ভাগ Zap স্প্লিট ব্যবহার করুন - এই নোটের %1$d-ভাগ Zap স্প্লিট ব্যবহার করুন - - - %1$d প্রাপকের মধ্যে বিভাজন - %1$d প্রাপকের মধ্যে বিভাজন - - - %1$d জন Lightning-ঠিকানা-শুধুমাত্র প্রাপককে বাদ দেওয়া হচ্ছে — অন-চেইনের জন্য ঠিকানা তৈরি করতে Nostr pubkey প্রয়োজন। - %1$d জন Lightning-ঠিকানা-শুধুমাত্র প্রাপককে বাদ দেওয়া হচ্ছে — অন-চেইনের জন্য ঠিকানা তৈরি করতে Nostr pubkey প্রয়োজন। - - ব্যালেন্স লোড হচ্ছে - লেনদেন তৈরি হচ্ছে - সই করা হচ্ছে - সম্প্রচার করা হচ্ছে - রসিদ প্রকাশিত হচ্ছে - Bitcoin চেইন ব্যাকএন্ড কনফিগার করা নেই - আপনার Bitcoin ব্যালেন্স লোড করা যায়নি - লেনদেন তৈরি করা যায়নি - একটি প্রাপকের অংশ ডাস্টের নিচে - লেনদেনে সই করা যায়নি - লেনদেন সম্প্রচার করা যায়নি - পেমেন্ট পাঠানো হয়েছে, কিন্তু zap রসিদ প্রকাশিত হয়নি - - পেমেন্ট পাঠানো হয়েছে (%2$d এর মধ্যে %1$d রসিদ প্রকাশিত), কিন্তু পরবর্তী রসিদ প্রকাশ করা সম্ভব হয়নি - পেমেন্ট পাঠানো হয়েছে (%2$d এর মধ্যে %1$d রসিদ প্রকাশিত), কিন্তু পরবর্তী রসিদ প্রকাশ করা সম্ভব হয়নি - - ফলো আমদানি করুন - নতুন পণ্য - নতুন নিবন্ধ - নতুন ক্যালেন্ডার ইভেন্ট - ক্যালেন্ডার ইভেন্ট সম্পাদনা করুন - নতুন ক্যালেন্ডার - ক্যালেন্ডার সম্পাদনা করুন - ফিড - মাস - সপ্তাহ - দিন - - %1$s, %2$d টি ইভেন্ট - %1$s, %2$d টি ইভেন্ট - - এখন চলছে - %1$s · শেষ হবে %2$s - ক্যালেন্ডার ইভেন্ট শেয়ার করুন - ক্যালেন্ডার রিমাইন্ডার - আপনি যে ইভেন্টে যোগ দিচ্ছেন সেটি শুরু হওয়ার আগে সতর্কতা। - ক্যালেন্ডার ইভেন্ট - - %1$d মিনিটের মধ্যে শুরু হবে - %1$d মিনিটের মধ্যে শুরু হবে - - ছবি আপলোড ব্যর্থ হয়েছে - বেছে নেওয়া ছবিটি আপলোড করা যায়নি। আবার চেষ্টা করুন অথবা একটি URL পেস্ট করুন। - ক্যালেন্ডার রিমাইন্ডার - রিমাইন্ডার পাঠান - আপনি যে ইভেন্টে যোগ দিচ্ছেন সেটি শুরু হওয়ার আগে একটি বিজ্ঞপ্তি আসে। - - %1$d মিনিট - %1$d মিনিট - - ম্যাপে খুলুন - লিঙ্ক খুলুন - এই পোস্টের সব প্রতিক্রিয়া খুলুন - এই পোস্টের সব প্রতিক্রিয়া বন্ধ করুন - নিচের নেভিগেশন বার পুনর্বিন্যাস করতে টেনে আনুন। নিচের বারে আইটেম যোগ বা সরাতে টগল করুন। শূন্য আইটেম থাকলে নিচের বার লুকানো থাকে। পুনর্বিন্যাস করুন হোম স্ক্রিনে কোন ট্যাবগুলো দেখাবে তা বেছে নিন। মাত্র একটি ট্যাব সক্রিয় থাকলে ট্যাব বার লুকানো থাকে। - সবকিছু - প্রোফাইল UI ব্যবহারকারীর প্রোফাইল স্ক্রিনে কোন বিভাগ এবং ফিড দেখাবে তা বেছে নিন। সব বিকল্প ডিফল্টভাবে সক্রিয় থাকে। - প্রোফাইল ব্যাজ - অ্যাপ সুপারিশ - Zap প্রাপ্তি ফিড - অনুসরণকারীদের ফিড - প্রতিক্রিয়া সারি - ভিডিও প্লেয়ার বোতাম - অডিও ভিজ্যুয়ালাইজার - মেয়াদ শেষের তারিখ - ঠিকানা সঠিক নয় - Amethyst একটি URI খোলার জন্য পেয়েছে কিন্তু সেই URI টি অবৈধ ছিল: %1$s - DM ইনবক্স Relay - সার্চ Relay - ভালো বিকল্পগুলো হলো:\n%1$s - আউটবক্স Relay - ইনবক্স Relay - Relay সেটিংস - পাবলিক আউটবক্স/হোম Relay - ব্যবহারকারী এই relay গুলোতে তার কন্টেন্ট পোস্ট করছেন - এই relay ধরনটি আপনার সমস্ত কন্টেন্ট সংরক্ষণ করে। Amethyst এখানে আপনার পোস্ট পাঠাবে এবং অন্যরা আপনার কন্টেন্ট খুঁজে পেতে এই relay গুলো ব্যবহার করবে। ১–৩টি relay ঢোকান। সেগুলো ব্যক্তিগত relay, পেইড relay বা পাবলিক relay হতে পারে। - পাবলিক ইনবক্স Relay - ব্যবহারকারী এই relay গুলোতে বিজ্ঞপ্তি পাচ্ছেন - এই relay ধরনটি আপনার পোস্টে সব উত্তর, মন্তব্য, পছন্দ এবং Zap গ্রহণ করে। সেগুলো পেইড বা বিনামূল্যে relay হতে পারে। relay অপারেটর কর্তৃক নির্ধারিত সীমা আপনি যে বিজ্ঞপ্তি পান তা ভালো এবং খারাপ উভয়ের জন্য সীমিত করতে পারে। উদাহরণস্বরূপ, যদি আপনি মন্তব্য স্প্যামের আক্রমণের শিকার হন, পেইড relay স্প্যাম ফিল্টার করতে পারে। ১–৩টি relay ঢোকান। - DM ইনবক্স Relay - ব্যবহারকারী এই relay গুলোতে DM পাচ্ছেন - আপনার প্রাইভেট ইনবক্স হিসেবে ১–৩টি relay ঢোকান। অন্যরা আপনাকে DM পাঠাতে এই relay গুলো ব্যবহার করবে। DM ইনবক্স relay যেকোনো বার্তা যেকারো কাছ থেকে গ্রহণ করা উচিত, কিন্তু শুধু আপনাকে ডাউনলোড করার অনুমতি দেওয়া উচিত। ভালো বিকল্পগুলো হলো:\n - inbox.nostr.wine (পেইড)\n - auth.nostr1.com (বিনামূল্যে)\n - you.nostr1.com (ব্যক্তিগত relay - পেইড) - KeyPackage Relay - Relay যেখানে আপনার MLS KeyPackages প্রকাশিত হয় (MIP-00)। অন্য ব্যবহারকারীরা আপনাকে Marmot গ্রুপ চ্যাটে আমন্ত্রণ জানাতে এই KeyPackages আনে। ১–৩টি relay ঢোকান যা আপনার কাছ থেকে KeyPackage ইভেন্ট গ্রহণ করে এবং পাবলিক রিড অনুমতি দেয়। - প্রাইভেট হোম Relay - এমন ১–৩টি relay ঢোকান যেখানে কেউ দেখতে পাবে না এমন ইভেন্ট সংরক্ষণ করা হবে, যেমন আপনার ড্রাফট এবং/অথবা অ্যাপ সেটিংস। আদর্শভাবে, এই relay গুলো হয় স্থানীয় অথবা প্রতিটি ব্যবহারকারীর কন্টেন্ট ডাউনলোড করার আগে প্রমাণীকরণের প্রয়োজন করে। - সংযুক্ত Relay - বর্তমানে ব্যবহৃত relay-এর তালিকা - সার্চ Relay - কন্টেন্ট বা ব্যবহারকারী সার্চ করার সময় ব্যবহার করার জন্য relay-এর তালিকা। কোনো বিকল্প না থাকলে ট্যাগিং ও সার্চ কাজ করবে না। নিশ্চিত করুন যে তারা NIP-50 সমর্থন করে। - স্থানীয় Relay - এই ডিভাইসে চলছে এমন relay-এর তালিকা। - স্থানীয় relay-এ প্রোফাইল ফরওয়ার্ড করুন - সব প্রাপ্ত প্রোফাইল (kind 0) ইভেন্ট আপনার স্থানীয় relay-এ পাঠান - বিশ্বস্ত Relay - Relay যেগুলোর জন্য Tor সংযোগের প্রয়োজন নেই বলে আপনি বিশ্বাস করেন - প্রিয় Relay ফিড - Relay যেগুলোতে আপনি প্রায়ই তাদের গ্লোবাল ফিড দেখতে যান - প্রক্সি Relay - অ্যাগ্রিগেটর relay যা অ্যাপটিকে আপনার ফিড ডাউনলোড করতে অবশ্যই ব্যবহার করতে হবে, যেমন filter.nostr.wine। এটি আউটবক্স মডেলকে প্রতিস্থাপন করে এবং অ্যাপটিকে শুধুমাত্র আপনার তালিকার relay গুলোতে সংযুক্ত করবে। - ব্রডকাস্ট Relay - Relay যেগুলো আপনার নোটগুলো অন্য সব relay-এ পুশ করতে বিশেষজ্ঞ, যেমন sendit.nosflare.com। Amethyst আপনার তৈরি সব নতুন ইভেন্টে এই relay যোগ করবে - ইন্ডেক্সার Relay - Relay যেগুলো সবার মেটাডেটা এবং relay তালিকা হোস্ট করতে বিশেষজ্ঞ, যেমন purplepag.es। Amethyst আপনার তালিকায় নেই এমন ব্যবহারকারীদের খুঁজে পেতে এই relay গুলো ব্যবহার করবে। - ব্লক করা Relay - Amethyst কখনও এই relay গুলোতে সংযুক্ত হবে না - relay সেটিংস এক্সপোর্ট করুন ওয়েব: ওভারভিউ সম্পর্কে লিঙ্ক মেইনটেইনার বিষয় - টাইমস্ট্যাম্প প্রমাণ - এই পোস্টটি %1$s-এর আগে কোনো এক সময়ে সাইন করা হয়েছিল তার প্রমাণ আছে। প্রমাণটি সেই তারিখ ও সময়ে Bitcoin ব্লকচেইনে স্ট্যাম্প করা হয়েছিল। - পোস্ট সম্পাদনা করুন - একটি ড্রাফট নোটে উত্তর দেওয়া সম্ভব নয় - একটি ড্রাফট নোট উদ্ধৃত করা সম্ভব নয় - একটি ড্রাফট নোটে প্রতিক্রিয়া জানানো সম্ভব নয় - একটি ড্রাফট নোট Zap করা সম্ভব নয় - ড্রাফট নোট - ব্যাড রিকোয়েস্ট - সার্ভার অনুরোধটি প্রক্রিয়া করতে পারছে না বা করবে না। - অননুমোদিত - ব্যবহারকারীর কাছে বৈধ প্রমাণীকরণ শংসাপত্র নেই - পেমেন্ট প্রয়োজন - অনুরোধ সম্পন্ন করতে সার্ভারের পেমেন্ট প্রয়োজন - নিষিদ্ধ - ব্যবহারকারীর অনুরোধ করার অ্যাক্সেস অধিকার নেই - পাওয়া যায়নি - সার্ভার অনুরোধ করা ঠিকানা খুঁজে পাচ্ছে না - পদ্ধতি অনুমোদিত নয় - সার্ভার অনুরোধ পদ্ধতি সমর্থন করে, কিন্তু লক্ষ্য রিসোর্স সমর্থন করে না - গ্রহণযোগ্য নয় - সার্ভার অনুরোধ পূরণ করে এমন কোনো কন্টেন্ট খুঁজে পাচ্ছে না। - প্রক্সি প্রমাণীকরণ প্রয়োজন - ব্যবহারকারীর কাছে বৈধ প্রমাণীকরণ শংসাপত্র নেই - রিকোয়েস্ট টাইমআউট - অন্য কারো জন্য অপেক্ষায় সার্ভারের সময় শেষ হয়েছে - দ্বন্দ্ব - রিসোর্সের সাথে দ্বন্দ্বের কারণে সার্ভার অনুরোধ পূরণ করতে পারছে না - চলে গেছে - অনুরোধ করা কন্টেন্ট সার্ভার থেকে স্থায়ীভাবে মুছে ফেলা হয়েছে এবং পুনরুদ্ধার করা হবে না - দৈর্ঘ্য প্রয়োজন - একটি নির্ধারিত প্রয়োজন করে বলে সার্ভার অনুরোধ প্রত্যাখ্যান করছে - প্রি-কন্ডিশন ব্যর্থ - হেডার ফিল্ডে অনুরোধের পূর্বশর্ত যা সার্ভার পূরণ করতে ব্যর্থ হয় - পেলোড অনেক বড় - অনুরোধটি সার্ভারের নির্ধারিত সীমার চেয়ে বড়, এবং সার্ভার এটি প্রক্রিয়া করতে অস্বীকার করছে - URI অনেক দীর্ঘ - ক্লায়েন্ট কর্তৃক অনুরোধ করা url সার্ভারের প্রক্রিয়া করার জন্য অনেক দীর্ঘ। - অসমর্থিত মিডিয়া টাইপ - অনুরোধটি এমন একটি মিডিয়া ফরম্যাট ব্যবহার করে যা সার্ভার সমর্থন করে না - রেঞ্জ পূরণ করা যায়নি - অনুরোধের Range হেডার ফিল্ডে নির্দেশিত মান সার্ভার পূরণ করতে পারছে না। - প্রত্যাশা ব্যর্থ - Expect রিকোয়েস্ট হেডার ফিল্ড দ্বারা নির্দেশিত প্রয়োজনীয়তা সার্ভার পূরণ করতে পারছে না - আপগ্রেড প্রয়োজন - ক্লায়েন্ট ভিন্ন প্রোটোকলে আপগ্রেড না করলে সার্ভার বর্তমান প্রোটোকল ব্যবহার করে অনুরোধ প্রক্রিয়া করতে অস্বীকার করছে। - অভ্যন্তরীণ সার্ভার ত্রুটি - সার্ভার একটি অপ্রত্যাশিত ত্রুটির সম্মুখীন হয়েছে এবং অনুরোধ সম্পন্ন করতে পারছে না - সমর্থিত নয় - সার্ভার অনুরোধ পূরণ করতে পারছে না বা অনুরোধের পদ্ধতি চিনতে পারছে না - ব্যাড গেটওয়ে - সার্ভার একটি গেটওয়ে হিসেবে কাজ করছে এবং হোস্ট থেকে অবৈধ প্রতিক্রিয়া পেয়েছে - সেবা অনুপলব্ধ - এটি প্রায়ই ঘটে যখন একটি সার্ভার অতিরিক্ত লোডে থাকে বা রক্ষণাবেক্ষণের জন্য বন্ধ থাকে - গেটওয়ে টাইমআউট - সার্ভার একটি গেটওয়ে বা প্রক্সি হিসেবে কাজ করছিল এবং প্রতিক্রিয়ার জন্য অপেক্ষায় সময় শেষ হয়ে গেছে - HTTP সংস্করণ সমর্থিত নয় - সার্ভার অনুরোধে HTTP সংস্করণ সমর্থন করে না - Variant Also Negotiates - সার্ভারে একটি অভ্যন্তরীণ কনফিগারেশন ত্রুটি রয়েছে - অপর্যাপ্ত স্টোরেজ - সার্ভারে অনুরোধটি সফলভাবে প্রক্রিয়া করার জন্য পর্যাপ্ত স্টোরেজ নেই - লুপ শনাক্ত হয়েছে - সার্ভার অনুরোধ প্রক্রিয়া করার সময় একটি অসীম লুপ শনাক্ত করেছে - নেটওয়ার্ক প্রমাণীকরণ প্রয়োজন - নেটওয়ার্কে অ্যাক্সেস করতে ক্লায়েন্টকে অবশ্যই প্রমাণীকৃত হতে হবে Blossom সার্ভার আপনি যত খুশি সার্ভার যোগ করুন। আপনার ছবি আপলোড করার সময় পরে কোনটি ব্যবহার করবেন তা বেছে নিতে পারবেন - একটি NIP-96 সার্ভার যোগ করুন - একটি Blossom সার্ভার যোগ করুন ডাউনলোড - ফাইল খুলতে ব্যর্থ হয়েছে - ফাইলটি খুলতে এবং ডাউনলোড করতে কোনো টরেন্ট অ্যাপ ইনস্টল নেই। - ইভেন্টে একটি ম্যাগনেট লিংক তৈরি করার জন্য পর্যাপ্ত তথ্য নেই - আমার তালিকা - ফিড - হ্যাশট্যাগ - আগ্রহের সেট - অবস্থান - কমিউনিটি - তালিকা - ফিড অ্যালগরিদম - সমস্ত পছন্দের ফিড অ্যালগরিদম - Relay - পছন্দের ফিড অ্যালগরিদম - ব্যক্তিগত বার্তা - পাবলিক বার্তা - ছবি শেয়ার করা যাচ্ছে না, পরে আবার চেষ্টা করুন… - ভিডিও শেয়ার করা যাচ্ছে না, পরে আবার চেষ্টা করুন… - ভিডিও ডাউনলোড করা হচ্ছে… - যে ভাষা থেকে অনুবাদ করবেন না - এখানে দেখানো ভাষাগুলি অনুবাদ করা হবে না। একটি ভাষা সরাতে এবং আবার অনুবাদ করতে এটি নির্বাচন করুন। - অনুবাদ করুন - বিষয়বস্তু কোন ভাষায় অনুবাদ করবেন তা বেছে নিন। - ভাষা প্রদর্শন পছন্দ - প্রতিটি অনুবাদিত ভাষা জোড়ার জন্য, কোন ভাষাটি প্রথমে দেখাবেন তা বেছে নিন। - বিরতি - চালান - এই বার্তাটি %1$s-এ অদৃশ্য হয়ে যাবে - ফলো তালিকার মেটাডেটা - ফলো তালিকার মেটাডেটা Nostr-এ যে কেউ দেখতে পারে। শুধুমাত্র আপনার ব্যক্তিগত সদস্যরা এনক্রিপ্টেড। - ফলো প্যাকের মেটাডেটা - ফলো প্যাকের মেটাডেটা Nostr-এ যে কেউ দেখতে পারে এবং নতুন ব্যবহারকারীদের জন্য স্টার্টআপ কিট হিসেবে প্রায়ই অনেক ওয়েবসাইটে প্রকাশিত হয়। - ফলো প্যাক সম্পাদনা করুন - প্রসারিত করুন - পুনরায় চেষ্টা করুন - প্রতিক্রিয়া - ভয়েস পোস্ট - ভয়েস রিপ্লাই - আউটবক্স Relay - অ্যাপ - অ্যাপ সুপারিশ - ব্যবহারকারীর সেটিংস - অডিও হেডার - অডিও ট্র্যাক - মিউজিক ট্র্যাক - মিউজিক প্লেলিস্ট - পডকাস্ট এপিসোড - পডকাস্ট শো - নির্মিত পডকাস্ট - পছন্দের পডকাস্ট - ব্যাজ পুরস্কার - ব্যাজ সংজ্ঞা - গৃহীত ব্যাজ সেট - প্রোফাইল ব্যাজ - ব্লক করা Relay - Blossom সার্ভার - Nests সার্ভার - প্রচার Relay - বুকমার্ক তালিকা - পুরনো বুকমার্ক তালিকা - দৈনিক অ্যাপয়েন্টমেন্ট - ক্যালেন্ডার - অ্যাপয়েন্টমেন্ট - অ্যাপয়েন্টমেন্ট RSVP - দাবা খেলা - দাবা Auth - পছন্দের Relay - দাবা চ্যালেঞ্জ - দাবা খেলা গ্রহণ - দাবা চাল - দাবা খেলার সমাপ্তি - দাবা ড্র প্রস্তাব - চ্যানেল সংজ্ঞা - চ্যানেল বার্তা লুকান - চ্যানেল তালিকা - চ্যানেল বার্তা - চ্যানেল মেটাডেটা - চ্যানেল ব্যবহারকারী মিউট - DM ফাইল - DM বার্তা - DM Relay - বিজ্ঞাপন - মন্তব্য - কমিউনিটি সংজ্ঞা - কমিউনিটি তালিকা - কমিউনিটি পোস্ট - ফলো তালিকা - মুছে ফেলা - ড্রাফট - ইমোজি প্যাক - ইমোজি প্যাক তালিকা - ক্ষণস্থায়ী চ্যাট - ক্ষণস্থায়ী চ্যাটরুম - ফাইল হেডার - প্রোফাইল গ্যালারি - ফাইল সার্ভার - ব্লব ডেটা - ব্লব হেডার - চিকিৎসা ডেটা - ফলো প্যাক - রিপোস্ট (16) - জিওহ্যাশ ফলো - গিফটর‍্যাপ - গিট ইস্যু - গিট প্যাচ - গিট রেপো - গিট রিপ্লাই - Zap লক্ষ্যমাত্রা - হ্যাশট্যাগ ফলো - হাইলাইট - ইনডেক্স Relay তালিকা - অ্যাডভেঞ্চার প্রলোগ - অ্যাডভেঞ্চার দৃশ্য - অ্যাডভেঞ্চার পাঠ - নামযুক্ত বুকমার্ক - লাইভ চ্যাট - লাইভ স্ট্রিম - Zap - NWC অনুরোধ - NWC প্রতিক্রিয়া - ব্যক্তিগত Zap - Zap অনুরোধ - ব্লগ - মিটিং রুম - রুম উপস্থিতি - মিটিং স্পেস - প্রোফাইল - মিউট তালিকা - DVM স্ট্যাটাস - DVM কন্টেন্ট অনুরোধ - DVM কন্টেন্ট সাড়া - DVM ব্যবহারকারী অনুরোধ - DVM ব্যবহারকারী সাড়া - পরিশোধ করুন - মানুষের তালিকা - ছবি - ওয়ার্কআউট - পিন - Zap পোল - পোল - পোল সাড়া - প্রাইভেট relay - প্রক্সি relay - পাবলিক বার্তা - প্রতিক্রিয়া - যোগাযোগ কার্ড - Relay আবিষ্কার - Relay মনিটর ঘোষণা - Relay সেট - রিপোর্ট - রিপোস্ট - ব্যবহারকারী মুছুন - সিল - সার্চ relay - ব্যবহারকারীর স্ট্যাটাস - নোট - সম্পাদনা - টরেন্ট - টরেন্ট মন্তব্য - বিশ্বস্ত relay - বিশ্বস্ত প্রদানকারী - ভিডিও (Repl) - শর্টস (Repl) - ভিডিও - শর্টস - ভয়েস বার্তা - ভয়েস উত্তর - জেগে উঠুন - ওয়েব বুকমার্ক - উইকি - %1$d%% আপটাইম - Namecoin সেটিংস - Relay সিঙ্ক - বিটকয়েন এক্সপ্লোরার (OTS) - আপনার থেকে ইভেন্ট - আপনার কাছে ইভেন্ট - অনুসন্ধানযোগ্য ইভেন্ট - প্রোফাইল - আউটবক্স তালিকা - %1$s আগে শেষ দেখা গেছে - %1$s তারিখে শেষ দেখা গেছে (%2$s আগে) - এইমাত্র দেখা গেছে - কখনো দেখা যায়নি - - %1$d মিনিট - %1$d মিনিট - - - %1$d ঘণ্টা - %1$d ঘণ্টা - - - %1$d দিন - %1$d দিন - - - %1$d সপ্তাহ - %1$d সপ্তাহ - - - %1$d মাস - %1$d মাস - - - %1$d বছর - %1$d বছর - - - %1$d টি মিন্ট - %1$d টি মিন্ট - - - %1$d টি অপেক্ষমাণ ইনভয়েস - %1$d টি অপেক্ষমাণ ইনভয়েস - - - %1$d টি মিন্টে অর্থ রয়েছে যা আপনি ব্যবহার করেন না - %1$d টি মিন্টে অর্থ রয়েছে যা আপনি ব্যবহার করেন না - - %1$s sat %2$s-এ সরানো হয়েছে। - ডিভাইসে কাস্ট করুন - কাস্টিং বন্ধ করুন - HLS আপলোড - %1$s আপলোড হচ্ছে (%3$d এর মধ্যে %2$d) - সত্যায়ন - সত্যায়ন অনুরোধ - সত্যায়নকারীর সুপারিশ - সত্যায়নকারীর দক্ষতা - ওয়েব বুকমার্ক - ওয়েব বুকমার্ক যোগ করুন - ওয়েব বুকমার্ক সম্পাদনা করুন - %2$s sats লক্ষ্যমাত্রার মধ্যে %1$s সংগ্রহ হয়েছে - নতুন লক্ষ্য - মুছে ফেলার অনুরোধ - মুছে ফেলার অনুরোধ পাঠানো হয়েছে - মুছে ফেলার ইতিহাস - ব্যবহারকারীরা - ইভেন্ট - ধরন - আইপি - সেটিংস - পাঠ্য উন্নতির প্রস্তাব দিন - পাঠ্য সংশোধন এবং সুরের পরিবর্তন প্রস্তাব করতে ডিভাইসে AI মডেল ব্যবহার করে। - ট্র্যাকড সম্প্রচার - ইভেন্ট পাঠানোর সময় ট্র্যাকড ব্রডকাস্টার ব্যবহার করুন। সম্প্রচার করার সময় লাইভ অগ্রগতি এবং প্রতি-relay অবস্থা দেখায়। - শেয়ার করার জন্য ওয়ার্কআউট সুপারিশ করুন - Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) থেকে সম্পন্ন ওয়ার্কআউট পড়ে এবং সেগুলো পোস্ট হিসেবে শেয়ার করার পরামর্শ দেয়। সংযোগ করার সময়ই অনুমতি চাওয়া হয়। - কম্পোজ সেটিংস - স্বয়ংক্রিয়ভাবে খসড়া তৈরি করুন - আপনি টাইপ করলে বা না-পাঠানো পাঠ্য সহ কম্পোজার ছেড়ে গেলে স্বয়ংক্রিয়ভাবে একটি খসড়া ইভেন্ট সংরক্ষণ করে এবং আপনার ব্যক্তিগত আউটবক্স relay-গুলোতে পাঠায়। - নতুন ইমোজি প্যাক - ইমোজি প্যাক সম্পাদনা করুন - আমার ইমোজি প্যাক - ইমোজি - পাবলিক ইমোজি সবার কাছে দৃশ্যমান এবং এই প্যাকটি আপনার ইমোজি তালিকায় থাকলে আপনার রিঅ্যাকশন মেনু এবং \":\" অটোকমপ্লিট পিকারে প্রদর্শিত হয়। - ব্যক্তিগত ইমোজি relay-গুলোতে এনক্রিপ্টেড অবস্থায় সংরক্ষিত এবং শুধুমাত্র আপনার কাছে দৃশ্যমান। এগুলো পাবলিক ইমোজির মতোই আপনার রিঅ্যাকশন মেনু এবং \":\" অটোকমপ্লিটে দেখা যায়। - খসড়াটি %1$d বাইট; এই কমিউনিটি এই ধরনটি %2$d বাইটে সীমাবদ্ধ করেছে। - খসড়াটি %1$d বাইট; এই কমিউনিটি ইভেন্টকে %2$d বাইটে সীমাবদ্ধ করেছে। - আপনি আজ এই ধরনের %1$d টি ইভেন্ট ইতিমধ্যে পোস্ট করেছেন (সীমা %2$d)। - Nowhere সাইট - Nowhere ইভেন্ট - Nowhere ফান্ডরেইজার - Nowhere স্টোর - Nowhere পিটিশন - Nowhere বার্তা - Nowhere ড্রপ - Nowhere আর্ট - Nowhere ফোরাম - - %1$d টি বার্তা - %1$d টি বার্তা - - - %1$d জন সদস্য - %1$d জন সদস্য - - গ্রুপের তথ্য আপডেট হয়েছে - আপডেট করতে ব্যর্থ: %1$s - গ্রুপ তৈরি করতে ব্যর্থ: %1$s - গ্রুপ ছেড়ে যেতে ব্যর্থ: %1$s - %1$s যোগ করা হচ্ছে… - %1$s যোগ করতে ব্যর্থ: %2$s - অজানা ত্রুটি - সদস্য সরানো হয়েছে - সদস্য সরাতে ব্যর্থ: %1$s - অ্যাডমিন সুবিধা প্রদান করা হয়েছে - অ্যাডমিন প্রদান করতে ব্যর্থ: %1$s - অ্যাডমিন সুবিধা প্রত্যাহার করা হয়েছে - অ্যাডমিন প্রত্যাহার করতে ব্যর্থ: %1$s - এই গ্রুপের সদস্য নন %1$s-এ প্রাপকের Lightning সেবা পাওয়া যাচ্ছে না। এটি Lightning ঠিকানা \"%2$s\" থেকে গণনা করা হয়েছে। ত্রুটি: %3$s। সার্ভার চালু আছে কিনা এবং Lightning ঠিকানাটি সঠিক কিনা পরীক্ষা করুন %1$s সমাধান করতে পারেনি। আপনি সংযুক্ত কিনা, সার্ভার চালু আছে কিনা এবং Lightning ঠিকানা %2$s সঠিক কিনা পরীক্ষা করুন।\n\nব্যতিক্রম ছিল: %3$s %1$s-এর ইনভয়েস ফেচ থেকে JSON পার্স করতে ত্রুটি। ব্যবহারকারীর Lightning সেটআপ পরীক্ষা করুন diff --git a/amethyst/src/main/res/values-cs/strings.xml b/amethyst/src/main/res/values-cs/strings.xml index f3da3c094c..4c731c2662 100644 --- a/amethyst/src/main/res/values-cs/strings.xml +++ b/amethyst/src/main/res/values-cs/strings.xml @@ -1,166 +1,13 @@ - - Tento příspěvek má více než %1$d hashtag - Tento příspěvek má více než %1$d hashtagy - Tento příspěvek má více než %1$d hashtagů - Tento příspěvek má více než %1$d hashtagů - - - %1$d majetek je zbalený - %1$d majetky jsou zbalený - %1$d majetků jsou zbalený - %1$d majetků jsou zbalený - - - +%1$d\nodpověď - +%1$d\nodpovědi - +%1$d\nodpovědi - +%1$d\nodpovědí - - - Nahlásil %1$d člověk, kterého sledujete - Nahlásili %1$d lidé, které sledujete - Nahlásilo %1$d lidí, které sledujete - Nahlásilo %1$d lidí, které sledujete - - Nevyžádaná pošta - Počet spamových událostí z tohoto relé - Zneužívání identity - Nezákonné jednání - Požadovat smazání - Pro odpověď se přihlaste s privátním klíčem - Pro zvýšení příspěvků se přihlaste s privátním klíčem - Přihlásit se pomocí soukromého klíče pro označení příspěvků jako líbivé - Není nastaveno množství Zap. Dlouhým stisknutím změňte - Přihlaste se pomocí soukromého klíče, abyste mohli odesílat Zapy - Přihlaste se pomocí soukromého klíče, abyste mohli následovat - Přihlaste se pomocí soukromého klíče, abyste mohli zrušit sledování - Používáte veřejný klíč a veřejné klíče jsou pouze pro čtení. Přihlaste se pomocí soukromého klíče, abyste mohli skrýt slovo nebo větu - Používáte veřejný klíč a veřejné klíče jsou pouze pro čtení. Přihlaste se pomocí soukromého klíče, abyste mohli zobrazit slovo nebo větu - Používáte veřejný klíč, který je pouze pro čtení. Přihlaste se pomocí soukromého klíče, abyste mohli nahrávat - Používáte veřejný klíč, který je pouze pro čtení. Přihlaste se pomocí soukromého klíče, abyste mohli podepisovat události - Neautorizované dešifrování - Podepisovatel neautorizoval dešifrování potřebné k provedení této operace. Aktivujte dešifrování NIP-44 ve své aplikaci pro podepisování a zkuste to znovu - Podepisovatel nenalezen - Byla aplikace pro podepisování odinstalována? Zkontrolujte, zda je aplikace nainstalována a obsahuje tento účet. Odhlaste se a přihlaste znovu, pokud se aplikace změnila. - Externí podepisovatel vrátil data, která jsou pro daný požadavek neobvyklá. Může se jednat o chybu v Amethystu nebo v podepisovateli. - Zapy - Zvýšení zvýšeno úprava #%1$s - Navrhnout úpravu - Přidat - Chyba při zpracování chybové zprávy - Profil - Bezpečnostní filtry - Zobrazit méně - Vyžaduje se faktura… - Debetní služba platbu nedokončila. - Zaplatit %1$s přes %2$s? - Zaplatit tuto fakturu přes %1$s? - Zadejte platnou částku pro tuto nabídku. - Jednorázově - Denně - Týdně - Měsíčně - Zaplatit - Platba přes %1$s… - Platba se nezdařila - K útratě pro tohoto příjemce: %1$s sats - Transakce: %1$s - "Náhled obrázku karty pro %1$s" - Popis - Co vás napadá? - Napište zprávu… - Publikovat Uložit - Odeslat - Vytvořit Přejmenovat - Zrušit - Chyba - Chyby - Procento úspěšných připojení k relé - Uložit do telefonu - Obrázek uložen do galerie - Stahování videa bylo zahájeno… - Stahování médií bylo zahájeno… - Připnout nahoru - Odepnout - Chyba při ukládání obrázku - Video uloženo do video galerie telefonu - Nepodařilo se uložit video - PDF uloženo do Downloads/Amethyst - Nepodařilo se uložit PDF - Na tomto zařízení nebyla nalezena žádná aplikace pro fotoaparát - Stiskněte a podržte pro nahrání zprávy - Chyba nahrávání - Nepodařilo se nahrát hlasovou zprávu - NIP-95 zatím není pro hlasové zprávy podporován - Nahrávání hlasu selhalo: %1$s - Žádný - Hluboký - Vysoký - Neutrální - Uživatel nemá nastavenou LN adresu pro přijímání sats - "Odpověď zde…" - Známé - Nové žádosti - Blokovaní uživatelé - Nové vlákna - Konverzace - Více možností - Zobrazit QR kód privátního klíče - Zobrazit šifrovaný QR kód soukromého klíče - Sledovat - Následovat zpět - Skrýt heslo - Neplatný klíč - Neplatný klíč: %1$s - Heslo je vyžadováno - Klíč je povinný - Jméno je povinné - Tuto pozvánku se nepodařilo načíst. Odkaz může být prošlý nebo jsou jeho relaye nedostupné. - Tento zvací odkaz je neplatný nebo jej nelze otevřít tímto účtem. - Tento zvací odkaz nelze otevřít. Může být zastaralý nebo již nahrazený novějším, případně vytvořený novější verzí aplikace. Vyžádejte si nový zvací odkaz. - Tento zvací odkaz byl zrušen a již jej nelze použít. Vyžádejte si nový. - Tato komunita vás odebrala. Odkaz stále funguje, ale její seznam členů vás nevpustí. - Odkazy pro pozvání - Odkazy pro pozvání… - Odkaz pro pozvání byl zrušen. - Odkaz se nepodařilo zrušit. Zkontrolujte připojení a zkuste to znovu. - Platnost tohoto pozvánkového odkazu vypršela a nelze jej již použít. Vyžádejte si nový odkaz. - Kanály Concord - Zatím žádné kanály. - Odeslat obrázek - Nový kanál - Přejmenovat kanál - Přejmenovat - Název kanálu - Smazat kanál - Smazat kanál? - Smazat #%1$s? Tuto akci nelze vrátit zpět a kanál nelze znovu vytvořit se stejným id. - Smazat - Opustit komunitu - Opustit komunitu? - Opustit %1$s? Bude odebrána ze seznamu tohoto účtu a přestane se synchronizovat na vašich zařízeních. Komunita o tom nedostane oznámení a nebudete odebráni z jejího seznamu členů. Zprávy, které již nedokážete dešifrovat, mohou být neobnovitelné, a vrátit se můžete pouze s novou pozvánkou. - Tuto komunitu jste vytvořili vy. Opuštěním ji nesmažete ani ji nepředáte nikomu jinému, ale zahodíte klíč vlastníka uložený ve vašem seznamu — už byste ji nemohli spravovat. - %1$s píše… - %1$s a %2$s píší… - Píše několik lidí… - Nový kanál Concord - Relaye URL ikony (volitelné) - - %1$d kanál - %1$d kanály - %1$d kanálu - %1$d kanálů - %1$d pracovní prostor %1$d pracovní prostory @@ -173,356 +20,38 @@ %1$d kanálu %1$d kanálů - - %1$d člen - %1$d členové - %1$d člena - %1$d členů - - - %1$d nová zpráva - %1$d nové zprávy - %1$d nové zprávy - %1$d nových zpráv - - Zatím žádné zprávy - Vytvořit - Pozvat lidi - Odkaz pozvánky - Nastavit správcem - Odebrat práva správce - Relaye, které uchovávají šifrované zprávy této komunity. Nechte prázdné pro použití vlastních. - Upravit komunitu - Členové - Nastavit správcem - Odebrat práva správce - Zablokovat - Odblokovat - Přiřadit role - Role tohoto člena se nepodařilo aktualizovat. - Concord - V chatu - Ve vlákně - - %1$d odpověď - %1$d odpovědi - %1$d odpovědi - %1$d odpovědí - Nový chatový profil: - Opustit - Odebrat ze Zpráv - Přidat do Zpráv - Přestat sledovat - Mizící chat - Relé chat - Relé chaty - Relay chaty jsou chatové skupiny ovládané jejich domácí relé. - Jsou viditelné pro všechny na Nostru a každý se jich může zúčastnit. - Jsou skvělé pro otevřené komunity kolem konkrétních témat. Některé z těchto skupin jsou efemérní - a proto zprávy časem mizí - Veřejný chat - MLS skupina - Metadata veřejného chatu - Veřejné konverzace jsou viditelné pro všechny na Nostru a kdokoli - se na nich může podílet. Jsou skvělé pro otevřené komunity kolem konkrétních témat. - Moderaci lze ovládat smazáním příspěvků na relé - Rele - Vložte mezi 1–3 relé, které hostí tuto skupinu. - Klienti Nostr používají toto nastavení, aby věděli, kam stahovat zprávy a odesílat zprávy. - Odebrat - nikdy - nyní - h - m - d - Nahota - Neslušnost / Nenávistná řeč - Zálohovat klíče - Nepodařilo se zašifrovat váš privátní klíč - Tajný klíč (nsec) zkopírován do schránky - Zkopírovat můj tajný klíč - Autentizace se nezdařila - Biometrické údaje se nepodařilo ověřit vlastníka tohoto telefonu - Biometrické údaje se nepodařilo ověřit vlastníka tohoto telefonu. Chyba: %1$s - Text poznámky zkopírován do schránky - Uživatelovo ID (@npub) zkopírováno do schránky - ID poznámky (@note1) zkopírováno do schránky - "<Nelze dešifrovat soukromou zprávu>\n\nByl jste zmíněn v soukromé/zašifrované konverzaci mezi %1$s a %2$s." - Účty - Navigace - Vy - Kanály - Vytvořit - Systém - Zpět - Sdílet odkaz prohlížeče - Sdílet - Sdílet jako obrázek - Sdílet jako URL obrázku - ID poznámky - Smazat - Ztlumit vlákno - Zrušit ztlumení vlákna - Ztlumit oznámení - Zrušit ztlumení oznámení - - Blokovat - Záložky - Záložky úspěšně přesunuty - Koncepty - Naplánované příspěvky - Naplánovat příspěvek - Zrušit plánování - Naplánované příspěvky se nemusí publikovat, dokud aplikaci znovu neotevřete. Pro spolehlivé plánování na pozadí povolte trvalá oznámení v Nastavení → Předvolby UI. - Naplánované příspěvky se nemusí publikovat, dokud aplikaci znovu neotevřete. Naplánované příspěvky jiných účtů se nespustí, dokud je aktivní tento účet. Pro spolehlivé plánování na pozadí povolte trvalá oznámení v Nastavení → Předvolby UI. - %1$s · za %2$s - %1$s · před %2$s - Zítra - Odhlášeno - - Odhlášeno · smazán %d naplánovaný příspěvek - Odhlášeno · smazány %d naplánované příspěvky - Odhlášeno · smazáno %d naplánovaných příspěvků - Odhlášeno · smazáno %d naplánovaných příspěvků - - Naplánovaný příspěvek publikován - Naplánovaný příspěvek selhal - Naplánované příspěvky - Oznámení, když je naplánovaný příspěvek publikován nebo selže při publikaci. - Odeslat hned - Chyba: %1$s - Naplánováno - Odesílá se… - Selhalo - Odesláno - Zrušeno - - Máte %d naplánovaný příspěvek, který ještě nebyl publikován. Odhlášením bude trvale smazán. - Máte %d naplánované příspěvky, které ještě nebyly publikovány. Odhlášením budou trvale smazány. - Máte %d naplánovaných příspěvků, které ještě nebyly publikovány. Odhlášením budou trvale smazány. - Máte %d naplánovaných příspěvků, které ještě nebyly publikovány. Odhlášením budou trvale smazány. - - - %d ve frontě - %d ve frontě - %d ve frontě - %d ve frontě - - - · %d do 1 h - · %d do 1 h - · %d do 1 h - · %d do 1 h - - - na %d relay - na %d relaye - na %d relayů - na %d relayů - - ID příspěvku zkopírováno - Ankety - Otevřené - Uzavřené - Odznaky - Komunity - Nová komunita - Upravit komunitu - Moderátoři - Relaye - Ověřitelná pravidla (volitelné) - Povolené typy událostí - Krátký text (1) - Dlouhý článek (30023) - Obrázek (20) - Video (21) - Krátké video (22) - Komentář komunity (1111) - Zablokovaní uživatelé - Brána sítě důvěry (volitelné) - Globální maximální velikost události (volitelné) - Nový odznak - Udělit odznak - Profilové odznaky - Obrázky - Tréninky - Nový trénink - - %1$d aktivita - %1$d aktivity - %1$d aktivity - %1$d aktivit - - Běh - Chůze - Cyklistika - Turistika - Plavání - Veslování - Silový trénink - Jóga - Meditace - Dieta - Půst - Okruh - EMOM - AMRAP - Aplikace Aplikace - nApplety - nSites - Prohlížeč - Načítání přes Tor. Klepnutím použijete otevřený web. - Načítání přes otevřený web. Klepnutím použijete Tor. - Oblíbené - Objevujte webové aplikace - Oblíbené aplikace - Přidat do oblíbených - Odebrat z oblíbených - Načítá přes Tor. - Načítá přes otevřený web. - Zveřejněno na relays - Soubor nahrán - Provedena platba - Tato aplikace ještě není načtena. Zkuste to za chvíli. - Nedávné Oprávnění nApplet Zatím žádná oprávnění nApplet Oprávnění udělená nApplets se zobrazí zde. Zapomenout tento nApplet Zablokováno Odebrat - nApplet %1$s… Shell - Identita - Akce klávesnice - Relaye - Šifrování - Úložiště - Platby - Síť - Nahrávání Zjistit, které funkce jsou dostupné - Číst váš veřejný klíč - Přiřadit klávesové zkratky - Číst, podepisovat & zveřejňovat vaše eventy - Šifrovat a dešifrovat soukromé zprávy vaším klíčem - Vlastní soukromé úložiště - Platit Lightning faktury - Načítat webové a Blossom zdroje - Nahrávat soubory na váš mediální server - Téma - Oznámení - Zasílání zpráv - Přizpůsobit barvy vaší aplikace - Zobrazovat vám oznámení - Vyměňovat zprávy s ostatními nApplets Funkce: %1$s - Tento nApplet chce číst váš veřejný klíč. - Tento nApplet chce číst váš profil a data účtu. - Tento nApplet chce podepsat a zveřejnit event kind %1$d vaším jménem. - Tento nApplet chce podepsat a zveřejnit event kind %1$d vaším jménem: - Tento nApplet chce odeslat šifrovaný event vaším jménem. - Tento web chce zašifrovat zprávu pro %1$s vaším Nostr klíčem. - Tento web chce dešifrovat zprávu od %1$s vaším Nostr klíčem. - Tento nApplet chce číst eventy z vašich relays. - Tento nApplet chce používat své soukromé úložiště. Tento nApplet chce zaplatit Lightning fakturu. - ⚠ Tento nApplet chce zaplatit Lightning fakturu, která neuvádí ŽÁDNOU částku — o výši odebrané platby rozhoduje příjemce. Povolte to jen tehdy, pokud mu důvěřujete. - Tento nApplet chce načíst webový zdroj. - Tento nApplet chce nahrát soubor na váš mediální server. - Tento nApplet vám chce zobrazovat oznámení. - Tento web chce podepsat event kind %1$d vaším Nostr klíčem. - - Tento nApplet chce zaplatit Lightning fakturu za %1$d sat. - Tento nApplet chce zaplatit Lightning fakturu za %1$d sats. - Tento nApplet chce zaplatit Lightning fakturu za %1$d sats. - Tento nApplet chce zaplatit Lightning fakturu za %1$d sats. - - - začne sledovat %1$d nový účet - začne sledovat %1$d nové účty - začne sledovat %1$d nového účtu - začne sledovat %1$d nových účtů - - - PŘESTANE SLEDOVAT %1$d účet - PŘESTANE SLEDOVAT %1$d účty - PŘESTANE SLEDOVAT %1$d účtu - PŘESTANE SLEDOVAT %1$d účtů - - - přidá %1$d relay - přidá %1$d relaye - přidá %1$d relaye - přidá %1$d relayů - - - ODEBERE %1$d relay - ODEBERE %1$d relaye - ODEBERE %1$d relaye - ODEBERE %1$d relayů - - - ztlumí %1$d další osobu - ztlumí %1$d další osoby - ztlumí %1$d další osoby - ztlumí %1$d dalších osob - - - ZRUŠÍ ZTLUMENÍ %1$d osoby - ZRUŠÍ ZTLUMENÍ %1$d osob - ZRUŠÍ ZTLUMENÍ %1$d osoby - ZRUŠÍ ZTLUMENÍ %1$d osob - - ⚠ Tímto začnete sledovat %1$s. - ⚠ Tímto PŘESTANETE SLEDOVAT %1$s. - ⚠ Tímto ztlumíte %1$s. - ⚠ Tímto ZRUŠÍTE ZTLUMENÍ %1$s. - ⚠ Tímto se přepíše váš seznam sledovaných: %1$s. - ⚠ Tímto se přepíše váš seznam relayů: %1$s. Vaše příspěvky a čtení se přesunou spolu s ním. - ⚠ Tímto se přepíše váš seznam ztlumených: %1$s. Ztlumená slova a hashtagy se zde nezobrazují — celý seznam zobrazíte klepnutím na “Zobrazit událost”. - %1$s a %2$s - Tímto se váš stávající seznam znovu zveřejní beze změny. - - ⚠ Tímto se zapíše seznam s %1$d položkou. Amethyst nemá uloženou kopii k porovnání. - ⚠ Tímto se zapíše seznam s %1$d položkami. Amethyst nemá uloženou kopii k porovnání. - ⚠ Tímto se zapíše seznam s %1$d položkami. Amethyst nemá uloženou kopii k porovnání. - ⚠ Tímto se zapíše seznam s %1$d položkami. Amethyst nemá uloženou kopii k porovnání. - - - ⚠ Tímto se požaduje smazání %1$d vaší události. - ⚠ Tímto se požaduje smazání %1$d vašich událostí. - ⚠ Tímto se požaduje smazání %1$d vaší události. - ⚠ Tímto se požaduje smazání %1$d vašich událostí. - - - Nese %1$d značku. Klepnutím na “Zobrazit událost” uvidíte přesně, co by bylo podepsáno. - Nese %1$d značky. Klepnutím na “Zobrazit událost” uvidíte přesně, co by bylo podepsáno. - Nese %1$d značky. Klepnutím na “Zobrazit událost” uvidíte přesně, co by bylo podepsáno. - Nese %1$d značek. Klepnutím na “Zobrazit událost” uvidíte přesně, co by bylo podepsáno. - Připojit k Nostr @@ -531,25 +60,16 @@ Naposledy použito Vyprší - podepsat pro %1$s (druh: %2$d) - zašifrovat zprávu - číst vaše soukromé zprávy - číst vaše soukromé zprávy s %1$s - Vždy povolit pro %1$s - Amethyst nemohl tuto zprávu dešifrovat. Možná není určena pro tento účet. - Připojené aplikace Odvolat všechna oprávnění Výjimky operací Zatím se nepřipojily žádné aplikace. - aplikace oprávnění podepisovač napplet nsite webová aplikace důvěra připojené - Vzdálený podepisovatel podepisovatel bunker nip46 nostr připojit vzdálený podepsat Fungovat jako vzdálený podepisovatel @@ -558,928 +78,74 @@ Naslouchá na %1$d relaye Naslouchá na %1$d relayů - - Naslouchá na %1$d relay - Naslouchá na %1$d relaye, vše připojeno - Naslouchá na %1$d relaye, vše připojeno - Naslouchá na %1$d relayů, vše připojeno - Vaše bunker adresa Vložte toto do jiné aplikace, abyste ji připojili ke svému klíči. - Bunker adresa zkopírována - Vygenerována nová bunker adresa - Připojeno - Offline - Opětovné připojování k relayím… - - %1$d relé - %1$d relaye - %1$d relaye - %1$d relayů - - Aplikace připojena. Amethyst za ni nyní podepisuje na pozadí. - %1$s připojeno. Amethyst za ni nyní podepisuje na pozadí. - Neplatný odkaz nostrconnect:// - Tento odkaz neobsahuje žádný relay pro připojení - Nepodařilo se připojit: %1$s - Připojení odmítnuto - Toto je účet pouze pro čtení a nemůže podepisovat. - Aplikace vzdáleného podepisovatele - - %1$d požadavek na podepsání - %1$d požadavky na podepsání - %1$d požadavku na podepsání - %1$d požadavků na podepsání - - Vybrat vše - Zrušit výběr Zatím nebyly obslouženy žádné požadavky. - Požadavky na podepsání - Celoobrazovkové výzvy žádající o schválení aplikace, která chce, aby Amethyst podepsal, zašifroval nebo dešifroval vaším klíčem. - Schválit požadavek na podepsání? - Aplikace se chce připojit - Klepnutím zkontrolujete - - %1$d připojená aplikace - %1$d připojené aplikace - %1$d připojené aplikace - %1$d připojených aplikací - - Autentizace relay - auth autentizace relay podepsat ověřit nip-42 identita - Vždy se ověřovat - Podepisovat autentizační výzvy pro každý relay, který o to požádá - Nikdy se neověřovat - Ignorovat autentizační výzvy ze všech relayů - Vlastní - Vyberte přesně, ke kterým relayům se přihlásit. Na cokoli, co jste níže nepovolili, budete dotázáni. - …je to moje relé nebo místnost, do které jsem se přidal nebo kterou sleduji - …čtu někoho, koho sleduji - …píšu někomu, koho sleduji - …píšu komukoli jinému - - %1$s a %2$d další - %1$s a %2$d další - %1$s a %2$d dalšího - %1$s a %2$d dalších - - - Zadržuje také %1$d další věc. - Zadržuje také %1$d další věci. - Zadržuje také %1$d další věci. - Zadržuje také %1$d dalších věcí. - - Vždy se přihlašovat - Nikdy - Vždy, všechny relaye - Nikdy, všechny relaye - Přihlašovat se ke všem relayům? - Amethyst se bude přihlašovat jako %1$s ke každému relayi, který o to požádá, a přestane se ptát. Relaye, které jste zablokovali, a ty, u kterých jste nastavili, že se nikdy nepřihlašovat, zůstanou beze změny. Změnit to můžete v nastavení Autentizace relay. - Nikdy se nepřihlašovat k žádnému relayi? - Amethyst přestane relayům sdělovat, že jste %1$s, a přestane se ptát. Některé relaye vás odmítnou obsloužit: zprávy, odpovědi a oznámení nemusí projít. Relaye, u kterých jste nastavili, že se vždy přihlašovat, zůstanou beze změny. Změnit to můžete v nastavení Autentizace relay. - Vždy, nastaveno vámi - Nikdy, nastaveno vámi - vaše zprávy - vaše odpovědi - lidé, které čtete - místnost, do které přispíváte - místnost, kterou čtete - vaše doručená pošta - konverzace - vaše vlastní relé - toto relé - Krátká videa - Veřejné chaty - Kanály podle polohy - Seznamy sledování - Živé vysílání - Audio místnosti - Přihlásit se - Dát ruku dolů - Ztlumit - Zrušit ztlumení - Zprávu se nepodařilo odeslat - Ztlumit mikrofon - Zapnout mikrofon - Nests - Přehrává zvuk, dokud je místnost otevřená. - Nest připojen - Nest — Živě - Klepnutím se vrátíte. - Zastavit - zvedl(a) ruku - vystoupil(a) na pódium - mluví - připojil(a) se jako publikum - opustil(a) nest - Opustit - Místnost se nepodařilo označit jako zavřenou. Odcházíte i tak — místnost se zavře automaticky. - - %1$d posluchač - %1$d posluchači - %1$d posluchačů - %1$d posluchačů - - Místně ztlumit řečníka - Obnovit řečníka - Sledovat - Přestat sledovat - Ztlumit - Zrušit ztlumení - Seznam nest serverů se nepodařilo uložit. Zkuste to znovu. Konzole agenta - Nest servery - Vaše servery - Uloženo jako nahraditelná událost typu kind-10112, aby ostatní klienti mohli číst vaše preference. - Doporučené servery - Vestavěné návrhy, které můžete jedním klepnutím přidat do svého seznamu. - Videa - Hudba - Playlisty - Epizody - Podcasty Prémiový - - %1$d kapitola - %1$d kapitoly - %1$d kapitoly - %1$d kapitol - - Chyba Value-for-Value - Tento podcast nemá žádné platitelné příjemce hodnoty. - Připojte peněženku Nostr Wallet Connect pro odesílání příjemcům keysend (uzel). - Připojte peněženku Nostr Wallet Connect nebo debetní peněženku pro streamování sats během poslechu. - Nová epizoda - Upravit epizodu - Publikování… - Přidat obal - Čtvercový obrázek zobrazený u epizody - URL videa - URL přepisu - URL kapitol - Přidat zvukový soubor - MP3, M4A nebo jiný zvuk - Váš podcast - Přidat obal - Čtvercový obal vašeho pořadu - Název pořadu - Můj podcast - Autor - Kontaktní e-mail - Web - Kategorie - Technologie, Zprávy - Odkazy na financování - https://… - Jazyk - cs - Autorská práva - Nová upoutávka - Přidat klip upoutávky - Krátký zvukový nebo video náhled - - %1$d upoutávka - %1$d upoutávky - %1$d upoutávky - %1$d upoutávek - Přidat příjemce - Tento uživatel nemá Lightning adresu - - %1$d epizoda - %1$d epizody - %1$d epizody - %1$d epizod - - Nová hudební stopa - Nový playlist - - %1$d stopa - %1$d stopy - %1$d stopy - %1$d stop - - Přidat do veřejných záložek - Odebrat z veřejných záložek - Připnout na profil - Odepnout z profilu - Nový seznam záložek - Metadata seznamu záložek - Sady zájmů - Nová sada zájmů - Přejmenovat - Soukromá poznámka - Tato poznámka byla doručena soukromě a není podepsaná. Vidět ji mohou pouze označení účastníci a nikdo nemůže cizím lidem dokázat, kdo ji napsal. - Učinit soukromým: zabalit poznámku jako gift-wrap pouze pro oznámené uživatele - Zveřejnit - Odpovědi na soukromou poznámku zůstávají vždy soukromé - Viditelné pro Zatím žádní příjemci: tuto poznámku uvidíš jen ty. Přidej lidi, se kterými ji chceš sdílet. - Jen vy — vyberte, kdo další to uvidí - Přidejte lidi, kterým přijde upozornění - Poslat soukromě - Již přidáno - Ztlumeno - Soukromý člen - - %1$s, %2$s a %3$d další - %1$s, %2$s a %3$d další - %1$s, %2$s a %3$d dalšího - %1$s, %2$s a %3$d dalších - - - Tato poznámka bude zašifrována a doručena jako %1$d samostatná zpráva, jedna pro každou osobu. S externím podepisovačem to znamená jedno schválení za každou. - Tato poznámka bude zašifrována a doručena jako %1$d samostatné zprávy, jedna pro každou osobu. S externím podepisovačem to znamená jedno schválení za každou. - Tato poznámka bude zašifrována a doručena jako %1$d samostatné zprávy, jedna pro každou osobu. S externím podepisovačem to znamená jedno schválení za každou. - Tato poznámka bude zašifrována a doručena jako %1$d samostatných zpráv, jedna pro každou osobu. S externím podepisovačem to znamená jedno schválení za každou. - - - Upozornění na tento příspěvek dostane %1$d osoba. - Upozornění na tento příspěvek dostanou %1$d osoby. - Upozornění na tento příspěvek dostane %1$d osoby. - Upozornění na tento příspěvek dostane %1$d osob. - - - To by byla %1$d osoba. Amethyst přidá najednou nejvýše %2$d — několik jich odznačte. - To by byly %1$d osoby. Amethyst přidá najednou nejvýše %2$d — několik jich odznačte. - To by bylo %1$d osoby. Amethyst přidá najednou nejvýše %2$d — několik jich odznačte. - To by bylo %1$d osob. Amethyst přidá najednou nejvýše %2$d — několik jich odznačte. - - - Přidat %1$d osobu - Přidat %1$d osoby - Přidat %1$d osoby - Přidat %1$d osob - - - Přesto přidat %1$d osobu - Přesto přidat %1$d osoby - Přesto přidat %1$d osoby - Přesto přidat %1$d osob - Přidat Odebrat uživatele z oznámení - Upozorňování zapnuto. Klepnutím ztlumíte upozornění pro tohoto uživatele - Ztlumeno. Klepnutím znovu povolíte upozornění pro tohoto uživatele Vyhledat a přidat uživatele k oznámení - Metadata seznamů záložek může na Nostr vidět kdokoli. Šifrovaní jsou pouze vaši soukromí členové. - Přesunout mezi veřejné - Přesunout mezi soukromé - Dobít a poslat zap - Poslat zap - Dobít %1$s sats do %2$s a poslat %3$s zap %4$s sats · poplatek ≈ %5$s sats - Možnost %s - (0–100)% - Jedna možnost - Více možností - Nebylo možné hlasovat - Hlasování je uzavřeno pro nové hlasy - U tohoto typu hlasování je povolen pouze jeden hlas na uživatele - Autoři hlasování nemohou hlasovat ve vlastních hlasováních. - Co to znamená? - Obrázek je stejný jako v původním příspěvku - Obrázek se změnil. Autor možná změnu nezaznamenal - Přidat média - Přidat obrázek - Přidat video - Přidat dokument - Souborový server - Zvolte server pro nahrání tohoto souboru - Media Servery Nastavte preferované servery pro nahrávání médií. Spravovat uložené soubory - Mé soubory Blossom - Kopírování vašich souborů mezi servery… - Zrušit - Synchronizace Blossom - Zobrazuje průběh kopírování vašich souborů mezi servery Blossom. - Na všech serverech - Není na všech serverech Smazat z… - Tento server vyžaduje za nahrání platbu: %1$s - - Zaplatit %1$d sat - Zaplatit %1$d saty - Zaplatit %1$d satu - Zaplatit %1$d satů - - Zapnout vše - Vypnout vše - Synchronizace souborů už probíhá. Zkuste import znovu, až skončí. - - %1$d soubor - %1$d soubory - %1$d souboru - %1$d souborů - - - Nalezen %1$d soubor k importu na vaše servery. - Nalezeny %1$d soubory k importu na vaše servery. - Nalezeno %1$d souboru k importu na vaše servery. - Nalezeno %1$d souborů k importu na vaše servery. - - - Importovat %1$d soubor - Importovat %1$d soubory - Importovat %1$d souboru - Importovat %1$d souborů - Doporučené média servery Výchozí seznam Amethysty. Můžete je přidat jednotlivě nebo přidat seznam. - Online - Pomalé - Offline Kontrola… - Platební cíle - Přidejte platební adresy pro různé sítě (např. bitcoin, lightning, ethereum). - Nebyla nalezena žádná aplikace pro zpracování této platby. Nainstalujte prosím kompatibilní peněženku. - Není nainstalována žádná aplikace pro platby typu %1$s. Nainstalujte prosím kompatibilní peněženku. - Zaplatit v %1$s — částku zvolíte tam - Předání platby jiné aplikaci - Když autor zveřejní platební metodu, kterou dokáže otevřít aplikace v tomto telefonu (Venmo, Monero, IBAN…), výběr zapu ji může nabídnout. Klepnutím se otevře daná aplikace, která se zeptá na částku — na relaye se nic nezveřejní, takže počet zapů u poznámky se nezmění. - Nabízet platební metody autora - Nelze otevřít platbu - Nabídky BOLT12 - Přidejte jednu nebo více nabídek BOLT12 (lno1…). Jsou sdíleny veřejně, takže vám může kdokoli zaplatit. - Platba BOLT12 odeslána - Platba BOLT12 selhala: %1$s - Chyba zapu BOLT12 - Zaplaceno přes BOLT12, ale peněženka nevrátila žádný důkaz, takže nebyla zveřejněna žádná zap účtenka. - Zaplaceno přes BOLT12, ale důkaz o platbě se nepodařilo ověřit, takže nebyla zveřejněna žádná zap účtenka. - Nastavení ochrany soukromí - Všechna sledování - Všech Uživatelů Sledování - Výchozí seznam sledování - Kolem mě - Teleportovat na místo… - Sledovat toto místo - Přestat sledovat toto místo - Globální - Kurátorováno - Moje - Seznam ztlumení - Nový seznam sledování - Nová sada doporučení - Upravit seznam - Výchozí port je 9050 - Port Orbot Socks - Aktivní Tor Engine - Použijte interní verzi nebo Orbot - Tor/Privacy předvolby - Rychle upravte všechna nastavení níže - Onion URL/Relays - Používat Tor pro jakoukoli .onion adresu - Relé pro DM - Vynutit Tor pro odesílání a přijímání DMs - Nedůvěryhodné relé - Vynutit Tor na odchozí/příchozí relé - Důvěryhodné relé - Vynutit Tor na všech relé ve vašich seznamech - Profilové obrázky - Vynutit Tor při načítání profilových obrázků - URL náhledy - Vynutit Tor při načítání náhledů URL - Obrázky - Vynutit Tor při načítání obrázků - Videa - Vynutit Tor při načítání videí - Finanční operace - Vynutit Tor na zaps, lightning a cashu převody - Ověření Nostr adresy - Vynutit Tor při ověřování NIP-05 adres - Nahrávání médií - Vynutit Tor při nahrávání obsahu - Interní - Orbot - Vypnuto - Základní - Výchozí - Vše kromě médií - Plná anonymita - Vlastní - Používejte Tor, když je to vyžadováno serverem - Skryjte svou IP před náhodnými relé - Skryjte svou IP před vším kromě obrázků a videí - Skryjte svou IP ve všech připojeních - Vytvořte si vlastní - Soukromé zprávy - Upozorní vás, když dorazí soukromá zpráva - Přijaté zapsy - Upozorní vás, když vás někdo zapsne - %1$s satů - Od %1$s - pro %1$s - Přijaté platby - Upozorní vás, když vaše připojená peněženka obdrží platbu, která není Nostr zapem - Přijato %1$s sats - Nové platby - Odpovědět - Označit jako přečtené - Já - Nová zpráva - Byli jste přidáni do %1$s - Nové zprávy - Nové zapsy - Reakce - Upozorní vás, když někdo reaguje na váš příspěvek - %1$s reagoval/a na váš příspěvek - na %1$s - Nové reakce - Šachy - Upozorní vás na události šachových her - %1$s přijal/a vaši šachovou výzvu - %1$s táhl/a — jste na tahu - Aktualizace šachů - Odpovědi - Upozorní vás, když někdo odpoví na váš příspěvek %1$s odpověděl(a) k: %1$s - Nové odpovědi - Zmínky - Upozorní vás, když vás někdo zmíní nebo cituje v příspěvku - %1$s vás zmínil(a) - Nové zmínky - Zprávy - Sociální - Platby - Obsah - Vývojář - Hry - Přeposlání - Upozorní vás, když někdo přepošle váš příspěvek - %1$s přeposlal váš příspěvek - Nová přeposlání - Média - Upozorní vás, když vás někdo zmíní ve fotce nebo videu - %1$s sdílel fotku - %1$s sdílel video - Nová média - Články a zvýraznění - Upozorní vás, když vás někdo zmíní nebo zvýrazní v článku - %1$s vás zmínil v článku - %1$s zvýraznil váš článek - Nové články - Kód a Git - Upozorní vás na issues, patche a pull requesty - %1$s otevřel issue - %1$s odeslal patch - %1$s otevřel pull request - %1$s aktualizoval pull request - %1$s přidal komentář - %1$s znovu otevřel vlákno - %1$s sloučil pull request - %1$s aplikoval patch - %1$s vyřešil issue - %1$s sloučil/vyřešil vlákno - %1$s uzavřel pull request - %1$s uzavřel patch - %1$s uzavřel issue - %1$s uzavřel vlákno - %1$s označil vlákno jako koncept - Nová aktivita v kódu - Odznaky - Upozorní vás, když získáte odznak - Získali jste odznak - Uděleno od %1$s - Nové odznaky - Nutzap od %1$s - Onchain zap od %1$s - %1$s položil otázku - Příchozí hovory - Oznámení pro příchozí hlasové a videohovory - Příchozí hovor - Příchozí hlasový hovor\u2026 - Příchozí videohovor\u2026 - Hovor s %1$s - Hovory - Oznámení o probíhajícím hovoru - Zavěsit - Přijmout - Odmítnout - Ztlumit - Zrušit ztlumení - Kamera zapnuta - Kamera vypnuta - Sdílet obrazovku - Ukončit sdílení obrazovky - Sdílení obrazovky - Reproduktor - Sluchátko - Bluetooth - Amethyst potřebuje přístup k mikrofonu, aby mohl zahájit hlasový hovor. Povolte jej v nastavení aplikace. - Amethyst potřebuje přístup ke kameře a mikrofonu, aby mohl zahájit videohovor. Povolte je v nastavení aplikace. - Nastavení hovorů - Udržuje připojení k vašim inbox relayím aktivní pro oznámení v reálném čase - Amethyst oznámení aktivní - - Připojeno k %1$d příchozímu relay - Připojeno k %1$d příchozím relays - Připojeno k %1$d příchozímu relay - Připojeno k %1$d příchozím relays - - - Připojeno k %1$d relay - Připojeno k %1$d relays - Připojeno k %1$d relay - Připojeno k %1$d relays - - Zobrazit podrobnosti - Skrýt podrobnosti - - %1$s \u00b7 %2$d relay - %1$s \u00b7 %2$d relaye - %1$s \u00b7 %2$d relaye - %1$s \u00b7 %2$d relayů - - Procházení - Média - Hashtagy - Témata - Konverzace - Hledání - Hledání chybějících událostí - Sledování událostí - Načítá podle ID události, na které se něco na obrazovce odkazuje, ale zatím je nemáte — citaci, rodiče odpovědi, kořen vlákna. - Sleduje právě zobrazené události kvůli novým odpovědím, reakcím, sdílením, zapům a nahlášením, takže se počty aktualizují během čtení. - Doplňky - Informace o relayi - Ostatní - Vyhledávač seznamů relayů - Sledování profilů - Data účtu - Domovský zdroj - Relay skupiny - - %1$d skupina - %1$d skupiny - %1$d skupiny - %1$d skupin - - Mizící chaty - Chaty podle místa - Chat živého vysílání - Skupiny NIP-29, do kterých jste vstoupili. Každá skupina žije na jednom hostitelském relayi, takže se aplikace připojí ke každému relayi, který hostí některou vaši skupinu. - Chatovací místnosti bez historie — zprávy existují jen po dobu vašeho připojení, proto zůstávají odebírané, aby vůbec něco přišlo. - Místnosti podle polohy pro oblasti, které sledujete, dotazované na relayích, které je nesou. - Chat a zapovací cíle připojené k živým vysíláním, která máte otevřená nebo sledujete. - Schránka DM - Peněženka - Schránka nutzapů - Adresář mintů - Wallet Connect - Chaty komunit - Zdroje komunit - Vaše relaye pro příjem a k tomu malý rotující vzorek relayů, kam publikují vaši sledovaní, pro případ, že by zmínka byla doručena jinam. - Vaše relaye pro schránku DM, kam se doručují zprávy zabalené v gift-wrapu. - Domovský relay každého chatu, který máte otevřený nebo do kterého jste se připojili. - Relaye, na které každá komunita publikuje své roviny. - Skupinové zprávy a balíčky klíčů na relayích každé skupiny. - Relaye místnosti, dokud je otevřená. - Váš vlastní profil, nastavení a koncepty na vašich domovských relayích. - Profily lidí právě na obrazovce. - Zjišťuje, na které relaye každý člověk publikuje, aby se jeho příspěvky daly načíst na správném místě. - Seznamy sledovaných, ze kterých se sestavuje váš zdroj a vaše síť důvěry. - Nahlášení, která vaši sledovaní napsali o profilech právě na obrazovce, dotazovaná na každém relayi, kam tito sledovaní publikují. - Nahlášení od sledovaných - Události vaší vlastní peněženky, čtené zpět z relayů, na které jste je publikovali. - Naslouchá na vašich nutzap relayích a také na relayích pro příjem a DM, aby vám neunikla žádná platba. - Prohledává relaye, které minty existují a které lidé doporučují. - Upozornění z vaší připojené peněženky. - Aktivní odběry relayů - - %1$d filtr - %1$d filtry - %1$d filtru - %1$d filtrů - - - %1$d relay - %1$d relaye - %1$d relaye - %1$d relayů - - - %1$d filtr zatím není přiřazen - %1$d filtry zatím nejsou přiřazeny - %1$d filtru zatím není přiřazeno - %1$d filtrů zatím není přiřazeno - %1$s \u00b7 %2$s - %1$d %% ze všech - odběry subscriptions filtry relaye relay požadavky reqs připojení proč diagnostika - Příspěvky lidí, které sledujete, čtené z relayů, na které každý z nich publikuje. - Připojování k inbox relayím\u2026 Služba trvalých oznámení Udržuje trvalé připojení k vašim inbox relayím pro okamžité doručování oznámení. Zobrazuje průběžné oznámení. Spotřebovává více baterie, ale zajišťuje, že nezmeškáte žádnou zprávu. Služba oznámení - Zapnuto - Vypnuto - Služba oznámení na pozadí - Hlavní vypínač pro oznámení na pozadí v reálném čase. Vypnutím ušetříte baterii — jako režim letadlo. Když je vypnutý, žádný účet nezůstává připojený na pozadí a zůstane vypnutý (i po restartech), dokud jej znovu nezapnete. - Účty aktivní na pozadí Ponechat tento účet aktivní na pozadí - Rozdělit oznámení podle sledovaných - Zobrazit dvě karty oznámení — Sledovaní (lidé, které sledujete) a Všichni. Indikátor nepřečtených svítí pouze pro aktivitu od lidí, které sledujete. - Zobrazit zprávy - Zahrnout přímé a skupinové zprávy na kartě Oznámení. Vypněte, aby zprávy zůstaly pouze na kartě Zprávy. - Upozornit: - Dnes - Skrýt - Ukázat - Varovat - Filtrovat spam - Skryje příspěvky od cizinců, které byly přesně stejné 5 a více krát - Přidávat klientský tag do mých událostí - Když je tato možnost zapnutá, Amethyst připojuje k událostem, které publikuješ, klientský tag podle NIP-89. - Upozornit na hlášení - Zobrazí varovnou zprávu, když příspěvky mají 5 nebo více hlášení od vašich sledovaných - Skrývat příspěvky porušující pravidla komunity - Skryje příspěvky z komunitních feedů, když komunita zveřejní dokument s pravidly NIP-9B a událost by jím neprošla. Bez efektu, pokud komunita nemá strukturovaná pravidla. - Předvolby filtrování - Blokovaný obsah - Zatím jsi nezablokoval/a žádné uživatele. - V této relaci nebyly žádné účty označeny jako spam. - Žádná skrytá slova. Přidej slovo níže pro skrytí příspěvků, které ho obsahují. - Nebyly vybrány žádné typy reakcí. Dlouhým stiskem změňte - Číst z Relay - Zapisovat do Relay - Množství bajtů, které bylo odesláno na toto relé, včetně filtrů a událostí - Množství bajtů, které bylo přijato z tohoto relé, včetně filtrů a událostí - Zásady ochrany soukromí - Standardy ochrany dětí - O aplikaci a právní informace - Cashu Token - Není nastavena žádná Lightning adresa - Rele - Balíčky Sledování - Přečtené - Algoritmy kanálu - Trh - Živé vysílání - Komunity - Chaty - Citlivý obsah - Před zobrazením tohoto obsahu přidá upozornění na citlivý obsah. - Nastavení rozhraní Nastavení aplikace - Překlady - Reakce - Nastavení - Nastavení účtu - Nastavení aplikace - Nebezpečná zóna - Resetovat stav Marmot - Stav Marmot byl resetován. - Nepodařilo se resetovat stav Marmot: %1$s - Vždy - Neomezená WiFi - Nikdy - Wi-Fi - Kompletní - Zjednodušené - Výkonost - Plná - Jednoduchá - Rychlá - Klasický - Moderní - Systém - Světlý - Tmavý - Vzhled - Média a data - Obecné - Připojení - Směrovat přes Tor - Sekce a kanály - Viditelné karty - Obsah v kanálu - Textové poznámky - Sdílení - Komentáře a odpovědi - Obrázky - Videa - Krátká videa - Články - Wiki stránky - Zvýraznění - Ankety - Inzeráty - Torrenty - Hlasové zprávy - Živé aktivity - Dočasné chaty - Interaktivní příběhy - Šachové partie - Pozorování ptáků - Atestace - Návrhy NIP - Hudba a zvuk - Podcasty - Sbírky - Hodnocení a recenze - Hodnoceno %1$s z 5 - Výukový materiál - Adresář - Záznam souboru - - %1$d položka - %1$d položky - %1$d položky - %1$d položek - - - %1$d další položka - %1$d další položky - %1$d další položky - %1$d dalších položek - - Připomenutí - Připojení peněženky - Motiv - Fialová - Modrá - Zelená - Oranžová - Červená - Růžová - Písmo - Typ písma používaný v celé aplikaci - Výchozí systémové - Bezpatkové - Patkové - Neproporcionální - Systém - Sans - Serif - Mono - Velikost písma - Změna velikosti textu v celé aplikaci - Malá - Normální - Velká - Obrovská - Automaticky načítat obrázky/gif - Automaticky přehrávat videa - Automatické přehrávání videí - Náhled URL - Imersivní rolování - Skrýt navigační panely při rolování - Režim UI - Zvolte styl příspěvku - Styl galerie profilu - Zvolte styl galerie - Spamovací uživatelé - Ztlumené. Klikněte pro odztlumení - Zvuk zapnutý. Klikněte pro ztlumení - Přeskočit zpět o %d sekund - Přeskočit vpřed o %d sekund - Vyberte místo na mapě - Změnit místo na mapě - Lokace-Exkluzívní příspěvek - Uvidí to pouze následovníci umístění. Tvoji obecní následovníci to neuvidí. - - %1$d stopa - %1$d stopy - %1$d stopy - %1$d stop - - - +%1$d další stopa - +%1$d další stopy - +%1$d další stopy - +%1$d dalších stop - - Nahrát obrázek obalu - Vyberte čtvercový obrázek, který bude obalem této stopy. - Nahrát zvukový soubor - Vyberte MP3, WAV nebo FLAC. Při uložení bude nahrán na váš mediální server. - Nahrávání obalu a zvuku a publikování. Bude pokračovat, i když opustíte obrazovku. - Upravit playlist - Nahrát obrázek obalu - Vyberte čtvercový obrázek jako artwork pro tento playlist. - Nahrávám obal a zveřejňuji. Bude pokračovat, i když opustíte obrazovku. Veřejné Skupina - Soukromé - Šifrované skupiny - S podporou relayů - Soukromá zpráva - Přímé zprávy, šifrované end-to-end - Místnosti 1:1–5 - Chaty jeden na jednoho a malé skupiny s lidmi, které znáte. - Nová zpráva - Jeden na jednoho a malé skupiny - Šifrováno end-to-end - Později nelze přidat uživatele - Skupina Marmot - Větší soukromé skupiny - Vázáno na zařízení - Větší soukromé skupiny, které přerostou malé skupinové DM. - Vytvořit skupinu - Škáluje za hranice malých DM - Šifrovaný skupinový chat - Vázáno na zařízení — nezobrazí se, pokud se přihlásíte jinde - Komunita Concord - Komunity rozdělené podle kanálů - Pracovní prostory - Rozsáhlé komunity organizované podle kanálů nebo pracovních toků. - Vytvořit komunitu - Škáluje na obrovské komunity - Rozděleno podle kanálu / pracovního toku - Více nastavování - Veřejný chat - Veřejné zprávy na relayi - Bez moderování - Otevřené veřejné místnosti, kde může přispívat kdokoli. - Vytvořit veřejný chat - Kdokoli se může připojit - Jednoduché a snadno objevitelné - Pouze veřejné - Žádné moderování - Relay skupina - Provozováno relayem, veřejné nebo soukromé - Moderováno - Skupiny moderované relayem, který je hostuje. - Procházet relay skupiny - Moderováno relayem - Veřejné nebo soukromé - Vázáno na jeden konkrétní relay - Mizející chat - Kdokoli je právě online - Živě teď - Chat v daném okamžiku s kýmkoli, kdo je právě online. - Zahájit chat - Mluvte s tím, kdo je právě online - Nic se neukládá - Žádná historie - Omezeno na relay - Skupiny relay - Skupiny relay - Zprávy - Soukromé zprávy - Přímé zprávy s koncovým šifrováním a gift-wrap obálkou (NIP-17). - Starší přímé zprávy - Starší, méně soukromé šifrované přímé zprávy (NIP-04). - Veřejné kanály - Otevřené veřejné chatovací místnosti, které si může kdokoli přečíst a připojit se k nim (NIP-28). - Skupiny na relayi - Skupinové chaty spravované relayem se seznamy členů a moderací (NIP-29). - Šifrované skupiny - Skupinové chaty s koncovým šifrováním MLS (Marmot). - Komunity Concord - Šifrované komunity s více kanály (Concord). - Chaty podle místa - Veřejný chat vázaný na geohash pro dané místo (Geolokace). - Dočasné chaty - Odlehčené místnosti vázané na relay, které neuchovávají historii. - Vytvořit skupinu - Nový kanál - Nové fórum - Soukromý kanál - Skrytý ze seznamu kanálů a jen na pozvání. Vypnuto znamená, že ho může najít a připojit se k němu kdokoli na tomto relayi. Fórový kanál Vláknové příspěvky místo chatové časové osy. Toto nelze později změnit. Název skupiny @@ -1489,35 +155,19 @@ Vytvořit Vytváření pozvánky… Kód pozvánky zkopírován - Upravit skupinu Název skupiny Téma (volitelné) Soukromá (čtení jen pro členy) Pouze na pozvání Uložit - Smazat skupinu - Smazat „%1$s“? Odstraní to skupinu a její historii pro všechny a nelze to vrátit zpět. - Smazat kanál - Smazat „%1$s“? Odstraní to kanál a jeho zprávy pro všechny a nelze to vrátit zpět. - Archivovat kanál - Zrušit archivaci kanálu Změnit místo - Soukromá - Zprávy mohou číst pouze členové. Hledání skupin napříč vašimi relayi… Pro tento filtr zatím nebyly nalezeny žádné skupiny. - Název Napište něco… Přispět Přidáno do %1$s - - %1$d člen - %1$d členové - %1$d člena - %1$d členů - %1$d zpráva %1$d zprávy @@ -1536,320 +186,30 @@ %1$d osoby, které sledujete %1$d osob, které sledujete - - %1$d skupina - %1$d skupiny - %1$d skupiny - %1$d skupin - Soukromé - Předmět - Nelze nahrát - Nejdříve vložte cíl zprávy - Peněženka nebyla nalezená - Amethyst nenašel žádné aplikace peněženek, které podporují Nostr Wallet Connect (NWC). -\n\nCo můžete udělat: -\n\t1. Ověřte podporu NWC: Zkontrolujte, že vaše oblíbená peněženka podporuje Nostr Wallet Connect. -\n\t2. Vytvořte připojení: Otevřete svou peněženku a vytvořte nové NWC připojení. -\n\t3. Propojte s Amethyst: Vaše peněženka obvykle nabídne tři možnosti: -\n\t\t3.1 Automatické propojení: Tlačítko pro automatické otevření a připojení k Amethyst. Klikněte na něj, otevřete Amethyst a uložte na nové obrazovce. -\n\t\t3.2 Ruční propojení: URI připojení, které můžete zkopírovat a vložit přes ikonu vložení na této obrazovce. -\n\t\t3.3 QR kód: Peněženka vytvoří QR kód, který můžete naskenovat pomocí tlačítka QR kódu na této obrazovce. - Tmavé, světlé nebo systémové téma - Automaticky načítat obrázky a GIFy - Automaticky přehrávat videa a GIFy - Automaticky přehrávat videa, když jsou viditelná na obrazovce - Zobrazit náhledy URL - Kopírovat do schránky - Zkopírováno do schránky - Sdílet nebo Uložit Odeslat jako DM Nové zvýraznění Nový obrázek Nové krátké video Nové video - Nové zvýraznění Zvýrazněný text - Přidejte své myšlenky… - Média přidána - Média přidána do vaší profilové galerie - Nelze odeslat zap - Chybí nastavení blesku - Uživatel %1$s nemá nastavenou bleskovou adresu pro přijímání satoshi - Chyba při otevírání aplikace pro podpis - Signner aplikace nebyla nalezena. Zkontrolujte, zda aplikace nebyla odinstalována - Toto video nelze přehrát - Tento kodek nebo formát není na tomto zařízení podporován (%1$s). Zkuste jej otevřít v prohlížeči. - Otevřít v prohlížeči - Požadavek na podpis byl zamítnut - Ujistěte se, že podepisující aplikace autorizovala tuto transakci - Nebyly nalezeny žádné peněženky pro platbu bleskové faktury (Chyba: %1$s). Prosím, nainstalujte si bleskovou peněženku pro použití Zapů - Nebyly nalezeny žádné peněženky pro platbu bleskové faktury. Prosím, nainstalujte si bleskovou peněženku pro použití Zapů - Nelze otevřít Blossom odkazy - Nebyly nalezeny žádné aplikace Blossom. Nainstalujte prosím lokální aplikaci Blossom pro zobrazení tohoto souboru - Skrytá slova - Ztlumená vlákna - Žádná ztlumená vlákna - Profilový obrázek - Zobrazit profilové obrázky - Nelze zaplatit fakturu - Nepodařilo se vybrat - Nepodařilo se použít Cashu - Mint poskytl následující chybovou zprávu: %1$s - Nebezpečná adresa Cashu mintu - Amethyst nekontaktoval mint tohoto tokenu. %1$s - Obdrženo Cashu - %1$s sats bylo odesláno do vaší peněženky. (Poplatek: %2$s sats) - V systému nebyla nalezena žádná kompatibilní peněženka Cashu - Nebylo možné načíst fakturu ze serverů příjemce - Poskytovatel připojení vaší peněženky vrátil následující chybu: %1$s - Váš poskytovatel Wallet Connect odeslal odpověď, kterou Amethyst nedokázal přečíst. - Nepodařilo se sestavit LNUrl z Lightning adresy \"%1$s\". Zkontrolujte nastavení uživatele - Nelze získat fakturu z %1$s: %2$s - Chyba při analýze JSON z %1$s. Zkontrolujte uživatelské bleskové nastavení - Adresa URL zpětného volání nebyla nalezena v odpovědi %1$s - Nesprávná částka faktury(%1$s sats) od %2$s. Měla by být %3$s - Nepodařilo se vytvořit bleskovou fakturu před odesláním zap. Blesková peněženka příjemce odeslala následující chybu: %1$s - Uživatel pouze pro čtení - Žádné nastavení reakcí - Oznámení - Doručování - Zobrazení v aplikaci - Kategorie - Zpráva od %1$s - Zablokovat relay - Ahoj %1$s, je to stále k dispozici? - Oblečení - Příslušenství - Elektronika - Nábytek - Sběratelské předměty - Knihy - Domácí zvířata - Sportovní - Fitness - Umění - Vyrobí - Domovský - Kancelář - Potraviny - Různé - Ostatní - Nepodařilo se nahrát média - Nepodařilo se otevřít komprimovaný soubor - Chyba při nahrávání: %1$s - Server po nahrání neposkytl URL - Nepodařilo se stáhnout nahraná média ze serveru - Nelze zkontrolovat stažený soubor po nahrání: %1$s - Nepodařilo se dosáhnout %1$s: %2$s - Smazání selhalo: %1$s - Média je příliš velká pro NIP-95 - Šifrovat soubory - Šifrovat soubory před nahráním pro ochranu soukromí. Některé servery nemusí přijímat šifrované soubory na bezplatných účtech. - Šifrované nahrávání selhalo - Mnoho serverů nepřijímá šifrované soubory na bezplatných účtech. Můžete to zkusit znovu bez šifrování. - Použít kodek H.265/HEVC - Lepší kvalita při menší velikosti souboru, ale ne všechna zařízení podporují přehrávání H.265. - Převést GIF na MP4 - Převede animovaný GIF na video MP4 pro menší velikost souboru a lepší kompatibilitu přehrávání. - Odstranit soukromá metadata - Pokusí se odstranit soukromá metadata z podporovaných mediálních souborů před nahráním - Metadata nelze odstranit - Nepodařilo se odstranit soukromá metadata z média. Nahrávání zrušeno. - Nahrávání zrušeno - Nelze odstranit metadata z AVIF: %1$s - Domů - Objevit - Zprávy - Upozornění - Média - Kalendáře - Seznamy kalendářů - Šachy - Peněženka - Nepodařilo se načíst transakce - Nepodařilo se načíst další transakce - Nepodařilo se načíst váš zůstatek - Nepodařilo se vytvořit fakturu - Vaše peněženka nevrátila fakturu - Vypršel časový limit požadavku na peněženku - Nepodařilo se spojit s vaší peněženkou: %1$s - Vaše peněženka odpověděla něčím, co Amethyst nezná (%1$s) - Amethyst nedokázal dešifrovat odpověď vaší peněženky — peněženka možná používá jiný klíč - Peněženka Cashu (NIP-60) Klíč pro nutzap (pokročilé) Samostatný soukromý klíč používaný pouze k příjmu nutzapů NIP-61. Není to klíč vaší identity Nostr. Vygenerovat nový klíč Soukromý klíč P2PK (hex) - Upravit peněženku Cashu Uložit změny - - +%1$d další - +%1$d další - +%1$d dalšího - +%1$d dalších - - - Doporučuje %1$d další - Doporučují %1$d další - Doporučuje %1$d dalšího - Doporučuje %1$d dalších - - Oblíbené minty - Odpovídající minty - Přijato - Odesláno - Publikovat žádost o smazání vašeho doporučení kind:38000 pro %1$s. Relaye, které dodržují NIP-09, jej odstraní. - Obnoveno %1$s sats z %2$s proofů. - Zaplatit %1$s sat + až %2$s sat na poplatcích? - Nutzap selhal - V poznámce chybí veřejný klíč příjemce - Nutzapy jsou veřejné a odhalily by tuto soukromou poznámku. Použij raději Lightning zap. - Nelze sestavit odkaz na událost - Čekám na zaplacení faktury… - Kontroluji mint… - Pomalé - Normální - Rychlé - ~1 hod - ~30 minut - ~10 minut - %1$s · %2$s sat/vB · %3$s - - Odeslat %1$s sats, %2$d cestou - Odeslat %1$s sats, %2$d cestami - Odeslat %1$s sats, %2$d cesty - Odeslat %1$s sats, %2$d cestami - - - Použít %1$d-cestné rozdělení zapu z této poznámky - Použít %1$d-cestné rozdělení zapu z této poznámky - Použít %1$d-cestné rozdělení zapu z této poznámky - Použít %1$d-cestné rozdělení zapu z této poznámky - - - Rozdělí mezi %1$d příjemce - Rozdělí mezi %1$d příjemce - Rozdělí mezi %1$d příjemce - Rozdělí mezi %1$d příjemců - - - Přeskakuje se %1$d příjemce pouze s Lightning adresou — on-chain potřebuje Nostr veřejný klíč k odvození adresy. - Přeskakují se %1$d příjemci pouze s Lightning adresou — on-chain potřebuje Nostr veřejný klíč k odvození adresy. - Přeskakuje se %1$d příjemce pouze s Lightning adresou — on-chain potřebuje Nostr veřejný klíč k odvození adresy. - Přeskakuje se %1$d příjemců pouze s Lightning adresou — on-chain potřebuje Nostr veřejný klíč k odvození adresy. - - načítání zůstatku - sestavování transakce - podepisování - odesílání - zveřejňování potvrzení - Backend bitcoinového řetězce není nakonfigurován - Nepodařilo se načíst tvůj bitcoinový zůstatek - Transakci se nepodařilo sestavit - Podíl jednoho z příjemců je pod hranicí prachu - Transakci se nepodařilo podepsat - Transakci se nepodařilo odeslat - Platba byla odeslána, ale potvrzení zapu se nepodařilo zveřejnit - - Platba odeslána (zveřejněno %1$d z %2$d potvrzení), ale další potvrzení se nepodařilo zveřejnit - Platba odeslána (zveřejněna %1$d z %2$d potvrzení), ale další potvrzení se nepodařilo zveřejnit - Platba odeslána (zveřejněno %1$d z %2$d potvrzení), ale další potvrzení se nepodařilo zveřejnit - Platba odeslána (zveřejněno %1$d z %2$d potvrzení), ale další potvrzení se nepodařilo zveřejnit - - Importovat sledované - Nový produkt - Nový článek - Nová událost kalendáře - Upravit událost kalendáře - Nový kalendář - Upravit kalendář - Kanál - Měsíc - Týden - Den - - %1$s, %2$d událost - %1$s, %2$d události - %1$s, %2$d událostí - %1$s, %2$d událostí - - Probíhá nyní - %1$s · končí %2$s - Sdílet událost kalendáře - calendar_reminders - Připomenutí kalendáře - Upozornění, když je událost, které se účastníte, blízko začátku. - Událost kalendáře - - Začíná za %1$d minutu - Začíná za %1$d minuty - Začíná za %1$d minut - Začíná za %1$d minut - - Nahrání obrázku selhalo - Vybraný obrázek se nepodařilo nahrát. Zkuste to znovu nebo vložte URL. - Připomenutí kalendáře - Posílat připomenutí - Oznámení se spustí, když je událost, které se účastníte, blízko začátku. - - %1$d min - %1$d min - %1$d min - %1$d min - - Otevřít v mapách - Otevřít odkaz - Otevřít všechny reakce pro tento příspěvek - Zavřít všechny reakce na tento příspěvek - Zap - Spodní navigační lišta Přetažením změníte pořadí. Přepnutím položku přidáte nebo odeberete ze spodní lišty. S nulovým počtem položek bude lišta skryta. Změnit pořadí - Zatím žádné oblíbené. Označte aplikaci hvězdičkou v prohlížeči a přidejte ji sem. - Zatím žádné připojené skupiny. - Přidat - Přidáno - Hlavní - Chaty a skupiny - Vy - Kanály - Aplikace a web - Ostatní - Boční nabídka - - %1$d skrytá - %1$d skryté - %1$d skrytých - %1$d skrytých - - Viditelné - Skryté - Vždy zapnuto Vyberte, které záložky se zobrazí na domovské obrazovce. Pokud je aktivní jen jedna záložka, lišta záložek se skryje. - Vše - Vzhled profilu Vyberte, které sekce a kanály se zobrazí na profilových obrazovkách uživatelů. Všechny možnosti jsou ve výchozím nastavení povoleny. - Profilové odznaky - Doporučení aplikací - Kanál přijatých zapů - Kanál sledujících - Bitcoin (on-chain) peněženka - Nastavení reakcí - Tlačítka přehrávače videa - Vizualizér zvuku - Upravit - Upravit - Úprava zprávy - %1$s a %2$s píší… Pracovní prostory Buzz Kde lidé a agenti tvoří společně Opustit pracovní prostor @@ -1865,69 +225,6 @@ Přidat Nenalezeny žádné kanály Zdá se, že zatím nejste členem žádného kanálu na tomto relayi. Nejprve přijměte pozvánku do pracovního prostoru v prohlížeči a pak to zkuste znovu. - Připnout kanál - Odepnout kanál - - %1$d skrytá konverzace - %1$d skryté konverzace - %1$d skryté konverzace - %1$d skrytých konverzací - - - Zobrazit další %1$d konverzaci - Zobrazit všechny %1$d konverzace - Zobrazit všech %1$d konverzace - Zobrazit všech %1$d konverzací - - Čekání, až relay přijme tuto zprávu - Žádné informace o relayi pro tuto zprávu - Přijato alespoň jedním relayem - Doručeno na relaye všech příjemců - Datum vypršení - Autor požádal relaye, aby tuto poznámku po %1$s smazaly. Po vypršení zmizí z kanálů. - Neplatná adresa - Amethyst obdržel URI k otevření, ale tento URI byl neplatný: %1$s - Relé DM Schránky - Vyhledávací relé - Dobré možnosti jsou:\n%1$s - Relaye pro odesílání - Relaye pro přijímání - Nastavení relé - Veřejná domácí relé - Uživatel zveřejňuje svůj obsah na těchto přenašečích - Tento typ relé ukládá veškerý váš obsah. Amethyst sem pošle vaše příspěvky a ostatní použijí tato relé, aby našli váš obsah. Vložte mezi 1–3 relé. Mohou to být osobní relé, placená relé nebo veřejná relé. - Veřejná schránka relé - Uživatel přijímá oznámení na těchto přenašečích - Tento typ relé přijímá všechny odpovědi, komentáře, lajky a zaps k vašim příspěvkům. Vložte mezi 1–3 relé a ujistěte se, že přijímají příspěvky od kohokoli. - DM schránka relé - Uživatel přijímá soukromé zprávy na těchto přenašečích - Vložte mezi 1–3 relé, která budou sloužit jako vaše soukromá schránka. Ostatní použijí tato relé k posílání DM zpráv vám. DM schránka relé by měla přijímat jakékoli zprávy od kohokoli, ale pouze vám umožnit jejich stahování. Dobré možnosti jsou:\n - inbox.nostr.wine (placené)\n - you.nostr1.com (osobní relé - placené) - KeyPackages - KeyPackage relays - Relays, kde jsou publikovány vaše MLS KeyPackages (MIP-00). Ostatní uživatelé je stahují, aby vás mohli pozvat do Marmot skupinových chatů. Vložte 1–3 relays, které přijímají KeyPackage události od vás a umožňují veřejné čtení. - Soukromá relé - Vložte mezi 1–3 relé pro ukládání událostí nikoho jiného, jako jsou koncepty a/nebo nastavení aplikace. V ideálním případě jsou tato relé buď lokální, nebo vyžadují autentizaci před stažením obsahu každého uživatele. - Připojené přenašeče - Aktuální seznam používaných přenašečů - Vyhledávací relé - Seznam relé, která se používají k vyhledávání a označování uživatelů. Označování a vyhledávání nebude fungovat, pokud nejsou k dispozici žádné možnosti. - Lokální relé - Seznam relací, které jsou v tomto zařízení spuštěny. - Přeposílat profily do místního relé - Odeslat všechny přijaté profilové události (kind 0) do místního relé - Důvěryhodné přenašeče - Přenašeče, kterým důvěřujete a nepotřebujete Tor - Oblíbené feedy relayí - Relaye, které často navštěvujete pro zobrazení jejich globálního feedu - Proxy přenašeče - Agregační přenašeče, které aplikace používá ke stahování vašich zdrojů, jako např. filter.nostr.wine - Vysílací Relé - Relé, které šíří vaše poznámky do ostatních přenašečů, jako např. sendit.nosflare.com - Indexační Relé - Relé, které uchovávají metadata a seznamy přenašečů, např. purplepag.es - Blokované Relé - Amethyst se k těmto relé nikdy nepřipojí - Exportovat nastavení relé Internet: Přehled Spravuje @@ -1936,675 +233,40 @@ Správci Témata Readme - - %1$d položka - %1$d položky - %1$d položky - %1$d položek - Uzavřít problém Znovu otevřít - Git repozitáře - Zvýraznění - Filtrovat repozitáře - Zavřít filtr - Důkaz časového razítka - Existuje důkaz, že tento příspěvek byl podepsán někdy před %1$s. Důkaz byl označen v Bitcoin blockchainu v tomto datu a čase. - Byl vyžádán důkaz časového razítka pro tento příspěvek a čeká na zaznamenání do blockchainu Bitcoinu. Obvykle to trvá několik hodin. - Upravit příspěvek - Není možné odpovědět na koncept - Není možné citovat koncept - Není možné reagovat na koncept - Není možné poslat zap konceptu - Koncept - Špatný požadavek - Server nemůže nebo nechce zpracovat požadavek. - Neautorizovaný - Uživatel nemá platné přihlašovací údaje - Požadována platba - Server vyžaduje platbu pro dokončení požadavku - Zakázáno - Uživatel nemá přístupová práva k provedení požadavku - Nenalezeno - Server nemůže najít požadovanou adresu - Metoda není povolena - Server podporuje metodu požadavku, ale ne cílový zdroj - Nepřijatelné - Server nenachází žádný obsah, který by vyhovoval požadavku. - Vyžadováno ověření proxy - Uživatel nemá platné přihlašovací údaje - Časový limit požadavku - Server čekal na někoho jiného příliš dlouho - Konflikt - Server nemůže splnit požadavek, protože existuje konflikt se zdrojem - Pryč - Požadovaný obsah byl trvale odstraněn ze serveru a nebude obnoven - Požadována délka - Server odmítá požadavek, protože vyžaduje definovanou délku - Předpoklad selhal - Předpoklady požadavku v hlavičkách, které server nesplňuje - Příliš velký obsah - Požadavek je větší než definované limity serveru a server odmítá jej zpracovat - Příliš dlouhá URI - URL požadovaná klientem je příliš dlouhá na to, aby ji server zpracoval. - Nepodporovaný typ média - Požadavek používá formát média, který server nepodporuje - Rozsah nesplnitelný - Server nemůže splnit hodnotu uvedenou v hlavičce rozsahu požadavku. - Očekávání selhalo - Server nemůže splnit požadavky uvedené v hlavičce očekávání požadavku - Vyžadována aktualizace - Server odmítá zpracovat požadavek s aktuálním protokolem, pokud klient neaktualizuje na jiný protokol. - Interní chyba serveru - Server narazil na neočekávanou chybu a nemůže dokončit požadavek - Nerealizováno - Server nemůže splnit požadavek nebo nerozpoznává metodu požadavku - Špatná brána - Server funguje jako brána a obdržel neplatnou odpověď od hostitele - Služba nedostupná - K tomu často dochází, když je server přetížený nebo je v údržbě - Časový limit brány - Server fungoval jako brána nebo proxy a čekal na odpověď příliš dlouho - Verze HTTP není podporována - Server nepodporuje verzi HTTP v požadavku - Varianta také vyjednává - Server má interní konfigurační chybu - Nedostatečné úložiště - Server nemá dostatek úložiště, aby úspěšně zpracoval požadavek - Detekována smyčka - Server detekuje nekonečnou smyčku při zpracování požadavku - Vyžadováno ověření sítě - Klient musí být autentizován, aby získal přístup k síti Blossom Servery Přidejte tolik serverů, kolik chcete. Můžete si vybrat, které použít později při nahrávání obrázku - Přidat NIP-96 server - Přidat Blossom Server Stáhnout - Nepodařilo se otevřít soubor - Pro otevření a stažení souboru nejsou nainstalovány žádné torrent aplikace. - Událost nemá dostatek informací pro vytvoření magnet odkazu - Moje seznamy - Kanály - Hashtagy - Sady zájmů - Lokace - Komunity - Seznamy - Algoritmy zdrojů - Všechny oblíbené algoritmy zdrojů - Relé - Oblíbené algoritmy zdrojů - Soukromá zpráva - Veřejná zpráva - Nelze sdílet obrázek, zkuste to prosím později… - Video nelze sdílet, zkuste to prosím později… - Stahování videa… - Nepřekládat z - Zde zobrazené jazyky nebudou přeloženy. Vyberte jazyk, který chcete odstranit a nechat je znovu přeložit. - Přeložit do - Vyberte jazyk, do kterého chcete obsah přeložit. - Předvolby zobrazení jazyka - Pro každý přeložený jazykový pár zvolte, který jazyk zobrazit jako první. - Pozastavit - Hrát - Využití prostředků aplikací - baterie data využití spotřeba energie síť diagnostika záznam Dnes Posledních 7 dní - Mobilní data dnes - Wi-Fi dnes - Čas relaye dnes - V aplikaci dnes - Data za den - Mobilní (MB) - Wi-Fi (MB) - Aktivita (7 dní) Mobilní data (na pozadí) Mobilní data (v aplikaci) Data Wi-Fi - Čas připojení k relayi - … na pozadí přes mobilní data - Zpracování upozornění (procesor bdělý) - Spuštěné úlohy na pozadí - Opětovná připojení k relayi (neúspěšná) - Webové požadavky - Probuzení rádia kvůli stahování (odhad) - Čas aktivního přenosu - Čas přehrávání médií - Ověřené podpisy - Využitý čas procesoru Čas v aplikaci - Spuštění procesu aplikace - Dešifrované zprávy - Vzdálené podpisy - Těžba proof-of-work - Doba běhu Tor - Čas v hovorech - Čas v audio místnostech - Naslouchání poloze - Spotřeba baterie (v aplikaci / na pozadí) - Služba upozornění na pozadí - Doba běhu - - %1$d spuštění - %1$d spuštění - %1$d spuštění - %1$d spuštění - - Spojení s relayi držená při zavřené aplikaci - Baterie mezitím vybita (celé zařízení) - Baterie / hodinu v aplikaci - Data / hodinu v aplikaci - Prům. spojení s relayi - Mobilní data podle funkce (7 dní) - Čas podle obrazovky (7 dní) - Vestavěný Tor - Data podle funkce (7 dní) - Synchronizace relaye - Obrázky - Video a audio - Nahrávání - Peněženka a zapy - Ověření adresy - Náhledy odkazů - Registrace push - Ostatní - Paměť právě teď - Paměť aplikace (halda) - Nativní paměť - Mezipaměť obrázků (RAM) - Mezipaměť obrázků (disk) - Poznámky v paměti - Profily v paměti - Adresovatelné události v paměti - Seznamy chatů v paměti - Paměťová třída zařízení - Sdílet s vývojáři - Sdílet - Amethyst nedávno spotřeboval více, než se očekávalo: %1$s. Chcete vývojářům odeslat report o využití v šifrované DM? Před odesláním čehokoli uvidíte celý report. - %1$s mobilních dat na pozadí za jeden den - %1$s spojení s relayi na pozadí přes mobilní data za jeden den - procesor byl udržován v bdělém stavu %1$s zpracováváním upozornění za jeden den - - proces aplikace se za jeden den restartoval %1$dkrát - proces aplikace se za jeden den restartoval %1$dkrát - proces aplikace se za jeden den restartoval %1$dkrát - proces aplikace se za jeden den restartoval %1$dkrát - - - aplikace se za jeden den znovu připojila k relayům %1$dkrát - aplikace se za jeden den znovu připojila k relayům %1$dkrát - aplikace se za jeden den znovu připojila k relayům %1$dkrát - aplikace se za jeden den znovu připojila k relayům %1$dkrát - - Tato zpráva zmizí za %1$s - Metadata seznamu sledování - Metadata seznamů sledování mohou vidět všichni na Nostr. Pouze vaši soukromí členové jsou šifrovaní. - Metadata sady doporučení - Metadata sad doporučení mohou vidět všichni na Nostr a často jsou zveřejňována na různých webech jako startovací sady pro nové uživatele. - Upravit sadu doporučení - Rozbalit - Opakovat - Reakce - Hlasový příspěvek - Hlasová odpověď - - · %1$d výběr - · %1$d výběry - · %1$d výběru - · %1$d výběrů - - Načteno %1$d z %2$d odpovědí z %3$d relé. - Načteno %1$d z přibližně %2$d odpovědí z %3$d relé. - - %1$d hlas › - %1$d hlasy › - %1$d hlasu › - %1$d hlasů › - - - %1$d hlasující - %1$d hlasující - %1$d hlasujícího - %1$d hlasujících - - - %1$d hlas dorazil po uzavření ankety a je vyloučen. - %1$d hlasy dorazily po uzavření ankety a jsou vyloučeny. - %1$d hlasu dorazilo po uzavření ankety a je vyloučeno. - %1$d hlasů dorazilo po uzavření ankety a je vyloučeno. - - - %1$d hlas má datum před zveřejněním ankety a je vyloučen. - %1$d hlasy mají datum před zveřejněním ankety a jsou vyloučeny. - %1$d hlasu má datum před zveřejněním ankety a je vyloučeno. - %1$d hlasů má datum před zveřejněním ankety a je vyloučeno. - - - %1$d odpověď nevybrala platnou možnost a je vyloučena. - %1$d odpovědi nevybraly platnou možnost a jsou vyloučeny. - %1$d odpovědi nevybralo platnou možnost a je vyloučeno. - %1$d odpovědí nevybralo platnou možnost a je vyloučeno. - - - %1$d hlasující je skryt vaším seznamem ztlumených. - %1$d hlasující jsou skryti vaším seznamem ztlumených. - %1$d hlasujícího je skryto vaším seznamem ztlumených. - %1$d hlasujících je skryto vaším seznamem ztlumených. - - Outbox relaye - Aplikace - Doporučení aplikací - Uživatelská nastavení - Audio hlavička - Audio stopa - Hudební stopa - Hudební playlist - Epizoda podcastu - Podcast - Vytvořené podcasty - Oblíbené podcasty - Ocenění odznaků - Definice odznaků - Přijatá sada odznaků - Profilové odznaky - Blokované relaye - Blossom servery - Servery Nests - Blossom ověření - Broadcast relaye - Seznam záložek - Starý seznam záložek - Denní schůzka - Kalendář - Schůzka - RSVP na schůzku - Šachové hry - Šachové ověření - Oblíbené relaye - Šachové výzvy - Přijetí šachové hry - Šachový tah - Konec šachové hry - Nabídka remízy - Definice kanálu - Skrýt zprávu kanálu - Seznam kanálů - Zpráva kanálu - Metadata kanálu - Ztlumit uživatele v kanálu - Soubor DM - Zpráva DM - DM relaye - Inzeráty - Komentáře - Definice komunity - Seznam komunit - Příspěvek komunity - Seznam sledovaných - Smazání - Koncepty - Balíčky emoji - Seznam balíčků emoji - Dočasný chat - Dočasné chatovací místnosti - Hlavičky souborů - Galerie profilu - Souborové servery - Blob data - Blob hlavičky - Lékařská data - Balíčky sledování - Reposty (16) - Sledování geohashe - Dárkové balíčky - Git problém - Git záplata - Git repozitář - Git odpověď - Pull request - Aktualizace PR - Git stav: Otevřeno - Git stav: Aplikováno - Git stav: Uzavřeno - Git stav: Koncept - Cíle zapů - Sledované hashtagy - Zvýraznění - HTTP ověření - Seznam indexovacích relayů - Prolog dobrodružství - Scéna dobrodružství - Čtení dobrodružství - Pojmenované záložky - Živé chaty - Živé přenosy - Zapy - NWC požadavek - NWC odpověď - Soukromé zapy - Požadavek zapu - Blogy - Místnost schůzky - Přítomnost v místnosti - Prostor schůzky - Profil - Seznam ztlumených - NNS - NIP - Nostr Connect - Stav DVM - Požadavek na obsah DVM - Odpověď obsahu DVM - Požadavek uživatele DVM - Odpověď uživatele DVM - OTS - Platba na - Seznamy lidí - Obrázky - Tréninky - Připnuté - Zap anketa - Anketa - Odpověď na anketu - NIP-04 soukromé zprávy - Soukromé relaye - Proxy relaye - Veřejná zpráva - Reakce - Kontaktní karta - Ověření relay - Objevování relayí - Oznámení monitoru relayí - Sada relayů - Nahlášení - Sdílení - Smazání uživatele - Pečetě - Vyhledávací relaye - Stav uživatele - Poznámky - Úpravy - Torrenty - Komentáře k torrentu - Důvěryhodné relaye - Důvěryhodní poskytovatelé - Video (odpověď) - Krátká videa (odpověď) - Video - Krátká videa - Hlasová zpráva - Hlasová odpověď - Probuzení - Webová záložka - Wiki - %1$d%% dostupnost - Nastavení Namecoin - %dms - Synchronizace relé - Průzkumník Bitcoin (OTS) - události od vás - události pro vás - vyhledatelné události - DMs - profily - odchozí seznamy - Naposledy viděn před %1$s - Naposledy viděn %1$s (před %2$s) - Naposledy viděn právě teď - Nikdy neviděn - - %1$d minuta - %1$d minuty - %1$d minut - %1$d minut - - - %1$d hodina - %1$d hodiny - %1$d hodin - %1$d hodin - - - %1$d den - %1$d dny - %1$d dnů - %1$d dnů - - - %1$d týden - %1$d týdny - %1$d týdnů - %1$d týdnů - - - %1$d měsíc - %1$d měsíce - %1$d měsíců - %1$d měsíců - - - %1$d rok - %1$d roky - %1$d let - %1$d let - - - %1$d mint - %1$d minty - %1$d mintů - %1$d mintů - - - %1$d čekající faktura - %1$d čekající faktury - %1$d čekající faktury - %1$d čekajících faktur - - - Prostředky uloženy v %1$d mintu, který nepoužíváte - Prostředky uloženy v %1$d mintech, které nepoužíváte - Prostředky uloženy v %1$d mintu, který nepoužíváte - Prostředky uloženy v %1$d mintech, které nepoužíváte - - Přesunuto %1$s sat do %2$s. - Odeslat do zařízení - Ukončit odesílání - HLS nahrávání - Nahrávání %1$s (%2$d z %3$d) - Atestace - Žádost o atestaci - Doporučení atestátora - Odbornost atestátora - Webové záložky - Přidat webovou záložku - Upravit webovou záložku - %1$s financováno z %2$s sats cíle - Nový cíl - Žádost o zmizení - Žádost o zmizení odeslána - Historie zmizení - Uživatelé - Události - Druhy - IP adresy - Nastavení - Navrhovat vylepšení textu - Používá AI model běžící v zařízení k navrhování oprav textu a změn tónu. - Sledovaná vysílání - Použít sledovaného vysílače při odesílání událostí. Zobrazuje živý průběh a stav jednotlivých relayů během vysílání. - Navrhovat tréninky ke sdílení - Načítá dokončené tréninky z Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) a navrhuje jejich sdílení jako příspěvek. O oprávnění se žádá pouze při připojení. - Nastavení editoru - Automaticky vytvářet koncepty - Automaticky uloží koncept události, když píšeš nebo opouštíš editor s neodeslaným textem, a odešle ho na tvé soukromé odchozí relaye. - Proof of Work - Autor vynaložil výpočetní výkon na vytěžení této poznámky na obtížnost %1$s — proof-of-work razítko, které zdražuje spamování. - Krátké poznámky a odpovědi - Hlavní veřejná plocha pro spam - Komentáře - Odpovědi na články, soubory a jiný obsah - Nahlášení - Relaye váží nahlášení podle jejich nákladů - Dlouhé texty a zvýraznění - Články a zvýraznění; zřídkavé, náklady jsou zanedbatelné - Hlasové zprávy - Veřejné hlasové příspěvky a odpovědi - Přeposlání - Vysoký objem pro aktivní uživatele - Reakce - Nejobjemnější druh; těžení každého lajku stojí baterii - Veřejný a živý chat - Prodlevy při těžení narušují plynulost konverzace - Obálky soukromých zpráv - Umožňuje DM relayům filtrovat spam ve schránce; těží se pouze vnější obálka, nikdy vaše zpráva - Jiný veřejný obsah - Ankety, živé statusy, inzeráty a vše ostatní veřejné - Těžení proof of work - - Těžení proof of work… (%1$d příspěvek ve frontě) - Těžení proof of work… (%1$d příspěvky ve frontě) - Těžení proof of work… (%1$d příspěvku ve frontě) - Těžení proof of work… (%1$d příspěvků ve frontě) - - - %1$s • těžení na %2$d bitu - %1$s • těžení na %2$d bitech - %1$s • těžení na %2$d bitu - %1$s • těžení na %2$d bitech - - - %1$s • čeká na těžbu na %2$d bitu - %1$s • čeká na těžbu na %2$d bitech - %1$s • čeká na těžbu na %2$d bitu - %1$s • čeká na těžbu na %2$d bitech - - - Výchozí (%1$d bit) - Výchozí (%1$d bity) - Výchozí (%1$d bitu) - Výchozí (%1$d bitů) - - - %1$d bit - %1$d bity - %1$d bitu - %1$d bitů - - Těžení proof of work - Zobrazuje příspěvky, které stále těží svůj NIP-13 proof of work, aby mohly dokončit těžbu i po opuštění aplikace. - Zrušit - Odeslat nyní - <1 s - - %1$d sekunda - %1$d sekundy - %1$d sekundy - %1$d sekund - - - %1$d minuta - %1$d minuty - %1$d minuty - %1$d minut - - - %1$d hodina - %1$d hodiny - %1$d hodiny - %1$d hodin - - - %1$d den - %1$d dny - %1$d dne - %1$d dní - - ≈ %1$s zbývá - každou chvíli - Váš %1$s dokončil těžbu, ale nepodařilo se jej publikovat: %2$s - Váš %1$s dokončil těžbu, ale nepodařilo se jej publikovat. Bude to zkuseno znovu při příštím spuštění aplikace. - Chatová zpráva - Nahlášení - Nový emoji balíček - Upravit emoji balíček - Moje emoji balíčky - Emoji - Veřejná emoji jsou viditelná pro všechny a objeví se ve vaší nabídce reakcí a v automatickém doplňování \":\", když je tento balíček ve vašem seznamu emoji. - Soukromá emoji jsou šifrovaně uložena na relayích a viditelná pouze pro vás. Objeví se ve vaší nabídce reakcí a v automatickém doplňování \":\" stejně jako veřejná. - Návrh má %1$d bajtů; tato komunita pro tento typ omezuje velikost na %2$d bajtů. - Návrh má %1$d bajtů; tato komunita omezuje velikost událostí na %2$d bajtů. - Dnes jsi již zveřejnil %1$d událostí tohoto typu (limit %2$d). - Stránka Nowhere - Nowhere Událost - Nowhere Sbírka - Nowhere Obchod - Nowhere Petice - Nowhere Zpráva - Nowhere Drop - Nowhere Umění - Nowhere Fórum - - %1$d zpráva - %1$d zprávy - %1$d zprávy - %1$d zpráv - - - %1$d člen - %1$d členové - %1$d člena - %1$d členů - - - Vaše peněženka neodpověděla do %1$d sekundy. Platba mohla, ale nemusela proběhnout — před opakováním zkontrolujte svou peněženku. - Vaše peněženka neodpověděla do %1$d sekund. Platba mohla, ale nemusela proběhnout — před opakováním zkontrolujte svou peněženku. - Vaše peněženka neodpověděla do %1$d sekund. Platba mohla, ale nemusela proběhnout — před opakováním zkontrolujte svou peněženku. - Vaše peněženka neodpověděla do %1$d sekund. Platba mohla, ale nemusela proběhnout — před opakováním zkontrolujte svou peněženku. - - - Vypršel časový limit požadavku na peněženku — %1$d odpověď byla odmítnuta, protože ji podepsal neočekávaný klíč. Vaše relé nemusí být důvěryhodné. - Vypršel časový limit požadavku na peněženku — %1$d odpovědi byly odmítnuty, protože je podepsal neočekávaný klíč. Vaše relé nemusí být důvěryhodné. - Vypršel časový limit požadavku na peněženku — %1$d odpovědí bylo odmítnuto, protože je podepsal neočekávaný klíč. Vaše relé nemusí být důvěryhodné. - Vypršel časový limit požadavku na peněženku — %1$d odpovědí bylo odmítnuto, protože je podepsal neočekávaný klíč. Vaše relé nemusí být důvěryhodné. - - Přidat fotku - Změnit fotku - Informace o skupině aktualizovány - Nepodařilo se aktualizovat: %1$s - Nepodařilo se vytvořit skupinu: %1$s - Nepodařilo se opustit skupinu: %1$s - Nejprve přidejte v Nastavení mediální server Blossom — skupina potřebuje místo, kam nahrávat přílohy. - Tato skupina nyní používá šifrované přílohy - Tuto skupinu se nepodařilo přepnout na šifrované přílohy: %1$s - Skupina rozpuštěna - Ukončuji skupinu. Dokončí se, jakmile to skupina odsouhlasí. - Tato skupina se ukončuje. Stále ji můžete číst. - Opouštíte tuto skupinu. - Již nejste členem této skupiny. - Skupinu se nepodařilo rozpustit: %1$s - Přidávám %1$s… - Nepodařilo se přidat %1$s: %2$s - neznámá chyba - Člen odebrán - Nepodařilo se odebrat člena: %1$s - Administrátorská práva udělena - Nepodařilo se udělit administrátorská práva: %1$s - Administrátorská práva odebrána - Nepodařilo se odebrat administrátorská práva: %1$s - Nejste členem této skupiny Služba blesku příjemce v %1$s není k dispozici. Byla vypočtena z adresy blesku \"%2$s\". Chyba: %3$s. Zkontrolujte, zda je server aktivní a zda je adresa blesku správná Nepodařilo se vyřešit %1$s. Zkontrolujte, zda jste připojeni, zda je server aktivní a zda je adresa %2$s správná.\n\nVýjimka byla: %3$s Chyba při analýze JSON z načtení faktury %1$s. Zkontrolujte uživatelské bleskové nastavení Nelze vytvořit bleskovou fakturu. Zpráva od %1$s: %2$s Nelze vytvořit bleskovou fakturu z %1$s: Prvek pr nebyl nalezen ve výsledném JSON. - Chat podle polohy - Kanál podle polohy - Chatujte s kýmkoli poblíž místa, podle geohashe. - Místní - Nejlepší pro komunikaci s lidmi fyzicky poblíž nějakého místa — vaší čtvrti, města nebo regionu. - Vyberte místo - Anonymní — jednorázová identita pro každou oblast, nikdy váš npub. - Kompatibilní s Bitchatem; zasáhne blízké uživatele na stejných relayích. - Veřejné a dočasné — žádná historie, může to číst kdokoli v buňce. - Ve frontě - Pracuje - Potřebuje schválení - Schváleno - Vydáno - Selhalo - Zrušeno - Zamítnuto - Value-for-Value diff --git a/amethyst/src/main/res/values-de-rDE/strings.xml b/amethyst/src/main/res/values-de-rDE/strings.xml index 2d5d60c64e..c10ef0c8b9 100644 --- a/amethyst/src/main/res/values-de-rDE/strings.xml +++ b/amethyst/src/main/res/values-de-rDE/strings.xml @@ -1,156 +1,13 @@ - - Dieser Beitrag hat mehr als %1$d Hashtag - Dieser Beitrag hat mehr als %1$d Hashtags - - - %1$d Asset gebündelt - %1$d Assets bündelt - - - +%1$d\nAntwort - +%1$d\nAntworten - - - Von %1$d Person gemeldet, der du folgst - Von %1$d Personen gemeldet, denen du folgst - - Spam - Anzahl der Spam-Ereignisse von diesem Relay - Identitätsbetrug - Illegales Verhalten - Löschung beantragen - Du verwendest einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um antworten zu können - Du verwendest einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um Beiträge boosten zu können - Du verwendest einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um Beiträge zu liken - Kein Zap-Betrag festgelegt. Lang drücken, um dies zu ändern - Du verwendest einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um Zaps senden zu können - Du verwendest einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um folgen zu können - Du verwendest einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um nicht mehr zu folgen - Du verwendest einen öffentlichen Schlüssel, und öffentliche Schlüssel sind nur lesbar. Melden Sie sich mit einem privaten Schlüssel an, um ein Wort oder einen Satz auszublenden - Du verwendest einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um ein Wort oder einen Satz anzeigen zu können - Du verwendest einen öffentlichen Schlüssel, der nur lesbar ist. Melde dich mit einem privaten Schlüssel an, um hochladen zu können - Du verwendest einen öffentlichen Schlüssel, der nur lesbar ist. Melde dich mit einem privaten Schlüssel an, um Ereignisse zu signieren - Unbefugte Entschlüsselung - Der Signer hat die erforderliche Entschlüsselung nicht autorisiert. Aktiviere NIP-44-Entschlüsselung in deiner Signer-App und versuche es erneut - Signer nicht gefunden - Wurde die Signer-App deinstalliert? Überprüfe, ob sie installiert ist und dieses Konto enthält. Melde dich ab und wieder an, falls sich die App geändert hat. - Externer Signer hat Daten zurückgegeben, die für die Anfrage ungewöhnlich sind. Es könnte ein Fehler in Amethyst oder im Signer vorliegen. - Zaps - Boost boosted Bearbeitung #%1$s - Eine Bearbeitung vorschlagen - Hinzufügen - Fehler beim Parsen der Fehlermeldung - Profil - Sicherheitsfilter - Weniger anzeigen - Rechnung wird angefordert… - Der Debit-Dienst hat die Zahlung nicht abgeschlossen. - %1$s über %2$s bezahlen? - Diese Rechnung über %1$s bezahlen? - Gib einen gültigen Betrag für dieses Angebot ein. - Einmalig - Täglich - Wöchentlich - Monatlich - Bezahlen - Zahlung über %1$s… - Zahlung fehlgeschlagen - Verfügbar für diesen Empfänger: %1$s Sats - Transaktion: %1$s - "Vorschaukartenbild für %1$s" - Beschreibung - Was beschäftigt dich? - Eine Nachricht schreiben… - Beitrag Speichern - Senden - Erstellen Umbenennen - Abbrechen - Fehler - Fehler - Prozentsatz erfolgreicher Verbindungen zum Relay - Auf dem Smartphone speichern - Bild in der Galerie gespeichert - Der Videodownload wurde gestartet… - Der Mediendownload wurde gestartet… - Oben anheften - Nicht mehr anheften - Fehler beim Speichern des Bildes - Video in der Galerie des Smartphones gespeichert - Video konnte nicht gespeichert werden - PDF in Downloads/Amethyst gespeichert - PDF konnte nicht gespeichert werden - Keine Kamera-App auf diesem Gerät gefunden - Zum Aufnehmen einer Nachricht gedrückt halten - Upload-Fehler - Sprachnachricht konnte nicht hochgeladen werden - NIP-95 wird für Sprachnachrichten noch nicht unterstützt - Sprach-Upload fehlgeschlagen: %1$s - Keine - Tief - Hoch - Neutral - Der Benutzer hat keine Lightning-Adresse eingerichtet, um Sats zu empfangen - "Hier antworten…" - Bekannt - Neue Anfragen - Blockierte Benutzer - Neue Threads - Unterhaltungen - Weitere Optionen - Privaten QR-Code anzeigen - QR-Code für verschlüsselten privaten Schlüssel anzeigen - Folgen - Folge zurück - Passwort ausblenden - Ungültiger Schlüssel - Ungültiger Schlüssel: %1$s - Passwort ist erforderlich - Schlüssel ist erforderlich - Ein Name wird benötigt - Diese Einladung konnte nicht abgerufen werden. Der Link ist möglicherweise abgelaufen oder seine Relays sind nicht erreichbar. - Dieser Einladungslink ist ungültig oder kann mit diesem Konto nicht geöffnet werden. - Dieser Einladungslink kann nicht geöffnet werden. Er ist möglicherweise veraltet, wurde bereits durch einen neueren ersetzt oder mit einer neueren Version der App erstellt. Bitte um einen neuen Einladungslink. - Dieser Einladungslink wurde widerrufen und kann nicht mehr verwendet werden. Bitte um einen neuen. - Diese Community hat dich entfernt. Der Link funktioniert noch, aber ihre Mitgliederliste lässt dich nicht zu. - Einladungslinks - Einladungslinks… - Einladungslink widerrufen. - Der Link konnte nicht widerrufen werden. Prüfe deine Verbindung und versuche es erneut. - Dieser Einladungslink ist abgelaufen und kann nicht mehr verwendet werden. Bitte um einen neuen Link. - Concord-Kanäle - Noch keine Kanäle. - Bild senden - Neuer Kanal - Kanal umbenennen - Umbenennen - Kanalname - Kanal löschen - Kanal löschen? - #%1$s löschen? Dies kann nicht rückgängig gemacht werden und der Kanal kann nicht mit derselben ID neu erstellt werden. - Löschen - Community verlassen - Community verlassen? - %1$s verlassen? Sie wird aus der Liste dieses Kontos entfernt und hört auf, sich auf deinen Geräten zu synchronisieren. Die Community wird nicht benachrichtigt und du wirst nicht aus ihrer Mitgliederliste entfernt. Nachrichten, die du nicht mehr entschlüsseln kannst, sind möglicherweise nicht wiederherstellbar, und du kannst nur mit einer neuen Einladung zurückkehren. - Du hast diese Community erstellt. Beim Verlassen wird sie weder gelöscht noch an jemand anderen übergeben, aber der auf deiner Liste gespeicherte Eigentümerschlüssel wird verworfen — du könntest sie nicht mehr verwalten. - %1$s schreibt… - %1$s und %2$s schreiben… - Mehrere Personen schreiben… - Neuer Concord-Kanal - Relais Icon-URL (optional) - - %1$d Kanal - %1$d Kanäle - %1$d Workspace %1$d Workspaces @@ -159,320 +16,38 @@ %1$d Kanal %1$d Kanäle - - %1$d Mitglied - %1$d Mitglieder - - - %1$d neue Nachricht - %1$d neue Nachrichten - - Noch keine Nachrichten - Erstellen - Personen einladen - Einladungslink - Zum Admin machen - Admin entfernen - Relays, die die verschlüsselten Nachrichten dieser Community speichern. Leer lassen, um deine eigenen zu verwenden. - Community bearbeiten - Mitglieder - Zum Admin machen - Admin entfernen - Sperren - Entsperren - Rollen zuweisen - Die Rollen dieses Mitglieds konnten nicht aktualisiert werden. - Concord - Im Chat - Im Thread - - %1$d Antwort - %1$d Antworten - Neues Chat-Profil: - Verlassen - Aus Nachrichten entfernen - Zu Nachrichten hinzufügen - Entfolgen - Verschwindender Chat - Relay-Chat - Relay-Chats - Relay-Chats sind Chatgruppen, die von ihrem Home-Relay gesteuert werden. - Sie sind für jeden auf Nostr sichtbar und jeder kann an ihnen teilnehmen. - Sie eignen sich hervorragend für offene Communities rund um bestimmte Themen. Einige dieser Gruppen sind kurzsichtig - und daher verschwinden Chat-Nachrichten im Laufe der Zeit - Öffentlicher Chat - MLS-Gruppe - Öffentliche Chat Metadaten - Öffentliche Chats sind für jeden auf Nostr sichtbar und jeder - kann daran teilnehmen. Sie eignen sich hervorragend für offene Gemeinschaften rund um bestimmte Themen. - Moderation kann durch Löschen von Beiträgen auf den Relays gesteuert werden - Relays - Füge zwischen 1–3 Relays ein, die diese Gruppe beherbergen. - Nostr Clients verwenden diese Einstellung, um zu wissen, woher sie Nachrichten herunterladen und an welche gesendet werden sollen. - Entfernen - nie - jetzt - s - m - t - Nacktheit - Beleidigungen / Hassrede - Schlüssel sichern - Fehler beim Verschlüsseln Ihres privaten Schlüssels - Geheimer Schlüssel (nsec) in die Zwischenablage kopiert - Meinen geheimen Schlüssel kopieren - Authentifizierung fehlgeschlagen - Biometrie konnte den Inhaber dieses Smartphones nicht authentifizieren - Biometrie konnte den Inhaber dieses Smartphones nicht authentifizieren. Fehler: %1$s - Notiztext in die Zwischenablage kopiert - Autor-ID in die Zwischenablage kopiert - Notiz-ID in die Zwischenablage kopiert - "<Private Nachricht kann nicht entschlüsselt werden>\n\nDu wurdest in einer privaten/verschlüsselten Unterhaltung zwischen %1$s und %2$s erwähnt." - Konten - Navigieren - Du - Feeds - Erstellen - System - Zurück - Browserlink teilen - Teilen - Als Bild teilen - Als Bild-URL teilen - Beitrags-ID kopieren - Löschen - Thread stummschalten - Thread entdämpfen - Benachrichtigungen stummschalten - Stummschaltung der Benachrichtigungen aufheben - - Blockieren - Lesezeichen - Lesezeichen erfolgreich migriert - Entwürfe - Geplante Beiträge - Beitrag planen - Planung abbrechen - Geplante Beiträge werden möglicherweise erst veröffentlicht, wenn du die App das nächste Mal öffnest. Aktiviere Dauerbenachrichtigungen in Einstellungen → UI-Einstellungen für zuverlässige Hintergrundplanung. - Geplante Beiträge werden möglicherweise erst veröffentlicht, wenn du die App wieder öffnest. Geplante Beiträge anderer Konten werden nicht ausgelöst, solange dieses Konto aktiv ist. Aktiviere Dauerbenachrichtigungen in Einstellungen → UI-Einstellungen für zuverlässige Hintergrundplanung. - %1$s · in %2$s - %1$s · vor %2$s - Morgen - Abgemeldet - - Abgemeldet · %d geplanter Beitrag gelöscht - Abgemeldet · %d geplante Beiträge gelöscht - - Geplanter Beitrag veröffentlicht - Geplanter Beitrag fehlgeschlagen - Geplante Beiträge - Benachrichtigungen, wenn ein geplanter Beitrag veröffentlicht wird oder die Veröffentlichung fehlschlägt. - Jetzt senden - Fehler: %1$s - Geplant - Wird gesendet… - Fehlgeschlagen - Gesendet - Abgebrochen - - Du hast %d geplanten Beitrag, der noch nicht veröffentlicht wurde. Beim Abmelden wird er dauerhaft gelöscht. - Du hast %d geplante Beiträge, die noch nicht veröffentlicht wurden. Beim Abmelden werden sie dauerhaft gelöscht. - - - %d in Warteschlange - %d in Warteschlange - - - · %d fällig in 1 Std. - · %d fällig in 1 Std. - - - an %d Relay - an %d Relays - - Beitrags-ID kopiert - Umfragen - Offen - Geschlossen - Abzeichen - Communitys - Neue Community - Community bearbeiten - Moderatoren - Relays - Überprüfbare Regeln (optional) - Zugelassene Ereignistypen - Kurzer Text (1) - Langform-Artikel (30023) - Bildbeitrag (20) - Videobeitrag (21) - Kurzvideo (22) - Community-Kommentar (1111) - Gesperrte Benutzer - Web-of-Trust-Schranke (optional) - Globale maximale Ereignisgröße (optional) - Neues Abzeichen - Abzeichen verleihen - Profilabzeichen - Bilder - Workouts - Neues Workout - - %1$d Aktivität - %1$d Aktivitäten - - Laufen - Gehen - Radfahren - Wandern - Schwimmen - Rudern - Krafttraining - Yoga - Meditation - Diät - Fasten - Zirkel - EMOM - AMRAP - Apps Apps - nApplets - nSites - Browser - Laden über Tor. Tippe, um Clearnet zu verwenden. - Laden über Clearnet. Tippe, um Tor zu verwenden. - Favoriten - Web-Apps entdecken - Lieblings-Apps - Zu Favoriten hinzufügen - Aus Favoriten entfernen - Lädt über Tor. - Lädt über das offene Web. - An Relays veröffentlicht - Eine Datei hochgeladen - Eine Zahlung durchgeführt - Diese App ist noch nicht geladen. Versuche es gleich nochmal. - Zuletzt verwendet nApplet-Berechtigungen Noch keine nApplet-Berechtigungen Berechtigungen, die du nApplets erteilst, werden hier angezeigt. Dieses nApplet vergessen Blockiert Widerrufen - nApplet %1$s… Shell - Identität - Tastaturaktionen - Relays - Verschlüsselung - Speicher - Zahlungen - Netzwerk - Uploads Abfragen, welche Funktionen verfügbar sind - Ihren öffentlichen Schlüssel lesen - Tastenkürzel belegen - Ihre Ereignisse lesen, signieren & veröffentlichen - Private Nachrichten mit Ihrem Schlüssel ver- und entschlüsseln - Eigener privater Speicher - Lightning-Rechnungen bezahlen - Web- und Blossom-Ressourcen abrufen - Dateien auf Ihren Medienserver hochladen - Design - Benachrichtigungen - Nachrichten - Farben Ihrer App übernehmen - Ihnen Benachrichtigungen anzeigen - Nachrichten mit anderen nApplets austauschen Funktion: %1$s - Dieses nApplet möchte Ihren öffentlichen Schlüssel lesen. - Dieses nApplet möchte Ihr Profil und Ihre Kontodaten lesen. - Dieses nApplet möchte ein kind-%1$d-Ereignis in Ihrem Namen signieren und veröffentlichen. - Dieses nApplet möchte ein kind-%1$d-Ereignis in Ihrem Namen signieren und veröffentlichen: - Dieses nApplet möchte ein verschlüsseltes Ereignis in Ihrem Namen senden. - Diese Website möchte eine Nachricht an %1$s mit Ihrem Nostr-Schlüssel verschlüsseln. - Diese Website möchte eine Nachricht von %1$s mit Ihrem Nostr-Schlüssel entschlüsseln. - Dieses nApplet möchte Ereignisse von Ihren Relays lesen. - Dieses nApplet möchte seinen privaten Speicher verwenden. Dieses nApplet möchte eine Lightning-Rechnung bezahlen. - ⚠ Dieses nApplet möchte eine Lightning-Rechnung bezahlen, die KEINEN Betrag angibt — der Zahlungsempfänger entscheidet, wie viel entnommen wird. Erlaube dies nur, wenn du ihm vertraust. - Dieses nApplet möchte eine Web-Ressource abrufen. - Dieses nApplet möchte eine Datei auf Ihren Medienserver hochladen. - Dieses nApplet möchte Ihnen Benachrichtigungen anzeigen. - Diese Website möchte ein kind-%1$d-Ereignis mit Ihrem Nostr-Schlüssel signieren. - - Dieses nApplet möchte eine Lightning-Rechnung über %1$d sat bezahlen. - Dieses nApplet möchte eine Lightning-Rechnung über %1$d sats bezahlen. - - - folgt %1$d neuem Konto - folgt %1$d neuen Konten - - - ENTFOLGT %1$d Konto - ENTFOLGT %1$d Konten - - - fügt %1$d Relay hinzu - fügt %1$d Relays hinzu - - - ENTFERNT %1$d Relay - ENTFERNT %1$d Relays - - - schaltet %1$d weitere Person stumm - schaltet %1$d weitere Personen stumm - - - HEBT DIE STUMMSCHALTUNG von %1$d Person AUF - HEBT DIE STUMMSCHALTUNG von %1$d Personen AUF - - ⚠ Dies folgt %1$s. - ⚠ Dies ENTFOLGT %1$s. - ⚠ Dies stummschaltet %1$s. - ⚠ Dies HEBT DIE STUMMSCHALTUNG von %1$s AUF. - ⚠ Dies überschreibt deine Folgeliste: %1$s. - ⚠ Dies überschreibt deine Relay-Liste: %1$s. Deine Beiträge und Lesevorgänge ziehen mit um. - ⚠ Dies überschreibt deine Stummschaltungsliste: %1$s. Stummgeschaltete Wörter und Hashtags werden hier nicht angezeigt — tippe auf “Ereignis anzeigen” für die vollständige Liste. - %1$s und %2$s - Dies veröffentlicht deine bestehende Liste unverändert erneut. - - ⚠ Dies schreibt eine Liste mit %1$d Eintrag. Amethyst hat keine zwischengespeicherte Kopie zum Vergleich. - ⚠ Dies schreibt eine Liste mit %1$d Einträgen. Amethyst hat keine zwischengespeicherte Kopie zum Vergleich. - - - ⚠ Dies fordert die Löschung von %1$d deiner Ereignisse an. - ⚠ Dies fordert die Löschung von %1$d deiner Ereignisse an. - - - Enthält %1$d Tag. Tippe auf “Ereignis anzeigen”, um genau zu sehen, was signiert würde. - Enthält %1$d Tags. Tippe auf “Ereignis anzeigen”, um genau zu sehen, was signiert würde. - Mit Nostr verbinden @@ -481,889 +56,90 @@ Zuletzt verwendet Läuft ab - für %1$s signieren (Typ: %2$d) - eine Nachricht verschlüsseln - deine privaten Nachrichten lesen - deine privaten Nachrichten mit %1$s lesen - Immer erlauben für %1$s - Amethyst konnte diese Nachricht nicht entschlüsseln. Sie ist möglicherweise nicht an dieses Konto adressiert. - Verbundene Apps Alle Berechtigungen widerrufen Vorgangs-Ausnahmen Bisher haben sich keine Apps verbunden. - apps berechtigungen signierer napplet nsite webapp vertrauen verbunden - Remote-Signer signer bunker nip46 nostr verbinden remote signieren Als Remote-Signer fungieren Lauscht auf %1$d Relay Lauscht auf %1$d Relays - - Lauscht auf %1$d Relay - Lauscht auf %1$d Relays, alle verbunden - Deine Bunker-Adresse Füge dies in eine andere App ein, um sie mit deinem Schlüssel zu verbinden. - Bunker-Adresse kopiert - Neue Bunker-Adresse generiert - Verbunden - Offline - Verbinde erneut mit Relays… - - %1$d Relay - %1$d Relays - - App verbunden. Amethyst signiert nun im Hintergrund dafür. - %1$s verbunden. Amethyst signiert nun im Hintergrund dafür. - Kein gültiger nostrconnect://-Link - Dieser Link enthält kein Relay zum Verbinden - Verbindung fehlgeschlagen: %1$s - Verbindung abgelehnt - Dies ist ein schreibgeschütztes Konto und kann nicht signieren. - Remote-Signer-App - - %1$d Signaturanfrage - %1$d Signaturanfragen - - Alle auswählen - Keine auswählen Noch keine Anfragen bearbeitet. - Signaturanfragen - Vollbild-Aufforderungen, die dich um Freigabe bitten, wenn eine App möchte, dass Amethyst mit deinem Schlüssel signiert, verschlüsselt oder entschlüsselt. - Signaturanfrage genehmigen? - Eine App möchte sich verbinden - Zum Überprüfen tippen - - %1$d verbundene App - %1$d verbundene Apps - - Relay-Authentifizierung - auth authentifizierung relay signieren verifizieren nip-42 identität - Immer authentifizieren - Auth-Challenges für jedes Relay signieren, das sie anfordert - Nie authentifizieren - Auth-Challenges von allen Relays ignorieren - Benutzerdefiniert - Wähle genau, bei welchen Relays du dich anmeldest. Bei allem, was du unten nicht erlaubt hast, wirst du gefragt. - …es ist mein Relay oder ein Raum, dem ich beigetreten bin oder dem ich folge - …ich jemanden lese, dem ich folge - …ich jemandem schreibe, dem ich folge - …ich jemand anderem schreibe - - %1$s und %2$d weitere Person - %1$s und %2$d weitere Personen - - - Es hält außerdem %1$d weitere Sache zurück. - Es hält außerdem %1$d weitere Dinge zurück. - - Immer anmelden - Nie - Immer, alle Relays - Nie, alle Relays - Bei jedem Relay anmelden? - Amethyst meldet sich als %1$s bei jedem Relay an, das danach fragt, und fragt dich nicht mehr. Relays, die du blockiert hast, und solche, bei denen du dich nie anmelden willst, bleiben so. Du kannst das unter Relay-Authentifizierung ändern. - Bei keinem Relay anmelden? - Amethyst teilt Relays nicht mehr mit, dass du %1$s bist, und fragt dich nicht mehr. Manche Relays werden dich dann nicht bedienen: Nachrichten, Antworten und Benachrichtigungen kommen womöglich nicht durch. Relays, bei denen du dich immer anmelden willst, bleiben so. Du kannst das unter Relay-Authentifizierung ändern. - Immer, von dir festgelegt - Nie, von dir festgelegt - deine Nachrichten - deine Antworten - Personen, die du liest - ein Raum, in dem du postest - ein Raum, den du liest - dein Posteingang - eine Unterhaltung - dein eigenes Relay - dieses Relay - Kurzvideos - Öffentliche Chats - Standort-Kanäle - Follow-Pakete - Live-Streams - Audioräume - Hand heben - Hand senken - Stummschalten - Stummschaltung aufheben - Nachricht konnte nicht gesendet werden - Mikrofon stumm - Mikrofon aktivieren - Audioräume - Hält Audio aktiv, solange ein Raum geöffnet ist. - Nest verbunden - Nest — Live - Tippen zum Zurückkehren. - Stoppen - hat die Hand gehoben - ist auf die Bühne gestiegen - spricht - ist als Publikum beigetreten - hat das Nest verlassen - Verlassen - Raum konnte nicht als geschlossen markiert werden. Verlasse trotzdem — Raum wird automatisch geschlossen. - - %1$d Zuhörer - %1$d Zuhörer - - Diesen Sprecher still stellen - Diesen Sprecher wiederherstellen - Folgen - Entfolgen - Stummschalten - Stummschaltung aufheben - Nest-Serverliste konnte nicht gespeichert werden. Versuche es erneut. Agent-Konsole - Nest-Server - Deine Server - Wird als ersetzbares kind-10112-Ereignis gespeichert, damit andere Clients deine Einstellung lesen können. - Empfohlene Server - Eingebaute Vorschläge, die du mit einem Tippen zu deiner Liste hinzufügen kannst. - Videos - Musik - Wiedergabelisten - Folgen - Podcasts Premium - - %1$d Kapitel - %1$d Kapitel - - Value-for-Value-Fehler - Dieser Podcast hat keine zahlbaren Value-Empfänger. - Verbinde eine Nostr-Wallet-Connect-Wallet, um an Keysend-(Node-)Empfänger zu senden. - Verbinde eine Nostr-Wallet-Connect- oder Debit-Wallet, um Sats beim Zuhören zu streamen. - Neue Episode - Episode bearbeiten - Wird veröffentlicht… - Cover hinzufügen - Quadratisches Bild, das für die Episode angezeigt wird - Video-URL - Transkript-URL - Kapitel-URL - Audiodatei hinzufügen - MP3, M4A oder anderes Audio - Dein Podcast - Cover hinzufügen - Quadratisches Cover für deine Show - Show-Titel - Mein Podcast - Autor - Kontakt-E-Mail - Webseite - Kategorien - Technik, Nachrichten - Finanzierungslinks - https://… - Sprache - de - Copyright - Neuer Trailer - Trailer-Clip hinzufügen - Kurze Audio- oder Videovorschau - - %1$d Trailer - %1$d Trailer - Empfänger hinzufügen - Dieser Nutzer hat keine Lightning-Adresse - - %1$d Folge - %1$d Folgen - - Neuer Musiktitel - Neue Playlist - - %1$d Titel - %1$d Titel - - Zu den öffentlichen Lesezeichen hinzufügen - Aus den öffentlichen Lesezeichen entfernen - An Profil anheften - Von Profil lösen - Neue Lesezeichenliste - Metadaten der Lesezeichenliste - Interessensets - Neues Interessenset - Umbenennen - Private Notiz - Diese Notiz wurde privat zugestellt und ist nicht signiert. Nur die markierten Teilnehmer können sie sehen, und niemand kann Außenstehenden beweisen, wer sie geschrieben hat. - Privat machen: Die Notiz nur für die benachrichtigten Nutzer als Gift-Wrap verpacken - Öffentlich machen - Antworten auf eine private Notiz bleiben immer privat - Sichtbar für Noch keine Empfänger: Nur du kannst diese Notiz sehen. Füge Personen hinzu, um sie zu teilen. - Nur du — wähle, wer das sonst noch sehen darf - Personen hinzufügen, die benachrichtigt werden - Privat senden - Bereits hinzugefügt - Stummgeschaltet - Privates Mitglied - - %1$s, %2$s und %3$d weitere Person - %1$s, %2$s und %3$d weitere Personen - - - Diese Notiz wird verschlüsselt und %1$d Mal einzeln zugestellt, einmal pro Person. Mit einem externen Signierer ist das je eine Freigabe. - Diese Notiz wird verschlüsselt und %1$d Mal einzeln zugestellt, einmal pro Person. Mit einem externen Signierer ist das je eine Freigabe. - - - %1$d Person erhält eine Benachrichtigung zu diesem Beitrag. - %1$d Personen erhalten eine Benachrichtigung zu diesem Beitrag. - - - Das wäre %1$d Person. Amethyst fügt höchstens %2$d auf einmal hinzu — wähle ein paar ab. - Das wären %1$d Personen. Amethyst fügt höchstens %2$d auf einmal hinzu — wähle ein paar ab. - - - %1$d Person hinzufügen - %1$d Personen hinzufügen - - - Trotzdem %1$d Person hinzufügen - Trotzdem %1$d Personen hinzufügen - Hinzufügen Nutzer aus Benachrichtigungen entfernen - Benachrichtigungen aktiv. Tippen, um Benachrichtigungen für diesen Nutzer stummzuschalten - Stummgeschaltet. Tippen, um wieder über diesen Nutzer benachrichtigt zu werden Nutzer suchen und zum Benachrichtigen hinzufügen - Metadaten von Lesezeichenlisten können von allen auf Nostr gesehen werden. Nur deine privaten Mitglieder sind verschlüsselt. - In öffentlich verschieben - In privat verschieben - Aufladen & Zap senden - Zap senden - Lade %1$s Sats zu %2$s auf und zappe %3$s %4$s Sats · Gebühr ≈ %5$s Sats - Wahl %s - (0–100)% - Einzelauswahl - Mehrfachauswahl - Konnte nicht abstimmen - Die Umfrage ist für neue Stimmen geschlossen - Es ist nur eine Stimme pro Benutzer für diesen Umfragetyp erlaubt - Umfragenautoren können nicht in ihren eigenen Umfragen abstimmen. - Was bedeutet das? - Das Bild ist seitdem Beitrag dasselbe - Das Bild hat sich geändert. Der Autor hat die Änderung möglicherweise nicht bemerkt. - Medien hinzufügen - Bild hinzufügen - Video hinzufügen - Dokument hinzufügen - Dateiserver - Wähle einen Server zum Hochladen dieser Datei - Medienserver Leg deinen bevorzugten Medienupload Server fest. Gespeicherte Dateien verwalten - Meine Blossom-Dateien - Deine Dateien werden über die Server kopiert… - Abbrechen - Blossom-Synchronisierung - Zeigt den Fortschritt beim Kopieren deiner Dateien über deine Blossom-Server hinweg. - Auf allen Servern - Nicht auf allen Servern Löschen von… - Dieser Server verlangt eine Zahlung zum Hochladen: %1$s - - %1$d Sat bezahlen - %1$d Sats bezahlen - - Alle aktivieren - Alle deaktivieren - Eine Dateisynchronisierung läuft bereits. Versuche den Import erneut, sobald sie abgeschlossen ist. - - %1$d Datei - %1$d Dateien - - - %1$d Datei zum Import auf deine Server gefunden. - %1$d Dateien zum Import auf deine Server gefunden. - - - %1$d Datei importieren - %1$d Dateien importieren - Empfohlene Medienserver Amethysts Standardliste. Du kannst einzelne Server hinzufügen oder die gesamte Liste auf einmal übernehmen. - Online - Langsam - Offline Wird geprüft… - Zahlungsziele - Füge Zahlungsadressen für verschiedene Netzwerke hinzu (z.B. Bitcoin, Lightning, Ethereum). - Keine App gefunden, die diese Zahlung verarbeiten kann. Bitte installiere eine kompatible Wallet. - Es ist keine App installiert, die Zahlungen vom Typ %1$s verarbeiten kann. Bitte installiere eine kompatible Wallet. - In %1$s bezahlen — den Betrag wählst du dort - Übergabe an Zahlungs-Apps - Wenn der Autor eine Zahlungsmethode veröffentlicht, die eine App auf diesem Telefon öffnen kann (Venmo, Monero, eine IBAN…), kann die Zap-Auswahl sie anbieten. Tippen öffnet diese App, die nach dem Betrag fragt — es wird nichts an Relays veröffentlicht, daher ändert sich der Zap-Zähler der Notiz nicht. - Zahlungsmethoden des Autors anbieten - Zahlung konnte nicht geöffnet werden - BOLT12-Angebote - Füge ein oder mehrere BOLT12-Angebote (lno1…) hinzu. Sie werden öffentlich geteilt, sodass dich jeder bezahlen kann. - BOLT12-Zahlung gesendet - BOLT12-Zahlung fehlgeschlagen: %1$s - BOLT12-Zap-Fehler - Über BOLT12 bezahlt, aber die Wallet hat keinen Nachweis zurückgegeben, daher wurde keine Zap-Quittung veröffentlicht. - Über BOLT12 bezahlt, aber der Zahlungsnachweis konnte nicht validiert werden, daher wurde keine Zap-Quittung veröffentlicht. - Privatsphäre-Optionen - Alle Folgen - Alle Benutzer Folgen - Standard-Folgenliste - In der Nähe - Zu einem Ort teleportieren… - Diesem Ort folgen - Diesem Ort nicht mehr folgen - Weltweit - Kuratiert - Meine - Stummliste - Neue Follower-Liste - Neues Empfehlungspaket - Liste bearbeiten - Standard-Port ist 9050 - Orbot Socks-Port - Aktiver Tor-Engine - Verwende die interne Version oder Orbot - Tor/Datenschutz-Presets - Ändere schnell alle Einstellungen unten auf einmal - Onion URL/Relays - Verwende Tor für jede .onion URL - DM-Relays - Tor erzwingen, um DMs zu senden und empfangen - Nicht vertrauenswürdige Relays - Erzwinge Tor für ausgehende/eingehende Relays - Vertrauenswürdige Relays - Erzwinge Tor für alle Relays in deinen Listen - Profilbilder - Erzwinge Tor beim Laden von Profilbildern - URL-Vorschauen - Erzwinge Tor beim Laden von URL-Vorschauen - Bilder - Erzwinge Tor beim Laden von Bildern - Video - Erzwinge Tor beim Laden von Videos - Geldtransaktionen - Erzwinge Tor bei Zaps, Lightning und Cashu-Transfers - Nostr Adressverifizierung - Erzwinge Tor bei der Überprüfung von NIP-05-Adressen - Medien-Uploads - Erzwinge Tor beim Hochladen von Inhalten - Intern - Orbot - Aus - Grundlegend - Standard - Alles außer Medien - Volle Privatsphäre - Benutzerdefiniert - Verwende Tor, wenn es vom Server benötigt wird - Verbirg deine IP vor zufälligen Relays - Verbirg deine IP vor allem außer Bildern und Videos - Verbirg deine IP bei allen Verbindungen - Eigene Einstellungen - Private Nachrichten - Benachrichtigt dich, wenn eine private Nachricht eingeht - Erhaltene Zaps - Benachrichtigt dich, wenn dich jemand zappt - %1$s Sats - Von %1$s - für %1$s - Erhaltene Zahlungen - Benachrichtigt dich, wenn deine verbundene Wallet eine Zahlung erhält, die kein Nostr-Zap ist - %1$s sats erhalten - Neue Zahlungen - Antworten - Als gelesen markieren - Ich - Neue Nachricht - Du wurdest zu %1$s hinzugefügt - Neue Nachrichten - Neue Zaps - Reaktionen - Benachrichtigt dich, wenn jemand auf deinen Beitrag reagiert - %1$s hat auf deinen Beitrag reagiert - für %1$s - Neue Reaktionen - Schach - Benachrichtigt dich über Schachspiel-Ereignisse - %1$s hat deine Schachherausforderung angenommen - %1$s hat gezogen — du bist dran - Schach-Updates - Antworten - Benachrichtigt dich, wenn jemand auf deinen Beitrag antwortet %1$s hat geantwortet auf: %1$s - Neue Antworten - Erwähnungen - Benachrichtigt dich, wenn dich jemand in einem Beitrag erwähnt oder zitiert - %1$s hat dich erwähnt - Neue Erwähnungen - Nachrichten - Soziales - Zahlungen - Inhalt - Entwickler - Spiele - Reposts - Benachrichtigt dich, wenn jemand deinen Beitrag repostet - %1$s hat deinen Beitrag repostet - Neue Reposts - Medien - Benachrichtigt dich, wenn dich jemand in einem Foto oder Video erwähnt - %1$s hat ein Foto geteilt - %1$s hat ein Video geteilt - Neue Medien - Artikel & Hervorhebungen - Benachrichtigt dich, wenn dich jemand in einem Artikel erwähnt oder hervorhebt - %1$s hat dich in einem Artikel erwähnt - %1$s hat deinen Artikel hervorgehoben - Neue Artikel - Code & Git - Benachrichtigt dich über Issues, Patches und Pull Requests - %1$s hat ein Issue eröffnet - %1$s hat einen Patch gesendet - %1$s hat einen Pull Request eröffnet - %1$s hat einen Pull Request aktualisiert - %1$s hat kommentiert - %1$s hat einen Thread wieder geöffnet - %1$s hat einen Pull Request gemergt - %1$s hat einen Patch angewendet - %1$s hat ein Issue gelöst - %1$s hat einen Thread gemergt/gelöst - %1$s hat einen Pull Request geschlossen - %1$s hat einen Patch geschlossen - %1$s hat ein Issue geschlossen - %1$s hat einen Thread geschlossen - %1$s hat einen Thread als Entwurf markiert - Neue Code-Aktivität - Abzeichen - Benachrichtigt dich, wenn du ein Abzeichen erhältst - Du hast ein Abzeichen erhalten - Verliehen von %1$s - Neue Abzeichen - Nutzap von %1$s - Onchain-Zap von %1$s - %1$s hat eine Frage gestellt - Eingehende Anrufe - Benachrichtigungen für eingehende Sprach- und Videoanrufe - Eingehender Anruf - Eingehender Sprachanruf\u2026 - Eingehender Videoanruf\u2026 - Anruf mit %1$s - Anrufe - Benachrichtigung über laufenden Anruf - Auflegen - Annehmen - Ablehnen - Stummschalten - Stummschaltung aufheben - Kamera an - Kamera aus - Bildschirm teilen - Bildschirmfreigabe beenden - Bildschirm wird geteilt - Lautsprecher - Ohrhörer - Bluetooth - Amethyst benötigt Zugriff auf das Mikrofon, um einen Sprachanruf zu starten. Bitte aktiviere ihn in den App-Einstellungen. - Amethyst benötigt Zugriff auf Kamera und Mikrofon, um einen Videoanruf zu starten. Bitte aktiviere sie in den App-Einstellungen. - Anrufeinstellungen - Hält Verbindungen zu deinen Inbox-Relays aktiv für Echtzeit-Benachrichtigungen - Amethyst-Benachrichtigungen aktiv - - Mit %1$d Posteingangs-Relay verbunden - Mit %1$d Posteingangs-Relays verbunden - - - Mit %1$d Relay verbunden - Mit %1$d Relays verbunden - - Details anzeigen - Details ausblenden - - %1$s \u00b7 %2$d Relay - %1$s \u00b7 %2$d Relays - - Stöbern - Medien - Hashtags - Themen - Unterhaltung - Suche - Fehlende Events finden - Events beobachten - Holt Events per ID, auf die etwas auf deinem Bildschirm verweist, die du aber noch nicht hast — ein Zitat, die übergeordnete Antwort, eine Thread-Wurzel. - Beobachtet die gerade angezeigten Events auf neue Antworten, Reaktionen, Reposts, Zaps und Meldungen, damit die Zähler beim Lesen aktuell bleiben. - Erweiterungen - Relay-Info - Sonstiges - Relay-Listen-Finder - Profile beobachten - Kontodaten - Startseiten-Feed - Relay-Gruppen - - %1$d Gruppe - %1$d Gruppen - - Verschwindende Chats - Standort-Chats - Live-Stream-Chat - NIP-29-Gruppen, denen du beigetreten bist. Jede Gruppe liegt auf einem Host-Relay, daher verbindet sich die App mit jedem Relay, das eine deiner Gruppen beherbergt. - Chaträume ohne Verlauf — Nachrichten existieren nur, solange du verbunden bist, deshalb bleiben sie abonniert, damit überhaupt etwas ankommt. - Standortbasierte Räume für die Gebiete, denen du folgst, abgefragt bei den Relays, die sie führen. - Chat und Zap-Ziele, die an Live-Streams hängen, die du geöffnet hast oder denen du folgst. - DM-Posteingang - Wallet - Nutzap-Posteingang - Mint-Verzeichnis - Wallet Connect - Community-Chats - Community-Feeds - Deine Posteingangs-Relays plus eine kleine, rotierende Stichprobe der Relays, auf denen deine Gefolgten veröffentlichen, falls eine Erwähnung woanders zugestellt wurde. - Deine DM-Posteingangs-Relays, an die Gift-Wrap-Nachrichten zugestellt werden. - Das Heim-Relay jedes Chats, den du geöffnet hast oder dem du beigetreten bist. - Die Relays, auf denen jede Community ihre Planes veröffentlicht. - Gruppennachrichten und Schlüsselpakete auf den Relays der jeweiligen Gruppe. - Die Relays des Raums, solange er geöffnet ist. - Dein eigenes Profil, deine Einstellungen und Entwürfe auf deinen Heim-Relays. - Profile der gerade angezeigten Personen. - Findet heraus, auf welchen Relays jede Person veröffentlicht, damit ihre Beiträge an der richtigen Stelle abgerufen werden können. - Folgelisten, aus denen dein Feed und dein Web of Trust aufgebaut werden. - Meldungen, die deine Gefolgten über die gerade angezeigten Profile geschrieben haben, abgefragt bei jedem Relay, auf dem diese Gefolgten veröffentlichen. - Meldungen von Gefolgten - Deine eigenen Wallet-Events, zurückgelesen von den Relays, auf denen du sie veröffentlicht hast. - Lauscht auf deinen Nutzap-Relays sowie deinen Posteingangs- und DM-Relays, damit keine Zahlung durchrutscht. - Sucht über Relays hinweg, welche Mints existieren und welche empfohlen werden. - Benachrichtigungen von deiner verbundenen Wallet. - Aktive Relay-Abonnements - - %1$d Filter - %1$d Filter - - - %1$d Relay - %1$d Relays - - - %1$d Filter ist noch nicht zugeordnet - %1$d Filter sind noch nicht zugeordnet - %1$s \u00b7 %2$s - %1$d %% von allen - abonnements subscriptions filter relays anfragen reqs verbindungen warum diagnose - Beiträge von Personen, denen du folgst, gelesen von den Relays, auf denen jede von ihnen veröffentlicht. - Verbinde mit Inbox-Relays\u2026 Dauerhafter Benachrichtigungsdienst Hält eine dauerhafte Verbindung zu deinen Inbox-Relays für sofortige Benachrichtigungen aufrecht. Zeigt eine fortlaufende Benachrichtigung an. Verbraucht mehr Akku, stellt aber sicher, dass du keine Nachricht verpasst. Benachrichtigungsdienst - Ein - Aus - Hintergrund-Benachrichtigungsdienst - Hauptschalter für Echtzeit-Benachrichtigungen im Hintergrund. Schalte ihn aus, um Akku zu sparen — wie ein Flugmodus. Wenn ausgeschaltet, bleibt kein Konto im Hintergrund verbunden, und es bleibt ausgeschaltet (auch nach Neustarts), bis du es wieder einschaltest. - Im Hintergrund aktive Konten Dieses Konto im Hintergrund aktiv halten - Benachrichtigungen nach Gefolgt aufteilen - Zwei Benachrichtigungs-Tabs anzeigen — Gefolgt (Personen, denen du folgst) und Alle. Der Indikator für ungelesene Nachrichten leuchtet nur bei Aktivität von Personen, denen du folgst. - Nachrichten anzeigen - Direkt- und Gruppennachrichten im Benachrichtigungs-Tab anzeigen. Deaktivieren, um Nachrichten nur im Nachrichten-Tab zu behalten. - Benachrichtigen: - Heute - Ausblenden - Anzeigen - Warnen - Spam filtern - Versteckt Beiträge von Fremden, die 5 oder mehr Male genau die gleichen waren - Client-Tag zu meinen Ereignissen hinzufügen - Wenn aktiviert, fügt Amethyst Ereignissen, die du veröffentlichst, einen NIP-89-Client-Tag hinzu. - Bei Berichten warnen - Zeigt eine Warnmeldung an, wenn die Beiträge 5 oder mehr Berichte von den folgenden Beiträgen enthalten - Beiträge ausblenden, die gegen Community-Regeln verstoßen - Verwirft Beiträge aus Community-Feeds, wenn die Community ein NIP-9B-Regeldokument veröffentlicht und ein Ereignis daran scheitern würde. Keine Wirkung, wenn eine Community keine strukturierten Regeln hat. - Filtereinstellungen - Blockierte Inhalte - Du hast noch keine Benutzer blockiert. - In dieser Sitzung wurden keine Konten als Spam markiert. - Keine versteckten Wörter. Füge unten ein Wort hinzu, um Beiträge auszublenden, die es enthalten. - Keine Reaktionstypen ausgewählt. Lange drücken, um zu ändern - Von Relay lesen - In Relay schreiben - Die Menge in Bytes, die an dieses Relay gesendet wurde, einschließlich Filter und Ereignisse - Die Menge in Bytes, die von diesem Relay empfangen wurde, einschließlich Filter und Ereignisse - Datenschutzerklärung - Kinderschutzstandards - Über & Rechtliches - Cashu-Token - Keine Lightning-Adresse festgelegt - Relays - Folge Paketen - Lesungen - Feedalgorithmen - Marktplatz - Live-Streams - Gemeinschaften - Plaudern - Sensibler Inhalt - Fügt eine Warnung für sensiblen Inhalt hinzu, bevor dieser Inhalt angezeigt wird. - UI-Einstellungen App Einstellungen - Übersetzungen - Reaktionen - Einstellungen - Kontoeinstellungen - App-Einstellungen - Gefahrenzone - Marmot-Status zurücksetzen - Marmot-Status zurückgesetzt. - Marmot-Status konnte nicht zurückgesetzt werden: %1$s - Immer - Unbegrenztes WLAN - Nie - WLAN - Fertig - Vereinfacht - Leistung - Voll - Einfach - Schnell - Klassisch - Modern - System - Hell - Dunkel - Darstellung - Medien & Daten - Allgemein - Verbindung - Über Tor leiten - Abschnitte & Feeds - Sichtbare Tabs - Inhalte im Feed - Textnotizen - Reposts - Kommentare & Antworten - Bilder - Videos - Kurzvideos - Artikel - Wiki-Seiten - Highlights - Umfragen - Kleinanzeigen - Torrents - Sprachnachrichten - Live-Aktivitäten - Ephemere Chats - Interaktive Geschichten - Schachpartien - Vogelbeobachtungen - Attestierungen - NIP-Entwürfe - Musik & Audio - Podcasts - Spendenaktionen - Bewertungen & Rezensionen - Bewertet mit %1$s von 5 - Lernressource - Verzeichnis - Dateieintrag - - %1$d Element - %1$d Elemente - - - %1$d weiteres Element - %1$d weitere Elemente - - Erinnerungen - Wallet Verbindung - Design - Lila - Blau - Grün - Orange - Rot - Rosa - Schriftart - Schrift, die in der gesamten App verwendet wird - Systemstandard - Serifenlos - Serif - Monospace - System - Sans - Serif - Monochrom - Schriftgröße - Skaliert die Textgröße in der gesamten App - Klein - Normal - Groß - Riesig - Bilder/GIFs automatisch laden - Videos automatisch abspielen - Videos automatisch abspielen - URL-Vorschau anzeigen - Immersives Scrollen - Navigationsleisten beim Scrollen ausblenden - UI-Modus - Wähle den Beitragsstil - Profilgalerie-Stil - Galeriestil auswählen - Spammer - Stummgeschaltet. Drücken, um Ton einzuschalten - Ton ein. Zur Stummschaltung drücken - Springe %d Sekunden zurück - Springe %d Sekunden vor - Wähle einen Ort auf der Karte - Ort auf der Karte ändern - Standort-exklusiver Beitrag - Nur Follower des Ortes werden es sehen. Deine allgemeinen Follower werden es nicht sehen. - - %1$d Titel - %1$d Titel - - - +%1$d weiterer Titel - +%1$d weitere Titel - - Coverbild hochladen - Wähle ein quadratisches Bild als Artwork für diesen Titel. - Audiodatei hochladen - Wähle eine MP3, WAV oder FLAC. Sie wird beim Speichern auf deinen Medienserver hochgeladen. - Cover und Audio werden hochgeladen und veröffentlicht. Der Vorgang läuft weiter, auch wenn du den Bildschirm verlässt. - Playlist bearbeiten - Coverbild hochladen - Wähle ein quadratisches Bild als Artwork für diese Playlist. - Cover wird hochgeladen und veröffentlicht. Dies läuft weiter, auch wenn du die Seite verlässt. Öffentlich Gruppe - Privat - Verschlüsselte Gruppen - Relay-fähig - Private Nachricht - Direktnachrichten, Ende-zu-Ende-verschlüsselt - 1:1–5 Räume - Einzel- und Kleingruppen-Chats mit Menschen, die du kennst. - Neue Nachricht - 1:1 & kleine Gruppen - Ende-zu-Ende-verschlüsselt - Kann später keine Nutzer hinzufügen - Marmot-Gruppe - Größere private Gruppen - Gerätegebunden - Größere private Gruppen, die über Kleingruppen-DMs hinauswachsen. - Gruppe erstellen - Skaliert über kleine DMs hinaus - Verschlüsselter Gruppen-Chat - Gerätegebunden — erscheint nicht, wenn du dich woanders anmeldest - Concord-Community - Communitys, aufgeteilt nach Kanal - Arbeitsbereiche - Große Communitys, organisiert nach Kanälen oder Arbeitsbereichen. - Community erstellen - Skaliert für riesige Communitys - Aufgeteilt nach Kanal / Arbeitsbereich - Mehr Einrichtungsaufwand - Öffentlicher Chat - Öffentliche Nachrichten auf einem Relay - Unmoderiert - Offene öffentliche Räume, in denen jeder posten kann. - Öffentlichen Chat erstellen - Jeder kann beitreten - Einfach & auffindbar - Nur öffentlich - Keine Moderation - Relay-Gruppe - Relay-betrieben, öffentlich oder privat - Moderiert - Gruppen, die von dem Relay moderiert werden, das sie hostet. - Relay-Gruppen durchsuchen - Vom Relay moderiert - Öffentlich oder privat - An dieses eine Relay gebunden - Verschwindender Chat - Wer auch immer gerade online ist - Jetzt live - Spontaner Chat mit allen, die gerade online sind. - Chat starten - Sprich mit allen, die gerade online sind - Nichts wird gespeichert - Kein Verlauf - Auf Relay beschränkt - Relay-Gruppen - Relay-Gruppen - Nachrichten - Private Nachrichten - Ende-zu-Ende-verschlüsselte, gift-wrapped Direktnachrichten (NIP-17). - Legacy-DMs - Ältere, weniger private verschlüsselte Direktnachrichten (NIP-04). - Öffentliche Kanäle - Offene, öffentliche Chaträume, die jeder lesen und denen jeder beitreten kann (NIP-28). - Relay-Gruppen - Relay-verwaltete Gruppenchats mit Mitgliederlisten und Moderation (NIP-29). - Verschlüsselte Gruppen - MLS-Ende-zu-Ende-verschlüsselte Gruppenchats (Marmot). - Concord-Communitys - Verschlüsselte Communitys mit mehreren Kanälen (Concord). - Standort-Chats - Öffentlicher, geohash-gebundener Chat für einen Ort (Geolokalisierung). - Flüchtige Chats - Leichtgewichtige, relay-gebundene Räume, die keinen Verlauf speichern. - Eine Gruppe erstellen - Neuer Kanal - Neues Forum - Privater Kanal - Aus der Kanalliste ausgeblendet und nur mit Einladung. Aus bedeutet, dass jeder auf diesem Relay ihn finden und beitreten kann. Forumskanal Beiträge in Threads statt eines Chat-Verlaufs. Das lässt sich später nicht mehr ändern. Gruppenname @@ -1373,33 +149,19 @@ Erstellen Einladung wird erstellt… Einladungscode kopiert - Gruppe bearbeiten Gruppenname Thema (optional) Privat (nur Mitglieder lesen) Nur mit Einladung Speichern - Gruppe löschen - „%1$s“ löschen? Damit werden die Gruppe und ihr Verlauf für alle entfernt, und das lässt sich nicht rückgängig machen. - Kanal löschen - „%1$s“ löschen? Damit werden der Kanal und seine Nachrichten für alle entfernt, und das lässt sich nicht rückgängig machen. - Kanal archivieren - Kanal aus dem Archiv nehmen Ort ändern - Privat - Nur Mitglieder können Nachrichten lesen. Es wird nach Gruppen über deine Relays gesucht… Noch keine Gruppen für diesen Filter gefunden. - Titel Schreibe etwas… Posten Zu %1$s hinzugefügt - - %1$d Mitglied - %1$d Mitglieder - %1$d Nachricht %1$d Nachrichten @@ -1412,296 +174,30 @@ %1$d Person, der du folgst %1$d Personen, denen du folgst - - %1$d Gruppe - %1$d Gruppen - Privat - Betreff - Kann nicht hochladen - Füge das Ziel der Nachricht zuerst ein - Wallet nicht gefunden - Amethyst konnte keine Wallet-Apps finden, die Nostr Wallet Connect (NWC) unterstützen. -\n\nWas du tun kannst: -\n\t1. NWC-Unterstützung überprüfen: Stelle sicher, dass deine bevorzugte Wallet-App mit Nostr Wallet Connect kompatibel ist. -\n\t2. Verbindung erstellen: Öffne deine Wallet-App und erstelle eine neue NWC-Verbindung. -\n\t3. Mit Amethyst verknüpfen: Deine Wallet bietet normalerweise drei Optionen: -\n\t\t3.1 Automatische Verknüpfung: Eine Schaltfläche zum automatischen Öffnen und Verbinden mit Amethyst. Klicke darauf, öffne Amethyst und speichere auf dem neuen Bildschirm. -\n\t\t3.2 Manuelle Verknüpfung: Eine Verbindungs-URI, die du kopieren und über das Einfügesymbol auf diesem Bildschirm einfügen kannst. -\n\t\t3.3 QR-Code: Die Wallet erstellt einen QR-Code, den du über die QR-Schaltfläche auf diesem Bildschirm scannen kannst. - Dunkles, helles oder Systemdesign - Bilder und GIFs automatisch laden - Videos und GIFs automatisch abspielen - Videos automatisch abspielen, wenn sie auf dem Bildschirm sichtbar sind - URL-Vorschauen anzeigen - In Zwischenablage kopieren - In die Zwischenablage kopiert - Teilen oder Speichern Als DM senden Neues Highlight Neues Bild Neuer Kurzfilm Neues Video - Neues Highlight Hervorgehobener Text - Füge deine Gedanken hinzu… - Medien hinzugefügt - Medien wurden zu Ihrer Profilgalerie hinzugefügt - Zap konnte nicht gesendet werden - Fehlende Lightning-Konfiguration - Benutzer %1$s hat keine Lightning-Adresse eingerichtet, um Sats zu empfangen - Fehler beim Öffnen der Signer-App - Die Signer-App konnte nicht gefunden werden. Prüfe, ob die App noch installiert ist - Dieses Video kann nicht abgespielt werden - Der Codec oder das Format wird auf diesem Gerät nicht unterstützt (%1$s). Versuche, es im Browser zu öffnen. - Im Browser öffnen - Signaturanfrage abgelehnt - Stell sicher, dass die Signer-App diese Transaktion autorisiert hat - Keine Wallets gefunden, um eine Lightning-Rechnung zu bezahlen (Fehler: %1$s). Installiere eine Lightning-Wallet, um Zaps zu verwenden - Keine Wallets gefunden, um eine Lightning-Rechnung zu bezahlen. Installiere eine Lightning-Wallet, um Zaps zu verwenden - Blossom-Links können nicht geöffnet werden - Keine Blossom-Apps gefunden. Bitte installiere eine lokale Blossom-App, um diese Datei anzuzeigen - Versteckte Wörter - Stummgeschaltete Threads - Keine stummgeschalteten Threads - Profilbild - Profilbilder anzeigen - Konnte Rechnung nicht bezahlen - Konnte nicht abheben - Cashu konnte nicht eingelöst werden - Mint hat folgende Fehlermeldung geliefert: %1$s - Unsichere Cashu-Mint-Adresse - Amethyst hat die Mint dieses Tokens nicht kontaktiert. %1$s - Cashu erhalten - %1$s Sats wurden an Ihre Wallet gesendet. (Gebühren: %2$s Sats) - Keine kompatible Cashu-Brieftasche im System gefunden - Konnte Rechnung nicht vom Server des Empfängers abrufen - Ihr Wallet-Connect-Anbieter hat folgenden Fehler zurückgegeben: %1$s - Dein Wallet-Connect-Anbieter hat eine Antwort gesendet, die Amethyst nicht lesen konnte. - Konnte keine LNUrl aus der Lightning-Adresse \"%1$s\" zusammenstellen. Überprüfe die Konfiguration des Benutzers - Rechnung konnte nicht von %1$s abgerufen werden: %2$s - Fehler beim Parsen von JSON von %1$s. Überprüfe die Lightning-Einstellungen des Benutzers - Callback-URL aus %1$s Antwort nicht gefunden - Falscher Rechnungsbetrag (%1$s Sats) von %2$s. Er hätte %3$s sein sollen - Konnte keine Lightning-Rechnung erstellen, bevor der Zap gesendet wurde. Die Lightning-Wallet des Empfängers hat folgenden Fehler gesendet: %1$s - Nur-Lese-Benutzer - Keine Reaktionen eingerichtet - Benachrichtigungen - Zustellung - Anzeige in der App - Kategorien - Nachricht von %1$s - Relay blockieren - Hallo %1$s, ist das noch verfügbar? - Kleidung - Accessoires - Elektronik - Möbel - Sammlerstücke - Bücher - Haustiere - Sport - Fitness - Kunst - Handwerk - Zuhause - Büro - Lebensmittel - Verschiedenes - Sonstiges - Fehler beim Laden der Medien - Konnte die komprimierte Datei nicht öffnen - Fehler beim Hochladen: %1$s - Der Server hat nach dem Hochladen keine URL angegeben - Hochgeladene Medien konnten nicht vom Server heruntergeladen werden - Die heruntergeladene Datei konnte nach dem Hochladen nicht überprüft werden: %1$s - Konnte %1$s nicht erreichen: %2$s - Löschen fehlgeschlagen: %1$s - Medien sind zu groß für NIP-95 - Dateien verschlüsseln - Dateien vor dem Hochladen verschlüsseln, um die Privatsphäre zu schützen. Einige Server akzeptieren möglicherweise keine verschlüsselten Dateien bei kostenlosen Konten. - Verschlüsselter Upload fehlgeschlagen - Viele Server akzeptieren keine verschlüsselten Dateien bei kostenlosen Konten. Du kannst es ohne Verschlüsselung erneut versuchen. - H.265/HEVC-Codec verwenden - Bessere Qualität bei kleinerer Dateigröße, aber nicht alle Geräte unterstützen die H.265-Wiedergabe. - GIF in MP4 umwandeln - Konvertiert animierte GIFs in MP4-Videos für kleinere Dateigrößen und bessere Wiedergabekompatibilität. - Private Metadaten entfernen - Versucht, private Metadaten aus unterstützten Mediendateien vor dem Hochladen zu entfernen - Metadaten konnten nicht entfernt werden - Private Metadaten konnten nicht aus der Mediendatei entfernt werden. Hochladen abgebrochen. - Hochladen abgebrochen - Metadaten können nicht aus AVIF entfernt werden: %1$s - Startseite - Entdecken - Nachrichten - Benachrichtigungen - Medien - Kalender - Kalenderlisten - Schach - Wallet - Transaktionen konnten nicht geladen werden - Weitere Transaktionen konnten nicht geladen werden - Guthaben konnte nicht geladen werden - Rechnung konnte nicht erstellt werden - Deine Wallet hat keine Rechnung zurückgegeben - Zeitüberschreitung bei der Wallet-Anfrage - Deine Wallet konnte nicht erreicht werden: %1$s - Deine Wallet hat mit etwas geantwortet, das Amethyst nicht kennt (%1$s) - Amethyst konnte die Antwort deiner Wallet nicht entschlüsseln — die Wallet verwendet möglicherweise einen anderen Schlüssel - Cashu-Wallet (NIP-60) Nutzap-Schlüssel (erweitert) Ein separater privater Schlüssel, der nur zum Empfangen von NIP-61-Nutzaps dient. Nicht dein Nostr-Identitätsschlüssel. Neuen Schlüssel erzeugen Privater P2PK-Schlüssel (hex) - Cashu-Wallet bearbeiten Änderungen speichern - - +%1$d weiterer - +%1$d weitere - - - Von %1$d weiterem empfohlen - Von %1$d weiteren empfohlen - - Beliebte Mints - Passende Mints - Empfangen - Gesendet - Eine Löschanfrage für deine kind:38000-Empfehlung von %1$s veröffentlichen. Relays, die NIP-09 beachten, entfernen sie. - %1$s Sats über %2$s Proofs wiederhergestellt. - %1$s Sat + bis zu %2$s Sat Gebühren bezahlen? - Nutzap fehlgeschlagen - Kein Empfänger-Pubkey in der Notiz - Nutzaps sind öffentlich und würden diese private Notiz preisgeben. Nutze stattdessen einen Lightning-Zap. - Ereignisreferenz kann nicht erstellt werden - Warte auf die Bezahlung der Rechnung… - Mint wird geprüft… - Langsam - Normal - Schnell - ~1 Std. - ~30 Min. - ~10 Min. - %1$s · %2$s sat/vB · %3$s - - %1$s sats senden, auf %2$d Empfänger aufgeteilt - %1$s sats senden, auf %2$d Empfänger aufgeteilt - - - Die %1$d-fache Zap-Aufteilung dieser Notiz verwenden - Die %1$d-fache Zap-Aufteilung dieser Notiz verwenden - - - Aufgeteilt auf %1$d Empfänger - Aufgeteilt auf %1$d Empfänger - - - %1$d Empfänger mit reiner Lightning-Adresse wird übersprungen — On-Chain benötigt einen Nostr-Pubkey, um die Adresse abzuleiten. - %1$d Empfänger mit reiner Lightning-Adresse werden übersprungen — On-Chain benötigt einen Nostr-Pubkey, um die Adresse abzuleiten. - - Guthaben wird geladen - Transaktion wird erstellt - wird signiert - wird gesendet - Quittung wird veröffentlicht - Bitcoin-Chain-Backend ist nicht konfiguriert - Dein Bitcoin-Guthaben konnte nicht geladen werden - Transaktion konnte nicht erstellt werden - Ein Empfängeranteil liegt unter dem Dust-Limit - Transaktion konnte nicht signiert werden - Transaktion konnte nicht gesendet werden - Zahlung gesendet, aber die Zap-Quittung konnte nicht veröffentlicht werden - - Zahlung gesendet (%1$d von %2$d Quittung veröffentlicht), aber die nächste Quittung konnte nicht veröffentlicht werden - Zahlung gesendet (%1$d von %2$d Quittungen veröffentlicht), aber die nächste Quittung konnte nicht veröffentlicht werden - - Folgeliste importieren - Neues Produkt - Neuer Artikel - Neuer Kalendertermin - Kalendertermin bearbeiten - Neuer Kalender - Kalender bearbeiten - Feed - Monat - Woche - Tag - - %1$s, %2$d Termin - %1$s, %2$d Termine - - Findet jetzt statt - %1$s · endet %2$s - Kalendertermin teilen - calendar_reminders - Kalendererinnerungen - Hinweis, wenn ein Termin, an dem du teilnimmst, bald beginnt. - Kalendertermin - - Beginnt in %1$d Minute - Beginnt in %1$d Minuten - - Bild-Upload fehlgeschlagen - Das gewählte Bild konnte nicht hochgeladen werden. Versuche es erneut oder füge eine URL ein. - Kalendererinnerungen - Erinnerungen senden - Eine Benachrichtigung wird angezeigt, wenn ein Termin, an dem du teilnimmst, bald beginnt. - - %1$d Min. - %1$d Min. - - In Karten öffnen - Link öffnen - Alle Reaktionen auf diesen Beitrag öffnen - Alle Reaktionen auf diesen Beitrag schließen - Zap - Untere Navigationsleiste Zum Umordnen ziehen. Zum Hinzufügen oder Entfernen eines Elements aus der unteren Leiste umschalten. Mit null Elementen wird die untere Leiste ausgeblendet. Umordnen - Noch keine Favoriten. Markiere eine App im Browser mit einem Stern, um sie hier hinzuzufügen. - Noch keinen Gruppen beigetreten. - Hinzufügen - Hinzugefügt - Start - Chats & Gruppen - Du - Feeds - Apps & Web - Sonstiges - Seitenmenü - - %1$d ausgeblendet - %1$d ausgeblendet - - Sichtbar - Ausgeblendet - Immer an Wähle, welche Tabs auf der Startseite erscheinen. Wenn nur ein Tab aktiv ist, wird die Tab-Leiste ausgeblendet. - Alles - Profil-Oberfläche Wähle, welche Abschnitte und Feeds auf den Profilseiten erscheinen. Alle Optionen sind standardmäßig aktiviert. - Profilabzeichen - App-Empfehlungen - Erhaltene-Zaps-Feed - Follower-Feed - Bitcoin-(On-Chain-)Wallet - Reaktions-Einstellungen - Videoplayer-Schaltflächen - Audio-Visualisierer - Bearbeiten - Bearbeiten - Nachricht bearbeiten - %1$s und %2$s tippen… Buzz-Workspaces Wo Menschen und Agenten gemeinsam bauen Workspace verlassen @@ -1717,65 +213,6 @@ Hinzufügen Keine Kanäle gefunden Du scheinst noch in keinem Kanal auf diesem Relay Mitglied zu sein. Nimm zuerst die Workspace-Einladung im Browser an und versuche es dann erneut. - Kanal anheften - Kanal nicht mehr anheften - - %1$d ausgeblendete Unterhaltung - %1$d ausgeblendete Unterhaltungen - - - %1$d weitere Unterhaltung anzeigen - Alle %1$d Unterhaltungen anzeigen - - Warte darauf, dass ein Relay diese Nachricht akzeptiert - Keine Relay-Informationen für diese Nachricht - Von mindestens einem Relay akzeptiert - An die Relays aller Empfänger zugestellt - Ablaufdatum - Der Autor hat die Relays gebeten, diese Notiz nach %1$s zu löschen. Sie verschwindet aus den Feeds, sobald sie abläuft. - Ungültige Adresse - Amethyst hat eine URI zum Öffnen erhalten, aber diese URI war ungültig: %1$s - DM-Posteingangs-Relays - Such-Relays - Gute Optionen sind:\n%1$s - Ausgehende Relays - Eingehende Relays - Relay-Einstellungen - Öffentliche Outbox/Home-Relays - Der Benutzer veröffentlicht seine Inhalte auf diesen Relays - Dieser Relay-Typ speichert alle Ihre Inhalte. Amethyst sendet Ihre Beiträge hierher und andere werden diese Relais verwenden, um Ihre Inhalte zu finden. Fügen Sie 1–3 Relais ein. Sie können persönliche Relais, bezahlte Relais oder öffentliche Relais sein. - Öffentliche Posteingangs-Relays - Der Benutzer erhält Benachrichtigungen auf diesen Relays - Dieser Relay-Typ empfängt alle Antworten, Kommentare, Likes und Zaps auf Ihre Beiträge. Fügen Sie 1–3 Relays ein und stellen Sie sicher, dass sie Beiträge von jedem akzeptieren. - DM-Posteingangs-Relays - Der Benutzer empfängt Direktnachrichten auf diesen Relays - Fügen Sie 1–3 Relays ein, die als Ihr privater Posteingang dienen sollen. Andere werden diese Relays verwenden, um Ihnen DMs zu senden. DM-Posteingangsrelays sollten Nachrichten von jedem akzeptieren, aber nur Ihnen erlauben, sie herunterzuladen. Gute Optionen sind:\n - inbox.nostr.wine (bezahlt)\n - you.nostr1.com (persönliche Relays - bezahlt) - KeyPackages - KeyPackage-Relays - Relays, auf denen deine MLS KeyPackages veröffentlicht werden (MIP-00). Andere Nutzer rufen diese KeyPackages ab, um dich zu Marmot-Gruppenchats einzuladen. Füge 1–3 Relays hinzu, die KeyPackage-Ereignisse von dir akzeptieren und öffentliches Lesen erlauben. - Private Relays - Fügen Sie zwischen 1–3 Relays ein, um Ereignisse zu speichern, die niemand anders sehen kann, wie Ihre Entwürfe und/oder App-Einstellungen. Idealerweise sind diese Relays entweder lokal oder erfordern eine Authentifizierung, bevor Sie die Inhalte eines jeden Benutzers herunterladen. - Verbundene Relays - Aktuelle Liste der verwendeten Relays - Such-Relays - Liste der Relays, die für die Suche und das Taggen von Benutzern verwendet werden. Das Taggen und die Suche funktionieren nicht, wenn keine Optionen verfügbar sind. - Lokale Relays - Liste der Relays, die auf diesem Gerät laufen. - Profile an lokalen Relay weiterleiten - Alle empfangenen Profilereignisse (kind 0) an Ihren lokalen Relay senden - Vertrauenswürdige Relays - Relays, denen du vertraust und für die keine Tor-Verbindung erforderlich ist - Favorisierte Relay-Feeds - Relays, die du häufig besuchst, um ihren globalen Feed zu sehen - Proxy-Relays - Aggregator-Relays wie filter.nostr.wine, von denen die App deine Feeds herunterlädt - Broadcast-Relays - Relays, die deine Beiträge an andere Relays weiterleiten, z.B. sendit.nosflare.com. Amethyst fügt diesen Relay zu allen neuen Ereignissen hinzu - Indexer-Relays - Relays, die Metadaten und Relay-Listen hosten, z.B. purplepag.es. Amethyst verwendet sie, um Benutzer zu finden, die nicht in deinen Listen sind. - Blockierte Relays - Amethyst wird sich niemals mit diesen Relays verbinden - Relay-Einstellungen exportieren Internet: Übersicht Betreut von @@ -1784,609 +221,40 @@ Maintainer Themen Readme - - %1$d Element - %1$d Elemente - Issue schließen Wieder öffnen - Git Repositories - Highlights - Repositories filtern - Filter schließen - Zeitstempel Beweis - Es gibt einen Beweis, dass dieser Beitrag irgendwann vor %1$s signiert wurde. Der Beweis wurde zu diesem Datum und Uhrzeit in der Bitcoin-Blockchain gestempelt. - Ein Zeitstempel-Nachweis für diesen Beitrag wurde angefordert und wartet darauf, in der Bitcoin-Blockchain gestempelt zu werden. Dies ist in der Regel innerhalb weniger Stunden abgeschlossen. - Beitrag bearbeiten - Es ist nicht möglich, auf einen Entwurf zu antworten - Es ist nicht möglich, einen Entwurf zu zitieren - Es ist nicht möglich, auf einen Entwurf zu reagieren - Es ist nicht möglich, zap Zahlung an einen Entwurf senden - Entwurf - Fehlerhafte Anfrage - Der Server kann oder will die Anfrage nicht verarbeiten. - Nicht autorisiert - Der Benutzer hat keine gültigen Authentifizierungsdaten - Zahlung erforderlich - Der Server verlangt eine Zahlung, um die Anfrage abzuschließen - Verboten - Der Benutzer hat keine Zugriffsrechte, um die Anfrage zu stellen - Nicht gefunden - Der Server kann die angeforderte Adresse nicht finden - Methode nicht erlaubt - Der Server unterstützt die Anfragemethode, aber nicht die Zielressource - Nicht akzeptabel - Der Server findet keinen Inhalt, der die Anfrage erfüllt. - Proxy-Authentifizierung erforderlich - Der Benutzer hat keine gültigen Authentifizierungsdaten - Anfrage-Timeout - Der Server hat zu lange auf jemanden anderen gewartet - Konflikt - Der Server kann die Anfrage nicht erfüllen, da ein Konflikt mit der Ressource besteht - Verschwunden - Der angeforderte Inhalt wurde dauerhaft vom Server gelöscht und wird nicht wiederhergestellt - Länge erforderlich - Der Server lehnt die Anfrage ab, da er eine definierte Länge erfordert - Vorbedingung fehlgeschlagen - Die Vorbedingungen der Anfrage in den Kopfzeilenfeldern, die der Server nicht erfüllt - Nutzlast zu groß - Die Anfrage ist größer als die vom Server definierten Grenzen und der Server weigert sich, sie zu verarbeiten - URI zu lang - Die vom Client angeforderte URL ist zu lang, um vom Server verarbeitet zu werden. - Medientyp nicht unterstützt - Die Anfrage verwendet ein Medienformat, das der Server nicht unterstützt - Bereich nicht erfüllbar - Der Server kann den im Range-Header-Feld der Anfrage angegebenen Wert nicht erfüllen. - Erwartung fehlgeschlagen - Der Server kann die Anforderungen, die durch den Expect-Request-Header-Feld angegeben sind, nicht erfüllen - Upgrade erforderlich - Der Server weigert sich, die Anfrage mit dem aktuellen Protokoll zu verarbeiten, es sei denn, der Client wechselt zu einem anderen Protokoll. - Interner Serverfehler - Der Server hat einen unerwarteten Fehler festgestellt und kann die Anfrage nicht abschließen - Nicht implementiert - Der Server kann die Anfrage nicht erfüllen oder erkennt die Anfragemethode nicht - Schlechtes Gateway - Der Server agiert als Gateway und erhielt eine ungültige Antwort vom Host - Dienst nicht verfügbar - Dies tritt häufig auf, wenn ein Server überlastet ist oder gewartet wird - Gateway-Timeout - Der Server agierte als Gateway oder Proxy und hat zu lange auf eine Antwort gewartet - HTTP-Version nicht unterstützt - Der Server unterstützt die HTTP-Version der Anfrage nicht - Variante verhandelt auch - Der Server hat einen internen Konfigurationsfehler - Unzureichender Speicher - Der Server hat nicht genug Speicher, um die Anfrage erfolgreich zu verarbeiten - Schleife erkannt - Der Server erkennt eine Endlosschleife, während er die Anfrage bearbeitet - Netzwerk-Authentifizierung erforderlich - Der Client muss authentifiziert werden, um auf das Netzwerk zuzugreifen Blossom Server Fügen Sie beliebig viele Server hinzu. Sie können wählen, welche später beim Hochladen Ihres Bildes verwendet werden soll - NIP-96 Server hinzufügen - Blossom Server hinzufügen Herunterladen - Fehler beim Öffnen der Datei - Keine Torrent-Apps installiert, um die Datei zu öffnen und herunterzuladen. - Das Ereignis enthält nicht genügend Informationen, um einen Magnetlink zu erstellen - Meine Listen - Feeds - Hash-Tags - Interessensets - Standorte - Gemeinschaften - Listen - Feed-Algorithmen - Alle bevorzugten Feed-Algorithmen - Relays - Bevorzugte Feed-Algorithmen - Private Nachricht - Öffentliche Nachricht - Bild kann nicht geteilt werden, bitte versuchen Sie es später erneut… - Video kann nicht geteilt werden, bitte versuchen Sie es später erneut… - Video wird heruntergeladen… - Nicht übersetzen von - Die hier angezeigten Sprachen werden nicht übersetzt. Wählen Sie eine Sprache, um sie zu entfernen und lassen Sie sie erneut übersetzen. - Übersetzen in - Wähle die Sprache, in die der Inhalt übersetzt werden soll. - Sprachanzeigeeinstellungen - Wähle für jedes übersetzte Sprachpaar, welche Sprache zuerst angezeigt werden soll. - Pausen - Abspielen - App-Ressourcennutzung - Akku Daten Nutzung Verbrauch Energie Netzwerk Diagnose Protokoll Heute Letzte 7 Tage - Mobil heute - WLAN heute - Relay-Zeit heute - In App heute - Daten pro Tag - Mobil (MB) - WLAN (MB) - Aktivität (7 Tage) Mobile Daten (Hintergrund) Mobile Daten (in App) WLAN-Daten - Relay-Verbindungszeit - … im Hintergrund über Mobilfunk - Benachrichtigungsverarbeitung (CPU wach) - Ausgeführte Hintergrundaufgaben - Relay-Neuverbindungen (fehlgeschlagen) - Web-Anfragen - Funk-Aufwachvorgänge für Downloads (geschätzt) - Aktive Übertragungszeit - Medienwiedergabezeit - Verifizierte Signaturen - Genutzte Prozessorzeit Zeit in der App - App-Prozessstarts - Entschlüsselte Nachrichten - Entfernte Signaturen - Proof-of-Work-Mining - Tor-Laufzeit - Zeit in Anrufen - Zeit in Audioräumen - Standortempfang - Akkuverbrauch (in App / Hintergrund) - Hintergrund-Benachrichtigungsdienst - Laufzeit - - %1$d Start - %1$d Starts - - Relay-Verbindungen bei geschlossener App gehalten - Akkuverbrauch in dieser Zeit (ganzes Gerät) - Akku / Stunde in App - Daten / Stunde in App - Durchschn. Relay-Verbindungen - Mobile Daten nach Funktion (7 Tage) - Zeit nach Bildschirm (7 Tage) - Integriertes Tor - Daten nach Funktion (7 Tage) - Relay-Synchronisierung - Bilder - Video & Audio - Uploads - Wallet & Zaps - Adressverifizierung - Link-Vorschauen - Push-Registrierung - Sonstiges - Speicher jetzt - App-Speicher (Heap) - Nativer Speicher - Bild-Cache (RAM) - Bild-Cache (Festplatte) - Notizen im Speicher - Profile im Speicher - Adressierbare Events im Speicher - Chatraum-Listen im Speicher - Geräte-Speicherklasse - Mit den Entwicklern teilen - Teilen - Amethyst hat in letzter Zeit mehr als erwartet verbraucht: %1$s. Möchtest du einen Nutzungsbericht in einer verschlüsselten DM an die Entwickler senden? Du siehst den vollständigen Bericht, bevor etwas gesendet wird. - %1$s mobile Daten im Hintergrund an einem Tag - %1$s Relay-Verbindungen im Hintergrund über Mobilfunk an einem Tag - die CPU wurde an einem Tag %1$s lang wachgehalten, um Benachrichtigungen zu verarbeiten - - der App-Prozess wurde an einem Tag %1$d Mal neu gestartet - der App-Prozess wurde an einem Tag %1$d Mal neu gestartet - - - die App hat sich an einem Tag %1$d Mal erneut mit Relays verbunden - die App hat sich an einem Tag %1$d Mal erneut mit Relays verbunden - - Diese Nachricht verschwindet in %1$s - Metadaten der Follow-Liste - Metadaten von Follow-Listen können von allen auf Nostr gesehen werden. Nur deine privaten Mitglieder sind verschlüsselt. - Metadaten des Empfehlungspakets - Metadaten von Empfehlungspaketen können von allen auf Nostr gesehen werden und werden häufig auf Websites als Starterkits für neue Nutzer veröffentlicht. - Empfehlungspaket bearbeiten - Ausklappen - Erneut versuchen - Reaktion - Sprachbeitrag - Sprachantwort - - · %1$d Auswahl - · %1$d Auswahlen - - %1$d von %2$d Antworten von %3$d Relays geladen. - %1$d von etwa %2$d Antworten von %3$d Relays geladen. - - %1$d Stimme › - %1$d Stimmen › - - - %1$d abstimmende Person - %1$d abstimmende Personen - - - %1$d Stimme ist nach dem Ende der Umfrage eingegangen und wird ausgeschlossen. - %1$d Stimmen sind nach dem Ende der Umfrage eingegangen und werden ausgeschlossen. - - - %1$d Stimme ist auf einen Zeitpunkt vor der Veröffentlichung der Umfrage datiert und wird ausgeschlossen. - %1$d Stimmen sind auf einen Zeitpunkt vor der Veröffentlichung der Umfrage datiert und werden ausgeschlossen. - - - %1$d Antwort hat keine gültige Option gewählt und wird ausgeschlossen. - %1$d Antworten haben keine gültige Option gewählt und werden ausgeschlossen. - - - %1$d abstimmende Person wird durch deine Stummschaltliste ausgeblendet. - %1$d abstimmende Personen werden durch deine Stummschaltliste ausgeblendet. - - Outbox-Relays - Apps - App-Empfehlungen - Benutzereinstellungen - Audio-Header - Audiospur - Musiktitel - Musik-Playlist - Podcast-Folge - Podcast-Sendung - Erstellte Podcasts - Lieblings-Podcasts - Abzeichen-Auszeichnungen - Abzeichen-Definitionen - Akzeptiertes Abzeichen-Set - Profil-Abzeichen - Blockierte Relays - Blossom-Server - Nests-Server - Blossom-Authentifizierung - Broadcast-Relays - Lesezeichenliste - Alte Lesezeichenliste - Tagestermin - Kalender - Termin - RSVP für Termin - Schachspiele - Schach-Authentifizierung - Bevorzugte Relays - Schach-Herausforderungen - Schachspiel annehmen - Schachzug - Ende des Schachspiels - Remisangebot - Kanaldefinition - Kanalnachricht ausblenden - Kanalliste - Kanalnachricht - Kanal-Metadaten - Benutzer im Kanal stummschalten - DM-Datei - DM-Nachricht - DM-Relays - Kleinanzeigen - Kommentare - Community-Definition - Community-Liste - Community-Beitrag - Folgeliste - Löschungen - Entwürfe - Emoji-Pakete - Emoji-Paketliste - Ephemerer Chat - Ephemere Chaträume - Datei-Header - Profilgalerie - Dateiserver - Blob-Daten - Blob-Header - Medizinische Daten - Follow-Pakete - Reposts (16) - Geohash-Follows - Geschenkverpackungen - Git-Issue - Git-Patch - Git-Repository - Git-Antwort - Pull Request - PR Update - Git-Status: Offen - Git-Status: Angewendet - Git-Status: Geschlossen - Git-Status: Entwurf - Zap-Ziele - Gefolgte Hashtags - Highlights - HTTP-Authentifizierung - Index-Relay-Liste - Abenteuer-Prolog - Abenteuer-Szene - Abenteuer-Lesung - Benannte Lesezeichen - Live-Chats - Live-Streams - Zap - NWC-Anfrage - NWC-Antwort - Privaten Zaps - Zap-Anfrage - Blogs - Besprechungsraum - Raumpräsenz - Besprechungsbereich - Profil - Stummschaltliste - NNS - NIP - Nostr Connect - DVM-Status - DVM-Inhaltsanfrage - DVM-Inhaltsantwort - DVM-Benutzeranfrage - DVM-Benutzerantwort - OTS - Zahlen an - Personenlisten - Bilder - Workouts - Angepinnt - Zap-Umfrage - Umfrage - Umfrageantwort - NIP-04-DMs - Private Relays - Proxy-Relays - Öffentliche Nachricht - Reaktionen - Kontaktkarte - Relay-Authentifizierung - Relay-Entdeckung - Relay-Monitor-Ankündigung - Relay-Set - Meldungen - Reposts - Benutzer löschen - Siegel - Such-Relays - Benutzerstatus - Beiträge - Bearbeitungen - Torrents - Torrent-Kommentare - Vertrauenswürdige Relays - Vertrauenswürdige Anbieter - Video (Antwort) - Shorts (Antwort) - Video - Shorts - Sprachnachricht - Sprachantwort - Aufwachen - Web-Lesezeichen - Wiki - %1$d%% Verfügbarkeit - Namecoin-Einstellungen - %dms - Relay-Synchronisierung - Bitcoin Explorer (OTS) - Ereignisse von dir - Ereignisse an dich - durchsuchbare Ereignisse - DMs - profile - Ausgangs-Listen - Zuletzt gesehen vor %1$s - Zuletzt gesehen am %1$s (vor %2$s) - Gerade eben gesehen - Nie gesehen - - %1$d Minute - %1$d Minuten - - - %1$d Stunde - %1$d Stunden - - - %1$d Tag - %1$d Tage - - - %1$d Woche - %1$d Wochen - - - %1$d Monat - %1$d Monate - - - %1$d Jahr - %1$d Jahre - - - %1$d Mint - %1$d Mints - - - %1$d ausstehende Rechnung - %1$d ausstehende Rechnungen - - - Guthaben bei %1$d Mint, den Sie nicht verwenden - Guthaben bei %1$d Mints, die Sie nicht verwenden - - %1$s sat nach %2$s verschoben. - An Gerät streamen - Streaming beenden - HLS-Upload - Lade %1$s hoch (%2$d von %3$d) - Attestierung - Attestierungsanfrage - Empfehlung des Attestierers - Kompetenz des Attestierers - Web-Lesezeichen - Web-Lesezeichen hinzufügen - Web-Lesezeichen bearbeiten - %1$s finanziert von %2$s Sats Ziel - Neues Ziel - Löschanfrage - Löschanfrage gesendet - Löschverlauf - Benutzer - Ereignisse - Arten - IPs - Einstellungen - Textverbesserungen vorschlagen - Verwendet ein KI-Modell auf dem Gerät, um Textkorrekturen und Tonänderungen vorzuschlagen. - Verfolgte Übertragungen - Verwende den verfolgten Broadcaster beim Senden von Ereignissen. Zeigt Live-Fortschritt und Status pro Relay während der Übertragung. - Workouts zum Teilen vorschlagen - Liest abgeschlossene Workouts aus Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) und schlägt vor, sie als Beitrag zu teilen. Die Berechtigung wird nur beim Verbinden angefragt. - Editor-Einstellungen - Entwürfe automatisch erstellen - Speichert automatisch ein Entwurfsereignis, wenn du tippst oder den Editor mit ungesendetem Text verlässt, und sendet es an deine privaten ausgehenden Relays. - Arbeitsnachweis - Der Autor hat Rechenleistung aufgewendet, um diese Notiz auf Schwierigkeit %1$s zu minen — ein Proof-of-Work-Stempel, der Spam teuer macht. - Kurze Notizen & Antworten - Die primäre öffentliche Spam-Fläche - Kommentare - Antworten auf Artikel, Dateien und andere Inhalte - Meldungen - Relays gewichten Meldungen nach ihren Kosten - Langform & Highlights - Artikel und Highlights; selten, die Kosten sind vernachlässigbar - Sprachnachrichten - Öffentliche Sprachbeiträge und -antworten - Reposts - Hohes Volumen bei aktiven Nutzern - Reaktionen - Häufigster Typ; jedes Like zu schürfen kostet Akku - Öffentlicher & Live-Chat - Schürf-Verzögerungen stören den Gesprächsfluss - Verpackungen privater Nachrichten - Ermöglicht DM-Relays das Filtern von Posteingangs-Spam; nur die äußere Verpackung wird gemint, nie deine Nachricht - Andere öffentliche Inhalte - Umfragen, Live-Status, Kleinanzeigen und alles andere Öffentliche - Arbeitsnachweis wird geschürft - - Arbeitsnachweis wird geschürft… (%1$d Beitrag in der Warteschlange) - Arbeitsnachweis wird geschürft… (%1$d Beiträge in der Warteschlange) - - - %1$s • schürft bei %2$d Bit - %1$s • schürft bei %2$d Bits - - - %1$s • wartet auf Schürfen bei %2$d Bit - %1$s • wartet auf Schürfen bei %2$d Bits - - - Standard (%1$d Bit) - Standard (%1$d Bits) - - - %1$d Bit - %1$d Bits - - Arbeitsnachweis-Schürfen - Zeigt Beiträge an, die noch ihren NIP-13-Arbeitsnachweis schürfen, damit sie fertig werden können, nachdem du die App verlässt. - Abbrechen - Jetzt senden - <1 s - - %1$d Sekunde - %1$d Sekunden - - - %1$d Minute - %1$d Minuten - - - %1$d Stunde - %1$d Stunden - - - %1$d Tag - %1$d Tage - - ≈ %1$s verbleibend - jeden Moment - Dein %1$s wurde fertig geschürft, konnte aber nicht veröffentlicht werden: %2$s - Dein %1$s wurde fertig geschürft, konnte aber nicht veröffentlicht werden. Es wird beim nächsten Start der App erneut versucht. - Chat-Nachricht - Meldung - Neues Emoji-Paket - Emoji-Paket bearbeiten - Meine Emoji-Pakete - Emojis - Öffentliche Emojis sind für alle sichtbar und erscheinen in deinem Reaktionsmenü und in der \":\"-Autovervollständigungsauswahl, wenn dieses Paket in deiner Emoji-Liste ist. - Private Emojis werden verschlüsselt auf Relays gespeichert und sind nur für dich sichtbar. Sie erscheinen in deinem Reaktionsmenü und in der \":\"-Autovervollständigung wie öffentliche. - Entwurf hat %1$d Bytes; diese Community begrenzt diesen Typ auf %2$d Bytes. - Entwurf hat %1$d Bytes; diese Community begrenzt Ereignisse auf %2$d Bytes. - Du hast heute bereits %1$d Ereignisse dieses Typs veröffentlicht (Limit %2$d). - Nowhere-Seite - Nowhere Ereignis - Nowhere Spendenaktion - Nowhere Shop - Nowhere Petition - Nowhere Nachricht - Nowhere Drop - Nowhere Kunst - Nowhere Forum - - %1$d Nachricht - %1$d Nachrichten - - - %1$d Mitglied - %1$d Mitglieder - - - Deine Wallet hat nicht innerhalb von %1$d Sekunde geantwortet. Die Zahlung ist möglicherweise trotzdem erfolgt — prüfe deine Wallet, bevor du es erneut versuchst. - Deine Wallet hat nicht innerhalb von %1$d Sekunden geantwortet. Die Zahlung ist möglicherweise trotzdem erfolgt — prüfe deine Wallet, bevor du es erneut versuchst. - - - Zeitüberschreitung bei der Wallet-Anfrage — %1$d Antwort wurde abgelehnt, weil sie mit einem unerwarteten Schlüssel signiert war. Dein Relay ist möglicherweise nicht vertrauenswürdig. - Zeitüberschreitung bei der Wallet-Anfrage — %1$d Antworten wurden abgelehnt, weil sie mit einem unerwarteten Schlüssel signiert waren. Dein Relay ist möglicherweise nicht vertrauenswürdig. - - Foto hinzufügen - Foto ändern - Gruppeninfo aktualisiert - Aktualisierung fehlgeschlagen: %1$s - Gruppe konnte nicht erstellt werden: %1$s - Gruppe konnte nicht verlassen werden: %1$s - Füge zuerst in den Einstellungen einen Blossom-Medienserver hinzu — die Gruppe braucht einen Ort, an den Anhänge hochgeladen werden. - Diese Gruppe verwendet jetzt verschlüsselte Anhänge - Diese Gruppe konnte nicht auf verschlüsselte Anhänge umgestellt werden: %1$s - Gruppe aufgelöst - Gruppe wird beendet. Das ist abgeschlossen, sobald die Gruppe zustimmt. - Diese Gruppe wird beendet. Du kannst sie weiterhin lesen. - Du verlässt diese Gruppe. - Du bist kein Mitglied dieser Gruppe mehr. - Gruppe konnte nicht aufgelöst werden: %1$s - %1$s wird hinzugefügt… - %1$s konnte nicht hinzugefügt werden: %2$s - unbekannter Fehler - Mitglied entfernt - Mitglied konnte nicht entfernt werden: %1$s - Administratorrechte erteilt - Administratorrechte konnten nicht erteilt werden: %1$s - Administratorrechte widerrufen - Administratorrechte konnten nicht widerrufen werden: %1$s - Kein Mitglied dieser Gruppe Der Lightning-Service des Empfängers unter %1$s ist nicht verfügbar. Er wurde aus der Lightning-Adresse \"%2$s\" berechnet. Fehler: %3$s. Überprüfen Sie, ob der Server online ist und ob die Lightning-Adresse korrekt ist Konnte %1$s nicht auflösen. Überprüfen Sie, ob Sie verbunden sind, ob der Server online ist und ob die Lightning-Adresse %2$s korrekt ist.\n\nAusnahme war: %3$s Fehler beim Parsen von JSON von %1$s. Überprüfen Sie die Blitzeinrichtung des Benutzers Blitzrechnung konnte nicht erstellt werden. Nachricht von %1$s: %2$s Kann keine Blitzrechnung von %1$s erstellen: Element pr nicht im resultierenden JSON gefunden. - Standort-Chat - Standort-Kanal - Chatte mit allen in der Nähe eines Ortes, per Geohash. - Lokal - Am besten, um mit Menschen physisch in der Nähe eines Ortes zu sprechen — deinem Viertel, deiner Stadt oder Region. - Ort auswählen - Anonym — eine Wegwerf-Identität pro Gebiet, niemals dein npub. - Bitchat-kompatibel; erreicht Nutzer in der Nähe auf denselben Relays. - Öffentlich und flüchtig — kein Verlauf, jeder in der Zelle kann es lesen. - In Warteschlange - Arbeitet - Genehmigung nötig - Genehmigt - Ausgeliefert - Fehlgeschlagen - Abgebrochen - Abgelehnt - Value-for-Value diff --git a/amethyst/src/main/res/values-de/strings.xml b/amethyst/src/main/res/values-de/strings.xml index 2cf6d8a959..f200b3711c 100644 --- a/amethyst/src/main/res/values-de/strings.xml +++ b/amethyst/src/main/res/values-de/strings.xml @@ -1,400 +1,25 @@ - Spam - Anzahl der Spam-Ereignisse von diesem Relais - Vortäuschung - Illegales Verhalten - Löschung beantragen - Sie verwenden einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um antworten zu können - Sie verwenden einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um Beiträge boosten zu können - Sie verwenden einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um Beiträge zu liken - Keinen Zap-Betrag festgelegt. Drücken Sie lange, um dies anzupassen - Sie verwenden einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um Zaps senden zu können - Sie verwenden einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um folgen zu können - Sie verwenden einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um nicht mehr zu folgen - Sie verwenden einen öffentlichen Schlüssel, und öffentliche Schlüssel sind nur lesbar. Melden Sie sich mit einem privaten Schlüssel an, um ein Wort oder einen Satz auszublenden - Sie verwenden einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um ein Wort oder einen Satz anzeigen zu können - Zaps - Boost boosted Bearbeitung #%1$s - Eine Bearbeitung vorschlagen - Hinzufügen - Fehler beim Parsen der Fehlermeldung - Profil - Sicherheitsfilter - Bezahlen - "Vorschaukartenbild für %1$s" - Beschreibung - Was beschäftigt dich? - Beitrag Speichern - Erstellen - Abbrechen - Fehler - Bild in der Gal - -erie gespeichert - Der Videodownload wurde gestartet… - Der Mediendownload wurde gestartet… - Fehler beim Speichern des Bildes - Video in der Videogalerie des Telefons gespeichert - Video konnte nicht gespeichert werden - Der Benutzer hat keine Lightning-Adresse eingerichtet, um Sats zu empfangen - "Hier antworten…" - Bekannt - Neue Anfragen - Blockierte Benutzer - Neue Threads - Unterhaltungen - Weitere Optionen - Privaten QR-Code anzeigen - QR-Code für verschlüsselten privaten Schlüssel anzeigen - Folgen - Folge zurück - Passwort ausblenden - Ungültiger Schlüssel - Ungültiger Schlüssel: %1$s - Passwort ist erforderlich - Schlüssel ist erforderlich - Ein Name wird benötigt - Verlassen - Entfolgen - Öffentlicher Chat - Öffentliche Chat Metadaten - Öffentliche Chats sind für jeden auf Nostr sichtbar und jeder - kann daran teilnehmen. Sie eignen sich hervorragend für offene Gemeinschaften rund um bestimmte Themen. - Moderation kann durch Löschen von Beiträgen auf den Relais gesteuert werden - Relais - Fügen Sie zwischen 1–3 Relais ein, die diese Gruppe beherbergen. - Nostr Clients verwenden diese Einstellung, um zu wissen, woher sie Nachrichten herunterladen und an welche gesendet werden sollen. - Entfernen - nie - jetzt - s - m - t - Nacktheit - Beleidigungen / Hassrede - Schlüssel sichern - Fehler beim Verschlüsseln Ihres privaten Schlüssels - Geheimer Schlüssel (nsec) in die Zwischenablage kopiert - Meinen geheimen Schlüssel kopieren - Authentifizierung fehlgeschlagen - Biometrie konnte den Besitzer dieses Telefons nicht authentifizieren - Biometrie konnte den Besitzer dieses Telefons nicht authentifizieren. Fehler: %1$s - Notiztext in die Zwischenablage kopiert - Autor-ID in die Zwischenablage kopiert - Notiz-ID in die Zwischenablage kopiert - "<Private Nachricht kann nicht entschlüsselt werden>\n\nSie wurden in einer privaten/verschlüsselten Unterhaltung zwischen %1$s und %2$s erwähnt." - Konten - Zurück - Browserlink teilen - Teilen - Notiz-ID kopieren - Löschen - - Blockieren - Lesezeichen - Entwürfe - Zu den öffentlichen Lesezeichen hinzufügen - Aus den öffentlichen Lesezeichen entfernen - Wahl %s - (0–100)% - Konnte nicht abstimmen - Die Umfrage ist für neue Stimmen geschlossen - Es ist nur eine Stimme pro Benutzer für diesen Umfragetyp erlaubt - Umfragenautoren können nicht in ihren eigenen Umfragen abstimmen. - Was bedeutet das? - Das Bild ist seitdem Beitrag dasselbe - Das Bild hat sich geändert. Der Autor hat die Änderung möglicherweise nicht bemerkt. - Medien hinzufügen - Bild hinzufügen - Video hinzufügen - Dokument hinzufügen - Dateiserver - Wählen Sie einen Server zum Hochladen dieser Datei - Medienserver Legen Sie Ihre bevorzugten Medienupload Server fest. Amethysts Standardliste. Sie können sie einzeln hinzufügen oder die Liste hinzufügen. - Privatsphäre-Optionen - Alle Folgen - In der Nähe - Weltweit - Stummliste - Standard-Port ist 9050 - Orbot Socks-Port - Aktiver Tor-Engine - Verwenden Sie die interne Version oder Orbot - Tor/Datenschutz-Presets - Ändern Sie schnell alle untenstehenden Einstellungen - Onion URL/Relays - Verwenden Sie Tor für jede .onion URL - DM-Relays - Tor erzwingen, um DMs zu senden und empfangen - Nicht vertrauenswürdige Relays - Erzwingen Sie Tor für ausgehende/eingehende Relays - Vertrauenswürdige Relays - Erzwingen Sie Tor für alle Relays in Ihren Listen - Profilbilder - Erzwingen Sie Tor beim Laden von Profilbildern - URL-Vorschauen - Erzwingen Sie Tor beim Laden von URL-Vorschauen - Bilder - Erzwingen Sie Tor beim Laden von Bildern - Video - Erzwingen Sie Tor beim Laden von Videos - Geldtransaktionen - Erzwingen Sie Tor bei Zaps, Lightning und Cashu-Transfers - Nostr Adressverifizierung - Erzwingen Sie Tor bei der Überprüfung von NIP-05-Adressen - Medien-Uploads - Erzwingen Sie Tor beim Hochladen von Inhalten - Intern - Orbot - Aus - Grundlegend - Standard - Alles außer Medien - Volle Privatsphäre - Benutzerdefiniert - Verwenden Sie Tor, wenn es vom Server benötigt wird - Verbergen Sie Ihre IP vor zufälligen Relays - Verbergen Sie Ihre IP vor allem außer Bildern und Videos - Verbergen Sie Ihre IP bei allen Verbindungen - Erstellen Sie Ihre eigenen - Private Nachrichten - Benachrichtigt dich, wenn eine private Nachricht eingeht - Erhaltene Zaps - Benachrichtigt dich, wenn dich jemand zappt - %1$s Sats - Von %1$s - für %1$s - Benachrichtigen: - Heute - Keine Reaktionstypen ausgewählt. Lange drücken, um zu ändern - Von Relay lesen - In Relay schreiben - Die Menge in Bytes, die an dieses Relais gesendet wurde, einschließlich Filter und Ereignisse - Die Menge in Bytes, die von diesem Relais empfangen wurde, einschließlich Filter und Ereignisse - Cashu-Token - Keine Lightning-Adresse festgelegt - Relais - Marktplatz - Plaudern - Sensibler Inhalt - Fügt eine Warnung für sensiblen Inhalt hinzu, bevor dieser Inhalt angezeigt wird. App Einstellungen - Einstellungen - Immer - Unbegrenztes WLAN - Nie - Fertig - Vereinfacht - Leistung - Klassisch - Modern - System - Hell - Dunkel - Wallet Verbindung - Design - Bilder/GIFs automatisch laden - Videos automatisch abspielen - URL-Vorschau anzeigen - Immersives Scrollen - Navigationsleisten beim Scrollen ausblenden - UI-Modus - Wählen Sie den Beitragsstil - Profilgalerie-Stil - Galeriestil auswählen - Spammer - Stummgeschaltet. Drücken, um Ton einzuschalten - Ton ein. Zur Stummschaltung drücken - Standort-exklusiver Beitrag - Nur Anhänger des Ortes werden es sehen. Deine allgemeinen Anhänger werden es nicht sehen. Öffentlich Privat - Betreff - Dunkles, helles oder Systemdesign - Bilder und GIFs automatisch laden - Videos und GIFs automatisch abspielen - URL-Vorschauen anzeigen - In Zwischenablage kopieren - Teilen oder Speichern - Medien hinzugefügt - Medien wurden zu Ihrer Profilgalerie hinzugefügt - Zap konnte nicht gesendet werden - Fehlende Lightning-Konfiguration - Benutzer %1$s hat keine Lightning-Adresse eingerichtet, um Sats zu empfangen - Fehler beim Öffnen der Signatur-App - Die Unterzeichner-App konnte nicht gefunden werden. Prüfen Sie, ob die App nicht deinstalliert wurde - Stellen Sie sicher, dass die Unterzeichner-Anwendung diese Transaktion autorisiert hat - Keine Wallets gefunden, um eine Lightning-Rechnung zu bezahlen (Fehler: %1$s). Installieren Sie eine Lightning-Wallet, um Zaps zu verwenden - Keine Wallets gefunden, um eine Lightning-Rechnung zu bezahlen. Installieren Sie eine Lightning-Wallet, um Zaps zu verwenden - Versteckte Wörter - Profilbild - Profilbilder anzeigen - Konnte Rechnung nicht bezahlen - Konnte nicht abheben - Cashu konnte nicht eingelöst werden - Mint hat folgende Fehlermeldung geliefert: %1$s - Cashu erhalten - %1$s Sats wurden an Ihre Wallet gesendet. (Gebühren: %2$s Sats) - Keine kompatible Cashu-Brieftasche im System gefunden - Konnte Rechnung nicht vom Server des Empfängers abrufen - Ihr Wallet-Connect-Anbieter hat folgenden Fehler zurückgegeben: %1$s - Konnte keine LNUrl aus der Lightning-Adresse \"%1$s\" zusammenstellen. Überprüfen Sie die Konfiguration des Benutzers - Rechnung konnte nicht von %1$s abgerufen werden: %2$s - Fehler beim Parsen von JSON von %1$s. Überprüfen Sie die Blitzeinrichtung des Benutzers - Callback-URL aus %1$s Antwort nicht gefunden - Falscher Rechnungsbetrag (%1$s Sats) von %2$s. Er hätte %3$s sein sollen - Konnte keine Lightning-Rechnung erstellen, bevor der Zap gesendet wurde. Die Lightning-Wallet des Empfängers hat folgenden Fehler gesendet: %1$s - Nur-Lese-Benutzer - Keine Reaktionen eingerichtet - Nachricht von %1$s - Hallo %1$s, ist das noch verfügbar? - Kleidung - Accessoires - Elektronik - Möbel - Sammlerstücke - Bücher - Haustiere - Sport - Fitness - Kunst - Handwerk - Zuhause - Büro - Lebensmittel - Verschiedenes - Sonstiges - Fehler beim Laden der Medien - Konnte die komprimierte Datei nicht öffnen - Fehler beim Hochladen: %1$s - Der Server hat nach dem Hochladen keine URL angegeben - Hochgeladene Medien konnten nicht vom Server heruntergeladen werden - Die heruntergeladene Datei konnte nach dem Hochladen nicht überprüft werden: %1$s - Konnte %1$s nicht erreichen: %2$s - Löschen fehlgeschlagen: %1$s - Medien sind zu groß für NIP-95 - Startseite - Entdecken - Nachrichten - Benachrichtigungen - Alle Reaktionen auf diesen Beitrag öffnen - Alle Reaktionen auf diesen Beitrag schließen - Zap - Ungültige Adresse - Amethyst hat eine URI zum Öffnen erhalten, aber diese URI war ungültig: %1$s - DM Posteingangs-Relais - Suchrelais - Gute Optionen sind:\n%1$s - Relaiseinstellungen - Öffentliche Heimrelais - Dieser Relais-Typ speichert alle Ihre Inhalte. Amethyst sendet Ihre Beiträge hierher und andere werden diese Relais verwenden, um Ihre Inhalte zu finden. Fügen Sie 1–3 Relais ein. Sie können persönliche Relais, bezahlte Relais oder öffentliche Relais sein. - Öffentliche Posteingangsrelais - Dieser Relais-Typ empfängt alle Antworten, Kommentare, Likes und Zaps auf Ihre Beiträge. Fügen Sie 1–3 Relais ein und stellen Sie sicher, dass sie Beiträge von jedem akzeptieren. - DM-Posteingangsrelais - Fügen Sie 1–3 Relais ein, die als Ihr privater Posteingang dienen sollen. Andere werden diese Relais verwenden, um Ihnen DMs zu senden. DM-Posteingangsrelais sollten Nachrichten von jedem akzeptieren, aber nur Ihnen erlauben, sie herunterzuladen. Gute Optionen sind:\n - inbox.nostr.wine (bezahlt)\n - you.nostr1.com (persönliche Relais - bezahlt) - Private Relais - Fügen Sie zwischen 1–3 Relais ein, um Ereignisse zu speichern, die niemand anders sehen kann, wie Ihre Entwürfe und/oder App-Einstellungen. Idealerweise sind diese Relais entweder lokal oder erfordern eine Authentifizierung, bevor Sie die Inhalte eines jeden Benutzers herunterladen. - Suchrelais - Liste der Relais, die für die Suche und das Taggen von Benutzern verwendet werden. Das Taggen und die Suche funktionieren nicht, wenn keine Optionen verfügbar sind. - Lokale Relais - Liste der Relays, die auf diesem Gerät laufen. Internet: - Zeitstempel Beweis - Es gibt einen Beweis, dass dieser Beitrag irgendwann vor %1$s signiert wurde. Der Beweis wurde zu diesem Datum und Uhrzeit in der Bitcoin-Blockchain gestempelt. - Beitrag bearbeiten - Es ist nicht möglich, auf einen Entwurf zu antworten - Es ist nicht möglich, einen Entwurf zu zitieren - Es ist nicht möglich, auf einen Entwurf zu reagieren - Es ist nicht möglich, zap Zahlung an einen Entwurf senden - Entwurf - Fehlerhafte Anfrage - Der Server kann oder will die Anfrage nicht verarbeiten. - Nicht autorisiert - Der Benutzer hat keine gültigen Authentifizierungsdaten - Zahlung erforderlich - Der Server verlangt eine Zahlung, um die Anfrage abzuschließen - Verboten - Der Benutzer hat keine Zugriffsrechte, um die Anfrage zu stellen - Nicht gefunden - Der Server kann die angeforderte Adresse nicht finden - Methode nicht erlaubt - Der Server unterstützt die Anfragemethode, aber nicht die Zielressource - Nicht akzeptabel - Der Server findet keinen Inhalt, der die Anfrage erfüllt. - Proxy-Authentifizierung erforderlich - Der Benutzer hat keine gültigen Authentifizierungsdaten - Anfrage-Timeout - Der Server hat zu lange auf jemanden anderen gewartet - Konflikt - Der Server kann die Anfrage nicht erfüllen, da ein Konflikt mit der Ressource besteht - Verschwunden - Der angeforderte Inhalt wurde dauerhaft vom Server gelöscht und wird nicht wiederhergestellt - Länge erforderlich - Der Server lehnt die Anfrage ab, da er eine definierte Länge erfordert - Vorbedingung fehlgeschlagen - Die Vorbedingungen der Anfrage in den Kopfzeilenfeldern, die der Server nicht erfüllt - Nutzlast zu groß - Die Anfrage ist größer als die vom Server definierten Grenzen und der Server weigert sich, sie zu verarbeiten - URI zu lang - Die vom Client angeforderte URL ist zu lang, um vom Server verarbeitet zu werden. - Medientyp nicht unterstützt - Die Anfrage verwendet ein Medienformat, das der Server nicht unterstützt - Bereich nicht erfüllbar - Der Server kann den im Range-Header-Feld der Anfrage angegebenen Wert nicht erfüllen. - Erwartung fehlgeschlagen - Der Server kann die Anforderungen, die durch den Expect-Request-Header-Feld angegeben sind, nicht erfüllen - Upgrade erforderlich - Der Server weigert sich, die Anfrage mit dem aktuellen Protokoll zu verarbeiten, es sei denn, der Client wechselt zu einem anderen Protokoll. - Interner Serverfehler - Der Server hat einen unerwarteten Fehler festgestellt und kann die Anfrage nicht abschließen - Nicht implementiert - Der Server kann die Anfrage nicht erfüllen oder erkennt die Anfragemethode nicht - Schlechtes Gateway - Der Server agiert als Gateway und erhielt eine ungültige Antwort vom Host - Dienst nicht verfügbar - Dies tritt häufig auf, wenn ein Server überlastet ist oder gewartet wird - Gateway-Timeout - Der Server agierte als Gateway oder Proxy und hat zu lange auf eine Antwort gewartet - HTTP-Version nicht unterstützt - Der Server unterstützt die HTTP-Version der Anfrage nicht - Variante verhandelt auch - Der Server hat einen internen Konfigurationsfehler - Unzureichender Speicher - Der Server hat nicht genug Speicher, um die Anfrage erfolgreich zu verarbeiten - Schleife erkannt - Der Server erkennt eine Endlosschleife, während er die Anfrage bearbeitet - Netzwerk-Authentifizierung erforderlich - Der Client muss authentifiziert werden, um auf das Netzwerk zuzugreifen Blossom Server Fügen Sie beliebig viele Server hinzu. Sie können wählen, welche später beim Hochladen Ihres Bildes verwendet werden soll - NIP-96 Server hinzufügen - Blossom Server hinzufügen Herunterladen - Fehler beim Öffnen der Datei - Keine Torrent-Apps installiert, um die Datei zu öffnen und herunterzuladen. - Du verwendest einen öffentlichen Schlüssel, der nur lesbar ist. Melde dich mit einem privaten Schlüssel an, um hochladen zu können - Du verwendest einen öffentlichen Schlüssel, der nur lesbar ist. Melde dich mit einem privaten Schlüssel an, um Ereignisse zu signieren - Unbefugte Entschlüsselung - Der Signierer hat die erforderliche Entschlüsselung nicht autorisiert. Aktiviere NIP-44-Entschlüsselung in deiner Signierer-App und versuche es erneut - Signierer nicht gefunden - Wurde die Signierer-App deinstalliert? Überprüfe, ob sie installiert ist und dieses Konto enthält. Melde dich ab und wieder an, falls sich die App geändert hat. - Zum Aufnehmen einer Nachricht gedrückt halten - Signaturanfrage abgelehnt - Verbundene Relays - Aktuelle Liste der verwendeten Relays - Vertrauenswürdige Relays - Relays, denen du vertraust und für die keine Tor-Verbindung erforderlich ist - Proxy-Relays - Aggregator-Relays wie filter.nostr.wine, von denen die App deine Feeds herunterlädt - Broadcast-Relays - Relays, die deine Beiträge an andere Relays weiterleiten, z.B. sendit.nosflare.com. Amethyst fügt diesen Relay zu allen neuen Ereignissen hinzu - Indexer-Relays - Relays, die Metadaten und Relay-Listen hosten, z.B. purplepag.es. Amethyst verwendet sie, um Benutzer zu finden, die nicht in deinen Listen sind. - Blockierte Relays - Amethyst wird sich niemals mit diesen Relays verbinden - Öffentliche Nachricht - Der Benutzer veröffentlicht seine Inhalte auf diesen Relays - Der Benutzer erhält Benachrichtigungen auf diesen Relays - Der Benutzer empfängt Direktnachrichten auf diesen Relays - Neue Folgen-Liste Umbenennen - Das Ereignis enthält nicht genügend Informationen, um einen Magnetlink zu erstellen - H.265/HEVC-Codec verwenden - Bessere Qualität bei kleinerer Dateigröße, aber nicht alle Geräte unterstützen die H.265-Wiedergabe. Der Lightning-Service des Empfängers unter %1$s ist nicht verfügbar. Er wurde aus der Lightning-Adresse \"%2$s\" berechnet. Fehler: %3$s. Überprüfen Sie, ob der Server online ist und ob die Lightning-Adresse korrekt ist Konnte %1$s nicht auflösen. Überprüfen Sie, ob Sie verbunden sind, ob der Server online ist und ob die Lightning-Adresse %2$s korrekt ist.\n\nAusnahme war: %3$s Fehler beim Parsen von JSON von %1$s. Überprüfen Sie die Blitzeinrichtung des Benutzers Blitzrechnung konnte nicht erstellt werden. Nachricht von %1$s: %2$s Kann keine Blitzrechnung von %1$s erstellen: Element pr nicht im resultierenden JSON gefunden. - - Dieser Beitrag hat mehr als %1$d Hashtag - Dieser Beitrag hat mehr als %1$d Hashtags - - - %1$d Asset gebündelt - %1$d Assets bündelt - @@ -404,24 +29,18 @@ erie gespeichert -Externer Signierer hat Daten zurückgegeben, die für die Anfrage ungewöhnlich sind. Es könnte ein Fehler in Amethyst oder im Signierer vorliegen. -Rechnung wird angefordert… -Der Debit-Dienst hat die Zahlung nicht abgeschlossen. -%1$s über %2$s bezahlen? -Diese Rechnung über %1$s bezahlen? -Geben Sie einen gültigen Betrag für dieses Angebot ein. @@ -430,13 +49,9 @@ erie gespeichert -Einmalig -Täglich -Wöchentlich -Monatlich @@ -462,13 +77,11 @@ erie gespeichert -Zahlung über %1$s… -Zahlung fehlgeschlagen @@ -478,55 +91,36 @@ erie gespeichert -Verfügbar für diesen Empfänger: %1$s Sats -Transaktion: %1$s -Eine Nachricht schreiben… -Senden -Fehler -Prozentsatz erfolgreicher Verbindungen zum Relay -Auf dem Telefon speichern -Oben anheften -Nicht mehr anheften -PDF in Downloads/Amethyst gespeichert -PDF konnte nicht gespeichert werden -Upload-Fehler -Sprachnachricht konnte nicht hochgeladen werden -NIP-95 wird für Sprachnachrichten noch nicht unterstützt -Sprach-Upload fehlgeschlagen: %1$s -Keine -Tief -Hoch -Neutral @@ -542,38 +136,22 @@ erie gespeichert Neues Chat-Profil: -Verschwindender Chat -Relay-Chat -Relay-Chats -Relaischats sind Chatgruppen, die von ihrem Home-Relais gesteuert werden. - Sie sind für jeden auf Nostr sichtbar und jeder kann an ihnen teilnehmen. - Sie eignen sich hervorragend für offene Communities rund um bestimmte Themen. Einige dieser Gruppen sind kurzsichtig - und daher verschwinden Chat-Nachrichten im Laufe der Zeit -MLS-Gruppe -Navigieren -Du -Feeds -Erstellen -System -Als Bild teilen -Thread stummschalten -Thread entdämpfen @@ -581,9 +159,7 @@ erie gespeichert -Lesezeichen erfolgreich migriert -Geplante Beiträge @@ -592,14 +168,10 @@ erie gespeichert -Beitrag planen -Planung abbrechen -Geplante Beiträge werden möglicherweise erst veröffentlicht, wenn du die App das nächste Mal öffnest. Aktiviere Dauerbenachrichtigungen in Einstellungen → UI-Einstellungen für zuverlässige Hintergrundplanung. -Geplante Beiträge werden möglicherweise erst veröffentlicht, wenn du die App wieder öffnest. Geplante Beiträge anderer Konten werden nicht ausgelöst, solange dieses Konto aktiv ist. Aktiviere Dauerbenachrichtigungen in Einstellungen → UI-Einstellungen für zuverlässige Hintergrundplanung. @@ -608,114 +180,61 @@ erie gespeichert -%1$s · in %2$s -%1$s · vor %2$s -Morgen -Abgemeldet - - Abgemeldet · %d geplanter Beitrag gelöscht - Abgemeldet · %d geplante Beiträge gelöscht - -Geplanter Beitrag veröffentlicht -Geplanter Beitrag fehlgeschlagen -Geplante Beiträge -Benachrichtigungen, wenn ein geplanter Beitrag veröffentlicht wird oder die Veröffentlichung fehlschlägt. -Jetzt senden -Fehler: %1$s -Geplant -Wird gesendet… -Fehlgeschlagen -Gesendet -Abgebrochen - - Du hast %d geplanten Beitrag, der noch nicht veröffentlicht wurde. Beim Abmelden wird er dauerhaft gelöscht. - Du hast %d geplante Beiträge, die noch nicht veröffentlicht wurden. Beim Abmelden werden sie dauerhaft gelöscht. - - - %d in Warteschlange - %d in Warteschlange - - - · %d fällig in 1 Std. - · %d fällig in 1 Std. - - - an %d Relay - an %d Relays - -Beitrags-ID kopiert -Umfragen -Offen -Geschlossen -Abzeichen -Communitys -Neue Community -Community bearbeiten -Moderatoren -Relais -Überprüfbare Regeln (optional) -Zugelassene Ereignistypen -Kurzer Text (1) -Langform-Artikel (30023) -Bildbeitrag (20) -Videobeitrag (21) -Kurzvideo (22) -Community-Kommentar (1111) @@ -724,23 +243,18 @@ erie gespeichert -Gesperrte Benutzer -Web-of-Trust-Schranke (optional) -Globale maximale Ereignisgröße (optional) -Neues Abzeichen -Abzeichen verleihen @@ -757,7 +271,6 @@ erie gespeichert -Profilabzeichen @@ -778,12 +291,9 @@ erie gespeichert -Bilder -Workouts -Neues Workout @@ -807,29 +317,17 @@ erie gespeichert -Laufen -Gehen -Radfahren -Wandern -Schwimmen -Rudern -Krafttraining -Yoga -Meditation -Diät -Fasten -Apps @@ -846,35 +344,25 @@ erie gespeichert -Kurzvideos -Öffentliche Chats -Follow-Pakete -Live-Streams -Audioräume -Hand heben -Hand senken -Stummschalten -Stummschaltung aufheben -Nachricht konnte nicht gesendet werden @@ -883,25 +371,17 @@ erie gespeichert -Mikrofon stumm -Mikrofon aktivieren -Audioräume -Hält Audio aktiv, solange ein Raum geöffnet ist. -Nest verbunden -Nest — Live -Tippen zum Zurückkehren. -Stoppen @@ -913,28 +393,17 @@ erie gespeichert -hat die Hand gehoben -ist auf die Bühne gestiegen -spricht -ist als Publikum beigetreten -hat das Nest verlassen -Verlassen -Raum konnte nicht als geschlossen markiert werden. Verlasse trotzdem — Raum wird automatisch geschlossen. - - %1$d Zuhörer - %1$d Zuhörer - @@ -954,20 +423,14 @@ erie gespeichert -Diesen Sprecher still stellen -Diesen Sprecher wiederherstellen -Folgen -Entfolgen -Stummschalten -Stummschaltung aufheben @@ -995,7 +458,6 @@ erie gespeichert -Nest-Serverliste konnte nicht gespeichert werden. Versuche es erneut. @@ -1009,46 +471,30 @@ erie gespeichert -Nest-Server -Deine Server -Wird als ersetzbares kind-10112-Ereignis gespeichert, damit andere Clients deine Einstellung lesen können. -Empfohlene Server -Eingebaute Vorschläge, die du mit einem Tippen zu deiner Liste hinzufügen kannst. -Videos -Musik -Wiedergabelisten -Folgen -Podcasts - - %1$d Folge - %1$d Folgen - -Neuer Musiktitel -Neue Playlist @@ -1066,10 +512,6 @@ erie gespeichert - - %1$d Titel - %1$d Titel - @@ -1079,29 +521,23 @@ erie gespeichert -An Profil anheften -Von Profil lösen -Neue Lesezeichenliste -Metadaten der Lesezeichenliste -Interessensets -Neues Interessenset @@ -1109,7 +545,6 @@ erie gespeichert -Umbenennen @@ -1127,13 +562,9 @@ erie gespeichert -Privat machen: Die Notiz nur für die benachrichtigten Nutzer als Gift-Wrap verpacken -Öffentlich machen -Antworten auf eine private Notiz bleiben immer privat -Sichtbar für Noch keine Empfänger: Nur du kannst diese Notiz sehen. Füge Personen hinzu, um sie zu teilen. @@ -1149,31 +580,6 @@ erie gespeichert -Metadaten von Lesezeichenlisten können von allen auf Nostr gesehen werden. Nur deine privaten Mitglieder sind verschlüsselt. - -In öffentlich verschieben - -In privat verschieben - - - - - - - - - - - - - -Aufladen & Zap senden - -Zap senden - - - -Lade %1$s Sats zu %2$s auf und zappe %3$s %4$s Sats · Gebühr ≈ %5$s Sats @@ -1188,9 +594,26 @@ erie gespeichert -Einzelauswahl -Mehrfachauswahl + + + + + + + + + + + + + + + + + + + @@ -1206,28 +629,6 @@ erie gespeichert Empfohlene Medienserver -Zahlungsziele - - -Fügen Sie Zahlungsadressen für verschiedene Netzwerke hinzu (z.B. Bitcoin, Lightning, Ethereum). - - - - - -Keine App gefunden, die diese Zahlung verarbeiten kann. Bitte installieren Sie eine kompatible Wallet. - -Es ist keine App installiert, die Zahlungen vom Typ %1$s verarbeiten kann. Bitte installiere eine kompatible Wallet. - -Zahlung konnte nicht geöffnet werden - -Alle Benutzer Folgen - -Standard-Folgenliste - -Kuratiert - -Meine @@ -1238,7 +639,6 @@ erie gespeichert -Neues Empfehlungspaket @@ -1248,109 +648,41 @@ erie gespeichert -Liste bearbeiten -Antworten -Als gelesen markieren -Neue Nachrichten -Neue Zaps -Reaktionen -Benachrichtigt dich, wenn jemand auf deinen Beitrag reagiert -%1$s hat auf deinen Beitrag reagiert -für %1$s -Neue Reaktionen -Schach -Benachrichtigt dich über Schachspiel-Ereignisse -%1$s hat deine Schachherausforderung angenommen -%1$s hat gezogen — du bist dran -Schach-Updates -Antworten -Benachrichtigt dich, wenn jemand auf deinen Beitrag antwortet + + + + + + + + + + + + + %1$s hat geantwortet auf: %1$s -Neue Antworten - -Erwähnungen - -Benachrichtigt dich, wenn dich jemand in einem Beitrag erwähnt oder zitiert - -%1$s hat dich erwähnt - -Neue Erwähnungen - - -Eingehende Anrufe - -Benachrichtigungen für eingehende Sprach- und Videoanrufe - -Eingehender Anruf - -Eingehender Sprachanruf\u2026 - -Eingehender Videoanruf\u2026 - - - - -Anruf mit %1$s - -Anrufe - -Benachrichtigung über laufenden Anruf - -Auflegen - -Annehmen - -Ablehnen - - -Stummschalten - -Stummschaltung aufheben - -Kamera an - -Kamera aus - - -Lautsprecher - -Ohrhörer - -Bluetooth - - - - - - -Amethyst benötigt Zugriff auf das Mikrofon, um einen Sprachanruf zu starten. Bitte aktiviere ihn in den App-Einstellungen. - -Amethyst benötigt Zugriff auf Kamera und Mikrofon, um einen Videoanruf zu starten. Bitte aktiviere sie in den App-Einstellungen. - - - -Anrufeinstellungen @@ -1366,19 +698,52 @@ erie gespeichert -Hält Verbindungen zu deinen Inbox-Relays aktiv für Echtzeit-Benachrichtigungen -Amethyst-Benachrichtigungen aktiv -Verbinde mit Inbox-Relays\u2026 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Dauerhafter Benachrichtigungsdienst Hält eine dauerhafte Verbindung zu deinen Inbox-Relays für sofortige Benachrichtigungen aufrecht. Zeigt eine fortlaufende Benachrichtigung an. Verbraucht mehr Akku, stellt aber sicher, dass du keine Nachricht verpasst. -Benachrichtigungen nach Gefolgt aufteilen -Zwei Benachrichtigungs-Tabs anzeigen — Gefolgt (Personen, denen du folgst) und Alle. Der Indikator für ungelesene Nachrichten leuchtet nur bei Aktivität von Personen, denen du folgst. @@ -1386,23 +751,14 @@ erie gespeichert -Ausblenden -Anzeigen -Warnen -Spam filtern -Versteckt Beiträge von Fremden, die 5 oder mehr Male genau die gleichen waren -Client-Tag zu meinen Ereignissen hinzufügen -Wenn aktiviert, fügt Amethyst Ereignissen, die du veröffentlichst, einen NIP-89-Client-Tag hinzu. -Bei Berichten warnen -Zeigt eine Warnmeldung an, wenn die Beiträge 5 oder mehr Berichte von den folgenden Beiträgen enthalten @@ -1410,20 +766,13 @@ erie gespeichert -Beiträge ausblenden, die gegen Community-Regeln verstoßen -Verwirft Beiträge aus Community-Feeds, wenn die Community ein NIP-9B-Regeldokument veröffentlicht und ein Ereignis daran scheitern würde. Keine Wirkung, wenn eine Community keine strukturierten Regeln hat. -Filtereinstellungen -Blockierte Inhalte -Du hast noch keine Benutzer blockiert. -In dieser Sitzung wurden keine Konten als Spam markiert. -Keine versteckten Wörter. Füge unten ein Wort hinzu, um Beiträge auszublenden, die es enthalten. @@ -1438,12 +787,9 @@ erie gespeichert -Datenschutzerklärung -Kinderschutzstandards -Über & Rechtliches @@ -1491,173 +837,103 @@ erie gespeichert -Folge Paketen -Lesungen -Feedalgorithmen -Live-Streams -Gemeinschaften -UI-Einstellungen -Übersetzungen -Reaktionen -Kontoeinstellungen -App-Einstellungen -Gefahrenzone -Marmot-Status zurücksetzen -Marmot-Status zurückgesetzt. -Marmot-Status konnte nicht zurückgesetzt werden: %1$s -Videos automatisch abspielen -Springe %d Sekunden zurück -Springe %d Sekunden vor - - %1$d Titel - %1$d Titel - - - +%1$d weiterer Titel - +%1$d weitere Titel - -Coverbild hochladen -Wähle ein quadratisches Bild als Artwork für diesen Titel. -Audiodatei hochladen -Wähle eine MP3, WAV oder FLAC. Sie wird beim Speichern auf deinen Medienserver hochgeladen. -Cover und Audio werden hochgeladen und veröffentlicht. Der Vorgang läuft weiter, auch wenn du den Bildschirm verlässt. Gruppe -Kann nicht hochladen -Füge das Ziel der Nachricht zuerst ein -Wallet nicht gefunden -Amethyst konnte keine Wallet-Apps finden, die Nostr Wallet Connect (NWC) unterstützen. -\n\nWas du tun kannst: -\n\t1. NWC-Unterstützung überprüfen: Stelle sicher, dass deine bevorzugte Wallet-App mit Nostr Wallet Connect kompatibel ist. -\n\t2. Verbindung erstellen: Öffne deine Wallet-App und erstelle eine neue NWC-Verbindung. -\n\t3. Mit Amethyst verknüpfen: Deine Wallet bietet normalerweise drei Optionen: -\n\t\t3.1 Automatische Verknüpfung: Eine Schaltfläche zum automatischen Öffnen und Verbinden mit Amethyst. Klicke darauf, öffne Amethyst und speichere auf dem neuen Bildschirm. -\n\t\t3.2 Manuelle Verknüpfung: Eine Verbindungs-URI, die du kopieren und über das Einfügesymbol auf diesem Bildschirm einfügen kannst. -\n\t\t3.3 QR-Code: Die Wallet erstellt einen QR-Code, den du über die QR-Schaltfläche auf diesem Bildschirm scannen kannst. -Videos automatisch abspielen, wenn sie auf dem Bildschirm sichtbar sind -In die Zwischenablage kopiert Als DM senden -Dieses Video kann nicht abgespielt werden -Der Codec oder das Format wird auf diesem Gerät nicht unterstützt (%1$s). Versuche, es im Browser zu öffnen. -Im Browser öffnen -Blossom-Links können nicht geöffnet werden -Keine Blossom-Apps gefunden. Bitte installiere eine lokale Blossom-App, um diese Datei anzuzeigen -Stummgeschaltete Threads -Keine stummgeschalteten Threads -Benachrichtigungen -Zustellung -Anzeige in der App -Kategorien -Dateien verschlüsseln -Dateien vor dem Hochladen verschlüsseln, um die Privatsphäre zu schützen. Einige Server akzeptieren möglicherweise keine verschlüsselten Dateien bei kostenlosen Konten. -Verschlüsselter Upload fehlgeschlagen -Viele Server akzeptieren keine verschlüsselten Dateien bei kostenlosen Konten. Du kannst es ohne Verschlüsselung erneut versuchen. -GIF in MP4 umwandeln -Konvertiert animierte GIFs in MP4-Videos für kleinere Dateigrößen und bessere Wiedergabekompatibilität. -Private Metadaten entfernen -Versucht, private Metadaten aus unterstützten Mediendateien vor dem Hochladen zu entfernen -Metadaten konnten nicht entfernt werden -Private Metadaten konnten nicht aus der Mediendatei entfernt werden. Hochladen abgebrochen. -Hochladen abgebrochen -Metadaten können nicht aus AVIF entfernt werden: %1$s -Kalender -Kalenderlisten -Schach -Wallet @@ -1695,7 +971,6 @@ erie gespeichert -Cashu-Wallet (NIP-60) @@ -1716,25 +991,14 @@ erie gespeichert Privater P2PK-Schlüssel (hex) -Cashu-Wallet bearbeiten Änderungen speichern - - +%1$d weiterer - +%1$d weitere - - - Von %1$d weiterem empfohlen - Von %1$d weiteren empfohlen - -Beliebte Mints -Passende Mints @@ -1748,9 +1012,7 @@ erie gespeichert -Empfangen -Gesendet @@ -1759,38 +1021,30 @@ erie gespeichert -Eine Löschanfrage für deine kind:38000-Empfehlung von %1$s veröffentlichen. Relays, die NIP-09 beachten, entfernen sie. -%1$s Sats über %2$s Proofs wiederhergestellt. -%1$s Sat + bis zu %2$s Sat Gebühren bezahlen? -Nutzap fehlgeschlagen -Kein Empfänger-Pubkey in der Notiz -Nutzaps sind öffentlich und würden diese private Notiz preisgeben. Nutze stattdessen einen Lightning-Zap. -Ereignisreferenz kann nicht erstellt werden -Warte auf die Bezahlung der Rechnung… @@ -1827,42 +1081,19 @@ erie gespeichert -Langsam -Normal -Schnell -~1 Std. -~30 Min. -~10 Min. -%1$s · %2$s sat/vB · %3$s - - %1$s sats senden, auf %2$d Empfänger aufgeteilt - %1$s sats senden, auf %2$d Empfänger aufgeteilt - - - Die %1$d-fache Zap-Aufteilung dieser Notiz verwenden - Die %1$d-fache Zap-Aufteilung dieser Notiz verwenden - - - Aufgeteilt auf %1$d Empfänger - Aufgeteilt auf %1$d Empfänger - - - %1$d Empfänger mit reiner Lightning-Adresse wird übersprungen — On-Chain benötigt einen Nostr-Pubkey, um die Adresse abzuleiten. - %1$d Empfänger mit reiner Lightning-Adresse werden übersprungen — On-Chain benötigt einen Nostr-Pubkey, um die Adresse abzuleiten. - @@ -1874,61 +1105,34 @@ erie gespeichert -Guthaben wird geladen -Transaktion wird erstellt -wird signiert -wird gesendet -Quittung wird veröffentlicht -Bitcoin-Chain-Backend ist nicht konfiguriert -Dein Bitcoin-Guthaben konnte nicht geladen werden -Transaktion konnte nicht erstellt werden -Ein Empfängeranteil liegt unter dem Dust-Limit -Transaktion konnte nicht signiert werden -Transaktion konnte nicht gesendet werden -Zahlung gesendet, aber die Zap-Quittung konnte nicht veröffentlicht werden - - Zahlung gesendet (%1$d von %2$d Quittung veröffentlicht), aber die nächste Quittung konnte nicht veröffentlicht werden - Zahlung gesendet (%1$d von %2$d Quittungen veröffentlicht), aber die nächste Quittung konnte nicht veröffentlicht werden - -Folgeliste importieren -Neues Produkt -Neuer Artikel -Neuer Kalendertermin -Kalendertermin bearbeiten -Neuer Kalender -Kalender bearbeiten -Feed -Monat -Woche -Tag @@ -1962,10 +1166,6 @@ erie gespeichert - - %1$s, %2$d Termin - %1$s, %2$d Termine - @@ -1992,25 +1192,14 @@ erie gespeichert -Findet jetzt statt -%1$s · endet %2$s -Kalendertermin teilen -calendar_reminders -Kalendererinnerungen -Hinweis, wenn ein Termin, an dem du teilnimmst, bald beginnt. -Kalendertermin - - Beginnt in %1$d Minute - Beginnt in %1$d Minuten - @@ -2019,34 +1208,23 @@ erie gespeichert -Bild-Upload fehlgeschlagen -Das gewählte Bild konnte nicht hochgeladen werden. Versuche es erneut oder füge eine URL ein. -Kalendererinnerungen -Erinnerungen senden -Eine Benachrichtigung wird angezeigt, wenn ein Termin, an dem du teilnimmst, bald beginnt. - - %1$d Min. - %1$d Min. - -In Karten öffnen -Link öffnen @@ -2065,7 +1243,6 @@ erie gespeichert -Untere Navigationsleiste Zum Umordnen ziehen. Zum Hinzufügen oder Entfernen eines Elements aus der unteren Leiste umschalten. Mit null Elementen wird die untere Leiste ausgeblendet. @@ -2076,21 +1253,14 @@ erie gespeichert Wähle, welche Tabs auf der Startseite erscheinen. Wenn nur ein Tab aktiv ist, wird die Tab-Leiste ausgeblendet. -Alles -Profil-Oberfläche Wähle, welche Abschnitte und Feeds auf den Profilseiten erscheinen. Alle Optionen sind standardmäßig aktiviert. -Profilabzeichen -App-Empfehlungen -Erhaltene-Zaps-Feed -Follower-Feed -Reaktions-Einstellungen @@ -2108,7 +1278,6 @@ erie gespeichert -Videoplayer-Schaltflächen @@ -2128,7 +1297,6 @@ erie gespeichert -Audio-Visualisierer @@ -2140,7 +1308,6 @@ erie gespeichert -Ablaufdatum @@ -2148,35 +1315,25 @@ erie gespeichert -Ausgehende Relays -Eingehende Relays -KeyPackages -KeyPackage-Relays -Relays, auf denen deine MLS KeyPackages veröffentlicht werden (MIP-00). Andere Nutzer rufen diese KeyPackages ab, um dich zu Marmot-Gruppenchats einzuladen. Füge 1–3 Relays hinzu, die KeyPackage-Ereignisse von dir akzeptieren und öffentliches Lesen erlauben. -Profile an lokalen Relay weiterleiten -Alle empfangenen Profilereignisse (kind 0) an Ihren lokalen Relay senden -Favorisierte Relay-Feeds -Relays, die du häufig besuchst, um ihren globalen Feed zu sehen -Relay-Einstellungen exportieren @@ -2203,29 +1360,18 @@ erie gespeichert -Meine Listen -Feeds -Hash-Tags -Interessensets -Standorte -Gemeinschaften -Listen -Feed-Algorithmen -Alle bevorzugten Feed-Algorithmen -Relais -Bevorzugte Feed-Algorithmen @@ -2240,15 +1386,11 @@ erie gespeichert -Private Nachricht -Bild kann nicht geteilt werden, bitte versuchen Sie es später erneut… -Video kann nicht geteilt werden, bitte versuchen Sie es später erneut… -Video wird heruntergeladen… @@ -2266,17 +1408,11 @@ erie gespeichert -Nicht übersetzen von -Die hier angezeigten Sprachen werden nicht übersetzt. Wählen Sie eine Sprache, um sie zu entfernen und lassen Sie sie erneut übersetzen. -Übersetzen in -Wähle die Sprache, in die der Inhalt übersetzt werden soll. -Sprachanzeigeeinstellungen -Wähle für jedes übersetzte Sprachpaar, welche Sprache zuerst angezeigt werden soll. @@ -2287,11 +1423,8 @@ erie gespeichert -Pausen -Abspielen -Diese Nachricht verschwindet in %1$s @@ -2305,15 +1438,10 @@ erie gespeichert -Metadaten der Follow-Liste -Metadaten von Follow-Listen können von allen auf Nostr gesehen werden. Nur deine privaten Mitglieder sind verschlüsselt. -Metadaten des Empfehlungspakets -Metadaten von Empfehlungspaketen können von allen auf Nostr gesehen werden und werden häufig auf Websites als Starterkits für neue Nutzer veröffentlicht. -Empfehlungspaket bearbeiten @@ -2329,12 +1457,10 @@ erie gespeichert -Ausklappen -Erneut versuchen @@ -2345,11 +1471,8 @@ erie gespeichert -Reaktion -Sprachbeitrag -Sprachantwort @@ -2372,285 +1495,145 @@ erie gespeichert -Outbox-Relays -Apps -App-Empfehlungen -Benutzereinstellungen -Audio-Header -Audiospur -Musiktitel -Musik-Playlist -Podcast-Folge -Podcast-Sendung -Erstellte Podcasts -Lieblings-Podcasts -Abzeichen-Auszeichnungen -Abzeichen-Definitionen -Akzeptiertes Abzeichen-Set -Profil-Abzeichen -Blockierte Relays -Blossom-Server -Nests-Server -Blossom-Authentifizierung -Broadcast-Relays -Lesezeichenliste -Alte Lesezeichenliste -Tagestermin -Kalender -Termin -RSVP für Termin -Schachspiele -Schach-Authentifizierung -Bevorzugte Relays -Schach-Herausforderungen -Schachspiel annehmen -Schachzug -Ende des Schachspiels -Remisangebot -Kanaldefinition -Kanalnachricht ausblenden -Kanalliste -Kanalnachricht -Kanal-Metadaten -Benutzer im Kanal stummschalten -DM-Datei -DM-Nachricht -DM-Relays -Kleinanzeigen -Kommentare -Community-Definition -Community-Liste -Community-Beitrag -Folgeliste -Löschungen -Entwürfe -Emoji-Pakete -Emoji-Paketliste -Ephemerer Chat -Ephemere Chaträume -Datei-Header -Profilgalerie -Dateiserver -Blob-Daten -Blob-Header -Medizinische Daten -Follow-Pakete -Reposts (16) -Geohash-Follows -Geschenkverpackungen -Git-Issue -Git-Patch -Git-Repository -Git-Antwort -Zap-Ziele -Gefolgte Hashtags -Highlights -HTTP-Authentifizierung -Index-Relay-Liste -Abenteuer-Prolog -Abenteuer-Szene -Abenteuer-Lesung -Benannte Lesezeichen -Live-Chats -Live-Streams -Zap -NWC-Anfrage -NWC-Antwort -Privaten Zaps -Zap-Anfrage -Blogs -Besprechungsraum -Raumpräsenz -Besprechungsbereich -Profil -Stummschaltliste -NNS -NIP -Nostr Connect -DVM-Status -DVM-Inhaltsanfrage -DVM-Inhaltsantwort -DVM-Benutzeranfrage -DVM-Benutzerantwort -OTS -Zahlen an -Personenlisten -Bilder -Workouts -Angepinnt -Zap-Umfrage -Umfrage -Umfrageantwort -NIP-04-DMs -Private Relais -Proxy-Relays -Öffentliche Nachricht -Reaktionen -Kontaktkarte -Relay-Authentifizierung -Relay-Entdeckung -Relay-Monitor-Ankündigung -Relay-Set -Meldungen -Reposts -Benutzer löschen -Siegel -Such-Relays -Benutzerstatus -Notizen -Bearbeitungen -Torrents -Torrent-Kommentare -Vertrauenswürdige Relays -Vertrauenswürdige Anbieter -Video (Antwort) -Shorts (Antwort) -Video -Shorts -Sprachnachricht -Sprachantwort -Aufwachen -Web-Lesezeichen -Wiki @@ -2667,9 +1650,7 @@ erie gespeichert -%1$d%% Verfügbarkeit -Namecoin-Einstellungen @@ -2680,13 +1661,11 @@ erie gespeichert -%dms -Relay-Synchronisierung @@ -2714,67 +1693,24 @@ erie gespeichert -Bitcoin Explorer (OTS) -Ereignisse von dir -Ereignisse an dich -durchsuchbare Ereignisse -DMs -profile -Ausgangs-Listen -Zuletzt gesehen vor %1$s -Zuletzt gesehen am %1$s (vor %2$s) -Gerade eben gesehen -Nie gesehen - - %1$d Minute - %1$d Minuten - - - %1$d Stunde - %1$d Stunden - - - %1$d Tag - %1$d Tage - - - %1$d Woche - %1$d Wochen - - - %1$d Monat - %1$d Monate - - - %1$d Jahr - %1$d Jahre - - - %1$d Mint - %1$d Mints - - - %1$d ausstehende Rechnung - %1$d ausstehende Rechnungen - @@ -2791,14 +1727,11 @@ erie gespeichert -An Gerät streamen -Streaming beenden -HLS-Upload @@ -2819,7 +1752,6 @@ erie gespeichert -Lade %1$s hoch (%2$d von %3$d) @@ -2837,7 +1769,6 @@ erie gespeichert -Attestierung @@ -2845,12 +1776,9 @@ erie gespeichert -Attestierungsanfrage -Empfehlung des Attestierers -Kompetenz des Attestierers @@ -2858,11 +1786,8 @@ erie gespeichert -Web-Lesezeichen -Web-Lesezeichen hinzufügen -Web-Lesezeichen bearbeiten @@ -2878,7 +1803,6 @@ erie gespeichert -%1$s finanziert von %2$s Sats Ziel @@ -2896,9 +1820,7 @@ erie gespeichert -Neues Ziel -Löschanfrage @@ -2912,7 +1834,6 @@ erie gespeichert -Löschanfrage gesendet @@ -2926,7 +1847,6 @@ erie gespeichert -Löschverlauf @@ -2934,15 +1854,10 @@ erie gespeichert -Benutzer -Ereignisse -Arten -IPs -Einstellungen @@ -2994,23 +1909,14 @@ erie gespeichert -Textverbesserungen vorschlagen -Verwendet ein KI-Modell auf dem Gerät, um Textkorrekturen und Tonänderungen vorzuschlagen. -Verfolgte Übertragungen -Verwende den verfolgten Broadcaster beim Senden von Ereignissen. Zeigt Live-Fortschritt und Status pro Relay während der Übertragung. -Workouts zum Teilen vorschlagen -Liest abgeschlossene Workouts aus Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) und schlägt vor, sie als Beitrag zu teilen. Die Berechtigung wird nur beim Verbinden angefragt. -Editor-Einstellungen -Entwürfe automatisch erstellen -Speichert automatisch ein Entwurfsereignis, wenn du tippst oder den Editor mit ungesendetem Text verlässt, und sendet es an deine privaten ausgehenden Relays. @@ -3028,9 +1934,7 @@ erie gespeichert -Neues Emoji-Paket -Emoji-Paket bearbeiten @@ -3054,72 +1958,50 @@ erie gespeichert -Meine Emoji-Pakete -Emojis -Öffentliche Emojis sind für alle sichtbar und erscheinen in deinem Reaktionsmenü und in der \":\"-Autovervollständigungsauswahl, wenn dieses Paket in deiner Emoji-Liste ist. -Private Emojis werden verschlüsselt auf Relays gespeichert und sind nur für dich sichtbar. Sie erscheinen in deinem Reaktionsmenü und in der \":\"-Autovervollständigung wie öffentliche. -Entwurf hat %1$d Bytes; diese Community begrenzt diesen Typ auf %2$d Bytes. -Entwurf hat %1$d Bytes; diese Community begrenzt Ereignisse auf %2$d Bytes. -Du hast heute bereits %1$d Ereignisse dieses Typs veröffentlicht (Limit %2$d). -Nowhere-Seite -Nowhere Ereignis -Nowhere Spendenaktion -Nowhere Shop -Nowhere Petition -Nowhere Nachricht -Nowhere Drop -Nowhere Kunst -Nowhere Forum -Browser -Favoriten -Laden über das offene Web. Tippen Sie, um Tor zu verwenden. -Laden über Tor. Tippen Sie, um das offene Web zu verwenden. -Mint wird geprüft… -%1$s sat nach %2$s verschoben. @@ -3155,69 +2037,45 @@ erie gespeichert -Playlist bearbeiten -AMRAP -Circuit -EMOM -Zu Favoriten hinzufügen -Lädt über das offene Web. -Lädt über Tor. -Zuletzt verwendet -Aus Favoriten entfernen -Diese App ist noch nicht geladen. Versuchen Sie es in einem Moment erneut. -Lieblings-Apps -Eine Zahlung durchgeführt -An Relays veröffentlicht -Eine Datei hochgeladen -%1$s wird hinzugefügt… -Administratorrechte erteilt -Administratorrechte widerrufen -%1$s konnte nicht hinzugefügt werden: %2$s -Gruppe konnte nicht erstellt werden: %1$s -Administratorrechte konnten nicht erteilt werden: %1$s -Gruppe konnte nicht verlassen werden: %1$s -Mitglied konnte nicht entfernt werden: %1$s -Administratorrechte konnten nicht widerrufen werden: %1$s -Aktualisierung fehlgeschlagen: %1$s @@ -3227,7 +2085,6 @@ erie gespeichert -Gruppeninfo aktualisiert @@ -3237,7 +2094,6 @@ erie gespeichert -Mitglied entfernt @@ -3246,7 +2102,6 @@ erie gespeichert -Kein Mitglied dieser Gruppe @@ -3263,14 +2118,11 @@ erie gespeichert -unbekannter Fehler -Coverbild hochladen -Wählen Sie ein quadratisches Bild als Artwork für diese Playlist. @@ -3283,51 +2135,30 @@ erie gespeichert -Cover wird hochgeladen und veröffentlicht. Dies läuft weiter, auch wenn Sie den Bildschirm verlassen. -Identität -Ihren öffentlichen Schlüssel lesen -Nachrichten -Nachrichten mit anderen nApplets austauschen -Tastaturaktionen -Tastenkürzel belegen -Benachrichtigungen -Ihnen Benachrichtigungen anzeigen -Relays -Ihre Ereignisse lesen, signieren & veröffentlichen -Netzwerk -Web- und Blossom-Ressourcen abrufen Shell Abfragen, welche Funktionen verfügbar sind -Speicher -Eigener privater Speicher -Design -Farben Ihrer App übernehmen -Uploads -Dateien auf Ihren Medienserver hochladen -Zahlungen -Lightning-Rechnungen bezahlen @@ -3336,32 +2167,20 @@ erie gespeichert Funktion: %1$s -Dieses nApplet möchte Ihren öffentlichen Schlüssel lesen. - -Dieses nApplet möchte Ihr Profil und Ihre Kontodaten lesen. -Dieses nApplet möchte Ihnen Benachrichtigungen anzeigen. + Dieses nApplet möchte eine Lightning-Rechnung bezahlen. -Dieses nApplet möchte ein kind-%1$d-Ereignis in Ihrem Namen signieren und veröffentlichen. -Dieses nApplet möchte ein verschlüsseltes Ereignis in Ihrem Namen senden. -Dieses nApplet möchte ein kind-%1$d-Ereignis in Ihrem Namen signieren und veröffentlichen: -Dieses nApplet möchte Ereignisse von Ihren Relays lesen. -Dieses nApplet möchte eine Web-Ressource abrufen. -Diese Website möchte ein kind-%1$d-Ereignis mit Ihrem Nostr-Schlüssel signieren. -Dieses nApplet möchte seinen privaten Speicher verwenden. -Dieses nApplet möchte eine Datei auf Ihren Medienserver hochladen. -nApplet %1$s… @@ -3378,13 +2197,10 @@ erie gespeichert Widerrufen -nApplets - -Keine Kamera-App auf diesem Gerät gefunden -nSites + @@ -3412,127 +2228,59 @@ erie gespeichert Apps -Als Bild-URL teilen - -Direkt- und Gruppennachrichten im Benachrichtigungs-Tab anzeigen. Deaktivieren, um Nachrichten nur im Nachrichten-Tab zu behalten. - -Nachrichten anzeigen - - Mit %1$d Posteingangs-Relay verbunden - Mit %1$d Posteingangs-Relays verbunden - - - Mit %1$d Relay verbunden - Mit %1$d Relays verbunden - - - Guthaben bei %1$d Mint, den Sie nicht verwenden - Guthaben bei %1$d Mints, die Sie nicht verwenden - - - %1$d Mitglied - %1$d Mitglieder - - - %1$d Nachricht - %1$d Nachrichten - - - Dieses nApplet möchte eine Lightning-Rechnung über %1$d sat bezahlen. - Dieses nApplet möchte eine Lightning-Rechnung über %1$d sats bezahlen. - - - +%1$d\nAntwort - +%1$d\nAntworten - + + -Relay-Verbindungsdienst -Neue Benachrichtigung eingegangen -Audio, Visualizer, Spektrum, Balken, Wellen, radial, Aurora, Animation -nsec, privater Schlüssel, Seed, Mnemonic, Export -Navigation, Tabs, Navigationsleiste -Kalender, Ereignisse, Erinnerungen, RSVP -WebRTC, Videoanruf, Sprachanruf, Anrufe -rechtlich, Sicherheit, Missbrauch, CSAE, Kinderschutz -Entwurf, Beitrag, Editor, automatisches Speichern -Negentropy, Synchronisation, Abgleich, Auffüllen -DVM, Data Vending Machine, Algo, Algorithmus, Feeds -Github Gist mit Nachweis -Tabs, Feeds, Threads, Unterhaltungen -Kontakte, folgen, Folgeliste, importieren -Mastodon-Beitrags-ID mit Nachweis -Blossom, Uploads, Bilder, Fotos, Dateien, CDN, Speicher -Namecoin, DNS, Identität, Name -Audioräume, live, Spaces, Räume -Push, Benachrichtigungen, Töne, Vibration -OpenTimestamps, Zeitstempel, OTS, Nachweis -Zap-Aufteilung, Aufteilung, Empfänger, Zaps weiterleiten -Tor, Orbot, Proxy, Datenschutz, anonym -rechtlich, Bedingungen, Nutzungsbedingungen, Richtlinie, GDPR -Abzeichen, Auszeichnungen -Profil, Layout -Emoji, gefällt mir, Reaktion -Emoji, Reaktionen, gefällt mir -Relays, Posteingang, Postausgang, Verbindungen, Server -Konto löschen, verschwinden, GDPR -MLS, Gruppenchat, Nachrichten, zurücksetzen -Spam, blockieren, stummschalten, Filter, Warnungen -Sprache, übersetzen, Gebietsschema -X-Status mit Nachweis -Dunkelmodus, Hellmodus, Design, Schriftgröße, Sprache, Erscheinungsbild -Löschung, Ereignisse löschen -Video, Player, Wiedergabe, automatische Wiedergabe, stummschalten -Lightning, Sats, Trinkgeld, Wallet, Betrag diff --git a/amethyst/src/main/res/values-el-rGR/strings.xml b/amethyst/src/main/res/values-el-rGR/strings.xml index da08031d02..c26a43cf71 100644 --- a/amethyst/src/main/res/values-el-rGR/strings.xml +++ b/amethyst/src/main/res/values-el-rGR/strings.xml @@ -1,115 +1,12 @@ - - Αυτή η ανάρτηση έχει περισσότερα από %1$d hashtag - Αυτή η ανάρτηση έχει περισσότερα από %1$d hashtags - - - %1$d αρχείο συμπεριλήφθηκε - %1$d αρχεία συμπεριλήφθηκαν - - - +%1$d\nαπάντηση - +%1$d\nαπαντήσεις - - Ανεπιθύμητο - Ο αριθμός των spam συμβάντων που προέρχονται από αυτό το relay - Πλαστοπροσωπία - Παράνομη Συμπεριφορά - Αίτηση Διαγραφής - Συνδεθείτε με το \"Μυστικό Κλειδί\" σας για να απαντάτε σε δημοσιεύσεις - Συνδεθείτε με το \"Μυστικό Κλειδί\" σας για να προωθείτε δημοσιεύσεις - Συνδεθείτε με το \"Μυστικό Κλειδί\" σας για να δηλώσετε ότι σας αρέσει μια δημοσίευση - Το ποσό του Zap δεν έχει ρυθμιστεί. Πατήστε παρατεταμένα για να το ρυθμίσετε και να Zapάρετε - Συνδεθείτε με το \"Μυστικό Κλειδί\" σας ώστε να μπορείτε να στέλνετε Zaps. Δηλαδή μικροποσά Bitcoin σε όποιον επιθυμείτε - Συνδεθείτε με το \"Μυστικό Κλειδί\" σας για να ακολουθήσετε κάποιον - Συνδεθείτε με το \"Μυστικό Κλειδί\" σας για να σταματήσετε να ακολουθείτε κάποιον - Συνδεθείτε με το \"Μυστικό Κλειδί\" σας ώστε να μπορείτε να αποκλείετε ανεπιθύμητες λέξεις ή φράσεις - Συνδεθείτε με το \"Μυστικό Κλειδί\" σας ώστε να μπορείτε να αναζητάτε συγκεκριμένες λέξεις ή φράσεις - Χρησιμοποιείς δημόσιο κλειδί και τα δημόσια κλειδιά είναι μόνο για ανάγνωση. Συνδέσου με ιδιωτικό κλειδί για να μπορείς να ανεβάσεις αρχεία - Χρησιμοποιείς δημόσιο κλειδί και τα δημόσια κλειδιά είναι μόνο για ανάγνωση. Συνδέσου με ιδιωτικό κλειδί για να μπορείς να υπογράφεις συμβάντα - Μη εξουσιοδοτημένη αποκρυπτογράφηση - Ο signer δεν εξουσιοδότησε μια αποκρυπτογράφηση που απαιτείται για αυτή τη λειτουργία. Ενεργοποίησε τις αποκρυπτογραφήσεις NIP-44 στην εφαρμογή signer σου και δοκίμασε ξανά - Ο signer δεν βρέθηκε - Απεγκαταστάθηκε η εφαρμογή signer; Έλεγξε αν ο signer είναι εγκατεστημένος και έχει αυτόν τον λογαριασμό. Αποσυνδέσου και συνδέσου ξανά αν η εφαρμογή signer έχει αλλάξει. - Ο εξωτερικός signer επέστρεψε ένα payload που είναι ασυνήθιστο για το αίτημα. Ενδέχεται να υπάρχει σφάλμα στο Amethyst ή στον signer. - Προώθηση προωθημένο επεξεργασία #%1$s - Πρότεινε μια επεξεργασία - Προσθήκη - Σφάλμα ανάλυσης σφάλμα μηνύματος - Προφίλ - Φίλτρα Ασφαλείας - Αίτηση τιμολογίου… - Η υπηρεσία χρέωσης δεν ολοκλήρωσε την πληρωμή. - Πληρωμή %1$s μέσω %2$s; - Πληρωμή αυτού του τιμολογίου μέσω %1$s; - Εισάγετε έγκυρο ποσό για αυτήν την προσφορά. - Εφάπαξ - Ημερήσιος - Εβδομαδιαίος - Μηνιαίος - Πληρωμή - Πληρωμή μέσω %1$s… - Η πληρωμή απέτυχε - Διαθέσιμο για αυτόν τον παραλήπτη: %1$s sats - Συναλλαγή: %1$s - "Προεπισκόπηση Κάρτα Εικόνας για %1$s" - Περιγραφή - Τι σκέφτεστε; - Γράψε ένα μήνυμα… - Δημοσίευση Αποθήκευση - Αποστολή - Δημιουργία Μετονομασία - Ακύρωση - Σφάλμα - Σφάλματα - Ποσοστό επιτυχημένων συνδέσεων στο relay - Αποθήκευση στο τηλέφωνο - Η εικόνα αποθηκεύτηκε στη συλλογή - Η λήψη βίντεο ξεκίνησε… - Η λήψη πολυμέσων ξεκίνησε… - Καρφίτσωμα στην κορυφή - Ξεκαρφίτσωμα - Αποτυχία αποθήκευσης εικόνας - Το βίντεο αποθηκεύτηκε στη γκαλερί βίντεο του τηλεφώνου - Αποτυχία αποθήκευσης του βίντεο - Το PDF αποθηκεύτηκε στο Downloads/Amethyst - Αποτυχία αποθήκευσης του PDF - Δεν βρέθηκε εφαρμογή κάμερας σε αυτή τη συσκευή - Πάτα παρατεταμένα για να καταγράψεις ένα μήνυμα - Σφάλμα ανεβάσματος - Αποτυχία ανεβάσματος φωνητικού μηνύματος - Το NIP-95 δεν υποστηρίζεται ακόμα για φωνητικά μηνύματα - Αποτυχία ανεβάσματος φωνητικού: %1$s - Κανένα - Βαθύ - Ψηλό - Ουδέτερο - Ο χρήστης δεν έχει ορίσει διεύθυνση LN για να λαμβάνει sats - "απαντήστε εδώ…" - Γνωστό - Νέα Αιτήματα - Αποκλεισμένοι Χρήστες - Νέα Νήματα - Συζητήσεις - Περισσότερες Επιλογές - Εμφάνιση QR code ιδιωτικού κλειδιού - Εμφάνιση QR code κρυπτογραφημένου ιδιωτικού κλειδιού - Σας ακολουθεί - Ακολουθήστε - Απόκρυψη Κωδικού - Μη έγκυρο κλειδί - Μη έγκυρο κλειδί: %1$s - Απαιτείται κωδικός πρόσβασης - Απαιτείται Κλειδί - Απαιτείται όνομα @@ -118,154 +15,7 @@ Νέο προφίλ συνομιλίας: - Αποχώρηση - Να μην ακολουθώ - Συνομιλία που εξαφανίζεται - Συνομιλία relay - Συνομιλίες relay - Οι συνομιλίες relay είναι ομάδες συνομιλίας που ελέγχονται από το αρχικό τους relay. - Είναι ορατές σε όλους στο Nostr και οποιοσδήποτε μπορεί να συμμετάσχει σε αυτές. - Είναι ιδανικές για ανοιχτές κοινότητες γύρω από συγκεκριμένα θέματα. Ορισμένες από αυτές τις ομάδες είναι εφήμερες - και έτσι τα μηνύματα συνομιλίας εξαφανίζονται με την πάροδο του χρόνου - Δημόσια Συζήτηση - Ομάδα MLS - Μεταδεδομένα δημόσιας συνομιλίας - Οι δημόσιες συνομιλίες είναι ορατές σε όλους στο Nostr και οποιοσδήποτε - μπορεί να συμμετάσχει σε αυτές. Είναι ιδανικές για ανοιχτές κοινότητες γύρω από συγκεκριμένα θέματα. - Η εποπτεία μπορεί να ελεγχθεί με διαγραφή αναρτήσεων στα relay της - Εισάγετε 1–3 relay που φιλοξενούν αυτή την ομάδα. - Οι πελάτες Nostr χρησιμοποιούν αυτή τη ρύθμιση για να γνωρίζουν πού να κατεβάσουν μηνύματα και πού να στέλνουν τα μηνύματά σου. - Αφαίρεση - ποτέ - τώρα - ω - λ - η - Γυμνό - Ασέβεια / Ρητορική μίσους - Εφεδρικά κλειδιά - Αποτυχία κρυπτογράφησης του ιδιωτικού σου κλειδιού - Το \"Μυστικό Κλειδί\" (nsec) αντιγράφηκε στο πρόχειρο - Αντιγραφή του \"Μυστικού Κλειδιού\" μου - Αποτυχία ταυτοποίησης - Η βιομετρική ταυτοποίηση του ιδιοκτήτη αυτού του τηλεφώνου απέτυχε - Η βιομετρική ταυτοποίηση του ιδιοκτήτη αυτού του τηλεφώνου απέτυχε. Σφάλμα: %1$s - Το κείμενο της δημοσίευσης αποθηκεύτηκε στο πρόχειρο - Το \"Δημόσιο Κλειδί\" του συντάκτη της δημοσίευσης αποθηκεύτηκε στο πρόχειρο - Το ID της δημοσίευσης (@note1) αποθηκεύτηκε στο πρόχειρο - "<Unable to decrypt private message>\n\nΕιδοποίηση ιδιωτικής συνομιλίας μεταξύ %1$s και %2$s." - Λογαριασμοί - Πλοήγηση - Εσύ - Ροές - Δημιουργία - Σύστημα - Επιστροφή - Κοινοποίηση Συνδέσμου Περιηγητή - Κοινοποίηση - Κοινοποίηση ως εικόνα - Κοινοποίηση ως URL εικόνας - ID Δημοσίευσης - Διαγραφή - Σίγαση νήματος - Αναίρεση σίγασης νήματος - - Αποκλεισμός - Σελιδοδείκτες - Οι σελιδοδείκτες μεταφέρθηκαν επιτυχώς - Πρόχειρα - Προγραμματισμένες αναρτήσεις - Προγραμματισμός ανάρτησης - Ακύρωση προγραμματισμού - Οι προγραμματισμένες αναρτήσεις ενδέχεται να μην δημοσιευτούν έως ότου ανοίξετε ξανά την εφαρμογή. Ενεργοποιήστε το «πάντα ενεργό» στις Ρυθμίσεις → Προτιμήσεις UI για αξιόπιστο προγραμματισμό στο παρασκήνιο. - Οι προγραμματισμένες αναρτήσεις ενδέχεται να μην δημοσιευτούν έως ότου ανοίξετε ξανά την εφαρμογή. Οι προγραμματισμένες αναρτήσεις άλλων λογαριασμών δεν θα εκτελεστούν ενώ αυτός ο λογαριασμός είναι ενεργός. Ενεργοποιήστε το «πάντα ενεργό» στις Ρυθμίσεις → Προτιμήσεις UI για αξιόπιστο προγραμματισμό στο παρασκήνιο. - %1$s · σε %2$s - %1$s · πριν %2$s - Αύριο - Αποσυνδέθηκε - - Αποσυνδέθηκε · %d προγραμματισμένη ανάρτηση διαγράφηκε - Αποσυνδέθηκε · %d προγραμματισμένες αναρτήσεις διαγράφηκαν - - Η προγραμματισμένη ανάρτηση δημοσιεύτηκε - Η προγραμματισμένη ανάρτηση απέτυχε - Προγραμματισμένες αναρτήσεις - Ειδοποιήσεις όταν μια προγραμματισμένη ανάρτηση δημοσιευτεί ή αποτύχει να δημοσιευτεί. - Αποστολή τώρα - Σφάλμα: %1$s - Προγραμματισμένο - Αποστολή… - Απέτυχε - Εστάλη - Ακυρώθηκε - - Έχετε %d προγραμματισμένη ανάρτηση που δεν έχει δημοσιευτεί ακόμα. Η αποσύνδεση θα τη διαγράψει οριστικά. - Έχετε %d προγραμματισμένες αναρτήσεις που δεν έχουν δημοσιευτεί ακόμα. Η αποσύνδεση θα τις διαγράψει οριστικά. - - - %d σε αναμονή - %d σε αναμονή - - - · %d προς αποστολή σε 1ω - · %d προς αποστολή σε 1ω - - - σε %d relay - σε %d relays - - Αντιγράφηκε το ID σημείωσης - Δημοσκοπήσεις - Ανοιχτές - Κλειστές - Σήματα - Κοινότητες - Νέα Κοινότητα - Επεξεργασία Κοινότητας - Συντονιστές - Επαληθεύσιμοι κανόνες (προαιρετικά) - Επιτρεπόμενα είδη συμβάντων - Σύντομο κείμενο (1) - Μακροσκελές άρθρο (30023) - Ανάρτηση εικόνας (20) - Ανάρτηση βίντεο (21) - Σύντομο βίντεο (22) - Σχόλιο κοινότητας (1111) - Αποκλεισμένοι χρήστες - Πύλη εμπιστοσύνης ιστού (προαιρετικά) - Παγκόσμιο μέγιστο μέγεθος συμβάντος (προαιρετικά) - Νέο Σήμα - Απονομή Σήματος - Σήματα προφίλ - Εικόνες - Προπονήσεις - Νέα Προπόνηση - Τρέξιμο - Περπάτημα - Ποδηλασία - Πεζοπορία - Κολύμβηση - Κωπηλασία - Δύναμη - Διαλογισμός - Δίαιτα - Νηστεία - Εφαρμογές Εφαρμογές - Περιηγητής - Φόρτωση μέσω Tor. Πατήστε για χρήση ανοιχτού ιστού. - Φόρτωση μέσω ανοιχτού ιστού. Πατήστε για χρήση Tor. - Αγαπημένα - Αγαπημένες εφαρμογές - Προσθήκη στα αγαπημένα - Αφαίρεση από αγαπημένα - Φορτώνει μέσω Tor. - Φορτώνει μέσω του ανοιχτού διαδικτύου. - Δημοσιεύτηκε σε relay - Ανέβηκε αρχείο - Πραγματοποιήθηκε πληρωμή - Αυτή η εφαρμογή δεν έχει φορτωθεί ακόμα. Δοκιμάστε ξανά σε λίγο. - Πρόσφατα Δικαιώματα nApplet Δεν υπάρχουν ακόμα δικαιώματα nApplet Τα δικαιώματα που παραχωρείτε σε nApplets θα εμφανίζονται εδώ. @@ -274,46 +24,11 @@ Ανάκληση - Ταυτότητα - Ενέργειες πληκτρολογίου - relay - Αποθήκευση - Πληρωμές - Δίκτυο - Μεταφορτώσεις Ερώτηση για διαθέσιμες δυνατότητες - Ανάγνωση του δημόσιου κλειδιού σας - Σύνδεση συντομεύσεων πληκτρολογίου - Ανάγνωση, υπογραφή και δημοσίευση των συμβάντων σας - Ιδιωτική αποθήκευση δεδομένων - Πληρωμή Lightning τιμολογίων - Λήψη πόρων από το διαδίκτυο και Blossom - Μεταφόρτωση αρχείων στον διακομιστή πολυμέσων σας - Θέμα - Ειδοποιήσεις - Ανταλλαγή μηνυμάτων - Αντιστοίχιση των χρωμάτων της εφαρμογής σας - Εμφάνιση ειδοποιήσεων - Ανταλλαγή μηνυμάτων με άλλα nApplets Δυνατότητα: %1$s - Αυτό το nApplet θέλει να διαβάσει το δημόσιο κλειδί σας. - Αυτό το nApplet θέλει να διαβάσει το προφίλ και τα δεδομένα του λογαριασμού σας. - Αυτό το nApplet θέλει να υπογράψει και να δημοσιεύσει ένα συμβάν kind %1$d ως εσάς. - Αυτό το nApplet θέλει να υπογράψει και να δημοσιεύσει ένα συμβάν kind %1$d ως εσάς: - Αυτό το nApplet θέλει να στείλει ένα κρυπτογραφημένο συμβάν ως εσάς. - Αυτό το nApplet θέλει να διαβάσει συμβάντα από τα relay σας. - Αυτό το nApplet θέλει να χρησιμοποιήσει την ιδιωτική του αποθήκευση. Αυτό το nApplet θέλει να πληρώσει ένα Lightning τιμολόγιο. - Αυτό το nApplet θέλει να λάβει έναν πόρο από το διαδίκτυο. - Αυτό το nApplet θέλει να μεταφορτώσει ένα αρχείο στον διακομιστή πολυμέσων σας. - Αυτό το nApplet θέλει να σας εμφανίσει ειδοποιήσεις. - Αυτός ο ιστότοπος θέλει να υπογράψει ένα συμβάν kind %1$d με το Nostr κλειδί σας. - - Αυτό το nApplet θέλει να πληρώσει ένα Lightning τιμολόγιο αξίας %1$d sat. - Αυτό το nApplet θέλει να πληρώσει ένα Lightning τιμολόγιο αξίας %1$d sats. - - Δημόσιες Συνομιλίες - Πακέτα Ακολούθων - Ζωντανές Μεταδόσεις - Σήκωμα χεριού - Κατέβασμα χεριού - Σίγαση - Άρση σίγασης - Αποτυχία αποστολής μηνύματος - Σίγαση μικροφώνου - Άρση σίγασης μικροφώνου - Διατηρεί τον ήχο σε αναπαραγωγή ενώ το δωμάτιο είναι ανοιχτό. - Nest συνδεδεμένο - Nest — Ζωντανά - Πατήστε για επιστροφή. - Διακοπή - σήκωσε το χέρι - ανέβηκε στη σκηνή - μιλά - συνδέθηκε ως ακροατής - αποχώρησε από το nest - Αποχώρηση - Αδυναμία σήμανσης δωματίου ως κλειστού. Αποχώρηση ούτως ή άλλως — το δωμάτιο θα κλείσει αυτόματα. - - %1$d ακροατής - %1$d ακροατές - - Σίγαση αυτού του ομιλητή - Επαναφορά αυτού του ομιλητή - Ακολουθία - Διακοπή ακολουθίας - Σίγαση - Άρση σίγασης - Αδυναμία αποθήκευσης της λίστας διακομιστών nest. Δοκιμάστε ξανά. - Διακομιστές Nest - Οι διακομιστές σας - Αποθηκεύεται ως αντικαταστάσιμο συμβάν kind-10112 ώστε άλλοι πελάτες να μπορούν να διαβάσουν την προτίμησή σας. - Προτεινόμενοι διακομιστές - Ενσωματωμένες προτάσεις που μπορείτε να προσθέσετε στη λίστα σας με ένα άγγιγμα. - Βίντεο - Μουσική - Λίστες αναπαραγωγής - Επεισόδια - - %1$d επεισόδιο - %1$d επεισόδια - - Νέο μουσικό κομμάτι - Νέα λίστα αναπαραγωγής - - %1$d κομμάτι - %1$d κομμάτια - - Προσθήκη στους Δημόσιους Σελιδοδείκτες - Αφαίρεση από Δημόσιους Σελιδοδείκτες - Καρφίτσωμα στο προφίλ - Ξεκαρφίτσωμα από το προφίλ - Νέα λίστα σελιδοδεικτών - Μεταδεδομένα λίστας σελιδοδεικτών - Σύνολα hashtag - Νέο σύνολο ενδιαφερόντων - Μετονομασία - Να γίνει ιδιωτικό: αποστολή της σημείωσης με gift-wrap μόνο στους ειδοποιούμενους χρήστες - Να γίνει δημόσιο - Οι απαντήσεις σε ιδιωτική σημείωση παραμένουν πάντα ιδιωτικές - Ορατό σε Δεν υπάρχουν ακόμη παραλήπτες: μόνο εσείς θα μπορείτε να δείτε αυτή τη σημείωση. Προσθέστε άτομα για να τη μοιραστείτε μαζί τους. Προσθήκη Αφαίρεση χρήστη από τις ειδοποιήσεις Αναζητήστε και προσθέστε έναν χρήστη για ειδοποίηση - Τα μεταδεδομένα των λιστών σελιδοδεικτών μπορούν να τα δουν όλοι στο Nostr. Μόνο τα ιδιωτικά μέλη σας είναι κρυπτογραφημένα. - Μετακίνηση σε δημόσιο - Μετακίνηση σε ιδιωτικό - Ανατροφοδότηση & αποστολή zap - Αποστολή zap - Ανατροφοδότηση %1$s sats σε %2$s και αποστολή zap %3$s %4$s sats · χρέωση ≈ %5$s sats - Επιλογή %s - Μία επιλογή - Πολλαπλές επιλογές - Αδυναμία ψηφοφορίας - Η δημοσκόπηση έχει λήξει - Μόνο μία ψήφος ανά χρήστη επιτρέπεται σε αυτόν τον τύπο δημοσκόπησης - Οι συντάκτες των δημοσκοπήσεων δεν μπορούν να ψηφίσουν στις δικές τους δημοσκοπήσεις. - Τι σημαίνει αυτό; - Το περιεχόμενο παραμένει ίδιο από την αρχική του δημοσίευση - Το περιεχόμενο έχει αλλάξει. Ο συντάκτης μπορεί να μην έχει δει ή εγκρίνει την αλλαγή - Προσθήκη μέσου - Προσθήκη Εικόνας - Προσθήκη Βίντεο - Προσθήκη Εγγράφου - Εξυπηρετητής Αρχείων - Επιλέξτε έναν διακομιστή για αποστολή αυτού του αρχείου - Διακομιστές μέσων Ορίστε τους προτιμώμενους διακομιστές αποστολής μέσων σας. Προτεινόμενοι διακομιστές μέσων Η προεπιλεγμένη λίστα του Amethyst. Μπορείτε να τους προσθέσετε μεμονωμένα ή να προσθέσετε ολόκληρη τη λίστα. - Στόχοι πληρωμής - Προσθέστε διευθύνσεις πληρωμής για διαφορετικά δίκτυα (π.χ. bitcoin, lightning, ethereum). - Δεν βρέθηκε εφαρμογή για αυτή την πληρωμή. Εγκαταστήστε ένα συμβατό πορτοφόλι. - Δεν είναι εγκατεστημένη εφαρμογή για πληρωμές %1$s. Εγκαταστήστε ένα συμβατό πορτοφόλι. - Αδυναμία ανοίγματος πληρωμής - Επιλογές απορρήτου - Όσοι Ακολουθώ - Όλες οι παρακολουθήσεις χρηστών - Προεπιλεγμένη λίστα παρακολούθησης - Γύρω μου - Όλοι - Επιμελημένο - Δικό μου - Λίστα σίγασης - Νέα λίστα παρακολούθησης - Νέο πακέτο παρακολούθησης - Επεξεργασία λίστας - Η προεπιλεγμένη θύρα είναι 9050 - Θύρα Orbot - Ενεργή μηχανή Tor - Χρησιμοποιήστε την εσωτερική έκδοση ή το Orbot - Προρυθμίσεις Tor/Απορρήτου - Γρήγορη τροποποίηση όλων των παρακάτω ρυθμίσεων - Onion URL/Relays - Χρήση Tor για οποιοδήποτε .onion url - Εξαναγκασμός Tor για αποστολή και λήψη DMs - Αναξιόπιστα Relays - Εξαναγκασμός Tor στα relays εξόδου/εισόδου - Αξιόπιστα Relays - Εξαναγκασμός Tor σε όλα τα relays της λίστας σας - Εικόνες προφίλ - Εξαναγκασμός Tor κατά τη φόρτωση εικόνων προφίλ - Προεπισκοπήσεις URL - Εξαναγκασμός Tor κατά τη φόρτωση προεπισκοπήσεων URL - Εικόνες - Εξαναγκασμός Tor κατά τη φόρτωση εικόνων - Βίντεο - Εξαναγκασμός Tor κατά τη φόρτωση βίντεο - Χρηματικές συναλλαγές - Εξαναγκασμός Tor σε zaps, Lightning και μεταφορές Cashu - Επαλήθευση διεύθυνσης Nostr - Εξαναγκασμός Tor κατά την επαλήθευση διευθύνσεων NIP-05 - Αποστολή πολυμέσων - Εξαναγκασμός Tor κατά την αποστολή περιεχομένου - Εσωτερικό - Απενεργοποιημένο - Βασικό - Προεπιλογή - Όλα εκτός από πολυμέσα - Πλήρες απόρρητο - Προσαρμοσμένο - Χρήση Tor όταν απαιτείται από τον διακομιστή - Απόκρυψη IP σας από τυχαία relays - Απόκρυψη IP σας από τα πάντα, εκτός από εικόνες και βίντεο - Απόκρυψη IP σας σε όλες τις συνδέσεις - Φτιάξτε τη δική σας - Προσωπικά Μηνύματα - Σας ειδοποιεί όταν φτάνει ένα ιδιωτικό μήνυμα - Ληφθέντα Zaps - Σας ειδοποιεί όταν κάποιος σας zapάρει - Από %1$s - για %1$s - Απάντηση - Σήμανση ως αναγνωσμένο - Νέα μηνύματα - Νέα zaps - Αντιδράσεις - Σας ειδοποιεί όταν κάποιος αντιδρά στην ανάρτησή σας - Ο %1$s αντέδρασε στην ανάρτησή σας - για %1$s - Νέες αντιδράσεις - Σκάκι - Σας ειδοποιεί για γεγονότα παιχνιδιού σκακιού - Ο %1$s αποδέχθηκε την πρόκλησή σας στο σκάκι - Ο %1$s κινήθηκε — σειρά σας - Ενημερώσεις σκακιού - Απαντήσεις - Σας ειδοποιεί όταν κάποιος απαντά στην ανάρτησή σας Ο %1$s απάντησε σε: %1$s - Νέες απαντήσεις - Αναφορές - Σας ειδοποιεί όταν κάποιος σας αναφέρει ή σας παραθέτει σε ανάρτηση - Ο %1$s σας ανέφερε - Νέες αναφορές @@ -536,36 +80,6 @@ - Εισερχόμενες κλήσεις - Ειδοποιήσεις για εισερχόμενες φωνητικές και βιντεοκλήσεις - Εισερχόμενη κλήση - Εισερχόμενη φωνητική κλήση… - Εισερχόμενη βιντεοκλήση… - Κλήση με %1$s - Κλήσεις - Ειδοποίηση ενεργής κλήσης - Κλείσιμο - Αποδοχή - Απόρριψη - Σίγαση - Άρση σίγασης - Κάμερα ενεργή - Κάμερα ανενεργή - Ηχείο - Ακουστικό - Το Amethyst χρειάζεται πρόσβαση στο μικρόφωνο για να ξεκινήσει φωνητική κλήση. Ενεργοποιήστε το στις ρυθμίσεις της εφαρμογής. - Το Amethyst χρειάζεται πρόσβαση στην κάμερα και στο μικρόφωνο για να ξεκινήσει βιντεοκλήση. Ενεργοποιήστε τα στις ρυθμίσεις της εφαρμογής. - Ρυθμίσεις κλήσεων - Διατηρεί ενεργές τις συνδέσεις στα relays εισερχομένων για πραγματικού χρόνου ειδοποιήσεις - Ειδοποιήσεις Amethyst ενεργές - - Συνδέθηκε σε %1$d relay εισερχομένων - Συνδέθηκε σε %1$d relays εισερχομένων - - - Συνδέθηκε σε %1$d relay - Συνδέθηκε σε %1$d relays - - Σύνδεση στα relays εισερχομένων… Υπηρεσία ειδοποιήσεων πάντα ενεργή Διατηρεί μόνιμη σύνδεση στα relays εισερχομένων σας για άμεση παράδοση ειδοποιήσεων. Εμφανίζει μια συνεχή ειδοποίηση. Καταναλώνει περισσότερη μπαταρία αλλά εξασφαλίζει ότι δεν θα χάσετε ποτέ κανένα μήνυμα. - Διαχωρισμός ειδοποιήσεων κατά Ακολουθούμενους - Εμφάνιση δύο καρτελών ειδοποιήσεων — Ακολουθούμενοι (άτομα που ακολουθείτε) και Όλοι. Η ένδειξη αναγνωσμένων ανάβει μόνο για δραστηριότητα από άτομα που ακολουθείτε. - Εμφάνιση μηνυμάτων - Συμπερίληψη άμεσων και ομαδικών μηνυμάτων στην καρτέλα ειδοποιήσεων. Απενεργοποιήστε για να διατηρείτε τα μηνύματα μόνο στην καρτέλα μηνυμάτων. - Ειδοποίηση: - Σήμερα - Απόκρυψη - Εμφάνιση - Προειδοποίηση - Φιλτράρισμα spam - Αποκρύπτει αναρτήσεις από αγνώστους που ήταν ακριβώς ίδιες 5 ή περισσότερες φορές - Προσθήκη ετικέτας πελάτη στα γεγονότά μου - Όταν είναι ενεργοποιημένο, το Amethyst προσαρτά μια ετικέτα πελάτη NIP-89 στα γεγονότα που δημοσιεύετε. - Προειδοποίηση για αναφορές - Εμφανίζει προειδοποίηση όταν αναρτήσεις ή προφίλ έχουν αναφορές από τους ακολουθούμενους σας - Απόκρυψη αναρτήσεων που παραβιάζουν κανόνες κοινότητας - Αφαιρεί αναρτήσεις από feeds κοινότητας όταν η κοινότητα δημοσιεύει έγγραφο κανόνων NIP-9B και ένα γεγονός θα απέτυχε. Δεν έχει αποτέλεσμα όταν μια κοινότητα δεν έχει δομημένους κανόνες. - Προτιμήσεις φιλτραρίσματος - Αποκλεισμένο περιεχόμενο - Δεν έχετε αποκλείσει κανέναν χρήστη ακόμα. - Κανένας λογαριασμός δεν έχει επισημανθεί ως spam σε αυτή τη συνεδρία. - Δεν υπάρχουν κρυφές λέξεις. Προσθέστε μια λέξη παρακάτω για να αποκρύπτετε αναρτήσεις που την περιέχουν. - Δεν έχουν επιλεγεί εικονίδια αντίδρασης. Πατήστε παρατεταμένα το κουμπί της καρδιάς για αλλαγή - Ανάγνωση από Διαμοιραστή (Relay) - Γράψτε στον Διαμοιραστή - Η ποσότητα σε bytes που εστάλη σε αυτό το relay, συμπεριλαμβανομένων φίλτρων και γεγονότων - Η ποσότητα σε bytes που ελήφθη από αυτό το relay, συμπεριλαμβανομένων φίλτρων και γεγονότων - Πολιτική απορρήτου - Πρότυπα ασφάλειας παιδιών - Σχετικά & Νομικά - Δεν έχει οριστεί διεύθυνση Lightning - Διαμοιραστές - Πακέτα ακολούθων - Αναγνώσεις - Αλγόριθμοι ροής - Αγορά - Ζωντανές ροές - Κοινότητες - Συνομιλίες - Ευαίσθητο Περιεχόμενο - Προσθέτει προειδοποίηση ευαίσθητου περιεχομένου πριν εμφανιστεί αυτό το περιεχόμενο - Προτιμήσεις UI Προτιμήσεις εφαρμογής - Μεταφράσεις - Αντιδράσεις - Ρυθμίσεις - Ρυθμίσεις λογαριασμού - Ρυθμίσεις εφαρμογής - Επικίνδυνη ζώνη - Επαναφορά κατάστασης Marmot - Η κατάσταση Marmot επαναφέρθηκε. - Αποτυχία επαναφοράς κατάστασης Marmot: %1$s - Πάντα - WiFi χωρίς μετρητή - Ποτέ - Πλήρης - Απλοποιημένη - Απόδοση - Κλασική - Σύγχρονη - Σύστημα - Φωτεινό - Σκοτεινό - Θέμα - Προεπισκόπηση Εικόνας - Αναπαραγωγή Βίντεο - Αυτόματη αναπαραγωγή βίντεο - Προεπισκόπηση URL - Κύλιση σε Πλήρη Οθόνη - Απόκρυψη μενού κατά την κύλιση - Λειτουργία UI - Επιλογή στυλ ανάρτησης - Στυλ γκαλερί προφίλ - Επιλογή στυλ γκαλερί - Ανεπιθύμητοι - Σε σίγαση. Κάντε κλικ για κατάργηση σίγασης - Ήχος ενεργός. Κάντε κλικ για σίγαση - Μετακίνηση %d δευτερόλεπτα πίσω - Μετακίνηση %d δευτερόλεπτα μπροστά - Ανάρτηση αποκλειστικά τοποθεσίας - Μόνο οι ακόλουθοι της τοποθεσίας θα τη δουν. Οι γενικοί ακόλουθοί σας δεν θα τη δουν. - - %1$d κομμάτι - %1$d κομμάτια - - - +%1$d ακόμα κομμάτι - +%1$d ακόμα κομμάτια - - Ανέβασμα εικόνας εξωφύλλου - Επιλέξτε τετράγωνη εικόνα ως εξώφυλλο για αυτό το κομμάτι. - Ανέβασμα αρχείου ήχου - Επιλέξτε MP3, WAV ή FLAC. Θα ανεβεί στον διακομιστή πολυμέσων σας κατά την αποθήκευση. - Ανέβασμα εξωφύλλου + ήχου και δημοσίευση. Θα συνεχιστεί ακόμα και αν αφήσετε την οθόνη. - Επεξεργασία λίστας αναπαραγωγής - Ανέβασμα εικόνας εξωφύλλου - Επιλέξτε τετράγωνη εικόνα ως εξώφυλλο για αυτή τη λίστα αναπαραγωγής. - Ανέβασμα εξωφύλλου και δημοσίευση. Θα συνεχιστεί ακόμα και αν αφήσετε την οθόνη. Δημόσια Ομάδα Ιδιωτικό - Θέμα - Δεν είναι δυνατό το ανέβασμα - Εισάγετε πρώτα τον προορισμό του μηνύματος - Το πορτοφόλι δεν βρέθηκε - Το Amethyst δεν βρήκε εφαρμογές πορτοφολιού που υποστηρίζουν Nostr Wallet Connect (NWC). -\n\nΤι μπορείτε να κάνετε: -\n\t1. Επαλήθευση υποστήριξης NWC: Βεβαιωθείτε ότι η προτιμώμενη εφαρμογή πορτοφολιού σας είναι συμβατή με Nostr Wallet Connect. -\n\t2. Δημιουργία σύνδεσης: Μεταβείτε στην εφαρμογή πορτοφολιού σας και δημιουργήστε μια νέα σύνδεση NWC. -\n\t3. Σύνδεση με το Amethyst: Το πορτοφόλι σας συνήθως θα σας δώσει τρεις επιλογές: -\n\t\t3.1 Αυτόματη σύνδεση: Ένα κουμπί για αυτόματο άνοιγμα και σύνδεση με το Amethyst. Αν ναι, κάντε κλικ σε αυτό το κουμπί, ανοίξτε το Amethyst και πατήστε αποθήκευση στη νέα οθόνη. -\n\t\t3.2 Χειροκίνητη σύνδεση: Ένα URI σύνδεσης που μπορείτε να αντιγράψετε και να κάνετε κλικ στο εικονίδιο επικόλλησης σε αυτή την οθόνη για απευθείας εισαγωγή. -\n\t\t3.3 Κωδικός QR: Το πορτοφόλι δημιουργεί κωδικό QR τον οποίο μπορείτε να σαρώσετε από το κουμπί κωδικού QR σε αυτή την οθόνη. - - Σκοτεινό, φωτεινό ή προεπιλογή συστήματος - Αυτόματη φόρτωση εικόνων και GIFs - Αυτόματη αναπαραγωγή βίντεο και GIFs - Αυτόματη αναπαραγωγή βίντεο όταν εμφανίζονται στην οθόνη - Εμφάνιση προεπισκόπησης συνδέσμων - Αντιγραφή στο πρόχειρο - Αντιγράφηκε στο πρόχειρο - Κοινοποίηση ή αποθήκευση Αποστολή ως DM - Τα πολυμέσα προστέθηκαν - Τα πολυμέσα προστέθηκαν στη γκαλερί προφίλ σας - Αδυναμία αποστολής zap - Λείπει η ρύθμιση lightning (LN) - Ο Χρήστης %1$s δεν έχει ορίσει διεύθυνση LN (lightning) για να λαμβάνει sats - Σφάλμα ανοίγματος εφαρμογής υπογραφής - Η εφαρμογή υπογραφής δεν βρέθηκε. Ελέγξτε αν δεν έχει απεγκατασταθεί - Δεν είναι δυνατή η αναπαραγωγή αυτού του βίντεο - Ο κωδικοποιητής ή η μορφή δεν υποστηρίζεται σε αυτή τη συσκευή (%1$s). Δοκιμάστε να το ανοίξετε στο πρόγραμμα περιήγησής σας. - Άνοιγμα στο πρόγραμμα περιήγησης - Αίτημα υπογραφής απορρίφθηκε - Βεβαιωθείτε ότι η εφαρμογή υπογραφής έχει εξουσιοδοτήσει αυτή τη συναλλαγή - Δε βρέθηκαν πορτοφόλια για να πληρώσετε το τιμολόγιο Lightning (Error: %1$s). Παρακαλώ εγκαταστήστε ένα πορτοφόλι Lightning για να χρησιμοποιήσετε τα zaps - Δε βρέθηκε ψηφιακό πορτοφόλι για πληρωμή Lightning. Παρακαλώ εγκαταστήστε ένα πορτοφόλι Lightning για να χρησιμοποιήσετε τα zaps - Δεν είναι δυνατό το άνοιγμα συνδέσμων Blossom - Δεν βρέθηκαν εφαρμογές Blossom. Εγκαταστήστε μια τοπική εφαρμογή Blossom για να δείτε αυτό το αρχείο - Κρυφές Λέξεις - Σίγαση νημάτων - Δεν υπάρχουν νήματα σε σίγαση - Εικόνα Προφίλ - Εμφάνιση εικόνων Προφίλ - Αδυναμία πληρωμής τιμολογίου - Αδυναμία ανάληψης - Αδυναμία εξαργύρωσης Cashu - Το Mint έδωσε το ακόλουθο μήνυμα σφάλματος: %1$s - Ληφθέντα Cashu - %1$s sats στάλθηκαν στο πορτοφόλι σας. (Κρατήσεις: %2$s sats) - Δεν βρέθηκε συμβατό πορτοφόλι Cashu στο σύστημα - Αδυναμία ανάκτησης τιμολογίου από τους διακομιστές του παραλήπτη - Ο πάροχος σύνδεσης του πορτοφολιού σας επέστρεψε το ακόλουθο σφάλμα: %1$s - Δεν ήταν δυνατή η δημιουργία του LNUrl από τη διεύθυνση Lightning \"%1$s\". Ελέγξτε ρυθμίσεις χρήστη - Δεν ήταν δυνατή η λήψη τιμολογίου από %1$s: %2$s - Σφάλμα ανάλυσης JSON από %1$s. Ελέγξτε τις ρυθμίσεις Lightning του χρήστη - Η διεύθυνση URL επανάκλησης δεν βρέθηκε στην απόκριση του %1$s - Λανθασμένο ποσό πληρωμής (%1$s sats) από %2$s. Θα έπρεπε να είναι %3$s - Αδυναμία δημιουργίας πληρωμής Lightning πριν την αποστολή του zap. Το πορτοφόλι Lightning του δέκτη έστειλε το ακόλουθο σφάλμα: %1$s - Χρήστης μόνο για ανάγνωση - Καμία ρύθμιση αντιδράσεων - Ειδοποιήσεις - Παράδοση - Εμφάνιση εντός εφαρμογής - Κατηγορίες - Μήνυμα από %1$s - Γεια σου %1$s, είναι ακόμα διαθέσιμο; - Ρούχα - Αξεσουάρ - Ηλεκτρονικά - Έπιπλα - Συλλεκτικά - Βιβλία - Κατοικίδια - Αθλητισμός - Γυμναστική - Τέχνη - Χειροτεχνίες - Σπίτι - Γραφείο - Τρόφιμα - Διάφορα - Άλλο - Αποτυχία ανεβάσματος πολυμέσων - Δεν ήταν δυνατό το άνοιγμα του συμπιεσμένου αρχείου - Σφάλμα ανεβάσματος: %1$s - Ο διακομιστής δεν παρείχε URL μετά το ανέβασμα - Δεν ήταν δυνατή η λήψη των ανεβασμένων πολυμέσων από τον διακομιστή - Δεν ήταν δυνατός ο έλεγχος του ληφθέντος αρχείου μετά το ανέβασμα: %1$s - Αποτυχία ανεβάσματος στο %1$s: %2$s - Αποτυχία διαγραφής: %1$s - Τα πολυμέσα είναι πολύ μεγάλα για NIP-95 - Κρυπτογράφηση αρχείων - Κρυπτογράφηση αρχείων πριν το ανέβασμα για απόρρητο. Ορισμένοι διακομιστές ενδέχεται να μην δέχονται κρυπτογραφημένα αρχεία σε δωρεάν λογαριασμούς. - Αποτυχία κρυπτογραφημένου ανεβάσματος - Πολλοί διακομιστές δεν δέχονται κρυπτογραφημένα αρχεία σε δωρεάν λογαριασμούς. Μπορείτε να δοκιμάσετε ξανά χωρίς κρυπτογράφηση. - Χρήση κωδικοποιητή H.265/HEVC - Καλύτερη ποιότητα σε μικρότερα μεγέθη αρχείων, αλλά δεν υποστηρίζουν όλες οι συσκευές αναπαραγωγή H.265. - Μετατροπή GIF σε MP4 - Μετατρέπει κινούμενα GIF σε βίντεο MP4 για μικρότερο μέγεθος αρχείου και καλύτερη συμβατότητα αναπαραγωγής. - Αφαίρεση ιδιωτικών μεταδεδομένων - Αποπειράται αφαίρεση ιδιωτικών μεταδεδομένων από υποστηριζόμενα αρχεία πολυμέσων πριν το ανέβασμα - Δεν ήταν δυνατή η αφαίρεση μεταδεδομένων - Αποτυχία αφαίρεσης ιδιωτικών μεταδεδομένων από τα πολυμέσα. Το ανέβασμα ακυρώθηκε. - Το ανέβασμα ακυρώθηκε - Αδυναμία αφαίρεσης μεταδεδομένων από AVIF: %1$s - Αρχική - Ανακάλυψη - Μηνύματα - Ειδοποιήσεις - Ημερολόγια - Λίστες ημερολογίων - Σκάκι - Πορτοφόλι - Πορτοφόλι Cashu (NIP-60) Κλειδί Nutzap (για προχωρημένους) Ένα ξεχωριστό ιδιωτικό κλειδί που χρησιμοποιείται μόνο για τη λήψη nutzap NIP-61. Δεν είναι το κλειδί ταυτότητάς σας στο Nostr. Δημιουργία νέου κλειδιού Ιδιωτικό κλειδί P2PK (hex) - Επεξεργασία mint Αποθήκευση αλλαγών - - +%1$d ακόμα - +%1$d ακόμα - - - Συνιστάται από %1$d άλλον - Συνιστάται από %1$d άλλους - - Δημοφιλή mint - Αντίστοιχα mint - Ληφθέν - Απεσταλμένο - Δημοσίευση αιτήματος διαγραφής για τη σύστασή σας kind:38000 του %1$s. Τα relay που τιμούν το NIP-09 θα την αφαιρέσουν. - Ανακτήθηκαν %1$s sats σε %2$s αποδείξεις. - Πληρωμή %1$s sat + έως %2$s sat σε χρεώσεις; - Αποτυχία Nutzap - Δεν υπάρχει pubkey παραλήπτη στη σημείωση - Τα nutzap είναι δημόσια και θα αποκάλυπταν αυτή την ιδιωτική σημείωση. Χρησιμοποιήστε αντ\' αυτού zap μέσω Lightning. - Δεν είναι δυνατή η δημιουργία αναφοράς συμβάντος - Αναμονή για πληρωμή του τιμολογίου… - Έλεγχος του mint… - Αργό - Κανονικό - Γρήγορο - ~1 ώρα - ~30 λεπτά - ~10 λεπτά - - Αποστολή %1$s sats, %2$d τρόπος - Αποστολή %1$s sats, %2$d τρόποι - - - Χρήση διαχωρισμού zap %1$d-τρόπου αυτής της σημείωσης - Χρήση διαχωρισμού zap %1$d-τρόπων αυτής της σημείωσης - - - Διαχωρισμός σε %1$d παραλήπτη - Διαχωρισμός σε %1$d παραλήπτες - - - Παράλειψη %1$d παραλήπτη μόνο με Lightning address — το on-chain χρειάζεται pubkey Nostr για να αντλήσει τη διεύθυνση. - Παράλειψη %1$d παραληπτών μόνο με Lightning address — το on-chain χρειάζεται pubkey Nostr για να αντλήσει τη διεύθυνση. - - φόρτωση υπολοίπου - δημιουργία της συναλλαγής - υπογραφή - εκπομπή - δημοσίευση της απόδειξης - Το backend της αλυσίδας Bitcoin δεν έχει ρυθμιστεί - Δεν ήταν δυνατή η φόρτωση του υπολοίπου Bitcoin σας - Δεν ήταν δυνατή η δημιουργία της συναλλαγής - Το μερίδιο ενός παραλήπτη είναι κάτω από το ελάχιστο (dust) - Δεν ήταν δυνατή η υπογραφή της συναλλαγής - Δεν ήταν δυνατή η εκπομπή της συναλλαγής - Η πληρωμή εστάλη, αλλά η απόδειξη zap δεν μπόρεσε να δημοσιευθεί - - Η πληρωμή στάλθηκε (%1$d από %2$d απόδειξη δημοσιεύτηκε), αλλά η επόμενη απόδειξη δεν μπόρεσε να δημοσιευτεί - Η πληρωμή στάλθηκε (%1$d από %2$d αποδείξεις δημοσιεύτηκαν), αλλά η επόμενη απόδειξη δεν μπόρεσε να δημοσιευτεί - - Εισαγωγή Ακολουθούμενων - Νέο Προϊόν - Νέο Άρθρο - Νέο Συμβάν Ημερολογίου - Επεξεργασία Συμβάντος Ημερολογίου - Νέο Ημερολόγιο - Επεξεργασία Ημερολογίου - Ροή - Μήνας - Εβδομάδα - Ημέρα - - %1$s, %2$d συμβάν - %1$s, %2$d συμβάντα - - Γίνεται τώρα - %1$s · λήγει %2$s - Κοινοποίηση συμβάντος ημερολογίου - Υπενθυμίσεις ημερολογίου - Ειδοποίηση όταν ένα συμβάν στο οποίο συμμετέχετε πρόκειται να ξεκινήσει. - Συμβάν ημερολογίου - - Ξεκινά σε %1$d λεπτό - Ξεκινά σε %1$d λεπτά - - Η μεταφόρτωση εικόνας απέτυχε - Η επιλεγμένη εικόνα δεν μπόρεσε να μεταφορτωθεί. Δοκιμάστε ξανά ή επικολλήστε ένα URL. - Υπενθυμίσεις ημερολογίου - Αποστολή υπενθυμίσεων - Μια ειδοποίηση ενεργοποιείται όταν ένα συμβάν στο οποίο συμμετέχετε πρόκειται να ξεκινήσει. - - %1$d λεπτό - %1$d λεπτά - - Άνοιγμα σε χάρτες - Άνοιγμα συνδέσμου - Άνοιγμα όλων των αντιδράσεων σε αυτή την ανάρτηση - Κλείσιμο όλων των αντιδράσεων σε αυτή την ανάρτηση - Κάτω Μπάρα Πλοήγησης Σύρτε για αναδιάταξη. Εναλλαγή για προσθήκη ή αφαίρεση στοιχείου από την κάτω μπάρα. Με μηδέν στοιχεία η κάτω μπάρα αποκρύπτεται. Αναδιάταξη Επιλέξτε ποιες καρτέλες εμφανίζονται στην Αρχική οθόνη. Όταν είναι ενεργή μόνο μία καρτέλα, η μπάρα καρτελών αποκρύπτεται. - Όλα - Διεπαφή Προφίλ Επιλέξτε ποιες ενότητες και ροές εμφανίζονται στις οθόνες προφίλ χρηστών. Όλες οι επιλογές είναι ενεργοποιημένες από προεπιλογή. - Σήματα Προφίλ - Προτάσεις Εφαρμογών - Ροή Ληφθέντων Zap - Ροή Ακολούθων - Σειρά Αντιδράσεων - Κουμπιά Αναπαραγωγής Βίντεο - Οπτικοποίηση Ήχου - Ημερομηνία Λήξης - Μη έγκυρη διεύθυνση - Το Amethyst έλαβε ένα URI για άνοιγμα, αλλά το uri δεν ήταν έγκυρο: %1$s - Relay Εισερχόμενων DM - Relay Αναζήτησης - Καλές επιλογές είναι:\n%1$s - Relay Εξερχόμενων - Relay Εισερχόμενων - Ρυθμίσεις Relay - Δημόσια Relay Εξερχόμενων/Αρχικής - Ο χρήστης δημοσιεύει το περιεχόμενό του σε αυτά τα relay - Αυτός ο τύπος relay αποθηκεύει όλο το περιεχόμενό σας. Το Amethyst θα στέλνει τις αναρτήσεις σας εδώ και άλλοι θα χρησιμοποιούν αυτά τα relay για να βρουν το περιεχόμενό σας. Εισάγετε από 1 έως 3 relay. Μπορεί να είναι προσωπικά relay, relay με χρέωση ή δημόσια relay. - Δημόσια Relay Εισερχόμενων - Ο χρήστης λαμβάνει ειδοποιήσεις σε αυτά τα relay - Αυτός ο τύπος relay λαμβάνει όλες τις απαντήσεις, σχόλια, «μου αρέσει» και zaps στις αναρτήσεις σας. Μπορεί να είναι relay με ή χωρίς χρέωση. Τα όρια που ορίζει ο διαχειριστής του relay μπορούν να περιορίσουν τις ειδοποιήσεις που λαμβάνετε, θετικά και αρνητικά. Για παράδειγμα, εάν δέχεστε επίθεση με spam σχολίων, τα relay με χρέωση μπορούν να το φιλτράρουν. Εισάγετε από 1 έως 3 relay. - Relay Εισερχόμενων DM - Ο χρήστης λαμβάνει DM σε αυτά τα relay - Εισάγετε από 1 έως 3 relay ως ιδιωτικό σας εισερχόμενο. Άλλοι θα χρησιμοποιούν αυτά τα relay για να σας στέλνουν DM. Τα relay εισερχόμενων DM θα πρέπει να δέχονται οποιοδήποτε μήνυμα από οποιονδήποτε, αλλά να επιτρέπουν μόνο σε εσάς να τα κατεβάζετε. Καλές επιλογές είναι:\n - inbox.nostr.wine (επί πληρωμή)\n - auth.nostr1.com (δωρεάν)\n - you.nostr1.com (προσωπικά relay - επί πληρωμή) - Relay KeyPackage - Relay όπου δημοσιεύονται τα MLS KeyPackages σας (MIP-00). Άλλοι χρήστες ανακτούν αυτά τα KeyPackages για να σας προσκαλέσουν σε ομαδικές συνομιλίες Marmot. Εισάγετε από 1 έως 3 relay που δέχονται συμβάντα KeyPackage από εσάς και επιτρέπουν δημόσιες αναγνώσεις. - Ιδιωτικά Relay Αρχικής - Εισάγετε από 1 έως 3 relay για αποθήκευση συμβάντων που δεν μπορεί να δει κανείς άλλος, όπως τα Πρόχειρά σας και/ή οι ρυθμίσεις εφαρμογής. Ιδανικά, αυτά τα relay είναι είτε τοπικά είτε απαιτούν πιστοποίηση πριν την λήψη του περιεχομένου κάθε χρήστη. - Συνδεδεμένα Relay - Τρέχουσα λίστα relay που χρησιμοποιούνται - Relay Αναζήτησης - Λίστα relay για χρήση κατά την αναζήτηση περιεχομένου ή χρηστών. Η επισήμανση και η αναζήτηση δεν θα λειτουργούν εάν δεν υπάρχουν διαθέσιμες επιλογές. Βεβαιωθείτε ότι υλοποιούν NIP-50. - Τοπικά Relay - Λίστα relay που εκτελούνται σε αυτήν τη συσκευή. - Προώθηση προφίλ σε τοπικό relay - Αποστολή όλων των ληφθέντων συμβάντων προφίλ (kind 0) στο τοπικό σας relay - Αξιόπιστα Relay - Relay που εμπιστεύεστε και δεν χρειάζονται σύνδεση Tor - Αγαπημένες Τροφοδοσίες Relay - Relay που επισκέπτεστε συχνά για να δείτε την Παγκόσμια τροφοδοσία τους - Relay Διαμεσολαβητή - Relay συγκεντρωτές που η εφαρμογή πρέπει να χρησιμοποιεί για να κατεβάσει τις τροφοδοσίες σας, όπως filter.nostr.wine. Αυτό αντικαθιστά το μοντέλο outbox και θα κάνει την εφαρμογή να συνδέεται μόνο στα relay στις λίστες σας. - Relay Μετάδοσης - Relay που ειδικεύονται στην προώθηση των σημειώσεών σας σε όλα τα άλλα relay, όπως sendit.nosflare.com. Το Amethyst θα προσθέτει αυτό το relay σε όλα τα νέα συμβάντα που δημιουργείτε - Relay Ευρετηρίου - Relay που ειδικεύονται στη φιλοξενία μεταδεδομένων και λιστών relay όλων, όπως purplepag.es. Το Amethyst θα χρησιμοποιεί αυτά τα relay για να βρει χρήστες που δεν βρίσκονται στις λίστες σας. - Αποκλεισμένα Relay - Το Amethyst δεν θα συνδέεται ποτέ σε αυτά τα relay - Εξαγωγή ρυθμίσεων relay Ιστός: Επισκόπηση Σχετικά Σύνδεσμοι Συντηρητές Θέματα - Απόδειξη Χρονοσήμανσης - Υπάρχει απόδειξη ότι αυτή η ανάρτηση υπογράφηκε κάποτε πριν από %1$s. Η απόδειξη σφραγίστηκε στο blockchain του Bitcoin σε εκείνη την ημερομηνία και ώρα. - Επεξεργασία Ανάρτησης - Δεν είναι δυνατή η απάντηση σε πρόχειρη σημείωση - Δεν είναι δυνατή η παράθεση πρόχειρης σημείωσης - Δεν είναι δυνατή η αντίδραση σε πρόχειρη σημείωση - Δεν είναι δυνατό το zap σε πρόχειρη σημείωση - Πρόχειρη Σημείωση - Bad Request - Ο διακομιστής δεν μπορεί ή δεν θέλει να επεξεργαστεί το αίτημα. - Unauthorized - Ο χρήστης δεν διαθέτει έγκυρα διαπιστευτήρια πιστοποίησης - Payment Required - Ο διακομιστής απαιτεί πληρωμή για να ολοκληρώσει το αίτημα - Forbidden - Ο χρήστης δεν έχει δικαιώματα πρόσβασης για να κάνει το αίτημα - Not Found - Ο διακομιστής δεν μπορεί να βρει τη ζητούμενη διεύθυνση - Method Not Allowed - Ο διακομιστής υποστηρίζει τη μέθοδο αιτήματος, αλλά όχι για τον συγκεκριμένο πόρο - Not Acceptable - Ο διακομιστής δεν βρίσκει περιεχόμενο που να ικανοποιεί το αίτημα. - Proxy Authentication Required - Ο χρήστης δεν διαθέτει έγκυρα διαπιστευτήρια πιστοποίησης - Request Timeout - Ο διακομιστής έληξε περιμένοντας κάποιον άλλο - Conflict - Ο διακομιστής δεν μπορεί να εκπληρώσει το αίτημα λόγω σύγκρουσης με τον πόρο - Gone - Το ζητούμενο περιεχόμενο έχει διαγραφεί μόνιμα από τον διακομιστή και δεν θα αποκατασταθεί - Length Required - Ο διακομιστής απορρίπτει το αίτημα επειδή απαιτεί ορισμένο μήκος - Precondition Failed - Οι προϋποθέσεις του αιτήματος στα πεδία κεφαλίδας που ο διακομιστής αδυνατεί να εκπληρώσει - Payload Too Large - Το αίτημα είναι μεγαλύτερο από τα καθορισμένα όρια του διακομιστή και ο διακομιστής αρνείται να το επεξεργαστεί - URI Too Long - Η url που ζητά ο πελάτης είναι πολύ μεγάλη για να την επεξεργαστεί ο διακομιστής. - Unsupported Media Type - Το αίτημα χρησιμοποιεί μορφή πολυμέσων που δεν υποστηρίζει ο διακομιστής - Range Not Satisfiable - Ο διακομιστής δεν μπορεί να εκπληρώσει την τιμή που υποδεικνύεται στο πεδίο κεφαλίδας Range του αιτήματος. - Expectation Failed - Ο διακομιστής δεν μπορεί να εκπληρώσει τις απαιτήσεις που υποδεικνύονται από το πεδίο κεφαλίδας Expect - Upgrade Required - Ο διακομιστής αρνείται να επεξεργαστεί το αίτημα χρησιμοποιώντας το τρέχον πρωτόκολλο εκτός εάν ο πελάτης αναβαθμίσει σε διαφορετικό πρωτόκολλο. - Internal Server Error - Ο διακομιστής αντιμετώπισε απροσδόκητο σφάλμα και δεν μπορεί να ολοκληρώσει το αίτημα - Not Implemented - Ο διακομιστής δεν μπορεί να εκπληρώσει το αίτημα ή δεν αναγνωρίζει τη μέθοδο αιτήματος - Bad Gateway - Ο διακομιστής λειτουργεί ως πύλη και έλαβε μη έγκυρη απάντηση από τον κεντρικό υπολογιστή - Service Unavailable - Αυτό συμβαίνει συχνά όταν ένας διακομιστής είναι υπερφορτωμένος ή εκτός λειτουργίας για συντήρηση - Gateway Timeout - Ο διακομιστής λειτουργούσε ως πύλη ή διαμεσολαβητής και έληξε ο χρόνος αναμονής για απάντηση - HTTP Version Not Supported - Ο διακομιστής δεν υποστηρίζει την έκδοση HTTP στο αίτημα - Variant Also Negotiates - Ο διακομιστής έχει εσωτερικό σφάλμα ρύθμισης - Insufficient Storage - Ο διακομιστής δεν έχει αρκετό χώρο αποθήκευσης για να επεξεργαστεί το αίτημα με επιτυχία - Loop Detected - Ο διακομιστής ανιχνεύει άπειρο βρόχο κατά την επεξεργασία του αιτήματος - Network Authentication Required - Ο πελάτης πρέπει να πιστοποιηθεί για πρόσβαση στο δίκτυο Διακομιστές Blossom Προσθέστε όσους διακομιστές θέλετε. Μπορείτε να επιλέξετε ποιον θα χρησιμοποιήσετε αργότερα κατά τη μεταφόρτωση της εικόνας σας - Προσθήκη Διακομιστή NIP-96 - Προσθήκη Διακομιστή Blossom Λήψη - Αποτυχία ανοίγματος αρχείου - Δεν υπάρχουν εγκατεστημένες εφαρμογές torrent για άνοιγμα και λήψη του αρχείου. - Το συμβάν δεν έχει αρκετές πληροφορίες για τη δημιουργία συνδέσμου magnet - Οι Λίστες Μου - Τροφοδοσίες - Σύνολα Ενδιαφερόντων - Τοποθεσίες - Κοινότητες - Λίστες - Αλγόριθμοι Τροφοδοσίας - Όλοι οι αγαπημένοι αλγόριθμοι τροφοδοσίας - Relay - Αγαπημένοι Αλγόριθμοι Τροφοδοσίας - Ιδιωτικό Μήνυμα - Δημόσιο Μήνυμα - Αδυναμία κοινοποίησης εικόνας, δοκιμάστε ξανά αργότερα… - Αδυναμία κοινοποίησης βίντεο, δοκιμάστε ξανά αργότερα… - Λήψη βίντεο… - Να μην μεταφραστεί από - Οι γλώσσες που εμφανίζονται εδώ δεν θα μεταφραστούν. Επιλέξτε μια γλώσσα για να την αφαιρέσετε και να μεταφραστεί ξανά. - Μετάφραση σε - Επιλέξτε τη γλώσσα στην οποία θα μεταφράζεται το περιεχόμενο. - Προτιμήσεις εμφάνισης γλώσσας - Για κάθε ζεύγος μεταφρασμένης γλώσσας, επιλέξτε ποια γλώσσα θα εμφανίζεται πρώτη. - Παύση - Αναπαραγωγή - Αυτό το μήνυμα θα εξαφανιστεί σε %1$s - Μεταδεδομένα λίστας ακολουθίας - Τα μεταδεδομένα λίστας ακολουθίας είναι ορατά από οποιονδήποτε στο Nostr. Μόνο τα ιδιωτικά σας μέλη είναι κρυπτογραφημένα. - Μεταδεδομένα Follow Pack - Τα μεταδεδομένα του Follow Pack είναι ορατά από οποιονδήποτε στο Nostr και δημοσιεύονται συχνά σε πολλές ιστοσελίδες ως πακέτα εκκίνησης για νέους χρήστες. - Επεξεργασία Follow Pack - Ανάπτυξη - Επανάληψη - Αντίδραση - Φωνητική ανάρτηση - Φωνητική απάντηση - Εφαρμογές - Προτάσεις εφαρμογών - Ρυθμίσεις χρήστη - Κεφαλίδα ήχου - Κομμάτι ήχου - Μουσικό κομμάτι - Μουσική λίστα αναπαραγωγής - Επεισόδιο podcast - Εκπομπή podcast - Δημιουργημένα podcasts - Αγαπημένα podcasts - Απονομές διακριτικών - Ορισμοί διακριτικών - Αποδεκτό σύνολο διακριτικών - Διακριτικά προφίλ - Αποκλεισμένα Relays - Relays μετάδοσης - Λίστα σελιδοδεικτών - Παλαιά λίστα σελιδοδεικτών - Ημερήσιο ραντεβού - Ημερολόγιο - Ραντεβού - RSVP ραντεβού - Παιχνίδια σκακιού - Αγαπημένα Relays - Προκλήσεις σκακιού - Αποδοχή παιχνιδιού σκακιού - Κίνηση σκακιού - Τέλος παιχνιδιού σκακιού - Προσφορά ισοπαλίας σκακιού - Ορισμός καναλιού - Απόκρυψη μηνύματος καναλιού - Λίστα καναλιών - Μήνυμα καναλιού - Μεταδεδομένα καναλιού - Σίγαση χρήστη καναλιού - Αρχείο DM - Μήνυμα DM - Relays DM - Αγγελίες - Σχόλια - Ορισμός κοινότητας - Λίστα κοινοτήτων - Ανάρτηση κοινότητας - Διαγραφές - Πρόχειρα - Πακέτα emoji - Λίστα πακέτων emoji - Εφήμερη συνομιλία - Εφήμερες αίθουσες συνομιλίας - Κεφαλίδες αρχείων - Γκαλερί προφίλ - Διακομιστές αρχείων - Δεδομένα Blob - Κεφαλίδες Blob - Ιατρικά δεδομένα - Αναδημοσιεύσεις (16) - Ακολουθίες Geohash - Στόχοι Zap - Ακολουθίες Hashtag - Επισημάνσεις - Λίστα Index Relay - Πρόλογος περιπέτειας - Σκηνή περιπέτειας - Ανάγνωση περιπέτειας - Ονομαστοί σελιδοδείκτες - Ζωντανές συνομιλίες - Ζωντανές μεταδόσεις - Ιδιωτικά Zaps - Αίτημα Zap - Αίθουσα συνεδρίων - Παρουσία στο δωμάτιο - Χώρος συνεδρίων - Προφίλ - Λίστα σίγασης - Λίστες Ατόμων - Εικόνες - Προπονήσεις - Καρφιτσωμένα - Δημοσκόπηση Zap - Δημοσκόπηση - Απάντηση Δημοσκόπησης - Ιδιωτικά Relays - Δημόσιο Μήνυμα - Αντιδράσεις - Κάρτα Επαφής - Ανακάλυψη Relay - Ανακοίνωση Παρακολούθησης Relay - Σύνολο Relay - Αναφορές - Αναδημοσιεύσεις - Διαγραφή Χρήστη - Σφραγίδες - Relays Αναζήτησης - Κατάσταση Χρήστη - Σημειώσεις - Επεξεργασίες - Σχόλια Torrent - Αξιόπιστα Relays - Αξιόπιστοι Πάροχοι - Βίντεο (Repl) - Βίντεο - Φωνητικό Μήνυμα - Φωνητική Απάντηση - Σελιδοδείκτης Ιστού - %1$d%% λειτουργία - Ρυθμίσεις Namecoin - Συγχρονισμός Relay - Εξερευνητής Bitcoin (OTS) - συμβάντα από εσάς - συμβάντα προς εσάς - αναζητήσιμα συμβάντα - προφίλ - λίστες εξερχόμενων - Τελευταία εμφάνιση %1$s πριν - Τελευταία εμφάνιση στις %1$s (%2$s πριν) - Μόλις τώρα - Δεν εμφανίστηκε ποτέ - - %1$d λεπτό - %1$d λεπτά - - - %1$d ώρα - %1$d ώρες - - - %1$d ημέρα - %1$d ημέρες - - - %1$d εβδομάδα - %1$d εβδομάδες - - - %1$d μήνας - %1$d μήνες - - - %1$d χρόνος - %1$d χρόνια - - - %1$d εκκρεμής τιμολόγιο - %1$d εκκρεμή τιμολόγια - - - Κεφάλαια σε %1$d mint που δεν χρησιμοποιείτε - Κεφάλαια σε %1$d mints που δεν χρησιμοποιείτε - - Μεταφέρθηκαν %1$s sat στο %2$s. - Μετάδοση σε συσκευή - Διακοπή μετάδοσης - Μεταφόρτωση HLS - Μεταφόρτωση %1$s (%2$d από %3$d) - Πιστοποίηση - Αίτηση Πιστοποίησης - Σύσταση Πιστοποιητή - Επάρκεια Πιστοποιητή - Σελιδοδείκτες Ιστού - Προσθήκη Σελιδοδείκτη Ιστού - Επεξεργασία Σελιδοδείκτη Ιστού - %1$s χρηματοδοτήθηκαν από στόχο %2$s sats - Νέος Στόχος - Αίτηση Εξαφάνισης - Στάλθηκε αίτηση εξαφάνισης - Ιστορικό Εξαφάνισης - Χρήστες - Συμβάντα - Ρυθμίσεις - Πρόταση βελτιώσεων κειμένου - Χρησιμοποιεί ένα τοπικό μοντέλο AI για να προτείνει διορθώσεις κειμένου και αλλαγές τόνου. - Παρακολουθούμενες μεταδόσεις - Χρήση του παρακολουθούμενου αναμεταδότη κατά την αποστολή συμβάντων. Εμφανίζει ζωντανή πρόοδο και κατάσταση ανά relay κατά τη μετάδοση. - Πρόταση προπονήσεων για κοινοποίηση - Διαβάζει ολοκληρωμένες προπονήσεις από το Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) και προτείνει να τις κοινοποιήσετε ως ανάρτηση. Η άδεια ζητείται μόνο κατά τη σύνδεση. - Ρυθμίσεις Σύνταξης - Αυτόματη δημιουργία προχείρων - Αποθηκεύει αυτόματα ένα προχείρο συμβάν όταν πληκτρολογείτε ή εγκαταλείπετε ένα παράθυρο σύνταξης με μη αποσταλμένο κείμενο και το αποστέλλει στα ιδιωτικά outbox relay σας. - Νέο πακέτο emoji - Επεξεργασία πακέτου emoji - Τα Πακέτα Emoji Μου - Emoji - Τα δημόσια emoji είναι ορατά σε όλους και εμφανίζονται στο μενού αντιδράσεών σας και στον επιλογέα αυτόματης συμπλήρωσης \":\" όταν αυτό το πακέτο βρίσκεται στη λίστα emoji σας. - Τα ιδιωτικά emoji αποθηκεύονται κρυπτογραφημένα στα relay και είναι ορατά μόνο σε εσάς. Εμφανίζονται στο μενού αντιδράσεών σας και στην αυτόματη συμπλήρωση \":\" όπως τα δημόσια. - Το προχείρο είναι %1$d bytes· αυτή η κοινότητα περιορίζει αυτόν τον τύπο στα %2$d bytes. - Το προχείρο είναι %1$d bytes· αυτή η κοινότητα περιορίζει τα συμβάντα στα %2$d bytes. - Έχετε ήδη δημοσιεύσει %1$d συμβάντα αυτού του τύπου σήμερα (όριο %2$d). - Ιστότοπος Nowhere - Συμβάν Nowhere - Εκστρατεία Χρηματοδότησης Nowhere - Κατάστημα Nowhere - Αναφορά Nowhere - Μήνυμα Nowhere - Drop Nowhere - Τέχνη Nowhere - Φόρουμ Nowhere - - %1$d μήνυμα - %1$d μηνύματα - - - %1$d μέλος - %1$d μέλη - - Οι πληροφορίες ομάδας ενημερώθηκαν - Αποτυχία ενημέρωσης: %1$s - Αποτυχία δημιουργίας ομάδας: %1$s - Αποτυχία αποχώρησης από ομάδα: %1$s - Προσθήκη %1$s… - Αποτυχία προσθήκης %1$s: %2$s - άγνωστο σφάλμα - Το μέλος αφαιρέθηκε - Αποτυχία αφαίρεσης μέλους: %1$s - Τα δικαιώματα διαχειριστή παραχωρήθηκαν - Αποτυχία παραχώρησης δικαιωμάτων διαχειριστή: %1$s - Τα δικαιώματα διαχειριστή ανακλήθηκαν - Αποτυχία ανάκλησης δικαιωμάτων διαχειριστή: %1$s - Δεν είστε μέλος αυτής της ομάδας Η υπηρεσία Lightning του αποδέκτη στο %1$s δεν είναι διαθέσιμη. Υπολογίστηκε από τη διεύθυνση Lightning \"%2$s\". Σφάλμα: %3$s. Ελέγξτε αν ο διακομιστής λειτουργεί και αν η διεύθυνση Lightning είναι σωστή Δεν ήταν δυνατή η επίλυση %1$s. Ελέγξτε αν είστε συνδεδεμένοι, αν ο διακομιστής λειτουργεί και αν η διεύθυνση Lightning %2$s είναι σωστή.\n\nΗ εξαίρεση ήταν: %3$s Σφάλμα ανάλυσης JSON από την ανάκτηση τιμολογίου του %1$s. Ελέγξτε τη ρύθμιση Lightning του χρήστη diff --git a/amethyst/src/main/res/values-eo-rUY/strings.xml b/amethyst/src/main/res/values-eo-rUY/strings.xml index ac838a9903..eef6b2a137 100644 --- a/amethyst/src/main/res/values-eo-rUY/strings.xml +++ b/amethyst/src/main/res/values-eo-rUY/strings.xml @@ -1,116 +1,12 @@ - - Ĉi tiu afiŝo havas pli ol %1$d kromnomon - Ĉi tiu afiŝo havas pli ol %1$d kromnomojn - - - %1$d aktivo enkludita - %1$d aktivoj enkluditaj - - - +%1$d\nrespondo - +%1$d\nrespondoj - - Spamo - La nombro da spamaj eventoj venantaj de tiu ĉi relay - Personigo - Kontraŭleĝa Konduto - Peti Forigon - Ensaluti per sekreta ŝlosilo por respondi - Ensaluti per sekreta ŝlosilo por impulsi afiŝojn - Ensaluti per sekreta ŝlosilo por ŝati afiŝojn - Neniu kvanto da zapoj agordita. Longe premi por ŝanĝigi - Ensaluti per sekreta ŝlosilo por sendi zapojn - Ensalutu per sekreta ŝlosilo por sekvi - Ensalutu per sekreta ŝlosilo por malsekvi - Vi uzas publikan ŝlosilon kaj publikaj ŝlosiloj estas nur-legitaj. Ensalutu per Privata ŝlosilo por povi kaŝi vorton aŭ frazon - Vi uzas publikan ŝlosilon kaj publikaj ŝlosiloj estas nur-legitaj. Ensalutu per Privata ŝlosilo por povi montri vorton aŭ frazon - Vi uzas publikan ŝlosilon kaj publikaj ŝlosiloj estas nur-legitaj. Ensalutu per Privata ŝlosilo por povi alŝuti - Vi uzas publikan ŝlosilon kaj publikaj ŝlosiloj estas nur-legitaj. Ensalutu per Privata ŝlosilo por povi subskribi eventojn - Neaŭtorizita Malĉifrado - La subskribanto ne aŭtorizis malĉifradon kiu estas necesa por plenumi tiun ĉi operacion. Aktivigu NIP-44 malĉifradojn en via subskribanta app kaj provu denove - Subskribanto ne trovita - Ĉu la Subskribanta app estis malinstalita? Kontrolu ĉu la subskribanto estas instalita kaj havas tiun ĉi konton. Elsalutu kaj ensalutu denove se la subskribanta app ŝanĝiĝis. - La ekstera subskribanto resendis utilan ŝarĝon kiu estas stranga por la peto. Povas ekzisti eraro en Amethyst aŭ en la Subskribanto. - Zapoj - Plifortigi impulsita redakto #%1$s - Proponi Redakton - Aldoni - Eraro analizante de erara mesaĝo - Profilo - Sekurecaj Filtriloj - Petante fakturo… - La debita servo ne kompletigis la pagon. - Pagi %1$s per %2$s? - Pagi tiun ĉi fakturon per %1$s? - Enigu validan sumon por tiu ĉi oferto. - Unufoja - Ĉiutaga - Ĉiusemajna - Ĉiumonata - Pagi - Pagante per %1$s… - Pago malsukcesis - Elspendebla por tiu ĉi ricevanto: %1$s sats - Transakcio: %1$s - "Antaŭrigardi Bildon de %1$s" - Priskribo - Kion vi pensas? - Skribi mesaĝon… - Afiŝi Konservi - Sendi - Krei Renomi - Nuligi - Eraro - Eraroj - Procento de sukcesaj konektoj al la relay - Konservi al Telefono - Bildo konservita al la galerio - Videa elŝuto komenciĝis… - Amaskomunikila elŝuto komenciĝis… - Alpingli supren - Malpingli - Malsukcesis konservi la bildon - Video konservita en la telefona videogalerio - Malsukcesis konservi la videon - PDF konservita en Elŝutoj/Amethyst - Malsukcesis konservi la PDF - Neniu fotila app trovita sur tiu ĉi aparato - Alklaku kaj tenu por registri mesaĝon - Alŝuta Eraro - Malsukcesis alŝuti voĉan mesaĝon - NIP-95 ankoraŭ ne estas subtenata por voĉaj mesaĝoj - Voĉa alŝuto malsukcesis: %1$s - Neniu - Profunda - Alta - Neŭtrala - Uzanto ne havas lightning-adreson por ricevi satojn - "respondi ĉi tie… " - Konataj - Novaj Petoj - Blokitaj Uzantoj - Novaj Fadenoj - Konversacioj - Pli da Opcioj - Montri privatan ŝlosilon QR-kode - Montri ĉifritan privatan ŝlosilon QR-kode - Sekvi - Sekvi reen - Kaŝi Pasvorton - Nevalida ŝlosilo - Nevalida ŝlosilo: %1$s - Pasvorto estas necesa - Ŝlosilo estas nepra - Nomo estas necesa @@ -119,158 +15,7 @@ Nova babileja profilo: - Eliri - Malsekvi - Malapera Babilejo - Relay-Babilejo - Relay-Babilejaroj - Relay-babilejoj estas babilaj grupoj kontrolataj de sia hejma relay. - Ili estas videblaj al ĉiuj en Nostr kaj ĉiu ajn povas partopreni en ili. - Ili estas bonegaj por malfermitaj komunumoj pri specifaj temoj. Kelkaj el ĉi tiuj grupoj estas efemeraj - kaj tial babilmesaĝoj malaperas kun la tempo - Publika Babilado - MLS-Grupo - Publikaj Babilejaj Metadatenoj - Publikaj babilejoj estas videblaj al ĉiuj en Nostr kaj ĉiu ajn - povas partopreni en ili. Ili estas bonegaj por malfermitaj komunumoj pri specifaj temoj. - Moderado povas esti kontrolata per forigo de afiŝoj sur siaj relays - Relay-oj - Enigu inter 1–3 relays, kiuj gastigas ĉi tiun grupon. - Nostr-klientoj uzas ĉi tiun agordon por scii, kie elŝuti mesaĝojn kaj kien sendi viajn mesaĝojn. - Forigi - neniam - nun - t - Nudeco - Blasfemo / Malama Parolado - Sekurkopii Ŝlosilojn - Malsukcesis ĉifri vian privatan ŝlosilon - Sekreta ŝlosilo (nsec) kopiita al tondujo - Kopii mian sekretan ŝlosilon - Aŭtentikigo malsukcesis - Biometriko malsukcesis aŭtentikigi la posedanton de tiu ĉi telefono - Biometriko malsukcesis aŭtentikigi la posedanton de tiu ĉi telefono. Eraro: %1$s - Kopiita tekston de noto al tondujo - Kopiita @npub de aŭtoro al tondujo - Kopiita ID de noto (@note1) al tondujo - "<Privata mesaĝo nemalĉifrebla.>\n\nVi estis citita en privata konversacio inter %1$s kaj %2$s." - Kontoj - Navigi - Vi - Fluoj - Krei - Sistemo - Malantaŭen - Kunhavigi Ligilon - Kunhavigi - Kunhavigi kiel Bildon - Kunhavigi kiel Bildan URL - ID de Noto - Forigi - Silentigi fadenon - Malsilentigi fadenon - - Bloki - Legosignoj - Legosignoj sukcese migritaj - Skizoj - Planitaj afiŝoj - Plani afiŝon - Nuligi planon - Planitaj afiŝoj eble ne publikiĝos ĝis vi poste remalfernas la app-on. Ŝaltu ĉiam-ŝaltitan en Agordoj → Interfacaj Preferoj por fidinda fona planado. - Planitaj afiŝoj eble ne publikiĝos ĝis vi remalfernas la app-on. La planitaj afiŝoj de aliaj kontoj ne ekiĝos dum tiu ĉi konto estas aktiva. Ŝaltu ĉiam-ŝaltitan en Agordoj → Interfacaj Preferoj por fidinda fona planado. - %1$s · post %2$s - %1$s · antaŭ %2$s - Morgaŭ - Elsalutita - - Elsalutita · %d planita afiŝo forigita - Elsalutita · %d planitaj afiŝoj forigitaj - - Planita afiŝo publikigita - Planita afiŝo malsukcesis - Planitaj afiŝoj - Sciigoj kiam planita afiŝo estas publikigita aŭ malsukcesas publikiĝi. - Sendi nun - Eraro: %1$s - Planita - Sendante… - Malsukcesis - Sendita - Nuligita - - Vi havas %d planitan afiŝon, kiu ankoraŭ ne estis publikigita. Elsalutado permanente forigos ĝin. - Vi havas %d planitajn afiŝojn, kiuj ankoraŭ ne estis publikigitaj. Elsalutado permanente forigos ilin. - - - %d en atendovico - %d en atendovico - - - · %d sendenda en 1h - · %d sendendan en 1h - - - al %d relay - al %d relays - - Noto-ID kopiita - Balotadoj - Malfermitaj - Fermitaj - Insignoj - Komunumoj - Nova Komunumo - Redakti Komunumon - Moderantoj - Relay-oj - Kontroleblaj reguloj (laŭvole) - Permesitaj eventaj specoj - Mallonga teksto (1) - Longforma artikolo (30023) - Bildafiŝo (20) - Videoafiŝo (21) - Mallonga video (22) - Komunuma komento (1111) - Malpermesitaj uzantoj - Fid-reto pordego (laŭvole) - Ĝenerala maksimuma evento-grandeco (laŭvole) - Nova Insigono - Premiumi Insignon - Profilaj insignoj - Bildoj - Ekzercadoj - Nova Ekzercado - Kurado - Promeno - Biciklado - Tura marŝado - Naĝado - Remado - Fortekzercado - Jogo - Meditado - Dieto - Fastado - Cirkvito - Aplikoj Aplikoj - nApplet-oj - nSite-oj - Retumilo - Ŝargante per Tor. Klaku por uzi la malferma reton. - Ŝargante per la malferma reto. Klaku por uzi Tor. - Plej ŝatataj - Plej ŝatataj aplikoj - Aldoni al plej ŝatataj - Forigi el plej ŝatataj - Ŝargas per Tor. - Ŝargas per la malferma reto. - Publikigita al relay-oj - Alŝutita dosiero - Faris pagon - Tiu aplikaĵo ankoraŭ ne estas ŝargita. Reprovu post momento. - Lastaj nApplet-aj permesoj Ankoraŭ neniuj nApplet-aj permesoj Permesoj kiujn vi donas al nApplet-oj aperos ĉi tie. @@ -280,46 +25,11 @@ Ŝelo - Identeco - Klavarago - Relay-oj - Stokado - Pagoj - Reto - Alŝutoj Demandi kiuj kapabloj estas disponeblaj - Legi vian publikan ŝlosilon - Ligi klavarpremaĵojn - Legi, subskribi & publikigi viajn eventojn - Sia propra privata stokado - Pagi Lightning-fakturojn - Alporti retajn kaj Blossom-rimedojn - Alŝuti dosierojn al via amaskomunikilara servilo - Temo - Sciigoj - Mesaĝado - Kongrui kun la koloroj de via aplikaĵo - Montri al vi sciigojn - Interŝanĝi mesaĝojn kun aliaj napplet-oj Kapablo: %1$s - Ĉi tiu nApplet volas legi vian publikan ŝlosilon. - Ĉi tiu nApplet volas legi vian profilon kaj kontodatenojn. - Ĉi tiu nApplet volas subskribi kaj publikigi specon %1$d eventon kiel vi. - Ĉi tiu nApplet volas subskribi kaj publikigi specon %1$d eventon kiel vi: - Ĉi tiu nApplet volas sendi ĉifritan eventon kiel vi. - Ĉi tiu nApplet volas legi eventojn el viaj relay-oj. - Ĉi tiu nApplet volas uzi sian privatan stokadan lokon. Ĉi tiu nApplet volas pagi Lightning-fakturon. - Ĉi tiu nApplet volas alporti retan rimedon. - Ĉi tiu nApplet volas alŝuti dosieron al via amaskomunikilara servilo. - Ĉi tiu nApplet volas montri al vi sciigojn. - Ĉi tiu retejo volas subskribi specon %1$d eventon per via Nostr-ŝlosilo. - - Ĉi tiu nApplet volas pagi Lightning-fakturon por %1$d sat. - Ĉi tiu nApplet volas pagi Lightning-fakturon por %1$d sats. - - Mallongaj videoj - Publikaj Babilejoj - Sekvopakaj - Rekta dissendo - Levi manon - Malaltigi manon - Silentigi - Malsilentigi - Ne povis sendi mesaĝon - Silentigi mikrofonon - Masilentigi mikrofonon - Nestoj - Konservas aŭdion luданте dum ĉambro estas malfermita. - Nesto konektita - Nesto — Viva - Tuŝetu por reveni. - Halti - levis sian manon - supreniris scenen - parolas - aliĝis kiel spektanto - forlasis la neston - Forlasi - Ne povis marki ĉambron kiel fermitan. Forlasante tamen — ĉambro aŭtomate fermiĝos. - - %1$d aŭskultanto - %1$d aŭskultantoj - - Silentigi ĉi tiun parolanton - Restarigi ĉi tiun parolanton - Sekvi - Malekvi - Silentigi - Masilentigi - Ne povis konservi vian nestan servilan liston. Provu denove. - Nestaj serviloj - Viaj serviloj - Konservita kiel kind-10112 anstataŭebla evento por ke aliaj klientoj povu legi vian preferon. - Rekomenditaj serviloj - Enkonstruitaj sugestoj kiujn vi povas aldoni al via listo per unu tuŝeto. - Videoj - Muziko - Ludlistoj - Epizodoj - Podkastoj - - %1$d epizodo - %1$d epizodoj - - Nova muzika peco - Nova ludlisto - - %1$d trako - %1$d trakoj - - Aldoni al Publikaj Legosignoj - Forigi el Publikaj Legosignoj - Alpingli al profilo - Malalpingli el profilo - Nova signolibra listo - Metadatenoj de signolibra listo - Kradelvorta aroj - Nova interesa aro - Renomi - Fari privata: donaci la noton nur al sciigitaj uzantoj - Fari publika - Respondoj al privata noto ĉiam restas privataj - Videbla al Ankoraŭ neniuj ricevantoj: nur vi povos vidi ĉi tiun noton. Aldonu personojn por kunhavigi ĝin. Aldoni Forigi uzanton el sciigoj Serĉi kaj aldoni uzanton por sciigi - Metadatenoj de signolibraj listoj povas esti viditaj de ĉiu sur Nostr. Nur viaj privataj membroj estas ĉifritaj. - Movi al publika - Movi al privata - Ŝargi & sendi Zap - Sendi Zap - Ŝargi %1$s sats al %2$s kaj Zap-i %3$s %4$s sats · kotizo ≈ %5$s sats - Elekto %s - (0–100)% - Ununura elekto - Multobla elekto - Ne eblas voĉdoni - Balotenketo estas fermita al novaj voĉoj - Nur po unu voĉdono por uzanto estas permesita en ĉi tia enketo - Aŭtoroj de Enketoj ne povas voĉdoni en siajn proprajn enketojn. - Kion tio signifas? - Ĉi tiu enhavo estas la sama ĝis la afiŝo - Ĉi tiu enhavo ŝanĝiĝis. La aŭtoro eble ne vidis aŭ jesis la ŝanĝo - Aldoni Amaskomunikilaron - Aldoni Bildon - Aldoni Videon - Aldoni Dokumenton - Dosiera Servilo - Elektu servilon por alŝuti tiun ĉi dosieron - Amaskomunikilaj Serviloj Agordu viajn preferatajn amaskomunikilajn alŝutservilojn. Rekomenditaj Amaskomunikilaj Serviloj La defaŭlta listo de Amethyst. Vi povas aldoni ilin individue aŭ aldoni la liston. - Pagceloj - Aldonu pagadresojn por malsamaj retoj (ekz. bitcoin, lightning, ethereum). - Neniu aplikaĵo trovis por trakti tiun ĉi pagon. Bonvolu instali kongruan monujon. - Neniu aplikaĵo instalita por trakti %1$s-pagojn. Bonvolu instali kongruan monujon. - Ne eblas malfermi pagon - Privatecaj Opcioj - Ĉiuj Sekvoj - Ĉiuj Uzantaj Sekvoj - Defaŭlta Sekvlisto - Ĉirkaŭ Mi - Ĝenerala - Kuratita - Mia - Silentigolisto - Nova Sekvlisto - Nova Sekvpako - Redakti Liston - Defaŭlta pordo estas 9050 - Socks-Konektejo de Orbot - Aktiva Tor-Motoro - Uzu la internan version aŭ Orbot - Tor/Privatecaj Antaŭagordoj - Rapide modifi ĉiujn agordojn sube - Onion-URL/Relay-oj - Uzu Tor por iu ajn .onion-URL - DM Relay-oj - Devigi Tor por sendi kaj ricevi DM-ojn - Nefidataj Relay-oj - Devigi Tor sur elirejo/enirejaj relay-oj - Fidataj Relay-oj - Devigi Tor sur ĉiuj relay-oj en viaj listoj - Profilbildoj - Devigi Tor dum ŝargado de profilbildoj - URL-Antaŭrigardoj - Devigi Tor dum ŝargado de URL-antaŭrigardoj - Bildoj - Devigi Tor dum ŝargado de bildoj - Videoj - Devigi Tor dum ŝargado de videoj - Monaj Operacioj - Devigi Tor por zap-, lightning- kaj Cashu-transferoj - Nostr-Adresverifikado - Devigi Tor dum verifikado de NIP-05-adresoj - Amaskomunikilaj Alŝutoj - Devigi Tor dum alŝutado de enhavo - Interna - Malŝaltita - Baza - Defaŭlta - Ĉio krom Amaskomunikilaro - Plena Privateco - Persona - Uzu Tor kiam ĝi estas postulata de la servilo - Kaŝu vian IP de hazardaj relay-oj - Kaŝu vian IP de ĉio, krom bildoj kaj videoj - Kaŝu vian IP en ĉiuj konektoj - Faru la vian - Privataj Mesaĝoj - Sciigas vin kiam privata mesaĝo alvenas - Zapojn Ricevitaj - Sciigas vin kiam iu zapas vin - %1$s satoj - El %1$s - pro %1$s - Respondi - Marki kiel Legita - Novaj mesaĝoj - Novaj zap-oj - Reagoj - Sciigos vin kiam iu reagas al via afiŝo - %1$s reagis al via afiŝo - por %1$s - Novaj reagoj - Ŝako - Sciigos vin pri ŝakludaj eventoj - %1$s akceptis vian ŝakinviton - %1$s movis — via vico - Ŝakaj ĝisdatigoj - Respondoj - Sciigos vin kiam iu respondas al via afiŝo %1$s respondis pri: %1$s - Novaj respondoj - Mencioj - Sciigos vin kiam iu menciigas aŭ citas vin en afiŝo - %1$s menciis vin - Novaj mencioj @@ -548,36 +81,6 @@ - Alvenantaj alvokoj - Sciigoj por alvenantaj voĉaj kaj vidaj alvokoj - Alvenanta alvoko - Alvenanta voĉa alvoko… - Alvenanta vida alvoko… - Alvoko kun %1$s - Alvokoj - Sciigo pri daŭranta alvoko - Malkonekti - Akcepti - Rifuzi - Silentigi - Malsilentigi - Fotilo ŝaltita - Fotilo malŝaltita - Laŭtparolisto - Aŭskultiloo - Amethyst bezonas aliron al mikrofono por komenci voĉan alvokon. Bonvolu ebligi ĝin en la aplikaĵagordoj. - Amethyst bezonas aliron al fotilo kaj mikrofono por komenci vidan alvokon. Bonvolu ebligi ilin en la aplikaĵagordoj. - Alvokoagordoj - Konservas konektojn al viaj enirkestaj relay-oj aktivaj por realtempaj sciigoj - Amethyst-Sciigoj Aktivaj - - Konektita al %1$d enirkest-relay - Konektita al %1$d enirkest-relays - - - Konektita al %1$d relay - Konektita al %1$d relays - - Konektante al enirkestaj relay-oj… Ĉiam-aktiva sciigservico Konservas daŭrantan konekton al viaj enirkestaj relay-oj por tuja sciiglivero. Montras daŭrantan sciigon. Uzas pli da baterio sed certigas ke vi neniam maltrafas mesaĝon. - Dividi sciigojn laŭ Sekvoj - Montri du sciiglangetojn — Sekvataj (personoj kiujn vi sekvas) kaj Ĉiuj. La nelegita indikilo brilas nur por agado de personoj kiujn vi sekvas. - Montri Mesaĝojn - Inkluzivi rektajn kaj grupajn mesaĝojn en la Sciiga langeto. Malŝaltu por konservi mesaĝojn nur en la Mesaĝa langeto. - Sciigi: - Hodiaŭ - Kaŝi - Montri - Averti - Filtri spamon - Kaŝas afiŝojn de fremduloj kiuj estis ekzakte samaj 5 aŭ pli da fojoj - Aldoni klientan etikedon al miaj eventoj - Kiam ŝaltita, Amethyst aldonas NIP-89 klientan etikedon al eventoj kiujn vi publikigas. - Averti pri raportoj - Montras avermesaĝon kiam afiŝoj aŭ profiloj havas raportojn de viaj sekvatoj - Kaŝi afiŝojn kiuj malobservas komunumajn regulojn - Forigas afiŝojn el komunumaj feedoj kiam la komunumo publikigas NIP-9B-regulan dokumenton kaj evento ne plenumis ĝin. Neniu efiko kiam komunumo havas neniujn strukturitajn regulojn. - Filtraj preferoj - Blokita enhavo - Vi ankoraŭ ne blokis iujn uzantojn. - Neniuj kontoj estis flagitaj kiel spamo en tiu ĉi sesio. - Neniuj kaŝitaj vortoj. Aldonu vorton sube por kaŝi afiŝojn enhavantajn ĝin. - Neniaj reagoj selektitaj. Premu longe por ŝanĝi - Legi el plusendilo - Skribi al Plusendilo - La kvanto en bajtoj kiuj estis senditaj al tiu ĉi relay, inkluzive de filtriloj kaj eventoj - La kvanto en bajtoj kiuj estis ricevitaj de tiu ĉi relay, inkluzive de filtriloj kaj eventoj - Privateca Politiko - Infanprotektaj Normoj - Pri & Jura - Cashu Signo - Neniu Lightning-Adreso agordita - Plusendiloj - Sekvi-Pakaĵoj - Legaĵoj - Fluo-Algoritmoj - Merkato - Vivaj Transigoj - Komunumoj - Babilejoj - Delikata Enhavo - Aldonas averton de delikata enhavo antaŭ montri ĉi tiun enhavon - Interfaca Preferoj Aplikaĵaj Preferoj - Tradukoj - Reagoj - Agordoj - Kontaj Agordoj - Aplikaĵaj Agordoj - Danĝera Zono - Restarigi Marmot-Staton - Marmot-stato restarigita. - Malsukcesis restarigi Marmot-staton: %1$s - Ĉiam - Senmezura WiFi - Neniam - Kompleta - Simpligita - Rendimento - Klasika - Moderna - Sistemo - Hela - Malhela - Etoso - Antaŭrigardo de Bildo - Ludado de Video - Aŭtomata Videoludado - Antaŭrigardo de URL - Mergita Rulumado - Kaŝi Navigilajn Stangojn dum Rulumado - Interfaca Reĝimo - Elekti la afiŝostilo - Profila Galerio-Stilo - Elekti la galerio-stilon - Spamistoj - Silentigita. Alklaki por malsilentigi - Ŝalta sono. Alklaki por silentigi - Retroiri %d sekundojn - Antaŭiri %d sekundojn - Loko-ekskluziva Afiŝo - Nur sekvantoj de la loko vidos ĝin. Viaj ĝeneralaj sekvantoj ne vidos ĝin. - - %1$d trako - %1$d trakoj - - - +%1$d plia trako - +%1$d pliaj trakoj - - Alŝuti kovrilbildon - Elektu kvadratan bildon kiel arton por ĉi tiu peco. - Alŝuti aŭdian dosieron - Elektu MP3, WAV aŭ FLAC. Ĝi estos alŝutita al via amaskomunikilservilo ĉe Konservado. - Alŝutante kovrilon + aŭdion kaj eldonante. Ĉi tio daŭros eĉ se vi forlasas la ekranon. - Redakti ludumon - Alŝuti kovrilbildon - Elektu kvadratan bildon kiel arton por ĉi tiu ludomo. - Alŝutante kovrilon kaj eldonante. Ĉi tio daŭros eĉ se vi forlasas la ekranon. Publika Grupo Privata - Temo - Ne Eblas Alŝuti - Unue enigu la celon de la mesaĝo - Monujo ne trovita - Amethyst ne povis trovi ajnajn monujo-aplikojn, kiuj subtenas Nostr Wallet Connect (NWC). -\n\nKion vi povas fari: -\n\t1. Kontrolu NWC-subtenon: Duoble kontrolu, ĉu via preferata monujo-aplikaĵo estas kongrua kun Nostr Wallet Connect. -\n\t2. Krei Konekton: Iru al via monujo-aplikaĵo kaj kreu novan NWC-konekton. -\n\t3. Ligi al Amethyst: Via monujo kutime donos al vi tri opciojn: -\n\t\t3.1 Aŭtomata Ligo: Butono por aŭtomate malfermi kaj konekti al Amethyst. Se jes, alklaku tiun butonon, malfermu Amethyst kaj alklaku konservi sur la nova ekrano. -\n\t\t3.2 Mana Ligo: Konekta URI, kiun vi povas kopii kaj alklaki la algluu-ikonon sur ĉi tiu ekrano por rekte enigi ĝin. -\n\t\t3.3 QR-Kodo: La monujo kreas QR-kodon, kiun vi povas legi per la QR-koda butono sur ĉi tiu ekrano. - - Malhela, Hela aŭ Sistema Temo - Aŭtomate montri imaĝojn kaj GIFojn - Aŭtomate montri videojn kaj GIFojn - Aŭtomate ludi videojn kiam videblaj sur la ekrano - Montri antaŭrigardoj de URL - Kopii al poŝujo - Kopiita al poŝujo - Kunhavigi aŭ Konservi Sendi kiel DM - Amaskomunikiloj aldonitaj - Amaskomunikiloj aldonitaj al via Profila Galerio - Nekapable sendi zapon - Mankas fulma agordo - Uzanto %1$s ne havas Lightning-adreson agordita por ricevi sats - Eraro malfermi subskribistan aplikaĵon - La subskribista aplikaĵo ne povis esti trovita. Kontrolu ĉu la aplikaĵo ne estis malinstalita - Ne eblas ludi ĉi tiun videon - La kodeko aŭ formato ne estas subtenata sur ĉi tiu aparato (%1$s). Provu malfermi ĝin en via retumilo. - Malfermi en retumilo - Subskrib-peto rifuzita - Certigu ke la subskribista aplikaĵo aŭtoris ĉi tiun transakcion - Neniuj Monujoj trovitaj por pagi Lightning-fakturon (Eraro: %1$s). Bonvolu instali Lightning-monujon por uzi Zaps - Neniuj Monujoj trovitaj por pagi Lightning-fakturon. Bonvolu instali Lightning-monujon por uzi Zaps - Ne eblas malfermi Blossom-ligilojn - Blossom-aplikaĵoj ne trovitaj. Bonvolu instali lokan Blossom-aplikaĵon por vidi ĉi tiun dosieron - Kaŝitaj Vortoj - Silencigitaj fadenoj - Neniaj silencigitaj fadenoj - Profila Bildo - Montri Profilajn bildojn - Ne eblis pagi fakturon - Ne eblis retiri - Ne eblis elaĉeti Cashu - La monfarejo provizis la sekvan erarmesaĝon: %1$s - Cashu Ricevita - %1$s sats estis senditaj al via monujo. (Kotizoj: %2$s sats) - Neniu kongrua Cashu-monujo trovita sur sistemo - Ne eblas preni fakturon de la ricevanto\'s serviloj - Via Wallet Connect-provizanto resendis la sekvan eraron: %1$s - Ne eblis kunmeti LNUrl el Lightning-Adreso \"%1$s\". Kontrolu la agordon de la uzanto - Ne eblis preni fakturon de %1$s: %2$s - Eraro Analizante JSON de %1$s. Kontrolu la Lightning-agordon de la uzanto - Atgara URL ne trovita en la respondo de %1$s - Malĝusta faktura sumo (%1$s sats) de %2$s. Ĝi devus esti %3$s - Ne eblas krei Lightning-fakturon antaŭ sendi la Zap. La Lightning-monujo de la ricevanto sendis la sekvan eraron: %1$s - Nur-lega uzanto - Neniaj reagoj agordita - Sciigoj - Liverado - En-aplikaĵa montrado - Kategorioj - Mesaĝo de %1$s - Saluton %1$s, ĉu ĉi tio ankoraŭ disponeblas? - Vestaĵo - Akcesoraĵoj - Elektroniko - Mebloj - Kolektindaĵoj - Libroj - Hejmbestabloj - Sporto - Kondiĉtrejnado - Arto - Artizanaĵo - Hejmo - Oficejo - Manĝaĵo - Diversaĵoj - Alia - Malsukcesis alŝuti amaskomunikilojn - Ne eblis malfermi la kunpremitan dosieron - Alŝuta eraro: %1$s - La servilo ne provizis URL post alŝuto - Ne eblis elŝuti alŝutitan medion de la servilo - Ne eblis kontroli la elŝutitan dosieron post alŝuto: %1$s - Malsukcesis alŝuti al %1$s: %2$s - Malsukcesis forigi: %1$s - La medio estas tro granda por NIP-95 - Ĉifri dosierojn - Ĉifri dosierojn antaŭ alŝuto por privateco. Kelkaj serviloj eble ne akceptas ĉifritajn dosierojn en senpagaj kontoj. - Ĉifrita alŝuto malsukcesis - Multaj serviloj ne akceptas ĉifritajn dosierojn en senpagaj kontoj. Vi povas reprovi sen ĉifrado. - Uzi H.265/HEVC Kodeken - Pli bona kvalito je pli malgrandaj dosieroj, sed ne ĉiuj aparatoj subtenas H.265-reproduktadon. - Konverti GIF al MP4 - Konvertas animacian GIF al MP4-video por pli malgranda dosiero kaj pli bona reproduktad-kongrueco. - Forigi privatajn metadatenojn - Provas forigi privatajn metadatenojn el subtenataj mediodosieroj antaŭ alŝuto - Ne eblis forigi metadatenojn - Malsukcesis forigi privatajn metadatenojn el la medio. Alŝuto nuligita. - Alŝuto nuligita - Ne eblas forigi metadatenojn el AVIF: %1$s - Hejmo - Malkovri - Mesaĝoj - Sciigoj - Kalendaroj - Kalendarlistoj - Ŝako - Monujo - Cashu-monujo (NIP-60) Nutzap-ŝlosilo (altnivela) Aparta privata ŝlosilo uzata sole por ricevi NIP-61-nutzap-ojn. Ne via Nostr-identeca ŝlosilo. Generi novan ŝlosilon P2PK-privata ŝlosilo (hex) - Redakti monfarejojn Konservi ŝanĝojn - - +%1$d plia - +%1$d pliaj - - - Rekomendita de %1$d alia - Rekomendita de %1$d aliaj - - Popularaj monfarejoj - Kongruaj monfarejoj - Ricevita - Sendita - Publiki forigan peton por via kind:38000-rekomendo de %1$s. Relay-oj kiuj honoras NIP-09 forigos ĝin. - Reakireditaj %1$s sats trans %2$s pruvoj. - Pagi %1$s sat + ĝis %2$s sat en kotizoj? - Nutzap malsukcesis - Neniu ricevant-pubŝlosilo en la noto - Nutzap-oj estas publikaj kaj malkaŝus ĉi tiun privatan noton. Uzu anstataŭe Lightning Zap. - Ne eblas konstrui eventreferencon - Atendado ke la fakturo estu pagita… - Kontrolado de monfarejo… - Malrapida - Normala - Rapida - ~1 h - - Sendi %1$s sats, %2$d maniero - Sendi %1$s sats, %2$d manieroj - - - Uzi la %1$d-vojan Zap-disigon de ĉi tiu noto - Uzi la %1$d-vojan Zap-disigon de ĉi tiu noto - - - Disigo inter %1$d ricevanto - Disigo inter %1$d ricevantoj - - - Preterpasante %1$d ricevanton kun nur Lightning-adreso — la ĉenereto bezonas Nostr-publikan ŝlosilon por derivi la adreson. - Preterpasante %1$d ricevantojn kun nur Lightning-adreso — la ĉenereto bezonas Nostr-publikan ŝlosilon por derivi la adreson. - - ŝargado de saldo - konstruado de la transakcio - subskribo - elsendado - publikigado de la kvitanco - Bitcoin-ĉena fondaĵo ne estas agordita - Ne eblis ŝargi vian Bitcoin-saldon - Ne eblis konstrui la transakcion - Ricevant-parto estas sub polvo - Ne eblis subskribi la transakcion - Ne eblis elsendi la transakcion - Pago sendita, sed la Zap-kvitanco ne povis esti publikigita - - Pago sendita (%1$d el %2$d kvitanco publikigita), sed la sekva kvitanco ne povis esti publikigita - Pago sendita (%1$d el %2$d kvitancoj publikigitaj), sed la sekva kvitanco ne povis esti publikigita - - Importi sekvantojn - Nova produkto - Nova artikolo - Nova kalendara evento - Redakti kalendaran eventon - Nova kalendaro - Redakti kalendaron - Fluo - Monato - Semajno - Tago - - %1$s, %2$d evento - %1$s, %2$d eventoj - - Okazas nun - %1$s · finiĝas %2$s - Dividi kalendaran eventon - Kalendaraj memorigoj - Averto kiam evento, kiun vi partoprenas, baldaŭ komenciĝos. - Kalendra evento - - Komenciĝas post %1$d minuto - Komenciĝas post %1$d minutoj - - Alŝuto de bildo malsukcesis - La elektita bildo ne povis esti alŝutita. Provu denove aŭ algluu URL-on. - Kalendaraj memorigoj - Sendi memorigojn - Sciigo aperas kiam evento, kiun vi partoprenas, baldaŭ komenciĝos. - Malfermi en mapoj - Malfermi ligon - Malfermi ĉiujn reagojn al ĉi tiu afiŝo - Fermi ĉiujn reagojn al ĉi tiu afiŝo - Malsupra Navigada Strio Trenu por reordigi. Ŝaltu por aldoni aŭ forigi elementon el la malsupra strio. Kun nulo da eroj la malsupra strio estas kaŝita. Reordigi Elektu kiuj langetoj aperas sur la Hejma ekrano. Kiam nur unu langeto estas aktiva, la langeta strio estas kaŝita. - Ĉio - Profila Interfaco Elektu kiuj sekcioj kaj fluoj aperas sur uzantprofilaj ekranoj. Ĉiuj opcioj estas ebligitaj defaŭlte. - Profilaj Insignoj - Aplikaĵaj Rekomendoj - Ricevita Zap-fluo - Sekvanta Fluo - Reaga Vico - Videludilaj Butonoj - Sonbildigilo - Limdato - Nevalida adreso - Amethyst ricevis URI por malfermi, sed tiu uri estis nevalida: %1$s - DM Enskatolaj Relay-oj - Serĉaj Relay-oj - Bonaj opcioj estas:\n%1$s - Eligaj Relay-oj - Enskatolaj Relay-oj - Relay-agordoj - Publikaj Eligaj/Hejmaj Relay-oj - Uzanto afiŝas sian enhavon al ĉi tiuj relay-oj - Ĉi tiu relay-tipo konservas ĉian vian enhavon. Amethyst sendos viajn afiŝojn ĉi tien kaj aliaj uzos ĉi tiujn relay-ojn por trovi vian enhavon. Enigu inter 1–3 relay-ojn. Ili povas esti personaj relay-oj, pagendaj relay-oj aŭ publikaj relay-oj. - Publikaj Enskatolaj Relay-oj - Uzanto ricevas sciigojn sur ĉi tiuj relay-oj - Ĉi tiu relay-tipo ricevas ĉiujn respondojn, komentojn, ŝatojn kaj zap-ojn al viaj afiŝoj. Ili povas esti pagendaj aŭ senpagaj relay-oj. Limigoj fiksitaj de la relay-operatoro povas limigi la sciigojn, kiujn vi ricevas, kaj por bone kaj por malbone. Ekzemple, se vi estas atakata de komentspamo, pagendaj relay-oj povas filtri la spamon. Enigu inter 1–3 relay-ojn. - DM Enskatolaj Relay-oj - Uzanto ricevas DM-ojn sur ĉi tiuj relay-oj - Enigu inter 1–3 relay-ojn por funkci kiel via privata enkomunkilo. Aliaj uzos ĉi tiujn relay-ojn por sendi DM-ojn al vi. DM Enskatolaj relay-oj devus akcepti ajnan mesaĝon de iu ajn, sed nur permesi al vi elŝuti ilin. Bonaj opcioj estas:\n - inbox.nostr.wine (pagenda)\n - auth.nostr1.com (senpaga)\n - you.nostr1.com (personaj relay-oj - pagendaj) - KeyPackage Relay-oj - Relay-oj kie viaj MLS KeyPackages estas publikigitaj (MIP-00). Aliaj uzantoj alprenas ĉi tiujn KeyPackages por inviti vin en Marmot-grupajn babiladojn. Enigu inter 1–3 relay-ojn kiuj akceptas KeyPackage-eventojn de vi kaj permesas publikajn legojn. - Privataj Hejmaj Relay-oj - Enigu inter 1–3 relay-ojn por konservi eventojn, kiujn neniu alia povas vidi, kiel viaj Skizaĵoj kaj/aŭ aplikaĵagordoj. Ideale, ĉi tiuj relay-oj estas aŭ lokaj aŭ postulas aŭtentikigon antaŭ elŝuti la enhavon de ĉiu uzanto. - Konektitaj Relay-oj - Aktuala listo de uzataj relay-oj - Serĉaj Relay-oj - Listo de relay-oj por uzi kiam serĉante enhavon aŭ uzantojn. Etikedado kaj serĉo ne funkcios se neniuj opcioj estas disponebla. Certigu ke ili implementas NIP-50. - Lokaj Relay-oj - Listo de relay-oj kiuj funkcias sur ĉi tiu aparato. - Plusendi profilojn al loka relay - Sendi ĉiujn ricevitajn profilajn (tipo 0) eventojn al via loka relay - Fidindaj Relay-oj - Relay-oj, kiujn vi fidas sufiĉe por ne bezoni Tor-konekton - Ŝatataj Relay-fluoj - Relay-oj, kiujn vi ofte vizitas por vidi ilian Tutmondan fluon - Prokuro-Relay-oj - Agregataj relay-oj, kiujn la aplikaĵo devas uzi por elŝuti viajn fluojn, ekzemple filter.nostr.wine. Ĉi tio anstataŭas la sendkesta modelon kaj igos la aplikaĵon konektiĝi nur al la relay-oj en viaj listoj. - Elsendaj Relay-oj - Relay-oj, kiuj specialiĝas pri elsendo de viaj notoj al ĉiuj aliaj relay-oj, ekzemple sendit.nosflare.com. Amethyst aldonos ĉi tiun relay-on al ĉiuj novaj eventoj faritaj de vi - Indeksaj Relay-oj - Relay-oj, kiuj specialiĝas pri gastigo de la metadatenoj kaj relay-listoj de ĉiuj, ekzemple purplepag.es. Amethyst uzos ĉi tiujn relay-ojn por trovi uzantojn, kiuj ne estas en viaj listoj. - Blokitaj Relay-oj - Amethyst neniam konektiĝos al ĉi tiuj relay-oj - Eksporti relay-agordojn Retejo: Superrigardo Pri Ligiloj Prizorgantoj Temoj - Tempomarko-Pruvo - Estas pruvo ke ĉi tiu afiŝo estis subskribita iam antaŭ %1$s. La pruvo estis stampita en la Bitcoin-blokĉeno en tiu dato kaj horo. - Redakti Afiŝon - Ne eblas respondi al malnetaj noto - Ne eblas citi malnetajn noton - Ne eblas reagi al malnetaj noto - Ne eblas zap malnetajn noton - Malneta Noto - Malbona Peto - La servilo ne povas aŭ ne volas trakti la peton. - Neaŭtorizita - La uzanto ne havas validajn aŭtentigajn akreditivojn - Pago Necesa - La servilo postulas pagon por kompletigi la peton - Malpermesita - La uzanto ne havas alirrajtojn por fari la peton - Ne Trovita - La servilo ne povas trovi la petitan adreson - Metodo Ne Permesita - La servilo subtenas la petan metodon, sed ne la celatan rimedo - Ne Akceptebla - La servilo ne trovas enhavon, kiu kontentigas la peton. - Prokura Aŭtentigado Necesa - La uzanto ne havas validajn aŭtentigajn akreditivojn - Pettempolimo - La servilo ekspiris dum atendado de iu alia - Konflikto - La servilo ne povas plenumi la peton ĉar estas konflikto kun la rimedo - Foriris - La petita enhavo estis permanente forigita de la servilo kaj ne estos restarigita - Longo Necesa - La servilo rifuzas la peton ĉar ĝi postulas difinitan - Antaŭkondiĉo Malsukcesis - La antaŭkondiĉoj de la peto en la kapliniaj kampoj, kiujn la servilo ne povas plenumi - Utila Ŝarĝo Tro Granda - La peto estas pli granda ol la difinitaj limoj de la servilo, kaj la servilo rifuzas trakti ĝin - URI Tro Longa - La URL petita de la kliento estas tro longa por la servilo trakti. - Nesubtenata Amaskomunikila Tipo - La peto uzas amaskomunikilan formaton, kiun la servilo ne subtenas - Gamo Ne Kontentebla - La servilo ne povas plenumi la valoron indikitan en la kampo Range de la peto. - Atendo Malsukcesis - La servilo ne povas plenumi la postulojn indikitajn de la kaplinio Expect de la peto - Plibonigo Necesa - La servilo rifuzas trakti la peton per la nuna protokolo krom se la kliento plibonigas al malsama protokolo. - Interna Servila Eraro - La servilo renkontis neatenditan eraron kaj ne povas kompletigi la peton - Ne Efektivigita - La servilo ne povas plenumi la peton aŭ ne rekonas la petan metodon - Malbona Pordego - La servilo agas kiel pordego kaj ricevis nevalidan respondon de la gastiganto - Servo Neatingebla - Ĉi tio ofte okazas kiam servilo estas ŝarĝegita aŭ fermita por prizorgado - Pordega Tempolimo - La servilo agis kiel pordego aŭ prokuro kaj ekspiris, atendante respondon - HTTP-Versio Ne Subtenata - La servilo ne subtenas la HTTP-version en la peto - Varianto Ankaŭ Negocas - La servilo havas internan agorda eraron - Nesufiĉa Stokado - La servilo ne havas sufiĉan stokadon por sukcese trakti la peton - Buklo Detektita - La servilo detektas senfinan buklon dum traktado de la peto - Reta Aŭtentigado Necesa - La kliento devas esti aŭtentigita por aliri la reton Blossom-Serviloj Aldonu tiom da serviloj kiom vi volas. Vi povas elekti, kiun uzi poste dum alŝutado de via bildo - Aldoni NIP-96 Servilon - Aldoni Blossom-Servilon Elŝuti - Malsukcesis malfermi dosieron - Neniu torrent-aplikaĵo instalita por malfermi kaj elŝuti la dosieron. - La evento ne havas sufiĉajn informojn por konstrui magnetan ligilon - Miaj Listoj - Fluoj - Hashtag-oj - Interesaroj - Lokoj - Komunumoj - Listoj - Fluo-Algoritmoj - Ĉiuj favorataj fluo-algoritmoj - Relay-oj - Favorataj Fluo-Algoritmoj - Privata Mesaĝo - Publika Mesaĝo - Ne eblas dividi bildon, bonvolu reprovi poste… - Ne eblas dividi videon, bonvolu reprovi poste… - Elŝutante videon… - Ne Traduki El - Lingvoj montritaj ĉi tie ne estos tradukitaj. Elektu lingvon por forigi ĝin kaj havi ĝin tradukita denove. - Traduki Al - Elektu la lingvon, al kiu traduki enhavon. - Lingva Montraj Preferoj - Por ĉiu tradukita lingvoparo, elektu, kiun lingvon montri unue. - Paŭzi - Ludi - Ĉi tiu mesaĝo malaperos post %1$s - Sekvolista Metadatenoj - Sekvolistaj metadatenoj povas esti viditaj de ĉiu ajn sur Nostr. Nur viaj privataj membroj estas ĉifritaj. - Sekva Pako Metadatenoj - Sekva pako metadatenoj povas esti viditaj de ĉiu ajn sur Nostr kaj estas ofte publikigataj en multaj retejoj kiel startaj pakoj por novaj uzantoj. - Redakti Sekvan Pakon - Etendi - Reprovi - Reago - Voĉa Afiŝo - Voĉa Respondo - Eliraj relay-oj - Aplikaĵoj - Aplikaĵaj Rekomendoj - Uzantaj Agordoj - Aŭdia Kaplinjo - Aŭdia Trako - Muzika Trako - Muzika Ludlisto - Podkasta Epizodo - Podkasta Programo - Aŭtoritaj Podkastoj - Plej ŝatataj Podkastoj - Insignaj Premioj - Insignaj Difinoj - Akceptita Insigna Aro - Profila Insignoj - Blokitaj relay-oj - Blossom Serviloj - Nests Serviloj - Blossom Aŭtentigo - Dissendaj relay-oj - Legosigna Listo - Malnova Legosigna Listo - Taga Rendevuo - Kalendaro - Rendevuo - Rendevua RSVP - Ŝakaj Ludoj - Ŝaka Aŭtentigo - Plej ŝatataj relay-oj - Ŝakaj Defioj - Ŝakajn Ludon Akcepti - Ŝaka Movo - Fino de Ŝaka Ludo - Ŝaka Remizo-Propono - Kanala Difino - Kanalaj Kaŝitaj Mesaĝoj - Kanala Listo - Kanala Mesaĝo - Kanalaj Metadatumoj - Kanala Silentiga Uzanto - DM Dosiero - DM Mesaĝo - DM relay-oj - Klasifikitaj Anonco - Komentoj - Komunuma Difino - Komunuma Listo - Komunuma Afiŝo - Sekva Listo - Forviŝoj - Skizoj - Emoĝia Pakaĵoj - Emoĝia Pakaĵa Listo - Efemera Babilado - Efemeraj Babilĉambroj - Dosiertestaj Kaplinjoj - Profila Galerio - Dosierserviloj - Blob Datumoj - Blob Kaplinjoj - Medicinaj Datumoj - Sekvataj Pakaĵoj - Resendoj (16) - Geohash Sekvoj - Git Temo - Git Flikaĵo - Git Deponejo - Git Respondo - Zap Celoj - Kradvorta Sekvoj - Elstaraĵoj - Http Aŭtentigo - Indeksa relay-a Listo - Aventura Prologo - Aventura Sceno - Aventura Legado - Nomataj Legosignoj - Rekta Babilado - Rekta Elsendo - NWC Peto - NWC Respondo - Privataj Zaps - Zap Peto - Blogartikoloj - Kunvenĉambro - Ĉambra Ĉeesto - Kunvena Spaco - Profilo - Silentiga Listo - Nostr Konekto - DVM Stato - DVM Enhava Peto - DVM Enhava Respondo - DVM Uzanta Peto - DVM Uzanta Respondo - Personaj Listoj - Bildoj - Trejnadoj - Pingloj - Zap Voĉdono - Voĉdono - Voĉdona Respondo - Privataj relay-oj - Prokuraj relay-oj - Publika Mesaĝo - Reagoj - Kontakta Karto - relay-a Aŭtentigo - relay-a Malkovro - relay-a Monitora Anonco - relay-a Aro - Raportoj - Resendoj - Uzanto Forigi - Sigeloj - Serĉaj relay-oj - Uzanta Stato - Notoj - Redaktoj - Torrentoj - Torrentaj Komentoj - Fidataj relay-oj - Fidataj Provizantoj - Mallongaj videoj (Repl) - Mallongaj videoj - Voĉa Mesaĝo - Voĉa Respondo - Reta Legosigno - Vikio - %1$d%% funkcia tempo - Namecoin Agordoj - relay-a Sinkronigo - Bitcoin-Esploristo (OTS) - eventoj de vi - eventoj al vi - serĉeblaj eventoj - profiloj - eliraj listoj - Laste vidita antaŭ %1$s - Laste vidita la %1$s (%2$s antaŭe) - Laste vidita ĵus nun - Neniam vidita - - %1$d minuto - %1$d minutoj - - - %1$d horo - %1$d horoj - - - %1$d tago - %1$d tagoj - - - %1$d semajno - %1$d semajnoj - - - %1$d monato - %1$d monatoj - - - %1$d jaro - %1$d jaroj - - - %1$d monfarejo - %1$d monfarioj - - - %1$d atendata fakturo - %1$d atendataj fakturoj - - - Financoj konservitaj ĉe %1$d monfarejo, kiun vi ne uzas - Financoj konservitaj ĉe %1$d monfarioj, kiujn vi ne uzas - - Movis %1$s sat al %2$s. - Transigi al aparato - Ĉesi transiĝon - HLS Alŝuto - Alŝutado de %1$s (%2$d el %3$d) - Atestado - Peto de Atestado - Rekomendo de Atestanto - Kompetento de Atestanto - Retaj Legosignoj - Aldoni Retan Legosignon - Redakti Retan Legosignon - %1$s financita el %2$s sats celo - Nova Celo - Peto pri Malapero - Peto pri malapero sendita - Historio de Malapero - Uzantoj - Eventoj - Tipoj - IP-oj - Agordoj - Proponi tekstajn plibonigojn - Uzas aparatan AI-modelon por proponi tekstajn korektojn kaj tondoŝanĝojn. - Spurataj dissendoj - Uzu la spuratan dissendanton kiam vi sendas eventojn. Montras vivan progreson kaj relay-specifan staton dum dissendado. - Sugesti trejnadojn por dividi - Legas finitajn trejnadojn el Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) kaj sugestas dividi ilin kiel afiŝon. Permeso estas petata nur kiam vi konektas. - Agordoj de Verkado - Aŭtomate krei skizojn - Konservas skizon aŭtomate kiam vi tajpas aŭ forlasas verkiston kun nesendita teksto kaj sendas al viaj privataj eligaj relay-oj. - Nova emodžio-pako - Redakti emodžio-pakon - Miaj Emodžio-Pakoj - Emodžioj - Publikaj emodžioj estas videblaj al ĉiuj kaj aperas en via reaga menuo kaj „:\" aŭtokompleta elektilo kiam ĉi tiu pako estas en via emodžio-listo. - Privataj emodžioj estas stokitaj ĉifrite sur relay-oj kaj videblaj nur al vi. Ili aperas en via reaga menuo kaj „:\" aŭtokompleta same kiel publikaj. - Skizo havas %1$d bajtojn; ĉi tiu komunumo limigas ĉi tiun tipon al %2$d bajtoj. - Skizo havas %1$d bajtojn; ĉi tiu komunumo limigas eventojn al %2$d bajtoj. - Vi jam afiŝis %1$d eventojn de ĉi tiu tipo hodiaŭ (limo %2$d). - Nowhere-retejo - Nowhere-evento - Nowhere-monkolekto - Nowhere Butiko - Nowhere Peticio - Nowhere Mesaĝo - Nowhere Faleto - Nowhere Arto - Nowhere Forumo - - %1$d membro - %1$d membroj - - Informoj de grupo ĝisdatigitaj - Malsukcesis ĝisdatigi: %1$s - Malsukcesis krei grupon: %1$s - Malsukcesis forlasi grupon: %1$s - Aldonante %1$s… - Malsukcesis aldoni %1$s: %2$s - nekonata eraro - Membro forigita - Malsukcesis forigi membron: %1$s - Administrantaj privilegioj donitaj - Malsukcesis doni administrantajn privilegiojn: %1$s - Administrantaj privilegioj revokitaj - Malsukcesis revoki administrantajn privilegiojn: %1$s - Ne membro de ĉi tiu grupo La Lightning-servo de la ricevanto ĉe %1$s ne disponeblas. Ĝi estis kalkulita el la Lightning-adreso „%2$s\". Eraro: %3$s. Kontrolu ĉu la servilo funkcias kaj ĉu la Lightning-adreso estas ĝusta Ne povis solvi %1$s. Kontrolu ĉu vi estas konektita, ĉu la servilo funkcias, kaj ĉu la Lightning-adreso %2$s estas ĝusta.\n\nEscepto estis: %3$s Eraro dum analizado de JSON el la faktura alporto de %1$s. Kontrolu la Lightning-agordon de la uzanto diff --git a/amethyst/src/main/res/values-eo/strings.xml b/amethyst/src/main/res/values-eo/strings.xml index 4f5403786d..8140862fd7 100644 --- a/amethyst/src/main/res/values-eo/strings.xml +++ b/amethyst/src/main/res/values-eo/strings.xml @@ -1,1271 +1,59 @@ - Spamo - Personigo - Kontraŭleĝa Konduto - Peti Forigon - Ensaluti per sekreta ŝlosilo por respondi - Ensaluti per sekreta ŝlosilo por impulsi afiŝojn - Ensaluti per sekreta ŝlosilo por ŝati afiŝojn - Neniu kvanto da zapoj agordita. Longe premi por ŝanĝigi - Ensaluti per sekreta ŝlosilo por sendi zapojn - Ensalutu per sekreta ŝlosilo por sekvi - Ensalutu per sekreta ŝlosilo por malsekvi - Zapoj - Plifortigi impulsita - Aldoni - Eraro analizante de erara mesaĝo - Profilo - Sekurecaj Filtriloj - Pagi - "Antaŭrigardi Bildon de %1$s" - Priskribo - Kion vi pensas? - Afiŝi Konservi - Krei - Nuligi - Eraroj - Bildo konservita al la galerio - Malsukcesis konservi la bildon - Uzanto ne havas lightning-adreson por ricevi satojn - "respondi ĉi tie… " - Konataj - Novaj Petoj - Blokitaj Uzantoj - Novaj Fadenoj - Konversacioj - Pli da Opcioj - Sekvi - Sekvi reen - Kaŝi Pasvorton - Nevalida ŝlosilo - Ŝlosilo estas nepra - Eliri - Malsekvi - Publika Babilado - Forigi - neniam - nun - t - Nudeco - Blasfemo / Malama Parolado - Sekurkopii Ŝlosilojn - Sekreta ŝlosilo (nsec) kopiita al tondujo - Kopii mian sekretan ŝlosilon - Aŭtentikigo malsukcesis - Kopiita tekston de noto al tondujo - Kopiita @npub de aŭtoro al tondujo - Kopiita ID de noto (@note1) al tondujo - "<Privata mesaĝo nemalĉifrebla.>\n\nVi estis citita en privata konversacio inter %1$s kaj %2$s." - Kontoj - Malantaŭen - Kunhavigi Ligilon - Kunhavigi - ID de Noto - Forigi - - Bloki - Legosignoj - Aldoni al Publikaj Legosignoj - Forigi el Publikaj Legosignoj - Elekto %s - (0–100)% - Nur po unu voĉdono por uzanto estas permesita en ĉi tia enketo - Aŭtoroj de Enketoj ne povas voĉdoni en siajn proprajn enketojn. - Ĉi tiu enhavo estas la sama ĝis la afiŝo - Ĉi tiu enhavo ŝanĝiĝis. La aŭtoro eble ne vidis aŭ jesis la ŝanĝo - Aldoni Bildon - Aldoni Videon - Aldoni Dokumenton - Dosiera Servilo - Ĉiuj Sekvoj - Ĝenerala - Socks-Konektejo de Orbot - Privataj Mesaĝoj - Sciigas vin kiam privata mesaĝo alvenas - Zapojn Ricevitaj - Sciigas vin kiam iu zapas vin - %1$s satoj - El %1$s - pro %1$s - Sciigi: - Hodiaŭ - Neniaj reagoj selektitaj. Premu longe por ŝanĝi - Legi el plusendilo - Skribi al Plusendilo - Cashu Signo - Neniu Lightning-Adreso agordita - Plusendiloj - Babilejoj - Delikata Enhavo - Aldonas averton de delikata enhavo antaŭ montri ĉi tiun enhavon - Agordoj - Ĉiam - Neniam - Sistemo - Hela - Malhela - Etoso - Antaŭrigardo de Bildo - Ludado de Video - Antaŭrigardo de URL - Spamistoj - Silentigita. Alklaki por malsilentigi - Ŝalta sono. Alklaki por silentigi Publika Privata - Temo - Malhela, Hela aŭ Sistema Temo - Aŭtomate montri imaĝojn kaj GIFojn - Aŭtomate montri videojn kaj GIFojn - Montri antaŭrigardoj de URL - Nekapable sendi zapon -La nombro da spamaj eventoj venantaj de tiu ĉi relay -Vi uzas publikan ŝlosilon kaj publikaj ŝlosiloj estas nur-legitaj. Ensalutu per Privata ŝlosilo por povi kaŝi vorton aŭ frazon -Vi uzas publikan ŝlosilon kaj publikaj ŝlosiloj estas nur-legitaj. Ensalutu per Privata ŝlosilo por povi montri vorton aŭ frazon -Vi uzas publikan ŝlosilon kaj publikaj ŝlosiloj estas nur-legitaj. Ensalutu per Privata ŝlosilo por povi alŝuti -Vi uzas publikan ŝlosilon kaj publikaj ŝlosiloj estas nur-legitaj. Ensalutu per Privata ŝlosilo por povi subskribi eventojn -Neaŭtorizita Malĉifrado -La subskribanto ne aŭtorizis malĉifradon kiu estas necesa por plenumi tiun ĉi operacion. Aktivigu NIP-44 malĉifradojn en via subskribanta app kaj provu denove -Subskribanto ne trovita -Ĉu la Subskribanta app estis malinstalita? Kontrolu ĉu la subskribanto estas instalita kaj havas tiun ĉi konton. Elsalutu kaj ensalutu denove se la subskribanta app ŝanĝiĝis. -La ekstera subskribanto resendis utilan ŝarĝon kiu estas stranga por la peto. Povas ekzisti eraro en Amethyst aŭ en la Subskribanto. redakto #%1$s -Proponi Redakton -Petante fakturo… -La debita servo ne kompletigis la pagon. -Pagi %1$s per %2$s? -Pagi tiun ĉi fakturon per %1$s? -Enigu validan sumon por tiu ĉi oferto. -Unufoja -Ĉiutaga -Ĉiusemajna -Ĉiumonata -Pagante per %1$s… -Pago malsukcesis -Elspendebla por tiu ĉi ricevanto: %1$s sats -Transakcio: %1$s -Skribi mesaĝon… -Sendi Renomi -Eraro -Procento de sukcesaj konektoj al la relay -Konservi al Telefono -Videa elŝuto komenciĝis… -Amaskomunikila elŝuto komenciĝis… -Alpingli supren -Malpingli -Video konservita en la telefona videogalerio -Malsukcesis konservi la videon -PDF konservita en Elŝutoj/Amethyst -Malsukcesis konservi la PDF -Neniu fotila app trovita sur tiu ĉi aparato -Alklaku kaj tenu por registri mesaĝon -Alŝuta Eraro -Malsukcesis alŝuti voĉan mesaĝon -NIP-95 ankoraŭ ne estas subtenata por voĉaj mesaĝoj -Voĉa alŝuto malsukcesis: %1$s -Neniu -Profunda -Alta -Neŭtrala -Montri privatan ŝlosilon QR-kode -Montri ĉifritan privatan ŝlosilon QR-kode -Nevalida ŝlosilo: %1$s -Pasvorto estas necesa -Nomo estas necesa Nova babileja profilo: -Malapera Babilejo -Relay-Babilejo -Relay-Babilejaroj -MLS-Grupo -Publikaj Babilejaj Metadatenoj -Relay-oj -h -m -Malsukcesis ĉifri vian privatan ŝlosilon -Biometriko malsukcesis aŭtentikigi la posedanton de tiu ĉi telefono -Biometriko malsukcesis aŭtentikigi la posedanton de tiu ĉi telefono. Eraro: %1$s -Navigi -Vi -Fluoj -Krei -Sistemo -Kunhavigi kiel Bildon -Kunhavigi kiel Bildan URL -Silentigi fadenon -Malsilentigi fadenon -Legosignoj sukcese migritaj -Skizoj -Planitaj afiŝoj -Plani afiŝon -Nuligi planon -Planitaj afiŝoj eble ne publikiĝos ĝis vi poste remalfernas la app-on. Ŝaltu ĉiam-ŝaltitan en Agordoj → Interfacaj Preferoj por fidinda fona planado. -Planitaj afiŝoj eble ne publikiĝos ĝis vi remalfernas la app-on. La planitaj afiŝoj de aliaj kontoj ne ekiĝos dum tiu ĉi konto estas aktiva. Ŝaltu ĉiam-ŝaltitan en Agordoj → Interfacaj Preferoj por fidinda fona planado. -%1$s · post %2$s -%1$s · antaŭ %2$s -Morgaŭ -Elsalutita -Planita afiŝo publikigita -Planita afiŝo malsukcesis -Planitaj afiŝoj -Sciigoj kiam planita afiŝo estas publikigita aŭ malsukcesas publikiĝi. -Sendi nun -Eraro: %1$s -Planita -Sendante… -Malsukcesis -Sendita -Nuligita -Noto-ID kopiita -Balotadoj -Malfermitaj -Fermitaj -Insignoj -Komunumoj -Nova Komunumo -Redakti Komunumon -Moderantoj -Relay-oj -Kontroleblaj reguloj (laŭvole) -Permesitaj eventaj specoj -Mallonga teksto (1) -Longforma artikolo (30023) -Bildafiŝo (20) -Videoafiŝo (21) -Mallonga video (22) -Komunuma komento (1111) -Malpermesitaj uzantoj -Fid-reto pordego (laŭvole) -Ĝenerala maksimuma evento-grandeco (laŭvole) -Nova Insigono -Premiumi Insignon -Profilaj insignoj -Bildoj -Ekzercadoj -Nova Ekzercado -Kurado -Promeno -Biciklado -Tura marŝado -Naĝado -Remado -Fortekzercado -Jogo -Meditado -Dieto -Fastado -Cirkvito -EMOM -AMRAP -Aplikoj Aplikoj -nApplet-oj -nSite-oj -Retumilo -Ŝargante per Tor. Klaku por uzi la malferma reton. -Ŝargante per la malferma reto. Klaku por uzi Tor. -Plej ŝatataj -Plej ŝatataj aplikoj -Aldoni al plej ŝatataj -Forigi el plej ŝatataj -Ŝargas per Tor. -Ŝargas per la malferma reto. -Publikigita al relay-oj -Alŝutita dosiero -Faris pagon -Tiu aplikaĵo ankoraŭ ne estas ŝargita. Reprovu post momento. -Lastaj nApplet-aj permesoj Ankoraŭ neniuj nApplet-aj permesoj Permesoj kiujn vi donas al nApplet-oj aperos ĉi tie. Forgesi ĉi tiun nApplet-on Blokita Revoki -nApplet %1$s… Ŝelo -Identeco -Klavarago -Relay-oj -Stokado -Pagoj -Reto -Alŝutoj Demandi kiuj kapabloj estas disponeblaj -Legi vian publikan ŝlosilon -Ligi klavarpremaĵojn -Legi, subskribi & publikigi viajn eventojn -Sia propra privata stokado -Pagi Lightning-fakturojn -Alporti retajn kaj Blossom-rimedojn -Alŝuti dosierojn al via amaskomunikilara servilo -Temo -Sciigoj -Mesaĝado -Kongrui kun la koloroj de via aplikaĵo -Montri al vi sciigojn -Interŝanĝi mesaĝojn kun aliaj napplet-oj Kapablo: %1$s -Ĉi tiu nApplet volas legi vian publikan ŝlosilon. -Ĉi tiu nApplet volas legi vian profilon kaj kontodatenojn. -Ĉi tiu nApplet volas subskribi kaj publikigi specon %1$d eventon kiel vi. -Ĉi tiu nApplet volas subskribi kaj publikigi specon %1$d eventon kiel vi: -Ĉi tiu nApplet volas sendi ĉifritan eventon kiel vi. -Ĉi tiu nApplet volas legi eventojn el viaj relay-oj. -Ĉi tiu nApplet volas uzi sian privatan stokadan lokon. Ĉi tiu nApplet volas pagi Lightning-fakturon. -Ĉi tiu nApplet volas alporti retan rimedon. -Ĉi tiu nApplet volas alŝuti dosieron al via amaskomunikilara servilo. -Ĉi tiu nApplet volas montri al vi sciigojn. -Ĉi tiu retejo volas subskribi specon %1$d eventon per via Nostr-ŝlosilo. -Mallongaj videoj -Publikaj Babilejoj -Sekvopakaj -Rekta dissendo -Nests -Levi manon -Malaltigi manon -Silentigi -Malsilentigi -Ne povis sendi mesaĝon -Silentigi mikrofonon -Masilentigi mikrofonon -Nestoj -Konservas aŭdion luданте dum ĉambro estas malfermita. -Nesto konektita -Nesto — Viva -Tuŝetu por reveni. -Halti -levis sian manon -supreniris scenen -parolas -aliĝis kiel spektanto -forlasis la neston -Forlasi -Ne povis marki ĉambron kiel fermitan. Forlasante tamen — ĉambro aŭtomate fermiĝos. -Silentigi ĉi tiun parolanton -Restarigi ĉi tiun parolanton -Sekvi -Malekvi -Silentigi -Masilentigi -Ne povis konservi vian nestan servilan liston. Provu denove. -Nestaj serviloj -Viaj serviloj -Konservita kiel kind-10112 anstataŭebla evento por ke aliaj klientoj povu legi vian preferon. -Rekomenditaj serviloj -Enkonstruitaj sugestoj kiujn vi povas aldoni al via listo per unu tuŝeto. -Videoj -Muziko -Ludlistoj -Epizodoj -Podkastoj -Nova muzika peco -Nova ludlisto -Alpingli al profilo -Malalpingli el profilo -Nova signolibra listo -Metadatenoj de signolibra listo -Kradelvorta aroj -Nova interesa aro -Renomi -Fari privata: donaci la noton nur al sciigitaj uzantoj -Fari publika -Respondoj al privata noto ĉiam restas privataj -Videbla al Ankoraŭ neniuj ricevantoj: nur vi povos vidi ĉi tiun noton. Aldonu personojn por kunhavigi ĝin. Aldoni Forigi uzanton el sciigoj Serĉi kaj aldoni uzanton por sciigi -Metadatenoj de signolibraj listoj povas esti viditaj de ĉiu sur Nostr. Nur viaj privataj membroj estas ĉifritaj. -Movi al publika -Movi al privata -Ŝargi & sendi Zap -Sendi Zap -Ŝargi %1$s sats al %2$s kaj Zap-i %3$s %4$s sats · kotizo ≈ %5$s sats -Ununura elekto -Multobla elekto -Ne eblas voĉdoni -Balotenketo estas fermita al novaj voĉoj -Kion tio signifas? -Aldoni Amaskomunikilaron -Elektu servilon por alŝuti tiun ĉi dosieron -Amaskomunikilaj Serviloj Agordu viajn preferatajn amaskomunikilajn alŝutservilojn. Rekomenditaj Amaskomunikilaj Serviloj La defaŭlta listo de Amethyst. Vi povas aldoni ilin individue aŭ aldoni la liston. -Pagceloj -Aldonu pagadresojn por malsamaj retoj (ekz. bitcoin, lightning, ethereum). -Neniu aplikaĵo trovis por trakti tiun ĉi pagon. Bonvolu instali kongruan monujon. -Neniu aplikaĵo instalita por trakti %1$s-pagojn. Bonvolu instali kongruan monujon. -Ne eblas malfermi pagon -Privatecaj Opcioj -Ĉiuj Uzantaj Sekvoj -Defaŭlta Sekvlisto -Ĉirkaŭ Mi -Kuratita -Mia -Silentigolisto -Nova Sekvlisto -Nova Sekvpako -Redakti Liston -Defaŭlta pordo estas 9050 -Aktiva Tor-Motoro -Uzu la internan version aŭ Orbot -Tor/Privatecaj Antaŭagordoj -Rapide modifi ĉiujn agordojn sube -Onion-URL/Relay-oj -Uzu Tor por iu ajn .onion-URL -DM Relay-oj -Devigi Tor por sendi kaj ricevi DM-ojn -Nefidataj Relay-oj -Devigi Tor sur elirejo/enirejaj relay-oj -Fidataj Relay-oj -Devigi Tor sur ĉiuj relay-oj en viaj listoj -Profilbildoj -Devigi Tor dum ŝargado de profilbildoj -URL-Antaŭrigardoj -Devigi Tor dum ŝargado de URL-antaŭrigardoj -Bildoj -Devigi Tor dum ŝargado de bildoj -Videoj -Devigi Tor dum ŝargado de videoj -Monaj Operacioj -Devigi Tor por zap-, lightning- kaj Cashu-transferoj -Nostr-Adresverifikado -Devigi Tor dum verifikado de NIP-05-adresoj -Amaskomunikilaj Alŝutoj -Devigi Tor dum alŝutado de enhavo -Interna -Orbot -Malŝaltita -Baza -Defaŭlta -Ĉio krom Amaskomunikilaro -Plena Privateco -Persona -Uzu Tor kiam ĝi estas postulata de la servilo -Kaŝu vian IP de hazardaj relay-oj -Kaŝu vian IP de ĉio, krom bildoj kaj videoj -Kaŝu vian IP en ĉiuj konektoj -Faru la vian -Respondi -Marki kiel Legita -Novaj mesaĝoj -Novaj zap-oj -Reagoj -Sciigos vin kiam iu reagas al via afiŝo -%1$s reagis al via afiŝo -por %1$s -Novaj reagoj -Ŝako -Sciigos vin pri ŝakludaj eventoj -%1$s akceptis vian ŝakinviton -%1$s movis — via vico -Ŝakaj ĝisdatigoj -Respondoj -Sciigos vin kiam iu respondas al via afiŝo %1$s respondis pri: %1$s -Novaj respondoj -Mencioj -Sciigos vin kiam iu menciigas aŭ citas vin en afiŝo -%1$s menciis vin -Novaj mencioj -Alvenantaj alvokoj -Sciigoj por alvenantaj voĉaj kaj vidaj alvokoj -Alvenanta alvoko -Alvenanta voĉa alvoko… -Alvenanta vida alvoko… -Alvoko kun %1$s -Alvokoj -Sciigo pri daŭranta alvoko -Malkonekti -Akcepti -Rifuzi -Silentigi -Malsilentigi -Fotilo ŝaltita -Fotilo malŝaltita -Laŭtparolisto -Aŭskultiloo -Bluetooth -Amethyst bezonas aliron al mikrofono por komenci voĉan alvokon. Bonvolu ebligi ĝin en la aplikaĵagordoj. -Amethyst bezonas aliron al fotilo kaj mikrofono por komenci vidan alvokon. Bonvolu ebligi ilin en la aplikaĵagordoj. -Alvokoagordoj -Konservas konektojn al viaj enirkestaj relay-oj aktivaj por realtempaj sciigoj -Amethyst-Sciigoj Aktivaj -Konektante al enirkestaj relay-oj… Ĉiam-aktiva sciigservico Konservas daŭrantan konekton al viaj enirkestaj relay-oj por tuja sciiglivero. Montras daŭrantan sciigon. Uzas pli da baterio sed certigas ke vi neniam maltrafas mesaĝon. -Dividi sciigojn laŭ Sekvoj -Montri du sciiglangetojn — Sekvataj (personoj kiujn vi sekvas) kaj Ĉiuj. La nelegita indikilo brilas nur por agado de personoj kiujn vi sekvas. -Montri Mesaĝojn -Inkluzivi rektajn kaj grupajn mesaĝojn en la Sciiga langeto. Malŝaltu por konservi mesaĝojn nur en la Mesaĝa langeto. -Kaŝi -Montri -Averti -Filtri spamon -Kaŝas afiŝojn de fremduloj kiuj estis ekzakte samaj 5 aŭ pli da fojoj -Aldoni klientan etikedon al miaj eventoj -Kiam ŝaltita, Amethyst aldonas NIP-89 klientan etikedon al eventoj kiujn vi publikigas. -Averti pri raportoj -Montras avermesaĝon kiam afiŝoj aŭ profiloj havas raportojn de viaj sekvatoj -Kaŝi afiŝojn kiuj malobservas komunumajn regulojn -Forigas afiŝojn el komunumaj feedoj kiam la komunumo publikigas NIP-9B-regulan dokumenton kaj evento ne plenumis ĝin. Neniu efiko kiam komunumo havas neniujn strukturitajn regulojn. -Filtraj preferoj -Blokita enhavo -Vi ankoraŭ ne blokis iujn uzantojn. -Neniuj kontoj estis flagitaj kiel spamo en tiu ĉi sesio. -Neniuj kaŝitaj vortoj. Aldonu vorton sube por kaŝi afiŝojn enhavantajn ĝin. -La kvanto en bajtoj kiuj estis senditaj al tiu ĉi relay, inkluzive de filtriloj kaj eventoj -La kvanto en bajtoj kiuj estis ricevitaj de tiu ĉi relay, inkluzive de filtriloj kaj eventoj -Privateca Politiko -Infanprotektaj Normoj -Pri & Jura -Sekvi-Pakaĵoj -Legaĵoj -Fluo-Algoritmoj -Merkato -Vivaj Transigoj -Komunumoj -Interfaca Preferoj Aplikaĵaj Preferoj -Tradukoj -Reagoj -Kontaj Agordoj -Aplikaĵaj Agordoj -Danĝera Zono -Restarigi Marmot-Staton -Marmot-stato restarigita. -Malsukcesis restarigi Marmot-staton: %1$s -Senmezura WiFi -Kompleta -Simpligita -Rendimento -Klasika -Moderna -Wallet Connect -Aŭtomata Videoludado -Mergita Rulumado -Kaŝi Navigilajn Stangojn dum Rulumado -Interfaca Reĝimo -Elekti la afiŝostilo -Profila Galerio-Stilo -Elekti la galerio-stilon -Retroiri %d sekundojn -Antaŭiri %d sekundojn -Loko-ekskluziva Afiŝo -Nur sekvantoj de la loko vidos ĝin. Viaj ĝeneralaj sekvantoj ne vidos ĝin. -Alŝuti kovrilbildon -Elektu kvadratan bildon kiel arton por ĉi tiu peco. -Alŝuti aŭdian dosieron -Elektu MP3, WAV aŭ FLAC. Ĝi estos alŝutita al via amaskomunikilservilo ĉe Konservado. -Alŝutante kovrilon + aŭdion kaj eldonante. Ĉi tio daŭros eĉ se vi forlasas la ekranon. -Redakti ludumon -Alŝuti kovrilbildon -Elektu kvadratan bildon kiel arton por ĉi tiu ludomo. -Alŝutante kovrilon kaj eldonante. Ĉi tio daŭros eĉ se vi forlasas la ekranon. Grupo -Ne Eblas Alŝuti -Unue enigu la celon de la mesaĝo -Monujo ne trovita -Aŭtomate ludi videojn kiam videblaj sur la ekrano -Kopii al poŝujo -Kopiita al poŝujo -Kunhavigi aŭ Konservi Sendi kiel DM -Amaskomunikiloj aldonitaj -Amaskomunikiloj aldonitaj al via Profila Galerio -Mankas fulma agordo -Uzanto %1$s ne havas Lightning-adreson agordita por ricevi sats -Eraro malfermi subskribistan aplikaĵon -La subskribista aplikaĵo ne povis esti trovita. Kontrolu ĉu la aplikaĵo ne estis malinstalita -Ne eblas ludi ĉi tiun videon -La kodeko aŭ formato ne estas subtenata sur ĉi tiu aparato (%1$s). Provu malfermi ĝin en via retumilo. -Malfermi en retumilo -Subskrib-peto rifuzita -Certigu ke la subskribista aplikaĵo aŭtoris ĉi tiun transakcion -Neniuj Monujoj trovitaj por pagi Lightning-fakturon (Eraro: %1$s). Bonvolu instali Lightning-monujon por uzi Zaps -Neniuj Monujoj trovitaj por pagi Lightning-fakturon. Bonvolu instali Lightning-monujon por uzi Zaps -Ne eblas malfermi Blossom-ligilojn -Blossom-aplikaĵoj ne trovitaj. Bonvolu instali lokan Blossom-aplikaĵon por vidi ĉi tiun dosieron -Kaŝitaj Vortoj -Silencigitaj fadenoj -Neniaj silencigitaj fadenoj -Profila Bildo -Montri Profilajn bildojn -Ne eblis pagi fakturon -Ne eblis retiri -Ne eblis elaĉeti Cashu -La monfarejo provizis la sekvan erarmesaĝon: %1$s -Cashu Ricevita -%1$s sats estis senditaj al via monujo. (Kotizoj: %2$s sats) -Neniu kongrua Cashu-monujo trovita sur sistemo -Ne eblas preni fakturon de la ricevanto\'s serviloj -Via Wallet Connect-provizanto resendis la sekvan eraron: %1$s -Ne eblis kunmeti LNUrl el Lightning-Adreso \"%1$s\". Kontrolu la agordon de la uzanto -Ne eblis preni fakturon de %1$s: %2$s -Eraro Analizante JSON de %1$s. Kontrolu la Lightning-agordon de la uzanto -Atgara URL ne trovita en la respondo de %1$s -Malĝusta faktura sumo (%1$s sats) de %2$s. Ĝi devus esti %3$s -Ne eblas krei Lightning-fakturon antaŭ sendi la Zap. La Lightning-monujo de la ricevanto sendis la sekvan eraron: %1$s -Nur-lega uzanto -Neniaj reagoj agordita -Sciigoj -Liverado -En-aplikaĵa montrado -Kategorioj -Mesaĝo de %1$s -Saluton %1$s, ĉu ĉi tio ankoraŭ disponeblas? -Vestaĵo -Akcesoraĵoj -Elektroniko -Mebloj -Kolektindaĵoj -Libroj -Hejmbestabloj -Sporto -Kondiĉtrejnado -Arto -Artizanaĵo -Hejmo -Oficejo -Manĝaĵo -Diversaĵoj -Alia -Malsukcesis alŝuti amaskomunikilojn -Ne eblis malfermi la kunpremitan dosieron -Alŝuta eraro: %1$s -La servilo ne provizis URL post alŝuto -Ne eblis elŝuti alŝutitan medion de la servilo -Ne eblis kontroli la elŝutitan dosieron post alŝuto: %1$s -Malsukcesis alŝuti al %1$s: %2$s -Malsukcesis forigi: %1$s -La medio estas tro granda por NIP-95 -Ĉifri dosierojn -Ĉifri dosierojn antaŭ alŝuto por privateco. Kelkaj serviloj eble ne akceptas ĉifritajn dosierojn en senpagaj kontoj. -Ĉifrita alŝuto malsukcesis -Multaj serviloj ne akceptas ĉifritajn dosierojn en senpagaj kontoj. Vi povas reprovi sen ĉifrado. -Uzi H.265/HEVC Kodeken -Pli bona kvalito je pli malgrandaj dosieroj, sed ne ĉiuj aparatoj subtenas H.265-reproduktadon. -Konverti GIF al MP4 -Konvertas animacian GIF al MP4-video por pli malgranda dosiero kaj pli bona reproduktad-kongrueco. -Forigi privatajn metadatenojn -Provas forigi privatajn metadatenojn el subtenataj mediodosieroj antaŭ alŝuto -Ne eblis forigi metadatenojn -Malsukcesis forigi privatajn metadatenojn el la medio. Alŝuto nuligita. -Alŝuto nuligita -Ne eblas forigi metadatenojn el AVIF: %1$s -Hejmo -Malkovri -Mesaĝoj -Sciigoj -Kalendaroj -Kalendarlistoj -Ŝako -Monujo -Cashu-monujo (NIP-60) Nutzap-ŝlosilo (altnivela) Aparta privata ŝlosilo uzata sole por ricevi NIP-61-nutzap-ojn. Ne via Nostr-identeca ŝlosilo. Generi novan ŝlosilon P2PK-privata ŝlosilo (hex) -Redakti monfarejojn Konservi ŝanĝojn -Popularaj monfarejoj -Kongruaj monfarejoj -Ricevita -Sendita -Publiki forigan peton por via kind:38000-rekomendo de %1$s. Relay-oj kiuj honoras NIP-09 forigos ĝin. -Reakireditaj %1$s sats trans %2$s pruvoj. -Pagi %1$s sat + ĝis %2$s sat en kotizoj? -Nutzap malsukcesis -Neniu ricevant-pubŝlosilo en la noto -Nutzap-oj estas publikaj kaj malkaŝus ĉi tiun privatan noton. Uzu anstataŭe Lightning Zap. -Ne eblas konstrui eventreferencon -Atendado ke la fakturo estu pagita… -Kontrolado de monfarejo… -Malrapida -Normala -Rapida -~1 h -~30 min -~10 min -%1$s · %2$s sat/vB · %3$s -ŝargado de saldo -konstruado de la transakcio -subskribo -elsendado -publikigado de la kvitanco -Bitcoin-ĉena fondaĵo ne estas agordita -Ne eblis ŝargi vian Bitcoin-saldon -Ne eblis konstrui la transakcion -Ricevant-parto estas sub polvo -Ne eblis subskribi la transakcion -Ne eblis elsendi la transakcion -Pago sendita, sed la Zap-kvitanco ne povis esti publikigita -Importi sekvantojn -Nova produkto -Nova artikolo -Nova kalendara evento -Redakti kalendaran eventon -Nova kalendaro -Redakti kalendaron -Fluo -Monato -Semajno -Tago -Okazas nun -%1$s · finiĝas %2$s -Dividi kalendaran eventon -calendar_reminders -Kalendaraj memorigoj -Averto kiam evento, kiun vi partoprenas, baldaŭ komenciĝos. -Kalendra evento -Alŝuto de bildo malsukcesis -La elektita bildo ne povis esti alŝutita. Provu denove aŭ algluu URL-on. -Kalendaraj memorigoj -Sendi memorigojn -Sciigo aperas kiam evento, kiun vi partoprenas, baldaŭ komenciĝos. -Malfermi en mapoj -Malfermi ligon -Malfermi ĉiujn reagojn al ĉi tiu afiŝo -Fermi ĉiujn reagojn al ĉi tiu afiŝo -Zap -Malsupra Navigada Strio Trenu por reordigi. Ŝaltu por aldoni aŭ forigi elementon el la malsupra strio. Kun nulo da eroj la malsupra strio estas kaŝita. Reordigi Elektu kiuj langetoj aperas sur la Hejma ekrano. Kiam nur unu langeto estas aktiva, la langeta strio estas kaŝita. -Ĉio -Profila Interfaco Elektu kiuj sekcioj kaj fluoj aperas sur uzantprofilaj ekranoj. Ĉiuj opcioj estas ebligitaj defaŭlte. -Profilaj Insignoj -Aplikaĵaj Rekomendoj -Ricevita Zap-fluo -Sekvanta Fluo -Reaga Vico -Videludilaj Butonoj -Sonbildigilo -Limdato -Nevalida adreso -Amethyst ricevis URI por malfermi, sed tiu uri estis nevalida: %1$s -DM Enskatolaj Relay-oj -Serĉaj Relay-oj -Bonaj opcioj estas:\n%1$s -Eligaj Relay-oj -Enskatolaj Relay-oj -Relay-agordoj -Publikaj Eligaj/Hejmaj Relay-oj -Uzanto afiŝas sian enhavon al ĉi tiuj relay-oj -Ĉi tiu relay-tipo konservas ĉian vian enhavon. Amethyst sendos viajn afiŝojn ĉi tien kaj aliaj uzos ĉi tiujn relay-ojn por trovi vian enhavon. Enigu inter 1–3 relay-ojn. Ili povas esti personaj relay-oj, pagendaj relay-oj aŭ publikaj relay-oj. -Publikaj Enskatolaj Relay-oj -Uzanto ricevas sciigojn sur ĉi tiuj relay-oj -Ĉi tiu relay-tipo ricevas ĉiujn respondojn, komentojn, ŝatojn kaj zap-ojn al viaj afiŝoj. Ili povas esti pagendaj aŭ senpagaj relay-oj. Limigoj fiksitaj de la relay-operatoro povas limigi la sciigojn, kiujn vi ricevas, kaj por bone kaj por malbone. Ekzemple, se vi estas atakata de komentspamo, pagendaj relay-oj povas filtri la spamon. Enigu inter 1–3 relay-ojn. -DM Enskatolaj Relay-oj -Uzanto ricevas DM-ojn sur ĉi tiuj relay-oj -Enigu inter 1–3 relay-ojn por funkci kiel via privata enkomunkilo. Aliaj uzos ĉi tiujn relay-ojn por sendi DM-ojn al vi. DM Enskatolaj relay-oj devus akcepti ajnan mesaĝon de iu ajn, sed nur permesi al vi elŝuti ilin. Bonaj opcioj estas:\n - inbox.nostr.wine (pagenda)\n - auth.nostr1.com (senpaga)\n - you.nostr1.com (personaj relay-oj - pagendaj) -KeyPackages -KeyPackage Relay-oj -Relay-oj kie viaj MLS KeyPackages estas publikigitaj (MIP-00). Aliaj uzantoj alprenas ĉi tiujn KeyPackages por inviti vin en Marmot-grupajn babiladojn. Enigu inter 1–3 relay-ojn kiuj akceptas KeyPackage-eventojn de vi kaj permesas publikajn legojn. -Privataj Hejmaj Relay-oj -Enigu inter 1–3 relay-ojn por konservi eventojn, kiujn neniu alia povas vidi, kiel viaj Skizaĵoj kaj/aŭ aplikaĵagordoj. Ideale, ĉi tiuj relay-oj estas aŭ lokaj aŭ postulas aŭtentikigon antaŭ elŝuti la enhavon de ĉiu uzanto. -Konektitaj Relay-oj -Aktuala listo de uzataj relay-oj -Serĉaj Relay-oj -Listo de relay-oj por uzi kiam serĉante enhavon aŭ uzantojn. Etikedado kaj serĉo ne funkcios se neniuj opcioj estas disponebla. Certigu ke ili implementas NIP-50. -Lokaj Relay-oj -Listo de relay-oj kiuj funkcias sur ĉi tiu aparato. -Plusendi profilojn al loka relay -Sendi ĉiujn ricevitajn profilajn (tipo 0) eventojn al via loka relay -Fidindaj Relay-oj -Relay-oj, kiujn vi fidas sufiĉe por ne bezoni Tor-konekton -Ŝatataj Relay-fluoj -Relay-oj, kiujn vi ofte vizitas por vidi ilian Tutmondan fluon -Prokuro-Relay-oj -Agregataj relay-oj, kiujn la aplikaĵo devas uzi por elŝuti viajn fluojn, ekzemple filter.nostr.wine. Ĉi tio anstataŭas la sendkesta modelon kaj igos la aplikaĵon konektiĝi nur al la relay-oj en viaj listoj. -Elsendaj Relay-oj -Relay-oj, kiuj specialiĝas pri elsendo de viaj notoj al ĉiuj aliaj relay-oj, ekzemple sendit.nosflare.com. Amethyst aldonos ĉi tiun relay-on al ĉiuj novaj eventoj faritaj de vi -Indeksaj Relay-oj -Relay-oj, kiuj specialiĝas pri gastigo de la metadatenoj kaj relay-listoj de ĉiuj, ekzemple purplepag.es. Amethyst uzos ĉi tiujn relay-ojn por trovi uzantojn, kiuj ne estas en viaj listoj. -Blokitaj Relay-oj -Amethyst neniam konektiĝos al ĉi tiuj relay-oj -Eksporti relay-agordojn Retejo: Superrigardo Pri Ligiloj Prizorgantoj Temoj -Tempomarko-Pruvo -Estas pruvo ke ĉi tiu afiŝo estis subskribita iam antaŭ %1$s. La pruvo estis stampita en la Bitcoin-blokĉeno en tiu dato kaj horo. -Redakti Afiŝon -Ne eblas respondi al malnetaj noto -Ne eblas citi malnetajn noton -Ne eblas reagi al malnetaj noto -Ne eblas zap malnetajn noton -Malneta Noto -Malbona Peto - La servilo ne povas aŭ ne volas trakti la peton. -Neaŭtorizita - La uzanto ne havas validajn aŭtentigajn akreditivojn -Pago Necesa - La servilo postulas pagon por kompletigi la peton -Malpermesita - La uzanto ne havas alirrajtojn por fari la peton -Ne Trovita - La servilo ne povas trovi la petitan adreson -Metodo Ne Permesita - La servilo subtenas la petan metodon, sed ne la celatan rimedo -Ne Akceptebla - La servilo ne trovas enhavon, kiu kontentigas la peton. -Prokura Aŭtentigado Necesa - La uzanto ne havas validajn aŭtentigajn akreditivojn -Pettempolimo - La servilo ekspiris dum atendado de iu alia -Konflikto - La servilo ne povas plenumi la peton ĉar estas konflikto kun la rimedo -Foriris - La petita enhavo estis permanente forigita de la servilo kaj ne estos restarigita -Longo Necesa - La servilo rifuzas la peton ĉar ĝi postulas difinitan -Antaŭkondiĉo Malsukcesis - La antaŭkondiĉoj de la peto en la kapliniaj kampoj, kiujn la servilo ne povas plenumi -Utila Ŝarĝo Tro Granda - La peto estas pli granda ol la difinitaj limoj de la servilo, kaj la servilo rifuzas trakti ĝin -URI Tro Longa - La URL petita de la kliento estas tro longa por la servilo trakti. -Nesubtenata Amaskomunikila Tipo - La peto uzas amaskomunikilan formaton, kiun la servilo ne subtenas -Gamo Ne Kontentebla - La servilo ne povas plenumi la valoron indikitan en la kampo Range de la peto. -Atendo Malsukcesis - La servilo ne povas plenumi la postulojn indikitajn de la kaplinio Expect de la peto -Plibonigo Necesa - La servilo rifuzas trakti la peton per la nuna protokolo krom se la kliento plibonigas al malsama protokolo. -Interna Servila Eraro - La servilo renkontis neatenditan eraron kaj ne povas kompletigi la peton -Ne Efektivigita - La servilo ne povas plenumi la peton aŭ ne rekonas la petan metodon -Malbona Pordego - La servilo agas kiel pordego kaj ricevis nevalidan respondon de la gastiganto -Servo Neatingebla - Ĉi tio ofte okazas kiam servilo estas ŝarĝegita aŭ fermita por prizorgado -Pordega Tempolimo - La servilo agis kiel pordego aŭ prokuro kaj ekspiris, atendante respondon -HTTP-Versio Ne Subtenata - La servilo ne subtenas la HTTP-version en la peto -Varianto Ankaŭ Negocas - La servilo havas internan agorda eraron -Nesufiĉa Stokado - La servilo ne havas sufiĉan stokadon por sukcese trakti la peton -Buklo Detektita - La servilo detektas senfinan buklon dum traktado de la peto -Reta Aŭtentigado Necesa - La kliento devas esti aŭtentigita por aliri la reton Blossom-Serviloj Aldonu tiom da serviloj kiom vi volas. Vi povas elekti, kiun uzi poste dum alŝutado de via bildo -Aldoni NIP-96 Servilon -Aldoni Blossom-Servilon Elŝuti -Malsukcesis malfermi dosieron -Neniu torrent-aplikaĵo instalita por malfermi kaj elŝuti la dosieron. -La evento ne havas sufiĉajn informojn por konstrui magnetan ligilon -Miaj Listoj -Fluoj -Hashtag-oj -Interesaroj -Lokoj -Komunumoj -Listoj -Fluo-Algoritmoj -Ĉiuj favorataj fluo-algoritmoj -Relay-oj -Favorataj Fluo-Algoritmoj -Privata Mesaĝo -Publika Mesaĝo -Ne eblas dividi bildon, bonvolu reprovi poste… -Ne eblas dividi videon, bonvolu reprovi poste… -Elŝutante videon… -Ne Traduki El -Lingvoj montritaj ĉi tie ne estos tradukitaj. Elektu lingvon por forigi ĝin kaj havi ĝin tradukita denove. -Traduki Al -Elektu la lingvon, al kiu traduki enhavon. -Lingva Montraj Preferoj -Por ĉiu tradukita lingvoparo, elektu, kiun lingvon montri unue. -Paŭzi -Ludi -Ĉi tiu mesaĝo malaperos post %1$s -Sekvolista Metadatenoj -Sekvolistaj metadatenoj povas esti viditaj de ĉiu ajn sur Nostr. Nur viaj privataj membroj estas ĉifritaj. -Sekva Pako Metadatenoj -Sekva pako metadatenoj povas esti viditaj de ĉiu ajn sur Nostr kaj estas ofte publikigataj en multaj retejoj kiel startaj pakoj por novaj uzantoj. -Redakti Sekvan Pakon -Etendi -Reprovi -Reago -Voĉa Afiŝo -Voĉa Respondo -Eliraj relay-oj -Aplikaĵoj -Aplikaĵaj Rekomendoj -Uzantaj Agordoj -Aŭdia Kaplinjo -Aŭdia Trako -Muzika Trako -Muzika Ludlisto -Podkasta Epizodo -Podkasta Programo -Aŭtoritaj Podkastoj -Plej ŝatataj Podkastoj -Insignaj Premioj -Insignaj Difinoj -Akceptita Insigna Aro -Profila Insignoj -Blokitaj relay-oj -Blossom Serviloj -Nests Serviloj -Blossom Aŭtentigo -Dissendaj relay-oj -Legosigna Listo -Malnova Legosigna Listo -Taga Rendevuo -Kalendaro -Rendevuo -Rendevua RSVP -Ŝakaj Ludoj -Ŝaka Aŭtentigo -Plej ŝatataj relay-oj -Ŝakaj Defioj -Ŝakajn Ludon Akcepti -Ŝaka Movo -Fino de Ŝaka Ludo -Ŝaka Remizo-Propono -Kanala Difino -Kanalaj Kaŝitaj Mesaĝoj -Kanala Listo -Kanala Mesaĝo -Kanalaj Metadatumoj -Kanala Silentiga Uzanto -DM Dosiero -DM Mesaĝo -DM relay-oj -Klasifikitaj Anonco -Komentoj -Komunuma Difino -Komunuma Listo -Komunuma Afiŝo -Sekva Listo -Forviŝoj -Skizoj -Emoĝia Pakaĵoj -Emoĝia Pakaĵa Listo -Efemera Babilado -Efemeraj Babilĉambroj -Dosiertestaj Kaplinjoj -Profila Galerio -Dosierserviloj -Blob Datumoj -Blob Kaplinjoj -Medicinaj Datumoj -Sekvataj Pakaĵoj -Resendoj (16) -Geohash Sekvoj -GiftWraps -Git Temo -Git Flikaĵo -Git Deponejo -Git Respondo -Zap Celoj -Kradvorta Sekvoj -Elstaraĵoj -Http Aŭtentigo -Indeksa relay-a Listo -Aventura Prologo -Aventura Sceno -Aventura Legado -Nomataj Legosignoj -Rekta Babilado -Rekta Elsendo -Zaps -NWC Peto -NWC Respondo -Privataj Zaps -Zap Peto -Blogartikoloj -Kunvenĉambro -Ĉambra Ĉeesto -Kunvena Spaco -Profilo -Silentiga Listo -NNS -NIP -Nostr Konekto -DVM Stato -DVM Enhava Peto -DVM Enhava Respondo -DVM Uzanta Peto -DVM Uzanta Respondo -OTS -PayTo -Personaj Listoj -Bildoj -Trejnadoj -Pingloj -Zap Voĉdono -Voĉdono -Voĉdona Respondo -NIP-04 DMs -Privataj relay-oj -Prokuraj relay-oj -Publika Mesaĝo -Reagoj -Kontakta Karto -relay-a Aŭtentigo -relay-a Malkovro -relay-a Monitora Anonco -relay-a Aro -Raportoj -Resendoj -Uzanto Forigi -Sigeloj -Serĉaj relay-oj -Uzanta Stato -Notoj -Redaktoj -Torrentoj -Torrentaj Komentoj -Fidataj relay-oj -Fidataj Provizantoj -Video (Repl) -Mallongaj videoj (Repl) -Video -Mallongaj videoj -Voĉa Mesaĝo -Voĉa Respondo -WakeUp -Reta Legosigno -Vikio -%1$d%% funkcia tempo -Namecoin Agordoj -%dms -relay-a Sinkronigo -Bitcoin-Esploristo (OTS) -eventoj de vi -eventoj al vi -serĉeblaj eventoj -DMs -profiloj -eliraj listoj -Laste vidita antaŭ %1$s -Laste vidita la %1$s (%2$s antaŭe) -Laste vidita ĵus nun -Neniam vidita -Movis %1$s sat al %2$s. -Transigi al aparato -Ĉesi transiĝon -HLS Alŝuto -Alŝutado de %1$s (%2$d el %3$d) -Atestado -Peto de Atestado -Rekomendo de Atestanto -Kompetento de Atestanto -Retaj Legosignoj -Aldoni Retan Legosignon -Redakti Retan Legosignon -%1$s financita el %2$s sats celo -Nova Celo -Peto pri Malapero -Peto pri malapero sendita -Historio de Malapero -Uzantoj -Eventoj -Tipoj -IP-oj -Agordoj -Proponi tekstajn plibonigojn -Uzas aparatan AI-modelon por proponi tekstajn korektojn kaj tondoŝanĝojn. -Spurataj dissendoj -Uzu la spuratan dissendanton kiam vi sendas eventojn. Montras vivan progreson kaj relay-specifan staton dum dissendado. -Sugesti trejnadojn por dividi -Legas finitajn trejnadojn el Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) kaj sugestas dividi ilin kiel afiŝon. Permeso estas petata nur kiam vi konektas. -Agordoj de Verkado -Aŭtomate krei skizojn -Konservas skizon aŭtomate kiam vi tajpas aŭ forlasas verkiston kun nesendita teksto kaj sendas al viaj privataj eligaj relay-oj. -Nova emodžio-pako -Redakti emodžio-pakon -Miaj Emodžio-Pakoj -Emodžioj -Publikaj emodžioj estas videblaj al ĉiuj kaj aperas en via reaga menuo kaj „:" aŭtokompleta elektilo kiam ĉi tiu pako estas en via emodžio-listo. -Privataj emodžioj estas stokitaj ĉifrite sur relay-oj kaj videblaj nur al vi. Ili aperas en via reaga menuo kaj „:" aŭtokompleta same kiel publikaj. -Skizo havas %1$d bajtojn; ĉi tiu komunumo limigas ĉi tiun tipon al %2$d bajtoj. -Skizo havas %1$d bajtojn; ĉi tiu komunumo limigas eventojn al %2$d bajtoj. -Vi jam afiŝis %1$d eventojn de ĉi tiu tipo hodiaŭ (limo %2$d). -Nowhere-retejo -Nowhere-evento -Nowhere-monkolekto -Nowhere Butiko -Nowhere Peticio -Nowhere Mesaĝo -Nowhere Faleto -Nowhere Arto -Nowhere Forumo -Informoj de grupo ĝisdatigitaj -Malsukcesis ĝisdatigi: %1$s -Malsukcesis krei grupon: %1$s -Malsukcesis forlasi grupon: %1$s -Aldonante %1$s… -Malsukcesis aldoni %1$s: %2$s -nekonata eraro -Membro forigita -Malsukcesis forigi membron: %1$s -Administrantaj privilegioj donitaj -Malsukcesis doni administrantajn privilegiojn: %1$s -Administrantaj privilegioj revokitaj -Malsukcesis revoki administrantajn privilegiojn: %1$s -Ne membro de ĉi tiu grupo La Lightning-servo de la ricevanto ĉe %1$s ne disponeblas. Ĝi estis kalkulita el la Lightning-adreso „%2$s". Eraro: %3$s. Kontrolu ĉu la servilo funkcias kaj ĉu la Lightning-adreso estas ĝusta Ne povis solvi %1$s. Kontrolu ĉu vi estas konektita, ĉu la servilo funkcias, kaj ĉu la Lightning-adreso %2$s estas ĝusta.\n\nEscepto estis: %3$s Eraro dum analizado de JSON el la faktura alporto de %1$s. Kontrolu la Lightning-agordon de la uzanto Ne eblas krei Lightning-fakturon. Mesaĝo de %1$s: %2$s Ne eblas krei Lightning-fakturon de %1$s: Elemento pr ne trovita en la rezulta JSON. - - Ĉi tiu afiŝo havas pli ol %1$d kromnomon - Ĉi tiu afiŝo havas pli ol %1$d kromnomojn - - - %1$d aktivo enkludita - %1$d aktivoj enkluditaj - - - +%1$d\nrespondo - +%1$d\nrespondoj - - - Elsalutita · %d planita afiŝo forigita - Elsalutita · %d planitaj afiŝoj forigitaj - - - Vi havas %d planitan afiŝon, kiu ankoraŭ ne estis publikigita. Elsalutado permanente forigos ĝin. - Vi havas %d planitajn afiŝojn, kiuj ankoraŭ ne estis publikigitaj. Elsalutado permanente forigos ilin. - - - %d en atendovico - %d en atendovico - - - · %d sendenda en 1h - · %d sendendan en 1h - - - al %d relay - al %d relays - - - Ĉi tiu nApplet volas pagi Lightning-fakturon por %1$d sat. - Ĉi tiu nApplet volas pagi Lightning-fakturon por %1$d sats. - - - %1$d aŭskultanto - %1$d aŭskultantoj - - - %1$d epizodo - %1$d epizodoj - - - %1$d trako - %1$d trakoj - - - Konektita al %1$d enirkest-relay - Konektita al %1$d enirkest-relays - - - Konektita al %1$d relay - Konektita al %1$d relays - - - %1$d trako - %1$d trakoj - - - +%1$d plia trako - +%1$d pliaj trakoj - - - +%1$d plia - +%1$d pliaj - - - Rekomendita de %1$d alia - Rekomendita de %1$d aliaj - - - Sendi %1$s sats, %2$d maniero - Sendi %1$s sats, %2$d manieroj - - - Uzi la %1$d-vojan Zap-disigon de ĉi tiu noto - Uzi la %1$d-vojan Zap-disigon de ĉi tiu noto - - - Disigo inter %1$d ricevanto - Disigo inter %1$d ricevantoj - - - Preterpasante %1$d ricevanton kun nur Lightning-adreso — la ĉenereto bezonas Nostr-publikan ŝlosilon por derivi la adreson. - Preterpasante %1$d ricevantojn kun nur Lightning-adreso — la ĉenereto bezonas Nostr-publikan ŝlosilon por derivi la adreson. - - - Pago sendita (%1$d el %2$d kvitanco publikigita), sed la sekva kvitanco ne povis esti publikigita - Pago sendita (%1$d el %2$d kvitancoj publikigitaj), sed la sekva kvitanco ne povis esti publikigita - - - %1$s, %2$d evento - %1$s, %2$d eventoj - - - Komenciĝas post %1$d minuto - Komenciĝas post %1$d minutoj - - - %1$d min - %1$d min - - - %1$d minuto - %1$d minutoj - - - %1$d horo - %1$d horoj - - - %1$d tago - %1$d tagoj - - - %1$d semajno - %1$d semajnoj - - - %1$d monato - %1$d monatoj - - - %1$d jaro - %1$d jaroj - - - %1$d monfarejo - %1$d monfarioj - - - %1$d atendata fakturo - %1$d atendataj fakturoj - - - Financoj konservitaj ĉe %1$d monfarejo, kiun vi ne uzas - Financoj konservitaj ĉe %1$d monfarioj, kiujn vi ne uzas - - - %1$d msg - %1$d msgs - - - %1$d membro - %1$d membroj - -Relay-babilejoj estas babilaj grupoj kontrolataj de sia hejma relay. - Ili estas videblaj al ĉiuj en Nostr kaj ĉiu ajn povas partopreni en ili. - Ili estas bonegaj por malfermitaj komunumoj pri specifaj temoj. Kelkaj el ĉi tiuj grupoj estas efemeraj - kaj tial babilmesaĝoj malaperas kun la tempo -Publikaj babilejoj estas videblaj al ĉiuj en Nostr kaj ĉiu ajn - povas partopreni en ili. Ili estas bonegaj por malfermitaj komunumoj pri specifaj temoj. - Moderado povas esti kontrolata per forigo de afiŝoj sur siaj relays -Enigu inter 1–3 relays, kiuj gastigas ĉi tiun grupon. - Nostr-klientoj uzas ĉi tiun agordon por scii, kie elŝuti mesaĝojn kaj kien sendi viajn mesaĝojn. -Amethyst ne povis trovi ajnajn monujo-aplikojn, kiuj subtenas Nostr Wallet Connect (NWC). -\n\nKion vi povas fari: -\n\t1. Kontrolu NWC-subtenon: Duoble kontrolu, ĉu via preferata monujo-aplikaĵo estas kongrua kun Nostr Wallet Connect. -\n\t2. Krei Konekton: Iru al via monujo-aplikaĵo kaj kreu novan NWC-konekton. -\n\t3. Ligi al Amethyst: Via monujo kutime donos al vi tri opciojn: -\n\t\t3.1 Aŭtomata Ligo: Butono por aŭtomate malfermi kaj konekti al Amethyst. Se jes, alklaku tiun butonon, malfermu Amethyst kaj alklaku konservi sur la nova ekrano. -\n\t\t3.2 Mana Ligo: Konekta URI, kiun vi povas kopii kaj alklaki la algluu-ikonon sur ĉi tiu ekrano por rekte enigi ĝin. -\n\t\t3.3 QR-Kodo: La monujo kreas QR-kodon, kiun vi povas legi per la QR-koda butono sur ĉi tiu ekrano. - diff --git a/amethyst/src/main/res/values-es-rES/strings.xml b/amethyst/src/main/res/values-es-rES/strings.xml index de87b0316e..ac0333e864 100644 --- a/amethyst/src/main/res/values-es-rES/strings.xml +++ b/amethyst/src/main/res/values-es-rES/strings.xml @@ -1,116 +1,12 @@ - - Esta publicación tiene más de %1$d hashtag - Esta publicación tiene más de %1$d hashtags - - - %1$d activo incluido - %1$d activos incluidos - - - +%1$d\nrespuesta - +%1$d\nrespuestas - - Spam - El número de eventos de spam procedentes de este relé - Suplantación de identidad - Comportamiento ilegal - Solicitar eliminación - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder responder - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder impulsar publicaciones. - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para indicar que te gustan las publicaciones. - Falta la configuración de zaps por defecto. Mantén pulsado unos segundos para cambiarla - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder enviar zaps. - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder seguir a otros usuarios. - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder dejar de seguir a otros usuarios. - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder ocultar una palabra o frase. - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder mostrar una palabra o frase. - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder subir contenido. - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder firmar eventos. - Descifrado no autorizado - El firmante no autorizó un descifrado necesario para realizar esta operación. Activa el descifrado NIP-44 en tu aplicación de firmante e inténtalo de nuevo - No se ha encontrado el firmante. - ¿Se ha desinstalado la app del firmante? Comprueba si el firmante está instalado y tiene esta cuenta. Cierra sesión y vuelve a iniciar sesión en la app del firmante si ha cambiado. - El firmante externo devolvió una carga útil que no concuerda con la solicitud. Es posible que haya un error, ya sea en Amethyst o en el firmante. - Zaps - Impulsar Impulsada edición #%1$s - Proponer una edición - Añadir - Error al analizar el mensaje de error - Perfil - Filtros de seguridad - Solicitando factura… - El servicio de débito no completó el pago. - ¿Pagar %1$s por %2$s? - ¿Pagar esta factura por %1$s? - Introduce una cantidad válida para esta oferta. - Único - Diario - Semanal - Mensual - Pagar - Pagando por %1$s… - Pago fallido - Disponible para este destinatario: %1$s sats - Transacción: %1$s - "Imagen de vista previa para %1$s" - Descripción - ¿Qué tienes en mente? - Escribir un mensaje… - Publicar Guardar - Enviar - Crear Cambiar nombre - Cancelar - Error - Errores - Porcentaje de conexiones exitosas al relé - Guardar en el teléfono - Imagen guardada en la galería - La descarga del vídeo ha comenzado… - La descarga del contenido multimedia ha comenzado… - Fijar arriba - Eliminar fijado - Error al guardar la imagen - Video guardado en la galería de videos del teléfono - Error al guardar el video - PDF guardado en Descargas/Amethyst - Error al guardar el PDF - No se ha encontrado ninguna aplicación de cámara en este dispositivo - Haz clic y mantén pulsado para grabar un mensaje - Error de carga - Error al cargar el mensaje de voz - NIP-95 aún no es compatible con mensajes de voz - Error al cargar voz: %1$s - Ninguna - Grave - Aguda - Neutra - El usuario no tiene una configuración de dirección Lightning para recibir sats - "responde aquí… " - Conocidos - Nuevas solicitudes - Usuarios bloqueados - Temas nuevos - Conversaciones - Más opciones - Mostrar código QR de clave privada - Mostrar código QR de clave privada cifrada - Seguir - Seguir también - Ocultar contraseña - Clave inválida - Clave inválida: %1$s - Se requiere una contraseña - Se requiere la clave - Se requiere un nombre @@ -119,213 +15,21 @@ Nuevo perfil de chat: - Salir - Dejar de seguir - Chat temporal - Chat en relé - Chats en relé - Los chats en relé son grupos de chat controlados por su relé de origen. - Son visibles para todos los usuarios de Nostr y cualquiera puede participar en ellos. - Son ideales para comunidades abiertas en torno a temas específicos. Algunos de estos grupos son efímeros - y, por lo tanto, los mensajes del chat desaparecen con el tiempo - Chat público - Grupo MLS - Metadatos públicos del chat - Los chats públicos son visibles para todos en Nostr y cualquiera - puede participar en ellos. Son ideales para comunidades abiertas alrededor de temas específicos. - La moderación puede controlarse eliminando publicaciones en sus relés. - Relés - Inserta entre 1 y 3 relés que alojan este grupo. - Los clientes de Nostr utilizan esta configuración para saber de dónde descargar y adónde enviar los mensajes. - Eliminar - nunca - ahora - h - m - d - Desnudos - Blasfemias / Discurso de odio - Claves de respaldo - Error al cifrar la clave privada - Clave secreta (nsec) copiada al portapapeles - Copiar mi clave secreta - Autenticación fallida - El sistema biométrico no pudo autenticar al propietario de este teléfono - El sistema biométrico no pudo autenticar al propietario de este teléfono. Error: %1$s - Texto de nota copiado al portapapeles - \@npub del autor copiado al portapapeles - ID de nota copiada (@note1) al portapapeles - "<Unable to decrypt private message>\n\nTe citaron en una conversación privada o encriptada entre %1$s y %2$s." - Cuentas - Navegar - Tú - Tablones - Crear - Sistema - Volver - Compartir enlace del navegador - Compartir - Compartir como imagen - Compartir como Url de Imagen - ID de la nota - Eliminar - Silenciar hilo - Reactivar hilo - - Bloquear - Marcadores - Los marcadores se migraron correctamente - Borradores - Publicaciones programadas - Programar publicación - Cancelar programación - Las publicaciones programadas pueden no realizarse hasta que vuelvas a abrir la aplicación. Habilita la activación en \"Configuración → Preferencias de interfaz de usuario\" para garantizar una programación en segundo plano fiable. - Las publicaciones programadas pueden no realizarse hasta que vuelvas a abrir la aplicación. Las publicaciones programadas de otras cuentas no se activarán mientras esta cuenta esté activa. Habilita la activación en \"Configuración → Preferencias de interfaz de usuario\" para garantizar una programación en segundo plano fiable. - %1$s · en %2$s - %1$s · hace %2$s - Mañana - Sesión cerrada - - Sesión cerrada · %d publicación programada eliminada - Sesión cerrada · %d publicaciones programadas eliminadas - - Se realizó la publicación programada - Fallo en la publicación programada - Publicaciones programadas - Notificaciones cuando una publicación programada se realiza o no. - Enviar ahora - Error: %1$s - Programadas - Enviando… - Error - Enviada - Cancelada - - Tienes %d publicación programada que aún no se ha publicado. Cerrar sesión la eliminará permanentemente. - Tienes %d publicaciones programadas que aún no se han publicado. Cerrar sesión las eliminará permanentemente. - - - %d en cola - %d en cola - - - · %d vence en 1h - · %d vencen en 1h - - - a %d relé - a %d relés - - ID de nota copiado - Encuestas - Abiertas - Cerradas - Insignias - Comunidades - Nueva comunidad - Editar comunidad - Moderadores - Relés - Reglas verificables (opcional) - Kinds de eventos permitidos - Texto corto (1) - Artículo de formato extenso (30023) - Publicación de imagen (20) - Publicación de video (21) - Vídeo corto (22) - Comentario de la comunidad (1111) - Usuarios bloqueados - Portal de red de confianza (opcional) - Tamaño máximo de evento global (opcional) - Nueva Insignia - Insignia de premio - Insignias del perfil - Imágenes - Entrenamientos - Nuevo entrenamiento - Carrera - Caminata - Ciclismo - Senderismo - Natación - Remo - Fuerza - Yoga - Meditación - Dieta - Ayuno - Circuito - EMOM - AMRAP - Apps Apps - nApplets - nSites - Navegador - Cargando a través de Tor. Toca para usar la web abierta. - Cargando a través de la web abierta. Toca para usar Tor. - Favoritos - Descubre apps web - Aplicaciones favoritas - Añadir a favoritos - Eliminar de favoritos - Se carga a través de Tor. - Se carga a través de la web abierta. - Publicado en los relays - Se ha subido un archivo - Se ha realizado un pago - Esa aplicación aún no está cargada. Inténtalo de nuevo en un momento. - Recientes Permisos de nApplet Aún no hay permisos de nApplet Los permisos que concedas a nApplets aparecerán aquí. Olvidar este nApplet Bloqueado Revocar - nApplet %1$s… Shell - Identidad - Acciones del teclado - Relés - Almacenamiento - Pagos - Red - Subidas Preguntar qué funcionalidades están disponibles - Leer tu clave pública - Enlazar atajos de teclado - Leer, firmar y publicar tus eventos - Su propio almacenamiento privado - Pagar facturas de Lightning - Obtener recursos web y de Blossom - Subir archivos a tu servidor multimedia - Tema - Notificaciones - Mensajes - Combina los colores de la app - Mostrar notificaciones - Intercambiar mensajes con otros napplets Funcionalidad: %1$s - Este nApplet quiere leer tu clave pública. - Esta nApplet quiere leer tu perfil y datos de la cuenta. - Este nApplet quiere firmar y publicar un evento %1$d como tú. - Este nApplet quiere firmar y publicar un evento %1$d como tú: - Este nApplet quiere enviar un evento cifrado como tú. - Este nApplet quiere leer eventos de tus relés. - Este nApplet quiere utilizar su almacenamiento privado. Este nApplet quiere pagar una factura Lightning. - Este nApplet quiere obtener un recurso web. - Este nApplet quiere subir un archivo a tu servidor de medios. - Este nApplet quiere mostrarte notificaciones. - Este sitio quiere firmar un evento kind:%1$d con tu clave Nostr. - - Este nApplet quiere pagar una factura Lightning de %1$d sat. - Este nApplet quiere pagar una factura Lightning de %1$d sats. - - Cortos - Chats públicos - Paquetes de seguimiento - Transmisiones en vivo - Nests - Levantar la mano - Bajar la mano - Silenciar - Reactivar - No se pudo enviar el mensaje - Silenciar micrófono - Reactivar micrófono - Nests - Mantiene la reproducción de audio mientras una sala está abierta. - Nest conectado - Nest — En vivo - Toca para regresar. - Detener - levantó la mano - entró al escenario - está hablando - se unió al público - dejó el nest - Salir - No se pudo marcar la sala como cerrada. Saliendo de todos modos (la sala se cerrará automáticamente). - - %1$d oyente - %1$d oyentes - - Callar a este orador - Restaurar a este orador - Seguir - Dejar de seguir - Silenciar - Reactivar - No se ha podido guardar tu lista de servidores nest. Inténtalo de nuevo. - Servidores de nest - Tus servidores - Guardado como un evento reemplazable para que otros clientes puedan leer tus preferencias. - Servidores recomendados - Sugerencias integradas que puedes añadir a tu lista con un solo toque. - Videos - Música - Listas de reproducción - Episodios - Podcasts - - %1$d episodio - %1$d episodios - - Nueva pista de música - Nueva lista de reproducción - - %1$d pista - %1$d pistas - - Agregar a marcadores públicos - Eliminar de marcadores públicos - Fijar en el perfil - Desfijar del perfil - Nueva lista de marcadores - Metadatos de lista de marcadores - Conjuntos de hashtags - Nuevo conjunto de intereses - Renombrar - Hacer privado: envolver la nota como gift-wrap solo a los usuarios notificados - Hacer público - Las respuestas a una nota privada siempre permanecen privadas - Visible para Aún no hay destinatarios: solo tú podrás ver esta nota. Añade personas para compartirla. Añadir Eliminar usuario de las notificaciones Buscar y añadir un usuario para notificar - Los metadatos de las listas de marcadores son visibles para cualquier usuario de Nostr. Solo los miembros privados están cifrados. - Mover a público - Mover a privado - Recargar y enviar zap - Enviar zap - Recargar %1$s sats en %2$s y enviar zap de %3$s %4$s sats · comisión ≈ %5$s sats - Opción %s - (0–100)% - Opción simple - Opción múltiple - No se puede votar - Encuesta cerrada para votos nuevos - Solo se permite un voto por usuario en este tipo de encuesta - Los autores de encuestas no pueden votar en ellas. - ¿Qué significa esto? - Este contenido es el mismo desde la publicación - Este contenido ha cambiado. Es posible que el autor no haya visto o aprobado el cambio. - Añadir contenido multimedia - Añadir imagen - Añadir vídeo - Añadir documento - Servidor de archivos - Elegir un servidor para cargar este archivo - Servidores multimedia Configura tus servidores preferidos para subir contenido multimedia. Servidores multimedia recomendados Lista predeterminada de Amethyst. Puedes agregarlos individualmente o añadir la lista. - Objetivos de pago - Añadir direcciones de pago para diferentes redes (por ejemplo, Bitcoin, Lightning o Ethereum). - No se ha encontrado ninguna aplicación para gestionar este pago. Instala un monedero compatible. - No hay ninguna aplicación instalada para gestionar pagos de %1$s. Instala un monedero compatible. - No se puede abrir el pago - Opciones de privacidad - Todos los seguidos - Todos los seguidos - Lista de seguidos predeterminada - A mi alrededor - Global - Curada - Mía - Lista de silenciados - Nueva lista de seguimiento - Nuevo paquete de seguimiento - Editar lista - El puerto predeterminado es 9050 - Puerto Socks de Orbot - Motor de Tor activo - Usar la versión interna u Orbot - Preconfiguración de Tor y privacidad - Modificar rápidamente todos los ajustes a continuación - Url/Relés tipo onion - Usar Tor para cualquier URL .onion - Relés DM - Forzar Tor para enviar y recibir mensajes directos - Relés no confiables - Forzar Tor en la bandeja de salida/entrada - Relés de confianza - Forzar Tor en todos los relés de tus listas - Imágenes de perfil - Forzar Tor al cargar imágenes de perfil - Vistas previas de URL - Forzar Tor al cargar vistas previas de URL - Imágenes - Forzar Tor al cargar imágenes - Videos - Forzar Tor al cargar videos - Operaciones monetarias - Forzar Tor en transferencias de zaps, Lightning y Cashu - Verificación de dirección de Nostr - Forzar Tor al verificar direcciones NIP-05 - Subidas multimedia - Forzar Tor al subir contenido - Interno - Orbot - Desactivado - Básico - Predeterminado - Todo menos media - Privacidad total - Personalizado - Usar Tor cuando lo requiera el servidor - Ocultar tu IP de relés aleatorios - Ocultar tu IP de todo, excepto imágenes y videos - Oculta tu IP en todas las conexiones - Crea el tuyo - Mensajes privados - Te notifica cuando llega un mensaje privado - Zaps recibidos - Te notifica cuando alguien te zapea - %1$s sats - De %1$s - por %1$s - Responder - Marcar como leído - Nuevos mensajes - Nuevos zaps - Reacciones - Te notifica cuando alguien reacciona a tu publicación - %1$s reaccionó a tu publicación - para %1$s - Nuevas reacciones - Ajedrez - Te notifica sobre eventos de partidas de ajedrez - %1$s ha aceptado tu desafío de ajedrez - %1$s ha movido — es tu turno - Actualizaciones de ajedrez - Respuestas - Te notifica cuando alguien responde a tu publicación %1$s respondió en: %1$s - Nuevas respuestas - Menciones - Te notifica cuando alguien te menciona o te cita en una publicación - %1$s te mencionó - Nuevas menciones @@ -556,37 +81,6 @@ - Llamadas entrantes - Notificaciones de llamadas de voz y vídeo entrantes - Llamada entrante - Llamada de voz entrante… - Llamada de vídeo entrante… - Llamada con %1$s - Llamadas - Notificación de llamada en curso - Colgar - Aceptar - Rechazar - Silenciar - Reactivar - Cámara activada - Cámara desactivada - Altavoz - Auricular - Bluetooth - Amethyst necesita acceso al micrófono para iniciar una llamada de voz. Actívalo en los ajustes de la aplicación. - Amethyst necesita acceso a la cámara y al micrófono para iniciar una videollamada. Actívalos en los ajustes de la aplicación. - Ajustes de llamada - Mantiene las conexiones a tus relays de bandeja de entrada activas para notificaciones en tiempo real - Notificaciones de Amethyst activas - - Conectado a %1$d relay de bandeja de entrada - Conectado a %1$d relays de bandeja de entrada - - - Conectado a %1$d relay - Conectado a %1$d relays - - Conectando a los relays de bandeja de entrada… Servicio de notificaciones permanente Mantiene una conexión persistente a tus relays de bandeja de entrada para la entrega instantánea de notificaciones. Muestra una notificación en curso. Consume más batería, pero garantiza que nunca te pierdas un mensaje. - Dividir notificaciones por Seguidos - Muestra dos pestañas de notificaciones: Siguiendo (personas que sigues) y Todos. El indicador de no leídos se ilumina solo para la actividad de las personas que sigues. - Mostrar mensajes - Incluye mensajes directos y de grupo en la pestaña de Notificaciones. Desactívalo para mantener los mensajes solo en la pestaña de Mensajes. - Notificar: - Hoy - Ocultar - Mostrar - Advertir - Filtrar spam - Oculta las publicaciones de desconocidos que sean exactamente iguales 5 o más veces. - Añadir etiqueta de cliente a mis eventos - Cuando está activado, Amethyst añade una etiqueta de cliente NIP-89 a los eventos que publicas. - Advertir sobre reportes - Muestra un mensaje de advertencia cuando los mensajes tienen 5 o más reportes de los usuarios que sigues. - Ocultar publicaciones que infrinjan las normas de la comunidad - Elimina publicaciones de los feeds de comunidades cuando la comunidad publica un documento de normas NIP-9B y un evento no lo cumple. No tiene efecto cuando una comunidad no tiene normas estructuradas. - Preferencias de filtrado - Contenido bloqueado - Aún no has bloqueado a ningún usuario. - Ninguna cuenta ha sido marcada como spam en esta sesión. - No hay palabras ocultas. Añade una palabra a continuación para ocultar las publicaciones que la contengan. - No hay tipos de reacción preseleccionados para este usuario. Deja presionado el botón de corazón para cambiarlos. - Relé de lectura - Relé de escritura - La cantidad en bytes que se enviaron a este relé, incluyendo filtros y eventos - La cantidad en bytes que se recibieron de este relé, incluyendo filtros y eventos - Política de privacidad - Estándares de seguridad infantil - Información y avisos legales - Token de Cashu - La dirección de Lightning no se ha configurado - Relés - Paquetes de seguimiento - Lecturas - Algoritmos de fuentes - Mercado - Transmisiones en vivo - Comunidades - Chats - Contenido delicado - Agrega una advertencia de contenido sensible antes de mostrarlo - Preferencias de interfaz de usuario Preferencias de la app - Traducciones - Reacciones - Configuración - Configuraciones de la cuenta - Ajustes de la app - Zona peligrosa - Restablecer estado de Marmot - Estado de Marmot restablecido. - Error al restablecer el estado de Marmot: %1$s - Siempre - WiFi sin medición - Nunca - Completo - Simplificado - Rendimiento - Clásico - Moderno - Sistema - Claro - Oscuro - Wallet Connect - Tema - Vista previa de imagen - Reproducción de vídeo - Reproducción automática de vídeos - Vista previa de URL - Desplazamiento inmersivo - Ocultar barras de navegación al desplazarse - Modo de interfaz - Elegir el estilo de publicación - Estilo de galería de perfil - Elige el estilo de galería - Spammers - Silenciado. Hacer clic para reactivar el sonido. - Sonido activado. Hacer clic para silenciar. - Retroceder %d segundos - Adelantar %d segundos - Publicación con ubicación exclusiva - Solo los seguidores de la ubicación la verán. Tus seguidores generales no la verán. - - %1$d pista - %1$d pistas - - - +%1$d pista más - +%1$d pistas más - - Subir una imagen de portada - Elige una imagen cuadrada como portada de esta pista. - Subir un archivo de audio - Elige un MP3, WAV o FLAC. Se subirá a tu servidor multimedia al guardar. - Subiendo portada + audio y publicando. Esto continuará aunque salgas de la pantalla. - Editar lista de reproducción - Subir una imagen de portada - Elige una imagen cuadrada como portada de esta lista de reproducción. - Subiendo portada y publicando. Esto continuará aunque salgas de la pantalla. Público Grupo Privado - Asunto - No se puede subir - Ingresa primero el destino del mensaje - Cartera no encontrada - Amethyst no encontró ninguna aplicación de cartera compatible con Nostr Wallet Connect (NWC). -\n\nQué puedes hacer: -\n\t1. Verificar la compatibilidad con NWC: Comprueba que tu aplicación de cartera preferida es compatible con Nostr Wallet Connect. -\n\t2. Crear conexión: Ve a tu aplicación de cartera y crea una nueva conexión NWC. -\n\t3. Vincular con Amethyst: Tu cartera normalmente te ofrecerá tres opciones: -\n\t\t3.1 Enlace automático: Un botón para abrir y conectar automáticamente a Amethyst. Si es así, pulsa ese botón, abre Amethyst y guarda en la nueva pantalla. -\n\t\t3.2 Enlace manual: Un URI de conexión que puedes copiar y pegar usando el icono de pegado en esta pantalla para introducirlo directamente. -\n\t\t3.3 Código QR: La cartera genera un código QR que puedes leer con el botón de código QR en esta pantalla. - - Tema oscuro, claro o del sistema - Cargar automáticamente imágenes y GIF - Reproducir automáticamente videos y GIF - Reproduce vídeos automáticamente cuando son visibles en pantalla - Mostrar vistas previas de URL - Copiar al portapapeles - Copiado al portapapeles - Compartir o guardar Enviar como MD - Media añadida - Contenido multimedia añadido a la galería del perfil - No se pudo enviar el zap - Lightning no está configurado - El usuario %1$s no tiene una dirección de Lightning configurada para recibir sats. - Error al abrir la aplicación firmante - No se pudo encontrar la aplicación firmante. Comprueba si no se desinstaló la aplicación. - No se puede reproducir este vídeo - El códec o formato no es compatible con este dispositivo (%1$s). Intenta abrirlo en tu navegador. - Abrir en el navegador - Solicitud de firma rechazada - Asegúrate de que la aplicación firmante haya autorizado esta transacción. - No se encontraron monederos para pagar una factura de Lightning (error: %1$s). Instala un monedero de Lightning para usar zaps. - No se encontraron monederos para pagar una factura de Lightning. Instala un monedero de Lightning para usar zaps. - No se pueden abrir enlaces de Blossom - No se encontraron aplicaciones de Blossom. Instala una aplicación local de Blossom para ver este archivo - Palabras ocultas - Hilos silenciados - No hay hilos silenciados - Imagen de perfil - Mostrar imágenes de perfil - No se pudo pagar la factura - No se pudo retirar - No se pudo canjear Cashu - La Mint proporcionó el siguiente mensaje de error: %1$s - Cashu recibido - Se enviaron %1$s sats a tu monedero (comisión: %2$s sats). - No se encontró ningún monedero de Cashu compatible en el sistema - No se puede obtener la factura de los servidores del destinatario - El proveedor de conexión de monedero devolvió el siguiente error: %1$s - No se pudo ensamblar la LNUrl desde la dirección de Lightning \"%1$s\". Comprueba la configuración del usuario. - No se ha podido obtener la factura de %1$s: %2$s - Error al analizar JSON desde %1$s. Comprueba la configuración de Lightning del usuario. - No se encontró la URL de devolución de llamada en la respuesta de %1$s. - Cantidad de factura incorrecta (%1$s sats) de %2$s. Debería haber sido %3$s. - No se pudo crear una factura de Lightning antes de enviar el zap. El monedero de Lightning del destinatario envió el siguiente error: %1$s. - Usuario de solo lectura - No hay reacciones configuradas - Notificaciones - Entrega - Visualización en la aplicación - Categorías - Mensaje de %1$s - Hola, %1$s, ¿esto todavía está disponible? - Ropa - Accesorios - Artículos electrónicos - Muebles - Objetos de colección - Libros - Mascotas - Deportes - Acondicionamiento físico - Arte - Artesanías - Hogar - Oficina - Comida - Varios - Otros - Error al subir contenido multimedia - No se pudo abrir el archivo comprimido - Error de carga: %1$s - El servidor no proporcionó una URL después de la carga - No se pudo descargar el contenido cargado desde el servidor - No se pudo comprobar el archivo descargado después de cargar: %1$s - Error al cargar a %1$s: %2$s - Error al eliminar: %1$s - El contenido multimedia es demasiado grande para NIP-95 - Cifrar archivos - Cifra los archivos antes de subirlos para mayor privacidad. Algunos servidores pueden no aceptar archivos cifrados en cuentas gratuitas. - Error al subir el archivo cifrado - Muchos servidores no aceptan archivos cifrados en cuentas gratuitas. Puedes volver a intentarlo sin cifrado. - Usa H.265/HEVC Codec - Mejor calidad en tamaños de archivos más pequeños, pero no todos los dispositivos admiten la reproducción H.265. - Convertir GIF a MP4 - Convierte GIF animados a vídeo MP4 para reducir el tamaño del archivo y mejorar la compatibilidad de reproducción. - Eliminar metadatos privados - Intenta eliminar los metadatos privados de los archivos multimedia compatibles antes de subirlos - No se pudieron eliminar los metadatos - Error al eliminar los metadatos privados del archivo multimedia. Subida cancelada. - Subida cancelada - No se pueden eliminar los metadatos del AVIF: %1$s - Inicio - Descubrir - Mensajes - Notificaciones - Calendarios - Listas de calendarios - Ajedrez - Cartera - Cartera Cashu (NIP-60) Clave nutzap (avanzado) Una clave privada separada usada únicamente para recibir nutzaps NIP-61. No es tu clave de identidad Nostr. Generar una nueva clave Clave privada P2PK (hex) - Editar mints Guardar cambios - - +%1$d más - +%1$d más - - - Recomendado por %1$d persona más - Recomendado por %1$d personas más - - Mints populares - Mints coincidentes - Recibido - Enviado - Publicar una solicitud de eliminación para tu recomendación kind:38000 de %1$s. Los relays que respetan NIP-09 la eliminarán. - Se recuperaron %1$s sats en %2$s pruebas. - ¿Pagar %1$s sat + hasta %2$s sat en comisiones? - Nutzap fallido - No hay clave pública de destinatario en la nota - Los nutzaps son públicos y revelarían esta nota privada. Usa un zap Lightning en su lugar. - No se puede construir la referencia del evento - Esperando a que se pague la factura… - Comprobando el mint… - Lento - Normal - Rápido - ~1 h - ~30 min - ~10 min - %1$s · %2$s sat/vB · %3$s - - Enviar %1$s sats, %2$d destinatario - Enviar %1$s sats, %2$d destinatarios - - - Usar la división de zap %1$d de esta nota - Usar la división de zap %1$d de esta nota - - - Divisiones entre %1$d destinatario - Divisiones entre %1$d destinatarios - - - Se omite %1$d destinatario solo con dirección Lightning — el onchain necesita una clave pública Nostr para derivar la dirección. - Se omiten %1$d destinatarios solo con dirección Lightning — el onchain necesita una clave pública Nostr para derivar la dirección. - - cargando saldo - construyendo la transacción - firmando - difundiendo - publicando el recibo - El backend de la cadena Bitcoin no está configurado - No se pudo cargar tu saldo de Bitcoin - No se pudo construir la transacción - La parte de un destinatario está por debajo del dust - No se pudo firmar la transacción - No se pudo difundir la transacción - Pago enviado, pero el recibo del zap no se pudo publicar - - Pago enviado (%1$d de %2$d recibo publicado), pero el siguiente recibo no se pudo publicar - Pago enviado (%1$d de %2$d recibos publicados), pero el siguiente recibo no se pudo publicar - - Importar seguidos - Nuevo producto - Nuevo artículo - Nuevo evento de calendario - Editar evento de calendario - Nuevo calendario - Editar calendario - Tablón - Mes - Semana - Día - - %1$s, %2$d evento - %1$s, %2$d eventos - - En curso ahora - %1$s · termina %2$s - Compartir evento de calendario - recordatorios_calendario - Recordatorios de calendario - Aviso cuando un evento al que asistirás está a punto de comenzar. - Evento de calendario - - Comienza en %1$d minuto - Comienza en %1$d minutos - - Error al subir la imagen - No se pudo subir la imagen seleccionada. Inténtalo de nuevo o pega una URL. - Recordatorios de calendario - Enviar recordatorios - Se enviará una notificación cuando un evento al que asistirás esté a punto de comenzar. - - %1$d min - %1$d min - - Abrir en mapas - Abrir enlace - Abrir todas las reacciones a esta publicación - Cerrar todas las reacciones a esta publicación - Zap - Barra de navegación inferior Arrastra para reordenar. Activa o desactiva para añadir o eliminar un elemento de la barra inferior. Con cero elementos la barra inferior se oculta. Reordenar Elige qué pestañas aparecen en la pantalla de inicio. Cuando solo hay una pestaña activa la barra de pestañas se oculta. - Todo - Interfaz del perfil Elige qué secciones y feeds aparecen en las pantallas de perfil de usuario. Todas las opciones están habilitadas de forma predeterminada. - Insignias del perfil - Recomendaciones de aplicaciones - Feed de zaps recibidos - Feed de seguidores - Fila de reacciones - Botones del reproductor de vídeo - Visualizador de audio - Fecha de expiración - Dirección inválida - Amethyst recibió un URI para abrir pero era inválido: %1$s - Relés de entrada DM - Relés de búsqueda - Algunas buenas opciones son: \n%1$s - Relays de salida - Relays de entrada - Configuración de relés - Relés de inicio públicos - El usuario está publicando su contenido a estos relés - Este tipo de relé almacena todo tu contenido. Amethyst enviará tus publicaciones aquí y otros usarán estos relés para encontrar tu contenido. Inserta entre 1 y 3 relés. Pueden ser personales, de pago o públicos. - Relés de buzón de entrada públicos - El usuario está recibiendo notificaciones en estos relés - Este tipo de relé recibe todas las respuestas, comentarios, me gusta y zaps de tus publicaciones. Inserta entre 1 y 3 relés y asegúrate de que acepten publicaciones de cualquier persona. - Relés de entrada DM - El usuario recibe mensajes directos en estos relés - Inserta entre 1 y 3 relés para que te sirvan de buzón de entrada privado. Otros usarán estos relés para enviarte mensajes directos. Los relés del buzón de entrada para mensajes directos deberían aceptar cualquier mensaje de cualquier persona, pero solo te permiten descargarlos. Algunas buenas opciones son:\n - inbox.nostr.wine (de pago)\n - you.nostr1.com (relés personales; de pago) - Paquetes de claves - Relays de KeyPackage - Relays donde se publican tus MLS KeyPackages (MIP-00). Otros usuarios obtienen estas KeyPackages para invitarte a chats de grupo Marmot. Introduce entre 1 y 3 relays que acepten eventos KeyPackage de tu parte y permitan lecturas públicas. - Relés privados - Inserta entre 1 y 3 relés para almacenar eventos que nadie más pueda ver, como los borradores o la configuración de la app. Lo ideal es que estos relés sean locales o requieran autenticación antes de descargar el contenido de cada usuario. - Relés conectados - Lista actual de relés en uso - Relés de búsqueda - Lista de relés que se usarán al buscar contenido o usuarios. El etiquetado y la búsqueda no funcionarán si no hay opciones disponibles. Asegúrate de que implementen NIP-50. - Relés locales - Lista de relés que se utilizan en este dispositivo. - Reenviar perfiles al relay local - Enviar todos los eventos de perfil (kind 0) recibidos a tu relay local - Relés de confianza - Relés en que confías para no necesitar una conexión Tor para - Feeds de relays favoritos - Relays a los que sueles ir para ver su feed global - Relés de proxy - Relés recopiladores que la app debe usar para descargar tus fuentes, como filter.nostr.wine. Esto reemplaza el modelo de bandeja de salida y hará que la app se conecte solo a los relés de tus listas. - Relés de transmisión - Relés que se especializan en enviar tus notas a todos los demás relés, como sendit.nosflare.com. Amethyst agregará este relé a todos los eventos nuevos que crees. - Relés de indexador - Relés que se especializan en alojar los metadatos y las listas de retransmisión de todos, como purplepag.es. Amethyst usará estos relés para encontrar usuarios que no estén en tus listas. - Relés bloqueados - Amethyst nunca se conectará a estos relés - Exportar configuración de relays Web: Resumen Acerca de Enlaces Mantenedores Temas - Prueba de marca de tiempo - Hay prueba de que esta publicación se firmó en algún momento antes de %1$s. La prueba se marcó en la cadena de bloques de Bitcoin en esa fecha y hora. - Editar publicación - No es posible responder a un borrador de nota - No es posible citar un borrador de nota - No es posible reaccionar a un borrador de nota - No es posible zapear un borrador de nota - Borrador de nota - Solicitud incorrecta: el servidor no puede procesar o no procesará la solicitud. - No autorizado: el usuario no tiene credenciales de autenticación válidas. - Pago requerido: el servidor requiere pago para completar la solicitud. - Prohibido: el usuario no tiene derechos de acceso para realizar la solicitud. - No se encontró: el servidor no puede encontrar la dirección solicitada. - Método no permitido: el servidor admite el método de solicitud, pero no el recurso de destino. - No aceptable: el servidor no encuentra ningún contenido que satisfaga la solicitud. - Autenticación de proxy requerida: el usuario no tiene credenciales de autenticación válidas. - Tiempo de espera de la solicitud: se agotó el tiempo de espera del servidor. - Conflicto: el servidor no puede satisfacer la solicitud porque hay un conflicto con el recurso. - Borrado: el contenido solicitado se eliminó permanentemente del servidor y no se restablecerá. - Longitud requerida: el servidor rechaza la solicitud porque requiere una longitud definida. - Precondición fallida: las precondiciones de la solicitud en los campos de cabecera que el servidor no cumple. - Carga demasiado grande: la solicitud supera los límites definidos por el servidor, por lo que este se niega a procesarla. - URI demasiado largo: la URL solicitada por el cliente es demasiado larga para que el servidor pueda procesarla. - Tipo de contenido multimedia no admitido: la solicitud usa un formato multimedia que el servidor no admite. - Intervalo no satisfactorio: el servidor no puede satisfacer el valor indicado en el campo de cabecera del intervalo de la solicitud. - Expectativa fallida: el servidor no puede cumplir los requisitos indicados por el campo de cabecera de la solicitud Expect. - Actualización requerida: el servidor se niega a procesar la solicitud utilizando el protocolo actual a menos que el cliente se actualice a un protocolo diferente. - Error interno del servidor: el servidor encontró un error inesperado y no puede completar la solicitud. - No implementado: el servidor no puede completar la solicitud o no reconoce el método de solicitud. - Gateway incorrecto: el servidor actúa como gateway y obtuvo una respuesta no válida del host. - Servicio no disponible: esto ocurre a menudo cuando un servidor está sobrecargado o caído por mantenimiento. - Tiempo de espera del gateway: el servidor estaba actuando como gateway o proxy y se agotó el tiempo de espera de una respuesta. - Versión HTTP no admitida: el servidor no admite la versión HTTP de la solicitud. - La variante también negocia: el servidor tiene un error de configuración interno. - Almacenamiento insuficiente: el servidor no dispone de almacenamiento suficiente para procesar correctamente la solicitud. - Bucle detectado: el servidor detecta un bucle infinito al procesar la solicitud. - Autenticación de red requerida: el cliente debe estar autenticado para acceder a la red. Servidores Blossom Añade tantos servidores como quieras. Puedes elegir cuál utilizar más tarde al subir tu foto. - Agregar servidor NIP-96 - Añadir un servidor Blossom Descargar - Error al abrir el archivo - No hay aplicaciones torrent instaladas para abrir y descargar el archivo. - El evento no tiene suficiente información para crear un enlace magnético - Mis listas - Tablones - Hashtags - Conjuntos de intereses - Ubicaciones - Comunidades - Listas - Algoritmos de feed - Todos los algoritmos de feed favoritos - Relés - Algoritmos de feed favoritos - Mensaje privado - Mensaje público - No se puede compartir la imagen, inténtalo de nuevo más tarde… - No se puede compartir el vídeo, por favor inténtalo de nuevo más tarde… - Descargando vídeo… - No traducir del - Los idiomas que se muestran aquí no se traducirán. Selecciona un idioma para eliminarlo y traducirlo de nuevo. - Traducir a - Elige el idioma al que traducir el contenido. - Preferencias de visualización de idioma - Para cada par de idiomas traducidos, elige qué idioma mostrar primero. - Pausar - Reproducir - Este mensaje desaparecerá en %1$s - Metadatos de lista de seguidos - Los metadatos de las listas de seguidos pueden verlos todos en Nostr. Solo tus miembros privados están cifrados. - Metadatos del pack de seguidos - Los metadatos del pack de seguidos pueden verlos todos en Nostr y se publican frecuentemente en muchos sitios web como kits de inicio para nuevos usuarios. - Editar pack de seguidos - Expandir - Reintentar - Reacción - Publicación de voz - Respuesta de voz - Relés de salida - Aplicaciones - Recomendaciones de aplicaciones - Ajustes de usuario - Cabecera de audio - Pista de audio - Pista de música - Lista de reproducción - Episodio de pódcast - Programa de pódcast - Pódcasts creados - Pódcasts favoritos - Insignias concedidas - Definiciones de insignias - Conjunto de insignias aceptadas - Insignias del perfil - Relés bloqueados - Servidores Blossom - Servidores Nests - Autenticación Blossom - Relés de difusión - Lista de marcadores - Lista de marcadores antigua - Cita del día - Calendario - Cita - Confirmación de cita - Partidas de ajedrez - Autenticación de ajedrez - Relés favoritos - Desafíos de ajedrez - Aceptación de partida de ajedrez - Movimiento de ajedrez - Fin de partida de ajedrez - Oferta de tablas en ajedrez - Definición de canal - Ocultar mensaje del canal - Lista de canales - Mensaje del canal - Metadatos del canal - Silenciar usuario del canal - Archivo de mensaje directo - Mensaje directo - Relés DM - Clasificados - Comentarios - Definición de comunidad - Lista de comunidades - Publicación de comunidad - Lista de seguidos - Eliminaciones - Borradores - Packs de emojis - Lista de packs de emojis - Chat efímero - Salas de chat efímeras - Cabeceras de archivo - Galería del perfil - Servidores de archivos - Datos blob - Cabeceras blob - Datos médicos - Packs de seguidos - Republicaciones (16) - Seguidos por geohash - GiftWraps - Incidencia de Git - Parche de Git - Repositorio de Git - Respuesta de Git - Solicitud de incorporación - Actualización de solicitud de incorporación - Objetivos de Zap - Seguidos por hashtag - Destacados - Autenticación HTTP - Lista de relés de índice - Prólogo de aventura - Escena de aventura - Lectura de aventura - Marcadores con nombre - Chats en directo - Transmisiones en directo - Zaps - Solicitud NWC - Respuesta NWC - Zaps privados - Solicitud de Zap - Blogs - Sala de reuniones - Presencia en sala - Espacio de reuniones - Perfil - Lista de silenciados - NNS - NIP - Nostr Connect - Estado DVM - Solicitud de contenido DVM - Respuesta de contenido DVM - Solicitud de usuario DVM - Respuesta de usuario DVM - OTS - Pagar a - Listas de personas - Imágenes - Entrenamientos - Fijados - Encuesta de Zap - Encuesta - Respuesta de encuesta - Mensajes directos NIP-04 - Relés privados - Relés proxy - Mensaje público - Reacciones - Tarjeta de contacto - Autenticación de relé - Descubrimiento de relés - Anuncio del monitor de relés - Conjunto de relés - Informes - Republicaciones - Eliminación de usuario - Sellos - Relés de búsqueda - Estado del usuario - Notas - Ediciones - Torrents - Comentarios de torrent - Relés de confianza - Proveedores de confianza - Vídeo (Repl) - Vídeo - Mensaje de voz - Respuesta de voz - Marcador web - %1$d%% de disponibilidad - Ajustes de Namecoin - Sincronización de relés - Explorador de Bitcoin (OTS) - eventos tuyos - eventos para ti - eventos buscables - perfiles - listas de salida - Visto por última vez hace %1$s - Visto por última vez el %1$s (hace %2$s) - Visto ahora mismo - Nunca visto - - %1$d minuto - %1$d minutos - - - %1$d hora - %1$d horas - - - %1$d día - %1$d días - - - %1$d semana - %1$d semanas - - - %1$d mes - %1$d meses - - - %1$d año - %1$d años - - - %1$d factura pendiente - %1$d facturas pendientes - - - Fondos en %1$d mint que no usas - Fondos en %1$d mints que no usas - - %1$s sat movidos a %2$s. - Emitir al dispositivo - Detener emisión - Subida HLS - Subiendo %1$s (%2$d de %3$d) - Atestación - Solicitud de atestación - Recomendación del atestador - Competencia del atestador - Marcadores web - Añadir marcador web - Editar marcador web - %1$s financiados del objetivo de %2$s sats - Nuevo objetivo - Solicitud de desaparición - Solicitud de desaparición enviada - Historial de desapariciones - Usuarios - Eventos - Tipos - Ajustes - Proponer mejoras de texto - Usa un modelo de IA en el dispositivo para proponer correcciones de texto y cambios de tono. - Difusiones rastreadas - Usa el emisor rastreado al enviar eventos. Muestra el progreso en tiempo real y el estado por relay durante la difusión. - Sugerir entrenamientos para compartir - Lee los entrenamientos finalizados de Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) y sugiere compartirlos como publicación. El permiso se solicita solo cuando te conectas. - Ajustes de composición - Crear borradores automáticamente - Guarda un borrador automáticamente cuando escribes o abandonas el compositor con texto no enviado, y lo envía a tus relays de bandeja de salida privada. - Nuevo paquete de emojis - Editar paquete de emojis - Mis paquetes de emojis - Los emojis públicos son visibles para todos y aparecen en tu menú de reacciones y en el selector de autocompletado \":\" cuando este paquete está en tu lista de emojis. - Los emojis privados se almacenan cifrados en los relays y solo son visibles para ti. Aparecen en tu menú de reacciones y en el autocompletado \":\" igual que los públicos. - El borrador ocupa %1$d bytes; esta comunidad limita este tipo a %2$d bytes. - El borrador ocupa %1$d bytes; esta comunidad limita los eventos a %2$d bytes. - Ya has publicado %1$d eventos de este tipo hoy (límite %2$d). - Sitio Nowhere - Evento Nowhere - Recaudación Nowhere - Tienda Nowhere - Petición Nowhere - Mensaje Nowhere - Drop Nowhere - Arte Nowhere - Foro Nowhere - - %1$d miembro - %1$d miembros - - Información del grupo actualizada - Error al actualizar: %1$s - Error al crear el grupo: %1$s - Error al salir del grupo: %1$s - Añadiendo %1$s… - Error al añadir %1$s: %2$s - error desconocido - Miembro eliminado - Error al eliminar miembro: %1$s - Privilegios de administrador concedidos - Error al conceder administrador: %1$s - Privilegios de administrador revocados - Error al revocar administrador: %1$s - No eres miembro de este grupo El servicio de Lightning del destinatario en %1$s no está disponible. Se calculó a partir de la dirección de Lightning \"%2$s\". Error: %3$s. Comprueba si el servidor está activo y si la dirección de Lightning es correcta. No se pudo resolver %1$s. Comprueba si tienes conexión, si el servidor está activo y si la dirección de Lightning \"%2$s\" es correcta..\n\nLa excepción fue: %3$s Error al analizar JSON desde la recuperación de factura de %1$s. Comprueba la configuración de Lightning del usuario. diff --git a/amethyst/src/main/res/values-es-rMX/strings.xml b/amethyst/src/main/res/values-es-rMX/strings.xml index 274af176d4..fbc5066d89 100644 --- a/amethyst/src/main/res/values-es-rMX/strings.xml +++ b/amethyst/src/main/res/values-es-rMX/strings.xml @@ -1,116 +1,12 @@ - - Esta publicación tiene más de %1$d hashtag - Esta publicación tiene más de %1$d hashtags - - - %1$d activo incluido - %1$d activos incluidos - - - +%1$d\nrespuesta - +%1$d\nrespuestas - - Spam - El número de eventos de spam procedentes de este relé - Suplantación de identidad - Comportamiento ilegal - Solicitar eliminación - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder responder - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder impulsar publicaciones - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para indicar que te gustan las publicaciones. - No has configurado la cantidad de zaps. Mantén presionado el botón para cambiarla. - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder enviar zaps. - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder seguir a otros usuarios. - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder dejar de seguir a otros usuarios. - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder ocultar una palabra o frase. - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder mostrar una palabra o frase. - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder subir contenido. - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder firmar eventos. - Descifrado no autorizado - El firmante no autorizó un descifrado necesario para realizar esta operación. Activa el descifrado NIP-44 en tu aplicación de firmante e inténtalo de nuevo - No se ha encontrado el firmante. - ¿Se desinstaló la app del firmante? Comprueba si el firmante está instalado y tiene esta cuenta. Cierra sesión y vuelve a iniciar sesión en la app del firmante si cambió. - El firmante externo devolvió una carga útil que no concuerda con la solicitud. Es posible que haya un error, ya sea en Amethyst o en el firmante. - Zaps - Impulsar Impulsada edición #%1$s - Proponer una edición - Agregar - Error al analizar el mensaje de error - Perfil - Filtros de seguridad - Solicitando factura… - El servicio de débito no completó el pago. - ¿Pagar %1$s por %2$s? - ¿Pagar esta factura por %1$s? - Introduce una cantidad válida para esta oferta. - Único - Diario - Semanal - Mensual - Pagar - Pagando por %1$s… - Pago fallido - Disponible para este destinatario: %1$s sats - Transacción: %1$s - "Vista previa de imagen de tarjeta para %1$s" - Descripción - ¿Qué estás pensando? - Escribir un mensaje… - Publicar Guardar - Enviar - Crear Cambiar nombre - Cancelar - Error - Errores - Porcentaje de conexiones exitosas al relé - Guardar en el teléfono - Imagen guardada en la galería - Comenzó la descarga del video… - Comenzó la descarga del contenido multimedia… - Fijar arriba - Eliminar fijado - Error al guardar la imagen - Video guardado en la galería de videos del teléfono - Error al guardar el video - PDF guardado en Descargas/Amethyst - Error al guardar el PDF - No se ha encontrado ninguna aplicación de cámara en este dispositivo - Haz clic y mantén presionado para grabar un mensaje - Error de carga - Error al cargar el mensaje de voz - NIP-95 aún no es compatible con mensajes de voz - Error al cargar voz: %1$s - Ninguna - Grave - Aguda - Neutra - El usuario no tiene configurada una dirección de Lightning para recibir sats - "responde aquí… " - Conocidos - Nuevas solicitudes - Usuarios bloqueados - Nuevos hilos - Conversaciones - Más opciones - Mostrar código QR de clave privada - Mostrar código QR de clave privada cifrada - Seguir - Seguir también - Ocultar contraseña - Clave inválida - Clave inválida: %1$s - Se requiere una contraseña - Se requiere la clave - Se requiere un nombre @@ -119,159 +15,7 @@ Nuevo perfil de chat: - Salir - Dejar de seguir - Chat temporal - Chat en relé - Chats en relé - Los chats en relé son grupos de chat controlados por su relé de origen. - Son visibles para todos los usuarios de Nostr y cualquiera puede participar en ellos. - Son ideales para comunidades abiertas en torno a temas específicos. Algunos de estos grupos son efímeros - y, por lo tanto, los mensajes del chat desaparecen con el tiempo - Chat público - Grupo MLS - Metadatos públicos del chat - Los chats públicos son visibles para todos en Nostr y cualquiera - puede participar en ellos. Son ideales para comunidades abiertas alrededor de temas específicos. - La moderación puede controlarse eliminando publicaciones en sus relés. - Relés - Inserta entre 1 y 3 relés que alojan este grupo. - Los clientes de Nostr utilizan esta configuración para saber de dónde descargar y adónde enviar los mensajes. - Eliminar - nunca - ahora - h - m - d - Desnudez - Groserías o lenguaje que incita al odio - Respaldar claves - Error al cifrar la clave privada - Clave secreta (nsec) copiada al portapapeles - Copiar mi clave secreta - Error de autenticación - El sistema biométrico no pudo autenticar al propietario de este teléfono - El sistema biométrico no pudo autenticar al propietario de este teléfono. Error: %1$s - Texto de la nota copiado al portapapeles - \@npub del autor copiado al portapapeles - ID de la nota (@note1) copiado al portapapeles - "<Unable to decrypt private message>\n\nTe citaron en una conversación privada o encriptada entre %1$s y %2$s." - Cuentas - Navegar - Tú - Tablones - Crear - Sistema - Volver - Compartir enlace del navegador - Compartir - Compartir como imagen - Compartir como Url de Imagen - ID de la nota - Eliminar - Silenciar hilo - Reactivar hilo - - Bloquear - Marcadores - Los marcadores se migraron correctamente - Borradores - Publicaciones programadas - Programar publicación - Cancelar programación - Las publicaciones programadas pueden no realizarse hasta que vuelvas a abrir la aplicación. Habilita la activación en \"Configuración → Preferencias de interfaz de usuario\" para garantizar una programación en segundo plano fiable. - Las publicaciones programadas pueden no realizarse hasta que vuelvas a abrir la aplicación. Las publicaciones programadas de otras cuentas no se activarán mientras esta cuenta esté activa. Habilita la activación en \"Configuración → Preferencias de interfaz de usuario\" para garantizar una programación en segundo plano fiable. - %1$s · en %2$s - %1$s · hace %2$s - Mañana - Sesión cerrada - - Sesión cerrada · %d publicación programada eliminada - Sesión cerrada · %d publicaciones programadas eliminadas - - Se realizó la publicación programada - Fallo en la publicación programada - Publicaciones programadas - Notificaciones cuando una publicación programada se realiza o no. - Enviar ahora - Error: %1$s - Programadas - Enviando… - Error - Enviada - Cancelada - - Tienes %d publicación programada que aún no se ha publicado. Cerrar sesión la eliminará permanentemente. - Tienes %d publicaciones programadas que aún no se han publicado. Cerrar sesión las eliminará permanentemente. - - - %d en cola - %d en cola - - - · %d vence en 1h - · %d vencen en 1h - - - a %d relé - a %d relés - - ID de nota copiado - Encuestas - Abiertas - Cerradas - Insignias - Comunidades - Nueva comunidad - Editar comunidad - Moderadores - Relés - Reglas verificables (opcional) - Kinds de eventos permitidos - Texto corto (1) - Artículo de formato extenso (30023) - Publicación de imagen (20) - Publicación de video (21) - Vídeo corto (22) - Comentario de la comunidad (1111) - Usuarios bloqueados - Portal de red de confianza (opcional) - Tamaño máximo de evento global (opcional) - Nueva Insignia - Insignia de premio - Insignias del perfil - Imágenes - Entrenamientos - Nuevo entrenamiento - Carrera - Caminata - Ciclismo - Senderismo - Natación - Remo - Fuerza - Yoga - Meditación - Dieta - Ayuno - Circuito - Apps Apps - Navegador - Cargando a través de Tor. Toca para usar la web abierta. - Cargando a través de la web abierta. Toca para usar Tor. - Favoritos - Descubre apps web - Aplicaciones favoritas - Añadir a favoritos - Eliminar de favoritos - Se carga a través de Tor. - Se carga a través de la web abierta. - Publicado en los relays - Se ha subido un archivo - Se ha realizado un pago - Esa aplicación aún no está cargada. Inténtalo de nuevo en un momento. - Recientes Permisos de nApplet Aún no hay permisos de nApplet Los permisos que concedas a nApplets aparecerán aquí. @@ -280,46 +24,11 @@ Revocar - Identidad - Acciones del teclado - Relés - Almacenamiento - Pagos - Red - Subidas Preguntar qué funcionalidades están disponibles - Leer tu clave pública - Enlazar atajos de teclado - Leer, firmar y publicar tus eventos - Su propio almacenamiento privado - Pagar facturas de Lightning - Obtener recursos web y de Blossom - Subir archivos a tu servidor multimedia - Tema - Notificaciones - Mensajes - Combina los colores de la app - Mostrar notificaciones - Intercambiar mensajes con otros napplets Funcionalidad: %1$s - Este nApplet quiere leer tu clave pública. - Esta nApplet quiere leer tu perfil y datos de la cuenta. - Este nApplet quiere firmar y publicar un evento %1$d como tú. - Este nApplet quiere firmar y publicar un evento %1$d como tú: - Este nApplet quiere enviar un evento cifrado como tú. - Este nApplet quiere leer eventos de tus relés. - Este nApplet quiere utilizar su almacenamiento privado. Este nApplet quiere pagar una factura Lightning. - Este nApplet quiere obtener un recurso web. - Este nApplet quiere subir un archivo a tu servidor de medios. - Este nApplet quiere mostrarte notificaciones. - Este sitio quiere firmar un evento kind:%1$d con tu clave Nostr. - - Este nApplet quiere pagar una factura Lightning de %1$d sat. - Este nApplet quiere pagar una factura Lightning de %1$d sats. - - Cortos - Chats públicos - Paquetes de seguimiento - Transmisiones en vivo - Levantar la mano - Bajar la mano - Silenciar - Reactivar - No se pudo enviar el mensaje - Silenciar micrófono - Reactivar micrófono - Nests - Mantiene la reproducción de audio mientras una sala está abierta. - Nest conectado - Nest — En vivo - Toca para regresar. - Detener - levantó la mano - entró al escenario - está hablando - se unió al público - dejó el nest - Salir - No se pudo marcar la sala como cerrada. Saliendo de todos modos (la sala se cerrará automáticamente). - - %1$d oyente - %1$d oyentes - - Callar a este orador - Restaurar a este orador - Seguir - Dejar de seguir - Silenciar - Reactivar - No se ha podido guardar tu lista de servidores nest. Inténtalo de nuevo. - Servidores de nest - Tus servidores - Guardado como un evento reemplazable para que otros clientes puedan leer tus preferencias. - Servidores recomendados - Sugerencias integradas que puedes añadir a tu lista con un solo toque. - Videos - Música - Listas de reproducción - Episodios - Podcasts - - %1$d episodio - %1$d episodios - - Nueva pista de música - Nueva lista de reproducción - - %1$d pista - %1$d pistas - - Agregar a marcadores públicos - Eliminar de marcadores públicos - Fijar en el perfil - Desfijar del perfil - Nueva lista de marcadores - Metadatos de lista de marcadores - Conjuntos de hashtags - Nuevo conjunto de intereses - Renombrar - Hacer privado: envolver la nota como gift-wrap solo a los usuarios notificados - Hacer público - Las respuestas a una nota privada siempre permanecen privadas - Visible para Aún no hay destinatarios: solo tú podrás ver esta nota. Añade personas para compartirla. Añadir Eliminar usuario de las notificaciones Buscar y añadir un usuario para notificar - Los metadatos de las listas de marcadores son visibles para cualquier usuario de Nostr. Solo los miembros privados están cifrados. - Mover a público - Mover a privado - Recargar y enviar zap - Enviar zap - Recargar %1$s sats en %2$s y enviar zap de %3$s %4$s sats · comisión ≈ %5$s sats - Opción %s - (0–100)% - Opción simple - Opción múltiple - No se puede votar - Encuesta cerrada para votos nuevos - Solo se permite un voto por usuario en este tipo de encuesta - Los autores de encuestas no pueden votar en ellas. - ¿Qué significa esto? - Este contenido es el mismo desde la publicación - Este contenido cambió. Es posible que el autor no haya visto o aprobado el cambio - Agregar contenido multimedia - Agregar imagen - Agregar video - Agregar documento - Servidor de archivos - Elegir un servidor para subir este archivo - Servidores multimedia Configura tus servidores preferidos para subir contenido multimedia. Servidores multimedia recomendados Lista predeterminada de Amethyst. Puedes agregarlos individualmente o añadir la lista. - Objetivos de pago - Añadir direcciones de pago para diferentes redes (por ejemplo, Bitcoin, Lightning o Ethereum). - No se ha encontrado ninguna aplicación para gestionar este pago. Instala un monedero compatible. - No hay ninguna aplicación instalada para gestionar pagos de %1$s. Instala un monedero compatible. - No se puede abrir el pago - Opciones de privacidad - Todos los seguidos - Todos los seguidos - Lista de seguidos predeterminada - A mi alrededor - Global - Curada - Mía - Lista de silenciados - Nueva lista de seguimiento - Nuevo paquete de seguimiento - Editar lista - El puerto predeterminado es 9050 - Puerto Socks de Orbot - Motor de Tor activo - Usar la versión interna u Orbot - Preconfiguración de Tor y privacidad - Modificar rápidamente todos los ajustes a continuación - Url/Relés tipo onion - Usar Tor para cualquier URL .onion - Relés DM - Forzar Tor para enviar y recibir mensajes directos - Relés no confiables - Forzar Tor en la bandeja de salida/entrada - Relés de confianza - Forzar Tor en todos los relés de tus listas - Imágenes de perfil - Forzar Tor al cargar imágenes de perfil - Vistas previas de URL - Forzar Tor al cargar vistas previas de URL - Imágenes - Forzar Tor al cargar imágenes - Videos - Forzar Tor al cargar videos - Operaciones monetarias - Forzar Tor en transferencias de zaps, Lightning y Cashu - Verificación de dirección de Nostr - Forzar Tor al verificar direcciones NIP-05 - Subidas multimedia - Forzar Tor al subir contenido - Interno - Orbot - Desactivado - Básico - Predeterminado - Todo menos media - Privacidad total - Personalizado - Usar Tor cuando lo requiera el servidor - Ocultar tu IP de relés aleatorios - Ocultar tu IP de todo, excepto imágenes y videos - Ocultar su IP en todas las conexiones - Crea el tuyo - Mensajes privados - Te notifica cuando llega un mensaje privado - Zaps recibidos - Te notifica cuando alguien te zapea - %1$s sats - De %1$s - por %1$s - Responder - Marcar como leído - Nuevos mensajes - Nuevos zaps - Reacciones - Te notifica cuando alguien reacciona a tu publicación - %1$s reaccionó a tu publicación - para %1$s - Nuevas reacciones - Ajedrez - Te notifica sobre eventos de partidas de ajedrez - %1$s ha aceptado tu desafío de ajedrez - %1$s ha movido — es tu turno - Actualizaciones de ajedrez - Respuestas - Te notifica cuando alguien responde a tu publicación %1$s respondió en: %1$s - Nuevas respuestas - Menciones - Te notifica cuando alguien te menciona o te cita en una publicación - %1$s te mencionó - Nuevas menciones @@ -549,37 +80,6 @@ - Llamadas entrantes - Notificaciones de llamadas de voz y vídeo entrantes - Llamada entrante - Llamada de voz entrante… - Llamada de vídeo entrante… - Llamada con %1$s - Llamadas - Notificación de llamada en curso - Colgar - Aceptar - Rechazar - Silenciar - Reactivar - Cámara activada - Cámara desactivada - Altavoz - Auricular - Bluetooth - Amethyst necesita acceso al micrófono para iniciar una llamada de voz. Actívalo en los ajustes de la aplicación. - Amethyst necesita acceso a la cámara y al micrófono para iniciar una videollamada. Actívalos en los ajustes de la aplicación. - Ajustes de llamada - Mantiene las conexiones a tus relays de bandeja de entrada activas para notificaciones en tiempo real - Notificaciones de Amethyst activas - - Conectado a %1$d relay de bandeja de entrada - Conectado a %1$d relays de bandeja de entrada - - - Conectado a %1$d relay - Conectado a %1$d relays - - Conectando a los relays de bandeja de entrada… Servicio de notificaciones permanente Mantiene una conexión persistente a tus relays de bandeja de entrada para la entrega instantánea de notificaciones. Muestra una notificación en curso. Consume más batería, pero garantiza que nunca te pierdas un mensaje. - Dividir notificaciones por Seguidos - Muestra dos pestañas de notificaciones: Siguiendo (personas que sigues) y Todos. El indicador de no leídos se ilumina solo para la actividad de las personas que sigues. - Mostrar mensajes - Incluye mensajes directos y de grupo en la pestaña de Notificaciones. Desactívalo para mantener los mensajes solo en la pestaña de Mensajes. - Notificar: - Hoy - Ocultar - Mostrar - Advertir - Filtrar spam - Oculta las publicaciones de desconocidos que sean exactamente iguales 5 o más veces. - Añadir etiqueta de cliente a mis eventos - Cuando está activado, Amethyst añade una etiqueta de cliente NIP-89 a los eventos que publicas. - Advertir sobre reportes - Muestra un mensaje de advertencia cuando los mensajes tienen 5 o más reportes de los usuarios que sigues. - Ocultar publicaciones que infrinjan las normas de la comunidad - Elimina publicaciones de los feeds de comunidades cuando la comunidad publica un documento de normas NIP-9B y un evento no lo cumple. No tiene efecto cuando una comunidad no tiene normas estructuradas. - Preferencias de filtrado - Contenido bloqueado - Aún no has bloqueado a ningún usuario. - Ninguna cuenta ha sido marcada como spam en esta sesión. - No hay palabras ocultas. Añade una palabra a continuación para ocultar las publicaciones que la contengan. - No hay tipos de reacción preseleccionados para este usuario. Deja presionado el botón de corazón para cambiarlos. - Relé de lectura - Relé de escritura - La cantidad en bytes que se enviaron a este relé, incluyendo filtros y eventos - La cantidad en bytes que se recibieron de este relé, incluyendo filtros y eventos - Política de privacidad - Estándares de seguridad infantil - Información y avisos legales - Token de Cashu - La dirección de Lightning no está configurada - Relés - Paquetes de seguimiento - Lecturas - Algoritmos del feed - Mercado - Transmisiones en vivo - Comunidades - Chats - Contenido delicado - Agrega una advertencia de contenido sensible antes de mostrarlo - Preferencias de interfaz de usuario Preferencias de la app - Traducciones - Reacciones - Configuración - Configuración de cuenta - Ajustes de la app - Zona peligrosa - Restablecer estado de Marmot - Estado de Marmot restablecido. - Error al restablecer el estado de Marmot: %1$s - Siempre - WiFi sin medición - Nunca - Completo - Simplificado - Rendimiento - Clásico - Moderno - Sistema - Claro - Oscuro - Wallet Connect - Tema - Vista previa de imagen - Reproducción de video - Reproducción automática de vídeos - Vista previa de URL - Desplazamiento inmersivo - Ocultar barras de navegación al desplazarse - Modo de interfaz - Elegir el estilo de publicación - Estilo de galería de perfil - Elige el estilo de galería - Spammers - Silenciado. Hacer clic para reactivar el sonido. - Sonido activado. Hacer clic para silenciar. - Retroceder %d segundos - Adelantar %d segundos - Publicación con ubicación exclusiva - Solo los seguidores de la ubicación la verán. Tus seguidores generales no la verán. - - %1$d pista - %1$d pistas - - - +%1$d pista más - +%1$d pistas más - - Subir una imagen de portada - Elige una imagen cuadrada como portada de esta pista. - Subir un archivo de audio - Elige un MP3, WAV o FLAC. Se subirá a tu servidor multimedia al guardar. - Subiendo portada + audio y publicando. Esto continuará aunque salgas de la pantalla. - Editar lista de reproducción - Subir una imagen de portada - Elige una imagen cuadrada como portada de esta lista de reproducción. - Subiendo portada y publicando. Esto continuará aunque salgas de la pantalla. Público Grupo Privado - Asunto - No se puede subir - Ingresa primero el destino del mensaje - Billetera no encontrada - Amethyst no encontró ninguna aplicación de cartera compatible con Nostr Wallet Connect (NWC). -\n\nQué puedes hacer: -\n\t1. Verificar la compatibilidad con NWC: Comprueba que tu aplicación de cartera preferida es compatible con Nostr Wallet Connect. -\n\t2. Crear conexión: Ve a tu aplicación de cartera y crea una nueva conexión NWC. -\n\t3. Vincular con Amethyst: Tu cartera normalmente te ofrecerá tres opciones: -\n\t\t3.1 Enlace automático: Un botón para abrir y conectar automáticamente a Amethyst. Si es así, pulsa ese botón, abre Amethyst y guarda en la nueva pantalla. -\n\t\t3.2 Enlace manual: Un URI de conexión que puedes copiar y pegar usando el icono de pegado en esta pantalla para introducirlo directamente. -\n\t\t3.3 Código QR: La cartera genera un código QR que puedes leer con el botón de código QR en esta pantalla. - - Tema oscuro, claro o del sistema - Cargar automáticamente imágenes y GIF - Reproducir automáticamente videos y GIF - Reproduce vídeos automáticamente cuando son visibles en pantalla - Mostrar vistas previas de URL - Copiar al portapapeles - Copiado al portapapeles - Compartir o guardar Enviar como MD - Media añadida - Contenido multimedia agregado a la galería del perfil - No se pudo enviar el zap - Lightning no está configurado - El usuario %1$s no tiene una dirección de Lightning configurada para recibir sats. - Error al abrir la aplicación firmante - No se pudo encontrar la aplicación firmante. Comprueba si no se desinstaló la aplicación. - No se puede reproducir este vídeo - El códec o formato no es compatible con este dispositivo (%1$s). Intenta abrirlo en tu navegador. - Abrir en el navegador - Solicitud de firma rechazada - Asegúrate de que la aplicación firmante haya autorizado esta transacción. - No se encontraron billeteras para pagar una factura de Lightning (error: %1$s). Instala una billetera de Lightning para usar zaps. - No se encontraron billeteras para pagar una factura de Lightning. Instala una billetera de Lightning para usar zaps. - No se pueden abrir enlaces de Blossom - No se encontraron aplicaciones de Blossom. Instala una aplicación local de Blossom para ver este archivo - Palabras ocultas - Hilos silenciados - No hay hilos silenciados - Imagen de perfil - Mostrar imágenes de perfil - No se pudo pagar la factura - No se pudo retirar - No se pudo canjear Cashu - La Mint proporcionó el siguiente mensaje de error: %1$s - Cashu recibido - Se enviaron %1$s sats a tu billetera (comisión: %2$s sats). - No se encontró ninguna billetera de Cashu compatible en el sistema - No se puede obtener la factura de los servidores del destinatario - El proveedor de conexión de billetera devolvió el siguiente error: %1$s - No se pudo ensamblar la LNUrl desde la dirección de Lightning \"%1$s\". Comprueba la configuración del usuario. - No se pudo obtener la factura de %1$s: %2$s - Error al analizar JSON desde %1$s. Comprueba la configuración de Lightning del usuario. - No se encontró la URL de devolución de llamada en la respuesta de %1$s. - Cantidad de factura incorrecta (%1$s sats) de %2$s. Debería haber sido %3$s. - No se pudo crear una factura de Lightning antes de enviar el zap. La billetera de Lightning del destinatario envió el siguiente error: %1$s. - Usuario de solo lectura - No hay reacciones configuradas - Notificaciones - Entrega - Visualización en la aplicación - Categorías - Mensaje de %1$s - Hola, %1$s, ¿esto todavía está disponible? - Ropa - Accesorios - Artículos electrónicos - Muebles - Objetos de colección - Libros - Mascotas - Deportes - Acondicionamiento físico - Arte - Artesanías - Hogar - Oficina - Comida - Varios - Otros - Error al subir contenido multimedia - No se pudo abrir el archivo comprimido - Error de subida: %1$s - El servidor no proporcionó una URL después de la subida - No se pudo descargar el contenido subido desde el servidor - No se pudo comprobar el archivo descargado después de subir: %1$s - Error al subir a %1$s: %2$s - Error al eliminar: %1$s - El contenido multimedia es demasiado grande para NIP-95 - Cifrar archivos - Cifra los archivos antes de subirlos para mayor privacidad. Algunos servidores pueden no aceptar archivos cifrados en cuentas gratuitas. - Error al subir el archivo cifrado - Muchos servidores no aceptan archivos cifrados en cuentas gratuitas. Puedes volver a intentarlo sin cifrado. - Usa H.265/HEVC Codec - Mejor calidad en tamaños de archivos más pequeños, pero no todos los dispositivos admiten la reproducción H.265. - Convertir GIF a MP4 - Convierte GIF animados a vídeo MP4 para reducir el tamaño del archivo y mejorar la compatibilidad de reproducción. - Eliminar metadatos privados - Intenta eliminar los metadatos privados de los archivos multimedia compatibles antes de subirlos - No se pudieron eliminar los metadatos - Error al eliminar los metadatos privados del archivo multimedia. Subida cancelada. - Subida cancelada - No se pueden eliminar los metadatos del AVIF: %1$s - Inicio - Descubrir - Mensajes - Notificaciones - Calendarios - Listas de calendarios - Ajedrez - Billetera - Cartera Cashu (NIP-60) Clave nutzap (avanzado) Una clave privada separada usada únicamente para recibir nutzaps NIP-61. No es tu clave de identidad Nostr. Generar una nueva clave Clave privada P2PK (hex) - Editar mints Guardar cambios - - +%1$d más - +%1$d más - - - Recomendado por %1$d persona más - Recomendado por %1$d personas más - - Mints populares - Mints coincidentes - Recibido - Enviado - Publicar una solicitud de eliminación para tu recomendación kind:38000 de %1$s. Los relays que respetan NIP-09 la eliminarán. - Se recuperaron %1$s sats en %2$s pruebas. - ¿Pagar %1$s sat + hasta %2$s sat en comisiones? - Nutzap fallido - No hay clave pública de destinatario en la nota - Los nutzaps son públicos y revelarían esta nota privada. Usa un zap Lightning en su lugar. - No se puede construir la referencia del evento - Esperando a que se pague la factura… - Comprobando el mint… - Lento - Normal - Rápido - ~1 h - ~30 min - ~10 min - %1$s · %2$s sat/vB · %3$s - - Enviar %1$s sats, %2$d destinatario - Enviar %1$s sats, %2$d destinatarios - - - Usar la división de zap %1$d de esta nota - Usar la división de zap %1$d de esta nota - - - Divisiones entre %1$d destinatario - Divisiones entre %1$d destinatarios - - - Se omite %1$d destinatario solo con dirección Lightning — el onchain necesita una clave pública Nostr para derivar la dirección. - Se omiten %1$d destinatarios solo con dirección Lightning — el onchain necesita una clave pública Nostr para derivar la dirección. - - cargando saldo - construyendo la transacción - firmando - difundiendo - publicando el recibo - El backend de la cadena Bitcoin no está configurado - No se pudo cargar tu saldo de Bitcoin - No se pudo construir la transacción - La parte de un destinatario está por debajo del dust - No se pudo firmar la transacción - No se pudo difundir la transacción - Pago enviado, pero el recibo del zap no se pudo publicar - - Pago enviado (%1$d de %2$d recibo publicado), pero el siguiente recibo no se pudo publicar - Pago enviado (%1$d de %2$d recibos publicados), pero el siguiente recibo no se pudo publicar - - Importar seguidos - Nuevo producto - Nuevo artículo - Nuevo evento de calendario - Editar evento de calendario - Nuevo calendario - Editar calendario - Tablón - Mes - Semana - Día - - %1$s, %2$d evento - %1$s, %2$d eventos - - En curso ahora - %1$s · termina %2$s - Compartir evento de calendario - recordatorios_calendario - Recordatorios de calendario - Aviso cuando un evento al que asistirás está a punto de comenzar. - Evento de calendario - - Comienza en %1$d minuto - Comienza en %1$d minutos - - Error al subir la imagen - No se pudo subir la imagen seleccionada. Inténtalo de nuevo o pega una URL. - Recordatorios de calendario - Enviar recordatorios - Se enviará una notificación cuando un evento al que asistirás esté a punto de comenzar. - - %1$d min - %1$d min - - Abrir en mapas - Abrir enlace - Abrir todas las reacciones a esta publicación - Cerrar todas las reacciones a esta publicación - Zap - Barra de navegación inferior Arrastra para reordenar. Activa o desactiva para añadir o eliminar un elemento de la barra inferior. Con cero elementos la barra inferior se oculta. Reordenar Elige qué pestañas aparecen en la pantalla de inicio. Cuando solo hay una pestaña activa la barra de pestañas se oculta. - Todo - Interfaz del perfil Elige qué secciones y feeds aparecen en las pantallas de perfil de usuario. Todas las opciones están habilitadas de forma predeterminada. - Insignias del perfil - Recomendaciones de aplicaciones - Feed de zaps recibidos - Feed de seguidores - Fila de reacciones - Botones del reproductor de vídeo - Visualizador de audio - Fecha de expiración - Dirección inválida - Amethyst recibió un URI para abrir pero era inválido: %1$s - Relés de entrada DM - Relés de búsqueda - Algunas buenas opciones son: \n%1$s - Relays de salida - Relays de entrada - Configuración de relés - Relés de inicio públicos - El usuario está publicando su contenido a estos relés - Este tipo de relé almacena todo tu contenido. Amethyst enviará tus publicaciones aquí y otros usarán estos relés para encontrar tu contenido. Inserta entre 1 y 3 relés. Pueden ser personales, de pago o públicos. - Relés de buzón de entrada públicos - El usuario está recibiendo notificaciones en estos relés - Este tipo de relé recibe todas las respuestas, comentarios, me gusta y zaps de tus publicaciones. Inserta entre 1 y 3 relés y asegúrate de que acepten publicaciones de cualquier persona. - Relés de entrada DM - El usuario recibe mensajes directos en estos relés - Inserta entre 1 y 3 relés para que te sirvan de buzón de entrada privado. Otros usarán estos relés para enviarte mensajes directos. Los relés del buzón de entrada para mensajes directos deberían aceptar cualquier mensaje de cualquier persona, pero solo te permiten descargarlos. Algunas buenas opciones son:\n - inbox.nostr.wine (de pago)\n - you.nostr1.com (relés personales; de pago) - Paquetes de claves - Relays de KeyPackage - Relays donde se publican tus MLS KeyPackages (MIP-00). Otros usuarios obtienen estas KeyPackages para invitarte a chats de grupo Marmot. Introduce entre 1 y 3 relays que acepten eventos KeyPackage de tu parte y permitan lecturas públicas. - Relés privados - Inserta entre 1 y 3 relés para almacenar eventos que nadie más pueda ver, como los borradores o la configuración de la app. Lo ideal es que estos relés sean locales o requieran autenticación antes de descargar el contenido de cada usuario. - Relés conectados - Lista actual de relés en uso - Relés de búsqueda - Lista de relés que se usarán al buscar contenido o usuarios. El etiquetado y la búsqueda no funcionarán si no hay opciones disponibles. Asegúrate de que implementen NIP-50. - Relés locales - Lista de relés que se utilizan en este dispositivo. - Reenviar perfiles al relay local - Enviar todos los eventos de perfil (kind 0) recibidos a tu relay local - Relés de confianza - Relés en que confías para no necesitar una conexión Tor para - Feeds de relays favoritos - Relays a los que sueles ir para ver su feed global - Relés de proxy - Relés recopiladores que la app debe usar para descargar tus feeds, como filter.nostr.wine. Esto reemplaza el modelo de bandeja de salida y hará que la app se conecte solo a los relés de tus listas. - Relés de transmisión - Relés que se especializan en enviar tus notas a todos los demás relés, como sendit.nosflare.com. Amethyst agregará este relé a todos los eventos nuevos que crees. - Relés de indexador - Relés que se especializan en alojar los metadatos y las listas de retransmisión de todos, como purplepag.es. Amethyst usará estos relés para encontrar usuarios que no estén en tus listas. - Relés bloqueados - Amethyst nunca se conectará a estos relés - Exportar configuración de relays Web: Resumen Acerca de Enlaces Mantenedores Temas - Prueba de marca de tiempo - Hay prueba de que esta publicación se firmó en algún momento antes de %1$s. La prueba se marcó en la cadena de bloques de Bitcoin en esa fecha y hora. - Editar publicación - No es posible responder a un borrador de nota - No es posible citar un borrador de nota - No es posible reaccionar a un borrador de nota - No es posible zapear un borrador de nota - Borrador de nota - Solicitud incorrecta: el servidor no puede procesar o no procesará la solicitud. - No autorizado: el usuario no tiene credenciales de autenticación válidas. - Pago requerido: el servidor requiere pago para completar la solicitud. - Prohibido: el usuario no tiene derechos de acceso para realizar la solicitud. - No se encontró: el servidor no puede encontrar la dirección solicitada. - Método no permitido: el servidor admite el método de solicitud, pero no el recurso de destino. - No aceptable: el servidor no encuentra ningún contenido que satisfaga la solicitud. - Autenticación de proxy requerida: el usuario no tiene credenciales de autenticación válidas. - Tiempo de espera de la solicitud: se agotó el tiempo de espera del servidor. - Conflicto: el servidor no puede satisfacer la solicitud porque hay un conflicto con el recurso. - Borrado: el contenido solicitado se eliminó permanentemente del servidor y no se restablecerá. - Longitud requerida: el servidor rechaza la solicitud porque requiere una longitud definida. - Precondición fallida: las precondiciones de la solicitud en los campos de cabecera que el servidor no cumple. - Carga demasiado grande: la solicitud supera los límites definidos por el servidor, por lo que este se niega a procesarla. - URI demasiado largo: la URL solicitada por el cliente es demasiado larga para que el servidor pueda procesarla. - Tipo de contenido multimedia no admitido: la solicitud usa un formato multimedia que el servidor no admite. - Intervalo no satisfactorio: el servidor no puede satisfacer el valor indicado en el campo de cabecera del intervalo de la solicitud. - Expectativa fallida: el servidor no puede cumplir los requisitos indicados por el campo de cabecera de la solicitud Expect. - Actualización requerida: el servidor se niega a procesar la solicitud utilizando el protocolo actual a menos que el cliente se actualice a un protocolo diferente. - Error interno del servidor: el servidor encontró un error inesperado y no puede completar la solicitud. - No implementado: el servidor no puede completar la solicitud o no reconoce el método de solicitud. - Gateway incorrecto: el servidor actúa como gateway y obtuvo una respuesta no válida del host. - Servicio no disponible: esto ocurre a menudo cuando un servidor está sobrecargado o caído por mantenimiento. - Tiempo de espera del gateway: el servidor estaba actuando como gateway o proxy y se agotó el tiempo de espera de una respuesta. - Versión HTTP no admitida: el servidor no admite la versión HTTP de la solicitud. - La variante también negocia: el servidor tiene un error de configuración interno. - Almacenamiento insuficiente: el servidor no dispone de almacenamiento suficiente para procesar correctamente la solicitud. - Bucle detectado: el servidor detecta un bucle infinito al procesar la solicitud. - Autenticación de red requerida: el cliente debe estar autenticado para acceder a la red. Servidores Blossom Agrega tantos servidores como quieras. Puedes elegir cuál usar más tarde al subir tu foto. - Agregar servidor NIP-96 - Agregar un servidor Blossom Descargar - Error al abrir el archivo - No hay aplicaciones torrent instaladas para abrir y descargar el archivo. - El evento no tiene suficiente información para crear un enlace magnético - Mis listas - Tablones - Hashtags - Conjuntos de intereses - Ubicaciones - Comunidades - Listas - Algoritmos de feed - Todos los algoritmos de feed favoritos - Relés - Algoritmos de feed favoritos - Mensaje privado - Mensaje público - No se puede compartir la imagen, inténtalo de nuevo más tarde… - No se puede compartir el vídeo, por favor inténtalo de nuevo más tarde… - Descargando vídeo… - No traducir del - Los idiomas que se muestran aquí no se traducirán. Selecciona un idioma para eliminarlo y traducirlo de nuevo. - Traducir a - Elige el idioma al que traducir el contenido. - Preferencias de visualización de idioma - Para cada par de idiomas traducidos, elige qué idioma mostrar primero. - Pausar - Reproducir - Este mensaje desaparecerá en %1$s - Metadatos de lista de seguidos - Los metadatos de las listas de seguidos pueden verlos todos en Nostr. Solo tus miembros privados están cifrados. - Metadatos del pack de seguidos - Los metadatos del pack de seguidos pueden verlos todos en Nostr y se publican frecuentemente en muchos sitios web como kits de inicio para nuevos usuarios. - Editar pack de seguidos - Expandir - Reintentar - Reacción - Publicación de voz - Respuesta de voz - Relés de salida - Aplicaciones - Recomendaciones de aplicaciones - Ajustes de usuario - Cabecera de audio - Pista de audio - Pista de música - Lista de reproducción - Episodio de pódcast - Programa de pódcast - Pódcasts creados - Pódcasts favoritos - Insignias concedidas - Definiciones de insignias - Conjunto de insignias aceptadas - Insignias del perfil - Relés bloqueados - Servidores Blossom - Servidores Nests - Autenticación Blossom - Relés de difusión - Lista de marcadores - Lista de marcadores antigua - Cita del día - Calendario - Cita - Confirmación de cita - Partidas de ajedrez - Autenticación de ajedrez - Relés favoritos - Desafíos de ajedrez - Aceptación de partida de ajedrez - Movimiento de ajedrez - Fin de partida de ajedrez - Oferta de tablas en ajedrez - Definición de canal - Ocultar mensaje del canal - Lista de canales - Mensaje del canal - Metadatos del canal - Silenciar usuario del canal - Archivo de mensaje directo - Mensaje directo - Relés DM - Clasificados - Comentarios - Definición de comunidad - Lista de comunidades - Publicación de comunidad - Lista de seguidos - Eliminaciones - Borradores - Packs de emojis - Lista de packs de emojis - Chat efímero - Salas de chat efímeras - Cabeceras de archivo - Galería del perfil - Servidores de archivos - Datos blob - Cabeceras blob - Datos médicos - Packs de seguidos - Republicaciones (16) - Seguidos por geohash - GiftWraps - Incidencia de Git - Parche de Git - Repositorio de Git - Respuesta de Git - Solicitud de incorporación - Actualización de solicitud de incorporación - Objetivos de Zap - Seguidos por hashtag - Destacados - Autenticación HTTP - Lista de relés de índice - Prólogo de aventura - Escena de aventura - Lectura de aventura - Marcadores con nombre - Chats en directo - Transmisiones en directo - Zaps - Solicitud NWC - Respuesta NWC - Zaps privados - Solicitud de Zap - Blogs - Sala de reuniones - Presencia en sala - Espacio de reuniones - Perfil - Lista de silenciados - NNS - NIP - Nostr Connect - Estado DVM - Solicitud de contenido DVM - Respuesta de contenido DVM - Solicitud de usuario DVM - Respuesta de usuario DVM - OTS - Pagar a - Listas de personas - Imágenes - Entrenamientos - Fijados - Encuesta de Zap - Encuesta - Respuesta de encuesta - Mensajes directos NIP-04 - Relés privados - Relés proxy - Mensaje público - Reacciones - Tarjeta de contacto - Autenticación de relé - Descubrimiento de relés - Anuncio del monitor de relés - Conjunto de relés - Informes - Republicaciones - Eliminación de usuario - Sellos - Relés de búsqueda - Estado del usuario - Notas - Ediciones - Torrents - Comentarios de torrent - Relés de confianza - Proveedores de confianza - Vídeo (Repl) - Vídeo - Mensaje de voz - Respuesta de voz - Marcador web - %1$d%% de disponibilidad - Ajustes de Namecoin - Sincronización de relés - Explorador de Bitcoin (OTS) - eventos tuyos - eventos para ti - eventos buscables - perfiles - listas de salida - Visto por última vez hace %1$s - Visto por última vez el %1$s (hace %2$s) - Visto ahora mismo - Nunca visto - - %1$d minuto - %1$d minutos - - - %1$d hora - %1$d horas - - - %1$d día - %1$d días - - - %1$d semana - %1$d semanas - - - %1$d mes - %1$d meses - - - %1$d año - %1$d años - - - %1$d factura pendiente - %1$d facturas pendientes - - - Fondos en %1$d mint que no usas - Fondos en %1$d mints que no usas - - %1$s sat movidos a %2$s. - Emitir al dispositivo - Detener emisión - Subida HLS - Subiendo %1$s (%2$d de %3$d) - Atestación - Solicitud de atestación - Recomendación del atestador - Competencia del atestador - Marcadores web - Añadir marcador web - Editar marcador web - %1$s financiados del objetivo de %2$s sats - Nuevo objetivo - Solicitud de desaparición - Solicitud de desaparición enviada - Historial de desapariciones - Usuarios - Eventos - Tipos - Ajustes - Proponer mejoras de texto - Usa un modelo de IA en el dispositivo para proponer correcciones de texto y cambios de tono. - Difusiones rastreadas - Usa el emisor rastreado al enviar eventos. Muestra el progreso en tiempo real y el estado por relay durante la difusión. - Sugerir entrenamientos para compartir - Lee los entrenamientos finalizados de Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) y sugiere compartirlos como publicación. El permiso se solicita solo cuando te conectas. - Ajustes de composición - Crear borradores automáticamente - Guarda un borrador automáticamente cuando escribes o abandonas el compositor con texto no enviado, y lo envía a tus relays de bandeja de salida privada. - Nuevo paquete de emojis - Editar paquete de emojis - Mis paquetes de emojis - Los emojis públicos son visibles para todos y aparecen en tu menú de reacciones y en el selector de autocompletado \":\" cuando este paquete está en tu lista de emojis. - Los emojis privados se almacenan cifrados en los relays y solo son visibles para ti. Aparecen en tu menú de reacciones y en el autocompletado \":\" igual que los públicos. - El borrador ocupa %1$d bytes; esta comunidad limita este tipo a %2$d bytes. - El borrador ocupa %1$d bytes; esta comunidad limita los eventos a %2$d bytes. - Ya has publicado %1$d eventos de este tipo hoy (límite %2$d). - Sitio Nowhere - Evento Nowhere - Recaudación Nowhere - Tienda Nowhere - Petición Nowhere - Mensaje Nowhere - Drop Nowhere - Arte Nowhere - Foro Nowhere - - %1$d miembro - %1$d miembros - - Información del grupo actualizada - Error al actualizar: %1$s - Error al crear el grupo: %1$s - Error al salir del grupo: %1$s - Añadiendo %1$s… - Error al añadir %1$s: %2$s - error desconocido - Miembro eliminado - Error al eliminar miembro: %1$s - Privilegios de administrador concedidos - Error al conceder administrador: %1$s - Privilegios de administrador revocados - Error al revocar administrador: %1$s - No eres miembro de este grupo El servicio de Lightning del destinatario en %1$s no está disponible. Se calculó a partir de la dirección de Lightning \"%2$s\". Error: %3$s. Comprueba si el servidor está activo y si la dirección de Lightning es correcta. No se pudo resolver %1$s. Comprueba si tienes conexión, si el servidor está activo y si la dirección de Lightning \"%2$s\" es correcta..\n\nLa excepción fue: %3$s Error al analizar JSON desde la recuperación de factura de %1$s. Comprueba la configuración de Lightning del usuario. diff --git a/amethyst/src/main/res/values-es-rUS/strings.xml b/amethyst/src/main/res/values-es-rUS/strings.xml index 29d94ee2fe..fbc5066d89 100644 --- a/amethyst/src/main/res/values-es-rUS/strings.xml +++ b/amethyst/src/main/res/values-es-rUS/strings.xml @@ -1,116 +1,12 @@ - - Esta publicación tiene más de %1$d hashtag - Esta publicación tiene más de %1$d hashtags - - - %1$d activo incluido - %1$d activos incluidos - - - +%1$d\nrespuesta - +%1$d\nrespuestas - - Spam - El número de eventos de spam procedentes de este relé - Suplantación de identidad - Comportamiento ilegal - Solicitar eliminación - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder responder - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder impulsar publicaciones - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para indicar que te gustan las publicaciones. - No has configurado la cantidad de zaps. Mantén presionado el botón para cambiarla. - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder enviar zaps. - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder seguir a otros usuarios. - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder dejar de seguir a otros usuarios. - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder ocultar una palabra o frase. - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder mostrar una palabra o frase. - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder subir contenido. - Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder firmar eventos. - Descifrado no autorizado - El firmante no autorizó un descifrado necesario para realizar esta operación. Activa el descifrado NIP-44 en tu aplicación de firmante e inténtalo de nuevo - No se ha encontrado el firmante. - ¿Se desinstaló la app del firmante? Comprueba si el firmante está instalado y tiene esta cuenta. Cierra sesión y vuelve a iniciar sesión en la app del firmante si cambió. - El firmante externo devolvió una carga útil que no concuerda con la solicitud. Es posible que haya un error, ya sea en Amethyst o en el firmante. - Zaps - Impulsar Impulsada edición #%1$s - Proponer una edición - Agregar - Error al analizar el mensaje de error - Perfil - Filtros de seguridad - Solicitando factura… - El servicio de débito no completó el pago. - ¿Pagar %1$s por %2$s? - ¿Pagar esta factura por %1$s? - Introduce una cantidad válida para esta oferta. - Único - Diario - Semanal - Mensual - Pagar - Pagando por %1$s… - Pago fallido - Disponible para este destinatario: %1$s sats - Transacción: %1$s - "Vista previa de imagen de tarjeta para %1$s" - Descripción - ¿Qué estás pensando? - Escribir un mensaje… - Publicar Guardar - Enviar - Crear Cambiar nombre - Cancelar - Error - Errores - Porcentaje de conexiones exitosas al relé - Guardar en el teléfono - Imagen guardada en la galería - Comenzó la descarga del video… - Comenzó la descarga del contenido multimedia… - Fijar arriba - Eliminar fijado - Error al guardar la imagen - Video guardado en la galería de videos del teléfono - Error al guardar el video - PDF guardado en Descargas/Amethyst - Error al guardar el PDF - No se ha encontrado ninguna aplicación de cámara en este dispositivo - Haz clic y mantén presionado para grabar un mensaje - Error de carga - Error al cargar el mensaje de voz - NIP-95 aún no es compatible con mensajes de voz - Error al cargar voz: %1$s - Ninguna - Grave - Aguda - Neutra - El usuario no tiene configurada una dirección de Lightning para recibir sats - "responde aquí… " - Conocidos - Nuevas solicitudes - Usuarios bloqueados - Nuevos hilos - Conversaciones - Más opciones - Mostrar código QR de clave privada - Mostrar código QR de clave privada cifrada - Seguir - Seguir también - Ocultar contraseña - Clave inválida - Clave inválida: %1$s - Se requiere una contraseña - Se requiere la clave - Se requiere un nombre @@ -119,159 +15,7 @@ Nuevo perfil de chat: - Salir - Dejar de seguir - Chat temporal - Chat en relé - Chats en relé - Los chats en relé son grupos de chat controlados por su relé de origen. - Son visibles para todos los usuarios de Nostr y cualquiera puede participar en ellos. - Son ideales para comunidades abiertas en torno a temas específicos. Algunos de estos grupos son efímeros - y, por lo tanto, los mensajes del chat desaparecen con el tiempo - Chat público - Grupo MLS - Metadatos públicos del chat - Los chats públicos son visibles para todos en Nostr y cualquiera - puede participar en ellos. Son ideales para comunidades abiertas alrededor de temas específicos. - La moderación puede controlarse eliminando mensajes en sus relés. - Relés - Inserta entre 1 y 3 relés que alojan este grupo. - Los clientes de Nostr utilizan esta configuración para saber de dónde descargar y adónde enviar los mensajes. - Eliminar - nunca - ahora - h - m - d - Desnudez - Groserías o lenguaje que incita al odio - Respaldar claves - Error al cifrar la clave privada - Clave secreta (nsec) copiada al portapapeles - Copiar mi clave secreta - Error de autenticación - El sistema biométrico no pudo autenticar al propietario de este teléfono - El sistema biométrico no pudo autenticar al propietario de este teléfono. Error: %1$s - Texto de la nota copiado al portapapeles - \@npub del autor copiado al portapapeles - ID de la nota (@note1) copiado al portapapeles - "<No se pudo desencriptar el mensaje privado>\n\nTe citaron en una conversación privada o encriptada entre %1$s y %2$s." - Cuentas - Navegar - Tú - Tablones - Crear - Sistema - Volver - Compartir enlace del navegador - Compartir - Compartir como imagen - Compartir como Url de Imagen - ID de la nota - Eliminar - Silenciar hilo - Reactivar hilo - - Bloquear - Marcadores - Los marcadores se migraron correctamente - Borradores - Publicaciones programadas - Programar publicación - Cancelar programación - Las publicaciones programadas pueden no realizarse hasta que vuelvas a abrir la aplicación. Habilita la activación en \"Configuración → Preferencias de interfaz de usuario\" para garantizar una programación en segundo plano fiable. - Las publicaciones programadas pueden no realizarse hasta que vuelvas a abrir la aplicación. Las publicaciones programadas de otras cuentas no se activarán mientras esta cuenta esté activa. Habilita la activación en \"Configuración → Preferencias de interfaz de usuario\" para garantizar una programación en segundo plano fiable. - %1$s · en %2$s - %1$s · hace %2$s - Mañana - Sesión cerrada - - Sesión cerrada · %d publicación programada eliminada - Sesión cerrada · %d publicaciones programadas eliminadas - - Se realizó la publicación programada - Fallo en la publicación programada - Publicaciones programadas - Notificaciones cuando una publicación programada se realiza o no. - Enviar ahora - Error: %1$s - Programadas - Enviando… - Error - Enviada - Cancelada - - Tienes %d publicación programada que aún no se ha publicado. Cerrar sesión la eliminará permanentemente. - Tienes %d publicaciones programadas que aún no se han publicado. Cerrar sesión las eliminará permanentemente. - - - %d en cola - %d en cola - - - · %d vencen en 1h - · %d vencen en 1h - - - a %d relé - a %d relés - - ID de nota copiado - Encuestas - Abiertas - Cerradas - Insignias - Comunidades - Nueva comunidad - Editar comunidad - Moderadores - Relés - Reglas verificables (opcional) - Kinds de eventos permitidos - Texto corto (1) - Artículo de formato extenso (30023) - Publicación de imagen (20) - Publicación de video (21) - Vídeo corto (22) - Comentario de la comunidad (1111) - Usuarios bloqueados - Portal de red de confianza (opcional) - Tamaño máximo de evento global (opcional) - Nueva Insignia - Insignia de premio - Insignias del perfil - Imágenes - Entrenamientos - Nuevo entrenamiento - Carrera - Caminata - Ciclismo - Senderismo - Natación - Remo - Fuerza - Yoga - Meditación - Dieta - Ayuno - Circuito - Apps Apps - Navegador - Cargando a través de Tor. Toca para usar la web abierta. - Cargando a través de la web abierta. Toca para usar Tor. - Favoritos - Descubre apps web - Aplicaciones favoritas - Añadir a favoritos - Eliminar de favoritos - Se carga a través de Tor. - Se carga a través de la web abierta. - Publicado en los relays - Se ha subido un archivo - Se ha realizado un pago - Esa aplicación aún no está cargada. Inténtalo de nuevo en un momento. - Recientes Permisos de nApplet Aún no hay permisos de nApplet Los permisos que concedas a nApplets aparecerán aquí. @@ -280,46 +24,11 @@ Revocar - Identidad - Acciones del teclado - Relés - Almacenamiento - Pagos - Red - Subidas Preguntar qué funcionalidades están disponibles - Leer tu clave pública - Enlazar atajos de teclado - Leer, firmar y publicar tus eventos - Su propio almacenamiento privado - Pagar facturas de Lightning - Obtener recursos web y de Blossom - Subir archivos a tu servidor multimedia - Tema - Notificaciones - Mensajes - Combina los colores de la app - Mostrar notificaciones - Intercambiar mensajes con otros napplets Funcionalidad: %1$s - Este nApplet quiere leer tu clave pública. - Esta nApplet quiere leer tu perfil y datos de la cuenta. - Este nApplet quiere firmar y publicar un evento %1$d como tú. - Este nApplet quiere firmar y publicar un evento %1$d como tú: - Este nApplet quiere enviar un evento cifrado como tú. - Este nApplet quiere leer eventos de tus relés. - Este nApplet quiere utilizar su almacenamiento privado. Este nApplet quiere pagar una factura Lightning. - Este nApplet quiere obtener un recurso web. - Este nApplet quiere subir un archivo a tu servidor de medios. - Este nApplet quiere mostrarte notificaciones. - Este sitio quiere firmar un evento kind:%1$d con tu clave Nostr. - - Este nApplet quiere pagar una factura Lightning de %1$d sat. - Este nApplet quiere pagar una factura Lightning de %1$d sats. - - Cortos - Chats públicos - Paquetes de seguimiento - Transmisiones en vivo - Levantar la mano - Bajar la mano - Silenciar - Reactivar - No se pudo enviar el mensaje - Silenciar micrófono - Reactivar micrófono - Nests - Mantiene la reproducción de audio mientras una sala está abierta. - Nest conectado - Nest — En vivo - Toca para regresar. - Detener - levantó la mano - entró al escenario - está hablando - se unió al público - dejó el nest - Salir - No se pudo marcar la sala como cerrada. Saliendo de todos modos (la sala se cerrará automáticamente). - - %1$d oyente - %1$d oyentes - - Callar a este orador - Restaurar a este orador - Seguir - Dejar de seguir - Silenciar - Reactivar - No se ha podido guardar tu lista de servidores nest. Inténtalo de nuevo. - Servidores de nest - Tus servidores - Guardado como un evento reemplazable para que otros clientes puedan leer tus preferencias. - Servidores recomendados - Sugerencias integradas que puedes añadir a tu lista con un solo toque. - Videos - Música - Listas de reproducción - Episodios - Podcasts - - %1$d episodio - %1$d episodios - - Nueva pista de música - Nueva lista de reproducción - - %1$d pista - %1$d pistas - - Agregar a marcadores públicos - Eliminar de marcadores públicos - Fijar en el perfil - Desfijar del perfil - Nueva lista de marcadores - Metadatos de lista de marcadores - Conjuntos de hashtags - Nuevo conjunto de intereses - Renombrar - Hacer privado: envolver la nota como gift-wrap solo a los usuarios notificados - Hacer público - Las respuestas a una nota privada siempre permanecen privadas - Visible para Aún no hay destinatarios: solo tú podrás ver esta nota. Añade personas para compartirla. Añadir Eliminar usuario de las notificaciones Buscar y añadir un usuario para notificar - Los metadatos de las listas de marcadores son visibles para cualquier usuario de Nostr. Solo los miembros privados están cifrados. - Mover a público - Mover a privado - Recargar y enviar zap - Enviar zap - Recargar %1$s sats en %2$s y enviar zap de %3$s %4$s sats · comisión ≈ %5$s sats - Opción %s - (0–100)% - Opción simple - Opción múltiple - No se puede votar - Encuesta cerrada para votos nuevos - Solo se permite un voto por usuario en este tipo de encuesta - Los autores de encuestas no pueden votar en ellas. - ¿Qué significa esto? - Este contenido es el mismo desde la publicación - Este contenido cambió. Es posible que el autor no haya visto o aprobado el cambio - Agregar contenido multimedia - Agregar imagen - Agregar video - Agregar documento - Servidor de archivos - Elegir un servidor para subir este archivo - Servidores multimedia Configura tus servidores preferidos para subir contenido multimedia. Servidores multimedia recomendados Lista predeterminada de Amethyst. Puedes agregarlos individualmente o añadir la lista. - Objetivos de pago - Añadir direcciones de pago para diferentes redes (por ejemplo, Bitcoin, Lightning o Ethereum). - No se ha encontrado ninguna aplicación para gestionar este pago. Instala un monedero compatible. - No hay ninguna aplicación instalada para gestionar pagos de %1$s. Instala un monedero compatible. - No se puede abrir el pago - Opciones de privacidad - Todos los seguidos - Todos los seguidos - Lista de seguidos predeterminada - A mi alrededor - Global - Curada - Mía - Lista de silenciados - Nueva lista de seguimiento - Nuevo paquete de seguimiento - Editar lista - El puerto predeterminado es 9050 - Puerto Socks de Orbot - Motor de Tor activo - Usar la versión interna u Orbot - Preconfiguración de Tor y privacidad - Modificar rápidamente todos los ajustes a continuación - Url/Relés tipo onion - Usar Tor para cualquier URL .onion - Relés DM - Forzar Tor para enviar y recibir mensajes directos - Relés no confiables - Forzar Tor en la bandeja de salida/entrada - Relés de confianza - Forzar Tor en todos los relés de tus listas - Imágenes de perfil - Forzar Tor al cargar imágenes de perfil - Vistas previas de URL - Forzar Tor al cargar vistas previas de URL - Imágenes - Forzar Tor al cargar imágenes - Videos - Forzar Tor al cargar videos - Operaciones monetarias - Forzar Tor en transferencias de zaps, Lightning y Cashu - Verificación de dirección de Nostr - Forzar Tor al verificar direcciones NIP-05 - Subidas multimedia - Forzar Tor al subir contenido - Interno - Orbot - Desactivado - Básico - Predeterminado - Todo menos media - Privacidad total - Personalizado - Usar Tor cuando lo requiera el servidor - Ocultar tu IP de relés aleatorios - Ocultar tu IP de todo, excepto imágenes y videos - Oculta tu IP en todas las conexiones - Crea el tuyo - Mensajes privados - Te notifica cuando llega un mensaje privado - Zaps recibidos - Te notifica cuando alguien te zapea - %1$s sats - De %1$s - por %1$s - Responder - Marcar como leído - Nuevos mensajes - Nuevos zaps - Reacciones - Te notifica cuando alguien reacciona a tu publicación - %1$s reaccionó a tu publicación - para %1$s - Nuevas reacciones - Ajedrez - Te notifica sobre eventos de partidas de ajedrez - %1$s ha aceptado tu desafío de ajedrez - %1$s ha movido — es tu turno - Actualizaciones de ajedrez - Respuestas - Te notifica cuando alguien responde a tu publicación %1$s respondió en: %1$s - Nuevas respuestas - Menciones - Te notifica cuando alguien te menciona o te cita en una publicación - %1$s te mencionó - Nuevas menciones @@ -549,37 +80,6 @@ - Llamadas entrantes - Notificaciones de llamadas de voz y vídeo entrantes - Llamada entrante - Llamada de voz entrante… - Llamada de vídeo entrante… - Llamada con %1$s - Llamadas - Notificación de llamada en curso - Colgar - Aceptar - Rechazar - Silenciar - Reactivar - Cámara activada - Cámara desactivada - Altavoz - Auricular - Bluetooth - Amethyst necesita acceso al micrófono para iniciar una llamada de voz. Actívalo en los ajustes de la aplicación. - Amethyst necesita acceso a la cámara y al micrófono para iniciar una videollamada. Actívalos en los ajustes de la aplicación. - Ajustes de llamada - Mantiene las conexiones a tus relays de bandeja de entrada activas para notificaciones en tiempo real - Notificaciones de Amethyst activas - - Conectado a %1$d relay de bandeja de entrada - Conectado a %1$d relays de bandeja de entrada - - - Conectado a %1$d relay - Conectado a %1$d relays - - Conectando a los relays de bandeja de entrada… Servicio de notificaciones permanente Mantiene una conexión persistente a tus relays de bandeja de entrada para la entrega instantánea de notificaciones. Muestra una notificación en curso. Consume más batería, pero garantiza que nunca te pierdas un mensaje. - Dividir notificaciones por Seguidos - Muestra dos pestañas de notificaciones: Siguiendo (personas que sigues) y Todos. El indicador de no leídos se ilumina solo para la actividad de las personas que sigues. - Mostrar mensajes - Incluye mensajes directos y de grupo en la pestaña de Notificaciones. Desactívalo para mantener los mensajes solo en la pestaña de Mensajes. - Notificar: - Hoy - Ocultar - Mostrar - Advertir - Filtrar spam - Oculta las publicaciones de desconocidos que sean exactamente iguales 5 o más veces. - Añadir etiqueta de cliente a mis eventos - Cuando está activado, Amethyst añade una etiqueta de cliente NIP-89 a los eventos que publicas. - Advertir sobre reportes - Muestra un mensaje de advertencia cuando los mensajes tienen 5 o más reportes de los usuarios que sigues. - Ocultar publicaciones que infrinjan las normas de la comunidad - Elimina publicaciones de los feeds de comunidades cuando la comunidad publica un documento de normas NIP-9B y un evento no lo cumple. No tiene efecto cuando una comunidad no tiene normas estructuradas. - Preferencias de filtrado - Contenido bloqueado - Aún no has bloqueado a ningún usuario. - Ninguna cuenta ha sido marcada como spam en esta sesión. - No hay palabras ocultas. Añade una palabra a continuación para ocultar las publicaciones que la contengan. - No hay tipos de reacción preseleccionados para este usuario. Deja presionado el botón de corazón para cambiarlos. - Relé de lectura - Relé de escritura - La cantidad en bytes que se enviaron a este relé, incluyendo filtros y eventos - La cantidad en bytes que se recibieron de este relé, incluyendo filtros y eventos - Política de privacidad - Estándares de seguridad infantil - Información y avisos legales - Token de Cashu - La dirección de Lightning no está configurada - Relés - Paquetes de seguimiento - Lecturas - Algoritmos del feed - Mercado - Transmisiones en vivo - Comunidades - Chats - Contenido delicado - Agrega una advertencia de contenido sensible antes de mostrarlo - Preferencias de interfaz de usuario Preferencias de la app - Traducciones - Reacciones - Configuración - Configuraciones de la cuenta - Ajustes de la app - Zona peligrosa - Restablecer estado de Marmot - Estado de Marmot restablecido. - Error al restablecer el estado de Marmot: %1$s - Siempre - WiFi sin medición - Nunca - Completo - Simplificado - Rendimiento - Clásico - Moderno - Sistema - Claro - Oscuro - Wallet Connect - Tema - Vista previa de imagen - Reproducción de vídeo - Reproducción automática de vídeos - Vista previa de URL - Desplazamiento inmersivo - Ocultar barras de navegación al desplazarse - Modo de interfaz - Elegir el estilo de publicación - Estilo de galería de perfil - Elige el estilo de galería - Spammers - Silenciado. Hacer clic para reactivar el sonido. - Sonido activado. Hacer clic para silenciar. - Retroceder %d segundos - Adelantar %d segundos - Publicación con ubicación exclusiva - Solo los seguidores de la ubicación la verán. Tus seguidores generales no la verán. - - %1$d pista - %1$d pistas - - - +%1$d pista más - +%1$d pistas más - - Subir una imagen de portada - Elige una imagen cuadrada como portada de esta pista. - Subir un archivo de audio - Elige un MP3, WAV o FLAC. Se subirá a tu servidor multimedia al guardar. - Subiendo portada + audio y publicando. Esto continuará aunque salgas de la pantalla. - Editar lista de reproducción - Subir una imagen de portada - Elige una imagen cuadrada como portada de esta lista de reproducción. - Subiendo portada y publicando. Esto continuará aunque salgas de la pantalla. Público Grupo Privado - Asunto - No se puede subir - Ingresa primero el destino del mensaje - Billetera no encontrada - Amethyst no encontró ninguna aplicación de cartera compatible con Nostr Wallet Connect (NWC). -\n\nQué puedes hacer: -\n\t1. Verificar la compatibilidad con NWC: Comprueba que tu aplicación de cartera preferida es compatible con Nostr Wallet Connect. -\n\t2. Crear conexión: Ve a tu aplicación de cartera y crea una nueva conexión NWC. -\n\t3. Vincular con Amethyst: Tu cartera normalmente te ofrecerá tres opciones: -\n\t\t3.1 Enlace automático: Un botón para abrir y conectar automáticamente a Amethyst. Si es así, pulsa ese botón, abre Amethyst y guarda en la nueva pantalla. -\n\t\t3.2 Enlace manual: Un URI de conexión que puedes copiar y pegar usando el icono de pegado en esta pantalla para introducirlo directamente. -\n\t\t3.3 Código QR: La cartera genera un código QR que puedes leer con el botón de código QR en esta pantalla. - - Tema oscuro, claro o del sistema - Cargar automáticamente imágenes y GIF - Reproducir automáticamente videos y GIF - Reproduce vídeos automáticamente cuando son visibles en pantalla - Mostrar vistas previas de URL - Copiar al portapapeles - Copiado al portapapeles - Compartir o guardar Enviar como MD - Media añadida - Contenido multimedia agregado a la galería del perfil - No se pudo enviar el zap - Lightning no está configurado - El usuario %1$s no tiene una dirección de Lightning configurada para recibir sats. - Error al abrir la aplicación firmante - No se pudo encontrar la aplicación firmante. Comprueba si no se desinstaló la aplicación. - No se puede reproducir este vídeo - El códec o formato no es compatible con este dispositivo (%1$s). Intenta abrirlo en tu navegador. - Abrir en el navegador - Solicitud de firma rechazada - Asegúrate de que la aplicación firmante haya autorizado esta transacción. - No se encontraron billeteras para pagar una factura de Lightning (error: %1$s). Instala una billetera de Lightning para usar zaps. - No se encontraron billeteras para pagar una factura de Lightning. Instala una billetera de Lightning para usar zaps. - No se pueden abrir enlaces de Blossom - No se encontraron aplicaciones de Blossom. Instala una aplicación local de Blossom para ver este archivo - Palabras ocultas - Hilos silenciados - No hay hilos silenciados - Imagen de perfil - Mostrar imágenes de perfil - No se pudo pagar la factura - No se pudo retirar - No se pudo canjear Cashu - La Mint proporcionó el siguiente mensaje de error: %1$s - Cashu recibido - Se enviaron %1$s sats a tu billetera (comisión: %2$s sats). - No se encontró ninguna billetera de Cashu compatible en el sistema - No se puede obtener la factura de los servidores del destinatario - El proveedor de conexión de billetera devolvió el siguiente error: %1$s - No se pudo ensamblar la LNUrl desde la dirección de Lightning \"%1$s\". Comprueba la configuración del usuario. - No se pudo obtener la factura de %1$s: %2$s - Error al analizar JSON desde %1$s. Comprueba la configuración de Lightning del usuario. - No se encontró la URL de devolución de llamada en la respuesta de %1$s. - Cantidad de factura incorrecta (%1$s sats) de %2$s. Debería haber sido %3$s. - No se pudo crear una factura de Lightning antes de enviar el zap. La billetera de Lightning del destinatario envió el siguiente error: %1$s. - Usuario de solo lectura - No hay reacciones configuradas - Notificaciones - Entrega - Visualización en la aplicación - Categorías - Mensaje de %1$s - Hola, %1$s, ¿esto todavía está disponible? - Ropa - Accesorios - Artículos electrónicos - Muebles - Objetos de colección - Libros - Mascotas - Deportes - Acondicionamiento físico - Arte - Artesanías - Hogar - Oficina - Comida - Varios - Otros - Error al subir contenido multimedia - No se pudo abrir el archivo comprimido - Error de subida: %1$s - El servidor no proporcionó una URL después de la subida - No se pudo descargar el contenido subido desde el servidor - No se pudo comprobar el archivo descargado después de subir: %1$s - Error al subir a %1$s: %2$s - Error al eliminar: %1$s - El contenido multimedia es demasiado grande para NIP-95 - Cifrar archivos - Cifra los archivos antes de subirlos para mayor privacidad. Algunos servidores pueden no aceptar archivos cifrados en cuentas gratuitas. - Error al subir el archivo cifrado - Muchos servidores no aceptan archivos cifrados en cuentas gratuitas. Puedes volver a intentarlo sin cifrado. - Usa H.265/HEVC Codec - Mejor calidad en tamaños de archivos más pequeños, pero no todos los dispositivos admiten la reproducción H.265. - Convertir GIF a MP4 - Convierte GIF animados a vídeo MP4 para reducir el tamaño del archivo y mejorar la compatibilidad de reproducción. - Eliminar metadatos privados - Intenta eliminar los metadatos privados de los archivos multimedia compatibles antes de subirlos - No se pudieron eliminar los metadatos - Error al eliminar los metadatos privados del archivo multimedia. Subida cancelada. - Subida cancelada - No se pueden eliminar los metadatos del AVIF: %1$s - Inicio - Descubrir - Mensajes - Notificaciones - Calendarios - Listas de calendarios - Ajedrez - Billetera - Cartera Cashu (NIP-60) Clave nutzap (avanzado) Una clave privada separada usada únicamente para recibir nutzaps NIP-61. No es tu clave de identidad Nostr. Generar una nueva clave Clave privada P2PK (hex) - Editar mints Guardar cambios - - +%1$d más - +%1$d más - - - Recomendado por %1$d persona más - Recomendado por %1$d personas más - - Mints populares - Mints coincidentes - Recibido - Enviado - Publicar una solicitud de eliminación para tu recomendación kind:38000 de %1$s. Los relays que respetan NIP-09 la eliminarán. - Se recuperaron %1$s sats en %2$s pruebas. - ¿Pagar %1$s sat + hasta %2$s sat en comisiones? - Nutzap fallido - No hay clave pública de destinatario en la nota - Los nutzaps son públicos y revelarían esta nota privada. Usa un zap Lightning en su lugar. - No se puede construir la referencia del evento - Esperando a que se pague la factura… - Comprobando el mint… - Lento - Normal - Rápido - ~1 h - ~30 min - ~10 min - %1$s · %2$s sat/vB · %3$s - - Enviar %1$s sats, %2$d destinatario - Enviar %1$s sats, %2$d destinatarios - - - Usar la división de zap %1$d de esta nota - Usar la división de zap %1$d de esta nota - - - Divisiones entre %1$d destinatario - Divisiones entre %1$d destinatarios - - - Se omite %1$d destinatario solo con dirección Lightning — el onchain necesita una clave pública Nostr para derivar la dirección. - Se omiten %1$d destinatarios solo con dirección Lightning — el onchain necesita una clave pública Nostr para derivar la dirección. - - cargando saldo - construyendo la transacción - firmando - difundiendo - publicando el recibo - El backend de la cadena Bitcoin no está configurado - No se pudo cargar tu saldo de Bitcoin - No se pudo construir la transacción - La parte de un destinatario está por debajo del dust - No se pudo firmar la transacción - No se pudo difundir la transacción - Pago enviado, pero el recibo del zap no se pudo publicar - - Pago enviado (%1$d de %2$d recibo publicado), pero el siguiente recibo no se pudo publicar - Pago enviado (%1$d de %2$d recibos publicados), pero el siguiente recibo no se pudo publicar - - Importar seguidos - Nuevo producto - Nuevo artículo - Nuevo evento de calendario - Editar evento de calendario - Nuevo calendario - Editar calendario - Tablón - Mes - Semana - Día - - %1$s, %2$d evento - %1$s, %2$d eventos - - En curso ahora - %1$s · termina %2$s - Compartir evento de calendario - recordatorios_calendario - Recordatorios de calendario - Aviso cuando un evento al que asistirás está a punto de comenzar. - Evento de calendario - - Comienza en %1$d minuto - Comienza en %1$d minutos - - Error al subir la imagen - No se pudo subir la imagen seleccionada. Inténtalo de nuevo o pega una URL. - Recordatorios de calendario - Enviar recordatorios - Se enviará una notificación cuando un evento al que asistirás esté a punto de comenzar. - - %1$d min - %1$d min - - Abrir en mapas - Abrir enlace - Abrir todas las reacciones a esta publicación - Cerrar todas las reacciones a esta publicación - Zap - Barra de navegación inferior Arrastra para reordenar. Activa o desactiva para añadir o eliminar un elemento de la barra inferior. Con cero elementos la barra inferior se oculta. Reordenar Elige qué pestañas aparecen en la pantalla de inicio. Cuando solo hay una pestaña activa la barra de pestañas se oculta. - Todo - Interfaz del perfil Elige qué secciones y feeds aparecen en las pantallas de perfil de usuario. Todas las opciones están habilitadas de forma predeterminada. - Insignias del perfil - Recomendaciones de aplicaciones - Feed de zaps recibidos - Feed de seguidores - Fila de reacciones - Botones del reproductor de vídeo - Visualizador de audio - Fecha de expiración - Dirección inválida - Amethyst recibió un URI para abrir pero era inválido: %1$s - Relés de entrada DM - Relés de búsqueda - Algunas buenas opciones son: \n%1$s - Relays de salida - Relays de entrada - Configuración de relés - Relés de inicio públicos - El usuario está publicando su contenido a estos relés - Este tipo de relé almacena todo tu contenido. Amethyst enviará tus publicaciones aquí y otros usarán estos relés para encontrar tu contenido. Inserta entre 1 y 3 relés. Pueden ser personales, de pago o públicos. - Relés de buzón de entrada públicos - El usuario está recibiendo notificaciones en estos relés - Este tipo de relé recibe todas las respuestas, comentarios, me gusta y zaps de tus publicaciones. Inserta entre 1 y 3 relés y asegúrate de que acepten publicaciones de cualquier persona. - Relés de entrada DM - El usuario recibe mensajes directos en estos relés - Inserta entre 1 y 3 relés para que te sirvan de buzón de entrada privado. Otros usarán estos relés para enviarte mensajes directos. Los relés del buzón de entrada para mensajes directos deberían aceptar cualquier mensaje de cualquier persona, pero solo te permiten descargarlos. Algunas buenas opciones son:\n - inbox.nostr.wine (de pago)\n - you.nostr1.com (relés personales; de pago) - Paquetes de claves - Relays de KeyPackage - Relays donde se publican tus MLS KeyPackages (MIP-00). Otros usuarios obtienen estas KeyPackages para invitarte a chats de grupo Marmot. Introduce entre 1 y 3 relays que acepten eventos KeyPackage de tu parte y permitan lecturas públicas. - Relés privados - Inserta entre 1 y 3 relés para almacenar eventos que nadie más pueda ver, como los borradores o la configuración de la app. Lo ideal es que estos relés sean locales o requieran autenticación antes de descargar el contenido de cada usuario. - Relés conectados - Lista actual de relés en uso - Relés de búsqueda - Lista de relés que se usarán al buscar contenido o usuarios. El etiquetado y la búsqueda no funcionarán si no hay opciones disponibles. Asegúrate de que implementen NIP-50. - Relés locales - Lista de relés que se utilizan en este dispositivo. - Reenviar perfiles al relay local - Enviar todos los eventos de perfil (kind 0) recibidos a tu relay local - Relés de confianza - Relés en que confías para no necesitar una conexión Tor para - Feeds de relays favoritos - Relays a los que sueles ir para ver su feed global - Relés de proxy - Relés recopiladores que la app debe usar para descargar tus feeds, como filter.nostr.wine. Esto reemplaza el modelo de bandeja de salida y hará que la app se conecte solo a los relés de tus listas. - Relés de transmisión - Relés que se especializan en enviar tus notas a todos los demás relés, como sendit.nosflare.com. Amethyst agregará este relé a todos los eventos nuevos que crees. - Relés de indexador - Relés que se especializan en alojar los metadatos y las listas de retransmisión de todos, como purplepag.es. Amethyst usará estos relés para encontrar usuarios que no estén en tus listas. - Relés bloqueados - Amethyst nunca se conectará a estos relés - Exportar configuración de relays Web: Resumen Acerca de Enlaces Mantenedores Temas - Prueba de marca de tiempo - Hay prueba de que esta publicación se firmó en algún momento antes de %1$s. La prueba se marcó en la cadena de bloques de Bitcoin en esa fecha y hora. - Editar publicación - No es posible responder a un borrador de nota - No es posible citar un borrador de nota - No es posible reaccionar a un borrador de nota - No es posible zapear un borrador de nota - Borrador de nota - Solicitud incorrecta: el servidor no puede procesar o no procesará la solicitud. - No autorizado: el usuario no tiene credenciales de autenticación válidas. - Pago requerido: el servidor requiere pago para completar la solicitud. - Prohibido: el usuario no tiene derechos de acceso para realizar la solicitud. - No se encontró: el servidor no puede encontrar la dirección solicitada. - Método no permitido: el servidor admite el método de solicitud, pero no el recurso de destino. - No aceptable: el servidor no encuentra ningún contenido que satisfaga la solicitud. - Autenticación de proxy requerida: el usuario no tiene credenciales de autenticación válidas. - Tiempo de espera de la solicitud: se agotó el tiempo de espera del servidor. - Conflicto: el servidor no puede satisfacer la solicitud porque hay un conflicto con el recurso. - Borrado: el contenido solicitado se eliminó permanentemente del servidor y no se restablecerá. - Longitud requerida: el servidor rechaza la solicitud porque requiere una longitud definida. - Precondición fallida: las precondiciones de la solicitud en los campos de cabecera que el servidor no cumple. - Carga demasiado grande: la solicitud supera los límites definidos por el servidor, por lo que este se niega a procesarla. - URI demasiado largo: la URL solicitada por el cliente es demasiado larga para que el servidor pueda procesarla. - Tipo de contenido multimedia no admitido: la solicitud usa un formato multimedia que el servidor no admite. - Intervalo no satisfactorio: el servidor no puede satisfacer el valor indicado en el campo de cabecera del intervalo de la solicitud. - Expectativa fallida: el servidor no puede cumplir los requisitos indicados por el campo de cabecera de la solicitud Expect. - Actualización requerida: el servidor se niega a procesar la solicitud utilizando el protocolo actual a menos que el cliente se actualice a un protocolo diferente. - Error interno del servidor: el servidor encontró un error inesperado y no puede completar la solicitud. - No implementado: el servidor no puede completar la solicitud o no reconoce el método de solicitud. - Gateway incorrecto: el servidor actúa como gateway y obtuvo una respuesta no válida del host. - Servicio no disponible: esto ocurre a menudo cuando un servidor está sobrecargado o caído por mantenimiento. - Tiempo de espera del gateway: el servidor estaba actuando como gateway o proxy y se agotó el tiempo de espera de una respuesta. - Versión HTTP no admitida: el servidor no admite la versión HTTP de la solicitud. - La variante también negocia: el servidor tiene un error de configuración interno. - Almacenamiento insuficiente: el servidor no dispone de almacenamiento suficiente para procesar correctamente la solicitud. - Bucle detectado: el servidor detecta un bucle infinito al procesar la solicitud. - Autenticación de red requerida: el cliente debe estar autenticado para acceder a la red. Servidores Blossom Agrega tantos servidores como quieras. Puedes elegir cuál usar más tarde al subir tu foto. - Agregar servidor NIP-96 - Agregar un servidor Blossom Descargar - Error al abrir el archivo - No hay aplicaciones torrent instaladas para abrir y descargar el archivo. - El evento no tiene suficiente información para crear un enlace magnético - Mis listas - Tablones - Hashtags - Conjuntos de intereses - Ubicaciones - Comunidades - Listas - Algoritmos de feed - Todos los algoritmos de feed favoritos - Relés - Algoritmos de feed favoritos - Mensaje privado - Mensaje público - No se puede compartir la imagen, inténtalo de nuevo más tarde… - No se puede compartir el vídeo, por favor inténtalo de nuevo más tarde… - Descargando vídeo… - No traducir del - Los idiomas que se muestran aquí no se traducirán. Selecciona un idioma para eliminarlo y traducirlo de nuevo. - Traducir a - Elige el idioma al que traducir el contenido. - Preferencias de visualización de idioma - Para cada par de idiomas traducidos, elige qué idioma mostrar primero. - Pausar - Reproducir - Este mensaje desaparecerá en %1$s - Metadatos de lista de seguidos - Los metadatos de las listas de seguidos pueden verlos todos en Nostr. Solo tus miembros privados están cifrados. - Metadatos del pack de seguidos - Los metadatos del pack de seguidos pueden verlos todos en Nostr y se publican frecuentemente en muchos sitios web como kits de inicio para nuevos usuarios. - Editar pack de seguidos - Expandir - Reintentar - Reacción - Publicación de voz - Respuesta de voz - Relés de salida - Aplicaciones - Recomendaciones de aplicaciones - Ajustes de usuario - Cabecera de audio - Pista de audio - Pista de música - Lista de reproducción - Episodio de pódcast - Programa de pódcast - Pódcasts creados - Pódcasts favoritos - Insignias concedidas - Definiciones de insignias - Conjunto de insignias aceptadas - Insignias del perfil - Relés bloqueados - Servidores Blossom - Servidores Nests - Autenticación Blossom - Relés de difusión - Lista de marcadores - Lista de marcadores antigua - Cita del día - Calendario - Cita - Confirmación de cita - Partidas de ajedrez - Autenticación de ajedrez - Relés favoritos - Desafíos de ajedrez - Aceptación de partida de ajedrez - Movimiento de ajedrez - Fin de partida de ajedrez - Oferta de tablas en ajedrez - Definición de canal - Ocultar mensaje del canal - Lista de canales - Mensaje del canal - Metadatos del canal - Silenciar usuario del canal - Archivo de mensaje directo - Mensaje directo - Relés DM - Clasificados - Comentarios - Definición de comunidad - Lista de comunidades - Publicación de comunidad - Lista de seguidos - Eliminaciones - Borradores - Packs de emojis - Lista de packs de emojis - Chat efímero - Salas de chat efímeras - Cabeceras de archivo - Galería del perfil - Servidores de archivos - Datos blob - Cabeceras blob - Datos médicos - Packs de seguidos - Republicaciones (16) - Seguidos por geohash - GiftWraps - Incidencia de Git - Parche de Git - Repositorio de Git - Respuesta de Git - Solicitud de incorporación - Actualización de solicitud de incorporación - Objetivos de Zap - Seguidos por hashtag - Destacados - Autenticación HTTP - Lista de relés de índice - Prólogo de aventura - Escena de aventura - Lectura de aventura - Marcadores con nombre - Chats en directo - Transmisiones en directo - Zaps - Solicitud NWC - Respuesta NWC - Zaps privados - Solicitud de Zap - Blogs - Sala de reuniones - Presencia en sala - Espacio de reuniones - Perfil - Lista de silenciados - NNS - NIP - Nostr Connect - Estado DVM - Solicitud de contenido DVM - Respuesta de contenido DVM - Solicitud de usuario DVM - Respuesta de usuario DVM - OTS - Pagar a - Listas de personas - Imágenes - Entrenamientos - Fijados - Encuesta de Zap - Encuesta - Respuesta de encuesta - Mensajes directos NIP-04 - Relés privados - Relés proxy - Mensaje público - Reacciones - Tarjeta de contacto - Autenticación de relé - Descubrimiento de relés - Anuncio del monitor de relés - Conjunto de relés - Informes - Republicaciones - Eliminación de usuario - Sellos - Relés de búsqueda - Estado del usuario - Notas - Ediciones - Torrents - Comentarios de torrent - Relés de confianza - Proveedores de confianza - Vídeo (Repl) - Vídeo - Mensaje de voz - Respuesta de voz - Marcador web - %1$d%% de disponibilidad - Ajustes de Namecoin - Sincronización de relés - Explorador de Bitcoin (OTS) - eventos tuyos - eventos para ti - eventos buscables - perfiles - listas de salida - Visto por última vez hace %1$s - Visto por última vez el %1$s (hace %2$s) - Visto ahora mismo - Nunca visto - - %1$d minuto - %1$d minutos - - - %1$d hora - %1$d horas - - - %1$d día - %1$d días - - - %1$d semana - %1$d semanas - - - %1$d mes - %1$d meses - - - %1$d año - %1$d años - - - %1$d factura pendiente - %1$d facturas pendientes - - - Fondos en %1$d mint que no usas - Fondos en %1$d mints que no usas - - %1$s sat movidos a %2$s. - Emitir al dispositivo - Detener emisión - Subida HLS - Subiendo %1$s (%2$d de %3$d) - Atestación - Solicitud de atestación - Recomendación del atestador - Competencia del atestador - Marcadores web - Añadir marcador web - Editar marcador web - %1$s financiados del objetivo de %2$s sats - Nuevo objetivo - Solicitud de desaparición - Solicitud de desaparición enviada - Historial de desapariciones - Usuarios - Eventos - Tipos - Ajustes - Proponer mejoras de texto - Usa un modelo de IA en el dispositivo para proponer correcciones de texto y cambios de tono. - Difusiones rastreadas - Usa el emisor rastreado al enviar eventos. Muestra el progreso en tiempo real y el estado por relay durante la difusión. - Sugerir entrenamientos para compartir - Lee los entrenamientos finalizados de Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) y sugiere compartirlos como publicación. El permiso se solicita solo cuando te conectas. - Ajustes de composición - Crear borradores automáticamente - Guarda un borrador automáticamente cuando escribes o abandonas el compositor con texto no enviado, y lo envía a tus relays de bandeja de salida privada. - Nuevo paquete de emojis - Editar paquete de emojis - Mis paquetes de emojis - Los emojis públicos son visibles para todos y aparecen en tu menú de reacciones y en el selector de autocompletado \":\" cuando este paquete está en tu lista de emojis. - Los emojis privados se almacenan cifrados en los relays y solo son visibles para ti. Aparecen en tu menú de reacciones y en el autocompletado \":\" igual que los públicos. - El borrador ocupa %1$d bytes; esta comunidad limita este tipo a %2$d bytes. - El borrador ocupa %1$d bytes; esta comunidad limita los eventos a %2$d bytes. - Ya has publicado %1$d eventos de este tipo hoy (límite %2$d). - Sitio Nowhere - Evento Nowhere - Recaudación Nowhere - Tienda Nowhere - Petición Nowhere - Mensaje Nowhere - Drop Nowhere - Arte Nowhere - Foro Nowhere - - %1$d miembro - %1$d miembros - - Información del grupo actualizada - Error al actualizar: %1$s - Error al crear el grupo: %1$s - Error al salir del grupo: %1$s - Añadiendo %1$s… - Error al añadir %1$s: %2$s - error desconocido - Miembro eliminado - Error al eliminar miembro: %1$s - Privilegios de administrador concedidos - Error al conceder administrador: %1$s - Privilegios de administrador revocados - Error al revocar administrador: %1$s - No eres miembro de este grupo El servicio de Lightning del destinatario en %1$s no está disponible. Se calculó a partir de la dirección de Lightning \"%2$s\". Error: %3$s. Comprueba si el servidor está activo y si la dirección de Lightning es correcta. No se pudo resolver %1$s. Comprueba si tienes conexión, si el servidor está activo y si la dirección de Lightning \"%2$s\" es correcta..\n\nLa excepción fue: %3$s Error al analizar JSON desde la recuperación de factura de %1$s. Comprueba la configuración de Lightning del usuario. diff --git a/amethyst/src/main/res/values-es/strings.xml b/amethyst/src/main/res/values-es/strings.xml index 2be51602a2..6c143797e3 100644 --- a/amethyst/src/main/res/values-es/strings.xml +++ b/amethyst/src/main/res/values-es/strings.xml @@ -1,86 +1,8 @@ - Clave secreta (nsec) copiada al portapapeles - Copiar mi clave secreta - Autenticación fallida - Texto de nota copiado al portapapeles - \@npub del autor copiado al portapapeles - ID de nota copiada (@note1) al portapapeles - Spam - Suplantación de identidad - Comportamiento ilegal Bloquear y ocultar usuario - Inicie sesión con una clave privada para poder responder - Inicie sesión con una clave privada para poder publicar posts - Inicie sesión con una clave privada para dar me gusta a los posts - Falta la configuración de Zaps por defecto. Mantén pulsado unos segundos para cambiarla - Inicie sesión con una clave privada para poder enviar Zaps - Zaps - Impulsar boosted - Añadir - Perfil - Filtros de seguridad - Pagar - "Imagen de vista previa para %1$s" - Descripción - ¿Qué tienes en mente? - Enviar Guardar - Crear - Cancelar - Errores - Imagen guardada en la galería - Error al guardar la imagen - El usuario no tiene una configuración de dirección Lightning para recibir sats - "responde aquí… " - Conocidos - Nuevas solicitudes - Usuarios bloqueados - Temas nuevos - Conversaciones - Más opciones - Seguir - Ocultar contraseña - Clave invalida - Se requiere la clave - Dejar - Dejar de seguir - Chat público - Eliminar - nunca - ahora - h - m - d - Desnudos - Blasfemias / Discurso de odio - Compartir enlace del navegador - Compartir - ID de la nota - Eliminar - Claves de respaldo - - - - Esta publicación tiene más de %1$d hashtag - Esta publicación tiene más de %1$d hashtags - - - - %1$d activo incluido - %1$d activos incluidos - - - - +%1$d\nrespuesta - +%1$d\nrespuestas - - - - - -El número de eventos de spam procedentes de este relé @@ -89,7 +11,6 @@ -Solicitar eliminación @@ -98,53 +19,43 @@ -Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder seguir a otros usuarios. -Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder dejar de seguir a otros usuarios. -Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder ocultar una palabra o frase. -Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder mostrar una palabra o frase. -Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder subir contenido. -Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder firmar eventos. -Descifrado no autorizado -El firmante no autorizó un descifrado necesario para realizar esta operación. Activa el descifrado NIP-44 en tu aplicación de firmante e inténtalo de nuevo -No se ha encontrado el firmante. -¿Se ha desinstalado la app del firmante? Comprueba si el firmante está instalado y tiene esta cuenta. Cierra sesión y vuelve a iniciar sesión en la app del firmante si ha cambiado. -El firmante externo devolvió una carga útil que no concuerda con la solicitud. Es posible que haya un error, ya sea en Amethyst o en el firmante. + + + + + + + + edición #%1$s -Proponer una edición -Error al analizar el mensaje de error -Solicitando factura… -El servicio de débito no completó el pago. -¿Pagar %1$s por %2$s? -¿Pagar esta factura por %1$s? -Introduce una cantidad válida para esta oferta. @@ -153,13 +64,9 @@ -Único -Diario -Semanal -Mensual @@ -185,13 +92,11 @@ -Pagando por %1$s… -Pago fallido @@ -201,10 +106,8 @@ -Disponible para este destinatario: %1$s sats -Transacción: %1$s @@ -215,68 +118,10 @@ -Escribir un mensaje… -Enviar Cambiar nombre -Error - -Porcentaje de conexiones exitosas al relé - - - - - - - - -Guardar en el teléfono - -La descarga del vídeo ha comenzado… - -La descarga del contenido multimedia ha comenzado… - -Fijar arriba - -Eliminar fijado - - -Video guardado en la galería de videos del teléfono - -Error al guardar el video - -PDF guardado en Descargas/Amethyst - -Error al guardar el PDF - - - - -No se ha encontrado ninguna aplicación de cámara en este dispositivo - - -Haz clic y mantén pulsado para grabar un mensaje - - - - -Error de carga - -Error al cargar el mensaje de voz - -NIP-95 aún no es compatible con mensajes de voz - -Error al cargar voz: %1$s - -Ninguna - -Grave - -Aguda - -Neutra @@ -286,19 +131,48 @@ -Mostrar código QR de clave privada - -Mostrar código QR de clave privada cifrada - -Seguir también -Clave inválida: %1$s -Se requiere una contraseña -Se requiere un nombre + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -317,30 +191,15 @@ Nuevo perfil de chat: -Chat temporal -Chat en relé -Chats en relé -Los chats en relé son grupos de chat controlados por su relé de origen. - Son visibles para todos los usuarios de Nostr y cualquiera puede participar en ellos. - Son ideales para comunidades abiertas en torno a temas específicos. Algunos de estos grupos son efímeros - y, por lo tanto, los mensajes del chat desaparecen con el tiempo -Grupo MLS -Metadatos públicos del chat -Los chats públicos son visibles para todos en Nostr y cualquiera - puede participar en ellos. Son ideales para comunidades abiertas alrededor de temas específicos. - La moderación puede controlarse eliminando publicaciones en sus relés. -Relés -Inserta entre 1 y 3 relés que alojan este grupo. - Los clientes de Nostr utilizan esta configuración para saber de dónde descargar y adónde enviar los mensajes. @@ -349,37 +208,24 @@ -Error al cifrar la clave privada -El sistema biométrico no pudo autenticar al propietario de este teléfono -El sistema biométrico no pudo autenticar al propietario de este teléfono. Error: %1$s -"<Unable to decrypt private message>\n\nTe citaron en una conversación privada o encriptada entre %1$s y %2$s." -Cuentas -Navegar -Tú -Tablones -Crear -Sistema -Volver -Compartir como imagen -Compartir como Url de Imagen @@ -388,9 +234,7 @@ -Silenciar hilo -Reactivar hilo @@ -400,7 +244,6 @@ -Bloquear y ocultar usuario @@ -410,21 +253,16 @@ -Bloquear -Marcadores -Los marcadores se migraron correctamente -Borradores -Publicaciones programadas @@ -433,14 +271,10 @@ -Programar publicación -Cancelar programación -Las publicaciones programadas pueden no realizarse hasta que vuelvas a abrir la aplicación. Habilita la activación en \"Configuración → Preferencias de interfaz de usuario\" para garantizar una programación en segundo plano fiable. -Las publicaciones programadas pueden no realizarse hasta que vuelvas a abrir la aplicación. Las publicaciones programadas de otras cuentas no se activarán mientras esta cuenta esté activa. Habilita la activación en \"Configuración → Preferencias de interfaz de usuario\" para garantizar una programación en segundo plano fiable. @@ -449,114 +283,61 @@ -%1$s · en %2$s -%1$s · hace %2$s -Mañana -Sesión cerrada - - Sesión cerrada · %d publicación programada eliminada - Sesión cerrada · %d publicaciones programadas eliminadas - -Se realizó la publicación programada -Fallo en la publicación programada -Publicaciones programadas -Notificaciones cuando una publicación programada se realiza o no. -Enviar ahora -Error: %1$s -Programadas -Enviando… -Error -Enviada -Cancelada - - Tienes %d publicación programada que aún no se ha publicado. Cerrar sesión la eliminará permanentemente. - Tienes %d publicaciones programadas que aún no se han publicado. Cerrar sesión las eliminará permanentemente. - - - %d en cola - %d en cola - - - · %d vence en 1h - · %d vencen en 1h - - - a %d relé - a %d relés - -ID de nota copiado -Encuestas -Abiertas -Cerradas -Insignias -Comunidades -Nueva comunidad -Editar comunidad -Moderadores -Relés -Reglas verificables (opcional) -Kinds de eventos permitidos -Texto corto (1) -Artículo de formato extenso (30023) -Publicación de imagen (20) -Publicación de video (21) -Vídeo corto (22) -Comentario de la comunidad (1111) @@ -565,23 +346,18 @@ -Usuarios bloqueados -Portal de red de confianza (opcional) -Tamaño máximo de evento global (opcional) -Nueva Insignia -Insignia de premio @@ -598,7 +374,6 @@ -Insignias del perfil @@ -622,12 +397,9 @@ -Imágenes -Entrenamientos -Nuevo entrenamiento @@ -654,41 +426,24 @@ -Carrera -Caminata -Ciclismo -Senderismo -Natación -Remo -Fuerza -Yoga -Meditación -Dieta -Ayuno -Circuito -EMOM -AMRAP -Apps Apps -nApplets -nSites @@ -704,53 +459,32 @@ -nApplet %1$s… Shell -Identidad -Acciones del teclado -Relés -Almacenamiento -Pagos -Red -Subidas Preguntar qué funcionalidades están disponibles -Leer tu clave pública -Enlazar atajos de teclado -Leer, firmar y publicar tus eventos -Su propio almacenamiento privado -Pagar facturas de Lightning -Obtener recursos web y de Blossom -Subir archivos a tu servidor multimedia -Tema -Notificaciones -Mensajes -Combina los colores de la app -Mostrar notificaciones -Intercambiar mensajes con otros napplets Funcionalidad: %1$s @@ -759,53 +493,36 @@ -Este nApplet quiere leer tu clave pública. -Esta nApplet quiere leer tu perfil y datos de la cuenta. -Este nApplet quiere firmar y publicar un evento %1$d como tú. -Este nApplet quiere firmar y publicar un evento %1$d como tú: -Este nApplet quiere enviar un evento cifrado como tú. -Este nApplet quiere leer eventos de tus relés. -Este nApplet quiere utilizar su almacenamiento privado. -Cortos -Chats públicos -Paquetes de seguimiento -Transmisiones en vivo -Nests -Levantar la mano -Bajar la mano -Silenciar -Reactivar -No se pudo enviar el mensaje @@ -814,25 +531,17 @@ -Silenciar micrófono -Reactivar micrófono -Nests -Mantiene la reproducción de audio mientras una sala está abierta. -Nest conectado -Nest — En vivo -Toca para regresar. -Detener @@ -844,28 +553,17 @@ -levantó la mano -entró al escenario -está hablando -se unió al público -dejó el nest -Salir -No se pudo marcar la sala como cerrada. Saliendo de todos modos (la sala se cerrará automáticamente). - - %1$d oyente - %1$d oyentes - @@ -885,20 +583,14 @@ -Callar a este orador -Restaurar a este orador -Seguir -Dejar de seguir -Silenciar -Reactivar @@ -909,33 +601,25 @@ -Servidores de nest -Tus servidores -Guardado como un evento reemplazable para que otros clientes puedan leer tus preferencias. -Videos -Agregar a marcadores públicos -Eliminar de marcadores públicos -Nueva lista de marcadores -Metadatos de lista de marcadores @@ -949,11 +633,8 @@ -Los metadatos de las listas de marcadores son visibles para cualquier usuario de Nostr. Solo los miembros privados están cifrados. -Mover a público -Mover a privado @@ -962,25 +643,18 @@ -Opción %s -(0–100)% -Opción simple -Opción múltiple -No se puede votar -Encuesta cerrada para votos nuevos -Solo se permite un voto por usuario en este tipo de encuesta @@ -989,21 +663,13 @@ -Los autores de encuestas no pueden votar en ellas. -¿Qué significa esto? -Este contenido es el mismo desde la publicación -Este contenido ha cambiado. Es posible que el autor no haya visto o aprobado el cambio. -Añadir contenido multimedia -Añadir imagen -Añadir vídeo -Añadir documento @@ -1022,11 +688,8 @@ -Servidor de archivos -Elegir un servidor para cargar este archivo -Servidores multimedia Configura tus servidores preferidos para subir contenido multimedia. @@ -1038,10 +701,8 @@ -Objetivos de pago -Añadir direcciones de pago para diferentes redes (por ejemplo, Bitcoin, Lightning o Ethereum). @@ -1052,21 +713,15 @@ -Opciones de privacidad -Todos los seguidos -Todos los seguidos -A mi alrededor -Global -Lista de silenciados @@ -1074,9 +729,7 @@ -Nueva lista de seguimiento -Nuevo paquete de seguimiento @@ -1090,187 +743,104 @@ -Editar lista -El puerto predeterminado es 9050 -Puerto Socks de Orbot -Motor de Tor activo -Usar la versión interna u Orbot -Preconfiguración de Tor y privacidad -Modificar rápidamente todos los ajustes a continuación -Url/Relés tipo onion -Usar Tor para cualquier URL .onion -Relés DM -Forzar Tor para enviar y recibir mensajes directos -Relés no confiables -Forzar Tor en la bandeja de salida/entrada -Relés de confianza -Forzar Tor en todos los relés de tus listas -Imágenes de perfil -Forzar Tor al cargar imágenes de perfil -Vistas previas de URL -Forzar Tor al cargar vistas previas de URL -Imágenes -Forzar Tor al cargar imágenes -Videos -Forzar Tor al cargar videos -Operaciones monetarias -Forzar Tor en transferencias de zaps, Lightning y Cashu -Verificación de dirección de Nostr -Forzar Tor al verificar direcciones NIP-05 -Subidas multimedia -Forzar Tor al subir contenido -Interno -Orbot -Desactivado -Básico -Predeterminado -Todo menos media -Privacidad total -Personalizado -Usar Tor cuando lo requiera el servidor -Ocultar tu IP de relés aleatorios -Ocultar tu IP de todo, excepto imágenes y videos -Oculta tu IP en todas las conexiones -Crea el tuyo -Mensajes privados -Te notifica cuando llega un mensaje privado -Zaps recibidos -Te notifica cuando alguien te zapea -%1$s sats -De %1$s -por %1$s -Responder -Marcar como leído -Nuevos mensajes -Nuevos zaps -Reacciones -Te notifica cuando alguien reacciona a tu publicación -%1$s reaccionó a tu publicación -Llamada con %1$s -Llamadas -Notificación de llamada en curso -Colgar -Aceptar -Rechazar -Silenciar -Reactivar -Cámara activada -Cámara desactivada -Altavoz -Auricular -Bluetooth -Notificar: -Hoy -Ocultar -Mostrar -Advertir -Filtrar spam -Oculta las publicaciones de desconocidos que sean exactamente iguales 5 o más veces. -Advertir sobre reportes -Muestra un mensaje de advertencia cuando los mensajes tienen 5 o más reportes de los usuarios que sigues. -No hay tipos de reacción preseleccionados para este usuario. Deja presionado el botón de corazón para cambiarlos. -Relé de lectura -Relé de escritura -La cantidad en bytes que se enviaron a este relé, incluyendo filtros y eventos -La cantidad en bytes que se recibieron de este relé, incluyendo filtros y eventos @@ -1292,7 +862,6 @@ -Política de privacidad @@ -1324,12 +893,10 @@ -Token de Cashu -La dirección de Lightning no se ha configurado @@ -1342,104 +909,24 @@ -Relés -Paquetes de seguimiento -Lecturas -Algoritmos de fuentes -Mercado -Transmisiones en vivo -Comunidades -Chats -Contenido delicado -Agrega una advertencia de contenido sensible antes de mostrarlo -Preferencias de UI Preferencias de la app -Traducciones - -Reacciones - -Configuración - -Configuraciones de la cuenta - -Ajustes de la app - - - -Zona peligrosa - -Siempre - -WiFi sin medición - -Nunca - -Completo - -Simplificado - -Rendimiento - -Clásico - -Moderno - -Sistema - -Claro - -Oscuro - - -Wallet Connect - - -Tema - -Vista previa de imagen - -Reproducción de vídeo - -Vista previa de URL - -Desplazamiento inmersivo - -Ocultar barras de navegación al desplazarse - -Modo de interfaz - -Elegir el estilo de publicación - -Estilo de galería de perfil - -Elige el estilo de galería - -Spammers - -Silenciado. Hacer clic para reactivar el sonido. - -Sonido activado. Hacer clic para silenciar. - -Retroceder %d segundos - -Adelantar %d segundos @@ -1450,9 +937,43 @@ -Publicación con ubicación exclusiva -Solo los seguidores de la ubicación la verán. Tus seguidores generales no la verán. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1465,41 +986,29 @@ Privado -Asunto -No se puede subir -Ingresa primero el destino del mensaje -Cartera no encontrada -Tema oscuro, claro o del sistema -Cargar automáticamente imágenes y GIF -Reproducir automáticamente videos y GIF -Mostrar vistas previas de URL -Copiar al portapapeles -Compartir o guardar -Media añadida -Contenido multimedia añadido a la galería del perfil @@ -1507,7 +1016,6 @@ -No se pudo enviar el zap @@ -1516,65 +1024,37 @@ -Lightning no está configurado -El usuario %1$s no tiene una dirección de Lightning configurada para recibir sats. -Error al abrir la aplicación firmante -No se pudo encontrar la aplicación firmante. Comprueba si no se desinstaló la aplicación. -Solicitud de firma rechazada -Asegúrate de que la aplicación firmante haya autorizado esta transacción. -No se encontraron monederos para pagar una factura de Lightning (error: %1$s). Instala un monedero de Lightning para usar zaps. -No se encontraron monederos para pagar una factura de Lightning. Instala un monedero de Lightning para usar zaps. -Palabras ocultas -Imagen de perfil -Mostrar imágenes de perfil -No se pudo pagar la factura -No se pudo retirar -No se pudo canjear Cashu -La Mint proporcionó el siguiente mensaje de error: %1$s -Cashu recibido -Se enviaron %1$s sats a tu monedero (comisión: %2$s sats). -No se encontró ningún monedero de Cashu compatible en el sistema -No se puede obtener la factura de los servidores del destinatario -El proveedor de conexión de monedero devolvió el siguiente error: %1$s -No se pudo ensamblar la LNUrl desde la dirección de Lightning \"%1$s\". Comprueba la configuración del usuario. -No se ha podido obtener la factura de %1$s: %2$s -Error al analizar JSON desde %1$s. Comprueba la configuración de Lightning del usuario. -No se encontró la URL de devolución de llamada en la respuesta de %1$s. -Cantidad de factura incorrecta (%1$s sats) de %2$s. Debería haber sido %3$s. -No se pudo crear una factura de Lightning antes de enviar el zap. El monedero de Lightning del destinatario envió el siguiente error: %1$s. -Usuario de solo lectura -No hay reacciones configuradas @@ -1584,11 +1064,9 @@ -Mensaje de %1$s -Hola, %1$s, ¿esto todavía está disponible? @@ -1606,57 +1084,31 @@ -Ropa -Accesorios -Artículos electrónicos -Muebles -Objetos de colección -Libros -Mascotas -Deportes -Acondicionamiento físico -Arte -Artesanías -Hogar -Oficina -Comida -Varios -Otros -Error al subir contenido multimedia -No se pudo abrir el archivo comprimido -Error de carga: %1$s -El servidor no proporcionó una URL después de la carga -No se pudo descargar el contenido cargado desde el servidor -No se pudo comprobar el archivo descargado después de cargar: %1$s -Error al cargar a %1$s: %2$s -Error al eliminar: %1$s -El contenido multimedia es demasiado grande para NIP-95 -Muchos servidores no aceptan archivos cifrados en cuentas gratuitas. Puedes volver a intentarlo sin cifrado. @@ -1666,24 +1118,16 @@ -Usa H.265/HEVC Codec -Mejor calidad en tamaños de archivos más pequeños, pero no todos los dispositivos admiten la reproducción H.265. -Inicio -Descubrir -Mensajes -Notificaciones -Ajedrez -Cartera @@ -1692,24 +1136,18 @@ -Importar seguidos -Nuevo producto -Abrir todas las reacciones a esta publicación -Cerrar todas las reacciones a esta publicación -Zap -Fila de reacciones @@ -1739,84 +1177,51 @@ -Dirección inválida -Amethyst recibió un URI para abrir pero era inválido: %1$s -Relés de entrada DM -Relés de búsqueda -Algunas buenas opciones son: \n%1$s -Configuración de relés -Relés de inicio públicos -El usuario está publicando su contenido a estos relés -Este tipo de relé almacena todo tu contenido. Amethyst enviará tus publicaciones aquí y otros usarán estos relés para encontrar tu contenido. Inserta entre 1 y 3 relés. Pueden ser personales, de pago o públicos. -Relés de buzón de entrada públicos -El usuario está recibiendo notificaciones en estos relés -Este tipo de relé recibe todas las respuestas, comentarios, me gusta y zaps de tus publicaciones. Inserta entre 1 y 3 relés y asegúrate de que acepten publicaciones de cualquier persona. -Relés de entrada DM -El usuario recibe mensajes directos en estos relés -Inserta entre 1 y 3 relés para que te sirvan de buzón de entrada privado. Otros usarán estos relés para enviarte mensajes directos. Los relés del buzón de entrada para mensajes directos deberían aceptar cualquier mensaje de cualquier persona, pero solo te permiten descargarlos. Algunas buenas opciones son:\n - inbox.nostr.wine (de pago)\n - you.nostr1.com (relés personales; de pago) -Relés privados -Inserta entre 1 y 3 relés para almacenar eventos que nadie más pueda ver, como los borradores o la configuración de la app. Lo ideal es que estos relés sean locales o requieran autenticación antes de descargar el contenido de cada usuario. -Relés conectados -Lista actual de relés en uso -Relés de búsqueda -Lista de relés que se usarán al buscar contenido o usuarios. El etiquetado y la búsqueda no funcionarán si no hay opciones disponibles. Asegúrate de que implementen NIP-50. -Relés locales -Lista de relés que se utilizan en este dispositivo. -Relés de confianza -Relés en que confías para no necesitar una conexión Tor para -Relés de proxy -Relés recopiladores que la app debe usar para descargar tus fuentes, como filter.nostr.wine. Esto reemplaza el modelo de bandeja de salida y hará que la app se conecte solo a los relés de tus listas. -Relés de transmisión -Relés que se especializan en enviar tus notas a todos los demás relés, como sendit.nosflare.com. Amethyst agregará este relé a todos los eventos nuevos que crees. -Relés de indexador -Relés que se especializan en alojar los metadatos y las listas de retransmisión de todos, como purplepag.es. Amethyst usará estos relés para encontrar usuarios que no estén en tus listas. -Relés bloqueados -Amethyst nunca se conectará a estos relés @@ -1830,11 +1235,6 @@ Web: -Prueba de marca de tiempo - -Hay prueba de que esta publicación se firmó en algún momento antes de %1$s. La prueba se marcó en la cadena de bloques de Bitcoin en esa fecha y hora. - -Editar publicación @@ -1844,15 +1244,6 @@ -No es posible responder a un borrador de nota - -No es posible citar un borrador de nota - -No es posible reaccionar a un borrador de nota - -No es posible zapear un borrador de nota - -Borrador de nota @@ -1860,102 +1251,52 @@ -Solicitud incorrecta: el servidor no puede procesar o no procesará la solicitud. -No autorizado: el usuario no tiene credenciales de autenticación válidas. -Pago requerido: el servidor requiere pago para completar la solicitud. -Prohibido: el usuario no tiene derechos de acceso para realizar la solicitud. -No se encontró: el servidor no puede encontrar la dirección solicitada. -Método no permitido: el servidor admite el método de solicitud, pero no el recurso de destino. -No aceptable: el servidor no encuentra ningún contenido que satisfaga la solicitud. -Autenticación de proxy requerida: el usuario no tiene credenciales de autenticación válidas. -Tiempo de espera de la solicitud: se agotó el tiempo de espera del servidor. -Conflicto: el servidor no puede satisfacer la solicitud porque hay un conflicto con el recurso. -Borrado: el contenido solicitado se eliminó permanentemente del servidor y no se restablecerá. -Longitud requerida: el servidor rechaza la solicitud porque requiere una longitud definida. -Precondición fallida: las precondiciones de la solicitud en los campos de cabecera que el servidor no cumple. -Carga demasiado grande: la solicitud supera los límites definidos por el servidor, por lo que este se niega a procesarla. -URI demasiado largo: la URL solicitada por el cliente es demasiado larga para que el servidor pueda procesarla. -Tipo de contenido multimedia no admitido: la solicitud usa un formato multimedia que el servidor no admite. -Intervalo no satisfactorio: el servidor no puede satisfacer el valor indicado en el campo de cabecera del intervalo de la solicitud. -Expectativa fallida: el servidor no puede cumplir los requisitos indicados por el campo de cabecera de la solicitud Expect. -Actualización requerida: el servidor se niega a procesar la solicitud utilizando el protocolo actual a menos que el cliente se actualice a un protocolo diferente. -Error interno del servidor: el servidor encontró un error inesperado y no puede completar la solicitud. -No implementado: el servidor no puede completar la solicitud o no reconoce el método de solicitud. -Gateway incorrecto: el servidor actúa como gateway y obtuvo una respuesta no válida del host. -Servicio no disponible: esto ocurre a menudo cuando un servidor está sobrecargado o caído por mantenimiento. -Tiempo de espera del gateway: el servidor estaba actuando como gateway o proxy y se agotó el tiempo de espera de una respuesta. -Versión HTTP no admitida: el servidor no admite la versión HTTP de la solicitud. -La variante también negocia: el servidor tiene un error de configuración interno. -Almacenamiento insuficiente: el servidor no dispone de almacenamiento suficiente para procesar correctamente la solicitud. -Bucle detectado: el servidor detecta un bucle infinito al procesar la solicitud. -Autenticación de red requerida: el cliente debe estar autenticado para acceder a la red. + + + + + + Servidores Blossom Añade tantos servidores como quieras. Puedes elegir cuál utilizar más tarde al subir tu foto. -Agregar servidor NIP-96 -Añadir un servidor Blossom Descargar -Error al abrir el archivo - -No hay aplicaciones torrent instaladas para abrir y descargar el archivo. - -El evento no tiene suficiente información para crear un enlace magnético - - - - -Mensaje privado - -Mensaje público - - - -No se puede compartir la imagen, inténtalo de nuevo más tarde… - - -No traducir del - -Los idiomas que se muestran aquí no se traducirán. Selecciona un idioma para eliminarlo y traducirlo de nuevo. - -Pausar - -Reproducir @@ -1979,7 +1320,21 @@ -No eres miembro de este grupo + + + + + + + + + + + + + + + @@ -2025,9 +1380,7 @@ -Nuevo objetivo -Solicitud de desaparición @@ -2041,7 +1394,6 @@ -Solicitud de desaparición enviada @@ -2055,22 +1407,16 @@ -Historial de desapariciones -Usuarios -Eventos -Tipos -IPs -Ajustes @@ -2122,23 +1468,14 @@ -Proponer mejoras de texto -Usa un modelo de IA en el dispositivo para proponer correcciones de texto y cambios de tono. -Difusiones rastreadas -Usa el emisor rastreado al enviar eventos. Muestra el progreso en tiempo real y el estado por relay durante la difusión. -Sugerir entrenamientos para compartir -Lee los entrenamientos finalizados de Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) y sugiere compartirlos como publicación. El permiso se solicita solo cuando te conectas. -Ajustes de composición -Crear borradores automáticamente -Guarda un borrador automáticamente cuando escribes o abandonas el compositor con texto no enviado, y lo envía a tus relays de bandeja de salida privada. @@ -2155,9 +1492,7 @@ -Nuevo paquete de emojis -Editar paquete de emojis @@ -2181,45 +1516,29 @@ -Mis paquetes de emojis -Emojis -Los emojis públicos son visibles para todos y aparecen en tu menú de reacciones y en el selector de autocompletado \":\" cuando este paquete está en tu lista de emojis. -Los emojis privados se almacenan cifrados en los relays y solo son visibles para ti. Aparecen en tu menú de reacciones y en el autocompletado \":\" igual que los públicos. -El borrador ocupa %1$d bytes; esta comunidad limita este tipo a %2$d bytes. -El borrador ocupa %1$d bytes; esta comunidad limita los eventos a %2$d bytes. -Ya has publicado %1$d eventos de este tipo hoy (límite %2$d). -Sitio Nowhere -Evento Nowhere -Recaudación Nowhere -Tienda Nowhere -Petición Nowhere -Mensaje Nowhere -Drop Nowhere -Arte Nowhere -Foro Nowhere @@ -2237,25 +1556,14 @@ - - %1$d msg - %1$d msgs - - - %1$d miembro - %1$d miembros - -Información del grupo actualizada -Error al actualizar: %1$s -Error al crear el grupo: %1$s @@ -2266,13 +1574,9 @@ -Error al salir del grupo: %1$s -Añadiendo %1$s… -Error al añadir %1$s: %2$s -error desconocido @@ -2281,9 +1585,7 @@ -Miembro eliminado -Error al eliminar miembro: %1$s @@ -2291,79 +1593,53 @@ -Privilegios de administrador concedidos -Error al conceder administrador: %1$s -Privilegios de administrador revocados -Error al revocar administrador: %1$s -Navegador -Cargando a través de Tor. Toca para usar la web abierta. - -Cargando a través de la web abierta. Toca para usar Tor. -Favoritos - - - -Aplicaciones favoritas - - -Añadir a favoritos - -Eliminar de favoritos -Se carga a través de Tor. - -Se carga a través de la web abierta. -Publicado en los relays -Se ha subido un archivo -Se ha realizado un pago -Esa aplicación aún no está cargada. Inténtalo de nuevo en un momento. -Recientes + + + + + + + + Permisos de nApplet Este nApplet quiere pagar una factura Lightning. -Este nApplet quiere obtener un recurso web. -Este nApplet quiere subir un archivo a tu servidor de medios. -Este nApplet quiere mostrarte notificaciones. -Este sitio quiere firmar un evento kind:%1$d con tu clave Nostr. - - Este nApplet quiere pagar una factura Lightning de %1$d sat. - Este nApplet quiere pagar una factura Lightning de %1$d sats. - @@ -2394,7 +1670,6 @@ -No se ha podido guardar tu lista de servidores nest. Inténtalo de nuevo. @@ -2404,32 +1679,20 @@ -Servidores recomendados -Sugerencias integradas que puedes añadir a tu lista con un solo toque. -Música -Listas de reproducción -Episodios -Podcasts - - %1$d episodio - %1$d episodios - -Nueva pista de música -Nueva lista de reproducción @@ -2447,10 +1710,6 @@ - - %1$d pista - %1$d pistas - @@ -2460,18 +1719,14 @@ -Fijar en el perfil -Desfijar del perfil -Conjuntos de hashtags -Nuevo conjunto de intereses @@ -2479,7 +1734,6 @@ -Renombrar @@ -2494,13 +1748,9 @@ -Hacer privado: envolver la nota como gift-wrap solo a los usuarios notificados -Hacer público -Las respuestas a una nota privada siempre permanecen privadas -Visible para Aún no hay destinatarios: solo tú podrás ver esta nota. Añade personas para compartirla. @@ -2522,13 +1772,6 @@ -Recargar y enviar zap - -Enviar zap - - - -Recargar %1$s sats en %2$s y enviar zap de %3$s %4$s sats · comisión ≈ %5$s sats @@ -2550,17 +1793,6 @@ -No se ha encontrado ninguna aplicación para gestionar este pago. Instala un monedero compatible. - -No hay ninguna aplicación instalada para gestionar pagos de %1$s. Instala un monedero compatible. - -No se puede abrir el pago - -Lista de seguidos predeterminada - -Curada - -Mía @@ -2569,63 +1801,28 @@ -para %1$s -Nuevas reacciones -Ajedrez -Te notifica sobre eventos de partidas de ajedrez -%1$s ha aceptado tu desafío de ajedrez -%1$s ha movido — es tu turno -Actualizaciones de ajedrez + + + + + + + + + -Respuestas -Te notifica cuando alguien responde a tu publicación %1$s respondió en: %1$s -Nuevas respuestas - -Menciones - -Te notifica cuando alguien te menciona o te cita en una publicación - -%1$s te mencionó - -Nuevas menciones - -Llamadas entrantes - -Notificaciones de llamadas de voz y vídeo entrantes - -Llamada entrante - -Llamada de voz entrante… - -Llamada de vídeo entrante… - - - - - - - - - -Amethyst necesita acceso al micrófono para iniciar una llamada de voz. Actívalo en los ajustes de la aplicación. - -Amethyst necesita acceso a la cámara y al micrófono para iniciar una videollamada. Actívalos en los ajustes de la aplicación. - - - -Ajustes de llamada @@ -2641,33 +1838,40 @@ -Mantiene las conexiones a tus relays de bandeja de entrada activas para notificaciones en tiempo real -Notificaciones de Amethyst activas - - Conectado a %1$d relay de bandeja de entrada - Conectado a %1$d relays de bandeja de entrada - - - Conectado a %1$d relay - Conectado a %1$d relays - -Conectando a los relays de bandeja de entrada… + + + + + + + + + + + + + + + + + + + + + + Servicio de notificaciones permanente Mantiene una conexión persistente a tus relays de bandeja de entrada para la entrega instantánea de notificaciones. Muestra una notificación en curso. Consume más batería, pero garantiza que nunca te pierdas un mensaje. -Dividir notificaciones por Seguidos -Muestra dos pestañas de notificaciones: Siguiendo (personas que sigues) y Todos. El indicador de no leídos se ilumina solo para la actividad de las personas que sigues. -Mostrar mensajes -Incluye mensajes directos y de grupo en la pestaña de Notificaciones. Desactívalo para mantener los mensajes solo en la pestaña de Mensajes. @@ -2675,35 +1879,24 @@ -Añadir etiqueta de cliente a mis eventos -Cuando está activado, Amethyst añade una etiqueta de cliente NIP-89 a los eventos que publicas. -Ocultar publicaciones que infrinjan las normas de la comunidad -Elimina publicaciones de los feeds de comunidades cuando la comunidad publica un documento de normas NIP-9B y un evento no lo cumple. No tiene efecto cuando una comunidad no tiene normas estructuradas. -Preferencias de filtrado -Contenido bloqueado -Aún no has bloqueado a ningún usuario. -Ninguna cuenta ha sido marcada como spam en esta sesión. -No hay palabras ocultas. Añade una palabra a continuación para ocultar las publicaciones que la contengan. -Estándares de seguridad infantil -Información y avisos legales @@ -2724,61 +1917,40 @@ -Restablecer estado de Marmot -Estado de Marmot restablecido. -Error al restablecer el estado de Marmot: %1$s -Reproducción automática de vídeos - - %1$d pista - %1$d pistas - - - +%1$d pista más - +%1$d pistas más - -Subir una imagen de portada -Elige una imagen cuadrada como portada de esta pista. -Subir un archivo de audio -Elige un MP3, WAV o FLAC. Se subirá a tu servidor multimedia al guardar. -Subiendo portada + audio y publicando. Esto continuará aunque salgas de la pantalla. -Editar lista de reproducción -Subir una imagen de portada -Elige una imagen cuadrada como portada de esta lista de reproducción. -Subiendo portada y publicando. Esto continuará aunque salgas de la pantalla. @@ -2786,83 +1958,48 @@ Grupo -Amethyst no encontró ninguna aplicación de cartera compatible con Nostr Wallet Connect (NWC). -\n\nQué puedes hacer: -\n\t1. Verificar la compatibilidad con NWC: Comprueba que tu aplicación de cartera preferida es compatible con Nostr Wallet Connect. -\n\t2. Crear conexión: Ve a tu aplicación de cartera y crea una nueva conexión NWC. -\n\t3. Vincular con Amethyst: Tu cartera normalmente te ofrecerá tres opciones: -\n\t\t3.1 Enlace automático: Un botón para abrir y conectar automáticamente a Amethyst. Si es así, pulsa ese botón, abre Amethyst y guarda en la nueva pantalla. -\n\t\t3.2 Enlace manual: Un URI de conexión que puedes copiar y pegar usando el icono de pegado en esta pantalla para introducirlo directamente. -\n\t\t3.3 Código QR: La cartera genera un código QR que puedes leer con el botón de código QR en esta pantalla. - -Reproduce vídeos automáticamente cuando son visibles en pantalla -Copiado al portapapeles Enviar como MD -No se puede reproducir este vídeo -El códec o formato no es compatible con este dispositivo (%1$s). Intenta abrirlo en tu navegador. -Abrir en el navegador -No se pueden abrir enlaces de Blossom -No se encontraron aplicaciones de Blossom. Instala una aplicación local de Blossom para ver este archivo -Hilos silenciados -No hay hilos silenciados -Notificaciones -Entrega -Visualización en la aplicación -Categorías -Cifrar archivos -Cifra los archivos antes de subirlos para mayor privacidad. Algunos servidores pueden no aceptar archivos cifrados en cuentas gratuitas. -Error al subir el archivo cifrado -Convertir GIF a MP4 -Convierte GIF animados a vídeo MP4 para reducir el tamaño del archivo y mejorar la compatibilidad de reproducción. -Eliminar metadatos privados -Intenta eliminar los metadatos privados de los archivos multimedia compatibles antes de subirlos -No se pudieron eliminar los metadatos -Error al eliminar los metadatos privados del archivo multimedia. Subida cancelada. -Subida cancelada -No se pueden eliminar los metadatos del AVIF: %1$s -Calendarios -Listas de calendarios @@ -2894,7 +2031,6 @@ -Cartera Cashu (NIP-60) @@ -2916,25 +2052,14 @@ Clave privada P2PK (hex) -Editar mints Guardar cambios - - +%1$d más - +%1$d más - - - Recomendado por %1$d persona más - Recomendado por %1$d personas más - -Mints populares -Mints coincidentes @@ -2948,9 +2073,7 @@ -Recibido -Enviado @@ -2960,14 +2083,12 @@ -Publicar una solicitud de eliminación para tu recomendación kind:38000 de %1$s. Los relays que respetan NIP-09 la eliminarán. -Se recuperaron %1$s sats en %2$s pruebas. @@ -2991,28 +2112,21 @@ -¿Pagar %1$s sat + hasta %2$s sat en comisiones? -Nutzap fallido -No hay clave pública de destinatario en la nota -Los nutzaps son públicos y revelarían esta nota privada. Usa un zap Lightning en su lugar. -No se puede construir la referencia del evento -Esperando a que se pague la factura… -Comprobando el mint… @@ -3048,42 +2162,19 @@ -Lento -Normal -Rápido -~1 h -~30 min -~10 min -%1$s · %2$s sat/vB · %3$s - - Enviar %1$s sats, %2$d destinatario - Enviar %1$s sats, %2$d destinatarios - - - Usar la división de zap %1$d de esta nota - Usar la división de zap %1$d de esta nota - - - Divisiones entre %1$d destinatario - Divisiones entre %1$d destinatarios - - - Se omite %1$d destinatario solo con dirección Lightning — el onchain necesita una clave pública Nostr para derivar la dirección. - Se omiten %1$d destinatarios solo con dirección Lightning — el onchain necesita una clave pública Nostr para derivar la dirección. - @@ -3095,57 +2186,32 @@ -cargando saldo -construyendo la transacción -firmando -difundiendo -publicando el recibo -El backend de la cadena Bitcoin no está configurado -No se pudo cargar tu saldo de Bitcoin -No se pudo construir la transacción -La parte de un destinatario está por debajo del dust -No se pudo firmar la transacción -No se pudo difundir la transacción -Pago enviado, pero el recibo del zap no se pudo publicar - - Pago enviado (%1$d de %2$d recibo publicado), pero el siguiente recibo no se pudo publicar - Pago enviado (%1$d de %2$d recibos publicados), pero el siguiente recibo no se pudo publicar - -Nuevo artículo -Nuevo evento de calendario -Editar evento de calendario -Nuevo calendario -Editar calendario -Feed -Mes -Semana -Día @@ -3179,10 +2245,6 @@ - - %1$s, %2$d evento - %1$s, %2$d eventos - @@ -3209,61 +2271,6 @@ -En curso ahora - -%1$s · termina %2$s - -Compartir evento de calendario - - -calendar_reminders - -Recordatorios de calendario - -Aviso cuando un evento al que asistirás está a punto de comenzar. - -Evento de calendario - - - Comienza en %1$d minuto - Comienza en %1$d minutos - - - - - - - - - -Error al subir la imagen - -No se pudo subir la imagen seleccionada. Inténtalo de nuevo o pega una URL. - - - - -Recordatorios de calendario - -Enviar recordatorios - -Se enviará una notificación cuando un evento al que asistirás esté a punto de comenzar. - - - - - %1$d min - %1$d min - - - - - - - -Abrir en mapas - -Abrir enlace @@ -3282,7 +2289,39 @@ -Barra de navegación inferior + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Arrastra para reordenar. Activa o desactiva para añadir o eliminar un elemento de la barra inferior. Con cero elementos la barra inferior se oculta. @@ -3293,24 +2332,10 @@ Elige qué pestañas aparecen en la pantalla de inicio. Cuando solo hay una pestaña activa la barra de pestañas se oculta. -Todo -Interfaz del perfil Elige qué secciones y feeds aparecen en las pantallas de perfil de usuario. Todas las opciones están habilitadas de forma predeterminada. -Insignias del perfil - -Recomendaciones de aplicaciones - -Feed de zaps recibidos - -Feed de seguidores - - - - -Botones del reproductor de vídeo @@ -3330,7 +2355,6 @@ -Visualizador de audio @@ -3342,7 +2366,6 @@ -Fecha de expiración @@ -3350,35 +2373,32 @@ -Relays de salida - - - - - -Relays de entrada -KeyPackages - -Relays de KeyPackage - -Relays donde se publican tus MLS KeyPackages (MIP-00). Otros usuarios obtienen estas KeyPackages para invitarte a chats de grupo Marmot. Introduce entre 1 y 3 relays que acepten eventos KeyPackage de tu parte y permitan lecturas públicas. - -Reenviar perfiles al relay local - -Enviar todos los eventos de perfil (kind 0) recibidos a tu relay local -Feeds de relays favoritos -Relays a los que sueles ir para ver su feed global -Exportar configuración de relays + + + + + + + + + + + + + + + + @@ -3409,29 +2429,6 @@ -Mis listas - -Feeds - -Hashtags - -Conjuntos de intereses - -Ubicaciones - -Comunidades - -Listas - -Algoritmos de feed - -Todos los algoritmos de feed favoritos - -Relays - - - -Algoritmos de feed favoritos @@ -3446,9 +2443,19 @@ -No se puede compartir el vídeo, por favor inténtalo de nuevo más tarde… -Descargando vídeo… + + + + + + + + + + + + @@ -3465,13 +2472,9 @@ -Traducir a -Elige el idioma al que traducir el contenido. -Preferencias de visualización de idioma -Para cada par de idiomas traducidos, elige qué idioma mostrar primero. @@ -3482,7 +2485,6 @@ -Este mensaje desaparecerá en %1$s @@ -3496,15 +2498,10 @@ -Metadatos de lista de seguidos -Los metadatos de las listas de seguidos pueden verlos todos en Nostr. Solo tus miembros privados están cifrados. -Metadatos del pack de seguidos -Los metadatos del pack de seguidos pueden verlos todos en Nostr y se publican frecuentemente en muchos sitios web como kits de inicio para nuevos usuarios. -Editar pack de seguidos @@ -3520,12 +2517,10 @@ -Expandir -Reintentar @@ -3536,11 +2531,8 @@ -Reacción -Publicación de voz -Respuesta de voz @@ -3562,285 +2554,145 @@ -Relés de salida -Aplicaciones -Recomendaciones de aplicaciones -Ajustes de usuario -Cabecera de audio -Pista de audio -Pista de música -Lista de reproducción -Episodio de pódcast -Programa de pódcast -Pódcasts creados -Pódcasts favoritos -Insignias concedidas -Definiciones de insignias -Conjunto de insignias aceptadas -Insignias del perfil -Relés bloqueados -Servidores Blossom -Servidores Nests -Autenticación Blossom -Relés de difusión -Lista de marcadores -Lista de marcadores antigua -Cita del día -Calendario -Cita -Confirmación de cita -Partidas de ajedrez -Autenticación de ajedrez -Relés favoritos -Desafíos de ajedrez -Aceptación de partida de ajedrez -Movimiento de ajedrez -Fin de partida de ajedrez -Oferta de tablas en ajedrez -Definición de canal -Ocultar mensaje del canal -Lista de canales -Mensaje del canal -Metadatos del canal -Silenciar usuario del canal -Archivo de mensaje directo -Mensaje directo -Relés DM -Clasificados -Comentarios -Definición de comunidad -Lista de comunidades -Publicación de comunidad -Lista de seguidos -Eliminaciones -Borradores -Packs de emojis -Lista de packs de emojis -Chat efímero -Salas de chat efímeras -Cabeceras de archivo -Galería del perfil -Servidores de archivos -Datos blob -Cabeceras blob -Datos médicos -Packs de seguidos -Republicaciones (16) -Seguidos por geohash -GiftWraps -Incidencia de Git -Parche de Git -Repositorio de Git -Respuesta de Git -Objetivos de Zap -Seguidos por hashtag -Destacados -Autenticación HTTP -Lista de relés de índice -Prólogo de aventura -Escena de aventura -Lectura de aventura -Marcadores con nombre -Chats en directo -Transmisiones en directo -Zaps -Solicitud NWC -Respuesta NWC -Zaps privados -Solicitud de Zap -Blogs -Sala de reuniones -Presencia en sala -Espacio de reuniones -Perfil -Lista de silenciados -NNS -NIP -Nostr Connect -Estado DVM -Solicitud de contenido DVM -Respuesta de contenido DVM -Solicitud de usuario DVM -Respuesta de usuario DVM -OTS -PayTo -Listas de personas -Imágenes -Entrenamientos -Fijados -Encuesta de Zap -Encuesta -Respuesta de encuesta -NIP-04 DMs -Relés privados -Relés proxy -Mensaje público -Reacciones -Tarjeta de contacto -Autenticación de relé -Descubrimiento de relés -Anuncio del monitor de relés -Conjunto de relés -Informes -Republicaciones -Eliminación de usuario -Sellos -Relés de búsqueda -Estado del usuario -Notas -Ediciones -Torrents -Comentarios de torrent -Relés de confianza -Proveedores de confianza -Vídeo (Repl) -Shorts (Repl) -Vídeo -Shorts -Mensaje de voz -Respuesta de voz -WakeUp -Marcador web -Wiki @@ -3857,9 +2709,7 @@ -%1$d%% de disponibilidad -Ajustes de Namecoin @@ -3870,13 +2720,11 @@ -%dms -Sincronización de relés @@ -3904,74 +2752,27 @@ -Explorador de Bitcoin (OTS) -eventos tuyos -eventos para ti -eventos buscables -DMs -perfiles -listas de salida -Visto por última vez hace %1$s -Visto por última vez el %1$s (hace %2$s) -Visto ahora mismo -Nunca visto - - %1$d minuto - %1$d minutos - - - %1$d hora - %1$d horas - - - %1$d día - %1$d días - - - %1$d semana - %1$d semanas - - - %1$d mes - %1$d meses - - - %1$d año - %1$d años - - - %1$d mint - %1$d mints - - - %1$d factura pendiente - %1$d facturas pendientes - - - Fondos en %1$d mint que no usas - Fondos en %1$d mints que no usas - @@ -3985,7 +2786,6 @@ -%1$s sat movidos a %2$s. @@ -3998,13 +2798,10 @@ -Emitir al dispositivo -Detener emisión -Subida HLS @@ -4025,7 +2822,6 @@ -Subiendo %1$s (%2$d de %3$d) @@ -4043,7 +2839,6 @@ -Atestación @@ -4051,12 +2846,9 @@ -Solicitud de atestación -Recomendación del atestador -Competencia del atestador @@ -4064,11 +2856,8 @@ -Marcadores web -Añadir marcador web -Editar marcador web @@ -4083,7 +2872,6 @@ -%1$s financiados del objetivo de %2$s sats diff --git a/amethyst/src/main/res/values-fa-rIR/strings.xml b/amethyst/src/main/res/values-fa-rIR/strings.xml index cf3e3995b4..570c73760a 100644 --- a/amethyst/src/main/res/values-fa-rIR/strings.xml +++ b/amethyst/src/main/res/values-fa-rIR/strings.xml @@ -1,116 +1,12 @@ - - این پست بیش از %1$d هشتگ دارد - این پست بیش از %1$d هشتگ دارد - - - %1$d فایل پیوست شده - %1$d فایل پیوست شده - - - +%1$d\nپاسخ - +%1$d\nپاسخ - - اسپم - تعداد رویدادهای اسپم که از این رله می آید - جعل هویت - رفتار ناهنجار - درخواست حذف/string> - با کلید خصوصی وارد شوید تا بتوانید پاسخ دهید - با کلید خصوصی وارد شوید تا بتوانید یادداشت را بازنشر کنید - با کلید خصوصی وارد شوید تا بتوانید یادداشت را لایک کنید - مقداری برای زپ تعیین نشده. نگه دارید تا تغییر دهید - با کلید خصوصی وارد شوید تا بتوانید زپ کنید - با یک کلید خصوصی وارد شوید تا بتوانید دنبال کنید - با یک کلید خصوصی وارد شوید تا بتوانید دنبال کردن را لغو کنید - دارید از کلید عمومی استفاده می کنید و با کلید عمومی فقط می توان خواند. با کلید خصوصی وارد شوید تا بتوانید کلمه یا جمله ای را پنهان کنید. - دارید از کلید عمومی استفاده می کنید و با کلید عمومی فقط می توان خواند. با کلید خصوصی وارد شوید تا بتوانید کلمه یا جمله ای را آشکار کنید - شما از یک کلید عمومی استفاده می‌کنید و کلیدهای عمومی فقط خواندنی هستند. برای آپلود کردن با یک کلید خصوصی وارد شوید - شما از یک کلید عمومی استفاده می‌کنید و کلیدهای عمومی فقط خواندنی هستند. برای امضا کردن رویدادها با یک کلید خصوصی وارد شوید - رمزگشایی غیرمجاز - signer یک رمزگشایی که برای انجام این عملیات لازم است را مجاز ندانست. رمزگشایی‌های NIP-44 را در اپلیکیشن signer خود فعال کنید و دوباره امتحان کنید - signer پیدا نشد - آیا اپلیکیشن signer حذف شده؟ بررسی کنید که signer نصب شده و این حساب را دارد. از اپلیکیشن signer خارج شوید و دوباره وارد شوید اگر signer تغییر کرده است. - signer خارجی یک پاسخ عجیب برای درخواست بازگرداند. ممکن است باگی در Amethyst یا در signer وجود داشته باشد. - زپ - بازنشر بازنشر شده ویرایش#%1$s - پیشنهاد ویرایش - افزودن - خطا در تفسیر پیغام خطا - پروفایل - فیلترهای ایمنی - در حال درخواست صورتحساب… - سرویس بدهکاری پرداخت را تکمیل نکرد. - پرداخت %1$s از طریق %2$s؟ - پرداخت این صورتحساب از طریق %1$s؟ - یک مقدار معتبر برای این پیشنهاد وارد کنید. - یک‌بار - روزانه - هفتگی - ماهانه - پرداخت - در حال پرداخت از طریق %1$s… - پرداخت ناموفق بود - قابل هزینه‌کرد برای این دریافت‌کننده: %1$s sats - تراکنش: %1$s - "%1$s پیش نمایش تصویر کارت برای" - توصیف - به چی فکر میکنی؟ - نوشتن یک پیام… - ارسال ذخیره - ارسال - ساختن تغییر نام - لغو - خطا - خطاها - درصد اتصال‌های موفق به relay - ذخیره در گوشی - تصویر در گالری ذخیره شد - بارگیری ویدئو آغاز شد… - بارگیری رسانه آغاز شد… - سنجاق به بالا - برداشتن سنجاق - تصویر ذخیره نشد - ویدئو در گالری گوشی ذخیره شد - ویدئو ذخیره نشد - PDF در Downloads/Amethyst ذخیره شد - ذخیره PDF ناموفق بود - هیچ اپلیکیشن دوربینی در این دستگاه پیدا نشد - برای ضبط پیام کلیک کنید و نگه دارید - خطای آپلود - آپلود پیام صوتی ناموفق بود - NIP-95 هنوز برای پیام‌های صوتی پشتیبانی نمی‌شود - آپلود صوتی ناموفق بود: %1$s - هیچ‌کدام - عمیق - بالا - خنثی - این کاربر آدرس لایتنینگ برای دریافت ساتوشی تنظیم نکرده است - "…اینجا پاسخ دهید " - شناس - در خواست جدید - کاربران بلاک شده - رشته جدید - گفتگوها - انتخاب های بیشتر - نمایش کد QR کلید خصوصی - نمایش کد QR کلید خصوصی رمزنگاری شده - دنبال کردن - دنبال کردن متقابل - پنهان کردن گذرواژه - کلید نامعتبر - کلید نامعتبر: %1$s - رمز عبور لازم است - کلید الزامیست - نام الزامی است @@ -119,158 +15,7 @@ نمایه جدید گفتگو: - ترک کردن - دنبال نکردن - گفتگوی ناپایدار - گفتگوی relay - گفتگوهای relay - گفتگوهای relay گروه‌های چت هستند که توسط relay خانگی خود کنترل می‌شوند. - آن‌ها برای همه در Nostr قابل مشاهده هستند و هر کسی می‌تواند در آن‌ها شرکت کند. - آن‌ها برای جوامع باز حول موضوعات خاص عالی هستند. برخی از این گروه‌ها ناپایدار - هستند و بنابراین پیام‌های چت با گذشت زمان ناپدید می‌شوند - گفتگوی عمومی - گروه MLS - فراداده گفتگوی عمومی - گفتگوهای عمومی در ناستر برای همه نمایان هستند - می توانند در آن شرکت کنند. آنها برای انجمن های باز درباره موضوعات به‌خصوص عالی هستند. - نظارت می تواند توسط حذف پست ها از رله ها انجام گیرد - رله ها - برای میزبانی این گروه ۱تا ۳ رله وارد کنید. - کلاینت های ناستر از این تنظیمات استفاده می کنند تا بدانند پیام ها را از کجا بارگیری کنند و به کجا بفرستند. - بیرون کردن - هرگز - اکنون - ساعت - دقیقه - روز - برهنگی - ناسزا / نفرت پراکنی - بازیابی کلیدها - کلید خصوصی شما رمزنگاری نشد - کلید خصوصی در کلیپبورد کپی شد - کلید خصوصیم را کپی کن - احراز هویت انجام نشد - مشخصات بیومتریک نتوانست مالک این تلفن را احراز هویت کند - مشخصات بیومتریک نتوانست مالک این تلفن را احراز هویت کند. خطا: %1$s - یادداشت در کلیپبورد کپی شد - \@npubنویسنده در کلیپبورد کپی شد - (@note1)شناسه یادداشت در کلیپبورد کپی شد - "<پیام خصوصی رمزگشایی نشد>\\n\nدر یک پیام خصوصی/رمزنگاری شده بین %1$s و %2$s نام شما آمده بود." - حساب های کاربری - ناوبری - شما - فیدها - ایجاد - سیستم - بازگشت - اشتراک گذاری لینک مرورگر - اشتراک گذاری - اشتراک‌گذاری به عنوان تصویر - اشتراک‌گذاری به عنوان آدرس تصویر - شناسه یادداشت - حذف - بی‌صدا کردن رشته - فعال کردن رشته - - بلاک - علامت گذاشته ها - نشانک‌ها با موفقیت منتقل شدند - پیش‌نویس‌ - پست‌های زمان‌بندی‌شده - زمان‌بندی پست - لغو زمان‌بندی - پست‌های زمان‌بندی‌شده ممکن است تا دفعه بعد که اپلیکیشن را باز کنید منتشر نشوند. برای زمان‌بندی پس‌زمینه مطمئن، همیشه‌روشن را در تنظیمات → تنظیمات رابط کاربری فعال کنید. - پست‌های زمان‌بندی‌شده ممکن است تا دفعه بعد که اپلیکیشن را باز کنید منتشر نشوند. پست‌های زمان‌بندی‌شده حساب‌های دیگر در حالی که این حساب فعال است اجرا نمی‌شوند. برای زمان‌بندی پس‌زمینه مطمئن، همیشه‌روشن را در تنظیمات → تنظیمات رابط کاربری فعال کنید. - %1$s · در %2$s - %1$s · %2$s پیش - فردا - خروج شد - - خروج شد · %d پست زمان‌بندی‌شده حذف شد - خروج شد · %d پست زمان‌بندی‌شده حذف شد - - پست زمان‌بندی‌شده منتشر شد - پست زمان‌بندی‌شده ناموفق بود - پست‌های زمان‌بندی‌شده - اعلان‌ها هنگام انتشار یا عدم انتشار یک پست زمان‌بندی‌شده. - همین الان ارسال کن - خطا: %1$s - زمان‌بندی‌شده - در حال ارسال… - ناموفق - ارسال شد - لغو شد - - شما %d پست زمان‌بندی‌شده دارید که هنوز منتشر نشده. خروج آن را به طور دائمی حذف خواهد کرد. - شما %d پست زمان‌بندی‌شده دارید که هنوز منتشر نشده‌اند. خروج آن‌ها را به طور دائمی حذف خواهد کرد. - - - %d در صف - %d در صف - - - · %d موعد در ۱ ساعت - · %d موعد در ۱ ساعت - - - به %d relay - به %d relay - - شناسه یادداشت کپی شد - نظرسنجی‌ها - باز - بسته - نشان‌ها - جوامع - جامعه جدید - ویرایش جامعه - مدیران - relay‌ها - قوانین قابل تأیید (اختیاری) - نوع رویدادهای مجاز - متن کوتاه (1) - مقاله طولانی (30023) - پست تصویری (20) - پست ویدیویی (21) - ویدیوی کوتاه (22) - نظر جامعه (1111) - کاربران مسدود شده - دروازه شبکه اعتماد (اختیاری) - حداکثر اندازه رویداد کلی (اختیاری) - نشان جدید - اعطای نشان - نشان‌های پروفایل - تصاویر - تمرینات - تمرین جدید - دویدن - پیاده‌روی - دوچرخه‌سواری - کوه‌نوردی - شنا - قایقرانی - قدرتی - یوگا - مدیتیشن - رژیم غذایی - روزه‌داری - سرکیت - برنامه‌ها برنامه‌ها - مرورگر - بارگذاری از طریق Tor. برای استفاده از وب باز ضربه بزنید. - بارگذاری از طریق وب باز. برای استفاده از Tor ضربه بزنید. - موردعلاقه‌ها - برنامه‌های موردعلاقه - افزودن به موردعلاقه‌ها - حذف از موردعلاقه‌ها - از طریق Tor بارگذاری می‌شود. - از طریق وب باز بارگذاری می‌شود. - در relay‌ها منتشر شد - یک فایل بارگذاری شد - پرداختی انجام شد - آن برنامه هنوز بارگذاری نشده. لحظه‌ای دیگر دوباره امتحان کنید. - اخیر مجوزهای nApplet هنوز هیچ مجوز nApplet ای وجود ندارد مجوزهایی که به nApplet ها می‌دهید اینجا نمایش داده می‌شوند. @@ -279,46 +24,11 @@ لغو - هویت - اقدامات صفحه‌کلید - relay‌ها - ذخیره‌سازی - پرداخت‌ها - شبکه - بارگذاری‌ها پرسیدن اینکه کدام قابلیت‌ها در دسترس هستند - خواندن کلید عمومی شما - اتصال میانبرهای صفحه‌کلید - خواندن، امضا و انتشار رویدادهای شما - ذخیره‌سازی خصوصی اختصاصی - پرداخت فاکتورهای Lightning - دریافت منابع وب و Blossom - بارگذاری فایل‌ها به سرور رسانه‌ای شما - تم - اعلان‌ها - پیام‌رسانی - تطبیق رنگ‌های برنامه شما - نمایش اعلان‌ها به شما - تبادل پیام با سایر nApplet ها قابلیت: %1$s - این nApplet می‌خواهد کلید عمومی شما را بخواند. - این nApplet می‌خواهد پروفایل و داده‌های حساب شما را بخواند. - این nApplet می‌خواهد یک رویداد kind %1$d را به عنوان شما امضا و منتشر کند. - این nApplet می‌خواهد یک رویداد kind %1$d را به عنوان شما امضا و منتشر کند: - این nApplet می‌خواهد یک رویداد رمزگذاری شده را به عنوان شما ارسال کند. - این nApplet می‌خواهد رویدادها را از relay‌های شما بخواند. - این nApplet می‌خواهد از ذخیره‌سازی خصوصی خود استفاده کند. این nApplet می‌خواهد یک فاکتور Lightning پرداخت کند. - این nApplet می‌خواهد یک منبع وب دریافت کند. - این nApplet می‌خواهد یک فایل به سرور رسانه‌ای شما بارگذاری کند. - این nApplet می‌خواهد به شما اعلان نشان دهد. - این سایت می‌خواهد یک رویداد kind %1$d را با کلید Nostr شما امضا کند. - - این nApplet می‌خواهد یک فاکتور Lightning به مبلغ %1$d sat پرداخت کند. - این nApplet می‌خواهد یک فاکتور Lightning به مبلغ %1$d sat پرداخت کند. - - ویدیوهای کوتاه - گفتگوهای عمومی - بسته‌های دنبال‌کردن - پخش زنده - دست بلند کردن - پایین آوردن دست - بی‌صدا - باصدا - ارسال پیام انجام نشد - قطع میکروفون - باصدا کردن میکروفون - پخش صدا را هنگام باز بودن اتاق ادامه می‌دهد. - Nest متصل شد - Nest — زنده - ضربه بزنید تا بازگردید. - توقف - دست بلند کرد - به صحنه آمد - در حال صحبت است - به عنوان مخاطب پیوست - nest را ترک کرد - ترک کردن - اتاق به عنوان بسته علامت‌گذاری نشد. در حال خروج — اتاق به صورت خودکار بسته خواهد شد. - - %1$d شنونده - %1$d شنونده - - ساکت کردن این سخنران - بازگرداندن این سخنران - دنبال کردن - لغو دنبال کردن - بی‌صدا - باصدا - ذخیره لیست سرور nest انجام نشد. دوباره امتحان کنید. - سرورهای Nest - سرورهای شما - به عنوان یک رویداد قابل جایگزینی kind-10112 ذخیره می‌شود تا کلاینت‌های دیگر بتوانند ترجیح شما را بخوانند. - سرورهای پیشنهادی - پیشنهادات داخلی که می‌توانید با یک ضربه به لیستتان اضافه کنید. - ویدیوها - موسیقی - پلی‌لیست‌ها - قسمت‌ها - پادکست‌ها - - %1$d قسمت - %1$d قسمت - - آهنگ موسیقی جدید - پلی‌لیست جدید - - %1$d آهنگ - %1$d آهنگ - - افزودن به علامت گذاشته های عمومی - برداشتن از علامت گذاشته های خصوصی - سنجاق کردن به پروفایل - برداشتن سنجاق از پروفایل - لیست نشانک جدید - متادیتای لیست نشانک - مجموعه‌های هشتگ - مجموعه علایق جدید - تغییر نام - خصوصی کردن: یادداشت را به صورت gift-wrap فقط برای کاربران مطلع‌شده ارسال کن - عمومی کردن - پاسخ‌ها به یادداشت خصوصی همیشه خصوصی می‌مانند - قابل مشاهده برای هنوز دریافت‌کننده‌ای ندارد: فقط شما می‌توانید این یادداشت را ببینید. افراد را اضافه کنید تا با آن‌ها به اشتراک بگذارید. افزودن حذف کاربر از اعلان‌ها جستجو و افزودن کاربر برای اطلاع‌رسانی - متادیتای فهرست‌های نشانک برای هر کسی در Nostr قابل مشاهده است. فقط اعضای خصوصی شما رمزگذاری می‌شوند. - انتقال به عمومی - انتقال به خصوصی - شارژ & ارسال zap - ارسال zap - شارژ %1$s sats به %2$s و zap کردن %3$s %4$s sats · کارمزد ≈ %5$s sats - گزینه ها %s - (0–100)% - تک‌انتخابی - چندانتخابی - نمی توان رای داد - این نظرسنجی برای رای جدید بسته شده است - فقط یک رای به ازای هر کاربر در این نوع نظرسنجی مجاز است - سازندگان نظرسنجی نمی توانند در نظر سنجی خود رای دهند. - این به چه معناست؟ - تصویر از زمان ارسال یکسان است - تصویر تغییر کرده است. ممکن است نویسنده تغییر را ندیده باشد. - افزودن رسانه - افزودن تصویر - افزودن فیلم - افزودن مدارک - سرور فایل - یک سرور برای بارگذاری این فایل انتخاب کنید - سرورهای رسانه سرورهای مورد علاقه خود برای بارگزاری رسانه را انتخاب کنید. سرورهای رسانه پیشنهادی لیست پیش فرض امتیست. می توانید تک به تک یا تمام لیست را اضافه کنید. - آدرس‌های پرداخت - آدرس‌های پرداخت برای شبکه‌های مختلف اضافه کنید (مثلاً bitcoin، lightning، ethereum). - هیچ اپلیکیشنی برای پردازش این پرداخت پیدا نشد. لطفاً یک کیف پول سازگار نصب کنید. - هیچ اپلیکیشنی برای پردازش پرداخت‌های %1$s نصب نشده. لطفاً یک کیف پول سازگار نصب کنید. - باز کردن پرداخت ممکن نیست - گزینه های حریم خصوصی - همه دنبال ها - همه دنبال‌شده‌های کاربر - فهرست دنبال‌کردن پیش‌فرض - اطراف من - همگانی - گردآوری‌شده - مال من - لیست خموش - فهرست دنبال‌کردن جدید - بسته دنبال‌کردن جدید - ویرایش فهرست - درگاه پیش فرض 9050 است - درگاه Orbot Socks - موتور فعال تور - استفاده از نسخه درونی یا Orbot - تنظیمات پیش فرض حریم خصوصی/ تور - تغییر سریع تمام تنظیمات زیر - رله ها / آدرس های Onion - از تور برای هر آدرس اونیون استفاده کن - رله های پیام خصوصی - تور را برای ارسال و دریافت پیام خصوصی الزامی کن - رله های غیر معتمد - تور را برای رله های ارسال/دریافت الزامی کن - رله های معتمد - تور را برای تمام رله های لیست الزامی کن - تصاویر نمایه - تور را برای بارگیری تصاویر نمایه اجباری کن - پیش نمایش URL - تور را برای بارگیری پیش نمایش آدرس الزامی کن - تصاویر - تور را برای بارگیری تصاویر الزامی کن - ویدئوها - تور را برای بارگیری ویدئوها الزامی کن - عملیات پولی - تور را برای زپ، لایتنینگ و انتقال کَشو الزامی کن - تایید آدرس ناستر - تور را برای تایید آدرس های NIP-05 الزامی کن - بارگذاری رسانه - تور را برای بارگذاری محتوا الزامی کن - داخلی - Orbot - خاموش - مقدماتی - پیش‌فرض - همه بجز رسانه - حریم خصوصی کامل - سفارشی - وقتی توسط سرور الزام شده از تور استفاده کن - IP خود را از رله های غریبه پنهان کن - IP خود را از همه چیز بجز تصاویر و ویدئوها پنهان کن - IP خود را در تمام ارتباطات پنهان کن - خودت را بساز - پیام خصوصی - وقتی پیام خصوصی دریافت شود اعلان می کند - زپ دریافت شده - وقتی کسی زپ کند اعلام می کند - %1$s ساتوشی - از %1$s - برای %1$s - پاسخ - علامت‌گذاری خوانده‌شده - پیام‌های جدید - zap های جدید - واکنش‌ها - وقتی کسی به پست شما واکنش نشان می‌دهد اطلاع می‌دهد - %1$s به پست شما واکنش نشان داد - برای %1$s - واکنش‌های جدید - شطرنج - درباره رویدادهای بازی شطرنج اطلاع می‌دهد - %1$s چالش شطرنج شما را پذیرفت - %1$s حرکت کرد — نوبت شماست - به‌روزرسانی‌های شطرنج - پاسخ‌ها - وقتی کسی به پست شما پاسخ می‌دهد اطلاع می‌دهد %1$s پاسخ داد در: %1$s - پاسخ‌های جدید - اشاره‌ها - وقتی کسی شما را در پستی اشاره یا نقل‌قول می‌کند اطلاع می‌دهد - %1$s شما را اشاره کرد - اشاره‌های جدید @@ -547,36 +80,6 @@ - تماس‌های ورودی - اعلان‌های تماس‌های صوتی و تصویری ورودی - تماس ورودی - تماس صوتی ورودی… - تماس تصویری ورودی… - تماس با %1$s - تماس‌ها - اعلان تماس در جریان - قطع تماس - پذیرفتن - رد کردن - بی‌صدا - با صدا - دوربین روشن - دوربین خاموش - بلندگو - گوشی - Amethyst برای شروع تماس صوتی به دسترسی میکروفون نیاز دارد. لطفاً آن را در تنظیمات برنامه فعال کنید. - Amethyst برای شروع تماس تصویری به دسترسی دوربین و میکروفون نیاز دارد. لطفاً آن‌ها را در تنظیمات برنامه فعال کنید. - تنظیمات تماس - اتصالات به relay های صندوق ورودی شما را برای اعلان‌های بلادرنگ فعال نگه می‌دارد - اعلان‌های Amethyst فعال است - - متصل به %1$d relay صندوق ورودی - متصل به %1$d relay صندوق ورودی - - - متصل به %1$d relay - متصل به %1$d relay - - در حال اتصال به relay های صندوق ورودی… سرویس اعلان همیشه فعال یک اتصال دائمی به relay های صندوق ورودی شما برای تحویل فوری اعلان‌ها حفظ می‌کند. یک اعلان مداوم نمایش می‌دهد. مصرف باتری بیشتری دارد اما اطمینان می‌دهد هیچ پیامی از دست نمی‌رود. - تقسیم اعلان‌ها بر اساس دنبال‌شده‌ها - دو تب اعلان نمایش می‌دهد — دنبال‌شده‌ها (افرادی که دنبال می‌کنید) و همه. نشانگر پیام‌خوانده‌نشده فقط برای فعالیت افرادی که دنبال می‌کنید روشن می‌شود. - نمایش پیام‌ها - پیام‌های مستقیم و گروهی را در تب اعلان‌ها نمایش دهید. غیرفعال کنید تا پیام‌ها فقط در تب پیام‌ها باشند. - اعلان: - امروز - پنهان - نمایش - هشدار - فیلتر اسپم - پست‌هایی از غریبه‌ها که دقیقاً ۵ بار یا بیشتر تکرار شده‌اند را پنهان می‌کند - افزودن برچسب کلاینت به رویدادهایم - وقتی فعال باشد، Amethyst یک برچسب کلاینت NIP-89 به رویدادهایی که منتشر می‌کنید اضافه می‌کند. - هشدار درباره گزارش‌ها - یک پیام هشدار نمایش می‌دهد وقتی پست‌ها یا پروفایل‌ها گزارش‌هایی از افرادی که دنبال می‌کنید دارند - پنهان‌کردن پست‌هایی که قوانین جامعه را نقض می‌کنند - وقتی جامعه یک سند قوانین NIP-9B منتشر می‌کند و یک رویداد آن را نقض کند، آن پست‌ها را از فیدهای جامعه حذف می‌کند. وقتی جامعه‌ای قوانین ساختاریافته ندارد تأثیری ندارد. - تنظیمات فیلتر - محتوای مسدود شده - هنوز هیچ کاربری را مسدود نکرده‌اید. - هیچ حسابی در این جلسه به عنوان اسپم علامت‌گذاری نشده است. - کلمه پنهانی وجود ندارد. یک کلمه را در زیر اضافه کنید تا پست‌های حاوی آن پنهان شوند. - هیچ نوع واکنشی انتخاب نشده. نگه دارید تا تغییر دهید - خواندن از رله - نوشتن به رله - مقدار بایتی که به این رله فرستاده شده، شامل فیلترها و رویدادها - مقدار بایتی که از این رله فرستاده شده، شامل فیلترها و رویدادها - سیاست حریم خصوصی - استانداردهای ایمنی کودکان - درباره & قانونی - توکن Cashu - آدرس لایتنینگ تنظیم نشده است - رله ها - بسته‌های دنبال‌کردن - خواندنی‌ها - الگوریتم‌های فید - بازار - پخش زنده - جوامع - گپ - محتوای حساس - هشدار محتوای حساس پیش از نمایش محتوا اضافه می کند - تنظیمات رابط کاربری ترجیحات اپ - ترجمه‌ها - واکنش‌ها - تنظیمات - تنظیمات حساب - تنظیمات برنامه - منطقه خطر - بازنشانی وضعیت Marmot - وضعیت Marmot بازنشانی شد. - بازنشانی وضعیت Marmot ناموفق بود: %1$s - همیشه - وای فای بی اندازه - هرگز - کامل - ساده - عملکرد - کلاسیک - مدرن - سیستم - روشن - تاریک - اتصال کیف پول - پوسته - پیش نمایش تصویر - پخش ویدئو - پخش خودکار ویدیو - پیش نمایش URL - مرور ژرف - پنهان کردن نوار پیمایش هنگام مرور - حالت رابط کاربر - قیافه پست را انتخاب کن - سبک گالری نمایه - انتخاب سبک گالری - اسپمر - بیصدا شده. برای لغو کلیک کنید - باصدا. برای بیصدا کردن کلیک کنید - %d ثانیه به عقب برگرد - %d ثانیه جلو برو - پست اختصاصی مکان - فقط دنبال کنندگان این مکان می توانند آن را ببینند. دنبال کنندگان معمولی شما آن را نمی بینند. - - %1$d آهنگ - %1$d آهنگ - - - +%1$d آهنگ دیگر - +%1$d آهنگ دیگر - - آپلود تصویر کاور - یک تصویر مربعی برای استفاده به عنوان آرت‌ورک این آهنگ انتخاب کنید. - آپلود فایل صوتی - یک MP3، WAV، یا FLAC انتخاب کنید. هنگام ذخیره روی سرور رسانه‌ای شما آپلود خواهد شد. - در حال آپلود کاور + صدا و انتشار. این فرآیند حتی اگر صفحه را ترک کنید ادامه خواهد داشت. - ویرایش پلی‌لیست - آپلود تصویر کاور - یک تصویر مربعی برای استفاده به عنوان آرت‌ورک این پلی‌لیست انتخاب کنید. - در حال آپلود کاور و انتشار. این فرآیند حتی اگر صفحه را ترک کنید ادامه خواهد داشت. عمومی گروه خصوصی - موضوع - نمی توان بارگذاری کرد - مقصد پیام را وارد کنید - کیف پول یافت نشد - Amethyst هیچ برنامه کیف پولی که از Nostr Wallet Connect (NWC) پشتیبانی کند پیدا نکرد. -\n\nکارهایی که می‌توانید انجام دهید: -\n\t1. بررسی پشتیبانی NWC: مطمئن شوید که برنامه کیف پول مورد نظر شما با Nostr Wallet Connect سازگار است. -\n\t2. ایجاد اتصال: به برنامه کیف پول خود بروید و یک اتصال NWC جدید ایجاد کنید. -\n\t3. اتصال به Amethyst: کیف پول شما معمولاً سه گزینه ارائه می‌دهد: -\n\t\t3.1 اتصال خودکار: دکمه‌ای برای باز کردن و اتصال خودکار به Amethyst. اگر این گزینه وجود دارد، آن دکمه را بزنید، Amethyst را باز کنید و روی صفحه جدید ذخیره کنید. -\n\t\t3.2 اتصال دستی: یک URI اتصال که می‌توانید کپی کنید و با کلیک روی آیکون paste در این صفحه مستقیماً وارد کنید. -\n\t\t3.3 کد QR: کیف پول یک کد QR ایجاد می‌کند که می‌توانید با دکمه کد QR در این صفحه آن را بخوانید. - - پوسته مطابق سیستم، روشن، یا تاریک - بارگیری خودکار تصاویر و جیف ها - پخش خودکار ویدئوها و جیف ها - پخش خودکار ویدیوها هنگامی که روی صفحه نمایش داده می‌شوند - نشان دادن پیش نمایش URL - کپی به کلیپ‌بورد - در کلیپ‌بورد کپی شد - اشتراک گذاری یا ذخیره‌سازی ارسال به عنوان DM - رسانه افزوده شد - رسانه به گالری نمایه شما افزوده شد - زپ فرستاده نمی شود - تنظیمات لایتنینگ موجود نیست - کاربر %1$s آدرس لایتنینگ برای دریافت ساتوشی تنظیم نکرده است - خطا در بازکردن اپلیکیشن امضا کننده - اپ امضا کننده یافت نشد. بررسی کنید که اپ حذف نشده باشد. - پخش این ویدیو ممکن نیست - کدک یا فرمت روی این دستگاه پشتیبانی نمی‌شود (%1$s). سعی کنید آن را در مرورگر خود باز کنید. - باز کردن در مرورگر - درخواست امضا رد شد - مطمئن شوید که اپ امضا کننده این تراکنش را تایید کرده است - هیچ کیف پولی برای پرداخت صورتحساب لایتنینگ یافت نشد (خطا: %1$s). لطفا کیف پول لایتنینگی برای استفاده از زپ نصب کنید - هیچ کیف پولی برای پرداخت صورتحساب لایتنینگ یافت نشد. لطفا یک کیف پول لایتنینگی برای استفاده از زپ نصب کنید - باز کردن لینک‌های Blossom ممکن نیست - برنامه‌های Blossom یافت نشدند. لطفاً یک برنامه Blossom محلی نصب کنید تا این فایل را ببینید - کلمات پنهان - موضوعات بی‌صدا شده - هیچ موضوع بی‌صدا شده‌ای وجود ندارد - تصویر نمایه - نمایش تصاویر نمایه - صورتحساب پرداخت نشد - برداشت نشد - Cashu بازپرداخت نشد - Mint پیام خطای روبرو را داد: %1$s - Cashu دریافت شد - %1$s ساتوشی به کیف پول شما ارسال شد. (کارمزد: %2$s ساتوشی) - هیچ کیف پول Cashu سازگاری در سیستم یافت نشد - صورتحساب از سرور گیرنده دریافت نشد - ارائه دهنده اتصال کیف پول شما خطای روبرو را داد: %1$s - LNUrl از آدرس لایتنینگ \"%1$s\" بدست نیامد. تنظیمات کاربر را بررسی کنید. - صورتحساب از %1$s گرفته نشد: %2$s - خطا در تفسیر JSON از %1$s. تنظیمات لایتنینگ کاربر را بررسی کنید - فراخوانی URL از پاسخ %1$s یافت نشد - مبلغ نادرست صورتحساب (%1$s ساتوشی)از %2$s. می بایست %3$s ساتوشی باشد. - نمی توان صورتحساب لایتنینگ را پیش از زپ زدن ارسال کرد. کیف پول لایتنینگی گیرنده خطای روبرو را داد: %1$s - کاربر با امکان خواندن فقط - هیچ واکنشی تنظیم نشده است - اعلان‌ها - ارسال - نمایش درون‌برنامه‌ای - دسته‌بندی‌ها - پیغام از طرف %1$s - سلام %1$s، هنوز موجوده؟ - پوشاک - لوازم جانبی - الکترونیکی - مبلمان - یادگاری - کتاب - حیوانات خانگی - ورزش - تناسب اندام - هنر - دست سازه - خانه - اداره - خوراکی - گوناگون - سایر - رسانه بارگذاری نشد - فایل فشرده باز نشد - خطای بارگیری: %1$s - سرور پس از بارگذاری URL نداد - فایل بارگذاری شده از سرور بارگیری نشد - فایل بارگیری شده پس از بارگذاری بررسی نشد: %1$s - بارگذاری نشد %1$s: %2$s - حذف نشد: %1$s - رسانه برای NIP-95 بسیار بزرگ است - رمزگذاری فایل‌ها - فایل‌ها را قبل از آپلود برای حفظ حریم خصوصی رمزگذاری کنید. برخی سرورها ممکن است فایل‌های رمزگذاری شده را در حساب‌های رایگان قبول نکنند. - آپلود رمزگذاری شده ناموفق بود - بسیاری از سرورها فایل‌های رمزگذاری شده را در حساب‌های رایگان قبول نمی‌کنند. می‌توانید بدون رمزگذاری مجدداً امتحان کنید. - استفاده از کدک H.265/HEVC - کیفیت بهتر با حجم فایل کمتر، اما همه دستگاه‌ها از پخش H.265 پشتیبانی نمی‌کنند. - تبدیل GIF به MP4 - GIF متحرک را به ویدیوی MP4 تبدیل می‌کند تا حجم فایل کمتر و سازگاری پخش بهتری داشته باشید. - حذف متادیتای خصوصی - تلاش می‌کند متادیتای خصوصی را از فایل‌های رسانه‌ای پشتیبانی شده قبل از آپلود حذف کند - متادیتا حذف نشد - حذف متادیتای خصوصی از رسانه ناموفق بود. آپلود لغو شد. - آپلود لغو شد - حذف متادیتا از AVIF ممکن نیست: %1$s - خانه - کاوش - پیغام‌ها - اعلان‌ها - تقویم‌ها - لیست‌های تقویم - شطرنج - کیف پول - کیف پول Cashu (NIP-60) کلید Nutzap (پیشرفته) یک کلید خصوصی جداگانه که فقط برای دریافت nutzap های NIP-61 استفاده می‌شود. این کلید هویت Nostr شما نیست. ایجاد کلید جدید کلید خصوصی P2PK (hex) - ویرایش mint ها ذخیره تغییرات - - +%1$d بیشتر - +%1$d بیشتر - - - توصیه‌شده توسط %1$d نفر دیگر - توصیه‌شده توسط %1$d نفر دیگر - - Mint های محبوب - Mint های مطابق - دریافت‌شده - ارسال‌شده - یک درخواست حذف برای توصیه kind:38000 شما از %1$s منتشر کنید. relay هایی که NIP-09 را رعایت می‌کنند آن را حذف خواهند کرد. - %1$s sats در %2$s اثبات بازیابی شد. - %1$s sat + تا %2$s sat کارمزد پرداخت شود؟ - Nutzap ناموفق بود - هیچ کلید عمومی گیرنده‌ای در یادداشت وجود ندارد - Nutzap ها عمومی هستند و این یادداشت خصوصی را فاش می‌کنند. به جای آن از Lightning zap استفاده کنید. - نمی‌توان مرجع رویداد ساخت - در انتظار پرداخت فاکتور… - در حال بررسی mint… - آهسته - معمولی - سریع - ~۱ ساعت - ~۳۰ دقیقه - ~۱۰ دقیقه - - ارسال %1$s sats، %2$d طرفه - ارسال %1$s sats، %2$d طرفه - - - از تقسیم‌بندی %1$d طرفه این یادداشت استفاده کن - از تقسیم‌بندی %1$d طرفه این یادداشت استفاده کن - - - تقسیم بین %1$d گیرنده - تقسیم بین %1$d گیرنده - - - %1$d گیرنده‌ای که فقط آدرس Lightning دارد نادیده گرفته می‌شود — on-chain به کلید عمومی Nostr برای استخراج آدرس نیاز دارد. - %1$d گیرنده‌ای که فقط آدرس Lightning دارند نادیده گرفته می‌شوند — on-chain به کلید عمومی Nostr برای استخراج آدرس نیاز دارد. - - بارگذاری موجودی - ساخت تراکنش - امضا - انتشار - انتشار رسید - پشتوانه زنجیره بیتکوین پیکربندی نشده است - نمی‌توان موجودی بیتکوین شما را بارگذاری کرد - نمی‌توان تراکنش را ساخت - سهم یک گیرنده زیر مقدار dust است - نمی‌توان تراکنش را امضا کرد - نمی‌توان تراکنش را منتشر کرد - پرداخت ارسال شد، اما رسید zap قابل انتشار نبود - - پرداخت ارسال شد (%1$d از %2$d رسید منتشر شد)، اما رسید بعدی قابل انتشار نبود - پرداخت ارسال شد (%1$d از %2$d رسید منتشر شد)، اما رسید بعدی قابل انتشار نبود - - وارد کردن دنبال‌شوندگان - محصول جدید - مقاله جدید - رویداد تقویمی جدید - ویرایش رویداد تقویمی - تقویم جدید - ویرایش تقویم - فید - ماه - هفته - روز - - %1$s، %2$d رویداد - %1$s، %2$d رویداد - - در حال وقوع - %1$s · پایان %2$s - اشتراک‌گذاری رویداد تقویم - یادآوری‌های تقویم - هشدار هنگامی که رویدادی که در آن شرکت می‌کنید در شرف شروع است. - رویداد تقویم - - تا %1$d دقیقه دیگر شروع می‌شود - تا %1$d دقیقه دیگر شروع می‌شود - - آپلود تصویر ناموفق بود - تصویر انتخاب شده آپلود نشد. دوباره امتحان کنید یا یک آدرس URL وارد کنید. - یادآوری‌های تقویم - ارسال یادآوری‌ها - یک اعلان هنگامی که رویدادی که در آن شرکت می‌کنید در شرف شروع است ارسال می‌شود. - - %1$d دقیقه - %1$d دقیقه - - باز کردن در نقشه - باز کردن لینک - باز کردن تمام واکنش ها به این پست - بستن تمام واکنش ها به این پست - زَپ - نوار ناوبری پایین برای مرتب‌سازی بکشید. برای افزودن یا حذف یک آیتم از نوار پایین، وضعیت را تغییر دهید. با صفر آیتم، نوار پایین پنهان می‌شود. مرتب‌سازی مجدد انتخاب کنید کدام تب‌ها در صفحه خانه نمایش داده شوند. وقتی فقط یک تب فعال است، نوار تب پنهان می‌شود. - همه چیز - رابط کاربری پروفایل انتخاب کنید کدام بخش‌ها و فیدها در صفحه پروفایل کاربران نمایش داده شوند. به طور پیش‌فرض همه گزینه‌ها فعال هستند. - نشان‌های پروفایل - پیشنهادات برنامه - فید دریافت Zap - فید دنبال‌کنندگان - ردیف واکنش - دکمه‌های پخش‌کننده ویدیو - ویژوالایزر صدا - تاریخ انقضا - آدرس نامعتبر - امتیست آدرسی برای باز کردن دریافت کرد ولی آدرس نامعتبر بود: %1$s - رله های صندوق دریافت پیام خصوصی - رله های جستجو - انتخاب های مناسب: \n%1$s - relay های صادره - relay های صندوق ورودی - تنظیمات رله - رله های خانه/ صندوق خروجی عمومی - کاربر محتوای خود را به این relay ها ارسال می‌کند - این نوع از رله تمام محتوای شما را ذخریه می کند. امتیست پست های شما را اینجا می فرستد و دیگران از این رله ها برای یافتن محتوای شما استفاده می کنند. بین ۱-۳ رله وارد کنید. این رله ها ممکن است رله های شخصی، پولی، یا عمومی باشند. - رله های صندوق دریافت عمومی - کاربر اعلان‌ها را روی این relay ها دریافت می‌کند - این نوع رله تمام پاسخ ها، نظرات، پسندها، و زپ های یادداشت های شما را دریافت می کند. این ها می توانند رله های پولی یا رایگان باشند. محدودیتی که گرداننده رله تعیین می کند ممکن است اعلان هایی را که دریافت می کنید محدود کند. این می تواند اثر خوب یا بد داشته باشد. مثلا اگر تحت حمله کامنت اسپم باشید، رله پولی می تواند این اسپم را فیلتر کند. بین ۱-۳ رله وارد کنید. - رله های صندوق دریافت پیام خصوصی - کاربر DM ها را روی این relay ها دریافت می‌کند - بین ۱-۳ رله به عنوان رله صندوق ورودی خصوصی وارد کنید. دیگران از این رله ها برای ارسال پیام خصوصی به شما استفاده خواهند کرد. رله های صندوق دریافت پیام خصوصی می بایست هر پیامی از هر کسی را بپذیرند، اما فقط بگذارند شما آن ها را بارگیری کنید. انتخاب های خوب شامل: - - inbox.nostr.wine (پولی) -- auth.nostr1.com (رایگان) -- you.nostr1.com (رله پولی یا شخصی) - relay های KeyPackage - relay هایی که KeyPackage های MLS شما در آن‌ها منتشر می‌شوند (MIP-00). سایر کاربران این KeyPackage ها را برای دعوت شما به گروه‌های چت Marmot واکشی می‌کنند. بین ۱ تا ۳ relay که رویدادهای KeyPackage را از شما قبول می‌کنند و امکان خواندن عمومی را دارند وارد کنید. - رله های خصوصی خانه - بین ۱-۳ رله وارد کنید برای ذخیره رویدادهایی که هیچ کس دیگر نمی بیند ، به عنوان مثال پیش نویس های شما و یا تنظیمات اپلیکیشن. در حالت ایده آل، این رله ها یا محلی هستند یا پیش از بارگیری محتوای کاربر به احراز هویت نیاز دارند. - relay های متصل - لیست فعلی relay های در حال استفاده - رله های جستجو - لیست رله هایی که هنگام جستجوی محتوا یا کاربران مورد استفاده قرار می گیرند. اگر انتخابی در موجود نباشد، تگ کردن یا جستجو کار نخواهد کرد. حتما مطمئن شوید این رله ها را NIP-50 پیاده‌سازی کرده باشند. - رله های محلی - لیست رله هایی که در این دستگاه کار می کنند. - ارسال پروفایل‌ها به relay محلی - ارسال همه رویدادهای پروفایل دریافت شده (kind 0) به relay محلی شما - relay های مورد اعتماد - relay هایی که به آن‌ها اعتماد دارید و نیازی به اتصال Tor ندارند - فیدهای relay مورد علاقه - relay هایی که اغلب به آن‌ها می‌روید تا فید جهانی‌شان را ببینید - relay های پراکسی - relay های تجمیع‌کننده که برنامه باید برای دانلود فیدهای شما از آن‌ها استفاده کند، مانند filter.nostr.wine. این جایگزین مدل outbox می‌شود و باعث می‌شود برنامه فقط به relay های موجود در لیست‌هایتان متصل شود. - relay های پخش - relay هایی که در ارسال یادداشت‌های شما به سایر relay ها تخصص دارند، مانند sendit.nosflare.com. Amethyst این relay را به همه رویدادهای جدید ساخته شده توسط شما اضافه می‌کند - relay های ایندکسر - relay هایی که در میزبانی متادیتا و لیست relay های همه تخصص دارند، مانند purplepag.es. Amethyst از این relay ها برای یافتن کاربرانی که در لیست‌های شما نیستند استفاده می‌کند. - relay‌های مسدود شده - Amethyst هرگز به این relay‌ها متصل نخواهد شد - خروجی تنظیمات relay وب: مرور کلی درباره لینک‌ها نگهدارندگان موضوعات - اثبات مهر زمان - مدرکی وجود دارد که ثابت کند این پست پیش از %1$s امضا شده است. این مدرک در بلاکچین بیتکوین در آن تاریخ و زمان ثبت شده است. - ویرایش نوشته - پاسخ به پیش نویس یادداشت ممکن نیست. - نقل قول از پیش نویس یادداشت ممکن نیست. - واکنش به پیش نویس یادداشت ممکن نیست. - زپ زدن به پیش نویس یادداشت ممکن نیست. - پیش نویس یادداشت - درخواست بد - سرور نمی تواند یا نمی خواهد این درخواست را پردازش کند. - غیرمجاز - کاربر دارای مشخصات معتبر احراز هویت شده نیست - پرداخت الزامی - سرور برای تکمیل درخواست به پرداخت دارد. - ممنوع - کاربر مجاز به انجام این درخواست نیست. - یافت نشد - سرور نتوانست آدرس درخواست شده را بیابد. - این روش مجاز نیست - سرور روش درخواست را پیشتیبانی می کند ولی مرجع هدف را نه. - غیرقابل قبول - سرور نتوانست محتوایی مناسب درخواست بیابد. - احراز هویت الزامی پروکسی - کاربر اعتبارات احراز هویت معتبر ندارد - زمان درخواست سپری شد - زمان درخواست در انتظار شخصی دیگر تمام شد - تعارض - سرور نتوانست درخواست را انجام دهد چون در مرجع تعارض وجود دارد - نیست - محتوای درخواست شده برای همیشه از سرور پاک شده و بازیابی نخواهد شد - الزام طول - سرور درخواست را رد کرد چون نیاز به اندازه تعریف شده دارد - پیش شرط انجام نشد - پیش شرطی در سربرگ وجود دارد که سرور نمی تواند براورده کند - حجم زیادی - درخواست از محدودیت های تعریف شده سرور بزرگتر است و سرور آن را پردازش نمی کند - آدرس زیادی بلند - آدرس درخواست شده توسط کاربر زیادی برای پردازش سرور بلند است. - نوع رسانه پشتیبانی نشده - درخواست از نوعی رسانه استفاده می کند که توسط سرور پشتیبانی نمی شود - بازه براورده نشد - سرور نتوانست مقدار مورد نظر در سربرگ بازه را براورده کند. - انتظارات براورده نشد - سرور نتوانست انتظارات تعیین شده در سربرگ توقع درخواست را براورده کند - ارتقاء الزامی - سرور درخواست را با پروتکل فعلی پردازش نمی کند تا کلاینت پروتکل را ارتقاء دهد. - خطای سرور داخلی - سرور به خطایی غیرمنتظره برخورد و نمی تواند درخواست را کامل کند - انجام نشد - سرور نمی تواند درخواست را انجام دهد یا روش درخواست را تشخیص نمی دهد - درگاه غیرمجاز - سرور به عنوان یک درگاه پاسخی نامعتبر از هاست دریافت کرد - خدمت در دسترس نیست - این اغلب هنگامی که یک سرور بیش از حد شلوغ است یا برای تعمیرات تعطیل است پیش می آید - مهلت درگاه تمام شد - مهلت سرور در نقش یک درگاه یا پراکسی تمام شد، در انتظار پاسخ - نسخه HTTP پشتیبانی نمی شود - سرور ورژن HTTP درخواست را پشتیبانی نمی کند - Variant Also Negotiates - سرور یک مشکل پیکربندی داخلی دارد - فضای ذخیره ناکافی - سرور فضای کافی برای پردازش موفق درخواست ندارد - حلقه دیده شد - سرور یک حلقه بینهایت در پردازش این درخواست شناسایی کرد - احراز هویت الزامی - کلاینت برای دسترسی به شبکه می بایست احراز هویت شده باشد سرورهای Blossom هر تعداد سرور که می خواهید اضافه کنید. می توانید بعدا هنگام بارگذاری تصویرتان انتخاب کنید که از کدام سرور استفاده شود - یک سرور NIP-96 بیافزایید - یک سرور Blossom بیافزایید بارگيری - فایل باز نشد - هیچ اپ تورنتی برای باز کردن و بارگیری فایل نصب نیست. - رویداد اطلاعات کافی برای ساخت لینک مگنت ندارد - لیست‌های من - فیدها - هشتگ‌ها - مجموعه‌های علاقه - مکان‌ها - انجمن‌ها - لیست‌ها - الگوریتم‌های فید - همه الگوریتم‌های فید موردعلاقه - relay‌ها - الگوریتم‌های فید موردعلاقه - پیام خصوصی - پیام عمومی - اشتراک‌گذاری تصویر ممکن نیست، لطفاً بعداً دوباره امتحان کنید… - اشتراک‌گذاری ویدئو ممکن نیست، لطفاً بعداً دوباره امتحان کنید… - در حال دانلود ویدئو… - ترجمه نکن از - زبان‌های نمایش داده شده اینجا ترجمه نخواهند شد. برای حذف یک زبان و ترجمه مجدد آن، روی آن ضربه بزنید. - ترجمه به - زبانی را که می‌خواهید محتوا به آن ترجمه شود انتخاب کنید. - تنظیمات نمایش زبان - برای هر جفت زبان ترجمه شده، انتخاب کنید کدام زبان اول نمایش داده شود. - مکث - پخش - این پیام در %1$s ناپدید می‌شود - متادیتای لیست دنبال‌کردن - متادیتای لیست‌های دنبال‌کردن برای همه در Nostr قابل مشاهده است. فقط اعضای خصوصی شما رمزگذاری شده‌اند. - متادیتای بسته دنبال‌کردن - متادیتای بسته دنبال‌کردن برای همه در Nostr قابل مشاهده است و اغلب در بسیاری از وب‌سایت‌ها به عنوان کیت راه‌اندازی برای کاربران جدید منتشر می‌شود. - ویرایش بسته دنبال‌کردن - گسترش دادن - تلاش مجدد - واکنش - پست صوتی - پاسخ صوتی - relay‌های خروجی - برنامه‌ها - پیشنهادات برنامه - تنظیمات کاربر - هدر صوتی - آهنگ صوتی - آهنگ موسیقی - پلی‌لیست موسیقی - قسمت پادکست - برنامه پادکست - پادکست‌های تألیف شده - پادکست‌های موردعلاقه - جوایز نشان - تعاریف نشان - مجموعه نشان‌های پذیرفته شده - نشان‌های پروفایل - relay‌های مسدود شده - سرورهای Blossom - سرورهای Nests - احراز هویت Blossom - relay‌های پخش - لیست نشانک - لیست نشانک قدیمی - قرار ملاقات روزانه - تقویم - قرار ملاقات - RSVP قرار ملاقات - بازی‌های شطرنج - احراز هویت شطرنج - relay‌های موردعلاقه - چالش‌های شطرنج - پذیرش بازی شطرنج - حرکت شطرنج - پایان بازی شطرنج - پیشنهاد مساوی شطرنج - تعریف کانال - مخفی کردن پیام کانال - لیست کانال - پیام کانال - فراداده کانال - بی‌صدا کردن کاربر در کانال - فایل پیام خصوصی - پیام خصوصی - relay های پیام خصوصی - آگهی‌های طبقه‌بندی‌شده - نظرات - تعریف جامعه - فهرست جوامع - پست جامعه - فهرست دنبال‌شدگان - حذف‌ها - پیش‌نویس‌ها - بسته‌های ایموجی - فهرست بسته‌های ایموجی - چت موقت - اتاق‌های چت موقت - سرآیندهای فایل - گالری پروفایل - سرورهای فایل - داده Blob - سرآیندهای Blob - داده پزشکی - بسته‌های دنبال‌کردن - بازنشرها (16) - دنبال‌کردن‌های Geohash - مشکل Git - وصله Git - مخزن Git - پاسخ Git - اهداف Zap - دنبال‌کردن‌های هشتگ - برجسته‌ها - احراز هویت HTTP - فهرست relay های فهرست‌ساز - مقدمه ماجرا - صحنه ماجرا - مطالعه ماجرا - نشانک‌های نام‌گذاری‌شده - چت‌های زنده - پخش‌های زنده - درخواست NWC - پاسخ NWC - Zap های خصوصی - درخواست Zap - وبلاگ‌ها - اتاق جلسه - حضور در اتاق - فضای جلسه - پروفایل - فهرست بی‌صداشدگان - وضعیت DVM - درخواست محتوای DVM - پاسخ محتوای DVM - درخواست کاربر DVM - پاسخ کاربر DVM - پرداخت به - فهرست‌های افراد - تصاویر - تمرینات ورزشی - پین‌ها - نظرسنجی Zap - نظرسنجی - پاسخ نظرسنجی - پیام‌های خصوصی NIP-04 - relay های خصوصی - relay های پروکسی - پیام عمومی - واکنش‌ها - کارت تماس - احراز هویت relay - کشف relay - اطلاعیه ناظر relay - مجموعه relay - گزارش‌ها - بازنشرها - حذف کاربر - مهرها - relay های جستجو - وضعیت کاربر - یادداشت‌ها - ویرایش‌ها - تورنت‌ها - نظرات تورنت - relay های مورد اعتماد - ارائه‌دهندگان مورد اعتماد - ویدیو (Repl) - ویدیو - پیام صوتی - پاسخ صوتی - نشانک وب - %1$d%% زمان فعالیت - تنظیمات Namecoin - همگام‌سازی relay - مرورگر Bitcoin ‏(OTS) - رویدادهای شما - رویدادهای ارسال‌شده به شما - رویدادهای قابل جستجو - پیام‌های خصوصی - پروفایل‌ها - فهرست‌های outbox - آخرین بازدید %1$s پیش - آخرین بازدید در %1$s ‏(%2$s پیش) - همین الان بازدید شد - هرگز دیده نشده - - %1$d دقیقه - %1$d دقیقه - - - %1$d ساعت - %1$d ساعت - - - %1$d روز - %1$d روز - - - %1$d هفته - %1$d هفته - - - %1$d ماه - %1$d ماه - - - %1$d سال - %1$d سال - - - %1$d فاکتور در انتظار - %1$d فاکتور در انتظار - - - وجوه نگهداری‌شده در %1$d mint که استفاده نمی‌کنید - وجوه نگهداری‌شده در %1$d mint که استفاده نمی‌کنید - - %1$s sat به %2$s منتقل شد. - پخش روی دستگاه - توقف پخش - آپلود HLS - در حال آپلود %1$s (%2$d از %3$d) - تأییدیه - درخواست تأییدیه - توصیه تأییدکننده - مهارت تأییدکننده - نشانک‌های وب - افزودن نشانک وب - ویرایش نشانک وب - %1$s از هدف %2$s sat تأمین شده - هدف جدید - درخواست ناپدید شدن - درخواست ناپدید شدن ارسال شد - تاریخچه ناپدید شدن - کاربران - رویدادها - نوع‌ها - آدرس‌های IP - تنظیمات - پیشنهاد بهبود متن - از یک مدل هوش مصنوعی روی دستگاه برای پیشنهاد اصلاحات متن و تغییر لحن استفاده می‌کند. - پخش‌های ردیابی‌شده - هنگام ارسال رویدادها از پخش‌کننده ردیابی‌شده استفاده کنید. پیشرفت زنده و وضعیت هر relay را در حین پخش نشان می‌دهد. - پیشنهاد اشتراک‌گذاری تمرینات - تمرینات تمام‌شده را از Health Connect (Samsung Health، Google Fit، Fitbit، Garmin…) می‌خواند و پیشنهاد اشتراک‌گذاری آن‌ها به‌عنوان پست می‌دهد. دسترسی فقط هنگام اتصال درخواست می‌شود. - تنظیمات نوشتن - ایجاد خودکار پیش‌نویس - هنگام تایپ یا خروج از یک ناحیه نوشتن با متن ارسال‌نشده، به‌طور خودکار یک رویداد پیش‌نویس ذخیره می‌کند و آن را به relay‌های صندوق خروجی خصوصی شما ارسال می‌کند. - بسته ایموجی جدید - ویرایش بسته ایموجی - بسته‌های ایموجی من - ایموجی‌ها - ایموجی‌های عمومی برای همه قابل مشاهده‌اند و در منوی واکنش و انتخابگر «:» تکمیل خودکار ظاهر می‌شوند، البته اگر این بسته در فهرست ایموجی شما باشد. - ایموجی‌های خصوصی به صورت رمزنگاری‌شده روی relay‌ها ذخیره می‌شوند و فقط برای شما قابل مشاهده‌اند. درست مانند ایموجی‌های عمومی در منوی واکنش و تکمیل خودکار «:» نمایش داده می‌شوند. - پیش‌نویس %1$d بایت است؛ این انجمن این نوع را تا %2$d بایت محدود می‌کند. - پیش‌نویس %1$d بایت است؛ این انجمن رویدادها را تا %2$d بایت محدود می‌کند. - امروز %1$d رویداد از این نوع ارسال کرده‌اید (حد مجاز %2$d). - سایت Nowhere - رویداد Nowhere - جمع‌آوری کمک مالی Nowhere - فروشگاه Nowhere - درخواست‌نامه Nowhere - پیام Nowhere - رهاسازی Nowhere - هنر Nowhere - انجمن Nowhere - - %1$d پیام - %1$d پیام - - - %1$d عضو - %1$d عضو - - اطلاعات گروه به‌روزرسانی شد - به‌روزرسانی ناموفق بود: %1$s - ایجاد گروه ناموفق بود: %1$s - خروج از گروه ناموفق بود: %1$s - در حال افزودن %1$s… - افزودن %1$s ناموفق بود: %2$s - خطای ناشناخته - عضو حذف شد - حذف عضو ناموفق بود: %1$s - دسترسی مدیریت اعطا شد - اعطای دسترسی مدیریت ناموفق بود: %1$s - دسترسی مدیریت لغو شد - لغو دسترسی مدیریت ناموفق بود: %1$s - عضو این گروه نیستید خدمات لایتنینگ %1$s گیرنده دردسترس نیست. از آدرس لایتنینگ \"%2$s\" محاسبه شد. خطا: %3$s. بررسی کنید آیا سرور کار می کند و آیا آدرس لایتنینگ صحیح است. مشکل %1$s حل نشد. بررسی کنید که به اینترنت متصل باشید، سرور کار کند و آدرس لایتنینگ %2$s صحیح باشد. \n\nخطای %3$s خطا در تفسیر JSON از دریافت صورتحساب %1$s. تنظیمات لایتنینگ کاربر را بررسی کنید. diff --git a/amethyst/src/main/res/values-fa/strings.xml b/amethyst/src/main/res/values-fa/strings.xml index 8aceba5ec7..f67e7fa418 100644 --- a/amethyst/src/main/res/values-fa/strings.xml +++ b/amethyst/src/main/res/values-fa/strings.xml @@ -1,349 +1,18 @@ - اسپم - تعداد رویدادهای اسپم که از این رله می آید - جعل هویت - رفتار ناهنجار - درخواست حذف/string> - با کلید خصوصی وارد شوید تا بتوانید پاسخ دهید - با کلید خصوصی وارد شوید تا بتوانید یادداشت را بازنشر کنید - با کلید خصوصی وارد شوید تا بتوانید یادداشت را لایک کنید - مقداری برای زپ تعیین نشده. نگه دارید تا تغییر دهید - با کلید خصوصی وارد شوید تا بتوانید زپ کنید - با یک کلید خصوصی وارد شوید تا بتوانید دنبال کنید - با یک کلید خصوصی وارد شوید تا بتوانید دنبال کردن را لغو کنید - دارید از کلید عمومی استفاده می کنید و با کلید عمومی فقط می توان خواند. با کلید خصوصی وارد شوید تا بتوانید کلمه یا جمله ای را پنهان کنید. - دارید از کلید عمومی استفاده می کنید و با کلید عمومی فقط می توان خواند. با کلید خصوصی وارد شوید تا بتوانید کلمه یا جمله ای را آشکار کنید - زپ - بازنشر بازنشر شده ویرایش#%1$s - پیشنهاد ویرایش - افزودن - خطا در تفسیر پیغام خطا - پروفایل - فیلترهای ایمنی - پرداخت - "%1$s پیش نمایش تصویر کارت برای" - توصیف - به چی فکر میکنی؟ - ارسال ذخیره - ساختن - لغو - خطاها - تصویر در گالری ذخیره شد - بارگیری ویدئو آغاز شد… - بارگیری رسانه آغاز شد… - تصویر ذخیره نشد - ویدئو در گالری گوشی ذخیره شد - ویدئو ذخیره نشد - این کاربر آدرس لایتنینگ برای دریافت ساتوشی تنظیم نکرده است - "…اینجا پاسخ دهید " - شناس - در خواست جدید - کاربران بلاک شده - رشته جدید - گفتگوها - انتخاب های بیشتر - نمایش کد QR کلید خصوصی - نمایش کد QR کلید خصوصی رمزنگاری شده - دنبال کردن - دنبال کردن متقابل - پنهان کردن گذرواژه - کلید نامعتبر - کلید نامعتبر: %1$s - رمز عبور لازم است - کلید الزامیست - نام الزامی است - ترک کردن - دنبال نکردن - گفتگوی عمومی - بیرون کردن - هرگز - اکنون - ساعت - دقیقه - روز - برهنگی - ناسزا / نفرت پراکنی - بازیابی کلیدها - کلید خصوصی شما رمزنگاری نشد - کلید خصوصی در کلیپبورد کپی شد - کلید خصوصیم را کپی کن - احراز هویت انجام نشد - مشخصات بیومتریک نتوانست مالک این تلفن را احراز هویت کند - مشخصات بیومتریک نتوانست مالک این تلفن را احراز هویت کند. خطا: %1$s - یادداشت در کلیپبورد کپی شد - \@npubنویسنده در کلیپبورد کپی شد - (@note1)شناسه یادداشت در کلیپبورد کپی شد - "<پیام خصوصی رمزگشایی نشد>\\n\nدر یک پیام خصوصی/رمزنگاری شده بین %1$s و %2$s نام شما آمده بود." - حساب های کاربری - بازگشت - اشتراک گذاری لینک مرورگر - اشتراک گذاری - شناسه یادداشت - حذف - - بلاک - علامت گذاشته ها - پیش‌نویس‌ - افزودن به علامت گذاشته های عمومی - برداشتن از علامت گذاشته های خصوصی - گزینه ها %s - (0–100)% - نمی توان رای داد - این نظرسنجی برای رای جدید بسته شده است - فقط یک رای به ازای هر کاربر در این نوع نظرسنجی مجاز است - سازندگان نظرسنجی نمی توانند در نظر سنجی خود رای دهند. - این به چه معناست؟ - تصویر از زمان ارسال یکسان است - تصویر تغییر کرده است. ممکن است نویسنده تغییر را ندیده باشد. - افزودن رسانه - افزودن تصویر - افزودن فیلم - افزودن مدارک - سرور فایل - یک سرور برای بارگذاری این فایل انتخاب کنید - سرورهای رسانه سرورهای مورد علاقه خود برای بارگزاری رسانه را انتخاب کنید. لیست پیش فرض امتیست. می توانید تک به تک یا تمام لیست را اضافه کنید. - گزینه های حریم خصوصی - همه دنبال ها - اطراف من - همگانی - لیست خموش - درگاه پیش فرض 9050 است - درگاه Orbot Socks - موتور فعال تور - استفاده از نسخه درونی یا Orbot - تنظیمات پیش فرض حریم خصوصی/ تور - تغییر سریع تمام تنظیمات زیر - رله ها / آدرس های Onion - از تور برای هر آدرس اونیون استفاده کن - رله های پیام خصوصی - تور را برای ارسال و دریافت پیام خصوصی الزامی کن - رله های غیر معتمد - تور را برای رله های ارسال/دریافت الزامی کن - رله های معتمد - تور را برای تمام رله های لیست الزامی کن - تصاویر نمایه - تور را برای بارگیری تصاویر نمایه اجباری کن - پیش نمایش URL - تور را برای بارگیری پیش نمایش آدرس الزامی کن - تصاویر - تور را برای بارگیری تصاویر الزامی کن - ویدئوها - تور را برای بارگیری ویدئوها الزامی کن - عملیات پولی - تور را برای زپ، لایتنینگ و انتقال کَشو الزامی کن - تایید آدرس ناستر - تور را برای تایید آدرس های NIP-05 الزامی کن - بارگذاری رسانه - تور را برای بارگذاری محتوا الزامی کن - داخلی - Orbot - خاموش - مقدماتی - پیش‌فرض - همه بجز رسانه - حریم خصوصی کامل - سفارشی - وقتی توسط سرور الزام شده از تور استفاده کن - IP خود را از رله های غریبه پنهان کن - IP خود را از همه چیز بجز تصاویر و ویدئوها پنهان کن - IP خود را در تمام ارتباطات پنهان کن - خودت را بساز - پیام خصوصی - وقتی پیام خصوصی دریافت شود اعلان می کند - زپ دریافت شده - وقتی کسی زپ کند اعلام می کند - %1$s ساتوشی - از %1$s - برای %1$s - اعلان: - امروز - هیچ نوع واکنشی انتخاب نشده. نگه دارید تا تغییر دهید - خواندن از رله - نوشتن به رله - مقدار بایتی که به این رله فرستاده شده، شامل فیلترها و رویدادها - مقدار بایتی که از این رله فرستاده شده، شامل فیلترها و رویدادها - توکن Cashu - آدرس لایتنینگ تنظیم نشده است - رله ها - بازار - گپ - محتوای حساس - هشدار محتوای حساس پیش از نمایش محتوا اضافه می کند ترجیحات اپ - تنظیمات - همیشه - وای فای بی اندازه - هرگز - کامل - ساده - عملکرد - کلاسیک - مدرن - سیستم - روشن - تاریک - اتصال کیف پول - پوسته - پیش نمایش تصویر - پخش ویدئو - پیش نمایش URL - مرور ژرف - پنهان کردن نوار پیمایش هنگام مرور - حالت رابط کاربر - قیافه پست را انتخاب کن - سبک گالری نمایه - انتخاب سبک گالری - اسپمر - بیصدا شده. برای لغو کلیک کنید - باصدا. برای بیصدا کردن کلیک کنید - پست اختصاصی مکان - فقط دنبال کنندگان این مکان می توانند آن را ببینند. دنبال کنندگان معمولی شما آن را نمی بینند. عمومی خصوصی - موضوع - پوسته مطابق سیستم، روشن، یا تاریک - بارگیری خودکار تصاویر و جیف ها - پخش خودکار ویدئوها و جیف ها - نشان دادن پیش نمایش URL - کپی به کلیپ‌بورد - اشتراک گذاری یا ذخیره‌سازی - رسانه افزوده شد - رسانه به گالری نمایه شما افزوده شد - زپ فرستاده نمی شود - تنظیمات لایتنینگ موجود نیست - کاربر %1$s آدرس لایتنینگ برای دریافت ساتوشی تنظیم نکرده است - خطا در بازکردن اپلیکیشن امضا کننده - اپ امضا کننده یافت نشد. بررسی کنید که اپ حذف نشده باشد. - مطمئن شوید که اپ امضا کننده این تراکنش را تایید کرده است - هیچ کیف پولی برای پرداخت صورتحساب لایتنینگ یافت نشد (خطا: %1$s). لطفا کیف پول لایتنینگی برای استفاده از زپ نصب کنید - هیچ کیف پولی برای پرداخت صورتحساب لایتنینگ یافت نشد. لطفا یک کیف پول لایتنینگی برای استفاده از زپ نصب کنید - کلمات پنهان - تصویر نمایه - نمایش تصاویر نمایه - صورتحساب پرداخت نشد - برداشت نشد - Cashu بازپرداخت نشد - Mint پیام خطای روبرو را داد: %1$s - Cashu دریافت شد - %1$s ساتوشی به کیف پول شما ارسال شد. (کارمزد: %2$s ساتوشی) - هیچ کیف پول Cashu سازگاری در سیستم یافت نشد - صورتحساب از سرور گیرنده دریافت نشد - ارائه دهنده اتصال کیف پول شما خطای روبرو را داد: %1$s - LNUrl از آدرس لایتنینگ \"%1$s\" بدست نیامد. تنظیمات کاربر را بررسی کنید. - صورتحساب از %1$s گرفته نشد: %2$s - خطا در تفسیر JSON از %1$s. تنظیمات لایتنینگ کاربر را بررسی کنید - فراخوانی URL از پاسخ %1$s یافت نشد - مبلغ نادرست صورتحساب (%1$s ساتوشی)از %2$s. می بایست %3$s ساتوشی باشد. - نمی توان صورتحساب لایتنینگ را پیش از زپ زدن ارسال کرد. کیف پول لایتنینگی گیرنده خطای روبرو را داد: %1$s - کاربر با امکان خواندن فقط - هیچ واکنشی تنظیم نشده است - پیغام از طرف %1$s - سلام %1$s، هنوز موجوده؟ - پوشاک - لوازم جانبی - الکترونیکی - مبلمان - یادگاری - کتاب - حیوانات خانگی - ورزش - تناسب اندام - هنر - دست سازه - خانه - اداره - خوراکی - گوناگون - سایر - رسانه بارگذاری نشد - فایل فشرده باز نشد - خطای بارگیری: %1$s - سرور پس از بارگذاری URL نداد - فایل بارگذاری شده از سرور بارگیری نشد - فایل بارگیری شده پس از بارگذاری بررسی نشد: %1$s - بارگذاری نشد %1$s: %2$s - حذف نشد: %1$s - رسانه برای NIP-95 بسیار بزرگ است - خانه - کاوش - پیغام‌ها - اعلان‌ها - باز کردن تمام واکنش ها به این پست - بستن تمام واکنش ها به این پست - زَپ - آدرس نامعتبر - امتیست آدرسی برای باز کردن دریافت کرد ولی آدرس نامعتبر بود: %1$s - رله های صندوق دریافت پیام خصوصی - رله های جستجو - انتخاب های مناسب: \n%1$s - تنظیمات رله - رله های خانه/ صندوق خروجی عمومی - این نوع از رله تمام محتوای شما را ذخریه می کند. امتیست پست های شما را اینجا می فرستد و دیگران از این رله ها برای یافتن محتوای شما استفاده می کنند. بین ۱-۳ رله وارد کنید. این رله ها ممکن است رله های شخصی، پولی، یا عمومی باشند. - رله های صندوق دریافت عمومی - این نوع رله تمام پاسخ ها، نظرات، پسندها، و زپ های یادداشت های شما را دریافت می کند. این ها می توانند رله های پولی یا رایگان باشند. محدودیتی که گرداننده رله تعیین می کند ممکن است اعلان هایی را که دریافت می کنید محدود کند. این می تواند اثر خوب یا بد داشته باشد. مثلا اگر تحت حمله کامنت اسپم باشید، رله پولی می تواند این اسپم را فیلتر کند. بین ۱-۳ رله وارد کنید. - رله های صندوق دریافت پیام خصوصی - بین ۱-۳ رله به عنوان رله صندوق ورودی خصوصی وارد کنید. دیگران از این رله ها برای ارسال پیام خصوصی به شما استفاده خواهند کرد. رله های صندوق دریافت پیام خصوصی می بایست هر پیامی از هر کسی را بپذیرند، اما فقط بگذارند شما آن ها را بارگیری کنید. انتخاب های خوب شامل: - - inbox.nostr.wine (پولی) -- auth.nostr1.com (رایگان) -- you.nostr1.com (رله پولی یا شخصی) - رله های خصوصی خانه - بین ۱-۳ رله وارد کنید برای ذخیره رویدادهایی که هیچ کس دیگر نمی بیند ، به عنوان مثال پیش نویس های شما و یا تنظیمات اپلیکیشن. در حالت ایده آل، این رله ها یا محلی هستند یا پیش از بارگیری محتوای کاربر به احراز هویت نیاز دارند. - رله های جستجو - لیست رله هایی که هنگام جستجوی محتوا یا کاربران مورد استفاده قرار می گیرند. اگر انتخابی در موجود نباشد، تگ کردن یا جستجو کار نخواهد کرد. حتما مطمئن شوید این رله ها را NIP-50 پیاده‌سازی کرده باشند. - رله های محلی - لیست رله هایی که در این دستگاه کار می کنند. وب: - اثبات مهر زمان - مدرکی وجود دارد که ثابت کند این پست پیش از %1$s امضا شده است. این مدرک در بلاکچین بیتکوین در آن تاریخ و زمان ثبت شده است. - ویرایش نوشته - پاسخ به پیش نویس یادداشت ممکن نیست. - نقل قول از پیش نویس یادداشت ممکن نیست. - واکنش به پیش نویس یادداشت ممکن نیست. - زپ زدن به پیش نویس یادداشت ممکن نیست. - پیش نویس یادداشت - درخواست بد - سرور نمی تواند یا نمی خواهد این درخواست را پردازش کند. - غیرمجاز - کاربر دارای مشخصات معتبر احراز هویت شده نیست - پرداخت الزامی - سرور برای تکمیل درخواست به پرداخت دارد. - ممنوع - کاربر مجاز به انجام این درخواست نیست. - یافت نشد - سرور نتوانست آدرس درخواست شده را بیابد. - این روش مجاز نیست - سرور روش درخواست را پیشتیبانی می کند ولی مرجع هدف را نه. - غیرقابل قبول - سرور نتوانست محتوایی مناسب درخواست بیابد. - احراز هویت الزامی پروکسی - کاربر اعتبارات احراز هویت معتبر ندارد - زمان درخواست سپری شد - زمان درخواست در انتظار شخصی دیگر تمام شد - تعارض - سرور نتوانست درخواست را انجام دهد چون در مرجع تعارض وجود دارد - نیست - محتوای درخواست شده برای همیشه از سرور پاک شده و بازیابی نخواهد شد - الزام طول - سرور درخواست را رد کرد چون نیاز به اندازه تعریف شده دارد - پیش شرط انجام نشد - پیش شرطی در سربرگ وجود دارد که سرور نمی تواند براورده کند - حجم زیادی - درخواست از محدودیت های تعریف شده سرور بزرگتر است و سرور آن را پردازش نمی کند - آدرس زیادی بلند - آدرس درخواست شده توسط کاربر زیادی برای پردازش سرور بلند است. - نوع رسانه پشتیبانی نشده - درخواست از نوعی رسانه استفاده می کند که توسط سرور پشتیبانی نمی شود - بازه براورده نشد - سرور نتوانست مقدار مورد نظر در سربرگ بازه را براورده کند. - انتظارات براورده نشد - سرور نتوانست انتظارات تعیین شده در سربرگ توقع درخواست را براورده کند - ارتقاء الزامی - سرور درخواست را با پروتکل فعلی پردازش نمی کند تا کلاینت پروتکل را ارتقاء دهد. - خطای سرور داخلی - سرور به خطایی غیرمنتظره برخورد و نمی تواند درخواست را کامل کند - انجام نشد - سرور نمی تواند درخواست را انجام دهد یا روش درخواست را تشخیص نمی دهد - درگاه غیرمجاز - سرور به عنوان یک درگاه پاسخی نامعتبر از هاست دریافت کرد - خدمت در دسترس نیست - این اغلب هنگامی که یک سرور بیش از حد شلوغ است یا برای تعمیرات تعطیل است پیش می آید - مهلت درگاه تمام شد - مهلت سرور در نقش یک درگاه یا پراکسی تمام شد، در انتظار پاسخ - نسخه HTTP پشتیبانی نمی شود - سرور ورژن HTTP درخواست را پشتیبانی نمی کند - Variant Also Negotiates - سرور یک مشکل پیکربندی داخلی دارد - فضای ذخیره ناکافی - سرور فضای کافی برای پردازش موفق درخواست ندارد - حلقه دیده شد - سرور یک حلقه بینهایت در پردازش این درخواست شناسایی کرد - احراز هویت الزامی - کلاینت برای دسترسی به شبکه می بایست احراز هویت شده باشد سرورهای Blossom هر تعداد سرور که می خواهید اضافه کنید. می توانید بعدا هنگام بارگذاری تصویرتان انتخاب کنید که از کدام سرور استفاده شود - یک سرور NIP-96 بیافزایید - یک سرور Blossom بیافزایید بارگيری - فایل باز نشد - هیچ اپ تورنتی برای باز کردن و بارگیری فایل نصب نیست. خدمات لایتنینگ %1$s گیرنده دردسترس نیست. از آدرس لایتنینگ \"%2$s\" محاسبه شد. خطا: %3$s. بررسی کنید آیا سرور کار می کند و آیا آدرس لایتنینگ صحیح است. مشکل %1$s حل نشد. بررسی کنید که به اینترنت متصل باشید، سرور کار کند و آدرس لایتنینگ %2$s صحیح باشد. \n\nخطای %3$s خطا در تفسیر JSON از دریافت صورتحساب %1$s. تنظیمات لایتنینگ کاربر را بررسی کنید. @@ -352,7 +21,6 @@ - تغییر نام @@ -370,13 +38,9 @@ - خصوصی کردن: یادداشت را به صورت gift-wrap فقط برای کاربران مطلع‌شده ارسال کن - عمومی کردن - پاسخ‌ها به یادداشت خصوصی همیشه خصوصی می‌مانند - قابل مشاهده برای هنوز دریافت‌کننده‌ای ندارد: فقط شما می‌توانید این یادداشت را ببینید. افراد را اضافه کنید تا با آن‌ها به اشتراک بگذارید. @@ -392,31 +56,6 @@ - متادیتای فهرست‌های نشانک برای هر کسی در Nostr قابل مشاهده است. فقط اعضای خصوصی شما رمزگذاری می‌شوند. - - انتقال به عمومی - - انتقال به خصوصی - - - - - - - - - - - - - - شارژ & ارسال zap - - ارسال zap - - - - شارژ %1$s sats به %2$s و zap کردن %3$s %4$s sats · کارمزد ≈ %5$s sats @@ -431,9 +70,26 @@ - تک‌انتخابی - چندانتخابی + + + + + + + + + + + + + + + + + + + @@ -449,28 +105,6 @@ سرورهای رسانه پیشنهادی - آدرس‌های پرداخت - - - آدرس‌های پرداخت برای شبکه‌های مختلف اضافه کنید (مثلاً bitcoin، lightning، ethereum). - - - - - - هیچ اپلیکیشنی برای پردازش این پرداخت پیدا نشد. لطفاً یک کیف پول سازگار نصب کنید. - - هیچ اپلیکیشنی برای پردازش پرداخت‌های %1$s نصب نشده. لطفاً یک کیف پول سازگار نصب کنید. - - باز کردن پرداخت ممکن نیست - - همه دنبال‌شده‌های کاربر - - فهرست دنبال‌کردن پیش‌فرض - - گردآوری‌شده - - مال من @@ -485,9 +119,6 @@ - فهرست دنبال‌کردن جدید - - بسته دنبال‌کردن جدید @@ -501,110 +132,44 @@ - ویرایش فهرست - پاسخ - علامت‌گذاری خوانده‌شده - پیام‌های جدید - zap های جدید - واکنش‌ها - وقتی کسی به پست شما واکنش نشان می‌دهد اطلاع می‌دهد - %1$s به پست شما واکنش نشان داد - برای %1$s - واکنش‌های جدید - شطرنج - درباره رویدادهای بازی شطرنج اطلاع می‌دهد - %1$s چالش شطرنج شما را پذیرفت - %1$s حرکت کرد — نوبت شماست - به‌روزرسانی‌های شطرنج - پاسخ‌ها - وقتی کسی به پست شما پاسخ می‌دهد اطلاع می‌دهد + + + + + + + + + + + + + + %1$s پاسخ داد در: %1$s - پاسخ‌های جدید - - اشاره‌ها - - وقتی کسی شما را در پستی اشاره یا نقل‌قول می‌کند اطلاع می‌دهد - - %1$s شما را اشاره کرد - - اشاره‌های جدید - - تماس‌های ورودی - - اعلان‌های تماس‌های صوتی و تصویری ورودی - - تماس ورودی - - تماس صوتی ورودی… - - تماس تصویری ورودی… - - - - - تماس با %1$s - - تماس‌ها - - اعلان تماس در جریان - - قطع تماس - - پذیرفتن - - رد کردن - - - بی‌صدا - - با صدا - - دوربین روشن - - دوربین خاموش - - - بلندگو - - گوشی - - Bluetooth - - - - - - - Amethyst برای شروع تماس صوتی به دسترسی میکروفون نیاز دارد. لطفاً آن را در تنظیمات برنامه فعال کنید. - - Amethyst برای شروع تماس تصویری به دسترسی دوربین و میکروفون نیاز دارد. لطفاً آن‌ها را در تنظیمات برنامه فعال کنید. - - - - تنظیمات تماس @@ -620,33 +185,55 @@ - اتصالات به relay های صندوق ورودی شما را برای اعلان‌های بلادرنگ فعال نگه می‌دارد - اعلان‌های Amethyst فعال است - - متصل به %1$d relay صندوق ورودی - متصل به %1$d relay صندوق ورودی - - - متصل به %1$d relay - متصل به %1$d relay - - در حال اتصال به relay های صندوق ورودی… + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + سرویس اعلان همیشه فعال یک اتصال دائمی به relay های صندوق ورودی شما برای تحویل فوری اعلان‌ها حفظ می‌کند. یک اعلان مداوم نمایش می‌دهد. مصرف باتری بیشتری دارد اما اطمینان می‌دهد هیچ پیامی از دست نمی‌رود. - تقسیم اعلان‌ها بر اساس دنبال‌شده‌ها - دو تب اعلان نمایش می‌دهد — دنبال‌شده‌ها (افرادی که دنبال می‌کنید) و همه. نشانگر پیام‌خوانده‌نشده فقط برای فعالیت افرادی که دنبال می‌کنید روشن می‌شود. - نمایش پیام‌ها - پیام‌های مستقیم و گروهی را در تب اعلان‌ها نمایش دهید. غیرفعال کنید تا پیام‌ها فقط در تب پیام‌ها باشند. @@ -654,23 +241,14 @@ - پنهان - نمایش - هشدار - فیلتر اسپم - پست‌هایی از غریبه‌ها که دقیقاً ۵ بار یا بیشتر تکرار شده‌اند را پنهان می‌کند - افزودن برچسب کلاینت به رویدادهایم - وقتی فعال باشد، Amethyst یک برچسب کلاینت NIP-89 به رویدادهایی که منتشر می‌کنید اضافه می‌کند. - هشدار درباره گزارش‌ها - یک پیام هشدار نمایش می‌دهد وقتی پست‌ها یا پروفایل‌ها گزارش‌هایی از افرادی که دنبال می‌کنید دارند @@ -678,20 +256,13 @@ - پنهان‌کردن پست‌هایی که قوانین جامعه را نقض می‌کنند - وقتی جامعه یک سند قوانین NIP-9B منتشر می‌کند و یک رویداد آن را نقض کند، آن پست‌ها را از فیدهای جامعه حذف می‌کند. وقتی جامعه‌ای قوانین ساختاریافته ندارد تأثیری ندارد. - تنظیمات فیلتر - محتوای مسدود شده - هنوز هیچ کاربری را مسدود نکرده‌اید. - هیچ حسابی در این جلسه به عنوان اسپم علامت‌گذاری نشده است. - کلمه پنهانی وجود ندارد. یک کلمه را در زیر اضافه کنید تا پست‌های حاوی آن پنهان شوند. @@ -706,12 +277,9 @@ - سیاست حریم خصوصی - استانداردهای ایمنی کودکان - درباره & قانونی @@ -758,93 +326,59 @@ - بسته‌های دنبال‌کردن - خواندنی‌ها - الگوریتم‌های فید - پخش زنده - جوامع - تنظیمات رابط کاربری - ترجمه‌ها - واکنش‌ها - تنظیمات حساب - تنظیمات برنامه - منطقه خطر - بازنشانی وضعیت Marmot - وضعیت Marmot بازنشانی شد. - بازنشانی وضعیت Marmot ناموفق بود: %1$s - پخش خودکار ویدیو - %d ثانیه به عقب برگرد - %d ثانیه جلو برو - - %1$d آهنگ - %1$d آهنگ - - - +%1$d آهنگ دیگر - +%1$d آهنگ دیگر - - آپلود تصویر کاور - یک تصویر مربعی برای استفاده به عنوان آرت‌ورک این آهنگ انتخاب کنید. - آپلود فایل صوتی - یک MP3، WAV، یا FLAC انتخاب کنید. هنگام ذخیره روی سرور رسانه‌ای شما آپلود خواهد شد. - در حال آپلود کاور + صدا و انتشار. این فرآیند حتی اگر صفحه را ترک کنید ادامه خواهد داشت. - ویرایش پلی‌لیست - آپلود تصویر کاور - یک تصویر مربعی برای استفاده به عنوان آرت‌ورک این پلی‌لیست انتخاب کنید. - در حال آپلود کاور و انتشار. این فرآیند حتی اگر صفحه را ترک کنید ادامه خواهد داشت. @@ -853,21 +387,9 @@ گروه - کیف پول یافت نشد - Amethyst هیچ برنامه کیف پولی که از Nostr Wallet Connect (NWC) پشتیبانی کند پیدا نکرد. -\n\nکارهایی که می‌توانید انجام دهید: -\n\t1. بررسی پشتیبانی NWC: مطمئن شوید که برنامه کیف پول مورد نظر شما با Nostr Wallet Connect سازگار است. -\n\t2. ایجاد اتصال: به برنامه کیف پول خود بروید و یک اتصال NWC جدید ایجاد کنید. -\n\t3. اتصال به Amethyst: کیف پول شما معمولاً سه گزینه ارائه می‌دهد: -\n\t\t3.1 اتصال خودکار: دکمه‌ای برای باز کردن و اتصال خودکار به Amethyst. اگر این گزینه وجود دارد، آن دکمه را بزنید، Amethyst را باز کنید و روی صفحه جدید ذخیره کنید. -\n\t\t3.2 اتصال دستی: یک URI اتصال که می‌توانید کپی کنید و با کلیک روی آیکون paste در این صفحه مستقیماً وارد کنید. -\n\t\t3.3 کد QR: کیف پول یک کد QR ایجاد می‌کند که می‌توانید با دکمه کد QR در این صفحه آن را بخوانید. - - پخش خودکار ویدیوها هنگامی که روی صفحه نمایش داده می‌شوند - در کلیپ‌بورد کپی شد ارسال به عنوان DM @@ -876,78 +398,48 @@ - پخش این ویدیو ممکن نیست - - کدک یا فرمت روی این دستگاه پشتیبانی نمی‌شود (%1$s). سعی کنید آن را در مرورگر خود باز کنید. - - باز کردن در مرورگر - - درخواست امضا رد شد - - باز کردن لینک‌های Blossom ممکن نیست - - برنامه‌های Blossom یافت نشدند. لطفاً یک برنامه Blossom محلی نصب کنید تا این فایل را ببینید - - موضوعات بی‌صدا شده - - هیچ موضوع بی‌صدا شده‌ای وجود ندارد - اعلان‌ها - - ارسال - - نمایش درون‌برنامه‌ای - - دسته‌بندی‌ها - رمزگذاری فایل‌ها - - فایل‌ها را قبل از آپلود برای حفظ حریم خصوصی رمزگذاری کنید. برخی سرورها ممکن است فایل‌های رمزگذاری شده را در حساب‌های رایگان قبول نکنند. - - آپلود رمزگذاری شده ناموفق بود - - بسیاری از سرورها فایل‌های رمزگذاری شده را در حساب‌های رایگان قبول نمی‌کنند. می‌توانید بدون رمزگذاری مجدداً امتحان کنید. - استفاده از کدک H.265/HEVC - - کیفیت بهتر با حجم فایل کمتر، اما همه دستگاه‌ها از پخش H.265 پشتیبانی نمی‌کنند. - - تبدیل GIF به MP4 - - GIF متحرک را به ویدیوی MP4 تبدیل می‌کند تا حجم فایل کمتر و سازگاری پخش بهتری داشته باشید. - - حذف متادیتای خصوصی - - تلاش می‌کند متادیتای خصوصی را از فایل‌های رسانه‌ای پشتیبانی شده قبل از آپلود حذف کند - - متادیتا حذف نشد - حذف متادیتای خصوصی از رسانه ناموفق بود. آپلود لغو شد. - آپلود لغو شد - حذف متادیتا از AVIF ممکن نیست: %1$s - تقویم‌ها - لیست‌های تقویم - شطرنج - کیف پول + + + + + + + + + + + + + + + + + + + @@ -985,7 +477,6 @@ - کیف پول Cashu (NIP-60) @@ -1007,25 +498,14 @@ کلید خصوصی P2PK (hex) - ویرایش mint ها ذخیره تغییرات - - +%1$d بیشتر - +%1$d بیشتر - - - توصیه‌شده توسط %1$d نفر دیگر - توصیه‌شده توسط %1$d نفر دیگر - - Mint های محبوب - Mint های مطابق @@ -1039,9 +519,7 @@ - دریافت‌شده - ارسال‌شده @@ -1051,14 +529,12 @@ - یک درخواست حذف برای توصیه kind:38000 شما از %1$s منتشر کنید. relay هایی که NIP-09 را رعایت می‌کنند آن را حذف خواهند کرد. - %1$s sats در %2$s اثبات بازیابی شد. @@ -1082,28 +558,21 @@ - %1$s sat + تا %2$s sat کارمزد پرداخت شود؟ - Nutzap ناموفق بود - هیچ کلید عمومی گیرنده‌ای در یادداشت وجود ندارد - Nutzap ها عمومی هستند و این یادداشت خصوصی را فاش می‌کنند. به جای آن از Lightning zap استفاده کنید. - نمی‌توان مرجع رویداد ساخت - در انتظار پرداخت فاکتور… - در حال بررسی mint… @@ -1139,42 +608,19 @@ - آهسته - معمولی - سریع - ~۱ ساعت - ~۳۰ دقیقه - ~۱۰ دقیقه - %1$s · %2$s sat/vB · %3$s - - ارسال %1$s sats، %2$d طرفه - ارسال %1$s sats، %2$d طرفه - - - از تقسیم‌بندی %1$d طرفه این یادداشت استفاده کن - از تقسیم‌بندی %1$d طرفه این یادداشت استفاده کن - - - تقسیم بین %1$d گیرنده - تقسیم بین %1$d گیرنده - - - %1$d گیرنده‌ای که فقط آدرس Lightning دارد نادیده گرفته می‌شود — on-chain به کلید عمومی Nostr برای استخراج آدرس نیاز دارد. - %1$d گیرنده‌ای که فقط آدرس Lightning دارند نادیده گرفته می‌شوند — on-chain به کلید عمومی Nostr برای استخراج آدرس نیاز دارد. - @@ -1186,61 +632,34 @@ - بارگذاری موجودی - ساخت تراکنش - امضا - انتشار - انتشار رسید - پشتوانه زنجیره بیتکوین پیکربندی نشده است - نمی‌توان موجودی بیتکوین شما را بارگذاری کرد - نمی‌توان تراکنش را ساخت - سهم یک گیرنده زیر مقدار dust است - نمی‌توان تراکنش را امضا کرد - نمی‌توان تراکنش را منتشر کرد - پرداخت ارسال شد، اما رسید zap قابل انتشار نبود - - پرداخت ارسال شد (%1$d از %2$d رسید منتشر شد)، اما رسید بعدی قابل انتشار نبود - پرداخت ارسال شد (%1$d از %2$d رسید منتشر شد)، اما رسید بعدی قابل انتشار نبود - - وارد کردن دنبال‌شوندگان - محصول جدید - مقاله جدید - رویداد تقویمی جدید - ویرایش رویداد تقویمی - تقویم جدید - ویرایش تقویم - فید - ماه - هفته - روز @@ -1274,10 +693,6 @@ - - %1$s، %2$d رویداد - %1$s، %2$d رویداد - @@ -1304,25 +719,14 @@ - در حال وقوع - %1$s · پایان %2$s - اشتراک‌گذاری رویداد تقویم - calendar_reminders - یادآوری‌های تقویم - هشدار هنگامی که رویدادی که در آن شرکت می‌کنید در شرف شروع است. - رویداد تقویم - - تا %1$d دقیقه دیگر شروع می‌شود - تا %1$d دقیقه دیگر شروع می‌شود - @@ -1331,34 +735,23 @@ - آپلود تصویر ناموفق بود - تصویر انتخاب شده آپلود نشد. دوباره امتحان کنید یا یک آدرس URL وارد کنید. - یادآوری‌های تقویم - ارسال یادآوری‌ها - یک اعلان هنگامی که رویدادی که در آن شرکت می‌کنید در شرف شروع است ارسال می‌شود. - - %1$d دقیقه - %1$d دقیقه - - باز کردن در نقشه - باز کردن لینک @@ -1377,7 +770,6 @@ - نوار ناوبری پایین برای مرتب‌سازی بکشید. برای افزودن یا حذف یک آیتم از نوار پایین، وضعیت را تغییر دهید. با صفر آیتم، نوار پایین پنهان می‌شود. @@ -1388,21 +780,14 @@ انتخاب کنید کدام تب‌ها در صفحه خانه نمایش داده شوند. وقتی فقط یک تب فعال است، نوار تب پنهان می‌شود. - همه چیز - رابط کاربری پروفایل انتخاب کنید کدام بخش‌ها و فیدها در صفحه پروفایل کاربران نمایش داده شوند. به طور پیش‌فرض همه گزینه‌ها فعال هستند. - نشان‌های پروفایل - پیشنهادات برنامه - فید دریافت Zap - فید دنبال‌کنندگان - ردیف واکنش @@ -1420,7 +805,6 @@ - دکمه‌های پخش‌کننده ویدیو @@ -1440,7 +824,6 @@ - ویژوالایزر صدا @@ -1452,7 +835,6 @@ - تاریخ انقضا @@ -1460,70 +842,45 @@ - relay های صادره - relay های صندوق ورودی - کاربر محتوای خود را به این relay ها ارسال می‌کند - کاربر اعلان‌ها را روی این relay ها دریافت می‌کند - کاربر DM ها را روی این relay ها دریافت می‌کند - KeyPackages - relay های KeyPackage - relay هایی که KeyPackage های MLS شما در آن‌ها منتشر می‌شوند (MIP-00). سایر کاربران این KeyPackage ها را برای دعوت شما به گروه‌های چت Marmot واکشی می‌کنند. بین ۱ تا ۳ relay که رویدادهای KeyPackage را از شما قبول می‌کنند و امکان خواندن عمومی را دارند وارد کنید. - relay های متصل - لیست فعلی relay های در حال استفاده - ارسال پروفایل‌ها به relay محلی - ارسال همه رویدادهای پروفایل دریافت شده (kind 0) به relay محلی شما - relay های مورد اعتماد - relay هایی که به آن‌ها اعتماد دارید و نیازی به اتصال Tor ندارند - فیدهای relay مورد علاقه - relay هایی که اغلب به آن‌ها می‌روید تا فید جهانی‌شان را ببینید - relay های پراکسی - relay های تجمیع‌کننده که برنامه باید برای دانلود فیدهای شما از آن‌ها استفاده کند، مانند filter.nostr.wine. این جایگزین مدل outbox می‌شود و باعث می‌شود برنامه فقط به relay های موجود در لیست‌هایتان متصل شود. - relay های پخش - relay هایی که در ارسال یادداشت‌های شما به سایر relay ها تخصص دارند، مانند sendit.nosflare.com. Amethyst این relay را به همه رویدادهای جدید ساخته شده توسط شما اضافه می‌کند - relay های ایندکسر - relay هایی که در میزبانی متادیتا و لیست relay های همه تخصص دارند، مانند purplepag.es. Amethyst از این relay ها برای یافتن کاربرانی که در لیست‌های شما نیستند استفاده می‌کند. - relay‌های مسدود شده - Amethyst هرگز به این relay‌ها متصل نخواهد شد - خروجی تنظیمات relay @@ -1554,31 +911,19 @@ - رویداد اطلاعات کافی برای ساخت لینک مگنت ندارد - لیست‌های من - فیدها - هشتگ‌ها - مجموعه‌های علاقه - مکان‌ها - انجمن‌ها - لیست‌ها - الگوریتم‌های فید - همه الگوریتم‌های فید موردعلاقه - relay‌ها - الگوریتم‌های فید موردعلاقه @@ -1592,16 +937,12 @@ - پیام عمومی - اشتراک‌گذاری تصویر ممکن نیست، لطفاً بعداً دوباره امتحان کنید… - اشتراک‌گذاری ویدئو ممکن نیست، لطفاً بعداً دوباره امتحان کنید… - در حال دانلود ویدئو… @@ -1619,17 +960,11 @@ - ترجمه نکن از - زبان‌های نمایش داده شده اینجا ترجمه نخواهند شد. برای حذف یک زبان و ترجمه مجدد آن، روی آن ضربه بزنید. - ترجمه به - زبانی را که می‌خواهید محتوا به آن ترجمه شود انتخاب کنید. - تنظیمات نمایش زبان - برای هر جفت زبان ترجمه شده، انتخاب کنید کدام زبان اول نمایش داده شود. @@ -1640,9 +975,7 @@ - مکث - پخش @@ -1651,7 +984,6 @@ - این پیام در %1$s ناپدید می‌شود @@ -1666,15 +998,10 @@ - متادیتای لیست دنبال‌کردن - متادیتای لیست‌های دنبال‌کردن برای همه در Nostr قابل مشاهده است. فقط اعضای خصوصی شما رمزگذاری شده‌اند. - متادیتای بسته دنبال‌کردن - متادیتای بسته دنبال‌کردن برای همه در Nostr قابل مشاهده است و اغلب در بسیاری از وب‌سایت‌ها به عنوان کیت راه‌اندازی برای کاربران جدید منتشر می‌شود. - ویرایش بسته دنبال‌کردن @@ -1690,12 +1017,10 @@ - گسترش دادن - تلاش مجدد @@ -1706,11 +1031,8 @@ - واکنش - پست صوتی - پاسخ صوتی @@ -1732,453 +1054,44 @@ - relay‌های خروجی - برنامه‌ها - پیشنهادات برنامه - تنظیمات کاربر - هدر صوتی - آهنگ صوتی - آهنگ موسیقی - پلی‌لیست موسیقی - قسمت پادکست - برنامه پادکست - پادکست‌های تألیف شده - پادکست‌های موردعلاقه - جوایز نشان - تعاریف نشان - مجموعه نشان‌های پذیرفته شده - نشان‌های پروفایل - relay‌های مسدود شده - سرورهای Blossom - سرورهای Nests - احراز هویت Blossom - relay‌های پخش - لیست نشانک - لیست نشانک قدیمی - قرار ملاقات روزانه - تقویم - قرار ملاقات - RSVP قرار ملاقات - بازی‌های شطرنج - احراز هویت شطرنج - relay‌های موردعلاقه - چالش‌های شطرنج - پذیرش بازی شطرنج - حرکت شطرنج - پایان بازی شطرنج - پیشنهاد مساوی شطرنج - تعریف کانال - مخفی کردن پیام کانال - لیست کانال - پیام کانال - - فراداده کانال - - بی‌صدا کردن کاربر در کانال - - فایل پیام خصوصی - - پیام خصوصی - - relay های پیام خصوصی - - آگهی‌های طبقه‌بندی‌شده - - نظرات - - تعریف جامعه - - فهرست جوامع - - پست جامعه - - فهرست دنبال‌شدگان - - حذف‌ها - - پیش‌نویس‌ها - - بسته‌های ایموجی - - فهرست بسته‌های ایموجی - - چت موقت - - اتاق‌های چت موقت - - سرآیندهای فایل - - گالری پروفایل - - سرورهای فایل - - داده Blob - - سرآیندهای Blob - - داده پزشکی - - بسته‌های دنبال‌کردن - - بازنشرها (16) - - دنبال‌کردن‌های Geohash - - GiftWraps - - مشکل Git - - وصله Git - - مخزن Git - - پاسخ Git - - اهداف Zap - - دنبال‌کردن‌های هشتگ - - برجسته‌ها - - احراز هویت HTTP - - فهرست relay های فهرست‌ساز - - مقدمه ماجرا - - صحنه ماجرا - - مطالعه ماجرا - - نشانک‌های نام‌گذاری‌شده - - چت‌های زنده - - پخش‌های زنده - - Zaps - - درخواست NWC - - پاسخ NWC - - Zap های خصوصی - - درخواست Zap - - وبلاگ‌ها - - اتاق جلسه - - حضور در اتاق - - فضای جلسه - - پروفایل - - فهرست بی‌صداشدگان - - NNS - - NIP - - Nostr Connect - - وضعیت DVM - - درخواست محتوای DVM - - پاسخ محتوای DVM - - درخواست کاربر DVM - - پاسخ کاربر DVM - - OTS - - پرداخت به - - فهرست‌های افراد - - تصاویر - - تمرینات ورزشی - - پین‌ها - - نظرسنجی Zap - - نظرسنجی - - پاسخ نظرسنجی - - پیام‌های خصوصی NIP-04 - - relay های خصوصی - - relay های پروکسی - - پیام عمومی - - واکنش‌ها - - کارت تماس - - احراز هویت relay - - کشف relay - - اطلاعیه ناظر relay - - مجموعه relay - - گزارش‌ها - - بازنشرها - - حذف کاربر - - مهرها - - relay های جستجو - - وضعیت کاربر - - یادداشت‌ها - - ویرایش‌ها - - تورنت‌ها - - نظرات تورنت - - relay های مورد اعتماد - - ارائه‌دهندگان مورد اعتماد - - ویدیو (Repl) - - Shorts (Repl) - - ویدیو - - Shorts - - پیام صوتی - - پاسخ صوتی - - WakeUp - - نشانک وب - - Wiki - - - - - - - - - - - - - - - - - %1$d%% زمان فعالیت - - تنظیمات Namecoin - - - - - - - - - - - %dms - - - - - - همگام‌سازی relay - - - - - - - - - - - - - - - - - - - - - - - - - - - - مرورگر Bitcoin ‏(OTS) - - رویدادهای شما - - رویدادهای ارسال‌شده به شما - - رویدادهای قابل جستجو - - پیام‌های خصوصی - - پروفایل‌ها - - فهرست‌های outbox - - آخرین بازدید %1$s پیش - - آخرین بازدید در %1$s ‏(%2$s پیش) - - همین الان بازدید شد - - هرگز دیده نشده - - - - %1$d دقیقه - %1$d دقیقه - - - - %1$d ساعت - %1$d ساعت - - - - %1$d روز - %1$d روز - - - - %1$d هفته - %1$d هفته - - - - %1$d ماه - %1$d ماه - - - - %1$d سال - %1$d سال - - - - %1$d mint - %1$d mint - - - - %1$d فاکتور در انتظار - %1$d فاکتور در انتظار - - - - - - - - وجوه نگهداری‌شده در %1$d mint که استفاده نمی‌کنید - وجوه نگهداری‌شده در %1$d mint که استفاده نمی‌کنید - - - - - - - - - - - - - - - - %1$s sat به %2$s منتقل شد. - - - - - - - - - - - - - پخش روی دستگاه - - توقف پخش - - - - آپلود HLS @@ -2199,7 +1112,6 @@ - در حال آپلود %1$s (%2$d از %3$d) @@ -2217,32 +1129,6 @@ - تأییدیه - - - - - - - - درخواست تأییدیه - - توصیه تأییدکننده - - - مهارت تأییدکننده - - - - - - - - نشانک‌های وب - - افزودن نشانک وب - - ویرایش نشانک وب @@ -2257,7 +1143,239 @@ - %1$s از هدف %2$s sat تأمین شده + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2295,9 +1413,7 @@ - هدف جدید - درخواست ناپدید شدن @@ -2311,7 +1427,6 @@ - درخواست ناپدید شدن ارسال شد @@ -2325,22 +1440,16 @@ - تاریخچه ناپدید شدن - کاربران - رویدادها - نوع‌ها - آدرس‌های IP - تنظیمات @@ -2392,23 +1501,14 @@ - پیشنهاد بهبود متن - از یک مدل هوش مصنوعی روی دستگاه برای پیشنهاد اصلاحات متن و تغییر لحن استفاده می‌کند. - پخش‌های ردیابی‌شده - هنگام ارسال رویدادها از پخش‌کننده ردیابی‌شده استفاده کنید. پیشرفت زنده و وضعیت هر relay را در حین پخش نشان می‌دهد. - پیشنهاد اشتراک‌گذاری تمرینات - تمرینات تمام‌شده را از Health Connect (Samsung Health، Google Fit، Fitbit، Garmin…) می‌خواند و پیشنهاد اشتراک‌گذاری آن‌ها به‌عنوان پست می‌دهد. دسترسی فقط هنگام اتصال درخواست می‌شود. - تنظیمات نوشتن - ایجاد خودکار پیش‌نویس - هنگام تایپ یا خروج از یک ناحیه نوشتن با متن ارسال‌نشده، به‌طور خودکار یک رویداد پیش‌نویس ذخیره می‌کند و آن را به relay‌های صندوق خروجی خصوصی شما ارسال می‌کند. @@ -2425,9 +1525,7 @@ - بسته ایموجی جدید - ویرایش بسته ایموجی @@ -2451,45 +1549,29 @@ - بسته‌های ایموجی من - ایموجی‌ها - ایموجی‌های عمومی برای همه قابل مشاهده‌اند و در منوی واکنش و انتخابگر «:» تکمیل خودکار ظاهر می‌شوند، البته اگر این بسته در فهرست ایموجی شما باشد. - ایموجی‌های خصوصی به صورت رمزنگاری‌شده روی relay‌ها ذخیره می‌شوند و فقط برای شما قابل مشاهده‌اند. درست مانند ایموجی‌های عمومی در منوی واکنش و تکمیل خودکار «:» نمایش داده می‌شوند. - پیش‌نویس %1$d بایت است؛ این انجمن این نوع را تا %2$d بایت محدود می‌کند. - پیش‌نویس %1$d بایت است؛ این انجمن رویدادها را تا %2$d بایت محدود می‌کند. - امروز %1$d رویداد از این نوع ارسال کرده‌اید (حد مجاز %2$d). - سایت Nowhere - رویداد Nowhere - جمع‌آوری کمک مالی Nowhere - فروشگاه Nowhere - درخواست‌نامه Nowhere - پیام Nowhere - رهاسازی Nowhere - هنر Nowhere - انجمن Nowhere @@ -2507,25 +1589,14 @@ - - %1$d پیام - %1$d پیام - - - %1$d عضو - %1$d عضو - - اطلاعات گروه به‌روزرسانی شد - به‌روزرسانی ناموفق بود: %1$s - ایجاد گروه ناموفق بود: %1$s @@ -2536,13 +1607,9 @@ - خروج از گروه ناموفق بود: %1$s - در حال افزودن %1$s… - افزودن %1$s ناموفق بود: %2$s - خطای ناشناخته @@ -2551,9 +1618,7 @@ - عضو حذف شد - حذف عضو ناموفق بود: %1$s @@ -2561,42 +1626,25 @@ - دسترسی مدیریت اعطا شد - اعطای دسترسی مدیریت ناموفق بود: %1$s - دسترسی مدیریت لغو شد - لغو دسترسی مدیریت ناموفق بود: %1$s - عضو این گروه نیستید - - این پست بیش از %1$d هشتگ دارد - این پست بیش از %1$d هشتگ دارد - - - %1$d فایل پیوست شده - %1$d فایل پیوست شده - - - +%1$d\nپاسخ - +%1$d\nپاسخ - @@ -2607,36 +1655,24 @@ - شما از یک کلید عمومی استفاده می‌کنید و کلیدهای عمومی فقط خواندنی هستند. برای آپلود کردن با یک کلید خصوصی وارد شوید - شما از یک کلید عمومی استفاده می‌کنید و کلیدهای عمومی فقط خواندنی هستند. برای امضا کردن رویدادها با یک کلید خصوصی وارد شوید - رمزگشایی غیرمجاز - signer یک رمزگشایی که برای انجام این عملیات لازم است را مجاز ندانست. رمزگشایی‌های NIP-44 را در اپلیکیشن signer خود فعال کنید و دوباره امتحان کنید - signer پیدا نشد - آیا اپلیکیشن signer حذف شده؟ بررسی کنید که signer نصب شده و این حساب را دارد. از اپلیکیشن signer خارج شوید و دوباره وارد شوید اگر signer تغییر کرده است. - signer خارجی یک پاسخ عجیب برای درخواست بازگرداند. ممکن است باگی در Amethyst یا در signer وجود داشته باشد. - در حال درخواست صورتحساب… - سرویس بدهکاری پرداخت را تکمیل نکرد. - پرداخت %1$s از طریق %2$s؟ - پرداخت این صورتحساب از طریق %1$s؟ - یک مقدار معتبر برای این پیشنهاد وارد کنید. @@ -2645,13 +1681,9 @@ - یک‌بار - روزانه - هفتگی - ماهانه @@ -2677,13 +1709,11 @@ - در حال پرداخت از طریق %1$s… - پرداخت ناموفق بود @@ -2693,62 +1723,42 @@ - قابل هزینه‌کرد برای این دریافت‌کننده: %1$s sats - تراکنش: %1$s - ارسال تغییر نام - خطا - درصد اتصال‌های موفق به relay - ذخیره در گوشی - سنجاق به بالا - برداشتن سنجاق - PDF در Downloads/Amethyst ذخیره شد - ذخیره PDF ناموفق بود - هیچ اپلیکیشن دوربینی در این دستگاه پیدا نشد - برای ضبط پیام کلیک کنید و نگه دارید - خطای آپلود - آپلود پیام صوتی ناموفق بود - NIP-95 هنوز برای پیام‌های صوتی پشتیبانی نمی‌شود - آپلود صوتی ناموفق بود: %1$s - هیچ‌کدام - عمیق - بالا - خنثی @@ -2763,43 +1773,26 @@ - گفتگوی ناپایدار - گفتگوی relay - گفتگوهای relay - گفتگوهای relay گروه‌های چت هستند که توسط relay خانگی خود کنترل می‌شوند. - آن‌ها برای همه در Nostr قابل مشاهده هستند و هر کسی می‌تواند در آن‌ها شرکت کند. - آن‌ها برای جوامع باز حول موضوعات خاص عالی هستند. برخی از این گروه‌ها ناپایدار - هستند و بنابراین پیام‌های چت با گذشت زمان ناپدید می‌شوند - گروه MLS - ناوبری - شما - فیدها - ایجاد - سیستم - اشتراک‌گذاری به عنوان تصویر - اشتراک‌گذاری به عنوان آدرس تصویر - بی‌صدا کردن رشته - فعال کردن رشته @@ -2807,9 +1800,7 @@ - نشانک‌ها با موفقیت منتقل شدند - پست‌های زمان‌بندی‌شده @@ -2818,14 +1809,10 @@ - زمان‌بندی پست - لغو زمان‌بندی - پست‌های زمان‌بندی‌شده ممکن است تا دفعه بعد که اپلیکیشن را باز کنید منتشر نشوند. برای زمان‌بندی پس‌زمینه مطمئن، همیشه‌روشن را در تنظیمات → تنظیمات رابط کاربری فعال کنید. - پست‌های زمان‌بندی‌شده ممکن است تا دفعه بعد که اپلیکیشن را باز کنید منتشر نشوند. پست‌های زمان‌بندی‌شده حساب‌های دیگر در حالی که این حساب فعال است اجرا نمی‌شوند. برای زمان‌بندی پس‌زمینه مطمئن، همیشه‌روشن را در تنظیمات → تنظیمات رابط کاربری فعال کنید. @@ -2834,114 +1821,61 @@ - %1$s · در %2$s - %1$s · %2$s پیش - فردا - خروج شد - - خروج شد · %d پست زمان‌بندی‌شده حذف شد - خروج شد · %d پست زمان‌بندی‌شده حذف شد - - پست زمان‌بندی‌شده منتشر شد - پست زمان‌بندی‌شده ناموفق بود - پست‌های زمان‌بندی‌شده - اعلان‌ها هنگام انتشار یا عدم انتشار یک پست زمان‌بندی‌شده. - همین الان ارسال کن - خطا: %1$s - زمان‌بندی‌شده - در حال ارسال… - ناموفق - ارسال شد - لغو شد - - شما %d پست زمان‌بندی‌شده دارید که هنوز منتشر نشده. خروج آن را به طور دائمی حذف خواهد کرد. - شما %d پست زمان‌بندی‌شده دارید که هنوز منتشر نشده‌اند. خروج آن‌ها را به طور دائمی حذف خواهد کرد. - - - %d در صف - %d در صف - - - · %d موعد در ۱ ساعت - · %d موعد در ۱ ساعت - - - به %d relay - به %d relay - - شناسه یادداشت کپی شد - نظرسنجی‌ها - باز - بسته - نشان‌ها - جوامع - جامعه جدید - ویرایش جامعه - مدیران - relay‌ها - قوانین قابل تأیید (اختیاری) - نوع رویدادهای مجاز - متن کوتاه (1) - مقاله طولانی (30023) - پست تصویری (20) - پست ویدیویی (21) - ویدیوی کوتاه (22) - نظر جامعه (1111) @@ -2950,23 +1884,18 @@ - کاربران مسدود شده - دروازه شبکه اعتماد (اختیاری) - حداکثر اندازه رویداد کلی (اختیاری) - نشان جدید - اعطای نشان @@ -2983,7 +1912,6 @@ - نشان‌های پروفایل @@ -3007,12 +1935,9 @@ - تصاویر - تمرینات - تمرین جدید @@ -3039,87 +1964,56 @@ - دویدن - پیاده‌روی - دوچرخه‌سواری - کوه‌نوردی - شنا - قایقرانی - قدرتی - یوگا - مدیتیشن - رژیم غذایی - روزه‌داری - سرکیت - EMOM - AMRAP - برنامه‌ها برنامه‌ها - nApplets - - nSites - - - مرورگر - بارگذاری از طریق Tor. برای استفاده از وب باز ضربه بزنید. - - بارگذاری از طریق وب باز. برای استفاده از Tor ضربه بزنید. - موردعلاقه‌ها - - - - برنامه‌های موردعلاقه - - - افزودن به موردعلاقه‌ها - - حذف از موردعلاقه‌ها - از طریق Tor بارگذاری می‌شود. - - از طریق وب باز بارگذاری می‌شود. - در relay‌ها منتشر شد - یک فایل بارگذاری شد - پرداختی انجام شد - آن برنامه هنوز بارگذاری نشده. لحظه‌ای دیگر دوباره امتحان کنید. - اخیر + + + + + + + + + + + مجوزهای nApplet @@ -3136,51 +2030,30 @@ - nApplet %1$s… Shell - هویت - اقدامات صفحه‌کلید - relay‌ها - ذخیره‌سازی - پرداخت‌ها - شبکه - بارگذاری‌ها پرسیدن اینکه کدام قابلیت‌ها در دسترس هستند - خواندن کلید عمومی شما - اتصال میانبرهای صفحه‌کلید - خواندن، امضا و انتشار رویدادهای شما - ذخیره‌سازی خصوصی اختصاصی - پرداخت فاکتورهای Lightning - دریافت منابع وب و Blossom - بارگذاری فایل‌ها به سرور رسانه‌ای شما - تم - اعلان‌ها - پیام‌رسانی - تطبیق رنگ‌های برنامه شما - نمایش اعلان‌ها به شما - تبادل پیام با سایر nApplet ها قابلیت: %1$s @@ -3188,34 +2061,19 @@ - این nApplet می‌خواهد کلید عمومی شما را بخواند. - این nApplet می‌خواهد پروفایل و داده‌های حساب شما را بخواند. - این nApplet می‌خواهد یک رویداد kind %1$d را به عنوان شما امضا و منتشر کند. - این nApplet می‌خواهد یک رویداد kind %1$d را به عنوان شما امضا و منتشر کند: - این nApplet می‌خواهد یک رویداد رمزگذاری شده را به عنوان شما ارسال کند. - این nApplet می‌خواهد رویدادها را از relay‌های شما بخواند. - این nApplet می‌خواهد از ذخیره‌سازی خصوصی خود استفاده کند. این nApplet می‌خواهد یک فاکتور Lightning پرداخت کند. - این nApplet می‌خواهد یک منبع وب دریافت کند. - این nApplet می‌خواهد یک فایل به سرور رسانه‌ای شما بارگذاری کند. - این nApplet می‌خواهد به شما اعلان نشان دهد. - این سایت می‌خواهد یک رویداد kind %1$d را با کلید Nostr شما امضا کند. - - این nApplet می‌خواهد یک فاکتور Lightning به مبلغ %1$d sat پرداخت کند. - این nApplet می‌خواهد یک فاکتور Lightning به مبلغ %1$d sat پرداخت کند. - @@ -3229,35 +2087,25 @@ - ویدیوهای کوتاه - گفتگوهای عمومی - بسته‌های دنبال‌کردن - پخش زنده - Nests - دست بلند کردن - پایین آوردن دست - بی‌صدا - باصدا - ارسال پیام انجام نشد @@ -3266,25 +2114,17 @@ - قطع میکروفون - باصدا کردن میکروفون - Nests - پخش صدا را هنگام باز بودن اتاق ادامه می‌دهد. - Nest متصل شد - Nest — زنده - ضربه بزنید تا بازگردید. - توقف @@ -3296,28 +2136,17 @@ - دست بلند کرد - به صحنه آمد - در حال صحبت است - به عنوان مخاطب پیوست - nest را ترک کرد - ترک کردن - اتاق به عنوان بسته علامت‌گذاری نشد. در حال خروج — اتاق به صورت خودکار بسته خواهد شد. - - %1$d شنونده - %1$d شنونده - @@ -3337,20 +2166,14 @@ - ساکت کردن این سخنران - بازگرداندن این سخنران - دنبال کردن - لغو دنبال کردن - بی‌صدا - باصدا @@ -3378,7 +2201,6 @@ - ذخیره لیست سرور nest انجام نشد. دوباره امتحان کنید. @@ -3392,46 +2214,30 @@ - سرورهای Nest - سرورهای شما - به عنوان یک رویداد قابل جایگزینی kind-10112 ذخیره می‌شود تا کلاینت‌های دیگر بتوانند ترجیح شما را بخوانند. - سرورهای پیشنهادی - پیشنهادات داخلی که می‌توانید با یک ضربه به لیستتان اضافه کنید. - ویدیوها - موسیقی - پلی‌لیست‌ها - قسمت‌ها - پادکست‌ها - - %1$d قسمت - %1$d قسمت - - آهنگ موسیقی جدید - پلی‌لیست جدید @@ -3449,10 +2255,6 @@ - - %1$d آهنگ - %1$d آهنگ - @@ -3462,39 +2264,25 @@ - سنجاق کردن به پروفایل - برداشتن سنجاق از پروفایل - لیست نشانک جدید - متادیتای لیست نشانک - مجموعه‌های هشتگ - مجموعه علایق جدید پروفایل چت جدید: -ابتدا مقصد پیام را وارد کنید -آپلود ممکن نیست -پیام خصوصی -چت‌های عمومی برای همه در Nostr قابل مشاهده هستند و هر کسی می‌تواند در آن‌ها شرکت کند. آن‌ها برای جوامع باز حول موضوعات خاص عالی هستند. مدیریت می‌تواند با حذف پست‌ها در relay های مربوطه کنترل شود -بین ۱ تا ۳ relay که این گروه را میزبانی می‌کنند وارد کنید. کلاینت‌های Nostr از این تنظیم برای دانلود پیام‌ها و ارسال پیام‌های شما استفاده می‌کنند. -Relay ها -متادیتای چت عمومی -یک پیام بنویسید… diff --git a/amethyst/src/main/res/values-fi-rFI/strings.xml b/amethyst/src/main/res/values-fi-rFI/strings.xml index 1d48d6ad81..67e43bf43a 100644 --- a/amethyst/src/main/res/values-fi-rFI/strings.xml +++ b/amethyst/src/main/res/values-fi-rFI/strings.xml @@ -1,116 +1,12 @@ - - Tässä julkaisussa on enemmän kuin %1$d aihetunniste - Tässä julkaisussa on enemmän kuin %1$d aihetunnistetta - - - %1$d resurssi paketoitu - %1$d resurssia paketoitu - - - +%1$d\nvastaus - +%1$d\nvastausta - - Roskaposti - Tältä relay-palvelimelta tulevien roskapostitustapahtumien määrä - Väärennös - Laiton toiminta - Pyydä poistoa - Kirjaudu sisään yksityisellä avaimella viestehin vastaamiseksi - Kirjaudu sisään yksityisellä avaimella tehostaaksesi viestejä - Kirjaudu sisään yksityisellä avaimella tykätäksesi viesteistä - Zap-määrää ei ole asetettu. Pidä painiketta pohjassa vaihtaaksesi sitä - Kirjaudu sisään yksityisellä avaimella Zapien lähettämiseksi - Kirjaudu sisään yksityisellä avaimella voidaksesi seurata - Kirjaudu sisään yksityisellä avaimella seuraamisen lopettamiseksi - Käytät julkista avainta ja julkiset avaimet ovat vain luku -tilassa. Kirjaudu yksityisellä avaimella, jotta voit piilottaa sanan tai lauseen - Käytät julkista avainta ja julkiset avaimet ovat vain luettavissa. Kirjaudu yksityisellä avaimella, jotta voit näyttää sanan tai lauseen - Käytät julkista avainta, ja julkiset avaimet ovat vain luku -tilassa. Kirjaudu sisään yksityisellä avaimella voidaksesi ladata tiedostoja - Käytät julkista avainta, ja julkiset avaimet ovat vain luku -tilassa. Kirjaudu sisään yksityisellä avaimella voidaksesi allekirjoittaa tapahtumia - Luvaton salauksen purku - Allekirjoittaja ei sallinut salauksen purkua, joka vaaditaan tämän toiminnon suorittamiseen. Ota NIP-44-salauksen purku käyttöön allekirjoittajasovelluksessasi ja yritä uudelleen - Allekirjoittajaa ei löydy - Onko allekirjoittajasovellus poistettu? Tarkista, että allekirjoittaja on asennettu ja sillä on tämä tili. Kirjaudu ulos ja uudelleen sisään, jos allekirjoittajasovellus on vaihtunut. - Ulkoinen allekirjoittaja palautti pyyntöön nähden odottamattoman tietopaketin. Kyseessä voi olla vika Amethystissä tai allekirjoittajassa. - Zapit - Tehosta tehostettu muokkaus #%1$s - Ehdota muokkausta - Lisää - Virhe virhesanomaa tulkittaessa - Profiili - Turvallisuussuodattimet - Pyydetään laskua… - Veloituspalvelu ei suorittanut maksua loppuun. - Maksetaanko %1$s kohteella %2$s? - Maksetaanko tämä lasku kohteella %1$s? - Anna kelvollinen summa tälle tarjoukselle. - Kertaluonteinen - Päivittäinen - Viikoittainen - Kuukausittainen - Maksa - Maksetaan kohteella %1$s… - Maksu epäonnistui - Käytettävissä tälle vastaanottajalle: %1$s sats - Tapahtuma: %1$s - "Esikatsele kortin kuvaa kohteelle %1$s" - Kuvaus - Mitä mielessä? - Kirjoita viesti… - Lähetä Tallenna - Lähetä - Luo Nimeä uudelleen - Peruuta - Virhe - Virheet - Prosenttiosuus onnistuneista yhteyksistä relay-palvelimelle - Tallenna puhelimeen - Kuva tallennettu galleriaan - Videon lataus on aloitettu… - Median lataus on aloitettu… - Kiinnitä ylös - Irrota kiinnitys - Kuvan tallennus epäonnistui - Video tallennettu puhelimen videogalleriaan - Videon tallentaminen epäonnistui - PDF tallennettu kansioon Lataukset/Amethyst - PDF:n tallentaminen epäonnistui - Tässä laitteessa ei ole kamerasovellusta - Paina ja pidä pohjassa tallentaaksesi ääniviesti - Latausvirhe - Ääniviesti epäonnistui ladata - NIP-95 ei tue ääniviestiä vielä - Ääniviesti epäonnistui: %1$s - Ei mitään - Syvä - Korkea - Neutraali - Käyttäjällä ei ole asetettuna Lightning-osoitetta satsien vastaanottamiseksi - "vastaa tähän.. " - Tunnetut - Uudet pyynnöt - Estetyt käyttäjät - Uudet keskustelut - Keskustelut - Lisää vaihtoehtoja - Näytä yksityisen avaimen QR-koodi - Näytä salatun yksityisen avaimen QR-koodi - Seuraa - Seuraa takaisin - Piilota salasana - Virheellinen avain - Virheellinen avain: %1$s - Salasana vaaditaan - Avain on pakollinen - Nimi vaaditaan @@ -119,157 +15,7 @@ Uusi chat-profiili: - Poistu - Lopeta seuraaminen - Katoava chat - relay-chat - relay-chatit - relay-chatit ovat chat-ryhmiä, joita hallinnoi niiden kotipalvelin. - Ne ovat näkyvissä kaikille Nostrissa ja kuka tahansa voi osallistua niihin. - Ne sopivat hyvin avoimiin yhteisöihin tiettyjen aiheiden ympärille. Osa näistä ryhmistä on katoavia, - joten chat-viestit häviävät ajan myötä - Julkinen keskustelu - MLS-ryhmä - Julkisen chatin metatiedot - Julkiset chatit ovat näkyvissä kaikille Nostrissa ja kuka tahansa - voi osallistua niihin. Ne sopivat hyvin avoimiin yhteisöihin tiettyjen aiheiden ympärille. - Moderointia voidaan hallita poistamalla julkaisuja sen relay-palvelimilta - relay-palvelimet - Syötä 1–3 relay-palvelinta, jotka isännöivät tätä ryhmää. - Nostr-asiakkaat käyttävät tätä asetusta tietääkseen, mistä ladata viestejä ja mihin lähettää viestisi. - Poista - ei koskaan - nyt - t - pv - Alastomuus - Loukkaava kielenkäyttö / vihapuhe - Varmuuskopioi Avaimet - Yksityisen avaimen salaaminen epäonnistui - Salainen avain (nsec) kopioitu leikepöydälle - Kopioi salainen avain - Tunnistautuminen epäonnistui - Biometriikka ei pystynyt tunnistamaan tämän puhelimen omistajaa - Biometriikka ei pystynyt tunnistamaan tämän puhelimen omistajaa. Virhe: %1$s - Viestin teksti kopioitu leikepöydälle - Käyttäjän @npub kopioitu leikepöydälle - Viestin tunniste (@note1) kopioitu leikepöydälle - "<Ei voitu purkaa yksityisviestiä>\n\nSinut mainittiin yksityisessä/salatussa keskustelussa kohteiden %1$s ja %2$s välillä." - Tilit - Navigoi - Sinä - Syötteet - Luo - Järjestelmä - Takaisin - Jaa selaimen linkki - Jaa - Jaa kuvana - Jaa kuvan URL:na - Viestin tunniste - Poista - Vaimenna ketju - Poista ketjun vaimennus - - Estä - Kirjanmerkit - Kirjanmerkit siirretty onnistuneesti - Luonnokset - Ajastetut julkaisut - Ajasta julkaisu - Peruuta ajastus - Ajastetut julkaisut eivät välttämättä lähetä ennen kuin avaat sovelluksen uudelleen. Ota jatkuvat ilmoitukset käyttöön Asetukset → Käyttöliittymäasetukset -kohdasta luotettavaa taustajulkaisua varten. - Ajastetut julkaisut eivät välttämättä lähetä ennen kuin avaat sovelluksen uudelleen. Muiden tilien ajastetut julkaisut eivät lähde tämän tilin ollessa aktiivinen. Ota jatkuvat ilmoitukset käyttöön Asetukset → Käyttöliittymäasetukset -kohdasta luotettavaa taustajulkaisua varten. - %1$s · %2$s kuluttua - %1$s · %2$s sitten - Huomenna - Kirjauduttu ulos - - Kirjauduttu ulos · %d ajastettu julkaisu poistettu - Kirjauduttu ulos · %d ajastettua julkaisua poistettu - - Ajastettu julkaisu lähetetty - Ajastettu julkaisu epäonnistui - Ajastetut julkaisut - Ilmoitukset, kun ajastettu julkaisu lähetetään tai epäonnistuu. - Lähetä nyt - Virhe: %1$s - Ajastettu - Lähetetään… - Epäonnistui - Lähetetty - Peruutettu - - Sinulla on %d ajastettu julkaisu, jota ei ole vielä lähetetty. Uloskirjautuminen poistaa sen pysyvästi. - Sinulla on %d ajastettua julkaisua, joita ei ole vielä lähetetty. Uloskirjautuminen poistaa ne pysyvästi. - - - %d jonossa - %d jonossa - - - · %d erääntyvä tunnissa - · %d erääntyvää tunnissa - - - %d relaylle - %d relaylle - - Muistiinpanon tunniste kopioitu - Äänestykset - Avoimet - Suljetut - Merkit - Yhteisöt - Uusi yhteisö - Muokkaa yhteisöä - Moderaattorit - Relayt - Todennettavat säännöt (valinnainen) - Sallitut tapahtumatyypit - Lyhyt teksti (1) - Pitkä artikkeli (30023) - Kuvajulkaisu (20) - Videojulkaisu (21) - Lyhyt video (22) - Yhteisökommentti (1111) - Estetyt käyttäjät - Luottamusverkon portti (valinnainen) - Tapahtuman yleinen enimmäiskoko (valinnainen) - Uusi merkki - Myönnä merkki - Profiilin merkit - Kuvat - Harjoitukset - Uusi harjoitus - Juoksu - Kävely - Pyöräily - Vaellus - Uinti - Soutu - Voimaharjoittelu - Jooga - Meditaatio - Ruokavalio - Paasto - Kiertoharjoittelu - Sovellukset Sovellukset - Selain - Ladataan Torin kautta. Napauta käyttääksesi avointa verkkoa. - Ladataan avoimen verkon kautta. Napauta käyttääksesi Toria. - Suosikit - Suosikkisovellukset - Lisää suosikkeihin - Poista suosikeista - Latautuu Torin kautta. - Latautuu avoimen verkon kautta. - Julkaistu relayhin - Tiedosto ladattu - Maksu suoritettu - Sovellusta ei ole vielä ladattu. Yritä hetken kuluttua uudelleen. - Viimeisimmät nApplet-oikeudet Ei vielä nApplet-oikeuksia Napplet-sovelluksille myöntämäsi oikeudet näkyvät täällä. @@ -279,46 +25,11 @@ Komentotulkki - Henkilöllisyys - Näppäimistötoiminnot - Relayt - Tallennus - Maksut - Verkko - Lataukset Kysy, mitkä ominaisuudet ovat käytettävissä - Lue julkinen avaimesi - Sido näppäimistöoikotiet - Lue, allekirjoita ja julkaise tapahtumiasi - Oma yksityinen tallennus - Maksa Lightning-laskuja - Hae web- ja Blossom-resursseja - Lataa tiedostoja mediapalvelimellesi - Teema - Ilmoitukset - Viestintä - Sovita sovelluksesi värit - Näytä sinulle ilmoituksia - Vaihda viestejä muiden napplet-sovellusten kanssa Ominaisuus: %1$s - Tämä nApplet haluaa lukea julkisen avaimesi. - Tämä nApplet haluaa lukea profiilisi ja tilitietosi. - Tämä nApplet haluaa allekirjoittaa ja julkaista kind %1$d -tapahtuman puolestasi. - Tämä nApplet haluaa allekirjoittaa ja julkaista kind %1$d -tapahtuman puolestasi: - Tämä nApplet haluaa lähettää salatun tapahtuman puolestasi. - Tämä nApplet haluaa lukea tapahtumia relayistasi. - Tämä nApplet haluaa käyttää yksityistä tallennustaan. Tämä nApplet haluaa maksaa Lightning-laskun. - Tämä nApplet haluaa hakea verkkoresurssin. - Tämä nApplet haluaa ladata tiedoston mediapalvelimellesi. - Tämä nApplet haluaa näyttää sinulle ilmoituksia. - Tämä sivusto haluaa allekirjoittaa kind %1$d -tapahtuman Nostr-avaimellasi. - - Tämä nApplet haluaa maksaa Lightning-laskun, jonka arvo on %1$d sat. - Tämä nApplet haluaa maksaa Lightning-laskun, jonka arvo on %1$d sats. - - Lyhytvideot - Julkiset keskustelut - Seuraajapaketit - Suoralähetykset - Nosta käsi - Laske käsi - Mykistä - Poista mykistys - Viestin lähetys epäonnistui - Mykistä mikrofoni - Poista mykistys - Pitää äänen toistossa huoneen ollessa auki. - Nest yhdistetty - Palaa napauttamalla. - Lopeta - nosti kätensä - astui lavalle - puhuu - liittyi yleisönä - poistui nestistä - Poistu - Huonetta ei voitu merkitä suljetuksi. Poistutaan silti — huone sulkeutuu automaattisesti. - - %1$d kuuntelija - %1$d kuuntelijaa - - Hiljennä tämä puhuja - Palauta tämä puhuja - Seuraa - Lopeta seuraaminen - Mykistä - Poista mykistys - Nest-palvelinluettelon tallennus epäonnistui. Yritä uudelleen. - Nest-palvelimet - Omat palvelimesi - Tallennetaan kind-10112-korvattavana tapahtumana, jotta muut asiakkaat voivat lukea asetuksesi. - Suositellut palvelimet - Sisäänrakennettuja ehdotuksia, jotka voit lisätä listaasi yhdellä napautuksella. - Videot - Musiikki - Soittolistat - Jaksot - Podcastit - - %1$d jakso - %1$d jaksoa - - Uusi musiikkikappale - Uusi soittolista - - %1$d kappale - %1$d kappaletta - - Lisää julkisiin kirjanmerkkeihin - Poista julkisista kirjanmerkeistä - Kiinnitä profiiliin - Irrota profiilista - Uusi kirjanmerkkilistat - Kirjanmerkkilistaston metatiedot - Hashtag-kokoelmat - Uusi mielenkiintokokoelma - Nimeä uudelleen - Tee yksityiseksi: kääri muistiinpano lahjapaketiksi vain ilmoitetuille käyttäjille - Tee julkiseksi - Vastaukset yksityiseen muistiinpanoon pysyvät aina yksityisinä - Näkyvissä käyttäjälle Ei vastaanottajia vielä: vain sinä voit nähdä tämän muistiinpanon. Lisää henkilöitä jakaaksesi sen. Lisää Poista käyttäjä ilmoituksista Etsi ja lisää ilmoitettava käyttäjä - Kirjanmerkkilistaston metatiedot ovat kaikkien Nostr-käyttäjien nähtävissä. Vain yksityiset jäsenesi on salattu. - Siirrä julkiseksi - Siirrä yksityiseksi - Lataa & lähetä zap - Lähetä zap - Lataa %1$s sat kohteeseen %2$s ja zappaa %3$s %4$s sat · maksu ≈ %5$s sat - Vaihtoehto %s - Yksi valinta - Useita valintoja - Ei voi äänestää - Äänestys on suljettu uusilta ääniltä - Vain yksi ääni käyttäjää kohti tällä äänestystyypillä - Äänestyksen luojat eivät voi äänestää omissa äänestyksissään. - Mitä tämä tarkoittaa? - Tämä sisältö on sama kuin viestin julkaisuhetkellä - Tämä sisältö on muuttunut. Kirjoittaja ei ehkä ole nähnyt tai hyväksynyt muutosta - Lisää mediaa - Lisää kuva - Lisää video - Lisää dokumentti - Tiedostopalvelin - Valitse palvelin, jolle tiedosto ladataan - Mediapalvelimet Aseta haluamasi median latauspalvelimet. Suositellut mediapalvelimet Amethystin oletusluettelo. Voit lisätä ne yksitellen tai lisätä koko luettelon. - Maksukohteet - Lisää maksuosoitteet eri verkkoihin (esim. bitcoin, lightning, ethereum). - Sovellusta, joka käsittelee tämän maksun, ei löydy. Asenna yhteensopiva lompakko. - Sovellusta, joka käsittelee %1$s-maksuja, ei ole asennettu. Asenna yhteensopiva lompakko. - Maksun avaaminen epäonnistui - Tietosuoja-asetukset - Kaikki seuraajat - Kaikki seurattavat käyttäjät - Oletus seurauslista - Ympärilläni - Maailmanlaajuinen - Kuratoitu - Omani - Mykistä lista - Uusi seurauslista - Uusi seurauslista-paketti - Muokkaa listaa - Oletusportti on 9050 - Orbot Socks-portti - Aktiivinen Tor-moottori - Käytä sisäistä versiota tai Orbotia - Tor/Yksityisyysasetukset - Muokkaa kaikkia alla olevia asetuksia nopeasti - Onion-URL/Relays - Käytä Toria kaikille .onion-osoitteille - Pakota Tor lähettämään ja vastaanottamaan DM-viestejä - Epäluotetut Relays - Pakota Tor outbox/inbox-relayille - Luotetut Relays - Pakota Tor kaikille listoissasi oleville relayille - Profiilikuvat - Pakota Tor profiilikuvia ladattaessa - URL-esikatselut - Pakota Tor URL-esikatseluja ladattaessa - Kuvat - Pakota Tor kuvia ladattaessa - Videot - Pakota Tor videoita ladattaessa - Rahansiirrot - Pakota Tor zap-, Lightning- ja Cashu-siirroissa - Nostr-osoitteen vahvistus - Pakota Tor NIP-05-osoitteita vahvistettaessa - Median lataukset - Pakota Tor sisältöä ladattaessa palvelimelle - Sisäinen - Pois - Perus - Oletus - Kaikki paitsi media - Täysi yksityisyys - Mukautettu - Käytä Toria kun palvelin sitä vaatii - Piilota IP-osoitteesi satunnaisilta relayilta - Piilota IP-osoitteesi kaikkialta paitsi kuvilta ja videoilta - Piilota IP-osoitteesi kaikissa yhteyksissä - Tee omasi - Yksityisviestit - Ilmoittaa sinulle, kun yksityinen viesti saapuu - Saapuneet Zapit - Ilmoittaa sinulle, kun joku zappaa sinua - Lähettäjä: %1$s - saaja: %1$s - Vastaa - Merkitse luetuksi - Uusia viestejä - Uusia zappeja - Reaktiot - Ilmoittaa kun joku reagoi julkaisuusi - %1$s reagoi julkaisuusi - kohteelle %1$s - Uusia reaktioita - Shakki - Ilmoittaa shakkilapelitapahtumista - %1$s hyväksyi shakkihaasteesi - %1$s siirsi — sinun vuorosi - Shakkipäivitykset - Vastaukset - Ilmoittaa kun joku vastaa julkaisuusi %1$s vastasi kohteessa: %1$s - Uusia vastauksia - Maininnat - Ilmoittaa kun joku mainitsee tai siteeraa sinua julkaisussa - %1$s mainitsi sinut - Uusia mainintoja @@ -542,36 +81,6 @@ - Saapuvat puhelut - Ilmoitukset saapuvista ääni- ja videopuheluista - Saapuva puhelu - Saapuva äänipuhelu… - Saapuva videopuhelu… - Puhelu: %1$s - Puhelut - Käynnissä olevan puhelun ilmoitus - Lopeta puhelu - Hyväksy - Hylkää - Mykistä - Poista mykistys - Kamera päällä - Kamera pois - Kaiutin - Kuuloke - Amethyst tarvitsee mikrofonin käyttöoikeuden äänipuhelun aloittamiseksi. Ota se käyttöön sovelluksen asetuksissa. - Amethyst tarvitsee kameran ja mikrofonin käyttöoikeuden videopuhelun aloittamiseksi. Ota ne käyttöön sovelluksen asetuksissa. - Puheluasetukset - Pitää yhteydet inbox-relayihisi aktiivisina reaaliaikaisia ilmoituksia varten - Amethyst-ilmoitukset aktiiviset - - Yhdistetty %1$d inbox-relayhin - Yhdistetty %1$d inbox-relayhin - - - Yhdistetty %1$d relayhin - Yhdistetty %1$d relayhin - - Yhdistetään inbox-relayihin… Jatkuvasti päällä oleva ilmoituspalvelu Pitää pysyvän yhteyden inbox-relayihisi välittömän ilmoituksen toimitusta varten. Näyttää jatkuvan ilmoituksen. Kuluttaa enemmän akkua, mutta varmistaa että et koskaan missaa viestiä. - Jaa ilmoitukset seurattavien mukaan - Näyttää kaksi ilmoitusvälilehteä — Seuratut (seuraamasi henkilöt) ja Kaikki. Lukemattomien indikaattori hehkuu vain seuraamiesi henkilöiden toiminnasta. - Näytä viestit - Sisällytä suorat viestit ja ryhmäviestit Ilmoitukset-välilehdelle. Poista käytöstä, jos haluat pitää viestit vain Viestit-välilehdellä. - Ilmoitus: - Tänään - Piilota - Näytä - Varoita - Suodata roskaposti - Piilottaa tuntemattomilta tulleet julkaisut, jotka ovat olleet täsmälleen samat 5 kertaa tai useammin - Lisää asiakastunniste tapahtumiin - Kun käytössä, Amethyst lisää NIP-89-asiakastunnisteen julkaisemiisi tapahtumiin. - Varoita ilmoituksista - Näyttää varoitusviestin kun julkaisuilla tai profiileilla on ilmoituksia seuraamiltasi henkilöiltä - Piilota yhteisön sääntöjä rikkovat julkaisut - Poistaa julkaisut yhteisön syötteistä, kun yhteisö julkaisee NIP-9B-sääntöasiakirjan ja tapahtuma ei läpäise sitä. Ei vaikutusta yhteisöissä, joilla ei ole rakenteellisia sääntöjä. - Suodatusasetukset - Estetty sisältö - Et ole estänyt yhtään käyttäjää. - Yhtään tiliä ei ole merkitty roskapostiksi tässä istunnossa. - Ei piilotettuja sanoja. Lisää sana alla piilottaaksesi sen sisältävät julkaisut. - Ei valittu reaktiotyyppejä. Pidä pitkään painettuna vaihtaaksesi. - Lue releestä - Kirjoita releeseen - Tähän relayhin lähetettyjen tavujen määrä, mukaan lukien suodattimet ja tapahtumat - Tästä relaysta vastaanotettujen tavujen määrä, mukaan lukien suodattimet ja tapahtumat - Tietosuojakäytäntö - Lasten turvallisuusstandardit - Tietoja & oikeudelliset - Cashu-tunnus - Ei Lightning-osoitetta asetettuna - Releet - Seuraajapaketit - Luettavaa - Syötealgoritmit - Markkinapaikka - Livestreemit - Yhteisöt - Keskustelut - Herkkä sisältö - Lisää herkän sisällön varoitus ennen tämän sisällön näyttämistä - Käyttöliittymäasetukset Sovelluksen asetukset - Käännökset - Reaktiot - Asetukset - Tiliasetukset - Sovelluksen asetukset - Vaara-alue - Nollaa Marmot-tila - Marmot-tila nollattu. - Marmot-tilan nollaus epäonnistui: %1$s - Aina - Ei-mitattu WiFi - Ei koskaan - Täydellinen - Yksinkertaistettu - Suorituskyky - Klassinen - Moderni - Järjestelmä - Vaalea - Tumma - Teema - Kuvan esikatselu - Videon toisto - Toista videot automaattisesti - URL-esikatselu - Immersiivinen vieritys - Piilota navigointipalkit vieritettäessä - Käyttöliittymätila - Valitse julkaisun tyyli - Profiilegalleriatyyli - Valitse galleriatyyli - Roskapostittajat - Ääni pois päältä. Napsauta palauttaaksesi äänet - Ääni päällä. Napsauta vaimentaaksesi - Siirry %d sekuntia taaksepäin - Siirry %d sekuntia eteenpäin - Sijaintiin rajattu julkaisu - Vain sijainnin seuraajat näkevät sen. Yleiset seuraajasi eivät näe sitä. - - %1$d kappale - %1$d kappaletta - - - +%1$d kappale lisää - +%1$d kappaletta lisää - - Lataa kansikuva - Valitse neliönmuotoinen kuva tämän kappaleen kansitaiteeksi. - Lataa äänitiedosto - Valitse MP3, WAV tai FLAC. Se ladataan mediapalvelimellesi tallennuksen yhteydessä. - Ladataan kansikuvaa ja ääntä sekä julkaistaan. Tämä jatkuu, vaikka poistuisit näytöltä. - Muokkaa soittolistaa - Lataa kansikuva - Valitse neliönmuotoinen kuva tämän soittolistan kansitaiteeksi. - Ladataan kansikuvaa ja julkaistaan. Tämä jatkuu, vaikka poistuisit näytöltä. Julkinen Ryhmä Yksityinen - Aihe - Ei voi ladata - Lisää ensin viestin kohde - Lompakkoa ei löydy - Amethyst ei löytänyt yhtään lompakkosovellusta, joka tukee Nostr Wallet Connect (NWC) -toimintoa. -\n\nMitä voit tehdä: -\n\t1. Tarkista NWC-tuki: Varmista, että haluamasi lompakkosovellus on yhteensopiva Nostr Wallet Connectin kanssa. -\n\t2. Luo yhteys: Siirry lompakkosovellukseesi ja luo uusi NWC-yhteys. -\n\t3. Linkitä Amethystiin: Lompakkosi tarjoaa yleensä kolme vaihtoehtoa: -\n\t\t3.1 Automaattinen linkitys: Painike, joka avaa Amethystin ja yhdistää automaattisesti. Jos näet sen, paina painiketta, avaa Amethyst ja tallenna uudella näytöllä. -\n\t\t3.2 Manuaalinen linkitys: YhteysURI, jonka voit kopioida ja liittää tämän näytön liitä-kuvakkeella. -\n\t\t3.3 QR-koodi: Lompakko luo QR-koodin, jonka voit lukea tämän näytön QR-koodipainikkeella. - - Tumma, vaalea tai järjestelmäteema - Lataa kuvat ja GIF-animaatiot automaattisesti - Toista videot ja GIF-animaatiot automaattisesti - Toista videot automaattisesti, kun ne näkyvät ruudulla - Näytä URL-esikatselut - Kopioi leikepöydälle - Kopioitu leikepöydälle - Jaa tai tallenna Lähetä DM-viestinä - Media lisätty - Media lisätty profiilegalleriaasi - Zapin lähettäminen ei onnistunut - Lightning asetukset puuttuvat - Käyttäjällä %1$s ei ole Lightning-osoitetta määritettynä vastaanottamaan satseja - Virhe avattaessa allekirjoitussovellusta - Allekirjoittajasovellusta ei löytynyt. Tarkista, että sovellusta ei ole poistettu - Videota ei voi toistaa - Koodekkia tai muotoa ei tueta tällä laitteella (%1$s). Yritä avata se selaimessa. - Avaa selaimessa - Allekirjoituspyyntö hylätty - Varmista, että allekirjoittajasovellus on valtuuttanut tämän tapahtuman - Ei löytynyt lompakkoja Lightning-laskun maksamiseksi (käyttäjä: %1$s). Asenna Lightning-lompakko zapatäksesi - Ei löytynyt lompakkoja Lightning-laskun maksamiseksi. Asenna Lightning-lompakko zapatäksesi - Blossom-linkkejä ei voi avata - Blossom-sovelluksia ei löydetty. Asenna paikallinen Blossom-sovellus nähdäksesi tämän tiedoston - Piilotetut sanat - Mykistetyt ketjut - Ei mykistettyjä ketjuja - Profiilikuva - Näytä profiilikuvat - Laskua ei voitu maksaa - Ei voitu perua - Cashu epäonnistui lunastuksessa - Paja (mint) antoi seuraavan virheilmoituksen: %1$s - Cashu vastaanotettu - %1$s sats lähetettiin lompakkoosi. (Maksut: %2$s sats) - Yhteensopivaa Cashu-lompakkoa ei löytynyt järjestelmästä - Laskua ei voi noutaa vastaanottimen palvelimilta - Lompakkosi yhteyden tarjoaja palautti seuraavan virheen: %1$s - Ei voitu koota LNUrlia Lightning-osoitteesta \"%1$s\". Tarkista käyttäjän asetukset - Laskun hakeminen epäonnistui kohteesta %1$s: %2$s - Virhe JSON:n jäsentämisessä kohteesta %1$s. Tarkista käyttäjän lightning-asetukset - Takaisinkutsun URL:ää ei löydy kohteen %1$s vastauksesta - Virheellinen laskun määrä (%1$s satsia) kohteesta %2$s. Sen olisi pitänyt olla %3$s - Ei voitu luoda Lightning-laskua ennen zapin lähettämistä. Vastaanottajan Lightning-lompakko lähetti seuraavan virheen: %1$s - Vain luku -käyttäjä - Ei reaktioita asetettu - Ilmoitukset - Toimitus - Sovelluksen sisäinen näyttö - Kategoriat - Viesti käyttäjältä %1$s - Hei %1$s, onko tämä vielä saatavilla? - Vaatetus - Asusteet - Elektroniikka - Huonekalut - Keräilyesineet - Kirjat - Lemmikit - Urheilu - Kuntoilu - Taide - Käsityöt - Koti - Toimisto - Ruoka - Sekalaiset - Muu - Median lataus epäonnistui - Pakattua tiedostoa ei voitu avata - Lähetysvirhe: %1$s - Palvelin ei antanut URL-osoitetta latauksen jälkeen - Mediaa ei voitu ladata palvelimelta - Ladatun tiedoston tarkistus epäonnistui latauksen jälkeen: %1$s - Lataaminen palvelimelle %1$s epäonnistui: %2$s - Poistaminen epäonnistui: %1$s - Media on liian suuri NIP-95:lle - Salaa tiedostot - Salaa tiedostot ennen lataamista yksityisyyden suojaamiseksi. Jotkin palvelimet eivät välttämättä hyväksy salattuja tiedostoja ilmaisilla tileillä. - Salattu lataus epäonnistui - Monet palvelimet eivät hyväksy salattuja tiedostoja ilmaisilla tileillä. Voit yrittää uudelleen ilman salausta. - Käytä H.265/HEVC-koodekkia - Parempi laatu pienemmillä tiedostokooilla, mutta kaikki laitteet eivät tue H.265-toistoa. - Muunna GIF MP4:ksi - Muuntaa animoidun GIF:n MP4-videoksi pienemmän tiedostokoon ja paremman toistettavuuden saavuttamiseksi. - Poista yksityiset metatiedot - Yrittää poistaa yksityiset metatiedot tuetuista mediatiedostoista ennen lataamista - Metatietoja ei voitu poistaa - Yksityisten metatietojen poistaminen mediasta epäonnistui. Lataus peruutettu. - Lataus peruutettu - Metatietoja ei voi poistaa AVIF-tiedostosta: %1$s - Etusivu - Tutustu - Viestit - Ilmoitukset - Kalenterit - Kalenteriluettelot - Shakki - Lompakko - Cashu-lompakko (NIP-60) Nutzap-avain (lisäasetukset) Erillinen yksityinen avain, jota käytetään vain NIP-61 nutzapien vastaanottamiseen. Ei ole Nostr-henkilöllisyysavaimesi. Luo uusi avain P2PK-yksityisavain (hex) - Muokkaa minttejä Tallenna muutokset - - +%1$d lisää - +%1$d lisää - - - %1$d muu suosittelee - %1$d muuta suosittelee - - Suositut mintit - Vastaavat mintit - Vastaanotettu - Lähetetty - Julkaise poistopyyntö kind:38000-suosituksellesi kohteesta %1$s. Relat, jotka noudattavat NIP-09:ää, poistavat sen. - Palautettiin %1$s sats %2$s todisteen verran. - Maksetaanko %1$s sat + enintään %2$s sat maksuina? - Nutzap epäonnistui - Viestillä ei ole vastaanottajan julkista avainta - Nutzapit ovat julkisia ja paljastaisivat tämän yksityisen viestin. Käytä Lightning-zapia. - Tapahtuman viittausta ei voi rakentaa - Odotetaan laskun maksamista… - Tarkistetaan minttiä… - Hidas - Normaali - Nopea - ~1 t - - Lähetä %1$s sats, %2$d jako - Lähetä %1$s sats, %2$d jakoa - - - Käytä tämän viestin %1$d-suuntaista zap-jakoa - Käytä tämän viestin %1$d-suuntaista zap-jakoa - - - Jako %1$d vastaanottajalle - Jako %1$d vastaanottajalle - - - Ohitetaan %1$d pelkän Lightning-osoitteen vastaanottaja — ketjulähetys vaatii Nostr-julkisen avaimen osoitteen johtamiseksi. - Ohitetaan %1$d pelkän Lightning-osoitteen vastaanottajaa — ketjulähetys vaatii Nostr-julkisen avaimen osoitteen johtamiseksi. - - ladataan saldoa - rakennetaan transaktiota - allekirjoitetaan - lähetetään - julkaistaan kuitti - Bitcoin-ketjun taustapalvelua ei ole määritetty - Bitcoin-saldoa ei voitu ladata - Transaktiota ei voitu rakentaa - Vastaanottajan osuus on alle pölyrajan - Transaktiota ei voitu allekirjoittaa - Transaktiota ei voitu lähettää - Maksu lähetetty, mutta zap-kuittia ei voitu julkaista - - Maksu lähetetty (%1$d / %2$d kuitti julkaistu), mutta seuraavaa kuittia ei voitu julkaista - Maksu lähetetty (%1$d / %2$d kuittia julkaistu), mutta seuraavaa kuittia ei voitu julkaista - - Tuo seurannat - Uusi tuote - Uusi artikkeli - Uusi kalenteritapahtuma - Muokkaa kalenteritapahtumaa - Uusi kalenteri - Muokkaa kalenteria - Syöte - Kuukausi - Viikko - Päivä - - %1$s, %2$d tapahtuma - %1$s, %2$d tapahtumaa - - Käynnissä nyt - %1$s · päättyy %2$s - Jaa kalenteritapahtuma - Kalenterimuistutukset - Ilmoitus, kun tapahtuma jossa olet mukana alkaa pian. - Kalenteritapahtuma - - Alkaa %1$d minuutin kuluttua - Alkaa %1$d minuutin kuluttua - - Kuvan lataus epäonnistui - Valittua kuvaa ei voitu ladata palvelimelle. Yritä uudelleen tai liitä URL-osoite. - Kalenterimuistutukset - Lähetä muistutuksia - Ilmoitus lähetetään, kun osallistumasi tapahtuma alkaa pian. - Avaa kartalla - Avaa linkki - Avaa kaikki reaktiot tähän julkaisuun - Sulje kaikki reaktiot tähän julkaisuun - Alapalkin navigointi Vedä järjestääksesi. Ota käyttöön tai poista kohde alapalkista. Kun kohteita on nolla, alapalkki piilotetaan. Järjestä uudelleen Valitse välilehdet, jotka näkyvät aloitusnäytöllä. Kun vain yksi välilehti on aktiivinen, välilehtipalkki piilotetaan. - Kaikki - Profiilin käyttöliittymä Valitse osiot ja syötteet, jotka näkyvät käyttäjäprofiileissa. Kaikki asetukset ovat oletuksena käytössä. - Profiilin merkit - Sovellussuositukset - Vastaanotettujen zapien syöte - Seuraajien syöte - Reaktiorivi - Videosoittimen painikkeet - Äänivisualisoija - Vanhentumispäivä - Virheellinen osoite - Amethyst vastaanotti avattavan URI:n, mutta se oli virheellinen: %1$s - DM-saapuneiden relayit - Hakurelayit - Hyviä vaihtoehtoja ovat:\n%1$s - Lähtevien relayit - Saapuvien relayit - Relay-asetukset - Julkiset lähtevien/kodin relayit - Käyttäjä julkaisee sisältönsä näille relayille - Tämä relay-tyyppi tallentaa kaiken sisältösi. Amethyst lähettää julkaisusi tänne ja muut käyttävät näitä relayita löytääkseen sisältösi. Lisää 1–3 relayia. Ne voivat olla henkilökohtaisia, maksullisia tai julkisia relayita. - Julkiset saapuvien relayit - Käyttäjä vastaanottaa ilmoituksia näillä relayilla - Tämä relay-tyyppi vastaanottaa kaikki vastaukset, kommentit, tykkäykset ja zapit julkaisuihisi. Ne voivat olla maksullisia tai ilmaisia relayita. Relay-operaattorin asettamat rajoitukset voivat rajoittaa vastaanottamiasi ilmoituksia hyvässä ja pahassa. Esimerkiksi jos sinua häiritään kommenttiroskapostilla, maksulliset relayit voivat suodattaa roskapostin pois. Lisää 1–3 relayia. - DM-saapuneiden relayit - Käyttäjä vastaanottaa DM:t näillä relayilla - Lisää 1–3 relayia yksityiseksi postilaatikoksesi. Muut käyttävät näitä relayita lähettääkseen sinulle DM:t. DM-saapuneiden relayiden tulisi hyväksyä viestejä keneltä tahansa, mutta sallia vain sinun ladata ne. Hyviä vaihtoehtoja ovat:\n - inbox.nostr.wine (maksullinen)\n - auth.nostr1.com (ilmainen)\n - you.nostr1.com (henkilökohtaiset relayit – maksullinen) - KeyPackage-relayit - Relayit, joille MLS KeyPackage -paketit julkaistaan (MIP-00). Muut käyttäjät hakevat nämä KeyPackage-paketit kutsuakseen sinut Marmot-ryhmäkeskusteluihin. Lisää 1–3 relayia, jotka hyväksyvät KeyPackage-tapahtumat sinulta ja sallivat julkiset lukuoikeudet. - Yksityiset kodin relayit - Lisää 1–3 relayia tallentamaan tapahtumia, joita kukaan muu ei näe, kuten luonnoksesi ja/tai sovelluksen asetukset. Ihanteellisesti nämä relayit ovat joko paikallisia tai vaativat todennuksen ennen kunkin käyttäjän sisällön lataamista. - Yhdistetyt relayit - Tällä hetkellä käytössä olevien relayiden lista - Hakurelayit - Lista relayista, joita käytetään sisällön tai käyttäjien haussa. Merkitseminen ja haku eivät toimi, jos vaihtoehtoja ei ole saatavilla. Varmista, että ne toteuttavat NIP-50:n. - Paikalliset relait - Luettelo tällä laitteella toimivista relaista. - Välitä profiilit paikalliselle relaylle - Lähetä kaikki vastaanotetut profiilitapahtumat (kind 0) paikalliselle relaylle - Luotetut relait - Relait, joihin luotat ilman Tor-yhteyttä - Suosikkirelayfeedit - Relait, joiden globaalia feediä käyt usein katsomassa - Proxy-relait - Aggregaattorirelait, joita sovelluksen täytyy käyttää feedien lataamiseen, kuten filter.nostr.wine. Tämä korvaa outbox-mallin ja saa sovelluksen yhdistämään vain listoissasi oleviin relaihin. - Lähetysrelait - Relait, jotka erikoistuvat muistiinpanojesi välittämiseen kaikille muille relaiden, kuten sendit.nosflare.com. Amethyst lisää tämän relayn kaikkiin tekemiisi uusiin tapahtumiin - Hakemistorelait - Relait, jotka erikoistuvat kaikkien käyttäjien metatietojen ja relaylistojen isännöintiin, kuten purplepag.es. Amethyst käyttää näitä relaita löytääkseen käyttäjiä, jotka eivät ole listoissasi. - Estetyt relait - Amethyst ei koskaan yhdistä näihin relaihin - Vie relay-asetukset Verkko: Yleiskatsaus Tietoa Linkit Ylläpitäjät Aiheet - Aikaleiman todiste - On olemassa todiste, että tämä viesti allekirjoitettiin ennen %1$s. Todiste on leimattu Bitcoin-lohkoketjuun kyseisellä päivämäärällä ja kellonajalla. - Muokkaa julkaisua - Luonnosviestiin ei voi vastata - Luonnosviestiä ei voi lainata - Luonnosviestiin ei voi reagoida - Luonnosviestiä ei voi zapata - Luonnosviesti - Virheellinen pyyntö – palvelin ei voi tai halua käsitellä pyyntöä. - Luvaton – käyttäjällä ei ole kelvollisia tunnistautumistietoja - Maksu vaaditaan – palvelin vaatii maksua pyynnön suorittamiseksi - Kielletty – käyttäjällä ei ole oikeuksia tehdä pyyntöä - Ei löydy – palvelin ei löydä pyydettyä osoitetta - Menetelmä ei sallittu – palvelin tukee pyyntömenetelmää, mutta ei kohdetta - Ei hyväksyttävissä – palvelin ei löydä pyyntöä vastaavaa sisältöä. - Välityspalvelimen tunnistautuminen vaaditaan – käyttäjällä ei ole kelvollisia tunnistautumistietoja - Pyyntö aikakatkaistiin – palvelin odotti liian kauan toisen osapuolen vastausta - Ristiriita – palvelin ei voi täyttää pyyntöä, koska resurssin kanssa on ristiriita - Poistettu – pyydetty sisältö on poistettu pysyvästi palvelimelta eikä sitä palauteta - Pituus vaaditaan – palvelin hylkää pyynnön, koska se vaatii määritellyn - Esiehto epäonnistui – pyynnön otsikkojen esiehdot eivät täyty palvelimella - Hyötykuorma liian suuri – pyyntö ylittää palvelimen määrittämät rajat, eikä palvelin käsittele sitä - URI liian pitkä – asiakkaan pyytämä URL on liian pitkä palvelimen käsiteltäväksi. - Mediatyyppiä ei tueta – pyyntö käyttää mediamuotoa, jota palvelin ei tue - Alue ei ole tyydytettävissä – palvelin ei voi täyttää pyynnön Range-otsikkokentässä ilmoitettua arvoa. - Odotus epäonnistui – palvelin ei täytä Expect-otsikkokentässä ilmoitettuja vaatimuksia - Päivitys vaaditaan – palvelin kieltäytyy käsittelemästä pyyntöä nykyisellä protokollalla, ellei asiakas päivitä eri protokollaan. - Sisäinen palvelinvirhe – palvelin on kohdannut odottamattoman virheen eikä voi suorittaa pyyntöä - Ei toteutettu – palvelin ei voi täyttää pyyntöä tai ei tunnista pyyntömenetelmää - Virheellinen yhdyskäytävä – palvelin toimii yhdyskäytävänä ja sai virheellisen vastauksen isäntäpalvelimelta - Palvelu ei käytettävissä – tämä johtuu usein palvelimen ylikuormituksesta tai huoltokatkosta - Yhdyskäytävän aikakatkaisu – palvelin toimi yhdyskäytävänä tai välityspalvelimena ja aikakatkaistiin vastauksen odottamisen aikana - HTTP-versio ei tuettu – palvelin ei tue pyynnön HTTP-versiota - Variantti neuvottelee myös – palvelimella on sisäinen konfiguraatiovirhe - Tallennustila ei riitä – palvelimella ei ole riittävästi tallennustilaa pyynnön onnistuneeseen käsittelyyn - Silmukka havaittu – palvelin havaitsee äärettömän silmukan käsitellessään pyyntöä - Verkon tunnistautuminen vaaditaan – asiakkaan on tunnistauduttava päästäkseen verkkoon Blossom-palvelimet Lisää niin monta palvelinta kuin haluat. Voit myöhemmin valita, mitä käytät kuvan lataamiseen - Lisää NIP-96-palvelin - Lisää Blossom-palvelin Lataa - Tiedoston avaaminen epäonnistui - Ei torrent-sovelluksia asennettuna tiedoston avaamiseen ja lataamiseen. - Tapahtumassa ei ole riittävästi tietoja magneettilinkityksen rakentamiseen - Omat listani - Feedit - Aihetunnisteet - Kiinnostuksen kohteet - Sijainnit - Yhteisöt - Listat - Feedialgoritimit - Kaikki suosikkifeedialgoritimit - Relait - Suosikkifeedialgoritimit - Yksityinen viesti - Julkinen viesti - Kuvan jakaminen epäonnistui, yritä myöhemmin uudelleen… - Videon jakaminen epäonnistui, yritä myöhemmin uudelleen… - Ladataan videota… - Älä käännä kielestä - Täällä näkyviä kieliä ei käännetä. Valitse kieli poistaaksesi se tästä ja kääntääksesi sen jälleen. - Käännä kielelle - Valitse kieli, jolle sisältö käännetään. - Kielen näyttöasetukset - Valitse kullekin käännetylle kieliparille, kumpi kieli näytetään ensin. - Keskeytä - Toista - Tämä viesti katoaa %1$s kuluttua - Seurantalistan metatiedot - Seurantalistojen metatiedot ovat kaikkien nähtävillä Nostrissa. Vain yksityiset jäsenesi ovat salattuja. - Seurantapaketin metatiedot - Seurantapaketin metatiedot ovat kaikkien nähtävillä Nostrissa ja julkaistaan usein monilla verkkosivuilla uusien käyttäjien aloituspakettina. - Muokkaa seurantapakettia - Laajenna - Yritä uudelleen - Reaktio - Äänijulkaisu - Äänivastaus - Lähtevien relay-palvelimet - Sovellukset - Sovellussuositukset - Käyttäjäasetukset - Äänitiedoston otsikko - Ääniraita - Musiikkiraita - Musiikkisoittolista - Podcast-jakso - Podcast-ohjelma - Omat podcastit - Suosikkipodcastit - Merkkien myöntämiset - Merkkimäärittelyt - Hyväksyttyjen merkkien kokoelma - Profiilin merkit - Estetyt relay-palvelimet - Blossom-palvelimet - Nests-palvelimet - Lähetys-relay-palvelimet - Kirjanmerkkilista - Vanha kirjanmerkkilista - Päiväaika - Kalenteri - Aika - Ajan RSVP - Shakkipelit - Shakki Auth - Suosikki-relay-palvelimet - Shakkihaasteet - Shakkipelin hyväksyntä - Shakkisiirto - Shakkipelin lopetus - Shakki tasapelitarjous - Kanavan määrittely - Kanavan viestien piilotus - Kanavaluettelo - Kanavanviesti - Kanavan metatiedot - Kanavan käyttäjän vaimennus - DM-tiedosto - DM-viesti - DM-relay-palvelimet - Ilmoitukset - Kommentit - Yhteisön määrittely - Yhteisöluettelo - Yhteisöjulkaisu - Seurantalista - Poistot - Luonnokset - Emoji-paketit - Emoji-pakettilista - Lyhytaikainen chat - Lyhytaikaiset chathuoneet - Tiedosto-otsikot - Profiiligalleria - Tiedostopalvelimet - Blob-data - Blob-otsikot - Lääketieteelliset tiedot - Seurauspaketit - Jaot (16) - Geohash-seurannat - GiftWrap-viestit - Git-ongelma - Git-korjaustiedosto - Git-varasto - Git-vastaus - Zap-tavoitteet - Hashtag-seurannat - Korostukset - Hakemisto-relay-lista - Seikkailun johdanto - Seikkailukohtaus - Seikkailulukeminen - Nimetyt kirjanmerkit - Live-chatit - Suoratoistot - Zapit - NWC-pyyntö - NWC-vastaus - Yksityiset zapit - Zap-pyyntö - Blogit - Kokoushuone - Huoneläsnäolo - Kokouspaikka - Profiili - Vaimennuslista - DVM-tila - DVM-sisältöpyyntö - DVM-sisältövastaus - DVM-käyttäjäpyyntö - DVM-käyttäjävastaus - Henkilölistat - Kuvat - Harjoitukset - Kiinnitykset - Zap-äänestys - Äänestys - Äänestysvastauss - NIP-04 DM-viestit - Yksityiset relay-palvelimet - Välitys-relay-palvelimet - Julkinen viesti - Reaktiot - Yhteystietokortti - Relay-löytäminen - Relay-monitorin ilmoitus - Relay-kokoelma - Raportit - Jaot - Käyttäjän poisto - Sinetit - Haku-relay-palvelimet - Käyttäjän tila - Muistiinpanot - Muokkaukset - Torrentit - Torrent-kommentit - Luotetut relay-palvelimet - Luotetut tarjoajat - Ääniviesti - Äänivastaus - Verkkokirjanmerkki - %1$d%% käytettävyys - Namecoin-asetukset - Relay-synkronointi - Bitcoin-selain (OTS) - tapahtumat sinulta - tapahtumat sinulle - haettavat tapahtumat - DM:t - profiilit - outbox-listat - Nähty viimeksi %1$s sitten - Nähty viimeksi %1$s (%2$s sitten) - Nähty juuri äsken - Ei koskaan nähty - - %1$d minuutti - %1$d minuuttia - - - %1$d tunti - %1$d tuntia - - - %1$d päivä - %1$d päivää - - - %1$d viikko - %1$d viikkoa - - - %1$d kuukausi - %1$d kuukautta - - - %1$d vuosi - %1$d vuotta - - - %1$d odottava lasku - %1$d odottavaa laskua - - - Varoja %1$d mintissä, jota et käytä - Varoja %1$d mintissä, joita et käytä - - Siirretty %1$s sat kohteeseen %2$s. - Suoratoista laitteeseen - Lopeta suoratoisto - HLS-lataus - Ladataan %1$s (%2$d / %3$d) - Todistus - Todistuspyyntö - Todistajan suositus - Todistajan osaaminen - Verkkokirjanmerkit - Lisää verkkokirjanmerkki - Muokkaa verkkokirjanmerkkiä - %1$s rahoitettu tavoitteesta %2$s sat - Uusi tavoite - Katoamispyyntö - Katoamispyyntö lähetetty - Katoamishistoria - Käyttäjät - Tapahtumat - Tyypit - IP-osoitteet - Asetukset - Ehdota tekstiparannuksia - Käyttää laitteen tekoälymallia ehdottamaan tekstikorjauksia ja sävymuutoksia. - Seuratut lähetykset - Käytä seurattua lähetintä tapahtumien lähettämiseen. Näyttää reaaliaikaiset edistymistiedot ja relay-kohtaisen tilan lähetyksen aikana. - Ehdota treenejä jaettavaksi - Lukee valmiit treenit Health Connectista (Samsung Health, Google Fit, Fitbit, Garmin…) ja ehdottaa niiden jakamista julkaisuna. Lupa pyydetään vain yhdistäessäsi. - Kirjoitusasetukset - Luo luonnokset automaattisesti - Tallentaa luonnoksen automaattisesti, kun kirjoitat tai poistut kirjoitusnäkymästä lähettämättömällä tekstillä, ja lähettää sen yksityisiin lähteviin relayihisi. - Uusi emoji-paketti - Muokkaa emoji-pakettia - Omat emoji-paketit - Emojit - Julkiset emojit näkyvät kaikille ja näkyvät reaktiovalikossasi sekä \":\"-automaattitäydennyksessä, kun tämä paketti on emoji-listassasi. - Yksityiset emojit tallennetaan salattuina relayihin ja ovat vain sinun nähtävissäsi. Ne näkyvät reaktiovalikossasi ja \":\"-automaattitäydennyksessä aivan kuten julkisetkin. - Luonnos on %1$d tavua; tämä yhteisö rajoittaa tämän tyypin %2$d tavuun. - Luonnos on %1$d tavua; tämä yhteisö rajoittaa tapahtumat %2$d tavuun. - Olet jo julkaissut %1$d tämän tyypin tapahtumaa tänään (raja %2$d). - Nowhere-sivusto - Nowhere-tapahtuma - Nowhere-varainkeruu - Nowhere-kauppa - Nowhere-vetoomus - Nowhere-viesti - Nowhere-taide - Nowhere-foorumi - - %1$d viesti - %1$d viestiä - - - %1$d jäsen - %1$d jäsentä - - Ryhmän tiedot päivitetty - Päivitys epäonnistui: %1$s - Ryhmän luominen epäonnistui: %1$s - Ryhmästä poistuminen epäonnistui: %1$s - Lisätään %1$s… - Käyttäjän %1$s lisääminen epäonnistui: %2$s - tuntematon virhe - Jäsen poistettu - Jäsenen poistaminen epäonnistui: %1$s - Ylläpitäjäoikeudet myönnetty - Ylläpitäjäoikeuksien myöntäminen epäonnistui: %1$s - Ylläpitäjäoikeudet peruutettu - Ylläpitäjäoikeuksien peruuttaminen epäonnistui: %1$s - Et ole tämän ryhmän jäsen Vastaanottajan Lightning-palvelu osoitteessa %1$s ei ole käytettävissä. Se laskettiin Lightning-osoitteesta \"%2$s\". Virhe: %3$s. Tarkista, onko palvelin ylhäällä ja onko Lightning-osoite oikein Ei voitu ratkaista osoitetta %1$s. Tarkista, oletko yhteydessä, onko palvelin käynnissä ja onko Lightning-osoite %2$s oikein.\n\nPoikkeus: %3$s Virhe jäsennettäessä JSON-tietoja kohteesta %1$s\'n laskuhakua. Tarkista käyttäjän Lightning-asetukset diff --git a/amethyst/src/main/res/values-fr-rCA/strings.xml b/amethyst/src/main/res/values-fr-rCA/strings.xml index 545e1f448e..695c3c9a77 100644 --- a/amethyst/src/main/res/values-fr-rCA/strings.xml +++ b/amethyst/src/main/res/values-fr-rCA/strings.xml @@ -1,111 +1,12 @@ - - Ce message a plus de %1$d hashtag - Ce message a plus de %1$d hashtags - - - %1$d asset inclus - %1$d assets inclus - - - +%1$d\nréponse - +%1$d\nréponses - - Le nombre d\'événements spam provenant de ce relais - Falsification d\'identité - Comportement illégal - Demande de suppression - Connectez vous avec une clé privée pour pouvoir répondre - Connectez vous avec une clé privée pour pouvoir booster des posts - Connectez vous avec une clé privée pour pouvoir aimer des posts - Aucun montant sélectionné pour le zap. Appui long pour modifier - Connectez vous avec une clé privée pour pouvoir envoyer des zaps - Connectez-vous avec une clé privée pour Suivre - Connectez-vous avec une clé privée pour ne plus Suivre - Vous utilisez une clé publique et les clés publiques sont en lecture seule. Connectez-vous avec une clé privée pour pouvoir masquer un mot ou une phrase - Vous utilisez une clé publique et les clés publiques sont en lecture seule. Connectez-vous avec une clé privée pour pouvoir afficher un mot ou une phrase - Vous utilisez une clé publique et les clés publiques sont en lecture seule. Connectez-vous avec une clé privée pour pouvoir téléverser - Vous utilisez une clé publique et les clés publiques sont en lecture seule. Connectez-vous avec une clé privée pour pouvoir signer des événements - Déchiffrement non autorisé - Le signataire n\'a pas autorisé le décryptage nécessaire pour effectuer cette opération. Activez les décryptions NIP-44 dans votre application signataire et réessayez - Signataire introuvable - L\'application de signature a-t-elle été désinstallée ? Vérifiez si le signataire est installé et a ce compte. Déconnectez-vous et reconnectez-vous de l\'application signataire a changé. - Le signataire externe a renvoyé des données qui sont étranges pour la requête. Il peut y avoir un bug sur Amethyst ou le signataire. boosté modification #%1$s - Proposer une Modification - Ajouter - Erreur d\'analyse du message d\'erreur - Profil - Filtres de sécurité - Demande de facture… - Le service de débit n\'a pas finalisé le paiement. - Payer %1$s via %2$s? - Payer cette facture via %1$s? - Saisissez un montant valide pour cette offre. - Unique - Quotidien - Hebdomadaire - Mensuel - Payer - Payement via %1$s… - Paiement échoué - Dépensable pour ce destinataire : %1$s sats - Transaction : %1$s - "Aperçu de l'image pour %1$s" - Quoi de neuf ? - Rédiger un message… - Envoyer Sauvegarder - Envoyer - Créer Renommer - Annuler - Erreur - Erreurs - Pourcentage de connexions réussies vers le relais - Enregistrer sur le téléphone - Image enregistrée dans la galerie - Le téléchargement de la vidéo a démarré… - Le téléchargement du média a démarré… - Épingler en haut - Détacher - Échec de l\'enregistrement de l\'image - Vidéo enregistrée dans la galerie vidéo du téléphone - Impossible d\'enregistrer la vidéo - PDF enregistré dans Téléchargements/Amethyst - Échec de l\'enregistrement du PDF - Aucune application de caméra trouvée sur cet appareil - Cliquez et maintenez pour enregistrer un message - Erreur d\'envoi - Échec de l\'envoi du message vocal - NIP-95 n\'est pas encore supporté pour les messages vocaux - Échec de l\'envoi de la voix : %1$s - Aucun - Profond - Haute - Neutre - L\'utilisateur n\'a pas configuré d\'adresse Lightning pour recevoir des sats - "répondre ici" - Connus - Nouvelles demandes - Utilisateurs bloqués - Nouveaux sujets - Plus d\'options - Afficher le QR code de la clé privée - Afficher le QR code de la clé privée chiffrée - Suivre - Suivre en retour - Cacher le mot de passe - Clé non valide - Clé invalide : %1$s - Mot de passe requis - La clé est requise - Un nom est requis @@ -114,152 +15,7 @@ Nouveau profil de tchat : - Partir - Ne plus suivre - Discussion éphémère - Relais de discussion - Relais de discussions - Les relais de discussions sont des groupes de discussion contrôlés par leur relais d\'origine. - Ils sont visibles par tous les utilisateurs de Nostr et tout le monde peut y participer. - Ils sont idéaux pour les communautés ouvertes autour de sujets spécifiques. Certains de ces groupes sont éphémères - et, par conséquent, les messages de discussion disparaissent avec le temps - Chat public - Groupe MLS - Métadonnées de tchat public - Les conversations publiques sont visibles pour tout le monde sur Nostr et n\'importe qui - peut y participer. Elles sont idéales pour les communautés ouvertes autour de sujets spécifiques. - La modération peut être contrôlée en supprimant les messages sur ses relais - Relais - Insérez entre 1 et 3 relais qui hébergent ce groupe. - Les clients Nostr utilisent ce paramètre pour savoir où télécharger les messages et où les envoyer. - Retirer - jamais - maintenant - Nudité - Blasphème / Discours haineux - Clés de sauvegarde - Échec du chiffrement de votre clé privée - Clé secrète (nsec) copiée dans le presse-papiers - Copier ma clé secrète - Échec de l\'authentification - La biométrie n\'a pas pu authentifier le propriétaire de ce téléphone - La biométrie n\'a pas pu authentifier le propriétaire de ce téléphone. Erreur : %1$s - Copie du contenu de la note dans le presse-papiers - Copie du @npub utilisateur dans le presse-papiers - Copie de l\'ID de la note (@note1) dans le presse-papiers - "<Impossible de déchiffrer le message privé>\n\nVous avez été cité dans une conversation privée/cryptée entre %1$s et %2$s." - Comptes - Navigation - Vous - Fils - Créer - Système - Retour - Partager le Lien Navigateur - Partager - Partager en tant qu\'image - Partager en tant qu\'URL de l\'image - ID Note - Supprimer - Muet le fil - Rétablir le fil de discussion - - Bloquer - Favoris - Signets migrés avec succès - Brouillons - Publications planifiées - Planifier la publication - Annuler la planification - Les publications planifiées peuvent ne pas être publiées avant la prochaine ouverture de l\'application. Activez le mode permanent dans Paramètres → Préférences d\'interface pour une planification fiable en arrière-plan. - Les publications planifiées peuvent ne pas être publiées avant la prochaine ouverture de l\'application. Les publications planifiées des autres comptes ne se déclencheront pas pendant que ce compte est actif. Activez le mode permanent dans Paramètres → Préférences d\'interface pour une planification fiable en arrière-plan. - %1$s · dans %2$s - %1$s · il y a %2$s - Demain - Déconnecté - - Déconnecté · %d publication planifiée supprimée - Déconnecté · %d publications planifiées supprimées - - Publication planifiée publiée - Échec de la publication planifiée - Publications planifiées - Notifications lorsqu\'une publication planifiée est publiée ou échoue. - Envoyer maintenant - Erreur : %1$s - Planifié - Envoi en cours… - Échoué - Envoyé - Annulé - - Vous avez %d message planifié qui n\'a pas encore été publié. La déconnexion le supprimera définitivement. - Vous avez %d messages planifiés qui n\'ont pas encore été publiés. La déconnexion les supprimera définitivement. - - - %d en file d\'attente - %d en file d\'attente - - - · %d due dans 1h - · %d dues dans 1h - - - vers %d relais - vers %d relais - - ID de note copié - Sondages - Ouvrir - Fermé - Communautés - Nouvelle communauté - Modifier la communauté - Modérateurs - Relais - Règles vérifiables (facultatif) - Types d\'événements autorisés - Texte court (1) - Article long format (30023) - Publication d\'image (20) - Publication vidéo (21) - Vidéo courte (22) - Commentaire communautaire (1111) - Utilisateurs bannis - Filtre Web-of-trust (facultatif) - Taille maximale globale d\'événement (facultatif) - Nouveau badge - Badge de récompense - Badges de profil - Images - Entraînements - Nouvel entraînement - Course à pied - Marche - Cyclisme - Randonnée - Natation - Aviron - Musculation - Méditation - Alimentation - Jeûne - Applications Applications - Navigateur - Chargement via Tor. Appuyer pour utiliser le web ouvert. - Chargement via le web ouvert. Appuyer pour utiliser Tor. - Favoris - Applications favorites - Ajouter aux favoris - Supprimer des favoris - Se charge via Tor. - Se charge via le web ouvert. - Publié sur les relais - Fichier téléversé - Paiement effectué - Cette application n\'est pas encore chargée. Réessayez dans un instant. - Récent Permissions nApplet Aucune permission nApplet pour l\'instant Les permissions que vous accordez aux nApplets apparaîtront ici. @@ -268,45 +24,11 @@ Révoquer - Identité - Actions clavier - Relais - Stockage - Paiements - Réseau - Téléversements Demander quelles fonctionnalités sont disponibles - Lire votre clé publique - Associer des raccourcis clavier - Lire, signer & publier vos événements - Son propre stockage privé - Payer des factures Lightning - Récupérer des ressources web et Blossom - Téléverser des fichiers sur votre serveur multimédia - Thème - Messagerie - Correspondre aux couleurs de votre application - Vous afficher des notifications - Échanger des messages avec d\'autres napplets Fonctionnalité : %1$s - Ce nApplet veut lire votre clé publique. - Ce nApplet veut lire votre profil et les données de votre compte. - Ce nApplet veut signer et publier un événement de type %1$d en votre nom. - Ce nApplet veut signer et publier un événement de type %1$d en votre nom : - Ce nApplet veut envoyer un événement chiffré en votre nom. - Ce nApplet veut lire des événements depuis vos relais. - Ce nApplet veut utiliser son stockage privé. Ce nApplet veut payer une facture Lightning. - Ce nApplet veut récupérer une ressource web. - Ce nApplet veut téléverser un fichier sur votre serveur multimédia. - Ce nApplet veut vous afficher des notifications. - Ce site veut signer un événement de type %1$d avec votre clé Nostr. - - Ce nApplet veut payer une facture Lightning de %1$d sat. - Ce nApplet veut payer une facture Lightning de %1$d sats. - - Chats publics - Packs d\'abonnements - Diffusions en direct - Lever la main - Baisser la main - Couper le son - Activer le son - Impossible d\'envoyer le message - Couper le micro - Réactiver le micro - Maintient l\'audio actif pendant qu\'une salle est ouverte. - Nest connecté - Nest — En direct - Appuyer pour revenir. - Arrêter - a levé la main - est monté sur scène - parle actuellement - a rejoint en tant qu\'auditeur - a quitté le nest - Quitter - Impossible de marquer la salle comme fermée. Départ en cours — la salle se fermera automatiquement. - - %1$d auditeur - %1$d auditeurs - - Sourdine locale - Rétablir cet intervenant - Suivre - Ne plus suivre - Mettre en sourdine - Réactiver le son - Impossible d\'enregistrer votre liste de serveurs nest. Réessayez. - Serveurs nest - Vos serveurs - Enregistré en tant qu\'événement remplaçable de type kind-10112 pour que d\'autres clients puissent lire votre préférence. - Serveurs recommandés - Suggestions intégrées que vous pouvez ajouter à votre liste en un seul appui. - Vidéos - Musique - Listes de lecture - Épisodes - - %1$d épisode - %1$d épisodes - - Nouvelle piste musicale - Nouvelle liste de lecture - - %1$d piste - %1$d pistes - - Ajouter aux Favoris Publics - Supprimer des Favoris Publics - Épingler sur le profil - Retirer du profil - Nouvelle liste de favoris - Métadonnées de la liste de favoris - Ensembles de hashtags - Nouvel ensemble d\'intérêts - Renommer - Rendre privé : envoyer la note en gift-wrap uniquement aux utilisateurs notifiés - Rendre public - Les réponses à une note privée restent toujours privées - Visible par Aucun récepteur pour le moment : vous seul serez en mesure de voir cette note. Ajoutez des personnes pour la partager. Ajouter Retirer l\'utilisateur des notifications Rechercher et ajouter un utilisateur à notifier - Les métadonnées des listes de favoris peuvent être vues par n\'importe qui sur Nostr. Seuls vos membres privés sont chiffrés. - Déplacer en public - Déplacer en privé - Recharger & envoyer le zap - Envoyer le zap - Recharger %1$s sats sur %2$s et zapper %3$s %4$s sats · frais ≈ %5$s sats - Choix unique - Choix multiples - Impossible de voter - Le Sondage est fermé aux nouveaux votes - Un seul vote par utilisateur est autorisé sur ce type de sondage - Les auteurs du sondage ne peuvent pas voter dans leurs propres sondages. - Qu\'est-ce que cela signifie ? - Ce contenu est le même depuis le message - Ce contenu a changé. L\'auteur n\'a peut-être pas vu ou approuvé le changement - Ajouter un média - Ajouter une Image - Ajouter une Vidéo - Ajouter un Document - Serveur fichier - Choisissez un serveur vers lequel téléverser ce fichier - Serveurs média Définissez vos serveurs de téléversement de média préférés. Serveurs multimédia recommandés Liste par défaut d\'Amethyst. Vous pouvez les ajouter individuellement ou ajouter la liste. - Cibles de paiement - Ajoutez des adresses de paiement pour différents réseaux (ex. bitcoin, lightning, ethereum). - Aucune application trouvée pour traiter ce paiement. Veuillez installer un portefeuille compatible. - Aucune application installée pour traiter les paiements %1$s. Veuillez installer un portefeuille compatible. - Impossible d\'ouvrir le paiement - Options de confidentialité - Tous les abonnements - Tous les abonnements de l\'utilisateur - Liste de suivi par défaut - Autour de moi - Général - Sélectionné - Le mien - Liste en Sourdine - Nouvelle liste de suivi - Nouveau pack de suivi - Modifier la liste - Le port par défaut est 9050 - Port Socks Orbot - Activer le moteur Tor - Utiliser la version interne ou Orbot - Tor/Préréglages de confidentialité - Modifier rapidement tous les paramètres ci-dessous - Url/Relais en oignon - Utiliser Tor pour n\'importe quelle url .onion - Relais MP - Forcer Tor à envoyer et recevoir des MPs - Relais non approuvés - Forcer Tor pour les relais de boîte de réception - Relais de confiance - Forcer Tor sur tous les relais de vos listes - Photos de profil - Forcer Tor lors du chargement des photos de profil - Aperçu des URL - Forcer Tor lors du chargement des aperçus d\'url - Forcer Tor lors du chargement des images - Vidéos - Forcer Tor lors du chargement des vidéos - Opérations financières - Forcer Tor pour les transferts en zaps, lightning ou cashu - Vérification de l\'adresse Nostr - Forcer Tor lors de la vérification des adresses NIP-05 - Téléversements de média - Forcer Tor lors du téléversement de contenu - Interne - Désactivé - Basique - Par défaut - Tous sauf les médias - Confidentialité complète - Personnalisé - Utiliser Tor lorsque le serveur le demande - Masque votre IP des relais aléatoires - Masque votre adresse IP pour tout, sauf les images et les vidéos - Masque votre IP pour toutes les connexions - Faites votre choix manuellement - Messages privés - Vous notifie lorsqu\'un message privé est reçu - Zaps reçus - Vous notifie lorsque quelqu\'un vous zap - De %1$s - pour %1$s - Répondre - Marquer comme lu - Nouveaux messages - Nouveaux zaps - Réactions - Vous notifie lorsque quelqu\'un réagit à votre publication - %1$s a réagi à votre publication - pour %1$s - Nouvelles réactions - Échecs - Vous avertit des événements liés aux parties d\'échecs - %1$s a accepté votre défi aux échecs - %1$s déplacé — votre tour - Mises à jour d\'échecs - Réponses - Vous notifie lorsque quelqu\'un répond à votre publication %1$s a répondu sur : %1$s - Nouvelles réponses - Vous notifie lorsque quelqu\'un vous mentionne ou vous cite dans une publication - %1$s vous a mentionné - Nouvelles mentions @@ -527,36 +80,6 @@ - Appels entrants - Notifications pour les appels vocaux et vidéos entrants - Appel entrant - Appel vocal entrant\u2026 - Appel vidéo entrant\u2026 - Appel avec %1$s - Appels - Notification d\'appel en cours - Raccrocher - Accepter - Rejeter - Couper le son - Réactiver le son - Caméra activée - Caméra désactivée - Haut-parleur - Écouteurs - Amethyst a besoin d\'un accès à la caméra et au microphone pour démarrer un appel vidéo. Veuillez les activer dans les paramètres de l\'application. - Amethyst a besoin d\'un accès à la caméra et au microphone pour démarrer un appel vidéo. Veuillez les activer dans les paramètres de l\'application. - Paramètres d\'appel - Maintient les connexions à vos relais de boîte de réception actives pour les notifications en temps réel - Notifications Amethyst actives - - Connecté à %1$d relais de boîte de réception - Connecté à %1$d relais de boîte de réception - - - Connecté à %1$d relais - Connecté à %1$d relais - - Connexion aux relais de boîte de réception… Service de notification permanent Maintient une connexion persistante à vos relais de boîte de réception pour une livraison instantanée des notifications. Affiche une notification permanente. Consomme plus de batterie mais garantit que vous ne manquez aucun message. - Séparer les notifications par abonnements - Afficher deux onglets de notifications — Abonnements (personnes que vous suivez) et Tout le monde. L\'indicateur de non-lu s\'allume uniquement pour l\'activité des personnes que vous suivez. - Voir les messages - Inclure les messages directs et de groupe dans l\'onglet Notifications. Désactivez pour conserver les messages uniquement dans l\'onglet Messages. - Notifier: - Aujourd\'hui - Masquer - Afficher - Avertir - Filtrer les spams - Masque les messages d\'inconnus qui étaient exactement les mêmes depuis 5 fois ou plus - Ajouter un tag client à mes événements - Lorsqu\'activé, Amethyst ajoute un tag client NIP-89 aux événements que vous publiez. - Avertir sur les rapports - Affiche un message d\'avertissement lorsque des messages ont été rapportés 5 fois ou plus par vos abonnements - Masquer les publications qui enfreignent les règles de la communauté - Supprime les publications des fils de la communauté lorsque la communauté publie un document de règles NIP-9B et qu\'un événement ne le respecterait pas. Aucun effet lorsqu\'une communauté n\'a pas de règles structurées. - Préférences de filtrage - Contenu bloqué - Vous n\'avez pas encore bloqué d\'utilisateurs. - Aucun compte n\'a été signalé comme spam lors de cette session. - Aucun mot masqué. Ajoutez un mot ci-dessous pour masquer les publications le contenant. - Aucun type de réaction sélectionné. Appuyer longuement pour changer - Lire depuis le Relay - Écrire sur le Relay - Le nombre d\'octets qui ont été envoyés à ce relais, y compris les filtres et les événements - Le nombre d\'octets qui ont été reçus depuis ce relais, y compris les filtres et les événements - Politique de confidentialité - Normes de protection de l\'enfance - À propos & Légal - Jeton Cashu - Adresse Lightning non définie - Relais - Packs à suivre - Lectures - Algorithmes de flux - Place de Marché - Diffusions en direct - Communautés - Salons - Contenu sensible - Ajouter un avertissement de contenu sensible avant de montrer ce contenu - Préférences de l\'UI Préférences de l\'application - Traductions - Réactions - Paramètres - Paramètres du compte - Paramètres de l\'application - Zone de danger - Réinitialiser l\'état Marmot - État Marmot réinitialisé. - Échec de la réinitialisation de l\'état Marmot : %1$s - Toujours - WiFi illimité - Jamais - Complet - Simplifié - Classique - Moderne - Système - Clair - Sombre - Thème - Prévisualisation des images - Lecture vidéo - Lecture automatique des vidéos - Prévisualisation des URLs - Défilement immersif - Masquer les barres de navigation lors du défilement - Mode UI - Choisir le style du message - Style de la galerie de profil - Choisissez le style de la galerie - Spammeurs - Silencieux. Cliquer pour réactiver le son - Son activé. Cliquer pour mettre en silencieux - Revenir %d secondes en arrière - Avancer de %d secondes - Post exclusif à la localisation - Seuls les abonnés à cette localisation le verront. Vos abonnés généraux ne le verront pas. - - %1$d piste - %1$d pistes - - - +%1$d piste supplémentaire - +%1$d pistes supplémentaires - - Téléverser une image de couverture - Choisissez une image carrée comme illustration pour cette piste. - Téléverser un fichier audio - Choisissez un MP3, WAV ou FLAC. Il sera téléversé sur votre serveur multimédia lors de l\'enregistrement. - Téléversement de la couverture + audio et publication. Cela continuera même si vous quittez l\'écran. - Modifier la liste de lecture - Téléverser une image de couverture - Choisissez une image carrée comme illustration pour cette liste de lecture. - Téléversement de la couverture et publication. Cela continuera même si vous quittez l\'écran. Groupe @@ -682,593 +107,47 @@ Privé - Sujet - Impossible d\'uploader - Insérer d\'abord la destination du message - Portefeuille introuvable - Amethyst n\'a trouvé aucune application de portefeuille prenant en charge Nostr Wallet Connect (NWC).\n\nVoici ce que vous pouvez faire :\n\n1. Vérifier la prise en charge NWC : Vérifiez que votre application de portefeuille préférée est compatible avec Nostr Wallet Connect.\n\n2. Créer une connexion : Accédez à votre application de portefeuille et créez une nouvelle connexion NWC.\n\n3. Lier à Amethyst : Votre portefeuille vous proposera généralement trois options :\n\n3.1 Lien automatique : Un bouton pour ouvrir et connecter automatiquement Amethyst. Si c\'est le cas, cliquez sur ce bouton, ouvrez Amethyst et appuyez sur enregistrer sur le nouvel écran.\n\n3.2 Lien manuel : Un URI de connexion que vous pouvez copier et coller via l\'icône de collage sur cet écran.\n\n3.3 Code QR : Le portefeuille crée un code QR que vous pouvez lire depuis le bouton code QR de cet écran. - Sombre, Clair ou thème Système - Charger automatiquement les images et les GIFs - Lire automatiquement les vidéos et les GIFs - Lire automatiquement les vidéos lorsqu\'elles sont visibles à l\'écran - Afficher la prévisualisation d\'URL - Copier dans le presse-papiers - Copié dans le presse-papiers - Partager ou Enregistrer Envoyer en DM - Média ajouté - Média ajouté à votre galerie de profil - Impossible d\'envoyer un zap - Configuration lightning manquante - L\'utilisateur %1$s n\'a pas configuré d\'adresse Lightning pour recevoir des sats - Erreur lors de l\'ouverture de l\'application de signature - L\'application signataire est introuvable. Vérifiez que l\'application n\'a pas été désinstallée - Impossible de lire cette vidéo - Le codec ou le format n\'est pas pris en charge sur cet appareil (%1$s). Essayez de l\'ouvrir dans votre navigateur. - Ouvrir dans le navigateur - Requête de signature rejetée - Assurez-vous que l\'application signataire a autorisé cette transaction - Aucun portefeuille trouvé pour payer une facture lightning (Erreur : %1$s). Veuillez installer un portefeuille Lightning pour utiliser les zaps - Aucun portefeuille trouvé pour payer une facture lightning. Veuillez installer un portefeuille Lightning pour utiliser les zaps - Impossible d\'ouvrir les liens Blossom - Les applications Blossom n\'ont pas été trouvées. Veuillez installer une application Blossom locale pour voir ce fichier - Mots Masqués - Fils en sourdine - Aucun fil mis en sourdine - Photo de profil - Afficher les photos de profil - Impossible de payer la facture - Impossible de retirer - Impossible d\'utiliser ce Cashu - Le Mint a fourni le message d\'erreur suivant : %1$s - Cashu reçu - %1$s sats ont été envoyés à votre portefeuille. (Frais : %2$s sats) - Aucun portefeuille Cashu compatible trouvé dans le système - Impossible de récupérer la facture depuis les serveurs du destinataire - Le fournisseur de connexion de votre portefeuille a retourné l\'erreur suivante : %1$s - Impossible d\'assembler LNUrl à partir de l\'adresse Lightning \"%1$s\". Vérifiez la configuration de l\'utilisateur - Impossible de récupérer la facture à partir de %1$s: %2$s - Erreur lors de l\'analyse du JSON de %1$s. Vérifiez la configuration lightning de l\'utilisateur - URL de callback introuvable dans la réponse de %1$s - Montant de la facture (%1$s sats) incorrect de %2$s. Il aurait dû être %3$s - Impossible de créer une facture lightning avant d\'envoyer le zap. Le portefeuille lightning du destinataire a envoyé l\'erreur suivante : %1$s - Utilisateur en lecture seule - Aucune réaction configurée - Livraison - Affichage dans l\'application - Catégories - Message de %1$s - Bonjour %1$s, est-ce toujours disponible ? - Vêtements - Accessoires - Électronique - Mobilier - Articles de collection - Livres - Animaux de compagnie - Artisanat - Accueil - Bureau - Nourriture - Divers - Autres - Échec du téléversement du fichier - Impossible d\'ouvrir le fichier compressé - Erreur de téléversement : %1$s - Le serveur n\'a pas fourni d\'URL après le téléversement - Impossible de télécharger le média depuis le serveur - Impossible de vérifier le fichier téléchargé après le téléversement : %1$s - Impossible de téléverser vers %1$s: %2$s - Échec de la suppression : %1$s - Le média est trop volumineux pour NIP-95 - Chiffrer les fichiers - Chiffrer les fichiers avant le téléversement pour la confidentialité. Certains serveurs peuvent ne pas accepter les fichiers chiffrés sur les comptes gratuits. - Échec du téléversement chiffré - De nombreux serveurs n\'acceptent pas les fichiers chiffrés sur les comptes gratuits. Vous pouvez réessayer sans chiffrement. - Utiliser le codec H.265/HEVC - Une meilleure qualité avec des tailles de fichier plus petites, mais tous les appareils ne supportent pas la lecture H.265. - Convertir GIF en MP4 - Convertit les GIF animés en vidéo MP4 pour une taille de fichier réduite et une meilleure compatibilité de lecture. - Supprimer les métadonnées privées - Tente de supprimer les métadonnées privées des fichiers multimédias pris en charge avant le téléversement - Les métadonnées n\'ont pas pu être supprimées - Échec de la suppression des métadonnées privées du média. Téléversement annulé. - Téléversement annulé - Impossible de supprimer les métadonnées de l\'AVIF : %1$s - Accueil - Découvrir - Calendriers - Listes de calendriers - Échecs - Portefeuille - Portefeuille Cashu (NIP-60) Clé nutzap (avancé) Une clé privée distincte utilisée uniquement pour recevoir les nutzaps NIP-61. Ce n\'est pas votre clé d\'identité Nostr. Générer une nouvelle clé Clé privée P2PK (hex) - Modifier les mints Enregistrer les modifications - - +%1$d de plus - +%1$d de plus - - - Recommandé par %1$d autre - Recommandé par %1$d autres - - Mints populaires - Mints correspondants - Reçu - Envoyé - Publier une demande de suppression pour votre recommandation kind:38000 de %1$s. Les relais qui respectent NIP-09 la supprimeront. - %1$s sats récupérés sur %2$s preuves. - Payer %1$s sat + jusqu\'à %2$s sat de frais ? - Nutzap échoué - Aucune clé publique de destinataire sur la note - Les nutzaps sont publics et révéleraient cette note privée. Utilisez un zap Lightning à la place. - Impossible de construire la référence d\'événement - En attente du paiement de la facture… - Vérification du mint… - Lent - Rapide - ~1 h - - Envoyer %1$s sats, %2$d voie - Envoyer %1$s sats, %2$d voies - - - Utiliser la répartition à %1$d voie de cette note - Utiliser la répartition à %1$d voies de cette note - - - Répartition entre %1$d destinataire - Répartition entre %1$d destinataires - - - Ignorer %1$d destinataire avec uniquement une adresse Lightning — le on-chain nécessite une clé publique Nostr pour dériver l\'adresse. - Ignorer %1$d destinataires avec uniquement une adresse Lightning — le on-chain nécessite une clé publique Nostr pour dériver l\'adresse. - - chargement du solde - construction de la transaction - signature - diffusion - publication du reçu - Le backend de la chaîne Bitcoin n\'est pas configuré - Impossible de charger votre solde Bitcoin - Impossible de construire la transaction - La part d\'un destinataire est inférieure au dust - Impossible de signer la transaction - Impossible de diffuser la transaction - Paiement envoyé, mais le reçu de zap n\'a pas pu être publié - - Paiement envoyé (%1$d reçu sur %2$d publié), mais le reçu suivant n\'a pas pu être publié - Paiement envoyé (%1$d reçus sur %2$d publiés), mais le reçu suivant n\'a pas pu être publié - - Importer des abonnements - Nouveau produit - Nouvel Article - Nouvel événement de calendrier - Modifier l\'événement de calendrier - Nouveau calendrier - Modifier le calendrier - Fil - Mois - Semaine - Jour - - %1$s, %2$d événement - %1$s, %2$d événements - - En cours - %1$s · se termine %2$s - Partager l\'événement de calendrier - Rappels de calendrier - Avertissement lorsqu\'un événement auquel vous participez est sur le point de commencer. - Événement de calendrier - - Commence dans %1$d minute - Commence dans %1$d minutes - - Le téléversement de l\'image a échoué - L\'image sélectionnée n\'a pas pu être téléversée. Réessayez ou collez une URL. - Rappels du calendrier - Envoyer des rappels - Une notification se déclenche lorsqu\'un événement auquel vous participez est sur le point de commencer. - Ouvrir dans la carte - Ouvrir le lien - Ouvrir toutes les réactions à ce message - Fermer toutes les réactions à ce message - Barre de navigation inférieure Glissez pour réorganiser. Activez ou désactivez pour ajouter ou supprimer un élément de la barre inférieure. Avec zéro élément, la barre inférieure est masquée. Réorganiser Choisissez les onglets qui apparaissent sur l\'écran d\'accueil. Lorsqu\'un seul onglet est actif, la barre d\'onglets est masquée. - Tout - Interface du profil Choisissez les sections et les fils qui apparaissent sur les écrans de profil utilisateur. Toutes les options sont activées par défaut. - Badges du profil - Recommandations d\'applications - Fil des zaps reçus - Fil des abonnés - Ligne de réactions - Boutons du lecteur vidéo - Visualiseur audio - Date d\'expiration - Adresse invalide - Amethyst a reçu une URI à ouvrir mais cette URI était invalide : %1$s - Relais de boîte de réception MP - Relais de recherche - De bonnes options sont:\n%1$s - Relais d\'envoi - Relais de réception - Paramètres du relais - Relais publics d\'accueil - L\'utilisateur publie son contenu sur ces relais - Ce type de relais stocke tout votre contenu. Amethyst enverra vos messages ici et d\'autres utiliseront ces relais pour trouver votre contenu. Insérez entre 1 et 3 relais : il peut s\'agir de relais personnels, de relais payants ou de relais publics. - Relais de messagerie publique - L\'utilisateur reçoit les notifications sur ces relais - Ce type de relais reçoit toutes les réponses, commentaires, likes et zaps de vos messages. Insérez de 1 à 3 relais et assurez-vous qu\'ils acceptent les messages de n\'importe qui. - Relais de la boîte de réception MP - L\'utilisateur reçoit les MPs sur ces relais - Insérez de 1 à 3 relais pour servir de boîte de réception privée. Les autres utilisateurs utiliseront ces relais pour vous envoyer des MPs. Les relais de la boîte de réception MP doivent accepter tout message de tout le monde, mais ne vous permet que de les télécharger. De bonnes options sont:\n - inbox.nostr.wine (payant)\n - auth.nostr1.com (gratuit)\n - you.nostr1.com (relais personnels - payant) - Relais KeyPackage - Relais où vos MLS KeyPackages sont publiés (MIP-00). Les autres utilisateurs récupèrent ces KeyPackages pour vous inviter dans des discussions de groupe Marmot. Insérez entre 1 et 3 relais qui acceptent les événements KeyPackage de votre part et autorisent les lectures publiques. - Relais privés - Insérez entre 1 et 3 relais pour stocker des événements que personne d\'autre ne peut voir, comme vos Brouillons et/ou paramètres d\'application. Idéalement, ces relais sont soit locaux soit nécessitent une authentification avant de télécharger le contenu de chaque utilisateur. - Relais connectés - Liste actuelle des relais utilisés - Relais de recherche - Liste des relais à utiliser pour la recherche et l\'étiquetage des utilisateurs. L\'étiquetage et la recherche ne fonctionneront pas si aucune option n\'est disponible. - Relais locaux - Liste des relais qui sont en cours d\'exécution sur cet appareil. - Transférer les profils vers le relais local - Envoyer tous les événements de profil (kind 0) reçus vers votre relais local - Relais de confiance - Relais de confiance ne nécessitant pas une connexion Tor pour - Flux de relais favoris - Relais que vous visitez fréquemment pour voir leur flux global - Relais Proxy - Relais agrégateurs que l\'application doit utiliser pour télécharger vos flux, tels que filter.nostr.wine. Cela remplace le modèle de boîte d\'envoi et permettra à l\'application de se connecter uniquement aux relais de vos listes. - Relais de diffusion - Relais qui se spécialisent dans la publication de vos notes à tous les autres relais, comme sendit.nosflare.com. Amethyst ajoutera ce relais à tous vos nouveaux événements - Relais indexeur - Relais qui se spécialisent dans l\'hébergement des métadonnées et des listes de relais de chacun, comme purplepag.es. Amethyst utilisera ces relais pour trouver des utilisateurs qui ne sont pas dans vos listes. - Relais bloqués - Amethyst ne se connectera jamais à ces relais - Exporter les paramètres de relais Web : Aperçu À propos Liens Mainteneurs Sujets - Preuve d\'horodatage - Il y a une preuve que ce message a été signé avant %1$s. La preuve a été estampillée dans la blockchain Bitcoin à cette date et à cette heure. - Modifier le Message - Il n\'est pas possible de répondre à un brouillon - Il n\'est pas possible de citer un brouillon - Il n\'est pas possible de réagir à un brouillon - Il n\'est pas possible de zapper un brouillon - Brouillon - Mauvaise requête - Le serveur ne peut pas ou ne veut pas traiter la requête. - Non autorisé - L\'utilisateur n\'a pas d\'identifiants d\'authentification valides - Paiement requis - Le serveur requiert un paiement pour compléter la requête - Interdit - L\'utilisateur n\'a pas les droits d\'accès pour effectuer la requête - Non Trouvé - Le serveur ne peut pas trouver l\'adresse demandée - Méthode non autorisée - Le serveur supporte la méthode de requête, mais pas la ressource cible - Non Acceptable - Le serveur ne trouve aucun contenu qui satisfasse la requête. - Authentification du proxy requise - L\'utilisateur n\'a pas d\'identifiants d\'authentification valides - Expiration de la requête - Le serveur a expiré en attente de quelqu\'un d\'autre - Conflit - Le serveur ne peut pas répondre à la requête car il y a un conflit avec la ressource - Parti - Le contenu demandé a été définitivement supprimé du serveur et ne sera pas rétabli - Longueur requise - Le serveur rejette la requête car elle nécessite une définition - La précondition a échoué - Conditions préalables de la demande dans les champs de l\'entête que le serveur ne respecte pas - Données trop grandes - La requête est supérieure aux limites définies par le serveur, et le serveur refuse de la traiter - URI trop longue - L\'URL demandée par le client est trop longue pour que le serveur puisse la traiter. - Type de média non pris en charge - La requête utilise un format média que le serveur ne prend pas en charge - Plage non satisfaisante - Le serveur ne peut pas remplir la valeur indiquée dans le champ d\'entête Range de requête. - Attente échouée - Le serveur ne peut pas répondre aux exigences indiquées par le champ d\'entête Expect de la requête - Mise à jour requise - Le serveur refuse de traiter la requête en utilisant le protocole courant, à moins que le client ne passe à un autre protocole. - Erreur interne du serveur - Le serveur a rencontré une erreur inattendue et ne peut pas compléter la requête - Non implémenté - Le serveur ne peut pas répondre à la requête ou ne reconnaît pas la méthode de requête - Mauvaise passerelle - Le serveur agit comme passerelle et a reçu une réponse invalide de l\'hôte - Service indisponible - Ceci se produit souvent lorsqu\'un serveur est surchargé ou stoppé pour maintenance - Délai d\'attente de la passerelle - Le serveur agissait comme une passerelle ou un proxy et a expiré, en attente d\'une réponse - Version HTTP non prise en charge - Le serveur ne prend pas en charge la version HTTP de la requête - Variant Also Negotiates - Le serveur a une erreur de configuration interne - Stockage insuffisant - Le serveur n\'a pas assez d\'espace pour traiter la demande avec succès - Boucle détectée - Le serveur détecte une boucle infinie lors du traitement de la requête - Authentification réseau requise - Le client doit être authentifié pour accéder au réseau Serveurs Blossom Ajoutez autant de serveurs que vous le souhaitez. Vous pourrez choisir celui à utiliser plus tard lors du téléversement de votre image - Ajouter un serveur NIP-96 - Ajouter un serveur Blossom Télécharger - Échec de l\'ouverture du fichier - Aucune application torrent installée pour ouvrir et télécharger le fichier. - L\'événement ne possède pas assez d\'informations pour construire un lien magnet - Mes listes - Flux - Centres d\'intérêt - Lieux - Communautés - Listes - Algorithmes de flux - Tous les algorithmes de flux favoris - Relais - Algorithmes de flux favoris - Message privé - Message public - Impossible de partager l\'image, veuillez réessayer plus tard… - Impossible de partager l\'image, veuillez réessayer plus tard… - Téléchargement de la vidéo… - Ne pas traduire depuis - Les langues affichées ici ne seront pas traduites. Sélectionnez une langue pour la supprimer et l\'avoir traduite à nouveau. - Traduire vers - Choisir la langue dans laquelle traduire le contenu. - Préférences d\'affichage de la langue - Pour chaque paire de langues traduites, choisissez quelle langue afficher en premier. - Lecture - Ce message disparaîtra dans %1$s - Métadonnées de la liste de suivi - Les métadonnées des listes de suivi sont visibles par tous sur Nostr. Seuls vos membres privés sont chiffrés. - Pack de suivi metadata - Les métadonnées du pack de suivi sont visibles par tous sur Nostr et sont fréquemment publiées sur de nombreux sites Web comme kits de démarrage pour les nouveaux utilisateurs. - Modifier le Pack de Suivi - Agrandir - Réessayer - Réaction - Message vocal - Réponse vocale - Relais de sortie - Applications - Recommandations d\'applications - Paramètres utilisateur - En-tête audio - Piste audio - Piste musicale - Playlist musicale - Épisode de podcast - Émission de podcast - Podcasts créés - Podcasts favoris - Récompenses de badge - Définitions de badges - Ensemble de badges acceptés - Badges de profil - Relais bloqués - Serveurs Blossom - Serveurs Nests - Auth Blossom - Relais de diffusion - Liste de signets - Ancienne liste de signets - Rendez-vous journalier - Calendrier - Rendez-vous - RSVP rendez-vous - Jeux d\'échecs - Auth échecs - Relais favoris - Défis aux échecs - Acceptation de partie d\'échecs - Coup aux échecs - Fin de partie d\'échecs - Offre de nulle aux échecs - Définition de canal - Masquer message du canal - Liste de canaux - Message de canal - Métadonnées du canal - Utilisateur muet du canal - Fichier DM - Message DM - Relais DM - Petites annonces - Commentaires - Déf. communauté - Liste de communautés - Publication communautaire - Liste de suivi - Suppressions - Brouillons - Packs d\'émojis - Liste des packs d\'émoji - Chat éphémère - Salles de discussion éphémères - En-têtes de fichier - Galerie de profil - Serveurs de fichiers - Données blob - En-têtes blob - Données médicales - Packs de suivi - Suivis géohash - Problème Git - Correctif Git - Dépôt Git - Réponse Git - Objectifs Zap - Suivis de hashtag - Surlignages - Auth Http - Liste de relais index - Prologue d\'aventure - Scène d\'aventure - Lecture d\'aventure - Signets nommés - Discussions en direct - Diffusions en direct - Requête NWC - Réponse NWC - Zaps privés - Demande Zap - Salle de réunion - Présence en salle - Espace de réunion - Profil - Liste en sourdine - Statut DVM - Demande de contenu DVM - Réponse contenu DVM - Demande utilisateur DVM - Réponse utilisateur DVM - Listes de personnes - Photos - Entraînements - Épingles - Sondage Zap - Sondage - Réponse au sondage - Relais privés - Relais proxy - Message public - Réactions - Carte de contact - Auth relais - Découverte de relais - Annonce de surveillance de relais - Ensemble de relais - Signalements - Suppression d\'utilisateur - Sceaux - Relais de recherche - Statut utilisateur - Modifications - Commentaires torrent - Relais de confiance - Fournisseurs de confiance - Vidéo (Repl) - Vidéos - Vidéos courtes - Message vocal - Réponse vocale - Signet web - %1$d%% de disponibilité - Paramètres Namecoin - Sync relay - Explorateur Bitcoin (OTS) - événements de vous - événements pour vous - événements recherchables - profils - listes de sortie - Vu il y a %1$s - Vu le %1$s (il y a %2$s) - Vu à l\'instant - Jamais vu - - %1$d heure - %1$d heures - - - %1$d jour - %1$d jours - - - %1$d semaine - %1$d semaines - - - %1$d mois - %1$d mois - - - %1$d an - %1$d ans - - - %1$d facture en attente - %1$d factures en attente - - - Fonds détenus chez %1$d mint que vous n\'utilisez pas - Fonds détenus chez %1$d mints que vous n\'utilisez pas - - %1$s sat déplacés vers %2$s. - Diffuser sur l\'appareil - Arrêter la diffusion - Mise en ligne HLS - Mise en ligne de %1$s (%2$d sur %3$d) - Demande d\'attestation - Recommandation de l\'attesteur - Compétence de l\'attesteur - Signets web - Ajouter un signet web - Modifier le signet web - %1$s financés sur un objectif de %2$s sats - Nouvel objectif - Demande de suppression - Demande de suppression envoyée - Historique des suppressions - Utilisateurs - Événements - Paramètres - Proposer des améliorations de texte - Utilise un modèle IA embarqué pour proposer des corrections de texte et des changements de ton. - Diffusions suivies - Utilise le diffuseur suivi lors de l\'envoi d\'événements. Affiche la progression en direct et l\'état par relais pendant la diffusion. - Suggérer des entraînements à partager - Lit les entraînements terminés depuis Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) et suggère de les partager en tant que publication. La permission n\'est demandée qu\'à la connexion. - Paramètres de composition - Créer automatiquement des brouillons - Enregistre automatiquement un brouillon lorsque vous tapez ou quittez un compositeur avec du texte non envoyé, et l\'envoie à vos relais de boîte d\'envoi privée. - Nouveau pack d\'emojis - Modifier le pack d\'emojis - Mes packs d\'emojis - Les emojis publics sont visibles par tous et apparaissent dans votre menu de réactions et le sélecteur de saisie automatique \":\" lorsque ce pack est dans votre liste d\'emojis. - Les emojis privés sont stockés chiffrés sur les relais et visibles uniquement par vous. Ils apparaissent dans votre menu de réactions et la saisie automatique \":\" comme les emojis publics. - Le brouillon fait %1$d octets ; cette communauté limite ce kind à %2$d octets. - Le brouillon fait %1$d octets ; cette communauté limite les événements à %2$d octets. - Vous avez déjà publié %1$d événements de ce kind aujourd\'hui (limite %2$d). - Site Nowhere - Événement Nowhere - Collecte de fonds Nowhere - Boutique Nowhere - Pétition Nowhere - Message Nowhere - Drop Nowhere - Art Nowhere - Forum Nowhere - - %1$d membre - %1$d membres - - Informations du groupe mises à jour - Échec de la mise à jour : %1$s - Échec de la création du groupe : %1$s - Échec du départ du groupe : %1$s - Ajout de %1$s… - Échec de l\'ajout de %1$s : %2$s - erreur inconnue - Membre retiré - Échec de la suppression du membre : %1$s - Privilèges d\'administrateur accordés - Échec de l\'octroi des droits d\'administrateur : %1$s - Privilèges d\'administrateur révoqués - Échec de la révocation des droits d\'administrateur : %1$s - Pas membre de ce groupe Le service lightning du récepteur à %1$s n\'est pas disponible. Il a été calculé à partir de l\'adresse lightning \"%2$s\". Erreur: %3$s. Vérifiez si le serveur est en ligne et si l\'adresse lightning est correcte Impossible de résoudre %1$s. Vérifiez si vous êtes connecté, si le serveur est actif et si l\'adresse Lightning %2$s est correcte.\n\nL\'erreur était : %3$s Erreur lors de l\'analyse du JSON de la facture de %1$s. Vérifiez la configuration lightning de l\'utilisateur diff --git a/amethyst/src/main/res/values-fr-rFR/strings.xml b/amethyst/src/main/res/values-fr-rFR/strings.xml index 001bf177de..3d8e945bb1 100644 --- a/amethyst/src/main/res/values-fr-rFR/strings.xml +++ b/amethyst/src/main/res/values-fr-rFR/strings.xml @@ -1,116 +1,12 @@ - - Ce message a plus de %1$d hashtag - Ce message a plus de %1$d hashtags - - - %1$d asset inclus - %1$d assets inclus - - - +%1$d\nréponse - +%1$d\nréponses - - Spam - Le nombre d\'événements spam provenant de ce relais - Falsification d\'identité - Comportement illégal - Demande de suppression - Connectez vous avec une clé privée pour pouvoir répondre - Connectez vous avec une clé privée pour pouvoir booster des posts - Connectez vous avec une clé privée pour pouvoir aimer des posts - Aucun montant sélectionné pour le zap. Appui long pour modifier - Connectez vous avec une clé privée pour pouvoir envoyer des zaps - Connectez-vous avec une clé privée pour Suivre - Connectez-vous avec une clé privée pour ne plus Suivre - Vous utilisez une clé publique et les clés publiques sont en lecture seule. Connectez-vous avec une clé privée pour pouvoir masquer un mot ou une phrase - Vous utilisez une clé publique et les clés publiques sont en lecture seule. Connectez-vous avec une clé privée pour pouvoir afficher un mot ou une phrase - Vous utilisez une clé publique et les clés publiques sont en lecture seule. Connectez-vous avec une clé privée pour pouvoir téléverser - Vous utilisez une clé publique et les clés publiques sont en lecture seule. Connectez-vous avec une clé privée pour pouvoir signer des événements - Déchiffrement non autorisé - Le signataire n\'a pas autorisé le décryptage nécessaire pour effectuer cette opération. Activez les décryptions NIP-44 dans votre application signataire et réessayez - Signataire introuvable - L\'application de signature a-t-elle été désinstallée ? Vérifiez si le signataire est installé et a ce compte. Déconnectez-vous et reconnectez-vous de l\'application signataire a changé. - Le signataire externe a renvoyé des données qui sont étranges pour la requête. Il peut y avoir un bug sur Amethyst ou le signataire. - Zaps - Boost boosté modification #%1$s - Proposer une Modification - Ajouter - Erreur d\'analyse du message d\'erreur - Profil - Filtres de sécurité - Demande de facture… - Le service de débit n\'a pas finalisé le paiement. - Payer %1$s via %2$s? - Payer cette facture via %1$s? - Saisissez un montant valide pour cette offre. - Unique - Quotidien - Hebdomadaire - Mensuel - Payer - Payement via %1$s… - Paiement échoué - Dépensable pour ce destinataire : %1$s sats - Transaction : %1$s - "Aperçu de l'image pour %1$s" - Description - Quoi de neuf ? - Rédiger un message… - Envoyer Sauvegarder - Envoyer - Créer Renommer - Annuler - Erreur - Erreurs - Pourcentage de connexions réussies vers le relais - Enregistrer sur le téléphone - Image enregistrée dans la galerie - Le téléchargement de la vidéo a démarré… - Le téléchargement du média a démarré… - Épingler en haut - Détacher - Échec de l\'enregistrement de l\'image - Vidéo enregistrée dans la galerie vidéo du téléphone - Impossible d\'enregistrer la vidéo - PDF enregistré dans Téléchargements/Amethyst - Échec de l\'enregistrement du PDF - Aucune application de caméra trouvée sur cet appareil - Cliquez et maintenez pour enregistrer un message - Erreur d\'envoi - Échec de l\'envoi du message vocal - NIP-95 n\'est pas encore supporté pour les messages vocaux - Échec de l\'envoi de la voix : %1$s - Aucun - Profond - Haute - Neutre - L\'utilisateur n\'a pas configuré d\'adresse Lightning pour recevoir des sats - "répondre ici" - Connus - Nouvelles demandes - Utilisateurs bloqués - Nouveaux sujets - Conversations - Plus d\'options - Afficher le QR code de la clé privée - Afficher le QR code de la clé privée chiffrée - Suivre - Suivre en retour - Cacher le mot de passe - Clé non valide - Clé invalide : %1$s - Mot de passe requis - La clé est requise - Un nom est requis @@ -119,162 +15,7 @@ Nouveau profil de tchat : - Partir - Ne plus suivre - Discussion éphémère - Relais de discussion - Relais de discussions - Les relais de discussions sont des groupes de discussion contrôlés par leur relais d\'origine. - Ils sont visibles par tous les utilisateurs de Nostr et tout le monde peut y participer. - Ils sont idéaux pour les communautés ouvertes autour de sujets spécifiques. Certains de ces groupes sont éphémères - et, par conséquent, les messages de discussion disparaissent avec le temps - Chat public - Groupe MLS - Métadonnées de tchat public - Les conversations publiques sont visibles pour tout le monde sur Nostr et n\'importe qui - peut y participer. Elles sont idéales pour les communautés ouvertes autour de sujets spécifiques. - La modération peut être contrôlée en supprimant les messages sur ses relais - Relais - Insérez entre 1 et 3 relais qui hébergent ce groupe. - Les clients Nostr utilisent ce paramètre pour savoir où télécharger les messages et où les envoyer. - Retirer - jamais - maintenant - h - m - d - Nudité - Blasphème / Discours haineux - Clés de sauvegarde - Échec du chiffrement de votre clé privée - Clé secrète (nsec) copiée dans le presse-papiers - Copier ma clé secrète - Échec de l\'authentification - La biométrie n\'a pas pu authentifier le propriétaire de ce téléphone - La biométrie n\'a pas pu authentifier le propriétaire de ce téléphone. Erreur : %1$s - Copie du contenu de la note dans le presse-papiers - Copie du @npub utilisateur dans le presse-papiers - Copie de l\'ID de la note (@note1) dans le presse-papiers - "<Impossible de déchiffrer le message privé>\n\nVous avez été cité dans une conversation privée/cryptée entre %1$s et %2$s." - Comptes - Navigation - Vous - Fils - Créer - Système - Retour - Partager le Lien Navigateur - Partager - Partager en tant qu\'image - Partager en tant qu\'URL de l\'image - ID Note - Supprimer - Muet le fil - Rétablir le fil de discussion - - Bloquer - Favoris - Signets migrés avec succès - Brouillons - Publications planifiées - Planifier la publication - Annuler la planification - Les publications planifiées peuvent ne pas être publiées avant la prochaine ouverture de l\'application. Activez le mode permanent dans Paramètres → Préférences d\'interface pour une planification fiable en arrière-plan. - Les publications planifiées peuvent ne pas être publiées avant la prochaine ouverture de l\'application. Les publications planifiées des autres comptes ne se déclencheront pas pendant que ce compte est actif. Activez le mode permanent dans Paramètres → Préférences d\'interface pour une planification fiable en arrière-plan. - %1$s · dans %2$s - %1$s · il y a %2$s - Demain - Déconnecté - - Déconnecté · %d publication planifiée supprimée - Déconnecté · %d publications planifiées supprimées - - Publication planifiée publiée - Échec de la publication planifiée - Publications planifiées - Notifications lorsqu\'une publication planifiée est publiée ou échoue. - Envoyer maintenant - Erreur : %1$s - Planifié - Envoi en cours… - Échoué - Envoyé - Annulé - - Vous avez %d message planifié qui n\'a pas encore été publié. La déconnexion le supprimera définitivement. - Vous avez %d messages planifiés qui n\'ont pas encore été publiés. La déconnexion les supprimera définitivement. - - - %d en file d\'attente - %d en file d\'attente - - - · %d due dans 1h - · %d dues dans 1h - - - vers %d relais - vers %d relais - - ID de note copié - Sondages - Ouvrir - Fermé - Badges - Communautés - Nouvelle communauté - Modifier la communauté - Modérateurs - Relais - Règles vérifiables (facultatif) - Types d\'événements autorisés - Texte court (1) - Article long format (30023) - Publication d\'image (20) - Publication vidéo (21) - Vidéo courte (22) - Commentaire communautaire (1111) - Utilisateurs bannis - Filtre Web-of-trust (facultatif) - Taille maximale globale d\'événement (facultatif) - Nouveau badge - Badge de récompense - Badges de profil - Images - Entraînements - Nouvel entraînement - Course à pied - Marche - Cyclisme - Randonnée - Natation - Aviron - Musculation - Yoga - Méditation - Alimentation - Jeûne - Circuit - EMOM - AMRAP - Applications Applications - nSites - Navigateur - Chargement via Tor. Appuyer pour utiliser le web ouvert. - Chargement via le web ouvert. Appuyer pour utiliser Tor. - Favoris - Découvrir des applications web - Applications favorites - Ajouter aux favoris - Supprimer des favoris - Se charge via Tor. - Se charge via le web ouvert. - Publié sur les relais - Fichier téléversé - Paiement effectué - Cette application n\'est pas encore chargée. Réessayez dans un instant. - Récent Permissions nApplet Aucune permission nApplet pour l\'instant Les permissions que vous accordez aux nApplets apparaîtront ici. @@ -284,46 +25,11 @@ Shell - Identité - Actions clavier - Relais - Stockage - Paiements - Réseau - Téléversements Demander quelles fonctionnalités sont disponibles - Lire votre clé publique - Associer des raccourcis clavier - Lire, signer & publier vos événements - Son propre stockage privé - Payer des factures Lightning - Récupérer des ressources web et Blossom - Téléverser des fichiers sur votre serveur multimédia - Thème - Notifications - Messagerie - Correspondre aux couleurs de votre application - Vous afficher des notifications - Échanger des messages avec d\'autres napplets Fonctionnalité : %1$s - Ce nApplet veut lire votre clé publique. - Ce nApplet veut lire votre profil et les données de votre compte. - Ce nApplet veut signer et publier un événement de type %1$d en votre nom. - Ce nApplet veut signer et publier un événement de type %1$d en votre nom : - Ce nApplet veut envoyer un événement chiffré en votre nom. - Ce nApplet veut lire des événements depuis vos relais. - Ce nApplet veut utiliser son stockage privé. Ce nApplet veut payer une facture Lightning. - Ce nApplet veut récupérer une ressource web. - Ce nApplet veut téléverser un fichier sur votre serveur multimédia. - Ce nApplet veut vous afficher des notifications. - Ce site veut signer un événement de type %1$d avec votre clé Nostr. - - Ce nApplet veut payer une facture Lightning de %1$d sat. - Ce nApplet veut payer une facture Lightning de %1$d sats. - - signer pour %1$s (type : %2$d) - chiffrer un message - lire vos messages privés - Applications connectées Révoquer toutes les autorisations @@ -365,220 +67,18 @@ - Shorts - Chats publics - Packs d\'abonnements - Diffusions en direct - Lever la main - Baisser la main - Couper le son - Activer le son - Impossible d\'envoyer le message - Couper le micro - Réactiver le micro - Maintient l\'audio actif pendant qu\'une salle est ouverte. - Nest connecté - Nest — En direct - Appuyer pour revenir. - Arrêter - a levé la main - est monté sur scène - parle actuellement - a rejoint en tant qu\'auditeur - a quitté le nest - Quitter - Impossible de marquer la salle comme fermée. Départ en cours — la salle se fermera automatiquement. - - %1$d auditeur - %1$d auditeurs - - Sourdine locale - Rétablir cet intervenant - Suivre - Ne plus suivre - Mettre en sourdine - Réactiver le son - Impossible d\'enregistrer votre liste de serveurs nest. Réessayez. - Serveurs nest - Vos serveurs - Enregistré en tant qu\'événement remplaçable de type kind-10112 pour que d\'autres clients puissent lire votre préférence. - Serveurs recommandés - Suggestions intégrées que vous pouvez ajouter à votre liste en un seul appui. - Vidéos - Musique - Listes de lecture - Épisodes - Podcasts Premium - - %1$d chapitre - %1$d chapitres - - Nouvel épisode - Modifier l\'épisode - URL de la vidéo - URL de la transcription - URL des chapitres - Ajouter un fichier audio - MP3, M4A, ou autre audio - Votre podcast - Ajouter une pochette - Afficher le titre - Mon podcast - Auteur - Email de contact - Site internet - Catégories - Technologie, Actualités - https://… - Langue - en - Droit d\'auteur Ajouter un destinataire - Cet utilisateur n\'a pas d\'adresse Lightning - - %1$d épisode - %1$d épisodes - - Nouvelle piste musicale - Nouvelle liste de lecture - - %1$d piste - %1$d pistes - - Ajouter aux Favoris Publics - Supprimer des Favoris Publics - Épingler sur le profil - Retirer du profil - Nouvelle liste de favoris - Métadonnées de la liste de favoris - Ensembles de hashtags - Nouvel ensemble d\'intérêts - Renommer - Rendre privé : envoyer la note en gift-wrap uniquement aux utilisateurs notifiés - Rendre public - Les réponses à une note privée restent toujours privées - Visible par Aucun récepteur pour le moment : vous seul serez en mesure de voir cette note. Ajoutez des personnes pour la partager. Ajouter Retirer l\'utilisateur des notifications Rechercher et ajouter un utilisateur à notifier - Les métadonnées des listes de favoris peuvent être vues par n\'importe qui sur Nostr. Seuls vos membres privés sont chiffrés. - Déplacer en public - Déplacer en privé - Recharger & envoyer le zap - Envoyer le zap - Recharger %1$s sats sur %2$s et zapper %3$s %4$s sats · frais ≈ %5$s sats - Option %s - (0–100)% - Choix unique - Choix multiples - Impossible de voter - Le Sondage est fermé aux nouveaux votes - Un seul vote par utilisateur est autorisé sur ce type de sondage - Les auteurs du sondage ne peuvent pas voter dans leurs propres sondages. - Qu\'est-ce que cela signifie ? - Ce contenu est le même depuis le message - Ce contenu a changé. L\'auteur n\'a peut-être pas vu ou approuvé le changement - Ajouter un média - Ajouter une Image - Ajouter une Vidéo - Ajouter un Document - Serveur fichier - Choisissez un serveur vers lequel téléverser ce fichier - Serveurs média Définissez vos serveurs de téléversement de média préférés. Serveurs multimédia recommandés Liste par défaut d\'Amethyst. Vous pouvez les ajouter individuellement ou ajouter la liste. - Cibles de paiement - Ajoutez des adresses de paiement pour différents réseaux (ex. bitcoin, lightning, ethereum). - Aucune application trouvée pour traiter ce paiement. Veuillez installer un portefeuille compatible. - Aucune application installée pour traiter les paiements %1$s. Veuillez installer un portefeuille compatible. - Impossible d\'ouvrir le paiement - Options de confidentialité - Tous les abonnements - Tous les abonnements de l\'utilisateur - Liste de suivi par défaut - Autour de moi - Général - Sélectionné - Le mien - Liste en Sourdine - Nouvelle liste de suivi - Nouveau pack de suivi - Modifier la liste - Le port par défaut est 9050 - Port Socks Orbot - Activer le moteur Tor - Utiliser la version interne ou Orbot - Tor/Préréglages de confidentialité - Modifier rapidement tous les paramètres ci-dessous - Url/Relais en oignon - Utiliser Tor pour n\'importe quelle url .onion - Relais MP - Forcer Tor à envoyer et recevoir des MPs - Relais non approuvés - Forcer Tor pour les relais de boîte de réception - Relais de confiance - Forcer Tor sur tous les relais de vos listes - Photos de profil - Forcer Tor lors du chargement des photos de profil - Aperçu des URL - Forcer Tor lors du chargement des aperçus d\'url - Images - Forcer Tor lors du chargement des images - Vidéos - Forcer Tor lors du chargement des vidéos - Opérations financières - Forcer Tor pour les transferts en zaps, lightning ou cashu - Vérification de l\'adresse Nostr - Forcer Tor lors de la vérification des adresses NIP-05 - Téléversements de média - Forcer Tor lors du téléversement de contenu - Interne - Orbot - Désactivé - Basique - Par défaut - Tous sauf les médias - Confidentialité complète - Personnalisé - Utiliser Tor lorsque le serveur le demande - Masque votre IP des relais aléatoires - Masque votre adresse IP pour tout, sauf les images et les vidéos - Masque votre IP pour toutes les connexions - Faites votre choix manuellement - Messages privés - Vous notifie lorsqu\'un message privé est reçu - Zaps reçus - Vous notifie lorsque quelqu\'un vous zap - %1$s sats - De %1$s - pour %1$s - Répondre - Marquer comme lu - Nouveaux messages - Nouveaux zaps - Réactions - Vous notifie lorsque quelqu\'un réagit à votre publication - %1$s a réagi à votre publication - pour %1$s - Nouvelles réactions - Échecs - Vous avertit des événements liés aux parties d\'échecs - %1$s a accepté votre défi aux échecs - %1$s déplacé — votre tour - Mises à jour d\'échecs - Réponses - Vous notifie lorsque quelqu\'un répond à votre publication %1$s a répondu sur : %1$s - Nouvelles réponses - Mentions - Vous notifie lorsque quelqu\'un vous mentionne ou vous cite dans une publication - %1$s vous a mentionné - Nouvelles mentions @@ -588,37 +88,6 @@ - Appels entrants - Notifications pour les appels vocaux et vidéos entrants - Appel entrant - Appel vocal entrant\u2026 - Appel vidéo entrant\u2026 - Appel avec %1$s - Appels - Notification d\'appel en cours - Raccrocher - Accepter - Rejeter - Couper le son - Réactiver le son - Caméra activée - Caméra désactivée - Haut-parleur - Écouteurs - Bluetooth - Amethyst a besoin d\'un accès à la caméra et au microphone pour démarrer un appel vidéo. Veuillez les activer dans les paramètres de l\'application. - Amethyst a besoin d\'un accès à la caméra et au microphone pour démarrer un appel vidéo. Veuillez les activer dans les paramètres de l\'application. - Paramètres d\'appel - Maintient les connexions à vos relais de boîte de réception actives pour les notifications en temps réel - Notifications Amethyst actives - - Connecté à %1$d relais de boîte de réception - Connecté à %1$d relais de boîte de réception - - - Connecté à %1$d relais - Connecté à %1$d relais - - Connexion aux relais de boîte de réception… Service de notification permanent Maintient une connexion persistante à vos relais de boîte de réception pour une livraison instantanée des notifications. Affiche une notification permanente. Consomme plus de batterie mais garantit que vous ne manquez aucun message. - Séparer les notifications par abonnements - Afficher deux onglets de notifications — Abonnements (personnes que vous suivez) et Tout le monde. L\'indicateur de non-lu s\'allume uniquement pour l\'activité des personnes que vous suivez. - Voir les messages - Inclure les messages directs et de groupe dans l\'onglet Notifications. Désactivez pour conserver les messages uniquement dans l\'onglet Messages. - Notifier: - Aujourd\'hui - Masquer - Afficher - Avertir - Filtrer les spams - Masque les messages d\'inconnus qui étaient exactement les mêmes depuis 5 fois ou plus - Ajouter un tag client à mes événements - Lorsqu\'activé, Amethyst ajoute un tag client NIP-89 aux événements que vous publiez. - Avertir sur les rapports - Affiche un message d\'avertissement lorsque des messages ont été rapportés 5 fois ou plus par vos abonnements - Masquer les publications qui enfreignent les règles de la communauté - Supprime les publications des fils de la communauté lorsque la communauté publie un document de règles NIP-9B et qu\'un événement ne le respecterait pas. Aucun effet lorsqu\'une communauté n\'a pas de règles structurées. - Préférences de filtrage - Contenu bloqué - Vous n\'avez pas encore bloqué d\'utilisateurs. - Aucun compte n\'a été signalé comme spam lors de cette session. - Aucun mot masqué. Ajoutez un mot ci-dessous pour masquer les publications le contenant. - Aucun type de réaction sélectionné. Appuyer longuement pour changer - Lire depuis le Relay - Écrire sur le Relay - Le nombre d\'octets qui ont été envoyés à ce relais, y compris les filtres et les événements - Le nombre d\'octets qui ont été reçus depuis ce relais, y compris les filtres et les événements - Politique de confidentialité - Normes de protection de l\'enfance - À propos & Légal - Jeton Cashu - Adresse Lightning non définie - Relais - Packs à suivre - Lectures - Algorithmes de flux - Place de Marché - Diffusions en direct - Communautés - Salons - Contenu sensible - Ajouter un avertissement de contenu sensible avant de montrer ce contenu - Préférences de l\'UI Préférences de l\'application - Traductions - Réactions - Paramètres - Paramètres du compte - Paramètres de l\'application - Zone de danger - Réinitialiser l\'état Marmot - État Marmot réinitialisé. - Échec de la réinitialisation de l\'état Marmot : %1$s - Toujours - WiFi illimité - Jamais - Complet - Simplifié - Performance - Classique - Moderne - Système - Clair - Sombre - Wallet Connect - Thème - Violet - Bleu - Vert - Orange - Rouge - Rose - Police - Police utilisée dans l\'application - Défaut du système - Sans serif - Serif - Monospace - Taille de police - Mettre à l\'échelle la taille du texte dans l\'application - Petit - Normal - Grand - Très grand - Prévisualisation des images - Lecture vidéo - Lecture automatique des vidéos - Prévisualisation des URLs - Défilement immersif - Masquer les barres de navigation lors du défilement - Mode UI - Choisir le style du message - Style de la galerie de profil - Choisissez le style de la galerie - Spammeurs - Silencieux. Cliquer pour réactiver le son - Son activé. Cliquer pour mettre en silencieux - Revenir %d secondes en arrière - Avancer de %d secondes - Post exclusif à la localisation - Seuls les abonnés à cette localisation le verront. Vos abonnés généraux ne le verront pas. - - %1$d piste - %1$d pistes - - - +%1$d piste supplémentaire - +%1$d pistes supplémentaires - - Téléverser une image de couverture - Choisissez une image carrée comme illustration pour cette piste. - Téléverser un fichier audio - Choisissez un MP3, WAV ou FLAC. Il sera téléversé sur votre serveur multimédia lors de l\'enregistrement. - Téléversement de la couverture + audio et publication. Cela continuera même si vous quittez l\'écran. - Modifier la liste de lecture - Téléverser une image de couverture - Choisissez une image carrée comme illustration pour cette liste de lecture. - Téléversement de la couverture et publication. Cela continuera même si vous quittez l\'écran. Public Groupe - Privé Privé - Sujet - Impossible d\'uploader - Insérer d\'abord la destination du message - Portefeuille introuvable - Amethyst n\'a trouvé aucune application de portefeuille prenant en charge Nostr Wallet Connect (NWC).\n\nVoici ce que vous pouvez faire :\n\n1. Vérifier la prise en charge NWC : Vérifiez que votre application de portefeuille préférée est compatible avec Nostr Wallet Connect.\n\n2. Créer une connexion : Accédez à votre application de portefeuille et créez une nouvelle connexion NWC.\n\n3. Lier à Amethyst : Votre portefeuille vous proposera généralement trois options :\n\n3.1 Lien automatique : Un bouton pour ouvrir et connecter automatiquement Amethyst. Si c\'est le cas, cliquez sur ce bouton, ouvrez Amethyst et appuyez sur enregistrer sur le nouvel écran.\n\n3.2 Lien manuel : Un URI de connexion que vous pouvez copier et coller via l\'icône de collage sur cet écran.\n\n3.3 Code QR : Le portefeuille crée un code QR que vous pouvez lire depuis le bouton code QR de cet écran. - Sombre, Clair ou thème Système - Charger automatiquement les images et les GIFs - Lire automatiquement les vidéos et les GIFs - Lire automatiquement les vidéos lorsqu\'elles sont visibles à l\'écran - Afficher la prévisualisation d\'URL - Copier dans le presse-papiers - Copié dans le presse-papiers - Partager ou Enregistrer Envoyer en DM - Média ajouté - Média ajouté à votre galerie de profil - Impossible d\'envoyer un zap - Configuration lightning manquante - L\'utilisateur %1$s n\'a pas configuré d\'adresse Lightning pour recevoir des sats - Erreur lors de l\'ouverture de l\'application de signature - L\'application signataire est introuvable. Vérifiez que l\'application n\'a pas été désinstallée - Impossible de lire cette vidéo - Le codec ou le format n\'est pas pris en charge sur cet appareil (%1$s). Essayez de l\'ouvrir dans votre navigateur. - Ouvrir dans le navigateur - Requête de signature rejetée - Assurez-vous que l\'application signataire a autorisé cette transaction - Aucun portefeuille trouvé pour payer une facture lightning (Erreur : %1$s). Veuillez installer un portefeuille Lightning pour utiliser les zaps - Aucun portefeuille trouvé pour payer une facture lightning. Veuillez installer un portefeuille Lightning pour utiliser les zaps - Impossible d\'ouvrir les liens Blossom - Les applications Blossom n\'ont pas été trouvées. Veuillez installer une application Blossom locale pour voir ce fichier - Mots Masqués - Fils en sourdine - Aucun fil mis en sourdine - Photo de profil - Afficher les photos de profil - Impossible de payer la facture - Impossible de retirer - Impossible d\'utiliser ce Cashu - Le Mint a fourni le message d\'erreur suivant : %1$s - Cashu reçu - %1$s sats ont été envoyés à votre portefeuille. (Frais : %2$s sats) - Aucun portefeuille Cashu compatible trouvé dans le système - Impossible de récupérer la facture depuis les serveurs du destinataire - Le fournisseur de connexion de votre portefeuille a retourné l\'erreur suivante : %1$s - Impossible d\'assembler LNUrl à partir de l\'adresse Lightning \"%1$s\". Vérifiez la configuration de l\'utilisateur - Impossible de récupérer la facture à partir de %1$s: %2$s - Erreur lors de l\'analyse du JSON de %1$s. Vérifiez la configuration lightning de l\'utilisateur - URL de callback introuvable dans la réponse de %1$s - Montant de la facture (%1$s sats) incorrect de %2$s. Il aurait dû être %3$s - Impossible de créer une facture lightning avant d\'envoyer le zap. Le portefeuille lightning du destinataire a envoyé l\'erreur suivante : %1$s - Utilisateur en lecture seule - Aucune réaction configurée - Notifications - Livraison - Affichage dans l\'application - Catégories - Message de %1$s - Bonjour %1$s, est-ce toujours disponible ? - Vêtements - Accessoires - Électronique - Mobilier - Articles de collection - Livres - Animaux de compagnie - Sports - Fitness - Art - Artisanat - Accueil - Bureau - Nourriture - Divers - Autres - Échec du téléversement du fichier - Impossible d\'ouvrir le fichier compressé - Erreur de téléversement : %1$s - Le serveur n\'a pas fourni d\'URL après le téléversement - Impossible de télécharger le média depuis le serveur - Impossible de vérifier le fichier téléchargé après le téléversement : %1$s - Impossible de téléverser vers %1$s: %2$s - Échec de la suppression : %1$s - Le média est trop volumineux pour NIP-95 - Chiffrer les fichiers - Chiffrer les fichiers avant le téléversement pour la confidentialité. Certains serveurs peuvent ne pas accepter les fichiers chiffrés sur les comptes gratuits. - Échec du téléversement chiffré - De nombreux serveurs n\'acceptent pas les fichiers chiffrés sur les comptes gratuits. Vous pouvez réessayer sans chiffrement. - Utiliser le codec H.265/HEVC - Une meilleure qualité avec des tailles de fichier plus petites, mais tous les appareils ne supportent pas la lecture H.265. - Convertir GIF en MP4 - Convertit les GIF animés en vidéo MP4 pour une taille de fichier réduite et une meilleure compatibilité de lecture. - Supprimer les métadonnées privées - Tente de supprimer les métadonnées privées des fichiers multimédias pris en charge avant le téléversement - Les métadonnées n\'ont pas pu être supprimées - Échec de la suppression des métadonnées privées du média. Téléversement annulé. - Téléversement annulé - Impossible de supprimer les métadonnées de l\'AVIF : %1$s - Accueil - Découvrir - Messages - Notifications - Calendriers - Listes de calendriers - Échecs - Portefeuille - Portefeuille Cashu (NIP-60) Clé nutzap (avancé) Une clé privée distincte utilisée uniquement pour recevoir les nutzaps NIP-61. Ce n\'est pas votre clé d\'identité Nostr. Générer une nouvelle clé Clé privée P2PK (hex) - Modifier les mints Enregistrer les modifications - - +%1$d de plus - +%1$d de plus - - - Recommandé par %1$d autre - Recommandé par %1$d autres - - Mints populaires - Mints correspondants - Reçu - Envoyé - Publier une demande de suppression pour votre recommandation kind:38000 de %1$s. Les relais qui respectent NIP-09 la supprimeront. - %1$s sats récupérés sur %2$s preuves. - Payer %1$s sat + jusqu\'à %2$s sat de frais ? - Nutzap échoué - Aucune clé publique de destinataire sur la note - Les nutzaps sont publics et révéleraient cette note privée. Utilisez un zap Lightning à la place. - Impossible de construire la référence d\'événement - En attente du paiement de la facture… - Vérification du mint… - Lent - Normal - Rapide - ~1 h - ~30 min - ~10 min - - Envoyer %1$s sats, %2$d voie - Envoyer %1$s sats, %2$d voies - - - Utiliser la répartition à %1$d voie de cette note - Utiliser la répartition à %1$d voies de cette note - - - Répartition entre %1$d destinataire - Répartition entre %1$d destinataires - - - Ignorer %1$d destinataire avec uniquement une adresse Lightning — le on-chain nécessite une clé publique Nostr pour dériver l\'adresse. - Ignorer %1$d destinataires avec uniquement une adresse Lightning — le on-chain nécessite une clé publique Nostr pour dériver l\'adresse. - - chargement du solde - construction de la transaction - signature - diffusion - publication du reçu - Le backend de la chaîne Bitcoin n\'est pas configuré - Impossible de charger votre solde Bitcoin - Impossible de construire la transaction - La part d\'un destinataire est inférieure au dust - Impossible de signer la transaction - Impossible de diffuser la transaction - Paiement envoyé, mais le reçu de zap n\'a pas pu être publié - - Paiement envoyé (%1$d reçu sur %2$d publié), mais le reçu suivant n\'a pas pu être publié - Paiement envoyé (%1$d reçus sur %2$d publiés), mais le reçu suivant n\'a pas pu être publié - - Importer des abonnements - Nouveau produit - Nouvel Article - Nouvel événement de calendrier - Modifier l\'événement de calendrier - Nouveau calendrier - Modifier le calendrier - Fil - Mois - Semaine - Jour - - %1$s, %2$d événement - %1$s, %2$d événements - - En cours - %1$s · se termine %2$s - Partager l\'événement de calendrier - Rappels de calendrier - Avertissement lorsqu\'un événement auquel vous participez est sur le point de commencer. - Événement de calendrier - - Commence dans %1$d minute - Commence dans %1$d minutes - - Le téléversement de l\'image a échoué - L\'image sélectionnée n\'a pas pu être téléversée. Réessayez ou collez une URL. - Rappels du calendrier - Envoyer des rappels - Une notification se déclenche lorsqu\'un événement auquel vous participez est sur le point de commencer. - - %1$d min - %1$d min - - Ouvrir dans la carte - Ouvrir le lien - Ouvrir toutes les réactions à ce message - Fermer toutes les réactions à ce message - Zap - Barre de navigation inférieure Glissez pour réorganiser. Activez ou désactivez pour ajouter ou supprimer un élément de la barre inférieure. Avec zéro élément, la barre inférieure est masquée. Réorganiser Choisissez les onglets qui apparaissent sur l\'écran d\'accueil. Lorsqu\'un seul onglet est actif, la barre d\'onglets est masquée. - Tout - Interface du profil Choisissez les sections et les fils qui apparaissent sur les écrans de profil utilisateur. Toutes les options sont activées par défaut. - Badges du profil - Recommandations d\'applications - Fil des zaps reçus - Fil des abonnés - Ligne de réactions - Boutons du lecteur vidéo - Visualiseur audio - Date d\'expiration - Adresse invalide - Amethyst a reçu une URI à ouvrir mais cette URI était invalide : %1$s - Relais de boîte de réception MP - Relais de recherche - De bonnes options sont:\n%1$s - Relais d\'envoi - Relais de réception - Paramètres du relais - Relais publics d\'accueil - L\'utilisateur publie son contenu sur ces relais - Ce type de relais stocke tout votre contenu. Amethyst enverra vos messages ici et d\'autres utiliseront ces relais pour trouver votre contenu. Insérez entre 1 et 3 relais : il peut s\'agir de relais personnels, de relais payants ou de relais publics. - Relais de messagerie publique - L\'utilisateur reçoit les notifications sur ces relais - Ce type de relais reçoit toutes les réponses, commentaires, likes et zaps de vos messages. Insérez de 1 à 3 relais et assurez-vous qu\'ils acceptent les messages de n\'importe qui. - Relais de la boîte de réception MP - L\'utilisateur reçoit les MPs sur ces relais - Insérez de 1 à 3 relais pour servir de boîte de réception privée. Les autres utilisateurs utiliseront ces relais pour vous envoyer des MPs. Les relais de la boîte de réception MP doivent accepter tout message de tout le monde, mais ne vous permet que de les télécharger. De bonnes options sont:\n - inbox.nostr.wine (payant)\n - auth.nostr1.com (gratuit)\n - you.nostr1.com (relais personnels - payant) - Relais KeyPackage - Relais où vos MLS KeyPackages sont publiés (MIP-00). Les autres utilisateurs récupèrent ces KeyPackages pour vous inviter dans des discussions de groupe Marmot. Insérez entre 1 et 3 relais qui acceptent les événements KeyPackage de votre part et autorisent les lectures publiques. - Relais privés - Insérez entre 1 et 3 relais pour stocker des événements que personne d\'autre ne peut voir, comme vos Brouillons et/ou paramètres d\'application. Idéalement, ces relais sont soit locaux soit nécessitent une authentification avant de télécharger le contenu de chaque utilisateur. - Relais connectés - Liste actuelle des relais utilisés - Relais de recherche - Liste des relais à utiliser pour la recherche et l\'étiquetage des utilisateurs. L\'étiquetage et la recherche ne fonctionneront pas si aucune option n\'est disponible. - Relais locaux - Liste des relais qui sont en cours d\'exécution sur cet appareil. - Transférer les profils vers le relais local - Envoyer tous les événements de profil (kind 0) reçus vers votre relais local - Relais de confiance - Relais de confiance ne nécessitant pas une connexion Tor pour - Flux de relais favoris - Relais que vous visitez fréquemment pour voir leur flux global - Relais Proxy - Relais agrégateurs que l\'application doit utiliser pour télécharger vos flux, tels que filter.nostr.wine. Cela remplace le modèle de boîte d\'envoi et permettra à l\'application de se connecter uniquement aux relais de vos listes. - Relais de diffusion - Relais qui se spécialisent dans la publication de vos notes à tous les autres relais, comme sendit.nosflare.com. Amethyst ajoutera ce relais à tous vos nouveaux événements - Relais indexeur - Relais qui se spécialisent dans l\'hébergement des métadonnées et des listes de relais de chacun, comme purplepag.es. Amethyst utilisera ces relais pour trouver des utilisateurs qui ne sont pas dans vos listes. - Relais bloqués - Amethyst ne se connectera jamais à ces relais - Exporter les paramètres de relais Web : Aperçu Maintenu par @@ -1054,362 +147,23 @@ Lisez-moi Fermer le ticket Réouvrir - Dépôts Git - Preuve d\'horodatage - Il y a une preuve que ce message a été signé avant %1$s. La preuve a été estampillée dans la blockchain Bitcoin à cette date et à cette heure. - Modifier le Message - Il n\'est pas possible de répondre à un brouillon - Il n\'est pas possible de citer un brouillon - Il n\'est pas possible de réagir à un brouillon - Il n\'est pas possible de zapper un brouillon - Brouillon - Mauvaise requête - Le serveur ne peut pas ou ne veut pas traiter la requête. - Non autorisé - L\'utilisateur n\'a pas d\'identifiants d\'authentification valides - Paiement requis - Le serveur requiert un paiement pour compléter la requête - Interdit - L\'utilisateur n\'a pas les droits d\'accès pour effectuer la requête - Non Trouvé - Le serveur ne peut pas trouver l\'adresse demandée - Méthode non autorisée - Le serveur supporte la méthode de requête, mais pas la ressource cible - Non Acceptable - Le serveur ne trouve aucun contenu qui satisfasse la requête. - Authentification du proxy requise - L\'utilisateur n\'a pas d\'identifiants d\'authentification valides - Expiration de la requête - Le serveur a expiré en attente de quelqu\'un d\'autre - Conflit - Le serveur ne peut pas répondre à la requête car il y a un conflit avec la ressource - Parti - Le contenu demandé a été définitivement supprimé du serveur et ne sera pas rétabli - Longueur requise - Le serveur rejette la requête car elle nécessite une définition - La précondition a échoué - Conditions préalables de la demande dans les champs de l\'entête que le serveur ne respecte pas - Données trop grandes - La requête est supérieure aux limites définies par le serveur, et le serveur refuse de la traiter - URI trop longue - L\'URL demandée par le client est trop longue pour que le serveur puisse la traiter. - Type de média non pris en charge - La requête utilise un format média que le serveur ne prend pas en charge - Plage non satisfaisante - Le serveur ne peut pas remplir la valeur indiquée dans le champ d\'entête Range de requête. - Attente échouée - Le serveur ne peut pas répondre aux exigences indiquées par le champ d\'entête Expect de la requête - Mise à jour requise - Le serveur refuse de traiter la requête en utilisant le protocole courant, à moins que le client ne passe à un autre protocole. - Erreur interne du serveur - Le serveur a rencontré une erreur inattendue et ne peut pas compléter la requête - Non implémenté - Le serveur ne peut pas répondre à la requête ou ne reconnaît pas la méthode de requête - Mauvaise passerelle - Le serveur agit comme passerelle et a reçu une réponse invalide de l\'hôte - Service indisponible - Ceci se produit souvent lorsqu\'un serveur est surchargé ou stoppé pour maintenance - Délai d\'attente de la passerelle - Le serveur agissait comme une passerelle ou un proxy et a expiré, en attente d\'une réponse - Version HTTP non prise en charge - Le serveur ne prend pas en charge la version HTTP de la requête - Variant Also Negotiates - Le serveur a une erreur de configuration interne - Stockage insuffisant - Le serveur n\'a pas assez d\'espace pour traiter la demande avec succès - Boucle détectée - Le serveur détecte une boucle infinie lors du traitement de la requête - Authentification réseau requise - Le client doit être authentifié pour accéder au réseau Serveurs Blossom Ajoutez autant de serveurs que vous le souhaitez. Vous pourrez choisir celui à utiliser plus tard lors du téléversement de votre image - Ajouter un serveur NIP-96 - Ajouter un serveur Blossom Télécharger - Échec de l\'ouverture du fichier - Aucune application torrent installée pour ouvrir et télécharger le fichier. - L\'événement ne possède pas assez d\'informations pour construire un lien magnet - Mes listes - Flux - Hashtags - Centres d\'intérêt - Lieux - Communautés - Listes - Algorithmes de flux - Tous les algorithmes de flux favoris - Relais - Algorithmes de flux favoris - Message privé - Message public - Impossible de partager l\'image, veuillez réessayer plus tard… - Impossible de partager l\'image, veuillez réessayer plus tard… - Téléchargement de la vidéo… - Ne pas traduire depuis - Les langues affichées ici ne seront pas traduites. Sélectionnez une langue pour la supprimer et l\'avoir traduite à nouveau. - Traduire vers - Choisir la langue dans laquelle traduire le contenu. - Préférences d\'affichage de la langue - Pour chaque paire de langues traduites, choisissez quelle langue afficher en premier. - Pause - Lecture - Ce message disparaîtra dans %1$s - Métadonnées de la liste de suivi - Les métadonnées des listes de suivi sont visibles par tous sur Nostr. Seuls vos membres privés sont chiffrés. - Pack de suivi metadata - Les métadonnées du pack de suivi sont visibles par tous sur Nostr et sont fréquemment publiées sur de nombreux sites Web comme kits de démarrage pour les nouveaux utilisateurs. - Modifier le Pack de Suivi - Agrandir - Réessayer - Réaction - Message vocal - Réponse vocale - Relais de sortie - Applications - Recommandations d\'applications - Paramètres utilisateur - En-tête audio - Piste audio - Piste musicale - Playlist musicale - Épisode de podcast - Émission de podcast - Podcasts créés - Podcasts favoris - Récompenses de badge - Définitions de badges - Ensemble de badges acceptés - Badges de profil - Relais bloqués - Serveurs Blossom - Serveurs Nests - Auth Blossom - Relais de diffusion - Liste de signets - Ancienne liste de signets - Rendez-vous journalier - Calendrier - Rendez-vous - RSVP rendez-vous - Jeux d\'échecs - Auth échecs - Relais favoris - Défis aux échecs - Acceptation de partie d\'échecs - Coup aux échecs - Fin de partie d\'échecs - Offre de nulle aux échecs - Définition de canal - Masquer message du canal - Liste de canaux - Message de canal - Métadonnées du canal - Utilisateur muet du canal - Fichier DM - Message DM - Relais DM - Petites annonces - Commentaires - Déf. communauté - Liste de communautés - Publication communautaire - Liste de suivi - Suppressions - Brouillons - Packs d\'émojis - Liste des packs d\'émoji - Chat éphémère - Salles de discussion éphémères - En-têtes de fichier - Galerie de profil - Serveurs de fichiers - Données blob - En-têtes blob - Données médicales - Packs de suivi - Suivis géohash - Problème Git - Correctif Git - Dépôt Git - Réponse Git - Objectifs Zap - Suivis de hashtag - Surlignages - Auth Http - Liste de relais index - Prologue d\'aventure - Scène d\'aventure - Lecture d\'aventure - Signets nommés - Discussions en direct - Diffusions en direct - Zaps - Requête NWC - Réponse NWC - Zaps privés - Demande Zap - Blogs - Salle de réunion - Présence en salle - Espace de réunion - Profil - Liste en sourdine - NIP - Nostr Connect - Statut DVM - Demande de contenu DVM - Réponse contenu DVM - Demande utilisateur DVM - Réponse utilisateur DVM - Listes de personnes - Photos - Entraînements - Épingles - Sondage Zap - Sondage - Réponse au sondage - NIP-04 MPs - Relais privés - Relais proxy - Message public - Réactions - Carte de contact - Auth relais - Découverte de relais - Annonce de surveillance de relais - Ensemble de relais - Signalements - Republications - Suppression d\'utilisateur - Sceaux - Relais de recherche - Statut utilisateur - Notes - Modifications - Torrents - Commentaires torrent - Relais de confiance - Fournisseurs de confiance - Vidéo (Repl) - Vidéos - Vidéos courtes - Message vocal - Réponse vocale - Signet web - Wiki - %1$d%% de disponibilité - Paramètres Namecoin - %d ms - Sync relay - Explorateur Bitcoin (OTS) - événements de vous - événements pour vous - événements recherchables - MPs - profils - listes de sortie - Vu il y a %1$s - Vu le %1$s (il y a %2$s) - Vu à l\'instant - Jamais vu - - %1$d minute - %1$d minutes - - - %1$d heure - %1$d heures - - - %1$d jour - %1$d jours - - - %1$d semaine - %1$d semaines - - - %1$d mois - %1$d mois - - - %1$d an - %1$d ans - - - %1$d facture en attente - %1$d factures en attente - - - Fonds détenus chez %1$d mint que vous n\'utilisez pas - Fonds détenus chez %1$d mints que vous n\'utilisez pas - - %1$s sat déplacés vers %2$s. - Diffuser sur l\'appareil - Arrêter la diffusion - Mise en ligne HLS - Mise en ligne de %1$s (%2$d sur %3$d) - Attestation - Demande d\'attestation - Recommandation de l\'attesteur - Compétence de l\'attesteur - Signets web - Ajouter un signet web - Modifier le signet web - %1$s financés sur un objectif de %2$s sats - Nouvel objectif - Demande de suppression - Demande de suppression envoyée - Historique des suppressions - Utilisateurs - Événements - IPs - Paramètres - Proposer des améliorations de texte - Utilise un modèle IA embarqué pour proposer des corrections de texte et des changements de ton. - Diffusions suivies - Utilise le diffuseur suivi lors de l\'envoi d\'événements. Affiche la progression en direct et l\'état par relais pendant la diffusion. - Suggérer des entraînements à partager - Lit les entraînements terminés depuis Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) et suggère de les partager en tant que publication. La permission n\'est demandée qu\'à la connexion. - Paramètres de composition - Créer automatiquement des brouillons - Enregistre automatiquement un brouillon lorsque vous tapez ou quittez un compositeur avec du texte non envoyé, et l\'envoie à vos relais de boîte d\'envoi privée. - - %1$d heure - %1$d heures - - - %1$d jour - %1$d jours - - à tout moment maintenant - Votre %1$s a fini de miner mais n\'a pas pu être publié : %2$s - Signaler - Nouveau pack d\'emojis - Modifier le pack d\'emojis - Mes packs d\'emojis - Émojis - Les emojis publics sont visibles par tous et apparaissent dans votre menu de réactions et le sélecteur de saisie automatique \":\" lorsque ce pack est dans votre liste d\'emojis. - Les emojis privés sont stockés chiffrés sur les relais et visibles uniquement par vous. Ils apparaissent dans votre menu de réactions et la saisie automatique \":\" comme les emojis publics. - Le brouillon fait %1$d octets ; cette communauté limite ce kind à %2$d octets. - Le brouillon fait %1$d octets ; cette communauté limite les événements à %2$d octets. - Vous avez déjà publié %1$d événements de ce kind aujourd\'hui (limite %2$d). - Site Nowhere - Événement Nowhere - Collecte de fonds Nowhere - Boutique Nowhere - Pétition Nowhere - Message Nowhere - Drop Nowhere - Art Nowhere - Forum Nowhere - - %1$d message - %1$d messages - - - %1$d membre - %1$d membres - - Informations du groupe mises à jour - Échec de la mise à jour : %1$s - Échec de la création du groupe : %1$s - Échec du départ du groupe : %1$s - Ajout de %1$s… - Échec de l\'ajout de %1$s : %2$s - erreur inconnue - Membre retiré - Échec de la suppression du membre : %1$s - Privilèges d\'administrateur accordés - Échec de l\'octroi des droits d\'administrateur : %1$s - Privilèges d\'administrateur révoqués - Échec de la révocation des droits d\'administrateur : %1$s - Pas membre de ce groupe Le service lightning du récepteur à %1$s n\'est pas disponible. Il a été calculé à partir de l\'adresse lightning \"%2$s\". Erreur: %3$s. Vérifiez si le serveur est en ligne et si l\'adresse lightning est correcte Impossible de résoudre %1$s. Vérifiez si vous êtes connecté, si le serveur est actif et si l\'adresse Lightning %2$s est correcte.\n\nL\'erreur était : %3$s Erreur lors de l\'analyse du JSON de la facture de %1$s. Vérifiez la configuration lightning de l\'utilisateur @@ -1419,7 +173,6 @@ - Valeur-pour-valeur diff --git a/amethyst/src/main/res/values-fr/strings.xml b/amethyst/src/main/res/values-fr/strings.xml index 0a80aea826..468f50ea8f 100644 --- a/amethyst/src/main/res/values-fr/strings.xml +++ b/amethyst/src/main/res/values-fr/strings.xml @@ -1,361 +1,24 @@ - Spam - Le nombre d\'événements spam provenant de ce relais - Falsification d\'identité - Comportement illégal - Demande de suppression - Connectez vous avec une clé privée pour pouvoir répondre - Connectez vous avec une clé privée pour pouvoir booster des posts - Connectez vous avec une clé privée pour pouvoir aimer des posts - Aucun montant sélectionné pour le zap. Appui long pour modifier - Connectez vous avec une clé privée pour pouvoir envoyer des zaps - Connectez-vous avec une clé privée pour Suivre - Connectez-vous avec une clé privée pour ne plus Suivre - Vous utilisez une clé publique et les clés publiques sont en lecture seule. Connectez-vous avec une clé privée pour pouvoir masquer un mot ou une phrase - Vous utilisez une clé publique et les clés publiques sont en lecture seule. Connectez-vous avec une clé privée pour pouvoir afficher un mot ou une phrase - Zaps - Boost boosté modification #%1$s - Proposer une Modification - Ajouter - Erreur d\'analyse du message d\'erreur - Profil - Filtres de sécurité - Payer - "Aperçu de l'image pour %1$s" - Description - Quoi de neuf ? - Rédiger un message… - Envoyer Sauvegarder - Créer - Annuler - Erreurs - Image enregistrée dans la galerie - Le téléchargement de la vidéo a démarré… - Le téléchargement du média a démarré… - Échec de l\'enregistrement de l\'image - Vidéo enregistrée dans la galerie vidéo du téléphone - Impossible d\'enregistrer la vidéo - L\'utilisateur n\'a pas configuré d\'adresse Lightning pour recevoir des sats - "répondre ici" - Connus - Nouvelles demandes - Utilisateurs bloqués - Nouveaux sujets - Conversations - Plus d\'options - Afficher le QR code de la clé privée - Afficher le QR code de la clé privée chiffrée - Suivre - Suivre en retour - Cacher le mot de passe - Clé non valide - Clé invalide : %1$s - Mot de passe requis - La clé est requise - Un nom est requis - Partir - Ne plus suivre - Chat public - Retirer - jamais - maintenant - h - m - d - Nudité - Blasphème / Discours haineux - Clés de sauvegarde - Échec du chiffrement de votre clé privée - Clé secrète (nsec) copiée dans le presse-papiers - Copier ma clé secrète - Échec de l\'authentification - La biométrie n\'a pas pu authentifier le propriétaire de ce téléphone - La biométrie n\'a pas pu authentifier le propriétaire de ce téléphone. Erreur : %1$s - Copie du contenu de la note dans le presse-papiers - Copie du @npub utilisateur dans le presse-papiers - Copie de l\'ID de la note (@note1) dans le presse-papiers - "<Impossible de déchiffrer le message privé>\n\nVous avez été cité dans une conversation privée/cryptée entre %1$s et %2$s." - Comptes - Retour - Partager le Lien Navigateur - Partager - ID Note - Supprimer - - Bloquer - Favoris - Brouillons - Ajouter aux Favoris Publics - Supprimer des Favoris Publics - Option %s - (0–100)% - Impossible de voter - Le Sondage est fermé aux nouveaux votes - Un seul vote par utilisateur est autorisé sur ce type de sondage - Les auteurs du sondage ne peuvent pas voter dans leurs propres sondages. - Qu\'est-ce que cela signifie ? - Ce contenu est le même depuis le message - Ce contenu a changé. L\'auteur n\'a peut-être pas vu ou approuvé le changement - Ajouter un média - Ajouter une Image - Ajouter une Vidéo - Ajouter un Document - Serveur fichier - Choisissez un serveur vers lequel téléverser ce fichier - Serveurs média Définissez vos serveurs de téléversement de média préférés. Liste par défaut d\'Amethyst. Vous pouvez les ajouter individuellement ou ajouter la liste. - Options de confidentialité - Tous les abonnements - Autour de moi - Général - Liste en Sourdine - Le port par défaut est 9050 - Port Socks Orbot - Activer le moteur Tor - Utiliser la version interne ou Orbot - Tor/Préréglages de confidentialité - Modifier rapidement tous les paramètres ci-dessous - Url/Relais en oignon - Utiliser Tor pour n\'importe quelle url .onion - Relais MP - Forcer Tor à envoyer et recevoir des MPs - Relais non approuvés - Forcer Tor pour les relais de boîte de réception - Relais de confiance - Forcer Tor sur tous les relais de vos listes - Photos de profil - Forcer Tor lors du chargement des photos de profil - Aperçu des URL - Forcer Tor lors du chargement des aperçus d\'url - Images - Forcer Tor lors du chargement des images - Vidéos - Forcer Tor lors du chargement des vidéos - Opérations financières - Forcer Tor pour les transferts en zaps, lightning ou cashu - Vérification de l\'adresse Nostr - Forcer Tor lors de la vérification des adresses NIP-05 - Téléversements de média - Forcer Tor lors du téléversement de contenu - Interne - Orbot - Désactivé - Basique - Par défaut - Tous sauf les médias - Confidentialité complète - Personnalisé - Utiliser Tor lorsque le serveur le demande - Masque votre IP des relais aléatoires - Masque votre adresse IP pour tout, sauf les images et les vidéos - Masque votre IP pour toutes les connexions - Faites votre choix manuellement - Messages privés - Vous notifie lorsqu\'un message privé est reçu - Zaps reçus - Vous notifie lorsque quelqu\'un vous zap - %1$s sats - De %1$s - pour %1$s - Notifier: - Aujourd\'hui - Aucun type de réaction sélectionné. Appuyer longuement pour changer - Lire depuis le Relay - Écrire sur le Relay - Le nombre d\'octets qui ont été envoyés à ce relais, y compris les filtres et les événements - Le nombre d\'octets qui ont été reçus depuis ce relais, y compris les filtres et les événements - Jeton Cashu - Adresse Lightning non définie - Relais - Place de Marché - Salons - Contenu sensible - Ajouter un avertissement de contenu sensible avant de montrer ce contenu Préférences de l\'application - Paramètres - Toujours - WiFi illimité - Jamais - Complet - Simplifié - Performance - Classique - Moderne - Système - Clair - Sombre - Wallet Connect - Thème - Prévisualisation des images - Lecture vidéo - Prévisualisation des URLs - Défilement immersif - Masquer les barres de navigation lors du défilement - Mode UI - Choisir le style du message - Style de la galerie de profil - Choisissez le style de la galerie - Spammeurs - Silencieux. Cliquer pour réactiver le son - Son activé. Cliquer pour mettre en silencieux - Post exclusif à la localisation - Seuls les abonnés à cette localisation le verront. Vos abonnés généraux ne le verront pas. Public Privé - Sujet - Sombre, Clair ou thème Système - Charger automatiquement les images et les GIFs - Lire automatiquement les vidéos et les GIFs - Afficher la prévisualisation d\'URL - Copier dans le presse-papiers - Partager ou Enregistrer - Média ajouté - Média ajouté à votre galerie de profil - Impossible d\'envoyer un zap - Configuration lightning manquante - L\'utilisateur %1$s n\'a pas configuré d\'adresse Lightning pour recevoir des sats - Erreur lors de l\'ouverture de l\'application de signature - L\'application signataire est introuvable. Vérifiez que l\'application n\'a pas été désinstallée - Assurez-vous que l\'application signataire a autorisé cette transaction - Aucun portefeuille trouvé pour payer une facture lightning (Erreur : %1$s). Veuillez installer un portefeuille Lightning pour utiliser les zaps - Aucun portefeuille trouvé pour payer une facture lightning. Veuillez installer un portefeuille Lightning pour utiliser les zaps - Mots Masqués - Photo de profil - Afficher les photos de profil - Impossible de payer la facture - Impossible de retirer - Impossible d\'utiliser ce Cashu - Le Mint a fourni le message d\'erreur suivant : %1$s - Cashu reçu - %1$s sats ont été envoyés à votre portefeuille. (Frais : %2$s sats) - Aucun portefeuille Cashu compatible trouvé dans le système - Impossible de récupérer la facture depuis les serveurs du destinataire - Le fournisseur de connexion de votre portefeuille a retourné l\'erreur suivante : %1$s - Impossible d\'assembler LNUrl à partir de l\'adresse Lightning \"%1$s\". Vérifiez la configuration de l\'utilisateur - Impossible de récupérer la facture à partir de %1$s: %2$s - Erreur lors de l\'analyse du JSON de %1$s. Vérifiez la configuration lightning de l\'utilisateur - URL de callback introuvable dans la réponse de %1$s - Montant de la facture (%1$s sats) incorrect de %2$s. Il aurait dû être %3$s - Impossible de créer une facture lightning avant d\'envoyer le zap. Le portefeuille lightning du destinataire a envoyé l\'erreur suivante : %1$s - Utilisateur en lecture seule - Aucune réaction configurée - Message de %1$s - Bonjour %1$s, est-ce toujours disponible ? - Vêtements - Accessoires - Électronique - Mobilier - Articles de collection - Livres - Animaux de compagnie - Sports - Fitness - Art - Artisanat - Accueil - Bureau - Nourriture - Divers - Autres - Échec du téléversement du fichier - Impossible d\'ouvrir le fichier compressé - Erreur de téléversement : %1$s - Le serveur n\'a pas fourni d\'URL après le téléversement - Impossible de télécharger le média depuis le serveur - Impossible de vérifier le fichier téléchargé après le téléversement : %1$s - Impossible de téléverser vers %1$s: %2$s - Échec de la suppression : %1$s - Le média est trop volumineux pour NIP-95 - Accueil - Découvrir - Messages - Notifications - Ouvrir toutes les réactions à ce message - Fermer toutes les réactions à ce message - Zap - Adresse invalide - Amethyst a reçu une URI à ouvrir mais cette URI était invalide : %1$s - Relais de boîte de réception MP - Relais de recherche - De bonnes options sont:\n%1$s - Paramètres du relais - Relais publics d\'accueil - Ce type de relais stocke tout votre contenu. Amethyst enverra vos messages ici et d\'autres utiliseront ces relais pour trouver votre contenu. Insérez entre 1 et 3 relais : il peut s\'agir de relais personnels, de relais payants ou de relais publics. - Relais de messagerie publique - Ce type de relais reçoit toutes les réponses, commentaires, likes et zaps de vos messages. Insérez de 1 à 3 relais et assurez-vous qu\'ils acceptent les messages de n\'importe qui. - Relais de la boîte de réception MP - Insérez de 1 à 3 relais pour servir de boîte de réception privée. Les autres utilisateurs utiliseront ces relais pour vous envoyer des MPs. Les relais de la boîte de réception MP doivent accepter tout message de tout le monde, mais ne vous permet que de les télécharger. De bonnes options sont:\n - inbox.nostr.wine (payant)\n - auth.nostr1.com (gratuit)\n - you.nostr1.com (relais personnels - payant) - Relais privés - Insérez entre 1 et 3 relais pour stocker des événements que personne d\'autre ne peut voir, comme vos Brouillons et/ou paramètres d\'application. Idéalement, ces relais sont soit locaux soit nécessitent une authentification avant de télécharger le contenu de chaque utilisateur. - Relais de recherche - Liste des relais à utiliser pour la recherche et l\'étiquetage des utilisateurs. L\'étiquetage et la recherche ne fonctionneront pas si aucune option n\'est disponible. - Relais locaux - Liste des relais qui sont en cours d\'exécution sur cet appareil. Web : - Preuve d\'horodatage - Il y a une preuve que ce message a été signé avant %1$s. La preuve a été estampillée dans la blockchain Bitcoin à cette date et à cette heure. - Modifier le Message - Il n\'est pas possible de répondre à un brouillon - Il n\'est pas possible de citer un brouillon - Il n\'est pas possible de réagir à un brouillon - Il n\'est pas possible de zapper un brouillon - Brouillon - Mauvaise requête - Le serveur ne peut pas ou ne veut pas traiter la requête. - Non autorisé - L\'utilisateur n\'a pas d\'identifiants d\'authentification valides - Paiement requis - Le serveur requiert un paiement pour compléter la requête - Interdit - L\'utilisateur n\'a pas les droits d\'accès pour effectuer la requête - Non Trouvé - Le serveur ne peut pas trouver l\'adresse demandée - Méthode non autorisée - Le serveur supporte la méthode de requête, mais pas la ressource cible - Non Acceptable - Le serveur ne trouve aucun contenu qui satisfasse la requête. - Authentification du proxy requise - L\'utilisateur n\'a pas d\'identifiants d\'authentification valides - Expiration de la requête - Le serveur a expiré en attente de quelqu\'un d\'autre - Conflit - Le serveur ne peut pas répondre à la requête car il y a un conflit avec la ressource - Parti - Le contenu demandé a été définitivement supprimé du serveur et ne sera pas rétabli - Longueur requise - Le serveur rejette la requête car elle nécessite une définition - La précondition a échoué - Conditions préalables de la demande dans les champs de l\'entête que le serveur ne respecte pas - Données trop grandes - La requête est supérieure aux limites définies par le serveur, et le serveur refuse de la traiter - URI trop longue - L\'URL demandée par le client est trop longue pour que le serveur puisse la traiter. - Type de média non pris en charge - La requête utilise un format média que le serveur ne prend pas en charge - Plage non satisfaisante - Le serveur ne peut pas remplir la valeur indiquée dans le champ d\'entête Range de requête. - Attente échouée - Le serveur ne peut pas répondre aux exigences indiquées par le champ d\'entête Expect de la requête - Mise à jour requise - Le serveur refuse de traiter la requête en utilisant le protocole courant, à moins que le client ne passe à un autre protocole. - Erreur interne du serveur - Le serveur a rencontré une erreur inattendue et ne peut pas compléter la requête - Non implémenté - Le serveur ne peut pas répondre à la requête ou ne reconnaît pas la méthode de requête - Mauvaise passerelle - Le serveur agit comme passerelle et a reçu une réponse invalide de l\'hôte - Service indisponible - Ceci se produit souvent lorsqu\'un serveur est surchargé ou stoppé pour maintenance - Délai d\'attente de la passerelle - Le serveur agissait comme une passerelle ou un proxy et a expiré, en attente d\'une réponse - Version HTTP non prise en charge - Le serveur ne prend pas en charge la version HTTP de la requête - Variant Also Negotiates - Le serveur a une erreur de configuration interne - Stockage insuffisant - Le serveur n\'a pas assez d\'espace pour traiter la demande avec succès - Boucle détectée - Le serveur détecte une boucle infinie lors du traitement de la requête - Authentification réseau requise - Le client doit être authentifié pour accéder au réseau Serveurs Blossom Ajoutez autant de serveurs que vous le souhaitez. Vous pourrez choisir celui à utiliser plus tard lors du téléversement de votre image - Ajouter un serveur NIP-96 - Ajouter un serveur Blossom Télécharger - Échec de l\'ouverture du fichier - Aucune application torrent installée pour ouvrir et télécharger le fichier. Le service lightning du récepteur à %1$s n\'est pas disponible. Il a été calculé à partir de l\'adresse lightning \"%2$s\". Erreur: %3$s. Vérifiez si le serveur est en ligne et si l\'adresse lightning est correcte Impossible de résoudre %1$s. Vérifiez si vous êtes connecté, si le serveur est actif et si l\'adresse Lightning %2$s est correcte.\n\nL\'erreur était : %3$s Erreur lors de l\'analyse du JSON de la facture de %1$s. Vérifiez la configuration lightning de l\'utilisateur Impossible de créer une facture lightning. Message de %1$s: %2$s Impossible de créer une facture lightning avec %1$s. Élément pr introuvable dans le JSON résultant. - - Ce message a plus de %1$d hashtag - Ce message a plus de %1$d hashtags - - - +%1$d\nréponse - +%1$d\nréponses - @@ -365,33 +28,22 @@ -Vous utilisez une clé publique et les clés publiques sont en lecture seule. Connectez-vous avec une clé privée pour pouvoir téléverser -Vous utilisez une clé publique et les clés publiques sont en lecture seule. Connectez-vous avec une clé privée pour pouvoir signer des événements -Déchiffrement non autorisé -Le signataire n\'a pas autorisé le décryptage nécessaire pour effectuer cette opération. Activez les décryptions NIP-44 dans votre application signataire et réessayez -Signataire introuvable -L\'application de signature a-t-elle été désinstallée ? Vérifiez si le signataire est installé et a ce compte. Déconnectez-vous et reconnectez-vous de l\'application signataire a changé. -Le signataire externe a renvoyé des données qui sont étranges pour la requête. Il peut y avoir un bug sur Amethyst ou le signataire. -Demande de facture… -Payer %1$s via %2$s? -Payer cette facture via %1$s? -Saisissez un montant valide pour cette offre. @@ -399,13 +51,9 @@ -Unique -Quotidien -Hebdomadaire -Mensuel @@ -424,69 +72,48 @@ -Payement via %1$s… -Paiement échoué -Transaction : %1$s -Envoyer Renommer -Erreur - -Pourcentage de connexions réussies vers le relais - - - -Enregistrer sur le téléphone - -Épingler en haut - -Détacher - - -PDF enregistré dans Téléchargements/Amethyst - -Échec de l\'enregistrement du PDF -Aucune application de caméra trouvée sur cet appareil - - -Cliquez et maintenez pour enregistrer un message -Erreur d\'envoi -Échec de l\'envoi du message vocal -NIP-95 n\'est pas encore supporté pour les messages vocaux -Échec de l\'envoi de la voix : %1$s -Aucun -Profond -Haute -Neutre + + + + + + + + + + + @@ -502,45 +129,25 @@ Nouveau profil de tchat : -Discussion éphémère -Relais de discussion -Relais de discussions -Les relais de discussions sont des groupes de discussion contrôlés par leur relais d\'origine. - Ils sont visibles par tous les utilisateurs de Nostr et tout le monde peut y participer. - Ils sont idéaux pour les communautés ouvertes autour de sujets spécifiques. Certains de ces groupes sont éphémères - et, par conséquent, les messages de discussion disparaissent avec le temps -Métadonnées de tchat public -Les conversations publiques sont visibles pour tout le monde sur Nostr et n\'importe qui - peut y participer. Elles sont idéales pour les communautés ouvertes autour de sujets spécifiques. - La modération peut être contrôlée en supprimant les messages sur ses relais -Relais -Insérez entre 1 et 3 relais qui hébergent ce groupe. - Les clients Nostr utilisent ce paramètre pour savoir où télécharger les messages et où les envoyer. -Vous -Système -Partager en tant qu\'image -Partager en tant qu\'URL de l\'image -Muet le fil -Rétablir le fil de discussion @@ -548,86 +155,52 @@ -Signets migrés avec succès -Publications planifiées -Planifier la publication -Annuler la planification -Demain -Déconnecté -Envoyer maintenant -Erreur : %1$s -Planifié -Envoi en cours… -Échoué -Envoyé -Annulé - - Vous avez %d message planifié qui n\'a pas encore été publié. La déconnexion le supprimera définitivement. - Vous avez %d messages planifiés qui n\'ont pas encore été publiés. La déconnexion les supprimera définitivement. - - - %d en file d\'attente - %d en file d\'attente - -ID de note copié -Sondages -Ouvrir -Fermé -Badges -Communautés -Nouvelle communauté -Modifier la communauté -Modérateurs -Relais -Utilisateurs bannis -Nouveau badge -Badge de récompense @@ -644,7 +217,6 @@ -Badges de profil @@ -665,12 +237,9 @@ -Images -Entraînements -Nouvel entraînement @@ -688,29 +257,17 @@ -Course à pied -Marche -Cyclisme -Randonnée -Natation -Yoga -Méditation -Alimentation -Jeûne -EMOM -AMRAP -Applications @@ -727,26 +284,20 @@ -Shorts -Diffusions en direct -Lever la main -Couper le micro -Réactiver le micro -parle actuellement @@ -761,15 +312,10 @@ -Vidéos -Musique -Listes de lecture -Épisodes -Podcasts @@ -787,17 +333,13 @@ -Épingler sur le profil -Retirer du profil -Nouvelle liste de favoris -Métadonnées de la liste de favoris @@ -805,7 +347,6 @@ -Renommer @@ -823,11 +364,8 @@ -Rendre public -Les réponses à une note privée restent toujours privées -Visible par Aucun récepteur pour le moment : vous seul serez en mesure de voir cette note. Ajoutez des personnes pour la partager. @@ -843,11 +381,8 @@ -Les métadonnées des listes de favoris peuvent être vues par n\'importe qui sur Nostr. Seuls vos membres privés sont chiffrés. -Déplacer en public -Déplacer en privé @@ -855,7 +390,6 @@ -Choix multiples @@ -865,9 +399,7 @@ -Tous les abonnements de l\'utilisateur -Liste de suivi par défaut @@ -882,9 +414,7 @@ -Nouvelle liste de suivi -Nouveau pack de suivi @@ -898,80 +428,50 @@ -Modifier la liste -Répondre -Marquer comme lu -Nouveaux messages -Nouveaux zaps -Échecs -Vous avertit des événements liés aux parties d\'échecs -%1$s a accepté votre défi aux échecs -%1$s déplacé — votre tour -Réponses -Nouvelles réponses -Mentions -%1$s vous a mentionné -Nouvelles mentions -Appels entrants -Notifications pour les appels vocaux et vidéos entrants -Appel entrant -Appel vocal entrant\u2026 -Appel vidéo entrant\u2026 -Appels -Accepter -Rejeter -Caméra activée -Caméra désactivée -Haut-parleur -Écouteurs -Bluetooth -Amethyst a besoin d\'un accès à la caméra et au microphone pour démarrer un appel vidéo. Veuillez les activer dans les paramètres de l\'application. -Amethyst a besoin d\'un accès à la caméra et au microphone pour démarrer un appel vidéo. Veuillez les activer dans les paramètres de l\'application. -Paramètres d\'appel @@ -980,27 +480,18 @@ -Voir les messages -Masquer -Afficher -Avertir -Filtrer les spams -Masque les messages d\'inconnus qui étaient exactement les mêmes depuis 5 fois ou plus -Avertir sur les rapports -Affiche un message d\'avertissement lorsque des messages ont été rapportés 5 fois ou plus par vos abonnements -Vous n\'avez pas encore bloqué d\'utilisateurs. @@ -1015,10 +506,8 @@ -Politique de confidentialité -À propos & Légal @@ -1055,49 +544,34 @@ -Packs à suivre -Lectures -Algorithmes de flux -Diffusions en direct -Communautés -Préférences de l\'UI -Traductions -Réactions -Paramètres du compte -Paramètres de l\'application -Revenir %d secondes en arrière -Avancer de %d secondes -Téléverser une image de couverture -Modifier la liste de lecture -Téléverser une image de couverture @@ -1106,45 +580,27 @@ Groupe -Impossible d\'uploader -Insérer d\'abord la destination du message -Portefeuille introuvable -Lire automatiquement les vidéos lorsqu\'elles sont visibles à l\'écran -Copié dans le presse-papiers -Impossible de lire cette vidéo -Requête de signature rejetée -Impossible d\'ouvrir les liens Blossom -Les applications Blossom n\'ont pas été trouvées. Veuillez installer une application Blossom locale pour voir ce fichier -Notifications -Catégories -Chiffrer les fichiers -Utiliser le codec H.265/HEVC -Une meilleure qualité avec des tailles de fichier plus petites, mais tous les appareils ne supportent pas la lecture H.265. -Convertir GIF en MP4 -Supprimer les métadonnées privées -Échecs -Portefeuille @@ -1176,7 +632,6 @@ -Portefeuille Cashu (NIP-60) @@ -1184,9 +639,7 @@ -Reçu -Envoyé @@ -1214,40 +667,25 @@ -Lent -Normal -Rapide -~1 h -~30 min -~10 min -Nouveau produit -Nouvel Article -Nouvel événement de calendrier -Modifier l\'événement de calendrier -Nouveau calendrier -Modifier le calendrier -Mois -Semaine -Jour @@ -1276,29 +714,19 @@ - - %1$s, %2$d événement - %1$s, %2$d événements - -Le téléversement de l\'image a échoué -L\'image sélectionnée n\'a pas pu être téléversée. Réessayez ou collez une URL. -Rappels du calendrier -Envoyer des rappels -Ouvrir dans la carte -Ouvrir le lien @@ -1321,14 +749,12 @@ -Date d\'expiration -Relais d\'envoi @@ -1338,81 +764,50 @@ -L\'utilisateur publie son contenu sur ces relais -L\'utilisateur reçoit les notifications sur ces relais -L\'utilisateur reçoit les MPs sur ces relais -Relais connectés -Liste actuelle des relais utilisés -Relais de confiance -Relais de confiance ne nécessitant pas une connexion Tor pour -Relais Proxy -Relais agrégateurs que l\'application doit utiliser pour télécharger vos flux, tels que filter.nostr.wine. Cela remplace le modèle de boîte d\'envoi et permettra à l\'application de se connecter uniquement aux relais de vos listes. -Relais de diffusion -Relais qui se spécialisent dans la publication de vos notes à tous les autres relais, comme sendit.nosflare.com. Amethyst ajoutera ce relais à tous vos nouveaux événements -Relais indexeur -Relais qui se spécialisent dans l\'hébergement des métadonnées et des listes de relais de chacun, comme purplepag.es. Amethyst utilisera ces relais pour trouver des utilisateurs qui ne sont pas dans vos listes. -Relais bloqués -Amethyst ne se connectera jamais à ces relais -L\'événement ne possède pas assez d\'informations pour construire un lien magnet -Mes listes -Flux -Hashtags -Communautés -Listes -Message privé -Message public -Impossible de partager l\'image, veuillez réessayer plus tard… -Impossible de partager l\'image, veuillez réessayer plus tard… -Téléchargement de la vidéo… -Ne pas traduire depuis -Les langues affichées ici ne seront pas traduites. Sélectionnez une langue pour la supprimer et l\'avoir traduite à nouveau. -Traduire vers -Choisir la langue dans laquelle traduire le contenu. -Préférences d\'affichage de la langue @@ -1421,9 +816,7 @@ -Pause -Lecture @@ -1442,9 +835,7 @@ -Pack de suivi metadata -Modifier le Pack de Suivi @@ -1460,12 +851,10 @@ -Agrandir -Réessayer @@ -1476,11 +865,8 @@ -Réaction -Message vocal -Réponse vocale @@ -1502,91 +888,48 @@ -Applications -Recommandations d\'applications -Paramètres utilisateur -Piste audio -Récompenses de badge -Relais bloqués -Calendrier -Rendez-vous -Jeux d\'échecs -Commentaires -Suppressions -Brouillons -Packs d\'émojis -Liste des packs d\'émoji -Chat éphémère -Salles de discussion éphémères -Données médicales -Diffusions en direct -Zaps -Requête NWC -Réponse NWC -Zaps privés -Blogs -Profil -Liste en sourdine -NIP -Nostr Connect -Listes de personnes -Photos -Sondage -Relais privés -Message public -Réactions -Relais de recherche -Statut utilisateur -Notes -Modifications -Torrents -Vidéos -Vidéos courtes -Message vocal -Réponse vocale -Wiki @@ -1604,13 +947,8 @@ - - %1$d asset inclus - %1$d assets inclus - -Le service de débit n\'a pas finalisé le paiement. @@ -1625,21 +963,16 @@ -Dépensable pour ce destinataire : %1$s sats -Groupe MLS -Navigation -Fils -Créer @@ -1647,62 +980,34 @@ -Les publications planifiées peuvent ne pas être publiées avant la prochaine ouverture de l\'application. Activez le mode permanent dans Paramètres → Préférences d\'interface pour une planification fiable en arrière-plan. -Les publications planifiées peuvent ne pas être publiées avant la prochaine ouverture de l\'application. Les publications planifiées des autres comptes ne se déclencheront pas pendant que ce compte est actif. Activez le mode permanent dans Paramètres → Préférences d\'interface pour une planification fiable en arrière-plan. -%1$s · dans %2$s -%1$s · il y a %2$s - - Déconnecté · %d publication planifiée supprimée - Déconnecté · %d publications planifiées supprimées - -Publication planifiée publiée -Échec de la publication planifiée -Publications planifiées -Notifications lorsqu\'une publication planifiée est publiée ou échoue. - - · %d due dans 1h - · %d dues dans 1h - - - vers %d relais - vers %d relais - -Règles vérifiables (facultatif) -Types d\'événements autorisés -Texte court (1) -Article long format (30023) -Publication d\'image (20) -Publication vidéo (21) -Vidéo courte (22) -Commentaire communautaire (1111) @@ -1712,13 +1017,11 @@ -Filtre Web-of-trust (facultatif) -Taille maximale globale d\'événement (facultatif) @@ -1733,63 +1036,44 @@ -Aviron -Musculation -Circuit Applications -nApplets - -nSites - - -Navigateur -Chargement via Tor. Appuyer pour utiliser le web ouvert. - -Chargement via le web ouvert. Appuyer pour utiliser Tor. -Favoris - - - -Applications favorites - - -Ajouter aux favoris - -Supprimer des favoris -Se charge via Tor. - -Se charge via le web ouvert. -Publié sur les relais -Fichier téléversé -Paiement effectué -Cette application n\'est pas encore chargée. Réessayez dans un instant. -Récent + + + + + + + + + + + Permissions nApplet @@ -1806,51 +1090,30 @@ -nApplet %1$s… Shell -Identité -Actions clavier -Relais -Stockage -Paiements -Réseau -Téléversements Demander quelles fonctionnalités sont disponibles -Lire votre clé publique -Associer des raccourcis clavier -Lire, signer & publier vos événements -Son propre stockage privé -Payer des factures Lightning -Récupérer des ressources web et Blossom -Téléverser des fichiers sur votre serveur multimédia -Thème -Notifications -Messagerie -Correspondre aux couleurs de votre application -Vous afficher des notifications -Échanger des messages avec d\'autres napplets Fonctionnalité : %1$s @@ -1858,57 +1121,35 @@ -Ce nApplet veut lire votre clé publique. -Ce nApplet veut lire votre profil et les données de votre compte. -Ce nApplet veut signer et publier un événement de type %1$d en votre nom. -Ce nApplet veut signer et publier un événement de type %1$d en votre nom : -Ce nApplet veut envoyer un événement chiffré en votre nom. -Ce nApplet veut lire des événements depuis vos relais. -Ce nApplet veut utiliser son stockage privé. Ce nApplet veut payer une facture Lightning. -Ce nApplet veut récupérer une ressource web. -Ce nApplet veut téléverser un fichier sur votre serveur multimédia. -Ce nApplet veut vous afficher des notifications. -Ce site veut signer un événement de type %1$d avec votre clé Nostr. - - Ce nApplet veut payer une facture Lightning de %1$d sat. - Ce nApplet veut payer une facture Lightning de %1$d sats. - -Chats publics -Packs d\'abonnements -Nests -Baisser la main -Couper le son -Activer le son -Impossible d\'envoyer le message @@ -1918,43 +1159,27 @@ -Nests -Maintient l\'audio actif pendant qu\'une salle est ouverte. -Nest connecté -Nest — En direct -Appuyer pour revenir. -Arrêter -a levé la main -est monté sur scène -a rejoint en tant qu\'auditeur -a quitté le nest -Quitter -Impossible de marquer la salle comme fermée. Départ en cours — la salle se fermera automatiquement. - - %1$d auditeur - %1$d auditeurs - @@ -1972,20 +1197,14 @@ -Sourdine locale -Rétablir cet intervenant -Suivre -Ne plus suivre -Mettre en sourdine -Réactiver le son @@ -2009,7 +1228,6 @@ -Impossible d\'enregistrer votre liste de serveurs nest. Réessayez. @@ -2021,39 +1239,24 @@ -Serveurs nest -Vos serveurs -Enregistré en tant qu\'événement remplaçable de type kind-10112 pour que d\'autres clients puissent lire votre préférence. -Serveurs recommandés -Suggestions intégrées que vous pouvez ajouter à votre liste en un seul appui. - - %1$d épisode - %1$d épisodes - -Nouvelle piste musicale -Nouvelle liste de lecture - - %1$d piste - %1$d pistes - @@ -2061,18 +1264,15 @@ -Ensembles de hashtags -Nouvel ensemble d\'intérêts -Rendre privé : envoyer la note en gift-wrap uniquement aux utilisateurs notifiés @@ -2084,12 +1284,9 @@ -Recharger & envoyer le zap -Envoyer le zap -Recharger %1$s sats sur %2$s et zapper %3$s %4$s sats · frais ≈ %5$s sats @@ -2101,7 +1298,6 @@ -Choix unique @@ -2110,54 +1306,28 @@ Serveurs multimédia recommandés -Cibles de paiement - - -Ajoutez des adresses de paiement pour différents réseaux (ex. bitcoin, lightning, ethereum). -Aucune application trouvée pour traiter ce paiement. Veuillez installer un portefeuille compatible. -Aucune application installée pour traiter les paiements %1$s. Veuillez installer un portefeuille compatible. -Impossible d\'ouvrir le paiement -Sélectionné -Le mien -Réactions -Vous notifie lorsque quelqu\'un réagit à votre publication -%1$s a réagi à votre publication -pour %1$s -Nouvelles réactions -Mises à jour d\'échecs -Vous notifie lorsque quelqu\'un répond à votre publication + + %1$s a répondu sur : %1$s -Vous notifie lorsque quelqu\'un vous mentionne ou vous cite dans une publication - -Appel avec %1$s - -Notification d\'appel en cours - -Raccrocher - - -Couper le son - -Réactiver le son @@ -2166,58 +1336,21 @@ -Maintient les connexions à vos relais de boîte de réception actives pour les notifications en temps réel -Notifications Amethyst actives - - Connecté à %1$d relais de boîte de réception - Connecté à %1$d relais de boîte de réception - - - Connecté à %1$d relais - Connecté à %1$d relais - -Connexion aux relais de boîte de réception… + + + + + + Service de notification permanent Maintient une connexion persistante à vos relais de boîte de réception pour une livraison instantanée des notifications. Affiche une notification permanente. Consomme plus de batterie mais garantit que vous ne manquez aucun message. -Séparer les notifications par abonnements - -Afficher deux onglets de notifications — Abonnements (personnes que vous suivez) et Tout le monde. L\'indicateur de non-lu s\'allume uniquement pour l\'activité des personnes que vous suivez. - -Inclure les messages directs et de groupe dans l\'onglet Notifications. Désactivez pour conserver les messages uniquement dans l\'onglet Messages. - - - - - - -Ajouter un tag client à mes événements - -Lorsqu\'activé, Amethyst ajoute un tag client NIP-89 aux événements que vous publiez. - - - - - -Masquer les publications qui enfreignent les règles de la communauté - -Supprime les publications des fils de la communauté lorsque la communauté publie un document de règles NIP-9B et qu\'un événement ne le respecterait pas. Aucun effet lorsqu\'une communauté n\'a pas de règles structurées. - -Préférences de filtrage - -Contenu bloqué - -Aucun compte n\'a été signalé comme spam lors de cette session. - -Aucun mot masqué. Ajoutez un mot ci-dessous pour masquer les publications le contenant. - -Normes de protection de l\'enfance @@ -2232,101 +1365,84 @@ -Zone de danger - -Réinitialiser l\'état Marmot - - - -État Marmot réinitialisé. - -Échec de la réinitialisation de l\'état Marmot : %1$s - -Lecture automatique des vidéos - - %1$d piste - %1$d pistes - - - - +%1$d piste supplémentaire - +%1$d pistes supplémentaires - - - -Choisissez une image carrée comme illustration pour cette piste. - -Téléverser un fichier audio - -Choisissez un MP3, WAV ou FLAC. Il sera téléversé sur votre serveur multimédia lors de l\'enregistrement. - - -Téléversement de la couverture + audio et publication. Cela continuera même si vous quittez l\'écran. - -Choisissez une image carrée comme illustration pour cette liste de lecture. -Téléversement de la couverture et publication. Cela continuera même si vous quittez l\'écran. -Amethyst n\'a trouvé aucune application de portefeuille prenant en charge Nostr Wallet Connect (NWC).\n\nVoici ce que vous pouvez faire :\n\n1. Vérifier la prise en charge NWC : Vérifiez que votre application de portefeuille préférée est compatible avec Nostr Wallet Connect.\n\n2. Créer une connexion : Accédez à votre application de portefeuille et créez une nouvelle connexion NWC.\n\n3. Lier à Amethyst : Votre portefeuille vous proposera généralement trois options :\n\n3.1 Lien automatique : Un bouton pour ouvrir et connecter automatiquement Amethyst. Si c\'est le cas, cliquez sur ce bouton, ouvrez Amethyst et appuyez sur enregistrer sur le nouvel écran.\n\n3.2 Lien manuel : Un URI de connexion que vous pouvez copier et coller via l\'icône de collage sur cet écran.\n\n3.3 Code QR : Le portefeuille crée un code QR que vous pouvez lire depuis le bouton code QR de cet écran. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Envoyer en DM -Le codec ou le format n\'est pas pris en charge sur cet appareil (%1$s). Essayez de l\'ouvrir dans votre navigateur. - -Ouvrir dans le navigateur - -Fils en sourdine - -Aucun fil mis en sourdine -Livraison - -Affichage dans l\'application -Chiffrer les fichiers avant le téléversement pour la confidentialité. Certains serveurs peuvent ne pas accepter les fichiers chiffrés sur les comptes gratuits. - -Échec du téléversement chiffré - -De nombreux serveurs n\'acceptent pas les fichiers chiffrés sur les comptes gratuits. Vous pouvez réessayer sans chiffrement. -Convertit les GIF animés en vidéo MP4 pour une taille de fichier réduite et une meilleure compatibilité de lecture. - -Tente de supprimer les métadonnées privées des fichiers multimédias pris en charge avant le téléversement - -Les métadonnées n\'ont pas pu être supprimées -Échec de la suppression des métadonnées privées du média. Téléversement annulé. -Téléversement annulé -Impossible de supprimer les métadonnées de l\'AVIF : %1$s -Calendriers -Listes de calendriers + + + + + + + + @@ -2353,25 +1469,14 @@ Clé privée P2PK (hex) -Modifier les mints Enregistrer les modifications - - +%1$d de plus - +%1$d de plus - - - Recommandé par %1$d autre - Recommandé par %1$d autres - -Mints populaires -Mints correspondants @@ -2387,14 +1492,12 @@ -Publier une demande de suppression pour votre recommandation kind:38000 de %1$s. Les relais qui respectent NIP-09 la supprimeront. -%1$s sats récupérés sur %2$s preuves. @@ -2414,27 +1517,20 @@ -Payer %1$s sat + jusqu\'à %2$s sat de frais ? -Nutzap échoué -Aucune clé publique de destinataire sur la note -Les nutzaps sont publics et révéleraient cette note privée. Utilisez un zap Lightning à la place. -Impossible de construire la référence d\'événement -En attente du paiement de la facture… -Vérification du mint… @@ -2452,27 +1548,10 @@ -%1$s · %2$s sat/vB · %3$s - - Envoyer %1$s sats, %2$d voie - Envoyer %1$s sats, %2$d voies - - - Utiliser la répartition à %1$d voie de cette note - Utiliser la répartition à %1$d voies de cette note - - - Répartition entre %1$d destinataire - Répartition entre %1$d destinataires - - - Ignorer %1$d destinataire avec uniquement une adresse Lightning — le on-chain nécessite une clé publique Nostr pour dériver l\'adresse. - Ignorer %1$d destinataires avec uniquement une adresse Lightning — le on-chain nécessite une clé publique Nostr pour dériver l\'adresse. - @@ -2484,40 +1563,22 @@ -chargement du solde -construction de la transaction -signature -diffusion -publication du reçu -Le backend de la chaîne Bitcoin n\'est pas configuré -Impossible de charger votre solde Bitcoin -Impossible de construire la transaction -La part d\'un destinataire est inférieure au dust -Impossible de signer la transaction -Impossible de diffuser la transaction -Paiement envoyé, mais le reçu de zap n\'a pas pu être publié - - Paiement envoyé (%1$d reçu sur %2$d publié), mais le reçu suivant n\'a pas pu être publié - Paiement envoyé (%1$d reçus sur %2$d publiés), mais le reçu suivant n\'a pas pu être publié - -Importer des abonnements -Fil @@ -2548,25 +1609,14 @@ -En cours -%1$s · se termine %2$s -Partager l\'événement de calendrier -calendar_reminders -Rappels de calendrier -Avertissement lorsqu\'un événement auquel vous participez est sur le point de commencer. -Événement de calendrier - - Commence dans %1$d minute - Commence dans %1$d minutes - @@ -2575,14 +1625,9 @@ -Une notification se déclenche lorsqu\'un événement auquel vous participez est sur le point de commencer. - - %1$d min - %1$d min - @@ -2597,7 +1642,6 @@ -Barre de navigation inférieure Glissez pour réorganiser. Activez ou désactivez pour ajouter ou supprimer un élément de la barre inférieure. Avec zéro élément, la barre inférieure est masquée. @@ -2608,26 +1652,18 @@ Choisissez les onglets qui apparaissent sur l\'écran d\'accueil. Lorsqu\'un seul onglet est actif, la barre d\'onglets est masquée. -Tout -Interface du profil Choisissez les sections et les fils qui apparaissent sur les écrans de profil utilisateur. Toutes les options sont activées par défaut. -Badges du profil - -Recommandations d\'applications - -Fil des zaps reçus - -Fil des abonnés - -Ligne de réactions -Boutons du lecteur vidéo + + + + @@ -2647,7 +1683,6 @@ -Visualiseur audio @@ -2658,25 +1693,16 @@ -Relais de réception -KeyPackages - -Relais KeyPackage - -Relais où vos MLS KeyPackages sont publiés (MIP-00). Les autres utilisateurs récupèrent ces KeyPackages pour vous inviter dans des discussions de groupe Marmot. Insérez entre 1 et 3 relais qui acceptent les événements KeyPackage de votre part et autorisent les lectures publiques. - -Transférer les profils vers le relais local - -Envoyer tous les événements de profil (kind 0) reçus vers votre relais local -Flux de relais favoris -Relais que vous visitez fréquemment pour voir leur flux global -Exporter les paramètres de relais + + + + @@ -2704,19 +1730,13 @@ -Centres d\'intérêt -Lieux -Algorithmes de flux -Tous les algorithmes de flux favoris -Relais -Algorithmes de flux favoris @@ -2745,215 +1765,113 @@ -Pour chaque paire de langues traduites, choisissez quelle langue afficher en premier. -Ce message disparaîtra dans %1$s -Métadonnées de la liste de suivi -Les métadonnées des listes de suivi sont visibles par tous sur Nostr. Seuls vos membres privés sont chiffrés. -Les métadonnées du pack de suivi sont visibles par tous sur Nostr et sont fréquemment publiées sur de nombreux sites Web comme kits de démarrage pour les nouveaux utilisateurs. -Relais de sortie -En-tête audio -Piste musicale -Playlist musicale -Épisode de podcast -Émission de podcast -Podcasts créés -Podcasts favoris -Définitions de badges -Ensemble de badges acceptés -Badges de profil -Serveurs Blossom -Serveurs Nests -Auth Blossom -Relais de diffusion -Liste de signets -Ancienne liste de signets -Rendez-vous journalier -RSVP rendez-vous -Auth échecs -Relais favoris -Défis aux échecs -Acceptation de partie d\'échecs -Coup aux échecs -Fin de partie d\'échecs -Offre de nulle aux échecs -Définition de canal -Masquer message du canal -Liste de canaux -Message de canal -Métadonnées du canal -Utilisateur muet du canal -Fichier DM -Message DM -Relais DM -Petites annonces -Déf. communauté -Liste de communautés -Publication communautaire -Liste de suivi -En-têtes de fichier -Galerie de profil -Serveurs de fichiers -Données blob -En-têtes blob -Packs de suivi -Reposts (16) -Suivis géohash -GiftWraps -Problème Git -Correctif Git -Dépôt Git -Réponse Git -Objectifs Zap -Suivis de hashtag -Surlignages -Auth Http -Liste de relais index -Prologue d\'aventure -Scène d\'aventure -Lecture d\'aventure -Signets nommés -Discussions en direct -Demande Zap -Salle de réunion -Présence en salle -Espace de réunion -NNS -Statut DVM -Demande de contenu DVM -Réponse contenu DVM -Demande utilisateur DVM -Réponse utilisateur DVM -OTS -PayTo -Entraînements -Épingles -Sondage Zap -Réponse au sondage -NIP-04 DMs -Relais proxy -Carte de contact -Auth relais -Découverte de relais -Annonce de surveillance de relais -Ensemble de relais -Signalements -Reposts -Suppression d\'utilisateur -Sceaux -Commentaires torrent -Relais de confiance -Fournisseurs de confiance -Vidéo (Repl) -Shorts (Repl) -WakeUp -Signet web @@ -2965,9 +1883,7 @@ -%1$d%% de disponibilité -Paramètres Namecoin @@ -2978,13 +1894,11 @@ -%dms -Sync relay @@ -3011,74 +1925,27 @@ -Explorateur Bitcoin (OTS) -événements de vous -événements pour vous -événements recherchables -DMs -profils -listes de sortie -Vu il y a %1$s -Vu le %1$s (il y a %2$s) -Vu à l\'instant -Jamais vu - - %1$d minute - %1$d minutes - - - %1$d heure - %1$d heures - - - %1$d jour - %1$d jours - - - %1$d semaine - %1$d semaines - - - %1$d mois - %1$d mois - - - %1$d an - %1$d ans - - - %1$d mint - %1$d mints - - - %1$d facture en attente - %1$d factures en attente - - - Fonds détenus chez %1$d mint que vous n\'utilisez pas - Fonds détenus chez %1$d mints que vous n\'utilisez pas - @@ -3092,7 +1959,6 @@ -%1$s sat déplacés vers %2$s. @@ -3105,13 +1971,10 @@ -Diffuser sur l\'appareil -Arrêter la diffusion -Mise en ligne HLS @@ -3132,7 +1995,6 @@ -Mise en ligne de %1$s (%2$d sur %3$d) @@ -3150,7 +2012,6 @@ -Attestation @@ -3158,12 +2019,9 @@ -Demande d\'attestation -Recommandation de l\'attesteur -Compétence de l\'attesteur @@ -3171,11 +2029,8 @@ -Signets web -Ajouter un signet web -Modifier le signet web @@ -3190,7 +2045,6 @@ -%1$s financés sur un objectif de %2$s sats @@ -3225,9 +2079,7 @@ -Nouvel objectif -Demande de suppression @@ -3241,7 +2093,6 @@ -Demande de suppression envoyée @@ -3255,22 +2106,16 @@ -Historique des suppressions -Utilisateurs -Événements -Kinds -IPs -Paramètres @@ -3322,23 +2167,14 @@ -Proposer des améliorations de texte -Utilise un modèle IA embarqué pour proposer des corrections de texte et des changements de ton. -Diffusions suivies -Utilise le diffuseur suivi lors de l\'envoi d\'événements. Affiche la progression en direct et l\'état par relais pendant la diffusion. -Suggérer des entraînements à partager -Lit les entraînements terminés depuis Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) et suggère de les partager en tant que publication. La permission n\'est demandée qu\'à la connexion. -Paramètres de composition -Créer automatiquement des brouillons -Enregistre automatiquement un brouillon lorsque vous tapez ou quittez un compositeur avec du texte non envoyé, et l\'envoie à vos relais de boîte d\'envoi privée. @@ -3355,9 +2191,7 @@ -Nouveau pack d\'emojis -Modifier le pack d\'emojis @@ -3381,45 +2215,29 @@ -Mes packs d\'emojis -Emojis -Les emojis publics sont visibles par tous et apparaissent dans votre menu de réactions et le sélecteur de saisie automatique \":\" lorsque ce pack est dans votre liste d\'emojis. -Les emojis privés sont stockés chiffrés sur les relais et visibles uniquement par vous. Ils apparaissent dans votre menu de réactions et la saisie automatique \":\" comme les emojis publics. -Le brouillon fait %1$d octets ; cette communauté limite ce kind à %2$d octets. -Le brouillon fait %1$d octets ; cette communauté limite les événements à %2$d octets. -Vous avez déjà publié %1$d événements de ce kind aujourd\'hui (limite %2$d). -Site Nowhere -Événement Nowhere -Collecte de fonds Nowhere -Boutique Nowhere -Pétition Nowhere -Message Nowhere -Drop Nowhere -Art Nowhere -Forum Nowhere @@ -3437,25 +2255,14 @@ - - %1$d msg - %1$d msgs - - - %1$d membre - %1$d membres - -Informations du groupe mises à jour -Échec de la mise à jour : %1$s -Échec de la création du groupe : %1$s @@ -3466,13 +2273,9 @@ -Échec du départ du groupe : %1$s -Ajout de %1$s… -Échec de l\'ajout de %1$s : %2$s -erreur inconnue @@ -3481,9 +2284,7 @@ -Membre retiré -Échec de la suppression du membre : %1$s @@ -3491,22 +2292,17 @@ -Privilèges d\'administrateur accordés -Échec de l\'octroi des droits d\'administrateur : %1$s -Privilèges d\'administrateur révoqués -Échec de la révocation des droits d\'administrateur : %1$s -Pas membre de ce groupe diff --git a/amethyst/src/main/res/values-hi-rIN/strings.xml b/amethyst/src/main/res/values-hi-rIN/strings.xml index 7009e03e51..938b4ff0f2 100644 --- a/amethyst/src/main/res/values-hi-rIN/strings.xml +++ b/amethyst/src/main/res/values-hi-rIN/strings.xml @@ -1,156 +1,13 @@ - - इस पत्र मे %1$d से अधिक विषयसूचक हैं - इस पत्र मे %1$d से अधिक विषयसूचक हैं - - - %1$d सम्पत्ति समावेशित - %1$d सम्पत्ति समावेशित - - - सं॰%1$d\n उत्तर - सं॰%1$d\n उत्तर - - - वृत्तान्त आपके द्वारा अनुचरित %1$d व्यक्ति से - वृत्तान्त आपके द्वारा अनुचरित %1$d व्यक्तियों से - - कचरालेख - इस पुनःप्रसारक से कचरालेख घटनाओं की संख्या - पररूपण - अवैध बरताव - हटाने की याचना - आप ख्याप्य कुंचिका का प्रयोग कर रहे हैं जिससे केवल पढ सकते हैं। उत्तर देने के लिए गुप्त कुंचिका के साथ प्रवेशांकन करें - आप ख्याप्य कुंचिका का प्रयोग कर रहे हैं जिससे केवल पढ सकते हैं। प्रकाशित पत्रों को उद्धृत करने के लिए गुप्त कुंचिका के साथ प्रवेशांकन करें - आप ख्याप्य कुंचिका का प्रयोग कर रहे हैं जिससे केवल पढ सकते हैं। प्रकाशित पत्रों को चाहने के लिए गुप्त कुंचिका के साथ प्रवेशांकन करें - ज्साप मात्रा स्थापित नहीं किया गया। दीर्घतः दबाएँ परिवर्तन करने के लिए - आप ख्याप्य कुंचिका का प्रयोग कर रहे हैं जिससे केवल पढ सकते हैं। ज्साप भेजने के लिए गुप्त कुंचिका के साथ प्रवेशांकन करें - आप ख्याप्य कुंचिका का प्रयोग कर रहे हैं जिससे केवल पढ सकते हैं। अनुचरण करने के लिए गुप्त कुंचिका के साथ प्रवेशांकन करें - आप ख्याप्य कुंचिका का प्रयोग कर रहे हैं जिससे केवल पढ सकते हैं। अनुचरण रोकने के लिए गुप्त कुंचिका के साथ प्रवेशांकन करें - आप ख्याप्य कुंचिका का प्रयोग कर रहे हैं जिससे केवल पढ सकते हैं। शब्द अथवा वाक्य छिपाने के लिए गुप्त कुंचिका के साथ प्रवेशांकन करें - आप ख्याप्य कुंचिका का प्रयोग कर रहे हैं जिससे केवल पढ सकते हैं। शब्द अथवा वाक्य आच्छादन हटाने के लिए गुप्त कुंचिका के साथ प्रवेशांकन करें - आप ख्याप्य कुंचिका का प्रयोग कर रहे हैं जिससे केवल पढ सकते हैं। आरोहण करने के लिए गुप्त कुंचिका के साथ प्रवेशांकन करें - आप ख्याप्य कुंचिका का प्रयोग कर रहे हैं जिससे केवल पढ सकते हैं। घटनाओं पर हस्ताक्षर करने के लिए गुप्त कुंचिका के साथ प्रवेशांकन करें - अनधिकृत अपरहस्यीकरण - हस्ताक्षरकर्ता ने इस कार्य करने के लिए अपरहस्यीकरण का अधिकार नहीं दिया। आपके हस्ताक्षर क्रमक में निप॰-४४ अपरहस्यीकरण सक्रिय करें तथा पुनः प्रयास करें - हस्ताक्षरकर्ता अप्राप्त - क्या हस्ताक्षर क्रमक अस्थापित किया गया। जाँच करें कि यदि हस्ताक्षरकर्ता स्थापित है तथा यह लेखा वहाँ है। यदि हस्ताक्षर क्रमक में परिवर्तन है तो निर्गमनांकन तथा प्रवेशांकन पुनः करें। - बाहरी हस्ताक्षरकर्ता द्वारा दिया गया उत्तर विचित्र है अनुरोध के लिए। अमेथिस्ट अथवा हस्ताक्षरकर्ता में कुछ दोष हो सकता है। - ज्साप - उद्धरण उद्धृत सम्पादन #%1$s - सम्पादन सुझाव दें - जोडें - अपक्रम संदेश परखने में अपक्रम - परिचय - सुरक्षा छलनियाँ - अल्प दिखाएँ - चालान अनुरोध… - ऋणांकन सेवा ने भुगतान पूरा नहीं किया। - क्या %1$s भुगतान %2$s द्वारा करें। - क्या चालान का भुगतान %1$s द्वारा करें। - इस प्रस्ताव के लिए मान्य मात्रा प्रविष्ट करें। - एकदा - दैनिक - साप्ताहिक - मासिक - भुगतान करें - भुगतान %1$s द्वारा… - भुगतान असफल - व्ययक्षमता इस प्राप्तकर्ता के लिए : %1$s साट्स - व्यापार : %1$s - "%1$s के लिए पूर्वीक्षण पत्ता चित्र" - विवरण - आपके मन में क्या है? - सन्देश लिखें … - पत्र प्रकाशन अभिलेखन करें - भेजें - बनाएँ पुनःनामकरण - निरस्त करें - अपक्रम - अपक्रम - सफल संयोजनों का प्रतिशत पुनःप्रसारक के साथ - संचारयन्त्र में अभिलेखन करें - चित्र का अभिलेखन किया गया चित्रालय क्रमक में - चलचित्र अवरोहण आरम्भ हुआ … - श्रव्यदृश्याभिलेख अवरोहण आरम्भ हुआ … - ऊपर टाँकें - टाँका हटाएँ - चित्र का अभिलेखन असफल - चलचित्र को संचारयन्त्र के चलचित्रालय में सुरक्षित रखा गया - चलचित्र को सुरक्षित रखने में असफल - पीडीएफ॰ का अभिलेखन हुआ डौनलोड्स/अमेथिस्ट में - पीडीएफ॰ अभिलेखन असफल - कोई चित्रग्राहक क्रमक उपलब्ध नहीं इस यन्त्र में - टाँकें तथा दबाए रखें संदेश का अभिलेखन करने के लिए - आरोहण अपक्रम - ध्वनि सन्देश आरोहण असफल - निप॰९५ का आलम्बन अभी नहीं है ध्वनि सन्देशों के लिए - ध्वनि आरोहण असफल : %1$s - कुछ भी नहीं - गहन - उच्च - मध्यम - उपयोगकर्ता का कोई लैटनिंग पता स्थापित नहीं जिसपर साट्स प्राप्त कर सके - "उत्तर यहाँ दें.. " - ज्ञात - नये अनुरोध - बाधित उपयोगकर्ता - नये सूत्र - सम्वाद - अधिक विकल्प - निजी कुंचिका क्यूआर॰ चित्र अक्षरराशि दिखाएँ - रहस्यीकृत निजी कुंचिका क्यूआर॰ चित्र अक्षरराशि दिखाएँ - अनुचरण करें - प्रत्यानुचरण करें - पारणशब्द छिपाएँ - अमान्य कुंचिका - अमान्य कुंचिका : %1$s - पारणशब्द अनिवार्य - कुंचिका अनिवार्य - नाम अनिवार्य - आमन्त्रण अप्राप्त। सम्भाव्यतः योजक निष्क्रिय है अथवा इसके पुनःप्रसारक अनभिगम्य। - यह आमन्त्रण योजक अमान्य है अथवा इस लेखा द्वारा खोला नहीं जा सकता। - इस आमन्त्रण को खोला नहीं जा सकता। सम्भावना है कि यह पुराना हो चुका है अथवा नवीनतर द्वारा प्रतिस्थापित अथवा एक नवीनतर क्रमक संस्करण द्वारा बनाया गया। एक नए आमन्त्रण योजक के लिए पूछें। - यह आमन्त्रण योजक निराकृत है तथा अनुपयुक्तव्य। नए के लिए पूछें। - इस समुदाय ने आपको हटा दिया। योजक अब भी कार्य करता है पर इसके सदस्यसूची में आप स्वीकृत नहीं। - आमन्त्रण योजक - आमन्त्रण योजक… - आमन्त्रण योजक निराकृत। - योजक निराकरण असफल। आपका संयोजन जाँचें तथा पुनःप्रयास करें। - यह आमन्त्रण योजक पुराना हो चुका है तथा अनुपयुक्तव्य। नए योजक के लिए पूछें। - कोंकोर्ड॰ प्रणाली - कोई प्रणाली नहीं अब तक। - चित्र भेजें - नयी प्रणाली - प्रणाली पुनःनामकरण - पुनःनामकरण - प्रणाली नाम - प्रणाली मिटाएँ - क्या प्रणाली मिटा दें। - क्या #%1$s को मिटा दें। इसको पूर्ववत नहीं किया जा सकता। तथा उसी सूचक के साथ प्रणाली का पुनःउत्पादन नहीं किया जा सकता। - मिटाएँ - समुदाय छोडें - क्या समुदाय छोडें। - क्या %1$s छोडें। इसे हटाया जाएगा इस लेखा की सूची से तथा आपके यन्त्रों पर समचरणीकरण रुक जाएगा। समुदाय को सूचित नहीं किया जाएगा। तथा आपको उसके सदस्य कार्यसूची से हटाया नहीं जाएगा। सन्देश जिनका आप अरहस्यीकरण नहीं कर सकेंगे सम्भाव्यतः पुनःप्राप्तव्य नहीं होंगे। तथा आप केवल नए आमन्त्रण के साथ लौट सकेंगे। - आपने इस समुदाय को बनाया। छोड जाने से यह मिटेगा नहीं। किसी अन्य के हाथ सौंपा नहीं जाएगा। परन्तु स्वत्वधारी कुंचिका जो आपकी सूची में हैं वह हटाया जाएगा। आप आगे से इसका प्रबन्धन नहीं कर पाएँगे। - %1$s टंकण मध्य… - %1$s तथा %2$s टंकण मध्य… - अनेक लोग टंकण मध्य… - नयी कोंकोर्ड प्रणाली - पुनःप्रसारक चिह्न जालपता (विकल्पात्मक) - - %1$d प्रणाली - %1$d प्रणालियाँ - %1$d कार्यशाला %1$d कार्यशालाएँ @@ -159,318 +16,38 @@ %1$d प्रणाली %1$d प्रणालियाँ - - %1$d सदस्य - %1$d सदस्य - - - %1$d नया सन्देश - %1$d नए सन्देश - - कोई सन्देश नहीं अब तक - बनाएँ - लोगों को आमन्त्रण - आमन्त्रण योजक - प्रशासक बनाएँ - प्रशासक हटाएँ - पुनःप्रसारक जो इस समुदाय के रहस्यीकृत सन्देशों को रखते हैं। रिक्त छोड दें अपने ही पुनःप्रसारकों का उपयोग करने के लिए। - समुदाय सम्पादन - सदस्य - प्रशासक बनाएँ - प्रशासक हटाएँ - प्रतिबन्ध - प्रतिबन्ध हटाएँ - भूमिकाएँ सौंपें - इस सदस्य के भूमिकाओं का अद्यतन करने में असफल। - कोंकोर्ड - चर्चा में - सूत्र में - - %1$d उत्तर - %1$d उत्तर - नया चर्चा परिचय : - निर्गमन - सन्देशों से हटाएँ - सन्देशों में जोडें - अनुचरण ना करें - नश्वर चर्चा - पुनःप्रसारक चर्चा - पुनःप्रसारक चर्चाएँ - पुनःप्रसारक चर्चाएँ आवासी पुनःप्रसारक द्वारा नियन्त्रित चर्चा समुदाएँ हैं। - वे नोस्टर पर सभी के लिए दृश्य हैं तथा उनमें सभी भाग ले सकते हैं। - वे उत्कृष्ट हैं खुले समुदायों के लिए विशिष्ट विषयों पर। इनमें से कुछ समुदाएँ अस्थायी हैं। - तथा इसीलिए समय के साथ चर्चा सन्देश अदृश्य हो जाते हैं - सार्वजनिक चर्चा - मार्मोट॰ समूह - सार्वजनिक चर्चा उपतथ्य - सार्वजनिक चर्चाएँ सबके लिए दृश्यमान हैं नोस्टर पर तथा सभी - इनमें भाग ले सकते हैं। ये उत्कृष्ट हैं खुले समुदायों के लिए विशिष्ट विषयों के प्रसंग में। - नियमन का नियन्त्रण किया जा सकता है पत्रों को मिटाने से पुनःप्रसारकों में - पुनःप्रसारक - इस समुदाय के निवास के लिए १ - ३ पुनःप्रसारकों को जोडें। - नोस्टर ग्राहक इस स्थापना विकल्प का प्रयोग करेंगे यह जानने के लिए कि कहाँ से सन्देशों का अवरोहण करना है तथा कहाँ आपके सन्देश भेजने हैं। - हटाएँ - कभी नहीं - अभी - घं॰ - मि॰ - दि॰ - नग्नता - अपशब्द अथवा द्वेषपूर्ण भाषण - कुंचिकाएँ सुरक्षित रखें - आपकी निजी कुंचिका का रहस्यीकरण असफल - गुप्त कुंचिका (एनसेक॰) की अनुकृति टाँकाफलक में की गई - मेरी गुप्त कुंचिका की अनुकृति करें - प्रमाणीकरण असफल - जैविकमात्राएँ द्वारा इस संचारयन्त्र के स्वत्वधारी का प्रमाणीकरण असफल - जैविकमात्राएँ द्वारा इस संचारयन्त्र के स्वत्वधारी का प्रमाणीकरण असफल। अपक्रम : %1$s - टीका लेख की अनुकृति की गई टाँकाफलक में - लेखक के @npub की अनुकृति की गई टाँकाफलक में - टीका सूचक (@note1) की अनुकृति की गई टाँकाफलक में - "<निजी संदेश का अरहस्यीकरण असफल>\n\nआप का उल्लेख किया गया एक निजी अथवा रहस्यीकृत संवाद में %1$s तथा %2$s के बीच।" - लेखाएँ - मार्गदर्शन - आप - सूचनावलियाँ - बनाएँ - व्यवस्था - पीछे चलें - जालसंचारक योजक बाँटें - बाँटें - चित्र के रूप में बाँटें - चित्र योजक के रूप में बाँटें - टीका सूचक - मिटाएँ - सूत्र मौन करें - सूत्र मौन हटाएँ - सूचनाएँ मौन करें - सूचना मौनावस्था हटाएँ - - बाधित करें - स्मर्तव्य - स्मर्त्तव्यचिह्न सफलतापूर्वक स्थानान्तरित किए गए - पाण्डुलिपियाँ - समय निर्धारित पत्र प्रकाशन - पत्र प्रकाशन समय निर्धारण - समय निर्धारण निरस्त - समय निर्धारित पत्र का प्रकाशन सम्भाव्यतः क्रमक पुनः खोलने तक नहीं होगा। सदैव सक्रिय सक्षम करें स्थापना विकल्पों में प्रयोगमाध्यम में विश्वसनीय पृष्ठतल समयनिर्धारण के लिए। - समय निर्धारित पत्र का प्रकाशन सम्भाव्यतः क्रमक पुनः खोलने तक नहीं होगा। अन्य लेखाओं के समयनिर्धारित पत्र चलेंगे नहीं जब यह लेखा सक्रिय है। सदैव सक्रिय सक्षम करें स्थापना विकल्पों में प्रयोगमाध्यम में विश्वसनीय पृष्ठतल समयनिर्धारण के लिए। - %1$s । %2$s में - %1$s । %2$s पूर्व - कल - निर्गमनांकित - - निर्गमनांकित। %d समयनिर्धारित पत्र मिटाया गया - निर्गमनांकित। %d समयनिर्धारित पत्र मिटाए गए - - समय निर्धारित पत्र प्रकाशित - समय निर्धारित पत्र प्रकाशन असफल - प्रकाशन समय निर्धारित पत्र - सूचनाएँ जब एक समयनिर्धारित पत्र का प्रकाशन होता है अथवा प्रकाशन असफल। - अभी भेजें - अपक्रम : %1$s - समयनिर्धारित - भेजा जा रहा है… - असफल - भेजा गया - निरस्त - - आपका %d समयनिर्धारित पत्र है जिसका प्रकाशन अभी नहीं हुआ। निर्गमनांकन से वह स्थायी रूप से मिटाया जाएगा। - आपके %d समयनिर्धारित पत्र हैं जिनका प्रकाशन अभी नहीं हुआ। निर्गमनांकन से वे स्थायी रूप से मिटाए जाएँगे। - - - %d पंक्तिबद्ध - %d पंक्तिबद्ध - - - · %d एक घण्टे में होना है - · %d एक घण्टे में होने हैं - - - %d पुनःप्रसारक तक - %d पुनःप्रसारकों तक - - टीका सूचक की अनुकृति की गई - मतदान - खुला - आवृत - पदक - समुदाय - नया समुदाय - समुदाय सम्पादन - नियामक - पुनःप्रसारक - सत्यापन सम्भव नियम (विकल्पात्मक) - अनुमत घटना प्रकार - छोटा लेख (१) - दीर्घरूप लेख (३००२३) - चित्र पत्र (२०) - चलचित्र पत्र (२१) - छोटा चलचित्र (२२) - समुदाय टिप्पणी (११११) - प्रतिबन्धित प्रयोक्ता - विश्वासजाल द्वार (विकल्पात्मक) - वैश्विक अधिकतम घटना आकार (विकल्पात्मक) - नया पदक - पदक पुरस्कार - परिचय पदक - चित्र - व्यायाम - नया व्यायाम - - %1$d गतिविधि - %1$d गतिविधियाँ - - धावन - पैदल - द्विचक्रिकाचालन - पगडण्डी पदयात्रा - तरण - खेना - शक्ति - योग - ध्यान - आहार - उपवास - परिक्रम - प्रति मिनट प्रत्येक मिनट पर - जितनी बार हो सके - क्रमक विपणि क्रमक विपणि - नोस्टर संलग्नक्रमक - नोस्टरस्थान - जालवीक्षक - टोर॰ पर आवहन हो रहा है। खुले जाल का उपयोग करने के लिए दबाएँ। - खुले जाल पर आवहन हो रहा है। टोर॰ का उपयोग करने के लिए दबाएँ। - इष्टसूची - जाल क्रमक आविष्करण - जालक्रमक - इष्टसूची में जोडें - इष्टसूची में से हटाएँ - टोर॰ पर आवहन होता है। - खुले जाल पर आवहन होता है। - पुनःप्रसारकों पर प्रकाशित किया गया - अभिलेख का आरोहण सम्पन्न - भुगतान किया गया - उस क्रमक का आवहन अभी नहीं हुआ है। कुछ क्षण पश्चात पुनःप्रयास करें। - निकटकाल नोस्टर संलग्नक्रमक अनुमतियाँ कोई नोस्टर संलग्नक्रमक अनुमतियाँ नहीं अब तक नोस्टर संलग्नक्रमकों को आपके द्वारा दिए गए अनुमतियाँ यहाँ दिखेंगे। इस नोस्टर संलग्नक्रमक को भूल जाएँ प्रति उपयोग अनुमति आवश्यक निराकरण - नोस्टर संलग्नक्रमक %1$s… छाल - परिचय - अक्षरफलक कार्य - पुनःप्रसारक - रहस्यीकरण - भण्डार - भुगतान - जाल - आरोहण पूछें क्या क्षमताएँ उपलब्ध हैं - आपकी ख्याप्यकुंचिका पढें - अक्षरफलक द्रुतपथ बन्धन - पढें हस्ताक्षर करें तथा प्रकाशित करें आपके घटनाओं को - निजी सन्देशों का रहस्यीकरण तथा अरहस्यीकरण करें अपनी कुंचिका से - उसका अपना निजी भण्डार - लैटनिंग चालान का भुगतान - जाल तथा ब्लोस्सम॰ संसाधन ले आएँ - आपके श्रव्यदृश्याभिलेख सेवासंगणक तक अभिलेखों का आरोहण - प्रदर्शनशैली - सूचनाएँ - सन्देश प्रेषण - आपके क्रमक के वर्णों के अनुकूल - सूचनाएँ दिखाएँ - अन्य नोस्टर संलग्नक्रमकों के साथ सन्देशों का विनिमय क्षमता : %1$s - यह नोस्टर संलग्नक्रमक आपकी ख्याप्यकुंचिका पढना चाहता है। - यह नोस्टर संलग्नक्रमक आपका परिचय तथा लेखा जानकारी पढना चाहता है। - यह नोस्टर संलग्नक्रमक आपके रूप में एक %1$d प्रकार घटना का हस्ताक्षरण तथा प्रकाशन करना चाहता है। - यह नोस्टर संलग्नक्रमक आपके रूप में एक %1$d प्रकार घटना का हस्ताक्षरण तथा प्रकाशन करना चाहता है : - यह नोस्टर संलग्नक्रमक आपके रूप में एक रहस्यीकृत घटना भेजना चाहता है। - यह स्थान आपके नोस्टर कुंचिका से %1$s को एक सन्देश का रहस्यीकरण करना चाहता है। - यह स्थान आपके नोस्टर कुंचिका से %1$s को एक सन्देश का अरहस्यीकरण करना चाहता है। - यह नोस्टर संलग्नक्रमक आपके पुनःप्रसारकों से घटनाओं को पढना चाहता है। - यह नोस्टर संलग्नक्रमक अपना निजी भण्डार का प्रयेग करना चाहता है। यह नोस्टर संलग्नक्रमक एक लैटनिंग चालान का भुगतान करना चाहता है। - सावधान। यह नोस्टरसंलग्नक्रमक एक लैटनिंग चालान का भुगतान करना चाहता है जिसमें कोई मात्रा स्पष्टीकृत नहीं। प्राप्तकर्ता निर्णय करेगा कितना लिया जाएगा। इसे तभी अनुमति दें यदि आप इस पर विश्वास करते हैं। - यह नोस्टर संलग्नक्रमक एक जाल संसाधन लाना चाहता है। - यह नोस्टर संलग्नक्रमक एक अभिलेख को आपके श्रव्यदृश्याभिलेख सेवासंगणक तक आरोहण करना चाहता है। - यह नोस्टर संलग्नक्रमक आपको सूचनाएँ दिखाना चाहता है। - यह स्थान आपकी नोस्टर कुंचिका के साथ एक %1$d प्रकार घटना का हस्ताक्षर करना चाहता है। - - यह नोस्टर संलग्नक्रमक %1$d साट् का एक लैटनिंग चालान का भुगतान करना चाहता है। - यह नोस्टर संलग्नक्रमक %1$d साट्स का एक लैटनिंग चालान का भुगतान करना चाहता है। - - - %1$d नए लेखा का अनुचरण करता है - %1$d नए लेखाओं का अनुचरण करता है - - - %1$d लेखा का अनुचरण नहीं करता - %1$d लेखाओं का अनुचरण नहीं करता - - - %1$d पुनःप्रसारक जोडता है - %1$d पुनःप्रसारकों को जोडता है - - - %1$d पुनःप्रसारक हटाता है - %1$d पुनःप्रसारकों को हटाता है - - - %1$d अधिक व्यक्ति मौन करता है - %1$d अधिक लोगों को मौन करता है - - - %1$d व्यक्ति की मौन अवस्था हटाता है - %1$d लोगों की मौन अवस्था हटाता है - - सावधान। यह %1$s का अनुचरण करता है। - सावधान। यह %1$s का अनुचरण नहीं करता। - सावधान। यह %1$s को मौन करता है। - सावधान। यह %1$s की मौन अवस्था हटाता है। - सावधान। यह आपकी अनुचरण सूची का पुनःलेखन करता है : %1$s। - सावधान। यह आपकी पुनःप्रसारक सूची का पुनःलेखन करता है : %1$s। आपके पत्र तथा पठनसूची इसके साथ विस्थापित होंगे। - सावधान। यह आपकी मौन सूची का पुनःलेखन करता है : %1$s। मौनकृत शब्द तथा विषयसूचक यहाँ नहीं दिखाया जाता। घटना दिखाओ दबाएँ पूर्ण सूची के लिए। - %1$s तथा %2$s - यह आपकी वर्तमान सूची का पुनःप्रकाशन करता है अपरिवर्तित। - - सावधान। यह आपकी %1$d प्रविष्ट की सूची का लेखन करता है। अमेथिस्ट में कोई पूर्वस्मृत संस्करण नहीं तुलना करने के लिए। - सावधान। यह आपकी %1$d प्रविष्टों की सूची का लेखन करता है। अमेथिस्ट में कोई पूर्वस्मृत संस्करण नहीं तुलना करने के लिए। - - - सावधान। यह आपके घटनाओं में से %1$d को मिटाने का अनुरोध करता है। - सावधान। यह आपके घटनाओं में से %1$d को मिटाने का अनुरोध करता है। - - - %1$d विषयसूचक धारी। घटना दिखाओ दबाएँ यह देखने के लिए कि वस्तुतः क्या हस्ताक्षरित होगा। - %1$d विषयसूचक धारी। घटना दिखाओ दबाएँ यह देखने के लिए कि वस्तुतः क्या हस्ताक्षरित होगा। - नोस्टर से संयोजन @@ -479,889 +56,90 @@ पूर्व उपयुक्त समाप्ति - %1$s के लिए हस्ताक्षरण (प्रकार : %2$d) - सन्देश रहस्यीकरण - आपके निजी सन्देशों का पठन - आपके निजी सन्देशों का पठन %1$s के द्वारा - सर्वदा अनुमत %1$s के लिए - अमेथिस्ट द्वारा इस सन्देश का अरहस्यीकरण असफल। सम्भावना है कि यह इस लेखा के प्रति सम्बोधित नहीं। - संयोजित क्रमक सभी अनुमतियों का निराकरण परिचालन आवरक आदेश कोई क्रमक संयोजित नहीं अब तक। - क्रमक अनुमतियाँ हस्ताक्षरकर्ता नोस्टरसंलग्नक्रमक नोस्टरस्थल जालक्रमक विश्वास संयोजित - दूरस्थ हस्ताक्षरकर्ता हस्ताक्षरकर्ता कोष्ठागार निप॰४६ नोस्टर संयोजन दूरस्थ हस्ताक्षर दूरस्थ हस्ताक्षरकर्ता के रूप में कार्य करें %1$d पुनःप्रसारक पर श्रवण %1$d पुनःप्रसारकों पर श्रवण - - %1$d पुनःप्रसारक पर श्रवण - %1$d पुनःप्रसारकों पर श्रवण। सभी संयोजित - आपका कोष्ठागार पता इसे एक अन्य क्रमक में चिपकाएँ आपकी कुंचिका के साथ उसे जोडने के लिए। - कोष्ठागार पता अनुकृत - नया कोष्ठागार पता उत्पादित - संयोजित - असंयोजित - पुनःप्रसारकों के साथ पुनःसंयोजन… - - %1$d पुनःप्रसारक - %1$d पुनःप्रसारक - - क्रमक संयोजित। अमेथिस्ट अब इस के लिए हस्ताक्षर करता है पृष्ठभूततः। - %1$s संयोजित। अमेथिस्ट अब इस के लिए हस्ताक्षर करता है पृष्ठभूततः। - मान्य nostrconnect:// योजक नहीं - उस योजक पर कोई पुनःप्रसारक नहीं संयोजन करने के लिए - संयोजन असफल : %1$s - संयोजन अस्वीकृत - यह एक केवल पठनशक्य लेखा है तथा हस्ताक्षर नहीं कर सकता। - दूरस्थ हस्ताक्षरकर्ता क्रमक - - %1$d हस्ताक्षरण अनुरोध - %1$d हस्ताक्षरण अनुरोध - - सभी चुनें - कुछ ना चुनें किसी भी अनुरोध पर कार्य हुआ नहीं अब तक। - हस्ताक्षरण अनुरोध - पूर्णपटल प्रेरण एक क्रमक को अनुमति देने के लिए जो चाहता है अमेथिस्ट हस्ताक्षरण रहस्यीकरण अथवा अरहस्यीकरण करें आपकी कुंचिका के साथ। - क्या एक हस्ताक्षरण अनुरोध को अनुमति दें। - एक क्रमक संयोजन करना चाहता है - पुनरीक्षण के लिए दबाएँ - - %1$d संयोजित क्रमक - %1$d संयोजित क्रमक - - पुनःप्रसारक प्रमाणीकरण - प्रमाण प्रमाणीकरण प्रवेशांकन पुनःप्रसारक हस्ताक्षरण सत्यापन निप॰४२ परिचय - सर्वदा प्रवेशांकन - प्रत्येक पुनःप्रसारक जो पूछता है। - प्रवेशांकन कभी ना करें - कुछ पुनःप्रसारक आपकी सेवा करना नहीं स्वीकारेंगे। - निर्णय लें प्रति पुनःप्रसारक अनुसार - नीचे के प्रकरणों में अनुमत। अन्यों के विषय में पूछें। - \u2026यह मेरा पुनःप्रसारक है। अथवा एक शाला जिससे मैं जुड चुका अथवा जिसका मैं अनुगामी - \u2026मैं पढ रहा हूँ किसी को जिसका मैं अनुगमन करता हूँ - \u2026मैं सन्देश भेज रहा हूँ किसी को जिसका मैं अनुगमन करता हूँ - \u2026मैं किसी अन्य को सन्देश भेज रहा हूँ - - %1$s तथा %2$d अन्य - %1$s तथा %2$d अन्य - - - यह %1$d अन्य वस्तु को भी रोक रहा है। - यह %1$d अन्य वस्तुओं को भी रोक रहा है। - - सर्वदा प्रवेशांकन - कभी नहीं - सर्वदा तथा सभी पुनःप्रसारक - कभी नही तथा सभी पुनःप्रसारक - क्या सभी पुनःप्रसारकों में प्रवेशांकन करें। - अमेथिस्ट %1$s के नाम से प्रवेशांकन करेगा प्रत्येक पुनःप्रसारक में जो पूछता है तथा आपको नहीं पूछेगा। पुनःप्रसारक जिनको आपने बाधित किए अथवा जिनमें कभी भी प्रवेशांकन ना करने का विकल्प आपने स्थापित किए हैं वैसे ही रहेंगे। आप इसका परिवर्तन कर सकते हैं पुनःप्रसारक प्रवेशांकन के नीचे। - क्या किसी भी पुनःप्रसारक में प्रवेशांकन ना करें। - अमेथिस्ट पुनःप्रसारकों को आप %1$s हैं बताना रोकेगा तथा आपको पूछना भी रोकेगा। कुछ पुनःप्रसारक आपकी सेवा करना रोकेंगे। सन्देश प्रत्युत्तर तथा सूचनाएँ सम्भाव्यतः प्राप्त नहीं होंगे। पुनःप्रसारक जिनपर आपने सर्वदा प्रवेशांकन करने का विकल्प स्थापित किए हैं वैसे ही रहेंगे। आप इसका परिवर्तन कर सकते हैं पुनःप्रसारक प्रवेशांकन के नीचे। - सर्वदा। आपके द्वारा स्थापित - कभी नहीं। आपके द्वारा स्थापित - आपके सन्देश - आपके प्रत्युत्तर - लोग जिन्हें आप पढते हैं - एक शाला जिसमें आप पत्र प्रकाशित करते हैं - एक शाला जिसमे से आप पढते हैं - आपकी आगतपेटिका - एक वार्तालाप - आपका अपना पुनःप्रसारक - इस पुनःप्रसारक - लघु चलचित्र - सार्वजनिक चर्चा - स्थानीय प्रणालियाँ - अनुचरण पोटलियाँ - वर्तमानप्रवाह - निलय - हाथ उठाएँ - हाथ नीचे करें - मौन - मौन हटाएँ - सन्देश प्रेषण असफल - ध्वनिग्राहक मौन - ध्वनिग्राहक सक्रिय - निलय - ध्वनि चालू रखता है जब शाला खुला है। - निलय संयोजित - निलय - वर्तमान - लौटने के लिए दबाएँ। - अवरोधन - हाथ उठाया - मंच पर पधारे - बात कर रहे हैं - श्रोता के रूप में जुडे - निलय छोडकर गए - निर्गमन - शाला आवृत चिह्नित करने में असफल। तो भी निर्गमन चालू। शाला स्वतः आवृत हो जाएगी। - - %1$d श्रोता - %1$d श्रोतागण - - वक्ता को चुप करें - वक्ता को पुनःस्थापित करें - अनुचरण - अनुचरण ना करें - मौन - मौन हटाएँ - आपकी निलय सेवासंगणक सूची का अभिलेखन असफल। पुनःप्रयास करें। घटक कोष्ठक - निलय सेवासंगणक - आपके सेवासंगणक - प्रकार १०११२ प्रतिस्थापनशील घटना के रूप में अभिलेखित जिससे कि अन्य ग्राहक आपके आद्यताओं को पढ सके। - अनुशम्सित पुनःप्रसारक - अन्तःनिर्मित सुझाव जिन्हे आप जोड सकते हैं आपकी सूची में झटपट। - चलचित्र - संगीत - संगीतसूचियाँ - कडियाँ - पुटप्रसार अधिमूल्य - - %1$d अध्याय - %1$d अध्याय - - मूल्य के लिए मूल्य अपक्रम - इस पुटप्रसार का कोई भुगतान सम्भाव्य मूल्य प्राप्तकर्ता नहीं। - एक नोस्टर धनकोष संयोजन जोडें कुंचिकाप्रेषण (जालबिन्दु) प्राप्तकर्ताओं को भेजने के लिए। - एक नोस्टर धनकोष संयोजन अथवा ऋणांकन धनकोष जोडें सुनते समय साट्स प्रवाह चलाने के लिए। - नयी कडी - कडी सम्पादन - प्रकाशन… - बाहरी कलाकृति जोडें - वर्गाकार चित्र जो दिखेगा कडी के लिए - चलचित्र जालपता - प्रतिलिपि जालपता - अध्याय जालपता - ध्वनि अभिलेख जोडें - एमपी३॰ अथवा एम४ए॰ अथवा अन्य ध्वनि - आपका पुटप्रसार - बाहरी कलाकृति जोडें - वर्गाकार कलाकृति आपके कार्यक्रम के लिए - कार्यक्रम शीर्षक - मेरा पुटप्रसार - कर्ता - जालसम्पर्क - जालस्थान - श्रेणियाँ - तन्त्रज्ञान समाचार इत्यादि - वित्तपोषण योजक - https://… - भाषा - आंग्ल - अनुकृति अधिकार - नया पूर्वावलोकन - पूर्वावलोकन अम्श जोडें - लघु ध्वनि अथवा दृश्य पूर्वीक्षण - - %1$d पूर्वावलोकन - %1$d पूर्वावलोकन - प्राप्तकर्ता जोडें - इस प्रयोक्ता का कोई लैटनिंग॰ पता नहीं - - %1$d कडी - %1$d कडियाँ - - नया संगीत अभिलेख - नयी संगीतसूची - - %1$d अभिलेख - %1$d अभिलेख - - सार्वजनिक स्मर्तव्य सूची में जोडें - सार्वजनिक स्मर्तव्य सूची से हटाएँ - परिचय के साथ जोडें - परिचय से निकालें - नव्य स्मर्त्तव्य सूची - स्मर्त्तव्य सूची उपतथ्य - विषयसूचक समुच्चय - नव्य रुचि समुच्चय - पुनःनामकरण - निजी टीका - इस टीका को निजी रूप से भेजा गया तथा हस्ताक्षरित नहीं। केवल चिह्नित सहभागी देख सकते हैं। तथा बाहर के व्यक्तियों को इसे किसने लिखा इसका प्रामाणीकरण कोई नहीं कर सकता। - निजी बनाएँ। टीका को उपहारकोषयुक्त करें केवल सूचित प्रयोक्ताओं के लिए - सार्वजनिक बनाएँ - निजी टीका के उत्तर सर्वदा निजी रहते हैं - को दृश्य कोई प्राप्तकर्ता नहीं अब तक। केवल आप इस टीका को देख सकेंगे। लोगों को जोडें इसे बाँटने के लिए। - केवल आप \u2014 चयन कर सकते हैं कि अन्य कौन इसे देख सकते हैं - लोग जोडें सूचित करने के लिए - निजी रूप से भेजें - पहले ही जोडा गया - मौनकृत - निजी सदस्य - - %1$s तथा %2$s तथा %3$d अन्य - %1$s तथा %2$s तथा %3$d अन्य - - - इस टीका को रहस्यीकृत किया जाएगा तथा भेजा जाएगा %1$d पृथक बार। एक बार प्रति व्यक्ति। बाहरी हस्ताक्षरकर्ता के साथ यह प्रत्येक के लिए एक अनुमति होगी। - इस टीका को रहस्यीकृत किया जाएगा तथा भेजा जाएगा %1$d पृथक बार। एक बार प्रति व्यक्ति। बाहरी हस्ताक्षरकर्ता के साथ यह प्रत्येक के लिए एक अनुमति होगी। - - - %1$d व्यक्ति इस पत्र के लिए सूचना प्राप्त करेगा। - %1$d व्यक्ति इस पत्र के लिए सूचना प्राप्त करेंगे। - - - %1$d व्यक्ति होगा। अमेथिस्ट प्रति बार अधिकतम %2$d जोडेगा \u2014 कुछ का अचयन करें। - %1$d व्यक्ति होंगे। अमेथिस्ट प्रति बार अधिकतम %2$d जोडेगा \u2014 कुछ का अचयन करें। - - - %1$d व्यक्ति जोडें - %1$d व्यक्ति जोडें - - - तो भी %1$d व्यक्ति जोडें - तो भी %1$d व्यक्ति जोडें - जोडें प्रयोक्ता हटाएँ सूचनाओं से - सूचित किया जा रहा है। दबाएँ सूचना को मौन करने के लिए इस प्रयोक्ता के लिए - मौनकृत। दबाएँ इस प्रयोक्ता को पुनःसूचित करने के लिए खोजें तथा जोडें प्रयोक्ता को जिसे सूचित करना है - स्मर्त्तव्य सूची उपतथ्य किसी के भी द्वारा देखे जा सकते हैं नोस्टर पर। केवल आपके निजी सदस्य रहस्यीकृत होते हैं। - सार्वजनिक करें - निजी बनाएँ - पुनःभरण तथा ज्साप भेजें - ज्साप भेजें - पुनःभरण %1$s साट्स %2$s तक तथा ज्साप %3$s को %4$s साट्स। शुल्क लगभग %5$s साट्स - विकल्प %s - (० से १००) प्रतिशत - एक विकल्प - अनेक विकल्प - निर्वाचन करने में असफल - मतदान आवृत है नये निर्वाचनों के लिए - प्रत्येक उपयोगकर्ता को केवल एक निर्वाचन करने की अनुमति है इस प्रकार के मतदान में। - मतदानकर्ता अपने ही मतदान में निर्वाचन नहीं कर सकते। - इसका अर्थ क्या है? - यह विषयवस्तु वैसे ही है जैसे पत्र प्रकाशन पर - यह विषयवस्तु परिवर्तित हुआ है। हो सकता है लेखक ने परिवर्तन देखा नहीं अथवा अनुमति दिया नहीं। - श्रव्यदृश्याभिलेख जोडें - चित्र जोडें - चलचित्र जोडें - पत्र जोडें - अभिलेख सेवासंगणक - इस अभिलेख का आरोहण करने के लिए सेवासंगणक का चयन करें - श्रव्यदृश्याभिलेख सेवासंगणक आपके श्रव्यदृश्याभिलेख सेवासंगणक आद्यताएँ स्थापित करें। रखे गए अभिलेखों का प्रबन्धन - मेरे ब्लोस्सम॰ अभिलेख - आपके अभिलेखों की अनुकृति सभी सेवासंगणकों में… - निरस्त - ब्लोस्सम॰ समचरणीकरण - प्रगति दर्शाता है आपके अभिलेखों की अनुकृति करते समय आपके ब्लोस्सम सेवासंगणकों में। - सभी सेवासंगणकों पर - सभी सेवासंगणकों पर नहीं यहाँ से मिटाएँ… - भुगतान आवश्यक इस सेवासंगणक तक आरोहण के लिए : %1$s - - %1$d साट् भुगतान - %1$d साट्स भुगतान - - सभी को सक्षम करें - सभी को अक्षम करें - एक अभिलेख समचरणीकरण पहले से चल रहा है। समाप्त होने के पश्चात आयात करने का पुनःप्रयास करें। - - %1$d अभिलेख - %1$d अभिलेख - - - %1$d नया अभिलेख प्राप्त आपके सेवासंगणकों में आयात करने के लिए। - %1$d नए अभिलेख प्राप्त आपके सेवासंगणकों में आयात करने के लिए। - - - %1$d अभिलेख का आयात - %1$d अभिलेखों का आयात - अनुशम्सित श्रव्यदृश्याभिलेख सेवासंगणक अमेथिस्त की मूलविकल्प सूची। आप एक एक करके जोड सकते हैं अथवा सूची जोड सकते हैं। - संयोजित - मन्द - असंयोजित जाँच चालू… - भुगतान लक्ष्य - भुगतान पताएँ जोडें भिन्न जालों के लिए (उ॰ द्व्यंकरूप्य लैटनिंग एथिरियम)। - कोई क्रमक प्राप्त नहीं जो इस भुगतान को सम्भाल सके। कृपया अनुकूल धनकोष स्थापित करें। - कोई क्रमक स्थापित नहीं जो %1$s भुगतान को सम्भाल सके। कृपया अनुकूल धनकोष स्थापित करें। - भुगतान करें %1$s में। आप वहाँ मात्रा का चयन करेंगे - भुगतान इनको हस्थान्तरण - जब कर्ता एक भुगतान विधि का प्रकाशन करता है जिसे इस संचारयन्त्र में उपलब्ध एक क्रमक खोल सकता है (वेन्मो मोनेरो अथवा एक आईबान॰…) तब ज्साप चयनकर्ता उसका प्रस्ताव कर सकेगा। दबाने से वह क्रमक खोलेगा तथा मात्रा पूछेगा। पुनःप्रसारकों पर कुछ भी प्रकाशित नहीं होगा। जिससे टीका की ज्साप संख्या में परिवर्तन नहीं होगा। - कर्ता के भुगतान विधियों का प्रस्ताव करें - भुगतान खोलने में असमर्थ - बोल्ट१२ प्रस्ताव सूची - एक अथवा अनेक बोल्ट१२ प्रस्ताव जोडें (lno1…)। वे सार्वजनिक रूप से बाँटे जाते हैं जिससे कि कोई भी आपको भुगतान कर सके। - बोल्ट१२ भुगतान भेजा गया - बोल्ट१२ भुगतान असफल : %1$s - बोल्ट१२ ज्साप अपक्रम - बोल्ट१२ पर भुगतान किया गया। परन्तु धनकोष से कोई प्रमाण प्राप्त नहीं। इसलिए कोई ज्साप प्राप्तिप्रमाण प्रकाशित नहीं किया गया। - बोल्ट१२ पर भुगतान किया गया। परन्तु भुगतान प्रमाण की प्रमाणीकरण असफल। इसलिए कोई ज्साप प्राप्तिप्रमाण प्रकाशित नहीं किया गया। - गोपनीयता विकल्प - सभी अनुचरित - प्रयोक्ता के सभी अनुगामी - मूल अनुचरण सूची - मेरे आसपास - स्थानान्तरण… - इस स्थान का अनुचरण - इस स्थान का अनुचरण ना करें - वैश्विक - आयोजित संग्रह - मेरा - मौन सूची - नयी अनुचरण सूची - नव्य अनुचरण पोटली - सूची सम्पादन - मूलविकल्प द्वार ९०५० है - ओर्बोट सोक्स॰ द्वार - सक्रिय टोर उपकरण - आन्तरीय संस्करण का प्रयोग करें अथवा ओर्बोट - टोर अथवा गोपनीयता पूर्वकृत स्थापना विकल्प - शीघ्र से नीचे के सभी स्थापना विकल्पों का परिवर्तन करें - बहुरहस्यावृत संचार जालपता अथवा पुनःप्रसारक - टोर का प्रयोग करें किसी भी .onion जालपता के लिए - सीधा संदेश पुनःप्रसारक - सीधे संदेश भेजने तथा प्राप्त करने के लिए टोर का प्रयोग अवश्य करें - अविश्वसनीय पुनःप्रसारक - निर्गत अथवा आगतपेटिका पुनःप्रसारकों के लिए टोर का प्रयोग अवश्य करें - विश्वसनीय पुनःप्रसारक - आपके सूचियों में सभी पुनःप्रसारकों के लिए टोर का प्रयोग अवश्य करें - परिचय चित्र - परिचय चित्र अवरोहण के लिए टोर का प्रयोग अवश्य करें - जालपता पूर्वीक्षण - जालपता पूर्वीक्षण के लिए टोर का प्रयोग अवश्य करें - चित्र - चित्र अवरोहण के लिए टोर का प्रयोग अवश्य करें - चलचित्र - चलचित्र अवरोहण के लिए टोर का प्रयोग अवश्य करें - व्यापार - ज्साप लैटनिंग तथा काशयू व्यापार के लिए टोर का प्रयोग अवश्य करें - नोस्ट्र पता सत्यापन - निप॰-०५ पता सत्यापन के लिए टोर का प्रयोग अवश्य करें - श्रव्यदृश्याभिलेख आरोहण - विषयवस्तु आरोहण के लिए टोर का प्रयोग अवश्य करें - आन्तरीय - ओर्बोट - निष्क्रिय - मूलभूत - मूलविकल्प - श्रव्यदृश्याभिलेख के अतिरिक्त सभी - सम्पूर्णतः गुप्त - विशिष्ट - सेवासंगणक की आवश्यकता होने पर टोर का प्रयोग करें - अपना अंकीय जालपता छिपाएँ अपरिचित पुनःप्रसारकों से - चित्र चलचित्र अतिरिक्त अन्य सभी से अपना अंकीय जालपता छिपाएँ - सभी संयोजनों में अपना अंकीय जालपता छिपाएँ - अपना स्वयम का बनाएँ - निजी संदेश - आपको सूचित करता है जब एक निजी संदेश आएगा - ज्साप प्राप्त - सूचित करता है जब किसी ने आपको ज्साप किया - %1$s साट्स - %1$s से - %1$s के लिए - भुगतान प्राप्त - आपको सूचित करता है जब आपके संयोजित धनकोष को एक भुगतान प्राप्त होता है जो एक नोस्टर ज्साप नहीं - %1$s साट्स प्राप्त - नए भुगतान - उत्तर - पढा हुआ चिह्नित करें - मैं - नया सन्देश - आप %1$s में जोडे गए हैं - नए सन्देश - नए ज्साप - प्रतिक्रियाएँ - सूचित करता है जब किसी ने आपके पत्र पर प्रतिक्रिया व्यक्त किया हो - %1$s ने आपके पत्र पर प्रतिक्रिया व्यक्त की - %1$s के लिए - नए प्रतिक्रियाएँ - चतुरंग - आपको सूचित करता है चतुरंग खेल घटनाओं के विषय में - %1$s ने आपकी चतुरंग चुनौती स्वीकारा - %1$s ने खेला - आपकी बारी - चतुरंग अद्यतन - प्रतिवचन - आपको सूचित करता है जब किसी ने आपके पत्र को उत्तर लिखा हो %1$s उत्तर दिया पर : %1$s - नए उत्तर - उल्लेख - आपको सूचित करता है जब किसी ने आपका उल्लेख अथवा उद्धरण किया हो - %1$s ने आपका उल्लेख किया - नए उल्लेख - सन्देश - सामूहिक - भुगतान - विषयवस्तु - विकासकर्ता - खेल - पुनःप्रकाशन - आपको सूचित करता है जब कोई आपके पत्र को पुनःप्रकाशित करते हैं - %1$s ने आपके पत्र को पुनःप्रकाशित किया - नए पुनःप्रकाशन - श्रव्यदृश्याभिलेख - आपको सूचित करता है जब कोई आपका उल्लेख करते हैं चित्र अथवा चलचित्र में - %1$s ने चित्र बाँटा - %1$s ने चलचित्र बाँटा - नए श्रव्यदृश्याभिलेख - निबन्ध तथा उद्दीप्तव्य - आपको सूचित करता है जब कोई आपका उल्लेख अथवा आपको उद्दीप्त करते हैं एक निबन्ध में - %1$s ने आपका उल्लेख किया एक निबन्ध में - %1$s ने आपके निबन्ध को उद्दीप्त किया - नए निबन्ध - क्रमलेख तथा गिट॰ - आपको सूचित करता है समस्याएँ सुधारलेख कर्षण अनुरोध टिप्पणियाँ विलय तथा आवृतों पर - %1$s ने एक विषय खोला - %1$s ने एक सुधारलेख भेजा - %1$s ने एक कर्षण अनुरोध खोला - %1$s ने एक कर्षण अनुरोध का अद्यतन किया - %1$s ने टिप्पणी की - %1$s ने एक सूत्र को पुनः खोला - %1$s ने एक कर्षण अनुरोध को विलय किया - %1$s ने एक सुधारलेख का प्रयोग किया - %1$s ने एक समस्या का समाधान किया - %1$s ने एक सूत्र का विलय अथवा समाधान किया - %1$s ने एक कर्षण अनुरोध को आवृत किया - %1$s ने एक सुधारलेख को आवृत किया - %1$s ने एक समस्या को आवृत किया - %1$s ने एक सूत्र को आवृत किया - %1$s ने एक सूत्र को कच्चा चिह्नित किया - नई क्रमलेख गतिविधि - पदक - अपको सूचित करता है जब आप एक नया पदक प्राप्त करते हैं - आपने एक पदक प्राप्त किया - पुरस्कृत %1$s द्वारा - नए पदक - नटज्साप॰ %1$s से - खण्डश्रृंखलाबद्ध ज्साप %1$s से - %1$s ने प्रश्न पूछा - आगामी आह्वान - सूचनाएँ आगामी ध्वनि तथा दृश्य आह्वानों के लिए - आगामी आह्वान - आगामी ध्वनि आह्वान\u2026 - आगामी दृश्य आह्वान\u2026 - %1$s के साथ आह्वान - आह्वान - चालू आह्वान सूचना - समापन - स्वीकार - अस्वीकार करें - मौन - मौन हटाएँ - चित्रग्राहक चालू - चित्रग्राहक निष्क्रिय - चित्रपटल बाँटें - चित्रपटल बाँटना रोकें - चित्रपटल बाँटा जा रहा है - वक्ता - कर्णयन्त्र - ब्लूटूथ - अमेथिस्ट को ध्वनिग्राहक अभिगमन आवश्यक है ध्वनि आह्वान आरम्भ करने के लिए। कृपया इसे क्रमक स्थापना विकल्पों में सक्षम करें। - अमेथिस्ट को चित्रग्राहक तथा ध्वनिग्राहक अभिगमन आवश्यक है दृश्य आह्वान आरम्भ करने के लिए। कृपया इन्हें क्रमक स्थापना विकल्पों में सक्षम करें। - आह्वान स्थापना विकल्प - आपके आगतपेटिका पुनःप्रसारकों के साथ संयोजन सक्रिय रखता है तत्काल सूचनाओं के लिए - अमेथिस्ट सूचनाएँ सक्रिय - - संयोजित %1$d आगतपेटिका पुनःप्रसारक के साथ - संयोजित %1$d आगतपेटिका पुनःप्रसारकों के साथ - - - संयोजित %1$d पुनःप्रसारक के साथ - संयोजित %1$d पुनःप्रसारकों के साथ - - विवरण दिखाएँ - विवरण छिपाएँ - - %1$s \u00b7 %2$d पुनःप्रसारक - %1$s \u00b7 %2$d पुनःप्रसारक - - जालभ्रमण - श्रव्यदृश्याभिलेख - विषयसूचक - विषय सूची - वार्तालाप - खोज - लुप्त घटनाओं को ढूँढें - घटना अवलोकन - घटनाओं को सूचक अनुसार ले आता है जिसका उल्लेख आपके पटल पर अमुक करता है पर जिसकी प्राप्ती अभी नहीं हुई। एक उद्धरण अथवा एक प्रत्युत्तर का पूर्वपत्र अथवा एक सूत्र का मूल। - घटनाओं का अवलोकन करता है जो वर्तमान में प्रदर्शित हो रहे हैं नए प्रत्युत्तर प्रतिक्रियाएँ उद्धरण ज्साप तथा वृत्तान्तों के लिए जिससे गिनतियों का नवीकरण होता है जब आप पढ रहे हैं। - संलग्न - पुनःप्रसारक जानकारी - अन्य - पुनःप्रसारक सूची खोजकर्ता - परिचय अवलोकन - लेखा जानकारी - मुख्य सूचनावली - पुनःप्रसारक समूह - - %1$d समूह - %1$d समूह - - अस्थायी चर्चाएँ - स्थानीय चर्चाएँ - वर्तमानप्रवाह चर्चा - निप॰२९ समूह जिनसे आप जुडे हैं। प्रत्येक समूह एक जालावास पुनःप्रसारक में रहता है। इसलिए क्रमक प्रत्येक पुनःप्रसारक से संयोजन करता है जो आपके किसी समूह का जालावास है। - चर्चाशालाएँ जो कोई इतिहास नहीं रखते। सन्देश केवल तब तक रहते हैं जब तक आप संयोजित हैं। इसलिए ये ग्राहकता बनाए रखते हैं कुछ भी प्राप्त होने के लिए। - स्थान आधारित शालाएँ उन क्षेत्रों के लिए जिनका आप अनुगमन करते हैं। पृष्ट उन पुनःप्रसारको से जो इनके जालावास हैं। - चर्चा तथा ज्साप उद्देश्य जो वर्तमानप्रवाहों से संलग्न हैं जिन्हें आप खोले हुए हैं अथवा अनुगमन करते हैं। - सीधासन्देश आगतपेटिका - धनकोष - नटज्साप आगतपेटिका - टकसाल निर्देशिका - धनकोष संयोजन - समुदाय चर्चाएँ - समुदाय सूचनावलियाँ - आपके आगतपेटिका पुनःप्रसारक तथा कुछ अल्पमात्रा परिभ्रमणवर्ती दृष्टान्त पुनःप्रसारक जिनपर आपके अनुचरित पत्र प्रकाशित करते हैं। यदि कोई उल्लेख अन्यत्र भेजा गया। - आपके सीधासन्देश पुनःप्रसारक। जहाँ उपहारकोषयुक्त सन्देश भेजे जाते हैं। - मुख्य पुनःप्रसारक प्रत्येक चर्चा का जिन्हें आप खोल रखे हैं अथवा जिनसे आप जुड चुके हैं। - पुनःप्रसारक जिनपर प्रत्येक समुदाय अपने समतलों को प्रकाशित करते हैं। - समूह सन्देश तथा कुंचिकापेटलियाँ। प्रत्येक समूह के पुनःप्रसारकों पर। - शाला के पुनःप्रसारक। जब वह खुला हो। - आपके अपने परिचय तथा स्थापना विकल्प तथा पाण्डुलिपियाँ। आपके मुख्य पुनःप्रसारकों पर। - वर्तमानतः पटल पर लोगों के परिचय। - खोजता है किन पुनःप्रसारकों पर प्रत्येक व्यक्ति प्रकाशन करता है। जिससे कि उनके पत्र सम्यक स्थल से प्राप्प हो। - अनुचरण सूचियाँ। आपकी सूचनावली तथा आपका विश्वासजाल का निर्माण के लिए उपयुक्त। - वृत्तान्त जो आपके अनुचरितों ने लिखा वर्तमानतः आपके पटल पर दिखनेवाले परिचयों के विषय में। पृष्ट प्रत्येक पुनःप्रसारक से जिनपर वे पत्र प्रकाशन करते हैं। - अनुचरित से वृत्तान्त - आपके अपने धनकोष घटनाएँ। पुनःपठित उन पुनःप्रसारकों से जिनपर आपने उनके प्रकाशन किए। - सुनता है आपके नटज्साप पुनःप्रसारकों पर तथा आपके आगतपेटिका तथा सीधासन्देश पुनःप्रसारकों पर। जिससे कि कोई भी भुगतान छूट ना जाए। - पुनःप्रसारकों का वीक्षण करता है यह देखने के लिए कि कौनसे टकसाल हैं तथा लोग किनकी अनुशम्सा करते हैं। - आपके संयोजित धनकोष से सूचनाएँ। - सक्रिय पुनःप्रसारक ग्राहकताएँ - - %1$d छलनी - %1$d छलनियाँ - - - %1$d पुनःप्रसारक - %1$d पुनःप्रसारक - - - %1$d छलनी आरोपित नहीं अब तक - %1$d छलनियाँ आरोपित नहीं अब तक - %1$s \u00b7 %2$s - %1$dप्रतिशतप्रतिशत सब में से - ग्राहकताएँ छलनियाँ पुनःप्रसारक अनुरोध अनु॰ संयोजन क्यों निदानतन्त्र - आपके अनुचरितों के पत्र। पठित उन पुनःप्रसारकों से जिनपर उनमें से प्रत्येक प्रकाशन करते हैं। - आगतपेटिका पुनःप्रसारकों के साथ संयोजन किया जा रहा है \u2026 सदैव सक्रिय सूचना सेवा अनवरत संयोजन बनाए रखता है आपके आगतपेटिका पुनःप्रसारकों के साथ तत्काल सूचना वितरण के लिए। एक स्थायी सूचना दिखाता है। विद्युत्कोष का अधिक उपयोग करता है पर निश्चित करता है कि आप कभी भी सन्देश नहीं खोएँगे। सूचना सेवा - सक्रिय - निष्क्रिय - पृष्ठभूत सूचना सेवा - मुख्य विकल्पस्थापक वास्तविकसमय पृष्ठभूत सूचनाओं के लिए। निष्क्रिय करें विद्युतकोष बचाने के लिए। जैसे विमान अवस्था में। जब निष्क्रिय कोई लेखा संयोजित नहीं पृष्ठतल में। तथा निष्क्रिय रहता है (पुनःआरम्भों के पश्चात भी) तब तक कि आप इसे सक्रिय नहीं करते। - पृष्ठभूत सक्रिय लेखाएँ इस लेखा को पृष्ठभूत सक्रिय रखें - सूचनाएँ विभाजित करें अनुचरित के अनुसार - दो सूचना पृष्ठसूचक दिखाएँ। अनुचरित (लोग जिनका आप अनुचरण करते हैं) तथा सभी। अपठित संकेतक चमकता है केवल आपके द्वारा अनुचरित लोगों के गतिविधियों के लिए। - सन्देशों को दिखाएँ - सूचनाएँ पृष्ठ पर सीधे तथा समूह सन्देशों को समाविष्ट करें। निष्क्रिय करें यदि सन्देशों को केवल सन्देश पृष्ठ में रखना चाहते हों तो। - सूचित करें : - आज - छिपाएँ - दिखाएँ - चेतावनी दें - कचरालेख छलनी - अज्ञात लोगों से पत्र छिपाएँ जो निरन्तर 5 अथवा अधिक बार यथावत समान थे - मेरे घटनाओं में ग्राहक सूचक जोडें - जब सक्षम अमेथिस्ट निप॰८९ ग्राहक सूचक जोडेगा आपके द्वारा प्रकाशित घटनाओं में। - वृत्तान्त प्राप्त होने पर चेतावनी दें - चेतावनी सन्देश दिखाता है जब पत्र अथवा परिचय पर वृत्तान्त हों आपके द्वारा अनुचरित लेखाओं से - समुदाय नियमों का उल्लंघन करनेवाले पत्रों को छुपाएँ - समुदाय सूचनावलियों से पत्र हटाया जाता है जब समुदाय द्वारा निप॰९बी नियम अभिलेख प्रकाशित है तथा घटना उसका उल्लंघन करेगा। कोई प्रभाव नहीं जब समुदाय के कोई व्यवस्थित नियम नहीं। - छलनी आद्यताएँ - बाधित विषयवस्तु - आपने किसी प्रयोक्ता को बाधित नहीं किया अब तक। - कोई लेखा चिह्नित नहीं कचरालेख के लिए इस सत्र में। - कोई बाधित शब्द नहीं। नीचे शब्द जोडें उन पत्रों को अदृश्य करने के लिए जिनमें वह है। - इस उपयोगकर्ता के लिए कोई प्रतिक्रिया प्रकार पूर्व चयनित नहीं। हृदयचिह्न घुण्डी पर दीर्घतः दबाएँ परिवर्तन करने के लिए - पुनःप्रसारक से पढें - पुनःप्रसारक को लिखकर भेजें - अष्टकों में मात्रा जो इस पुनःप्रसारक को भेजा गया था छलनियाँ तथा घटनाएँ समेत - अष्टकों में मात्रा जो इस पुनःप्रसारक से प्राप्त हुआ था छलनियाँ तथा घटनाएँ समेत - गोपनीयता नीति - शिशु सुरक्षा मानक - जानकारी तथा न्यायिक - काशयू अक्षरराशि - कोई लैटनिंग पता स्थापित नहीं - पुनःप्रसारक - अनुचरण पोटलियाँ - पठितव्य - सूचनावली विधियाँ - व्यापारक्षेत्र - वर्तमानप्रवाह - समुदाय - चर्चाएँ - संवेदनशील विषयवस्तु - इसे दिखाने से पूर्व संवेदनशील विषयवस्तु चेतावनी जोडता है - प्रयोगमाध्यम आद्यताएँ क्रमक आद्यताएँ - अनुवाद - प्रतिक्रियाएँ - स्थापना विकल्प - लेखा स्थापना विकल्प - क्रमक स्थापना विकल्प - संकट क्षेत्र - मार्मोट॰ स्थिति पुनःस्थापित करें - मार्मोट॰ स्थिति पुनःस्थापन। - मार्मोट॰ स्थिति पुनःस्थापन असफल : %1$s - सर्वदा - मात्रांकन रहित वैफै॰ - कभी नहीं - वैफै॰ - सम्पूर्ण - सरलीकृत - वेगवान - पूर्ण - सरल - द्रुत - प्राचीन - आधुनिक - यन्त्रव्यवस्था - प्रकाशवान - अन्धकारमय - स्वरूप - श्रव्यदृश्याभिलेख तथा जानकारी - सामान्य - संयोजन - टोर॰ के माध्यम से - विभाग तथा सूचनावलियाँ - दृश्य पृष्ठसूचक - सूचनावली में विषयवस्तु - लेखीय टीकाएँ - पुनःप्रकाशन - टिप्पणियाँ तथा प्रत्युत्तर - चित्र - चलचित्र - लघु चलचित्र - लेख - समूहसम्पाद्य पृष्ठ - प्रमुखताएँ - मतदान - वर्गीकृत विज्ञापन - अनेकत्रावरोहण - ध्वनि सन्देश - वर्तमान गतिविधियाँ - अस्थायी चर्चाएँ - अन्तरक्रियाशील कहानियाँ - चतुरंग खेल - पक्षी अवलोकन घटनाएँ - साक्ष्यांकन सूची - निप॰ पाण्डुलिपियाँ - संगीत तथा ध्वनि - पुटप्रसार - धनसंग्रहण - मूल्यांकन तथा समीक्षाएँ - मूल्यांकित पाँच में से %1$s - पाठ्य संसाधन - निर्देशिका - अभिलेख - - %1$d वस्तु - %1$d वस्तुएँ - - - %1$d वस्तु अधिक - %1$d वस्तुएँ अधिक - - अनुस्मारकसूची - धनकोष संयोजन - प्रदर्शनशैली - नीललोहितवर्ण - नीलवर्ण - हरितवर्ण - नारंगवर्ण - रक्तवर्ण - श्वेतरक्तवर्ण - अक्षरशैली - अक्षरशैली क्रमक में सर्वत्र प्रयुक्त - यन्त्र मूलविकल्प - रेखारहित - सरेखा - समविस्तार - व्यवस्था - रेखारहित - सरेखा - समविस्तार - अक्षर आकार - क्रमक में सर्वत्र लेख आकार वर्धन - छोटा - सामान्य - बडा - बहुत बडा - चित्र पूर्वीक्षण - चलचित्र का चालन - स्वतःचालन चलचित्र - जालपता पूर्वीक्षण - निमग्नकारी पृष्ठघुमाव - मार्गदर्शनपट्टियों को छिपाएँ पृष्ठघुमाव करने पर - प्रयोगमाध्यम शैली - पत्र प्रकाशन शैली का चयन करें - परिचय चित्रालय शैली - चित्रालय शैली चुनें - कचरालेख प्रेषक - मौन किया गया। अमौन करने के लिए टाँकें - ध्वनि सक्रिय। मौन करने के लिए टाँकें - %d सेकण्ड पूर्व जाएँ - %d सेकण्ड आगे जाएँ - मानचित्र पर एक स्थल चुनें - मानचित्र पर स्थल परिवर्तन करें - स्थल विशेष पत्र - स्थल के अनुचर ही देखेंगे। आपके सामान्य अनुचर नहीं देखेंगे। - - %1$d अभिलेख - %1$d अभिलेख - - - %1$d अधिक अभिलेख - %1$d अधिक अभिलेख - - बाहरी चित्र आरोहण करें - एक वर्गाकार चित्र का चयन करें इस अभिलेख की कलाकृती के रूप में। - ध्वनि अभिलेख आरोहण - एक एमपीत्री॰ अथवा वेव॰ अथवा फ्लाक॰ का चयन करें। इसका आरोहण किया जाएगा आपके श्रव्यदृश्याभिलेख सेवासंगणक पर अभिलेखन करने पर। - बाहरी चित्र तथा ध्वनि अभिलेख का आरोहण तथा प्रकाशन चालू। यह चलता रहेगा आप पटल से विगमन करें तो भी। - संगीतसूची सम्पादन - बाहरी चित्र आरोहण करें - एक वर्गाकार चित्र का चयन करें इस संगीतसूची की कलाकृती के रूप में। - बाहरी चित्र का आरोहण तथा प्रकाशन चालू। यह चलता रहेगा आप पटल से विगमन करें तो भी। सार्वजनिक समूह - निजी - रहस्यीकृत समूह - पुनःप्रसारक अवगत - निजी सन्देश - सीधे सन्देश आरम्भ से अन्त तक रहस्यीकृत - एक प्रति एक। पाँच शालाएँ - एक प्रति एक तथा लघु समूह चर्चाएँ आपके परिचित लोगों के साथ। - नया सन्देश - एक प्रति एक तथा लघु समूह - आरम्भ से अन्त तक रहस्यीकृत - तत्पश्चात प्रयोक्ताओं को नहीं जोड सकते - मार्मोट॰ समूह - बृहत्तर निजी समूह - यन्त्रबद्ध - बृहत्तर निजी समूह जो लघुसमूह सीधेसन्देश से उद्भूत हैं। - समूह बनाएँ - लघु सीधेसन्देश मापदण्डस्तर पार करता है - रहस्यीकृत समूह चर्चा - यन्त्रबद्ध। अदृश्य यदि आप अन्यत्र प्रवेशांकन करें - कोंकोर्ड समुदाय - समुदाय प्रणाली अनुसार विभाजित - कार्यशालाएँ - विशाल समुदाय। प्रणालियों अथवा कार्यप्रवाहों अनुसार व्यवस्थित। - समुदाय बनाएँ - विशाल समुदायों तक का मापदण्डस्तर - प्रणाली अथवा कार्यप्रवाह अनुसार विभाजित - स्थापनार्थ और अधिक - सार्वजनिक चर्चा - सार्वजनिक सन्देश एक पुनःप्रसारक पर - नियमनरहित - खुले सार्वजनिक शालाएँ जहाँ कोई भी पत्र प्रकाशित कर सकता है। - नयी सार्वजनिक चर्चा बनाएँ - कोई भी जुड सकता है - सरल तथा आविष्करणशक्य - केवल सार्वजनिक - नियमनरहित - पुनःप्रसारक समूह - पुनःप्रसारक संचालित। सार्वजनिक अथवा निजी - नियमनयुक्त - अपने निवास पुनःप्रसारक द्वारा नियमनकृत समूह। - पुनःप्रसारक समूह वीक्षण - पुनःप्रसारक द्वारा नियमनकृत - सार्वजनिक अथवा निजी - उस एक पुनःप्रसारक से बद्ध - नश्वर चर्चा - जो भी संयोजित हो। अभी इस समय - वर्तमान अभी - सामयिक चर्चा किसी से भी जो अभी संयोजित हो। - चर्चा आरम्भ करें - जो भी संयोजित हो अभी उनसे बात करें - कुछ भी अभिलेखित नहीं - कोई इतिहास नहीं - पुनःप्रसारक सीमित - पुनःप्रसारक समूह - पुनःप्रसारक समूह - सन्देश - निजी सन्देश - आरम्भ से अन्त तक रहस्यीकृत तथा उपहारकोषयुक्त सीधे सन्देश (निप॰१७)। - पुरानी शैली सीधेसन्देश - पुराने तथा अल्पतर निजी रहस्यीकृत सीधे सन्देश (निप॰०४)। - सार्वजनिक प्रणालियाँ - खुले सार्वजनिक चर्चा शालाएँ। कोई भी पढ सकता है तथा जुड सकता है (निप॰२८)। - पुनःप्रसारक समूह - पुनःप्रसारक प्रबन्धित समूह चर्चाएँ कार्यसूचियाँ तथा नियमन युक्त (निप॰२९)। - रहस्यीकृत समूह - एमएलएस॰ आरम्भ से अन्त तक रहस्यीकृत समूह चर्चाएँ (मार्मोट॰)। - कोंकोर्ड समुदाय - रहस्यीकृत समुदाय अनेक प्रणालियाँ युक्त (कोंकोर्ड)। - स्थानीय चर्चाएँ - सार्वजनिक भूभागसूचक सीमित चर्चा एक स्थान के लिए (भूभाग पता)। - अस्थायी चर्चाएँ - लघु पुनःप्रसारक सीमित शालाएँ जो स्थायी इतिहास नहीं रखते। - समूह बनाएँ - नयी प्रणाली - नया मंच - निजी प्रणाली - प्रणाली सूची में छिपाया गया तथा आमन्त्रण सीमित। निष्क्रिय अर्थात इस पुनःप्रसारक पर कोई भी इसे खोज सकेगा तथा जुड सकेगा। मंच प्रणाली सूत्रबद्ध पत्र प्रदर्शनशैली चर्चा समयरेखा के स्थान पर। यह तत्पश्चात परिवर्तनीय नहीं। समूह नाम @@ -1371,33 +149,19 @@ बनाएँ आमन्त्रण बनाया जा रहा है… आमन्त्रण अक्षरराशि अनुकृत - समूह सम्पादन समूह नाम विषय (विकल्पात्मक) निजी (केवल सदस्य पठन) केवल आमन्त्रित अभिलेखन - समूह मिटाएँ - क्या %1$s को मिटा दें। यह इस समूह को तथा इसके इतिहास को हटा देगा सब के लिए। इसे पूर्ववत नहीं किया जा सकता। - प्रणाली मिटाएँ - क्या %1$s को मिटा दें। यह इस प्रणाली को तथा इसके सन्देशों को हटा देगा सब के लिए। इसे पूर्ववत नहीं किया जा सकता। - प्रणाली संग्रहण - प्रणाली संग्रह अवस्था हटाएँ स्थान परिवर्तन - निजी - केवल सदस्य सन्देशों को पढ सकते हैं। आपके पुनःप्रसारकों में समूहों का खोज… इस छलनी के अनुकूल कोई समूह प्राप्त नहीं अब तक। - शीर्षक कुछ लिखें… पत्र प्रकाशन %1$s में जोडा गया - - %1$d सदस्य - %1$d सदस्य - %1$d सन्देश %1$d सन्देश @@ -1410,32 +174,7 @@ %1$d व्यक्ति जिसके आप अनुचर %1$d व्यक्ति जिसके आप अनुचर - - %1$d समूह - %1$d समूह - निजी - विषय - आरोहण असफल - पहले सन्देश का गन्तव्य प्रविष्ट करें - धनकोष अप्राप्त - अमेथिस्ट को कोई धनकोष क्रमक प्राप्य नहीं जो नोस्टर धनकोष संयोजन का अवलम्बन करता हो। -\n\nआप यह कर सकते हैं : -\n\t१॰ नोस्टर धनकोष संयोजन अवलम्बन का सत्यापन करें। दुबारा जाँचें की आपका मनचाहा धनकोष क्रमक नोस्टर धनकोष संयोजन के साथ संगत है। -\n\t२॰ संयोजन बनाएँ। आपके धनकोष क्रमक में जाकर एक नया नोस्टर धनकोष संयोजन बनाएँ। -\n\t३॰ अमेथिस्ट के साथ जोडें। आपका धनकोष क्रमक सामान्यतः तीन विकल्प देगा। -\n\t\t३॰१ स्वचालित जोड। एक घुण्डी जिससे स्वचालित रूप से खोलें तथा अमेथिस्ट से जोडें। यदि हो तो उस घुण्डी को टाँकें तथा अमेथिस्ट खोलें तथा नव्य पटल पर अभिलेखन करें। -\n\t\t३॰२ मनुष्यकृत जोड। एक संयोजन वैश्विकसंसाधनपरिचायक जिसकी अनुकृति करके सीधे इस पटल पर प्रविष्ट कर सकते हैं। -\n\t\t३॰३ क्यूआर॰ चित्र अक्षरराशि। धनकोष क्रमक एक क्यूआर॰ चित्र अक्षरराशि बनएगा जिसे आप परख सकते हैं इस पटल पर क्यूआर॰ क्रमचित्र घुण्डी द्वारा। - - अन्धकारमय, प्रकाशवान अथवा यन्त्रव्यवस्थित प्रदर्शनशैली - स्वचालित रूप से चित्र तथा जिफ॰ का अवरोहण करें - स्वचालित रूप से चलचित्र तथा जिफ॰ चलाता है - स्वतः चालू करें चलचित्रों को जब पटल पर दिखाई दें - जालपता के पूर्वीक्षण दिखाएँ - टाँकाफलक में अनुकृति करें - टाँकाफलक में अनुकृत - बाँटें अथवा अभिलेखन करें सीधेसन्देश के रूप में भेजें नया उद्दीप्तव्य नया चित्र @@ -1444,266 +183,24 @@ क्यूआर॰ चित्र अक्षरराशि परखें क्यूआर॰ क्रमचित्र को परखें एक क्यूआर॰ चित्र अक्षरराशि परखें - नया उद्दीप्तव्य उद्दीप्त लेख - आपके विचार जोडें… - श्रव्यदृश्याभिलेख जोडा गया - श्रव्यदृश्याभिलेख जोडा गया आपके परिचय चित्रालय में - ज्साप भेजने में असफल - लैटनिंग स्थापना अनुपलब्ध - उपयोगकर्ता %1$s का कोई लैटनिंग पता स्थापित नही साट्स प्राप्त करने के लिए - हस्ताक्षर क्रमक खोलने में अपक्रम - हस्ताक्षर क्रमक ढूँढने में असफल। जाँच करें यदि क्रमक को अस्थापित नहीं किया गया हो - इस दृश्याभिलेख को चलाया नहीं जा सकता - यह संकुचनविस्तारणविधि अथवा प्रारूप इस यन्त्र पर अवलम्बित नहीं (%1$s)। अपने जालसंचारक में खोलने का प्रयास करें। - जालसंचारक मे खोलें - हस्ताक्षर अनुरोध अस्वीकृत - सुनिश्चित करें हस्ताक्षर क्रमक ने इस व्यापार को अनुमति दिया - कोई धनकोष प्राप्त नहीं लैटनिंग चालान चुकाने के लिए (अपक्रम : %1$s)। कृपया एक लैटनिंग धनकोष की स्थापना करें ज्सापों का प्रयोग करने के लिए - कोई धनकोष प्राप्त नहीं लैटनिंग चालान चुकाने के लिए। कृपया एक लैटनिंग धनकोष की स्थापना करें ज्सापों का प्रयोग करने के लिए - ब्लोस्सम॰ योजक खोला नहीं जा सकता - ब्लोस्सम॰ क्रमक प्राप्त नहीं। कृपया एक स्थानीय ब्लोस्सम॰ क्रमक की स्थापना करें इस अभिलेख को देखने के लिए - छिपाए गये शब्द - मौनकृत सूत्र - कोई मौनकृत सूत्र नहीं - परिचय चित्र - परिचय चित्र दिखाएँ - चालान का भुगतान नहीं कर पाए - निकाल नहीं पाए - काशयू नहीं चुका पाए - टकसाल ने यह अपक्रम संदेश उपलब्ध किया : %1$s - असुरक्षित काशयू टकसाल पता - अमेथिस्ट ने इस अक्षरराशि की टकसाल से सम्पर्क नहीं किया। %1$s - काशयू प्राप्त - %1$s साट्स भेजे गये आपके धनकोष में। (शुल्क : %2$s साट्स) - कोई अनुकूल काशयू धनकोष उपलब्ध नहीं यन्त्र में - ग्राहक के सेवा संगणक से चालान नहीं लाया जा सका - आपका धनकोष संयोजन प्रदाता ने यह अपक्रम लौटाया : %1$s - आपका धनकोष संयोजन प्रदाता ने एक उत्तर भेजा जिसे पढने में अमेथिस्ट असफल। - लै॰जालपता नहीं बना पाए लै॰पता \"%1$s\" से। उपयोगकर्ता की स्थापना की जाँच करें - चालान नहीं लाया जा सका %1$s से : %2$s - %1$s से जेसोन॰ परखनें में अपक्रम। उपयोगकर्ता की लैटनिंग स्थापना की जाँच करें - प्रत्याह्वान जालपता उपलब्ध नहीं %1$s के उत्तर से - %2$s से चालान की मात्रा (%1$s साट्स) में दोष है। %3$s होना चाहिए था। - ज्साप भेजने से पहले लैटनिंग चालान नहीं बना पाए। ग्राहक के लैटनिंग धनकोष ने यह अपक्रम की सूचना दी : %1$s - केवल पढनेवाला उपयोगकर्ता - कोई प्रतिक्रियाएँ स्थापित नहीं - सूचनाएँ - वितरण - क्रमकाभ्यन्तर प्रदर्शन - श्रेणियाँ - %1$s से संदेश - पुनःप्रसारक अवरोधन - नमस्ते %1$s, क्या यह अब भी उपलब्ध है? - वस्त्र - आभूषण - विद्युत्कणयन्त्र - पीठशय्यादि - संग्रहार्थ - पुस्तकें - पालतू जीव - खेल - स्वास्थ्य - कला - क्रिया - घर - कार्यालय - आहार - विभिन्न - अन्य - श्रव्यदृश्याभिलेख आरोहण असफल - संकुचित अभिलेख को खोल नहीं पाए - आरोहण अपक्रम : %1$s - सेवासंगणक ने आरोहण पश्चात जालपता नहीं दिया - सेवासंगणक से आरोहणकृत श्रव्यदृश्याभिलेख का अवरोहण नहीं कर पाए - आरोहण पश्चात अवरोहित अभिलेख की जाँच नहीं हो सकी : %1$s - %1$s पर आरोहण असफल : %2$s - मिटाने में असफल : %1$s - श्रव्यदृश्याभिलेख निप॰-९५ के लिए बहुत बडा है - अभिलेख रहस्यीकरण - गोपनीयता के लिए अभिलेखों का रहस्यीकरण करें। कुछ सेवासंगणक रहस्यीकृत अभिलेखों को सम्भाव्यतः अस्वीकार कर सकते हैं निःशुल्क लेखाओं के लिए। - रहस्यीकृत आरोहण असफल - अनेक सेवासंगणक रहस्यीकृत अभिलेखों को स्वीकार नहीं करते निःशुल्क लेखाओं के लिए। आप पुनःप्रयास कर सकते हैं रहस्यीकरण के बिना। - एच॰२६५ अथवा एचईवीसी॰ संकुचनविस्तारणविधि उपयोग करें - अधिक गुणवत्ता के साथ सूक्ष्मतर अभिलेख आकार परन्तु एच॰२६५ चालन सभी यन्त्रों द्वारा अवलम्बित नहीं। - जिफ॰ से एमपी४॰ में परिवर्तित करें - चलन्त जिफ॰ से एमपी४॰ में परिवर्तित करता है सूक्ष्मतर अभिलेख आकार तथा अधिक चालन अनुकूलता के लिए। - निजी परितथ्य हटाएँ - निजी परितथ्य हटाने का प्रयास करता है आलम्बित श्रव्यदृश्याभिलेखों से आरोहण पूर्व - परितथ्य हटाने में असफल - श्रव्यदृश्याभिलेख से निजी परितथ्य हटाने में असफल। आरोहण निरस्त। - आरोहण निरस्त - एविफ॰ से परितथ्य नहीं मिटा सके : %1$s - घर - आविष्करण - संदेश - सूचनाएँ - श्रव्यदृश्याभिलेख - दिनदर्शिकाएँ - दिनदर्शिका सूचियाँ - चतुरंग - धनकोष - व्यापारों का आवहन असफल - और अधिक व्यापारों का आवहन असफल - आपका लेखाशेष का आवहन असफल - चालान बनाने में असफल - आपका धनकोष एक चालान नहीं लौटाया - धनकोष अनुरोध समयसीमा पार - आपके धनकोष तक अभिगमन असफल : %1$s - आपके धनकोष ने जो उत्तर दिया उससे अमेथिस्ट अनभिज्ञ (%1$s) - अमेथिस्ट द्वारा आपके धनकोष के उत्तर का अरहस्यीकरण असफल। सम्भाव्यतः धनकोष एक अन्य कुंचिका का उपयोग कर रहा है - काशयू॰ धनकोष (निप॰६०) नटज्साप कुंचिका (उन्नत) एक पृथक निजी कुंचिका केवल निप॰६१ नटज्साप प्राप्त करने के लिए। आपकी नोस्टर लेखा बद्ध कुंचिका नहीं। एक नयी कुंचिका बनाएँ पीटूपीके॰ निजी कुंचिका (षोडशांक) - टकसालों का सम्पादन परिवर्तनों का अभिलेखन - - %1$d अधिक - %1$d अधिक - - - %1$d अन्य द्वारा अनुशंसित - %1$d अन्यों द्वारा अनुशंसित - - लोकप्रिय टकसाल - अनुकूल टकसाल - प्राप्त - भेजा गया - अपके द्वारा %1$s का प्रकार ३८००० अनुशंसा को मिटाने का अनुरोध प्रकाशित करें। पुनःप्रसारक जो निप॰०९ का सम्मान करते हैं उसे हटा देगा। - %1$s साट्स पुनःप्राप्त %2$s प्रमाणों में से। - क्या %1$s साट के साथ %2$s साट तक शुल्क का भुगतान करें। - नटज्साप॰ असफल - कोई प्राप्तकर्ता ख्याप्यकुंचिका नहीं टीका में - नटज्साप॰ सार्वजनिक हैं तथा इस निजी टीका को प्रकाशित कर देंगे। लैटनिंग॰ ज्साप का प्रयोग करें इसके स्थान पर। - घटना उद्धरण बनाने में अक्षम - चालान चुकाए जाने की प्रतीक्षा में… - टकसाल का जाँच… - मन्द - सामान्य - द्रुत - लगभग एक घण्टा - लगभग तीस मि॰ - लगभग दस मि॰ - %1$s। %2$s साट्स प्रति अष्टकाभास। %3$s - - %1$s साट्स भेजें %2$d धा विभक्त - %1$s साट्स भेजें %2$d धा विभक्त - - - इस टीका का %1$d धा ज्साप विभाजन का प्रयोग करें - इस टीका का %1$d धा ज्साप विभाजन का प्रयोग करें - - - %1$d प्राप्तकर्ता में विभाजन - %1$d प्राप्तकर्ताओं में विभाजन - - - %1$d केवल लैटनिंग॰ पता प्राप्तकर्ता छोड दिया गया। खण्डश्रृंखलाबद्ध के लिए नोस्टर ख्याप्यकुंचिका आवश्यक है पता की व्युत्पत्ति के लिए। - %1$d केवल लैटनिंग॰ पता प्राप्तकर्ताओं को छोड दिया गया। खण्डश्रृंखलाबद्ध के लिए नोस्टर ख्याप्यकुंचिका आवश्यक है पता की व्युत्पत्ति के लिए। - - शेष आवहन - व्यापार का निर्माण - हस्ताक्षरण - प्रसारण - प्राप्तिप्रमाण प्रकाशन - द्व्यंकरूप्य खण्डश्रृंखला पृष्ठभाग समाकृत नहीं - आपका द्व्यंकरूप्य शेष का आवहन असफल - व्यापार निर्माण असफल - एक प्राप्तकर्ता का भाग धूल से नीचे है - व्यापार पर हस्ताक्षरण असफल - व्यापार प्रसारण असफल - भुगतान भेजा गया पर ज्साप प्राप्तिप्रमाण का प्रकाशन असफल - - भुगतान भेजा गया (%2$d में से %1$d प्राप्तिप्रमाण प्रकाशित) पर अगले प्राप्तिप्रमाण का प्रकाशन असफल - भुगतान भेजा गया (%2$d में से %1$d प्राप्तिप्रमाण प्रकाशित) पर अगले प्राप्तिप्रमाण का प्रकाशन असफल - - अनुचरित आयात करें - नया उत्पाद - नया लेख - नयी दिनदर्शिका घटना - दिनदर्शिका घटना सम्पादन - नयी दिनदर्शिका - दिनदर्शिका सम्पादन - सूचनावली - मास - सप्ताह - दिन - - %1$s, %2$d घटना - %1$s, %2$d घटनाएँ - - हो रहा है अब - %1$s। %2$s समापन - दिनदर्शिका घटना बाँटें - दिनदर्शिका अनुस्मारक - दिनदर्शिका अनुस्मारक - सूचना जब एक घटना जिस में आप भाग ले रहे हैं आरम्भ होनेवाला है। - दिनदर्शिका घटना - - आरम्भ %1$d मिनट में - आरम्भ %1$d मिनटों में - - चित्र आरोहण असफल - चयनित चित्र का अरोहण असफल। पुनःप्रयास करें अथवा जालपता चिपकाएँ। - दिनदर्शिका अनुस्मारक - अनुस्मारक भेजें - सूचना भेजी जाती है जब एक घटना जिस में आप भाग ले रहे हैं आरम्भ होनेवाला है। - - %1$d मि॰ - %1$d मि॰ - - मानचित्र में खोलें - योजक खोलें - इस पत्र प्रकाशन के सभी प्रतिक्रियाओं को खोलें - इस पत्र प्रकाशन के सभी प्रतिक्रियाओं को आवृत करें - ज्साप - निचली मार्गदर्शन पट्टी टँकित वस्तुओं को खींचें पुनःव्यवस्थित करने के लिए। नीचे एक श्रेणी खोलें तथा एक वस्तु का विकल्पान्तरण करें उसे जोडने अथवा हटाने के लिए। जालवीक्षक खोलें अथवा एक चर्चा प्रकार प्रियचिह्नित अथवा समूह विशेष को टाँकने के लिए। शून्य वस्तु हो तो निचली पट्टी अदृश्य रहेगी। क्रम पुनःव्यवस्था - कोई प्रियचिह्नित नहीं। एक क्रमक को ताराचिह्नित करें जालसंचारक में यहाँ जोडने के लिए। - कोई समूह नहीं जिससे जुडे हुए हैं अब तक। - जोडें - जोडा गया - मुख्‍य - चर्चाएँ तथा समूह - आप - सूचनावलियाँ - क्रमक तथा जाल - अन्य - पार्श्व विकल्पसूची - - %1$d छिपा हुआ - %1$d छिपे हुए - - दृश्यमान - छिपे हुए - सर्वदा सक्रिय चयन करें किन पृष्ठसूचक दिखने चाहिए मुख्यपटल पर। जब एक ही सक्रिय है तब पृष्ठसूचक पट्टी छुपाई जाएगी। - सभी - परिचय प्रयोगमाध्यम चयन करें कि किन विभाग तथा सूचनावलियाँ दिखेंगे प्रयोक्ता परिचय पटल पर। सभी विकल्प सक्षम हैं मूलतः। - परिचय पदक - क्रमक अनुशंसाएँ - ज्साप प्राप्त सूचनावली - अनुचर सूचनावली - द्व्यंकरूप्य (खण्डश्रृंखलाबद्ध) धनकोष - प्रतिक्रिया पंक्ति - चलचित्र चालक घुण्डियाँ - ध्वनि दृश्यकर्ता - सम्पादन - सम्पादन - सन्देश सम्पादन - %1$s तथा %2$s टंकण मध्य… बज्स्स कार्यशालाएँ जहाँ मनुष्य तथा घटक एक साथ निर्माण करते हैं कार्यशाला निर्गमन @@ -1719,65 +216,6 @@ जोडें कोई प्रणालियाँ प्राप्त नहीं आप इस पुनःप्रसारक के किसी भी प्रणाली के सदस्य प्रतीत नहीं होते अब तक। पहले वीक्षक में कार्यशाला आमन्त्रण स्वीकार करें। तत्पश्चात पुनःप्रयास करें। - प्रणाली टाँकें - प्रणाली टाँका हटाएँ - - %1$d छिपाया गया संवाद - %1$d छिपाए गए संवाद - - - देखें %1$d और संवाद - देखें सभी %1$d संवाद - - किसी एक पुनःप्रसारक द्वारा इस सन्देश की स्वीकृति की प्रतीक्षा - इस सन्देश के लिए कोई पुनःप्रसारक जानकारी नहीं - न्यूनतम एक पुनःप्रसारक द्वारा स्वीकृत - सभी प्राप्तकर्ताओं के पुनःप्रसारकों को भेजा गया - समापन दिनांक - लेखक ने पुनःप्रसारकों से अनुरोध किया कि इस टीका को मिटा दें %1$s पश्चात। यह सूचनावलियों में अदृश्य हो जाएगा जब यह समाप्त होगा। - अमान्य पता - अमेथिस्ट को एक वैश्विकवस्तुसूचक प्राप्त हुआ खोलने के लिए परन्तु वह सूचक अमान्य था : %1$s - सीधा संदेश आगतपेटिका पुनःप्रसारक - खोज पुनःप्रसारक - ये अच्छे विकल्प हैं :\n%1$s - निर्गतपेटिका पुनःप्रसारक सूची - आगतपेटिका पुनःप्रसारक सूची - पुनःप्रसारक स्थापना विकल्प - सार्वजनिक निर्गतपेटिका अथवा मुख्य पुनःप्रसारक - प्रयोक्ता अपने विषयवस्तुओं को इन पुनःप्रसारकों को भेज रहा है - यह पुनःप्रसारक प्रकार आपके सभी विषयवस्तु रखता है। अमेथिस्ट आपके पत्रों को प्रकाशित करने के लिए यहाँ भेजेगा तथा अन्य लोग आपके विषयवस्तु ढूँढने के लिए इनका प्रयोग करेंगे। १ - ३ पुनःप्रसारकों को जोडें। ये व्यक्तिगत अथवा सशुल्क अथवा सार्वजनिक पुनःप्रसारक हो सकते हैं। - सार्वजनिक आगतपेटिका पुनःप्रसारक - प्रयोक्ता इन पुनःप्रसारकों पर सूचनाएँ प्राप्त कर रहा है - यह पुनःप्रसारक प्रकार आपके प्रकाशित पत्रों को भेजे गये सभी प्रतिवचन, टिप्पणियाँ, इष्टसूचक तथा ज्सापों को प्राप्त करता है। १ - ३ पुनःप्रसारकों को जोडें तथा सुनिश्चित करें कि वे किसी से भी पत्र स्वीकारते हैं। - सीधा संदेश आगतपेटिका पुनःप्रसारक - प्रयोक्ता इन पुनःप्रसारकों पर सीधा सन्देश प्राप्त कर रहा है - आपके निजी आगतपेटिका के रूप में १ - ३ पुनःप्रसारकों को जोडें। अन्य लोग इनका उपयोग करेंगे आपको सी॰सं॰ भेजने के लिए। सी॰सं॰ आगतपेटिका पुनःप्रसारकों को किसी से भी सन्देश स्वीकारना चाहिए पर उनका अवरोहण अनुमति केवल आपको देना चाहिए। ये अच्छे विकल्प हैं :\n - inbox.nostr.wine (सशुल्क)\n - auth.nostr1.com (शुल्करहित)\n - you.nostr1.com (व्यक्तिगत पुनःप्रसारक - सशुल्क) - कुंचिकापोटलियाँ - कुंचिकापोटली पुनःप्रसारक - पुनःप्रसारक जहाँ आपके एमएलएस॰ कुंचिकापोटलियाँ प्रकाशित होंगे (मिप॰००)। अन्य प्रयोक्ता इन कुंचिकापोटलियों को प्राप्त करेंगे आपको आमन्त्रित करने के लिए मार्मोट॰ समूह चर्चाओं में। १ - ३ पुनःप्रसारकों को जोडें जो आप से कुंचिकापोटली घटनाएँ स्वीकारते हों तथा सार्वजनिक पठन की अनुमती देते हों। - निजी पुनःप्रसारक - १ - ३ पुनःप्रसारकों को जोडें उन घटनाओं को रखने के लिए जो कोई अन्य नहीं देख सकता जैसे कि पाण्डुलिपियाँ अथवा क्रमक के स्थापना विकल्प। आदर्शतः ये पुनःप्रसारक स्थानीय होने चाहिए अथवा प्रत्येक उपयोगकर्ता के विषयवस्तु अवरोहण के पूर्व परिचय प्रमाणीकरण अनिवार्य होना चाहिए। - संयोजित पुनःप्रसारक - वर्तमान उपयुक्त पुनःप्रसारकों की सूची - खोज पुनःप्रसारक - पुनःप्रसारकों की सूची जिनको किसी विषयवस्तु अथवा उपयोगकर्ताओं को खोजने में प्रयोग करना चाहिए। कोई विकल्प नहीं तो उपयोगकर्ता सूचक जोडना तथा खोज निष्क्रिय होंगे। सुनिश्चित करें कि वे निप॰-५० को कार्यान्वित किये हैं। - स्थानीय पुनःप्रसारक - पुनःप्रसारकों की सूची जो इस यन्त्र पर चल रहे हैं। - परिचयों को स्थानीय पुनःप्रसारक तक आगे भेजें - सभी प्राप्त परिचय (प्रकार शून्य) घटनाओं को अपने स्थानीय पुनःप्रसारक तक भेजें - विश्वसनीय पुनःप्रसारक - विश्वसनीय पुनःप्रसारक जिनके लिए टोर संयोजन आवश्यक नहीं - इष्ट पुनःप्रसारक सूचनावलियाँ - पुनःप्रसारक जहाँ आप प्रायः जाते हैं उनके वैश्विक सूचनावली देखने के लिए - प्रतिनिधि पुनःप्रसारक - संग्रहकर्ता पुनःप्रसारक जो क्रमक द्वारा उपयुक्त होना चाहिए आपके सूचनावलियों का अवरोहण करने के लिए। जैसे कि filter.nostr.wine । यह निर्गतपेटिका प्रतिरूप को प्रतिस्थापित करेगा तथा क्रमक आपके सूचियों में पुनःप्रसारकों के साथ ही जुडेगा। - प्रसारण पुनःप्रसारक - पुनःप्रसारक जो आपके पत्रों को अन्य सभी पुनःप्रसारकों को भेजने का विशेष कार्य करते हैं। जैसे कि sendit.nosflare.com । अमेथिस्ट इस पुनःप्रसारक को जोडेगा आपके द्वारा कृत सभी नए घटनाओं के लिए - अनुक्रमणीकार पुनःप्रसारक - पुनःप्रसारक जो सभी के उपतथ्य तथा पुनःप्रसारक सूचियों की जानकारी रखने का विशेष कार्य करते हैं। जैसे कि purplepag.es । अमेथिस्ट इन पुनःप्रसारकों का उपयोग करेगा उन प्रयोक्ताओं को ढूँढने के लिए जो आपके सूचियों में नहीं हैं। - बाधित पुनःप्रसारक - अमेथिस्ट इन पुनःप्रसारकों से कभी नहीं जुडेगा - पुनःप्रसारक स्थापना विकल्प निर्यात जाल : रूपरेखा विवरण रखाव इनके द्वारा @@ -1786,614 +224,44 @@ परिपालक विषय सूची पठनीय - - %1$d वस्तु - %1$d वस्तुएँ - विषय आवृत करें पुनःखोलें - गिट क्रमलेखकोश - प्रमुखताएँ - क्रमलेखकोश छलनी - छलनी आवृत - समयांकन प्रमाण - प्रमाण उपलब्ध है कि इस पत्र पर हस्ताक्षर किया गया %1$s के कुछ पहले। प्रमाण अंकित किया गया द्व्यंकरूप्य खण्डश्रृंखला में उस समय उस दिन पर। - इस पत्र के लिए एक समयांकन प्रमाण का अनुरोध किया गया है तथा द्व्यंकरूप्य खण्डश्रृंखला में अंकन की प्रतीक्षा हो रही है। सामान्यतः कुछ घण्टों में सम्पन्न हो जाएगा। - पत्र का सम्पादन करें - एक टीका पाण्डुलिपि को उत्तर नहीं दे सकते - एक टीका पाण्डुलिपि पर टीका नहीं लिख सकते - एक टीका पाण्डुलिपि पर प्रतिक्रिया नहीं कर सकते - एक टीका पाण्डुलिपि को ज्साप नहीं कर सकते - टीका पाण्डुलिपि - बुरा अनुरोध - सेवासंगणक इस अनुरोध पर काम नहीं कर सकता अथवा नहीं करेगा। - अनधिकृत - उपयोगकर्ता के पास प्रमाणीकरण हेतु वैध परिचयपत्र उपलब्ध नहीं - भुगतान अनिवार्य - अनुरोध पूरा करने के लिए सेवासंगणक को भुगतान की आवश्यकता है - वर्जित - उपयोगकर्ता को यह अनुरोध करने का अधिकार नहीं - अप्राप्त - याचित पता ढूँढने में सेवासंगणक असफल - कार्यविधि की अनुमति नहीं - सेवासंगणक याचित कार्यविधि का आलम्बन करता है पर लक्ष्यांकित संसाधन को नहीं - अस्वीकार्य - सेवासंगणक कोई विषयवस्तु नहीं ढूँढ सका जिससे अनुरोध की पूर्ति हो सके। - प्रतिनिधि प्रमाणीकरण आवश्यक - उपयोगकर्ता के पास प्रमाणीकरण हेतु वैध परिचयपत्र उपलब्ध नहीं - अनुरोध समयसीमा समाप्त - सेवासंगणक समयसीमा पार किया किसी अन्य की प्रतीक्षा में। - संघर्ष - सेवासंगणक अनुरोध की पूर्ति नहीं कर सकता क्योंकि संसाधन के साथ संघर्ष है - विगत - याचित विषयवस्तु सेवासंगणक से सर्वदा के लिए मिटाया गया है तथा पुनर्स्थापित नहीं होगा - लम्बाई आवश्यक - सेवासंगणक ने अनुरोध अस्वीकार किया क्योंकि इस के लिए स्पष्ट विषयवस्तु लम्बाई सूचक शीर्षक चाहिए - पूर्वावस्था असफल - अनुरोध के शीर्षक प्रपत्रस्थानों में निर्दिष्ट पूर्वावस्थाओं की पूर्ति में सेवासंगणक असफल - भार अत्याधिक - अनुरोध सेवासंगणक के निरूपित सीमाएँ से बडा है, तथा सेवासंगणक ने इस पर काम करना नकार दिया - जालपता लम्बाई अत्याधिक - ग्राहक द्वारा अनुरोधित जालपता की लम्बाई सेवासंगणक के काम के लिए अत्याधिक है। - अनावलम्बित श्रव्यदृश्याभिलेख प्रकार - अनुरोध में प्रयुक्त श्रव्यदृश्याभिलेख प्रकार सेवासंगणक द्वारा अवलम्बित नहीं - विस्तार असाध्य - अनुरोध के विस्तार शीर्षक प्रपत्रस्थान में सूचित मूल्य की पूर्ति सेवासंगणक द्वारा असाध्य। - अपेक्षा असफल - अनुरोध के अपेक्षा शीर्षक प्रपत्रस्थान में सूचित आवश्यकताओं की पूर्ति सेवासंगणक के लिए असाध्य - नवीकरण आवश्यक - ग्राहक वर्तमान से भिन्न संचारविधि तक नवीकरण नहीं करता तो सेवासंगणक इसके अनुरोध पर काम नहीं करेगा। - भीतरी सेवासंगणक अपक्रम - सेवासंगणक में एक अनपेक्षित अपक्रम हुआ तथा अनुरोध पूरा नहीं कर सकता - कार्यान्वित नहीं - सेवासंगणक अनुरोध को पूरा नहीं कर सकता अथवा अनुरोध की कार्यविधि जानता नहीं - बुरा द्वारपथ - सेवासंगणक द्वारपथ जैसा कार्य करता है तथा आवाससंगणक से अवैध उत्तर प्राप्त हुआ - सेवा अनुपलब्ध - यह बहुशः तब होता है जब सेवासंगणक पर अत्याधिक भार हो अथवा देखरेख के लिए निष्क्रिय हो - द्वारपथ समयान्त - सेवासंगणक द्वारपथ अथवा प्रतिनिधि जैसा कार्य कर रहा था तथा समयान्त हो गया एक उत्तर की प्रतीक्षा में - हटटप॰ संस्करण अनावलम्बित - अनुरोध का हटटप॰ संस्करण सेवासंगणक द्वारा अवलम्बित नहीं - विकार भी संधिवार्ता करता है - सेवासंगणक में भीतरी समाकृति अपक्रम है - स्मृतिस्थान का अभाव - सेवासंगणक में पर्याप्त स्मृतिस्थान उपलब्ध नहीं अनुरोध पर सफलतापूर्वक काम करने के लिए - क्रमचक्र दृष्ट - सेवासंगणक को अनन्त क्रमचक्र का पता चला अनुरोध पर काम करते हुए - जाल प्रमाणीकरण आवश्यक - जाल उपलब्ध होने के लिए ग्राहक का प्रमाणीकरण अनिवार्य ब्लोस्सम॰ सेवासंगणक सेवासंगणक जितना चाहें जोडें। किस संगणक का उपयोग करना है उसका चयन कर सकते हैं चित्र का आरोहण करते समय - निप॰-९६ सेवासंगणक जोडें - ब्लोस्सम॰ प्रसारसंगणक जोडें अवरोहण - अभिलेख खोलने में असफल - कोई अनेकत्रावरोहण क्रमक स्थापित नहीं अभिलेख खोलने तथा अवरोहण करने के लिए। - चुम्बकजाल योजक बनाने के लिए पर्याप्त जानकारी नहीं है घटना में - मेरे सूचियाँ - सूचनावली - विषयसूचक - रुचि समुच्चय - स्थान - समुदाय - सूचियाँ - सूचनावली कलनविधियाँ - सभी इष्ट सूचनावली कलनविधियाँ - पुनःप्रसारक - इष्ट सूचनावली कलनविधियाँ - निजी सन्देश - सार्वजनिक संदेश - चित्र बाँटने में असफल। कृपया कुछ समय पश्चात पुनःप्रयास करें… - चलचित्र बाँटने में असफल। कृपया कुछ समय पश्चात पुनः प्रयास करें… - चलचित्र अवरोहण चालू… - अनुवाद ना करें - यहाँ प्रस्तुत भाषाओं का अनुवाद नहीं होगा। भाषा चयन करें हटाने के लिए जिससे उसका अनुवाद पुनः होने लगेगा। - अनुवाद इस में - भाषा चयन करें जिसमें विषयवस्तु का अनुवाद करना है। - भाषा प्रस्तुति आद्यताएँ - प्रत्येक अनुवाद भाषा युग्म के लिए चयन करें किस भाषा को पहले दिखाना है। - विराम - चलाएँ - क्रमक संसाधन उपयोग - विद्युत्कोष संचारमात्रा उपयोग उपभोग ऊर्जा जाल निदानतन्त्र लेखापुस्तक आज पिछले सात दिन - चलनशील आज - वैफै॰ आज - पुनःप्रसारक समय आज - क्रमकाभ्यन्तर आज - संचारमात्रा प्रति दिन - चलनशील (दशलक्षाष्टक) - वैफै॰ (दशलक्षाष्टक) - गतिविधि (सात दिन) चलनशील संचार (पृष्ठभूत) चलनशील संचार (क्रमकाभ्यन्तर) वैफै॰ संचार - पुनःप्रसारक संयोजन समय - \u2026 चलनशील पर पृष्ठभूत - सूचना कार्य (क्रमवर्तक जागृत) - पृष्ठभूत कार्य चलाए गए - पुनःप्रसारक पुनःसंयोजन (असफल) - जाल अनुरोध - विकिरणेन्द्रिय जाग उठना अवरोहणों के लिए (अनुमान) - सक्रिय स्थानान्तरण समय - श्रव्यदृश्याभिलेख चलन समय - हस्ताक्षर सत्यापित - क्रमवर्तक समय उपयुक्त क्रमकाभ्यन्तर समय - क्रमक कार्य आरम्भ - सन्देश अरहस्यीकृत - दूरस्थ हस्ताक्षर - श्रमप्रमाण खनन - टोर॰ उपलब्ध समय - आह्वानाभ्यन्तर समय - ध्वनिशालाभ्यन्तर समय - स्थानान्वेषण - विद्युतकोष उपयुक्त (क्रमकाभ्यन्तर अथवा पृष्ठभूत) - पृष्ठभूत सूचना सेवा - धावन समय - - %1$d आरम्भ - %1$d आरम्भ - - पुनःप्रसारक संयोजन जो रखे गए आवृत अवस्था में - विद्युतकोश अपवहन कालान्तर (पूर्ण यन्त्र) - विद्युतकोश प्रति घण्टा क्रमकाभ्यन्तर - संचारमात्रा प्रति घण्टा क्रमकाभ्यन्तर - मध्यमान पुनःप्रसारक संयोजन - चलनशील संचारमात्रा सुविधा अनुसार (सात दिन) - पटल अनुसार समय (सात दिन) - अन्तर्निमित टोर॰ - संचारमात्रा सुविधा अनुसार (सात दिन) - पुनःप्रसारक समचरणीकरण - चित्र - दृश्य तथा ध्वनि - आरोहण - धनकोष तथा ज्साप - नोस्टर पता सत्यापन - योजक पूर्वीक्षण - प्रेषण पंजीकरण - अन्य - स्मृति अभी इस समय - क्रमक स्मृति (संचय) - यन्त्र स्मृति - चित्र द्रुतस्मृति (अस्थायीस्मृति) - चित्र द्रुतस्मृति (स्थायीस्मृति) - स्मृति में टीकाएँ - लेखा परिचय स्मृति में - पताप्राप्त घटनाएँ स्मृति में - चर्चाशाला सूचियाँ स्मृति में - यन्त्र स्मृति वर्ग - क्रमलेखकों के साथ बाँटें - बाँटें - अमेथिस्ट द्वारा अपेक्षित से अधिक उपभोग हुआ निकटकाल में : %1$s। क्या आप एक उपयोग वृत्तान्त भेजना चाहते क्रमलेखकों को एक रहस्यीकृत सीधासन्देश में। आप सम्पूर्ण वृत्तान्त देखेंगे कुछ भी भेजने के पूर्व। - चलनशील संचारमात्रा %1$s पृष्ठभूत एक दिन में - पुनःप्रसारक संयोजन %1$s पृष्ठभूत चलनशील एक दिन में - क्रमवर्तक को जागृत रखा गया %1$s के लिए सूचनाओं पर कार्य करते हुए एक दिन में - - क्रमक का पुनःप्रारम्भ %1$d बार एक दिन में - क्रमक का पुनःप्रारम्भ %1$d बार एक दिन में - - - क्रमक द्वारा पुनःप्रसारकों से पुनःसंयोजन %1$d बार एक दिन में - क्रमक द्वारा पुनःप्रसारकों से पुनःसंयोजन %1$d बार एक दिन में - - यह सन्देश %1$s में अदृश्य हो जाएगा - अनुचरण सूची उपतथ्य - अनुचरण सूची उपतथ्य नोस्टर में सब के द्वारा देखा जा सकता है। केवल आपके निजी सदस्य रहस्यीकृत हैं। - अनुचरण पोटली उपतथ्य - अनुचरण पोटली उपतथ्य नोस्टर में सब के द्वारा देखा जा सकता है तथा प्रायः अनेक जालस्थानों पर प्रकाशित होते हैं प्रारम्भ सामग्री के रूप में नये प्रयोक्ताओं के लिए। - अनुचरण पोटली सम्पादन - विस्तृत करें - पुनःप्रयास करें - प्रतिक्रिया - ध्वनि सन्देश - ध्वनि उत्तर - - %1$d चयन - %1$d चयन - - %2$d में से %1$d प्रत्युत्तरों का आवहन हो गया %3$d पुनःप्रसारकों से। - लगभग %2$d में से %1$d प्रत्युत्तरों का आवहन हो गया %3$d पुनःप्रसारकों से। - - %1$d मत - %1$d मत - - - %1$d मतदाता - %1$d मतदाता - - - %1$d मत आया मतदान समाप्त होने के पश्चात तथा बहिष्कृत है। - %1$d मत आए मतदान समाप्त होने के पश्चात तथा बहिष्कृत हैं। - - - %1$d मत समयांकित है मतदान प्रकाशन के पूर्व तथा बहिष्कृत है। - %1$d मत समयांकित हैं मतदान प्रकाशन के पूर्व तथा बहिष्कृत हैं। - - - %1$d प्रत्युत्तर मान्य विकल्प का चयन नहीं किया तथा बहिष्कृत है। - %1$d प्रत्युत्तर मान्य विकल्प का चयन नहीं किए तथा बहिष्कृत हैं। - - - %1$d मतदाता आपकी मौनसूची द्वारा अदृश्यकृत। - %1$d मतदाता आपकी मौनसूची द्वारा अदृश्यकृत। - - निर्गतपेटिका पुनःप्रसारक - क्रमक - क्रमक अनुशंसाएँ - प्रयोक्ता स्थापना विकल्प - ध्वनि शीर्षक - ध्वनि अभिलेख - संगीत अभिलेख - संगीतसूची - पुटप्रसार कडी - पुटप्रसार कार्यक्रम - कृत पुटप्रसार - प्रिय पुटप्रसार - पदक पुरस्कार - पदक परिभाषाएँ - स्वीकृत पदक समुच्चय - परिचय पदक - बाधित पुनःप्रसारक - ब्लोस्सम॰ प्रसारसंगणक - निलय सेवासंगणक - ब्लोस्सम॰ प्रमाणीकरण - प्रसारण पुनःप्रसारक - स्मर्त्तव्य सूची - पुरानी स्मर्त्तव्यचिह्न सूची - दिवस नियुक्ति - दिनदर्शिका - समयनियुक्ति - समयनियुक्ति प्रत्युत्तर अपेक्षित - चतुरंग खेल - चतुरंग प्रमाणीकरण - इष्ट पुनःप्रसारक - चतुरंग प्रत्याह्वान - चतुरंग खेल स्वीकार - चतुरंग चाल - चतुरंग खेल समाप्त - चतुरंग समस्तर समापन प्रस्ताव - प्रणाली परिभाषा - प्रणाली संदेश छिपाएँ - प्रणाली सूची - प्रणाली संदेश - प्रणाली उपतथ्य - प्रणाली प्रयोक्ता मौन करें - सीधा संदेश अभिलेख - सीधा संदेश - सीधा संदेश पुनःप्रसारक - वर्गीकृत विज्ञापन - टिप्पणियाँ - समूह प्रकार - समूह सूची - समूह पत्र - अनुचरण सूची - मिटाए गए - पाण्डुलिपियाँ - भावचिह्न पोटलियाँ - भावचिह्न पोटली सूची - अनभिलिखित चर्चा - अस्थायी चर्चाशालाएँ - अभिलेख शीर्षक - परिचय चित्रालय - अभिलेख सेवासंगणक - द्व्यंकीय अभिलेख - द्व्यंकीय अभिलेख शीर्षक - चिकित्सा अभिलेख - अनुचरण पोटलियाँ - पुनःप्रकाशन (१६) - भूभागसूचक अनुचरित - उपहारकोष - गिट समस्या - गिट परिहार - गिट क्रमलेखकोष - गिट उत्तर - कर्षण अनुरोध - कर्षण अनुरोध अद्यतन - गिट स्थिति। खुला - गिट स्थिति। प्रयुक्त - गिट स्थिति। आवृत - गिट स्थिति। कच्चा - ज्साप उद्देश्य - विषयसूचक अनुचरित - प्रमुखताएँ - एचटीटीपी॰ प्रमाणीकरण - निर्देशिका पुनःप्रसारक सूची - साहसिक प्रस्तावना - साहसिक दृश्य - साहसिक पठन - नाम युक्त स्मर्त्तव्य सूची - वर्तमान बातचीत - वर्तमानप्रवाह - ज्साप - नोस्टर धनकोष अनुरोध - नोस्टर धनकोष प्रत्युत्तर - निजी ज्साप - ज्साप अनुरोध - जाललेख - मेलन शाला - शाला उपस्थिति - मेलन स्थल - परिचय - मौन सूची - एनएनएस॰ - निप॰ - नोस्टर संयोजन - डीवीएम॰ स्थिति - डीवीएम॰ विषयवस्तु अनुरोध - डीवीएम॰ विषयवस्तु प्रत्युत्तर - डीवीएम॰ प्रयोक्ता अनुरोध - डीवीएम॰ प्रयोक्ता प्रत्युत्तर - ओटीएस॰ - के लिए भुगतान - व्यक्ति सूचियाँ - चित्र - व्यायाम - टाँके - ज्साप मतदान - मतदान - मतदान प्रतिक्रिया - निप॰-०४ सीधासंदेश - निजी पुनःप्रसारक - प्रतिनिधि पुनःप्रसारक - सार्वजनिक संदेश - प्रतिक्रियाएँ - सम्पर्क पत्र - पुनःप्रसारक प्रमाणीकरण - पुनःप्रसारक खोज - पुनःप्रसारक परिवीक्षक घोषणा - पुनःप्रसारक समुच्चय - वृत्तान्त - पुनःप्रकाशन - प्रयोक्ता मिटाया - प्रमाणचिह्न - खोज पुनःप्रसारक - उपयोगकर्ता स्थिति - टीकाएँ - सम्पादन - अनेकत्रावरोहण - अनेकत्रावरोहण टिप्पणियाँ - विश्वसनीय पुनःप्रसारक - विश्वसनीय प्रदाता - चलचित्र (अनु) - लघु चलचित्र (अनु) - चलचित्र - लघु चलचित्र - ध्वनि सन्देश - ध्वनि उत्तर - जगाना - जाल स्मर्त्तव्यचिह्न - विकि॰ - %1$d%% समय निरन्तर उपलब्ध - नामरूप्य स्थापना विकल्प - %d सहस्रतमसेकण्ड - पुनःप्रसारक समचरणीकरण - द्व्यंकरूप्य समन्वेषक (ओटीएस॰) - घटनाएँ आप से - घटनाएँ आप को - खोज साध्य घटनाएँ - सीधेसन्देश - परिचय - निर्गतपेटिका सूचियाँ - पूर्व दृष्ट %1$s पहले - पिछली बार दृष्ट %1$s पर (%2$s पूर्व) - पिछली बार दृष्ट अभी - कभी दृष्ट नहीं - - %1$d मिनुट - %1$d मिनुट - - - %1$d घण्टा - %1$d घण्टे - - - %1$d दिन - %1$d दिन - - - %1$d सप्ताह - %1$d सप्ताह - - - %1$d मास - %1$d मास - - - %1$d वर्ष - %1$d वर्ष - - - %1$d टकसाल - %1$d टकसाल - - - %1$d लम्बित चालान - %1$d लम्बित चालान - - - धन %1$d टकसाल मे रखे गए जिसका उपयोग आप नहीं करते - धन %1$d टकसालों मे रखे गए जिनका उपयोग आप नहीं करते - - %1$s साट्स स्थानान्तरित %2$s तक। - यन्त्र पर निक्षेपण - निक्षेपण रोकें - एचएलएस॰ आरोहण - आरोहण चालू %1$s (%3$d में से %2$d) - साक्ष्यांकन - साक्ष्यांकन अनुरोध - साक्षी अनुशंसा - साक्षी निपुणता - जाल स्मर्त्तव्यचिह्न - जाल स्मर्त्तव्यचिह्न जोडें - जाल स्मर्त्तव्यचिह्न सम्पादित करें - %1$s वित्तपोषित %2$s साट्स उद्देश्य में से - नया उद्देश्य - अदृश्य होने के लिए अनुरोध - अदृश्यीकरण अनुरोध भेजा गया - अदृश्यीकरण इतिहास - प्रयोक्ता सूची - घटनाएँ - प्रकार - अंकीय जालपताएँ - स्थापना विकल्प - लेख शोधन प्रस्ताव करें - यन्त्र स्थित एआई॰ प्रतिरूप का प्रयोग करता है लेख सुधार तथा स्वर परिवर्तन प्रस्तावों के लिए। - पदचिह्न युक्त प्रसारण - पदचिह्न युक्त प्रसारक का उपयोग करें घटनाओं को भेजते समय। वर्तमान प्रगति दिखाता है तथा प्रत्येक पुनःप्रसारक की स्थिति प्रसारण करते समय। - व्यायामों का सुझाव बाँटनें के लिए - सम्पन्न व्यायाम पढता है स्वास्थ्य संयोजन से (सामसंग स्वास्थ्य तथा गूगिल फिट तथा फिटबिट तथा गार्मिन इत्यादि) तथा पत्र के रूप में बाँटने का सुझाव देता है। अनुमति अनुरोध केवल संयोजन करने पर। - सम्पादन स्थापना विकल्प - पाण्डुलिपियाँ स्वतः बनाएँ - स्वतः पाण्डुलिपि घटना का अभिलेखन करता है जब आप टंकण करते है अथवा सम्पादक छोडते हैं अप्रेषित लेख के साथ तथा आपके निजी निर्गतपेटिका पुनःप्रसारकों को भेजता है। - श्रमप्रमाण - इस पत्र के लेखक ने संगणक बल का व्यय किया कठिनाई %1$s तक खनन करने के लिए। एक श्रमप्रमाण चिह्न जिससे कचरालेख प्रेषण परिव्ययवान हो जाता है। - लघु टीकाएँ तथा प्रत्युत्तर - प्राथमिक सार्वजनिक कचरालेख रूप - टिप्पणियाँ - निबन्ध अभिलेख तथा अन्य विषयवस्तुओं के लिए प्रत्युत्तर - वृत्तान्त - पुनःप्रसारक वृत्तान्तों का तोलन करते हैं उनके परिव्यय के अनुसार - दीर्घरूप तथा उद्दीप्तव्य - निबन्ध तथा उद्दीप्तव्य। विरल। लागत नगण्य - ध्वनि सन्देश - सार्वजनिक ध्वनि पत्र तथा प्रत्युत्तर - पुनःप्रकाशन - उच्च मात्रा सक्रिय प्रयोक्ताओं के लिए - प्रतिक्रियाएँ - उच्चतम मात्रा प्रकार। प्रत्येक इष्टसूचक के लिए खनन का परिणाम विद्युत्कोष का व्यय - सार्वजनिक तथा वर्तमान चर्चा - खनन विलम्बता से वार्तालाप प्रवाह आहत - निजी सन्देश कोष - सीधासन्देश पुनःप्रसारकों को आगतपेटिका कचरालेख छालन करने में सक्षम करता है। केवल बाहरी कोष का खनन होता है। आपका सन्देश कभी नहीं - अन्य सार्वजनिक विषयवस्तु - मतदान वर्तमानस्थितियाँ वर्गीकृतविज्ञापन तथा अन्य सभी सार्वजनिक - श्रमप्रमाण खनन - - श्रमप्रमाण खनन… (%1$d पत्र पंक्ति में) - श्रमप्रमाण खनन… (%1$d पत्र पंक्ति में) - - - %1$s। खनन %2$d द्व्यंक पर - %1$s। खनन %2$d द्व्यंक पर - - - %1$s। %2$d द्व्यंक पर खनन की प्रतीक्षा - %1$s। %2$d द्व्यंक पर खनन की प्रतीक्षा - - - मूलविकल्प (%1$d द्व्यंक) - मूलविकल्प (%1$d द्व्यंक) - - - %1$d द्व्यंक - %1$d द्व्यंक - - श्रमप्रमाण खनन - उन पत्रों को दिखाता है जो अपने निप॰१३ श्रमप्रमाण का खनन कर रहे हैं जिससे कि वे सम्पन्न हो सके आप क्रमक छोडने के पश्चात। - निरस्त - अभी भेजें - १ से॰ से न्यून - - %1$d सेकण्ड - %1$d सेकण्ड - - - %1$d मिनुट - %1$d मिनुट - - - %1$d घण्टा - %1$d घण्टे - - - %1$d दिन - %1$d दिन - - लगभग %1$s शेष - अब किसी भी क्षण - आपका %1$s खनन समाप्त हुआ पर प्रकाशित नहीं हो सका : %2$s - आपका %1$s खनन समाप्त हुआ पर प्रकाशित नहीं हो सका। अगली बार क्रमक आरम्भ होने पर इसका पुनःप्रयास किया जाएगा। - चर्चा सन्देश - वृत्तान्त - नव्य भावचिह्न पोटली - भावचिह्न पोटली सम्पादन - मेरे भावचिह्न पोटलियाँ - भावचिह्न - सार्वजनिक भावचिह्न सब के लिए दृश्य हैं तथा आपके प्रतिक्रिया विकल्पसूची में उपस्थित होते हैं तथा \":\" स्वतःसम्पन्न चयनकर्ता में जब यह पोटली आपकी भावचिह्न सूची में है। - निजी भावचिह्न रहस्यीकृत रूप में रखे जाते हैं पुनःप्रसारकों में तथा केवल आप के लिए दृश्य हैं। आपके प्रतिक्रिया विकल्पसूची में उपस्थित होते हैं तथा \":\" स्वतःसम्पन्न सुविधा में सार्वजनिक भावचिह्नों के जैसे ही। - पाण्डुलिपि %1$d अष्टक है। यह समुदाय इस प्रकार के घटनाओं को %2$d अष्टक पर सीमित करता है। - पाण्डुलिपि %1$d अष्टक है। यह समुदाय घटनाओं को %2$d अष्टक पर सीमित करता है। - आप पहले से ही %1$d इस प्रकार के घटनाओं को प्रकाशित कर चुके है (सीमा %2$d)। - नोव्हेर जालस्थान - नोव्हेर घटना - नोव्हेर धनसंग्रहण - नोव्हेर विपणि - नोव्हेर याचिका - नोव्हेर सन्देश - नोव्हेर अभिलेख - नोव्हेर कला - नोव्हेर मंच - - %1$d सन्देश - %1$d सन्देश - - - %1$d सदस्य - %1$d सदस्य - - - आपके धनकोष ने %1$d सेकण्ड के भीतर उत्तर नहीं दिया। भुगतान हो गया अथवा नहीं हुआ दोनो सम्भाव्य। धनकोष जाँचें पुनःप्रयास पूर्व। - आपके धनकोष ने %1$d सेकण्ड के भीतर उत्तर नहीं दिया। भुगतान हो गया अथवा नहीं हुआ दोनो सम्भाव्य। धनकोष जाँचें पुनःप्रयास पूर्व। - - - धनकोष अनुरोध समयसीमा पार। %1$d उत्तर अस्वीकृत क्योंकि वह अनपेक्षित कुंचिका से हस्ताक्षरित था। आपका पुनःप्रसारक सम्भाव्यतः अविश्वसनीय। - धनकोष अनुरोध समयसीमा पार। %1$d उत्तर अस्वीकृत क्योंकि वे अनपेक्षित कुंचिका से हस्ताक्षरित थे। आपका पुनःप्रसारक सम्भाव्यतः अविश्वसनीय। - - चित्र जोडें - चित्र परिवर्तन - समूह विवरण का अद्यतन किया गया - अद्यतन असफल : %1$s - समूह बनाने में असफल : %1$s - समूह छोडनें में असफल : %1$s - पहले एक ब्लोस्सम श्रव्यदृश्याभिलेख सेवासंगणक जोडें स्थापना विकल्पों में। समूह के लिए कोई स्थान आवश्यक है संलग्न अभिलेखों का आरोहण करने के लिए। - यह समूह अब रहस्यीकृत संलग्न अभिलेखों का उपयोग करता है - इस समूह में रहस्यीकृत संलग्न अभिलेखों का उपयोग सक्षम करने में असफल : %1$s - समूह विघटित - समूह का अन्त किया जा रहा है। इसका अन्त हो जाएगा जब समूह सहमत होगा। - समूह का अन्त किया जा रहा है। आप इसे अभी भी पढ सकते हैं। - आप इस समूह को छोड रहे हैं। - आप इस समूह के सदस्य अब नहीं रहे। - समूह का विघटन असफल : %1$s - जोडा जा रहा है %1$s… - %1$s जोडने में असफल : %2$s - अज्ञात अपक्रम - सदस्य हटाया गया - सदस्य हटाने में असफल : %1$s - प्रबन्धन अधिकार दिए गए - प्रबन्धन अधिकार प्रदान असफल : %1$s - प्रबन्धन अधिकार हटाए गए - प्रबन्धन अधिकार निराकरण असफल : %1$s - इस समूह का सदस्य नहीं ग्राहक की लैटनिंग सेवा %1$s पर उपलब्ध नहीं। इसका परिकलन किया गया \"%2$s\" लैटनिंग पता से। अपक्रम : %3$s। जाँच करें यदि सेवा संगणक चल रहा है तथा यदि लैटनिंग पता सम्यक है %1$s का सुलझाव नहीं कर पाए। जाँच करें यदि आप संयोजित हैं, यदि सेवा संगणक चल रहा है तथा यदि लैटनिंग पता %2$s सम्यक है।\n\nअपवर्ग था : %3$s %1$s से लाए गए चालान के जेसोन॰ परखनें में अपक्रम। उपयोगकर्ता की लैटनिंग स्थापना की जाँच करें लैटनिंग चालान नहीं बना पाए। %1$s से संदेश : %2$s %1$s से लैटनिंग चालान नहीं बना पाए। परिणाम जेसोन॰ में pr अम्श उपलब्ध नहीं। - स्थानीय चर्चा - स्थानीय प्रणाली - चर्चा करें किसी से भी जो एक स्थल के निकट हो भूभागसूचक अनुसार। - स्थानीय - सब से अच्छा लोगों से बात करने के लिए जो एक स्थान के आसपास हैं। आपका विभाग नगर अथवा क्षेत्र। - स्थान का चयन करें - नामरहित। एक अस्थायी परिचय प्रति क्षेत्र। आपका एनपुब॰ कभी नहीं। - बिटचाट॰ अनुकूल। निकटस्थ प्रयोक्ता अभिगम्य जो समान पुनःप्रसारकों पर हों। - सार्वजनिक तथा अस्थायी। इतिहास रहित। प्रसारक्षेत्र में सभी पढ सकेंगे। - पंक्तिबद्ध - कार्य मध्य - अनुमति आवश्यक - स्वीकृत - संस्करण प्रयोक्ताओं को भेज दिया गया - असफल - निरस्त - अस्वीकृत - मूल्य के लिए मूल्य स्वास्थ्य संयोजन तथा अमेथिस्ट - मेरा स्वास्थ्य diff --git a/amethyst/src/main/res/values-hu-rHU/strings.xml b/amethyst/src/main/res/values-hu-rHU/strings.xml index bfe3d3851c..65862d9682 100644 --- a/amethyst/src/main/res/values-hu-rHU/strings.xml +++ b/amethyst/src/main/res/values-hu-rHU/strings.xml @@ -1,156 +1,13 @@ - - Ez a bejegyzés több mint %1$d kulcsszót tartalmaz - Ez a bejegyzés több mint %1$d kulcsszót tartalmaz - - - %1$d összetevő egybecsomagolva - %1$d asset egybecsomagolva - - - +%1$d\nválasz - +%1$d\nválasz - - - %1$d Ön által követett személy jelentette - %1$d Ön által követett személy jelentette - - Kéretlen tartalom - Az erről az átjátszóról érkező kéretlen tartalmú események száma - Profilutánzás - Illegális viselkedés - Törlés kérése - Ön nyilvános kulcsot használ, és a nyilvános kulccsal csak olvashatóak a bejegyzések. Jelentkezzen be a privát kulcsával, hogy válaszolni tudjon - Ön nyilvános kulcsot használ, és a nyilvános kulccsal csak olvashatóak a bejegyzések. Jelentkezzen be a privát kulcsával, hogy meg tudja tolni a bejegyzéseket - Ön nyilvános kulcsot használ, és a nyilvános kulcsok csak olvashatóak. Jelentkezzen be a privát kulccsal a hozzászólások kedveléséhez - Nincs beállítva zapösszeg. Koppintson hosszan a beállításhoz - Ön nyilvános kulcsot használ, és a nyilvános kulccsal csak olvashatók a bejegyzések. Jelentkezzen be a privát kulcsával, hogy zapet tudjon küldeni - Ön nyilvános kulcsot használ, és a nyilvános kulccsal csak olvashatóak a bejegyzések. Jelentkezzen be a privát kulcsával, hogy követni tudjon embereket - Ön nyilvános kulcsot használ, és a nyilvános kulccsal csak olvashatóak a bejegyzések. Jelentkezzen be a privát kulcsával, hogy ki tudja követni az embereket, akiket követ - Ön nyilvános kulcsot használ, és a nyilvános kulccsal csak olvashatóak a bejegyzések. Jelentkezzen be a privát kulcsával, hogy egy szót vagy mondat el tudjon rejteni - Ön nyilvános kulcsot használ, és a nyilvános kulccsal csak olvashatóak a bejegyzések. Jelentkezzen be a privát kulcsával, hogy egy szót vagy mondat meg tudjon jeleníteni - Ön nyilvános kulcsot használ, és a nyilvános kulcsok csak olvashatóak. Jelentkezzen be egy privát kulccsal, hogy tudjon tartalmakat feltölteni - Ön nyilvános kulcsot használ, és a nyilvános kulcsok csak olvashatóak. Jelentkezzen be egy privát kulccsal, hogy aláírhassa az eseményeket - Jogosulatlan visszafejtés - Az aláíró nem engedélyezte a művelet végrehajtásához szükséges visszafejtést. Aktiválja az NIP-44 visszafejtést az aláíró alkalmazásban, és próbálja meg újra - Nem található az aláíró - Az aláíró alkalmazás el lett távolítva? Ellenőrizze, hogy az aláíró telepítve van-e és rendelkezik-e ezzel a fiókkal. Jelentkezzen ki és jelentkezzen be újra, ha az aláíró alkalmazás megváltozott. - A külső aláíró a kéréstől eltérő, szokatlan választ küldött. Lehet, hogy hiba lépett fel az Amethystben vagy az aláíró alkalmazásban. - Zapek - Megtolás megtolta #%1$s szerkesztése - Szerkesztési javaslat - Hozzáadás - Hiba a hibaüzenet elemzésekor - Profil - Biztonsági szűrők - Kevesebb megjelenítése - Számla kérése… - A terhelési szolgáltató nem teljesítette a fizetést. - %1$s kifizetése ezzel: %2$s? - Kifizeti ezt a számlát a(z) %1$s használatával? - Adjon meg egy érvényes összeget ehhez az ajánlathoz. - Egyszeri - Naponta - Hetente - Havonta - Fizetés - Kifizetés ezzel: %1$s… - Nem sikerült a fizetés - A címzett számára elküldhető összeg: %1$s satoshi - Tranzakció: %1$s - "Kártyakép előnézete a következőhöz: %1$s" - Leírás - Mi jár a fejében? - Üzenet írása… - Közzététel Mentés - Küldés - Létrehozás Átnevezés - Mégse - Hiba - Hibák - Az átjátszóhoz való sikeres kapcsolatok százalékos aránya - Mentés a telefonra - Kép mentve a képgalériába - A videó letöltése megkezdődött… - A média letöltése megkezdődött… - Kitűzés felülre - Kitűzés megszüntetése - Nem sikerült menteni a képet - Videó mentve a videógalériába - Nem sikerült menteni a videót - A PDF-fájl a Letöltések/Amethyst mappába lett mentve - Nem sikerült menteni a PDF-fájlt - Ezen az eszközön nem található kameraalkalmazás - Hangüzenet rögzítéséhez kattintson és tartsa lenyomva a gombot - Feltöltési hiba - Nem sikerült feltölteni a hangüzenetet - A NIP-95 még nem támogatja a hangüzeneteket - Nem sikerült feltölteni a hangüzenetet: %1$s - Semmi - Mély - Magas - Semleges - A felhasználó nem rendelkezik a satoshik fogadásához beállított lightning-címmel - "Válasz írása… " - Ismert - Új felkérések - Letiltott felhasználók - Új bejegyzések - Beszélgetések - További beállítások - Privát kulcs megjelenítése QR-kódként - Jelszóval védett privát kulcs megjelenítése QR-kódként - Követés - Viszontkövetés - Jelszó elrejtése - Érvénytelen kulcs - Érvénytelen kulcs: %1$s - Jelszó megadása kötelező - Kulcs megadása kötelező - Név megadása kötelező - Nem sikerült lekérni ezt a meghívót. Lehet, hogy a hivatkozás lejárt, vagy az átjátszói nem érhetők el. - Ez a meghívási hivatkozás érvénytelen, vagy nem nyitható meg ezzel a fiókkal. - Ez a meghívó az alkalmazás egy újabb verziójával készült, és itt még nem nyitható meg. Kérjen egy frissített linket, vagy a frissítés után próbálja újra. - Ezt a meghívási hivatkozást visszavonták, és már nem használható. Kérjen egy újat. - Ez a közösség kizárta Önt. A hivatkozás továbbra is működik, de a taglistán nem szerepelhet. - Meghívási hivatkozások - Meghívási hivatkozások… - Meghívási hivatkozás visszavonva. - Nem sikerült visszavonni a meghívási hivatkozást. Ellenőrizze az internetkapcsolatát, majd próbálja meg újra. - Ez a meghívó hivatkozás lejárt és már nem használható. Kérjen egy új hivatkozást. - Concord-csatornák - Még nincsenek csatornák. - Kép küldése - Új csatorna - Csatorna átnevezése - Átnevezés - Csatorna neve - Csatorna törlése - Biztosan törli a csatornát? - Biztosan törli a(z) #%1$s csatornát? Ez a művelet nem vonható vissza, és a csatorna nem hozható létre újra ugyanezzel az azonosítóval. - Törlés - Közösség elhagyása - Elhagyja a közösséget? - Elhagyja a következőt: %1$s? Eltávolításra kerül ezen fiók listájáról, és leáll a szinkronizálása az Ön eszközein. A közösség nem kap értesítést, és Ön nem kerül le a tagok listájáról. Azok az üzenetek, amelyeket már nem tud visszafejteni, helyreállíthatatlanná válhatnak, és csak új meghívóval térhet vissza. - Ön hozta létre ezt a közösséget. A kilépés nem törli, és nem is adja át másnak, de eldobja a listáján tárolt tulajdonosi kulcsot — a jövőben nem fogja tudni kezelni. - %1$s gépel… - %1$s és %2$s gépel… - Többen is gépelnek… - Új Concord-csatorna - Átjátszók Ikon webcíme (nem kötelező) - - %1$d csatorna - %1$d csatorna - %1$d munkaterület %1$d munkaterület @@ -159,318 +16,38 @@ %1$d csatorna %1$d csatorna - - %1$d tag - %1$d tag - - - %1$d új üzenet - %1$d új üzenet - - Még nincsenek üzenetek - Létrehozás - Tagok meghívása - Meghívóhivatkozás - Kinevezés adminisztrátornak - Adminisztrátori jog megvonása - A közösség titkosított üzeneteit tároló átjátszók. Hagyja üresen a sajátjai használatához. - Közösség szerkesztése - Tagok - Kinevezés adminisztrátornak - Adminisztrátori jog megvonása - Kitiltás - Kitiltás feloldása - Szerepkörök hozzárendelése - Nem sikerült frissíteni a tag szerepköreit. - Concord - Csevegésben - Szálban - - %1$d válasz - %1$d válasz - Új csevegési profil: - Elhagyás - Eltávolítás az Üzenetekből - Hozzáadás az Üzenetekhez - Követés megszüntetése - Eltűnő csevegés - Átjátszócsevegés - Átjátszócsevegések - Az átjátszócsevegések olyan csevegőcsoportok, amelyeket az otthoni átjátszó irányít. - Ezek mindenki számára láthatóak a Nostr-on, és bárki részt vehet rajtuk. - Remekül alkalmasak nyitott közösségek kialakítására bizonyos témák körül. Néhány ilyen csoport - rövid élettartamú, ezért a csevegési üzenetek idővel eltűnnek - Nyilvános csevegés - Marmot-csoport - Nyilvános csevegés metaadatai - A nyilvános csevegések mindenki számára láthatóak a Nostr-on, és bárki - részt vehet bennük. Ezek kiválóan alkalmasak bizonyos témák köré szerveződő nyílt közösségek számára. - A moderálás az átjátszókon lévő hozzászólások törlésével szabályozható - Átjátszók - Adjon hozzá 1–3 olyan átjátszót, amelyek kiszolgálják ezt a csoportot. - A Nostr-kliensek ezt a beállítást használják arra, hogy tudják, honnan töltsék le az üzeneteket, és hová küldjék az üzeneteket. - Eltávolítás - soha - most - ó - p - n - Meztelenség - Trágárság / Gyűlöletbeszéd - Biztonsági mentési kulcsok - Nem sikerült a privát kulcsot titkosítani - A titkos kulcs (nsec) a vágólapra másolva - Saját titkos kulcs másolása - Nem sikerült hitelesíteni - A biometrika nem tudta hitelesíteni a telefon tulajdonosát - A biometrika nem tudta hitelesíteni a telefon tulajdonosát. Hiba: %1$s - Bejegyzés szövege a vágólapra másolva - A szerző @npub-ja a vágólapra másolva - A bejegyzés-azonosító (@note1) a vágólapra másolva - "<Nem sikerült a privát üzenetet visszafejteni>\n\nÖnt megemlítették egy privát/titkosított beszélgetésben %1$s és %2$s között." - Fiókok - Navigálás - Ön - Hírfolyamok - Létrehozás - Rendszer - Vissza - Böngésző-hivatkozás megosztása - Megosztás - Megosztás képként - Kép webcímének megosztása - Bejegyzés-azonosító - Törlés - Szál némítása - Szál némításának megszüntetése - Értesítések némítása - Értesítések némításának megszüntetése - - Letiltás - Könyvjelző - A könyvjelzők átköltöztetése sikeresen befejeződött - Piszkozatok - Ütemezett bejegyzések - Bejegyzés ütemezése - Ütemezés visszavonása - Az ütemezett bejegyzések csak akkor jelennek meg, ha legközelebb újra megnyitja az alkalmazást. A megbízható háttérbeli ütemezés érdekében engedélyezze a „Folyamatos értesítési szolgáltatás” beállítását a Beállítások → Felhasználói felület beállítása menüpontban. - Az ütemezett bejegyzések csak akkor jelennek meg, ha újra megnyitja az alkalmazást. Más fiókok ütemezett bejegyzései nem jelennek meg, amíg ez a fiók aktív. A megbízható háttérbeli ütemezés érdekében engedélyezze a „Folyamatos értesítési szolgáltatás” beállítását a Beállítások → Felhasználói felület beállítása menüpontban. - %1$s → %2$s - %1$s · %2$s ezelőtt - Holnap - Kijelentkezve - - Ön kijelentkezett · %d ütemezett bejegyzés törölve - Ön kijelentkezett · %d ütemezett bejegyzés törölve - - Ütemezett bejegyzés közzétéve - Nem sikerült közzétenni egy ütemezett bejegyzést - Ütemezett bejegyzések - Értesítések, amikor egy ütemezett bejegyzés megjelenik vagy nem sikerül közzététenni. - Küldés most - Hiba: %1$s - Ütemezve - Küldés… - Sikertelen - Elküldve - Megszakítva - - Önnek %d ütemezett bejegyzése van, amely még nem lett közzétéve. A kijelentkezéssel véglegesen törli azt. - Önnek %d ütemezett bejegyzése van, amelyek még nem lettek közzétéve. A kijelentkezéssel véglegesen törli azokat. - - - %d sorbaállítva - %d sorbaállítva - - - · %d bejegyzés 1 órán belül - · %d bejegyzés 1 órán belül - - - %d átjátszóhoz - %d átjátszóhoz - - Bejegyzés azonosítója másolva - Szavazások - Megnyitás - Lezárva - Kitűzők - Közösségek - Új közösség - Közösség szerkesztése - Moderátorok - Átjátszók - Ellenőrizhető szabályok (nem kötelező) - Engedélyezett eseménytípusok - Rövid szöveg (1) - Hosszú formátumú cikk (30023) - Képes bejegyzés (20) - Videós bejegyzés (21) - Rövid videó (22) - Közösségi megjegyzés (1111) - Letiltott felhasználók - Bizalmi háló (Web-of-Trust) szűrő (nem kötelező) - Globális maximális eseményméret (nem kötelező) - Új kitűző - Kitüntetési kitűző - Profilkitűzők - Képek - Edzések - Új edzés - - %1$d tevékenység - %1$d tevékenység - - Futás - Gyaloglás - Kerékpározás - Túrázás - Úszás - Evezés - Erősítés - Jóga - Meditáció - Étrend - Böjt - Kör - EMOM - AMRAP - Alkalmazásáruház Alkalmazásáruház - nKisalkalmazások - nOldalak - Böngésző - Betöltés Tor hálózaton keresztül. Koppintson a nyílt web használatához. - Betöltés a nyílt weben keresztül. Koppintson a Tor használatához. - Kedvencek - Webalkalmazások felfedezése - Webalkalmazások - Hozzáadás a kedvencekhez - Eltávolítás a kedvencekből - Betöltés Tor hálózaton keresztül. - Betöltés a nyílt weben keresztül. - Közzétéve az átjátszókon - Feltöltött egy fájlt - Fizetést hajtott végre - Az az alkalmazás még nincs betöltve. Próbálja újra egy pillanat múlva. - Legutóbbi nKisalkalmazások jogosultságai Még nincsenek nKisalkalmazás-jogosultságok A nKisalkalmazásoknak adott jogosultságok itt fognak megjelenni. nKisalkalmazás elfelejtése Használatonkénti jóváhagyás szükséges Visszavonás - nKisalkalmazás: %1$s… Parancsértelmező - Azonosság - Billentyűzetműveletek - Átjátszók - Titkosítás - Tárhely - Fizetések - Hálózat - Feltöltések Kérdezze meg, milyen funkciók érhetők el - Az Ön nyilvános kulcsának olvasása - Billentyűkötések hozzárendelése - Események olvasása, aláírása és közzététele - A privát üzeneteket a saját kulcsával titkosítja és fejti vissza az alkalmazás - Saját privát tárhely - Lightning-számlák kifizetése - Webes és Blossom erőforrások lekérése - Fájlok feltöltése a saját médiakiszolgálóra - Téma - Értesítések - Üzenetváltás - Alkalmazkodás az alkalmazás színeihez - Értesítések megjelenítése - Üzenetváltás más nKisalkalmazással Funkció: %1$s - Ez a nKisalkalmazás olvasni szeretné az Ön nyilvános kulcsát. - Ez a nKisalkalmazás olvasni szeretné az Ön profil- és fiókadatait. - Ez a nKisalkalmazás alá szeretne írni és közzétenni egy %1$d típusú eseményt az Ön nevében. - Ez a nKisalkalmazás alá szeretne írni és közzétenni egy %1$d típusú eseményt az Ön nevében: - Ez a nKisalkalmazás egy titkosított eseményt szeretne küldeni az Ön nevében. - Ez az oldal az Ön Nostr-kulcsával titkosítani szeretne egy üzenetet %1$s felhasználó számára. - Ez az oldal az Ön Nostr-kulcsával vissza szeretne fejteni egy üzenetet, amit %1$s felhasználótol kapott. - Ez a nKisalkalmazás eseményeket szeretne olvasni az Ön átjátszóiról. - Ez a nKisalkalmazás az Ön privát tárhelyét szeretné használni. Ez a nKisalkalmazás ki szeretne fizetni egy Lightning számlát. - ⚠ Ez a nApplet egy olyan Lightning számlát akar kifizetni, amelyen NINCS összeg megadva — a kedvezményezett dönti el, mennyit von le. Csak akkor engedélyezze, ha megbízik benne. - Ez a nKisalkalmazás le szeretne kérni egy webes erőforrást. - Ez a nKisalkalmazás fel szeretne tölteni egy fájlt az Ön médiakiszolgálójára. - Ez a nKisalkalmazás értesítéseket szeretne megjeleníteni Önnek. - Ez az oldal egy %1$d típusú eseményt szeretne aláírni az Ön Nostr-kulcsával. - - Ez a nKisalkalmazás ki szeretne fizetni egy %1$d satoshi értékű Lightning számlát. - Ez a nKisalkalmazás ki szeretne fizetni egy %1$d satoshi értékű Lightning számlát. - - - %1$d új fiókot követ - %1$d új fiókot követ - - - MEGSZÜNTETI %1$d fiók követését - MEGSZÜNTETI %1$d fiók követését - - - hozzáad %1$d átjátszót - hozzáad %1$d átjátszót - - - ELTÁVOLÍT %1$d átjátszót - ELTÁVOLÍT %1$d átjátszót - - - némít további %1$d személyt - némít további %1$d személyt - - - VISSZAVONJA %1$d személy némítását - VISSZAVONJA %1$d személy némítását - - ⚠ Ez elkezdi követni a következőt: %1$s. - ⚠ Ez MEGSZÜNTETI %1$s követését. - ⚠ Ez némítja a következőt: %1$s. - ⚠ Ez VISSZAVONJA %1$s némítását. - ⚠ Ez felülírja a követési listáját: %1$s. - ⚠ Ez felülírja az átjátszók listáját: %1$s. A bejegyzései és olvasásai vele együtt mozognak. - ⚠ Ez felülírja a némítási listáját: %1$s. A némított szavak és hashtagek nem jelennek meg itt — koppintson az „Esemény megjelenítése” elemre a teljes listához. - %1$s és %2$s - Ez változatlan formában újból közzéteszi az Ön meglévő listáját. - - ⚠ Ez egy %1$d bejegyzésből álló listát ír. Az Amethyst nem rendelkezik gyorsítótárazott másolattal az összehasonlításhoz. - ⚠ Ez egy %1$d bejegyzésből álló listát ír. Az Amethyst nem rendelkezik gyorsítótárazott másolattal az összehasonlításhoz. - - - ⚠ Ez az Ön %1$d eseményének törlését kéri. - ⚠ Ez az Ön %1$d eseményének törlését kéri. - - - %1$d címkét tartalmaz. Koppintson az „Esemény megjelenítése” elemre, hogy pontosan lássa, mi kerülne aláírásra. - %1$d címkét tartalmaz. Koppintson az „Esemény megjelenítése” elemre, hogy pontosan lássa, mi kerülne aláírásra. - Kapcsolódás a NOSTR-hoz @@ -479,889 +56,90 @@ Legutóbbi használat Lejárat - aláírás a következőhöz: %1$s (típus: %2$d) - egy üzenet titkosítása - saját privát üzenetek olvasása - elolvashatja a magánüzeneteit vele: %1$s - Mindig engedélyezze a következőnek: %1$s - Az Amethyst nem tudta visszafejteni ezt az üzenetet. Lehet, hogy nem ennek a fióknak címezték. - Összekapcsolt alkalmazások Minden engedély visszavonása Műveleti felülbírálások Nincsenek összekapcsolt alkalmazások. - alkalmazások, engedélyek, aláíró, napplet, nsite, webalkalmazás, bizalom, kapcsolódott - Távoli aláíró aláíró bunker nip46 nostr kapcsolódás távoli aláírás Működjön távoli aláíróként Figyelés %1$d átjátszón Figyelés %1$d átjátszón - - Figyelés %1$d átjátszón - Figyelés %1$d átjátszón, mindegyikhez kapcsolódva - Az Ön bunker címe Illessze be ezt egy másik alkalmazásba, hogy a kulcsához kapcsolja azt. - Bunker címe másolva - Új bunker cím generálva - Kapcsolódva - Offline - Újrakapcsolódás az átjátszókhoz… - - %1$d átjátszó - %1$d átjátszó - - Az alkalmazás kapcsolódott. Az Amethyst mostantól a háttérben ír alá a számára. - Kapcsolódva: %1$s. Az Amethyst mostantól a háttérben ír alá a számára. - Nem érvényes nostrconnect:// hivatkozás - Ez a hivatkozás nem tartalmaz átjátszót a kapcsolódáshoz - Nem sikerült kapcsolódni: %1$s - A kapcsolat elutasítva - Ez egy csak olvasható fiók, és nem tud aláírni. - Távoli aláíró alkalmazás - - %1$d aláírási kérés - %1$d aláírási kérés - - Összes kijelölése - Kijelölés megszüntetése Még nincsenek kiszolgált kérések. - Aláírási kérések - Teljes képernyős figyelmeztetések, amelyek arra kérik Önt, hogy hagyjon jóvá egy alkalmazást, amely az Amethysten keresztül szeretne aláírni, titkosítani vagy visszafejteni az Ön kulcsával. - Jóváhagyja az aláírási kérést? - Egy alkalmazás kapcsolódni szeretne - Koppintson az áttekintéshez - - %1$d kapcsolódó alkalmazás - %1$d kapcsolódó alkalmazás - - Átjátszó-hitelesítés - hitelesítés, átjátszó, aláírás, ellenőrzés, nip-42, azonosság - Hitelesítés kérése mindig - Minden olyan átjátszó esetében alá kell írni az azonosítási kihívásokat, amely ezt kéri - Soha ne végezzen hitelesítést - Az összes átjátszó hitelesítési kérésének figyelmen kívül hagyása - Egyéni - Válassza ki pontosan, hogy mely átjátszókba jelentkezik be. A lent nem engedélyezett dolgokról kérdést fog kapni. - \u2026ez a saját átjátszóm vagy egy szoba, amihez csatlakoztam vagy követek - \u2026olyan valakit olvasok, akit követek - \u2026olyan valakinek írok, akit követek - \u2026bárki másnak írok - - %1$s és %2$d további - %1$s és %2$d további - - - Visszatart továbbá %1$d másik dolgot is. - Visszatart továbbá %1$d másik dolgot is. - - Mindig jelentkezzen be - Soha - Mindig, összes átjátszó - Soha, összes átjátszó - Bejelentkezik az összes átjátszóba? - Az Amethyst %1$s felhasználóként jelentkezik be minden olyan átjátszóra, amely ezt kéri, és a jövőben nem fogja többször megkérdezni. A letiltott átjátszók, valamint azok, amelyeknél beállította, hogy soha ne jelentkezzen be, változatlanok maradnak. Ezt az „Átjátszó bejelentkezés” menüpontban módosíthatja. - Soha nem jelentkezik be egyetlen átjátszóba sem? - Az Amethyst többé nem közli az átjátszókkal, hogy Ön %1$s, és a jövőben nem fogja megkérdezni többé. Bizonyos átjátszók meg fogják tagadni a kiszolgálást: előfordulhat, hogy az üzenetek, válaszok és értesítések nem mennek át. Azok az átjátszók, amelyeknél beállította, hogy mindig jelentkezzen be, változatlanok maradnak. Ezt az „Átjátszó bejelentkezés” menüpontban módosíthatja. - Mindig, Ön által beállítva - Soha, Ön által beállítva - saját üzenetek - saját válaszok - emberek, akiket olvasok - egy szoba, ahová Ön bejegyzést küldött - egy szoba, amit olvasok - saját beérkező üzenetek - egy beszélgetés - saját tulajdonú átjátszó - ez az átjátszó - Rövidek - Nyilvános csevegések - Helyszíncsatornák - Követési csomagok - Élő közvetítések - Hangszobák - Kéz felemelése - Kéz leengedése - Némítás - Némítás megszüntetése - Nem sikerült elküldeni az üzenetet - Mikrofon némítása - Mikrofon némításának megszüntetése - Hangszobák - Hang lejátszása, amíg a szoba meg van nyitva. - Hangszoba kapcsódott - Hangszoba – Élő - Koppintson ide a visszalépéshez. - Leállítás - felemelték a kezüket - színpadra lépett - beszél - hallgatóként csatlakozott - elhagyta a hangszobát - Elhagyás - Nem sikerült a szobát zártként megjelölni. Távozás ettől függetlenül — a szoba automatikusan bezár. - - %1$d hallgató - %1$d hallgató - - Előadó elnémítása - Ezen előadó visszaállítása - Követés - Követés megszüntetése - Némítás - Némítás megszüntetése - Nem sikerült menteni a hangszoba kiszolgálólistáját. Próbálja újra. Ügynöki konzol - Hangszoba-kiszolgálók - Saját kiszolgálók - Kind-10112 típusú cserélhető eseményként mentve, így más kliensek is olvashatják az Ön beállítását. - Ajánlott kiszolgálók - Beépített javaslatok, melyeket egy koppintással hozzáadhat a listájához. - Videók - Zene - Lejátszási listák - Részek - Hangműsor Prémium - - %1$d. fejezet - %1$d. fejezet - - Értéket az értékért hiba - Ez a hangműsor nem rendelkezik fizethető kedvezményezettel. - Párosítson egy Nostr Wallet Connect pénztárcát a keysend (csomópont) címzetteknek való küldéshez. - Párosítson egy Nostr Wallet Connect vagy debit pénztárcát a satok közvetítéséhez hallgatás közben. - Új rész - Rész szerkesztése - Közzététel… - Borítókép hozzáadása - A részhez megjelenített négyzet alakú kép - Videó webcíme - Átírási webcím - Részek webcímei - Hangfájl hozzáadása - MP3, M4A, vagy egyéb hangfájl - Saját hangműsor - Borítókép hozzáadása - Négyszögletes grafika a műsorhoz - Cím megjelenítése - Saját hangműsor - Szerző - Kapcsolattartói e-mail-cím - Weboldal - Kategóriák - Technológia, hírek - Támogatási hivatkozások - https://… - Nyelv - Angol - Szerzői jogok - Új előzetes - Előzetes klip hozzáadása - Rövid hang vagy -videó előnézete - - %1$d előzetes - %1$d előzetes - Címzett hozzáadása - Ennek a felhasználónak nincs lightning-címe - - %1$d rész - %1$d rész - - Új zeneszám - Új lejátszási lista - - %1$d szám - %1$d szám - - Hozzáadás a nyilvános könyvjelzőkhöz - Törlés a nyilvános könyvjelzőkből - Rögzítés a profilhoz - Rögzítés megszüntetése a profiltól - Új könyvjelzőlista - Könyvjelzőlista metaadatai - Kulcsszócsomagok - Új érdeklődési csomag - Átnevezés - Privát jegyzet - Ez a jegyzet privát módon lett kézbesítve, és nincs aláírva. Csak a megjelölt résztvevők láthatják, és senki sem tudja bizonyítani kívülállóknak, hogy ki írta. - Priváttá tétel: a jegyzet becsomagolása csak az értesített felhasználóknak - Nyilvánossá tevés - A privát bejegyzésekre adott válaszok mindig privátak maradnak - Látható a számára: Még nincsenek címzettek: csak Ön fogja látni ezt a jegyzetet. Adjon hozzá embereket, akikkel megosztaná. - Csak Ön \u2014 választhat valakit, mindenki más csak láthatja ezt - Adjon hozzá embereket az értesítéshez - Küldés privátban - Már hozzá van adva - Némítva - Privát tag - - %1$s, %2$s és %3$d további - %1$s, %2$s és %3$d további - - - Ez a jegyzet titkosítva lesz, és %1$d külön alkalommal lesz kézbesítve, személyenként egyszer. Külső aláíró esetén ez egy-egy jóváhagyást jelent. - Ez a jegyzet titkosítva lesz, és %1$d külön alkalommal lesz kézbesítve, személyenként egyszer. Külső aláíró esetén ez egy-egy jóváhagyást jelent. - - - %1$d személy kap értesítést erről a bejegyzésről. - %1$d személy kap értesítést erről a bejegyzésről. - - - Ez %1$d személy lenne. Az Amethyst egyszerre legfeljebb %2$d személyt ad hozzá \u2014 töröljön néhány kiválasztottat. - Ez %1$d személy lenne. Az Amethyst egyszerre legfeljebb %2$d személyt ad hozzá \u2014 töröljön néhány kiválasztottat. - - - %1$d személy hozzáadása - %1$d személy hozzáadása - - - %1$d személy hozzáadása mindenképpen - %1$d személy hozzáadása mindenképpen - Hozzáadás Felhaszáló eltávolítása az értesítésekből - Értesítés küldése folyamatban. Koppintson a felhasználó értesítéseinek némításához - Némítva. Koppintson a felhasználó ismételt értesítéséhez Felhasználó keresése és hozzáadása értesítéshez - A könyvjelzőlisták metaadatai a Nostr-on bárki számára láthatók. Csak a privát tagok vannak titkosítva. - Áthelyezés a nyilvános könyvjelzőkbe - Áthelyezés a privát könyvjelzőkbe - Feltöltés és zap küldése - Zap küldése - %1$s sat feltöltése ide: %2$s és %3$s zapelése %4$s satoshival · díj ≈ %5$s satoshi - %s. válaszlehetőség - (0–100)% - Egyetlen lehetőség - Több lehetőség - Nem lehet szavazni - A szavazásra már nem lehet új szavazato(ka)t leadni - Az ilyen típusú szavazásokon felhasználónként csak egy szavazat engedélyezett - A szavazások szerzői nem szavazhatnak a saját szavazásaikon. - Mit jelent ez? - Ez a tartalom nem változott a közzététel óta - Ez a tartalom megváltozott. Lehet, hogy a szerző nem látta vagy nem hagyta jóvá a változtatást - Média hozzáadása - Kép hozzáadása - Videó hozzáadása - Dokumentum hozzáadása - Fájlkiszolgáló - Válasszon ki egy kiszolgálót a fájl feltöltéséhez neki: - Médiakiszolgálók Állítsa be a kívánt médiafeltöltő-kiszolgálókat. Tárolt fájlok kezelése - Az én Blossom fájljaim - Fájlok másolása a kiszolgálók között… - Mégsem - Blossom szinkronizálás - Megjeleníti a folyamatot, miközben a fájljait átmásolja a Blossom kiszolgálókra. - Minden kiszolgálón - Nem minden kiszolgálón Törlés innen… - Ez a kiszolgáló fizetést igényel a feltöltéshez: %1$s - - %1$d satoshi fizetése - %1$d satoshi fizetése - - Összes engedélyezése - Összes letiltása - Már fut egy fájlszinkronizálás. Próbálja meg újra az importálást, miután befejeződött. - - %1$d fájl - %1$d fájl - - - %1$d importálandó fájlt találtunk az Ön kiszolgálóira. - %1$d importálandó fájlt találtunk az Ön kiszolgálóira. - - - %1$d fájl importálása - %1$d fájl importálása - Ajánlott médiakiszolgálók Az Amethyst alapértelmezett listája. Hozzáadhatja őket egyenként, vagy hozzáadhatja a listát. - Online - Lassú - Nem elérhető Ellenőrzés… - Fizetési célok - Adjon meg fizetési címeket a különböző hálózatokhoz (például: bitcoin, lightning, ethereum). - Nem található alkalmazás a fizetés kezeléséhez. Telepítsen egy kompatibilis pénztárcát. - Nem található alkalmazás a(z) %1$s fizetések kezeléséhez. Telepítsen egy kompatibilis pénztárcát. - Fizetés ezzel: %1$s, az összeget az alkalmazásban adhatja meg - Utánvétes fizetés - Amikor a szerző közzétesz egy fizetési módot, amelyet a telefonján lévő alkalmazás meg tud nyitni (Venmo, Monero, egy IBAN…), a zap-választó ezt felajánlhatja. A megérintésével megnyílik az adott alkalmazás, amely megkérdezi az összeget – semmi sem lesz közzétéve az átjátszókon, így a bejegyzés zap-számlálója nem változik. - Szerző fizetési módjainak felajánlása - Nem sikerült megnyitni a fizetést - BOLT12 Ajánlatok - Adjon hozzá egy vagy több BOLT12 ajánlatot (lno1…). Ezek nyilvánosan megosztásra kerülnek, így bárki tud Önnek fizetni. - BOLT12 fizetés elküldve - BOLT12 fizetés sikertelen: %1$s - BOLT12 zap hiba - A BOLT12 hálózaton keresztül fizetve lett, de a pénztárca nem küldött vissza igazolást, így nem került közzétételre zap nyugta. - A BOLT12 hálózaton keresztül fizetve lett, de a fizetési igazolás nem érvényes, így nem került közzétételre zap nyugta. - Adatvédelmi beállítások - Minden ami követett - Minden követett felhasználó - Alapértelmezett követési lista - Közelemben - Teleportálás egy helyre… - Kövesse ezt a helyet - Ezen hely követésének megszüntetése - Globális - Válogatott - Saját - Némítottak bejegyzései - Új követési lista - Új követési csomag - Lista szerkesztése - Alapértelmezett port: 9050 - Orbot Socks-portja - Aktív Tor-motor - Használja a beépített verziót vagy az Orbotot - Tor / Adatvédelmi előbeállítások - Az alábbi beállítások gyors módosítása - Onion-webcím / Átjátszók - Használja a Tor-t bármely .onion webcímhez - Közvetlen üzenetátjátszók - Tor kényszerítése a privát üzenetek küldéséhez és fogadásához - Megbízhatatlan átjátszók - Tor kényszerítése a kimenő és bejövő üzenetátjátszókhoz - Megbízható átjátszók - Tor kényszerítése a listákon szereplő összes átjátszóra - Profilképek - Tor kényszerítése profilképek betöltésekor - Webcím-előnézetek - Tor kényszerítése webcím előnézetekor - Képek - Tor kényszerítése képek betöltésekor - Videók - Tor kényszerítése videók betöltésekor - Pénzműveletek - Tor kényszerítése Zap küldésekor, lightning és cashu tranzakciókhoz - Nostr-cím hitelesítése - Tor kényszerítése a NIP-05 címek hitelesítésekor - Médiafeltöltések - Tor kényszerítése tartalomfeltöltéskor - Beépített - Orbot - Kikapcsolva - Alap - Alapértelmezett - Összes kivéve a médiát - Teljes adatvédelem - Egyéni - Tor használata amikor a kiszolgáló megköveteli - IP-cím elrejtése a véletlenszerű átjátszók elől - IP-cím elrejtése mindentől, kivéve a képeknél és videóknál - IP-cím elrejtése az összes kapcsolatnál - Készítsen sajátot - Privát üzenetek - Értesítés, ha privát üzenet érkezik - Zapet kapott - Értesítés, amikor valaki zapet küld Önnek - %1$s satoshi - Tőle: %1$s - neki: %1$s - Beérkezett fizetések - Értesíti Önt, ha a kapcsolódó pénztárcájába olyan fizetés érkezik, amely nem Nostr zap - Érkezett %1$s satoshi - Új fizetések - Válasz - Megjelölés olvasottként - Én - Új üzenet - Önt hozzáadták ehhez: %1$s - Új üzenetek - Új zapek - Reakciók - Értesítés, amikor valaki reagál az egyik bejegyzésre - %1$s reagált az Ön bejegyzésére - neki: %1$s - Új reakciók - Sakk - Értesítés a sakkjátékkal kapcsolatos eseményekre - %1$s elfogadta az Ön sakk-kihívását - %1$s lépett - Ön következik - Sakkfrissítések - Válaszok - Értesítés, amikor valaki válaszol az egyik bejegyzésre %1$s válaszolt ekkor: %1$s - Új válaszok - Említések - Értesítés, ha valaki megemlíti vagy hivatkozik Önre egy bejegyzésben - %1$s megemlítette Önt - Új említések - Üzenetek - Közösségi - Fizetések - Tartalom - Fejlesztő - Játékok - Továbbosztások - Értesítés ha valaki megosztja az Ön bejegyzését - %1$s megosztotta az Ön bejegyzését - Új továbbosztások - Média - Értesítés említésekről egy fényképen vagy videón - %1$s megosztott egy fényképet - %1$s megosztott egy videót - Új média - Cikkek és kiemelések - Értesítés említésekről vagy kiemelésekről egy cikkben - %1$s megemlítette Önt egy cikkben - %1$s kiemelte az Ön cikkét - Új cikkek - Kód és Git - Értesítés a hibajegyekről, foltokról, beolvasztási kérésekről, megjegyzésekről, beolvasztásokról és lezárásokról - %1$s nyitott egy hibajegyet - %1$s küldött egy javítást - %1$s nyitott egy beolvasztási kérést - %1$s frissített egy beolvasztási kérést - %1$s hozzászólt - %1$s újranyitott egy szálat - %1$s beolvasztott egy beolvasztási kérést - %1$s elfogadott egy foltot - %1$s megoldott egy hibajegyet - %1$s beolvasztott/megoldott egy szálat - %1$s lezárt egy beolvasztási kérést - %1$s lezárt egy foltot - %1$s lezárt egy hibajegyet - %1$s lezárt egy szálat - %1$s megjelölt egy szálat piszkozatként - Új kódtevékenység - Kitűzők - Értesítés kitűzőről - Ön kapott egy kitűzőt - Kiadta: %1$s - Új kitűzők - Nutzap érkezett: %1$s - Láncon belüli zap érkezett: %1$s - %1$s feltett egy kérdést - Bejövő hívások - Értesítések a bejövő hang- és videóhívásokhoz - Bejövő hívás - Bejövő hanghívás\u2026 - Bejövő videóhívás\u2026 - Hívás ezzel: %1$s - Hívások - Értesítés a folyamatban lévő hívásról - Hívás befejezése - Elfogadás - Elutasítás - Némítás - Némítás megszüntetése - Kamera bekapcsolása - Kamera kikapcsolása - Képernyő megosztása - Képernyő megosztásának leállítása - Képernyő megosztása - Hangszóró - Fülhallgató - Bluetooth - Az Amethyst alkalmazásnak hozzáférésre van szüksége a mikrofonhoz a hanghívások kezdeményezéséhez. Engedélyezze ezt az alkalmazás beállításaiban. - Az Amethyst alkalmazásnak hozzáférésre van szüksége a kamerához és a mikrofonhoz a videohívások kezdeményezéséhez. Engedélyezze ezeket az alkalmazás beállításaiban. - Hívásbeállítások - Aktív kapcsolatot tart fenn a beérkező üzenetek átjátszóival a valós idejű értesítések érdekében - Amethyst értesítések aktíválva - - Kapcsolódva %1$d beérkező üzenetátjátszóhoz - Kapcsolódva %1$d beérkező üzenetátjátszóhoz - - - Kapcsolódva %1$d átjátszóhoz - Kapcsolódva %1$d átjátszóhoz - - Részletek megjelenítése - Részletek elrejtése - - %1$s \u00b7 %2$d átjátszó - %1$s \u00b7 %2$d átjátszó - - Böngészés - Média - Kulcsszavak - Témák - Beszélgetés - Keresés - Hiányzó események keresése - Események figyelése - Lekéri azokat az eseményeket azonosító alapján, amelyekre a képernyőn látható valami hivatkozik, de még nem rendelkezel velük – például egy idézet, egy válasz szülője vagy egy szál gyökere. - Figyeli a jelenleg megjelenített eseményeket új válaszok, reakciók, továbbosztások, zap-ek és jelentések szempontjából, így a számlálók frissülnek olvasás közben. - Kiegészítők - Átjátszó információ - Egyéb - Átjátszólista-kereső - Profilok figyelése - Fiók adatai - Kezdőoldal hírfolyama - Átjátszó csoportok - - %1$d csoport - %1$d csoport - - Ideiglenes csevegések - Helyalapú csevegések - Élő közvetítés csevegés - A NIP-29 csoportok, amelyekhez csatlakozott. Minden csoport egy gazda-átjátszón létezik, így az alkalmazás minden olyan átjátszóhoz kapcsolódik, amely egy csoportját üzemelteti. - Csevegőszobák, amelyek nem őriznek előzményeket – az üzenetek csak a kapcsolódás ideje alatt léteznek, ezért ezek folyamatosan előfizetve maradnak, hogy bármit is fogadni tudjanak. - Helyalapú szobák azokhoz a területekhez, amelyeket követ, lekérdezve az azokat hordozó átjátszóktól. - Csevegés és zap-célok, amelyek a megnyitott vagy követett élő közvetítésekhez kapcsolódnak. - Üzenetek - Pénztárca - Beérkező nutzapek - Pénzverde-jegyzék - Pénztárca-kapcsolat - Közösségi csevegések - Közösségi hírfolyamok - A beérkező üzenetek átjátszói, plusz egy kis, rotáló minta azokból az átjátszókból, ahová a követettjei posztolnak, arra az esetre, ha egy említés máshová került volna kézbesítésre. - A közvetlen üzenetek beérkező átjátszói, ahol a becsomagolt üzenetek kézbesítésre kerülnek. - Az egyes megnyitott vagy csatlakozott csevegések gazda-átjátszója. - Azok az átjátszók, amelyekre az egyes közösségek közzéteszik a terveiket. - Csoportüzenetek és kulcscsomagok az egyes csoportok átjátszóin. - A szoba átjátszói, amíg az meg van nyitva. - Saját profil, -beállítások és -piszkozatok a gazda-átjátszókon. - A képernyőn jelenleg látható emberek profiljai. - Megkeresi, hogy az egyes személyek mely átjátszókon teszik közzé a bejegyzéseiket, így azok a megfelelő helyről tölthetők le. - Követési listák, amelyek az Ön hírfolyama és a bizalmi hálójának felépítéséhez használatosak. - Jelentések, amelyeket a követettjei írtak a képernyőn jelenleg látható profilokról, lekérdezve minden egyes átjátszótól, ahová ezek a követettek teszik közé a bejegyzéseiket. - Jelentések követettektől - Saját pénztárca-események, visszaolvasva azokból az átjátszókból, ahová közzétette őket. - Figyeli a nutzap-átjátszókat, valamint a beérkező- és közvetlen üzenet-átjátszókat, így egy fizetés sem csúszhat el. - Átjátszók között keres, hogy mely pénzverdék léteznek és melyeket ajánlják az emberek. - Értesítések az összekapcsolt pénztárcáról. - Aktív átjátszó-előfizetések - - %1$d szűrő - %1$d szűrő - - - %1$d átjátszó - %1$d átjátszó - - - %1$d szűrő még nincs hozzárendelve - %1$d szűrő még nincs hozzárendelve - %1$s \u00b7 %2$s - %1$d%% az összesből - előfizetések, szűrők, átjátszók, kérések, kapcsolatok, miért diagnosztika - Bejegyzések azoktól, akiket követ, beolvasva azokból az átjátszókból, ahová közzéteszik a bejegyzéseiket. - Kapcsolódás a beérkező üzenetátjátszókhoz\u2026 Folyamatos értesítési szolgáltatás Folyamatos kapcsolatot tart fenn a beérkező üzenetek átjátszóival az értesítések azonnali kézbesítése érdekében. Megjeleníti a folyamatban lévő értesítéseket. Több akkumulátort fogyaszt, de így biztosan nem marad le egyetlen üzenetről sem. Értesítési szolgáltatás - Be - Ki - Értesítési háttérszolgáltatás - Főkapcsoló a valós idejű háttérértesítésekhez. Kapcsolja ki az akkumulátor kímélése érdekében – olyan, mint a repülőgép-üzemmód. Ha ki van kapcsolva, egyetlen fiók sem marad kapcsolatban a háttérben, és kikapcsolva is marad (újraindítások után is), amíg Ön vissza nem kapcsolja. - Háttérben aktív fiókok Tartsa ezt a fiókot aktívan a háttérben - Értesítések szétválasztása követések szerint - Két értesítési fül megjelenítése — Követettek (akiket Ön követ) és Mindenki. Az olvasatlan jelző csak a követett személyek aktivitása esetén világít. - Üzenetek megjelenítése - Közvetlen és csoportos üzenetek megjelenítése az Értesítések lapon. Kapcsolja ki, ha az üzeneteket csak az Üzenetek lapon szeretné látni. - Értesítés: - Ma - Elrejtés - Megjelenítés - Figyelmeztetés - Kéretlen tartalomszűrő - Elrejti az ismeretlen felhasználók hozzászólásait, amelyek pontosan ugyanazok voltak 5 vagy több alkalommal - Klienscímke hozzáadása a saját eseményekhez - Ha engedélyezve van, az Amethyst egy NIP-89 klienscímkét fűz hozzá a közzétett eseményekhez. - Figyelmeztetés a jelentésekre - Figyelmeztető üzenetet jelenít meg, ha az Ön követői bejelentést tettek bejegyzésekről vagy profilokról - Közösségi szabályokat sértő bejegyzések elrejtése - Eltávolítja a bejegyzéseket a közösségi hírfolyamokból, ha a közösség közzétesz egy NIP-9B szabálydokumentumot, és egy esemény nem felel meg annak. Nincs hatása, ha a közösség nem rendelkezik strukturált szabályokkal. - Beállítások szűrése - Letiltott tartalom - Ön még nem tiltott le egyetlen felhasználót sem. - Ebben a munkamenetben egyetlen fiókot sem jelölt meg kéretlen tartalomként. - Nincsenek rejtett szavak. Adjon hozzá egy szót alább, hogy elrejtse az azt tartalmazó bejegyzéseket. - A felhasználó számára nincsenek előre kiválasztott reakciótípusok. Hosszan nyomja meg a szív gombot a módosításhoz - Olvasás az átjátszóról - Írás az átjátszóra - Az átjátszónak küldött bájt-mennyiség, beleértve a szűrőket és eseményeket is - Az átjátszótól kapott bájt-mennyiség, beleértve a szűrőket és eseményeket is - Adatvédelmi irányelvek - Gyermekbiztonsági szabványok - Névjegy és jogi információk - Cashu token - Nincs beállítva Lightning-cím - Átjátszók - Követett csomagok - Olvasmányok - Hírfolyam-algoritmus - Piac - Élő közvetítések - Közösségek - Csevegések - Érzékeny tartalom - Érzékeny tartalom-figyelmeztetés hozzáadása a tartalom megjelenítése előtt - Felhasználói felület beállításai Alkalmazásbeállítások - Nyelvi fordítások - Reakciók - Beállítások - Fiókbeállítások - Alkalmazásbeállítások - Kritikus beállítások - Marmot-állapot visszaállítása - Marmot-állapot visszaállítva. - Nem sikerült visszaállítani a Marmot-állapotot: %1$s - Mindig - Korlátlan Wi-Fi - Soha - Wi-Fi - Teljes - Egyszerűsített - Teljesítmény - Teljes - Egyszerű - Gyors - Klasszikus - Modern - Rendszer - Világos - Sötét - Megjelenés - Média és adat - Általános - Kapcsolat - Útválasztás Tor-on keresztül - Szakaszok és hírfolyamok - Látható lapok - Tartalom a hírfolyamban - Szöveges jegyzetek - Továbbosztások - Hozzászólások és válaszok - Képek - Videók - Rövid videók - Cikkek - Wiki-oldalak - Kiemelések - Szavazások - Apróhirdetések - Torrentek - Hangüzenetek - Élő tevékenységek - Ideiglenes csevegések - Interaktív történetek - Sakkjátszmák - Madármegfigyelések - Igazolások - NIP-tervezetek - Zene és hang - Podcastok - Gyűjtések - Értékelések és megjegyzések - Értékelés: %1$s / 5 - Tanulási forrás - Könyvtár - Fájlbejegyzés - - %1$d elem - %1$d elem - - - további %1$d elem - további %1$d elem - - Emlékeztetők - Kapcsolódás pénztárcához - Téma - Lila - Kék - Zöld - Narancssárga - Piros - Rózsaszín - Betűtípus - Az alkalmazásban használt betűtípus - Rendszer alapértelmezése - Sans Serif - Serif - Monospace - Rendszer - Sans - Serif - Mono - Betűméret - A szövegméret méretezése az alkalmazásban - Kicsi - Normál - Nagy - Hatalmas - Képelőnézet - Videólejátszás - Videók automatikus lejátszása - Webcím-előnézet - Magával ragadó görgetés - Navigációs sáv elrejtése görgetéskor - Felhasználói felület módja - Bejegyzés stílusának kiválasztása - Profilgaléria stílusa - Válassza ki a galéria stílusát - Spamelők - Némítva. Koppintson a némitás megszüntetéséhez - Hang bekapcsolva. Koppintson a némításhoz - Visszatekerés %d másodperccel - Előretekerés %d másodperccel - Válasszon egy helyet a térképen - Helyszín módosítása a térképen - Helyszín-alapú bejegyzés - Csak a helyszín követői láthatják. Az általános követők nem fogják látni. - - %1$d szám - %1$d szám - - - +%1$d szám - +%1$d szám - - Egy borítókép feltöltése - Válasszon ki egy négyzet alakú képet, amely a szám borítójaként fog szolgálni. - Egy hangfájl feltöltése - Válasszon ki egy MP3-, WAV- vagy FLAC-fájlt. A „Mentés” gombra koppintva a fájl feltöltődik a médiakiszolgálóra. - Borító és hangfájl feltöltése, majd közzététel. Ez akkor is folytatódik, ha elhagyja a képernyőt. - Lejátszási lista szerkesztése - Egy borítókép feltöltése - Válasszon egy négyzet alakú képet a lejátszási lista borítóképének. - Borítókép feltöltése és közzététele. Ez a folyamat akkor is folytatódik, ha elhagyja ezt a képernyőt. Nyilvános Csoport - Privát - Titkosított csoportok - Átjátszó-tudatos - Privát üzenet - Közvetlen üzenetek, végpontok közötti titkosítással - 1:1-5 szoba - Személyes és kiscsoportos beszélgetések olyan emberekkel, akiket ismer. - Új üzenet - 1-1 fős és kiscsoportos - Végpontok közötti titkosítás - Később nem adhatók hozzá felhasználók - Marmot csoport - Nagyobb privát csoportok - Eszközhöz kötött - Nagyobb privát csoportok, amelyek kinőtték a kiscsoportos közvetlen üzeneteket. - Csoport létrehozása - Túlmutat a kis közvetlen üzeneteken - Titkosított csoportos csevegés - Eszközhöz kötött - nem fog megjelenni, ha máshol jelentkezik be - Concord közösség - Csatornákra bontott közösségek - Munkaterületek - Hatalmas közösségek, csatornákba vagy munkafolyamatokba szervezve. - Közösség létrehozása - Hatalmas közösségekre skálázva - Csatornára / munkafolyamatra osztott - Több beállítást igényel - Nyilvános csevegés - Nyilvános üzenetek egy átjátszón - Moderálatlan - Nyitott, nyilvános szobák, ahová bárki küldhet üzenetet. - Nyilvános csevegés létrehozása - Bárki csatlakozhat - Egyszerű és felfedezhető - Csak nyilvános - Nincs moderáció - Átjátszó-csoport - Átjátszó által futtatott, nyilvános vagy privát - Moderált - Az őket kiszolgáló átjátszó által moderált csoportok. - Átjátszó-csoportok böngészése - Átjátszó által moderált - Nyilvános vagy privát - Ahhoz az egy átjátszóhoz kötött - Eltűnő csevegés - Bárki, aki éppen online van - Most élő - Pillanatnyi csevegés bárkivel, aki éppen online van. - Csevegés indítása - Beszélgetés azokkal, akik most online vannak - Semmi sem mentődik el - Nincs előzmény - Átjátszóra korlátozott - Átjátszócsoportok - Átjátszócsoportok - Üzenetek - Privát üzenetek - Végpontok között titkosított, becsomagolt közvetlen üzenetek (NIP-17). - Régi típusú üzenetek - Régebbi, kevésbé privát titkosított közvetlen üzenetek (NIP-04). - Nyilvános csatornák - Nyílt, nyilvános csevegőszobák, amelyeket bárki olvashat és csatlakozhat hozzájuk (NIP-28). - Átjátszó csoportok - Átjátszó által kezelt csoportos csevegések taglistákkal és moderációval (NIP-29). - Titkosított csoportok - MLS végpontok között titkosított csoportos csevegések (Marmot). - Concord közösségek - Titkosított közösségek több csatornával (Concord). - Helyalapú csevegések - Nyilvános, geohash-alapú csevegés egy helyszínhez (Geolocation). - Ideiglenes csevegések - Könnyűsúlyú, átjátszóra korlátozott szobák, amelyek nem őrzik meg az előzményeket. - Csoport létrehozása - Új csatorna - Új fórum - Privát csatorna - Rejtve van a csatornalistából és csak meghívásos. Kikapcsolva bárki ezen az átjátszón megtalálhatja és csatlakozhat hozzá. Fórumcsatorna Szálazott bejegyzések a csevegés idővonal helyett. Ez később nem módosítható. Csoport neve @@ -1371,33 +149,19 @@ Létrehozás Meghívó létrehozása… Meghívókód másolva - Csoport szerkesztése Csoport neve Téma (nem kötelező) Privát (csak a tagok olvashatják) Csak meghívóval Mentés - Csoport törlése - Törli a(z) „%1$s” csoportot? Ez mindenki számára eltávolítja a csoportot és annak előzményeit, ez a művelet nem vonható vissza. - Csatorna törlése - Törli a(z) „%1$s” csatornát? Ez mindenki számára eltávolítja a csatornát és annak üzeneteit, ez a művelet nem vonható vissza. - Csatorna archiválása - Csatorna visszaállítása az archívumból Helyszín módosítása - Privát - Csak a tagok olvashatják az üzeneteket. Csoportok keresése az átjátszók között… Még nem találhatók csoportok ehhez a szűrőhöz. - Cím Írjon valamit… Közzététel Hozzáadva ide: %1$s - - %1$d tag - %1$d tag - %1$d üzenet %1$d üzenet @@ -1410,32 +174,7 @@ %1$d követett személy %1$d Ön által követett személy - - %1$d csoport - %1$d csoport - Privát - Tárgy - Nem sikerült feltölteni - Először adja meg az üzenet címzettjét - Nem található pénztárca - Az Amethyst nem talált olyan pénztárca-alkalmazást, amely támogatja a Nostr Wallet Connect (NWC) szolgáltatást. -\n\nAmit tehet: -\n\t1. NWC-támogatás ellenőrzése: Ellenőrizze, hogy a kívánt pénztárca-alkalmazás kompatibilis-e a Nostr Wallet Connect szolgáltatással. -\n\t2. Kapcsolat létrehozása: Nyissa meg a pénztárcaalkalmazást, és hozzon létre egy új NWC-kapcsolatot. -\n\t3. Kapcsolódás az Amethysthez: A pénztárcája általában három lehetőséget kínál: -\n\t\t3.1 Automatikus kapcsolódás: Egy gomb az Amethyst automatikus megnyitásához és kapcsolódáshoz. Koppintson erre a gombra, nyissa meg az Amethyst alkalmazást, és mentse el az új képernyőn. -\n\t\t3.2 Kézi kapcsolódás: Egy kapcsolódási cím, amelyet kimásolhat, és a képernyőn található beillesztés gombra koppintva közvetlenül beírhatja. -\n\t\t3.3 QR-kód: A pénztárca létrehoz egy QR-kódot, amelyet a képernyőn található QR-kód gombról olvashat be. - - Sötét, világos vagy a rendszer által használt téma - Képek és GIF-ek automatikus betöltése - Videók és GIF-ek automatikus betöltése - Videók automatikus lejátszása, amint megjelennek a kijelzőn - Webcím-előnézetek megjelenítése - Másolás a vágólapra - Vágólapra másolva - Megosztás vagy mentés Küldés közvetlen üzenetként Új kiemelés Új kép @@ -1444,266 +183,24 @@ QR-kód beolvasása QR-kód beolvasása QR-kód beolvasása - Új kiemelés Kiemelt szöveg - Adja hozzá a gondolatait… - Média hozzáadva - Média hozzáadva az Ön profil-galériájába - Nem sikerült zapet küldeni - Hiányzó lightning-beállítás - A(z) %1$s nevű felhasználó nem rendelkezik a satoshik fogadására beállított lightning-címmel - Hiba az aláíró-alkalmazás megnyitásakor - Az aláíró alkalmazás nem található. Ellenőrizze, hogy az alkalmazás nincs-e eltávolítva - Nem lehet lejátszani ezt a videót - Az eszköz nem támogatja a kódolást vagy a formátumot (%1$s). Próbálja meg a böngészőben megnyitni. - Megnyitás böngészőben - Aláírási kérés elutasítva - Győződjön meg arról, hogy ezt a tranzakciót az aláíró-alkalmazás hitelesítette-e - Nem található pénztárca a lighning-számla kifizetéséhez (Hiba: %1$s). A zapek használatához telepítsen egy lightning-pénztárcát - Nem található pénztárca a Lighning-számla kifizetéséhez. A Zap-ek használatához telepítsen egy Lightning-pénztárcát - Nem lehet megnyitni a Blossom-hivatkozásokat - Nem található Blossom-alkalmazás. Telepítsen egy helyi Blossom-alkalmazást a fájl megtekintéséhez - Rejtett szavak - Némított szálak - Nincsenek némított szálak - Profilkép - Profilképek megjelenítése - Nem sikerült kifizetni a számlát - Nem sikerült a pénzkivétel a pénztárcából - Nem sikerült a Cashut beváltani - A pénzverde a következő hibaüzenetet küldte:%1$s - Nem biztonságos Cashu pénzverde-cím - Az Amethyst nem lépett kapcsolatba a token pénzverdéjével. %1$s - Cashu megkapva - %1$s satoshi érkezett a pénztárcájába. (Költség: %2$s satoshi) - A rendszeren nem található kompatibilis Cashu pénztárca - Nem sikerült a számlát a kedvezményezett kiszolgálóiról lekérni - A Wallet Connect szolgáltatója a következő hibával tért vissza: %1$s - A Wallet Connect-szolgáltató olyan választ küldött, amelyet az Amethyst nem tudott értelmezni. - Nem sikerült az LN-webcímet a(z) „%1$s” Lightning-címről összeállítani. Ellenőrizze a felhasználó beállításait - Nem sikerült lekérni a számlát a következőtől: %1$s: %2$s - Hiba történt a(z) %1$s JSON elemzésekor. Ellenőrizze a felhasználó Lightning-beállítását - Nem található a visszahívási webcím a(z) %1$s válaszából - Helytelen (%1$s satoshi) számlaösszeg a következőtől: %2$s. A következőnek kellett volna lennie: %3$s - Nem sikerült a zapösszeg elküldése előtt lightning-számlát készíteni. A címzett lightning-pénztárcája a következő hibát küldte: %1$s - Csak olvasható felhasználó - Nincs reakcióbeállítás - Értesítések - Kézbesítés - Alkalmazáson belüli megjelenítés - Kategóriák - Üzenet tőle: %1$s - Átjátszó blokkolása - Tisztelt %1$s! Ez még aktuális? - Ruházat - Tartozékok - Elektronika - Bútor - Gyűjtemények - Könyvek - Háziállatok - Sport - Egészség / Fitnesz - Művészet - Kézműves - Háztartás - Irodaszer - Étel - Vegyes - Egyéb - Nem sikerült feltölteni a médiát - Nem sikerült megnyitni a tömörített fájlt - Feltöltési hiba: %1$s - A kiszolgáló a feltöltés után nem szolgáltatott webcímet - Nem sikerült letölteni a kiszolgálóról az oda feltöltött médiát - Nem lehetett ellenőrizni a letöltött fájlt a feltöltés után: %1$s - Nem sikerült feltölteni a következőre: %1$s: %2$s - Nem sikerült törölni: %1$s - Média túl nagy a NIP-95 számára - Fájlok titkosítása - Az adatok védelme érdekében titkosítsa a fájlokat a feltöltés előtt. Egyes kiszolgálók az ingyenes fiókok esetében nem biztos, hogy elfogadják a titkosított fájlokat. - Titkosított feltöltés sikertelen - Sok kiszolgáló nem fogad el titkosított fájlokat ingyenes fiókok esetén. Próbálja újra titkosítás nélkül. - H.265/HEVC-kodek használata - Jobb minőség kisebb fájlméret mellett, de nem minden eszköz támogatja a H.265 lejátszást. - GIF átalakítása MP4 formátumra - Animált GIF-fájlokat MP4-videókká alakít át, így kisebb fájlméretet és jobb lejátszási kompatibilitást biztosít. - Privát metaadatok törlése - Kísérletek a támogatott médiafájlokból a privát metaadatok eltávolítására a feltöltés előtt - A metaadatok nem távolíthatók el - Nem sikerült eltávolítani a médiafájlokból a privát metaadatokat. Feltöltés megszakítva. - Feltöltés megszakítva - Nem sikerült eltávolítani az AVIF-fájl metaadatait: %1$s - Főoldal - Felfedezés - Üzenetek - Értesítések - Média - Naptárak - Naptárlisták - Sakk - Pénztárca - Nem sikerült betölteni a tranzakciót - Nem sikerült betölteni további tranzakciókat - Nem sikerült betölteni az egyenleget - Nem sikerült létrehozni a számlát - Az Ön pénztárcája nem állított ki egy számlát - Időtúllépés tárcakéréskor - Nem sikerült elérni a pénztárcát: %1$s - A pénztárca olyasmivel válaszolt, amit Amethyst nem ismer fel (%1$s) - Az Amethyst nem tudta visszafejteni a pénztárca válaszát, lehet, hogy a pénztárca másik kulcsot használ - Cashu pénztárca (NIP-60) Nutzap kulcs (speciális) Egy külön privát kulcs, amelyet kizárólag NIP-61 nutzapok fogadására használ a rendszer. Nem azonos a Nostr azonosító kulccsal. Új kulcs előállítása P2PK privát kulcs (hex) - Pénzverdék szerkesztése Módosítások mentése - - +%1$d további - +%1$d további - - - %1$d másik felhasználó ajánlotta - %1$d másik felhasználó ajánlotta - - Népszerű pénzverdék - Egyező pénzverdék - Fogadott - Elküldött - Törlési kérés közzététele a(z) %1$s pénzverdéről szóló kind:38000 ajánlásához. Azok az átjátszók, amelyek tiszteletben tartják a NIP-09-et, el fogják távolítani. - %1$s visszaállíttva %2$s bizonyítékon keresztül. - Kifizetsz %1$s satot + legfeljebb %2$s sat díjat? - Nem sikerült a nutzap - Nincs megadva a címzett nyilvános kulcsa a bejegyzésen - A nutzappok nyilvánosak, és felfednék ezt a privát bejegyzést. Használjon helyette Lightning zappet. - Az eseményhivatkozás nem hozható létre - Várakozás a számla kifizetésére… - Pénzverde ellenőrzése… - Lassú - Normál - Gyors - ~1 ó - ~30 p - ~10 p - %1$s · %2$s sat/vB · %3$s - - %1$s sat küldése, %2$d felé osztva - %1$s sat küldése, %2$d felé osztva - - - Ennek a bejegyzésnek a(z) %1$d-felé osztott zapjének használata - Ennek a bejegyzésnek a(z) %1$d-felé osztott zap-jének használata - - - Felosztás %1$d címzett között - Felosztás %1$d címzett között - - - %1$d címzett kihagyása, akik csak Lightning-címmel rendelkeznek - a láncon belüli fizetéshez egy Nostr publikus kulcsra van szükség a cím származtatásához. - %1$d címzett kihagyása, akik csak Lightning-címmel rendelkeznek - a láncon belüli fizetéshez egy Nostr publikus kulcsra van szükség a cím származtatásához. - - egyenleg betöltése - tranzakció összeállítása - aláírás - közvetítés - igazolás közzététele - A Bitcoin lánc háttérprogram nincs beállítva - Nem sikerült betölteni a Bitcoin egyenleget - Nem sikerült összeállítani a tranzakciót - Egy címzett részesedése a dust alatt van - Nem sikerült aláírni a tranzakciót - Nem sikerült közvetíteni a tranzakciót - Kifizetés elküldve, de a zapnyugtát nem sikerült közzétenni - - Fizetés elküldve (%1$d/%2$d igazolás közzétéve), de a következő igazolást nem sikerült közzétenni - Fizetés elküldve (%1$d/%2$dnyugta közzétéve), de a következő nyugtát nem sikerült közzétenni - - Követettek importálása - Új termék - Új cikk - Új naptáresemény - Naptáresemény szerkesztése - Új naptár - Naptár szerkesztése - Hírfolyam - Hónap - Hét - Nap - - %1$s, %2$d esemény - %1$s, %2$d esemény - - Most zajlik - %1$s · véget ér: %2$s - Naptár-esemény megosztása - naptár_emlékeztetők - Naptár-emlékeztetők - Értesítés, ha egy esemény, amin Ön részt vesz, hamarosan elkezdődik. - Naptáresemény - - %1$d perc múlva kezdődik - %1$d perc múlva kezdődik - - Nem sikerült feltölteni a képet - A kiválasztott képet nem sikerült feltölteni. Próbálja újra vagy adja meg a kép webcímét. - Naptár-emlékeztetők - Emlékeztetők küldés - Értesítés, ha egy esemény, amin Ön részt vesz, hamarosan elkezdődik. - - %1$d perc - %1$d perc - - Megnyitás a térképekben - Hivatkozás megnyitása - A bejegyzésre adott összes reakció kibontása - A bejegyzésre adott összes reakció összecsukása - Zap - Alsó navigációs sáv A kitűzött elemeket húzással rendezheti át. Nyissa meg az alatta lévő kategóriát, és kapcsolja be vagy ki az elemet annak hozzáadásához vagy eltávolításához. Nyissa meg a „Böngésző” vagy egy csevegéstípust, hogy kedvencet vagy egy adott csoportot kitűzzün. Ha nincs elem, az alsó sáv el van rejtve. Újrarendezés - Még nincsenek kedvencek. Jelöljön meg csillaggal egy alkalmazást a böngészőben, hogy hozzáadja ide. - Még nincsenek csatlakozott csoportok. - Hozzáadás - Hozzáadva - Fő - Csevegések és csoportok - Ön - Hírfolyamok - Alkalmazások és web - Egyéb - Oldalsó menü - - %1$d rejtett - %1$d rejtett - - Látható - Rejtett - Mindig bekapcsolva Válassza ki, mely lapok jelenjenek meg a kezdőlapon. Ha csak egy lap aktív, akkor a lapsáv rejtett. - Minden - Profil felhasználói felülete Válassza ki, hogy mely szekciók és hírfolyamok jelenjenek meg a felhasználói profil képernyőin. Alapértelmezés szerint minden beállítás engedélyezve van. - Profilkitűzők - Ajánlott alkalmazások - Beérkezett zapek hírfolyama - Követők hírfolyama - Bitcoin (láncon belüli) pénztárca - Reakciósor - Videólejátszó gombjai - Hangvizualizáló - Szerkesztés - Szerkesztés - Üzenet szerkesztése - %1$s és %2$s írnak… Buzz-munkaterületek Ahol emberek és ügynökök együtt építenek Kilépés a munkaterületről @@ -1719,65 +216,6 @@ Hozzáadás Nem találhatók csatornák Úgy tűnik, még nem tagja egyetlen csatornának sem ezen az átjátszón. Először fogadja el a munkaterület-meghívót a böngészőben, majd próbálja újra. - Csatorna rögzítése - Csatorna rögzítésének megszüntetése - - %1$d rejtett beszélgetés - %1$d rejtett beszélgetés - - - %1$d további beszélgetés megtekintése - Mind a %1$d beszélgetés megtekintése - - Várakozás egy átjátszóra az üzenet elfogadásához - Nincs átjátszó-információ ehhez az üzenethez - Legalább egy átjátszó elfogadta - Kézbesítve az összes címzett átjátszójára - Lejárati dátum - A szerző arra kérte az átjátszókat, hogy %1$s után töröljék ezt a jegyzetet. A lejárata után el fog tűnni a hírfolyamokból. - Érvénytelen cím - Az Amethyst kapott egy URI-t a megnyitáshoz, de az érvénytelen volt: %1$s - Bejövő átjátszók a privát üzenetekhez - Keresési átjátszók - Jó választási lehetőségek:\n%1$s - Átjátszók a kimenő üzenetkhez - Átjátszók a bejövő üzenetkhez - Átjátszóbeállítások - Nyilvános kimenő és saját átjátszók - A felhasználó a bejegyzéseit ezeken az átjátszókon teszi közzé - Ez az átjátszótípus tárolja az összes tartalmat. Az Amethyst ide küldi az Ön bejegyzéseit, és mások ezeket az átjátszókat fogják használni, hogy megtalálják az Ön tartalmát. Adjon hozzá 1–3 átjátszót. Ezek lehetnek személyes-, fizetett- vagy nyilvános átjátszók. - Nyilvános bejövő átjátszók - A felhasználó ezeken az átjátszókon keresztül fogadja az értesítéseket - Ez az átjátszótípus fogadja az összes választ, hozzászólást, kedvelést és zapet az Ön bejegyzéseire. Ezek lehetnek fizetős vagy ingyenes átjátszók. Az átjátszó üzemeltetője által beállított korlátok korlátozhatják a jó és a rossz értesítések számát. Ha például a hozzászólásokban kéretlen üzenet-támadások érik, a fizetős átjátszók kiszűrhetik a kéretlen tartalmakat. Vegyen fel 1–3 átjátszót. - Bejövő közvetlen üzenet-átjátszók - A felhasználó ezeken az átjátszókon keresztül fogadja a közvetlen üzeneteket - Adjon hozzá 1–3 átjátszót, hogy privát postafiókként szolgáljon. Mások ezeket az átjátszókat használják, hogy Önnek privát üzeneteket küldjenek. A bejövő privát üzenetek átjátszóinak bárkitől el kell fogadniuk minden üzenetet, de azok letöltését csak Ön engedélyezheti. Jó választási lehetőségek:\n - inbox.nostr.wine (fizetős)\n - auth.nostr1.com (ingyenes)\n - you.nostr1.com (személyes átjátszók - fizetős) - Kulcscsomagok - Kulcscsomag-átjátszók - Azok az átjátszók, ahol az Ön MLS-kulcscsomagjai közzétételre kerülnek (MIP-00). Más felhasználók ezeket a kulcscsomagokat lekérve tudják Önt meghívni a Marmot csoportos beszélgetésekbe. Adjon meg 1-3 olyan átjátszót, amely fogadja az Ön kulcscsomag-eseményeit, és lehetővé teszi azok nyilvános olvasását. - Privát saját átjátszók - Adjon hozzá 1–3 átjátszót, hogy olyan eseményeket tároljanak, amelyeket senki más nem láthat, például a piszkozatait és/vagy az alkalmazásbeállításait. Ideális esetben ezek az átjátszók vagy helyi szintűek, vagy hitelesítést igényelnek az egyes felhasználói tartalmak letöltése előtt. - Kapcsolódott átjátszók - Jelenlegi használatban lévő átjátszók listája - Keresési átjátszók - A tartalom vagy felhasználók keresésekor használandó átjátszók listája. A címkézés és a keresés nem fog működni, ha nem áll rendelkezésre semmilyen beállítás. Győződjön meg arról, hogy alkalmazzák a NIP-50-et. - Helyi átjátszók - A készüléken futó átjátszók listája. - Profilok továbbítása a helyi átjátszónak - Minden fogadott profil (0 típus) esemény elküldése a helyi átjátszónak - Megbízható átjátszók - Az átjátszóknak, amelyekben megbízik, nincs szükségük Tor kapcsolatra a következőhöz: - Kedvenc hírfolyam-átjátszók - Átjátszók, amelyeket gyakran felkeres a globális hírfolyamuk megtekintéséhez - Proxyzott átjátszók - Összesítő átjátszók, amelyeket az alkalmazásnak használnia kell a hírfolyamok letöltéséhez, például filter.nostr.wine. Ez helyettesíti a kimeneti modellt, és az alkalmazás csak a listákban szereplő átjátszókhoz fog csatlakozni. - Műsorszóró átjátszók - Olyan átjátszók, amelyek arra specializálódtak, hogy továbbítsák a bejegyzéseket az összes többi átjátszónak, mint például a sendit.nosflare.com. Az Amethyst hozzáadja ezt az átjátszót az összes új eseményhez, amelyet Ön készített - Indexelő átjátszók - Olyan átjátszók, amelyek mindenki metaadatainak és átjátszólistáinak tárolására specializálódtak, mint például a purplepag.es. Az Amethyst ezeket az átjátszókat használja arra, hogy megtalálja azokat a felhasználókat, akik nem szerepelnek az Ön listáin. - Letiltott átjátszók - Az Amethyst soha nem fog csatlakozni ezekhez az átjátszókhoz - Átjátszóbeállítások exportálása Weboldal: Áttekintés Karbantartó: @@ -1786,614 +224,44 @@ Karbantartók Témák Olvassel - - %1$d elem - %1$d elem - Hibajegy lezárása Újranyitás - Git-tárolók - Kiemelések - Tárolók szűrése - Szűrő bezárása - Időbélyeg-igazolás - Bizonyíték van arra, hogy ezt a bejegyzést valamikor %1$s előtt írták alá. A bizonyítékot ezen a napon és időpontban bélyegezték a Bitcoin blokkláncába. - A bejegyzéshez tartozó időbélyeg-igazoláskérése megtörtént, és arra vár, hogy rögzítsék a Bitcoin blokkláncban. Ez általában néhány órán belül befejeződik. - Bejegyzés szerkesztése - A piszkozatokra nem lehet válaszolni - A piszkozatokat nem lehet idézni - A piszkozatokra nem lehet reagálni - A piszkozatokra nem lehet zapet küldeni - Piszkozat - 400 – hibás kérés: A kérés nem végrehajtható, mert rossz szintaxisú, túl hosszú stb. - 401 – nem azonosított: A kliensnek nincs jogosultsága megtekinteni az oldalt. - 402 – fizetés szükséges: Fizetnie kell a kiszolgálónak a kérés teljesítéséhez - 403 – nincs jogosultság: A kliensnek nincs jogosultsága megtekinteni az oldalt. - 404 – nem található: A kért erőforrás nem létezik. - 405 – a metódus nem engedélyezett: A használt HTTP-metódus nem engedélyezett, pl egy PUT kérés egy csak olvasható erőforráson. - 406 – nem elfogadható: Jelzi, hogy a szerver nem tud választ előállítani az Accept, az Accept-Charset, az Accept-Encoding vagy az Accept-Language fejlécben megadott tulajdonságok miatt. - 407 – proxyazonosítás szükséges: A kliensnek azonosítania kell magát a proxykiszolgálón. - 408 – időtúllépés: A kiszolgáló túl sokáig várt a kérésre, így a kapcsolat lezárult. - 409 – konfliktus: Jelzi, hogy az erőforrás nem elérhető, mert ütközne egy másik folyamattal, pl. egy dokumentum egyidejű szerkesztése. - 410 – véglegesen eltűnt: A kért erőforrás nem létezik, és ez így is fog maradni a jövőben is. - 411 – probléma a mérettel: A kérés mérete nem megfelelő. - 412 – a kliens nem megfelelő: A kliens nem felel meg az egyik feltételnek. - 413 – hosszú kérés: A kérés nagyobb a kiszolgáló által maximálisan feldolgozhatónál. - 414 – hosszú URI: Az URI hosszúsága nagyobb a megengedettnél. - 415 – nem támogatott médiatípus: A kérés olyan médiaformátumot használ, amelyet a kiszolgáló nem támogat - 416 – a fájlpozíció nem megfelelő: A kliens egy darabját kérte a fájlnak, de a kiszolgáló ezt nem tudja kézbesíteni. Például a kliens egy olyan részét kérte a fájlnak, ami a fájl vége után található. - 417 – a kiszolgáló nem megfelelő: A kiszolgáló nem felel meg azoknak a követelményeknek, amit a kliens az Expect fejlécben meghatározott. - 426 – frissítés szükséges: A kiszolgáló felszólítja a klienst, hogy váltson protokollt. (Pl. hogy biztonságos legyen a kapcsolat.) - 500 – belső kiszolgálóhiba: Egy általános hibaüzenet kiszolgálóhibák jelzésére. - 501 – nincs megvalósítva: A kiszolgáló nem ismerte fel a HTTP-metódust, vagy nem képes teljesíteni a kérést, de a jövőben ez a helyzet meg fog változni. - 502 – rossz átjáró: Jelzi, hogy a kiszolgáló egy hibás HTTP-választ kapott egy másik kiszolgálótól. - 503 – a szolgáltatás nem elérhető: A kiszolgáló nem képes kezelni a kérést. Általában ez a helyzet csak ideiglenes. - 504 – átjáró időtúllépés: Proxyk használják. Jelzi, hogy a kiszolgáló nem kapott választ időben az eredeti kiszolgálótól. - 505 – nem támogatott HTTP-verzió: A kiszolgáló nem támogatja a kliens által használt HTTP-verziót. - 506 – körkörös hivatkozás: A kiszolgálót rosszul konfigurálták. A kért erőforrás körkörös hivatkozást eredményez. - 507 – kevés tárhely (WebDAV): A kiszolgáló nem képes a kérést tárolni, mert kevés a tárhely. - 508 – végtelen ismétlés (WebDAV): A kiszolgáló végtelen ciklusban ismétlődő kéréseket érzékelt a feldolgozáskor. - 511 – hálózati azonosítás: A hálózat használata előtt azonosítani kell magunkat, pl. egy Wi-Fi-hálózat használata előtt el kell fogadni a használati feltételeket. Blossom-kiszolgálók Annyi kiszolgálót adhat hozzá, amennyit csak akar. Később a kép feltöltésekor kiválaszthatja, melyiket szeretné használni - Egy NIP-96-kiszolgáló hozzáadása - Egy Blossom-kiszolgáló hozzáadása Letöltés - Nem sikerült megnyitni a fájlt - A fájl megnyitásához és letöltéséhez nincsenek torrent-alkalmazások telepítve. - Az esemény nem tartalmaz elegendő információt a mágneshivatkozás létrehozásához - Saját listák - Hírfolyamok - Kulcsszavak - Érdeklődési csomagok - Helyszínek - Közösségek - Listák - Hírfolyam-algoritmusok - Kedvenc hírfolyam-algoritmusok - Átjátszók - Kedvenc hírfolyam-algoritmusok - Privát üzenet - Nyílvános üzenet - Nem lehetett megosztani a képet, próbálja meg újra később… - Nem sikerült megosztani a videót, próbálja meg újra később… - Videó letöltése… - Innentől NE fordítsa le - Az itt látható nyelvek nem lesznek lefordítva. Az eltávolításához és az újbóli fordításhoz válasszon ki egy nyelvet. - Fordítás erre: - Válassza ki a nyelvet, amelyre a tartalmat le szeretné fordítani. - Nyelvi megjelenítési beállítások - Minden egyes a fordításhoz szükséges nyelvpár esetében válassza ki, melyik nyelvet szeretné elsőként megjeleníteni. - Szüneteltetés - Lejátszás - Alkalmazás erőforrás-használata - akkumulátor adathasználati energiafogyasztása, hálózatdiagnosztikai napló Ma Elmúlt 7 nap - Mobiladat-forgalom ma - Wi-Fi-adatforgalom ma - Átjátszóidő ma - Alkalmazásban töltött idő ma - Napi adatforgalom-mennyiség - Mobiladat-forgalom (MB) - Wi-Fi-adatforgalom (MB) - Aktivitás (7 nap) Mobiladat-forgalom (háttérben) Mobiladat-forgalom (alkalmazásban) Wi-Fi-adatforgalom - Átjátszó-kapcsolódási idő - \u2026 a háttérben, mobiladat-forgalmon - Értesítések feldolgozása (processzor ébren tartása) - Lefutott háttérfeladatok - Átjátszó-újrakapcsolódások (sikertelen) - Webes kérések - Rádióébresztés a letöltésekhez (becsült) - Aktív átviteli idő - Média-lejátszási idő - Ellenőrzött aláírások - Felhasznált processzoridő Alkalmazásban töltött idő - Alkalmazásfolyamat indulásai - Visszafejtett üzenetek - Távoli aláírások - Munkabizonyítás bányászata - Tor üzemidő - Hívásokban töltött idő - Hangszobákban töltött idő - Helyadat-figyelés - Felhasznált akkumulátor (alkalmazásban / háttérben) - Háttérben futó értesítési szolgáltatás - Futási idő - - %1$d indítás - %1$d indítás - - Fenntartott átjátszó-kapcsolatok bezárt állapotban - Időközben felhasznált akkumulátor (teljes eszköz) - Akkumulátorhasználat / óra az alkalmazásban - Adatforgalom / óra az alkalmazásban - Átl. átjátszó-kapcsolatok - Mobiladat-forgalom funkciónként (7 nap) - Képernyőnkénti idő (7 nap) - Beépített Tor - Adatforgalom funkciónként (7 nap) - Átjátszó-szinkronizálás - Képek - Videó és hang - Feltöltések - Pénztárca és zapek - Címellenőrzés - Hivatkozás-előnézetek - Push-regisztráció - Egyéb - Jelenlegi memóriahasználat - Alkalmazásmemória (heap) - Natív memória - Képgyorsítótár (RAM) - Képgyorsítótár (lemez) - Jegyzetek a memóriában - Profilok a memóriában - Címezhető események a memóriában - Csevegőszoba-listák a memóriában - Eszköz memóriájának osztálya - Megosztás a fejlesztőkkel - Megosztás - Az Amethyst a közelmúltban a vártnál többet fogyasztott: %1$s. Szeretne használati jelentést küldeni a fejlesztőknek egy titkosított közvetlen üzenetben? A küldés előtt megtekintheti a teljes jelentést. - %1$s mobiladat-forgalom a háttérben egyetlen nap alatt - %1$s átjátszó-kapcsolattal a háttérben futva, mobiladat-forgalmon egyetlen nap alatt - az eszköz processzorát-t %1$s ideig tartotta ébren az értesítések feldolgozása egyetlen nap alatt - - az alkalmazásfolyamat %1$d alkalommal indult újra egyetlen nap alatt - az alkalmazásfolyamat %1$d alkalommal indult újra egyetlen nap alatt - - - az alkalmazás %1$d alkalommal kapcsolódott újra az átjátszókhoz egyetlen nap alatt - az alkalmazás %1$d alkalommal kapcsolódott újra az átjátszókhoz egyetlen nap alatt - - Ez az üzenet %1$s után eltűnik - Követési lista metaadatai - A követési listák metaadatai a Nostr-on bárki számára láthatók. Csak a privát tagok adatai vannak titkosítva. - Követési csomag metaadatai - A követési csomag metaadatai a Nostr-on bárki számára láthatók, és gyakran megjelennek számos weboldalon, új felhasználók számára készült kezdőcsomagként. - Követési csomag szerkesztése - Kibontás - Újrapróbálkozás - Reakció - Hangos bejegyzés - Hangos válasz - - · %1$d kiválasztva - · %1$d kiválasztva - - %1$d válasz betöltve az %2$d közül, %3$d átjátszóról. - %1$d válasz betöltve a körülbelül %2$d közül, %3$d átjátszóról. - - %1$d szavazó - %1$d szavazó - - - %1$d szavazó - %1$d szavazó - - - %1$d szavazat a szavazás lezárása után érkezett, így ki lett zárva. - %1$d szavazat a szavazás lezárása után érkezett, így ki lettek zárva. - - - %1$d szavazat a szavazás közzététele előtti dátummal rendelkezik, így ki lett zárva. - %1$d szavazat a szavazás közzététele előtti dátummal rendelkezik, így ki lettek zárva. - - - %1$d érvénytelen válaszlehetőséget választott, így ki lett zárva. - %1$d érvénytelen válaszlehetőséget választott, így ki lett zárva. - - - %1$d szavazó rejtve van a némítási listán. - %1$d szavazó rejtve van a némítási listán. - - Kimenő átjátszók - Alkalmazások - Ajánlott alkalmazások - Felhasználói beállítások - Audio-fejléc - Hangsáv - Zeneszám - Zenei lejátszási lista - Hangműsor-rész - Hangműsor - Saját készítésű hangműsorok - Kedvenc hangműsorok - Kitűződíjak - Kitűzők meghatározása - Elfogadott kitűzőlista - Profilkitűzők - Letiltott átjátszók - Blossom kiszolgálók - Hangszoba-kiszolgálók - Blossom-hitelesítés - Közvetítési átjátszók - Könyvjelzőlista - Régi könyvjelzőlista - Napi időpont - Naptár - Találkozó - Időpont-visszaigazolás - Sakkjátékok - Sakk-hitelesítés - Kedvenc átjátszók - Sakk-kihívások - Sakkjáték elfogadása - Sakklépés - Sakkjáték vége - Döntetlen felajánlása - Csatorna alapadatai - Üzenet elrejtése a csatornában - Csatornalista - Csatornaüzenet - Csatorna metaadatai - Felhasználó némítása a csatornában - Közvetlen üzenetfájl - Közvetlen üzenet - Közvetlen üzenetátjátszók - Apróhirdetések - Megjegyzések - Közösség alapadatai - Közösségi lista - Közösségi bejegyzés - Követési lista - Törlések - Piszkozatok - Emodzsicsomagok - Emodzsicsomag-lista - Eltűnő csevegés - Eltűnő csevegőszobák - Fájl-fejléc - Profilgaléria - Fájlkiszolgálók - BLOB-adatok - BLOB-fejlécek - Egészségügyi adatok - Követési csomagok - Megosztások (16) - Területi követések - Ajándékcsomagolások - Git hibajegy - Git javítófolt - Git tároló - Git válasz - Beolvasztási kérés - Beolvasztási kérés frissítése - Git-állapot: Nyitott - Git-állapot: Elfogadva - Git-állapot: Lezárva - Git-állapot: Piszkozat - Zapcélok - Kulcsszókövetések - Kiemelések - Http-hitelesítés - Indexelő átjátszók listája - Kalandprológus - Kalandjelenet - Kalandos olvasmány - Címkézett könyvjelzők - Élő csevegések - Élő közvetítések - Zap-ek - NWC-kérések - NWC-válasz - Privát zapek - Zap-kérés - Blogok - Tárgyalószoba - Szobajelenlét - Megbeszélési helyszín - Profil - Lista némítása - NNS - NIP - Nostr-kapcsolódás - DVM-állapot - DVM-tartalomkérés - DVM-tartalomválasz - DVM-felhasználói kérés - DVM-felhasználói válasz - OTS - fizetés kedvezményezettje - Személylisták - Képek - Edzések - Rögzítettek - Zapszavazás - Szavazás - Szavazásválasz - NIP-04 közvetlen üzenetek - Privát átjátszók - Proxyzott átjátszók - Nyílvános üzenet - Reakciók - Névjegykártya - Átjátszóhitelesítés - Átjátszófelfedezés - Átjátszó-figyelő hirdetmény - Átjátszókészlet - Jelentések - Megosztások - Felhasználói törlés - Pecsétek - Keresési átjátszók - Felhasználói állapot - Bejegyzések - Szerkesztések - torentek - Torrent-megjegyzések - Megbízható átjátszók - Megbízható szolgáltatók - Videó (válasz) - Rövidek (válasz) - Videó - Rövidek - Hangüzenet - Hangos válasz - Ébredés - Webes könyvjelző - Wiki - Üzemidő: %1$d%% - Namecoin-beállítások - %d ms - Átjátszószinkronizálás - Bitcoin felfedező (OTS) - Öntől származó események - Önnek szóló események - kereshető események - Közvetlen üzenetek - profilok - kimenő átjátszók listája - Utoljára %1$s ezelőtt látták - Utoljára elérhető: %1$s (%2$s ezelőtt) - Utoljára elérhető: épp most - Utoljára elérhető: soha - - %1$d perccel - %1$d perccel - - - %1$d órával - %1$d órával - - - %1$d nappal - %1$d nappal - - - %1$d héttel - %1$d héttel - - - %1$d hónappal - %1$d hónappal - - - %1$d évvel - %1$d évvel - - - %1$d pénzverde - %1$d mint - - - %1$d függőben lévő számla - %1$d függőben lévő számla - - - %1$d olyan pénzverdében lévő pénz, amelyet Ön nem használ - %1$d olyan Mintben lévő pénz, amelyet Ön nem használ - - %1$s satoshi áthelyezve ide: %2$s. - Közvetítés eszközre - Közvetítés leállítása - HLS-feltöltés - %1$s feltöltés (%2$d/%3$d) - Tanúsítás - Tanúsításkérés - Tanúsító ajánlása - Tanúsítói jártasság - Webes könyvjelzők - Webes könyvjelző hozzáadása - Webes könyvjelző szerkesztése - %1$s gyűlt össze a(z) %2$s satoshis célból - Új cél - Törlési kérés - Törlési kérés elküldve - Törlési előzmények - Felhasználók - Események - Típusok - IP-címek - Beállítások - Javaslatok a szöveg javítására - Az eszközön futó LLM-modell segítségével szövegjavításokkal és hangnemváltoztatásokkal kapcsolatos javaslatokat kaphat. - Nyomon követhető közvetítések - Nyomon követhető közvetítők használata az események küldesékor. Közvetítés közben megjeleníti a jelenlegi előrehaladást és az egyes átjátszók állapotát. - Megosztandó edzések javaslása - Beolvassa a befejezett edzéseit a Health Connectből (Samsung Health, Google Fit, Fitbit, Garmin…), és javasolja azok megosztását egy bejegyzésben. Engedélyt csak az összekapcsoláskor kér. - Üzenetírási beállítások - Vázlatok automatikus létrehozása - Automatikusan menti a vázlateseményt, amikor beírja a szöveget, vagy elküldetlen szöveggel hagyja a levelezőlistát, és elküldi a privát kimenő üzenetek mappájába. - Munkabizonyítás - A szerző számítási teljesítményt áldozott arra, hogy ezt a bejegyzést %1$s nehézségűre bányássza — ez egy munkabizonyítási bélyeg, amely költségessé teszi a kéretlen tartalmak küldését. - Rövid jegyzetek és válaszok - Az elsődleges nyilvános kéretlen tartalmi felület - Megjegyzések - Válaszok cikkekre, fájlokra és egyéb tartalmakra - Jelentések - Az átjátszók a költségük alapján mérlegelik a jelentéseket - Hosszú formátum és kiemelések - Cikkek és kiemelések; ritka, a költség elhanyagolható - Hangüzenetek - Nyilvános, hangalapú bejegyzések és válaszok - Újraközzétevések - Nagyszámú aktív felhasználónál - Reakciók - A legnagyobb mennyiségű típus; minden kedvelés bányászata meríti az akkumulátort - Nyilvános és élő csevegés - A bányászati késedelmek rontják a beszélgetés menetét - Privát üzenet burkolók - Lehetővé teszi a kéretlen tartalmak szűrését a beérkező közvetlen üzenetekben az átjátszók számára; csak a külső réteget bányássza, az üzenetet soha - Egyéb nyilvános tartalom - Szavazások, élő állapotok, apróhirdetések és minden egyéb nyilvános dolog - „Munkabizonyítás” bányászata - - „Munkabizonyítás” bányászata… (%1$d bejegyzés a sorban) - Proof of work bányászata… (%1$d bejegyzés a sorban) - - - %1$s • bányászat %2$d biten - %1$s • bányászat %2$d biten - - - %1$s • várakozás a bányászatra %2$d biten - %1$s • várakozás a bányászatra %2$d biten - - - Alapértelmezés (%1$d bit) - Alapértelmezés (%1$d bit) - - - %1$d bit - %1$d bit - - „Munkabizonyítás” bányászata - Azokat a bejegyzéseket jeleníti meg, amelyek még mindig a NIP-13 szerinti munkabizonyítást végzik, így azok befejeződhetnek, miután kilép az alkalmazásból. - Mégse - Küldés most - <1 mp - - %1$d mp - %1$d mp - - - %1$d perc - %1$d perc - - - %1$d óra - %1$d óra - - - %1$d nap - %1$d nap - - ≈ %1$s van hátra - mostmár bármelyik pillanatban - A(z) %1$s bányászata befejeződött, de nem sikerült közzétenni: %2$s - A(z) %1$s bányászata befejeződött, de nem sikerült közzétenni. A következő indításkor az alkalmazás újra megpróbálja. - Csevegési üzenet - Jelentés - Új emodzsicsomag - Emodzsicsomag szerkesztése - Saját emodzsicsomagok - Emodzsik - A nyilvános emodzsik mindenki számára láthatók, és megjelennek a reakciómenüben, valamint a „:” automatikus kiegészítő listájában, ha ez a csomag szerepel az emodzsilistában. - A privát emodzsik titkosítva kerülnek tárolásra az átjátszókon, és csak Önnek láthatók. Ugyanúgy megjelennek a reakciómenüben és a „:” automatikus kiegészítésben, mint a nyilvánosak. - A vázlat %1$d bájt; a közösség ennél a típusnál %2$d bájtban korlátozza a méretet. - A vázlat %1$d bájt; a közösség %2$d bájtban korlátozza az események méretét. - Ön ma már %1$d ilyen típusú eseményt tett közzé (a korlát: %2$d). - Nowhere webhely - Nowhere esemény - Nowhere adománygyűjtés - Nowhere bolt - Nowhere petíció - Nowhere üzenet - Nowhere drop - Nowhere alkotás - Nowhere fórum - - %1$d üzenet - %1$d üzenet - - - %1$d tag - %1$d tag - - - A pénztárca nem válaszolt %1$d másodpercen belül. A fizetés lehet, hogy sikerült, de az is lehet, hogy nem, ellenőrizze a pénztárcát, mielőtt újrapróbálkozna. - A pénztárca nem válaszolt %1$d másodpercen belül. A fizetés lehet, hogy sikerült, de az is lehet, hogy nem, ellenőrizze a pénztárcát, mielőtt újrapróbálkozna. - - - Időtúllépés tárcakéréskor, %1$d válasz vissza lett utasítva, mert nem várt kulccsal lett aláírva. Előfordulhat, hogy az Ön által használt átjátszó nem megbízható. - Időtúllépés tárcakéréskor, %1$d válasz vissza lett utasítva, mert nem várt kulccsal lett aláírva. Előfordulhat, hogy a relé nem megbízható. - - Fotó hozzáadása - Fotó módosítása - Csoportadatok frissítve - Nem sikerült frissíteni: %1$s - Nem sikerült létrehozni a csoportot: %1$s - Nem sikerült elhagyni a csoportot: %1$s - Először adjon hozzá egy Blossom médiakiszolgálót a beállításokban, mert a csoportnak szüksége van egy helyre, ahová a mellékleteket feltöltheti. - Ez a csoport mostantól titkosított mellékleteket használ - Nem sikerült átállítani ezt a csoportot a titkosított mellékletek használatára: %1$s - Csoport feloszlatva - A csoport feloszlatása akkor ér véget, amikor annak tagjai egyezségre jutnak. - Ez a csoport feloszlik, de továbbra is olvasható marad. - Ön elhagyja a csoportot. - Ön már nem tagja ennek a csoportnak. - Nem sikerült feloszlatni a csoportot: %1$s - %1$s hozzáadása… - Nem sikerült hozzáadni a következőt: %1$s: %2$s - ismeretlen hiba - Tag eltávolítva - Nem sikerült eltávolítani a tagot: %1$s - Adminisztrátori jogosultságok megadva - Nem sikerült megadni az adminisztrátori jogosultságot: %1$s - Adminisztrátori jogosultságok visszavonva - Nem sikerült visszavonni az administrátori jogosultságot: %1$s - Nem tagja ennek a csoportnak A kedvezményezett lightning-szolgáltatása ennél: %1$s nem érhető el. A(z) „%2$s” lightning-cím lett kiszámítva. Hiba: %3$s. Ellenőrizze, hogy a kiszolgáló működik-e, és hogy a lightning-cím helyes-e Nem sikerült megoldani a következőt: %1$s. Ellenőrizze, hogy kapcsolódik-e, vagy működik-e a kiszolgáló, és hogy a(z) %2$s lightning-cím helyes-e.\n\nKivéve: %3$s Hiba történt a JSON elemzésekor a(z) %1$s számlahívásából. Ellenőrizze a felhasználó lightning-beállításait Nem lehetett lightning-számlát létrehozni. Üzenet a következőtől: %1$s: %2$s Nem sikerült Lightning-számlát létrehozni a következőből: %1$s: A „PR” elem nem található a kapott JSON-ban. - Helyalapú csevegés - Helyalapú csatorna - Csevegjen azokkal, akik egy hely közelében vannak, geohash alapján. - Helyi - Legjobb, ha fizikailag egy hely környékén – a saját környékén, városában vagy régiójában – lévő emberekkel szeretne beszélgetni. - Válasszon egy helyszínt - Névtelen – területenként eldobható identitás, sosem a saját npub. - Bitchat-kompatibilis; eléri a közeli felhasználókat ugyanazokon az átjátszókon. - Nyilvános és ideiglenes – nincs előzmény, a cellában bárki olvashatja. - Sorban - Dolgozás - Jóváhagyásra vár - Jóváhagyva - Kiszállítva - Sikertelen - Megszakítva - Megtagadva - Értéket az értékért Health Connect és Amethyst - Fitnesz diff --git a/amethyst/src/main/res/values-in-rID/strings.xml b/amethyst/src/main/res/values-in-rID/strings.xml index 5f40041424..09b7b9bbb9 100644 --- a/amethyst/src/main/res/values-in-rID/strings.xml +++ b/amethyst/src/main/res/values-in-rID/strings.xml @@ -1,111 +1,11 @@ - - Postingan ini memiliki lebih dari %1$d hashtag - - - %1$d aset dibundel - - - +%1$d\nbalasan - - Jumlah event spam yang berasal dari relay ini - Identitas palsu - Perilaku Ilegal - Minta Penghapusan - Anda memakai kunci publik dan kunci publik hanya dapat membaca saja. Silahkan login dengan kunci privat agar dapat membalas - Anda memakai kunci publik dan kunci publik hanya dapat membaca saja. Silahkan login dengan kunci privat agar dapat mengirim postingan - Anda memakai kunci publik dan kunci publik hanya dapat membaca saja. Silahkan login dengan kunci privat untuk menyukai postingan - Jumlah Zap belum diatur. Tekan lama untuk mengubah - Anda memakai kunci publik dan kunci publik hanya dapat membaca saja. Silahkan login dengan kunci privat agar dapat mengirimkan zap - Anda memakai kunci publik dan kunci publik hanya dapat membaca saja. Silahkan login dengan kunci privat agar dapat mengikuti - Anda memakai kunci publik dan kunci publik hanya dapat membaca saja. Silahkan login dengan kunci privat agar dapat tidak mengikuti - Anda memakai kunci publik dan kunci publik hanya dapat membaca saja. Silahkan login dengan kunci privat agar dapat menyembunyikan kata atau kalimat - Anda memakai kunci publik dan kunci publik hanya dapat membaca saja. Silahkan login dengan kunci privat agar dapat menampilkan kata atau kalimat - Anda menggunakan kunci publik dan kunci publik bersifat hanya-baca. Masuk dengan kunci privat untuk dapat mengunggah - Anda menggunakan kunci publik dan kunci publik bersifat hanya-baca. Masuk dengan kunci privat untuk dapat menandatangani event - Dekripsi Tidak Diizinkan - Penanda tangan tidak mengizinkan dekripsi yang diperlukan untuk melakukan operasi ini. Aktifkan dekripsi NIP-44 di aplikasi penanda tangan Anda dan coba lagi - Penanda tangan tidak ditemukan - Apakah aplikasi penanda tangan telah dihapus? Periksa apakah penanda tangan terpasang dan memiliki akun ini. Keluar dan masuk kembali jika aplikasi penanda tangan telah berubah. - Penanda tangan eksternal mengembalikan payload yang tidak sesuai dengan permintaan. Mungkin ada bug di Amethyst atau di penanda tangan. - Zap - Sebarkan disebarkan - Usulkan Suntingan - Tambah - Salah memilah pesan error - Profil - Filter keamanan - Meminta invoice… - Layanan debit tidak menyelesaikan pembayaran. - Bayar %1$s melalui %2$s? - Bayar invoice ini melalui %1$s? - Masukkan jumlah yang valid untuk penawaran ini. - Sekali pakai - Harian - Mingguan - Bulanan - Bayar - Membayar melalui %1$s… - Pembayaran gagal - Dapat dibelanjakan untuk penerima ini: %1$s sats - Transaksi: %1$s - "Preview gambar untuk %1$s" - Deskripsi - Apa yang ada dalam pikiranmu? - Tulis pesan… - Posting Simpan - Kirim - Buat Ganti nama - Batal - Kesalahan - Kesalahan - Persentase koneksi yang berhasil ke relay - Simpan ke Ponsel - Gambar disimpan ke galeri - Unduhan video telah dimulai… - Unduhan media telah dimulai… - Sematkan ke atas - Lepas sematan - Gagal menyimpan gambar - Video disimpan ke galeri video ponsel - Gagal menyimpan video - PDF disimpan ke Unduhan/Amethyst - Gagal menyimpan PDF - Tidak ada aplikasi kamera yang ditemukan di perangkat ini - Tekan dan tahan untuk merekam pesan - Kesalahan Unggahan - Gagal mengunggah pesan suara - NIP-95 belum didukung untuk pesan suara - Unggahan suara gagal: %1$s - Tidak ada - Dalam - Tinggi - Netral - Pengguna belum mengatur alamat lightning untuk menerima sat - "balas disini.. " - Dikenal - Permintaan Baru - Pengguna yang diblokir - Utas baru - Percakapan - Opsi Lainnya - Tampilkan kode QR kunci privat - Tampilkan kode QR kunci privat terenkripsi - Ikuti - Ikuti kembali - Sembunyikan kata sandi - Kunci tidak valid - Kunci tidak valid: %1$s - Kata sandi diperlukan - Kunci diperlukan - Nama diperlukan @@ -114,149 +14,7 @@ Profil obrolan baru: - Keluar - Berhenti mengikuti - Obrolan Menghilang - Obrolan relay - Obrolan relay - Obrolan relay adalah grup obrolan yang dikendalikan oleh relay induknya. - Obrolan ini terlihat oleh semua orang di Nostr dan siapa pun dapat berpartisipasi. - Sangat cocok untuk komunitas terbuka seputar topik tertentu. Beberapa grup ini bersifat sementara - sehingga pesan obrolan akan menghilang seiring waktu - Obrolan Publik - Grup MLS - Metadata Obrolan Publik - Obrolan publik terlihat oleh semua orang di Nostr dan siapa pun - dapat berpartisipasi. Sangat cocok untuk komunitas terbuka seputar topik tertentu. - Moderasi dapat dilakukan dengan menghapus postingan di relay-nya - relay - Masukkan antara 1–3 relay yang menjadi host grup ini. - Klien Nostr menggunakan pengaturan ini untuk mengetahui tempat mengunduh dan mengirim pesan Anda. - Hapus - jangan pernah - sekarang - j - h - Ketelanjangan - Kata-kata kotor / Ujaran kebencian - Kunci Cadangan - Gagal mengenkripsi kunci privat Anda - Kunci rahasia (nsec) telah disalin ke papan klip - Salin kunci rahasia saya - Autentikasi gagal - Gagal mengautentikasi biometrik pemilik ponsel ini - Gagal mengautentikasi biometrik pemilik ponsel ini. Error: %1$s - Teks disalin ke papan klip - \@npub pemilik telah disalin ke papan klip - ID note (@note1) telah disalin ke papan klip - "<Gagal mendekripsi pesan rahasia>\n\n Anda dikutip dalam percakapan pribadi/terenkripsi antara %1$s dan %2$s." - Akun - Navigasi - Anda - Feed - Buat - Sistem - Kembali - Bagikan Link Browser - Bagikan - Bagikan sebagai Gambar - Bagikan sebagai URL Gambar - ID Note - Hapus - Bisukan utas - Batalkan bisukan utas - - Blokir - Markah - Markah berhasil dipindahkan - Draf - Postingan terjadwal - Jadwalkan postingan - Batalkan penjadwalan - Postingan terjadwal mungkin tidak diterbitkan hingga Anda membuka aplikasi lagi. Aktifkan selalu aktif di Pengaturan → Preferensi UI untuk penjadwalan latar belakang yang andal. - Postingan terjadwal mungkin tidak diterbitkan hingga Anda membuka aplikasi lagi. Postingan terjadwal akun lain tidak akan berjalan saat akun ini aktif. Aktifkan selalu aktif di Pengaturan → Preferensi UI untuk penjadwalan latar belakang yang andal. - %1$s · dalam %2$s - %1$s · %2$s yang lalu - Besok - Keluar - - Keluar · %d postingan terjadwal dihapus - - Postingan terjadwal diterbitkan - Postingan terjadwal gagal - Postingan terjadwal - Notifikasi saat postingan terjadwal diterbitkan atau gagal diterbitkan. - Kirim sekarang - Kesalahan: %1$s - Terjadwal - Mengirim… - Gagal - Terkirim - Dibatalkan - - Anda memiliki %d postingan terjadwal yang belum diterbitkan. Keluar akan menghapusnya secara permanen. - - - %d dalam antrean - - - · %d jatuh tempo dalam 1 jam - - - ke %d relay - - ID catatan disalin - Polling - Terbuka - Ditutup - Lencana - Komunitas - Komunitas Baru - Edit Komunitas - Moderator - Relay - Aturan yang dapat diverifikasi (opsional) - Jenis acara yang diizinkan - Teks singkat (1) - Artikel panjang (30023) - Postingan gambar (20) - Postingan video (21) - Video pendek (22) - Komentar komunitas (1111) - Pengguna yang diblokir - Gerbang web-of-trust (opsional) - Ukuran acara maksimum global (opsional) - Lencana Baru - Berikan Lencana - Lencana profil - Gambar - Latihan - Latihan Baru - Berlari - Berjalan - Bersepeda - Mendaki - Berenang - Mendayung - Kekuatan - Meditasi - Puasa - Sirkuit - Aplikasi Aplikasi - Memuat melalui Tor. Ketuk untuk menggunakan web terbuka. - Memuat melalui web terbuka. Ketuk untuk menggunakan Tor. - Favorit - Aplikasi favorit - Tambahkan ke favorit - Hapus dari favorit - Memuat melalui Tor. - Memuat melalui web terbuka. - Diterbitkan ke relay - Mengunggah file - Melakukan pembayaran - Aplikasi itu belum dimuat. Coba lagi sebentar lagi. - Terbaru Izin nApplet Belum ada izin nApplet Izin yang Anda berikan kepada nApplet akan muncul di sini. @@ -265,45 +23,11 @@ Cabut - Identitas - Tindakan keyboard - Relay - Penyimpanan - Pembayaran - Jaringan - Unggahan Tanyakan kapabilitas apa yang tersedia - Baca kunci publik Anda - Ikat pintasan keyboard - Baca, tandatangani, dan terbitkan event Anda - Penyimpanan pribadi miliknya sendiri - Bayar invoice Lightning - Ambil sumber daya web dan Blossom - Unggah file ke server media Anda - Tema - Notifikasi - Pesan - Sesuaikan warna aplikasi Anda - Tampilkan notifikasi kepada Anda - Tukar pesan dengan nApplet lain Kapabilitas: %1$s - nApplet ini ingin membaca kunci publik Anda. - nApplet ini ingin membaca profil dan data akun Anda. - nApplet ini ingin menandatangani dan menerbitkan event kind %1$d sebagai Anda. - nApplet ini ingin menandatangani dan menerbitkan event kind %1$d sebagai Anda: - nApplet ini ingin mengirim event terenkripsi sebagai Anda. - nApplet ini ingin membaca event dari relay Anda. - nApplet ini ingin menggunakan penyimpanan pribadinya. nApplet ini ingin membayar invoice Lightning. - nApplet ini ingin mengambil sumber daya web. - nApplet ini ingin mengunggah file ke server media Anda. - nApplet ini ingin menampilkan notifikasi kepada Anda. - Situs ini ingin menandatangani event kind %1$d dengan kunci Nostr Anda. - - nApplet ini ingin membayar invoice Lightning sebesar %1$d sat. - - Obrolan Publik - Angkat tangan - Turunkan tangan - Bisukan - Aktifkan suara - Gagal mengirim pesan - Bisukan mikrofon - Aktifkan mikrofon - Menjaga audio tetap berjalan saat ruang terbuka. - Nest terhubung - Ketuk untuk kembali. - Berhenti - mengangkat tangan - naik ke panggung - sedang berbicara - bergabung sebagai penonton - meninggalkan nest - Tinggalkan - Gagal menandai ruang sebagai ditutup. Meninggalkan tetap — ruang akan ditutup otomatis. - - %1$d pendengar - - Senyapkan pembicara ini - Pulihkan pembicara ini - Ikuti - Berhenti mengikuti - Bisukan - Aktifkan suara - Gagal menyimpan daftar server nest Anda. Coba lagi. - Server nest - Server Anda - Disimpan sebagai event yang dapat diganti kind-10112 agar klien lain dapat membaca preferensi Anda. - Server yang Direkomendasikan - Saran bawaan yang dapat Anda tambahkan ke daftar dengan satu ketukan. - Video - Musik - Playlist - Episode - Podcast - - %1$d episode - - Trek musik baru - Playlist baru - - %1$d trek - - Tambahkan ke Markah Publik - Hapus dari Markah Publik - Sematkan ke Profil - Lepas Sematan dari Profil - Daftar Bookmark Baru - Metadata Daftar Bookmark - Kumpulan Hashtag - Kumpulan Minat Baru - Ganti nama - Jadikan pribadi: bungkus catatan sebagai hadiah hanya untuk pengguna yang diberitahu - Jadikan publik - Balasan ke catatan pribadi selalu tetap pribadi - Terlihat oleh Belum ada penerima: hanya Anda yang dapat melihat catatan ini. Tambahkan orang untuk berbagi. Tambah Hapus pengguna dari notifikasi Cari dan tambah pengguna untuk diberitahu - Metadata daftar bookmark dapat dilihat oleh siapa saja di Nostr. Hanya anggota pribadi Anda yang dienkripsi. - Pindah ke Publik - Pindah ke Pribadi - Isi ulang & kirim zap - Kirim zap - Isi ulang %1$s sats ke %2$s dan zap %3$s %4$s sats · biaya ≈ %5$s sats - Opsi %s - (0–100)% - Pilihan tunggal - Pilihan ganda - Tidak dapat memilih - Poll ditutup - Hanya satu suara per pengguna yang diperbolehkan pada jenis poll ini - Pemilik Poll tidak bisa memilih di poll mereka sendiri. - Apa artinya? - Konten ini sama sejak postingan tersebut - Konten ini telah diubah. Pemilik mungkin tidak melihat atau menyetujui perubahan tersebut - Tambah Media - Tambahkan Gambar - Tambahkan Video - Tambahkan Dokumen - Server File - Pilih server untuk mengunggah file ini - Server Media Atur server unggah media pilihan Anda. Server Media yang Direkomendasikan Daftar default Amethyst. Anda dapat menambahkannya satu per satu atau menambahkan seluruh daftarnya. - Target Pembayaran - Tambahkan alamat pembayaran untuk jaringan berbeda (mis. bitcoin, lightning, ethereum). - Tidak ada aplikasi yang ditemukan untuk menangani pembayaran ini. Silakan instal dompet yang kompatibel. - Tidak ada aplikasi yang terinstal untuk menangani pembayaran %1$s. Silakan instal dompet yang kompatibel. - Tidak dapat membuka pembayaran - Opsi Privasi - Semua Pengikut - Semua Pengikut Pengguna - Daftar Ikut Default - Di Sekitar Saya - Terkurasi - Milik Saya - Daftar Bisukan - Daftar Ikut Baru - Pack Ikut Baru - Edit Daftar - Port default adalah 9050 - Port Socks Orbot - Mesin Tor Aktif - Gunakan versi internal atau Orbot - Prasetel Tor/Privasi - Ubah semua pengaturan di bawah dengan cepat - Url/Relay Onion - Gunakan Tor untuk url .onion apa pun - Relay DM - Paksa Tor untuk mengirim dan menerima DM - Relay Tidak Tepercaya - Paksa Tor pada relay outbox/inbox - Relay Tepercaya - Paksa Tor pada semua relay di daftar Anda - Foto Profil - Paksa Tor saat memuat foto profil - Pratinjau URL - Paksa Tor saat memuat pratinjau url - Gambar - Paksa Tor saat memuat gambar - Video - Paksa Tor saat memuat video - Operasi Uang - Paksa Tor pada zap, Lightning, dan transfer Cashu - Verifikasi Alamat Nostr - Paksa Tor saat memverifikasi alamat NIP-05 - Unggahan Media - Paksa Tor saat mengunggah konten - Mati - Dasar - Semua kecuali Media - Privasi Penuh - Kustom - Gunakan Tor saat diperlukan oleh server - Sembunyikan IP Anda dari relay acak - Sembunyikan IP Anda dari segalanya, kecuali gambar dan video - Sembunyikan IP Anda di semua koneksi - Buat sendiri - Pesan Pribadi - Memberi tahu Anda ketika pesan pribadi tiba - Zap Diterima - Memberi Tahu anda saat seseorang memberi zap - Dari %1$s - untuk %1$s - Balas - Tandai Sudah Dibaca - Pesan baru - Zap baru - Reaksi - Memberi tahu Anda saat seseorang bereaksi pada postingan Anda - %1$s bereaksi pada postingan Anda - untuk %1$s - Reaksi baru - Catur - Memberi tahu Anda tentang peristiwa permainan catur - %1$s menerima tantangan catur Anda - %1$s bergerak — giliran Anda - Pembaruan catur - Balasan - Memberi tahu Anda saat seseorang membalas postingan Anda %1$s membalas pada: %1$s - Balasan baru - Sebutan - Memberi tahu Anda saat seseorang menyebut atau mengutip Anda dalam postingan - %1$s menyebut Anda - Sebutan baru @@ -520,33 +79,6 @@ - Panggilan masuk - Notifikasi untuk panggilan suara dan video masuk - Panggilan masuk - Panggilan suara masuk… - Panggilan video masuk… - Panggilan dengan %1$s - Panggilan - Notifikasi panggilan berlangsung - Tutup telepon - Terima - Tolak - Bisukan - Aktifkan suara - Kamera aktif - Kamera mati - Pengeras suara - Amethyst membutuhkan akses mikrofon untuk memulai panggilan suara. Mohon aktifkan di pengaturan aplikasi. - Amethyst membutuhkan akses kamera dan mikrofon untuk memulai panggilan video. Mohon aktifkan keduanya di pengaturan aplikasi. - Pengaturan Panggilan - Menjaga koneksi ke relay inbox Anda aktif untuk notifikasi real-time - Notifikasi Amethyst Aktif - - Terhubung ke %1$d relay inbox - - - Terhubung ke %1$d relay - - Menghubungkan ke relay inbox… Layanan notifikasi selalu aktif Menjaga koneksi persisten ke relay inbox Anda untuk pengiriman notifikasi instan. Menampilkan notifikasi yang terus berjalan. Menggunakan lebih banyak baterai tetapi memastikan Anda tidak pernah melewatkan pesan. - Pisahkan notifikasi berdasarkan Mengikuti - Tampilkan dua tab notifikasi — Mengikuti (orang yang Anda ikuti) dan Semua Orang. Indikator belum dibaca hanya menyala untuk aktivitas dari orang yang Anda ikuti. - Tampilkan Pesan - Sertakan pesan langsung dan grup pada tab Notifikasi. Matikan untuk menyimpan pesan hanya di tab Pesan. - Memberitahu: - Hari ini - Sembunyikan - Tampilkan - Peringatkan - Menyembunyikan postingan dari orang asing yang persis sama sebanyak 5 kali atau lebih - Tambahkan tag klien ke acara saya - Saat diaktifkan, Amethyst menambahkan tag klien NIP-89 ke acara yang Anda publikasikan. - Peringatkan pada laporan - Menampilkan pesan peringatan saat postingan atau profil mendapat laporan dari orang yang Anda ikuti - Sembunyikan postingan yang melanggar aturan komunitas - Menghapus postingan dari umpan komunitas saat komunitas menerbitkan dokumen aturan NIP-9B dan sebuah acara tidak memenuhinya. Tidak berpengaruh saat komunitas tidak memiliki aturan terstruktur. - Preferensi filter - Konten diblokir - Anda belum memblokir pengguna mana pun. - Tidak ada akun yang ditandai sebagai spam dalam sesi ini. - Tidak ada kata tersembunyi. Tambahkan kata di bawah untuk menyembunyikan postingan yang mengandungnya. - Tidak ada jenis reaksi yang dipilih sebelumnya untuk pengguna ini. Tekan lama tombol hati untuk mengubahnya - Baca dari Relay - Tulis ke Relay - Jumlah dalam byte yang dikirim ke relay ini, termasuk filter dan acara - Jumlah dalam byte yang diterima dari relay ini, termasuk filter dan acara - Kebijakan Privasi - Standar Keamanan Anak - Tentang & Hukum - Token Cashu - Tidak ada Alamat Lightning yang ditetapkan - Relay - Paket Ikuti - Bacaan - Algoritma Feed - Siaran Langsung - Komunitas - Obrolan - Konten Sensitif - Memberi peringatan konten sebelum menampilkan konten ini - Preferensi UI Preferensi Aplikasi - Terjemahan - Reaksi - Pengaturan - Pengaturan Akun - Pengaturan Aplikasi - Zona Berbahaya - Setel Ulang Status Marmot - Status Marmot berhasil disetel ulang. - Gagal menyetel ulang status Marmot: %1$s - Selalu - WiFi Tanpa Kuota - Jangan pernah - Lengkap - Disederhanakan - Performa - Klasik - Sistem - Terang - Gelap - Tema - Pratinjau Gambar - Pemutaran Video - Putar Otomatis Video - Pratinjau URL - Pengguliran Mendalam - Sembunyikan Nav Bar saat menggulir - Mode UI - Pilih gaya postingan - Gaya Galeri Profil - Pilih gaya galeri - Spammer - Dibisukan. Ketuk untuk membunyikan - Suara aktif. Ketuk untuk bisukan - Mundur %d detik - Maju %d detik - Postingan Eksklusif Lokasi - Hanya pengikut lokasi yang akan melihatnya. Pengikut umum Anda tidak akan melihatnya. - - %1$d lagu - - - +%1$d lagu lainnya - - Unggah gambar sampul - Pilih gambar persegi sebagai karya seni untuk lagu ini. - Unggah file audio - Pilih MP3, WAV, atau FLAC. File akan diunggah ke server media Anda saat Simpan. - Mengunggah sampul + audio dan menerbitkan. Proses ini akan terus berjalan meskipun Anda meninggalkan layar. - Unggah gambar sampul - Pilih gambar persegi sebagai karya seni untuk playlist ini. - Mengunggah sampul dan menerbitkan. Proses ini akan terus berjalan meskipun Anda meninggalkan layar. Publik Grup Privat - Subjek - Tidak Dapat Mengunggah - Masukkan tujuan pesan terlebih dahulu - Dompet tidak ditemukan - Amethyst tidak dapat menemukan aplikasi dompet apa pun yang mendukung Nostr Wallet Connect (NWC). -\n\nYang dapat Anda lakukan: -\n\t1. Verifikasi Dukungan NWC: Pastikan aplikasi dompet pilihan Anda kompatibel dengan Nostr Wallet Connect. -\n\t2. Buat Koneksi: Buka aplikasi dompet Anda dan buat koneksi NWC baru. -\n\t3. Hubungkan ke Amethyst: Dompet Anda biasanya akan memberikan tiga pilihan: -\n\t\t3.1 Tautan Otomatis: Tombol untuk secara otomatis membuka dan terhubung ke Amethyst. Jika ada, klik tombol tersebut, buka Amethyst dan tekan simpan di layar baru. -\n\t\t3.2 Tautan Manual: URI Koneksi yang dapat Anda salin dan klik ikon tempel di layar ini untuk memasukkannya secara langsung. -\n\t\t3.3 Kode QR: Dompet membuat kode QR yang dapat Anda baca dari tombol kode QR di layar ini. - - Gelap, Terang, atau Tema Sistem - Muat gambar dan GIF secara otomatis - Putar video dan GIF secara otomatis - Putar video secara otomatis saat terlihat di layar - Tampilkan Pratinjau URL - Salin ke clipboard - Disalin ke clipboard - Bagikan atau Simpan Kirim sebagai DM - Media ditambahkan - Media ditambahkan ke Galeri Profil Anda - Tidak dapat mengirim zap - Lightning tidak tersedia - %1$s belum mengatur alamat lightning untuk menerima sat - Terjadi kesalahan saat membuka aplikasi penanda tangan - Aplikasi penandatangan tidak ditemukan. Periksa apakah aplikasi belum dihapus - Tidak dapat memutar video ini - Codec atau format tidak didukung di perangkat ini (%1$s). Coba buka di browser Anda. - Buka di browser - Permintaan tanda tangan ditolak - Pastikan aplikasi penandatangan telah mengizinkan transaksi ini - Tidak ada Dompet yang ditemukan untuk membayar faktur Lightning (Kesalahan: %1$s). Silakan instal dompet Lightning untuk menggunakan zap - Tidak ada Dompet yang ditemukan untuk membayar faktur Lightning. Silakan instal dompet Lightning untuk menggunakan zap - Tidak dapat membuka tautan Blossom - Aplikasi Blossom tidak ditemukan. Silakan instal aplikasi Blossom lokal untuk melihat file ini - Kata-kata tersembunyi - Utas yang dibisukan - Tidak ada utas yang dibisukan - Foto Profil - Tampilkan Foto Profil - Tidak dapat membayar faktur - Tidak dapat menarik - Tidak dapat meredeem Cashu - Mint memberikan error: %1$s - Cashu Diterima - %1$s sat telah dikirim ke dompetmu. (Biaya: %2$s sat) - Tidak ada dompet Cashu yang kompatibel ditemukan di sistem - Tidak dapat menghubung server faktur penerima - Penyedia Wallet Connect anda memberi error: %1$s - Tidak dapat merakit LNUrl dari Alamat Lightning \"%1$s\". Periksa pengaturan pengguna - Tidak dapat mengambil invoice dari %1$s: %2$s - Kesalahan Parsing JSON dari %1$s. Periksa pengaturan Lightning pengguna - URL Callback tidak ditemukan dari respons %1$s - Jumlah faktur salah (%1$s sat) dari %2$s. -Seharusnya %3$s - Tidak dapat membuat faktur Lightning sebelum mengirim zap. Dompet Lightning penerima mengirimkan kesalahan berikut: %1$s - Pengguna hanya-baca - Tidak mengatur reaksi - Notifikasi - Pengiriman - Tampilan dalam aplikasi - Kategori - Pesan dari %1$s - Halo %1$s, apakah ini masih tersedia? - Pakaian - Aksesori - Elektronik - Furnitur - Kolektibel - Buku - Hewan Peliharaan - Olahraga - Kebugaran - Seni - Kerajinan - Rumah - Kantor - Makanan - Lain-lain - Lainnya - Gagal mengunggah media - Tidak dapat membuka file terkompresi - Kesalahan pengunggahan: %1$s - Server tidak memberikan URL setelah pengunggahan - Tidak dapat mengunduh media yang diunggah dari server - Tidak dapat memeriksa file yang diunduh setelah diunggah: %1$s - Gagal mengunggah ke %1$s: %2$s - Gagal menghapus: %1$s - Media terlalu besar untuk NIP-95 - Enkripsi file - Enkripsi file sebelum diunggah untuk privasi. Beberapa server mungkin tidak menerima file terenkripsi pada akun gratis. - Pengunggahan terenkripsi gagal - Banyak server tidak menerima file terenkripsi pada akun gratis. Anda dapat mencoba ulang tanpa enkripsi. - Gunakan Codec H.265/HEVC - Kualitas lebih baik dengan ukuran file lebih kecil tetapi tidak semua perangkat mendukung pemutaran H.265. - Konversi GIF ke MP4 - Mengonversi GIF animasi ke video MP4 untuk ukuran file lebih kecil dan kompatibilitas pemutaran yang lebih baik. - Hapus metadata pribadi - Berusaha menghapus metadata pribadi dari file media yang didukung sebelum diunggah - Metadata tidak dapat dihapus - Gagal menghapus metadata pribadi dari media. Unggahan dibatalkan. - Unggahan dibatalkan - Tidak dapat menghapus metadata dari AVIF: %1$s - Beranda - Temukan - Pesan - Notifikasi - Kalender - Daftar kalender - Catur - Dompet - Dompet Cashu (NIP-60) Kunci Nutzap (lanjutan) Kunci privat terpisah yang hanya digunakan untuk menerima NIP-61 nutzap. Bukan kunci identitas Nostr Anda. Buat kunci baru Kunci privat P2PK (hex) Simpan perubahan - - +%1$d lainnya - - - Direkomendasikan oleh %1$d orang lain - - Mint populer - Mint yang cocok - Diterima - Terkirim - Publikasikan permintaan hapus untuk rekomendasi kind:38000 Anda atas %1$s. Relay yang menghormati NIP-09 akan menghapusnya. - Berhasil memulihkan %1$s sats dari %2$s bukti. - Bayar %1$s sat + hingga %2$s sat biaya? - Nutzap gagal - Tidak ada pubkey penerima pada catatan - Nutzap bersifat publik dan akan mengungkap catatan privat ini. Gunakan zap Lightning sebagai gantinya. - Tidak dapat membuat referensi event - Menunggu invoice dibayar… - Memeriksa mint… - Lambat - Cepat - ~1 jam - ~30 menit - ~10 menit - - Kirim %1$s sats, %2$d cara - - - Gunakan pembagian zap %1$d-cara dari catatan ini - - - Dibagi di antara %1$d penerima - - - Melewati %1$d penerima yang hanya memiliki alamat Lightning — on-chain memerlukan pubkey Nostr untuk menurunkan alamat. - - memuat saldo - membangun transaksi - menandatangani - menyiarkan - mempublikasikan tanda terima - Backend chain Bitcoin belum dikonfigurasi - Tidak dapat memuat saldo Bitcoin Anda - Tidak dapat membangun transaksi - Bagian penerima di bawah batas debu - Tidak dapat menandatangani transaksi - Tidak dapat menyiarkan transaksi - Pembayaran terkirim, tetapi tanda terima zap tidak dapat dipublikasikan - - Pembayaran terkirim (%1$d dari %2$d tanda terima dipublikasikan), tetapi tanda terima berikutnya tidak dapat dipublikasikan - - Impor Pengikutan - Produk Baru - Artikel Baru - Acara Kalender Baru - Edit Acara Kalender - Kalender Baru - Edit Kalender - Umpan - Bulan - Minggu - Hari - - %1$s, %2$d acara - - Sedang berlangsung - %1$s · selesai %2$s - Bagikan acara kalender - Pengingat kalender - Pemberitahuan saat acara yang Anda hadiri akan segera dimulai. - Acara kalender - - Mulai dalam %1$d menit - - Unggahan gambar gagal - Gambar yang dipilih tidak dapat diunggah. Coba lagi atau tempel URL. - Pengingat kalender - Kirim pengingat - Pemberitahuan akan muncul saat acara yang Anda hadiri akan segera dimulai. - - %1$d mnt - - Buka di peta - Buka tautan - Buka semua reaksi pada postingan ini - Tutup semua reaksi pada postingan ini - Bilah Navigasi Bawah Seret untuk mengurutkan ulang. Aktifkan/nonaktifkan untuk menambah atau menghapus item dari bilah bawah. Dengan nol item, bilah bawah tersembunyi. Urutkan Ulang Pilih tab mana yang muncul di layar Beranda. Ketika hanya satu tab yang aktif, bilah tab disembunyikan. - Semua - Tampilan Profil Pilih bagian dan umpan mana yang muncul di layar profil pengguna. Semua opsi diaktifkan secara default. - Lencana Profil - Rekomendasi Aplikasi - Umpan Zap Diterima - Umpan Pengikut - Baris Reaksi - Tombol Pemutar Video - Visualisasi Audio - Tanggal Kedaluwarsa - Alamat tidak valid - Amethyst menerima URI untuk dibuka tetapi URI tersebut tidak valid: %1$s - Relay Kotak Masuk DM - Relay Pencarian - Pilihan yang baik:\n%1$s - Relay Outbox - Relay Kotak Masuk - Pengaturan Relay - Relay Outbox/Beranda Publik - Pengguna memposting kontennya ke relay ini - Jenis relay ini menyimpan semua konten Anda. Amethyst akan mengirim postingan Anda ke sini dan orang lain akan menggunakan relay ini untuk menemukan konten Anda. Masukkan 1–3 relay. Bisa berupa relay pribadi, relay berbayar, atau relay publik. - Relay Kotak Masuk Publik - Pengguna menerima notifikasi di relay ini - Jenis relay ini menerima semua balasan, komentar, suka, dan zap ke postingan Anda. Bisa berupa relay berbayar atau gratis. Batasan yang ditetapkan oleh operator relay dapat membatasi notifikasi yang Anda terima, baik positif maupun negatif. Misalnya, jika Anda diserang spam komentar, relay berbayar dapat menyaring spam tersebut. Masukkan 1–3 relay. - Relay Kotak Masuk DM - Pengguna menerima DM di relay ini - Masukkan 1–3 relay sebagai kotak masuk pribadi Anda. Orang lain akan menggunakan relay ini untuk mengirim DM kepada Anda. Relay Kotak Masuk DM harus menerima pesan dari siapa saja, tetapi hanya mengizinkan Anda untuk mengunduhnya. Pilihan yang baik:\n - inbox.nostr.wine (berbayar)\n - auth.nostr1.com (gratis)\n - you.nostr1.com (relay pribadi - berbayar) - Relay KeyPackage - Relay tempat KeyPackage MLS Anda dipublikasikan (MIP-00). Pengguna lain mengambil KeyPackage ini untuk mengundang Anda ke obrolan grup Marmot. Masukkan 1–3 relay yang menerima event KeyPackage dari Anda dan mengizinkan pembacaan publik. - Relay Beranda Pribadi - Masukkan 1–3 relay untuk menyimpan event yang tidak dapat dilihat orang lain, seperti Draft dan/atau pengaturan aplikasi Anda. Idealnya, relay ini bersifat lokal atau memerlukan autentikasi sebelum mengunduh konten setiap pengguna. - Relay Terhubung - Daftar relay yang sedang digunakan - Relay Pencarian - Daftar relay yang digunakan saat mencari konten atau pengguna. Penandaan dan pencarian tidak akan berfungsi jika tidak ada pilihan yang tersedia. Pastikan mereka mengimplementasikan NIP-50. - Relay Lokal - Daftar relay yang berjalan di perangkat ini. - Teruskan profil ke relay lokal - Kirim semua event profil (kind 0) yang diterima ke relay lokal Anda - Relay Tepercaya - Relay yang Anda percaya sehingga tidak memerlukan koneksi Tor - Feed Relay Favorit - Relay yang sering Anda kunjungi untuk melihat feed Global mereka - Relay Proxy - Relay agregator yang harus digunakan aplikasi untuk mengunduh feed Anda, seperti filter.nostr.wine. Ini menggantikan model outbox dan akan membuat aplikasi hanya terhubung ke relay dalam daftar Anda. - Relay Siaran - Relay yang berspesialisasi dalam mendorong catatan Anda ke semua relay lainnya, seperti sendit.nosflare.com. Amethyst akan menambahkan relay ini ke semua event baru yang Anda buat - Relay Indeks - Relay yang berspesialisasi dalam menyimpan metadata dan daftar relay semua orang, seperti purplepag.es. Amethyst akan menggunakan relay ini untuk menemukan pengguna yang tidak ada dalam daftar Anda. - Relay Diblokir - Amethyst tidak akan pernah terhubung ke relay ini - Ekspor pengaturan relay Ikhtisar Tentang Tautan Pemelihara Topik - Bukti Stempel Waktu - Ada bukti bahwa postingan ini ditandatangani sebelum %1$s. Bukti ini dicap dalam blockchain Bitcoin pada tanggal dan waktu tersebut. - Edit Postingan - Tidak dapat membalas catatan draft - Tidak dapat mengutip catatan draft - Tidak dapat bereaksi terhadap catatan draft - Tidak dapat zap catatan draft - Catatan Draft - Bad Request - Server tidak dapat atau tidak mau memproses permintaan. - Unauthorized - Pengguna tidak memiliki kredensial autentikasi yang valid - Payment Required - Server memerlukan pembayaran untuk menyelesaikan permintaan - Forbidden - Pengguna tidak memiliki hak akses untuk membuat permintaan - Not Found - Server tidak dapat menemukan alamat yang diminta - Method Not Allowed - Server mendukung metode permintaan, tetapi tidak untuk sumber daya target - Not Acceptable - Server tidak menemukan konten yang memenuhi permintaan. - Proxy Authentication Required - Pengguna tidak memiliki kredensial autentikasi yang valid - Request Timeout - Server kehabisan waktu menunggu pihak lain - Conflict - Server tidak dapat memenuhi permintaan karena ada konflik dengan sumber daya - Gone - Konten yang diminta telah dihapus permanen dari server dan tidak akan dipulihkan - Length Required - Server menolak permintaan karena memerlukan panjang yang ditentukan - Precondition Failed - Prasyarat permintaan dalam bidang header yang gagal dipenuhi oleh server - Payload Too Large - Permintaan lebih besar dari batas yang ditentukan server, dan server menolak untuk memprosesnya - URI Too Long - URL yang diminta oleh klien terlalu panjang untuk diproses server. - Unsupported Media Type - Permintaan menggunakan format media yang tidak didukung server - Range Not Satisfiable - Server tidak dapat memenuhi nilai yang ditunjukkan dalam bidang header Range permintaan. - Expectation Failed - Server tidak dapat memenuhi persyaratan yang ditunjukkan oleh bidang header permintaan Expect - Upgrade Required - Server menolak memproses permintaan menggunakan protokol saat ini kecuali klien meningkatkan ke protokol yang berbeda. - Internal Server Error - Server mengalami kesalahan tak terduga dan tidak dapat menyelesaikan permintaan - Not Implemented - Server tidak dapat memenuhi permintaan atau tidak mengenali metode permintaan - Bad Gateway - Server bertindak sebagai gateway dan mendapat respons tidak valid dari host - Service Unavailable - Ini sering terjadi ketika server kelebihan beban atau sedang dalam pemeliharaan - Gateway Timeout - Server bertindak sebagai gateway atau proxy dan habis waktu menunggu respons - HTTP Version Not Supported - Server tidak mendukung versi HTTP dalam permintaan - Variant Also Negotiates - Server memiliki kesalahan konfigurasi internal - Insufficient Storage - Server tidak memiliki cukup penyimpanan untuk memproses permintaan dengan sukses - Loop Detected - Server mendeteksi loop tak terbatas saat memproses permintaan - Network Authentication Required - Klien harus diautentikasi untuk mengakses jaringan Server Blossom Tambahkan server sebanyak yang Anda inginkan. Anda dapat memilih mana yang akan digunakan nanti saat mengunggah gambar Anda - Tambah Server NIP-96 - Tambah Server Blossom Unduh - Gagal membuka file - Tidak ada aplikasi torrent yang terpasang untuk membuka dan mengunduh file. - Event tidak memiliki cukup informasi untuk membangun tautan magnet - Daftar Saya - Feed - Tagar - Set Minat - Lokasi - Komunitas - Daftar - Algoritma Feed - Semua algoritma feed favorit - Relay - Algoritma Feed Favorit - Pesan Pribadi - Pesan Publik - Tidak dapat berbagi gambar, coba lagi nanti… - Tidak dapat berbagi video, coba lagi nanti… - Mengunduh video… - Jangan Terjemahkan Dari - Bahasa yang ditampilkan di sini tidak akan diterjemahkan. Pilih bahasa untuk menghapusnya dan terjemahkan kembali. - Terjemahkan Ke - Pilih bahasa untuk menerjemahkan konten. - Preferensi Tampilan Bahasa - Untuk setiap pasangan bahasa yang diterjemahkan, pilih bahasa mana yang ditampilkan terlebih dahulu. - Jeda - Putar - Pesan ini akan hilang dalam %1$s - Metadata Daftar Ikutan - Metadata daftar ikutan dapat dilihat oleh siapa saja di Nostr. Hanya anggota privat Anda yang dienkripsi. - Metadata Follow Pack - Metadata follow pack dapat dilihat oleh siapa saja di Nostr dan sering diterbitkan di banyak situs web sebagai kit awal bagi pengguna baru. - Perluas - Coba ulang - Reaksi - Postingan Suara - Balasan Suara - Outbox Relay - Aplikasi - Rekomendasi Aplikasi - Pengaturan Pengguna - Header Audio - Trek Audio - Trek Musik - Daftar Putar Musik - Episode Podcast - Acara Podcast - Podcast yang Dibuat - Podcast Favorit - Penghargaan Lencana - Definisi Lencana - Kumpulan Lencana yang Diterima - Lencana Profil - Relay yang Diblokir - Server Blossom - Server Nests - Relay Siaran - Daftar Bookmark - Daftar Bookmark Lama - Janji Harian - Kalender - Janji - RSVP Janji - Permainan Catur - Relay Favorit - Tantangan Catur - Penerimaan Permainan Catur - Gerakan Catur - Akhir Permainan Catur - Tawaran Seri Catur - Definisi Saluran - Sembunyikan Pesan Saluran - Daftar Saluran - Pesan Saluran - Metadata Saluran - Bisukan Pengguna Saluran - File DM - Pesan DM - Relay DM - Iklan Baris - Komentar - Definisi Komunitas - Daftar Komunitas - Postingan Komunitas - Daftar Ikutan - Penghapusan - Draf - Paket Emoji - Daftar Paket Emoji - Obrolan Sementara - Ruang Obrolan Sementara - Header File - Galeri Profil - Server File - Data Blob - Header Blob - Data Medis - Follow Pack - Repost (16) - Ikutan Geohash - GiftWrap - Tujuan Zap - Ikutan Tagar - Sorotan - Daftar Relay Indeks - Prolog Petualangan - Adegan Petualangan - Bacaan Petualangan - Bookmark Bernama - Obrolan Langsung - Siaran Langsung - Zap - Permintaan NWC - Respons NWC - Zap Privat - Permintaan Zap - Blog - Ruang Rapat - Kehadiran di Ruangan - Ruang Pertemuan - Profil - Daftar Bisukan - Status DVM - Permintaan Konten DVM - Respons Konten DVM - Daftar Orang - Gambar - Olahraga - Pin - Respons Poll - Relay Privat - Relay Proksi - Pesan Publik - Reaksi - Kartu Kontak - Pengumuman Monitor Relay - Set Relay - Laporan - Repost - Hapus Pengguna - Segel - Relay Pencarian - Status Pengguna - Catatan - Suntingan - Torrent - Komentar Torrent - Relay Tepercaya - Penyedia Tepercaya - Pesan Suara - Balasan Suara - Bookmark Web - Pengaturan Namecoin - Sinkronisasi Relay - Penjelajah Bitcoin (OTS) - acara dari Anda - acara kepada Anda - acara yang dapat dicari - profil - daftar outbox - Terakhir terlihat %1$s yang lalu - Terakhir terlihat pada %1$s (%2$s yang lalu) - Terakhir terlihat baru saja - Tidak pernah terlihat - - %1$d menit - - - %1$d jam - - - %1$d hari - - - %1$d minggu - - - %1$d bulan - - - %1$d tahun - - - %1$d mint - - - %1$d tagihan tertunda - - - Dana disimpan di %1$d mint yang tidak Anda gunakan - - Dipindahkan %1$s sat ke %2$s. - Tampilkan ke perangkat - Hentikan penayangan - Unggah HLS - Mengunggah %1$s (%2$d dari %3$d) - Atestasi - Permintaan Atestasi - Rekomendasi Atestator - Kemahiran Atestator - Bookmark Web - Tambah Bookmark Web - Edit Bookmark Web - %1$s didanai dari target %2$s sats - Tujuan Baru - Permintaan untuk Menghapus - Permintaan penghapusan terkirim - Riwayat Penghapusan - Pengguna - Acara - Kind - IP - Pengaturan - Usulkan perbaikan teks - Menggunakan model AI di perangkat untuk mengusulkan koreksi teks dan perubahan nada. - Siaran terlacak - Gunakan penyiar terlacak saat mengirim acara. Menampilkan progres langsung dan status per-relay saat menyiarkan. - Sarankan latihan untuk dibagikan - Membaca latihan yang selesai dari Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) dan menyarankan untuk membagikannya sebagai postingan. Izin hanya diminta saat Anda menghubungkan. - Pengaturan Compose - Buat draf secara otomatis - Menyimpan acara draf secara otomatis saat Anda mengetik atau meninggalkan composer dengan teks yang belum dikirim dan mengirimnya ke relay outbox privat Anda. - Paket emoji baru - Edit paket emoji - Paket Emoji Saya - Emoji - Emoji publik terlihat oleh semua orang dan muncul di menu reaksi Anda dan pemilih pelengkap otomatis \":\" saat paket ini ada di daftar emoji Anda. - Emoji privat disimpan terenkripsi di relay dan hanya terlihat oleh Anda. Mereka muncul di menu reaksi Anda dan pelengkap otomatis \":\" seperti emoji publik. - Draf berukuran %1$d byte; komunitas ini membatasi kind ini sebesar %2$d byte. - Draf berukuran %1$d byte; komunitas ini membatasi acara sebesar %2$d byte. - Anda telah memposting %1$d acara jenis ini hari ini (batas %2$d). - Situs Nowhere - Acara Nowhere - Penggalangan Dana Nowhere - Toko Nowhere - Petisi Nowhere - Pesan Nowhere - Drop Nowhere - Seni Nowhere - Forum Nowhere - - %1$d pesan - - - %1$d anggota - - Info grup diperbarui - Gagal memperbarui: %1$s - Gagal membuat grup: %1$s - Gagal keluar dari grup: %1$s - Menambahkan %1$s… - Gagal menambahkan %1$s: %2$s - kesalahan tidak diketahui - Anggota dihapus - Gagal menghapus anggota: %1$s - Hak admin diberikan - Gagal memberikan hak admin: %1$s - Hak admin dicabut - Gagal mencabut hak admin: %1$s - Bukan anggota grup ini Layanan Lightning penerima di %1$s tidak tersedia. Itu dihitung dari alamat Lightning \"%2$s\". Kesalahan: %3$s. Periksa apakah server aktif dan apakah alamat petir sudah benar Tidak dapat menyelesaikan %1$s. Periksa apakah Anda terhubung, apakah server aktif, dan apakah alamat Lightning %2$s sudah benar.\n\nPengecualian: %3$s Kesalahan penguraian JSON dari pengambilan tagihan %1$s. Periksa pengaturan Lightning pengguna diff --git a/amethyst/src/main/res/values-in/strings.xml b/amethyst/src/main/res/values-in/strings.xml index ef26f44dc4..5774487ee7 100644 --- a/amethyst/src/main/res/values-in/strings.xml +++ b/amethyst/src/main/res/values-in/strings.xml @@ -1,188 +1,26 @@ - Spam - Peniruan/penipuan - Perilaku Ilegal - Minta Penghapusan - Masuk dengan Kunci pribadi (nsec) untuk dapat membalas tulisan - Masuk dengan Kunci pribadi (nsec) untuk dapat mempromosikan tulisan - Masuk dengan Kunci pribadi (nsec) untuk dapat menyukai tulisan - Tidak Ada Pengaturan Jumlah Zap. Tekan dan tahan tombol untuk mengubah - Masuk dengan Kunci pribadi (nsec) untuk dapat mengirim Zaps - Masuk dengan Kunci pribadi (nsec) untuk dapat mengikuti - Masuk dengan Kunci pribadi (nsec) untuk berhenti mengikuti - Zaps - Promosi dipromosikan - Tambah - Gagal menguraikan pesan kesalahan - Profil - Filter Keamanan - Bayar - Pratinjau Gambar Kartu untuk %1$s - Deskripsi - Apa yang anda pikirkan? - Kirim Simpan - Buat - Batal - Errors - Gambar disimpan ke galeri - Gagal menyimpan gambar - Pengguna tidak memiliki alamat lightning (LN) yang diatur untuk menerima sats - "balas di sini.. " - Dikenali - Permintaan Baru - Pengguna diblokir - Utas Baru - Percakapan - Lebih banyak pilihan - Ikuti - Ikuti balik - Sembunyikan Kata Sandi - Kunci tidak sah - Kunci diperlukan - Tinggalkan - Berhenti mengikuti - Percakapan Publik - Hapus - tidak pernah - sekarang - jam - menit - hari - Ketelanjangan - Ujaran kotor/kebencian - Cadangkan Kunci - Kunci rahasia (nsec) disalin ke clipboard - Salin kunci rahasia saya - Autentikasi gagal - Teks catatan disalin ke papan klip - \@npub Penulis disalin ke papan klip - Note ID (@note1) disalin ke papan klip - <Gagal mendeskripsikan pesan pribadi>\n\nAnda dikutip dalam percakapan pribadi/terenkripsi antara %1$s dan %2$s. - Akun - Kembali - Bagikan Tauatan ke Peramban - Bagikan - ID Catatan - Hapus - - Blokir - Penanda - Tambahkan Penanda Publik - Hapus dari Penanda Publik - Pilihan %s - (0–100)% - Hanya satu suara per pengguna yang diperbolehkan pada jenis pemungutan suara ini - Pembuat Pemungutan Suara tidak dapat memberikan suara dalam pemungutan suara sendiri. - Konten ini sama sejak kiriman tersebut dibuat - Konten ini telah berubah. Penulis mungkin tidak melihat atau menyetujui perubahan tersebut - Tambah Gambar - Tambah Video - Tambah Dokumen - Server Berkas - Semua yang diikuti - Global - Port Orbot Socks - Pesan Pribadi - Memberi tahu Anda ketika pesan pribadi tiba - Zaps diterima - Memberi tahu Anda ketika seseorang mengirimkan anda zap - %1$s sats - Dari %1$s - untuk %1$s - "Beritahu: " - Hari ini - Tidak ada jenis reaksi yang dipilih. Tekan dan tahan untuk mengubah - Baca dari Relai - Tulis ke Relai - Token Cashu - Tidak ada alamat Lightning yang diatur - Relai - Percakapan - Konten Sensitif - Menambahkan peringatan konten sensitif sebelum menampilkan konten ini - Pengaturan - Selalu - Tidak Pernah - Sistem - Terang - Gelap - Tema - Pratinjau Gambar - Pemutaran Video - Pratinjau URL - Pengirim Spam - Diredam. Klik untuk bersuara - Bersuara. Kilik untuk meredam Publik Pribadi - Subjek - Tema Gelap, Terang, atau Sistem - Memuat gambar dan GIF secara otomatis - Memutar video dan GIF secara otomatis - Tampilkan pratinjau URL - Tidak dapat mengirim zap - Pengguna %1$s tidak memiliki alamat lightning yang diatur untuk menerima sats - Kesalahan membuka aplikasi pengesahan - Tidak ditemukan Dompet untuk membayar faktur lightning (Kesalahan: %1$s). Silakan instal dompet Lightning untuk menggunakan zaps - Tidak ditemukan Dompet untuk membayar faktur lightning. Silakan instal dompet Lightning untuk menggunakan zaps - Pengguliran Mendalam - Sembunyikan Navbar saat Menggulir - Kata yg disembunyikan - Gambar Profil - Tampilkan Gambar Profil - Anda menggunakan kunci publik dan kunci publik bersifat hanya baca. Login dengan kunci pribadi untuk dapat menyembunyikan sebuah kata atau kalimat - Anda menggunakan kunci publik dan kunci publik bersifat hanya baca. Login dengan kunci pribadi untuk dapat menampilkan sebuah kata atau kalimat - Biometrik gagal mengautentikasi pemilik ponsel ini - Biometrik gagal mengautentikasi pemilik ponsel ini. Kesalahan: %1$s - Tidak dapat mengajukan pilihan - Jajak pendapat ditutup untuk suara baru - Apa artinya ini? - Tidak ada pengaturan lightning - Tidak dapat membayar tagihan - Tidak dapat mengambil dana - Tidak dapat menukarkan Cashu - Mint memberikan pesan kesalahan berikut: %1$s - Cashu diterima - %1$s sat telah dikirim ke dompet Anda. (Biaya: %2$s sat) - Tidak dapat mengambil faktur dari server penerima - Penyedia koneksi dompet Anda menampilkan kesalahan berikut: %1$s - Tidak dapat merakit LNUrl dari Alamat Lightning \"%1$s\". Periksa pengaturan pengguna - Jumlah faktur salah (%1$s sats) dari %2$s. Seharusnya %3$s - Tidak dapat membuat faktur lightning sebelum mengirim zap. Dompet Lightning penerima mengirimkan kesalahan berikut: %1$s - Pengguna hanya-baca - Tidak ada pengaturan reaksi Layanan lightning penerima pada %1$s tidak tersedia. Itu dihitung dari alamat petir \"%2$s\". Kesalahan: %3$s. Periksa apakah server aktif dan apakah alamat lightning sudah benar - Server yang Direkomendasikan - Saran bawaan yang dapat Anda tambahkan ke daftar dengan satu ketukan. - Video - Musik - Playlist - Episode - Podcast - - %1$d episode - - Trek musik baru - Playlist baru @@ -200,9 +38,6 @@ - - %1$d trek - @@ -212,29 +47,23 @@ - Sematkan ke Profil - Lepas Sematan dari Profil - Daftar Bookmark Baru - Metadata Daftar Bookmark - Kumpulan Hashtag - Kumpulan Minat Baru @@ -242,7 +71,6 @@ - Ganti nama @@ -260,13 +88,9 @@ - Jadikan pribadi: bungkus catatan sebagai hadiah hanya untuk pengguna yang diberitahu - Jadikan publik - Balasan ke catatan pribadi selalu tetap pribadi - Terlihat oleh Belum ada penerima: hanya Anda yang dapat melihat catatan ini. Tambahkan orang untuk berbagi. @@ -282,31 +106,6 @@ - Metadata daftar bookmark dapat dilihat oleh siapa saja di Nostr. Hanya anggota pribadi Anda yang dienkripsi. - - Pindah ke Publik - - Pindah ke Pribadi - - - - - - - - - - - - - - Isi ulang & kirim zap - - Kirim zap - - - - Isi ulang %1$s sats ke %2$s dan zap %3$s %4$s sats · biaya ≈ %5$s sats @@ -321,14 +120,6 @@ - Pilihan tunggal - - Pilihan ganda - - - - - Tambah Media @@ -336,9 +127,31 @@ - Pilih server untuk mengunggah file ini - Server Media + + + + + + + + + + + + + + + + + + + + + + + + Atur server unggah media pilihan Anda. @@ -356,44 +169,6 @@ - Target Pembayaran - - - Tambahkan alamat pembayaran untuk jaringan berbeda (mis. bitcoin, lightning, ethereum). - - - - - - Tidak ada aplikasi yang ditemukan untuk menangani pembayaran ini. Silakan instal dompet yang kompatibel. - - Tidak ada aplikasi yang terinstal untuk menangani pembayaran %1$s. Silakan instal dompet yang kompatibel. - - Tidak dapat membuka pembayaran - - - - - - - - - - Opsi Privasi - - - - Semua Pengikut Pengguna - - Daftar Ikut Default - - Di Sekitar Saya - - Terkurasi - - Milik Saya - - Daftar Bisukan @@ -408,9 +183,33 @@ - Daftar Ikut Baru - Pack Ikut Baru + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -424,190 +223,70 @@ - Edit Daftar - Port default adalah 9050 - Mesin Tor Aktif - Gunakan versi internal atau Orbot - Prasetel Tor/Privasi - Ubah semua pengaturan di bawah dengan cepat - Url/Relay Onion - Gunakan Tor untuk url .onion apa pun - Relay DM - Paksa Tor untuk mengirim dan menerima DM - Relay Tidak Tepercaya - Paksa Tor pada relay outbox/inbox - Relay Tepercaya - Paksa Tor pada semua relay di daftar Anda - Foto Profil - Paksa Tor saat memuat foto profil - Pratinjau URL - Paksa Tor saat memuat pratinjau url - Gambar - Paksa Tor saat memuat gambar - Video - Paksa Tor saat memuat video - Operasi Uang - Paksa Tor pada zap, Lightning, dan transfer Cashu - Verifikasi Alamat Nostr - Paksa Tor saat memverifikasi alamat NIP-05 - Unggahan Media - Paksa Tor saat mengunggah konten - Internal - Orbot - Mati - Dasar - Default - Semua kecuali Media - Privasi Penuh - Kustom - Gunakan Tor saat diperlukan oleh server - Sembunyikan IP Anda dari relay acak - Sembunyikan IP Anda dari segalanya, kecuali gambar dan video - Sembunyikan IP Anda di semua koneksi - Buat sendiri - Balas - Tandai Sudah Dibaca - Pesan baru - Zap baru - Reaksi - Memberi tahu Anda saat seseorang bereaksi pada postingan Anda - %1$s bereaksi pada postingan Anda - untuk %1$s - Reaksi baru - Catur - Memberi tahu Anda tentang peristiwa permainan catur - %1$s menerima tantangan catur Anda - %1$s bergerak — giliran Anda - Pembaruan catur - Balasan - Memberi tahu Anda saat seseorang membalas postingan Anda %1$s membalas pada: %1$s - Balasan baru - - Sebutan - - Memberi tahu Anda saat seseorang menyebut atau mengutip Anda dalam postingan - - %1$s menyebut Anda - - Sebutan baru - - Panggilan masuk - - Notifikasi untuk panggilan suara dan video masuk - - Panggilan masuk - - Panggilan suara masuk… - - Panggilan video masuk… - - - - - Panggilan dengan %1$s - - Panggilan - - Notifikasi panggilan berlangsung - - Tutup telepon - - Terima - - Tolak - - - Bisukan - - Aktifkan suara - - Kamera aktif - - Kamera mati - - - Pengeras suara - - Earpiece - - Bluetooth - - - - - - - Amethyst membutuhkan akses mikrofon untuk memulai panggilan suara. Mohon aktifkan di pengaturan aplikasi. - - Amethyst membutuhkan akses kamera dan mikrofon untuk memulai panggilan video. Mohon aktifkan keduanya di pengaturan aplikasi. - - - - Pengaturan Panggilan @@ -623,80 +302,52 @@ - Menjaga koneksi ke relay inbox Anda aktif untuk notifikasi real-time - Notifikasi Amethyst Aktif - - Terhubung ke %1$d relay inbox - - - Terhubung ke %1$d relay - - Menghubungkan ke relay inbox… + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Layanan notifikasi selalu aktif Menjaga koneksi persisten ke relay inbox Anda untuk pengiriman notifikasi instan. Menampilkan notifikasi yang terus berjalan. Menggunakan lebih banyak baterai tetapi memastikan Anda tidak pernah melewatkan pesan. - Pisahkan notifikasi berdasarkan Mengikuti - - Tampilkan dua tab notifikasi — Mengikuti (orang yang Anda ikuti) dan Semua Orang. Indikator belum dibaca hanya menyala untuk aktivitas dari orang yang Anda ikuti. - - Tampilkan Pesan - - Sertakan pesan langsung dan grup pada tab Notifikasi. Matikan untuk menyimpan pesan hanya di tab Pesan. - - - - - - - - Sembunyikan - - Tampilkan - - Peringatkan - - Filter spam - - Menyembunyikan postingan dari orang asing yang persis sama sebanyak 5 kali atau lebih - - Tambahkan tag klien ke acara saya - - Saat diaktifkan, Amethyst menambahkan tag klien NIP-89 ke acara yang Anda publikasikan. - - Peringatkan pada laporan - - Menampilkan pesan peringatan saat postingan atau profil mendapat laporan dari orang yang Anda ikuti - - - - - - - - Sembunyikan postingan yang melanggar aturan komunitas - - Menghapus postingan dari umpan komunitas saat komunitas menerbitkan dokumen aturan NIP-9B dan sebuah acara tidak memenuhinya. Tidak berpengaruh saat komunitas tidak memiliki aturan terstruktur. - - Preferensi filter - - Konten diblokir - - - Anda belum memblokir pengguna mana pun. - - Tidak ada akun yang ditandai sebagai spam dalam sesi ini. - - Tidak ada kata tersembunyi. Tambahkan kata di bawah untuk menyembunyikan postingan yang mengandungnya. - - Jumlah dalam byte yang dikirim ke relay ini, termasuk filter dan acara - - Jumlah dalam byte yang diterima dari relay ini, termasuk filter dan acara @@ -711,12 +362,43 @@ - Kebijakan Privasi - Standar Keamanan Anak - Tentang & Hukum + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -766,122 +448,76 @@ - Paket Ikuti - Bacaan - Algoritma Feed - Marketplace - Siaran Langsung - Komunitas - Preferensi UI Preferensi Aplikasi - Terjemahan - - Reaksi - - Pengaturan Akun - - Pengaturan Aplikasi - - - - Zona Berbahaya - - Setel Ulang Status Marmot - - - - - Status Marmot berhasil disetel ulang. - - Gagal menyetel ulang status Marmot: %1$s - - WiFi Tanpa Kuota - - Lengkap - - Disederhanakan - - Performa - - Klasik - - Modern - - Wallet Connect - - Putar Otomatis Video - - Mode UI - - Pilih gaya postingan - - Gaya Galeri Profil - - Pilih gaya galeri - - - Mundur %d detik - - Maju %d detik - - - - Postingan Eksklusif Lokasi - - Hanya pengikut lokasi yang akan melihatnya. Pengikut umum Anda tidak akan melihatnya. - - %1$d lagu - - - - +%1$d lagu lainnya - - Unggah gambar sampul - - Pilih gambar persegi sebagai karya seni untuk lagu ini. - - Unggah file audio - - Pilih MP3, WAV, atau FLAC. File akan diunggah ke server media Anda saat Simpan. - - - Mengunggah sampul + audio dan menerbitkan. Proses ini akan terus berjalan meskipun Anda meninggalkan layar. - - Edit playlist - Unggah gambar sampul - - Pilih gambar persegi sebagai karya seni untuk playlist ini. - Mengunggah sampul dan menerbitkan. Proses ini akan terus berjalan meskipun Anda meninggalkan layar. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -893,95 +529,57 @@ Grup - Tidak Dapat Mengunggah - - Masukkan tujuan pesan terlebih dahulu - - Dompet tidak ditemukan - - Amethyst tidak dapat menemukan aplikasi dompet apa pun yang mendukung Nostr Wallet Connect (NWC). -\n\nYang dapat Anda lakukan: -\n\t1. Verifikasi Dukungan NWC: Pastikan aplikasi dompet pilihan Anda kompatibel dengan Nostr Wallet Connect. -\n\t2. Buat Koneksi: Buka aplikasi dompet Anda dan buat koneksi NWC baru. -\n\t3. Hubungkan ke Amethyst: Dompet Anda biasanya akan memberikan tiga pilihan: -\n\t\t3.1 Tautan Otomatis: Tombol untuk secara otomatis membuka dan terhubung ke Amethyst. Jika ada, klik tombol tersebut, buka Amethyst dan tekan simpan di layar baru. -\n\t\t3.2 Tautan Manual: URI Koneksi yang dapat Anda salin dan klik ikon tempel di layar ini untuk memasukkannya secara langsung. -\n\t\t3.3 Kode QR: Dompet membuat kode QR yang dapat Anda baca dari tombol kode QR di layar ini. - - - Putar video secara otomatis saat terlihat di layar - - - Salin ke clipboard - - Disalin ke clipboard - Bagikan atau Simpan + + + + + + + Kirim sebagai DM - Media ditambahkan - Media ditambahkan ke Galeri Profil Anda - Aplikasi penandatangan tidak ditemukan. Periksa apakah aplikasi belum dihapus - Tidak dapat memutar video ini - Codec atau format tidak didukung di perangkat ini (%1$s). Coba buka di browser Anda. - Buka di browser - Permintaan tanda tangan ditolak - Pastikan aplikasi penandatangan telah mengizinkan transaksi ini - Tidak dapat membuka tautan Blossom - Aplikasi Blossom tidak ditemukan. Silakan instal aplikasi Blossom lokal untuk melihat file ini - Utas yang dibisukan - Tidak ada utas yang dibisukan - Tidak ada dompet Cashu yang kompatibel ditemukan di sistem - Tidak dapat mengambil invoice dari %1$s: %2$s - Kesalahan Parsing JSON dari %1$s. Periksa pengaturan Lightning pengguna - URL Callback tidak ditemukan dari respons %1$s - Notifikasi - Pengiriman - Tampilan dalam aplikasi - Kategori - Pesan dari %1$s - Halo %1$s, apakah ini masih tersedia? @@ -999,63 +597,34 @@ - Pakaian - Aksesori - Elektronik - Furnitur - Kolektibel - Buku - Hewan Peliharaan - Olahraga - Kebugaran - Seni - Kerajinan - Rumah - Kantor - Makanan - Lain-lain - Lainnya - Gagal mengunggah media - Tidak dapat membuka file terkompresi - Kesalahan pengunggahan: %1$s - Server tidak memberikan URL setelah pengunggahan - Tidak dapat mengunduh media yang diunggah dari server - Tidak dapat memeriksa file yang diunduh setelah diunggah: %1$s - Gagal mengunggah ke %1$s: %2$s - Gagal menghapus: %1$s - Media terlalu besar untuk NIP-95 - Enkripsi file - Enkripsi file sebelum diunggah untuk privasi. Beberapa server mungkin tidak menerima file terenkripsi pada akun gratis. - Pengunggahan terenkripsi gagal - Banyak server tidak menerima file terenkripsi pada akun gratis. Anda dapat mencoba ulang tanpa enkripsi. @@ -1065,46 +634,15 @@ - Gunakan Codec H.265/HEVC - Kualitas lebih baik dengan ukuran file lebih kecil tetapi tidak semua perangkat mendukung pemutaran H.265. - Konversi GIF ke MP4 - Mengonversi GIF animasi ke video MP4 untuk ukuran file lebih kecil dan kompatibilitas pemutaran yang lebih baik. - Hapus metadata pribadi - Berusaha menghapus metadata pribadi dari file media yang didukung sebelum diunggah - Metadata tidak dapat dihapus - Gagal menghapus metadata pribadi dari media. Unggahan dibatalkan. - - Unggahan dibatalkan - - Tidak dapat menghapus metadata dari AVIF: %1$s - - - - Beranda - - Temukan - - Pesan - - Notifikasi - - - Kalender - - Daftar kalender - - Catur - - Dompet @@ -1142,7 +680,19 @@ - Dompet Cashu (NIP-60) + + + + + + + + + + + + + @@ -1164,23 +714,14 @@ Kunci privat P2PK (hex) - Edit mints Simpan perubahan - - +%1$d lainnya - - - Direkomendasikan oleh %1$d orang lain - - Mint populer - Mint yang cocok @@ -1194,9 +735,7 @@ - Diterima - Terkirim @@ -1206,14 +745,12 @@ - Publikasikan permintaan hapus untuk rekomendasi kind:38000 Anda atas %1$s. Relay yang menghormati NIP-09 akan menghapusnya. - Berhasil memulihkan %1$s sats dari %2$s bukti. @@ -1237,28 +774,21 @@ - Bayar %1$s sat + hingga %2$s sat biaya? - Nutzap gagal - Tidak ada pubkey penerima pada catatan - Nutzap bersifat publik dan akan mengungkap catatan privat ini. Gunakan zap Lightning sebagai gantinya. - Tidak dapat membuat referensi event - Menunggu invoice dibayar… - Memeriksa mint… @@ -1294,38 +824,19 @@ - Lambat - Normal - Cepat - ~1 jam - ~30 menit - ~10 menit - %1$s · %2$s sat/vB · %3$s - - Kirim %1$s sats, %2$d cara - - - Gunakan pembagian zap %1$d-cara dari catatan ini - - - Dibagi di antara %1$d penerima - - - Melewati %1$d penerima yang hanya memiliki alamat Lightning — on-chain memerlukan pubkey Nostr untuk menurunkan alamat. - @@ -1337,63 +848,37 @@ - memuat saldo - membangun transaksi - menandatangani - menyiarkan - mempublikasikan tanda terima - Backend chain Bitcoin belum dikonfigurasi - Tidak dapat memuat saldo Bitcoin Anda - Tidak dapat membangun transaksi - Bagian penerima di bawah batas debu - Tidak dapat menandatangani transaksi - Tidak dapat menyiarkan transaksi - Pembayaran terkirim, tetapi tanda terima zap tidak dapat dipublikasikan - - Pembayaran terkirim (%1$d dari %2$d tanda terima dipublikasikan), tetapi tanda terima berikutnya tidak dapat dipublikasikan - - Impor Pengikutan - Produk Baru - Artikel Baru - Acara Kalender Baru - Edit Acara Kalender - Kalender Baru - Edit Kalender - Umpan - Bulan - Minggu - Hari @@ -1427,9 +912,6 @@ - - %1$s, %2$d acara - @@ -1456,24 +938,14 @@ - Sedang berlangsung - %1$s · selesai %2$s - Bagikan acara kalender - calendar_reminders - Pengingat kalender - Pemberitahuan saat acara yang Anda hadiri akan segera dimulai. - Acara kalender - - Mulai dalam %1$d menit - @@ -1482,33 +954,23 @@ - Unggahan gambar gagal - Gambar yang dipilih tidak dapat diunggah. Coba lagi atau tempel URL. - Pengingat kalender - Kirim pengingat - Pemberitahuan akan muncul saat acara yang Anda hadiri akan segera dimulai. - - %1$d mnt - - Buka di peta - Buka tautan @@ -1524,20 +986,16 @@ - Buka semua reaksi pada postingan ini - Tutup semua reaksi pada postingan ini - Zap - Bilah Navigasi Bawah Seret untuk mengurutkan ulang. Aktifkan/nonaktifkan untuk menambah atau menghapus item dari bilah bawah. Dengan nol item, bilah bawah tersembunyi. @@ -1548,39 +1006,10 @@ Pilih tab mana yang muncul di layar Beranda. Ketika hanya satu tab yang aktif, bilah tab disembunyikan. - Semua - Tampilan Profil Pilih bagian dan umpan mana yang muncul di layar profil pengguna. Semua opsi diaktifkan secara default. - Lencana Profil - - Rekomendasi Aplikasi - - Umpan Zap Diterima - - Umpan Pengikut - - Baris Reaksi - - - - - - - - - - - - - - - - - - Tombol Pemutar Video @@ -1600,7 +1029,27 @@ - Visualisasi Audio + + + + + + + + + + + + + + + + + + + + + @@ -1626,7 +1075,6 @@ - Tanggal Kedaluwarsa @@ -1634,11 +1082,8 @@ - Alamat tidak valid - Amethyst menerima URI untuk dibuka tetapi URI tersebut tidak valid: %1$s - Relay Kotak Masuk DM @@ -1646,103 +1091,63 @@ - Relay Pencarian - Pilihan yang baik:\n%1$s - Relay Outbox - Relay Kotak Masuk - Pengaturan Relay - Relay Outbox/Beranda Publik - Pengguna memposting kontennya ke relay ini - Jenis relay ini menyimpan semua konten Anda. Amethyst akan mengirim postingan Anda ke sini dan orang lain akan menggunakan relay ini untuk menemukan konten Anda. Masukkan 1–3 relay. Bisa berupa relay pribadi, relay berbayar, atau relay publik. - Relay Kotak Masuk Publik - Pengguna menerima notifikasi di relay ini - Jenis relay ini menerima semua balasan, komentar, suka, dan zap ke postingan Anda. Bisa berupa relay berbayar atau gratis. Batasan yang ditetapkan oleh operator relay dapat membatasi notifikasi yang Anda terima, baik positif maupun negatif. Misalnya, jika Anda diserang spam komentar, relay berbayar dapat menyaring spam tersebut. Masukkan 1–3 relay. - Relay Kotak Masuk DM - Pengguna menerima DM di relay ini - Masukkan 1–3 relay sebagai kotak masuk pribadi Anda. Orang lain akan menggunakan relay ini untuk mengirim DM kepada Anda. Relay Kotak Masuk DM harus menerima pesan dari siapa saja, tetapi hanya mengizinkan Anda untuk mengunduhnya. Pilihan yang baik:\n - inbox.nostr.wine (berbayar)\n - auth.nostr1.com (gratis)\n - you.nostr1.com (relay pribadi - berbayar) - KeyPackages - Relay KeyPackage - Relay tempat KeyPackage MLS Anda dipublikasikan (MIP-00). Pengguna lain mengambil KeyPackage ini untuk mengundang Anda ke obrolan grup Marmot. Masukkan 1–3 relay yang menerima event KeyPackage dari Anda dan mengizinkan pembacaan publik. - Relay Beranda Pribadi - Masukkan 1–3 relay untuk menyimpan event yang tidak dapat dilihat orang lain, seperti Draft dan/atau pengaturan aplikasi Anda. Idealnya, relay ini bersifat lokal atau memerlukan autentikasi sebelum mengunduh konten setiap pengguna. - Relay Terhubung - Daftar relay yang sedang digunakan - Relay Pencarian - Daftar relay yang digunakan saat mencari konten atau pengguna. Penandaan dan pencarian tidak akan berfungsi jika tidak ada pilihan yang tersedia. Pastikan mereka mengimplementasikan NIP-50. - Relay Lokal - Daftar relay yang berjalan di perangkat ini. - Teruskan profil ke relay lokal - Kirim semua event profil (kind 0) yang diterima ke relay lokal Anda - Relay Tepercaya - Relay yang Anda percaya sehingga tidak memerlukan koneksi Tor - Feed Relay Favorit - Relay yang sering Anda kunjungi untuk melihat feed Global mereka - Relay Proxy - Relay agregator yang harus digunakan aplikasi untuk mengunduh feed Anda, seperti filter.nostr.wine. Ini menggantikan model outbox dan akan membuat aplikasi hanya terhubung ke relay dalam daftar Anda. - Relay Siaran - Relay yang berspesialisasi dalam mendorong catatan Anda ke semua relay lainnya, seperti sendit.nosflare.com. Amethyst akan menambahkan relay ini ke semua event baru yang Anda buat - Relay Indeks - Relay yang berspesialisasi dalam menyimpan metadata dan daftar relay semua orang, seperti purplepag.es. Amethyst akan menggunakan relay ini untuk menemukan pengguna yang tidak ada dalam daftar Anda. - Relay Diblokir - Amethyst tidak akan pernah terhubung ke relay ini - Ekspor pengaturan relay @@ -1783,12 +1188,6 @@ - Bukti Stempel Waktu - - Ada bukti bahwa postingan ini ditandatangani sebelum %1$s. Bukti ini dicap dalam blockchain Bitcoin pada tanggal dan waktu tersebut. - - - Edit Postingan @@ -1799,15 +1198,6 @@ - Tidak dapat membalas catatan draft - - Tidak dapat mengutip catatan draft - - Tidak dapat bereaksi terhadap catatan draft - - Tidak dapat zap catatan draft - - Catatan Draft @@ -1815,107 +1205,69 @@ - Bad Request - Server tidak dapat atau tidak mau memproses permintaan. - Unauthorized - Pengguna tidak memiliki kredensial autentikasi yang valid - Payment Required - Server memerlukan pembayaran untuk menyelesaikan permintaan - Forbidden - Pengguna tidak memiliki hak akses untuk membuat permintaan - Not Found - Server tidak dapat menemukan alamat yang diminta - Method Not Allowed - Server mendukung metode permintaan, tetapi tidak untuk sumber daya target - Not Acceptable - Server tidak menemukan konten yang memenuhi permintaan. - Proxy Authentication Required - Pengguna tidak memiliki kredensial autentikasi yang valid - Request Timeout - Server kehabisan waktu menunggu pihak lain - Conflict - Server tidak dapat memenuhi permintaan karena ada konflik dengan sumber daya - Gone - Konten yang diminta telah dihapus permanen dari server dan tidak akan dipulihkan - Length Required - Server menolak permintaan karena memerlukan panjang yang ditentukan - Precondition Failed - Prasyarat permintaan dalam bidang header yang gagal dipenuhi oleh server - Payload Too Large - Permintaan lebih besar dari batas yang ditentukan server, dan server menolak untuk memprosesnya - URI Too Long - URL yang diminta oleh klien terlalu panjang untuk diproses server. - Unsupported Media Type - Permintaan menggunakan format media yang tidak didukung server - Range Not Satisfiable - Server tidak dapat memenuhi nilai yang ditunjukkan dalam bidang header Range permintaan. - Expectation Failed - Server tidak dapat memenuhi persyaratan yang ditunjukkan oleh bidang header permintaan Expect - Upgrade Required - Server menolak memproses permintaan menggunakan protokol saat ini kecuali klien meningkatkan ke protokol yang berbeda. - Internal Server Error - Server mengalami kesalahan tak terduga dan tidak dapat menyelesaikan permintaan - Not Implemented - Server tidak dapat memenuhi permintaan atau tidak mengenali metode permintaan - Bad Gateway - Server bertindak sebagai gateway dan mendapat respons tidak valid dari host - Service Unavailable - Ini sering terjadi ketika server kelebihan beban atau sedang dalam pemeliharaan - Gateway Timeout - Server bertindak sebagai gateway atau proxy dan habis waktu menunggu respons - HTTP Version Not Supported - Server tidak mendukung versi HTTP dalam permintaan - Variant Also Negotiates - Server memiliki kesalahan konfigurasi internal - Insufficient Storage - Server tidak memiliki cukup penyimpanan untuk memproses permintaan dengan sukses - Loop Detected - Server mendeteksi loop tak terbatas saat memproses permintaan - Network Authentication Required - Klien harus diautentikasi untuk mengakses jaringan + + + + + + + Server Blossom Tambahkan server sebanyak yang Anda inginkan. Anda dapat memilih mana yang akan digunakan nanti saat mengunggah gambar Anda - Tambah Server NIP-96 - Tambah Server Blossom Unduh - Gagal membuka file - Tidak ada aplikasi torrent yang terpasang untuk membuka dan mengunduh file. - Event tidak memiliki cukup informasi untuk membangun tautan magnet - Daftar Saya - Feed - Tagar - Set Minat - Lokasi - Komunitas - Daftar - Algoritma Feed - Semua algoritma feed favorit - Relay - Algoritma Feed Favorit @@ -1930,895 +1282,6 @@ - Pesan Pribadi - - Pesan Publik - - - - Tidak dapat berbagi gambar, coba lagi nanti… - - - Tidak dapat berbagi video, coba lagi nanti… - - Mengunduh video… - - - - - - - - - - - - - - - - - - Jangan Terjemahkan Dari - - Bahasa yang ditampilkan di sini tidak akan diterjemahkan. Pilih bahasa untuk menghapusnya dan terjemahkan kembali. - - Terjemahkan Ke - - Pilih bahasa untuk menerjemahkan konten. - - Preferensi Tampilan Bahasa - - Untuk setiap pasangan bahasa yang diterjemahkan, pilih bahasa mana yang ditampilkan terlebih dahulu. - - - - - - - - - - - Jeda - - Putar - - - - - - - - - Pesan ini akan hilang dalam %1$s - - - - - - - - - - - - - - - Metadata Daftar Ikutan - - Metadata daftar ikutan dapat dilihat oleh siapa saja di Nostr. Hanya anggota privat Anda yang dienkripsi. - - Metadata Follow Pack - - Metadata follow pack dapat dilihat oleh siapa saja di Nostr dan sering diterbitkan di banyak situs web sebagai kit awal bagi pengguna baru. - - Edit Follow Pack - - - - - - - - - - - - - - - - Perluas - - - - - Coba ulang - - - - - - - - - - - Reaksi - - Postingan Suara - - Balasan Suara - - - - - - - - - - - - - - - - - - - - - - Outbox Relay - - Aplikasi - - Rekomendasi Aplikasi - - Pengaturan Pengguna - - Header Audio - - Trek Audio - - Trek Musik - - Daftar Putar Musik - - Episode Podcast - - Acara Podcast - - Podcast yang Dibuat - - Podcast Favorit - - Penghargaan Lencana - - Definisi Lencana - - Kumpulan Lencana yang Diterima - - Lencana Profil - - Relay yang Diblokir - - Server Blossom - - Server Nests - - Blossom Auth - - Relay Siaran - - Daftar Bookmark - - Daftar Bookmark Lama - - Janji Harian - - Kalender - - Janji - - RSVP Janji - - Permainan Catur - - Chess Auth - - Relay Favorit - - Tantangan Catur - - Penerimaan Permainan Catur - - Gerakan Catur - - Akhir Permainan Catur - - Tawaran Seri Catur - - Definisi Saluran - - Sembunyikan Pesan Saluran - - Daftar Saluran - - Pesan Saluran - - Metadata Saluran - - Bisukan Pengguna Saluran - - File DM - - Pesan DM - - Relay DM - - Iklan Baris - - Komentar - - Definisi Komunitas - - Daftar Komunitas - - Postingan Komunitas - - Daftar Ikutan - - Penghapusan - - Draf - - Paket Emoji - - Daftar Paket Emoji - - Obrolan Sementara - - Ruang Obrolan Sementara - - Header File - - Galeri Profil - - Server File - - Data Blob - - Header Blob - - Data Medis - - Follow Pack - - Repost (16) - - Ikutan Geohash - - GiftWrap - - Git Issue - - Git Patch - - Git Repo - - Git Reply - - Tujuan Zap - - Ikutan Tagar - - Sorotan - - Http Auth - - Daftar Relay Indeks - - Prolog Petualangan - - Adegan Petualangan - - Bacaan Petualangan - - Bookmark Bernama - - Obrolan Langsung - - Siaran Langsung - - Zap - - Permintaan NWC - - Respons NWC - - Zap Privat - - Permintaan Zap - - Blog - - Ruang Rapat - - Kehadiran di Ruangan - - Ruang Pertemuan - - Profil - - Daftar Bisukan - - NNS - - NIP - - Nostr Connect - - Status DVM - - Permintaan Konten DVM - - Respons Konten DVM - - DVM User Req - - DVM User Resp - - OTS - - PayTo - - Daftar Orang - - Gambar - - Olahraga - - Pin - - Zap Poll - - Poll - - Respons Poll - - NIP-04 DMs - - Relay Privat - - Relay Proksi - - Pesan Publik - - Reaksi - - Kartu Kontak - - Relay Auth - - Relay Discovery - - Pengumuman Monitor Relay - - Set Relay - - Laporan - - Repost - - Hapus Pengguna - - Segel - - Relay Pencarian - - Status Pengguna - - Catatan - - Suntingan - - Torrent - - Komentar Torrent - - Relay Tepercaya - - Penyedia Tepercaya - - Video (Repl) - - Shorts (Repl) - - Video - - Shorts - - Pesan Suara - - Balasan Suara - - WakeUp - - Bookmark Web - - Wiki - - - - - - - - - - - - - - - - - %1$d%% uptime - - Pengaturan Namecoin - - - - - - - - - - - %dms - - - - - - Sinkronisasi Relay - - - - - - - - - - - - - - - - - - - - - - - - - - - - Penjelajah Bitcoin (OTS) - - acara dari Anda - - acara kepada Anda - - acara yang dapat dicari - - DMs - - profil - - daftar outbox - - Terakhir terlihat %1$s yang lalu - - Terakhir terlihat pada %1$s (%2$s yang lalu) - - Terakhir terlihat baru saja - - Tidak pernah terlihat - - - - %1$d menit - - - - %1$d jam - - - - %1$d hari - - - - %1$d minggu - - - - %1$d bulan - - - - %1$d tahun - - - - %1$d mint - - - - %1$d tagihan tertunda - - - - - - - - Dana disimpan di %1$d mint yang tidak Anda gunakan - - - - - - - - - - - - - - - - Dipindahkan %1$s sat ke %2$s. - - - - - - - - - - - - - Tampilkan ke perangkat - - Hentikan penayangan - - - - Unggah HLS - - - - - - - - - - - - - - - - - - - - - Mengunggah %1$s (%2$d dari %3$d) - - - - - - - - - - - - - - - - - - Atestasi - - - - - - - - Permintaan Atestasi - - Rekomendasi Atestator - - - Kemahiran Atestator - - - - - - - - Bookmark Web - - Tambah Bookmark Web - - Edit Bookmark Web - - - - - - - - - - - - - - - %1$s didanai dari target %2$s sats - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tujuan Baru - - Permintaan untuk Menghapus - - - - - - - - - - - - - - Permintaan penghapusan terkirim - - - - - - - - - - - - - - Riwayat Penghapusan - - - - - - - Pengguna - - Acara - - Kind - - IP - - Pengaturan - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Usulkan perbaikan teks - - Menggunakan model AI di perangkat untuk mengusulkan koreksi teks dan perubahan nada. - - Siaran terlacak - - Gunakan penyiar terlacak saat mengirim acara. Menampilkan progres langsung dan status per-relay saat menyiarkan. - - Sarankan latihan untuk dibagikan - - Membaca latihan yang selesai dari Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) dan menyarankan untuk membagikannya sebagai postingan. Izin hanya diminta saat Anda menghubungkan. - - Pengaturan Compose - - Buat draf secara otomatis - - Menyimpan acara draf secara otomatis saat Anda mengetik atau meninggalkan composer dengan teks yang belum dikirim dan mengirimnya ke relay outbox privat Anda. - - - - - - - - - - - - - - - - - Paket emoji baru - - Edit paket emoji - - - - - - - - - - - - - - - - - - - - - - - - Paket Emoji Saya - - Emoji - - - - Emoji publik terlihat oleh semua orang dan muncul di menu reaksi Anda dan pemilih pelengkap otomatis \":\" saat paket ini ada di daftar emoji Anda. - - Emoji privat disimpan terenkripsi di relay dan hanya terlihat oleh Anda. Mereka muncul di menu reaksi Anda dan pelengkap otomatis \":\" seperti emoji publik. - - - - - - Draf berukuran %1$d byte; komunitas ini membatasi kind ini sebesar %2$d byte. - - Draf berukuran %1$d byte; komunitas ini membatasi acara sebesar %2$d byte. - - Anda telah memposting %1$d acara jenis ini hari ini (batas %2$d). - - - - Situs Nowhere - - Acara Nowhere - - Penggalangan Dana Nowhere - - Toko Nowhere - - Petisi Nowhere - - Pesan Nowhere - - Drop Nowhere - - Seni Nowhere - - Forum Nowhere - @@ -2835,23 +1298,6 @@ - - %1$d pesan - - - - %1$d anggota - - - - - - - Info grup diperbarui - - Gagal memperbarui: %1$s - - Gagal membuat grup: %1$s @@ -2862,13 +1308,6 @@ - Gagal keluar dari grup: %1$s - - Menambahkan %1$s… - - Gagal menambahkan %1$s: %2$s - - kesalahan tidak diketahui @@ -2877,9 +1316,6 @@ - Anggota dihapus - - Gagal menghapus anggota: %1$s @@ -2887,22 +1323,663 @@ - Hak admin diberikan - - Gagal memberikan hak admin: %1$s - Hak admin dicabut - - Gagal mencabut hak admin: %1$s - Bukan anggota grup ini + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2919,22 +1996,6 @@ - - Postingan ini memiliki lebih dari %1$d hashtag - - - - %1$d aset dibundel - - - - +%1$d\nbalasan - - - - - - Jumlah event spam yang berasal dari relay ini @@ -2949,43 +2010,36 @@ - Anda menggunakan kunci publik dan kunci publik bersifat hanya-baca. Masuk dengan kunci privat untuk dapat mengunggah - Anda menggunakan kunci publik dan kunci publik bersifat hanya-baca. Masuk dengan kunci privat untuk dapat menandatangani event - Dekripsi Tidak Diizinkan - Penanda tangan tidak mengizinkan dekripsi yang diperlukan untuk melakukan operasi ini. Aktifkan dekripsi NIP-44 di aplikasi penanda tangan Anda dan coba lagi - Penanda tangan tidak ditemukan - Apakah aplikasi penanda tangan telah dihapus? Periksa apakah penanda tangan terpasang dan memiliki akun ini. Keluar dan masuk kembali jika aplikasi penanda tangan telah berubah. - Penanda tangan eksternal mengembalikan payload yang tidak sesuai dengan permintaan. Mungkin ada bug di Amethyst atau di penanda tangan. + + + + + + edit #%1$s - Usulkan Suntingan - Meminta invoice… - Layanan debit tidak menyelesaikan pembayaran. - Bayar %1$s melalui %2$s? - Bayar invoice ini melalui %1$s? - Masukkan jumlah yang valid untuk penawaran ini. @@ -2994,13 +2048,9 @@ - Sekali pakai - Harian - Mingguan - Bulanan @@ -3026,13 +2076,11 @@ - Membayar melalui %1$s… - Pembayaran gagal @@ -3042,10 +2090,8 @@ - Dapat dibelanjakan untuk penerima ini: %1$s sats - Transaksi: %1$s @@ -3056,68 +2102,10 @@ - Tulis pesan… - Kirim Ganti nama - Kesalahan - - Persentase koneksi yang berhasil ke relay - - - - - - - - - Simpan ke Ponsel - - Unduhan video telah dimulai… - - Unduhan media telah dimulai… - - Sematkan ke atas - - Lepas sematan - - - Video disimpan ke galeri video ponsel - - Gagal menyimpan video - - PDF disimpan ke Unduhan/Amethyst - - Gagal menyimpan PDF - - - - - Tidak ada aplikasi kamera yang ditemukan di perangkat ini - - - Tekan dan tahan untuk merekam pesan - - - - - Kesalahan Unggahan - - Gagal mengunggah pesan suara - - NIP-95 belum didukung untuk pesan suara - - Unggahan suara gagal: %1$s - - Tidak ada - - Dalam - - Tinggi - - Netral @@ -3127,17 +2115,47 @@ - Tampilkan kode QR kunci privat - - Tampilkan kode QR kunci privat terenkripsi - Kunci tidak valid: %1$s - Kata sandi diperlukan - Nama diperlukan + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3153,30 +2171,6 @@ Profil obrolan baru: - Obrolan Menghilang - - Obrolan relay - - Obrolan relay - - Obrolan relay adalah grup obrolan yang dikendalikan oleh relay induknya. - Obrolan ini terlihat oleh semua orang di Nostr dan siapa pun dapat berpartisipasi. - Sangat cocok untuk komunitas terbuka seputar topik tertentu. Beberapa grup ini bersifat sementara - sehingga pesan obrolan akan menghilang seiring waktu - - Grup MLS - - - Metadata Obrolan Publik - - Obrolan publik terlihat oleh semua orang di Nostr dan siapa pun - dapat berpartisipasi. Sangat cocok untuk komunitas terbuka seputar topik tertentu. - Moderasi dapat dilakukan dengan menghapus postingan di relay-nya - - relay - - Masukkan antara 1–3 relay yang menjadi host grup ini. - Klien Nostr menggunakan pengaturan ini untuk mengetahui tempat mengunduh dan mengirim pesan Anda. @@ -3184,31 +2178,30 @@ - Gagal mengenkripsi kunci privat Anda - - - - Navigasi - - Anda - - Feed - - Buat - - Sistem - - Bagikan sebagai Gambar - - Bagikan sebagai URL Gambar - Bisukan utas + + + + + + + + + + + + + + + + + + - Batalkan bisukan utas @@ -3216,11 +2209,8 @@ - Markah berhasil dipindahkan - Draf - Postingan terjadwal @@ -3229,14 +2219,10 @@ - Jadwalkan postingan - Batalkan penjadwalan - Postingan terjadwal mungkin tidak diterbitkan hingga Anda membuka aplikasi lagi. Aktifkan selalu aktif di Pengaturan → Preferensi UI untuk penjadwalan latar belakang yang andal. - Postingan terjadwal mungkin tidak diterbitkan hingga Anda membuka aplikasi lagi. Postingan terjadwal akun lain tidak akan berjalan saat akun ini aktif. Aktifkan selalu aktif di Pengaturan → Preferensi UI untuk penjadwalan latar belakang yang andal. @@ -3245,109 +2231,61 @@ - %1$s · dalam %2$s - %1$s · %2$s yang lalu - Besok - Keluar - - Keluar · %d postingan terjadwal dihapus - - Postingan terjadwal diterbitkan - Postingan terjadwal gagal - Postingan terjadwal - Notifikasi saat postingan terjadwal diterbitkan atau gagal diterbitkan. - Kirim sekarang - Kesalahan: %1$s - Terjadwal - Mengirim… - Gagal - Terkirim - Dibatalkan - - Anda memiliki %d postingan terjadwal yang belum diterbitkan. Keluar akan menghapusnya secara permanen. - - - %d dalam antrean - - - · %d jatuh tempo dalam 1 jam - - - ke %d relay - - ID catatan disalin - Polling - Terbuka - Ditutup - Lencana - Komunitas - Komunitas Baru - Edit Komunitas - Moderator - Relay - Aturan yang dapat diverifikasi (opsional) - Jenis acara yang diizinkan - Teks singkat (1) - Artikel panjang (30023) - Postingan gambar (20) - Postingan video (21) - Video pendek (22) - Komentar komunitas (1111) @@ -3356,23 +2294,18 @@ - Pengguna yang diblokir - Gerbang web-of-trust (opsional) - Ukuran acara maksimum global (opsional) - Lencana Baru - Berikan Lencana @@ -3389,7 +2322,6 @@ - Lencana profil @@ -3413,12 +2345,9 @@ - Gambar - Latihan - Latihan Baru @@ -3445,87 +2374,56 @@ - Berlari - Berjalan - Bersepeda - Mendaki - Berenang - Mendayung - Kekuatan - Yoga - Meditasi - Diet - Puasa - Sirkuit - EMOM - AMRAP - Aplikasi Aplikasi - nApplets - - nSites - - - Browser - Memuat melalui Tor. Ketuk untuk menggunakan web terbuka. - - Memuat melalui web terbuka. Ketuk untuk menggunakan Tor. - Favorit - - - - Aplikasi favorit - - - Tambahkan ke favorit - - Hapus dari favorit - Memuat melalui Tor. - - Memuat melalui web terbuka. - Diterbitkan ke relay - Mengunggah file - Melakukan pembayaran - Aplikasi itu belum dimuat. Coba lagi sebentar lagi. - Terbaru + + + + + + + + + + + Izin nApplet @@ -3542,51 +2440,30 @@ - nApplet %1$s… Shell - Identitas - Tindakan keyboard - Relay - Penyimpanan - Pembayaran - Jaringan - Unggahan Tanyakan kapabilitas apa yang tersedia - Baca kunci publik Anda - Ikat pintasan keyboard - Baca, tandatangani, dan terbitkan event Anda - Penyimpanan pribadi miliknya sendiri - Bayar invoice Lightning - Ambil sumber daya web dan Blossom - Unggah file ke server media Anda - Tema - Notifikasi - Pesan - Sesuaikan warna aplikasi Anda - Tampilkan notifikasi kepada Anda - Tukar pesan dengan nApplet lain Kapabilitas: %1$s @@ -3594,33 +2471,19 @@ - nApplet ini ingin membaca kunci publik Anda. - nApplet ini ingin membaca profil dan data akun Anda. - nApplet ini ingin menandatangani dan menerbitkan event kind %1$d sebagai Anda. - nApplet ini ingin menandatangani dan menerbitkan event kind %1$d sebagai Anda: - nApplet ini ingin mengirim event terenkripsi sebagai Anda. - nApplet ini ingin membaca event dari relay Anda. - nApplet ini ingin menggunakan penyimpanan pribadinya. nApplet ini ingin membayar invoice Lightning. - nApplet ini ingin mengambil sumber daya web. - nApplet ini ingin mengunggah file ke server media Anda. - nApplet ini ingin menampilkan notifikasi kepada Anda. - Situs ini ingin menandatangani event kind %1$d dengan kunci Nostr Anda. - - nApplet ini ingin membayar invoice Lightning sebesar %1$d sat. - @@ -3634,35 +2497,25 @@ - Shorts - Obrolan Publik - Follow Packs - Live Streams - Nests - Angkat tangan - Turunkan tangan - Bisukan - Aktifkan suara - Gagal mengirim pesan @@ -3671,25 +2524,17 @@ - Bisukan mikrofon - Aktifkan mikrofon - Nests - Menjaga audio tetap berjalan saat ruang terbuka. - Nest terhubung - Nest — Live - Ketuk untuk kembali. - Berhenti @@ -3701,27 +2546,17 @@ - mengangkat tangan - naik ke panggung - sedang berbicara - bergabung sebagai penonton - meninggalkan nest - Tinggalkan - Gagal menandai ruang sebagai ditutup. Meninggalkan tetap — ruang akan ditutup otomatis. - - %1$d pendengar - @@ -3741,20 +2576,14 @@ - Senyapkan pembicara ini - Pulihkan pembicara ini - Ikuti - Berhenti mengikuti - Bisukan - Aktifkan suara @@ -3782,7 +2611,6 @@ - Gagal menyimpan daftar server nest Anda. Coba lagi. @@ -3796,12 +2624,9 @@ - Server nest - Server Anda - Disimpan sebagai event yang dapat diganti kind-10112 agar klien lain dapat membaca preferensi Anda. diff --git a/amethyst/src/main/res/values-it-rIT/strings.xml b/amethyst/src/main/res/values-it-rIT/strings.xml index 14657b1a5e..845dc3fbef 100644 --- a/amethyst/src/main/res/values-it-rIT/strings.xml +++ b/amethyst/src/main/res/values-it-rIT/strings.xml @@ -1,114 +1,12 @@ - - Questo post ha più di %1$d hashtag - Questo post ha più di %1$d hashtag - - - %1$d asset incluso - %1$d asset inclusi - - - +%1$d\\nrisposta - +%1$d\\nrisposte - - Il numero di eventi spam provenienti da questo relay - Impersonificazione - Comportamento scorretto - Richiedi cancellazione - Accedi con una chiave privata per poter rispondere - Accedi con una chiave privata per poter condividere i post - Accedi con una chiave privata per mettere mi piace ai post - Nessun ammontare per gli Zap impostato. Tieni premuto per cambiare - Accedi con una chiave privata per poter inviare gli Zap - Accedi con una chiave privata per poter seguire - Accedi con una chiave privata per poter smettere di seguire - Stai usando una chiave pubblica che è di sola lettura. Accedi con una chiave privata per poter nascondere una parola o una frase - Stai usando una chiave pubblica che è di sola lettura. Accedi con una chiave privata per poter mostrare una parola o una frase - Stai usando una chiave pubblica che è di sola lettura. Accedi con una chiave privata per poter caricare file - Stai usando una chiave pubblica che è di sola lettura. Accedi con una chiave privata per poter firmare eventi - Decrittazione non autorizzata - Il firmatario non ha autorizzato una decrittazione necessaria per questa operazione. Attiva le decrittazioni NIP-44 nella tua app firmatario e riprova - Firmatario non trovato - L\'app firmatario è stata disinstallata? Verifica che il firmatario sia installato e che contenga questo account. Esci e accedi di nuovo se l\'app firmatario è cambiata. - Il firmatario esterno ha restituito un payload inatteso per la richiesta. Potrebbe esserci un bug in Amethyst o nell\'app firmatario. - Zap - Condividi condiviso modifica n.%1$s - Proponi una modifica - Aggiungi - Errore analisi messaggio d\'errore - Profilo - Filtri di sicurezza - Richiesta fattura in corso… - Il servizio di addebito non ha completato il pagamento. - Pagare %1$s tramite %2$s? - Pagare questa fattura tramite %1$s? - Inserisci un importo valido per questa offerta. - Una tantum - Giornaliero - Settimanale - Mensile - Paga - Pagamento tramite %1$s… - Pagamento fallito - Spendibile per questo destinatario: %1$s sats - Transazione: %1$s - "Anteprima immagine per %1$s" - Descrizione - A cosa stai pensando? - Scrivi un messaggio… Salva - Invia - Crea Rinomina - Cancella - Errore - Errori - Percentuale di connessioni riuscite al relay - Salva sul telefono - Immagine salvata nella galleria - Download del video avviato… - Download del media avviato… - Fissa in cima - Rimuovi dalla cima - Salvataggio dell\'immagine non riuscito - Video salvato nella galleria video del telefono - Impossibile salvare il video - PDF salvato in Download/Amethyst - Impossibile salvare il PDF - Nessuna app fotocamera trovata su questo dispositivo - Tieni premuto per registrare un messaggio - Errore di caricamento - Impossibile caricare il messaggio vocale - NIP-95 non è ancora supportato per i messaggi vocali - Caricamento vocale fallito: %1$s - Nessuno - Profonda - Alta - Neutrale - L\'utente non dispone di un indirizzo Lightning per ricevere sats - "rispondi qui.. " - Conosciuto - Nuove richieste - Utenti bloccati - Nuove Discussioni - Conversazioni - Più Opzioni - Mostra QR code della chiave privata - Mostra QR code della chiave privata cifrata - Segui - Segui anche tu - Nascondi password - Chiave non valida - Chiave non valida: %1$s - La password è obbligatoria - La chiave è obbligatoria - Il nome è obbligatorio @@ -117,153 +15,7 @@ Nuovo profilo chat: - Esci - Non seguire più - Chat effimera - Chat relay - Chat relay - Le chat relay sono gruppi di chat controllati dal loro relay di riferimento. - Sono visibili a tutti su Nostr e chiunque può parteciparvi. - Sono ideali per comunità aperte su argomenti specifici. Alcuni di questi gruppi sono effimeri - e quindi i messaggi della chat scompaiono nel tempo - Chat Pubblica - Gruppo MLS - Metadati chat pubblica - Le chat pubbliche sono visibili a tutti su Nostr e chiunque - può parteciparvi. Sono ideali per comunità aperte su argomenti specifici. - La moderazione può essere controllata eliminando i post sui relay associati - Relay - Inserisci tra 1 e 3 relay che ospitano questo gruppo. - I client Nostr usano questa impostazione per sapere da dove scaricare i messaggi e dove inviare i tuoi messaggi. - Cancella - mai - adesso - g - Nuditá - Volgaritá / Linguaggio forte - Esegui backup delle chiavi - Impossibile cifrare la tua chiave privata - Chiave segreta (nsec) copiata negli appunti - Copia la mia chiave segreta - Autenticazione fallita - L\'autenticazione biometrica non ha riconosciuto il proprietario di questo telefono - L\'autenticazione biometrica non ha riconosciuto il proprietario di questo telefono. Errore: %1$s - Testo della nota copiato negli appunti - \@npub dell\'autore copiata negli appunti - ID della nota copiato (@note1) negli appunti - "<Incapace di decriptare il messaggio privato>\n\nSei stato citato in una conversazione privata/criptata tra %1$s e %2$s." - Profili - Naviga - Tu - Feed - Crea - Sistema - Indietro - Condividi Collegamento Browser - Condividi - Condividi come immagine - Condividi come URL immagine - ID della nota - Elimina - Silenzia thread - Riattiva thread - - Blocca - Segnalibri - Segnalibri migrati con successo - Bozze - Post programmati - Programma post - Annulla programmazione - I post programmati potrebbero non essere pubblicati fino alla prossima riapertura dell\'app. Abilita la modalità sempre attiva in Impostazioni → Preferenze UI per una pianificazione in background affidabile. - I post programmati potrebbero non essere pubblicati fino alla riapertura dell\'app. I post programmati degli altri account non verranno inviati mentre questo account è attivo. Abilita la modalità sempre attiva in Impostazioni → Preferenze UI per una pianificazione in background affidabile. - %1$s · tra %2$s - %1$s · %2$s fa - Domani - Disconnesso - - Disconnesso · %d post programmato eliminato - Disconnesso · %d post programmati eliminati - - Post programmato pubblicato - Post programmato fallito - Post programmati - Notifiche quando un post programmato viene pubblicato o non riesce a essere pubblicato. - Invia ora - Errore: %1$s - Programmato - Invio in corso… - Fallito - Inviato - Annullato - - Hai %d post programmato non ancora pubblicato. La disconnessione lo eliminerà definitivamente. - Hai %d post programmati non ancora pubblicati. La disconnessione li eliminerà definitivamente. - - - %d in coda - %d in coda - - - · %d in scadenza tra 1h - · %d in scadenza tra 1h - - - a %d relay - a %d relay - - ID nota copiato - Sondaggi - Aperti - Chiusi - Badge - Comunità - Nuova comunità - Modifica comunità - Moderatori - Relay - Regole verificabili (opzionale) - Tipi di evento consentiti - Testo breve (1) - Articolo lungo (30023) - Post immagine (20) - Post video (21) - Video breve (22) - Commento comunità (1111) - Utenti bannati - Filtro web-of-trust (opzionale) - Dimensione massima globale degli eventi (opzionale) - Nuovo badge - Assegna badge - Badge del profilo - Immagini - Allenamenti - Nuovo allenamento - Corsa - Camminata - Ciclismo - Escursionismo - Nuoto - Canottaggio - Forza - Meditazione - Dieta - Digiuno - App App - Caricamento tramite Tor. Tocca per usare il web aperto. - Caricamento tramite il web aperto. Tocca per usare Tor. - Preferiti - App preferite - Aggiungi ai preferiti - Rimuovi dai preferiti - Si carica tramite Tor. - Si carica tramite il web aperto. - Pubblicato sui relay - File caricato - Pagamento effettuato - Questa app non è ancora caricata. Riprova tra un momento. - Recenti Permessi nApplet Nessun permesso nApplet ancora I permessi che concedi alle nApplet appariranno qui. @@ -272,46 +24,11 @@ Revoca - Identità - Azioni tastiera - Relay - Archiviazione - Pagamenti - Rete - Caricamenti Verifica quali funzionalità sono disponibili - Leggi la tua chiave pubblica - Associa scorciatoie da tastiera - Leggi, firma e pubblica i tuoi eventi - Archiviazione privata dedicata - Paga le fatture Lightning - Recupera risorse web e Blossom - Carica file sul tuo server multimediale - Tema - Notifiche - Messaggistica - Adatta i colori alla tua app - Mostrarti notifiche - Scambia messaggi con altre nApplet Funzionalità: %1$s - Questa nApplet vuole leggere la tua chiave pubblica. - Questa nApplet vuole leggere il tuo profilo e i dati del tuo account. - Questa nApplet vuole firmare e pubblicare un evento kind:%1$d a tuo nome. - Questa nApplet vuole firmare e pubblicare un evento kind:%1$d a tuo nome: - Questa nApplet vuole inviare un evento cifrato a tuo nome. - Questa nApplet vuole leggere eventi dai tuoi relay. - Questa nApplet vuole utilizzare la propria archiviazione privata. Questa nApplet vuole pagare una fattura Lightning. - Questa nApplet vuole recuperare una risorsa web. - Questa nApplet vuole caricare un file sul tuo server multimediale. - Questa nApplet vuole mostrarti delle notifiche. - Questo sito vuole firmare un evento kind:%1$d con la tua chiave Nostr. - - Questa nApplet vuole pagare una fattura Lightning di %1$d sat. - Questa nApplet vuole pagare una fattura Lightning di %1$d sats. - - Chat pubbliche - Dirette - Alza la mano - Abbassa la mano - Silenzia - Attiva audio - Impossibile inviare il messaggio - Silenzia microfono - Attiva microfono - Mantiene l\'audio attivo mentre una stanza è aperta. - Nest connesso - Tocca per tornare. - Ferma - ha alzato la mano - è salito sul palcoscenico - sta parlando - è entrato come ascoltatore - ha lasciato il nest - Esci - Impossibile contrassegnare la stanza come chiusa. Uscita comunque — la stanza si chiuderà automaticamente. - - %1$d ascoltatore - %1$d ascoltatori - - Silenzia questo speaker - Ripristina questo speaker - Segui - Non seguire più - Silenzia - Attiva audio - Impossibile salvare la lista dei server nest. Riprova. - Server nest - I tuoi server - Salvato come evento kind-10112 sostituibile così altri client possono leggere le tue preferenze. - Server consigliati - Suggerimenti integrati che puoi aggiungere alla tua lista con un tocco. - Video - Musica - Playlist - Episodi - Podcast - - %1$d episodio - %1$d episodi - - Nuova traccia musicale - Nuova playlist - - %1$d traccia - %1$d tracce - - Aggiungi ai segnalibri pubblici - Rimuovi dai segnalibri pubblici - Fissa al profilo - Rimuovi il fissaggio dal profilo - Nuova lista segnalibro - Metadati lista segnalibro - Set di hashtag - Nuovo set di interessi - Rinomina - Rendi privato: gift-wrap la nota solo agli utenti notificati - Rendi pubblico - Le risposte a una nota privata rimangono sempre private - Visibile a Nessun destinatario ancora: solo tu potrai vedere questa nota. Aggiungi persone per condividerla. Aggiungi Rimuovi utente dalle notifiche Cerca e aggiungi un utente da notificare - I metadati delle liste segnalibro sono visibili a tutti su Nostr. Solo i tuoi membri privati sono cifrati. - Sposta in pubblico - Sposta in privato - Ricarica & invia zap - Invia zap - Ricarica %1$s sats su %2$s e zappa %3$s %4$s sats · commissione ≈ %5$s sats - Opzione %s - Scelta singola - Scelta multipla - Impossibile votare - Il sondaggio è chiuso a nuovi voti - Per questo tipo di sondaggio è consentito solo un voto per utente - Gli autori del sondaggio non possono votare nei propri sondaggi. - Cosa significa questo? - Questo contenuto è lo stesso da quando è stato pubblicato - Questo contenuto è cambiato. L\'autore potrebbe non aver visto o approvato la modifica - Aggiungi media - Aggiungi Immagine - Aggiungi Video - Aggiungi Documento - Server file - Scegli un server su cui caricare questo file - Server media Imposta i tuoi server di caricamento media preferiti. Server media consigliati La lista predefinita di Amethyst. Puoi aggiungerli singolarmente o aggiungere la lista. - Destinatari di pagamento - Aggiungi indirizzi di pagamento per reti diverse (es. bitcoin, lightning, ethereum). - Nessuna app trovata per gestire questo pagamento. Installa un portafoglio compatibile. - Nessuna app installata per gestire i pagamenti %1$s. Installa un portafoglio compatibile. - Impossibile aprire il pagamento - Opzioni privacy - Tutti i seguiti - Tutti i seguiti utenti - Lista seguiti predefinita - Intorno a me - Globale - Curata - La mia - Lista silenziati - Nuova lista di seguiti - Nuovo pacchetto di seguiti - Modifica lista - La porta predefinita è 9050 - Porta Socks di Orbot - Motore Tor attivo - Usa la versione interna o Orbot - Preimpostazioni Tor/Privacy - Modifica rapidamente tutte le impostazioni seguenti - URL/Relay onion - Usa Tor per qualsiasi URL .onion - Relay DM - Forza Tor per l\'invio e la ricezione di DM - Relay non attendibili - Forza Tor sui relay outbox/inbox - Relay attendibili - Forza Tor su tutti i relay nelle tue liste - Immagini del profilo - Forza Tor durante il caricamento delle immagini del profilo - Anteprime URL - Forza Tor durante il caricamento delle anteprime URL - Immagini - Forza Tor durante il caricamento delle immagini - Video - Forza Tor durante il caricamento dei video - Operazioni finanziarie - Forza Tor per zap, Lightning e trasferimenti Cashu - Verifica indirizzo Nostr - Forza Tor durante la verifica degli indirizzi NIP-05 - Caricamenti multimediali - Forza Tor durante il caricamento di contenuti - Interno - Disattivato - Base - Predefinito - Tutto tranne i media - Privacy completa - Personalizzato - Usa Tor quando è richiesto dal server - Nascondi il tuo IP dai relay casuali - Nascondi il tuo IP da tutto, tranne immagini e video - Nascondi il tuo IP in tutte le connessioni - Crea la tua configurazione - Messaggi privati - Notifica quando arriva un messaggio privato - Zaps Ricevuti - Notifica quando qualcuno ti invia uno zap - Da %1$s - per %1$s - Rispondi - Segna come letto - Nuovi messaggi - Nuovi zap - Reazioni - Ti notifica quando qualcuno reagisce al tuo post - %1$s ha reagito al tuo post - per %1$s - Nuove reazioni - Scacchi - Ti notifica riguardo agli eventi delle partite di scacchi - %1$s ha accettato la tua sfida a scacchi - %1$s ha mosso — tocca a te - Aggiornamenti scacchi - Risposte - Ti notifica quando qualcuno risponde al tuo post %1$s ha risposto su: %1$s - Nuove risposte - Menzioni - Ti notifica quando qualcuno ti menziona o ti cita in un post - %1$s ti ha menzionato - Nuove menzioni @@ -534,36 +80,6 @@ - Chiamate in arrivo - Notifiche per chiamate vocali e video in arrivo - Chiamata in arrivo - Chiamata vocale in arrivo… - Videochiamata in arrivo… - Chiamata con %1$s - Chiamate - Notifica di chiamata in corso - Riaggancia - Accetta - Rifiuta - Disattiva microfono - Attiva microfono - Fotocamera attiva - Fotocamera disattiva - Altoparlante - Auricolare - Amethyst ha bisogno dell\'accesso al microfono per avviare una chiamata vocale. Attivalo nelle impostazioni dell\'app. - Amethyst ha bisogno dell\'accesso alla fotocamera e al microfono per avviare una videochiamata. Attivali nelle impostazioni dell\'app. - Impostazioni chiamata - Mantiene attive le connessioni ai tuoi relay inbox per notifiche in tempo reale - Notifiche Amethyst attive - - Connesso a %1$d relay inbox - Connesso a %1$d relay inbox - - - Connesso a %1$d relay - Connesso a %1$d relay - - Connessione ai relay inbox in corso… Servizio di notifica sempre attivo Mantiene una connessione persistente ai tuoi relay inbox per la consegna istantanea delle notifiche. Mostra una notifica persistente. Consuma più batteria ma garantisce di non perdere mai un messaggio. - Dividi notifiche per seguiti - Mostra due schede di notifica — Seguiti (persone che segui) e Tutti. L\'indicatore non letto si illumina solo per l\'attività delle persone che segui. - Mostra messaggi - Includi messaggi diretti e di gruppo nella scheda Notifiche. Disattiva per tenere i messaggi solo nella scheda Messaggi. - Notificare: - Oggi - Nascondi - Mostra - Avvisa - Filtra spam - Nasconde i post di sconosciuti che sono stati identici per 5 o più volte - Aggiungi tag client ai miei eventi - Quando abilitato, Amethyst aggiunge un tag client NIP-89 agli eventi che pubblichi. - Avvisa per segnalazioni - Mostra un messaggio di avviso quando post o profili hanno segnalazioni dai tuoi seguiti - Nascondi post che violano le regole della community - Rimuove i post dai feed della community quando la community pubblica un documento di regole NIP-9B e un evento non lo rispetta. Nessun effetto quando una community non ha regole strutturate. - Preferenze di filtraggio - Contenuto bloccato - Non hai ancora bloccato nessun utente. - Nessun account è stato segnalato come spam in questa sessione. - Nessuna parola nascosta. Aggiungi una parola qui sotto per nascondere i post che la contengono. - Nessun tipo di reazione selezionato. Premi a lungo per cambiare - Leggi dal Relè - Scrivi su Relè - La quantità in byte inviata a questo relay, inclusi filtri ed eventi - La quantità in byte ricevuta da questo relay, inclusi filtri ed eventi - Informativa sulla privacy - Standard di sicurezza per i minori - Informazioni & Legale - Token di Cashu - Nessun indirizzo Lightning impostato - Relè - Pacchetti di follow - Letture - Algoritmi del feed - Comunità - Chat - Contenuto Sensibile - Aggiunge un avviso di contenuto sensibile prima di mostrare questo contenuto - Preferenze UI Preferenze app - Traduzioni - Reazioni - Impostazioni - Impostazioni account - Impostazioni app - Zona pericolosa - Reimposta stato Marmot - Stato Marmot reimpostato. - Impossibile reimpostare lo stato Marmot: %1$s - Sempre - WiFi non a consumo - Mai - Completo - Semplificato - Prestazioni - Classico - Moderno - Sistema - Chiaro - Scuro - Tema - Anteprima dell\'immagine - Riproduzione video - Riproduzione automatica video - Anteprima URL - Scorrimento immersivo - Nascondi le barre di navigazione durante lo scorrimento - Modalità UI - Scegli lo stile del post - Stile galleria del profilo - Scegli lo stile della galleria - Spammer - Mutato. Clicca per riattivare l\'audio - Audio acceso. Clicca per disattivarlo - Torna indietro di %d secondi - Vai avanti di %d secondi - Post esclusivo per posizione - Solo i follower della posizione lo vedranno. I tuoi follower generali non lo vedranno. - - %1$d traccia - %1$d tracce - - - +%1$d altra traccia - +%1$d altre tracce - - Carica un\'immagine di copertina - Scegli un\'immagine quadrata come artwork per questa traccia. - Carica un file audio - Scegli un MP3, WAV o FLAC. Verrà caricato sul tuo server multimediale al salvataggio. - Caricamento copertina + audio e pubblicazione in corso. Continuerà anche se esci dalla schermata. - Modifica playlist - Carica un\'immagine di copertina - Scegli un\'immagine quadrata come artwork per questa playlist. - Caricamento copertina e pubblicazione in corso. Continuerà anche se esci dalla schermata. Pubblico/a Gruppo Privato - Soggetto - Impossibile caricare - Inserisci prima la destinazione del messaggio - Wallet non trovato - Amethyst non ha trovato app wallet compatibili con Nostr Wallet Connect (NWC). -\n\nCosa puoi fare: -\n\t1. Verifica il supporto NWC: controlla che la tua app wallet preferita sia compatibile con Nostr Wallet Connect. -\n\t2. Crea connessione: vai nella tua app wallet e crea una nuova connessione NWC. -\n\t3. Collega ad Amethyst: la tua app wallet ti offrirà solitamente tre opzioni: -\n\t\t3.1 Collegamento automatico: un pulsante per aprire e connettersi automaticamente ad Amethyst. In tal caso, clicca quel pulsante, apri Amethyst e premi salva nella nuova schermata. -\n\t\t3.2 Collegamento manuale: un URI di connessione che puoi copiare e incollare tramite l\'icona di incolla in questa schermata. -\n\t\t3.3 Codice QR: il wallet crea un codice QR che puoi leggere tramite il pulsante QR in questa schermata. - - Tema scuro, chiaro o di sistema - Carica automaticamente immagini e GIF - Riproduce automaticamente video e GIF - Riproduci automaticamente i video quando sono visibili sullo schermo - Mostra anteprime URL - Copia negli appunti - Copiato negli appunti - Condividi o salva Invia come DM - Media aggiunto - Media aggiunto alla tua galleria del profilo - Impossibile inviare lo zap - Configurazione Lightning mancante - L\'utente %1$s non ha configurato un indirizzo Lightning per ricevere sats - Errore nell\'apertura dell\'app signer - L\'app signer non è stata trovata. Verifica che l\'app non sia stata disinstallata - Impossibile riprodurre questo video - Il codec o il formato non è supportato su questo dispositivo (%1$s). Prova ad aprirlo nel browser. - Apri nel browser - Richiesta di firma rifiutata - Assicurati che l\'applicazione signer abbia autorizzato questa transazione - Nessun wallet trovato per pagare una fattura Lightning (Errore: %1$s). Installa un wallet Lightning per usare gli zap - Nessun wallet trovato per pagare una fattura Lightning. Installa un wallet Lightning per usare gli zap - Impossibile aprire i link Blossom - App Blossom non trovate. Installa un\'app Blossom locale per visualizzare questo file - Parole nascoste - Thread silenziati - Nessun thread silenziato - Foto del profilo - Mostra le foto del profilo - Impossibile pagare la fattura - Impossibile prelevare - Impossibile riscattare Cashu - Il mint ha fornito il seguente messaggio di errore: %1$s - Cashu ricevuto - %1$s sats sono stati inviati al tuo wallet. (Commissioni: %2$s sats) - Nessun wallet Cashu compatibile trovato nel sistema - Impossibile recuperare la fattura dai server del destinatario - Il tuo provider wallet connect ha restituito il seguente errore: %1$s - Impossibile assemblare LNUrl dall\'indirizzo Lightning \"%1$s\". Controlla la configurazione dell\'utente - Impossibile recuperare la fattura da %1$s: %2$s - Errore nel parsing JSON da %1$s. Controlla la configurazione Lightning dell\'utente - URL di callback non trovato dalla risposta di %1$s - Importo fattura errato (%1$s sats) da %2$s. Avrebbe dovuto essere %3$s - Impossibile creare una fattura Lightning prima di inviare lo zap. Il wallet Lightning del destinatario ha inviato il seguente errore: %1$s - Utente in sola lettura - Nessuna reazione configurata - Notifiche - Consegna - Visualizzazione in-app - Categorie - Messaggio da %1$s - Ciao %1$s, è ancora disponibile? - Abbigliamento - Accessori - Elettronica - Mobili - Oggetti da collezione - Libri - Animali domestici - Sport - Arte - Artigianato - Casa - Ufficio - Cibo - Varie - Altro - Caricamento del media fallito - Impossibile aprire il file compresso - Errore di caricamento: %1$s - Il server non ha fornito un URL dopo il caricamento - Impossibile scaricare il media caricato dal server - Impossibile verificare il file scaricato dopo il caricamento: %1$s - Caricamento su %1$s fallito: %2$s - Eliminazione fallita: %1$s - Il media è troppo grande per NIP-95 - Crittografa i file - Crittografa i file prima del caricamento per la privacy. Alcuni server potrebbero non accettare file crittografati con account gratuiti. - Caricamento crittografato fallito - Molti server non accettano file crittografati con account gratuiti. Puoi riprovare senza crittografia. - Usa il codec H.265/HEVC - Migliore qualità a dimensioni di file inferiori, ma non tutti i dispositivi supportano la riproduzione H.265. - Converti GIF in MP4 - Converte le GIF animate in video MP4 per dimensioni di file inferiori e migliore compatibilità di riproduzione. - Rimuovi metadati privati - Tenta di rimuovere i metadati privati dai file media supportati prima del caricamento - Impossibile rimuovere i metadati - Impossibile rimuovere i metadati privati dal media. Caricamento annullato. - Caricamento annullato - Impossibile rimuovere i metadati dall\'AVIF: %1$s - Scopri - Messaggi - Notifiche - Calendari - Liste calendari - Scacchi - Portafoglio - Portafoglio Cashu (NIP-60) Chiave nutzap (avanzato) Una chiave privata separata usata solo per ricevere nutzap NIP-61. Non è la tua chiave d\'identità Nostr. Genera una nuova chiave Chiave privata P2PK (hex) - Modifica mint Salva modifiche - - +%1$d altro - +%1$d altri - - - Raccomandato da %1$d altro - Raccomandato da %1$d altri - - Mint popolari - Mint corrispondenti - Ricevuto - Inviato - Pubblica una richiesta di eliminazione per la tua raccomandazione kind:38000 di %1$s. I relay che rispettano NIP-09 la rimuoveranno. - Recuperati %1$s sats in %2$s prove. - Pagare %1$s sat + fino a %2$s sat di commissioni? - Nutzap fallito - Nessuna chiave pubblica del destinatario nella nota - I nutzap sono pubblici e rivelerebbero questa nota privata. Usa uno zap Lightning invece. - Impossibile costruire il riferimento all\'evento - In attesa del pagamento della fattura… - Verifica del mint in corso… - Lenta - Normale - Veloce - ~1 ora - - Invia %1$s sats, %2$d modo - Invia %1$s sats, %2$d modi - - - Usa la divisione zap %1$d vie di questa nota - Usa la divisione zap %1$d vie di questa nota - - - Divisione tra %1$d destinatario - Divisione tra %1$d destinatari - - - %1$d destinatario con solo indirizzo Lightning ignorato — onchain richiede una chiave pubblica Nostr per derivare l\'indirizzo. - %1$d destinatari con solo indirizzo Lightning ignorati — onchain richiede una chiave pubblica Nostr per derivare l\'indirizzo. - - caricamento saldo - costruzione della transazione - firma - trasmissione - pubblicazione della ricevuta - Il backend blockchain Bitcoin non è configurato - Impossibile caricare il saldo Bitcoin - Impossibile costruire la transazione - La quota di un destinatario è inferiore al dust - Impossibile firmare la transazione - Impossibile trasmettere la transazione - Pagamento inviato, ma la ricevuta dello zap non ha potuto essere pubblicata - - Pagamento inviato (%1$d di %2$d ricevuta pubblicata), ma la ricevuta successiva non ha potuto essere pubblicata - Pagamento inviato (%1$d di %2$d ricevute pubblicate), ma la ricevuta successiva non ha potuto essere pubblicata - - Importa seguiti - Nuovo prodotto - Nuovo articolo - Nuovo evento del calendario - Modifica evento del calendario - Nuovo calendario - Modifica calendario - Mese - Settimana - Giorno - - %1$s, %2$d evento - %1$s, %2$d eventi - - In corso ora - %1$s · termina %2$s - Condividi evento del calendario - Promemoria calendario - Avviso quando un evento a cui partecipi sta per iniziare. - Evento del calendario - - Inizia tra %1$d minuto - Inizia tra %1$d minuti - - Caricamento immagine fallito - L\'immagine selezionata non ha potuto essere caricata. Riprova o incolla un URL. - Promemoria calendario - Invia promemoria - Viene inviata una notifica quando un evento a cui partecipi sta per iniziare. - Apri nelle mappe - Apri link - Apri tutte le reazioni a questo post - Chiudi tutte le reazioni a questo post - Barra di navigazione inferiore Trascina per riordinare. Attiva/disattiva per aggiungere o rimuovere un elemento dalla barra inferiore. Con zero elementi la barra inferiore è nascosta. Riordina Scegli quali tab appaiono nella schermata Home. Quando è attivo un solo tab, la barra dei tab è nascosta. - Tutto - UI profilo Scegli quali sezioni e feed appaiono nelle schermate del profilo utente. Tutte le opzioni sono abilitate per impostazione predefinita. - Badge del profilo - Suggerimenti app - Feed zap ricevuti - Feed follower - Riga reazioni - Pulsanti del Video Player - Visualizzatore audio - Data di scadenza - Indirizzo non valido - Amethyst ha ricevuto un URI da aprire ma era non valido: %1$s - Relay casella DM - Relay di ricerca - Buone opzioni sono:\n%1$s - Relay Outbox - Relay Inbox - Impostazioni relay - Relay Outbox/Home pubblici - L\'utente sta pubblicando i suoi contenuti su questi relay - Questo tipo di relay conserva tutti i tuoi contenuti. Amethyst invierà i tuoi post qui e gli altri useranno questi relay per trovare i tuoi contenuti. Inserisci tra 1 e 3 relay. Possono essere relay personali, a pagamento o pubblici. - Relay Inbox pubblici - L\'utente riceve notifiche su questi relay - Questo tipo di relay riceve tutte le risposte, i commenti, i mi piace e gli zap ai tuoi post. Possono essere relay a pagamento o gratuiti. I limiti impostati dall\'operatore del relay possono limitare le notifiche che ricevi, nel bene e nel male. Ad esempio, se stai subendo spam nei commenti, i relay a pagamento possono filtrarlo. Inserisci tra 1 e 3 relay. - Relay casella DM - L\'utente riceve DM su questi relay - Inserisci tra 1 e 3 relay come casella di posta privata. Gli altri useranno questi relay per inviarti DM. I relay casella DM dovrebbero accettare qualsiasi messaggio da chiunque, ma permettere solo a te di scaricarli. Buone opzioni sono:\n - inbox.nostr.wine (a pagamento)\n - auth.nostr1.com (gratuito)\n - you.nostr1.com (relay personali - a pagamento) - Relay KeyPackage - Relay dove vengono pubblicati i tuoi MLS KeyPackage (MIP-00). Gli altri utenti recuperano questi KeyPackage per invitarti nelle chat di gruppo Marmot. Inserisci tra 1 e 3 relay che accettano eventi KeyPackage da te e consentono letture pubbliche. - Relay Home privati - Inserisci tra 1 e 3 relay per memorizzare eventi che nessun altro può vedere, come le tue bozze e/o le impostazioni dell\'app. Idealmente, questi relay sono locali o richiedono autenticazione prima di scaricare i contenuti di ciascun utente. - Relay connessi - Lista attuale dei relay in uso - Relay di ricerca - Lista di relay da usare nella ricerca di contenuti o utenti. Il tag e la ricerca non funzioneranno se non sono disponibili opzioni. Assicurati che implementino NIP-50. - Relay locali - Lista di relay in esecuzione su questo dispositivo. - Invia profili al relay locale - Invia tutti gli eventi profilo ricevuti (kind 0) al tuo relay locale - Relay fidati - Relay di cui ti fidi e che non necessitano di una connessione Tor - Feed relay preferiti - Relay che visiti spesso per vedere il loro feed globale - Relay proxy - Relay aggregatori che l\'app deve usare per scaricare i tuoi feed, come filter.nostr.wine. Questo sostituisce il modello outbox e farà connettere l\'app solo ai relay nelle tue liste. - Relay broadcast - Relay specializzati nel diffondere le tue note a tutti gli altri relay, come sendit.nosflare.com. Amethyst aggiungerà questo relay a tutti i nuovi eventi creati da te - Relay indicizzatori - Relay specializzati nell\'ospitare i metadati e le liste relay di tutti, come purplepag.es. Amethyst userà questi relay per trovare utenti che non sono nelle tue liste. - Relay bloccati - Amethyst non si connetterà mai a questi relay - Esporta impostazioni relay Panoramica Informazioni Link Maintainer Argomenti - Prova di timestamp - C\'è la prova che questo post è stato firmato prima del %1$s. La prova è stata registrata nella blockchain Bitcoin in quella data e ora. - Modifica post - Non è possibile rispondere a una nota in bozza - Non è possibile citare una nota in bozza - Non è possibile reagire a una nota in bozza - Non è possibile zappare una nota in bozza - Nota in bozza - Bad Request - Il server non può o non vuole elaborare la richiesta. - Unauthorized - L\'utente non dispone di credenziali di autenticazione valide - Payment Required - Il server richiede un pagamento per completare la richiesta - Forbidden - L\'utente non ha i diritti di accesso per effettuare la richiesta - Not Found - Il server non riesce a trovare l\'indirizzo richiesto - Method Not Allowed - Il server supporta il metodo di richiesta, ma non la risorsa di destinazione - Not Acceptable - Il server non trova contenuti che soddisfino la richiesta. - Proxy Authentication Required - L\'utente non dispone di credenziali di autenticazione valide - Request Timeout - Il server ha esaurito il tempo di attesa per qualcun altro - Conflict - Il server non può soddisfare la richiesta perché c\'è un conflitto con la risorsa - Gone - Il contenuto richiesto è stato eliminato definitivamente dal server e non sarà ripristinato - Length Required - Il server rifiuta la richiesta perché richiede un Content-Length definito - Precondition Failed - Le precondizioni della richiesta nei campi dell\'intestazione non sono soddisfatte dal server - Payload Too Large - La richiesta è più grande dei limiti definiti dal server, che si rifiuta di elaborarla - URI Too Long - L\'URL richiesto dal client è troppo lungo per essere elaborato dal server. - Unsupported Media Type - La richiesta usa un formato multimediale non supportato dal server - Range Not Satisfiable - Il server non può soddisfare il valore indicato nel campo dell\'intestazione Range della richiesta. - Expectation Failed - Il server non può soddisfare i requisiti indicati dal campo dell\'intestazione della richiesta Expect - Upgrade Required - Il server si rifiuta di elaborare la richiesta con il protocollo corrente a meno che il client non effettui l\'upgrade a un protocollo diverso. - Internal Server Error - Il server ha riscontrato un errore imprevisto e non può completare la richiesta - Not Implemented - Il server non può soddisfare la richiesta o non riconosce il metodo di richiesta - Bad Gateway - Il server agisce come gateway e ha ricevuto una risposta non valida dall\'host - Servizio non disponibile - Si verifica spesso quando un server è sovraccarico o in manutenzione - Timeout del gateway - Il server stava fungendo da gateway o proxy ed è scaduto in attesa di una risposta - Versione HTTP non supportata - Il server non supporta la versione HTTP nella richiesta - Anche la variante negozia - Il server ha un errore di configurazione interna - Spazio di archiviazione insufficiente - Il server non dispone di spazio sufficiente per elaborare la richiesta con successo - Loop rilevato - Il server rileva un ciclo infinito durante l\'elaborazione della richiesta - Autenticazione di rete richiesta - Il client deve essere autenticato per accedere alla rete Server Blossom Aggiungi tutti i server che vuoi. Potrai scegliere quale usare in seguito durante il caricamento della tua immagine - Aggiungi un server NIP-96 - Aggiungi un server Blossom - Impossibile aprire il file - Nessuna app torrent installata per aprire e scaricare il file. - L\'evento non ha informazioni sufficienti per creare un link magnet - Le mie liste - Feed - Hashtag - Gruppi di interessi - Luoghi - Comunità - Liste - Algoritmi feed - Tutti gli algoritmi feed preferiti - Relay - Algoritmi feed preferiti - Messaggio privato - Messaggio pubblico - Impossibile condividere l\'immagine, riprova più tardi… - Impossibile condividere il video, riprova più tardi… - Download video in corso… - Non tradurre da - Le lingue mostrate qui non verranno tradotte. Seleziona una lingua per rimuoverla e farla tradurre di nuovo. - Traduci in - Scegli la lingua in cui tradurre il contenuto. - Preferenze di visualizzazione della lingua - Per ogni coppia di lingue tradotte, scegli quale lingua mostrare per prima. - Pausa - Riproduci - Questo messaggio scomparirà tra %1$s - Metadati lista dei seguiti - I metadati delle liste dei seguiti possono essere visti da chiunque su Nostr. Solo i tuoi membri privati sono cifrati. - Metadati Follow Pack - I metadati del Follow Pack possono essere visti da chiunque su Nostr e vengono spesso pubblicati su molti siti web come kit di avvio per i nuovi utenti. - Modifica Follow Pack - Espandi - Riprova - Reazione - Post vocale - Risposta vocale - Relay in uscita - App - Consigli app - Impostazioni utente - Intestazione audio - Traccia audio - Traccia musicale - Playlist musicale - Episodio podcast - Podcast - Podcast creati - Podcast preferiti - Assegnazioni badge - Definizioni badge - Set badge accettati - Badge del profilo - Relay bloccati - Server Blossom - Server Nests - Autenticazione Blossom - Relay di trasmissione - Lista segnalibri - Vecchia lista segnalibri - Appuntamento giornaliero - Calendario - Appuntamento - RSVP appuntamento - Partite a scacchi - Autenticazione scacchi - Relay preferiti - Sfide a scacchi - Accettazione partita a scacchi - Mossa a scacchi - Fine partita a scacchi - Offerta di patta a scacchi - Definizione canale - Nascondi messaggio canale - Lista canali - Messaggio canale - Metadati canale - Silenzia utente nel canale - File DM - Messaggio DM - Relay DM - Annunci - Commenti - Definizione comunità - Lista community - Post della community - Lista di follow - Eliminazioni - Bozze - Pacchetti emoji - Lista pacchetti emoji - Chat effimera - Stanze chat effimere - Intestazioni file - Galleria profilo - Server file - Dati blob - Intestazioni blob - Dati medici - Pacchetti di follow - Repost (16) - Follow geohash - GiftWrap - Issue Git - Patch Git - Repository Git - Risposta Git - Obiettivi zap - Follow hashtag - Evidenziazioni - Autenticazione HTTP - Lista relay indice - Prologo avventura - Scena avventura - Lettura avventura - Segnalibri con nome - Chat live - Streaming live - Zap - Richiesta NWC - Risposta NWC - Zap privati - Richiesta zap - Blog - Sala riunioni - Presenza in stanza - Spazio riunioni - Profilo - Lista silenziati - Stato DVM - Richiesta contenuto DVM - Risposta contenuto DVM - Richiesta utente DVM - Risposta utente DVM - Liste persone - Immagini - Allenamenti - Pin - Sondaggio zap - Sondaggio - Risposta al sondaggio - NIP-04 DM - Relay privati - Relay proxy - Messaggio pubblico - Reazioni - Scheda contatto - Autenticazione relay - Scoperta relay - Annuncio monitor relay - Set di relay - Segnalazioni - Repost - Eliminazione utente - Sigilli - Relay di ricerca - Stato utente - Note - Modifiche - Torrent - Commenti torrent - Relay attendibili - Provider attendibili - Messaggio vocale - Risposta vocale - Segnalibro web - %1$d%% di uptime - Impostazioni Namecoin - Sincronizzazione relay - Explorer Bitcoin (OTS) - eventi da te - eventi per te - eventi ricercabili - DM - profili - liste outbox - Visto l\'ultima volta %1$s fa - Visto l\'ultima volta il %1$s (%2$s fa) - Visto proprio ora - Mai visto - - %1$d minuto - %1$d minuti - - - %1$d ora - %1$d ore - - - %1$d giorno - %1$d giorni - - - %1$d settimana - %1$d settimane - - - %1$d mese - %1$d mesi - - - %1$d anno - %1$d anni - - - %1$d fattura in sospeso - %1$d fatture in sospeso - - - Fondi detenuti presso %1$d mint che non usi - Fondi detenuti presso %1$d mint che non usi - - Spostati %1$s sat in %2$s. - Trasmetti al dispositivo - Interrompi trasmissione - Caricamento HLS - Caricamento %1$s (%2$d di %3$d) - Attestazione - Richiesta di Attestazione - Raccomandazione Attestatore - Competenza Attestatore - Segnalibri Web - Aggiungi Segnalibro Web - Modifica Segnalibro Web - %1$s finanziati su un obiettivo di %2$s sats - Nuovo Obiettivo - Richiesta di Cancellazione - Richiesta di cancellazione inviata - Cronologia Cancellazioni - Utenti - Eventi - IP - Impostazioni - Proponi miglioramenti al testo - Utilizza un modello AI sul dispositivo per proporre correzioni al testo e modifiche al tono. - Trasmissioni tracciate - Usa il trasmettitore tracciato per l\'invio degli eventi. Mostra l\'avanzamento in tempo reale e lo stato per ogni relay durante la trasmissione. - Suggerisci allenamenti da condividere - Legge gli allenamenti completati da Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) e suggerisce di condividerli come post. Il permesso viene richiesto solo al momento della connessione. - Impostazioni Composizione - Crea bozze automaticamente - Salva automaticamente una bozza dell\'evento quando scrivi o esci da un compositore con testo non inviato, e la invia ai tuoi relay di outbox privati. - Nuovo pacchetto emoji - Modifica pacchetto emoji - I miei pacchetti emoji - Emoji - Le emoji pubbliche sono visibili a tutti e appaiono nel tuo menu reazioni e nel selettore di completamento automatico \":\" quando questo pacchetto è nella tua lista emoji. - Le emoji private sono archiviate in modo cifrato sui relay e visibili solo a te. Appaiono nel tuo menu reazioni e nel completamento automatico \":\" proprio come quelle pubbliche. - La bozza è di %1$d byte; questa community limita questo kind a %2$d byte. - La bozza è di %1$d byte; questa community limita gli eventi a %2$d byte. - Hai già pubblicato %1$d eventi di questo kind oggi (limite %2$d). - Sito Nowhere - Evento Nowhere - Raccolta fondi Nowhere - Negozio Nowhere - Petizione Nowhere - Messaggio Nowhere - Drop Nowhere - Arte Nowhere - Forum Nowhere - - %1$d membro - %1$d membri - - Informazioni del gruppo aggiornate - Aggiornamento non riuscito: %1$s - Creazione del gruppo non riuscita: %1$s - Impossibile lasciare il gruppo: %1$s - Aggiunta di %1$s… - Impossibile aggiungere %1$s: %2$s - errore sconosciuto - Membro rimosso - Impossibile rimuovere il membro: %1$s - Privilegi di amministratore concessi - Impossibile concedere i privilegi di amministratore: %1$s - Privilegi di amministratore revocati - Impossibile revocare i privilegi di amministratore: %1$s - Non sei membro di questo gruppo Il servizio Lightning del destinatario su %1$s non è disponibile. È stato calcolato dall\'indirizzo lightning \"%2$s\". Errore: %3$s. Controlla se il server è attivo e se l\'indirizzo lightning è corretto Impossibile risolvere %1$s. Controlla se sei connesso, se il server è attivo e se l\'indirizzo lightning %2$s è corretto.\n\nEccezione: %3$s Errore nell\'analisi del JSON dal recupero della fattura di %1$s. Controlla la configurazione lightning dell\'utente diff --git a/amethyst/src/main/res/values-ja-rJP/strings.xml b/amethyst/src/main/res/values-ja-rJP/strings.xml index afcdb71ee4..87906dd1a6 100644 --- a/amethyst/src/main/res/values-ja-rJP/strings.xml +++ b/amethyst/src/main/res/values-ja-rJP/strings.xml @@ -1,113 +1,12 @@ - - このポストには %1$d 件以上のハッシュタグが含まれています - - - %1$d 件のアセットがバンドルされています - - - +%1$d\n件の返信 - - スパム - この relay から送信されたスパムイベントの数 - なりすまし - 不法行為 - 削除をリクエスト - 秘密鍵でログインするとリプライできます - 秘密鍵でログインすると投稿をブーストできます - 秘密鍵でログインするといいねができます - ザップ額が未設定です。長押しで変更 - 秘密鍵でログインするとザップすることができます - 秘密鍵でログインするとフォローすることができます - 秘密鍵でログインするとフォロー解除することができます - 公開鍵でログインしています。公開鍵は読み取り専用です。ワードやフレーズを非表示にするには、秘密鍵でログインしてください - 公開鍵でログインしています。公開鍵は読み取り専用です。ワードやフレーズを表示するには、秘密鍵でログインしてください - 公開鍵でログインしています。公開鍵は読み取り専用です。アップロードするには、秘密鍵でログインしてください - 公開鍵でログインしています。公開鍵は読み取り専用です。イベントに署名するには、秘密鍵でログインしてください - 復号化が許可されていません - この操作に必要な復号化が署名アプリによって許可されませんでした。署名アプリで NIP-44 復号化を有効にして、もう一度お試しください - 署名アプリが見つかりません - 署名アプリはアンインストールされましたか?署名アプリがインストールされており、このアカウントが登録されているか確認してください。署名アプリが変更された場合は、一度ログアウトしてからログインし直してください。 - 外部署名アプリがリクエストに対して予期しないペイロードを返しました。Amethyst または署名アプリにバグがある可能性があります。 - ザップ - ブースト ブーストされました 編集 #%1$s - 編集を提案する - 追加 - エラーメッセージの解析に失敗しました - プロフィール - セキュリティフィルタ - インボイスを要求中… - デビットサービスが支払いを完了しませんでした。 - %2$s 経由で %1$s を支払いますか? - %1$s 経由でこのインボイスを支払いますか? - このオファーに有効な金額を入力してください。 - 1 回のみ - 毎日 - 毎週 - 毎月 - 支払う - %1$s 経由で支払い中… - 支払いに失敗しました - この受取人への支払い可能額: %1$s sats - トランザクション: %1$s - "%1$sのプレビューカード画像" - 説明 - 何か思いついた? - メッセージを入力… - 送信 保存 - 送信 - 作成 名前を変更 - キャンセル - エラー - エラー - relay への接続成功率 - 端末に保存 - 画像を保存しました - 動画のダウンロードを開始しました… - メディアのダウンロードを開始しました… - トップに固定 - 固定を解除 - 画像の保存に失敗しました - 動画を端末のギャラリーに保存しました - 動画の保存に失敗しました - PDF を Downloads/Amethyst に保存しました - PDF の保存に失敗しました - この端末にカメラアプリが見つかりません - 長押ししてメッセージを録音 - アップロードエラー - ボイスメッセージのアップロードに失敗しました - NIP-95 はボイスメッセージにまだ対応していません - ボイスのアップロードに失敗しました: %1$s - なし - 低音 - 高音 - ニュートラル - satsを受け取るためのLightningアドレスが設定されていません - "ここに返信… " - 知り合い - 新しいリクエスト - ブロック済みユーザ - 新規スレッド - 会話 - 詳細なオプション - 秘密鍵の QR コードを表示 - 暗号化された秘密鍵の QR コードを表示 - フォロー - フォローバック - パスワードを非表示 - 無効な鍵 - 無効な鍵: %1$s - パスワードは必須です - 鍵が必要です - 名前は必須です @@ -116,153 +15,7 @@ 新しいチャットプロフィール: - 退出 - フォロー解除 - 消えるチャット - relay チャット - relay チャット - relay チャットは、ホスト relay によって管理されるチャットグループです。 - Nostr 上の全員に公開されており、誰でも参加できます。 - 特定のトピックを中心としたオープンなコミュニティに最適です。一部のグループは一時的なもので、 - チャットメッセージは時間とともに消えます - 公開チャット - MLS グループ - パブリックチャットのメタデータ - パブリックチャットは Nostr 上の全員に公開されており、誰でも - 参加できます。特定のトピックを中心としたオープンなコミュニティに最適です。 - モデレーションは、その relay 上のポストを削除することで管理できます - Relay - このグループをホストする relay を 1〜3 件入力してください。 - Nostr クライアントはこの設定を使用して、メッセージのダウンロード先と送信先を決定します。 - 削除 - なし - 今 - 時間 - 分 - 日 - ヌード - 誹謗中傷 / ヘイトスピーチ - 鍵をバックアップ - 秘密鍵の暗号化に失敗しました - 秘密鍵 (nsec) をクリップボードにコピーしました - 秘密鍵をコピー - 認証に失敗しました - 生体認証でこの端末の所有者を確認できませんでした - 生体認証でこの端末の所有者を確認できませんでした。エラー: %1$s - テキストがクリップボードにコピーされました - \@npubをクリップボードにコピーしました - 投稿ID (@note1) をクリップボードにコピーしました - "<プライベートメッセージの復号に失敗しました>\n\n%1$s と %2$s のプライベート/暗号化された会話であなたが言及されました。" - アカウント - ナビゲート - あなた - フィード - 作成 - システム - 戻る - ブラウザリンクを共有 - 共有 - 画像として共有 - 画像 URL として共有 - 投稿ID - 削除 - スレッドをミュート - スレッドのミュートを解除 - - ブロック - ブックマーク - ブックマークの移行が完了しました - 下書き - 予約投稿 - 投稿を予約 - 予約をキャンセル - 予約投稿は次回アプリを開くまで公開されない場合があります。確実なバックグラウンドスケジューリングのために、設定 → UI設定で常時通知を有効にしてください。 - 予約投稿は次回アプリを開くまで公開されない場合があります。このアカウントがアクティブな間、他のアカウントの予約投稿は実行されません。確実なバックグラウンドスケジューリングのために、設定 → UI設定で常時通知を有効にしてください。 - %1$s · %2$s後 - %1$s · %2$s前 - 明日 - ログアウトしました - - ログアウトしました · %d件の予約投稿を削除しました - - 予約投稿が公開されました - 予約投稿に失敗しました - 予約投稿 - 予約投稿が公開または失敗したときの通知。 - 今すぐ送信 - エラー: %1$s - 予約済み - 送信中… - 失敗 - 送信済み - キャンセル済み - - %d件の予約投稿がまだ公開されていません。ログアウトすると完全に削除されます。 - - - %d件キュー中 - - - · %d件が1時間以内に公開 - - - %d個のrelayへ - - ノートIDをコピーしました - 投票 - 進行中 - 終了 - バッジ - コミュニティ - 新しいコミュニティ - コミュニティを編集 - モデレーター - relay - 検証可能なルール(任意) - 許可されたイベントの種類 - ショートテキスト(1) - 長文記事(30023) - 画像投稿(20) - 動画投稿(21) - ショート動画(22) - コミュニティコメント(1111) - バンされたユーザー - Web-of-trustゲート(任意) - グローバル最大イベントサイズ(任意) - 新しいバッジ - バッジを授与 - プロフィールバッジ - 画像 - ワークアウト - 新しいワークアウト - ランニング - ウォーキング - サイクリング - ハイキング - 水泳 - ローイング - 筋トレ - ヨガ - 瞑想 - 食事管理 - 断食 - サーキット - アプリ アプリ - ブラウザ - Tor経由で読み込み中。タップしてオープンウェブを使用します。 - オープンウェブで読み込み中。タップしてTorを使用します。 - お気に入り - お気に入りアプリ - お気に入りに追加 - お気に入りから削除 - Tor 経由で読み込みます。 - オープンウェブ経由で読み込みます。 - relay に公開しました - ファイルをアップロードしました - 支払いを行いました - そのアプリはまだ読み込まれていません。しばらくしてから再試行してください。 - 最近 nApplet の権限 nApplet の権限はまだありません nApplet に付与した権限はここに表示されます。 @@ -272,45 +25,11 @@ シェル - ID - キーボード操作 - relay - ストレージ - 支払い - ネットワーク - アップロード 利用可能な機能を確認する - 公開鍵を読み取る - キーボードショートカットをバインドする - イベントを読み取り、署名して公開する - 専用のプライベートストレージ - Lightning インボイスを支払う - ウェブおよび Blossom リソースを取得する - メディアサーバーにファイルをアップロードする - テーマ - 通知 - メッセージング - アプリの色に合わせる - 通知を表示する - 他の napplet とメッセージをやり取りする 機能: %1$s - この nApplet はあなたの公開鍵を読み取ろうとしています。 - この nApplet はあなたのプロフィールとアカウントデータを読み取ろうとしています。 - この nApplet はあなたとして kind %1$d イベントに署名して公開しようとしています。 - この nApplet はあなたとして kind %1$d イベントに署名して公開しようとしています: - この nApplet はあなたとして暗号化されたイベントを送信しようとしています。 - この nApplet はあなたの relay からイベントを読み取ろうとしています。 - この nApplet はプライベートストレージを使用しようとしています。 この nApplet は Lightning インボイスを支払おうとしています。 - この nApplet はウェブリソースを取得しようとしています。 - この nApplet はメディアサーバーにファイルをアップロードしようとしています。 - この nApplet はあなたに通知を表示しようとしています。 - このサイトはあなたの Nostr 鍵で kind %1$d イベントに署名しようとしています。 - - この nApplet は %1$d sats の Lightning インボイスを支払おうとしています。 - - ショート - パブリックチャット - フォローパック - ライブ配信 - 手を挙げる - 手を下ろす - ミュート - ミュート解除 - メッセージを送信できませんでした - マイクをミュート - マイクのミュートを解除 - ルームが開いている間オーディオを再生し続けます。 - Nest に接続しました - Nest — ライブ中 - タップして戻る。 - 停止 - 手を挙げました - ステージに上がりました - 話しています - オーディエンスとして参加しました - Nest を退出しました - 退出 - ルームをクローズ済みとしてマークできませんでした。退出します — ルームは自動的に閉じます。 - - %1$d 人のリスナー - - このスピーカーをミュート - このスピーカーを復元 - フォロー - フォロー解除 - ミュート - ミュート解除 - Nest サーバーリストを保存できませんでした。再試行してください。 - Nest サーバー - あなたのサーバー - kind-10112 の置き換え可能なイベントとして保存され、他のクライアントがあなたの設定を読み取ることができます。 - おすすめのサーバー - ワンタップでリストに追加できる組み込みの候補です。 - 動画 - 音楽 - プレイリスト - エピソード - ポッドキャスト - - %1$d エピソード - - 新しい音楽トラック - 新しいプレイリスト - - %1$d トラック - - 公開ブックマークに追加 - 公開ブックマークから削除 - プロフィールにピン留め - プロフィールのピン留めを解除 - 新しいブックマークリスト - ブックマークリストのメタデータ - ハッシュタグセット - 新しいインタレストセット - 名前を変更 - プライベートにする:通知ユーザーのみへのgift-wrapノート - 公開にする - プライベートノートへの返信は常にプライベートのままです - 閲覧可能なユーザー まだ受信者がいません:あなただけがこのノートを見ることができます。共有したい人を追加してください。 追加 通知からユーザーを削除 通知するユーザーを検索して追加 - ブックマークリストのメタデータはNostr上の誰でも見ることができます。プライベートメンバーのみ暗号化されます。 - 公開に移動 - プライベートに移動 - チャージ & Zapを送信 - Zapを送信 - %2$sに%1$s satsをチャージして%3$sへ%4$s satsをZap · 手数料 ≈ %5$s sats - 選択肢%s - (0〜100)% - 単一選択 - 複数選択 - 投票できません - この投票は新規票を受け付けていません - このタイプの投票では、1ユーザにつき1回のみ投票可能です - 投票の作成者が投票することはできません。 - これはどういう意味ですか? - 画像は投稿時と同じです - 画像が変更されています。作者は変更に気づいていないかもしれません - メディアを追加 - 画像を追加 - 動画を追加 - ドキュメントを追加 - ファイルサーバ - このファイルをアップロードするサーバーを選択 - メディアサーバー 優先するメディアアップロードサーバーを設定してください。 おすすめのメディアサーバー Amethystのデフォルトリストです。個別に追加するかリスト全体を追加できます。 - 支払い先 - 異なるネットワーク(例:bitcoin、lightning、ethereum)の支払いアドレスを追加してください。 - この支払いを処理できるアプリが見つかりません。対応するウォレットをインストールしてください。 - %1$s の支払いを処理できるアプリがインストールされていません。対応するウォレットをインストールしてください。 - 支払いを開けません - プライバシーオプション - すべてのフォロー - すべてのユーザーフォロー - デフォルトフォローリスト - 周辺 - グローバル - キュレーション - マイリスト - ミュートリスト - 新しいフォローリスト - 新しいフォローパック - リストを編集 - デフォルトポートは 9050 - OrbotのSocksポート番号 - Tor エンジンを有効化 - 内蔵版または Orbot を使用 - Tor/プライバシープリセット - 以下の設定をすばやく変更 - Onion URL/relay - .onion URL に Tor を使用 - DM relay - DM の送受信に Tor を強制 - 信頼されていない relay - アウトボックス/インボックス relay に Tor を強制 - 信頼済み relay - リスト内のすべての relay に Tor を強制 - プロフィール画像 - プロフィール画像の読み込みに Tor を強制 - URL プレビュー - URL プレビューの読み込みに Tor を強制 - 画像 - 画像の読み込みに Tor を強制 - 動画 - 動画の読み込みに Tor を強制 - 送金操作 - zap、Lightning、Cashu 送金に Tor を強制 - Nostr アドレス認証 - NIP-05 アドレスの検証に Tor を強制 - メディアアップロード - コンテンツのアップロードに Tor を強制 - 内蔵 - オフ - 基本 - デフォルト - メディア以外すべて - 完全プライバシー - カスタム - サーバーが必要とする場合に Tor を使用 - ランダムな relay からIPアドレスを隠す - 画像と動画を除くすべての接続でIPアドレスを隠す - すべての接続でIPアドレスを隠す - 独自の設定を作成 - プライベートメッセージ - プライベートメッセージが届いたら通知する - ザップを受け取りました - 誰かがあなたにザップしたら通知する - %1$sから - %1$sに - 返信 - 既読にする - 新しいメッセージ - 新しい zap - リアクション - 誰かがあなたの投稿にリアクションしたときに通知します - %1$s があなたの投稿にリアクションしました - %1$s に対して - 新しいリアクション - チェス - チェスゲームのイベントを通知します - %1$s があなたのチェスの挑戦を受け入れました - %1$s が動かしました — あなたの番です - チェスの更新 - 返信 - 誰かがあなたの投稿に返信したときに通知します %1$s が返信しました 投稿: %1$s - 新しい返信 - メンション - 誰かがあなたをメンションまたは引用したときに通知します - %1$s があなたをメンションしました - 新しいメンション @@ -534,34 +81,6 @@ - 着信 - 音声・ビデオ通話の着信通知 - 着信 - 音声通話着信中… - ビデオ通話着信中… - %1$s との通話 - 通話 - 通話中の通知 - 切る - 受ける - 拒否 - ミュート - ミュート解除 - カメラオン - カメラオフ - スピーカー - イヤピース - Amethyst が音声通話を開始するにはマイクのアクセス権が必要です。アプリの設定で有効にしてください。 - Amethyst がビデオ通話を開始するにはカメラとマイクのアクセス権が必要です。アプリの設定で有効にしてください。 - 通話設定 - リアルタイム通知のためにインボックス relay への接続を維持します - Amethyst 通知有効中 - - %1$d 件のインボックス relay に接続中 - - - %1$d 件の relay に接続中 - - インボックス relay に接続中… 常時接続通知サービス インボックス relay への永続的な接続を維持し、通知をすぐに届けます。継続中の通知が表示されます。バッテリー消費は増えますが、メッセージを見逃しません。 - フォロー別に通知を分割 - 「フォロー中」(フォローしている人)と「全員」の2つの通知タブを表示します。未読インジケーターはフォロー中の人のアクティビティのみ光ります。 - メッセージを表示 - 通知タブにダイレクト・グループメッセージを含めます。オフにするとメッセージはメッセージタブのみに表示されます。 - 通知: - 今日 - 非表示 - 表示 - 警告 - スパムをフィルタリング - 見知らぬ人の同一投稿が5回以上繰り返された場合に非表示にします - イベントにクライアントタグを追加 - 有効にすると、Amethyst は公開するイベントに NIP-89 クライアントタグを付加します。 - 報告時に警告 - フォロー中の人から報告された投稿やプロフィールに警告メッセージを表示します - コミュニティルール違反の投稿を非表示 - コミュニティが NIP-9B ルール文書を公開している場合、違反するイベントをコミュニティフィードから除外します。構造化されたルールのないコミュニティには影響しません。 - フィルタリング設定 - ブロック済みコンテンツ - まだユーザーをブロックしていません。 - このセッションでスパムとして報告されたアカウントはありません。 - 非表示の単語はありません。下に単語を追加すると、その単語を含む投稿が非表示になります。 - リアクションタイプが選択されていません。長押しして変更 - リレーから読み込み - リレーに書き込み - フィルターやイベントを含む、この relay に送信されたバイト数 - フィルターやイベントを含む、この relay から受信したバイト数 - プライバシーポリシー - 児童安全基準 - 概要 & 法的情報 - Cashuトークン - Lightning アドレスが設定されていません - リレー - フォローパック - 読み物 - フィードアルゴリズム - マーケットプレイス - ライブストリーム - コミュニティ - チャット - センシティブなコンテンツ - コンテンツを表示する前に、センシティブなコンテンツであることを示す警告を表示します - UI設定 アプリ設定 - 翻訳 - リアクション - 設定 - アカウント設定 - アプリ設定 - 危険ゾーン - Marmot 状態をリセット - Marmot 状態をリセットしました。 - Marmot 状態のリセットに失敗しました: %1$s - 常に - 従量制なし WiFi - なし - 完全 - シンプル - パフォーマンス - クラシック - モダン - システム - ライト - ダーク - テーマ - 自動的に画像/GIFを読み込み - 自動的に動画を再生 - 動画の自動再生 - 自動的にURLプレビューを表示 - 没入スクロール - スクロール中にナビゲーションバーを非表示 - UIモード - 投稿スタイルを選択 - プロフィールギャラリースタイル - ギャラリースタイルを選択 - スパマー - ミュート中。クリックしてミュート解除 - 音声オン。クリックしてミュート - %d 秒戻る - %d 秒進む - 位置情報限定投稿 - その位置のフォロワーのみに表示されます。一般のフォロワーには表示されません。 - - %1$d トラック - - - +%1$d トラック - - カバー画像をアップロード - このトラックのアートワークとして正方形の画像を選んでください。 - 音声ファイルをアップロード - MP3、WAV、または FLAC を選んでください。保存時にメディアサーバーにアップロードされます。 - カバーと音声をアップロードして公開中です。画面を離れても処理は続きます。 - プレイリストを編集 - カバー画像をアップロード - このプレイリストのアートワークとして正方形の画像を選んでください。 - カバーをアップロードして公開中です。画面を離れても処理は続きます。 公開 グループ プライベート - 件名 - アップロードできません - 先にメッセージの宛先を入力してください - ウォレットが見つかりません - Amethyst は Nostr Wallet Connect(NWC)に対応したウォレットアプリを見つけられませんでした。 -\n\n対処方法: -\n\t1. NWC サポートを確認: お使いのウォレットアプリが Nostr Wallet Connect に対応しているか再確認してください。 -\n\t2. 接続を作成: ウォレットアプリで新しい NWC 接続を作成してください。 -\n\t3. Amethyst にリンク: ウォレットは通常、以下の3つの方法を提供します: -\n\t\t3.1 自動リンク: 自動的に Amethyst を開いて接続するボタン。その場合、ボタンをクリックして Amethyst を開き、新しい画面で保存を押してください。 -\n\t\t3.2 手動リンク: この画面の貼り付けアイコンをクリックして直接入力できる接続 URI。 -\n\t\t3.3 QR コード: ウォレットが作成する QR コード。この画面の QR コードボタンから読み取れます。 - - ダーク、ライト、またはシステムテーマ - 画像と GIF を自動的に読み込む - 動画と GIF を自動的に読み込む - 画面に表示されたときに動画を自動再生する - URL プレビューを表示 - クリップボードにコピー - クリップボードにコピーしました - 共有または保存 DM として送信 - メディアを追加しました - プロフィールギャラリーにメディアを追加しました - zap を送信できません - Lightning の設定がありません - ユーザー %1$s は sats を受け取るための Lightning アドレスを設定していません - 署名アプリを開くエラー - 署名アプリが見つかりませんでした。アプリがアンインストールされていないか確認してください - この動画を再生できません - このデバイスではコーデックまたは形式がサポートされていません(%1$s)。ブラウザで開いてみてください。 - ブラウザで開く - 署名リクエストが拒否されました - 署名アプリがこのトランザクションを承認していることを確認してください - Lightning 請求書を支払うウォレットが見つかりません(エラー: %1$s)。zap を使用するには Lightning ウォレットをインストールしてください - Lightning 請求書を支払うウォレットが見つかりません。zap を使用するには Lightning ウォレットをインストールしてください - Blossom リンクを開けません - Blossom アプリが見つかりませんでした。このファイルを表示するにはローカルの Blossom アプリをインストールしてください - 非表示ワード - ミュートしたスレッド - ミュートしたスレッドはありません - プロフィール画像 - プロフィール画像を表示 - 請求書を支払えませんでした - 引き出しできませんでした - Cashu を換金できませんでした - Mint から次のエラーメッセージが返されました: %1$s - Cashu を受け取りました - %1$s sats がウォレットに送られました。(手数料: %2$s sats) - 対応する Cashu ウォレットがシステムに見つかりません - 受信者のサーバーから請求書を取得できません - Wallet Connect プロバイダーから次のエラーが返されました: %1$s - Lightning アドレス「%1$s」から LNUrl を組み立てられませんでした。ユーザーの設定を確認してください - %1$s から請求書を取得できませんでした: %2$s - %1$s からの JSON の解析エラー。ユーザーの Lightning 設定を確認してください - %1$s のレスポンスにコールバック URL が見つかりませんでした - %2$s からの請求書金額が正しくありません(%1$s sats)。正しい金額は %3$s であるべきでした - zap 送信前に Lightning 請求書を作成できませんでした。受信者の Lightning ウォレットから次のエラーが送信されました: %1$s - 読み取り専用ユーザー - リアクションが設定されていません - 通知 - 配信 - アプリ内表示 - カテゴリ - %1$sからのメッセージ - %1$sさん、こちらはまだ入手可能ですか? - 衣類 - アクセサリー - 電子機器 - 家具 - コレクターアイテム - 書籍 - ペット - スポーツ - フィットネス - アート - クラフト - ホーム - オフィス - 食品 - その他雑多 - その他 - メディアのアップロードに失敗しました - 圧縮ファイルを開けませんでした - アップロードエラー:%1$s - アップロード後にサーバーがURLを提供しませんでした - アップロードされたメディアをサーバーからダウンロードできませんでした - アップロード後にダウンロードしたファイルを確認できませんでした:%1$s - %1$sへのアップロードに失敗しました:%2$s - 削除に失敗しました:%1$s - メディアがNIP-95には大きすぎます - ファイルを暗号化 - プライバシーのためにアップロード前にファイルを暗号化します。一部のサーバーでは無料アカウントで暗号化ファイルを受け付けない場合があります。 - 暗号化アップロード失敗 - 多くのサーバーは無料アカウントで暗号化ファイルを受け付けません。暗号化なしで再試行できます。 - H.265/HEVCコーデックを使用 - 小さいファイルサイズでより高い品質ですが、すべての端末がH.265の再生をサポートしているわけではありません。 - GIFをMP4に変換 - アニメーションGIFをMP4動画に変換してファイルサイズを縮小し、再生互換性を向上させます。 - プライベートメタデータを削除 - アップロード前に対応するメディアファイルからプライベートメタデータの削除を試みます - メタデータを削除できませんでした - メディアからプライベートメタデータを削除できませんでした。アップロードをキャンセルしました。 - アップロードをキャンセルしました - AVIFからメタデータを削除できません:%1$s - ホーム - 発見 - メッセージ - 通知 - カレンダー - カレンダーリスト - チェス - ウォレット - Cashu ウォレット(NIP-60) Nutzapキー(上級者向け) NIP-61 nutzapを受け取るためだけに使用する別の秘密鍵です。Nostrのアイデンティティキーではありません。 新しいキーを生成 P2PK秘密鍵(hex) - mintを編集 変更を保存 - - +%1$d件 - - - 他%1$d人がおすすめ - - 人気のmint - 一致するmint - 受取済み - 送金済み - %1$sのkind:38000おすすめの削除リクエストを公開します。NIP-09を承認するrelayはこれを削除します。 - %2$s個のproofから%1$s satsを回復しました。 - %1$s sat + 最大%2$s satの手数料を支払いますか? - Nutzapが失敗しました - ノートに受信者の公開鍵がありません - Nutzapは公開されるため、このプライベートノートが公開されてしまいます。代わりにLightning zapを使用してください。 - イベント参照を構築できません - インボイスの支払いを待っています… - mintを確認しています… - 遅い - 普通 - 速い - 約1時間 - 約30分 - 約10分 - - %1$s satsを%2$d分割で送る - - - このノートの%1$d分割zapを使用する - - - %1$d人の受信者に分割 - - - Lightningアドレスのみの受信者%1$dをスキップしています — オンチェーンにはアドレスを導出するためのNostr公開鍵が必要です。 - - 残高を読み込んでいます - トランザクションを構築しています - 署名しています - ブロードキャストしています - 領収書を公開しています - Bitcoinチェーンバックエンドが設定されていません - Bitcoin残高を読み込めませんでした - トランザクションを構築できませんでした - 受信者の取り分がダスト以下です - トランザクションに署名できませんでした - トランザクションをブロードキャストできませんでした - 支払いは送信されましたが、zap領収書を公開できませんでした - - 支払いは送信されました(%2$d件中%1$d件の領収書を公開済み)が、次の領収書を公開できませんでした - - フォローをインポート - 新規商品 - 新規記事 - 新規カレンダーイベント - カレンダーイベントを編集 - 新規カレンダー - カレンダーを編集 - フィード - 月 - 週 - 日 - - %1$s、%2$dイベント - - 開催中 - %1$s · 終了:%2$s - カレンダーイベントを共有 - カレンダーリマインダー - 参加予定のイベントが始まる前に通知します。 - カレンダーイベント - - %1$d分後に開始します - - 画像のアップロードに失敗しました - 選択した画像をアップロードできませんでした。もう一度試すか、URLを貼り付けてください。 - カレンダーリマインダー - リマインダーを送る - 参加予定のイベントが始まる前に通知が送られます。 - - %1$d分 - - マップで開く - リンクを開く - この投稿へのすべてのリアクションを開く - この投稿へのすべてのリアクションを閉じる - ボトムナビゲーションバー ドラッグして並べ替え。トグルでボトムバーへの追加・削除を切り替え。アイテムが0個の場合はボトムバーが非表示になります。 並べ替え ホーム画面に表示するタブを選択します。タブが1つだけ有効の場合、タブバーは非表示になります。 - すべて - プロフィール UI ユーザープロフィール画面に表示するセクションとフィードを選択します。デフォルトではすべての項目が有効になっています。 - プロフィールバッジ - アプリのおすすめ - 受信した Zap フィード - フォロワーフィード - リアクションバー - ビデオプレーヤーボタン - オーディオビジュアライザー - 有効期限 - 無効なアドレス - Amethyst が開くための URI を受信しましたが、その URI は無効でした: %1$s - DM 受信 Relay - 検索 Relay - おすすめの選択肢:\n%1$s - Outbox Relay - Inbox Relay - Relay 設定 - パブリック Outbox / ホーム Relay - ユーザーはこれらの relay にコンテンツを投稿しています - この relay タイプはすべてのコンテンツを保存します。Amethyst はここに投稿を送信し、他のユーザーはこれらの relay を使ってあなたのコンテンツを見つけます。1〜3 つの relay を入力してください。個人用 relay、有料 relay、またはパブリック relay が利用できます。 - パブリック Inbox Relay - ユーザーはこれらの relay で通知を受け取っています - この relay タイプは、あなたの投稿へのすべての返信、コメント、いいね、zap を受信します。有料・無料いずれの relay も使用できます。relay 運営者が設定する制限により、受け取る通知の量が変わる場合があります。たとえば、コメントスパム攻撃を受けている場合、有料 relay でスパムをフィルタリングできます。1〜3 つの relay を入力してください。 - DM 受信 Relay - ユーザーはこれらの relay で DM を受け取っています - プライベート受信 relay として 1〜3 つの relay を入力してください。他のユーザーはこれらの relay を使ってあなたに DM を送ります。DM 受信 relay は誰からでもメッセージを受け取れますが、ダウンロードはあなた自身のみに許可するものにしてください。おすすめの選択肢:\n - inbox.nostr.wine(有料)\n - auth.nostr1.com(無料)\n - you.nostr1.com(個人用 relay - 有料) - KeyPackage - KeyPackage Relay - あなたの MLS KeyPackage が公開されている relay(MIP-00)です。他のユーザーはこれらの KeyPackage を取得して、あなたを Marmot グループチャットに招待します。KeyPackage イベントの書き込みとパブリック読み取りを許可する relay を 1〜3 つ入力してください。 - プライベートホーム Relay - 下書きやアプリ設定など、他のユーザーには見えないイベントを保存する relay を 1〜3 つ入力してください。理想的には、ローカル relay か、各ユーザーのコンテンツをダウンロードする前に認証を要求する relay を使用してください。 - 接続済み Relay - 現在使用中の relay の一覧 - 検索 Relay - コンテンツやユーザーを検索する際に使用する relay の一覧です。利用可能なオプションがない場合、タグ付けと検索が機能しません。NIP-50 を実装していることを確認してください。 - ローカル Relay - このデバイスで動作している relay の一覧です。 - プロフィールをローカル relay に転送する - 受信したすべてのプロフィール(kind 0)イベントをローカル relay に送信する - 信頼済み Relay - Tor 接続が不要な信頼済み relay - お気に入り Relay フィード - グローバルフィードを見るためによく訪れる relay - Proxy Relay - filter.nostr.wine のように、アプリがフィードをダウンロードするために使用するアグリゲーター relay です。これにより outbox モデルが置き換えられ、アプリはリスト内の relay のみに接続するようになります。 - Broadcast Relay - sendit.nosflare.com のように、あなたのノートを他のすべての relay にプッシュすることに特化した relay です。Amethyst はあなたが作成するすべての新しいイベントにこの relay を追加します。 - インデクサー Relay - purplepag.es のように、全ユーザーのメタデータと relay リストのホスティングに特化した relay です。Amethyst はこれらの relay を使用して、あなたのリストにないユーザーを検索します。 - ブロック済み Relay - Amethyst はこれらの relay に接続しません - Relay 設定をエクスポート 概要 概要 リンク メンテナー トピック - タイムスタンプ証明 - この投稿が %1$s より前に署名されたことの証明があります。この証明はその日時に Bitcoin ブロックチェーンに刻印されています。 - 投稿を編集 - 下書きノートには返信できません - 下書きノートを引用することはできません - 下書きノートにリアクションすることはできません - 下書きノートに zap することはできません - 下書きノート - 400 Bad Request — サーバーがリクエストを処理できないか、処理しようとしません。 - 401 Unauthorized — ユーザーが有効な認証情報を持っていません - 402 Payment Required — サーバーはリクエストを完了するために支払いを要求しています - 403 Forbidden — ユーザーがリクエストを行うためのアクセス権を持っていません - 404 Not Found — サーバーがリクエストされたアドレスを見つけられません - 405 Method Not Allowed — サーバーはリクエストメソッドをサポートしていますが、対象リソースではサポートしていません - 406 Not Acceptable — サーバーがリクエストを満たすコンテンツを見つけられません。 - 407 Proxy Authentication Required — ユーザーが有効な認証情報を持っていません - 408 Request Timeout — サーバーが応答を待ちタイムアウトしました - 409 Conflict — リソースとの競合があるためサーバーがリクエストを処理できません - 410 Gone — リクエストされたコンテンツはサーバーから完全に削除されており、復元されません - 411 Length Required — サーバーが定義されたContent-Lengthを要求するためリクエストを拒否しました - 412 Precondition Failed — サーバーがヘッダーフィールドのリクエストの事前条件を満たせません - 413 Payload Too Large — リクエストがサーバーの制限を超えているため、サーバーは処理を拒否しています - 414 URI Too Long — クライアントがリクエストしたURLがサーバーの処理できる長さを超えています。 - 415 Unsupported Media Type — リクエストがサーバーのサポートしていないメディア形式を使用しています - 416 Range Not Satisfiable — サーバーがリクエストのRangeヘッダーフィールドに示された値を満たせません。 - 417 Expectation Failed — サーバーがExpectリクエストヘッダーフィールドの要件を満たせません - 426 Upgrade Required — クライアントが別のプロトコルにアップグレードしない限り、サーバーは現在のプロトコルでリクエストを処理しません。 - 500 Internal Server Error — サーバーが予期しないエラーに遭遇し、リクエストを完了できません - 501 Not Implemented — サーバーがリクエストを処理できないか、リクエストメソッドを認識しません - 502 Bad Gateway — サーバーがゲートウェイとして機能し、ホストから無効なレスポンスを受け取りました - 503 Service Unavailable — サーバーが過負荷またはメンテナンス中のためよく発生します - 504 Gateway Timeout — サーバーがゲートウェイまたはプロキシとして機能し、レスポンスを待ちタイムアウトしました - 505 HTTP Version Not Supported — サーバーがリクエストのHTTPバージョンをサポートしていません - 506 Variant Also Negotiates — サーバーの内部設定エラーです - 507 Insufficient Storage — サーバーがリクエストを正常に処理するのに十分なストレージを持っていません - 508 Loop Detected — サーバーがリクエストの処理中に無限ループを検出しました - 511 Network Authentication Required — クライアントはネットワークにアクセスするために認証が必要です Blossom サーバー 必要なだけサーバーを追加できます。写真をアップロードする際にどれを使用するかは後で選択できます - NIP-96 サーバーを追加 - Blossom サーバーを追加 ダウンロード - ファイルを開けませんでした - ファイルを開いてダウンロードするための torrent アプリがインストールされていません。 - マグネットリンクを生成するための情報がイベントに不足しています - マイリスト - フィード - ハッシュタグ - インタレストセット - 場所 - コミュニティ - リスト - フィードアルゴリズム - すべてのお気に入りフィードアルゴリズム - お気に入りフィードアルゴリズム - プライベートメッセージ - パブリックメッセージ - 画像を共有できません。後でもう一度お試しください… - 動画を共有できません。後でもう一度お試しください… - 動画をダウンロード中… - 翻訳しない言語 - ここに表示されている言語は翻訳されません。言語を選択して削除すると、再び翻訳されるようになります。 - 翻訳先 - コンテンツの翻訳先言語を選択してください。 - 言語表示の設定 - 翻訳された言語ペアごとに、どの言語を先に表示するかを選択します。 - 一時停止 - 再生 - このメッセージは %1$s 後に消えます - フォローリストのメタデータ - フォローリストのメタデータは Nostr 上の誰でも見ることができます。プライベートメンバーのみ暗号化されています。 - フォローパックのメタデータ - フォローパックのメタデータは Nostr 上の誰でも見ることができ、新規ユーザー向けのスターターキットとして多くのウェブサイトで頻繁に公開されています。 - フォローパックを編集 - 展開する - 再試行 - リアクション - 音声投稿 - 音声返信 - アプリ - アプリのおすすめ - ユーザー設定 - オーディオヘッダー - オーディオトラック - 音楽トラック - 音楽プレイリスト - ポッドキャストエピソード - ポッドキャスト番組 - 作成したポッドキャスト - お気に入りのポッドキャスト - バッジ受賞 - バッジ定義 - 承認済みバッジセット - プロフィールバッジ - ブロックされた Relays - ブロードキャスト Relays - ブックマークリスト - 旧ブックマークリスト - 日次予定 - カレンダー - 予定 - 予定RSVP - チェスゲーム - チェス認証 - お気に入りrelay - チェスチャレンジ - チェスゲーム承認 - チェスの手 - チェスゲーム終了 - チェス引き分け提案 - チャンネル定義 - チャンネルメッセージ非表示 - チャンネルリスト - チャンネルメッセージ - チャンネルメタデータ - チャンネルユーザーミュート - DMファイル - DMメッセージ - DM relay - 分類広告 - コメント - コミュニティ定義 - コミュニティリスト - コミュニティ投稿 - フォローリスト - 削除 - 下書き - 絵文字パック - 絵文字パックリスト - 一時チャット - 一時チャットルーム - ファイルヘッダー - プロフィールギャラリー - ファイルサーバー - Blobデータ - Blobヘッダー - 医療データ - フォローパック - リポスト(16) - ジオハッシュフォロー - GiftWrap - Git返信 - Zapゴール - ハッシュタグフォロー - ハイライト - HTTP認証 - インデックスrelayリスト - アドベンチャープロローグ - アドベンチャーシーン - アドベンチャー読書 - 名前付きブックマーク - ライブチャット - ライブストリーム - Zap - NWCリクエスト - NWCレスポンス - プライベートZap - Zapリクエスト - ブログ - ミーティングルーム - ルームプレゼンス - ミーティングスペース - プロフィール - ミュートリスト - DVMステータス - DVMコンテンツリクエスト - DVMコンテンツレスポンス - DVMユーザーリクエスト - DVMユーザーレスポンス - ピープルリスト - 画像 - ワークアウト - ピン - Zapポール - 投票 - 投票回答 - NIP-04 DM - プライベートrelay - プロキシrelay - パブリックメッセージ - リアクション - 連絡先カード - relay認証 - relay検索 - relayモニターアナウンス - relayセット - レポート - リポスト - ユーザー削除 - シール - 検索relay - ユーザーステータス - ノート - 編集 - トレント - トレントコメント - 信頼済みrelay - 信頼済みプロバイダー - 動画(Repl) - ショート(Repl) - 動画 - ショート - ボイスメッセージ - ボイス返信 - Webブックマーク - %1$d%%稼働率 - Namecoin設定 - relay同期 - Bitcoin Explorer(OTS) - あなたからのイベント - あなた宛てのイベント - 検索可能なイベント - DM - プロフィール - アウトボックスリスト - 最終確認:%1$s前 - 最終確認:%1$s(%2$s前) - たった今確認 - 未確認 - - %1$d分 - - - %1$d時間 - - - %1$d日 - - - %1$d週間 - - - %1$dヶ月 - - - %1$d年 - - - %1$d mint - - - %1$d件の保留中の請求書 - - - 使用していない%1$d個のmintに資金があります - - %1$s sat を %2$s に移動しました。 - デバイスにキャスト - キャストを停止 - HLS アップロード - %1$s をアップロード中(%3$d 件中 %2$d 件目) - 認証 - 認証リクエスト - 認証者の推薦 - 認証者の習熟度 - ウェブブックマーク - ウェブブックマークを追加 - ウェブブックマークを編集 - %2$s sats のゴールに対して %1$s を達成 - 新しいゴール - 消去リクエスト - 消去リクエストを送信しました - 消去履歴 - ユーザー - イベント - Kind - IP - 設定 - テキストの改善を提案 - デバイス上のAIモデルを使用して、テキストの修正やトーンの変更を提案します。 - 追跡ブロードキャスト - イベントの送信時に追跡ブロードキャスターを使用します。ブロードキャスト中にライブの進捗とrelay別のステータスを表示します。 - ワークアウトの共有を提案する - Health Connect(Samsung Health、Google Fit、Fitbit、Garminなど)から完了したワークアウトを読み取り、投稿として共有することを提案します。権限は接続時にのみ要求されます。 - 作成の設定 - 自動的に下書きを作成する - 入力中または未送信のテキストがある状態でコンポーザーを離れると、下書きイベントを自動的に保存し、プライベートのアウトボックスrelayに送信します。 - 新しい絵文字パック - 絵文字パックを編集する - マイ絵文字パック - 絵文字 - パブリック絵文字は全員に表示され、このパックが絵文字リストに含まれている場合、リアクションメニューと「:」オートコンプリートピッカーに表示されます。 - プライベート絵文字はrelayに暗号化されて保存され、あなただけに見えます。パブリック絵文字と同様に、リアクションメニューと「:」オートコンプリートに表示されます。 - 下書きは %1$d バイトです。このコミュニティはこの kind を %2$d バイトまでに制限しています。 - 下書きは %1$d バイトです。このコミュニティはイベントを %2$d バイトまでに制限しています。 - 本日、この kind のイベントをすでに %1$d 件投稿しています(上限 %2$d 件)。 - Nowhere サイト - Nowhere イベント - Nowhere 資金調達 - Nowhere ストア - Nowhere 請願 - Nowhere メッセージ - Nowhere ドロップ - Nowhere アート - Nowhere フォーラム - - %1$d 件のメッセージ - - - %1$d 人のメンバー - - グループ情報が更新されました - 更新に失敗しました: %1$s - グループの作成に失敗しました: %1$s - グループの退出に失敗しました: %1$s - %1$s を追加中… - %1$s の追加に失敗しました: %2$s - 不明なエラー - メンバーが削除されました - メンバーの削除に失敗しました: %1$s - 管理者権限が付与されました - 管理者権限の付与に失敗しました: %1$s - 管理者権限が取り消されました - 管理者権限の取り消しに失敗しました: %1$s - このグループのメンバーではありません %1$s の受信者の Lightning サービスが利用できません。Lightning アドレス \"%2$s\" から計算されました。エラー: %3$s。サーバーが稼働しているか、Lightning アドレスが正しいかを確認してください %1$s を解決できませんでした。接続されているか、サーバーが稼働しているか、Lightning アドレス %2$s が正しいかを確認してください。\n\n例外: %3$s %1$s の請求書取得から JSON を解析中にエラーが発生しました。ユーザーの Lightning 設定を確認してください diff --git a/amethyst/src/main/res/values-ja/strings.xml b/amethyst/src/main/res/values-ja/strings.xml index 77ec4df814..007725ac5a 100644 --- a/amethyst/src/main/res/values-ja/strings.xml +++ b/amethyst/src/main/res/values-ja/strings.xml @@ -1,144 +1,26 @@ - スパム - なりすまし - 不法行為 - 削除をリクエスト - 秘密鍵でログインするとリプライできます - 秘密鍵でログインすると投稿をブーストできます - 秘密鍵でログインするといいねができます - ザップ額が未設定です。長押しで変更 - 秘密鍵でログインするとザップすることができます - 秘密鍵でログインするとフォローすることができます - 秘密鍵でログインするとフォロー解除することができます - ザップ - ブースト ブーストされました - 追加 - プロフィール - セキュリティフィルタ - 支払う - "%1$sのプレビューカード画像" - 説明 - 何か思いついた? - 送信 保存 - 作成 - キャンセル - エラー - 画像を保存しました - 画像の保存に失敗しました - satsを受け取るためのLightningアドレスが設定されていません - "ここに返信… " - 知り合い - 新しいリクエスト - ブロック済みユーザ - 新規スレッド - 会話 - 詳細なオプション - フォロー - フォローバック - パスワードを非表示 - 無効な鍵 - 鍵が必要です - 退出 - フォロー解除 - 公開チャット - 削除 - なし - 今 - 時間 - 分 - 日 - ヌード - 誹謗中傷 / ヘイトスピーチ - 鍵をバックアップ - 秘密鍵 (nsec) をクリップボードにコピーしました - 秘密鍵をコピー - 認証に失敗しました - テキストがクリップボードにコピーされました - \@npubをクリップボードにコピーしました - 投稿ID (@note1) をクリップボードにコピーしました - "<プライベートメッセージの復号に失敗しました>\n\n%1$s と %2$s のプライベート/暗号化された会話であなたが言及されました。" - アカウント - 戻る - ブラウザリンクを共有 - 共有 - 投稿ID - 削除 - - ブロック - ブックマーク - 公開ブックマークに追加 - 公開ブックマークから削除 - 選択肢%s - このタイプの投票では、1ユーザにつき1回のみ投票可能です - 投票の作成者が投票することはできません。 - 画像は投稿時と同じです - 画像が変更されています。作者は変更に気づいていないかもしれません - 画像を追加 - 動画を追加 - ドキュメントを追加 - ファイルサーバ - すべてのフォロー - グローバル - OrbotのSocksポート番号 - プライベートメッセージ - プライベートメッセージが届いたら通知する - ザップを受け取りました - 誰かがあなたにザップしたら通知する - %1$sから - %1$sに - 通知: - 今日 - リアクションタイプが選択されていません。長押しして変更 - リレーから読み込み - リレーに書き込み - Cashuトークン - リレー - チャット - センシティブなコンテンツ - コンテンツを表示する前に、センシティブなコンテンツであることを示す警告を表示します - 設定 - 常に - システム - ライト - ダーク - テーマ - 自動的に画像/GIFを読み込み - 自動的に動画を再生 - 自動的にURLプレビューを表示 - おすすめのサーバー - ワンタップでリストに追加できる組み込みの候補です。 - 動画 - 音楽 - プレイリスト - エピソード - ポッドキャスト - - %1$d エピソード - - 新しい音楽トラック - 新しいプレイリスト @@ -156,9 +38,6 @@ - - %1$d トラック - @@ -168,29 +47,23 @@ - プロフィールにピン留め - プロフィールのピン留めを解除 - 新しいブックマークリスト - ブックマークリストのメタデータ - ハッシュタグセット - 新しいインタレストセット @@ -198,7 +71,6 @@ - 名前を変更 @@ -216,13 +88,9 @@ - プライベートにする:通知ユーザーのみへのgift-wrapノート - 公開にする - プライベートノートへの返信は常にプライベートのままです - 閲覧可能なユーザー まだ受信者がいません:あなただけがこのノートを見ることができます。共有したい人を追加してください。 @@ -238,31 +106,6 @@ - ブックマークリストのメタデータはNostr上の誰でも見ることができます。プライベートメンバーのみ暗号化されます。 - - 公開に移動 - - プライベートに移動 - - - - - - - - - - - - - - チャージ & Zapを送信 - - Zapを送信 - - - - %2$sに%1$s satsをチャージして%3$sへ%4$s satsをZap · 手数料 ≈ %5$s sats @@ -277,22 +120,6 @@ - (0〜100)% - - 単一選択 - - 複数選択 - - - - 投票できません - - この投票は新規票を受け付けていません - - - これはどういう意味ですか? - - メディアを追加 @@ -300,9 +127,35 @@ - このファイルをアップロードするサーバーを選択 - メディアサーバー + + + + + + + + + + + + + + + + + + + + + + + + + + + + 優先するメディアアップロードサーバーを設定してください。 @@ -320,44 +173,6 @@ - 支払い先 - - - 異なるネットワーク(例:bitcoin、lightning、ethereum)の支払いアドレスを追加してください。 - - - - - - この支払いを処理できるアプリが見つかりません。対応するウォレットをインストールしてください。 - - %1$s の支払いを処理できるアプリがインストールされていません。対応するウォレットをインストールしてください。 - - 支払いを開けません - - - - - - - - - - プライバシーオプション - - - - すべてのユーザーフォロー - - デフォルトフォローリスト - - 周辺 - - キュレーション - - マイリスト - - ミュートリスト @@ -372,9 +187,33 @@ - 新しいフォローリスト - 新しいフォローパック + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -388,192 +227,71 @@ - リストを編集 - デフォルトポートは 9050 - Tor エンジンを有効化 - 内蔵版または Orbot を使用 - Tor/プライバシープリセット - 以下の設定をすばやく変更 - Onion URL/relay - .onion URL に Tor を使用 - DM relay - DM の送受信に Tor を強制 - 信頼されていない relay - アウトボックス/インボックス relay に Tor を強制 - 信頼済み relay - リスト内のすべての relay に Tor を強制 - プロフィール画像 - プロフィール画像の読み込みに Tor を強制 - URL プレビュー - URL プレビューの読み込みに Tor を強制 - 画像 - 画像の読み込みに Tor を強制 - 動画 - 動画の読み込みに Tor を強制 - 送金操作 - zap、Lightning、Cashu 送金に Tor を強制 - Nostr アドレス認証 - NIP-05 アドレスの検証に Tor を強制 - メディアアップロード - コンテンツのアップロードに Tor を強制 - 内蔵 - Orbot - オフ - 基本 - デフォルト - メディア以外すべて - 完全プライバシー - カスタム - サーバーが必要とする場合に Tor を使用 - ランダムな relay からIPアドレスを隠す - 画像と動画を除くすべての接続でIPアドレスを隠す - すべての接続でIPアドレスを隠す - 独自の設定を作成 - %1$s sats - 返信 - 既読にする - 新しいメッセージ - 新しい zap - リアクション - 誰かがあなたの投稿にリアクションしたときに通知します - %1$s があなたの投稿にリアクションしました - %1$s に対して - 新しいリアクション - チェス - チェスゲームのイベントを通知します - %1$s があなたのチェスの挑戦を受け入れました - %1$s が動かしました — あなたの番です - チェスの更新 - 返信 - 誰かがあなたの投稿に返信したときに通知します %1$s が返信しました 投稿: %1$s - 新しい返信 - - メンション - - 誰かがあなたをメンションまたは引用したときに通知します - - %1$s があなたをメンションしました - - 新しいメンション - - 着信 - - 音声・ビデオ通話の着信通知 - - 着信 - - 音声通話着信中… - - ビデオ通話着信中… - - - - - %1$s との通話 - - 通話 - - 通話中の通知 - - 切る - - 受ける - - 拒否 - - - ミュート - - ミュート解除 - - カメラオン - - カメラオフ - - - スピーカー - - イヤピース - - Bluetooth - - - - - - - Amethyst が音声通話を開始するにはマイクのアクセス権が必要です。アプリの設定で有効にしてください。 - - Amethyst がビデオ通話を開始するにはカメラとマイクのアクセス権が必要です。アプリの設定で有効にしてください。 - - - - 通話設定 @@ -589,82 +307,52 @@ - リアルタイム通知のためにインボックス relay への接続を維持します - Amethyst 通知有効中 - - %1$d 件のインボックス relay に接続中 - - - %1$d 件の relay に接続中 - - インボックス relay に接続中… + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 常時接続通知サービス インボックス relay への永続的な接続を維持し、通知をすぐに届けます。継続中の通知が表示されます。バッテリー消費は増えますが、メッセージを見逃しません。 - フォロー別に通知を分割 - - 「フォロー中」(フォローしている人)と「全員」の2つの通知タブを表示します。未読インジケーターはフォロー中の人のアクティビティのみ光ります。 - - メッセージを表示 - - 通知タブにダイレクト・グループメッセージを含めます。オフにするとメッセージはメッセージタブのみに表示されます。 - - - - - - - - 非表示 - - 表示 - - 警告 - - スパムをフィルタリング - - 見知らぬ人の同一投稿が5回以上繰り返された場合に非表示にします - - イベントにクライアントタグを追加 - - 有効にすると、Amethyst は公開するイベントに NIP-89 クライアントタグを付加します。 - - 報告時に警告 - - フォロー中の人から報告された投稿やプロフィールに警告メッセージを表示します - - - - - - - - コミュニティルール違反の投稿を非表示 - - コミュニティが NIP-9B ルール文書を公開している場合、違反するイベントをコミュニティフィードから除外します。構造化されたルールのないコミュニティには影響しません。 - - フィルタリング設定 - - ブロック済みコンテンツ - - - まだユーザーをブロックしていません。 - - このセッションでスパムとして報告されたアカウントはありません。 - - 非表示の単語はありません。下に単語を追加すると、その単語を含む投稿が非表示になります。 - - - - フィルターやイベントを含む、この relay に送信されたバイト数 - - フィルターやイベントを含む、この relay から受信したバイト数 @@ -679,12 +367,45 @@ - プライバシーポリシー - 児童安全基準 - 概要 & 法的情報 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -728,7 +449,6 @@ - Lightning アドレスが設定されていません @@ -736,85 +456,50 @@ - フォローパック - 読み物 - フィードアルゴリズム - マーケットプレイス - ライブストリーム - コミュニティ - UI設定 アプリ設定 - 翻訳 - リアクション - アカウント設定 - アプリ設定 - 危険ゾーン - Marmot 状態をリセット - Marmot 状態をリセットしました。 - Marmot 状態のリセットに失敗しました: %1$s - 従量制なし WiFi - なし - 完全 - シンプル - パフォーマンス - クラシック - モダン - Wallet Connect - 動画の自動再生 - 没入スクロール - スクロール中にナビゲーションバーを非表示 - UIモード - 投稿スタイルを選択 - プロフィールギャラリースタイル - ギャラリースタイルを選択 - スパマー - ミュート中。クリックしてミュート解除 - 音声オン。クリックしてミュート - %d 秒戻る - %d 秒進む @@ -825,52 +510,35 @@ - 位置情報限定投稿 - その位置のフォロワーのみに表示されます。一般のフォロワーには表示されません。 - - %1$d トラック - - - +%1$d トラック - - カバー画像をアップロード - このトラックのアートワークとして正方形の画像を選んでください。 - 音声ファイルをアップロード - MP3、WAV、または FLAC を選んでください。保存時にメディアサーバーにアップロードされます。 - カバーと音声をアップロードして公開中です。画面を離れても処理は続きます。 - プレイリストを編集 - カバー画像をアップロード - このプレイリストのアートワークとして正方形の画像を選んでください。 - カバーをアップロードして公開中です。画面を離れても処理は続きます。 @@ -888,49 +556,28 @@ プライベート - 件名 - - - - アップロードできません - - 先にメッセージの宛先を入力してください - ウォレットが見つかりません - - Amethyst は Nostr Wallet Connect(NWC)に対応したウォレットアプリを見つけられませんでした。 -\n\n対処方法: -\n\t1. NWC サポートを確認: お使いのウォレットアプリが Nostr Wallet Connect に対応しているか再確認してください。 -\n\t2. 接続を作成: ウォレットアプリで新しい NWC 接続を作成してください。 -\n\t3. Amethyst にリンク: ウォレットは通常、以下の3つの方法を提供します: -\n\t\t3.1 自動リンク: 自動的に Amethyst を開いて接続するボタン。その場合、ボタンをクリックして Amethyst を開き、新しい画面で保存を押してください。 -\n\t\t3.2 手動リンク: この画面の貼り付けアイコンをクリックして直接入力できる接続 URI。 -\n\t\t3.3 QR コード: ウォレットが作成する QR コード。この画面の QR コードボタンから読み取れます。 - - - - ダーク、ライト、またはシステムテーマ - - 画像と GIF を自動的に読み込む - - 動画と GIF を自動的に読み込む - - 画面に表示されたときに動画を自動再生する - - URL プレビューを表示 - - - クリップボードにコピー - - クリップボードにコピーしました - 共有または保存 + + + + + + + + + + + + + + DM として送信 @@ -939,17 +586,6 @@ - メディアを追加しました - - プロフィールギャラリーにメディアを追加しました - - - - - - - - zap を送信できません @@ -958,92 +594,61 @@ - Lightning の設定がありません - - ユーザー %1$s は sats を受け取るための Lightning アドレスを設定していません - - - - 署名アプリを開くエラー - - 署名アプリが見つかりませんでした。アプリがアンインストールされていないか確認してください - - この動画を再生できません - - このデバイスではコーデックまたは形式がサポートされていません(%1$s)。ブラウザで開いてみてください。 - - ブラウザで開く - - 署名リクエストが拒否されました - - 署名アプリがこのトランザクションを承認していることを確認してください - - Lightning 請求書を支払うウォレットが見つかりません(エラー: %1$s)。zap を使用するには Lightning ウォレットをインストールしてください - - Lightning 請求書を支払うウォレットが見つかりません。zap を使用するには Lightning ウォレットをインストールしてください - - Blossom リンクを開けません - - Blossom アプリが見つかりませんでした。このファイルを表示するにはローカルの Blossom アプリをインストールしてください - - 非表示ワード - - - ミュートしたスレッド - - ミュートしたスレッドはありません - - - プロフィール画像 - - プロフィール画像を表示 - - - 請求書を支払えませんでした - - 引き出しできませんでした - - Cashu を換金できませんでした - - Mint から次のエラーメッセージが返されました: %1$s - - Cashu を受け取りました - - %1$s sats がウォレットに送られました。(手数料: %2$s sats) - - 対応する Cashu ウォレットがシステムに見つかりません - - 受信者のサーバーから請求書を取得できません - - Wallet Connect プロバイダーから次のエラーが返されました: %1$s - Lightning アドレス「%1$s」から LNUrl を組み立てられませんでした。ユーザーの設定を確認してください - %1$s から請求書を取得できませんでした: %2$s - %1$s からの JSON の解析エラー。ユーザーの Lightning 設定を確認してください - %1$s のレスポンスにコールバック URL が見つかりませんでした - %2$s からの請求書金額が正しくありません(%1$s sats)。正しい金額は %3$s であるべきでした - zap 送信前に Lightning 請求書を作成できませんでした。受信者の Lightning ウォレットから次のエラーが送信されました: %1$s - 読み取り専用ユーザー - リアクションが設定されていません - 通知 - 配信 - アプリ内表示 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - カテゴリ @@ -1057,11 +662,9 @@ - %1$sからのメッセージ - %1$sさん、こちらはまだ入手可能ですか? @@ -1079,63 +682,34 @@ - 衣類 - アクセサリー - 電子機器 - 家具 - コレクターアイテム - 書籍 - ペット - スポーツ - フィットネス - アート - クラフト - ホーム - オフィス - 食品 - その他雑多 - その他 - メディアのアップロードに失敗しました - 圧縮ファイルを開けませんでした - アップロードエラー:%1$s - アップロード後にサーバーがURLを提供しませんでした - アップロードされたメディアをサーバーからダウンロードできませんでした - アップロード後にダウンロードしたファイルを確認できませんでした:%1$s - %1$sへのアップロードに失敗しました:%2$s - 削除に失敗しました:%1$s - メディアがNIP-95には大きすぎます - ファイルを暗号化 - プライバシーのためにアップロード前にファイルを暗号化します。一部のサーバーでは無料アカウントで暗号化ファイルを受け付けない場合があります。 - 暗号化アップロード失敗 - 多くのサーバーは無料アカウントで暗号化ファイルを受け付けません。暗号化なしで再試行できます。 @@ -1145,46 +719,28 @@ - H.265/HEVCコーデックを使用 - 小さいファイルサイズでより高い品質ですが、すべての端末がH.265の再生をサポートしているわけではありません。 - GIFをMP4に変換 - アニメーションGIFをMP4動画に変換してファイルサイズを縮小し、再生互換性を向上させます。 - プライベートメタデータを削除 - アップロード前に対応するメディアファイルからプライベートメタデータの削除を試みます - メタデータを削除できませんでした - メディアからプライベートメタデータを削除できませんでした。アップロードをキャンセルしました。 - アップロードをキャンセルしました - AVIFからメタデータを削除できません:%1$s - ホーム - 発見 - メッセージ - 通知 - カレンダー - カレンダーリスト - チェス - ウォレット @@ -1222,7 +778,6 @@ - Cashu ウォレット(NIP-60) @@ -1244,56 +799,11 @@ P2PK秘密鍵(hex) - mintを編集 変更を保存 - - +%1$d件 - - - - 他%1$d人がおすすめ - - - 人気のmint - - 一致するmint - - - - - - - - - - - - - - 受取済み - - 送金済み - - - - - - - - - - %1$sのkind:38000おすすめの削除リクエストを公開します。NIP-09を承認するrelayはこれを削除します。 - - - - - - - %2$s個のproofから%1$s satsを回復しました。 @@ -1317,28 +827,53 @@ - %1$s sat + 最大%2$s satの手数料を支払いますか? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - Nutzapが失敗しました - ノートに受信者の公開鍵がありません - Nutzapは公開されるため、このプライベートノートが公開されてしまいます。代わりにLightning zapを使用してください。 - イベント参照を構築できません - インボイスの支払いを待っています… - mintを確認しています… @@ -1374,38 +909,19 @@ - 遅い - 普通 - 速い - 約1時間 - 約30分 - 約10分 - %1$s · %2$s sat/vB · %3$s - - %1$s satsを%2$d分割で送る - - - このノートの%1$d分割zapを使用する - - - %1$d人の受信者に分割 - - - Lightningアドレスのみの受信者%1$dをスキップしています — オンチェーンにはアドレスを導出するためのNostr公開鍵が必要です。 - @@ -1417,63 +933,37 @@ - 残高を読み込んでいます - トランザクションを構築しています - 署名しています - ブロードキャストしています - 領収書を公開しています - Bitcoinチェーンバックエンドが設定されていません - Bitcoin残高を読み込めませんでした - トランザクションを構築できませんでした - 受信者の取り分がダスト以下です - トランザクションに署名できませんでした - トランザクションをブロードキャストできませんでした - 支払いは送信されましたが、zap領収書を公開できませんでした - - 支払いは送信されました(%2$d件中%1$d件の領収書を公開済み)が、次の領収書を公開できませんでした - - フォローをインポート - 新規商品 - 新規記事 - 新規カレンダーイベント - カレンダーイベントを編集 - 新規カレンダー - カレンダーを編集 - フィード - 月 - 週 - 日 @@ -1507,9 +997,6 @@ - - %1$s、%2$dイベント - @@ -1536,24 +1023,14 @@ - 開催中 - %1$s · 終了:%2$s - カレンダーイベントを共有 - calendar_reminders - カレンダーリマインダー - 参加予定のイベントが始まる前に通知します。 - カレンダーイベント - - %1$d分後に開始します - @@ -1562,33 +1039,23 @@ - 画像のアップロードに失敗しました - 選択した画像をアップロードできませんでした。もう一度試すか、URLを貼り付けてください。 - カレンダーリマインダー - リマインダーを送る - 参加予定のイベントが始まる前に通知が送られます。 - - %1$d分 - - マップで開く - リンクを開く @@ -1604,20 +1071,16 @@ - この投稿へのすべてのリアクションを開く - この投稿へのすべてのリアクションを閉じる - Zap - ボトムナビゲーションバー ドラッグして並べ替え。トグルでボトムバーへの追加・削除を切り替え。アイテムが0個の場合はボトムバーが非表示になります。 @@ -1628,21 +1091,14 @@ ホーム画面に表示するタブを選択します。タブが1つだけ有効の場合、タブバーは非表示になります。 - すべて - プロフィール UI ユーザープロフィール画面に表示するセクションとフィードを選択します。デフォルトではすべての項目が有効になっています。 - プロフィールバッジ - アプリのおすすめ - 受信した Zap フィード - フォロワーフィード - リアクションバー @@ -1660,7 +1116,6 @@ - ビデオプレーヤーボタン @@ -1680,7 +1135,6 @@ - オーディオビジュアライザー @@ -1706,7 +1160,6 @@ - 有効期限 @@ -1714,11 +1167,8 @@ - 無効なアドレス - Amethyst が開くための URI を受信しましたが、その URI は無効でした: %1$s - DM 受信 Relay @@ -1726,103 +1176,63 @@ - 検索 Relay - おすすめの選択肢:\n%1$s - Outbox Relay - Inbox Relay - Relay 設定 - パブリック Outbox / ホーム Relay - ユーザーはこれらの relay にコンテンツを投稿しています - この relay タイプはすべてのコンテンツを保存します。Amethyst はここに投稿を送信し、他のユーザーはこれらの relay を使ってあなたのコンテンツを見つけます。1〜3 つの relay を入力してください。個人用 relay、有料 relay、またはパブリック relay が利用できます。 - パブリック Inbox Relay - ユーザーはこれらの relay で通知を受け取っています - この relay タイプは、あなたの投稿へのすべての返信、コメント、いいね、zap を受信します。有料・無料いずれの relay も使用できます。relay 運営者が設定する制限により、受け取る通知の量が変わる場合があります。たとえば、コメントスパム攻撃を受けている場合、有料 relay でスパムをフィルタリングできます。1〜3 つの relay を入力してください。 - DM 受信 Relay - ユーザーはこれらの relay で DM を受け取っています - プライベート受信 relay として 1〜3 つの relay を入力してください。他のユーザーはこれらの relay を使ってあなたに DM を送ります。DM 受信 relay は誰からでもメッセージを受け取れますが、ダウンロードはあなた自身のみに許可するものにしてください。おすすめの選択肢:\n - inbox.nostr.wine(有料)\n - auth.nostr1.com(無料)\n - you.nostr1.com(個人用 relay - 有料) - KeyPackage - KeyPackage Relay - あなたの MLS KeyPackage が公開されている relay(MIP-00)です。他のユーザーはこれらの KeyPackage を取得して、あなたを Marmot グループチャットに招待します。KeyPackage イベントの書き込みとパブリック読み取りを許可する relay を 1〜3 つ入力してください。 - プライベートホーム Relay - 下書きやアプリ設定など、他のユーザーには見えないイベントを保存する relay を 1〜3 つ入力してください。理想的には、ローカル relay か、各ユーザーのコンテンツをダウンロードする前に認証を要求する relay を使用してください。 - 接続済み Relay - 現在使用中の relay の一覧 - 検索 Relay - コンテンツやユーザーを検索する際に使用する relay の一覧です。利用可能なオプションがない場合、タグ付けと検索が機能しません。NIP-50 を実装していることを確認してください。 - ローカル Relay - このデバイスで動作している relay の一覧です。 - プロフィールをローカル relay に転送する - 受信したすべてのプロフィール(kind 0)イベントをローカル relay に送信する - 信頼済み Relay - Tor 接続が不要な信頼済み relay - お気に入り Relay フィード - グローバルフィードを見るためによく訪れる relay - Proxy Relay - filter.nostr.wine のように、アプリがフィードをダウンロードするために使用するアグリゲーター relay です。これにより outbox モデルが置き換えられ、アプリはリスト内の relay のみに接続するようになります。 - Broadcast Relay - sendit.nosflare.com のように、あなたのノートを他のすべての relay にプッシュすることに特化した relay です。Amethyst はあなたが作成するすべての新しいイベントにこの relay を追加します。 - インデクサー Relay - purplepag.es のように、全ユーザーのメタデータと relay リストのホスティングに特化した relay です。Amethyst はこれらの relay を使用して、あなたのリストにないユーザーを検索します。 - ブロック済み Relay - Amethyst はこれらの relay に接続しません - Relay 設定をエクスポート @@ -1863,12 +1273,6 @@ - タイムスタンプ証明 - - この投稿が %1$s より前に署名されたことの証明があります。この証明はその日時に Bitcoin ブロックチェーンに刻印されています。 - - - 投稿を編集 @@ -1879,15 +1283,13 @@ - 下書きノートには返信できません - 下書きノートを引用することはできません - 下書きノートにリアクションすることはできません - 下書きノートに zap することはできません - 下書きノート + + + @@ -1895,107 +1297,62 @@ - 400 Bad Request — サーバーがリクエストを処理できないか、処理しようとしません。 - 401 Unauthorized — ユーザーが有効な認証情報を持っていません - 402 Payment Required — サーバーはリクエストを完了するために支払いを要求しています - 403 Forbidden — ユーザーがリクエストを行うためのアクセス権を持っていません - 404 Not Found — サーバーがリクエストされたアドレスを見つけられません - 405 Method Not Allowed — サーバーはリクエストメソッドをサポートしていますが、対象リソースではサポートしていません - 406 Not Acceptable — サーバーがリクエストを満たすコンテンツを見つけられません。 - 407 Proxy Authentication Required — ユーザーが有効な認証情報を持っていません - 408 Request Timeout — サーバーが応答を待ちタイムアウトしました - 409 Conflict — リソースとの競合があるためサーバーがリクエストを処理できません - 410 Gone — リクエストされたコンテンツはサーバーから完全に削除されており、復元されません - 411 Length Required — サーバーが定義されたContent-Lengthを要求するためリクエストを拒否しました - 412 Precondition Failed — サーバーがヘッダーフィールドのリクエストの事前条件を満たせません - 413 Payload Too Large — リクエストがサーバーの制限を超えているため、サーバーは処理を拒否しています - 414 URI Too Long — クライアントがリクエストしたURLがサーバーの処理できる長さを超えています。 - 415 Unsupported Media Type — リクエストがサーバーのサポートしていないメディア形式を使用しています - 416 Range Not Satisfiable — サーバーがリクエストのRangeヘッダーフィールドに示された値を満たせません。 - 417 Expectation Failed — サーバーがExpectリクエストヘッダーフィールドの要件を満たせません - 426 Upgrade Required — クライアントが別のプロトコルにアップグレードしない限り、サーバーは現在のプロトコルでリクエストを処理しません。 - 500 Internal Server Error — サーバーが予期しないエラーに遭遇し、リクエストを完了できません - 501 Not Implemented — サーバーがリクエストを処理できないか、リクエストメソッドを認識しません - 502 Bad Gateway — サーバーがゲートウェイとして機能し、ホストから無効なレスポンスを受け取りました - 503 Service Unavailable — サーバーが過負荷またはメンテナンス中のためよく発生します - 504 Gateway Timeout — サーバーがゲートウェイまたはプロキシとして機能し、レスポンスを待ちタイムアウトしました - 505 HTTP Version Not Supported — サーバーがリクエストのHTTPバージョンをサポートしていません - 506 Variant Also Negotiates — サーバーの内部設定エラーです - 507 Insufficient Storage — サーバーがリクエストを正常に処理するのに十分なストレージを持っていません - 508 Loop Detected — サーバーがリクエストの処理中に無限ループを検出しました - 511 Network Authentication Required — クライアントはネットワークにアクセスするために認証が必要です Blossom サーバー 必要なだけサーバーを追加できます。写真をアップロードする際にどれを使用するかは後で選択できます - NIP-96 サーバーを追加 - Blossom サーバーを追加 ダウンロード - ファイルを開けませんでした - ファイルを開いてダウンロードするための torrent アプリがインストールされていません。 - マグネットリンクを生成するための情報がイベントに不足しています - マイリスト - フィード - ハッシュタグ - インタレストセット - 場所 - コミュニティ - リスト - フィードアルゴリズム - すべてのお気に入りフィードアルゴリズム - Relays - お気に入りフィードアルゴリズム @@ -2010,18 +1367,13 @@ - プライベートメッセージ - パブリックメッセージ - 画像を共有できません。後でもう一度お試しください… - 動画を共有できません。後でもう一度お試しください… - 動画をダウンロード中… @@ -2039,17 +1391,11 @@ - 翻訳しない言語 - ここに表示されている言語は翻訳されません。言語を選択して削除すると、再び翻訳されるようになります。 - 翻訳先 - コンテンツの翻訳先言語を選択してください。 - 言語表示の設定 - 翻訳された言語ペアごとに、どの言語を先に表示するかを選択します。 @@ -2060,9 +1406,7 @@ - 一時停止 - 再生 @@ -2071,7 +1415,6 @@ - このメッセージは %1$s 後に消えます @@ -2086,15 +1429,10 @@ - フォローリストのメタデータ - フォローリストのメタデータは Nostr 上の誰でも見ることができます。プライベートメンバーのみ暗号化されています。 - フォローパックのメタデータ - フォローパックのメタデータは Nostr 上の誰でも見ることができ、新規ユーザー向けのスターターキットとして多くのウェブサイトで頻繁に公開されています。 - フォローパックを編集 @@ -2110,12 +1448,10 @@ - 展開する - 再試行 @@ -2126,11 +1462,8 @@ - リアクション - 音声投稿 - 音声返信 @@ -2152,408 +1485,15 @@ - Outbox Relays - アプリ - アプリのおすすめ - ユーザー設定 - オーディオヘッダー - オーディオトラック - 音楽トラック - 音楽プレイリスト - ポッドキャストエピソード - ポッドキャスト番組 - - 作成したポッドキャスト - - お気に入りのポッドキャスト - - バッジ受賞 - - バッジ定義 - - 承認済みバッジセット - - プロフィールバッジ - - ブロックされた Relays - - Blossom Servers - - Nests Servers - - Blossom Auth - - ブロードキャスト Relays - - ブックマークリスト - - 旧ブックマークリスト - - 日次予定 - - カレンダー - - 予定 - - 予定RSVP - - チェスゲーム - - チェス認証 - - お気に入りrelay - - チェスチャレンジ - - チェスゲーム承認 - - チェスの手 - - チェスゲーム終了 - - チェス引き分け提案 - - チャンネル定義 - - チャンネルメッセージ非表示 - - チャンネルリスト - - チャンネルメッセージ - - チャンネルメタデータ - - チャンネルユーザーミュート - - DMファイル - - DMメッセージ - - DM relay - - 分類広告 - - コメント - - コミュニティ定義 - - コミュニティリスト - - コミュニティ投稿 - - フォローリスト - - 削除 - - 下書き - - 絵文字パック - - 絵文字パックリスト - - 一時チャット - - 一時チャットルーム - - ファイルヘッダー - - プロフィールギャラリー - - ファイルサーバー - - Blobデータ - - Blobヘッダー - - 医療データ - - フォローパック - - リポスト(16) - - ジオハッシュフォロー - - GiftWrap - - Git Issue - - Git Patch - - Git Repo - - Git返信 - - Zapゴール - - ハッシュタグフォロー - - ハイライト - - HTTP認証 - - インデックスrelayリスト - - アドベンチャープロローグ - - アドベンチャーシーン - - アドベンチャー読書 - - 名前付きブックマーク - - ライブチャット - - ライブストリーム - - Zap - - NWCリクエスト - - NWCレスポンス - - プライベートZap - - Zapリクエスト - - ブログ - - ミーティングルーム - - ルームプレゼンス - - ミーティングスペース - - プロフィール - - ミュートリスト - - NNS - - NIP - - Nostr Connect - - DVMステータス - - DVMコンテンツリクエスト - - DVMコンテンツレスポンス - - DVMユーザーリクエスト - - DVMユーザーレスポンス - - OTS - - PayTo - - ピープルリスト - - 画像 - - ワークアウト - - ピン - - Zapポール - - 投票 - - 投票回答 - - NIP-04 DM - - プライベートrelay - - プロキシrelay - - パブリックメッセージ - - リアクション - - 連絡先カード - - relay認証 - - relay検索 - - relayモニターアナウンス - - relayセット - - レポート - - リポスト - - ユーザー削除 - - シール - - 検索relay - - ユーザーステータス - - ノート - - 編集 - - トレント - - トレントコメント - - 信頼済みrelay - - 信頼済みプロバイダー - - 動画(Repl) - - ショート(Repl) - - 動画 - - ショート - - ボイスメッセージ - - ボイス返信 - - WakeUp - - Webブックマーク - - Wiki - - - - - - - - - - - - - - - - - %1$d%%稼働率 - - Namecoin設定 - - - - - - - - - - - %dms - - - - - - relay同期 - - - - - - - - - - - - - - - - - - - - - - - - - - - - Bitcoin Explorer(OTS) - - あなたからのイベント - - あなた宛てのイベント - - 検索可能なイベント - - DM - - プロフィール - - アウトボックスリスト - - 最終確認:%1$s前 - - 最終確認:%1$s(%2$s前) - - たった今確認 - - 未確認 - - - - %1$d分 - - - - %1$d時間 - - - - %1$d日 - - - - %1$d週間 - - - - %1$dヶ月 - - - - %1$d年 - - - - %1$d mint - - - - %1$d件の保留中の請求書 - - - - - - 使用していない%1$d個のmintに資金があります - @@ -2567,7 +1507,6 @@ - %1$s sat を %2$s に移動しました。 @@ -2580,13 +1519,10 @@ - デバイスにキャスト - キャストを停止 - HLS アップロード @@ -2607,7 +1543,6 @@ - %1$s をアップロード中(%3$d 件中 %2$d 件目) @@ -2625,7 +1560,6 @@ - 認証 @@ -2633,12 +1567,9 @@ - 認証リクエスト - 認証者の推薦 - 認証者の習熟度 @@ -2646,11 +1577,8 @@ - ウェブブックマーク - ウェブブックマークを追加 - ウェブブックマークを編集 @@ -2665,7 +1593,6 @@ - %2$s sats のゴールに対して %1$s を達成 @@ -2700,9 +1627,7 @@ - 新しいゴール - 消去リクエスト @@ -2716,7 +1641,6 @@ - 消去リクエストを送信しました @@ -2730,22 +1654,16 @@ - 消去履歴 - ユーザー - イベント - Kind - IP - 設定 @@ -2775,45 +1693,247 @@ - - - - - - - - - - - - - - - - - - - - - - - テキストの改善を提案 - デバイス上のAIモデルを使用して、テキストの修正やトーンの変更を提案します。 - 追跡ブロードキャスト - イベントの送信時に追跡ブロードキャスターを使用します。ブロードキャスト中にライブの進捗とrelay別のステータスを表示します。 - ワークアウトの共有を提案する - Health Connect(Samsung Health、Google Fit、Fitbit、Garminなど)から完了したワークアウトを読み取り、投稿として共有することを提案します。権限は接続時にのみ要求されます。 - 作成の設定 - 自動的に下書きを作成する - 入力中または未送信のテキストがある状態でコンポーザーを離れると、下書きイベントを自動的に保存し、プライベートのアウトボックスrelayに送信します。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2830,9 +1950,7 @@ - 新しい絵文字パック - 絵文字パックを編集する @@ -2856,45 +1974,29 @@ - マイ絵文字パック - 絵文字 - パブリック絵文字は全員に表示され、このパックが絵文字リストに含まれている場合、リアクションメニューと「:」オートコンプリートピッカーに表示されます。 - プライベート絵文字はrelayに暗号化されて保存され、あなただけに見えます。パブリック絵文字と同様に、リアクションメニューと「:」オートコンプリートに表示されます。 - 下書きは %1$d バイトです。このコミュニティはこの kind を %2$d バイトまでに制限しています。 - 下書きは %1$d バイトです。このコミュニティはイベントを %2$d バイトまでに制限しています。 - 本日、この kind のイベントをすでに %1$d 件投稿しています(上限 %2$d 件)。 - Nowhere サイト - Nowhere イベント - Nowhere 資金調達 - Nowhere ストア - Nowhere 請願 - Nowhere メッセージ - Nowhere ドロップ - Nowhere アート - Nowhere フォーラム @@ -2912,23 +2014,14 @@ - - %1$d 件のメッセージ - - - %1$d 人のメンバー - - グループ情報が更新されました - 更新に失敗しました: %1$s - グループの作成に失敗しました: %1$s @@ -2939,13 +2032,9 @@ - グループの退出に失敗しました: %1$s - %1$s を追加中… - %1$s の追加に失敗しました: %2$s - 不明なエラー @@ -2954,9 +2043,7 @@ - メンバーが削除されました - メンバーの削除に失敗しました: %1$s @@ -2964,22 +2051,17 @@ - 管理者権限が付与されました - 管理者権限の付与に失敗しました: %1$s - 管理者権限が取り消されました - 管理者権限の取り消しに失敗しました: %1$s - このグループのメンバーではありません @@ -2998,22 +2080,6 @@ - - このポストには %1$d 件以上のハッシュタグが含まれています - - - - %1$d 件のアセットがバンドルされています - - - - +%1$d\n件の返信 - - - - - - この relay から送信されたスパムイベントの数 @@ -3028,49 +2094,39 @@ - 公開鍵でログインしています。公開鍵は読み取り専用です。ワードやフレーズを非表示にするには、秘密鍵でログインしてください - 公開鍵でログインしています。公開鍵は読み取り専用です。ワードやフレーズを表示するには、秘密鍵でログインしてください - 公開鍵でログインしています。公開鍵は読み取り専用です。アップロードするには、秘密鍵でログインしてください - 公開鍵でログインしています。公開鍵は読み取り専用です。イベントに署名するには、秘密鍵でログインしてください - 復号化が許可されていません - この操作に必要な復号化が署名アプリによって許可されませんでした。署名アプリで NIP-44 復号化を有効にして、もう一度お試しください - 署名アプリが見つかりません - 署名アプリはアンインストールされましたか?署名アプリがインストールされており、このアカウントが登録されているか確認してください。署名アプリが変更された場合は、一度ログアウトしてからログインし直してください。 - 外部署名アプリがリクエストに対して予期しないペイロードを返しました。Amethyst または署名アプリにバグがある可能性があります。 + + + + + + 編集 #%1$s - 編集を提案する - エラーメッセージの解析に失敗しました - インボイスを要求中… - デビットサービスが支払いを完了しませんでした。 - %2$s 経由で %1$s を支払いますか? - %1$s 経由でこのインボイスを支払いますか? - このオファーに有効な金額を入力してください。 @@ -3079,13 +2135,9 @@ - 1 回のみ - 毎日 - 毎週 - 毎月 @@ -3111,13 +2163,11 @@ - %1$s 経由で支払い中… - 支払いに失敗しました @@ -3127,10 +2177,8 @@ - この受取人への支払い可能額: %1$s sats - トランザクション: %1$s @@ -3142,68 +2190,10 @@ - メッセージを入力… - 送信 名前を変更 - エラー - - relay への接続成功率 - - - - - - - - - 端末に保存 - - 動画のダウンロードを開始しました… - - メディアのダウンロードを開始しました… - - トップに固定 - - 固定を解除 - - - 動画を端末のギャラリーに保存しました - - 動画の保存に失敗しました - - PDF を Downloads/Amethyst に保存しました - - PDF の保存に失敗しました - - - - - この端末にカメラアプリが見つかりません - - - 長押ししてメッセージを録音 - - - - - アップロードエラー - - ボイスメッセージのアップロードに失敗しました - - NIP-95 はボイスメッセージにまだ対応していません - - ボイスのアップロードに失敗しました: %1$s - - なし - - 低音 - - 高音 - - ニュートラル @@ -3213,17 +2203,47 @@ - 秘密鍵の QR コードを表示 - - 暗号化された秘密鍵の QR コードを表示 - 無効な鍵: %1$s - パスワードは必須です - 名前は必須です + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3240,30 +2260,6 @@ 新しいチャットプロフィール: - 消えるチャット - - relay チャット - - relay チャット - - relay チャットは、ホスト relay によって管理されるチャットグループです。 - Nostr 上の全員に公開されており、誰でも参加できます。 - 特定のトピックを中心としたオープンなコミュニティに最適です。一部のグループは一時的なもので、 - チャットメッセージは時間とともに消えます - - MLS グループ - - - パブリックチャットのメタデータ - - パブリックチャットは Nostr 上の全員に公開されており、誰でも - 参加できます。特定のトピックを中心としたオープンなコミュニティに最適です。 - モデレーションは、その relay 上のポストを削除することで管理できます - - Relay - - このグループをホストする relay を 1〜3 件入力してください。 - Nostr クライアントはこの設定を使用して、メッセージのダウンロード先と送信先を決定します。 @@ -3272,35 +2268,32 @@ - 秘密鍵の暗号化に失敗しました - 生体認証でこの端末の所有者を確認できませんでした - - 生体認証でこの端末の所有者を確認できませんでした。エラー: %1$s - ナビゲート - あなた - フィード - 作成 - システム - 画像として共有 - 画像 URL として共有 + + + + + + + + + + - スレッドをミュート - スレッドのミュートを解除 @@ -3308,11 +2301,8 @@ - ブックマークの移行が完了しました - 下書き - 予約投稿 @@ -3321,14 +2311,10 @@ - 投稿を予約 - 予約をキャンセル - 予約投稿は次回アプリを開くまで公開されない場合があります。確実なバックグラウンドスケジューリングのために、設定 → UI設定で常時通知を有効にしてください。 - 予約投稿は次回アプリを開くまで公開されない場合があります。このアカウントがアクティブな間、他のアカウントの予約投稿は実行されません。確実なバックグラウンドスケジューリングのために、設定 → UI設定で常時通知を有効にしてください。 @@ -3337,109 +2323,61 @@ - %1$s · %2$s後 - %1$s · %2$s前 - 明日 - ログアウトしました - - ログアウトしました · %d件の予約投稿を削除しました - - 予約投稿が公開されました - 予約投稿に失敗しました - 予約投稿 - 予約投稿が公開または失敗したときの通知。 - 今すぐ送信 - エラー: %1$s - 予約済み - 送信中… - 失敗 - 送信済み - キャンセル済み - - %d件の予約投稿がまだ公開されていません。ログアウトすると完全に削除されます。 - - - %d件キュー中 - - - · %d件が1時間以内に公開 - - - %d個のrelayへ - - ノートIDをコピーしました - 投票 - 進行中 - 終了 - バッジ - コミュニティ - 新しいコミュニティ - コミュニティを編集 - モデレーター - relay - 検証可能なルール(任意) - 許可されたイベントの種類 - ショートテキスト(1) - 長文記事(30023) - 画像投稿(20) - 動画投稿(21) - ショート動画(22) - コミュニティコメント(1111) @@ -3448,23 +2386,18 @@ - バンされたユーザー - Web-of-trustゲート(任意) - グローバル最大イベントサイズ(任意) - 新しいバッジ - バッジを授与 @@ -3481,7 +2414,6 @@ - プロフィールバッジ @@ -3505,12 +2437,9 @@ - 画像 - ワークアウト - 新しいワークアウト @@ -3537,87 +2466,56 @@ - ランニング - ウォーキング - サイクリング - ハイキング - 水泳 - ローイング - 筋トレ - ヨガ - 瞑想 - 食事管理 - 断食 - サーキット - EMOM - AMRAP - アプリ アプリ - nApplets - - nSites - - - ブラウザ - Tor経由で読み込み中。タップしてオープンウェブを使用します。 - - オープンウェブで読み込み中。タップしてTorを使用します。 - お気に入り - お気に入りアプリ + + + + - お気に入りに追加 - - お気に入りから削除 - Tor 経由で読み込みます。 - - オープンウェブ経由で読み込みます。 - relay に公開しました - ファイルをアップロードしました - 支払いを行いました - そのアプリはまだ読み込まれていません。しばらくしてから再試行してください。 - 最近 + + nApplet の権限 @@ -3634,51 +2532,30 @@ - nApplet %1$s… シェル - ID - キーボード操作 - relay - ストレージ - 支払い - ネットワーク - アップロード 利用可能な機能を確認する - 公開鍵を読み取る - キーボードショートカットをバインドする - イベントを読み取り、署名して公開する - 専用のプライベートストレージ - Lightning インボイスを支払う - ウェブおよび Blossom リソースを取得する - メディアサーバーにファイルをアップロードする - テーマ - 通知 - メッセージング - アプリの色に合わせる - 通知を表示する - 他の napplet とメッセージをやり取りする 機能: %1$s @@ -3686,33 +2563,19 @@ - この nApplet はあなたの公開鍵を読み取ろうとしています。 - この nApplet はあなたのプロフィールとアカウントデータを読み取ろうとしています。 - この nApplet はあなたとして kind %1$d イベントに署名して公開しようとしています。 - この nApplet はあなたとして kind %1$d イベントに署名して公開しようとしています: - この nApplet はあなたとして暗号化されたイベントを送信しようとしています。 - この nApplet はあなたの relay からイベントを読み取ろうとしています。 - この nApplet はプライベートストレージを使用しようとしています。 この nApplet は Lightning インボイスを支払おうとしています。 - この nApplet はウェブリソースを取得しようとしています。 - この nApplet はメディアサーバーにファイルをアップロードしようとしています。 - この nApplet はあなたに通知を表示しようとしています。 - このサイトはあなたの Nostr 鍵で kind %1$d イベントに署名しようとしています。 - - この nApplet は %1$d sats の Lightning インボイスを支払おうとしています。 - @@ -3726,35 +2589,25 @@ - ショート - パブリックチャット - フォローパック - ライブ配信 - Nests - 手を挙げる - 手を下ろす - ミュート - ミュート解除 - メッセージを送信できませんでした @@ -3763,25 +2616,17 @@ - マイクをミュート - マイクのミュートを解除 - Nests - ルームが開いている間オーディオを再生し続けます。 - Nest に接続しました - Nest — ライブ中 - タップして戻る。 - 停止 @@ -3793,27 +2638,17 @@ - 手を挙げました - ステージに上がりました - 話しています - オーディエンスとして参加しました - Nest を退出しました - 退出 - ルームをクローズ済みとしてマークできませんでした。退出します — ルームは自動的に閉じます。 - - %1$d 人のリスナー - @@ -3833,20 +2668,14 @@ - このスピーカーをミュート - このスピーカーを復元 - フォロー - フォロー解除 - ミュート - ミュート解除 @@ -3874,7 +2703,6 @@ - Nest サーバーリストを保存できませんでした。再試行してください。 @@ -3888,12 +2716,9 @@ - Nest サーバー - あなたのサーバー - kind-10112 の置き換え可能なイベントとして保存され、他のクライアントがあなたの設定を読み取ることができます。 diff --git a/amethyst/src/main/res/values-ko-rKR/strings.xml b/amethyst/src/main/res/values-ko-rKR/strings.xml index 2b03ff48b7..f3f0bb3d04 100644 --- a/amethyst/src/main/res/values-ko-rKR/strings.xml +++ b/amethyst/src/main/res/values-ko-rKR/strings.xml @@ -1,112 +1,12 @@ - - 이 게시물에 해시태그가 %1$d개를 초과합니다 - - - %1$d개 파일 포함 - - - +%1$d\n개 답글 - - 스팸 - 이 relay에서 수신된 스팸 이벤트 수 - 사칭 - 불법 행위 - 삭제 요청 - 공개 키로 로그인 중입니다. 공개 키는 읽기 전용입니다. 답글을 달려면 개인 키로 로그인하세요 - 공개 키로 로그인 중입니다. 공개 키는 읽기 전용입니다. 게시물을 부스트하려면 개인 키로 로그인하세요 - 공개 키로 로그인 중입니다. 공개 키는 읽기 전용입니다. 좋아요를 누르려면 개인 키로 로그인하세요 - Zap 금액이 설정되지 않았습니다. 길게 눌러 변경하세요 - 공개 키로 로그인 중입니다. 공개 키는 읽기 전용입니다. Zap을 보내려면 개인 키로 로그인하세요 - 공개 키로 로그인 중입니다. 공개 키는 읽기 전용입니다. 팔로우하려면 개인 키로 로그인하세요 - 공개 키로 로그인 중입니다. 공개 키는 읽기 전용입니다. 언팔로우하려면 개인 키로 로그인하세요 - 공개 키로 로그인 중입니다. 공개 키는 읽기 전용입니다. 단어나 문장을 숨기려면 개인 키로 로그인하세요 - 공개 키로 로그인 중입니다. 공개 키는 읽기 전용입니다. 단어나 문장을 표시하려면 개인 키로 로그인하세요 - 공개 키로 로그인 중입니다. 공개 키는 읽기 전용입니다. 업로드하려면 개인 키로 로그인하세요 - 공개 키로 로그인 중입니다. 공개 키는 읽기 전용입니다. 이벤트에 서명하려면 개인 키로 로그인하세요 - 승인되지 않은 복호화 - 서명 앱이 이 작업에 필요한 복호화를 승인하지 않았습니다. 서명 앱에서 NIP-44 복호화를 활성화한 후 다시 시도하세요 - 서명 앱을 찾을 수 없음 - 서명 앱이 삭제되었나요? 서명 앱이 설치되어 있고 이 계정이 등록되어 있는지 확인하세요. 서명 앱이 변경된 경우 로그아웃 후 다시 로그인하세요. - 외부 서명 앱이 요청과 맞지 않는 응답을 반환했습니다. Amethyst 또는 서명 앱에 버그가 있을 수 있습니다. - 부스트 부스트됨 수정 #%1$s - 수정 제안 - 추가 - 오류 메시지 파싱 실패 - 프로필 - 보안 필터 - 인보이스 요청 중… - 직불 서비스가 결제를 완료하지 못했습니다. - %2$s을(를) 통해 %1$s을(를) 결제하시겠습니까? - %1$s을(를) 통해 이 인보이스를 결제하시겠습니까? - 이 offer에 유효한 금액을 입력하세요. - 1회 - 일별 - 주별 - 월별 - 결제 - %1$s을(를) 통해 결제 중… - 결제 실패 - 이 수신자에게 사용 가능한 잔액: %1$s sats - 트랜잭션: %1$s - "%1$s의 미리보기 카드 이미지" - 설명 - 무슨 생각을 하고 계신가요? - 메시지를 입력하세요… - 게시 저장 - 전송 - 만들기 이름 바꾸기 - 취소 - 오류 - 오류 목록 - relay 연결 성공률 - 휴대폰에 저장 - 사진 갤러리에 이미지가 저장되었습니다 - 동영상 다운로드를 시작했습니다… - 미디어 다운로드를 시작했습니다… - 상단에 고정 - 고정 해제 - 이미지 저장에 실패했습니다 - 동영상 갤러리에 저장되었습니다 - 동영상 저장에 실패했습니다 - Downloads/Amethyst에 PDF가 저장되었습니다 - PDF 저장에 실패했습니다 - 이 기기에서 카메라 앱을 찾을 수 없습니다 - 길게 눌러 메시지를 녹음하세요 - 업로드 오류 - 음성 메시지 업로드에 실패했습니다 - NIP-95는 아직 음성 메시지를 지원하지 않습니다 - 음성 업로드 실패: %1$s - 없음 - 낮게 - 높게 - 보통 - 이 사용자는 sats를 받을 Lightning 주소가 설정되어 있지 않습니다 - "여기에 답글을… " - 알려진 - 새 요청 - 차단된 사용자 - 새 스레드 - 대화 - 더 보기 - 개인 키 QR 코드 표시 - 암호화된 개인 키 QR 코드 표시 - 팔로우 - 맞팔로우 - 비밀번호 숨기기 - 유효하지 않은 키 - 유효하지 않은 키: %1$s - 비밀번호가 필요합니다 - 키가 필요합니다 - 이름이 필요합니다 @@ -115,155 +15,7 @@ 새 채팅 프로필: - 나가기 - 팔로우 취소 - 임시 채팅 - relay 채팅 - relay 채팅 - relay 채팅은 홈 relay가 관리하는 채팅 그룹입니다. - Nostr의 모든 사람에게 공개되며 누구나 참여할 수 있습니다. - 특정 주제에 관한 열린 커뮤니티에 적합합니다. 일부 그룹은 임시적이라 - 채팅 메시지가 시간이 지나면 사라집니다 - 공개 채팅 - MLS 그룹 - 공개 채팅 메타데이터 - 공개 채팅은 Nostr의 모든 사람에게 공개되며 - 누구나 참여할 수 있습니다. 특정 주제에 관한 열린 커뮤니티에 적합합니다. - relay에서 게시물을 삭제하여 관리할 수 있습니다 - relay - 이 그룹을 호스팅하는 relay를 1~3개 입력하세요. - Nostr 클라이언트는 이 설정을 통해 메시지를 다운로드하고 전송할 위치를 파악합니다. - 제거 - 안 함 - 지금 - 시간 - 분 - 일 - 음란물 - 욕설 / 혐오 발언 - 키 백업 - 개인 키 암호화에 실패했습니다 - 비밀 키(nsec)가 클립보드에 복사되었습니다 - 내 비밀 키 복사 - 인증 실패 - 생체 인증으로 이 기기 소유자 확인에 실패했습니다 - 생체 인증으로 이 기기 소유자 확인에 실패했습니다. 오류: %1$s - 노트 텍스트가 클립보드에 복사되었습니다 - 작성자의 @npub가 클립보드에 복사되었습니다 - 노트 ID(@note1)가 클립보드에 복사되었습니다 - "<개인 메시지를 복호화할 수 없습니다>\n\n%1$s와 %2$s 사이의 개인/암호화된 대화에서 회원님이 언급되었습니다." - 계정 - 탐색 - 나 - 피드 - 만들기 - 시스템 - 뒤로 - 브라우저 링크 공유 - 공유 - 이미지로 공유 - 이미지 URL로 공유 - 노트 ID - 삭제 - 스레드 뮤트 - 스레드 뮤트 해제 - - 차단 - 북마크 - 북마크가 성공적으로 마이그레이션되었습니다 - 임시 저장 - 예약된 게시물 - 게시물 예약 - 예약 취소 - 예약된 게시물은 앱을 다시 열 때까지 게시되지 않을 수 있습니다. 안정적인 백그라운드 예약을 위해 설정 → UI 환경설정에서 상시 알림을 활성화하세요. - 예약된 게시물은 앱을 다시 열 때까지 게시되지 않을 수 있습니다. 이 계정이 활성 상태인 동안에는 다른 계정의 예약된 게시물이 실행되지 않습니다. 안정적인 백그라운드 예약을 위해 설정 → UI 환경설정에서 상시 알림을 활성화하세요. - %1$s · %2$s 후 - %1$s · %2$s 전 - 내일 - 로그아웃됨 - - 로그아웃됨 · 예약된 게시물 %d개가 삭제되었습니다 - - 예약된 게시물이 게시됨 - 예약된 게시물 실패 - 예약된 게시물 - 예약된 게시물이 게시되거나 게시에 실패할 때 알림을 받습니다. - 지금 보내기 - 오류: %1$s - 예약됨 - 전송 중… - 실패 - 전송됨 - 취소됨 - - 아직 게시되지 않은 예약된 게시물이 %d개 있습니다. 로그아웃하면 영구적으로 삭제됩니다. - - - %d개 대기 중 - - - · %d개 1시간 내 예정 - - - relay %d개로 - - 노트 ID가 복사됨 - 투표 - 열림 - 닫힘 - 배지 - 커뮤니티 - 새 커뮤니티 - 커뮤니티 편집 - 관리자 - Relay - 검증 가능한 규칙 (선택 사항) - 허용된 이벤트 kind - 짧은 텍스트 (1) - 장문 기사 (30023) - 사진 게시물 (20) - 동영상 게시물 (21) - 짧은 동영상 (22) - 커뮤니티 댓글 (1111) - 차단된 사용자 - 신뢰 네트워크 게이트 (선택 사항) - 전체 최대 이벤트 크기 (선택 사항) - 새 배지 - 배지 수여 - 프로필 배지 - 사진 - 운동 - 새 운동 - 달리기 - 걷기 - 자전거 - 하이킹 - 수영 - 조정 - 근력 운동 - 요가 - 명상 - 식이요법 - 단식 - 서킷 - 앱 앱 - nApplet - nSite - 브라우저 - Tor를 통해 로드 중. 탭하여 일반 웹으로 전환. - 일반 웹으로 로드 중. 탭하여 Tor로 전환. - 즐겨찾기 - 즐겨찾는 앱 - 즐겨찾기에 추가 - 즐겨찾기에서 제거 - Tor를 통해 로드됩니다. - 일반 웹을 통해 로드됩니다. - relay에 게시됨 - 파일 업로드됨 - 결제 완료 - 해당 앱은 아직 로드되지 않았습니다. 잠시 후 다시 시도하세요. - 최근 nApplet 권한 아직 nApplet 권한이 없습니다 nApplet에 부여한 권한이 여기에 표시됩니다. @@ -273,45 +25,11 @@ 셸 - 신원 - 키보드 동작 - Relay - 저장소 - 결제 - 네트워크 - 업로드 사용 가능한 기능 확인 - 공개 키 읽기 - 키보드 단축키 바인딩 - 이벤트 읽기, 서명 및 게시 - 자체 개인 저장소 - Lightning 인보이스 결제 - 웹 및 Blossom 리소스 가져오기 - 미디어 서버에 파일 업로드 - 테마 - 알림 - 메시징 - 앱 색상과 일치시키기 - 알림 표시 - 다른 nApplet과 메시지 교환 기능: %1$s - 이 nApplet이 공개 키를 읽으려고 합니다. - 이 nApplet이 프로필 및 계정 데이터를 읽으려고 합니다. - 이 nApplet이 귀하를 대신하여 kind %1$d 이벤트를 서명하고 게시하려고 합니다. - 이 nApplet이 귀하를 대신하여 kind %1$d 이벤트를 서명하고 게시하려고 합니다: - 이 nApplet이 귀하를 대신하여 암호화된 이벤트를 전송하려고 합니다. - 이 nApplet이 relay에서 이벤트를 읽으려고 합니다. - 이 nApplet이 개인 저장소를 사용하려고 합니다. 이 nApplet이 Lightning 인보이스를 결제하려고 합니다. - 이 nApplet이 웹 리소스를 가져오려고 합니다. - 이 nApplet이 미디어 서버에 파일을 업로드하려고 합니다. - 이 nApplet이 알림을 표시하려고 합니다. - 이 사이트가 귀하의 Nostr 키로 kind %1$d 이벤트를 서명하려고 합니다. - - 이 nApplet이 %1$d sats의 Lightning 인보이스를 결제하려고 합니다. - - 공개 채팅 - 팔로우 팩 - 라이브 스트림 - 손 들기 - 손 내리기 - 음소거 - 음소거 해제 - 메시지를 보낼 수 없습니다 - 마이크 음소거 - 마이크 음소거 해제 - 방이 열려 있는 동안 오디오를 계속 재생합니다. - Nest 연결됨 - Nest — 라이브 - 탭하여 돌아가기. - 중지 - 손을 들었습니다 - 스테이지에 올라갔습니다 - 발언 중입니다 - 청중으로 참가했습니다 - Nest를 떠났습니다 - 나가기 - 방을 종료됨으로 표시할 수 없습니다. 어쨌든 나가기 — 방은 자동으로 닫힙니다. - - %1$d명 청취자 - - 이 발언자 로컬 음소거 - 이 발언자 복원 - 팔로우 - 팔로우 취소 - 음소거 - 음소거 해제 - Nest 서버 목록을 저장할 수 없습니다. 다시 시도하세요. - Nest 서버 - 내 서버 - 다른 클라이언트가 설정을 읽을 수 있도록 kind-10112 교체 가능 이벤트로 저장됩니다. - 추천 서버 - 한 번의 탭으로 목록에 추가할 수 있는 기본 제안입니다. - 동영상 - 음악 - 재생목록 - 에피소드 - 팟캐스트 - - %1$d개 에피소드 - - 새 음악 트랙 - 새 재생목록 - - %1$d개 트랙 - - 공개 북마크에 추가 - 공개 북마크에서 제거 - 프로필에 고정 - 프로필에서 고정 해제 - 새 북마크 목록 - 북마크 목록 메타데이터 - 해시태그 세트 - 새 관심 세트 - 이름 변경 - 비공개로 만들기: 알림을 받는 사용자에게만 노트를 gift-wrap으로 전송 - 공개로 만들기 - 비공개 노트에 대한 답글은 항상 비공개로 유지됩니다 - 볼 수 있는 사람 아직 수신자가 없습니다. 본인만 이 노트를 볼 수 있습니다. 공유할 사람을 추가하세요. 추가 알림에서 사용자 제거 알림을 보낼 사용자 검색 및 추가 - 북마크 목록의 메타데이터는 Nostr의 누구나 볼 수 있습니다. 비공개 항목만 암호화됩니다. - 공개로 이동 - 비공개로 이동 - 충전 & zap 전송 - zap 전송 - %2$s에 %1$s sats 충전 후 %4$s sats zap %3$s · 수수료 ≈ %5$s sats - %s번 옵션 - 단일 선택 - 복수 선택 - 투표할 수 없습니다 - 투표가 새로운 투표를 받지 않습니다 - 이 유형의 투표에서는 사용자당 한 번만 투표할 수 있습니다 - 투표 작성자는 자신의 투표에 참여할 수 없습니다. - 이것이 무슨 의미인가요? - 이 콘텐츠는 게시 이후 동일합니다 - 이 콘텐츠가 변경되었습니다. 작성자가 변경 사항을 확인하거나 승인하지 않았을 수 있습니다 - 미디어 추가 - 이미지 추가 - 동영상 추가 - 문서 추가 - 파일 서버 - 이 파일을 업로드할 서버를 선택하세요 - 미디어 서버 선호하는 미디어 업로드 서버를 설정하세요. 추천 미디어 서버 Amethyst의 기본 목록입니다. 개별적으로 추가하거나 전체 목록을 추가할 수 있습니다. - 결제 대상 - 다양한 네트워크(예: bitcoin, lightning, ethereum)의 결제 주소를 추가하세요. - 이 결제를 처리할 앱을 찾을 수 없습니다. 호환 가능한 지갑을 설치하세요. - %1$s 결제를 처리할 앱이 설치되어 있지 않습니다. 호환 가능한 지갑을 설치하세요. - 결제를 열 수 없습니다 - 개인 정보 옵션 - 모든 팔로우 - 모든 사용자 팔로우 - 기본 팔로우 목록 - 내 주변 - 전체 - 큐레이션 - 내 목록 - 뮤트 목록 - 새 팔로우 목록 - 새 팔로우 팩 - 목록 편집 - 기본 포트는 9050입니다 - Orbot Socks 포트 - 내장 Tor 엔진 - 내장 버전 또는 Orbot을 사용하세요 - Tor/개인 정보 보호 프리셋 - 아래의 모든 설정을 빠르게 수정합니다 - Onion URL/Relay - .onion URL에 Tor를 사용합니다 - DM Relay - DM 발신 및 수신에 Tor를 강제 사용합니다 - 신뢰되지 않은 Relay - outbox/inbox relay에 Tor를 강제 사용합니다 - 신뢰된 Relay - 목록에 있는 모든 relay에 Tor를 강제 사용합니다 - 프로필 사진 - 프로필 사진 로딩 시 Tor를 강제 사용합니다 - URL 미리보기 - URL 미리보기 로딩 시 Tor를 강제 사용합니다 - 이미지 - 이미지 로딩 시 Tor를 강제 사용합니다 - 동영상 - 동영상 로딩 시 Tor를 강제 사용합니다 - 금전 거래 - zap, Lightning 및 Cashu 전송에 Tor를 강제 사용합니다 - Nostr 주소 인증 - NIP-05 주소 인증 시 Tor를 강제 사용합니다 - 미디어 업로드 - 콘텐츠 업로드 시 Tor를 강제 사용합니다 - 내장 - 끄기 - 기본 - 기본값 - 미디어 제외 전체 - 완전한 개인 정보 보호 - 사용자 지정 - 서버에서 요구할 때 Tor를 사용합니다 - 무작위 relay에서 IP를 숨깁니다 - 이미지와 동영상을 제외한 모든 곳에서 IP를 숨깁니다 - 모든 연결에서 IP를 숨깁니다 - 직접 설정하기 - 비공개 메시지 - 비공개 메시지가 도착하면 알립니다 - 받은 Zap - 누군가 zap을 보내면 알립니다 - 보낸 사람: %1$s - %1$s에 대해 - 답글 - 읽음으로 표시 - 새 메시지 - 새 zap - 반응 - 누군가 게시물에 반응하면 알립니다 - %1$s님이 게시물에 반응했습니다 - %1$s에 대해 - 새 반응 - 체스 - 체스 게임 이벤트를 알립니다 - %1$s님이 체스 도전을 수락했습니다 - %1$s님이 이동했습니다 — 당신의 차례입니다 - 체스 업데이트 - 답글 - 누군가 게시물에 답글을 달면 알립니다 %1$s님이 답글을 달았습니다 게시물: %1$s - 새 답글 - 멘션 - 누군가 게시물에서 나를 언급하거나 인용하면 알립니다 - %1$s님이 나를 언급했습니다 - 새 멘션 @@ -533,34 +81,6 @@ - 수신 전화 - 수신 음성 및 영상 통화 알림 - 수신 전화 - 수신 음성 통화… - 수신 영상 통화… - %1$s와(과) 통화 - 통화 - 진행 중인 통화 알림 - 전화 끊기 - 수락 - 거절 - 음소거 - 음소거 해제 - 카메라 켜기 - 카메라 끄기 - 스피커 - 수화기 - 음성 통화를 시작하려면 Amethyst에 마이크 접근 권한이 필요합니다. 앱 설정에서 활성화해 주세요. - 영상 통화를 시작하려면 Amethyst에 카메라 및 마이크 접근 권한이 필요합니다. 앱 설정에서 활성화해 주세요. - 통화 설정 - 실시간 알림을 위해 inbox relay에 대한 연결을 유지합니다 - Amethyst 알림 활성화됨 - - %1$d개의 inbox relay에 연결됨 - - - %1$d개의 relay에 연결됨 - - inbox relay에 연결 중… 상시 알림 서비스 즉각적인 알림 전달을 위해 inbox relay에 지속적인 연결을 유지합니다. 진행 중인 알림이 표시됩니다. 배터리를 더 많이 사용하지만 메시지를 놓치지 않도록 합니다. - 팔로우별 알림 분리 - 팔로잉(팔로우하는 사람들)과 모든 사람 두 개의 알림 탭을 표시합니다. 읽지 않음 표시기는 팔로우하는 사람들의 활동에만 반응합니다. - 메시지 표시 - 알림 탭에 다이렉트 및 그룹 메시지를 포함합니다. 메시지를 메시지 탭에만 표시하려면 끄세요. - 알림: - 오늘 - 숨기기 - 표시 - 경고 보기 - 스팸 필터링 - 5회 이상 동일한 내용의 낯선 사람 게시물을 숨깁니다 - 내 이벤트에 클라이언트 태그 추가 - 활성화하면 Amethyst가 게시하는 이벤트에 NIP-89 클라이언트 태그를 추가합니다. - 신고 시 경고 - 게시물이나 프로필이 팔로우하는 사람들로부터 신고를 받으면 경고 메시지를 표시합니다 - 커뮤니티 규칙을 위반하는 게시물 숨기기 - 커뮤니티가 NIP-9B 규칙 문서를 게시하고 이벤트가 규칙에 위반될 경우 커뮤니티 피드에서 게시물을 제거합니다. 커뮤니티에 구조화된 규칙이 없으면 효과가 없습니다. - 필터링 환경 설정 - 차단된 콘텐츠 - 아직 차단한 사용자가 없습니다. - 이 세션에서 스팸으로 신고된 계정이 없습니다. - 숨겨진 단어가 없습니다. 아래에 단어를 추가하여 해당 단어가 포함된 게시물을 숨기세요. - 이 사용자에 대해 미리 선택된 반응 유형이 없습니다. 하트 버튼을 길게 눌러 변경하세요 - Relay에서 읽기 - Relay에 쓰기 - 필터 및 이벤트를 포함하여 이 relay에 전송된 바이트 수 - 필터 및 이벤트를 포함하여 이 relay에서 수신된 바이트 수 - 개인정보 처리방침 - 아동 안전 기준 - 정보 & 법적 고지 - Cashu 토큰 - 설정된 Lightning 주소 없음 - Relay - 팔로우 팩 - 읽기 - 피드 알고리즘 - 마켓플레이스 - 라이브 스트림 - 커뮤니티 - 채팅 - 민감한 콘텐츠 - 이 콘텐츠를 표시하기 전에 민감한 콘텐츠 경고를 추가합니다 - UI 설정 앱 설정 - 번역 - 반응 - 설정 - 계정 설정 - 앱 설정 - 위험 구역 - Marmot 상태 초기화 - Marmot 상태가 초기화되었습니다. - Marmot 상태 초기화 실패: %1$s - 항상 - 무제한 WiFi - 사용 안 함 - 전체 - 간소화 - 성능 - 클래식 - 모던 - 시스템 - 라이트 - 다크 - 테마 - 이미지 미리보기 - 동영상 재생 - 동영상 자동 재생 - URL 미리보기 - 몰입형 스크롤 - 스크롤 시 탐색 바 숨기기 - UI 모드 - 게시물 스타일 선택 - 프로필 갤러리 스타일 - 갤러리 스타일 선택 - 스패머 - 음소거됨. 클릭하여 음소거 해제 - 소리 켜짐. 클릭하여 음소거 - %d초 뒤로 건너뛰기 - %d초 앞으로 건너뛰기 - 위치 전용 게시물 - 해당 위치의 팔로워만 볼 수 있습니다. 일반 팔로워에게는 표시되지 않습니다. - - %1$d개 트랙 - - - +%1$d개 더보기 - - 커버 이미지 업로드 - 이 트랙의 아트워크로 사용할 정사각형 이미지를 선택하세요. - 오디오 파일 업로드 - MP3, WAV 또는 FLAC 파일을 선택하세요. 저장 시 미디어 서버에 업로드됩니다. - 커버 및 오디오를 업로드하고 게시하는 중입니다. 화면을 나가도 계속 진행됩니다. - 플레이리스트 편집 - 커버 이미지 업로드 - 이 플레이리스트의 아트워크로 사용할 정사각형 이미지를 선택하세요. - 커버를 업로드하고 게시하는 중입니다. 화면을 나가도 계속 진행됩니다. 공개 그룹 비공개 - 제목 - 업로드 불가 - 먼저 메시지 대상을 입력하세요 - 지갑을 찾을 수 없음 - Amethyst에서 Nostr Wallet Connect (NWC)를 지원하는 지갑 앱을 찾을 수 없습니다. -\n\n할 수 있는 작업: -\n\t1. NWC 지원 확인: 사용하려는 지갑 앱이 Nostr Wallet Connect와 호환되는지 다시 확인하세요. -\n\t2. 연결 생성: 지갑 앱에서 새 NWC 연결을 생성하세요. -\n\t3. Amethyst에 연결: 지갑에서 보통 세 가지 옵션을 제공합니다: -\n\t\t3.1 자동 연결: Amethyst를 자동으로 열고 연결하는 버튼. 해당 버튼을 클릭하고 Amethyst를 열어 새 화면에서 저장을 누르세요. -\n\t\t3.2 수동 연결: 연결 URI를 복사하고 이 화면의 붙여넣기 아이콘을 클릭하여 직접 입력하세요. -\n\t\t3.3 QR 코드: 지갑이 QR 코드를 생성하면 이 화면의 QR 코드 버튼으로 읽을 수 있습니다. - - 다크, 라이트 또는 시스템 테마 - 이미지 및 GIF 자동 로드 - 동영상 및 GIF 자동 로드 - 화면에 표시될 때 동영상 자동 재생 - URL 미리보기 표시 - 클립보드에 복사 - 클립보드에 복사됨 - 공유 또는 저장 DM으로 보내기 - 미디어가 추가됨 - 프로필 갤러리에 미디어가 추가됨 - zap을 보낼 수 없음 - Lightning 설정 누락 - 사용자 %1$s는 sats를 받기 위한 lightning 주소가 설정되어 있지 않습니다 - 서명 앱을 열 수 없음 - 서명 앱을 찾을 수 없습니다. 앱이 삭제되지 않았는지 확인하세요 - 이 동영상을 재생할 수 없음 - 이 기기에서는 코덱 또는 형식이 지원되지 않습니다 (%1$s). 브라우저에서 열어보세요. - 브라우저에서 열기 - 서명 요청이 거부됨 - 서명 앱이 이 트랜잭션을 승인했는지 확인하세요 - Lightning 인보이스를 결제할 지갑을 찾을 수 없습니다 (오류: %1$s). zap을 사용하려면 Lightning 지갑을 설치하세요 - Lightning 인보이스를 결제할 지갑을 찾을 수 없습니다. zap을 사용하려면 Lightning 지갑을 설치하세요 - Blossom 링크를 열 수 없음 - Blossom 앱을 찾을 수 없습니다. 이 파일을 보려면 로컬 Blossom 앱을 설치하세요 - 숨김 단어 - 뮤트된 스레드 - 뮤트된 스레드 없음 - 프로필 사진 - 프로필 사진 표시 - 인보이스를 결제할 수 없음 - 출금할 수 없음 - Cashu를 환급할 수 없음 - Mint에서 다음 오류 메시지를 반환했습니다: %1$s - Cashu 수신됨 - %1$s sats가 지갑으로 전송되었습니다. (수수료: %2$s sats) - 시스템에서 호환 가능한 Cashu 지갑을 찾을 수 없음 - 수신자 서버에서 인보이스를 가져올 수 없음 - 지갑 연결 제공자에서 다음 오류를 반환했습니다: %1$s - Lightning 주소 \"%1$s\"에서 LNUrl을 구성할 수 없습니다. 사용자 설정을 확인하세요 - %1$s에서 인보이스를 가져올 수 없습니다: %2$s - %1$s에서 JSON 파싱 오류. 사용자의 lightning 설정을 확인하세요 - %1$s의 응답에서 콜백 URL을 찾을 수 없음 - %2$s의 인보이스 금액이 올바르지 않습니다 (%1$s sats). %3$s여야 했습니다 - zap을 보내기 전에 lightning 인보이스를 생성할 수 없습니다. 수신자의 lightning 지갑에서 다음 오류를 보냈습니다: %1$s - 읽기 전용 사용자 - 반응 설정 없음 - 알림 - 전달 - 앱 내 표시 - 카테고리 - %1$s의 메시지 - 안녕하세요 %1$s님, 아직 구매 가능한가요? - 의류 - 액세서리 - 전자제품 - 가구 - 수집품 - 도서 - 반려동물 - 스포츠 - 피트니스 - 예술 - 공예 - 가정용품 - 사무용품 - 식품 - 기타 - 기타 - 미디어 업로드에 실패했습니다 - 압축 파일을 열 수 없습니다 - 업로드 오류: %1$s - 업로드 후 서버에서 URL을 제공하지 않았습니다 - 서버에서 업로드된 미디어를 다운로드할 수 없습니다 - 업로드 후 다운로드된 파일을 확인할 수 없습니다: %1$s - %1$s에 업로드하지 못했습니다: %2$s - 삭제하지 못했습니다: %1$s - 미디어가 NIP-95에 비해 너무 큽니다 - 파일 암호화 - 개인정보 보호를 위해 업로드 전 파일을 암호화합니다. 일부 서버는 무료 계정에서 암호화된 파일을 허용하지 않을 수 있습니다. - 암호화된 업로드에 실패했습니다 - 많은 서버에서 무료 계정의 암호화된 파일을 허용하지 않습니다. 암호화 없이 다시 시도할 수 있습니다. - H.265/HEVC 코덱 사용 - 파일 크기는 작고 품질은 더 우수하지만 모든 기기가 H.265 재생을 지원하지는 않습니다. - GIF를 MP4로 변환 - 파일 크기 축소 및 재생 호환성 향상을 위해 애니메이션 GIF를 MP4 동영상으로 변환합니다. - 개인 메타데이터 제거 - 업로드 전 지원되는 미디어 파일에서 개인 메타데이터를 제거하려고 시도합니다 - 메타데이터를 제거할 수 없습니다 - 미디어에서 개인 메타데이터를 제거하지 못했습니다. 업로드가 취소되었습니다. - 업로드가 취소되었습니다 - AVIF에서 메타데이터를 제거할 수 없습니다: %1$s - 홈 - 탐색 - 메시지 - 알림 - 캘린더 - 캘린더 목록 - 체스 - 지갑 - Cashu 지갑 (NIP-60) Nutzap 키 (고급) NIP-61 nutzap 수신에만 사용되는 별도의 개인 키입니다. Nostr 신원 키가 아닙니다. 새 키 생성 P2PK 개인 키 (hex) - Mint 편집 변경사항 저장 - - +%1$d개 더 - - - %1$d명이 추천함 - - 인기 있는 mint - 일치하는 mint - 수신 - 송신 - %1$s에 대한 kind:38000 추천의 삭제 요청을 게시합니다. NIP-09를 지원하는 relay에서 삭제됩니다. - %2$s개의 증명에서 %1$s sats를 복구했습니다. - %1$s sat + 최대 %2$s sat 수수료를 결제하시겠습니까? - Nutzap 실패 - 노트에 수신자 pubkey가 없습니다 - Nutzap은 공개적이어서 이 비공개 노트가 노출됩니다. 대신 Lightning zap을 사용하세요. - 이벤트 참조를 만들 수 없습니다 - 인보이스 결제 대기 중… - Mint 확인 중… - 느림 - 보통 - 빠름 - ~1시간 - ~30분 - ~10분 - - %1$s sats를 %2$d개로 나누어 보내기 - - - 이 노트의 %1$d방향 zap 분할 사용 - - - %1$d명의 수신자 간 분할 - - - Lightning 주소 전용 수신자 %1$d명 건너뜀 — 온체인은 주소를 파생하기 위해 Nostr pubkey가 필요합니다. - - 잔액 로드 중 - 거래 빌드 중 - 서명 중 - 브로드캐스트 중 - 영수증 게시 중 - Bitcoin 체인 백엔드가 구성되지 않았습니다 - Bitcoin 잔액을 로드할 수 없습니다 - 거래를 빌드할 수 없습니다 - 수신자 몫이 먼지 한도 미만입니다 - 거래에 서명할 수 없습니다 - 거래를 브로드캐스트할 수 없습니다 - 결제는 전송되었지만 zap 영수증을 게시할 수 없습니다 - - 결제 전송 완료 (%2$d개 중 %1$d개 영수증 게시됨), 다음 영수증을 게시할 수 없습니다 - - 팔로우 가져오기 - 새 상품 - 새 글 - 새 캘린더 이벤트 - 캘린더 이벤트 편집 - 새 캘린더 - 캘린더 편집 - 피드 - 월 - 주 - 일 - - %1$s, %2$d개 이벤트 - - 지금 진행 중 - %1$s · %2$s 종료 - 캘린더 이벤트 공유 - 캘린더 알림 - 참석하는 이벤트가 곧 시작될 때 미리 알림. - 캘린더 이벤트 - - %1$d분 후 시작 - - 이미지 업로드 실패 - 선택한 이미지를 업로드할 수 없습니다. 다시 시도하거나 URL을 붙여넣으세요. - 캘린더 알림 - 알림 보내기 - 참석하는 이벤트가 곧 시작될 때 알림이 발송됩니다. - - %1$d분 - - 지도에서 열기 - 링크 열기 - 이 게시물의 모든 반응 열기 - 이 게시물의 모든 반응 닫기 - 하단 탐색 모음 드래그하여 순서 변경. 토글로 하단 모음에 항목 추가 또는 제거. 항목이 없으면 하단 모음이 숨겨집니다. 순서 변경 홈 화면에 표시할 탭을 선택하세요. 탭이 하나만 활성화되면 탭 표시줄이 숨겨집니다. - 전체 - 프로필 UI 사용자 프로필 화면에 표시할 섹션과 피드를 선택하세요. 기본적으로 모든 옵션이 활성화되어 있습니다. - 프로필 배지 - 앱 추천 - Zap 수신 피드 - 팔로워 피드 - 반응 행 - 동영상 플레이어 버튼 - 오디오 시각화 - 만료 날짜 - 잘못된 주소 - Amethyst가 열기 위한 URI를 수신했지만 해당 URI가 유효하지 않습니다: %1$s - DM 수신함 Relay - 검색 Relay - 좋은 옵션:\n%1$s - Outbox Relay - Inbox Relay - Relay 설정 - 공개 Outbox/홈 Relay - 사용자가 이 relay에 콘텐츠를 게시하고 있습니다 - 이 relay 유형은 모든 콘텐츠를 저장합니다. Amethyst는 여기에 게시물을 전송하고 다른 사람들은 이 relay를 통해 콘텐츠를 찾습니다. 1~3개의 relay를 입력하세요. 개인 relay, 유료 relay 또는 공개 relay일 수 있습니다. - 공개 Inbox Relay - 사용자가 이 relay에서 알림을 받고 있습니다 - 이 relay 유형은 게시물에 대한 모든 답글, 댓글, 좋아요 및 zap을 수신합니다. 유료 또는 무료 relay일 수 있습니다. relay 운영자가 설정한 제한은 알림 수신에 긍정적 또는 부정적 영향을 줄 수 있습니다. 예를 들어, 댓글 스팸 공격을 받는 경우 유료 relay가 스팸을 필터링할 수 있습니다. 1~3개의 relay를 입력하세요. - DM 수신함 Relay - 사용자가 이 relay에서 DM을 수신합니다 - 개인 수신함으로 사용할 relay를 1~3개 입력하세요. 다른 사람들이 이 relay를 통해 DM을 보냅니다. DM 수신함 relay는 누구의 메시지든 수신해야 하지만, 다운로드는 본인만 가능해야 합니다. 좋은 옵션:\n - inbox.nostr.wine (유료)\n - auth.nostr1.com (무료)\n - you.nostr1.com (개인 relay - 유료) - KeyPackage Relay - MLS KeyPackage가 게시되는 relay (MIP-00). 다른 사용자는 이 KeyPackage를 가져와 Marmot 그룹 채팅에 초대합니다. KeyPackage 이벤트를 허용하고 공개 읽기를 허용하는 relay를 1~3개 입력하세요. - 비공개 홈 Relay - 초안 및/또는 앱 설정 등 다른 사람이 볼 수 없는 이벤트를 저장할 relay를 1~3개 입력하세요. 이 relay는 로컬이거나 각 사용자의 콘텐츠를 다운로드하기 전에 인증이 필요한 것이 이상적입니다. - 연결된 Relay - 현재 사용 중인 relay 목록 - 검색 Relay - 콘텐츠 또는 사용자를 검색할 때 사용할 relay 목록입니다. 옵션이 없으면 태그 지정 및 검색이 작동하지 않습니다. NIP-50을 구현하는지 확인하세요. - 로컬 Relay - 이 기기에서 실행 중인 relay 목록입니다. - 로컬 relay로 프로필 전달 - 수신된 모든 프로필(kind 0) 이벤트를 로컬 relay로 전송 - 신뢰하는 Relay - Tor 연결이 필요 없다고 신뢰하는 relay - 즐겨찾는 Relay 피드 - 자주 방문하여 글로벌 피드를 보는 relay - 프록시 Relay - filter.nostr.wine 같이 피드를 다운로드하는 데 앱이 사용해야 하는 집계 relay입니다. 이 설정은 아웃박스 모델을 대체하며 앱이 목록에 있는 relay에만 연결하도록 합니다. - 브로드캐스트 Relay - sendit.nosflare.com 같이 내 노트를 다른 모든 relay로 전달하는 데 특화된 relay입니다. Amethyst는 내가 작성하는 모든 새 이벤트에 이 relay를 추가합니다. - 인덱서 Relay - purplepag.es 같이 모든 사람의 메타데이터와 relay 목록을 호스팅하는 데 특화된 relay입니다. Amethyst는 이 relay를 사용하여 목록에 없는 사용자를 찾습니다. - 차단된 Relay - Amethyst는 이 relay에 절대 연결하지 않습니다. - relay 설정 내보내기 웹: 개요 소개 링크 관리자 주제 - 타임스탬프 증명 - 이 게시물이 %1$s 이전에 서명되었다는 증명이 있습니다. 해당 날짜와 시간에 Bitcoin 블록체인에 증명이 기록되었습니다. - 게시물 편집 - 초안 노트에는 답글을 달 수 없습니다. - 초안 노트는 인용할 수 없습니다. - 초안 노트에는 반응할 수 없습니다. - 초안 노트에는 zap을 보낼 수 없습니다. - 초안 노트 - 잘못된 요청 - 서버가 요청을 처리할 수 없거나 처리하지 않습니다. - 인증되지 않음 - 사용자에게 유효한 인증 자격 증명이 없습니다. - 결제 필요 - 서버가 요청을 완료하기 위해 결제를 요구합니다. - 접근 금지 - 사용자가 요청을 수행할 접근 권한이 없습니다. - 찾을 수 없음 - 서버가 요청한 주소를 찾을 수 없습니다. - 허용되지 않는 메서드 - 서버는 요청 메서드를 지원하지만 대상 리소스는 지원하지 않습니다. - 허용할 수 없음 - 서버가 요청을 충족하는 콘텐츠를 찾을 수 없습니다. - 프록시 인증 필요 - 사용자에게 유효한 인증 자격 증명이 없습니다. - 요청 시간 초과 - 서버가 응답을 기다리다 시간이 초과되었습니다. - 충돌 - 리소스와 충돌이 발생하여 서버가 요청을 처리할 수 없습니다. - 사라짐 - 요청한 콘텐츠가 서버에서 영구적으로 삭제되었으며 복구되지 않습니다. - 길이 필요 - 서버가 정의된 Content-Length가 없어 요청을 거부합니다. - 사전 조건 실패 - 서버가 요청 헤더 필드의 사전 조건을 충족하지 못했습니다. - 페이로드가 너무 큼 - 요청이 서버의 정의된 한도보다 크며 서버가 처리를 거부합니다. - URI가 너무 긺 - 클라이언트가 요청한 URL이 서버가 처리하기에 너무 깁니다. - 지원되지 않는 미디어 유형 - 서버가 지원하지 않는 미디어 형식을 요청에서 사용합니다. - 범위가 충족되지 않음 - 서버가 요청의 Range 헤더 필드에 표시된 값을 처리할 수 없습니다. - 기대치 실패 - 서버가 Expect 요청 헤더 필드에 표시된 요구 사항을 충족할 수 없습니다. - 업그레이드 필요 - 클라이언트가 다른 프로토콜로 업그레이드하지 않으면 서버가 현재 프로토콜을 사용하여 요청을 처리하지 않습니다. - 내부 서버 오류 - 서버에 예상치 못한 오류가 발생하여 요청을 완료할 수 없습니다. - 구현되지 않음 - 서버가 요청을 처리할 수 없거나 요청 메서드를 인식하지 못합니다. - 잘못된 게이트웨이 - 서버가 게이트웨이 역할을 하며 호스트에서 잘못된 응답을 받았습니다. - 서비스 사용 불가 - 서버가 과부하 상태이거나 유지 관리로 인해 중단된 경우 자주 발생합니다. - 게이트웨이 시간 초과 - 서버가 게이트웨이 또는 프록시 역할을 하며 응답을 기다리다 시간이 초과되었습니다. - HTTP 버전 미지원 - 서버가 요청의 HTTP 버전을 지원하지 않습니다. - 변형도 협상 중 - 서버에 내부 구성 오류가 있습니다. - 저장 공간 부족 - 서버가 요청을 성공적으로 처리할 충분한 저장 공간이 없습니다. - 루프 감지됨 - 서버가 요청을 처리하는 중 무한 루프를 감지했습니다. - 네트워크 인증 필요 - 네트워크에 접근하려면 클라이언트 인증이 필요합니다. Blossom 서버 원하는 만큼 서버를 추가할 수 있습니다. 사진을 업로드할 때 사용할 서버를 나중에 선택할 수 있습니다. - NIP-96 서버 추가 - Blossom 서버 추가 다운로드 - 파일 열기 실패 - 파일을 열고 다운로드할 토렌트 앱이 설치되어 있지 않습니다. - 이벤트에 마그넷 링크를 만들기 위한 정보가 충분하지 않습니다. - 내 목록 - 피드 - 해시태그 - 관심 세트 - 위치 - 커뮤니티 - 목록 - 피드 알고리즘 - 모든 즐겨찾는 피드 알고리즘 - Relay - 즐겨찾는 피드 알고리즘 - 비공개 메시지 - 공개 메시지 - 이미지를 공유할 수 없습니다. 나중에 다시 시도하세요… - 동영상을 공유할 수 없습니다. 나중에 다시 시도하세요… - 동영상 다운로드 중… - 번역하지 않을 언어 - 여기에 표시된 언어는 번역되지 않습니다. 언어를 선택하면 제거되어 다시 번역됩니다. - 번역 대상 언어 - 콘텐츠를 번역할 언어를 선택하세요. - 언어 표시 기본 설정 - 번역된 각 언어 쌍에 대해 먼저 표시할 언어를 선택하세요. - 일시 정지 - 재생 - 이 메시지는 %1$s 후에 사라집니다. - 팔로우 목록 메타데이터 - 팔로우 목록 메타데이터는 Nostr의 누구나 볼 수 있습니다. 비공개 멤버만 암호화됩니다. - Follow Pack 메타데이터 - Follow pack 메타데이터는 Nostr의 누구나 볼 수 있으며, 새 사용자를 위한 시작 키트로 많은 웹사이트에 자주 게시됩니다. - Follow Pack 편집 - 펼치기 - 재시도 - 반응 - 음성 게시물 - 음성 답글 - 아웃박스 Relays - App 추천 - 사용자 설정 - 오디오 헤더 - 오디오 트랙 - 음악 트랙 - 음악 재생목록 - 팟캐스트 에피소드 - 팟캐스트 쇼 - 제작한 팟캐스트 - 즐겨찾기 팟캐스트 - 배지 수여 - 배지 정의 - 수락된 배지 세트 - 프로필 배지 - 차단된 Relays - Blossom 서버 - Nests 서버 - 브로드캐스트 Relays - 북마크 목록 - 이전 북마크 목록 - 일별 일정 - 캘린더 - 일정 - 일정 RSVP - 체스 게임 - 체스 Auth - 즐겨찾기 Relays - 체스 도전 - 체스 게임 수락 - 체스 수 - 체스 게임 종료 - 체스 무승부 제안 - 채널 정의 - 채널 메시지 숨기기 - 채널 목록 - 채널 메시지 - 채널 메타데이터 - 채널 사용자 음소거 - DM 파일 - DM 메시지 - 분류 광고 - 댓글 - 커뮤니티 정의 - 커뮤니티 목록 - 커뮤니티 게시물 - 팔로우 목록 - 삭제 - 초안 - 이모지 팩 - 이모지 팩 목록 - 임시 채팅 - 임시 채팅방 - 파일 헤더 - 프로필 갤러리 - 파일 서버 - Blob 데이터 - Blob 헤더 - 의료 데이터 - 리포스트 (16) - 지오해시 팔로우 - Git 이슈 - Git 패치 - Git 저장소 - Git 답글 - Zap 목표 - 해시태그 팔로우 - 하이라이트 - HTTP Auth - 인덱스 Relay 목록 - 어드벤처 프롤로그 - 어드벤처 장면 - 어드벤처 읽기 - 이름 있는 북마크 - 라이브 채팅 - 라이브 스트림 - NWC 요청 - NWC 응답 - 비공개 Zaps - Zap 요청 - 블로그 - 회의실 - 방 참석 - 회의 공간 - 프로필 - 음소거 목록 - Nostr 연결 - DVM 상태 - DVM 콘텐츠 요청 - DVM 콘텐츠 응답 - DVM 사용자 요청 - DVM 사용자 응답 - 사람 목록 - 사진 - 운동 - 핀 - Zap 투표 - 투표 - 투표 응답 - 비공개 Relays - 프록시 Relays - 공개 메시지 - 반응 - 연락처 카드 - Relay 검색 - Relay 모니터 공지 - Relay 세트 - 신고 - 리포스트 - 사용자 삭제 - 봉인 - 검색 Relays - 사용자 상태 - 노트 - 편집 - 토렌트 - 토렌트 댓글 - 신뢰할 수 있는 Relays - 신뢰할 수 있는 제공자 - 비디오 (Repl) - 비디오 - 음성 메시지 - 음성 답글 - 웹 북마크 - %1$d%% 업타임 - Namecoin 설정 - Relay 동기화 - 나의 이벤트 - 나에게 온 이벤트 - 검색 가능한 이벤트 - DM - 프로필 - 아웃박스 목록 - %1$s 전에 마지막으로 확인 - %1$s에 마지막으로 확인 (%2$s 전) - 방금 마지막으로 확인 - 확인된 적 없음 - - %1$d분 - - - %1$d시간 - - - %1$d일 - - - %1$d주 - - - %1$d개월 - - - %1$d년 - - - %1$d개 mint - - - %1$d개의 대기 중인 인보이스 - - - 사용하지 않는 %1$d개의 mint에 보관된 자금 - - %1$s sat을 %2$s로 이동했습니다. - 기기로 캐스트 - 캐스트 중지 - HLS 업로드 - %1$s 업로드 중 (%3$d 중 %2$d) - 증명 - 증명 요청 - 증명자 추천 - 증명자 숙련도 - 웹 북마크 - 웹 북마크 추가 - 웹 북마크 편집 - %2$s sats 목표 중 %1$s 달성 - 새 목표 - 삭제 요청 - Vanish 요청이 전송되었습니다 - Vanish 기록 - 사용자 - 이벤트 - 종류 - IP - 설정 - 텍스트 개선 제안 - 기기 내 AI 모델을 사용하여 텍스트 수정 및 톤 변경을 제안합니다. - 추적된 방송 - 이벤트를 전송할 때 추적 브로드캐스터를 사용합니다. 방송하는 동안 실시간 진행 상황 및 relay별 상태를 표시합니다. - 운동 공유 제안 - Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…)에서 완료된 운동을 읽어 게시물로 공유할 것을 제안합니다. 권한은 연결 시에만 요청됩니다. - 작성 설정 - 자동으로 임시 저장 - 텍스트를 입력하거나 전송하지 않은 텍스트가 있는 작성 화면을 떠날 때 자동으로 임시 저장 이벤트를 저장하고 개인 outbox relay로 전송합니다. - 새 emoji 팩 - Emoji 팩 편집 - 내 Emoji 팩 - Emoji - 공개 emoji는 모든 사람에게 표시되며, 이 팩이 emoji 목록에 있을 때 반응 메뉴와 \":\" 자동완성 선택기에 나타납니다. - 비공개 emoji는 relay에 암호화되어 저장되며 본인만 볼 수 있습니다. 공개 emoji와 마찬가지로 반응 메뉴와 \":\" 자동완성에 나타납니다. - 임시 저장이 %1$d바이트입니다. 이 커뮤니티는 이 종류를 %2$d바이트로 제한합니다. - 임시 저장이 %1$d바이트입니다. 이 커뮤니티는 이벤트를 %2$d바이트로 제한합니다. - 오늘 이 종류의 이벤트를 이미 %1$d개 게시했습니다 (한도 %2$d개). - Nowhere 사이트 - Nowhere 이벤트 - Nowhere 모금 - Nowhere 스토어 - Nowhere 청원 - Nowhere 메시지 - Nowhere 아트 - Nowhere 포럼 - - %1$d개의 메시지 - - - %1$d명의 멤버 - - 그룹 정보가 업데이트되었습니다 - 업데이트 실패: %1$s - 그룹 생성 실패: %1$s - 그룹 나가기 실패: %1$s - %1$s 추가 중… - %1$s 추가 실패: %2$s - 알 수 없는 오류 - 멤버가 제거되었습니다 - 멤버 제거 실패: %1$s - 관리자 권한이 부여되었습니다 - 관리자 권한 부여 실패: %1$s - 관리자 권한이 취소되었습니다 - 관리자 권한 취소 실패: %1$s - 이 그룹의 멤버가 아닙니다 %1$s의 수신자 Lightning 서비스를 사용할 수 없습니다. Lightning 주소 \"%2$s\"에서 계산된 결과입니다. 오류: %3$s. 서버가 작동 중인지, Lightning 주소가 올바른지 확인하세요 %1$s을(를) 확인할 수 없습니다. 연결 상태, 서버 작동 여부, Lightning 주소 %2$s가 올바른지 확인하세요.\n\n예외 내용: %3$s %1$s의 청구서 조회에서 JSON 파싱 오류가 발생했습니다. 사용자의 Lightning 설정을 확인하세요 diff --git a/amethyst/src/main/res/values-lv-rLV/strings.xml b/amethyst/src/main/res/values-lv-rLV/strings.xml index 4bbf3ab0a7..7bf1759485 100644 --- a/amethyst/src/main/res/values-lv-rLV/strings.xml +++ b/amethyst/src/main/res/values-lv-rLV/strings.xml @@ -1,120 +1,12 @@ - - Šajā ierakstā ir vairāk nekā %1$d hashtagus - Šajā ierakstā ir vairāk nekā %1$d hashtags - Šajā ierakstā ir vairāk nekā %1$d hashtagus - - - %1$d aktīvi iekļauti - %1$d aktīvs iekļauts - %1$d aktīvi iekļauti - - - +%1$d\natbildes - +%1$d\natbilde - +%1$d\natbildes - - Surogātpasts - Surogātpasta notikumu skaits no šī relay - Uzdošanās par citu personu - Nelikumīga rīcība - Pieprasīt dzēšanu - Jūs izmantojat publisko atslēgu, un publiskās atslēgas ir tikai lasāmas. Piesakieties ar privāto atslēgu, lai varētu atbildēt - Jūs izmantojat publisko atslēgu, un publiskās atslēgas ir tikai lasāmas. Piesakieties ar privāto atslēgu, lai varētu pastiprināt ierakstus - Jūs izmantojat publisko atslēgu, un publiskās atslēgas ir tikai lasāmas. Piesakieties ar privāto atslēgu, lai patiktu ieraksti - Zap summa nav iestatīta. Turiet nospiestu, lai mainītu - Jūs izmantojat publisko atslēgu, un publiskās atslēgas ir tikai lasāmas. Piesakieties ar privāto atslēgu, lai varētu sūtīt zaps - Jūs izmantojat publisko atslēgu, un publiskās atslēgas ir tikai lasāmas. Piesakieties ar privāto atslēgu, lai varētu sekot - Jūs izmantojat publisko atslēgu, un publiskās atslēgas ir tikai lasāmas. Piesakieties ar privāto atslēgu, lai varētu pārtraukt sekošanu - Jūs izmantojat publisko atslēgu, un publiskās atslēgas ir tikai lasāmas. Piesakieties ar privāto atslēgu, lai varētu paslēpt vārdu vai teikumu - Jūs izmantojat publisko atslēgu, un publiskās atslēgas ir tikai lasāmas. Piesakieties ar privāto atslēgu, lai varētu rādīt vārdu vai teikumu - Jūs izmantojat publisko atslēgu, un publiskās atslēgas ir tikai lasāmas. Piesakieties ar privāto atslēgu, lai varētu augšupielādēt - Jūs izmantojat publisko atslēgu, un publiskās atslēgas ir tikai lasāmas. Piesakieties ar privāto atslēgu, lai varētu parakstīt notikumus - Neatļauta atšifrēšana - Parakstītājs neautorizēja atšifrēšanu, kas nepieciešama šīs darbības veikšanai. Aktivizējiet NIP-44 atšifrēšanu savā parakstītāja lietotnē un mēģiniet vēlreiz - Parakstītājs nav atrasts - Vai parakstītāja lietotne tika atinstalēta? Pārbaudiet, vai parakstītājs ir instalēts un vai tam ir šis konts. Izrakstieties un pierakstieties vēlreiz, ja parakstītāja lietotne ir mainīta. - Ārējais parakstītājs atgrieza neparastu atbildi uz pieprasījumu. Iespējams, ir kļūda Amethyst vai parakstītājā. - Pastiprināt pastiprinājis rediģēts #%1$s - Ieteikt labojumu - Pievienot - Kļūda, parsējot kļūdas ziņojumu - Profils - Drošības filtri - Pieprasa rēķinu… - Debeta pakalpojums neveica maksājumu. - Maksāt %1$s, izmantojot %2$s? - Maksāt šo rēķinu, izmantojot %1$s? - Ievadiet derīgu summu šim piedāvājumam. - Vienreizējs - Ikdienas - Iknedēļas - Ikmēneša - Maksāt - Maksā, izmantojot %1$s… - Maksājums neizdevās - Tērējams šim saņēmējam: %1$s sats - Darījums: %1$s - "Priekšskatījuma kartes attēls %1$s" - Apraksts - Ko jūs domājat? - Rakstīt ziņojumu… - Ieraksts Saglabāt - Sūtīt - Izveidot Pārsaukt - Atcelt - Kļūda - Kļūdas - Veiksmīgu savienojumu procentuālā daļa ar relay - Saglabāt tālrunī - Attēls saglabāts tālruņa foto galerijā - Video lejupielāde ir sākusies… - Multivides lejupielāde ir sākusies… - Piespraust augšā - Atspraust - Neizdevās saglabāt attēlu - Video saglabāts tālruņa video galerijā - Neizdevās saglabāt video - PDF saglabāts Lejupielādes/Amethyst mapē - Neizdevās saglabāt PDF - Šajā ierīcē nav atrastas kameras lietotnes - Noklikšķiniet un turiet, lai ierakstītu ziņojumu - Augšupielādes kļūda - Neizdevās augšupielādēt balss ziņojumu - NIP-95 balss ziņojumiem vēl netiek atbalstīts - Balss augšupielāde neizdevās: %1$s - Nav - Dziļa - Augsta - Neitrāla - Lietotājs nav iestatījis lightning adresi sats saņemšanai - "atbildēt šeit… " - Zināms - Jauni pieprasījumi - Bloķētie lietotāji - Jaunas diskusijas - Sarunas - Vairāk opciju - Rādīt privātās atslēgas QR kodu - Rādīt šifrētās privātās atslēgas QR kodu - Sekot - Sekot atpakaļ - Slēpt paroli - Nederīga atslēga - Nederīga atslēga: %1$s - Ir nepieciešama parole - Atslēga ir nepieciešama - Vārds ir nepieciešams - Pārsaukt kanālu - @string/rename @@ -123,160 +15,7 @@ Jauns tērzēšanas profils: - Atstāt - Pārtraukt sekošanu - Pazūdoša tērzēšana - Relay tērzēšana - Relay tērzēšanas - Relay tērzēšanas ir tērzēšanas grupas, kuras kontrolē to mājas relay. - Tās ir redzamas visiem Nostr lietotājiem un ikviens var tajās piedalīties. - Tās ir lieliski piemērotas atvērtām kopienām par konkrētām tēmām. Dažas no šīm grupām ir īslaicīgas - un tāpēc tērzēšanas ziņojumi laika gaitā pazūd - Publiskā tērzēšana - MLS grupa - Publiskās tērzēšanas metadati - Publiskās tērzēšanas ir redzamas visiem Nostr lietotājiem un ikviens - var tajās piedalīties. Tās ir lieliski piemērotas atvērtām kopienām par konkrētām tēmām. - Moderēšanu var kontrolēt, dzēšot ierakstus tās relay - Relay - Ievadiet no 1 līdz 3 relay, kas mitina šo grupu. - Nostr klienti izmanto šo iestatījumu, lai zinātu, no kurienes lejupielādēt ziņojumus un kur nosūtīt jūsu ziņojumus. - Noņemt - nekad - tagad - Kailums - Rupjības / Naida runa - Dublēt atslēgas - Neizdevās šifrēt privāto atslēgu - Slepenā atslēga (nsec) nokopēta starpliktuvē - Kopēt manu slepeno atslēgu - Autentifikācija neizdevās - Biometrijai neizdevās autentificēt šī tālruņa īpašnieku - Biometrijai neizdevās autentificēt šī tālruņa īpašnieku. Kļūda: %1$s - Piezīmes teksts nokopēts starpliktuvē - Autora @npub nokopēts starpliktuvē - Piezīmes ID (@note1) nokopēts starpliktuvē - "<Nevar atšifrēt privāto ziņojumu>\n\nJūs tiekāt pieminēts privātā/šifrētā sarunā starp %1$s un %2$s." - Konti - Navigēt - Jūs - Plūsmas - Izveidot - Sistēma - Atpakaļ - Kopīgot pārlūka saiti - Kopīgot - Kopīgot kā attēlu - Kopīgot kā attēla URL - Piezīmes ID - Dzēst - Izslēgt pavedienu - Ieslēgt pavedienu - - Bloķēt - Grāmatzīmes - Grāmatzīmes veiksmīgi pārvietotas - Melnraksti - Ieplānotās ziņas - Ieplānot ziņu - Atcelt ieplānošanu - Ieplānotās ziņas var nepublicēties, kamēr neatvērsiet lietotni atkārtoti. Iespējojiet pastāvīgo režīmu Iestatījumos → Lietotāja interfeisa preferences uzticamai fona ieplānošanai. - Ieplānotās ziņas var nepublicēties, kamēr neatvērsiet lietotni atkārtoti. Citu kontu ieplānotās ziņas netiks nosūtītas, kamēr šis konts ir aktīvs. Iespējojiet pastāvīgo režīmu Iestatījumos → Lietotāja interfeisa preferences uzticamai fona ieplānošanai. - %1$s · pēc %2$s - %1$s · pirms %2$s - Rīt - Izrakstījies - - Izrakstījies · %d ieplānoti ieraksti dzēsti - Izrakstījies · %d ieplānots ieraksts dzēsts - Izrakstījies · %d ieplānoti ieraksti dzēsti - - Ieplānotā ziņa publicēta - Ieplānotās ziņas publicēšana neizdevās - Ieplānotās ziņas - Paziņojumi, kad ieplānotā ziņa tiek publicēta vai publicēšana neizdodas. - Nosūtīt tagad - Kļūda: %1$s - Ieplānota - Nosūta… - Neizdevās - Nosūtīta - Atcelta - - Jums ir %d ieplānoti ieraksti, kas vēl nav publicēti. Izrakstīšanās tos neatgriezeniski dzēsīs. - Jums ir %d ieplānots ieraksts, kas vēl nav publicēts. Izrakstīšanās to neatgriezeniski dzēsīs. - Jums ir %d ieplānoti ieraksti, kas vēl nav publicēti. Izrakstīšanās tos neatgriezeniski dzēsīs. - - - %d rindā - %d rindā - %d rindā - - - · %d jāveic 1 st. laikā - · %d jāveic 1 st. laikā - · %d jāveic 1 st. laikā - - - uz %d relay - uz %d relay - uz %d relay - - Piezīmes ID nokopēts - Aptaujas - Atvērtas - Slēgtas - Žetoni - Kopienas - Jauna kopiena - Rediģēt kopienu - Moderatori - Relay - Pārbaudāmi noteikumi (pēc izvēles) - Atļautie notikumu veidi - Īss teksts (1) - Garš raksts (30023) - Attēla ziņa (20) - Video ziņa (21) - Īss video (22) - Kopienas komentārs (1111) - Aizliegtie lietotāji - Uzticamības tīkla vārti (pēc izvēles) - Globālais maksimālais notikuma izmērs (pēc izvēles) - Jauns žetons - Piešķirt žetonu - Profila žetoni - Attēli - Treniņi - Jauns treniņš - Skriešana - Pastaiga - Riteņbraukšana - Pārgājiens - Peldēšana - Airēšana - Spēka treniņš - Joga - Meditācija - Diēta - Gavēnis - Apļa treniņš - Lietotnes Lietotnes - Pārlūkprogramma - Ielāde notiek caur Tor. Pieskarieties, lai izmantotu atvērto tīmekli. - Ielāde notiek caur atvērto tīmekli. Pieskarieties, lai izmantotu Tor. - Izlase - Izlases lietotnes - Pievienot izlasei - Noņemt no izlases - Ielādē caur Tor. - Ielādē caur atvērto tīmekli. - Publicēts relays - Augšupielādēts fails - Veikts maksājums - Šī lietotne vēl nav ielādēta. Mēģiniet vēlreiz pēc brīža. - Nesenās nApplet atļaujas nApplet atļauju vēl nav Atļaujas, ko piešķirat nApplets, parādīsies šeit. @@ -286,46 +25,11 @@ Apvalks - Identitāte - Tastatūras darbības - Krātuve - Maksājumi - Tīkls - Augšupielādes Pajautāt, kādas iespējas ir pieejamas - Lasīt jūsu publisko atslēgu - Piesaistīt tastatūras īsinājumtaustiņus - Lasīt, parakstīt & publicēt jūsu notikumus - Tās pašas privātā krātuve - Apmaksāt Lightning rēķinus - Iegūt tīmekļa un Blossom resursus - Augšupielādēt failus uz jūsu mediju serveri - Motīvs - Paziņojumi - Ziņapmaiņa - Saskaņot jūsu lietotnes krāsas - Rādīt jums paziņojumus - Apmainīties ziņojumiem ar citiem nApplets Iespēja: %1$s - Šis nApplet vēlas lasīt jūsu publisko atslēgu. - Šis nApplet vēlas lasīt jūsu profilu un konta datus. - Šis nApplet vēlas parakstīt un publicēt %1$d veida notikumu jūsu vārdā. - Šis nApplet vēlas parakstīt un publicēt %1$d veida notikumu jūsu vārdā: - Šis nApplet vēlas nosūtīt šifrētu notikumu jūsu vārdā. - Šis nApplet vēlas lasīt notikumus no jūsu relays. - Šis nApplet vēlas izmantot savu privāto krātuvi. Šis nApplet vēlas apmaksāt Lightning rēķinu. - Šis nApplet vēlas iegūt tīmekļa resursu. - Šis nApplet vēlas augšupielādēt failu uz jūsu mediju serveri. - Šis nApplet vēlas rādīt jums paziņojumus. - Šī vietne vēlas parakstīt %1$d veida notikumu ar jūsu Nostr atslēgu. - - Šī nApplet vēlas apmaksāt Lightning rēķinu par %1$d sat. - Šī nApplet vēlas apmaksāt Lightning rēķinu par %1$d sat. - Šī nApplet vēlas apmaksāt Lightning rēķinu par %1$d sats. - - Šorti - Publiskie čati - Sekošanas paketes - Tiešraides - Pacelt roku - Nolaist roku - Izslēgt skaņu - Ieslēgt skaņu - Neizdevās nosūtīt ziņojumu - Izslēgt mikrofonu - Ieslēgt mikrofonu - Turpina atskaņot audio, kamēr telpa ir atvērta. - Nest savienots - Nest — Tiešraide - Pieskarieties, lai atgrieztos. - Apturēt - pacēla roku - uzkāpa uz skatuves - runā - pievienojās kā klausītājs - atstāja nest - Atstāt - Neizdevās atzīmēt telpu kā slēgtu. Atstājam tāpat — telpa tiks automātiski aizvērta. - - %1$d klausītāju - %1$d klausītājs - %1$d klausītāji - - Apklusināt šo runātāju - Atjaunot šo runātāju - Sekot - Pārtraukt sekot - Izslēgt skaņu - Ieslēgt skaņu - Neizdevās saglabāt nest serveru sarakstu. Mēģiniet vēlreiz. - Nest serveri - Jūsu serveri - Saglabāts kā kind-10112 aizstājams notikums, lai citi klienti varētu lasīt jūsu preferenci. - Ieteiktie serveri - Iebūvētie ieteikumi, ko varat pievienot sarakstam ar vienu pieskārienu. - Video - Mūzika - Atskaņošanas saraksti - Epizodes - Podkāsti - - %1$d epizodes - %1$d epizode - %1$d epizodes - - Jauns mūzikas ieraksts - Jauns atskaņošanas saraksts - - %1$d ieraksti - %1$d ieraksts - %1$d ieraksti - - Pievienot publiskajām grāmatzīmēm - Noņemt no publiskajām grāmatzīmēm - Piespraust profilam - Atspraust no profila - Jauns grāmatzīmju saraksts - Grāmatzīmju saraksta metadati - Hashtagu kopas - Jauna interešu kopa - @string/rename - Padarīt privātu: iesaiņot piezīmi tikai paziņotajiem lietotājiem - Padarīt publisku - Atbildes uz privātu piezīmi vienmēr paliek privātas - Redzams Nav saņēmēju: tikai jūs varēsiet redzēt šo piezīmi. Pievienojiet cilvēkus, lai dalītos ar to. Pievienot Noņemt lietotāju no paziņojumiem Meklēt un pievienot lietotāju paziņošanai - Grāmatzīmju sarakstu metadatus var redzēt ikviens Nostr. Tikai jūsu privātie dalībnieki ir šifrēti. - Pārvietot uz publisku - Pārvietot uz privātu - Papildināt & sūtīt Zap - Sūtīt Zap - Papildināt %1$s sats uz %2$s un Zap %3$s %4$s sats · maksa ≈ %5$s sats - Variants %s - Viens variants - Vairāki varianti - Nevar balsot - Aptauja ir slēgta jaunām balsīm - Šāda veida aptaujā katram lietotājam ir atļauta tikai viena balss - Aptaujas autori nevar balsot savās aptaujās. - Ko tas nozīmē? - Šis saturs nav mainījies kopš ieraksta - Šis saturs ir mainīts. Iespējams, autors nav redzējis vai apstiprinājis izmaiņas - Pievienot mediju - Pievienot attēlu - Pievienot video - Pievienot dokumentu - Failu serveris - Izvēlieties serveri, uz kuru augšupielādēt šo failu - Mediju serveri Iestatiet vēlamos multivides augšupielādes serverus. Ieteicamie mediju serveri Amethyst noklusējuma saraksts. Varat pievienot tos atsevišķi vai pievienot sarakstu. - Maksājumu mērķi - Pievienojiet maksājumu adreses dažādiem tīkliem (piem., bitcoin, lightning, ethereum). - Nav atrasta lietotne šī maksājuma apstrādei. Lūdzu, instalējiet saderīgu maku. - Nav instalētas lietotnes %1$s maksājumu apstrādei. Lūdzu, instalējiet saderīgu maku. - Nevar atvērt maksājumu - Privātuma opcijas - Visi sekotāji - Visi lietotāju sekotāji - Noklusējuma sekošanas saraksts - Ap mani - Globāls - Kurēts - Mans - Izslēgto saraksts - Jauns sekošanas saraksts - Jauns sekošanas pakotne - Rediģēt sarakstu - Noklusējuma ports ir 9050 - Orbot Socks ports - Aktīvs Tor dzinējs - Izmantot iekšējo versiju vai Orbot - Tor/Privātuma iepriekšējie iestatījumi - Ātri modificēt visus iestatījumus zemāk - Onion URL/Relays - Izmantot Tor jebkuram .onion URL - Piespiest Tor sūtīt un saņemt DM - Neuzticami Relays - Piespiest Tor uz izejošajiem/ienākošajiem relays - Uzticami Relays - Piespiest Tor uz visiem relays jūsu sarakstos - Profila attēli - Piespiest Tor, ielādējot profila attēlus - URL priekšskatījumi - Piespiest Tor, ielādējot URL priekšskatījumus - Attēli - Piespiest Tor, ielādējot attēlus - Video - Piespiest Tor, ielādējot video - Naudas operācijas - Piespiest Tor uz Zap, Lightning un Cashu pārskaitījumiem - Nostr adreses verifikācija - Piespiest Tor, verificējot NIP-05 adreses - Mediju augšupielādes - Piespiest Tor, augšupielādējot saturu - Iekšējs - Izslēgts - Pamata - Noklusējums - Viss, izņemot multividi - Pilnīga privātums - Pielāgots - Izmantot Tor, kad to pieprasa serveris - Slēpt savu IP no nejaušiem relay - Slēpt savu IP no visa, izņemot attēlus un video - Slēpt savu IP visos savienojumos - Izveidojiet savu - Privātās ziņas - Paziņo, kad pienāk privāta ziņa - Saņemtie Zap - Paziņo, kad kāds jums nosūta Zap - No %1$s - par %1$s - Atbildēt - Atzīmēt kā lasītu - Jaunas ziņas - Jauni Zap - Reakcijas - Paziņo, kad kāds reaģē uz jūsu ierakstu - %1$s reaģēja uz jūsu ierakstu - par %1$s - Jaunas reakcijas - Šahs - Paziņo par šaha spēles notikumiem - %1$s pieņēma jūsu šaha izaicinājumu - %1$s gāja — jūsu kārta - Šaha atjauninājumi - Atbildes - Paziņo, kad kāds atbild uz jūsu ierakstu %1$s atbildēja par: %1$s - Jaunas atbildes - Pieminēšanas - Paziņo, kad kāds jūs piemin vai citē ierakstā - %1$s jūs pieminēja - Jaunas pieminēšanas @@ -553,160 +81,26 @@ - Ienākošie zvani - Paziņojumi par ienākošajiem balss un video zvaniem - Ienākošs zvans - Ienākošs balss zvans… - Ienākošs video zvans… - Zvans ar %1$s - Zvani - Notiekošā zvana paziņojums - Beigt zvanu - Pieņemt - Noraidīt - Izslēgt mikrofonu - Ieslēgt mikrofonu - Kamera ieslēgta - Kamera izslēgta - Skaļrunis - Austiņa - Amethyst nepieciešama mikrofona piekļuve, lai sāktu balss zvanu. Lūdzu, iespējojiet to lietotnes iestatījumos. - Amethyst nepieciešama kameras un mikrofona piekļuve, lai sāktu video zvanu. Lūdzu, iespējojiet tos lietotnes iestatījumos. - Zvanu iestatījumi - Uztur aktīvus savienojumus ar jūsu iesūtnes relay reāllaika paziņojumiem - Amethyst paziņojumi aktīvi - - Savienots ar %1$d iesūtnes relay - Savienots ar %1$d iesūtnes relay - Savienots ar %1$d iesūtnes relay - - - Savienots ar %1$d relay - Savienots ar %1$d relay - Savienots ar %1$d relay - - Maks - Savienojas ar iesūtnes relay… Vienmēr aktīvs paziņojumu pakalpojums Uztur pastāvīgu savienojumu ar jūsu iesūtnes relay tūlītējai paziņojumu piegādei. Rāda pastāvīgu paziņojumu. Izmanto vairāk akumulatora, bet nodrošina, ka nepalaidīsiet garām nevienu ziņu. - Sadalīt paziņojumus pēc sekošanas - Rādīt divas paziņojumu cilnes — Sekotie (cilvēki, kuriem sekojat) un Visi. Nelasīto rādītājs mirgo tikai sekoto cilvēku aktivitātei. - Rādīt ziņas - Iekļaut tiešās un grupas ziņas paziņojumu cilnē. Izslēdziet, lai ziņas tiktu rādītas tikai ziņojumu cilnē. - Paziņot: - Šodien - Slēpt - Rādīt - Brīdināt - Filtrēt mēstules - Slēpj ierakstus no svešiniekiem, kas bija tieši vienādi 5 vai vairāk reizes - Pievienot klienta atzīmi saviem notikumiem - Ja iespējots, Amethyst pievieno NIP-89 klienta atzīmi jūsu publicētajiem notikumiem. - Brīdināt par ziņojumiem - Rāda brīdinājuma ziņojumu, kad ierakstiem vai profiliem ir ziņojumi no jūsu sekotajiem - Slēpt ierakstus, kas pārkāpj kopienas noteikumus - Noņem ierakstus no kopienas plūsmām, kad kopiena publicē NIP-9B noteikumu dokumentu un notikums to nepildītu. Nav ietekmes, kad kopienai nav strukturētu noteikumu. - Filtrēšanas preferences - Bloķētais saturs - Jūs vēl neesat bloķējis nevienu lietotāju. - Šajā sesijā neviens konts nav atzīmēts kā mēstules. - Nav slēpto vārdu. Pievienojiet vārdu zemāk, lai slēptu ierakstus, kas to satur. - Šim lietotājam nav iepriekš atlasītu reakciju veidu. Ilgi nospiediet sirds pogu, lai mainītu - Lasīt no relay - Rakstīt uz relay - Baitu daudzums, kas nosūtīts uz šo relay, ieskaitot filtrus un notikumus - Baitu daudzums, kas saņemts no šī relay, ieskaitot filtrus un notikumus - Privātuma politika - Bērnu drošības standarti - Par & juridiski - Cashu žetons - Nav iestatīta Lightning adrese - Relay - Sekošanas pakas - Lasāmviela - Plūsmas algoritmi - Tirgus - Tiešraides - Kopienas - Tērzēšana - Sensitīvs saturs - Pievieno sensitīvā satura brīdinājumu pirms šī satura rādīšanas - UI preferences Lietotnes iestatījumi - Tulkojumi - Reakcijas - Iestatījumi - Konta iestatījumi - Lietotnes iestatījumi - Bīstamā zona - Atiestatīt Marmot stāvokli - Marmot stāvoklis atiestatīts. - Neizdevās atiestatīt Marmot stāvokli: %1$s - Vienmēr - Nemērīts WiFi - Nekad - Pilns - Vienkāršots - Veiktspēja - Klasiskais - Modernais - Sistēma - Gaišs - Tumšs - Motīvs - Attēlu priekšskatījums - Video atskaņošana - Automātiska video atskaņošana - URL priekšskatījums - Iegremdēta ritināšana - Slēpt navigācijas joslas ritināšanas laikā - Saskarsnes režīms - Izvēlieties ierakstu stilu - Profila galerijas stils - Izvēlieties galerijas stilu - Surogātpasta sūtītāji - Skaņa izslēgta. Noklikšķiniet, lai ieslēgtu skaņu - Skaņa ieslēgta. Noklikšķiniet, lai izslēgtu skaņu - Pārtīt atpakaļ %d sekundes - Pārtīt uz priekšu %d sekundes - Atrašanās vietai ekskluzīvs ieraksts - To redzēs tikai atrašanās vietas sekotāji. Jūsu vispārējie sekotāji to neredzēs. - - %1$d ieraksti - %1$d ieraksts - %1$d ieraksti - - - +%1$d vairāk ierakstu - +%1$d vairāk ieraksts - +%1$d vairāk ieraksti - - Augšupielādēt vāka attēlu - Izvēlieties kvadrātveida attēlu kā šī ieraksta ilustrāciju. - Augšupielādēt audio failu - Atlasiet MP3, WAV vai FLAC datni. Tā tiks augšupielādēta jūsu multimediju serverī saglabāšanas brīdī. - Augšupielādē vāku un audio un publicē. Tas turpināsies pat tad, ja aiziesiet no šī ekrāna. - Rediģēt atskaņošanas sarakstu - Augšupielādēt vāka attēlu - Izvēlieties kvadrātveida attēlu kā šī atskaņošanas saraksta ilustrāciju. - Augšupielādē vāku un publicē. Tas turpināsies pat tad, ja aiziesiet no šī ekrāna. Publisks Grupa Privāts - Temats - Nevar augšupielādēt - Vispirms ievadiet ziņojuma galamērķi - Maks nav atrasts - Amethyst nevarēja atrast nevienu maka lietotni, kas atbalsta Nostr Wallet Connect (NWC). -\n\nKo varat darīt: -\n\t1. Pārbaudiet NWC atbalstu: Pārliecinieties, vai jūsu vēlamā maka lietotne ir saderīga ar Nostr Wallet Connect. -\n\t2. Izveidojiet savienojumu: Atveriet savu maka lietotni un izveidojiet jaunu NWC savienojumu. -\n\t3. Saistiet ar Amethyst: Jūsu maks parasti piedāvās trīs iespējas: -\n\t\t3.1 Automātiska saistīšana: Poga, lai automātiski atvērtu un savienotu ar Amethyst. Ja tā, noklikšķiniet uz šīs pogas, atveriet Amethyst un nospiediet saglabāt jaunajā ekrānā. -\n\t\t3.2 Manuāla saistīšana: Savienojuma URI, ko varat kopēt un noklikšķināt uz ielīmēšanas ikonas šajā ekrānā, lai to ievadītu tieši. -\n\t\t3.3 QR kods: Maks izveido QR kodu, kuru varat nolasīt ar QR koda pogu šajā ekrānā. - - Tumšs, gaišs vai sistēmas dizains - Automātiski ielādēt attēlus un GIF - Automātiski ielādēt video un GIF - Automātiski atskaņot video, kad tie ir redzami ekrānā - Rādīt URL priekšskatījumus - Kopēt starpliktuvē - Nokopēts starpliktuvē - Kopīgot vai saglabāt Nosūtīt kā DM - Multivide pievienota - Multivide pievienota jūsu profila galerijai - Nevar nosūtīt zap - Trūkst Lightning iestatījumu - Lietotājam %1$s nav iestatīta Lightning adrese sats saņemšanai - Kļūda, atverot parakstītāja lietotni - Parakstītāja lietotne netika atrasta. Pārbaudiet, vai lietotne nav atinstalēta - Nevar atskaņot šo video - Kodeks vai formāts netiek atbalstīts šajā ierīcē (%1$s). Mēģiniet to atvērt pārlūkprogrammā. - Atvērt pārlūkprogrammā - Parakstīšanas pieprasījums noraidīts - Pārliecinieties, ka parakstītāja lietotne ir autorizējusi šo darījumu - Nav atrasts neviens maks Lightning rēķina apmaksai (Kļūda: %1$s). Lūdzu, instalējiet Lightning maku, lai izmantotu zaps - Nav atrasts neviens maks Lightning rēķina apmaksai. Lūdzu, instalējiet Lightning maku, lai izmantotu zaps - Nevar atvērt Blossom saites - Blossom lietotnes netika atrastas. Lūdzu, instalējiet lokālu Blossom lietotni, lai skatītu šo failu - Slēptie vārdi - Izslēgtās diskusijas - Nav izslēgtu diskusiju - Profila attēls - Rādīt profila attēlus - Nevarēja samaksāt rēķinu - Nevarēja izņemt - Nevarēja izmantot Cashu - Mint sniedza šādu kļūdas ziņojumu: %1$s - Cashu saņemts - %1$s sats tika nosūtīti jūsu makā. (Komisijas: %2$s sats) - Sistēmā nav atrasts saderīgs Cashu maks - Nevar iegūt rēķinu no saņēmēja serveriem - Jūsu wallet connect pakalpojumu sniedzējs atgrieza šādu kļūdu: %1$s - Nevarēja izveidot LNUrl no Lightning adreses \"%1$s\". Pārbaudiet lietotāja iestatījumus - Nevarēja iegūt rēķinu no %1$s: %2$s - Kļūda parsējot JSON no %1$s. Pārbaudiet lietotāja Lightning iestatījumus - Atsaukšanas URL nav atrasts %1$s atbildē - Nepareiza rēķina summa (%1$s sats) no %2$s. Tai vajadzēja būt %3$s - Nevar izveidot Lightning rēķinu pirms zap nosūtīšanas. Saņēmēja Lightning maks nosūtīja šādu kļūdu: %1$s - Tikai lasāms lietotājs - Nav reakciju iestatījumu - Paziņojumi - Piegāde - Rādīšana lietotnē - Kategorijas - Ziņojums no %1$s - Sveiki, %1$s, vai tas joprojām ir pieejams? - Apģērbs - Piederumi - Elektronika - Mēbeles - Kolekcionējamie priekšmeti - Grāmatas - Mājdzīvnieki - Sports - Māksla - Rokdarbi - Mājai - Birojs - Ēdiens - Dažādi - Cits - Neizdevās augšupielādēt multivides datni - Nevarēja atvērt saspiestu failu - Augšupielādes kļūda: %1$s - Serveris nesniedza URL pēc augšupielādes - Nevarēja lejupielādēt augšupielādēto multivides datni no servera - Nevarēja pārbaudīt lejupielādēto failu pēc augšupielādes: %1$s - Neizdevās augšupielādēt %1$s: %2$s - Dzēšana neizdevās: %1$s - Multivide ir pārāk liela NIP-95 - Šifrēt failus - Šifrēt failus pirms augšupielādes privātumam. Daži serveri var nepieņemt šifrētus failus bezmaksas kontos. - Šifrētā augšupielāde neizdevās - Daudzi serveri nepieņem šifrētus failus bezmaksas kontos. Varat mēģināt vēlreiz bez šifrēšanas. - Izmantot H.265/HEVC kodeku - Labāka kvalitāte mazākos failu izmēros, taču ne visas ierīces atbalsta H.265 atskaņošanu. - Konvertēt GIF uz MP4 - Konvertē animēto GIF uz MP4 video mazākam faila izmēram un labākai atskaņošanas saderībai. - Noņemt privātos metadatus - Mēģina noņemt privātos metadatus no atbalstītajiem multivides failiem pirms augšupielādes - Metadatus nevarēja noņemt - Neizdevās noņemt privātos metadatus no multivides. Augšupielāde atcelta. - Augšupielāde atcelta - Nevar noņemt metadatus no AVIF: %1$s - Sākums - Atklāt - Ziņojumi - Paziņojumi - Kalendāri - Kalendāru saraksti - Šahs - Maks - Cashu maks (NIP-60) Nutzap atslēga (uzlabota) Atsevišķa privātā atslēga, ko izmanto tikai NIP-61 nutzap saņemšanai. Nav jūsu Nostr identitātes atslēga. Ģenerēt jaunu atslēgu P2PK privātā atslēga (hex) - Rediģēt mints Saglabāt izmaiņas - - +%1$d vairāk - +%1$d vairāk - +%1$d vairāk - - - Ieteikuši %1$d citi - Ieteicis %1$d cits - Ieteikuši %1$d citi - - Populāri mints - Atbilstošie mints - Saņemts - Nosūtīts - Publicēt dzēšanas pieprasījumu jūsu kind:38000 ieteikumam par %1$s. Relay, kas ievēro NIP-09, to noņems. - Atgūti %1$s sats no %2$s pierādījumiem. - Maksāt %1$s sat + līdz %2$s sat komisijā? - Nutzap neizdevās - Piezīmē nav saņēmēja publiskās atslēgas - Nutzap ir publiski un atklātu šo privāto piezīmi. Tā vietā izmantojiet Lightning zap. - Nevar izveidot notikuma atsauci - Gaida rēķina apmaksu… - Pārbauda mint… - Lēni - Normāli - Ātri - ~1 st. - - Nosūtīt %1$s sats, %2$d veidos - Nosūtīt %1$s sats, %2$d veidā - Nosūtīt %1$s sats, %2$d veidos - - - Izmantot šī ieraksta %1$d-veidu Zap sadalījumu - Izmantot šī ieraksta %1$d-veidu Zap sadalījumu - Izmantot šī ieraksta %1$d-veidu Zap sadalījumu - - - Sadalījums starp %1$d saņēmējiem - Sadalījums starp %1$d saņēmēju - Sadalījums starp %1$d saņēmējiem - - - Izlaižot %1$d saņēmējus ar tikai Lightning adresi — tiešsaistei nepieciešams Nostr publiskā atslēga adreses atvasināšanai. - Izlaižot %1$d saņēmēju ar tikai Lightning adresi — tiešsaistei nepieciešams Nostr publiskā atslēga adreses atvasināšanai. - Izlaižot %1$d saņēmējus ar tikai Lightning adresi — tiešsaistei nepieciešams Nostr publiskā atslēga adreses atvasināšanai. - - ielādē bilanci - veido darījumu - paraksta - pārraida - publicē kvīti - Bitcoin ķēdes aizmugures pakalpojums nav konfigurēts - Nevarēja ielādēt jūsu Bitcoin bilanci - Nevarēja izveidot darījumu - Saņēmēja daļa ir zem putekļu robežas - Nevarēja parakstīt darījumu - Nevarēja pārraidīt darījumu - Maksājums nosūtīts, bet zap kvīts nevarēja tikt publicēta - - Maksājums nosūtīts (%1$d no %2$d čekiem publicēts), bet nākamo čeku nevarēja publicēt - Maksājums nosūtīts (%1$d no %2$d čeka publicēts), bet nākamo čeku nevarēja publicēt - Maksājums nosūtīts (%1$d no %2$d čekiem publicēts), bet nākamo čeku nevarēja publicēt - - Importēt sekotājus - Jauns produkts - Jauns raksts - Jauns kalendāra notikums - Rediģēt kalendāra notikumu - Jauns kalendārs - Rediģēt kalendāru - Plūsma - Mēnesis - Nedēļa - Diena - - %1$s, %2$d notikumu - %1$s, %2$d notikums - %1$s, %2$d notikumi - - Notiek tagad - %1$s · beidzas %2$s - Kopīgot kalendāra notikumu - Kalendāra atgādinājumi - Brīdinājums, kad notikums, kurā piedalāties, drīz sāksies. - Kalendāra notikums - - Sākas pēc %1$d minūtēm - Sākas pēc %1$d minūtes - Sākas pēc %1$d minūtēm - - Attēla augšupielāde neizdevās - Izvēlēto attēlu nevarēja augšupielādēt. Mēģiniet vēlreiz vai ielīmējiet URL. - Kalendāra atgādinājumi - Sūtīt atgādinājumus - Paziņojums tiek izsūtīts, kad notikums, kurā piedalāties, drīz sāksies. - Atvērt kartēs - Atvērt saiti - Atvērt visas reakcijas uz šo ierakstu - Aizvērt visas reakcijas uz šo ierakstu - Apakšējā navigācijas josla Velciet, lai pārkārtotu. Pārslēdziet, lai pievienotu vai noņemtu vienumu no apakšējās joslas. Ja vienumu nav, apakšējā josla tiek paslēpta. Pārkārtot Izvēlieties, kuras cilnes parādās sākuma ekrānā. Ja aktīva ir tikai viena cilne, cilņu josla tiek paslēpta. - Viss - Profila lietotāja saskarne Izvēlieties, kuras sadaļas un plūsmas parādās lietotāja profila ekrānos. Pēc noklusējuma visas opcijas ir iespējotas. - Profila nozīmītes - Lietotņu ieteikumi - Saņemto Zap plūsma - Sekotāju plūsma - Reakciju rinda - Video atskaņotāja pogas - Audio vizualizētājs - Derīguma termiņš - Nederīga adrese - Amethyst saņēma URI, ko atvērt, bet šis URI bija nederīgs: %1$s - DM iesūtnes Relay - Meklēšanas Relay - Labas iespējas ir:\n%1$s - Izejošo ziņojumu Relay - Iesūtnes Relay - Relay iestatījumi - Publiskie izejošo ziņojumu/sākuma Relay - Lietotājs publicē savu saturu šajos relay - Šis relay veids glabā visu jūsu saturu. Amethyst nosūtīs jūsu ierakstus šeit, un citi izmantos šos relay, lai atrastu jūsu saturu. Ievietojiet 1–3 relay. Tie var būt personīgi, maksas vai publiski relay. - Publiskie iesūtnes Relay - Lietotājs saņem paziņojumus šajos relay - Šis relay veids saņem visas atbildes, komentārus, patīk un zap uz jūsu ierakstiem. Tie var būt maksas vai bezmaksas relay. Relay operatora noteiktie ierobežojumi var ierobežot jūsu saņemtos paziņojumus gan labā, gan sliktā nozīmē. Piemēram, ja jūs tiekat uzbrukts ar komentāru spamu, maksas relay var filtrēt spamu. Ievietojiet 1–3 relay. - DM iesūtnes Relay - Lietotājs saņem DM šajos relay - Ievietojiet 1–3 relay kā jūsu privāto iesūtni. Citi izmantos šos relay, lai jums nosūtītu DM. DM Iesūtnes relay vajadzētu pieņemt jebkuru ziņojumu no jebkura, bet ļaut lejupielādēt tikai jums. Labas iespējas ir:\n - inbox.nostr.wine (maksas)\n - auth.nostr1.com (bezmaksas)\n - you.nostr1.com (personīgi relay - maksas) - KeyPackage Relay - Relay, kur tiek publicēti jūsu MLS KeyPackages (MIP-00). Citi lietotāji ielādē šos KeyPackages, lai uzaicinātu jūs Marmot grupu sarunās. Ievietojiet 1–3 relay, kas pieņem KeyPackage notikumus no jums un atļauj publisko lasīšanu. - Privātie sākuma Relay - Ievietojiet 1–3 relay, lai glabātu notikumus, ko neviens cits nevar redzēt, piemēram, jūsu melnrakstus un/vai lietotnes iestatījumus. Ideālā gadījumā šie relay ir vai nu lokāli, vai pieprasa autentifikāciju pirms katra lietotāja satura lejupielādes. - Pievienotie Relay - Pašreiz izmantoto relay saraksts - Meklēšanas Relay - Relay saraksts, ko izmantot, meklējot saturu vai lietotājus. Atzīmēšana un meklēšana nedarbosies, ja nav pieejamu opciju. Pārliecinieties, ka tie ievieš NIP-50. - Lokālie Relay - Relay saraksts, kas darbojas šajā ierīcē. - Pārsūtīt profilus uz lokālo relay - Nosūtīt visus saņemtos profila (kind 0) notikumus uz jūsu lokālo relay - Uzticamie Relay - Relay, kuriem uzticaties un kuriem nav nepieciešams Tor savienojums - Iecienītās Relay plūsmas - Relay, kurus bieži apmeklējat, lai skatītu to globālo plūsmu - Starpniekservera Relay - Agregātori relay, ko lietotnei jāizmanto, lai lejupielādētu jūsu plūsmas, piemēram, filter.nostr.wine. Tas aizstāj izejošo ziņojumu modeli un liks lietotnei pieslēgties tikai jūsu sarakstos esošajiem relay. - Apraides Relay - Relay, kas specializējas jūsu piezīmju pārsūtīšanā uz visiem pārējiem relay, piemēram, sendit.nosflare.com. Amethyst pievienos šo relay visiem jūsu jaunajiem notikumiem - Indeksētāja Relay - Relay, kas specializējas visu metadatu un relay sarakstu mitināšanā, piemēram, purplepag.es. Amethyst izmantos šos relay, lai atrastu lietotājus, kas nav jūsu sarakstos. - Bloķētie Relay - Amethyst nekad npieslēgsies šiem relay - Eksportēt relay iestatījumus Tīmeklis: Pārskats Par Saites Uzturētāji Tēmas - Laika zīmoga pierādījums - Ir pierādījums, ka šī ziņa tika parakstīta kādreiz pirms %1$s. Pierādījums tika ierakstīts Bitcoin blokķēdē šajā datumā un laikā. - Rediģēt ierakstu - Nav iespējams atbildēt uz melnraksta ziņu - Nav iespējams citēt melnraksta ziņu - Nav iespējams reaģēt uz melnraksta ziņu - Nav iespējams zap melnraksta ziņu - Melnraksta ziņa - Nepareizs pieprasījums — serveris nevar vai nevēlas apstrādāt pieprasījumu. - Neatļauts — lietotājam nav derīgu autentifikācijas akreditācijas datu - Nepieciešams maksājums — serveris pieprasa maksājumu, lai izpildītu pieprasījumu - Aizliegts — lietotājam nav piekļuves tiesību veikt pieprasījumu - Nav atrasts — serveris nevar atrast pieprasīto adresi - Metode nav atļauta — serveris atbalsta pieprasījuma metodi, bet ne mērķa resursu - Nav pieņemams — serveris neatrod saturu, kas apmierinātu pieprasījumu. - Nepieciešama starpniekservera autentifikācija — lietotājam nav derīgu autentifikācijas akreditācijas datu - Pieprasījuma taimauts — serveris pārstāja gaidīt kādu citu - Konflikts — serveris nevar izpildīt pieprasījumu, jo pastāv konflikts ar resursu - Pazudis — pieprasītais saturs ir neatgriezeniski dzēsts no servera un netiks atjaunots - Nepieciešams garums — serveris noraida pieprasījumu, jo tas prasa definētu vērtību - Priekšnosacījums neizdevās — pieprasījuma priekšnosacījumi virsraksta laukos, kurus serveris nespēj izpildīt - Pārāk liela krava — pieprasījums ir lielāks par servera definētajiem ierobežojumiem, un serveris atsakās to apstrādāt - URI pārāk garš — klienta pieprasītais URL ir pārāk garš, lai serveris to apstrādātu. - Neatbalstīts multivides tips — pieprasījums izmanto multivides formātu, ko serveris neatbalsta - Diapazons nav apmierināms — serveris nevar izpildīt pieprasījuma Range virsraksta laukā norādīto vērtību. - Cerības neizdevās — serveris nevar izpildīt Expect pieprasījuma virsraksta laukā norādītās prasības - Nepieciešams jauninājums — serveris atsakās apstrādāt pieprasījumu, izmantojot pašreizējo protokolu, ja vien klients nepāriet uz citu protokolu. - Iekšējā servera kļūda — serveris saskārās ar negaidītu kļūdu un nevar izpildīt pieprasījumu - Nav ieviests — serveris nevar izpildīt pieprasījumu vai neatpazīst pieprasījuma metodi - Sliktā vārteja — serveris darbojas kā vārteja un saņēma nederīgu atbildi no resursdatora - Pakalpojums nav pieejams — tas bieži notiek, kad serveris ir pārslogots vai veic apkopi - Vārtejas taimauts — serveris darbojās kā vārteja vai starpnieks un pārtrauca gaidīt atbildi - HTTP versija netiek atbalstīta — serveris neatbalsta pieprasījumā norādīto HTTP versiju - Variants arī apspriežas — serverim ir iekšēja konfigurācijas kļūda - Nepietiekama krātuve — serverim nav pietiekami daudz krātuves, lai veiksmīgi apstrādātu pieprasījumu - Atklāta cilpa — serveris pieprasījuma apstrādē konstatē bezgalīgu cilpu - Nepieciešama tīkla autentifikācija — klients ir jāautentificē, lai piekļūtu tīklam Blossom serveri Pievienojiet tik daudz serveru, cik vēlaties. Vēlāk varat izvēlēties, kuru izmantot, augšupielādējot attēlu - Pievienot NIP-96 serveri - Pievienot Blossom serveri Lejupielādēt - Neizdevās atvērt failu - Nav uzstādītas torrent lietotnes, kas atvērtu un lejupielādētu datni. - Notikumam nav pietiekami daudz informācijas, lai izveidotu magnētisko saiti - Mani saraksti - Plūsmas - Hashtagi - Interešu kopas - Atrašanās vietas - Kopienas - Saraksti - Plūsmas algoritmi - Visi iecienītie plūsmas algoritmi - Relay - Iecienītie plūsmas algoritmi - Privāta ziņa - Publiska ziņa - Nevar kopīgot attēlu, lūdzu, mēģiniet vēlāk… - Nevar kopīgot video, lūdzu, mēģiniet vēlāk… - Lejupielādē video… - Netulkot no - Šeit rādītās valodas netiks tulkotas. Izvēlieties valodu, lai to noņemtu un atkal tulkotu. - Tulkot uz - Izvēlieties valodu, kurā tulkot saturu. - Valodas attēlošanas preferences - Katram tulkotajam valodu pārim izvēlieties, kuru valodu rādīt pirmajā vietā. - Pauzēt - Atskaņot - Šī ziņa pazudīs pēc %1$s - Sekošanas saraksta metadati - Sekošanas sarakstu metadatus var redzēt ikviens Nostr. Tikai jūsu privātie dalībnieki ir šifrēti. - Sekošanas pakotnes metadati - Sekošanas pakotnes metadatus var redzēt ikviens Nostr, un tie bieži tiek publicēti daudzās vietnēs kā starta komplekti jauniem lietotājiem. - Rediģēt sekošanas pakotni - Izvērst - Mēģināt vēlreiz - Reakcija - Balss ziņa - Balss atbilde - Izejošo relay - Lietotnes - Lietotņu ieteikumi - Lietotāja iestatījumi - Audio virsraksts - Audio ieraksts - Mūzikas ieraksts - Mūzikas atskaņošanas saraksts - Podkāsta epizode - Podkāsta šovs - Autora podkāsti - Iecienītie podkāsti - Nozīmju apbalvojumi - Nozīmju definīcijas - Pieņemto nozīmju kopa - Profila nozīmes - Bloķētie relay - Blossom serveri - Nests serveri - Blossom autentifikācija - Pārraides relay - Grāmatzīmju saraksts - Vecais grāmatzīmju saraksts - Dienas tikšanās - Kalendārs - Tikšanās - Tikšanās RSVP - Šaha spēles - Šaha autentifikācija - Iecienītie relay - Šaha izaicinājumi - Šaha spēles pieņemšana - Šaha gājiens - Šaha spēles beigas - Šaha neizšķirta piedāvājums - Kanāla definīcija - Kanāla slēptā ziņa - Kanālu saraksts - Kanāla ziņa - Kanāla metadati - Kanāla lietotāja izslēgšana - DM fails - DM ziņa - DM relay - Sludinājumi - Komentāri - Kopienas definīcija - Kopienas saraksts - Kopienas ziņa - Sekojamo saraksts - Dzēšanas - Melnraksti - Emoji pakotnes - Emoji pakotņu saraksts - Īslaicīga tērzēšana - Īslaicīgas tērzētavas - Failu galvenes - Profila galerija - Failu serveri - Blob dati - Blob galvenes - Medicīniskie dati - Sekojamo pakotnes - Pārpublicējumi (16) - Ģeohash sekošana - Git problēma - Git ielāps - Git repozitorijs - Git atbilde - Zap mērķi - Hashtag sekošana - Izcēlumi - Http autentifikācija - Indeksa relay saraksts - Piedzīvojuma priekšvārds - Piedzīvojuma aina - Piedzīvojuma lasījums - Nosauktās grāmatzīmes - Tiešraides tērzēšanas - Tiešraides straumes - NWC pieprasījums - NWC atbilde - Privāti Zaps - Zap pieprasījums - Blogi - Sapulču telpa - Telpas klātbūtne - Sapulču vieta - Profils - Izslēgto saraksts - Nostr savienojums - DVM statuss - DVM satura pieprasījums - DVM satura atbilde - DVM lietotāja pieprasījums - DVM lietotāja atbilde - Cilvēku saraksti - Attēli - Treniņi - Piespraustas ziņas - Zap aptauja - Aptauja - Aptaujas atbilde - Privāti relay - Starpniek relay - Publiska ziņa - Reakcijas - Kontakta karte - Relay autentifikācija - Relay atklāšana - Relay monitora paziņojums - Relay kopa - Ziņojumi - Pārpublicējumi - Lietotāja dzēšana - Zīmogi - Meklēšanas relay - Lietotāja statuss - Piezīmes - Rediģējumi - Torrenti - Torrenta komentāri - Uzticamie relay - Uzticamie pakalpojumu sniedzēji - Īsie video (Repl) - Īsie video - Balss ziņa - Balss atbilde - Tīmekļa grāmatzīme - %1$d%% darbalaiks - Namecoin iestatījumi - Relay sinhronizācija - Bitcoin pārlūks (OTS) - notikumi no jums - notikumi uz jums - meklējamie notikumi - profili - izejošo saraksti - Pēdējo reizi redzēts pirms %1$s - Pēdējo reizi redzēts %1$s (%2$s atpakaļ) - Pēdējo reizi redzēts tikko - Nekad nav redzēts - - %1$d minūtes - %1$d minūte - %1$d minūtes - - - %1$d stundas - %1$d stunda - %1$d stundas - - - %1$d dienas - %1$d diena - %1$d dienas - - - %1$d nedēļas - %1$d nedēļa - %1$d nedēļas - - - %1$d mēneši - %1$d mēnesis - %1$d mēneši - - - %1$d gadi - %1$d gads - %1$d gadi - - - %1$d kaltuvju - %1$d kaltuves - %1$d kaltuvju - - - %1$d gaidošie rēķini - %1$d gaidošais rēķins - %1$d gaidošie rēķini - - - Līdzekļi glabājas %1$d kaltuvēs, kuras neizmantojat - Līdzekļi glabājas %1$d kaltuvē, kuru neizmantojat - Līdzekļi glabājas %1$d kaltuvēs, kuras neizmantojat - - Pārvietoti %1$s sat uz %2$s. - Apraidīt uz ierīci - Pārtraukt apraidi - HLS augšupielāde - Augšupielādē %1$s (%2$d no %3$d) - Apliecinājums - Apliecinājuma pieprasījums - Apliecinātāja ieteikums - Apliecinātāja prasme - Tīmekļa grāmatzīmes - Pievienot tīmekļa grāmatzīmi - Rediģēt tīmekļa grāmatzīmi - %1$s finansēts no %2$s sats mērķa - Jauns mērķis - Pieprasījums pazust - Pazušanas pieprasījums nosūtīts - Pazušanas vēsture - Lietotāji - Notikumi - Veidi - IP adreses - Iestatījumi - Piedāvāt teksta uzlabojumus - Izmanto ierīcē esošu MI modeli, lai piedāvātu teksta labojumus un toņa izmaiņas. - Izsekotās pārraides - Izmantot izsekoto raidītāju, sūtot notikumus. Parāda tiešraides progresu un katra relay statusa informāciju pārraides laikā. - Ieteikt kopīgojamas treniņu sesijas - Nolasa pabeigtus treniņus no Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) un iesaka kopīgot tos kā ierakstu. Atļauja tiek pieprasīta tikai savienojuma laikā. - Rakstīšanas iestatījumi - Automātiski izveidot melnrakstus - Automātiski saglabā melnrakstu, kad rakstāt vai atstājat redaktoru ar nesūtītu tekstu, un nosūta uz jūsu privātajiem izejas relay serveriem. - Jauna emoji pakotne - Rediģēt emoji pakotni - Manas emoji pakotnes - Emoji - Publiskie emoji ir redzami visiem un parādās jūsu reakciju izvēlnē un \":\" automātiskās pabeigšanas izvēlnē, ja šī pakotne ir jūsu emoji sarakstā. - Privātie emoji tiek glabāti šifrēti relay serveros un redzami tikai jums. Tie parādās jūsu reakciju izvēlnē un \":\" automātiskajā pabeigšanā tāpat kā publiskie. - Melnraksts ir %1$d baiti; šī kopiena ierobežo šo veidu līdz %2$d baitiem. - Melnraksts ir %1$d baiti; šī kopiena ierobežo notikumus līdz %2$d baitiem. - Jūs šodien jau esat publicējis %1$d šā veida notikumus (limits %2$d). - Nowhere vietne - Nowhere notikums - Nowhere ziedojumu akcija - Nowhere veikals - Nowhere petīcija - Nowhere ziņojums - Nowhere māksla - Nowhere forums - - %1$d ziņas - %1$d ziņa - %1$d ziņas - - - %1$d dalībnieku - %1$d dalībnieks - %1$d dalībnieki - - Grupas informācija atjaunināta - Neizdevās atjaunināt: %1$s - Neizdevās izveidot grupu: %1$s - Neizdevās pamest grupu: %1$s - Tiek pievienots %1$s… - Neizdevās pievienot %1$s: %2$s - nezināma kļūda - Dalībnieks noņemts - Neizdevās noņemt dalībnieku: %1$s - Administratora tiesības piešķirtas - Neizdevās piešķirt administratora tiesības: %1$s - Administratora tiesības atsauktas - Neizdevās atsaukt administratora tiesības: %1$s - Nav šīs grupas dalībnieks Saņēmēja Lightning pakalpojums adresē %1$s nav pieejams. Tas tika aprēķināts no Lightning adreses \"%2$s\". Kļūda: %3$s. Pārbaudiet, vai serveris darbojas un vai Lightning adrese ir pareiza Neizdevās atrisināt %1$s. Pārbaudiet, vai esat savienots, vai serveris darbojas un vai Lightning adrese %2$s ir pareiza.\n\nIzņēmums bija: %3$s Kļūda, parsējot JSON no %1$s rēķina ielādes. Pārbaudiet lietotāja Lightning iestatījumus diff --git a/amethyst/src/main/res/values-nl-rBE/strings.xml b/amethyst/src/main/res/values-nl-rBE/strings.xml index ac4e85b081..ff5e0bd381 100644 --- a/amethyst/src/main/res/values-nl-rBE/strings.xml +++ b/amethyst/src/main/res/values-nl-rBE/strings.xml @@ -7,32 +7,6 @@ - - Dit bericht bevat meer dan %1$d hashtag - Dit bericht bevat meer dan %1$d hashtags - - - - %1$d asset gebundeld - %1$d assets gebundeld - - - - - - - - - - - -Spam - -Aantal spamberichten afkomstig van deze relay - -Impersonatie - -Illegaal gedrag @@ -46,7 +20,20 @@ -Verwijdering aanvragen + + + + + + + + + + + + + + Blokkeer en verberg gebruiker @@ -56,45 +43,27 @@ -Je gebruikt een alleen-lezen account. Log in met een privésleutel om te kunnen reageren. - -Je gebruikt een alleen-lezen account. Log in met een privésleutel om berichten te boosten. - -Je gebruikt een alleen-lezen account. Log in met een privésleutel om berichten te liken. - -Geen zap-bedrag ingesteld. Houd ingedrukt om te wijzigen. -Je gebruikt een alleen-lezen account. Log in met een privésleutel om zaps te versturen. -Je gebruikt een alleen-lezen account. Log in met een privésleutel om te volgen. -Je gebruikt een alleen-lezen account. Log in met een privésleutel om te ontvolgen. -Je gebruikt een alleen-lezen account. Log in met een privésleutel om woorden of zinnen te verbergen. -Je gebruikt een alleen-lezen account. Log in met een privésleutel om woorden of zinnen te tonen. -Je gebruikt een alleen-lezen account. Log in met een privésleutel om te uploaden. -Je gebruikt een alleen-lezen account. Log in met een privésleutel om berichten te ondertekenen. -Ongeautoriseerde decodering -De signer heeft decodering niet toegestaan. Schakel NIP-44-decodering in in je signer-app en probeer het opnieuw. -Signer niet gevonden -Is de signer-app verwijderd? Controleer of de signer geïnstalleerd is en dit account ondersteunt. Log opnieuw in. -Externe signer heeft een onjuiste payload geretourneerd voor dit verzoek. Er kan een bug zitten in Amethyst of in de signer. -Zaps -Boost + + + geboost @@ -104,23 +73,18 @@ -Bewerking voorstellen -Toevoegen -Fout bij verwerken foutmelding -Profiel -Beveiligingsfilters @@ -128,17 +92,12 @@ -Invoice aanvragen… -De debit-service heeft de betaling niet voltooid. -Betaal %1$s via %2$s? -Betaal deze invoice via %1$s? -Voer een geldig bedrag in voor dit aanbod. @@ -146,19 +105,14 @@ -Eenmalig -Dagelijks -Wekelijks -Maandelijks -Betalen @@ -174,13 +128,11 @@ -Betalen via %1$s… -Betaling mislukt @@ -190,10 +142,8 @@ -Besteedbaar voor deze ontvanger: %1$s sats -Transactie: %1$s @@ -207,37 +157,26 @@ -"Preview-afbeelding voor %1$s" -Omschrijving -Waar denk je aan? -Schrijf een bericht… -Plaatsen Opslaan -Verzenden -Aanmaken Hernoemen -Annuleren -Fout -Fouten -Percentage succesvolle verbindingen met deze relay @@ -254,73 +193,46 @@ -Opslaan op telefoon -Afbeelding opgeslagen in galerij -Video download gestart… -Media download gestart… -Vastzetten bovenaan -Losmaken -Afbeelding opslaan mislukt -Video opgeslagen in galerij -Video opslaan mislukt -PDF opgeslagen in Downloads/Amethyst -PDF opslaan mislukt -Druk en houd vast om een spraakbericht op te nemen -Uploadfout -Spraakbericht uploaden mislukt -NIP-95 wordt nog niet ondersteund voor spraakberichten -Spraakbericht uploaden mislukt: %1$s -Geen -Diep -Hoog -Neutraal -Deze gebruiker heeft geen Lightning-adres ingesteld om sats te ontvangen -"hier reageren…" -Bekend -Nieuwe verzoeken -Geblokkeerde gebruikers -Nieuwe discussies -Discussies @@ -330,21 +242,16 @@ -Meer opties -Toon QR-code van privésleutel -Toon versleutelde QR-code van privésleutel -Volgen -Terugvolgen @@ -355,20 +262,14 @@ -Wachtwoord verbergen -Ongeldige sleutel -Ongeldige sleutel: %1$s -Wachtwoord is verplicht -Sleutel is verplicht -Naam is verplicht @@ -392,37 +293,24 @@ Nieuw chatprofiel: -Verlaten -Ontvolgen -Tijdelijke chat -Relay-chat -Relay-chats -Relay-chats zijn groepen die beheerd worden door een relay. Ze zijn zichtbaar voor iedereen op Nostr en iedereen kan deelnemen. Geschikt voor open communities rond een onderwerp. Sommige groepen zijn tijdelijk, waardoor berichten na verloop van tijd verdwijnen. -Publieke chat -Marmot Group -Publieke chat-metadata -Publieke chats zijn zichtbaar voor iedereen op Nostr. Iedereen kan deelnemen. Moderatie gebeurt door berichten te verwijderen op de relays. -Relays -Voeg 1–3 relays toe die deze groep hosten. Nostr-clients gebruiken deze om berichten te downloaden en te versturen. -Verwijderen @@ -433,88 +321,57 @@ -nooit -nu -u -m -d -Naaktheid -Godslastering / haatspraak -Back-up sleutels -Versleutelen van privésleutel mislukt -Privésleutel (nsec) gekopieerd naar klembord -Mijn privésleutel kopiëren -Biometrische authenticatie mislukt -Biometrie kon de eigenaar van dit toestel niet verifiëren. -Biometrie kon de eigenaar niet verifiëren. Fout: %1$s -Note-tekst gekopieerd naar klembord -Gebruikers-ID (@npub…) gekopieerd naar klembord -Note-ID (@note1…) gekopieerd naar klembord -"<Kan privébericht niet ontsleutelen>\n\nJe werd genoemd in een privégesprek tussen %1$s en %2$s." -Accounts -Navigeren -Jij -Feeds -Aanmaken -Systeem -Terug -Browserlink delen -Delen -Delen als afbeelding -Delen als afbeeldings-URL -Note-ID -Verwijderen @@ -525,9 +382,7 @@ -Discussie dempen -Discussie dempen opheffen @@ -537,7 +392,6 @@ -Blokkeer & verberg gebruiker @@ -547,21 +401,16 @@ -Alleen blokkeren -Bladwijzers -Bladwijzers succesvol gemigreerd -Concepten -Geplande berichten @@ -570,14 +419,10 @@ -Bericht inplannen -Inplannen annuleren -Geplande berichten worden mogelijk pas gepubliceerd als je de app opnieuw opent. Schakel altijd-aan in via Instellingen → Weergavevoorkeuren voor betrouwbare achtergrondplanning. -Geplande berichten worden mogelijk pas gepubliceerd als je de app opnieuw opent. Geplande berichten van andere accounts worden niet uitgevoerd terwijl dit account actief is. Schakel altijd-aan in via Instellingen → Weergavevoorkeuren voor betrouwbare achtergrondplanning. @@ -586,114 +431,61 @@ -%1$s · over %2$s -%1$s · %2$s geleden -Morgen -Uitgelogd - - Uitgelogd · %d gepland bericht verwijderd - Uitgelogd · %d geplande berichten verwijderd - -Gepland bericht gepubliceerd -Gepland bericht mislukt -Geplande berichten -Meldingen wanneer een gepland bericht is gepubliceerd of mislukt. -Nu versturen -Fout: %1$s -Ingepland -Verzenden… -Mislukt -Verzonden -Geannuleerd - - Je hebt %d gepland bericht dat nog niet is gepubliceerd. Uitloggen verwijdert dit permanent. - Je hebt %d geplande berichten die nog niet zijn gepubliceerd. Uitloggen verwijdert ze permanent. - - - %d in wachtrij - %d in wachtrij - - - · %d moet over 1u - · %d moeten over 1u - - - naar %d relay - naar %d relays - -Note-ID gekopieerd -Polls -Open -Gesloten -Badges -Communities -Nieuwe community -Community bewerken -Moderators -Relays -Verifieerbare regels (optioneel) -Toegestane event-kinds -Korte tekst (1) -Lang artikel (30023) -Afbeelding (20) -Video (21) -Short video (22) -Community-reactie (1111) @@ -702,23 +494,18 @@ -Geblokkeerde gebruikers -Web-of-trust-poort (optioneel) -Globale max. event-grootte (optioneel) -Nieuwe badge -Badge toekennen @@ -735,7 +522,6 @@ -Profielbadges @@ -751,9 +537,7 @@ -Afbeeldingen -Nieuwe workout @@ -776,25 +560,15 @@ -Hardlopen -Wandelen -Fietsen -Wandelen -Zwemmen -Roeien -Krachttraining -Meditatie -Dieet -Vasten @@ -809,35 +583,25 @@ -Shorts -Publieke chats -Volgpakketten -Livestreams -Nests -Hand opsteken -Hand laten zakken -Dempen -Dempen opheffen -Kon bericht niet versturen @@ -846,25 +610,17 @@ -Microfoon dempen -Microfoon aan -Nests -Houdt audio afspelen terwijl een ruimte open is. -Nest verbonden -Nest — Live -Tik om terug te keren. -Stoppen @@ -876,28 +632,17 @@ -heeft hand opgestoken -is het podium op gegaan -is aan het woord -is toegetreden als publiek -heeft de nest verlaten -Verlaten -Kon ruimte niet als gesloten markeren. Toch verlaten — ruimte sluit automatisch. - - %1$d luisteraar - %1$d luisteraars - @@ -917,20 +662,14 @@ -Deze spreker dempen -Deze spreker herstellen -Volgen -Ontvolgen -Dempen -Dempen opheffen @@ -958,7 +697,6 @@ -Kon je nest-serverlijst niet opslaan. Probeer het opnieuw. @@ -972,44 +710,29 @@ -Nest-servers -Jouw servers -Opgeslagen als kind-10112 vervangbaar event zodat andere clients je voorkeur kunnen lezen. -Aanbevolen servers -Ingebouwde suggesties die je met één tik aan je lijst kunt toevoegen. -Video\'s -Muziek -Afspeellijsten -Afleveringen - - %1$d aflevering - %1$d afleveringen - -Nieuw muziekstuk -Nieuwe afspeellijst @@ -1027,18 +750,12 @@ - - %1$d nummer - %1$d nummers - -Toevoegen aan publieke bladwijzers -Verwijderen uit publieke bladwijzers @@ -1047,29 +764,23 @@ -Vastmaken aan profiel -Losmaken van profiel -Nieuwe bladwijzerlijst -Bladwijzerlijst-metadata -Hashtag-sets -Nieuwe interest-set @@ -1077,7 +788,6 @@ -Hernoemen @@ -1095,13 +805,9 @@ -Privé maken: gift-wrap de notitie alleen voor de genoemde gebruikers -Publiek maken -Reacties op een privénotitie blijven altijd privé -Zichtbaar voor Nog geen ontvangers: alleen jij kunt deze notitie zien. Voeg mensen toe om te delen. @@ -1117,11 +823,8 @@ -Bladwijzerlijst-metadata is zichtbaar voor iedereen op Nostr. Alleen privéleden zijn versleuteld. -Verplaatsen naar publiek -Verplaatsen naar privé @@ -1134,13 +837,10 @@ -Aanvullen & zap versturen -Zap versturen -Vul %1$s sats aan bij %2$s en zap %3$s %4$s sats · kosten ≈ %5$s sats @@ -1156,25 +856,18 @@ -Optie %s -(0–100)% -Enkele keuze -Meerdere keuzes -Kan niet stemmen -Deze poll is gesloten voor nieuwe stemmen -Bij dit type poll is slechts één stem per gebruiker toegestaan. @@ -1183,21 +876,13 @@ -Poll-auteurs kunnen niet stemmen in hun eigen poll. -Wat betekent dit? -De afbeelding is ongewijzigd sinds publicatie -De afbeelding is gewijzigd. De auteur heeft de wijziging mogelijk niet gezien. -Media toevoegen -Afbeelding toevoegen -Video toevoegen -Document toevoegen @@ -1218,11 +903,8 @@ -Bestandsserver -Kies een server om dit bestand naar te uploaden -Mediaservers Stel je voorkeur mediaservers in. @@ -1240,20 +922,15 @@ -Betalingsdoelen -Voeg betalingsadressen toe voor verschillende netwerken (bijv. Bitcoin, Lightning, Ethereum). -Geen app gevonden om deze betaling te verwerken. Installeer een compatibele wallet. -Geen app geïnstalleerd om %1$s-betalingen te verwerken. Installeer een compatibele wallet. -Kan betaling niet openen @@ -1263,27 +940,18 @@ -Privacyopties -Iedereen -Volg alle gebruikers -Standaard volglijst -In de buurt -Globaal -Gecureerd -Van mij -Gedempte lijst @@ -1298,9 +966,7 @@ -Nieuwe volglijst -Nieuw volgpakket @@ -1314,208 +980,79 @@ -Lijst bewerken -Standaardpoort is 9050 -Orbot Socks-poort -Interne Tor-engine gebruiken -Gebruik de ingebouwde versie van Orbot -Tor/Privacy-voorinstellingen -Snel alle onderstaande instellingen aanpassen -Onion-URL\'s / relays -Gebruik Tor voor elke .onion-URL -DM-relays -Forceer Tor voor verzenden en ontvangen van privéberichten -Onvertrouwde relays -Forceer Tor voor outbox/inbox-relays -Vertrouwde relays -Forceer Tor voor alle relays in je lijsten -Profielfoto\'s -Forceer Tor bij laden profielfoto\'s -URL-voorbeelden -Forceer Tor bij laden van URL-voorbeelden -Afbeeldingen -Forceer Tor bij laden van afbeeldingen -Video\'s -Forceer Tor bij laden van video\'s -Geldtransacties -Forceer Tor voor zaps, lightning en cashu -Nostr-adresverificatie -Forceer Tor bij NIP-05 verificatie -Media-uploads -Forceer Tor bij uploaden van media -Intern -Orbot -Uit -Basis -Standaard -Alles behalve media -Volledige privacy -Aangepast -Gebruik Tor alleen wanneer vereist door de server -Verberg je IP voor willekeurige relays -Verberg je IP voor alles behalve afbeeldingen en video\'s -Verberg je IP bij alle verbindingen -Maak je eigen configuratie -Privéberichten -Melding bij nieuw privébericht -Ontvangen zaps -Melding wanneer iemand je zapt -%1$s sats -Van %1$s -voor %1$s -Beantwoorden -Markeer als gelezen -Nieuwe berichten -Nieuwe zaps -Reacties -Melding wanneer iemand reageert op je bericht -%1$s reageerde op je bericht -voor %1$s -Nieuwe reacties -Schaken -Meldingen over schaakgebeurtenissen -%1$s heeft je schaakuitdaging geaccepteerd -%1$s heeft een zet gedaan – jouw beurt -Schaakupdates -Reacties -Melding wanneer iemand op je bericht reageert %1$s reageerde op: %1$s -Nieuwe reacties - -Vermeldingen - -Melding wanneer iemand je vermeldt of citeert in een bericht - -%1$s heeft je vermeld - -Nieuwe vermeldingen - - -Inkomende oproepen - -Meldingen voor inkomende spraak- en video-oproepen - -Inkomende oproep - -Inkomende spraakoproep… - -Inkomende video-oproep… - - - - -Bellen met %1$s - -Lopende oproep - -Lopende oproep - -Ophangen - -Accepteren - -Weigeren - - -Dempen - -Dempen opheffen - -Camera aan - -Camera uit - - -Speaker - -Oortelefoon - -Bluetooth - - - - - - -Amethyst heeft toegang tot de microfoon nodig om een spraakoproep te starten. Schakel dit in bij de app-instellingen. - -Amethyst heeft toegang tot camera en microfoon nodig om een video-oproep te starten. Schakel dit in bij de app-instellingen. - - - -Gespreksinstellingen @@ -1531,49 +1068,71 @@ -Houdt verbindingen met je inbox-relays actief voor realtime meldingen -Amethyst-meldingen actief -Verbinden met inbox-relays… + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Altijd-aan meldingsdienst Houdt een persistente verbinding met je inbox-relays voor directe melding. Toont een permanente notificatie. Gebruikt meer batterij maar zorgt dat je nooit een bericht mist. -Meldingen splitsen per gevolgden -Toon twee meldings-tabbladen — Volgend (mensen die je volgt) en Iedereen. De ongelezen-indicator licht alleen op voor activiteit van mensen die je volgt. -Melden: -Vandaag -Verbergen -Tonen -Waarschuwen -Spamfilter -Verbergt identieke berichten van onbekenden die 5 keer of vaker voorkomen -Client-tag toevoegen aan mijn events -Wanneer ingeschakeld voegt Amethyst een NIP-89 client-tag toe aan events die je publiceert. -Waarschuwen bij rapportages -Toont waarschuwing wanneer een bericht 5 of meer rapportages van je volgers heeft @@ -1581,35 +1140,23 @@ -Berichten verbergen die community-regels schenden -Verwijdert berichten uit community-feeds wanneer de community een NIP-9B regelsdocument publiceert en een event daartegen zou falen. Heeft geen effect wanneer een community geen gestructureerde regels heeft. -Filtervoorkeuren -Geblokkeerde inhoud -Je hebt nog geen gebruikers geblokkeerd. -Geen accounts zijn in deze sessie als spam gemarkeerd. -Geen verborgen woorden. Voeg hieronder een woord toe om berichten met dat woord te verbergen. -Geen reactietypes ingesteld. Houd ingedrukt om te wijzigen. -Lezen van relay -Schrijven naar relay -Aantal bytes verstuurd naar deze relay (filters + events) -Aantal bytes ontvangen van deze relay (filters + events) @@ -1634,7 +1181,6 @@ -Privacybeleid @@ -1679,12 +1225,10 @@ -Cashu-token -Geen Lightning-adres ingesteld @@ -1700,116 +1244,24 @@ -Relays -Volgpakketten -Gelezen -Feed-algoritmes -Marktplaats -Livestreams -Communities -Chats -Gevoelige inhoud -Voegt een waarschuwing toe voordat de inhoud wordt getoond -Weergavevoorkeuren App-voorkeuren -Vertalingen - -Reacties - -Instellingen - -Accountinstellingen - -App-instellingen - - - -Gevarenzone - -Marmot-status resetten - - - - -Marmot-status gereset. - -Marmot-status resetten mislukt: %1$s - -Altijd - -Alleen onbeperkt wifi - -Nooit - -Volledig - -Vereenvoudigd - -Prestaties - -Klassiek - -Modern - -Systeem - -Licht - -Donker - - -Wallet Connect - - -Thema - -Afbeeldingen laden - -Video\'s automatisch afspelen - -Video\'s automatisch afspelen - -URL-voorbeeld - -Volledig scrollen - -Navigatiebalken verbergen tijdens scrollen - -Weergavestijl - -Kies de stijl van berichten - -Galerijstijl - -Kies de stijl van de profielgalerij - -Spammers - -Gedempt. Tik voor geluid - -Geluid aan. Tik voor dempen - - -%d seconden terug - -%d seconden vooruit @@ -1820,9 +1272,51 @@ -Alleen locatie-exclusief bericht -Alleen volgers van de locatie zien dit bericht. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1840,46 +1334,32 @@ Privé -Onderwerp -Kan niet uploaden -Voeg eerst een bestemming toe -Geen wallet gevonden -Amethyst kon geen wallet-apps vinden die Nostr Wallet Connect (NWC) ondersteunen.\n\nWat je kunt doen:\n1. Controleer of je wallet NWC ondersteunt.\n2. Maak in je wallet een nieuwe NWC-verbinding aan.\n3. Kopieer de verbinding-URI of scan de QR-code hier. -Donker, licht of systeemthema -Afbeeldingen en GIFs automatisch laden -Video\'s en GIFs automatisch afspelen -Video\'s automatisch afspelen wanneer zichtbaar op het scherm -URL-voorbeelden automatisch tonen -Kopiëren naar klembord -Delen of opslaan -Media toegevoegd -Media toegevoegd aan je profielgalerij @@ -1887,7 +1367,6 @@ -Kan zap niet versturen @@ -1896,78 +1375,46 @@ -Ontbrekende Lightning-configuratie -Gebruiker %1$s heeft geen Lightning-adres ingesteld om sats te ontvangen -Fout bij openen signer-app -De signer-app kon niet worden gevonden. Controleer of deze nog geïnstalleerd is. -Ondertekenverzoek afgewezen -Zorg dat de signer-app dit verzoek heeft goedgekeurd. -Geen wallet gevonden om Lightning-invoice te betalen (fout: %1$s). Installeer een Lightning-wallet om zaps te kunnen gebruiken. -Geen wallet gevonden om Lightning-invoice te betalen. Installeer een Lightning-wallet om zaps te kunnen gebruiken. -Kan Blossom-link niet openen -Geen Blossom-app gevonden. Installeer een lokale Blossom-app om dit bestand te bekijken. -Verborgen woorden -Gedempte discussies -Geen gedempte discussies -Profielfoto -Profielfoto\'s tonen -Invoice kon niet betaald worden -Opname mislukt -Cashu-inwisselen mislukt -Mint geeft de volgende foutmelding: %1$s -Cashu ontvangen -%1$s sats zijn naar je wallet gestuurd (kosten: %2$s sats). -Geen compatibele Cashu-wallet gevonden -Kon invoice niet ophalen van de server van de ontvanger -Je wallet-connect provider gaf de volgende fout: %1$s -Kon LNURL niet samenstellen vanuit Lightning-adres \"%1$s\". Controleer de instellingen van de gebruiker. -Kon invoice niet ophalen van %1$s: %2$s -Fout bij verwerken JSON van %1$s. Controleer de Lightning-instellingen van de gebruiker. -Callback-URL niet gevonden in het antwoord van %1$s. -Onjuist invoice-bedrag (%1$s sats) van %2$s. Het had %3$s moeten zijn. -Kon geen Lightning-invoice aanmaken voor het versturen van de zap. De wallet van de ontvanger gaf de volgende fout: %1$s -Alleen-lezen gebruiker -Geen reacties ingesteld @@ -1977,11 +1424,9 @@ -Bericht van %1$s -Hallo %1$s, is dit nog beschikbaar? @@ -1999,63 +1444,34 @@ -Kleding -Accessoires -Elektronica -Meubels -Verzamelobjecten -Boeken -Huisdieren -Sport -Fitness -Kunst -Ambachten -Huis & tuin -Kantoor -Eten -Overig -Anders -Uploaden van media mislukt -Kon gecomprimeerd bestand niet openen -Uploadfout: %1$s -Server gaf geen URL terug na upload -Kon geüploade media niet downloaden van server -Kon gedownload bestand niet controleren na upload: %1$s -Uploaden naar %1$s mislukt: %2$s -Media verwijderen mislukt: %1$s -Media is te groot voor NIP-95 -Bestanden versleutelen -Versleutel bestanden voordat ze worden geüpload. Sommige servers accepteren geen versleutelde bestanden op gratis accounts. -Versleutelde upload mislukt -Veel servers accepteren geen versleutelde bestanden op gratis accounts. Probeer opnieuw zonder versleuteling. @@ -2065,40 +1481,25 @@ -H.265/HEVC-codec gebruiken -Betere kwaliteit in kleinere bestanden, maar niet alle apparaten ondersteunen H.265 afspelen. -GIF converteren naar MP4 -Converteert geanimeerde GIF naar MP4-video voor kleinere bestandsgrootte en betere afspeelcompatibiliteit. -Privé-metadata verwijderen -Probeert privé-metadata te verwijderen uit ondersteunde mediabestanden vóór het uploaden -Metadata verwijderen mislukt -Verwijderen van privé-metadata mislukt. Upload geannuleerd. -Upload geannuleerd -Start -Ontdekken -Berichten -Meldingen -Schaken -Wallet @@ -2157,35 +1558,15 @@ -Langzaam -Normaal -Snel -~1 uur - - Verstuur %1$s sats, %2$d-weg - Verstuur %1$s sats, %2$d-wegen - - - Gebruik de %1$d-weg zap-split van dit bericht - Gebruik de %1$d-weg zap-split van dit bericht - - - Splits onder %1$d ontvanger - Splits onder %1$d ontvangers - - - %1$d Lightning-adres-alleen-ontvanger overgeslagen — on-chain heeft een Nostr-pubkey nodig om het adres af te leiden. - %1$d Lightning-adres-alleen-ontvangers overgeslagen — on-chain heeft een Nostr-pubkey nodig om het adres af te leiden. - @@ -2196,60 +1577,35 @@ -saldo laden -transactie bouwen -ondertekenen -uitzenden -ontvangstbewijs publiceren -Bitcoin chain-backend is niet geconfigureerd -Kon je Bitcoin-saldo niet laden -Kon de transactie niet bouwen -Een aandeel van een ontvanger is onder dust -Kon de transactie niet ondertekenen -Kon de transactie niet uitzenden -Betaling verstuurd, maar het zap-ontvangstbewijs kon niet worden gepubliceerd - - Betaling verstuurd (%1$d van %2$d ontvangstbewijs gepubliceerd), maar het volgende ontvangstbewijs kon niet worden gepubliceerd - Betaling verstuurd (%1$d van %2$d ontvangstbewijzen gepubliceerd), maar het volgende ontvangstbewijs kon niet worden gepubliceerd - -Volgers importeren -Nieuw product -Nieuw artikel -Nieuw agenda-evenement -Agenda-evenement bewerken -Nieuwe agenda -Agenda bewerken -Maand -Dag @@ -2283,10 +1639,6 @@ - - %1$s, %2$d evenement - %1$s, %2$d evenementen - @@ -2312,23 +1664,13 @@ -Nu aan de gang -%1$s · eindigt %2$s -Agenda-evenement delen -Agenda-herinneringen -Melding wanneer een evenement waar je naartoe gaat bijna begint. -Agenda-evenement - - Begint over %1$d minuut - Begint over %1$d minuten - @@ -2337,18 +1679,13 @@ -Afbeelding uploaden mislukt -De gekozen afbeelding kon niet worden geüpload. Probeer opnieuw of plak een URL. -Agenda-herinneringen -Herinneringen versturen -Een melding verschijnt wanneer een evenement waar je naartoe gaat bijna begint. @@ -2357,9 +1694,7 @@ -Openen in kaarten -Link openen @@ -2375,19 +1710,15 @@ -Alle reacties op dit bericht openen -Alle reacties sluiten -Zap -Onderste navigatiebalk Sleep om te herordenen. Schakel in/uit om items toe te voegen of te verwijderen. Met nul items wordt de balk verborgen. @@ -2398,21 +1729,14 @@ Kies welke tabbladen op het startscherm verschijnen. Wanneer slechts één tab actief is, wordt de tabbalk verborgen. -Alles -Profiel-weergave Kies welke secties en feeds op gebruikersprofielschermen verschijnen. Standaard zijn alle opties ingeschakeld. -Profielbadges -App-aanbevelingen -Ontvangen zaps-feed -Volgers-feed -Reactierij @@ -2430,7 +1754,6 @@ -Videospeler-knoppen @@ -2450,7 +1773,6 @@ -Audio-visualisatie @@ -2476,7 +1798,6 @@ -Vervaldatum @@ -2484,11 +1805,8 @@ -Ongeldig adres -Amethyst ontving een ongeldige URI: %1$s -DM-inbox relays @@ -2496,103 +1814,63 @@ -Zoek-relays -Goede opties zijn:\n%1$s -Outbox-relays -Inbox-relays -Relay-instellingen -Openbare thuis-relays -Gebruiker plaatst hier zijn berichten -Deze relays slaan al je berichten op. Amethyst stuurt je berichten hiernaartoe en anderen gebruiken ze om je te vinden. Voeg 1 tot 3 relays toe. -Openbare inbox-relays -Gebruiker ontvangt meldingen via deze relays -Deze relays ontvangen reacties, likes en zaps op je berichten. Voeg 1 tot 3 relays toe. -DM-inbox relays -Gebruiker ontvangt DM\'s via deze relays -Voeg 1 tot 3 relays toe als je privé-inbox. Anderen gebruiken deze om DM\'s naar je te sturen. -KeyPackages -KeyPackage-relays -Relays waar je MLS KeyPackages worden gepubliceerd (MIP-00). Andere gebruikers halen deze KeyPackages op om je uit te nodigen voor Marmot-groepchats. Voeg 1–3 relays toe die KeyPackage-events van jou accepteren en openbare leestoegang toestaan. -Privé-relays -Relays voor privé-gegevens zoals concepten en app-instellingen. Idealiter lokaal of met authenticatie. -Verbonden relays -Huidig verbonden relays -Zoek-relays -Relays die gebruikt worden voor zoeken en taggen. Moeten NIP-50 ondersteunen. -Lokale relays -Relays die op dit apparaat draaien. -Profielen doorsturen naar lokale relay -Stuur alle ontvangen profielgebeurtenissen (kind 0) door naar je lokale relay -Vertrouwde relays -Relays waarvoor je geen Tor wilt gebruiken -Favoriete relay-feeds -Relays die je regelmatig bezoekt om hun globale feed te bekijken -Proxy-relays -Aggregator-relays zoals filter.nostr.wine. Dit vervangt het outbox-model en zorgt dat Amethyst alleen met relays uit je lijsten verbindt. -Uitzend-relays -Relays die gespecialiseerd zijn in het doorsturen van je notities naar andere relays, zoals sendit.nosflare.com. Amethyst voegt deze automatisch toe aan nieuwe berichten. -Indexeer-relays -Relays die metadata en relay-lijsten hosten, zoals purplepag.es. Amethyst gebruikt deze om gebruikers te vinden die niet in je lijsten staan. -Geblokkeerde relays -Amethyst zal nooit verbinding maken met deze relays. -Relay-instellingen exporteren @@ -2629,12 +1907,6 @@ -Bewijs van tijdstempel - -Er is cryptografisch bewijs dat dit bericht vóór %1$s is ondertekend. Dit bewijs is vastgelegd in de Bitcoin-blockchain. - - -Bericht bewerken @@ -2645,15 +1917,6 @@ -Het is niet mogelijk om op een concept te reageren - -Het is niet mogelijk om een concept te citeren - -Het is niet mogelijk om op een concept te reageren - -Het is niet mogelijk om een concept te zappen - -Conceptnotitie @@ -2661,107 +1924,69 @@ -Ongeldig verzoek -Niet geautoriseerd -Betaling vereist -Verboden -Niet gevonden -Methode niet toegestaan -Niet acceptabel -Proxy-authenticatie vereist -Verzoek time-out -Conflict -Verdwenen -Lengte vereist -Voorwaarde mislukt -Payload te groot -URI te lang -Niet-ondersteund mediaformaat -Bereik niet voldaan -Verwachting mislukt -Upgrade vereist -Interne serverfout -Niet geïmplementeerd -Slechte gateway -Dienst niet beschikbaar -Gateway time-out -HTTP-versie niet ondersteund -Variant verhandelt ook -Onvoldoende opslagruimte -Loop gedetecteerd -Netwerk-authenticatie vereist + + + + + + + Blossom servers Voeg zoveel servers toe als je wilt. Je kunt later kiezen welke gebruikt wordt bij uploaden. -NIP-96-server toevoegen -Blossom-server toevoegen Downloaden -Kon bestand niet openen -Geen torrent-apps geïnstalleerd om dit bestand te openen en te downloaden. -Bericht bevat onvoldoende informatie om een magnet-link te maken. -Mijn lijsten -Feeds -Hashtags -Interest-sets -Locaties -Communities -Lijsten -Feed-algoritmes -Alle favoriete feed-algoritmes -Relays -Favoriete feed-algoritmes @@ -2777,18 +2002,13 @@ -Privébericht -Openbaar bericht -Kan afbeelding niet delen. Probeer het later opnieuw. -Kan video niet delen. Probeer het later opnieuw. -Video downloaden voor delen… @@ -2806,17 +2026,11 @@ -Niet vertalen van -Talen die hier staan worden niet vertaald. Tik op een taal om deze te verwijderen en weer te laten vertalen. -Vertaal naar -Kies de taal waarnaar de inhoud vertaald moet worden. -Taalweergavevoorkeuren -Kies voor elk taalpaar welke taal je als eerste wilt zien. @@ -2827,9 +2041,7 @@ -Pauzeren -Afspelen @@ -2838,7 +2050,6 @@ -Dit bericht verdwijnt over %1$s @@ -2850,15 +2061,10 @@ -Volglijst-metadata -Volglijst-metadata is zichtbaar voor iedereen op Nostr. Alleen privéleden zijn versleuteld. -Volgpakket-metadata -Volgpakketten zijn vaak gepubliceerde startlijsten voor nieuwe gebruikers en zichtbaar voor iedereen op Nostr. -Volglijst bewerken @@ -2874,12 +2080,10 @@ -Uitklappen -Opnieuw proberen @@ -2890,11 +2094,8 @@ -Reactie -Spraakbericht -Spraakreactie @@ -2917,283 +2118,144 @@ -Outbox-relays -Apps -App-aanbevelingen -Gebruikersinstellingen -Audio-header -Audiospoor -Muziekstuk -Afspeellijst -Podcast-aflevering -Podcast-show -Gemaakt podcasts -Favoriete podcasts -Badge-awards -Badge-definities -Geaccepteerde badge-set -Profielbadges -Geblokkeerde relays -Blossom-servers -Nests-servers -Blossom-auth -Uitzend-relays -Bladwijzerlijst -Oude bladwijzerlijst -Dagafspraak -Kalender -Afspraak -Afspraak-RSVP -Schaakspellen -Schaak-auth -Favoriete relays -Schaakuitdagingen -Schaakspel accepteren -Schaakzet -Einde schaakspel -Schaak-remiseaanbod -Kanaaldefinitie -Kanaalbericht verbergen -Kanaallijst -Kanaalbericht -Kanaal-metadata -Gebruiker dempen in kanaal -DM-bestand -DM-bericht -DM-relays -Verkoopadvertenties -Reacties -Community-definitie -Community-lijst -Community-bericht -Volglijst -Verwijderingen -Concepten -Emoji-pakketten -Emoji-pakketlijst -Tijdelijke chat -Tijdelijke chatrooms -Bestandsheaders -Profielgalerij -Bestandsservers -Blob-gegevens -Blob-headers -Medische gegevens -Volgpakketten -Reposts (16) -Geohash-volgers -GiftWraps -Git-issue -Git-patch -Git-repo -Git-reactie -Zap-doelen -Hashtag-volgers -Highlights -HTTP-auth -Index-relaylijst -Avontuur-proloog -Avontuur-scène -Avontuur-lezing -Genamde bladwijzers -Live chats -Livestreams -Zaps -NWC-verzoek -NWC-antwoord -Privé-zaps -Zap-verzoek -Blogs -Vergaderruimte -Kamer-aanwezigheid -Vergaderruimte -Profiel -Gedempte lijst -NNS -NIP -Nostr Connect -DVM-status -DVM-inhoudsverzoek -DVM-inhoudsantwoord -DVM-gebruikersverzoek -DVM-gebruikersantwoord -OTS -PayTo -Gebruikerslijsten -Afbeeldingen -Pins -Zap-poll -Poll -Poll-antwoord -NIP-04 DM\'s -Privé-relays -Proxy-relays -Openbaar bericht -Reacties -Contactkaart -Relay-auth -Relay-ontdekking -Relay-monitor aankondiging -Relay-set -Rapportages -Reposts -Gebruikersverwijdering -Seals -Zoek-relays -Gebruikersstatus -Notities -Bewerkingen -Torrents -Torrent-reacties -Vertrouwde relays -Vertrouwde providers -Video (Repl) -Shorts (Repl) -Video -Shorts -Spraakbericht -Spraakreactie -WakeUp -Web-bladwijzer -Wiki @@ -3210,9 +2272,7 @@ -%1$d%% uptime -Namecoin-instellingen @@ -3223,13 +2283,11 @@ -%d ms -Relay-synchronisatie @@ -3257,69 +2315,26 @@ -Bitcoin Explorer (OTS) -berichten van jou -berichten aan jou -doorzoekbare berichten -DM\'s -profielen -outbox-lijsten -Laatst gezien %1$s geleden -Laatst gezien op %1$s (%2$s geleden) -Laatst gezien zojuist -Nooit gezien - - %1$d minuut - %1$d minuten - - - %1$d uur - %1$d uur - - - %1$d dag - %1$d dagen - - - %1$d week - %1$d weken - - - %1$d maand - %1$d maanden - - - %1$d jaar - %1$d jaar - - - %1$d openstaande invoice - %1$d openstaande invoices - - - Fondsen bewaard bij %1$d mint die je niet gebruikt - Fondsen bewaard bij %1$d mints die je niet gebruikt - @@ -3333,7 +2348,6 @@ -%1$s sat verplaatst naar %2$s. @@ -3348,14 +2362,11 @@ -Casten naar apparaat -Casten stoppen -HLS-upload @@ -3376,7 +2387,6 @@ -Uploaden %1$s (%2$d van %3$d) @@ -3394,7 +2404,6 @@ -Attestatie @@ -3402,12 +2411,9 @@ -Attestatieverzoek -Attestor-aanbeveling -Attestor-vaardigheid @@ -3415,11 +2421,8 @@ -Web-bladwijzers -Web-bladwijzer toevoegen -Web-bladwijzer bewerken @@ -3435,7 +2438,6 @@ -%1$s gefinancierd van %2$s sats doel @@ -3453,9 +2455,7 @@ -Nieuw doel -Verzoek tot verdwijnen @@ -3469,7 +2469,6 @@ -Verzoek tot verdwijnen verstuurd @@ -3483,7 +2482,6 @@ -Verdwijn-geschiedenis @@ -3491,15 +2489,10 @@ -Gebruikers -Berichten -Kinds -IP-adressen -Instellingen @@ -3551,23 +2544,14 @@ -Tekstverbeteringen voorstellen -Gebruikt een on-device AI-model om tekstcorrecties en toonwijzigingen voor te stellen. -Getrackte uitzendingen -Gebruik de tracked broadcaster bij het verzenden van events. Toont live voortgang en per-relay-status tijdens uitzenden. -Workouts voorstellen om te delen -Leest voltooide workouts uit Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) en stelt voor om ze als bericht te delen. Toestemming wordt alleen gevraagd wanneer je verbindt. -Opstel-instellingen -Automatisch concepten aanmaken -Slaat automatisch een concept op wanneer je typt of de opsteller verlaat met onverzonden tekst en stuurt dit naar je privé outbox-relays. @@ -3585,9 +2569,7 @@ -Nieuw emoji-pakket -Emoji-pakket bewerken @@ -3611,47 +2593,31 @@ -Mijn emoji-pakketten -Emoji\'s -Openbare emoji\'s zijn zichtbaar voor iedereen en verschijnen in je reactiemenu en \":\" autocomplete-picker wanneer dit pakket in je emoji-lijst staat. -Privé-emoji\'s worden versleuteld opgeslagen op relays en zijn alleen zichtbaar voor jou. Ze verschijnen in je reactiemenu en \":\" autocomplete net als openbare emoji\'s. -Concept is %1$d bytes; deze community beperkt dit kind tot %2$d bytes. -Concept is %1$d bytes; deze community beperkt events tot %2$d bytes. -Je hebt vandaag al %1$d events van dit kind geplaatst (limiet %2$d). -Nowhere-site -Nowhere-evenement -Nowhere-donatieactie -Nowhere-winkel -Nowhere-petitie -Nowhere-bericht -Nowhere-drop -Nowhere-kunst -Nowhere-forum De Lightning-service van de ontvanger op %1$s is niet beschikbaar. Dit werd berekend vanuit Lightning-adres \"%2$s\". Fout: %3$s. Controleer of de server online is en het adres correct is. @@ -3664,19 +2630,6 @@ Kon geen Lightning-invoice aanmaken van %1$s: element \"pr\" niet gevonden in JSON. - - +%1$d\nreactie - +%1$d\nreacties - - - - - - - - - -Geen camera-app gevonden op dit apparaat @@ -3688,74 +2641,60 @@ -Trainingen -Yoga -Circuit -EMOM -AMRAP -Apps + + + + + + + + Apps -nApplets - -nSites - - -Browser -Laden via Tor. Tik om het open web te gebruiken. - -Laden via het open web. Tik om Tor te gebruiken. -Favorieten - - - -Favoriete apps - - -Toevoegen aan favorieten - -Verwijderen uit favorieten -Wordt geladen via Tor. - -Wordt geladen via het open web. -Gepubliceerd naar relays -Een bestand geüpload -Een betaling gedaan -Die app is nog niet geladen. Probeer het over een moment opnieuw. -Recent + + + + + + + + + + + nApplet-machtigingen @@ -3772,51 +2711,30 @@ -nApplet %1$s… Shell -Identiteit -Toetsenbordacties -Relays -Opslag -Betalingen -Netwerk -Uploads Vragen welke mogelijkheden beschikbaar zijn -Uw publieke sleutel lezen -Sneltoetsen instellen -Uw events lezen, ondertekenen & publiceren -Eigen privéopslag -Lightning-facturen betalen -Web- en Blossom-bronnen ophalen -Bestanden uploaden naar uw mediaserver -Thema -Meldingen -Berichten -De kleuren van uw app overnemen -U meldingen tonen -Berichten uitwisselen met andere napplets Mogelijkheid: %1$s @@ -3824,142 +2742,85 @@ -Deze nApplet wil uw publieke sleutel lezen. -Deze nApplet wil uw profiel- en accountgegevens lezen. -Deze nApplet wil als u een kind:%1$d event ondertekenen en publiceren. -Deze nApplet wil als u een kind:%1$d event ondertekenen en publiceren: -Deze nApplet wil als u een versleuteld event verzenden. -Deze nApplet wil events van uw relays lezen. -Deze nApplet wil gebruikmaken van zijn privéopslag. Deze nApplet wil een Lightning-factuur betalen. -Deze nApplet wil een webbron ophalen. - -Deze nApplet wil een bestand uploaden naar uw mediaserver. - -Deze nApplet wil u meldingen tonen. - -Deze site wil een kind:%1$d event ondertekenen met uw Nostr-sleutel. - - - Deze nApplet wil een Lightning-factuur van %1$d sat betalen. - Deze nApplet wil een Lightning-factuur van %1$d sats betalen. - - - - -Podcasts - - - - - Verbonden met %1$d inbox-relay - Verbonden met %1$d inbox-relays - - - - Verbonden met %1$d relay - Verbonden met %1$d relays - - -Berichten tonen - -Directe berichten en groepsberichten opnemen in het tabblad Meldingen. Uitschakelen om berichten alleen in het tabblad Berichten te houden. - -Normen voor kinderveiligheid - -Over & Juridisch - - - - - - %1$d nummer - %1$d nummers - - - - +%1$d meer nummer - +%1$d meer nummers - -Een omslagafbeelding uploaden - -Kies een vierkante afbeelding als artwork voor dit nummer. - -Een audiobestand uploaden - -Kies een MP3, WAV of FLAC. Het wordt bij Opslaan geüpload naar uw mediaserver. - - -Omslag + audio uploaden en publiceren. Dit gaat door, ook als u het scherm verlaat. - -Afspeellijst bewerken -Een omslagafbeelding uploaden - -Kies een vierkante afbeelding als artwork voor deze afspeellijst. -Omslag uploaden en publiceren. Dit gaat door, ook als u het scherm verlaat. -Gekopieerd naar klembord + + + + + + + + + + + + + + + + + + + + + + + + + + + Verzenden als DM -Dit video kan niet worden afgespeeld - -De codec of het formaat wordt niet ondersteund op dit apparaat (%1$s). Probeer het in uw browser te openen. - -Openen in browser - -Meldingen - -Bezorging - -In-app weergave - -Categorieën -Kan metadata niet verwijderen uit AVIF: %1$s - -Agenda\'s - -Agendaoverzichten -Cashu-portemonnee (NIP-60) + + + + + + + + @@ -3981,25 +2842,14 @@ P2PK privésleutel (hex) -Mints bewerken Wijzigingen opslaan - - +%1$d meer - +%1$d meer - - - - Aanbevolen door %1$d andere - Aanbevolen door %1$d anderen - - -Populaire mints - -Overeenkomende mints + + + @@ -4013,9 +2863,7 @@ -Ontvangen -Verzonden @@ -4025,14 +2873,12 @@ -Publiceer een verwijderverzoek voor je kind:38000-aanbeveling van %1$s. Relays die NIP-09 respecteren zullen deze verwijderen. -%1$s sats hersteld over %2$s proofs. @@ -4056,28 +2902,21 @@ -%1$s sat betalen + tot %2$s sat aan kosten? -Nutzap mislukt -Geen ontvanger-pubkey op de notitie -Nutzaps zijn openbaar en zouden deze privénotitie onthullen. Gebruik in plaats daarvan een Lightning-zap. -Kan eventverwijzing niet aanmaken -Wachten tot de factuur betaald is… -Mint controleren… @@ -4089,25 +2928,15 @@ -~30 min -~10 min -%1$s · %2$s sat/vB · %3$s -Feed -Week -calendar_reminders - - %1$d min - %1$d min - @@ -4117,12 +2946,7 @@ -Workouts - - %1$d mint - %1$d mints - @@ -4158,25 +2982,14 @@ - - %1$d bericht - %1$d berichten - - - %1$d lid - %1$d leden - -Groepsinfo bijgewerkt -Bijwerken mislukt: %1$s -Aanmaken van groep mislukt: %1$s @@ -4187,13 +3000,9 @@ -Verlaten van groep mislukt: %1$s -%1$s toevoegen… -%1$s toevoegen mislukt: %2$s -onbekende fout @@ -4202,9 +3011,7 @@ -Lid verwijderd -Verwijderen van lid mislukt: %1$s @@ -4212,22 +3019,17 @@ -Beheerdersbevoegdheden verleend -Verlenen van beheerder mislukt: %1$s -Beheerdersbevoegdheden ingetrokken -Intrekken van beheerder mislukt: %1$s -Geen lid van deze groep diff --git a/amethyst/src/main/res/values-nl-rNL/strings.xml b/amethyst/src/main/res/values-nl-rNL/strings.xml index f3c36ae52f..a06114b833 100644 --- a/amethyst/src/main/res/values-nl-rNL/strings.xml +++ b/amethyst/src/main/res/values-nl-rNL/strings.xml @@ -1,156 +1,13 @@ - - Dit bericht bevat meer dan %1$d hashtag - Dit bericht bevat meer dan %1$d hashtags - - - %1$d asset gebundeld - %1$d assets gebundeld - - - +%1$d\nreactie - +%1$d\nreacties - - - Gemeld door %1$d persoon die je volgt - Gemeld door %1$d personen die je volgt - - Spam - Aantal spamberichten afkomstig van deze relay - Impersonatie - Illegaal gedrag - Verwijdering aanvragen - Je gebruikt een alleen-lezen account. Log in met een privésleutel om te kunnen reageren. - Je gebruikt een alleen-lezen account. Log in met een privésleutel om berichten te boosten. - Je gebruikt een alleen-lezen account. Log in met een privésleutel om berichten te liken. - Geen zap-bedrag ingesteld. Houd ingedrukt om te wijzigen. - Je gebruikt een alleen-lezen account. Log in met een privésleutel om zaps te versturen. - Je gebruikt een alleen-lezen account. Log in met een privésleutel om te volgen. - Je gebruikt een alleen-lezen account. Log in met een privésleutel om te ontvolgen. - Je gebruikt een alleen-lezen account. Log in met een privésleutel om woorden of zinnen te verbergen. - Je gebruikt een alleen-lezen account. Log in met een privésleutel om woorden of zinnen te tonen. - Je gebruikt een alleen-lezen account. Log in met een privésleutel om te uploaden. - Je gebruikt een alleen-lezen account. Log in met een privésleutel om berichten te ondertekenen. - Ongeautoriseerde decodering - De signer heeft decodering niet toegestaan. Schakel NIP-44-decodering in in je signer-app en probeer het opnieuw. - Signer niet gevonden - Is de signer-app verwijderd? Controleer of de signer geïnstalleerd is en dit account ondersteunt. Log opnieuw in. - Externe signer heeft een onjuiste payload geretourneerd voor dit verzoek. Er kan een bug zitten in Amethyst of in de signer. - Zaps - Boost geboost bewerkt #%1$s - Bewerking voorstellen - Toevoegen - Fout bij verwerken foutmelding - Profiel - Beveiligingsfilters - Minder tonen - Invoice aanvragen… - De debit-service heeft de betaling niet voltooid. - Betaal %1$s via %2$s? - Betaal deze invoice via %1$s? - Voer een geldig bedrag in voor dit aanbod. - Eenmalig - Dagelijks - Wekelijks - Maandelijks - Betalen - Betalen via %1$s… - Betaling mislukt - Besteedbaar voor deze ontvanger: %1$s sats - Transactie: %1$s - "Preview-afbeelding voor %1$s" - Omschrijving - Waar denk je aan? - Schrijf een bericht… - Plaatsen Opslaan - Verzenden - Aanmaken Hernoemen - Annuleren - Fout - Fouten - Percentage succesvolle verbindingen met deze relay - Opslaan op telefoon - Afbeelding opgeslagen in de galerij - Videodownload gestart… - Mediadownload gestart… - Vastzetten bovenaan - Losmaken - Afbeelding opslaan mislukt - Video opgeslagen in de galerij - Video opslaan mislukt - PDF opgeslagen in Downloads/Amethyst - PDF opslaan mislukt - Geen camera-app gevonden op dit apparaat - Druk en houd vast om een spraakbericht op te nemen - Uploadfout - Spraakbericht uploaden mislukt - NIP-95 wordt nog niet ondersteund voor spraakberichten - Spraakbericht uploaden mislukt: %1$s - Geen - Diep - Hoog - Neutraal - Deze gebruiker heeft geen Lightning-adres ingesteld om sats te ontvangen - "hier reageren…" - Bekend - Nieuwe verzoeken - Geblokkeerde gebruikers - Nieuwe discussies - Discussies - Meer opties - Toon QR-code van privésleutel - Toon versleutelde QR-code van privésleutel - Volgen - Terugvolgen - Wachtwoord verbergen - Ongeldige sleutel - Ongeldige sleutel: %1$s - Wachtwoord is verplicht - Sleutel is verplicht - Naam is verplicht - Kon deze uitnodiging niet ophalen. De link is mogelijk verlopen of de relays zijn onbereikbaar. - Deze uitnodigingslink is ongeldig of kan niet met dit account worden geopend. - Deze uitnodigingslink kan niet worden geopend. Hij is mogelijk verouderd of al vervangen door een nieuwere, of gemaakt met een nieuwere versie van de app. Vraag om een nieuwe uitnodigingslink. - Deze uitnodigingslink is ingetrokken en kan niet meer worden gebruikt. Vraag om een nieuwe. - Deze community heeft je verwijderd. De link werkt nog, maar de ledenlijst laat je niet toe. - Uitnodigingslinks - Uitnodigingslinks… - Uitnodigingslink ingetrokken. - De link kon niet ingetrokken worden. Controleer je verbinding en probeer het opnieuw. - Deze uitnodigingslink is verlopen en kan niet meer worden gebruikt. Vraag om een nieuwe link. - Concord-kanalen - Nog geen kanalen. - Afbeelding verzenden - Nieuw kanaal - Kanaal hernoemen - Hernoemen - Kanaalnaam - Kanaal verwijderen - Kanaal verwijderen? - #%1$s verwijderen? Dit kan niet ongedaan worden gemaakt en het kanaal kan niet opnieuw met dezelfde id worden aangemaakt. - Verwijderen - Community verlaten - Community verlaten? - %1$s verlaten? Het wordt verwijderd uit de lijst van dit account en stopt met synchroniseren op je apparaten. De community wordt niet op de hoogte gebracht en je wordt niet uit de ledenlijst verwijderd. Berichten die je niet meer kunt ontsleutelen zijn mogelijk onherstelbaar, en je kunt alleen terugkeren met een nieuwe uitnodiging. - Je hebt deze community aangemaakt. Verlaten verwijdert hem niet en draagt hem niet over aan iemand anders, maar het verwijdert de eigenaarssleutel die in je lijst is opgeslagen — je zou hem daarna niet meer kunnen beheren. - %1$s is aan het typen… - %1$s en %2$s zijn aan het typen… - Meerdere mensen zijn aan het typen… - Nieuw Concord-kanaal - Relays Icoon-URL (optioneel) - - %1$d kanaal - %1$d kanalen - %1$d workspace %1$d workspaces @@ -159,308 +16,38 @@ %1$d kanaal %1$d kanalen - - %1$d lid - %1$d leden - - - %1$d nieuw bericht - %1$d nieuwe berichten - - Nog geen berichten - Aanmaken - Mensen uitnodigen - Uitnodigingslink - Admin maken - Admin verwijderen - Relays die de versleutelde berichten van deze community opslaan. Laat leeg om je eigen te gebruiken. - Community bewerken - Leden - Admin maken - Admin verwijderen - Verbannen - Ban opheffen - Rollen toewijzen - Kon de rollen van dit lid niet bijwerken. - Concord - In chat - In discussie - - %1$d reactie - %1$d reacties - Nieuw chatprofiel: - Verlaten - Uit Berichten verwijderen - Aan Berichten toevoegen - Ontvolgen - Tijdelijke chat - Relay-chat - Relay-chats - Relay-chats zijn groepen die beheerd worden door een relay. Ze zijn zichtbaar voor iedereen op Nostr en iedereen kan deelnemen. Geschikt voor open communities rond een onderwerp. Sommige groepen zijn tijdelijk, waardoor berichten na verloop van tijd verdwijnen. - Publieke chat - MLS-groep - Publieke chat-metadata - Publieke chats zijn zichtbaar voor iedereen op Nostr. Iedereen kan deelnemen. Moderatie gebeurt door berichten te verwijderen op de relays. - Relays - Voeg 1–3 relays toe die deze groep hosten. Nostr-clients gebruiken deze om berichten te downloaden en te versturen. - Verwijderen - nooit - nu - u - m - d - Naaktheid - Godslastering / haatspraak - Back-up sleutels - Versleutelen van privésleutel mislukt - Privésleutel (nsec) gekopieerd naar klembord - Mijn privésleutel kopiëren - Biometrische authenticatie mislukt - Biometrie kon de eigenaar van dit toestel niet verifiëren. - Biometrie kon de eigenaar niet verifiëren. Fout: %1$s - Note-tekst gekopieerd naar klembord - Gebruikers-ID (@npub…) gekopieerd naar klembord - Note-ID (@note1…) gekopieerd naar klembord - "<Kan privébericht niet ontsleutelen>\n\nJe werd genoemd in een privégesprek tussen %1$s en %2$s." - Accounts - Navigeren - Jij - Feeds - Aanmaken - Systeem - Terug - Browserlink delen - Delen - Delen als afbeelding - Delen als afbeeldings-URL - Note-ID - Verwijderen - Discussie dempen - Discussie dempen opheffen - Meldingen dempen - Meldingen ontdempen - - Alleen blokkeren - Bladwijzers - Bladwijzers succesvol gemigreerd - Concepten - Geplande berichten - Bericht inplannen - Inplannen annuleren - Geplande berichten worden mogelijk pas gepubliceerd als je de app opnieuw opent. Schakel altijd-aan in via Instellingen → Weergavevoorkeuren voor betrouwbare achtergrondplanning. - Geplande berichten worden mogelijk pas gepubliceerd als je de app opnieuw opent. Geplande berichten van andere accounts worden niet uitgevoerd terwijl dit account actief is. Schakel altijd-aan in via Instellingen → Weergavevoorkeuren voor betrouwbare achtergrondplanning. - %1$s · over %2$s - %1$s · %2$s geleden - Morgen - Uitgelogd - - Uitgelogd · %d gepland bericht verwijderd - Uitgelogd · %d geplande berichten verwijderd - - Gepland bericht gepubliceerd - Gepland bericht mislukt - Geplande berichten - Meldingen wanneer een gepland bericht is gepubliceerd of mislukt. - Nu versturen - Fout: %1$s - Ingepland - Verzenden… - Mislukt - Verzonden - Geannuleerd - - Je hebt %d gepland bericht dat nog niet is gepubliceerd. Uitloggen verwijdert dit permanent. - Je hebt %d geplande berichten die nog niet zijn gepubliceerd. Uitloggen verwijdert ze permanent. - - - %d in wachtrij - %d in wachtrij - - - · %d moet over 1u - · %d moeten over 1u - - - naar %d relay - naar %d relays - - Note-ID gekopieerd - Polls - Open - Gesloten - Badges - Communities - Nieuwe community - Community bewerken - Moderators - Relays - Verifieerbare regels (optioneel) - Toegestane event-kinds - Korte tekst (1) - Lang artikel (30023) - Afbeelding (20) - Video (21) - Korte video (22) - Community-reactie (1111) - Geblokkeerde gebruikers - Web-of-trust-poort (optioneel) - Globale max. event-grootte (optioneel) - Nieuwe badge - Badge toekennen - Profielbadges - Afbeeldingen - Trainingen - Nieuwe training - - %1$d activiteit - %1$d activiteiten - - Hardlopen - Wandelen - Fietsen - Wandeltocht - Zwemmen - Roeien - Krachttraining - Yoga - Meditatie - Dieet - Vasten - Circuit - EMOM - AMRAP - Apps Apps - nApplets - nStites - Browser - Laden via Tor. Tik om het open web te gebruiken. - Laden via het open web. Tik om Tor te gebruiken. - Favorieten - Web-apps ontdekken - Favoriete apps - Toevoegen aan favorieten - Verwijderen uit favorieten - Wordt geladen via Tor. - Wordt geladen via het open web. - Gepubliceerd naar relays - Een bestand geüpload - Een betaling gedaan - Die app is nog niet geladen. Probeer het over een moment opnieuw. - Recent nApplet-machtigingen Nog geen nApplet-machtigingen Machtigingen die je aan nApplets verleent, verschijnen hier. Deze nApplet vergeten Geblokkeerd Intrekken - nApplet %1$s… Shell - Identiteit - Toetsenbordacties - Relays - Opslag - Betalingen - Netwerk - Uploads Vragen welke mogelijkheden beschikbaar zijn - Je publieke sleutel lezen - Sneltoetsen instellen - Je events lezen, ondertekenen & publiceren - Eigen privéopslag - Lightning-facturen betalen - Web- en Blossom-bronnen ophalen - Bestanden uploaden naar je mediaserver - Thema - Meldingen - Berichten - De kleuren van je app overnemen - Je meldingen tonen - Berichten uitwisselen met andere napplets Mogelijkheid: %1$s - Deze nApplet wil je publieke sleutel lezen. - Deze nApplet wil je profiel- en accountgegevens lezen. - Deze nApplet wil namens jou een kind:%1$d event ondertekenen en publiceren. - Deze nApplet wil namens jou een kind:%1$d event ondertekenen en publiceren: - Deze nApplet wil namens jou een versleuteld event verzenden. - Deze nApplet wil events van je relays lezen. - Deze nApplet wil gebruikmaken van zijn privéopslag. Deze nApplet wil een Lightning-invoice betalen. - ⚠ Deze nApplet wil een Lightning-invoice betalen die GEEN bedrag opgeeft — de ontvanger bepaalt hoeveel er wordt afgeschreven. Sta dit alleen toe als je het vertrouwt. - Deze nApplet wil een webbron ophalen. - Deze nApplet wil een bestand uploaden naar je mediaserver. - Deze nApplet wil je meldingen tonen. - Deze site wil een kind:%1$d event ondertekenen met je Nostr-sleutel. - - Deze nApplet wil een Lightning-invoice van %1$d sat betalen. - Deze nApplet wil een Lightning-invoice van %1$d sats betalen. - - - volgt %1$d nieuw account - volgt %1$d nieuwe accounts - - - ONTVOLGT %1$d account - ONTVOLGT %1$d accounts - - - voegt %1$d relay toe - voegt %1$d relays toe - - - VERWIJDERT %1$d relay - VERWIJDERT %1$d relays - - - dempt %1$d persoon meer - dempt %1$d personen meer - - - ONTDEMPT %1$d persoon - ONTDEMPT %1$d personen - - ⚠ Dit volgt %1$s. - ⚠ Dit ONTVOLGT %1$s. - ⚠ Dit dempt %1$s. - ⚠ Dit ONTDEMPT %1$s. - ⚠ Dit herschrijft je volglijst: %1$s. - ⚠ Dit herschrijft je relaylijst: %1$s. Je berichten en leesacties verhuizen mee. - ⚠ Dit herschrijft je demplijst: %1$s. Gedempte woorden en hashtags worden hier niet getoond — tik op “Show Event” voor de volledige lijst. - %1$s en %2$s - Dit publiceert je bestaande lijst ongewijzigd opnieuw. - - ⚠ Dit schrijft een lijst van %1$d item. Amethyst heeft geen gecachte kopie om mee te vergelijken. - ⚠ Dit schrijft een lijst van %1$d items. Amethyst heeft geen gecachte kopie om mee te vergelijken. - - - ⚠ Dit vraagt om verwijdering van %1$d van je events. - ⚠ Dit vraagt om verwijdering van %1$d van je events. - - - Bevat %1$d tag. Tik op “Show Event” om precies te zien wat er zou worden ondertekend. - Bevat %1$d tags. Tik op “Show Event” om precies te zien wat er zou worden ondertekend. - Verbinden met Nostr @@ -469,848 +56,90 @@ Laatst gebruikt Verloopt - ondertekenen voor %1$s (kind: %2$d) - een bericht versleutelen - je privéberichten lezen - je privéberichten met %1$s lezen - Altijd toestaan voor %1$s - Amethyst kon dit bericht niet ontsleutelen. Het is mogelijk niet aan dit account gericht. - Verbonden apps Alle machtigingen intrekken Bewerkingsoverrides Er zijn nog geen apps verbonden. - apps machtigingen signer napplet nsite webapp vertrouwen verbonden - Remote Signer signer bunker nip46 nostr connect remote sign Fungeren als remote signer Luistert op %1$d relay Luistert op %1$d relays - - Luistert op %1$d relay - Luistert op %1$d relays, allemaal verbonden - Jouw bunker-adres Plak dit in een andere app om die met jouw sleutel te verbinden. - Bunker-adres gekopieerd - Nieuw bunker-adres gegenereerd - Verbonden - Offline - Opnieuw verbinden met relays… - - %1$d relay - %1$d relays - - App verbonden. Amethyst ondertekent nu op de achtergrond voor deze app. - %1$s verbonden. Amethyst ondertekent nu op de achtergrond voor deze app. - Geen geldige nostrconnect://-link - Die link bevat geen relay om verbinding mee te maken - Kon niet verbinden: %1$s - Verbinding geweigerd - Dit is een alleen-lezen account en kan niet ondertekenen. - Remote signer-app - - %1$d ondertekenverzoek - %1$d ondertekenverzoeken - - Alles selecteren - Niets selecteren Nog geen verzoeken afgehandeld. - Ondertekenverzoeken - Schermvullende meldingen die je vragen een app goed te keuren die wil dat Amethyst ondertekent, versleutelt of ontsleutelt met jouw sleutel. - Ondertekenverzoek goedkeuren? - Een app wil verbinden - Tik om te beoordelen - - %1$d verbonden app - %1$d verbonden apps - - Relay-authenticatie - auth authenticatie relay ondertekenen verifiëren nip-42 identiteit - Altijd authenticeren - Auth-challenges ondertekenen voor elke relay die erom vraagt - Nooit authenticeren - Auth-challenges van alle relays negeren - Aangepast - Kies precies bij welke relays je je aanmeldt. Je wordt gevraagd over alles wat je hieronder niet hebt toegestaan. - \u2026het mijn relay is, of een ruimte waar ik lid van ben of die ik volg - \u2026ik iemand lees die ik volg - \u2026ik iemand bericht die ik volg - \u2026ik iemand anders bericht - - %1$s en %2$d andere - %1$s en %2$d anderen - - - Hij houdt ook nog %1$d ander ding achter. - Hij houdt ook nog %1$d andere dingen achter. - - Altijd, door jou ingesteld - Nooit, door jou ingesteld - je berichten - je antwoorden - mensen die je leest - een ruimte waarin je plaatst - een ruimte die je leest - je inbox - een gesprek - je eigen relay - deze relay - Shorts - Publieke chats - Locatiekanalen - Volgpakketten - Livestreams - Nests - Hand opsteken - Hand laten zakken - Dempen - Dempen opheffen - Kon bericht niet versturen - Microfoon dempen - Microfoon aan - Nests - Houdt audio afspelen terwijl een ruimte open is. - Nest verbonden - Nest — Live - Tik om terug te keren. - Stoppen - heeft hand opgestoken - is het podium opgegaan - is aan het woord - is toegetreden als publiek - heeft de nest verlaten - Verlaten - Kon ruimte niet als gesloten markeren. Toch verlaten — ruimte sluit automatisch. - - %1$d luisteraar - %1$d luisteraars - - Deze spreker dempen - Deze spreker herstellen - Volgen - Ontvolgen - Dempen - Dempen opheffen - Kon je nest-serverlijst niet opslaan. Probeer het opnieuw. Agent console - Nest-servers - Jouw servers - Opgeslagen als kind-10112 vervangbaar event zodat andere clients je voorkeur kunnen lezen. - Aanbevolen servers - Ingebouwde suggesties die je met één tik aan je lijst kunt toevoegen. - Video\'s - Muziek - Afspeellijsten - Afleveringen - Podcasts Premium - - %1$d hoofdstuk - %1$d hoofdstukken - - Value-for-Value-fout - Deze podcast heeft geen value-ontvangers om aan te betalen. - Verbind een Nostr Wallet Connect-wallet om naar keysend-(node)-ontvangers te sturen. - Verbind een Nostr Wallet Connect- of debit-wallet om sats te streamen tijdens het luisteren. - Nieuwe aflevering - Aflevering bewerken - Publiceren… - Cover toevoegen - Vierkante afbeelding getoond voor de aflevering - Video-URL - Transcript-URL - Hoofdstukken-URL - Audio toevoegen - MP3, M4A of andere audio - Je podcast - Cover toevoegen - Vierkante artwork voor je show - Titel van de show - Mijn podcast - Auteur - Contact-e-mail - Website - Categorieën - Technologie, Nieuws - Financieringslinks - https://… - Taal - nl - Copyright - Nieuwe trailer - Trailer toevoegen - Kort audio- of videovoorbeeld - - %1$d trailer - %1$d trailers - Ontvanger toevoegen - Deze gebruiker heeft geen Lightning-adres - - %1$d aflevering - %1$d afleveringen - - Nieuw muziekstuk - Nieuwe afspeellijst - - %1$d nummer - %1$d nummers - - Toevoegen aan publieke bladwijzers - Verwijderen uit publieke bladwijzers - Vastmaken aan profiel - Losmaken van profiel - Nieuwe bladwijzerlijst - Bladwijzerlijst-metadata - Hashtag-sets - Nieuwe interest-set - Hernoemen - Privé-note - Deze note is privé bezorgd en is niet ondertekend. Alleen de getagde deelnemers kunnen hem zien, en niemand kan aan buitenstaanders bewijzen wie hem heeft geschreven. - Privé maken: gift-wrap de note alleen voor de genoemde gebruikers - Publiek maken - Reacties op een privénote blijven altijd privé - Zichtbaar voor Nog geen ontvangers: alleen jij kunt deze note zien. Voeg mensen toe om te delen. - Alleen jij \u2014 kies wie dit nog meer kan zien - Voeg mensen toe die een melding krijgen - Privé verzenden - Al toegevoegd - Gedempt - Privélid - - %1$s, %2$s en %3$d andere - %1$s, %2$s en %3$d anderen - - - Deze note wordt %1$d keer apart versleuteld en afgeleverd, één keer per persoon. Met een externe signer is dat elke keer een aparte goedkeuring. - Deze note wordt %1$d keer apart versleuteld en afgeleverd, één keer per persoon. Met een externe signer is dat elke keer een aparte goedkeuring. - - - %1$d persoon krijgt een melding van deze post. - %1$d mensen krijgen een melding van deze post. - - - Dat zou %1$d persoon zijn. Amethyst voegt er maximaal %2$d tegelijk toe \u2014 deselecteer er een paar. - Dat zouden %1$d mensen zijn. Amethyst voegt er maximaal %2$d tegelijk toe \u2014 deselecteer er een paar. - - - %1$d persoon toevoegen - %1$d mensen toevoegen - - - Toch %1$d persoon toevoegen - Toch %1$d mensen toevoegen - Toevoegen Gebruiker verwijderen uit meldingen - Meldingen aan. Tik om de melding voor deze gebruiker te dempen - Gedempt. Tik om deze gebruiker weer te melden Zoek en voeg een gebruiker toe om te melden - Bladwijzerlijst-metadata is zichtbaar voor iedereen op Nostr. Alleen privéleden zijn versleuteld. - Verplaatsen naar publiek - Verplaatsen naar privé - Aanvullen & zap versturen - Zap versturen - Vul %1$s sats aan bij %2$s en zap %3$s %4$s sats · kosten ≈ %5$s sats - Optie %s - (0–100)% - Enkele keuze - Meerdere keuzes - Kan niet stemmen - Deze poll is gesloten voor nieuwe stemmen - Bij dit type poll is slechts één stem per gebruiker toegestaan. - Poll-auteurs kunnen niet stemmen in hun eigen poll. - Wat betekent dit? - De afbeelding is ongewijzigd sinds publicatie - De afbeelding is gewijzigd. De auteur heeft de wijziging mogelijk niet gezien. - Media toevoegen - Afbeelding toevoegen - Video toevoegen - Document toevoegen - Bestandsserver - Kies een server om dit bestand naar te uploaden - Mediaservers Stel je voorkeursmediaservers in. Opgeslagen bestanden beheren - Mijn Blossom-bestanden - Je bestanden kopiëren tussen servers… - Annuleren - Blossom-synchronisatie - Toont de voortgang tijdens het kopiëren van je bestanden tussen je Blossom-servers. - Op alle servers - Niet op alle servers Verwijderen van… - Deze server vereist betaling om te uploaden: %1$s - - %1$d sat betalen - %1$d sats betalen - - Alles inschakelen - Alles uitschakelen - Er loopt al een bestandssynchronisatie. Probeer opnieuw te importeren zodra deze klaar is. - - %1$d bestand - %1$d bestanden - - - %1$d bestand gevonden om naar je servers te importeren. - %1$d bestanden gevonden om naar je servers te importeren. - - - %1$d bestand importeren - %1$d bestanden importeren - Aanbevolen mediaservers Standaardlijst van Amethyst. Je kunt ze individueel of allemaal toevoegen. - Online - Traag - Offline Controleren… - Betalingsdoelen - Voeg betalingsadressen toe voor verschillende netwerken (bijv. Bitcoin, Lightning, Ethereum). - Geen app gevonden om deze betaling te verwerken. Installeer een compatibele wallet. - Geen app geïnstalleerd om %1$s-betalingen te verwerken. Installeer een compatibele wallet. - Kan betaling niet openen - BOLT12-offers - Voeg een of meer BOLT12-offers toe (lno1…). Ze worden openbaar gedeeld zodat iedereen je kan betalen. - BOLT12-betaling verzonden - BOLT12-betaling mislukt: %1$s - BOLT12-zap-fout - Betaald via BOLT12, maar de wallet gaf geen bewijs terug, dus er is geen zap-bewijs gepubliceerd. - Betaald via BOLT12, maar het betaalbewijs kon niet worden gevalideerd, dus er is geen zap-bewijs gepubliceerd. - Privacyopties - Iedereen - Volg alle gebruikers - Standaard volglijst - In de buurt - Teleporteer naar een plek… - Deze locatie volgen - Deze locatie ontvolgen - Globaal - Gecureerd - Van mij - Dempingslijst - Nieuwe volglijst - Nieuw volgpakket - Lijst bewerken - Standaardpoort is 9050 - Orbot Socks-poort - Interne Tor-engine gebruiken - Gebruik de ingebouwde versie van Orbot - Tor/Privacy-voorinstellingen - Snel alle onderstaande instellingen aanpassen - Onion-URL\'s / relays - Gebruik Tor voor elke .onion-URL - DM-relays - Forceer Tor voor verzenden en ontvangen van privéberichten - Onvertrouwde relays - Forceer Tor voor outbox/inbox-relays - Vertrouwde relays - Forceer Tor voor alle relays in je lijsten - Profielfoto\'s - Forceer Tor bij laden profielfoto\'s - URL-voorbeelden - Forceer Tor bij laden van URL-voorbeelden - Afbeeldingen - Forceer Tor bij laden van afbeeldingen - Video\'s - Forceer Tor bij laden van video\'s - Geldtransacties - Forceer Tor voor zaps, lightning en cashu - Nostr-adresverificatie - Forceer Tor bij NIP-05 verificatie - Media-uploads - Forceer Tor bij uploaden van media - Intern - Orbot - Uit - Basis - Standaard - Alles behalve media - Volledige privacy - Aangepast - Gebruik Tor alleen wanneer vereist door de server - Verberg je IP voor willekeurige relays - Verberg je IP voor alles behalve afbeeldingen en video\'s - Verberg je IP bij alle verbindingen - Maak je eigen configuratie - Privéberichten - Melding bij nieuw privébericht - Ontvangen zaps - Melding wanneer iemand je zapt - %1$s sats - Van %1$s - voor %1$s - Ontvangen betalingen - Brengt je op de hoogte wanneer je verbonden wallet een betaling ontvangt die geen Nostr-zap is - %1$s sats ontvangen - Nieuwe betalingen - Beantwoorden - Markeer als gelezen - Ik - Nieuw bericht - Je bent toegevoegd aan %1$s - Nieuwe berichten - Nieuwe zaps - Reacties - Melding wanneer iemand reageert op je bericht - %1$s reageerde op je bericht - voor %1$s - Nieuwe reacties - Schaken - Meldingen over schaakgebeurtenissen - %1$s heeft je schaakuitdaging geaccepteerd - %1$s heeft een zet gedaan – jouw beurt - Schaakupdates - Reacties - Melding wanneer iemand op je bericht reageert %1$s reageerde op: %1$s - Nieuwe reacties - Vermeldingen - Melding wanneer iemand je vermeldt of citeert in een bericht - %1$s heeft je vermeld - Nieuwe vermeldingen - Berichten - Sociaal - Betalingen - Inhoud - Ontwikkelaar - Games - Reposts - Brengt je op de hoogte wanneer iemand je bericht repost - %1$s heeft je bericht gerepost - Nieuwe reposts - Media - Brengt je op de hoogte wanneer iemand je vermeldt in een foto of video - %1$s heeft een foto gedeeld - %1$s heeft een video gedeeld - Nieuwe media - Artikelen & Highlights - Brengt je op de hoogte wanneer iemand je vermeldt of highlight in een artikel - %1$s heeft je vermeld in een artikel - %1$s heeft je artikel gehighlight - Nieuwe artikelen - Code & Git - Brengt je op de hoogte over issues, patches en pull requests - %1$s heeft een issue geopend - %1$s heeft een patch gestuurd - %1$s heeft een pull request geopend - %1$s heeft een pull request bijgewerkt - Nieuwe code-activiteit - Badges - Brengt je op de hoogte wanneer je een badge verdient - Je hebt een badge verdiend - Toegekend door %1$s - Nieuwe badges - Nutzap van %1$s - On-chain-zap van %1$s - %1$s heeft een vraag gesteld - Inkomende oproepen - Meldingen voor inkomende spraak- en video-oproepen - Inkomende oproep - Inkomende spraakoproep… - Inkomende video-oproep… - Bellen met %1$s - Lopende oproep - Lopende oproep - Ophangen - Accepteren - Weigeren - Dempen - Dempen opheffen - Camera aan - Camera uit - Luidspreker - Oortelefoon - Bluetooth - Amethyst heeft toegang tot de microfoon nodig om een spraakoproep te starten. Schakel dit in bij de app-instellingen. - Amethyst heeft toegang tot camera en microfoon nodig om een video-oproep te starten. Schakel dit in bij de app-instellingen. - Gespreksinstellingen - Houdt verbindingen met je inbox-relays actief voor realtime meldingen - Amethyst-meldingen actief - - Verbonden met %1$d inbox-relay - Verbonden met %1$d inbox-relays - - - Verbonden met %1$d relay - Verbonden met %1$d relays - - - %1$s \u00b7 %2$d relay - %1$s \u00b7 %2$d relays - - Bladeren - Media - Hashtags - Onderwerpen - Gesprek - Zoeken - Ontbrekende events zoeken - Events observeren - Haalt events op via hun id waar iets op je scherm naar verwijst maar die je nog niet hebt — een quote, de note waarop een reactie antwoordt, de start van een discussie. - Houdt de events die nu in beeld staan in de gaten voor nieuwe antwoorden, reacties, reposts, zaps en rapportages, zodat de tellers bijwerken terwijl je leest. - Add-ons - Relay-info - Overig - Relaylijsten zoeken - Profielen observeren - Accountgegevens - Startfeed - Relay-groepen - - %1$d groep - %1$d groepen - - Vluchtige chats - Locatiechats - Livestream-chat - NIP-29-groepen waar je lid van bent. Elke groep staat op één host-relay, dus de app verbindt met elke relay die een groep van jou host. - Chatruimtes die geen geschiedenis bewaren — berichten bestaan alleen zolang je verbonden bent, dus deze blijven geabonneerd om überhaupt iets te ontvangen. - Locatiegebonden ruimtes voor de gebieden die je volgt, opgevraagd bij de relays die ze aanbieden. - Chat en zap-doelen die horen bij livestreams die je open hebt staan of volgt. - DM-inbox - Wallet - Nutzap-inbox - Mintoverzicht - Wallet Connect - Community-chats - Community-feeds - Je inbox-relays, plus een kleine wisselende steekproef van de relays waarop de mensen die je volgt plaatsen, voor het geval een vermelding ergens anders is afgeleverd. - Je DM-inbox-relays, waar gift-wrapped berichten worden afgeleverd. - De thuisrelay van elke chat die je open hebt staan of waar je lid van bent. - De relays waarop elke community zijn planes publiceert. - Groepsberichten en sleutelpakketten, op de relays van elke groep. - De relays van de ruimte, zolang die open is. - Je eigen profiel, instellingen en concepten, op je eigen relays. - Profielen van de mensen die nu in beeld zijn. - Zoekt uit naar welke relays iemand publiceert, zodat hun posts van de juiste plek kunnen worden opgehaald. - Volglijsten, gebruikt om je feed en je web-of-trust op te bouwen. - Rapportages die de mensen die je volgt schreven over de profielen die nu in beeld zijn, opgevraagd bij elke relay waarop die mensen plaatsen. - Rapportages van wie je volgt - Je eigen wallet-events, teruggelezen van de relays waarop je ze hebt gepubliceerd. - Luistert op je nutzap-relays plus je inbox- en DM-relays, zodat een betaling er niet langs kan glippen. - Kijkt op alle relays welke mints er bestaan en welke door mensen worden aanbevolen. - Meldingen van je verbonden wallet. - Actieve relay-abonnementen - - %1$d filter - %1$d filters - - - %1$d relay - %1$d relays - - - %1$d filter is nog niet toegewezen - %1$d filters zijn nog niet toegewezen - %1$s \u00b7 %2$s - %1$d%% van alles - abonnementen filters relays verzoeken reqs verbindingen waarom diagnostiek - Posts van de mensen die je volgt, gelezen van de relays waarop ieder van hen publiceert. - Verbinden met inbox-relays… Altijd-aan meldingsdienst Houdt een persistente verbinding met je inbox-relays voor directe melding. Toont een permanente notificatie. Gebruikt meer batterij maar zorgt dat je nooit een bericht mist. Meldingsservice - Aan - Uit - Achtergrondmeldingsservice - Hoofdschakelaar voor realtime achtergrondmeldingen. Zet uit om batterij te sparen — net als een vliegtuigmodus. Wanneer uit, blijft geen enkel account op de achtergrond verbonden, en het blijft uit (ook na herstart) totdat je het weer aanzet. - Accounts die op de achtergrond actief zijn Dit account op de achtergrond actief houden - Meldingen splitsen op wie je volgt - Toon twee meldings-tabbladen — Volgend (mensen die je volgt) en Iedereen. De ongelezen-indicator licht alleen op voor activiteit van mensen die je volgt. - Berichten tonen - Directe berichten en groepsberichten opnemen in het tabblad Meldingen. Uitschakelen om berichten alleen in het tabblad Berichten te houden. - Melden: - Vandaag - Verbergen - Tonen - Waarschuwen - Spamfilter - Verbergt identieke berichten van onbekenden die 5 keer of vaker voorkomen - Client-tag toevoegen aan mijn events - Wanneer ingeschakeld voegt Amethyst een NIP-89 client-tag toe aan events die je publiceert. - Waarschuwen bij rapportages - Toont waarschuwing wanneer een bericht 5 of meer rapportages van je volgers heeft - Berichten verbergen die community-regels schenden - Verwijdert berichten uit community-feeds wanneer de community een NIP-9B regelsdocument publiceert en een event daartegen zou falen. Heeft geen effect wanneer een community geen gestructureerde regels heeft. - Filtervoorkeuren - Geblokkeerde inhoud - Je hebt nog geen gebruikers geblokkeerd. - Geen accounts zijn in deze sessie als spam gemarkeerd. - Geen verborgen woorden. Voeg hieronder een woord toe om berichten met dat woord te verbergen. - Geen reactietypes ingesteld. Houd ingedrukt om te wijzigen. - Lezen van relay - Schrijven naar relay - Aantal bytes verstuurd naar deze relay (filters + events) - Aantal bytes ontvangen van deze relay (filters + events) - Privacybeleid - Normen voor kinderveiligheid - Over & Juridisch - Cashu-token - Geen Lightning-adres ingesteld - Relays - Volgpakketten - Lezen - Feed-algoritmes - Marktplaats - Livestreams - Communities - Chats - Gevoelige inhoud - Voegt een waarschuwing toe voordat de inhoud wordt getoond - Weergavevoorkeuren App-voorkeuren - Vertalingen - Reacties - Instellingen - Accountinstellingen - App-instellingen - Gevarenzone - Marmot-status resetten - Marmot-status gereset. - Marmot-status resetten mislukt: %1$s - Altijd - Alleen onbeperkt wifi - Nooit - Wi-Fi - Volledig - Vereenvoudigd - Prestaties - Vol - Simpel - Snel - Klassiek - Modern - Systeem - Licht - Donker - Weergave - Media & data - Algemeen - Verbinding - Via Tor routeren - Sections & feeds - Zichtbare tabbladen - Inhoud in de feed - Tekst-notes - Reposts - Opmerkingen & reacties - Afbeeldingen - Video\'s - Shorts - Artikelen - Wikipagina\'s - Highlights - Polls - Advertenties - Torrents - Spraakberichten - Live-activiteiten - Vluchtige chats - Interactieve verhalen - Schaakpartijen - Vogelwaarnemingen - Attestaties - NIP-concepten - Muziek & audio - Podcasts - Inzamelingsacties - Herinneringen - Wallet Connect - Thema - Paars - Blauw - Groen - Oranje - Rood - Roze - Lettertype - Lettertype gebruikt in de hele app - Systeemstandaard - Schreefloos - Met schreef - Monospace - System - Sans - Serif - Mono - Tekstgrootte - Schaal de tekstgrootte in de hele app - Klein - Normaal - Groot - Zeer groot - Afbeeldingen laden - Video\'s automatisch afspelen - Video\'s automatisch afspelen - URL-voorbeeld - Volledig scrollen - Navigatiebalken verbergen tijdens scrollen - Weergavestijl - Kies de stijl van berichten - Galerijstijl - Kies de stijl van de profielgalerij - Spammers - Gedempt. Tik voor geluid - Geluid aan. Tik voor dempen - %d seconden terug - %d seconden vooruit - Kies een plek op de kaart - Plek op de kaart wijzigen - Alleen locatie-exclusief bericht - Alleen volgers van de locatie zien dit bericht. - - %1$d nummer - %1$d nummers - - - +%1$d meer nummer - +%1$d meer nummers - - Omslag uploaden - Kies een vierkante afbeelding als artwork voor dit nummer. - Audio uploaden - Kies een MP3, WAV of FLAC. Het wordt bij Opslaan geüpload naar je mediaserver. - Omslag + audio uploaden en publiceren. Dit gaat door, ook als je het scherm verlaat. - Afspeellijst bewerken - Omslag uploaden - Kies een vierkante afbeelding als artwork voor deze afspeellijst. - Omslag uploaden en publiceren. Dit gaat door, ook als je het scherm verlaat. Publiek Groep - Privé - Versleutelde groepen - Relaybewust - Privébericht - Directe berichten, eind-tot-eind versleuteld - 1:1–5 ruimtes - Eén-op-één en kleine groepschats met mensen die je kent. - Nieuw bericht - 1-op-1 & kleine groepen - Eind-tot-eind versleuteld - Kan later geen gebruikers toevoegen - Marmot-groep - Grotere privégroepen - Apparaatgebonden - Grotere privégroepen die kleine-groep-DM\'s ontgroeien. - Groep aanmaken - Schaalt voorbij kleine DM\'s - Versleutelde groepschat - Apparaatgebonden — verschijnt niet als je elders inlogt - Concord-community - Communities opgesplitst per kanaal - Workspaces - Enorme communities, georganiseerd per kanaal of werkstroom. - Community aanmaken - Schaalt naar enorme communities - Opgesplitst per kanaal / werkstroom - Meer om in te stellen - Publieke chat - Openbare berichten op een relay - Niet-gemodereerd - Open publieke ruimtes waar iedereen kan posten. - Publieke chat aanmaken - Iedereen kan deelnemen - Eenvoudig & vindbaar - Alleen openbaar - Geen moderatie - Relay-groep - Relaybeheerd, openbaar of privé - Gemodereerd - Groepen die worden gemodereerd door de relay die ze host. - Relay-groepen doorbladeren - Gemodereerd door de relay - Openbaar of privé - Gebonden aan die ene relay - Verdwijnende chat - Wie er nu ook online is - Nu live - In-het-moment-chat met wie er nu online is. - Chat starten - Praat met wie er nu online is - Er wordt niets bewaard - Geen geschiedenis - Relaygebonden - Relay-groepen - Relay-groepen - Berichten - Privéberichten - Eind-tot-eind versleutelde, gift-wrapped directe berichten (NIP-17). - Verouderde DM\'s - Oudere, minder private versleutelde directe berichten (NIP-04). - Publieke kanalen - Open, publieke chatruimtes die iedereen kan lezen en waaraan iedereen kan deelnemen (NIP-28). - Relay-groepen - Relaybeheerde groepschats met ledenlijsten en moderatie (NIP-29). - Versleutelde groepen - MLS eind-tot-eind versleutelde groepschats (Marmot). - Concord-communities - Versleutelde communities met meerdere kanalen (Concord). - Locatiechats - Publieke geohash-gebonden chat voor een plek (geolocatie). - Vluchtige chats - Lichtgewicht, relaygebonden ruimtes die geen geschiedenis bewaren. - Een groep aanmaken - Nieuw kanaal - Nieuw forum - Privékanaal - Verborgen uit de kanaallijst en alleen op uitnodiging. Uit betekent dat iedereen op deze relay het kan vinden en eraan kan deelnemen. Forumkanaal Berichten in discussievorm in plaats van een chattijdlijn. Dit kan later niet worden gewijzigd. Groepsnaam @@ -1320,33 +149,19 @@ Aanmaken Uitnodiging aanmaken… Uitnodigingscode gekopieerd - Groep bewerken Groepsnaam Onderwerp (optioneel) Privé (alleen leden kunnen lezen) Alleen op uitnodiging Opslaan - Groep verwijderen - \"%1$s\" verwijderen? Dit verwijdert de groep en de geschiedenis ervan voor iedereen, en kan niet ongedaan worden gemaakt. - Kanaal verwijderen - \"%1$s\" verwijderen? Dit verwijdert het kanaal en de berichten ervan voor iedereen, en kan niet ongedaan worden gemaakt. - Kanaal archiveren - Kanaal dearchiveren Locatie wijzigen - Privé - Alleen leden kunnen berichten lezen. Zoeken naar groepen op je relays… Nog geen groepen gevonden voor dit filter. - Titel Schrijf iets… Plaatsen Toegevoegd aan %1$s - - %1$d lid - %1$d leden - %1$d bericht %1$d berichten @@ -1359,277 +174,30 @@ %1$d persoon die je volgt %1$d personen die je volgt - - %1$d groep - %1$d groepen - Privé - Onderwerp - Kan niet uploaden - Voeg eerst een bestemming toe - Geen wallet gevonden - Amethyst kon geen wallet-apps vinden die Nostr Wallet Connect (NWC) ondersteunen.\n\nWat je kunt doen:\n1. Controleer of je wallet NWC ondersteunt.\n2. Maak in je wallet een nieuwe NWC-verbinding aan.\n3. Kopieer de verbinding-URI of scan de QR-code hier. - Donker, licht of systeemthema - Afbeeldingen en gif\'s automatisch laden - Video\'s en gif\'s automatisch afspelen - Video\'s automatisch afspelen wanneer zichtbaar op het scherm - URL-voorbeelden automatisch tonen - Kopiëren naar klembord - Gekopieerd naar klembord - Delen of opslaan Verzenden als DM Nieuwe Highlight Nieuwe afbeelding Nieuwe Short Nieuwe video - Nieuwe Highlight Gemarkeerde tekst - Voeg je gedachten toe… - Media toegevoegd - Media toegevoegd aan je profielgalerij - Kan zap niet versturen - Ontbrekende Lightning-configuratie - Gebruiker %1$s heeft geen Lightning-adres ingesteld om sats te ontvangen - Fout bij openen signer-app - De signer-app kon niet worden gevonden. Controleer of deze nog geïnstalleerd is. - Deze video kan niet worden afgespeeld - De codec of het formaat wordt niet ondersteund op dit apparaat (%1$s). Probeer het in je browser te openen. - Openen in browser - Ondertekenverzoek afgewezen - Zorg dat de signer-app dit verzoek heeft goedgekeurd. - Geen wallet gevonden om Lightning-invoice te betalen (fout: %1$s). Installeer een Lightning-wallet om zaps te kunnen gebruiken. - Geen wallet gevonden om Lightning-invoice te betalen. Installeer een Lightning-wallet om zaps te kunnen gebruiken. - Kan Blossom-link niet openen - Geen Blossom-app gevonden. Installeer een lokale Blossom-app om dit bestand te bekijken. - Verborgen woorden - Gedempte discussies - Geen gedempte discussies - Profielfoto - Profielfoto\'s tonen - Invoice kon niet betaald worden - Opname mislukt - Cashu-inwisselen mislukt - Mint geeft de volgende foutmelding: %1$s - Onveilig Cashu-mint-adres - Amethyst heeft de mint van dit token niet gecontacteerd. %1$s - Cashu ontvangen - %1$s sats zijn naar je wallet gestuurd (kosten: %2$s sats). - Geen compatibele Cashu-wallet gevonden - Kon invoice niet ophalen van de server van de ontvanger - Je wallet-connect provider gaf de volgende fout: %1$s - Kon LNURL niet samenstellen vanuit Lightning-adres \"%1$s\". Controleer de instellingen van de gebruiker. - Kon invoice niet ophalen van %1$s: %2$s - Fout bij verwerken JSON van %1$s. Controleer de Lightning-instellingen van de gebruiker. - Callback-URL niet gevonden in het antwoord van %1$s. - Onjuist invoice-bedrag (%1$s sats) van %2$s. Het had %3$s moeten zijn. - Kon geen Lightning-invoice aanmaken voor het versturen van de zap. De wallet van de ontvanger gaf de volgende fout: %1$s - Alleen-lezen gebruiker - Geen reacties ingesteld - Meldingen - Bezorging - In-app weergave - Categorieën - Bericht van %1$s - Hallo %1$s, is dit nog beschikbaar? - Kleding - Accessoires - Elektronica - Meubels - Verzamelobjecten - Boeken - Huisdieren - Sport - Fitness - Kunst - Ambachten - Huis & tuin - Kantoor - Eten - Overig - Anders - Uploaden van media mislukt - Kon gecomprimeerd bestand niet openen - Uploadfout: %1$s - Server gaf geen URL terug na upload - Kon geüploade media niet downloaden van server - Kon gedownload bestand niet controleren na upload: %1$s - Uploaden naar %1$s mislukt: %2$s - Media verwijderen mislukt: %1$s - Media is te groot voor NIP-95 - Bestanden versleutelen - Versleutel bestanden voordat ze worden geüpload. Sommige servers accepteren geen versleutelde bestanden op gratis accounts. - Versleutelde upload mislukt - Veel servers accepteren geen versleutelde bestanden op gratis accounts. Probeer opnieuw zonder versleuteling. - H.265/HEVC-codec gebruiken - Betere kwaliteit in kleinere bestanden, maar niet alle apparaten ondersteunen H.265 afspelen. - GIF converteren naar MP4 - Converteert geanimeerde GIF naar MP4-video voor kleinere bestandsgrootte en betere afspeelcompatibiliteit. - Privé-metadata verwijderen - Probeert privé-metadata te verwijderen uit ondersteunde mediabestanden vóór het uploaden - Metadata verwijderen mislukt - Verwijderen van privé-metadata mislukt. Upload geannuleerd. - Upload geannuleerd - Kan metadata niet verwijderen uit AVIF: %1$s - Start - Ontdekken - Berichten - Meldingen - Agenda\'s - Agendacollecties - Schaken - Wallet - Cashu-wallet (NIP-60) Nutzap-sleutel (geavanceerd) Een aparte privésleutel die uitsluitend wordt gebruikt om NIP-61 nutzaps te ontvangen. Niet je Nostr-identiteitssleutel. Een nieuwe sleutel genereren P2PK privésleutel (hex) - Mints bewerken Wijzigingen opslaan - - +%1$d meer - +%1$d meer - - - Aanbevolen door %1$d andere - Aanbevolen door %1$d anderen - - Populaire mints - Overeenkomende mints - Ontvangen - Verzonden - Publiceer een verwijderverzoek voor je kind:38000-aanbeveling van %1$s. Relays die NIP-09 respecteren zullen deze verwijderen. - %1$s sats hersteld over %2$s proofs. - %1$s sat betalen + tot %2$s sat aan kosten? - Nutzap mislukt - Geen ontvanger-pubkey op de note - Nutzaps zijn openbaar en zouden deze privénote onthullen. Gebruik in plaats daarvan een Lightning-zap. - Kan eventverwijzing niet aanmaken - Wachten tot de invoice betaald is… - Mint controleren… - Langzaam - Normaal - Snel - ~1 uur - ~30 min - ~10 min - %1$s · %2$s zat/vB · %3$s - - Verstuur %1$s sats, %2$d-voudige split - Verstuur %1$s sats, %2$d-voudige split - - - Gebruik de %1$d-voudige zap-split van dit bericht - Gebruik de %1$d-voudige zap-split van dit bericht - - - Splits onder %1$d ontvanger - Splits onder %1$d ontvangers - - - %1$d ontvanger met alleen een Lightning-adres overgeslagen — on-chain heeft een Nostr-pubkey nodig om het adres af te leiden. - %1$d ontvangers met alleen een Lightning-adres overgeslagen — on-chain heeft een Nostr-pubkey nodig om het adres af te leiden. - - saldo laden - transactie bouwen - ondertekenen - uitzenden - ontvangstbewijs publiceren - Bitcoin chain-backend is niet geconfigureerd - Kon je Bitcoin-saldo niet laden - Kon de transactie niet bouwen - Een aandeel van een ontvanger is onder dust - Kon de transactie niet ondertekenen - Kon de transactie niet uitzenden - Betaling verstuurd, maar het zap-ontvangstbewijs kon niet worden gepubliceerd - - Betaling verstuurd (%1$d van %2$d ontvangstbewijs gepubliceerd), maar het volgende ontvangstbewijs kon niet worden gepubliceerd - Betaling verstuurd (%1$d van %2$d ontvangstbewijzen gepubliceerd), maar het volgende ontvangstbewijs kon niet worden gepubliceerd - - Volgers importeren - Nieuw product - Nieuw artikel - Nieuw agenda-evenement - Agenda-evenement bewerken - Nieuwe agenda - Agenda bewerken - Feed - Maand - Week - Dag - - %1$s, %2$d evenement - %1$s, %2$d evenementen - - Nu aan de gang - %1$s · eindigt %2$s - Agenda-evenement delen - calendar_reminders - Agenda-herinneringen - Melding wanneer een evenement waar je naartoe gaat bijna begint. - Agenda-evenement - - Begint over %1$d minuut - Begint over %1$d minuten - - Afbeelding uploaden mislukt - De gekozen afbeelding kon niet worden geüpload. Probeer opnieuw of plak een URL. - Agenda-herinneringen - Herinneringen versturen - Een melding verschijnt wanneer een evenement waar je naartoe gaat bijna begint. - - %1$d min - %1$d min - - Openen in kaarten - Link openen - Alle reacties op dit bericht openen - Alle reacties sluiten - Zap - Onderste navigatiebalk Sleep om te herordenen. Schakel in/uit om items toe te voegen of te verwijderen. Met nul items wordt de balk verborgen. Herordenen - Nog geen favorieten. Markeer een app in de Browser met een ster om hem hier toe te voegen. - Nog geen groepen waaraan je deelneemt. - Toevoegen - Toegevoegd - Algemeen - Chats & groepen - Jij - Feeds - Apps & web - Overig - Zijmenu - - %1$d verborgen - %1$d verborgen - - Zichtbaar - Verborgen - Altijd aan Kies welke tabbladen op het startscherm verschijnen. Wanneer slechts één tab actief is, wordt de tabbalk verborgen. - Alles - Profiel-weergave Kies welke secties en feeds op gebruikersprofielschermen verschijnen. Standaard zijn alle opties ingeschakeld. - Profielbadges - App-aanbevelingen - Ontvangen zaps-feed - Volgers-feed - Bitcoin (on-chain) wallet - Reactierij - Videospeler-knoppen - Audio-visualisatie - Bewerken - Bewerken - Bericht bewerken - %1$s en %2$s zijn aan het typen… Buzz Workspaces Waar mensen en agents samen bouwen Workspace verlaten @@ -1645,65 +213,6 @@ Toevoegen Geen kanalen gevonden Je lijkt nog geen lid te zijn van kanalen op deze relay. Accepteer eerst de workspace-uitnodiging in de browser en probeer het dan opnieuw. - Kanaal vastzetten - Kanaal losmaken - - %1$d verborgen gesprek - %1$d verborgen gesprekken - - - %1$d gesprek meer bekijken - Alle %1$d gesprekken bekijken - - Wachten tot een relay dit bericht accepteert - Geen relay-informatie voor dit bericht - Geaccepteerd door minstens één relay - Bezorgd aan de relays van alle ontvangers - Vervaldatum - De auteur heeft relays gevraagd deze note na %1$s te verwijderen. Hij verdwijnt uit feeds zodra hij verloopt. - Ongeldig adres - Amethyst ontving een ongeldige URI: %1$s - DM-inbox relays - Zoek-relays - Goede opties zijn:\n%1$s - Outbox-relays - Inbox-relays - Relay-instellingen - Openbare thuis-relays - Gebruiker plaatst hier zijn berichten - Deze relays slaan al je berichten op. Amethyst stuurt je berichten hiernaartoe en anderen gebruiken ze om je te vinden. Voeg 1 tot 3 relays toe. - Openbare inbox-relays - Gebruiker ontvangt meldingen via deze relays - Deze relays ontvangen reacties, likes en zaps op je berichten. Voeg 1 tot 3 relays toe. - DM-inbox relays - Gebruiker ontvangt DM\'s via deze relays - Voeg 1 tot 3 relays toe als je privé-inbox. Anderen gebruiken deze om DM\'s naar je te sturen. - KeyPackages - KeyPackage-relays - Relays waar je MLS KeyPackages worden gepubliceerd (MIP-00). Andere gebruikers halen deze KeyPackages op om je uit te nodigen voor Marmot-groepchats. Voeg 1–3 relays toe die KeyPackage-events van jou accepteren en openbare leestoegang toestaan. - Privé-relays - Relays voor privé-gegevens zoals concepten en app-instellingen. Idealiter lokaal of met authenticatie. - Verbonden relays - Momenteel verbonden relays - Zoek-relays - Relays die gebruikt worden voor zoeken en taggen. Moeten NIP-50 ondersteunen. - Lokale relays - Relays die op dit apparaat draaien. - Profielen doorsturen naar lokale relay - Stuur alle ontvangen profiel-events (kind 0) door naar je lokale relay - Vertrouwde relays - Relays waarvoor je geen Tor wilt gebruiken - Favoriete relay-feeds - Relays die je regelmatig bezoekt om hun globale feed te bekijken - Proxy-relays - Aggregator-relays zoals filter.nostr.wine. Dit vervangt het outbox-model en zorgt dat Amethyst alleen met relays uit je lijsten verbindt. - Uitzend-relays - Relays die gespecialiseerd zijn in het doorsturen van je notes naar andere relays, zoals sendit.nosflare.com. Amethyst voegt deze automatisch toe aan nieuwe berichten. - Indexeer-relays - Relays die metadata en relay-lijsten hosten, zoals purplepag.es. Amethyst gebruikt deze om gebruikers te vinden die niet in je lijsten staan. - Geblokkeerde relays - Amethyst zal nooit verbinding maken met deze relays. - Relay-instellingen exporteren Web: Overzicht Beheerd door @@ -1712,588 +221,40 @@ Beheerders Onderwerpen Readme - - %1$d item - %1$d items - Issue sluiten Heropenen - Git-repositories - Highlights - Repositories filteren - Filter sluiten - Bewijs van tijdstempel - Er is cryptografisch bewijs dat dit bericht vóór %1$s is ondertekend. Dit bewijs is vastgelegd in de Bitcoin-blockchain. - Er is een tijdstempelbewijs voor dit bericht aangevraagd en het wacht om in de Bitcoin-blockchain te worden gestempeld. Dit is meestal binnen een paar uur voltooid. - Bericht bewerken - Het is niet mogelijk om op een concept te reageren - Het is niet mogelijk om een concept te citeren - Het is niet mogelijk om op een concept te reageren - Het is niet mogelijk om een concept te zappen - Conceptnote - Ongeldig verzoek - Niet geautoriseerd - Betaling vereist - Verboden - Niet gevonden - Methode niet toegestaan - Niet acceptabel - Proxy-authenticatie vereist - Verzoek time-out - Conflict - Verdwenen - Lengte vereist - Voorwaarde mislukt - Payload te groot - URI te lang - Niet-ondersteund mediaformaat - Aan bereik kan niet worden voldaan - Verwachting mislukt - Upgrade vereist - Interne serverfout - Niet geïmplementeerd - Slechte gateway - Dienst niet beschikbaar - Gateway time-out - HTTP-versie niet ondersteund - Variant onderhandelt ook - Onvoldoende opslagruimte - Loop gedetecteerd - Netwerk-authenticatie vereist Blossom-servers Voeg zoveel servers toe als je wilt. Je kunt later kiezen welke gebruikt wordt bij uploaden. - NIP-96-server toevoegen - Blossom-server toevoegen Downloaden - Kon bestand niet openen - Geen torrent-apps geïnstalleerd om dit bestand te openen en te downloaden. - Bericht bevat onvoldoende informatie om een magnet-link te maken. - Mijn lijsten - Feeds - Hashtags - Interest-sets - Locaties - Communities - Lijsten - Feed-algoritmes - Alle favoriete feed-algoritmes - Relays - Favoriete feed-algoritmes - Privébericht - Openbaar bericht - Kan afbeelding niet delen. Probeer het later opnieuw. - Kan video niet delen. Probeer het later opnieuw. - Video downloaden voor delen… - Niet vertalen van - Talen die hier staan worden niet vertaald. Tik op een taal om deze te verwijderen en weer te laten vertalen. - Vertaal naar - Kies de taal waarnaar de inhoud vertaald moet worden. - Taalweergavevoorkeuren - Kies voor elk taalpaar welke taal je als eerste wilt zien. - Pauzeren - Afspelen - App-resourcegebruik - batterij data gebruik verbruik energie stroom netwerk diagnostiek grootboek Vandaag Laatste 7 dagen - Mobiel vandaag - Wi-Fi vandaag - Relaytijd vandaag - In app vandaag - Data per dag - Mobiel (MB) - Wi-Fi (MB) - Activiteit (7 dagen) Mobiele data (achtergrond) Mobiele data (in app) Wi-Fi-data - Relayverbindingstijd - … op de achtergrond via mobiel - Meldingen verwerken (CPU wakker) - Achtergrondtaken uitgevoerd - Relay-herverbindingen (mislukt) - Webverzoeken - Radio-activaties voor downloads (schatting) - Actieve overdrachtstijd - Mediaweergavetijd - Handtekeningen geverifieerd - Gebruikte processortijd Tijd in app - App-processtarts - Berichten ontsleuteld - Remote-handtekeningen - Proof-of-work-minen - Tor-uptime - Tijd in oproepen - Tijd in audioruimtes - Locatiegebruik - Batterij gebruikt (in app / achtergrond) - Achtergrondmeldingsservice - Draaitijd - - %1$d start - %1$d starts - - Relayverbindingen open gehouden terwijl gesloten - Batterij ondertussen verbruikt (hele apparaat) - Batterij / uur in app - Data / uur in app - Gem. relayverbindingen - Mobiele data per functie (7 dagen) - Tijd per scherm (7 dagen) - Ingebouwde Tor - Data per functie (7 dagen) - Relaysynchronisatie - Afbeeldingen - Video & audio - Uploads - Wallet & zaps - Adresverificatie - Linkvoorbeelden - Pushregistratie - Overig - Geheugen op dit moment - App-geheugen (heap) - Native geheugen - Afbeeldingscache (RAM) - Afbeeldingscache (schijf) - Notes in geheugen - Profielen in geheugen - Adresseerbare events in geheugen - Chatroomlijsten in geheugen - Geheugenklasse apparaat - Delen met de ontwikkelaars - Delen - Amethyst heeft recentelijk meer verbruikt dan verwacht: %1$s. Wil je een gebruiksrapport in een versleutelde DM naar de ontwikkelaars sturen? Je ziet het volledige rapport voordat er iets wordt verzonden. - %1$s aan mobiele data op de achtergrond op één dag - %1$s aan relayverbindingen terwijl op de achtergrond via mobiel op één dag - de CPU werd %1$s wakker gehouden om meldingen te verwerken in één dag - - het app-proces is %1$d keer opnieuw gestart op één dag - het app-proces is %1$d keer opnieuw gestart op één dag - - - de app heeft %1$d keer opnieuw verbinding gemaakt met relays op één dag - de app heeft %1$d keer opnieuw verbinding gemaakt met relays op één dag - - Dit bericht verdwijnt over %1$s - Volglijst-metadata - Volglijst-metadata is zichtbaar voor iedereen op Nostr. Alleen privéleden zijn versleuteld. - Volgpakket-metadata - Volgpakketten zijn vaak gepubliceerde startlijsten voor nieuwe gebruikers en zichtbaar voor iedereen op Nostr. - Volglijst bewerken - Uitklappen - Opnieuw proberen - Reactie - Spraakbericht - Spraakreactie - - · %1$d selectie - · %1$d selecties - - %1$d van %2$d reacties geladen van %3$d relays. - %1$d van ongeveer %2$d reacties geladen van %3$d relays. - - %1$d stem › - %1$d stemmen › - - - %1$d stemmer - %1$d stemmers - - - %1$d stem kwam binnen nadat de poll gesloten was en telt niet mee. - %1$d stemmen kwamen binnen nadat de poll gesloten was en tellen niet mee. - - - %1$d stem is gedateerd vóór de poll werd gepubliceerd en telt niet mee. - %1$d stemmen zijn gedateerd vóór de poll werd gepubliceerd en tellen niet mee. - - - %1$d reactie koos geen geldige optie en telt niet mee. - %1$d reacties kozen geen geldige optie en tellen niet mee. - - - %1$d stemmer is verborgen door je dempingslijst. - %1$d stemmers zijn verborgen door je dempingslijst. - - Outbox-relays - Apps - App-aanbevelingen - Gebruikersinstellingen - Audio-header - Audiospoor - Muziekstuk - Afspeellijst - Podcast-aflevering - Podcast-show - Gemaakte podcasts - Favoriete podcasts - Badge-awards - Badge-definities - Geaccepteerde badge-set - Profielbadges - Geblokkeerde relays - Blossom-servers - Nests-servers - Blossom-auth - Uitzend-relays - Bladwijzerlijst - Oude bladwijzerlijst - Dagafspraak - Kalender - Afspraak - Afspraak-RSVP - Schaakspellen - Schaak-auth - Favoriete relays - Schaakuitdagingen - Schaakspel accepteren - Schaakzet - Einde schaakspel - Schaak-remiseaanbod - Kanaaldefinitie - Kanaalbericht verbergen - Kanaallijst - Kanaalbericht - Kanaal-metadata - Gebruiker dempen in kanaal - DM-bestand - DM-bericht - DM-relays - Verkoopadvertenties - Reacties - Community-definitie - Community-lijst - Community-bericht - Volglijst - Verwijderingen - Concepten - Emoji-pakketten - Emoji-pakketlijst - Tijdelijke chat - Tijdelijke chatrooms - Bestandsheaders - Profielgalerij - Bestandsservers - Blob-gegevens - Blob-headers - Medische gegevens - Volgpakketten - Reposts (16) - Gevolgde geohashes - GiftWraps - Git-issue - Git-patch - Git-repo - Git-reactie - Pull request - PR Update - Zap-doelen - Gevolgde hashtags - Highlights - HTTP-auth - Index-relaylijst - Avontuur-proloog - Avontuur-scène - Avontuur-lezing - Benoemde bladwijzers - Live chats - Livestreams - Zaps - NWC-verzoek - NWC-antwoord - Privé-zaps - Zap-verzoek - Blogs - Vergaderruimte - Kamer-aanwezigheid - Vergaderruimte - Profiel - Dempingslijst - NNS - NIP - Nostr Connect - DVM-status - DVM-inhoudsverzoek - DVM-inhoudsantwoord - DVM-gebruikersverzoek - DVM-gebruikersantwoord - OTS - PayTo - Gebruikerslijsten - Afbeeldingen - Workouts - Pins - Zap-poll - Poll - Poll-antwoord - NIP-04 DM\'s - Privé-relays - Proxy-relays - Openbaar bericht - Reacties - Contactkaart - Relay-auth - Relay-ontdekking - Relay-monitoraankondiging - Relay-set - Rapportages - Reposts - Gebruikersverwijdering - Seals - Zoek-relays - Gebruikersstatus - Notes - Bewerkingen - Torrents - Torrent-reacties - Vertrouwde relays - Vertrouwde providers - Video (Repl) - Shorts (Repl) - Video - Shorts - Spraakbericht - Spraakreactie - WakeUp - Web-bladwijzer - Wiki - %1$d%% uptime - Namecoin-instellingen - %d ms - Relay-synchronisatie - Bitcoin Explorer (OTS) - berichten van jou - berichten aan jou - doorzoekbare berichten - DM\'s - profielen - outbox-lijsten - Laatst gezien %1$s geleden - Laatst gezien op %1$s (%2$s geleden) - Laatst gezien zojuist - Nooit gezien - - %1$d minuut - %1$d minuten - - - %1$d uur - %1$d uur - - - %1$d dag - %1$d dagen - - - %1$d week - %1$d weken - - - %1$d maand - %1$d maanden - - - %1$d jaar - %1$d jaar - - - %1$d mint - %1$d mints - - - %1$d openstaande invoice - %1$d openstaande invoices - - - Fondsen bewaard bij %1$d mint die je niet gebruikt - Fondsen bewaard bij %1$d mints die je niet gebruikt - - %1$s sat verplaatst naar %2$s. - Casten naar apparaat - Casten stoppen - HLS-upload - Uploaden %1$s (%2$d van %3$d) - Attestatie - Attestatieverzoek - Attestor-aanbeveling - Attestor-vaardigheid - Web-bladwijzers - Web-bladwijzer toevoegen - Web-bladwijzer bewerken - %1$s gefinancierd van %2$s sats doel - Nieuw doel - Verzoek tot verdwijnen - Verzoek tot verdwijnen verstuurd - Verdwijn-geschiedenis - Gebruikers - Berichten - Kinds - IP-adressen - Instellingen - Tekstverbeteringen voorstellen - Gebruikt een on-device AI-model om tekstcorrecties en toonwijzigingen voor te stellen. - Getrackte uitzendingen - Gebruik de tracked broadcaster bij het verzenden van events. Toont live voortgang en per-relay-status tijdens uitzenden. - Workouts voorstellen om te delen - Leest voltooide workouts uit Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) en stelt voor om ze als bericht te delen. Toestemming wordt alleen gevraagd wanneer je verbindt. - Opstel-instellingen - Automatisch concepten aanmaken - Slaat automatisch een concept op wanneer je typt of de opsteller verlaat met onverzonden tekst en stuurt dit naar je privé outbox-relays. - Proof of Work - De auteur besteedde rekenkracht om deze note te minen tot moeilijkheidsgraad %1$s — een proof-of-work-stempel dat spammen duur maakt. - Korte notes & reacties - Het primaire openbare spamoppervlak - Opmerkingen - Reacties op artikelen, bestanden en andere inhoud - Meldingen - Relays wegen meldingen af op hun kost - Lange vorm & highlights - Artikelen en highlights; zelden, kost is verwaarloosbaar - Spraakberichten - Openbare spraakberichten en reacties - Reposts - Hoog volume voor actieve gebruikers - Reacties - Hoogste volume; elke like minen kost batterij - Publieke & live chat - Mining-vertragingen verstoren het gespreksverloop - Privéberichtomhulsels - Laat DM-relays inbox-spam filteren; alleen het buitenste omhulsel wordt gemijnd, nooit je bericht - Overige openbare inhoud - Polls, live-statussen, advertenties en al het andere openbare - Proof of work minen - - Proof of work minen… (%1$d post in wachtrij) - Proof of work minen… (%1$d posts in wachtrij) - - - %1$s • minen op %2$d bit - %1$s • minen op %2$d bits - - - %1$s • wacht om te minen op %2$d bit - %1$s • wacht om te minen op %2$d bits - - - Standaard (%1$d bit) - Standaard (%1$d bits) - - - %1$d bit - %1$d bits - - Proof-of-work-minen - Toont berichten die hun NIP-13-proof-of-work nog aan het mijnen zijn, zodat ze kunnen afronden nadat je de app verlaat. - Annuleren - Nu verzenden - <1 s - - %1$d seconde - %1$d seconden - - - %1$d minuut - %1$d minuten - - - %1$d uur - %1$d uur - - - %1$d dag - %1$d dagen - - ≈ %1$s resterend - elk moment nu - Je %1$s is klaar met mijnen maar kon niet worden gepubliceerd: %2$s - Je %1$s is klaar met mijnen maar kon niet worden gepubliceerd. Het wordt opnieuw geprobeerd de volgende keer dat de app start. - Chatbericht - Melding - Nieuw emoji-pakket - Emoji-pakket bewerken - Mijn emoji-pakketten - Emoji\'s - Openbare emoji\'s zijn zichtbaar voor iedereen en verschijnen in je reactiemenu en \":\" autocomplete-picker wanneer dit pakket in je emoji-lijst staat. - Privé-emoji\'s worden versleuteld opgeslagen op relays en zijn alleen zichtbaar voor jou. Ze verschijnen in je reactiemenu en \":\" autocomplete net als openbare emoji\'s. - Concept is %1$d bytes; deze community beperkt dit kind tot %2$d bytes. - Concept is %1$d bytes; deze community beperkt events tot %2$d bytes. - Je hebt vandaag al %1$d events van dit kind geplaatst (limiet %2$d). - Nowhere-site - Nowhere-evenement - Nowhere-donatieactie - Nowhere-winkel - Nowhere-petitie - Nowhere-bericht - Nowhere-drop - Nowhere-kunst - Nowhere-forum - - %1$d bericht - %1$d berichten - - - %1$d lid - %1$d leden - - Foto toevoegen - Foto wijzigen - Groepsinfo bijgewerkt - Bijwerken mislukt: %1$s - Aanmaken van groep mislukt: %1$s - Verlaten van groep mislukt: %1$s - %1$s toevoegen… - %1$s toevoegen mislukt: %2$s - onbekende fout - Lid verwijderd - Verwijderen van lid mislukt: %1$s - Beheerdersbevoegdheden verleend - Verlenen van beheerder mislukt: %1$s - Beheerdersbevoegdheden ingetrokken - Intrekken van beheerder mislukt: %1$s - Geen lid van deze groep De Lightning-service van de ontvanger op %1$s is niet beschikbaar. Dit werd berekend vanuit Lightning-adres \"%2$s\". Fout: %3$s. Controleer of de server online is en het adres correct is. Kon %1$s niet oplossen. Controleer je verbinding, of de server online is en of Lightning-adres %2$s correct is.\n\nUitzondering: %3$s Fout bij verwerken JSON van invoice van %1$s. Controleer de Lightning-instellingen van de gebruiker. Kon geen Lightning-invoice aanmaken. Bericht van %1$s: %2$s Kon geen Lightning-invoice aanmaken van %1$s: element \"pr\" niet gevonden in JSON. - Locatiechat - Locatiekanaal - Chat met wie er in de buurt van een plek is, via geohash. - Lokaal - Het best om te praten met mensen fysiek rond een locatie — je buurt, stad of regio. - Kies een locatie - Anoniem — een wegwerpidentiteit per gebied, nooit je npub. - Bitchat-compatibel; bereikt gebruikers in de buurt op dezelfde relays. - Openbaar en vluchtig — geen geschiedenis, iedereen in de cel kan het lezen. - In wachtrij - Bezig - Vereist goedkeuring - Goedgekeurd - Opgeleverd - Mislukt - Geannuleerd - Geweigerd - Value-for-Value diff --git a/amethyst/src/main/res/values-nl/strings.xml b/amethyst/src/main/res/values-nl/strings.xml index 60e41a1a5c..74e2e543aa 100644 --- a/amethyst/src/main/res/values-nl/strings.xml +++ b/amethyst/src/main/res/values-nl/strings.xml @@ -1,360 +1,24 @@ - Spam - Het nummer van spammende gebeurtenissen komende van deze relay - Impersonatie - Illegaal gedrag - Verwijdering aanvragen - Je gebruikt een publieke sleutel en publieke sleutels zijn alleen-lezen. Login met een geheime sleutel om te reageren - Je gebruikt een publieke sleutel en publieke sleutels zijn alleen-lezen. Login met een geheime sleutel om berichten te boosten - Je gebruikt een publieke sleutel en publieke sleutels zijn alleen-lezen. Login met een geheime sleutel om berichten te liken - Geen Zap bedrag. Houdt ingedrukt om te veranderen - Je gebruikt een publieke sleutel en publieke sleutels zijn alleen-lezen. Login met een geheime sleutel om zaps te versturen - Je gebruikt een publieke sleutel en publieke sleutels zijn alleen-lezen. Login met een geheime sleutel om te volgen - Je gebruikt een publieke sleutel en publieke sleutels zijn alleen-lezen. Login met een geheime sleutel om te ontvolgen - Je gebruikt een publieke sleutel en publieke sleutels zijn alleen-lezen. Login met een geheime sleutel om woorden en zinnen te verbergen - Je gebruikt een publieke sleutel en publieke sleutels zijn alleen-lezen. Login met een geheime sleutel om woorden of zinnen te tonen - Zaps - Boost geboost bewerk #%1$s - Stel een bewerking voor - Toevoegen - Fout bij het parsen van foutberichten - Profiel - Veiligheidsfilter - Betalen - "Voorbeeld kaartafbeelding voor %1$s" - Omschrijving - Waar denk je aan? - Verzenden Opslaan - Maken - Annuleren - Fouten - Afbeelding opgeslagen in galerij - Video download is gestart… - Media download is gestart… - De afbeelding is niet opgeslagen - Video\'s opgeslagen in galerij - De video is niet opgeslagen - Gebruiker heeft geen Lightning Adress ingesteld om sats te ontvangen - "hier reageren.. " - Bekend - Nieuw verzoek - Geblokkeerde gebruikers - Nieuwe onderwerpen - Discussies - Meer opties - Toon QR-code van privésleutel - Toon versleutelde QR-code van privésleutel - Volgen - Terugvolgen - Verberg wachtwoord - Ongeldige sleutel - Ongeldige sleutel: %1$s - Wachtwoord is vereist - Sleutel is vereist - Een naam is verplicht - Verlaten - Ontvolgen - Publieke chat - verwijderen - nooit - nu - u - m - d - Naaktheid - Godslastering / haatdragende taal - Back-up sleutels - Versleutelen van uw privésleutel is mislukt - Privésleutel (nsec) gekopieerd naar klembord - Kopieer mijn privésleutel - Authenticatie mislukt - Biometrie kon de eigenaar van deze telefoon niet verifiëren - Biometrie kon de eigenaar van deze telefoon niet verifiëren. Fout: %1$s - Note tekst gekopieerd naar klembord - \@npub auteur gekopieerd naar klembord - Note ID (@note1) gekopieerd naar klembord - "<Kan privébericht niet ontsleutelen>\n\nJe werd genoemd in een privégesprek tussen %1$s en %2$s." - Accounts - Terug - Deel browserlink - Delen - Note ID - Verwijderen - - Blokkeren - Bladwijzers - Concepten - Toevoegen aan publieke bladwijzers - Verwijderen uit publieke bladwijzers - Optie %s - (0–100)% - Kan niet stemmen - Poll is gesloten voor nieuwe stemmen - Slechts één stem per gebruiker is toegestaan bij dit type peiling. - Poll auteurs kunnen niet stemmen in hun eigen poll. - Wat betekent dit? - De afbeelding is onveranderd sinds de post - De afbeelding is veranderd. De auteur heeft de wijziging misschien niet gezien - Voeg media toe - Afbeelding toevoegen - Video toevoegen - Document toevoegen - File server - Kies een server om dit bestand naar te uploaden - Mediaservers Stel uw gewenste media upload servers in. Amethyst\'s standaardlijst. U kunt ze individueel toevoegen of de lijst toevoegen. - Privacyopties - Iedereen - In de buurt - Globaal - Mute-lijst - Standaard poort is 9050 - Orbot Socks Poort - Actieve Tor Engine - Gebruik de interne versie van Orbot - Tor/Privacy voorinstellingen - Snel alle onderstaande instellingen aanpassen - Onion Url/Relays - Gebruik Tor voor elke .onion url - DM Relays - Forceer Tor om berichten te verzenden en te ontvangen - Onvertrouwde relays - Tor forceren op outbox/inbox relays - Vertrouwde relays - Tor op alle relays in uw lijsten forceren - Profielfoto - Forceer Tor bij het laden van profielfoto\'s - URL voorbeelden - Forceer Tor bij het laden van url previews - Afbeeldingen - Forceer Tor bij het laden van afbeeldingen - Video\'s - Forceer Tor bij het laden van video\'s - Geldtransacties - Forceer Tor op zaps, lightning en cashu transfers - Nostr Adres verificatie - Forceer Tor bij het verifiëren van NIP-05 adressen - Mediauploads - Forceer Tor bij het uploaden van content - Intern - Orbot - Uit - Basis - Standaard - Alles behalve media - Volledige privacy - Aangepast - Gebruik Tor wanneer het vereist is door de server - Verberg uw IP voor willekeurige relay\'s - Verberg je IP voor alles, behalve foto\'s en video\'s - Verberg uw IP in alle verbindingen - Maak je eigen - Privéberichten - Geeft een melding wanneer er een privébericht binnenkomt - Zaps ontvangen - Geeft een melding als iemand je zapt - %1$s sats - Van %1$s - voor %1$s - Meld: - Vandaag - Geen reactietypes geselecteerd. Lang indrukken om te wijzigen - Lees van relay - Schrijf naar relay - Het aantal bytes dat naar deze relay is gestuurd, inclusief filters en gebeurtenissen - Het aantal ontvangen bytes van deze relays, inclusief filters en gebeurtenissen - Cashu token - Geen Lightning-adres ingesteld - Relays - Marktplaats - Chats - Gevoelige content - Voegt waarschuwing voor gevoelige content toe voordat deze content wordt weergegeven App-voorkeuren - Instellingen - Altijd - Geen datalimiet - Nooit - Voltooid - Vereenvoudigd - Prestaties - Klassiek - Modern - Systeem - Licht - Donker - Wallet Connect - Thema - Afbeeldingen laden - Automatisch video\'s afspelen - URL-voorbeeld - Volledig scrollen - Navigatie verbergen bij scrollen - UI modus - Kies de stijl van het bericht - Profielgalerij stijl - Kies de galerijstijl - Spammers - Geen geluid. Klik om voor geluid - Geluid. Klik voor geen geluid - Locatie-exclusief bericht - Alleen volgers van de locatie zien het. Je volgers zien het niet. Publiek Privé - Onderwerp - Donker-, Licht- of Systeemthema - Automatisch afbeeldingen en GIF\'s laden - Video\'s en GIF\'s automatisch afspelen - Toon URL-voorbeelden - Kopiëren naar klembord - Delen of opslaan - Media toegevoegd - Media toegevoegd aan je profielgalerij - Kan zap niet verzenden - Ontbrekende Lightning configuratie - Gebruiker %1$s heeft geen Lightning Adress ingesteld om sats te ontvangen - Fout bij openen ondertekenapp - De teken-app kan niet worden gevonden. Controleer of de app niet is verwijderd - Zorg ervoor dat de teken-app deze transactie heeft geautoriseerd - Geen wallets gevonden om een Lightning Invoice te betalen (Error: %1$s). Installeer een Lightning wallet om zaps te gebruiken - Geen wallets gevonden om een Lightning Invoice te betalen. Installeer een Lightning wallet om zaps te gebruiken - Verborgen woorden - Profielfoto - Toon profielfoto\'s - Invoice kon niet worden betaald - Kan niet opnemen - Kan Cashu niet verzilveren - Mint geeft de volgende foutmelding: %1$s - Cashu ontvangen - %1$s sats zijn naar uw wallet gestuurd. (Fees: %2$s sats) - Geen compatibele Cashu wallet gevonden in het systeem - Kan invoice niet ophalen van de servers van de ontvanger - De volgende fout is geretourneerd door uw wallet connect provider: %1$s - Kon LNUrl niet samenbrengen van Lightning Adress \"%1$s\". Controleer de instellingen van de gebruiker - Kan invoice niet ophalen van %1$s: %2$s - Fout bij het verwerken van JSON uit %1$s. Controleer de Lightning set-up van de gebruiker - Callback URL niet gevonden uit het antwoord van %1$s - Onjuist Invoice-bedrag (%1$s sats) van %2$s. Het had %3$s moeten zijn - Kan geen Linghtning invoice aanmaken voor het verzenden van de zap. De Lightning wallet van de ontvanger verstuurde de volgende fout: %1$s - Read-only gebruiker - Geen reacties setup - Bericht van %1$s - Hallo %1$s, is dit nog steeds beschikbaar? - Kleding - Accessoires - Electronica - Meubels - Verzamelobjecten - Boeken - Huisdieren - Sport - Fitness - Kunst - Ambachten - Startpagina - Kantoor - Eten - Overige - Anders - Uploaden van media mislukt - Kan het gecomprimeerde bestand niet openen - Upload fout: %1$s - Server heeft geen URL opgegeven na uploaden - Kan de geüploade media niet downloaden van de server - Kan het gedownloade bestand niet controleren na upload: %1$s - Mislukt om naar %1$s te uploaden: %2$s - Verwijderen van media mislukt: %1$s - Media is te groot voor NIP-95 - Beginscherm - Ontdekken - Berichten - Notificaties - Open alle reacties op dit bericht - Sluit alle reacties op dit bericht - Zap - Ongeldig adres - Amethist ontving een URI om te openen, maar die uri was ongeldig: %1$s - DM inbox relays - Zoek relays - Goede opties zijn:\n%1$s - Relay-instellingen - Openbare thuis relays - Dit relay type slaat al je inhoud op. Amethyst stuurt je berichten hierheen en anderen gebruiken deze relays om je inhoud te vinden. Voeg tussen de 1 en 3 relays toe. Het gaat om persoonlijke relays, betaalde relays of openbare relays. - Openbare inbox relays - Dit type relay ontvangt alle relays, reacties, likes en zaps op je berichten. Ze kunnen betaalde of gratis relays zijn. Limieten ingesteld door de relay beheerder kunnen de meldingen die u ontvangt beperken voor het goede en het slechte. Als u bijvoorbeeld wordt aangevallen door spam, kunnen betaalde relays de spam filteren. Invoegen tussen de 1 en 3 relays. - DM inbox relays - Voeg tussen de 1 en 3 relays toe om als uw privéinbox te dienen. Anderen gebruiken deze relays om DM\'s naar u te sturen. DM Inbox relays moeten een bericht van iedereen accepteren, maar alleen om berichten te downloaden. Goede opties zijn:\n - inbox.nostr.wine (betaald)\n - you.nostr1.com (persoonlijke relays - betaald) - Privé relays - Plaats tussen de 1 tot 3 relays om gebeurtenissen op te slaan die niemand anders kan zien, zoals uw Concepten en/of app instellingen. Idealiter zijn deze relays lokaal of vereist authenticatie voordat de inhoud van elke gebruiker wordt gedownload. - Relays zoeken - Lijst van relays om te gebruiken bij het zoeken naar inhoud of gebruikers. Taggen en zoeken werkt niet als er geen opties beschikbaar zijn. Zorg ervoor dat ze NIP-50 implementeren. - Lokale relays - Lijst van relays die worden uitgevoerd op dit apparaat. Web: - Bewijs van tijdstempel - Er is bewijs dat dit bericht enige tijd voor %1$sis getekend. Het bewijs is op dat tijdstip en op dat moment getypeerd in de Bitcoin-blockchain. - Bericht wijzigen - Het is niet mogelijk om een concept te beantwoorden - Het is niet mogelijk om een concept te citeren - Het is niet mogelijk om op een concept te reageren - Het is niet mogelijk om een concept op te zappen - Concept notitie - Ongeldig verzoek - De server kan of wil het verzoek niet verwerken. - Niet geautoriseerd - De gebruiker heeft geen geldige authenticatiegegevens - Betaling vereist - De server vereist betaling om het verzoek te voltooien - Verboden - De gebruiker heeft geen toegangsrechten om het verzoek uit te voeren - Niet gevonden - De server kan het opgevraagde adres niet vinden - Methode niet toegestaan - De server ondersteunt de aanvraagmethode, maar niet de doelbron - Niet acceptabel - De server vindt geen inhoud die voldoet aan het verzoek. - Proxy authenticatie vereist - De gebruiker heeft geen geldige authenticatiegegevens - Verzoek time-out - De server heeft de tijdslimiet overschreden tijdens het wachten op iemand anders - Conflict - De server kan het verzoek niet uitvoeren omdat er een conflict is met de bron - Verdwenen - De gevraagde inhoud is permanent verwijderd van de server en zal niet worden hersteld - Lengte vereist - De server weigert het verzoek omdat het een bepaalde lengte vereist - Voorwaarde mislukt - De voorwaarden van het verzoek in de header-velden zijn niet voldaan door de server - Payload te groot - Het verzoek is groter dan de door de server gedefinieerde limieten, en de server weigert het te verwerken - URI Te Lang - De URL die door de client is aangevraagd, is te lang voor de server om te verwerken. - Niet-ondersteund mediaformaat - Het verzoek maakt gebruik van een mediaformaat dat de server niet ondersteunt - Bereik niet voldaan - De server kan de waarde zoals aangegeven in het bereik van het verzoek niet vervullen. - Verwachting mislukt - De server kan niet voldoen aan de vereisten zoals aangegeven door het \'Verwacht\' verzoekheader-veld - Upgrade vereist - De server weigert het verzoek te verwerken met het huidige protocol, tenzij de client upgrade naar een ander protocol. - Interne serverfout - De server heeft een onverwachte fout ondervonden en kan het verzoek niet voltooien - Niet geïmplementeerd - De server kan het verzoek niet uitvoeren of herkent de verzoekmethode niet - Slechte Gateway - De server fungeert als een gateway en heeft een ongeldige reactie ontvangen van de host - Dienst niet beschikbaar - Dit gebeurt vaak wanneer een server overbelast is of offline is voor onderhoud - Gateway time-out - De server fungeerde als een gateway of proxy en heeft time-out bereikt tijdens het wachten op een reactie - HTTP-versie niet ondersteund - De server ondersteunt de HTTP-versie in het verzoek niet - Variant verhandelt ook - De server heeft een interne configuratiefout - Onvoldoende opslagruimte - De server heeft niet genoeg opslagruimte om het verzoek succesvol te verwerken - Loop gedetecteerd - De server detecteert een oneindige loop tijdens het verwerken van het verzoek - Netwerk authenticatie vereist - De client moet geauthenticeerd zijn om toegang te krijgen tot het netwerk Blossom servers Voeg zoveel servers toe als je wilt. Je kunt later kiezen welke zal worden gebruikt bij het uploaden van je afbeelding - Voeg een NIP-96 Server toe - Een Blossom server toevoegen Downloaden - Kon bestand niet openen - Geen torrent apps geïnstalleerd om het bestand te openen en te downloaden. De Lightning service van de ontvanger bij %1$s is niet beschikbaar. Het werd berekend op basis van het Lightning Adress \"%2$s\". Fout: %3$s. Controleer of de server klaar is en of het Lightning Adress juist is Kon %1$s niet oplossen. Controleer of u verbonden bent, of de server online is en of het Lightning Adress %2$s juist is. \n\nUitzondering was: %3$s Fout bij het verwerken van JSON uit de invoice van %1$s. Controleer de Lightning set-up van de gebruiker Kan geen Lightning invoice aanmaken. Bericht van %1$s: %2$s Kan geen Lightning invoice aanmaken van %1$s: PR-element niet gevonden in de JSON. - - Dit bericht bevat meer dan %1$d hashtag - Dit bericht bevat meer dan %1$d hashtags - - - %1$d asset gebundeld - %1$d assets gebundeld - @@ -364,36 +28,24 @@ -Je gebruikt een alleen-lezen account. Log in met een privésleutel om te uploaden. -Je gebruikt een alleen-lezen account. Log in met een privésleutel om berichten te ondertekenen. -Ongeautoriseerde decodering -De signer heeft decodering niet toegestaan. Schakel NIP-44-decodering in in je signer-app en probeer het opnieuw. -Signer niet gevonden -Is de signer-app verwijderd? Controleer of de signer geïnstalleerd is en dit account ondersteunt. Log opnieuw in. -Externe signer heeft een onjuiste payload geretourneerd voor dit verzoek. Er kan een bug zitten in Amethyst of in de signer. -Invoice aanvragen… -De debit-service heeft de betaling niet voltooid. -Betaal %1$s via %2$s? -Betaal deze invoice via %1$s? -Voer een geldig bedrag in voor dit aanbod. @@ -401,13 +53,9 @@ -Eenmalig -Dagelijks -Wekelijks -Maandelijks @@ -427,13 +75,11 @@ -Betalen via %1$s… -Betaling mislukt @@ -443,62 +89,42 @@ -Besteedbaar voor deze ontvanger: %1$s sats -Transactie: %1$s -Schrijf een bericht… -Verzenden Hernoemen -Fout - -Percentage succesvolle verbindingen met deze relay -Opslaan op telefoon - -Vastzetten bovenaan - -Losmaken - - -PDF opgeslagen in Downloads/Amethyst - -PDF opslaan mislukt -Druk en houd vast om een spraakbericht op te nemen -Uploadfout -Spraakbericht uploaden mislukt -NIP-95 wordt nog niet ondersteund voor spraakberichten -Spraakbericht uploaden mislukt: %1$s -Geen -Diep -Hoog -Neutraal + + + + + + @@ -515,48 +141,30 @@ Nieuw chatprofiel: -Tijdelijke chat -Relay-chat -Relay-chats -Relay-chats zijn groepen die beheerd worden door een relay. Ze zijn zichtbaar voor iedereen op Nostr en iedereen kan deelnemen. Geschikt voor open communities rond een onderwerp. Sommige groepen zijn tijdelijk, waardoor berichten na verloop van tijd verdwijnen. -Marmot Group -Publieke chat-metadata -Publieke chats zijn zichtbaar voor iedereen op Nostr. Iedereen kan deelnemen. Moderatie gebeurt door berichten te verwijderen op de relays. -Relays -Voeg 1–3 relays toe die deze groep hosten. Nostr-clients gebruiken deze om berichten te downloaden en te versturen. -Navigeren -Jij -Feeds -Aanmaken -Systeem -Delen als afbeelding -Delen als afbeeldings-URL -Discussie dempen -Discussie dempen opheffen @@ -564,9 +172,7 @@ -Bladwijzers succesvol gemigreerd -Geplande berichten @@ -575,14 +181,10 @@ -Bericht inplannen -Inplannen annuleren -Geplande berichten worden mogelijk pas gepubliceerd als je de app opnieuw opent. Schakel altijd-aan in via Instellingen → Weergavevoorkeuren voor betrouwbare achtergrondplanning. -Geplande berichten worden mogelijk pas gepubliceerd als je de app opnieuw opent. Geplande berichten van andere accounts worden niet uitgevoerd terwijl dit account actief is. Schakel altijd-aan in via Instellingen → Weergavevoorkeuren voor betrouwbare achtergrondplanning. @@ -591,114 +193,61 @@ -%1$s · over %2$s -%1$s · %2$s geleden -Morgen -Uitgelogd - - Uitgelogd · %d gepland bericht verwijderd - Uitgelogd · %d geplande berichten verwijderd - -Gepland bericht gepubliceerd -Gepland bericht mislukt -Geplande berichten -Meldingen wanneer een gepland bericht is gepubliceerd of mislukt. -Nu versturen -Fout: %1$s -Ingepland -Verzenden… -Mislukt -Verzonden -Geannuleerd - - Je hebt %d gepland bericht dat nog niet is gepubliceerd. Uitloggen verwijdert dit permanent. - Je hebt %d geplande berichten die nog niet zijn gepubliceerd. Uitloggen verwijdert ze permanent. - - - %d in wachtrij - %d in wachtrij - - - · %d moet over 1u - · %d moeten over 1u - - - naar %d relay - naar %d relays - -Note-ID gekopieerd -Polls -Open -Gesloten -Badges -Communities -Nieuwe community -Community bewerken -Moderators -Relays -Verifieerbare regels (optioneel) -Toegestane event-kinds -Korte tekst (1) -Lang artikel (30023) -Afbeelding (20) -Video (21) -Short video (22) -Community-reactie (1111) @@ -707,23 +256,18 @@ -Geblokkeerde gebruikers -Web-of-trust-poort (optioneel) -Globale max. event-grootte (optioneel) -Nieuwe badge -Badge toekennen @@ -740,7 +284,6 @@ -Profielbadges @@ -756,9 +299,7 @@ -Afbeeldingen -Nieuwe workout @@ -781,25 +322,15 @@ -Hardlopen -Wandelen -Fietsen -Wandelen -Zwemmen -Roeien -Krachttraining -Meditatie -Dieet -Vasten @@ -814,35 +345,25 @@ -Shorts -Publieke chats -Volgpakketten -Livestreams -Nests -Hand opsteken -Hand laten zakken -Dempen -Dempen opheffen -Kon bericht niet versturen @@ -851,25 +372,17 @@ -Microfoon dempen -Microfoon aan -Nests -Houdt audio afspelen terwijl een ruimte open is. -Nest verbonden -Nest — Live -Tik om terug te keren. -Stoppen @@ -881,28 +394,17 @@ -heeft hand opgestoken -is het podium op gegaan -is aan het woord -is toegetreden als publiek -heeft de nest verlaten -Verlaten -Kon ruimte niet als gesloten markeren. Toch verlaten — ruimte sluit automatisch. - - %1$d luisteraar - %1$d luisteraars - @@ -922,20 +424,14 @@ -Deze spreker dempen -Deze spreker herstellen -Volgen -Ontvolgen -Dempen -Dempen opheffen @@ -963,7 +459,6 @@ -Kon je nest-serverlijst niet opslaan. Probeer het opnieuw. @@ -977,44 +472,29 @@ -Nest-servers -Jouw servers -Opgeslagen als kind-10112 vervangbaar event zodat andere clients je voorkeur kunnen lezen. -Aanbevolen servers -Ingebouwde suggesties die je met één tik aan je lijst kunt toevoegen. -Video\'s -Muziek -Afspeellijsten -Afleveringen - - %1$d aflevering - %1$d afleveringen - -Nieuw muziekstuk -Nieuwe afspeellijst @@ -1032,10 +512,6 @@ - - %1$d nummer - %1$d nummers - @@ -1044,29 +520,23 @@ -Vastmaken aan profiel -Losmaken van profiel -Nieuwe bladwijzerlijst -Bladwijzerlijst-metadata -Hashtag-sets -Nieuwe interest-set @@ -1074,7 +544,6 @@ -Hernoemen @@ -1092,13 +561,9 @@ -Privé maken: gift-wrap de notitie alleen voor de genoemde gebruikers -Publiek maken -Reacties op een privénotitie blijven altijd privé -Zichtbaar voor Nog geen ontvangers: alleen jij kunt deze notitie zien. Voeg mensen toe om te delen. @@ -1114,30 +579,6 @@ -Bladwijzerlijst-metadata is zichtbaar voor iedereen op Nostr. Alleen privéleden zijn versleuteld. - -Verplaatsen naar publiek - -Verplaatsen naar privé - - - - - - - - - - - - -Aanvullen & zap versturen - -Zap versturen - - - -Vul %1$s sats aan bij %2$s en zap %3$s %4$s sats · kosten ≈ %5$s sats @@ -1152,9 +593,25 @@ -Enkele keuze -Meerdere keuzes + + + + + + + + + + + + + + + + + + @@ -1170,28 +627,6 @@ Aanbevolen mediaservers -Betalingsdoelen - - -Voeg betalingsadressen toe voor verschillende netwerken (bijv. Bitcoin, Lightning, Ethereum). - - - - - -Geen app gevonden om deze betaling te verwerken. Installeer een compatibele wallet. - -Geen app geïnstalleerd om %1$s-betalingen te verwerken. Installeer een compatibele wallet. - -Kan betaling niet openen - -Volg alle gebruikers - -Standaard volglijst - -Gecureerd - -Van mij @@ -1206,9 +641,6 @@ -Nieuwe volglijst - -Nieuw volgpakket @@ -1222,111 +654,44 @@ -Lijst bewerken -Beantwoorden -Markeer als gelezen -Nieuwe berichten -Nieuwe zaps -Reacties -Melding wanneer iemand reageert op je bericht -%1$s reageerde op je bericht -voor %1$s -Nieuwe reacties -Schaken -Meldingen over schaakgebeurtenissen -%1$s heeft je schaakuitdaging geaccepteerd -%1$s heeft een zet gedaan – jouw beurt -Schaakupdates -Reacties -Melding wanneer iemand op je bericht reageert + + + + + + + + + + + + + + %1$s reageerde op: %1$s -Nieuwe reacties - -Vermeldingen - -Melding wanneer iemand je vermeldt of citeert in een bericht - -%1$s heeft je vermeld - -Nieuwe vermeldingen - - -Inkomende oproepen - -Meldingen voor inkomende spraak- en video-oproepen - -Inkomende oproep - -Inkomende spraakoproep… - -Inkomende video-oproep… - - - - -Bellen met %1$s - -Lopende oproep - -Lopende oproep - -Ophangen - -Accepteren - -Weigeren - - -Dempen - -Dempen opheffen - -Camera aan - -Camera uit - - -Speaker - -Oortelefoon - -Bluetooth - - - - - - -Amethyst heeft toegang tot de microfoon nodig om een spraakoproep te starten. Schakel dit in bij de app-instellingen. - -Amethyst heeft toegang tot camera en microfoon nodig om een video-oproep te starten. Schakel dit in bij de app-instellingen. - - - -Gespreksinstellingen @@ -1342,19 +707,52 @@ -Houdt verbindingen met je inbox-relays actief voor realtime meldingen -Amethyst-meldingen actief -Verbinden met inbox-relays… + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Altijd-aan meldingsdienst Houdt een persistente verbinding met je inbox-relays voor directe melding. Toont een permanente notificatie. Gebruikt meer batterij maar zorgt dat je nooit een bericht mist. -Meldingen splitsen per gevolgden -Toon twee meldings-tabbladen — Volgend (mensen die je volgt) en Iedereen. De ongelezen-indicator licht alleen op voor activiteit van mensen die je volgt. @@ -1362,23 +760,14 @@ -Verbergen -Tonen -Waarschuwen -Spamfilter -Verbergt identieke berichten van onbekenden die 5 keer of vaker voorkomen -Client-tag toevoegen aan mijn events -Wanneer ingeschakeld voegt Amethyst een NIP-89 client-tag toe aan events die je publiceert. -Waarschuwen bij rapportages -Toont waarschuwing wanneer een bericht 5 of meer rapportages van je volgers heeft @@ -1386,20 +775,13 @@ -Berichten verbergen die community-regels schenden -Verwijdert berichten uit community-feeds wanneer de community een NIP-9B regelsdocument publiceert en een event daartegen zou falen. Heeft geen effect wanneer een community geen gestructureerde regels heeft. -Filtervoorkeuren -Geblokkeerde inhoud -Je hebt nog geen gebruikers geblokkeerd. -Geen accounts zijn in deze sessie als spam gemarkeerd. -Geen verborgen woorden. Voeg hieronder een woord toe om berichten met dat woord te verbergen. @@ -1414,7 +796,6 @@ -Privacybeleid @@ -1462,47 +843,30 @@ -Volgpakketten -Gelezen -Feed-algoritmes -Livestreams -Communities -Weergavevoorkeuren -Vertalingen -Reacties -Accountinstellingen -App-instellingen -Gevarenzone -Marmot-status resetten -Marmot-status gereset. -Marmot-status resetten mislukt: %1$s -Video\'s automatisch afspelen -%d seconden terug -%d seconden vooruit @@ -1512,67 +876,42 @@ Groep -Kan niet uploaden -Voeg eerst een bestemming toe -Geen wallet gevonden -Amethyst kon geen wallet-apps vinden die Nostr Wallet Connect (NWC) ondersteunen.\n\nWat je kunt doen:\n1. Controleer of je wallet NWC ondersteunt.\n2. Maak in je wallet een nieuwe NWC-verbinding aan.\n3. Kopieer de verbinding-URI of scan de QR-code hier. -Video\'s automatisch afspelen wanneer zichtbaar op het scherm -Ondertekenverzoek afgewezen -Kan Blossom-link niet openen -Geen Blossom-app gevonden. Installeer een lokale Blossom-app om dit bestand te bekijken. -Gedempte discussies -Geen gedempte discussies -Bestanden versleutelen -Versleutel bestanden voordat ze worden geüpload. Sommige servers accepteren geen versleutelde bestanden op gratis accounts. -Versleutelde upload mislukt -Veel servers accepteren geen versleutelde bestanden op gratis accounts. Probeer opnieuw zonder versleuteling. -H.265/HEVC-codec gebruiken -Betere kwaliteit in kleinere bestanden, maar niet alle apparaten ondersteunen H.265 afspelen. -GIF converteren naar MP4 -Converteert geanimeerde GIF naar MP4-video voor kleinere bestandsgrootte en betere afspeelcompatibiliteit. -Privé-metadata verwijderen -Probeert privé-metadata te verwijderen uit ondersteunde mediabestanden vóór het uploaden -Metadata verwijderen mislukt -Verwijderen van privé-metadata mislukt. Upload geannuleerd. -Upload geannuleerd -Schaken -Wallet @@ -1631,35 +970,15 @@ -Langzaam -Normaal -Snel -~1 uur - - Verstuur %1$s sats, %2$d-weg - Verstuur %1$s sats, %2$d-wegen - - - Gebruik de %1$d-weg zap-split van dit bericht - Gebruik de %1$d-weg zap-split van dit bericht - - - Splits onder %1$d ontvanger - Splits onder %1$d ontvangers - - - %1$d Lightning-adres-alleen-ontvanger overgeslagen — on-chain heeft een Nostr-pubkey nodig om het adres af te leiden. - %1$d Lightning-adres-alleen-ontvangers overgeslagen — on-chain heeft een Nostr-pubkey nodig om het adres af te leiden. - @@ -1670,57 +989,32 @@ -saldo laden -transactie bouwen -ondertekenen -uitzenden -ontvangstbewijs publiceren -Bitcoin chain-backend is niet geconfigureerd -Kon je Bitcoin-saldo niet laden -Kon de transactie niet bouwen -Een aandeel van een ontvanger is onder dust -Kon de transactie niet ondertekenen -Kon de transactie niet uitzenden -Betaling verstuurd, maar het zap-ontvangstbewijs kon niet worden gepubliceerd - - Betaling verstuurd (%1$d van %2$d ontvangstbewijs gepubliceerd), maar het volgende ontvangstbewijs kon niet worden gepubliceerd - Betaling verstuurd (%1$d van %2$d ontvangstbewijzen gepubliceerd), maar het volgende ontvangstbewijs kon niet worden gepubliceerd - -Volgers importeren -Nieuw product -Nieuw artikel -Nieuw agenda-evenement -Agenda-evenement bewerken -Nieuwe agenda -Agenda bewerken -Maand -Dag @@ -1754,10 +1048,6 @@ - - %1$s, %2$d evenement - %1$s, %2$d evenementen - @@ -1783,23 +1073,13 @@ -Nu aan de gang -%1$s · eindigt %2$s -Agenda-evenement delen -Agenda-herinneringen -Melding wanneer een evenement waar je naartoe gaat bijna begint. -Agenda-evenement - - Begint over %1$d minuut - Begint over %1$d minuten - @@ -1808,18 +1088,13 @@ -Afbeelding uploaden mislukt -De gekozen afbeelding kon niet worden geüpload. Probeer opnieuw of plak een URL. -Agenda-herinneringen -Herinneringen versturen -Een melding verschijnt wanneer een evenement waar je naartoe gaat bijna begint. @@ -1828,9 +1103,7 @@ -Openen in kaarten -Link openen @@ -1848,7 +1121,6 @@ -Onderste navigatiebalk Sleep om te herordenen. Schakel in/uit om items toe te voegen of te verwijderen. Met nul items wordt de balk verborgen. @@ -1859,21 +1131,14 @@ Kies welke tabbladen op het startscherm verschijnen. Wanneer slechts één tab actief is, wordt de tabbalk verborgen. -Alles -Profiel-weergave Kies welke secties en feeds op gebruikersprofielschermen verschijnen. Standaard zijn alle opties ingeschakeld. -Profielbadges -App-aanbevelingen -Ontvangen zaps-feed -Volgers-feed -Reactierij @@ -1891,7 +1156,6 @@ -Videospeler-knoppen @@ -1911,7 +1175,6 @@ -Audio-visualisatie @@ -1923,7 +1186,6 @@ -Vervaldatum @@ -1931,70 +1193,45 @@ -Outbox-relays -Inbox-relays -Gebruiker plaatst hier zijn berichten -Gebruiker ontvangt meldingen via deze relays -Gebruiker ontvangt DM\'s via deze relays -KeyPackages -KeyPackage-relays -Relays waar je MLS KeyPackages worden gepubliceerd (MIP-00). Andere gebruikers halen deze KeyPackages op om je uit te nodigen voor Marmot-groepchats. Voeg 1–3 relays toe die KeyPackage-events van jou accepteren en openbare leestoegang toestaan. -Verbonden relays -Huidig verbonden relays -Profielen doorsturen naar lokale relay -Stuur alle ontvangen profielgebeurtenissen (kind 0) door naar je lokale relay -Vertrouwde relays -Relays waarvoor je geen Tor wilt gebruiken -Favoriete relay-feeds -Relays die je regelmatig bezoekt om hun globale feed te bekijken -Proxy-relays -Aggregator-relays zoals filter.nostr.wine. Dit vervangt het outbox-model en zorgt dat Amethyst alleen met relays uit je lijsten verbindt. -Uitzend-relays -Relays die gespecialiseerd zijn in het doorsturen van je notities naar andere relays, zoals sendit.nosflare.com. Amethyst voegt deze automatisch toe aan nieuwe berichten. -Indexeer-relays -Relays die metadata en relay-lijsten hosten, zoals purplepag.es. Amethyst gebruikt deze om gebruikers te vinden die niet in je lijsten staan. -Geblokkeerde relays -Amethyst zal nooit verbinding maken met deze relays. -Relay-instellingen exporteren @@ -2022,31 +1259,19 @@ -Bericht bevat onvoldoende informatie om een magnet-link te maken. -Mijn lijsten -Feeds -Hashtags -Interest-sets -Locaties -Communities -Lijsten -Feed-algoritmes -Alle favoriete feed-algoritmes -Relays -Favoriete feed-algoritmes @@ -2061,18 +1286,13 @@ -Privébericht -Openbaar bericht -Kan afbeelding niet delen. Probeer het later opnieuw. -Kan video niet delen. Probeer het later opnieuw. -Video downloaden voor delen… @@ -2090,17 +1310,11 @@ -Niet vertalen van -Talen die hier staan worden niet vertaald. Tik op een taal om deze te verwijderen en weer te laten vertalen. -Vertaal naar -Kies de taal waarnaar de inhoud vertaald moet worden. -Taalweergavevoorkeuren -Kies voor elk taalpaar welke taal je als eerste wilt zien. @@ -2111,9 +1325,7 @@ -Pauzeren -Afspelen @@ -2122,7 +1334,6 @@ -Dit bericht verdwijnt over %1$s @@ -2134,15 +1345,10 @@ -Volglijst-metadata -Volglijst-metadata is zichtbaar voor iedereen op Nostr. Alleen privéleden zijn versleuteld. -Volgpakket-metadata -Volgpakketten zijn vaak gepubliceerde startlijsten voor nieuwe gebruikers en zichtbaar voor iedereen op Nostr. -Volglijst bewerken @@ -2158,12 +1364,10 @@ -Uitklappen -Opnieuw proberen @@ -2174,11 +1378,8 @@ -Reactie -Spraakbericht -Spraakreactie @@ -2201,283 +1402,144 @@ -Outbox-relays -Apps -App-aanbevelingen -Gebruikersinstellingen -Audio-header -Audiospoor -Muziekstuk -Afspeellijst -Podcast-aflevering -Podcast-show -Gemaakt podcasts -Favoriete podcasts -Badge-awards -Badge-definities -Geaccepteerde badge-set -Profielbadges -Geblokkeerde relays -Blossom-servers -Nests-servers -Blossom-auth -Uitzend-relays -Bladwijzerlijst -Oude bladwijzerlijst -Dagafspraak -Kalender -Afspraak -Afspraak-RSVP -Schaakspellen -Schaak-auth -Favoriete relays -Schaakuitdagingen -Schaakspel accepteren -Schaakzet -Einde schaakspel -Schaak-remiseaanbod -Kanaaldefinitie -Kanaalbericht verbergen -Kanaallijst -Kanaalbericht -Kanaal-metadata -Gebruiker dempen in kanaal -DM-bestand -DM-bericht -DM-relays -Verkoopadvertenties -Reacties -Community-definitie -Community-lijst -Community-bericht -Volglijst -Verwijderingen -Concepten -Emoji-pakketten -Emoji-pakketlijst -Tijdelijke chat -Tijdelijke chatrooms -Bestandsheaders -Profielgalerij -Bestandsservers -Blob-gegevens -Blob-headers -Medische gegevens -Volgpakketten -Reposts (16) -Geohash-volgers -GiftWraps -Git-issue -Git-patch -Git-repo -Git-reactie -Zap-doelen -Hashtag-volgers -Highlights -HTTP-auth -Index-relaylijst -Avontuur-proloog -Avontuur-scène -Avontuur-lezing -Genamde bladwijzers -Live chats -Livestreams -Zaps -NWC-verzoek -NWC-antwoord -Privé-zaps -Zap-verzoek -Blogs -Vergaderruimte -Kamer-aanwezigheid -Vergaderruimte -Profiel -Gedempte lijst -NNS -NIP -Nostr Connect -DVM-status -DVM-inhoudsverzoek -DVM-inhoudsantwoord -DVM-gebruikersverzoek -DVM-gebruikersantwoord -OTS -PayTo -Gebruikerslijsten -Afbeeldingen -Pins -Zap-poll -Poll -Poll-antwoord -NIP-04 DM\'s -Privé-relays -Proxy-relays -Openbaar bericht -Reacties -Contactkaart -Relay-auth -Relay-ontdekking -Relay-monitor aankondiging -Relay-set -Rapportages -Reposts -Gebruikersverwijdering -Seals -Zoek-relays -Gebruikersstatus -Notities -Bewerkingen -Torrents -Torrent-reacties -Vertrouwde relays -Vertrouwde providers -Video (Repl) -Shorts (Repl) -Video -Shorts -Spraakbericht -Spraakreactie -WakeUp -Web-bladwijzer -Wiki @@ -2494,9 +1556,7 @@ -%1$d%% uptime -Namecoin-instellingen @@ -2507,13 +1567,11 @@ -%d ms -Relay-synchronisatie @@ -2541,69 +1599,26 @@ -Bitcoin Explorer (OTS) -berichten van jou -berichten aan jou -doorzoekbare berichten -DM\'s -profielen -outbox-lijsten -Laatst gezien %1$s geleden -Laatst gezien op %1$s (%2$s geleden) -Laatst gezien zojuist -Nooit gezien - - %1$d minuut - %1$d minuten - - - %1$d uur - %1$d uur - - - %1$d dag - %1$d dagen - - - %1$d week - %1$d weken - - - %1$d maand - %1$d maanden - - - %1$d jaar - %1$d jaar - - - %1$d openstaande invoice - %1$d openstaande invoices - - - Fondsen bewaard bij %1$d mint die je niet gebruikt - Fondsen bewaard bij %1$d mints die je niet gebruikt - @@ -2617,7 +1632,6 @@ -%1$s sat verplaatst naar %2$s. @@ -2632,14 +1646,11 @@ -Casten naar apparaat -Casten stoppen -HLS-upload @@ -2660,7 +1671,6 @@ -Uploaden %1$s (%2$d van %3$d) @@ -2678,7 +1688,6 @@ -Attestatie @@ -2686,12 +1695,9 @@ -Attestatieverzoek -Attestor-aanbeveling -Attestor-vaardigheid @@ -2699,11 +1705,8 @@ -Web-bladwijzers -Web-bladwijzer toevoegen -Web-bladwijzer bewerken @@ -2719,7 +1722,6 @@ -%1$s gefinancierd van %2$s sats doel @@ -2737,9 +1739,7 @@ -Nieuw doel -Verzoek tot verdwijnen @@ -2753,7 +1753,6 @@ -Verzoek tot verdwijnen verstuurd @@ -2767,7 +1766,6 @@ -Verdwijn-geschiedenis @@ -2775,15 +1773,10 @@ -Gebruikers -Berichten -Kinds -IP-adressen -Instellingen @@ -2835,23 +1828,14 @@ -Tekstverbeteringen voorstellen -Gebruikt een on-device AI-model om tekstcorrecties en toonwijzigingen voor te stellen. -Getrackte uitzendingen -Gebruik de tracked broadcaster bij het verzenden van events. Toont live voortgang en per-relay-status tijdens uitzenden. -Workouts voorstellen om te delen -Leest voltooide workouts uit Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) en stelt voor om ze als bericht te delen. Toestemming wordt alleen gevraagd wanneer je verbindt. -Opstel-instellingen -Automatisch concepten aanmaken -Slaat automatisch een concept op wanneer je typt of de opsteller verlaat met onverzonden tekst en stuurt dit naar je privé outbox-relays. @@ -2869,9 +1853,7 @@ -Nieuw emoji-pakket -Emoji-pakket bewerken @@ -2895,62 +1877,33 @@ -Mijn emoji-pakketten -Emoji\'s -Openbare emoji\'s zijn zichtbaar voor iedereen en verschijnen in je reactiemenu en \":\" autocomplete-picker wanneer dit pakket in je emoji-lijst staat. -Privé-emoji\'s worden versleuteld opgeslagen op relays en zijn alleen zichtbaar voor jou. Ze verschijnen in je reactiemenu en \":\" autocomplete net als openbare emoji\'s. -Concept is %1$d bytes; deze community beperkt dit kind tot %2$d bytes. -Concept is %1$d bytes; deze community beperkt events tot %2$d bytes. -Je hebt vandaag al %1$d events van dit kind geplaatst (limiet %2$d). -Nowhere-site -Nowhere-evenement -Nowhere-donatieactie -Nowhere-winkel -Nowhere-petitie -Nowhere-bericht -Nowhere-drop -Nowhere-kunst -Nowhere-forum - - +%1$d\nreactie - +%1$d\nreacties - - - - - - - - - -Geen camera-app gevonden op dit apparaat @@ -2962,74 +1915,60 @@ -Trainingen -Yoga -Circuit -EMOM -AMRAP -Apps + + + + + + + + Apps -nApplets - -nSites - - -Browser -Laden via Tor. Tik om het open web te gebruiken. - -Laden via het open web. Tik om Tor te gebruiken. -Favorieten - - - -Favoriete apps - - -Toevoegen aan favorieten - -Verwijderen uit favorieten -Wordt geladen via Tor. - -Wordt geladen via het open web. -Gepubliceerd naar relays -Een bestand geüpload -Een betaling gedaan -Die app is nog niet geladen. Probeer het over een moment opnieuw. -Recent + + + + + + + + + + + nApplet-machtigingen @@ -3046,51 +1985,30 @@ -nApplet %1$s… Shell -Identiteit -Toetsenbordacties -Relays -Opslag -Betalingen -Netwerk -Uploads Vragen welke mogelijkheden beschikbaar zijn -Uw publieke sleutel lezen -Sneltoetsen instellen -Uw events lezen, ondertekenen & publiceren -Eigen privéopslag -Lightning-facturen betalen -Web- en Blossom-bronnen ophalen -Bestanden uploaden naar uw mediaserver -Thema -Meldingen -Berichten -De kleuren van uw app overnemen -U meldingen tonen -Berichten uitwisselen met andere napplets Mogelijkheid: %1$s @@ -3098,142 +2016,85 @@ -Deze nApplet wil uw publieke sleutel lezen. -Deze nApplet wil uw profiel- en accountgegevens lezen. -Deze nApplet wil als u een kind:%1$d event ondertekenen en publiceren. -Deze nApplet wil als u een kind:%1$d event ondertekenen en publiceren: -Deze nApplet wil als u een versleuteld event verzenden. -Deze nApplet wil events van uw relays lezen. -Deze nApplet wil gebruikmaken van zijn privéopslag. Deze nApplet wil een Lightning-factuur betalen. -Deze nApplet wil een webbron ophalen. - -Deze nApplet wil een bestand uploaden naar uw mediaserver. - -Deze nApplet wil u meldingen tonen. - -Deze site wil een kind:%1$d event ondertekenen met uw Nostr-sleutel. - - - Deze nApplet wil een Lightning-factuur van %1$d sat betalen. - Deze nApplet wil een Lightning-factuur van %1$d sats betalen. - - - - -Podcasts - - - - - Verbonden met %1$d inbox-relay - Verbonden met %1$d inbox-relays - - - - Verbonden met %1$d relay - Verbonden met %1$d relays - - -Berichten tonen - -Directe berichten en groepsberichten opnemen in het tabblad Meldingen. Uitschakelen om berichten alleen in het tabblad Berichten te houden. - -Normen voor kinderveiligheid - -Over & Juridisch - - - - - - %1$d nummer - %1$d nummers - - - - +%1$d meer nummer - +%1$d meer nummers - -Een omslagafbeelding uploaden - -Kies een vierkante afbeelding als artwork voor dit nummer. - -Een audiobestand uploaden - -Kies een MP3, WAV of FLAC. Het wordt bij Opslaan geüpload naar uw mediaserver. - - -Omslag + audio uploaden en publiceren. Dit gaat door, ook als u het scherm verlaat. - -Afspeellijst bewerken -Een omslagafbeelding uploaden - -Kies een vierkante afbeelding als artwork voor deze afspeellijst. -Omslag uploaden en publiceren. Dit gaat door, ook als u het scherm verlaat. -Gekopieerd naar klembord + + + + + + + + + + + + + + + + + + + + + + + + + + + Verzenden als DM -Dit video kan niet worden afgespeeld - -De codec of het formaat wordt niet ondersteund op dit apparaat (%1$s). Probeer het in uw browser te openen. - -Openen in browser - -Meldingen - -Bezorging - -In-app weergave - -Categorieën -Kan metadata niet verwijderen uit AVIF: %1$s - -Agenda\'s - -Agendaoverzichten -Cashu-portemonnee (NIP-60) + + + + + + + + @@ -3255,25 +2116,14 @@ P2PK privésleutel (hex) -Mints bewerken Wijzigingen opslaan - - +%1$d meer - +%1$d meer - - - - Aanbevolen door %1$d andere - Aanbevolen door %1$d anderen - - -Populaire mints - -Overeenkomende mints + + + @@ -3287,9 +2137,7 @@ -Ontvangen -Verzonden @@ -3299,14 +2147,12 @@ -Publiceer een verwijderverzoek voor je kind:38000-aanbeveling van %1$s. Relays die NIP-09 respecteren zullen deze verwijderen. -%1$s sats hersteld over %2$s proofs. @@ -3330,28 +2176,21 @@ -%1$s sat betalen + tot %2$s sat aan kosten? -Nutzap mislukt -Geen ontvanger-pubkey op de notitie -Nutzaps zijn openbaar en zouden deze privénotitie onthullen. Gebruik in plaats daarvan een Lightning-zap. -Kan eventverwijzing niet aanmaken -Wachten tot de factuur betaald is… -Mint controleren… @@ -3363,25 +2202,15 @@ -~30 min -~10 min -%1$s · %2$s sat/vB · %3$s -Feed -Week -calendar_reminders - - %1$d min - %1$d min - @@ -3391,12 +2220,7 @@ -Workouts - - %1$d mint - %1$d mints - @@ -3432,25 +2256,14 @@ - - %1$d bericht - %1$d berichten - - - %1$d lid - %1$d leden - -Groepsinfo bijgewerkt -Bijwerken mislukt: %1$s -Aanmaken van groep mislukt: %1$s @@ -3461,13 +2274,9 @@ -Verlaten van groep mislukt: %1$s -%1$s toevoegen… -%1$s toevoegen mislukt: %2$s -onbekende fout @@ -3476,9 +2285,7 @@ -Lid verwijderd -Verwijderen van lid mislukt: %1$s @@ -3486,22 +2293,17 @@ -Beheerdersbevoegdheden verleend -Verlenen van beheerder mislukt: %1$s -Beheerdersbevoegdheden ingetrokken -Intrekken van beheerder mislukt: %1$s -Geen lid van deze groep diff --git a/amethyst/src/main/res/values-pl-rPL/strings.xml b/amethyst/src/main/res/values-pl-rPL/strings.xml index 53cc769694..2dc4667dba 100644 --- a/amethyst/src/main/res/values-pl-rPL/strings.xml +++ b/amethyst/src/main/res/values-pl-rPL/strings.xml @@ -1,166 +1,13 @@ - - Ten post ma więcej niż %1$d hashtag - Ten post ma więcej niż %1$d hashtagów - Ten post ma więcej niż %1$d hashtagów - Ten post zawiera więcej niż %1$d hashtagów - - - %1$d zestaw aktywów - %1$d zestawów aktywów - %1$d zestawów aktywów - %1$d zestawy aktywów - - - +%1$d\nodpowiedź - +%1$d\nodpowiedzi - +%1$d\nOdpowiedzi - +%1$d\nodpowiedzi - - - Zgłoszone przez %1$d osobę, którą obserwujesz - Zgłoszone przez %1$d osób, które obserwujesz - Zgłoszone przez %1$d osób, które obserwujesz - Zgłoszone przez %1$d osoby, które obserwujesz - - Spam - Liczba spamu z tego transmitera - Podszywanie się - Antyspołeczne zachowanie - Poproś o usunięcie - Używasz klucza publicznego, a klucze publiczne są tylko do odczytu. Zaloguj się za pomocą klucza prywatnego, aby móc odpowiedzieć - Używasz klucza publicznego, a klucze publiczne są tylko do odczytu. Zaloguj się za pomocą klucza prywatnego, aby zwiększyć liczbę postów - Używasz klucza publicznego, a klucze publiczne są tylko do odczytu. Zaloguj się za pomocą klucza prywatnego, aby polubić posty - Nie ustawiono kwoty zap-a. Naciśnij i przytrzymaj, aby zmienić - Używasz klucza publicznego, a klucze publiczne są tylko do odczytu. Zaloguj się za pomocą klucza prywatnego, aby móc wysyłać zapy - Używasz klucza publicznego, a klucze publiczne są tylko do odczytu. Zaloguj się za pomocą klucza prywatnego, aby móc obserwować - Używasz klucza publicznego, a klucze publiczne są tylko do odczytu. Zaloguj się za pomocą klucza prywatnego, aby móc przestać obserwować - Używasz klucza publicznego, a klucze publiczne są tylko do odczytu. Zaloguj się za pomocą klucza prywatnego, aby móc ukryć słowo lub zdanie - Używasz klucza publicznego, a klucze publiczne są tylko do odczytu. Zaloguj się za pomocą klucza prywatnego, aby móc pokazać wyraz lub zdanie - Używasz klucza publicznego i kluczy publicznych tylko do odczytu. Zaloguj się za pomocą klucza prywatnego, aby móc wgrać - Używasz klucza publicznego i kluczy publicznych tylko do odczytu. Zaloguj się za pomocą klucza prywatnego, aby móc zapisać się na udział w wydarzeniu - Nieautoryzowane odszyfrowywanie - Sygnatariusz nie autoryzował deszyfrowania wymaganego do wykonania tej operacji. Aktywuj deszyfrowanie NIP-44 w aplikacji logującej i spróbuj ponownie - Nie odnaleziono sygnatariusza - Czy aplikacja sygnatariusza została odinstalowana? Sprawdź, czy aplikacja sygnatariusza jest zainstalowana i czy ma to konto. Wyloguj się i zaloguj ponownie, jeśli aplikacja sygnatariusza uległa zmianie. - Sygnatariusz zewnętrzny zwrócił dane, które są niezgodne z żądaniem. Być może wystąpił błąd w Amethyst lub w samym sygnatariuszu. - Zapy - Powtórz wpis powtórzono edytuj #%1$s - Zaproponuj zmianę - Dodaj - Błąd podczas analizowania komunikatu o błędzie - Mój Profil - Filtry bezpieczeństwa - Pokaż mniej - Żądanie faktury… - Usługa debetowa nie dopełniła płatności. - Zapłacić %1$s przez %2$s? - Zapłać tę fakturę przez %1$s? - Wprowadź poprawną kwotę dla tej oferty. - Jednorazowy - Dzienny - Tygodniowy - Miesięczny - Zapłać - Płatność za pomocą %1$s… - Płatność nieudana - Kwota dla tego odbiorcy: %1$s satoszy - Transakcja: %1$s - "Podgląd obrazu karty dla %1$s" - Opis - Co masz na myśli? - Napisz wiadomość… - Wyślij Zapisz - Wyślij - Utwórz Zmień nazwę - Anuluj - Błąd - Błędy - Odsetek udanych połączeń z transmiterem - Zapisz w telefonie - Zdjęcie zostało zapisane w galerii - Rozpoczęto pobieranie wideo… - Rozpoczęto pobieranie plików… - Przypnij na górze - Odepnij - Nie udało się zapisać zdjęcia - Film zapisany w galerii filmów - Nie udało się zapisać filmu - Plik PDF zapisany w folderze Pobrane/Amethyst - Nie udało się zapisać pliku PDF - Nie znaleziono aplikacji kamery na tym urządzeniu - Kliknij i przytrzymaj aby nagrać wiadomość - Błąd przesyłania - Nie udało się przesłać wiadomości głosowej - NIP-95 nie jest jeszcze dostępny dla wiadomości głosowych - Nie udało się przesłać głosu: %1$s - Brak - Niska - Wysoka - Neutralna - Użytkownik nie ma skonfigurowanego adresu LN, aby odbierać satosze - "odpowiedz tutaj.. " - Znajomi - Nowe - Zablokowani użytkownicy - Nowe wątki - Komentarze - Więcej opcji - Pokaż kod QR klucza prywatnego - Pokaż zaszyfrowany kod QR klucza prywatnego - Obserwuj - Również obserwuj - Ukryj hasło - Nieprawidłowy klucz - Nieprawidłowy klucz: %1$s - Hasło jest wymagane - Klucz jest wymagany - Nazwa jest wymagana - Nie można pobrać tego zaproszenia. Być może link stracił ważność lub transmitery są niedostępne. - Ten link do zaproszenia jest nieprawidłowy lub nie można go otworzyć przy użyciu tego konta. - Nie można otworzyć tego linku do zaproszenia. Być może jest on nieaktualny, został już zastąpiony nowszym lub został utworzony w nowszej wersji aplikacji. Poproś o nowy link do zaproszenia. - Ten link do zaproszenia został unieważniony i nie można już z niego korzystać. Poproś o nowy. - Ta społeczność cię usunęła. Link nadal działa, ale na liście członków nie figurujesz. - Linki z zaproszeniem - Linki z zaproszeniem - Link zaproszenia unieważniony. - Nie udało się unieważnić linku. Sprawdź połączenie i spróbuj ponownie. - Ten link do zaproszenia wygasł i nie może być już używany. Poproś o nowy link. - Kanały Concord - Brak kanałów. - Wyślij zdjęcie - Nowy kanał - Zmień nazwę kanału - Zmień nazwę - Nazwa kanału - Usuń kanał - Usunąć kanał? - Usunąć #%1$s? Tej operacji nie można cofnąć i nie będzie można odtworzyć kanału z tym samym identyfikatorem. - Usuń - Opuść społeczność - Opuścić społeczność? - Chcesz opuścić %1$s? Zostaniesz usunięty z listy członków tej społeczności, a synchronizacja z Twoimi urządzeniami zostanie wstrzymana. Społeczność nie zostanie o tym powiadomiona, a Ty nie zostaniesz usunięty z listy jej członków. Wiadomości, których nie będziesz już mógł odszyfrować, mogą okazać się nie do odzyskania, a powrót do społeczności będzie możliwy wyłącznie po otrzymaniu nowego zaproszenia. - To Ty stworzyłeś tę społeczność. Odejście nie powoduje jej usunięcia ani przekazania komukolwiek innemu, ale powoduje usunięcie klucza właściciela przechowywanego na Twojej liście — nie będziesz mógł już nią zarządzać. - %1$s pisze… - %1$s i %2$s piszą… - Kilka osób pisze… - Nowy kanał Concord - Transmitery URL ikony (opcjonalnie) - - %1$d kanał - %1$d kanałów - %1$d kanałów - %1$d kanały - %1$d przestrzeń robocza %1$d przestrzeni roboczych @@ -173,354 +20,38 @@ %1$d kanały %1$d kanały - - %1$d członek - %1$d członków - %1$d członków - %1$d członkowie - - - %1$d nowa wiadomość - %1$d nowych wiadomości - %1$d nowych wiadomości - %1$d nowe wiadomości - - Brak wiadomości - Utwórz - Zaproś osoby - Link do zaproszenia - Stwórz administratora - Usuń administratora - Transmitery, które przechowują zaszyfrowane wiadomości tej społeczności. Pozostaw puste, aby użyć własnych. - Edytuj społeczność - Członkowie - Stwórz administratora - Usuń administratora - Banuj - Odbanuj - Przypisz rolę - Nie udało się zaktualizować ról tego członka. - Concord - W czacie - W wątku - - %1$d odpowiedź - %1$d odpowiedzi - %1$d odpowiedzi - %1$d odpowiedzi - Nowy profil czatu: - Wyjdź - Usuń z wiadomości - Dodaj do wiadomości - Nie obserwuj - Czat efemeryczny - Czat Transmitera - Czaty Transmitera - Czaty transmiterów to grupy czatów kontrolowane przez ich macierzyste transmitery. - Są one widoczne dla wszystkich użytkowników Nostr i każdy może w nich uczestniczyć. - Świetnie nadają się do tworzenia otwartych społeczności wokół określonych tematów. Niektóre z tych grup są efemeryczne - i dlatego wiadomości czatu znikają z czasem - Czat Publiczny - Grupa MLS - Metadane Czatu Publicznego - Czaty publiczne są widoczne dla wszystkich użytkowników Nostr i każdy może w nich uczestniczyć. Są idealne dla otwartych społeczności skupionych wokół konkretnych tematów. Moderację można kontrolować, usuwając posty z transmiterów - Transmitery - Wstaw od 1 do 3 transmiterów, które obsługują tę grupę. Klienci Nostr używają tego ustawienia, aby wiedzieć, skąd pobierać wiadomości i do kogo je wysyłać. - Usuń - nigdy - teraz - godz. - m - d - Nagość - Wulgaryzmy / Mowa nienawiści - Klucze kopii zapasowej - Nie udało się zaszyfrować Twojego klucza prywatnego - Tajny klucz (nsec) skopiowany do schowka - Kopiuj mój tajny klucz - Uwierzytelnianie nie udało się - Biometria nie uwierzytelniła właściciela tego telefonu - Biometria nie uwierzytelniła właściciela tego telefonu. Błąd: %1$s - Skopiowano tekst wpisu do schowka - Skopiowano @npub autora do schowka - Skopiowane ID wpisu (@note1) do schowka - "<Unable to decrypt private message>\n\nZostałeś wspomniany w prywatnej/zaszyfrowanej rozmowie pomiędzy %1$s i %2$s." - Konta - Nawigacja - Ty - Kanały - Utwórz - System - Wstecz - Udostępnij link przeglądarki - Przekaż - Udostępnij jako obrazek - Udostępnij jako adres Url obrazu - ID wpisu - Usuń - Zablokuj wątek - Odblokuj wątek - Wycisz powiadomienia - Wyłącz wyciszenie powiadomień - - Zablokuj - Zakładki - Zakładki pomyślnie przeniesione - Projekty - Zaplanowane posty - Zaplanuj post - Anuluj planowanie - Zaplanowane posty mogą nie zostać opublikowane, dopóki nie uruchomisz ponownie aplikacji. Aby zapewnić niezawodne planowanie zadań w tle, włącz opcję „Zawsze włączone” w Ustawieniach → Preferencje dotyczące niezawodnego planowania zadań w tle. - Wpisy zaplanowane mogą nie zostać opublikowane, dopóki nie uruchomisz ponownie aplikacji. -Zaplanowane posty z innych kont nie zostaną opublikowane, dopóki to konto jest aktywne. Włącz opcję „Zawsze włączone” w menu Ustawienia → Preferencje interfejsu użytkownika, aby zapewnić niezawodne planowanie zadań w tle. - %1$s · w %2$s - %1$s · %2$s temu - Jutro - Wylogowano - - Wylogowano · %d zaplanowany post został usunięty - Wylogowano · %d zaplanowanych postów zostało usuniętych - Wylogowano · %d zaplanowanych postów zostało usuniętych - Wylogowano · %d zaplanowane posty zostały usunięte - - Opublikowano zaplanowany post - Nieudana publikacja zaplanowanego postu - Zaplanowane posty - Powiadomienia o opublikowaniu lub braku publikacji zaplanowanego posta. - Wyślij teraz - Błąd: %1$s - Zaplanowane - Wysyłanie… - Nie udało się - Wysłano - Anulowano - - Masz %d zaplanowany post, który nie został jeszcze opublikowany. Wylogowanie spowoduje jego usunięcie. - Masz %d zaplanowanych postów, które nie zostały jeszcze opublikowane. Wylogowanie spowoduje ich usunięcie. - Masz %d zaplanowanych postów, które nie został jeszcze opublikowane. Wylogowanie się spowoduje ich usunięcie. - Masz %d zaplanowane posty, które nie zostały jeszcze opublikowane. Wylogowanie spowoduje ich usunięcie. - - - %d w kolejce - %d w kolejce - %d w kolejce - %d w kolejce - - - · %d do wysłania za godzinę - · %d do wysłania za godzinę - · %d do wysłania za godzinę - · %d do wysłania za godzinę - - - do %d transmitera - na %d transmiterów - na %d transmiterów - na %d transmitery - - Identyfikator notatki skopiowany - Ankiety - Otwarte - Zamknięte - Odznaki - Społeczności - Nowa społeczność - Edytuj społeczność - Moderatorzy - Transmitery - Zasady weryfikowalne (opcjonalne) - Dozwolone rodzaje zdarzeń - Krótki tekst (1) - Długi artykuł (30023) - Post zdjęciowy (20) - Post wideo (21) - Krótki film (22) - Komentarz Wspólnoty (1111) - Zbanowani użytkownicy - Brama zaufania (opcjonalnie) - Maksymalna wielkość zdarzenia (opcjonalnie) - Nowa odznaka - Znak wyróżnienia - Odznaki w profilu - Zdjęcia - Treningi - Nowy trening - - %1$d aktywność - %1$d aktywności - %1$d aktywności - %1$d aktywności - - Bieganie - Spacer - Jazda na rowerze - Piesze wycieczki - Pływanie - Wioślarstwo - Siła - Joga - Medytacja - Dieta - Post - Układ - EMOM - AMRAP - Aplikacje Aplikacje - nApplets - nSites - Przeglądarka - Wczytywanie przez Tor. Kliknij, aby użyć otwartej sieci. - Pobieranie przez otwartą sieć. Kliknij, aby skorzystać z sieci Tor. - Ulubione - Odkryj apki webowe - Ulubione aplikacje - Dodaj do ulubionych - Usuń z ulubionych - Przesyłanie danych przez Tor. - Wczytuje się z otwartej sieci. - Opublikowane do transmiterów - Wgrano plik - Dokonano płatności - Ta aplikacja nie została jeszcze załadowana. Spróbuj ponownie za chwilę. - Najnowsze uprawnienia nApplet Brak uprawnień nApplet Uprawnienia, które przyznasz dla nApplets pojawią się tutaj. Zapomnij o tym nApplet Zablokowane Odwołaj - nApplet %1$s… Powłoka - Tożsamość - Operacje klawiatury - Transmitery - Szyfrowanie - Schowek - Płatności - Sieć - Wgrane Zapytaj jakie opcje są dostępne - Odczytaj swój klucz publiczny - Przypisz skróty klawiszowe - Przeczytaj, podpisz i opublikuj swoje wydarzenia - Zaszyfruj i odszyfruj prywatne wiadomości za pomocą klucza - Własny prywatny schowek - Opłać faktury Lightning - Pobierz zasoby sieci web i blossom - Prześlij pliki na serwer multimediów - Motyw - Powiadomienia - Wiadomości - Dopasuj kolory aplikacji - Wyświetl powiadomienia - Wymieniaj wiadomości z innymi nappletami Możliwość: %1$s - Ten nApplet chce odczytać Twój klucz publiczny. - Ten nApplet chce odczytać dane Twojego profilu i konta. - Ta aplikacja nApplet chce podpisać i opublikować zdarzenie typu %1$d w Twoim imieniu. - Ta aplikacja nApplet chce podpisać i opublikować zdarzenie typu %1$d w Twoim imieniu: - Ten nApplet chce wysłać zaszyfrowane wydarzenie jako Ty. - Ta strona chce zaszyfrować wiadomość do %1$s za pomocą klucza Nostr. - Ta strona chce odszyfrować wiadomość od %1$s za pomocą klucza Nostr. - Ten nApplet chce odczytywać wydarzenia z twoich transmiterów. - Ta aplikacja nApplet chce korzystać ze swojego prywatnego schowka. Ta aplikacja nApplet chce zapłacić fakturę w systemie Lightning. - ⚠ Ta aplikacja nApplet ma na celu opłacenie faktury Lightning, w której NIE podano kwoty — to odbiorca płatności decyduje, jaka kwota zostanie pobrana. Zezwól na to tylko wtedy, gdy ufasz tej aplikacji. - Ten nApplet chce pobrać zasób internetowy. - Ten nApplet chce przesłać plik na Twój serwer multimedialny. - Ten nApplet chce pokazywać Ci powiadomienia. - Ta witryna chce podpisać wydarzenie %1$d za pomocą Twojego klucza Nostr. - - Ta aplikacja nApplet chce opłacić fakturę Lightning w wysokości %1$d sat. - Ta aplikacja nApplet chce opłacić fakturę Lightning w wysokości %1$d satoszów. - Ta aplikacja nApplet chce opłacić fakturę Lightning w wysokości %1$d satoszy. - Ta aplikacja nApplet chce opłacić fakturę Lightning w wysokości %1$d satoszów. - - - obserwuje %1$d nowe konto - obserwuje %1$d nowych kont - obserwuje %1$d nowych kont - obserwuje %1$d nowe konta - - - Przestaje obserwować %1$d konto - Przestaje obserwować %1$d kont - Przestaje obserwować %1$d kont - Przestaje obserwować %1$d konta - - - dodaje %1$d transmiter - dodaje %1$d transmiterów - dodaje %1$d transmiterów - dodaje %1$d transmitery - - - USUWA %1$d transmiter - USUWA %1$d transmiterów - USUWA %1$d transmiterów - USUWA %1$d transmitery - - - wycisza jeszcze %1$d osobę - wycisza jeszcze %1$d osób - wycisza jeszcze %1$d osób - wycisza jeszcze %1$d osoby - - - ODBLOKOWUJE %1$d osobę - ODBLOKOWUJE %1$d osób - ODBLOKOWUJE %1$d osób - ODBLOKOWUJE %1$d osoby - - ⚠️ To obserwuje %1$s. - ⚠️ To zaprzestaje obserwacji %1$s. - ⚠️ To ucisza %1$s. - ⚠️ To odblokowuje %1$s. - ⚠️ To spowoduje przepisanie Twojej listy obserwowanych: %1$s. - ⚠️ To przepisuje twoją listę transmiterów: %1$s. Twoje posty i przeczytane wpisy zmieniają się wraz z tym. - ⚠️ Spowoduje to aktualizację listy wyciszonych: %1$s. Wyciszone słowa i hashtagi nie są tutaj wyświetlane — naciśnij „Pokaż wydarzenie”, aby wyświetlić pełną listę. - %1$s i %2$s - Powoduje to ponowne opublikowanie istniejącej listy bez zmian. - - Spowoduje to utworzenie listy zawierającej %1$d pozycję. Amethyst nie posiada kopii w pamięci podręcznej, z którą mógłby dokonać porównania. - Spowoduje to zapisanie listy zawierającej %1$d pozycji. Amethyst nie posiada w pamięci podręcznej kopii, z którą mógłby to porównać. - Spowoduje to zapisanie listy zawierającej %1$d pozycji. Amethyst nie posiada w pamięci podręcznej kopii, z którą mógłby to porównać. - Spowoduje to zapisanie listy zawierającej %1$d pozycje. Amethyst nie posiada w pamięci podręcznej kopii, z którą mógłby to porównać. - - - To żądanie dotyczy usunięcia %1$d wydarzenia. - To żądanie dotyczy usunięcia %1$d wydarzeń. - To żądanie dotyczy usunięcia %1$d wydarzeń. - To żądanie dotyczy usunięcia %1$d wydarzeń. - - - Zawiera %1$d tag. Naciśnij „Pokaż wydarzenie”, aby sprawdzić, co dokładnie zostanie podpisane. - Zawiera %1$d tagów. Naciśnij „Pokaż wydarzenie”, aby sprawdzić, co dokładnie zostanie podpisane. - Zawiera %1$d tagów. Naciśnij „Pokaż wydarzenie”, aby sprawdzić, co dokładnie zostanie podpisane. - Zawiera %1$d tagi. Naciśnij „Pokaż wydarzenie”, aby sprawdzić, co dokładnie zostanie podpisane. - Połącz z Nostr @@ -529,25 +60,16 @@ Zaplanowane posty z innych kont nie zostaną opublikowane, dopóki to konto jest Ostatnio użyte Wygasa - podpisz dla %1$s (typ: %2$d) - zaszyfruj wiadomość - odczytaj prywatne wiadomości - przeczytaj swoje prywatne wiadomości za pomocą %1$s - Zawsze zezwalaj na %1$s - Amethyst nie zdołała odszyfrować tej wiadomości. Być może nie jest ona adresowana do tego konta. - Podłączone aplikacje Cofnij wszystkie uprawnienia Nadpisywanie operacji Żadna aplikacja jeszcze się nie połączyła. - uprawnienia aplikacji, sygnatariusz, napplet, nsite, aplikacja internetowa, zaufanie, połączone - Zdalne logowanie logowanie bunkier nip46 nostr zdalne logowanie Występuj jako zdalny sygnatariusz @@ -556,928 +78,74 @@ Zaplanowane posty z innych kont nie zostaną opublikowane, dopóki to konto jest Nadsłuchuje %1$d transmitterów Nasłuchuje %1$d transmitery - - Nasłuchuje %1$d transmiter - Nasłuchuje %1$d transmiterów - Nasłuchuje %1$d transmiterów - Nasłuchuje %1$d transmitery - Twój adres bunkra Wklej to do innej aplikacji, aby połączyć to ze swoim kluczem. - Adres Bunkra skopiowany - Wygenerowano nowy adres bunkra - Podłączony - Offline - Ponowne łączenie z transmiterami… - - %1$d transmiter - %1$d transmiterów - %1$d transmiterów - %1$d transmitery - - Aplikacja połączona. Amethyst loguje się teraz do niej w tle. - Połączono %1$s. Amethyst loguje się teraz do niej w tle. - Nieprawidłowy link nostrconnect:// - Ten link nie zawiera żadnego transmitera, z którym można by się połączyć - Nie udało się połączyć: %1$s - Połączenie odrzucone - To konto jest przeznaczone wyłącznie do odczytu i nie ma uprawnień do logowania - Aplikacja zdalnego logowania - - %1$d żądanie podpisania - %1$d żądań podpisu - %1$d żądań podpisu - %1$d żądania podpisu - - Wybierz wszystkie - Odznacz wszystko Nie obsłużono jeszcze żadnych zgłoszeń. - Żądania podpisu - Pełnoekranowe komunikaty z prośbą o zatwierdzenie aplikacji, która chce, aby Amethyst podpisała, zaszyfrowała lub odszyfrowała dane przy użyciu Twojego klucza. - Zatwierdzić żądanie podpisania? - Aplikacja chce się połączyć - Kliknij, aby przejrzeć - - %1$d połączona aplikacja - %1$d połączonych aplikacji - %1$d połączonych aplikacji - %1$d połączone aplikacje - - Uwierzytelnianie transmitera - auth uwierzytelnianie transmiter podpis weryfikacja nip-42 tożsamość - Zawsze uwierzytelniaj - Poświadcz autoryzację dla każdego transmitera, który o to poprosi - Nigdy nie uwierzytelniaj - Ignoruj żądania uwierzytelnienia ze wszystkich transmiterów - Niestandardowa - Wybierz dokładnie, do których transmiterów chcesz się zalogować. Zostaniesz zapytany o wszystko, na co nie wyraziłeś zgody poniżej. - \u2026to mój transmiter lub pokój, do którego dołączyłem lub który obserwuję - Czytam wpis osoby, którą obserwuję - \u2026wysyłam wiadomość do osoby, którą obserwuję - \u2026piszę do wszystkich pozostałych - - %1$s i %2$d inny - %1$s i %2$d innych - %1$s i %2$d innych - %1$s i %2$d inne - - - Trzyma również %1$d inną rzecz. - Trzyma również %1$d innych rzeczy. - Trzyma także %1$d innych rzeczy. - Trzyma również %1$d inne rzeczy. - - Zawsze się loguj - Nigdy - Zawsze, na wszystkie transmitery - Nigdy nie loguj się do żadnych transmiterów - Zalogować się do każdego transmitera? - Amethyst będzie logować się jako %1$s na każdy transmiter, który o to poprosi, i przestanie wysyłać takie zapytania. Transmitery, które zablokowałeś, oraz te, dla których ustawiłeś opcję „nigdy nie loguj się”, pozostaną bez zmian. Możesz to zmienić w sekcji „Logowanie do transmiterów”. - Nigdy nie logować się do żadnego transmitera? - Amethyst przestanie informować transmitery, że jesteś %1$s, i przestanie o to pytać. Niektóre transmitery odmówią obsługi: wiadomości, odpowiedzi i powiadomienia mogą nie zostać dostarczone. Transmitery, dla których ustawiono opcję „Zawsze loguj się”, pozostaną w tym trybie. Możesz to zmienić w sekcji „Logowanie do transmiterów”. - Zawsze, ustawione przez Ciebie - Nigdy, ustawione przez Ciebie - twoje wiadomości - twoje odpowiedzi - osoby, które czytasz - pokój, w którym publikujesz posty - pokój, który czytasz - twoja skrzynka odbiorcza - konwersacja - twój własny transmiter - ten transmiter - Filmiki - Czaty publiczne - Kanały lokalizacji - Pakiety subskrybentów - Transmisje na żywo - Pokoje audio - Podnieś rękę - Opuść rękę - Wycisz - Włącz dźwięk - Nie można wysłać wiadomości - Wycisz mikrofon - Włącz mikrofon - Nests - Kontynuuje odtwarzanie dźwięku, jeżeli pokój jest otwarty. - Nest jest podłączony - Nest — Na żywo - Kliknij, aby wrócić. - Zatrzymaj - podniosły rękę - wkroczył na scenę - mówi - dołączył(a) do publiczności - opuścił nest - Wyjdź - Nie udało się oznaczyć pokoju jako zamkniętego. Wychodzę mimo to — pokój zostanie automatycznie zamknięty. - - %1$d słuchacz - %1$d słuchaczy - - %1$d słuchacze - - Wycisz tego mówcę - Przywróć mówcę - Obserwuj - Nie obserwuj - Wycisz - Odblokuj - Nie udało się zapisać listy serwerów Nest. Spróbuj ponownie. Konsola agenta - Serwery Nest - Twoje serwery - Zapisano jako zdarzenie typ-10112 z możliwością zmiany, aby inne aplikacje klienckie mogły odczytać Twoje preferencje. - Polecane serwery - Wbudowane sugestie można dodać do listy jednym dotknięciem. - Filmy wideo - Muzyka - Playlisty - Odcinki - Podcasty Premium - - %1$d rozdział - %1$d rozdziałów - %1$d rozdziałów - %1$d rozdziały - - Błąd typu „wartość za wartość” - Ten podcast nie ma odbiorców, płacących za niego. - Podłącz portfel Nostr Wallet Connect, aby wysyłać wiadomości do odbiorców korzystających z usługi keysend (node). - Podłącz portfel Nostr Wallet Connect lub portfel debetowy, aby przesyłać satosze podczas słuchania. - Nowy odcinek - Edytuj odcinek - Publikowanie… - Dodaj okładkę - Kwadratowe zdjęcie dotyczące odcinka - URL wideo - Adres URL transkrypcji - URL rozdziałów - Dodaj plik audio - MP3, M4A lub inne audio - Twój podcast - Dodaj okładkę - Kwadratowe okładki dla swojego programu - Pokaż tytuł - Mój Podcast - Autor - E-mail kontaktowy - Strona www - Kategorie - Technologia, Aktualności - Linki do wsparcia finansowego - https://… - Język - pl - Prawa autorskie: - Nowy zwiastun - Dodaj fragment zwiastuna - Krótki fragment audio lub wideo - - %1$d zwiastun - %1$d zwiastunów - %1$d zwiastunów - %1$d zwiastuny - Dodaj odbiorcę - Ten użytkownik nie posiada adresu Lightning - - %1$d odcinek - %1$d odcinków - %1$d odcinków - %1$d odcinki - - Nowy utwór - Nowa playlista - - %1$d utwór - %1$d utworów - %1$d utworów - %1$d utwory - - Dodaj do publicznych zakładek - Usuń z publicznych zakładek - Przypnij do profilu - Odepnij z profilu - Nowa lista zakładek - Metadane listy zakładek - Zestawy hasztagów - Nowa Grupa Zainteresowań - Zmień nazwę - Notatka prywatna - Ta notatka została przekazana prywatnie i nie jest podpisana. Widzą ją wyłącznie oznaczeni uczestnicy, a nikt nie może ujawnić osobom postronnym, kto ją napisał. - Ustaw jako prywatny: udostępnij wpis wyłącznie wskazanym użytkownikom - Upublicznij - Odpowiedzi na wpis prywatny zawsze pozostają prywatne - Widoczny dla Nie ma jeszcze odbiorców: ten wpis zobaczysz tylko Ty. Dodaj osoby, którym chcesz go udostępnić. - Tylko Ty \u2014 zdecyduj, kto jeszcze może to zobaczyć - Dodaj osoby, które mają otrzymać powiadomienie - Wyślij prywatnie - Już dodany - Wyciszono - Prywatny użytkownik - - %1$s, %2$s i %3$d inny - %1$s, %2$s i %3$d innych - %1$s, %2$s i %3$d innych - %1$s, %2$s i %3$d inne - - - Ta wiadomość zostanie zaszyfrowana i dostarczona %1$d jednorazowo, po jednym razie na osobę. W przypadku zewnętrznego sygnatariusza oznacza to po jednym zatwierdzeniu na osobę. - Ta wiadomość zostanie zaszyfrowana i dostarczona %1$d razy, po jednym egzemplarzu na osobę. W przypadku zewnętrznego sygnatariusza oznacza to po jednym zatwierdzeniu na osobę. - Ta wiadomość zostanie zaszyfrowana i dostarczona %1$d razy, po jednym egzemplarzu na osobę. W przypadku zewnętrznego sygnatariusza oznacza to po jednym zatwierdzeniu na osobę. - Ta wiadomość zostanie zaszyfrowana i dostarczona %1$d razy, po jednym egzemplarzu na osobę. W przypadku zewnętrznego sygnatariusza oznacza to po jednym zatwierdzeniu na osobę. - - - %1$d osoba otrzyma powiadomienie o tym poście. - %1$d osób otrzyma powiadomienie o tym poście. - %1$d osób otrzyma powiadomienie o tym poście. - %1$d osoby otrzymają powiadomienie o tym poście. - - - To byłaby %1$d osoba. Ametyst dodaje maksymalnie %2$d na raz \u2014 odznacz kilka. - To daje %1$d osób. Ametyst dodaje maksymalnie %2$d osób na raz \u2014 odznacz kilka z nich. - To daje %1$d osób. Ametyst dodaje maksymalnie %2$d osób na raz \u2014 odznacz kilka z nich. - To daje %1$d osób. Ametyst dodaje maksymalnie %2$d osób na raz \u2014 odznacz kilka z nich. - - - Dodaj %1$d osobę - Dodaj %1$d osób - Dodaj %1$d osób - Dodaj %1$d osoby - - - Dodaj i tak %1$d osobę - Dodaj mimo wszystko %1$d osób - Dodaj mimo wszystko %1$d osób - Dodaj mimo to %1$d osoby - Dodaj Usuń użytkownika z powiadomień - Powiadomienie. Kliknij, aby wyciszyć powiadomienie od tego użytkownika - Wyciszone. Kliknij, aby ponownie powiadomić tego użytkownika Wyszukaj i dodaj użytkownika do powiadomień - Metadane listy obserwowanych są widoczne dla wszystkich użytkowników w sieci Nostr. Tylko Twoi uczestnicy prywatni są zaszyfrowani. - Przenieś do Publicznych - Przenieś do Prywatnych - Doładuj & wyślij zapa - Wyślij zapa - Doładuj %1$s satoszy do %2$s i zap %3$s %4$s satoszy · opłata ≈ %5$s satoszy - Opcja %s - (0–100)% - Pojedynczy wybór - Wielokrotny wybór - Nie można głosować - Ankieta jest zamknięta dla nowych głosów - Tylko jeden głos na użytkownika jest dozwolony dla tego typu ankiety - Autorzy ankiet nie mogą głosować we własnych ankietach. - Co to oznacza? - Ta zawartość jest taka sama od początku - Ta zawartość uległa zmianie. Autor mógł nie zobaczyć ani nie zatwierdzić zmiany - Dodaj plik - Dodaj zdjęcie - Dodaj wideo - Dodaj dokument - Serwer Plików - Wybierz serwer, aby przesłać ten plik - Serwery Multimediów Ustaw swoje preferowane serwery przesyłania multimediów. Zarządzaj przechowywanymi plikami - Moje pliki Blossom - Kopiowanie plików pomiędzy serwerami… - Anuluj - Synchronizacja Blossom - Wyświetla postęp kopiowania plików między serwerami Blossom. - Na wszystkich serwerach - Nie na wszystkich serwerach Usuń z… - Ten serwer wymaga płatności do wysłania: %1$s - - Zapłać %1$d sat - Zapłać %1$d satoszy - Zapłać %1$d satoszy - Zapłać %1$d satoszy - - Włącz wszystkie - Wyłącz wszystkie - Synchronizacja plików już trwa. Spróbuj ponownie zaimportować dane po jej zakończeniu. - - %1$d plik - %1$d plików - %1$d plików - %1$d pliki - - - Znaleziono %1$d plik do zaimportowania na Twoje serwery. - Znaleziono %1$d plików do zaimportowania na Twoje serwery. - Znaleziono %1$d plików do zaimportowania na Twoje serwery. - Znaleziono %1$d pliki do zaimportowania do serwerów. - - - Importuj %1$d plik - Importuj %1$d plików - Importuj %1$d plików - Importuj %1$d pliki - Polecane serwery multimediów Domyślna lista Amethyst-a. Możesz dodawać je pojedynczo lub dodać pełną listę. - Online - Wolny - Offline Sprawdzanie… - Dane płatności - Dodaj adresy płatności dla różnych sieci (np. bitcoin, lightning, ethereum). - Nie znaleziono aplikacji do obsługi tej płatności. Zainstaluj kompatybilny portfel. - Nie zainstalowano aplikacji do obsługi płatności %1$s . Zainstaluj kompatybilny portfel. - Zapłać %1$s — wybierasz tam kwotę - Płatność za przekazanie - Gdy autor opublikuje metodę płatności, którą można otworzyć w aplikacji na tym telefonie (Venmo, Monero, numer IBAN…), selektor zapów może ją zaproponować. Kliknięcie tej opcji otwiera odpowiednią aplikację, która prosi o podanie kwoty — żadne dane nie są przekazywane do transmiterów, więc liczba zapów we wpisie nie ulega zmianie. - Oferowane przez autora metody płatności - Nie można otworzyć płatności - Oferty BOLT12 - Dodaj jedną lub więcej ofert BOLT12 (lno1…). Są one udostępniane publicznie, aby każdy mógł Ci zapłacić. - Wysłano płatność BOLT12 - Płatność BOLT12 nie powiodła się: %1$s - BOLT12 błąd zap - Płatność została zrealizowana za pośrednictwem BOLT12, ale portfel nie zwrócił potwierdzenia, więc nie opublikowano potwierdzenia zapa. - Płatność została zrealizowana za pośrednictwem BOLT12, ale dowód płatności nie został zweryfikowany, więc nie opublikowano potwierdzenia zapłaty. - Ustawienia prywatności - Wszystkie obserwacje - Obserwowane osoby - Domyślna lista obserwowanych - W pobliżu - Teleportacja do miejsca… - Obserwuj tę lokalizację - Nie obserwuj tej lokalizacji - Wszystkie - Wybrane - Moje - Zablokowane - Nowa lista - Nowy pakiet subskrybentów - Edytuj listę - Domyślny port to 9050 - Port Socks Orbota - Aktywny silnik Tor - Użyj wersji wewnętrznej lub Orbota - Tor wstępne ustawienia prywatności - Szybka modyfikacja wszystkich ustawień poniżej - Adres Onion /Transmitery - Użyj Tor dla dowolnego adresu .onion - Transmitery DM - Zmuś Tor do wysyłania i odbierania DM - Niewiarygodne Transmitery - Wymuś Tor na transmiterach skrzynki odbiorczej/nadawczej - Zaufane Transmitery - Wymuś Tor na wszystkich transmiterach na listach - Zdjęcia profilu - Wymuś Tor podczas ładowania zdjęć profilu - Podgląd adresu URL - Wymuś Tor podczas wczytywania podglądu url - Zdjęcia - Wymuś Tor podczas ładowania zdjęć - Filmy wideo - Wymuś Tor podczas ładowania filmów - Operacje finansowe - Wymuś Tor przy zapsach, transferach lightning and cashu - Weryfikacja adresu Nostr - Wymuś Tor podczas weryfikacji adresów NIP-05 - Wgrywanie mediów - Wymuś Tor podczas wgrywania zawartości - Wewnętrznie - Orbot - Wył. - Podstawowe - Domyślne - Wszystko oprócz mediów - Pełna prywatność - Niestandardowy - Użyj Tor, gdy jest wymagany przez serwer - Ukryj swój adres IP przed przypadkowymi transmiterami - Ukryj swój adres IP wszędzie oprócz zdjęć i filmów - Ukryj swój adres IP przy wszystkich połączeniach - Stwórz swój własny - Prywatne Wiadomości - Powiadamia Cię, gdy nadejdzie prywatna wiadomość - Otrzymano Zapy - Powiadamia Cię, gdy ktoś prześle ci zapy - %1$s Satoszy - Od %1$s - dla %1$s - Otrzymane płatności - Powiadamia Cię, gdy do podłączonego portfela wpłynie płatność, która nie jest przelewem Nostr zap - Otrzymano %1$s satoszy - Nowe płatności - Odpowiedz - Przeczytane - Ja - Nowa wiadomość - Zostałeś dodany do %1$s - Nowe wiadomości - Nowe zapy - Reakcje - Powiadamia Cię, gdy ktoś zareaguje na twój post - %1$s zareagował na Twój post - dla %1$s - Nowe reakcje - Pojedynek szachowy - Powiadamia Cię o wydarzeniach w szachach - %1$s zaakceptował Twoją ofertę - %1$s wykonał ruch — teraz Twoja kolej - Aktualizacje szachów - Odpowiedzi - Powiadamia Cię, gdy ktoś zareaguje na twój post %1$s odpowiedział na: %1$s - Nowe odpowiedzi - Wzmianki - Powiadamia Cię, gdy ktoś wspomni o Tobie lub zacytuje Cię w poście - %1$s wspomniał o Tobie - Nowe wzmianki - Wiadomości - Społecznościowe - Płatności - Zawartość - Deweloper - Gry - Reposty - Powiadamia Cię, gdy ktoś prześle twój post - %1$s ponownie opublikował twój post - Nowe reposty - Multimedia - Powiadamia Cię, gdy ktoś wspomina o tobie w zdjęciu lub wideo - %1$s udostępnił(a) zdjęcie - %1$s udostępnił(a) film - Nowe multimedia - Artykuły & Wyróżnienia - Powiadamia Cię, gdy ktoś wspomni o Tobie lub wyróżni Cię w artykule - %1$s wspomniał o tobie w artykule - %1$s wyróżnił Twój artykuł - Nowe artykuły - Code & Git - Powiadamia Cię o problemach, patchach i pull requestach - %1$s otworzył problem - %1$s wysłał łatkę - %1$s otworzył Pull Request - %1$s zaktualizował Pull Request - %1$s skomentował - %1$s otworzył ponownie wątek - %1$s scalił Pull Request - %1$s zainstalował łatkę - %1$s rozwiązał problem - %1$s scalił/rozwiązał wątek - %1$s zamknął Pull Request - %1$s zamknął łatkę - %1$s zamknął zgłoszenie - %1$s zamknął wątek - %1$s oznaczył wątek jako szkic - Nowa aktywność związana z kodem - Odznaki - Powiadamia Cię, gdy zdobędziesz odznakę - Otrzymałeś odznakę - Przyznana przez %1$s - Nowe odznaki - Nutzap od %1$s - Onchain zap od %1$s - %1$s zadał pytanie - Połączenia przychodzące - Powiadomienia o przychodzących połączeniach głosowych i wideo - Połączenie przychodzące - Przychodzące połączenie głosowe\u2026 - Przychodzące połączenie wideo\u2026 - Zadzwoń przez %1$s - Połączenia - Powiadomienie o trwającym połączeniu - Rozłącz się - Akceptuj - Odrzuć - Wycisz - Włącz dźwięk - Kamera włączona - Kamera wyłączona - Udostępnij ekran - Przestań udostępniać ekran - Udostępnianie ekranu - Głośnik - Słuchawka - Bluetooth - Ametysta potrzebuje dostępu do mikrofonu, aby rozpocząć rozmowę głosową. Proszę włączyć ją w ustawieniach aplikacji. - Ametysta potrzebuje dostępu do aparatu i mikrofonu, aby rozpocząć rozmowę wideo. Proszę włączyć je w ustawieniach aplikacji. - Ustawienia połączeń - Utrzymuje aktywne połączenia z transmiterami skrzynki odbiorczej, umożliwiając otrzymywanie powiadomień w czasie rzeczywistym - Powiadomienia Ametyst Aktywne - - Połączono z %1$d transmiterem odbiorczym - Połączono z %1$d transmiterami odbiorczymi - Połączono z %1$d transmiterami odbiorczymi - Połączono z %1$d transmiterami odbiorczymi - - - Podłączono do %1$d transmitera - Podłączono do %1$d transmiterów - Podłączono do %1$d transmiterów - Podłączono do %1$d transmiterów - - Pokaż szczegóły - Ukryj szczegóły - - %1$s \u00b7 %2$d transmiter - %1$s \u00b7 %2$d transmiterów - %1$s \u00b7 %2$d transmiterów - %1$s \u00b7 %2$d transmitery - - Przeglądanie - Multimedia - Hashtagi - Tematy - Rozmowa - Szukaj - Wyszukiwanie brakujących wydarzeń - Obserwowanie wydarzeń - Pobiera wydarzenia na podstawie identyfikatora, do których odnosi się jakiś element na ekranie, ale których jeszcze nie masz — cytat, wiadomość nadrzędna odpowiedzi, początek wątku. - Monitoruje aktualnie wyświetlane wydarzenia pod kątem nowych odpowiedzi, reakcji, udostępnień, zapsów i zgłoszeń, dzięki czemu liczby są aktualizowane na bieżąco podczas czytania. - Dodatki - Informacje o transmiterze - Inne - Wyszukiwarka listy transmiterów - Obserwowanie profili - Dane konta - Główny kanał - Grupy Transmiterów - - %1$d grupa - %1$d grup - %1$d grup - %1$d grupy - - Czaty efemeryczne - Czaty z funkcją lokalizacji - Czat podczas transmisji na żywo - Grupy NIP-29, do których dołączyłeś. Każda grupa działa na jednym transmiterze, więc aplikacja łączy się z każdym transmiterem, na którym znajduje się jakaś Twoja grupa. - Czaty, w których nie jest zapisywana historia — wiadomości są dostępne tylko wtedy, gdy użytkownik jest podłączony, więc aby otrzymywać jakiekolwiek wiadomości, należy pozostać subskrybentem. - Pokoje powiązane z lokalizacją dla obszarów, które obserwujesz, wymagane od transmiterów, które je obsługują. - Czatuj i zap cele powiązane z transmisjami na żywo, które masz otwarte lub które obserwujesz. - Skrzynka odbiorcza DM - Portfel - Skrzynka odbiorcza Nutzap - Katalog Mint - Podłącz portfel - Czaty społecznościowe - Kanały społecznościowe - Twoje transmitery skrzynek odbiorczych oraz niewielka, zmieniająca się próbka transmiterów, na których publikują osoby, które obserwujesz – na wypadek, gdyby wzmianka została dostarczona gdzie indziej. - Transmitery skrzynek odbiorczych DM, gdzie dostarczane są zawijane wiadomości DM. - Transmiter domowy każdego czatu, który masz otwarty lub do którego dołączyłeś. - Transmitery, na których każda społeczność publikuje swoje plany. - Wiadomości grupowe i pakiety kluczy na transmiterach poszczególnych grup. - Transmitery pokoju, dopóki jest otwarty. - Twój profil, ustawienia i wersje robocze na Twoich domowych transmiterach. - Profile osób znajdujących się obecnie na ekranie. - Ustala, na jakich transmiterach poszczególne osoby publikują swoje treści, dzięki czemu ich posty mogą być pobierane z właściwego miejsca. - Listy obserwacji, używane do budowania Twojego kanału i Twojej sieci WoT. - Raporty sporządzone przez obserwowanych przez Ciebie użytkowników na temat profili wyświetlanych obecnie na ekranie, uzyskane z poszczególnych transmiterów, na których publikują ci użytkownicy. - Zgłoszenia od obserwujących - Własne zdarzenia z portfela, odczytane z transmiterów, na których zostały opublikowane. - Monitoruje transmitery Nutzap, a także transmitery skrzynek odbiorczych i wiadomości prywatnych, dzięki czemu żadna płatność nie umknie. - Sprawdza na różnych transmiterach, na których istnieją serwisy typu „mint”, oraz które z nich są polecane przez użytkowników. - Powiadomienia z podłączonego portfela. - Aktywne subskrypcje transmitera - - %1$d filtr - %1$d filtrów - %1$d filtrów - %1$d filtry - - - %1$d transmiter - %1$d transmiterów - %1$d/ transmiterów - %1$d transmitery - - - %1$d filtr nie został jeszcze przypisany - %1$d filtrów nie zostało jeszcze przypisanych - %1$d filtrów nie zostało jeszcze przypisanych - %1$d filtry nie zostały jeszcze przypisane - %1$s \u00b7 %2$s - %1$d%% z wszystkich - subskrypcje filtry przekaźniki, żądania (reqs) połączenia dlaczego diagnostyka - Posty osób, które obserwujesz, są pobierane z transmiterów, na których każda z nich publikuje swoje treści. - Łączenie z transmiterami odbiorczymi\u2026 Usługa powiadomień zawsze włączona Utrzymuje stałe połączenie z transmiterami odbiorczymi, aby zapewnić natychmiastowe dostarczanie powiadomień. Wyświetla bieżące powiadomienia. Zużywa więcej baterii, ale gwarantuje, że nigdy nie przegapisz żadnej wiadomości. Usługa powiadomień - Wł. - Wył. - Usługa powiadomień w tle - Przełącznik główny do powiadomień w tle w czasie rzeczywistym. Wyłącz go, aby oszczędzać baterię — podobnie jak w trybie samolotowym. Gdy jest wyłączony, żadne konto nie pozostaje połączone w tle, a przełącznik pozostaje wyłączony (nawet po ponownym uruchomieniu urządzenia) do momentu ponownego włączenia. - Konta aktywne w tle Zachowaj aktywne konto w tle - Podział powiadomień według obserwowanych - Wyświetl dwie zakładki powiadomień — „Obserwowani” (osoby, które obserwujesz) oraz „Wszyscy”. Wskaźnik nieprzeczytanych powiadomień świeci się tylko w przypadku aktywności osób, które obserwujesz. - Pokaż wiadomości - W zakładce „Powiadomienia” znajdują się zarówno wiadomości bezpośrednie, jak i grupowe. Wyłącz tę opcję, aby wiadomości były wyświetlane wyłącznie w zakładce „Wiadomości”. - Powiadom: - Dzisiaj - Ukryj - Pokaż - Ostrzeżenie - Filtr spamu - Ukrywa posty od nieznajomych, które były dokładnie takie same przez 5 lub więcej razy - Dodaj tag klienta do moich zdarzeń - Po włączeniu Amethyst dodaje tag klienta NIP-89 do zdarzeń, które publikujesz. - Ostrzeżenie o zgłoszeniach - Wyświetla komunikat ostrzegawczy, gdy posty zostały zgłoszone przez 5 lub więcej obserwowanych osób - Ukryj posty, które naruszają zasady społeczności - Usuwa posty z kanałów społeczności, gdy społeczność opublikuje dokument zawierający zasady NIP-9B, a dane wydarzenie nie spełnia tych zasad. Nie ma to żadnego wpływu, jeśli społeczność nie posiada strukturyzowanych zasad. - Preferencje filtrowania - Zablokowane treści - Nie zablokowałeś jeszcze żadnych użytkowników. - W tej sesji żadne konta nie zostały oznaczone jako spam. - Brak ukrytych słów. Wpisz poniżej słowo, aby ukryć posty, które je zawierają. - Brak wstępnie wybranych typów reakcji dla tego użytkownika. Przytrzymaj przycisk serce, aby zmienić - Odczytaj z Transmitera - Zapisz do Transmitera - Ilość w bajtach, która została wysłana do tego transmitera, w tym filtry i wydarzenia - Ilość w bajtach, która została otrzymana z tego transmitera, w tym filtry i wydarzenia - Polityka Prywatności - Normy bezpieczeństwa dzieci - O Nas & Informacje Prawne - Cashu Token - Nie ustawiono adresu Lightning - Transmitery - Pakiety subskrybentów - Popularne - Wybrane przez algorytm - Market - Na żywo - Społeczności - Czaty - Treść wrażliwa - Dodaje ostrzeżenie o wrażliwej treści przed wyświetleniem tej zawartości - Ustawienia interfejsu Ustawienia Aplikacji - Tłumaczenia - Reakcje - Ustawienia - Ustawienia konta - Ustawienia aplikacji - Niebezpieczna strefa - Zresetuj stan marmota - Reset stanu Marmota. - Nie można zresetować stanu Marmota: %1$s - Zawsze - Nielimitowany Wi-Fi - Nigdy - Wi-Fi - Kompletny - Uproszczony - Dynamiczny - Pełny - Prosty - Szybki - Klasyczny - Nowoczesny - Automatyczny - Jasny - Ciemny - Wygląd - Media & Dane - Ogólne - Połączenie - Przejście przez Tor - Sekcje & Wątki - Widoczne karty - Zawartość kanału - Notatki tekstowe - Reposty - Komentarze & odpowiedzi - Zdjęcia - Filmy wideo - Filmiki - Artykuły - Strony Wiki - Wyróżnienia - Ankiety - Ogłoszenia - Torrenty - Wiadomości głosowe - Bieżąca aktywność - Czaty efemeryczne - Interaktywne opowieści - Szachy - Obserwacje ptaków - Certyfikaty - Szkice NIP - Muzyka & audio - Podcasty - Zbiórki funduszy - Oceny i recenzje - Ocena: %1$s na 5 - Materiały edukacyjne - Katalog - Zapis pliku - - %1$d element - %1$d elementów - %1$d elementów - %1$d elementy - - - Jeszcze %1$d pozycja - Jeszcze %1$d pozycji - Jeszcze %1$d pozycji - Jeszcze %1$d pozycje - - Przypomnienia - Podłącz portfel - Motyw - Fioletowy - Niebieski - Zielony - Pomarańczowy - Czerwony - Różowy - Czcionka - Czcionka używana w całej aplikacji - Domyślna - Sans Serif - Serif - Monospace - Systemowy - Sans - Serif - Mono - Rozmiar czcionki - Dostosuj rozmiar tekstu w całej aplikacji - Mały - Normalny - Duży - Wielki - Podgląd obrazu - Odtwarzanie filmów - Autoodtwarzanie filmów - Podgląd URL - Aktywne Przewijanie - Ukrywa pasek przewijania - Tryb interfejsu - Wybierz styl wpisu - Styl galerii - Wybierz styl galerii - Spamerzy - Wyciszone. Kliknij, aby włączyć dźwięk - Dźwięk włączony. Kliknij, aby wyciszyć - Cofnij %d sekund - Przewiń %d sekund - Wybierz miejsce na mapie - Zmień miejsce na mapie - Post ekskluzywny dla lokalizacji - Tylko obserwatorzy z twojej lokalizacji to zobaczą. Twoi ogólni obserwatorzy nie zobaczą tego. - - %1$d utwór - %1$d utworów - %1$d utworów - %1$d utwory - - - +%1$d utwór więcej - +%1$d utworów więcej - +%1$d utworów więcej - +%1$d więcej utworów - - Wgraj miniaturkę - Wybierz kwadratowe zdjęcie, które posłuży jako okładka tego utworu. - Wgraj plik audio - Wybierz plik w formacie MP3, WAV lub FLAC. Po kliknięciu „Zapisz” zostanie on przesłany na Twój serwer multimediów. - Wgraj miniaturę i plik audio, a następnie opublikuj. Proces ten będzie kontynuowany nawet po opuszczeniu ekranu. - Edytuj playlistę - Wgraj miniaturkę - Wybierz kwadratowe zdjęcie, które posłuży jako grafika tej playlisty. - Wgrywanie okładki i publikacja. Proces ten będzie kontynuowany nawet po opuszczeniu ekranu. Publiczna Grupa - Prywatna - Zaszyfrowane grupy - Z uwzględnieniem transmitera - Prywatna Wiadomość - Wiadomości bezpośrednie, zaszyfrowane end-to-end - 1:1–5 pomieszczeń - Pojedyncze i małe grupowe czaty z ludźmi, których znasz. - Nowa wiadomość - 1-on-1 & małe grupy - Zaszyfrowane end-to-end - Nie można później dodać użytkowników - Grupa Marmot - Większe grupy prywatne - Ograniczone przez urządzenie - Większe grupy prywatne, które przerosły małe grupy DM. - Utwórz Grupę - Powiększa małe DMs - Szyfrowany czat grupowy - Ograniczone przez urządzenie — nie pojawi się, jeśli zalogujesz się gdzie indziej - Społeczność Concord - Społeczności podzielone według kanałów - Przestrzeń robocza - Wielkie społeczności, zorganizowane według kanałów lub obszarów działania. - Utwórz społeczność - Skaluje się do bardzo dużych społeczności - Podział według kanału / obszaru działania - Więcej opcji konfiguracji - Czat Publiczny - Wiadomości publiczne na transmiterze - Niemoderowane - Otwarte fora publiczne, na których każdy może publikować posty. - Utwórz czat publiczny - Każdy może dołączyć - Prosty & łatwy do znalezienia - Tylko publiczne - Brak moderacji - Grupa Transmiterów - Obsługiwane przez transmiter, publiczne lub prywatne - Moderowane - Grupy moderowane przez transmiter, na którym się znajdują. - Pokaż grupy transmiterów - Moderowane przez transmiter - Publiczne lub prywatne - Związany z tym jednym transmiterem - Czat efemeryczny - Ktokolwiek jest teraz online - Na żywo - Czat na żywo z każdym, kto jest właśnie online. - Rozpocznij czat - Porozmawiaj z osobami, które są teraz online - Nic nie zostało zapisane - Brak historii - W zakresie transmitera - Grupy Transmiterów - Grupy Transmiterów - Wiadomości - Prywatne wiadomości - Wiadomości bezpośrednie zaszyfrowane end-to-end (NIP-17). - Starszy typ wiadomości DM - Starsze, mniej prywatne zaszyfrowane wiadomości bezpośrednie (NIP-04). - Kanały publiczne - Otwarte, publiczne pokoje czatu, do których każdy może dołączyć i których treści każdy może czytać (NIP-28). - Grupy Transmiterów - Czat grupowy zarządzany przez transmiter, z listami uczestników i funkcją moderacji (NIP-29). - Zaszyfrowane grupy - MLS zaszyfrowane czaty grupowe (Marmot). - Społeczności Concord - Zaszyfrowane społeczności z wieloma kanałami (Concord). - Czaty z funkcją lokalizacji - Publiczny czat dotyczący konkretnego miejsca w ramach geohashu (geolokalizacja). - Czaty efemeryczne - Lekkie pokoje, które nie utrzymują się w historii. - Utwórz grupę - Nowy kanał - Nowe forum - Kanał prywatny - Ukryty na liście kanałów i dostępny wyłącznie na zaproszenie. Opcja „Wyłączone” oznacza, że każdy użytkownik tego transmitera może go znaleźć i dołączyć do niego. Kanał forum Wpisy w wątku zamiast osi czasu czatu. Nie można tego później zmienić. Nazwa grupy @@ -1487,35 +155,19 @@ Zaplanowane posty z innych kont nie zostaną opublikowane, dopóki to konto jest Utwórz Tworzenie zaproszenia… Kod zaproszenia skopiowany - Edytuj grupę Nazwa grupy Temat (opcjonalnie) Prywatna (odczyt tylko dla członków) Tylko na zaproszenie Zapisz - Usuń grupę - Usunąć \"%1$s\"? To usuwa grupę i jej historię dla wszystkich i nie może być cofnięte. - Usuń kanał - Usunąć \"%1$s\"? To usuwa kanał i jego wiadomości dla wszystkich i nie może być cofnięte. - Archiwizuj kanał - Odarchiwizuj kanał Zmień lokalizację - Prywatna - Tylko członkowie mogą czytać wiadomości. Szukam grup w Twoich transmiterach… Nie znaleziono jeszcze żadnych grup dla tego filtra. - Tytuł Napisz coś… Post Dodano do %1$s - - %1$d członek - %1$d członków - %1$d członków - %1$d członkowie - %1$d wiadomość %1$d wiadomości @@ -1534,34 +186,7 @@ Zaplanowane posty z innych kont nie zostaną opublikowane, dopóki to konto jest %1$d osób, które obserwujesz %1$d osoby, które obserwujesz - - %1$d grupa - %1$d grup - %1$d grup - %1$d grupy - Prywatna - Temat - Nie można wysłać - Najpierw podaj adresata wiadomości - Nie znaleziono portfela - Amethyst nie znalazł żadnej aplikacji portfela obsługującej Nostr Wallet Connect (NWC). -\n\nCo możesz zrobić: -\n\t1. Zweryfikuj wsparcie NWC: Sprawdź, czy preferowana aplikacja portfela jest kompatybilna z Nostr Wallet Connect. -\n\t2. Utwórz połączenie: Przejdź do aplikacji portfela i utwórz nowe połączenie NWC. -\n\t3. Połącz z Amethyst: Twój portfel zazwyczaj oferuje trzy opcje: -\n\t\t3. Automatyczne połączenie: przycisk, który automatycznie otwiera i łączy się z Amethyst. Jeśli tak, kliknij ten przycisk, otwórz Ametyst i naciśnij przycisk \"Zapisz\" na nowym ekranie. -\n\t\t3. Połączenie ręczne: adres URI połączenia, który można skopiować i wkleić, klikając ikonę wklejania na tym ekranie, aby wprowadzić go bezpośrednio. -\n\t\t3. Kod QR: Portfel tworzy kod QR, który można odczytać z przycisku QR na tym ekranie. - - Motyw ciemny, jasny lub automatyczny - Automatycznie załaduj obrazki i Gify - Automatycznie odtwarzaj filmy i pliki GIF - Automatycznie odtwarzaj filmy, gdy są widoczne na ekranie - Pokaż podgląd linków - Kopiuj do schowka - Skopiowano do schowka - Udostępnij lub zapisz Wyślij jako DM Nowe wyróżnienie Nowe zdjęcie @@ -1570,288 +195,24 @@ Zaplanowane posty z innych kont nie zostaną opublikowane, dopóki to konto jest Zeskanuj QR kod Skanuj QR Zeskanuj QR kod - Nowe wyróżnienie Wyróżniony tekst - Dodaj swoje przemyślenia… - Dodano pliki - Pliki dodane do Twojej galerii profilu - Nie można wysłać zapa - Brakująca konfiguracja LN - Użytkownik %1$s nie ma skonfigurowanego adresu LN, aby odbierać satosze - Błąd podczas otwierania aplikacji logującej - Nie można odnaleźć aplikacji logującej. Sprawdź, czy aplikacja nie została odinstalowana - Nie można odtworzyć tego filmu - Kodek lub format nie jest obsługiwany na tym urządzeniu (%1$s). Spróbuj go otworzyć w przeglądarce. - Otwórz w przeglądarce - Prośba o zalogowanie została odrzucona - Upewnij się, że aplikacja logującego autoryzuje tę operację - Nie znaleziono portfeli do zapłacenia faktury z Lightning (Error: %1$s). Proszę zainstalować Lightning wallet, aby używać zapów - Nie znaleziono portfeli do zapłacenia faktury z Lightning. Proszę zainstalować Lightning wallet, aby używać zapów - Nie można otworzyć linków Blossom - Nie znaleziono aplikacji Blossom. Zainstaluj lokalną aplikację Blossom, aby wyświetlić ten plik - Ukryte słowa - Zablokowane wątki - Brak zablokowanych wątków - Zdjęcie profilowe - Pokaż zdjęcia profilowe - Nie można zapłacić faktury - Nie można wypłacić - Nie można wykupić Cashu - Mint dostarczył następujący komunikat błędu: %1$s - Niebezpieczny adres Cashu mint - Amethyst nie skontaktował się z emitentem tego tokena. %1$s - Cashu odebrano - %1$s satsy zostały wysłane do Twojego portfela. (opłata: %2$s satoszy) - W systemie nie znaleziono kompatybilnego portfela Cashu - Nie można pobrać faktury z serwerów odbiorcy - Twój dostawca połączenia z portfelem zwrócił następujący błąd: %1$s - Twój dostawca usługi Wallet Connect wysłał odpowiedź, której Amethyst nie zdołała odczytać. - Nie można stworzyć LNUrl z Adresu \"%1$s\". Sprawdź konfigurację użytkownika - Nie można pobrać faktury od %1$s: %2$s - Błąd przetwarzania JSON z %1$s. Sprawdź konfigurację lightning użytkownika - Nie znaleziono zwrotnego adresu URL z odpowiedzi %1$s - Nieprawidłowa kwota faktury (%1$s satoszy) od %2$s. Powinieno być %3$s - Nie można utworzyć faktury przed wysłaniem zapa. Portfel odbiorcy wysłał następujący błąd: %1$s - \"Tylko do odczytu\" - Nie ustawiono odzewu - Powiadomienia - Dostawa - Wyświetlanie w aplikacji - Kategorie - Wiadomość od %1$s - Zablokuj transmiter - Witaj %1$s, czy to nadal jest dostępne? - Odzież - Akcesoria - Elektronika - Meble - Kolekcjonerstwo - Książki - Zwierzęta domowe - Sporty - Fitness - Sztuka - Rzemiosło - AGD - Biuro - Żywność - Różne - Inne - Nie udało się wgrać załącznika - Nie można otworzyć skompresowanego pliku - Błąd wysyłania: %1$s - Serwer nie podał adresu URL po załadowaniu - Nie można pobrać przesłanych plików z serwera - Nie można sprawdzić pobranego pliku po wgraniu: %1$s - Nie udało się wgrać pliku do %1$s: %2$s - Nie udało się usunąć: %1$s - Pliki są zbyt duże dla NIP-95 - Szyfrowanie plików - W celu zapewnienia prywatności zaszyfruj pliki przed ich przesłaniem. Niektóre serwery mogą nie akceptować zaszyfrowanych plików na bezpłatnych kontach. - Nie udało się przesłać zaszyfrowanego pliku - Wiele serwerów nie akceptuje plików zaszyfrowanych na kontach bezpłatnych. Możesz spróbować ponownie bez szyfrowania. - Użyj kodeka H.265/HEVC - Lepsza jakość przy mniejszych rozmiarach plików, lecz nie wszystkie urządzenia obsługują odtwarzanie H.265. - Konwertuj GIF do MP4 - Konwertuje animowany GIF na wideo MP4 dla mniejszego rozmiaru pliku i lepszej kompatybilności odtwarzania. - Usuń prywatne metadane - Próba usunięcia prywatnych metadanych z obsługiwanych plików multimedialnych przed przesłaniem - Metadane nie mogą zostać usunięte - Nie udało się usunąć prywatnych metadanych z plików multimedialnych. Przesyłanie anulowane. - Anulowano przesyłanie - Nie można usunąć metadanych z AVIF: %1$s - Start - Eksploracja - Wiadomości - Powiadomienia - Multimedia - Kalendarze - Listy kalendarzy - Szachy - Portfel - Nie udało się wczytać transakcji - Nie udało się wczytać kolejnych transakcji - Nie udało się odczytać stanu konta - Nie udało się utworzyć faktury - Twój portfel nie zwrócił faktury - Upłynął limit czasu żądania portfela - Nie można dotrzeć do Twojego portfela: %1$s - Twój portfel odpowiedział czymś, czego Ametyst nie rozpoznaje (%1$s) - Amethyst nie mógł odszyfrować odpowiedzi Twojego portfela — portfel może używać innego klucza - Portfel Cashu (NIP-60) Klucz Nutzap (zaawansowany) Oddzielny klucz prywatny służący wyłącznie do odbierania NIP-61 Nutzaps. Nie jest to klucz tożsamości Nostr. Wygeneruj nowy klucz Klucz prywatny P2PK (hex) - Edytuj portfel Cashu Aktualizuj dane mojego konta - - +%1$d więcej - +%1$d więcej - +%1$d więcej - +%1$d więcej - - - Polecany przez %1$d innego - Polecane przez %1$d innych - Polecanych przez %1$d innych - Polecane przez %1$d innych - - Popularne Minty - Pasujące Minty - Otrzymano - Wysłano - Opublikuj żądanie usunięcia rekomendacji %1$s dla typu:38000. Transmitery zgodne ze standardem NIP-09 odrzucą je. - Odzyskano %1$s satoszy w ramach %2$s dowodów. - Zapłać %1$s satoszy + do %2$s satoszy za opłatą? - Nutzap nieudany - Brak pubkey odbiorcy w notatce - Nutzaps jest publiczny i ujawniłby ten prywatny wpis. Zamiast tego użyj zap-u Lightning. - Nie można utworzyć odniesienia do wydarzenia - Czekam na opłacenie faktury… - Sprawdzanie minta… - Wolne - Normalne - Szybkie - ~1 godz. - ~30 min - ~10 min - %1$s · %2$s sat/vB · %3$s - - Wyślij %1$s satoszy, %2$d kierunkowo - Wyślij %1$s satoszy, %2$d kierunkowo - Wyślij %1$s satoszy, %2$d kierunkowo - Wyślij %1$s satoszy, %2$d kierunkowo - - - Użyj %1$d-kierunkowego podziału zapów dla tego wpisu - Użyj %1$d-kierunkowego podziału zapów dla tego wpisu - Użyj %1$d-kierunkowego podziału zapów dla tego wpisu - Użyj %1$d-kierunkowego podziału zapów dla tego wpisu - - - Podział na %1$d odbiorcę - Podział na %1$d odbiorców - Podział na %1$d odbiorców - Podział na %1$d odbiorców - - - Pominięto %1$d odbiorcę Lightning-address-only - on chain potrzebuje Nostr pubkey, aby uzyskać adres. - Pominięto %1$d odbiorców Lightning-address-only - on chain potrzebuje Nostr pubkey, aby uzyskać adres. - Pominięto %1$d odbiorców Lightning-address-only - on chain potrzebuje Nostr pubkey, aby uzyskać adres. - Pominięto %1$d odbiorców Lightning-address-only - on chain potrzebuje Nostr pubkey, aby uzyskać adres. - - ładowanie salda - tworzenie transakcji - podpisywanie - transmisja - publikacja pokwitowania - Nie skonfigurowano zaplecza łańcucha Bitcoin - Nie udało się załadować Twojego salda Bitcoin - Nie można utworzyć transakcji - Udział odbiorcy jest znikomy - Nie można podpisać transakcji - Nie można wysłać transakcji - Płatność została wysłana, ale nie udało się opublikować potwierdzenia zapłaty - - Płatność wysłana (%1$d paragonu %2$d opublikowanego), ale następnego paragonu nie można opublikować - Płatności wysłane (%1$d paragonów %2$d opublikowanych), ale następnych paragonów nie można opublikować - Płatności wysłane (%1$d paragonów %2$d opublikowanych), ale następnych paragonów nie można opublikować - Płatności wysłane (%1$d paragony %2$d opublikowane), ale kolejnych paragonów nie udało się opublikować - - Import Obserwowanych - Nowy produkt - Nowy artykuł - Nowe wydarzenie w kalendarzu - Edytuj wydarzenie z kalendarza - Nowy kalendarz - Edytuj kalendarz - Notatki - Miesiąc - Tydzień - Dzień - - %1$s, %2$d wydarzenie - %1$s, %2$d wydarzeń - %1$s, wydarzeń %2$d - %1$s, %2$d wydarzeń - - Właśnie się dzieje - %1$s · kończy się %2$s - Udostępnij wydarzenie z kalendarza - kalendarz_przypomnienia - Przypomnienia w kalendarzu - Powiadomienie, gdy wydarzenie, w którym bierzesz udział, ma się właśnie rozpocząć. - Wydarzenie w kalendarzu - - Rozpoczęcie za %1$d min. - Rozpoczęcie za %1$d minut - Rozpoczęcie za %1$d minut - Rozpoczęcie za %1$d minut - - Nie udało się wgrać zdjęcia - Nie udało się wgrać wybranego zdjęcia. Spróbuj ponownie lub wklej adres URL. - Przypomnienia z kalendarza - Wyślij przypomnienia - Powiadomienie pojawia się, gdy zbliża się rozpoczęcie wydarzenia, w którym bierzesz udział. - - %1$d min. - %1$d min. - %1$d min. - %1$d min. - - Otwórz na mapach - Otwórz link - Otwórz wszystkie odzewy na ten post - Zamknij wszystkie odzewy na ten post - Zap - Dolny pasek nawigacji Przeciągnij, aby zmienić kolejność. Przełącz, aby dodać lub usunąć element z dolnego paska. Gdy nie ma żadnych elementów, dolny pasek jest ukryty. Zmień kolejność - Brak ulubionych. Oznacz aplikację w przeglądarce, aby dodać ją tutaj. - Nie dołączyłeś(aś) jeszcze do żadnej grupy. - Dodaj - Dodano - Główny - Czaty & Grupy - Twoje konto - Kanały - Aplikacje & Strony - Inne - Menu boczne - - %1$d ukryta - %1$d ukryte - %1$d ukrytych - %1$d ukrytych - - Widoczne - Ukryte - Zawsze włączony Wybierz, które karty pojawiają się na ekranie głównym. Gdy tylko jedna karta jest aktywna, pasek karty jest ukryty. - Wszystko - Interfejs profilu Wybierz które sekcje i kanały pojawiają się na ekranach profilu użytkownika. Wszystkie opcje są domyślnie włączone. - Odznaki w profilu - Rekomendacje aplikacji - Kanał, który otrzymał Zapa - Kanał Obserwowanych - Portfel Bitcoin (on-chain) - Ustawienia reakcji - Przyciski odtwarzacza wideo - Wizualizator dźwięku - Edytuj - Edytuj - Edytowanie wiadomości - %1$s i %2$s piszą… Przestrzenie robocze Buzz Gdzie ludzie i agenci tworzą wspólnie Opuść przestrzeń roboczą @@ -1867,69 +228,6 @@ Zaplanowane posty z innych kont nie zostaną opublikowane, dopóki to konto jest Dodaj Nie znaleziono kanałów Wygląda na to, że nie jesteś jeszcze członkiem żadnego kanału w tym transmiterze. Najpierw zaakceptuj zaproszenie do przestrzeni roboczej w przeglądarce, a następnie spróbuj ponownie. - Przypnij kanał - Odepnij kanał - - %1$d ukryta rozmowa - %1$d ukrytych rozmów - %1$d ukrytych rozmów - %1$d ukryte rozmowy - - - Zobacz %1$d rozmowę więcej - Zobacz %1$d rozmów więcej - Zobacz %1$d rozmów więcej - Zobacz wszystkie %1$d rozmowy - - Oczekiwanie na akceptację tej wiadomości przez transmiter - Brak informacji o transmiterze tej wiadomości - Akceptowane przez co najmniej jeden transmiter - Dostarczono do transmiterów wszystkich odbiorców - Data wygaśnięcia - Autor poprosił transmitery o usunięcie tego wpisu po upływie %1$s. Zniknie on z kanałów po upływie tego czasu. - Nieprawidłowy adres - Ametyst otrzymał URI do otwarcia, ale ten adres był nieprawidłowy: %1$s - Transmitery Skrzynki Odbiorczej - Transmitery wyszukujące - Dobre opcje to:\n%1$s - Transmitery wysyłające - Transmitery odbiorcze - Ustawienia Transmiterów - Publiczne transmitery domowe - Użytkownik publikuje swoje wpisy na tych transmiterach - Ten typ transmitera przechowuje całą zawartość. Amethyst będzie wysyłać Twoje posty tutaj, a inni będą korzystać z tych transmiterów, aby znaleźć Twoje treści. Wstaw od 1 do 3 transmiterów. Mogą to być transmitery prywatne, płatne lub publiczne. - Publiczne transmitery odbiorcze - Użytkownik otrzymuje powiadomienia na tych transmiterach - Ten typ transmitera odbiera wszystkie odpowiedzi, komentarze, polubienia i zapy do Twoich postów. Mogą to być płatne lub bezpłatne transmitery. Limity ustawione przez operatora transmitera mogą ograniczać otrzymywane powiadomienia, zarówno te dobre, jak i złe. Na przykład, jeśli jesteś atakowany przez spam w komentarzach, płatne transmitery mogą odfiltrować spam. Wstaw od 1 do 3 transmiterów. - Odbiorcze transmitery DM - Użytkownik otrzymuje DM na tych transmiterach - Wstaw od 1 do 3 transmiterów, które będą służyć jako Twoja prywatna skrzynka odbiorcza. Inni będą używać tych transmiterów do wysyłania wiadomości DM do Ciebie. Transmitery odbiorcze DM powinny akceptować dowolne wiadomości od każdego, ale pozwalać tylko na ich pobieranie. Dobre opcje to:\n - inbox.nostr.wine (płatny)\n - you.nostr1.com (transmitery osobiste - płatny) - Pakiety kluczy - Transmitery pakietu kluczy - Transmitery, na których publikowane są Twoje pakiety kluczy MLS (MIP-00). Inni użytkownicy pobierają te pakiety kluczy, aby zaprosić Cię do czatów grupowych w aplikacji Marmot. Wprowadź od 1 do 3 transmiterów, które akceptują zdarzenia związane z pakietami kluczy od Ciebie i zezwalają na publiczny dostęp do tych danych. - Transmitery Prywatne - Wstaw od 1 do 3 transmiterów przechowujących dane zdarzeń, których nikt inny nie widzi, takich jak Wersje robocze i/lub ustawienia aplikacji. Idealnie byłoby, gdyby te transmitery były lokalne lub wymagały uwierzytelnienia przed pobraniem treści każdego użytkownika. - Podłączone Transmitery - Aktualna lista używanych transmiterów - Transmitery wyszukujące - Lista transmiterów używanych podczas wyszukiwania treści lub użytkowników. Tagowanie i wyszukiwanie nie będą działać, jeśli nie będą dostępne żadne opcje. Upewnij się, że zaimplementowano NIP-50. - Lokalne Transmitery - Lista transmiterów działających na tym urządzeniu. - Prześlij profile do lokalnego transmitera - Przesyłaj wszystkie otrzymane wydarzenia profilu (typ 0) do lokalnego transmitera - Zaufane Transmitery - Transmitery, którym ufasz, nie potrzebujesz połączenia Tor - Ulubione kanały transmitera - Transmitery, które często przeglądasz - Transmitery Proxy - Transmitery agregatora, z których aplikacja musi pobierać kanały, takie jak filter.nostr.wine. To zastępuje model skrzynki nadawczej i sprawia, że aplikacja łączy się tylko z transmiterami z Twojej listy. - Transmitery Nadawania - Transmitery, które specjalizują się w przesyłaniu wpisów do wszystkich innych transmiterów, takich jak sendit.nosflare.com. Amethyst doda ten transmiter do wszystkich nowych wydarzeń utworzonych przez użytkownika - Transmitery indeksera - Transmitery, które specjalizują się w hostowaniu metadanych i list wszystkich użytkowników, takie jak purplepag.es. Amethyst użyje tych transmiterów do znalezienia użytkowników, którzy nie znajdują się na twoich listach. - Zablokowane Transmitery - Amethyst nigdy nie połączy się z tymi transmiterami - Eksportuj ustawienia transmiterów Strona internetowa: Przegląd Utrzymywane przez @@ -1938,680 +236,44 @@ Zaplanowane posty z innych kont nie zostaną opublikowane, dopóki to konto jest Opiekunowie Tematy Plik Readme - - %1$d element - %1$d elementów - %1$d elementów - %1$d elementy - Zamknij problem Otwórz ponownie - Repozytoria Git - Wyróżnienia - Filtruj repozytoria - Zamknij filtr - Potwierdzenie znacznika czasu - Istnieje dowód na to, że ten post został podpisany przed %1$s. Dowód został opatrzony pieczęcią w łańcuchu bloków Bitcoin w tym dniu i czasie. - Zgłoszono prośbę o potwierdzenie czasu publikacji tego wpisu, które oczekuje na wpisanie do łańcucha bloków Bitcoin. Zazwyczaj proces ten trwa kilka godzin. - Edytuj wpis - Nie jest możliwa odpowiedź na szkic wpisu - Nie jest możliwe zacytowanie szkicu wpisu - Nie jest możliwe reagowanie na szkic wpisu - Nie jest możliwy zap dla szkicu wpisu - Szkic wpisu - Błędne żądanie-Serwer nie może lub nie chce przetworzyć żądania. - Nieautoryzowany - użytkownik nie ma prawidłowych danych uwierzytelniających - Wymagana płatność - serwer wymaga płatności, aby wypełnić żądanie - Zabronione - użytkownik nie ma praw dostępu, aby złożyć żądanie - Nie znaleziono - serwer nie może odnaleźć żądanego adresu - Metoda niedozwolona - serwer obsługuje metodę żądania, ale nie docelowy zasób - Niedopuszczalne - Serwer nie znalazł żadnej zawartości spełniającej żądanie. - Wymagane uwierzytelnianie proxy - użytkownik nie ma prawidłowych danych uwierzytelniania - Limit czasu żądania - serwer przekroczył limit czasu, oczekując na kogoś innego - Konflikt - serwer nie może spełnić żądania, ponieważ istnieje konflikt z zasobem - Przepadło - Żądana zawartość została trwale usunięta z serwera i nie zostanie przywrócona - Wymagana długość - serwer odrzuca żądanie, ponieważ wymaga zdefiniowanej - Warunek wstępny nie powiódł się - warunki wstępne żądania w polu nagłówka, którego serwer nie spełnia - Payload Zbyt duży - Żądanie jest większe niż określone limity serwera i serwer odmawia jego przetwarzania - URI Zbyt długi - URL klienta jest zbyt długi, aby serwer mógł go przetworzyć. - Nieobsługiwany format plików - żądanie używa formatu multimediów, którego serwer nie obsługuje - Zakres niezadowalający — serwer nie może spełnić wartości wskazanej w polu nagłówka zakresu żądania. - Błąd oczekiwania-serwer nie może spełnić wymagań wskazanych w polu nagłówka żądania - Wymagana aktualizacja - serwer odmawia przetwarzania żądania przy użyciu bieżącego protokołu, chyba że klient uaktualni go do innego protokołu. - Wewnętrzny błąd serwera - serwer napotkał nieoczekiwany błąd i nie może zakończyć żądania - Nie zaimplementowano - serwer nie może spełnić żądania lub nie rozpoznaje metody żądania - Bad Bateway - serwer działa jako brama i otrzymał nieprawidłową odpowiedź od hosta - Usługa niedostępna - Często zdarza się, gdy serwer jest przeciążony lub wyłączony w celu konserwacji - Limit czasu bramki - serwer działał jako brama lub serwer proxy i upłynął limit czasu, czekając na odpowiedź - Wersja HTTP nie jest obsługiwana - serwer nie obsługuje wersji HTTP w zapytaniu - Wariant również Negocjacje - serwer ma błąd konfiguracji wewnętrznej - Niewystarczająca pojemność - serwer nie ma wystarczającej pojemność, aby pomyślnie przetworzyć żądanie - Wykryta pętla - serwer wykrywa nieskończoną pętlę podczas przetwarzania żądania - Wymagane uwierzytelnienie sieciowe - Klient musi być uwierzytelniony aby uzyskać dostęp do sieci Serwery Blossom Dodaj tyle serwerów, ile chcesz. Możesz wybrać, z którego chcesz skorzystać później podczas wgrywania zdjęcia - Dodaj serwer NIP-96 - Dodaj Blossom Serwer Pobierz - Nie udało się otworzyć pliku - Brak zainstalowanych aplikacji torrent do otwarcia i pobrania pliku. - Zdarzenie nie ma wystarczającej ilości informacji, aby zbudować link magnetyczny - Moje listy - Kanały - Hashtagi - Grupy zainteresowań - Lokalizacje - Społeczności - Listy - Algorytmy kanału - Wszystkie ulubione algorytmy kanału - Transmitery - Algorytmy ulubionych kanałów - Wiadomość prywatna - Publiczna wiadomość - Nie można udostępnić obrazu, spróbuj ponownie później… - Nie można udostępnić filmu, spróbuj ponownie później… - Pobieranie filmu… - Nie tłumacz z - Języki wyświetlane tutaj nie będą tłumaczone. Wybierz język, aby usunąć go z listy języków nietłumaczonych. - Przetłumacz na - Wybierz język, na który chcesz przetłumaczyć treść. - Ustawienia językowe - Dla każdej pary językowej wybierz, który język ma być wyświetlany jako pierwszy. - Pauza - Odtwórz - Wykorzystanie zasobów aplikacji - bateria, dane, zużycie, moc, diagnostyka sieci, rejestr Dzisiaj Ostatnie 7 dni - Komórka dzisiaj - Wi-Fi dzisiaj - Czas transmitera dzisiaj - W aplikacji dzisiaj - Dane dziennie - Internet mobilny (MB) - Wi-Fi (MB) - Aktywność (7 dni) Dane mobilny (w tle) Dane komórkowe (w aplikacji) Dane Wi-Fi - Czas połączenia z transmiterem - \u2026 w tle na komórce - Przetwarzanie powiadomień (procesor w stanie czuwania) - Uruchomione zadania w tle - Ponowne połączenia transmiterów (nieudane) - Żądania sieci Web - Wybudzanie radiowe podczas pobierania (szacunkowo) - Aktywny czas transferu - Czas odtwarzania multimediów - Podpisy zweryfikowane - Czas wykorzystania procesora Czas w aplikacji - Rozpoczęcie działania aplikacji - Wiadomości odszyfrowane - Zdalne podpisy - Wydobycie Proof-of work - Czas działania sieci Tor - Czas rozmów - Czas w pokojach audio - Wykrywanie lokalizacji - Zużycie baterii (w aplikacji/tle) - Usługa powiadomień w tle - Czas pracy - - %1$d startuje - %1$d startuje - %1$d startuje - %1$d startują - - Połączenia transmiterów utrzymywane po zamknięciu - W międzyczasie rozładowała się bateria (całe urządzenie) - Bateria / godz. w aplikacji - Dane / godz. w aplikacji - Średnia liczba połączeń z transmiterem - Dane komórkowe wg funkcji (7 dni) - Czas wg ekranu (7 dni) - Wbudowany Tor - Dane wg funkcji (7 dni) - Synchronizacja Transmiterów - Zdjęcia - Audio & wideo - Wgrane - Portfel & zaps - Weryfikacja adresu - Podgląd linku - Rejestracja Push - Inne - Pamięć teraz - Pamięć aplikacji (heap) - Pamięć rodzima - Pamięć podręczna (RAM) obrazu - Image cache (disk) - Notatki w pamięci - Profile w pamięci - Adresowalne wydarzenia w pamięci - Listy czatów w pamięci - Klasa pamięci urządzenia - Udostępnij deweloperom - Udostępnij - W ostatnim czasie Amethyst zużył więcej zasobów, niż oczekiwano: %1$s. Czy chcesz wysłać raport dotyczący zużycia do twórców w zaszyfrowanej wiadomości prywatnej? Przed wysłaniem zobaczysz pełną treść raportu. - %1$s danych komórkowych w tle w ciągu jednego dnia - %1$s połączeń z transmiterem w ciągu jednego dnia, gdy aplikacja działała w tle przy połączeniu komórkowym - procesor pozostawał w stanie czuwania przez %1$s w celu przetwarzania powiadomień w ciągu jednego dnia - - aplikacja uruchomiła się ponownie %1$d w ciągu jednego dnia - aplikacja uruchomiła się ponownie %1$d razy w ciągu jednego dnia - aplikacja uruchomiła się ponownie %1$d razy w ciągu jednego dnia - aplikacja uruchomiła się ponownie %1$d razy w ciągu jednego dnia - - - aplikacja ponownie połączyła się z transmiterami %1$d raz w ciągu dnia - aplikacja ponownie połączyła się z transmiterami %1$d razy w ciągu jednego dnia - aplikacja ponownie połączyła się z transmiterami %1$d razy w ciągu jednego dnia - aplikacja ponownie połączyła się z transmiterami %1$d razy w ciągu jednego dnia - - Ta wiadomość zniknie za %1$s - Metadane listy profili - Metadane listy obserwowanych są widoczne dla wszystkich użytkowników w sieci Nostr. Tylko Twoi uczestnicy prywatni są zaszyfrowani. - Metadane pakietu subskrybentów - Metadane pakietu subskrybentów są widoczne dla wszystkich użytkowników serwisu Nostr i często publikowane na wielu stronach internetowych jako zestawy startowe dla nowych użytkowników. - Edytuj pakiet subskrybentów - Rozwiń - Ponów - Reakcję - Wiadomość głosowa - Odpowiedź głosowa - - · %1$d odpowiedź - · %1$d odpowiedzi - · %1$d odpowiedzi - · %1$d odpowiedzi - - %1$d z %2$d odpowiedzi załadowanych z %3$d transmiterów. - %1$d z około %2$d odpowiedzi załadowanych z %3$d transmiterów. - - %1$d głos <unk> - %1$d głosów <unk> - %1$d głosów <unk> - %1$d głosy <unk> - - - %1$d głosujący - %1$d głosujących - %1$d głosujących - %1$d głosujący - - - %1$d głos wpłynął po zamknięciu głosowania i został wykluczony. - %1$d głosów wpłynęło po zamknięciu głosowania i zostało wykluczonych. - %1$d głosów wpłynęło po zamknięciu głosowania i zostało wykluczonych. - %1$d głosy wpłynęły po zamknięciu głosowania i zostały wykluczone. - - - %1$d głos został oddany przed opublikowaniem ankiety i jest wykluczony. - %1$d głosów zostało oddanych przed opublikowaniem ankiety i zostało wykluczonych. - %1$d głosów zostało oddanych przed opublikowaniem ankiety i zostało wykluczonych. - %1$d głosy zostały oddane przed opublikowaniem ankiety i zostały wykluczone. - - - %1$d odpowiedź nie zawierała poprawnej opcji i została wykluczona. - %1$d odpowiedzi nie zawierało prawidłowej opcji i zostało wykluczonych. - %1$d odpowiedzi nie zawierało prawidłowej opcji i zostało wykluczonych. - %1$d odpowiedzi nie zawierały prawidłowej opcji i zostały wykluczone. - - - %1$d głosujący znajduje się na liście zablokowanych. - %1$d głosujących znajduje się na liście zablokowanych. - %1$d głosujących znajduje się na liście zablokowanych. - %1$d głosujący znajdują się na liście zablokowanych. - - Transmitery wysyłające - Aplikacje - Rekomendacje - Ustawienia użytkownika - Nagłówek audio - Ścieżka audio - Utwór muzyczny - Playlista muzyczna - Odcinek podcastu - Audycja podcastowa - Podcasty autorskie - Ulubione Podcasty - Odznaki - Definicje odznak - Zestaw odznak „Przyjęty” - Odznaki profilowe - Zablokowane Transmitery - Serwery Blossom - Serwery Nest - Autentykacja Blossom - Transmitery Nadawcze - Lista zakładek - Stara lista zakładek - Data spotkania - Kalendarz - Spotkanie - RSVP Spotkania - Szachy - Autoryzacja szachów - Ulubione Transmitery - Wyzwania w szachach - Akceptuj Szachy - Ruch szachów - Koniec gry - Propozycja remisu szachowego - Określenie kanału - Ukryta wiadomość kanału - Lista kanałów - Wiadomość kanału - Metadane kanału - Ukryty użytkownik kanału - Plik DM - Wiadomość DM - Transmitery DM - Ogłoszenia - Komentarze - Def Społeczności - Lista społeczności - Post społeczności - Lista obserwowanych - Usunięcia - Wersje robocze - Pakiety emotikonów - Lista Pakietów Emoji - Czat efemeryczny - Efemeryczne pokoje czatowe - Nagłówek pliku - Galeria profilu - Serwery Plików - Dane typu blob - Nagłówki Blob - Dane medyczne - Pakiety subskrybentów - Udostępnienia (16) - Obserwacja geohashów - GiftWraps - Problem z Git - Łatka Git - Repozytorium Git - Odpowiedź Git - Wniosek o zmianę - Aktualizacja PR - Status Git: Otwarty - Status Git: Zastosowano - Status Git: Zamknięty - Status Git: Szkic - Cele Zap-a - Obserwowane hashtagi - Wyróżnienia - Autoryzacja http - Indeks listy transmiterów - Wstęp do przygody - Scena Przygody - Lektura przygody - Opisane zakładki - Czaty na żywo - Na żywo - Zapy - Zapytanie NWC - Odpowiedź NWC - Prywatne Zapy - Sugestia zapa - Blogi - Pokój spotkań - Stan pokoju - Strefa spotkań - Profil - Lista zablokowanych - NNS - NIP - Nostr Connect - Status DVM - Żądania treści DVM - Treść odpowiedzi DVM - Żądanie użytkownika DVM - Odpowiedź użytkownika DVM - OTS - Płatność dla - Listy osób - Zdjęcia - Treningi - Pineski - Zap ankiecie - Sondaż - Odpowiedź w sondażu - Wiadomości NIP-04 - Transmitery Prywatne - Transmitery Proxy - Wiadomość publiczna - Reakcje - Wizytówka - Autoryzacja transmitera - Wyszukiwanie transmiterów - Komunikat monitora transmiterów - Zestaw transmiterów - Zgłoszenia - Powtórzenia - Usuń użytkownika - Pieczęć - Szukaj Transmiterów - Status użytkownika - Wpisy - Edytowane - Torrenty - Komentarze torrentów - Zaufane Transmitery - Zaufani dostawcy - Wideo (odpowiedź) - Filmiki (odpowiedź) - Wideo - Filmiki - Wiadomość głosowa - Odpowiedź głosowa - Wybudź - Zakładka - Wiki - Czas działania %1$d%% - Ustawienia Namecoin - %dms - Sync relays - Eksplorator Bitcoin (OTS) - wydarzenia od Ciebie - wydarzeń dla Ciebie - wydarzenia podlegające wyszukiwaniu - DMs - profile - listy wychodzące - Ostatnio widziano %1$s temu - Ostatnio widziano %1$s (%2$s temu) - Ostatnio widziano przed chwilą - Nigdy nie widziano - - %1$d minuta - %1$d minut - %1$d minut - %1$d minuty - - - %1$d godzina - %1$d godzin - %1$d godzin - %1$d godziny - - - %1$d dzień - %1$d dni - %1$d dni - %1$d dni - - - %1$d tydzień - %1$d tygodni - %1$d tygodni - %1$d tygodnie - - - %1$d miesiąc - %1$d miesięcy - %1$d miesięcy - %1$d miesiące - - - %1$d rok - %1$d lat - %1$d lat - %1$d lata - - - %1$d Mint - %1$d Mintów - %1$d Mintów - %1$d Minty - - - %1$d oczekująca faktura - %1$d oczekujących faktur - %1$d oczekujących faktur - %1$d oczekujące faktury - - - Środki zgromadzone w %1$d mint, z których nie korzystasz - Środki przechowywane na %1$d mintach, których nie używasz - Środki przechowywane na %1$d mintach, których nie używasz - Środki przechowywane na %1$d mintach, których nie używasz - - Przeniesiono %1$s do %2$s. - Zrzuć na urządzenie - Przestań zrzucać - Wgraj HLS - Wgrywanie %1$s (%2$d z %3$d) - Certyfikat - Wniosek o certyfikat - Rekomendacja certyfikatora - Poziom biegłości certyfikatora - Zakładki - Dodaj zakładkę - Edytuj zakładkę - Sfinansowano %1$s z %2$s satoszów - Nowy cel zbiórki - Prośba o usunięcie - Wysłano prośbę o usunięcie - Wyczyść historię - Użytkownicy - Wydarzenia - Typy - Adresy IP - Ustawienia - Zaproponuj poprawki w tekście - Używa modelu sztucznej inteligencji wbudowanego w urządzenie, proponując poprawki tekstu i zmiany tonu wypowiedzi. - Monitorowane transmisje - Podczas wysyłania zdarzeń korzystaj z monitora transmisji. Pokazuje postęp na żywo i status transmisji podczas nadawania. - Zaproponuj treningi, którymi warto się podzielić - Odczytuje zakończone treningi z aplikacji Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) i proponuje udostępnienie ich w formie wpisu. O zgodę prosi się wyłącznie podczas nawiązywania połączenia. - Skonfiguruj ustawienia - Automatycznie twórz wersje robocze - Automatycznie zapisuje wersję roboczą wiadomości podczas pisania lub po zamknięciu okna edycji z niewysłanym tekstem i umieszcza ją w prywatnej skrzynce wysyłkowej transmiterów. - Dowód wykonania - Autor wykorzystał moc obliczeniową, aby wygenerować tę notatkę przy poziomie trudności %1$s — jest to pieczęć typu „proof-of-work”, która sprawia, że spamowanie staje się kosztowne. - Krótkie wpisy & odpowiedzi - Główne źródło spamu w sieci - Komentarze - Odpowiedzi na artykuły, pliki i inne treści - Zgłoszenia - Transmitery oceniają raporty pod kątem ich kosztów - Artykuły & główne wydarzenia - Artykuły i główne wydarzenia; pojawiają się sporadycznie, a ich koszt jest znikomy - Wiadomości głosowe - Publiczne wiadomości głosowe i odpowiedzi - Powtórzenia - Duża liczba dla aktywnych użytkowników - Reakcje - Wysoki wolumen; każde polubienie zużywa baterię - Publiczny & czat na żywo - Opóźnienia w wydobyciu zakłócają płynność rozmowy - Zawijanie wiadomości prywatnych - Pozwólmy, aby transmitery DM filtrowały spam w skrzynce odbiorczej; wydobywana jest tylko zewnętrzna otoczka, nigdy Twoja wiadomość - Inne publiczne treści - Ankiety, statusy na żywo, ogłoszenia i wszystkie inne treści publiczne - Wydobywanie dowodu wykonania pracy - - Wydobycie w systemie proof of work… (%1$d wpis w kolejce) - Wydobywanie w systemie proof of work… (%1$d wpisów w kolejce) - Wydobywanie w systemie proof of work… (%1$d wpisów w kolejce) - Dowód pracy w górnictwie… (%1$d posty w kolejce) - - - %1$s • wydobywanie z szybkością %2$d bitów - %1$s • wydobywanie z szybkością %2$d bitów - %1$s • wydobywanie z szybkością %2$d bitów - %1$s • wydobywanie z szybkością %2$d bitów - - - %1$s • oczekuje na wydobycie przy %2$d bitach - %1$s • oczekuje na wydobycie przy %2$d bitach - %1$s • oczekuje na wydobycie przy %2$d bitach - %1$s • oczekuje na wydobycie przy %2$d bitach - - - Domyślnie (%1$d bit) - Domyślnie (%1$d bitów) - Domyślnie (%1$d bitów) - Domyślne (%1$d bity) - - - %1$d bit - %1$d bitów - %1$d bitów - %1$d bity - - Wydobywanie dowodów wykonania pracy - Wyświetla posty, które wciąż generują dowód pracy zgodnie ze standardem NIP-13, aby proces ten mógł się zakończyć po zamknięciu aplikacji. - Anuluj - Wyślij teraz - <1 s - - %1$d sekundę - %1$d sekund - %1$d sekund - %1$d sekund - - - %1$d minutę - %1$d minut - %1$d minut - %1$d minut - - - %1$d godzina - %1$d godzin - %1$d godzin - %1$d godzin - - - %1$d dzień - %1$d dni - %1$d dni - %1$d dni - - ◆ %1$s pozostało - w każdej chwili - Twój %1$s zakończył wydobycie, ale nie mógł zostać opublikowany: %2$s - Twój %1$s zakończył wydobywanie, ale nie udało się go opublikować. Próba zostanie powtórzona przy następnym uruchomieniu aplikacji. - Wiadomość Czatu - Zgłoś - Nowy pakiet emotikonów - Edytuj pakiet emotikonów - Moje pakiety emotikonów - Emotikony - Publiczne emotikony są widoczne dla wszystkich i pojawiają się w menu odezw oraz w oknie podpowiedzi \":\", jeśli ten pakiet znajduje się na liście emotikonów. - Prywatne emotikony są przechowywane zaszyfrowane na transmiterach i widoczne tylko dla Ciebie. Znajdują się w menu odzewów oraz w autouzupełnianiu po wpisaniu znaku „:” – tak samo jak emotikony publiczne. - Wersja robocza ma %1$d bajtów; ta społeczność ogranicza ten typ do %2$d bajtów. - Projekt ma %1$d bajtów; ta społeczność ogranicza zdarzenia do %2$d bajtów. - Dzisiaj opublikowałeś/aś %1$d zdarzeń tego typu (limit wynosi %2$d). - Strona „Nowhere” - Wydarzenie „Nowhere” - Zbiórka funduszy „Nowhere” - Sklep „Nowhere” - Petycja „Nowhere” - Komunikat „Nowhere” - Zrzut „Nowhere” - Sztuka na „Nowhere” - Forum „Nowhere” - - %1$d wiadomość - %1$d wiadomości - %1$d wiadomości - %1$d wiadomości - - - %1$d członek - %1$d członków - %1$d członków - %1$d członków - - - Twój portfel nie odpowiedział w ciągu %1$d sekundy. Płatność mogła lub nie została zrealizowana — sprawdź swój portfel przed ponowną próbą. - Twój portfel nie odpowiedział w ciągu %1$d sekund. Płatność mogła lub nie została zrealizowana — sprawdź swój portfel przed ponowną próbą. - Twój portfel nie odpowiedział w ciągu %1$d sekund. Płatność mogła lub nie została zrealizowana — sprawdź swój portfel przed ponowną próbą. - Twój portfel nie odpowiedział w ciągu %1$d sekund. Płatność mogła lub nie została zrealizowana — sprawdź swój portfel przed ponowną próbą. - - - Przekroczono limit czasu żądania portfela — %1$d odpowiedź została odrzucona, ponieważ została podpisana nieoczekiwanym kluczem. Twój transmiter może być niezaufany. - Przekroczono limit czasu żądania portfela — %1$d odpowiedzi zostały odrzucone, ponieważ zostały podpisane przez nieoczekiwany klucz. Twój transmiter może być niezaufany. - Przekroczono limit czasu żądania portfela — %1$d odpowiedzi zostało odrzuconych, ponieważ zostały podpisane przez nieoczekiwany klucz. Twój transmiter może być niezaufany. - Przekroczono limit czasu żądania portfela — %1$d odpowiedzi zostały odrzucone, ponieważ zostały podpisane przez nieoczekiwany klucz. Twój transmiter może być niezaufany. - - Dodaj zdjęcie - Zmień zdjęcie - Informacje o grupie zaktualizowane - Nie udało się zaktualizować: %1$s - Nie udało się utworzyć grupy: %1$s - Nie udało się opuścić grupy: %1$s - Dodaj w ustawieniach serwer multimediów „Blossom” — grupa potrzebuje miejsca, do którego będzie można przesyłać załączniki. - Ta grupa używa zaszyfrowanych załączników - Nie udało się przełączyć tej grupy na tryb załączników szyfrowanych: %1$s - Grupa rozwiązana - Zakończenie działalności grupy. Grupa kończy działalność po osiągnięciu porozumienia. - Ta grupa zostanie zamknięta. Nadal można ją przeglądać. - Opuszczasz tę grupę. - Nie jesteś już członkiem tej grupy. - Nie można rozwiązać grupy: %1$s - Dodawanie %1$s… - Nie udało się dodać %1$s: %2$s - nieznany błąd - Członek usunięty - Nie udało się usunąć członka: %1$s - Przyznane uprawnienia administracyjne - Nie udało się przyznać uprawnień admina: %1$s - Uprawnienia administratora cofnięte - Nie udało się cofnąć upragnień admina: %1$s - Nie jest członkiem tej grupy Usługa lightning odbiorcy w %1$s jest niedostępna. Została obliczona na podstawie adresu lightning \"%2$s\". Błąd: %3$s. Sprawdź, czy serwer jest gotowy i czy adres lightning jest poprawny Nie można rozwiązać %1$s. Sprawdź, czy jesteś połączony, czy serwer jest gotowy i czy lightning adres %2$s jest poprawny.\n\nWyjątkiem było: %3$s Błąd przetwarzania pliku JSON z pobierania faktury %1$s. Sprawdź konfigurację lightning użytkownika Nie można utworzyć faktury. Wiadomość od %1$s: %2$s Nie można utworzyć faktury od %1$s: Element pr nie został znaleziony w powstałym JSON. - Lokalizacja czatu - Lokalizacja kanału - Rozmawiaj z każdym, kto znajduje się w pobliżu danego miejsca, na podstawie geohashu. - Lokalnie - Najlepiej nadaje się do nawiązywania kontaktów z osobami przebywającymi fizycznie w danej okolicy — w Twojej dzielnicy, mieście lub regionie. - Wybierz lokalizację - Anonimowy — to tymczasowa tożsamość przypisana do danego obszaru, nigdy nie jest to twój npub. - Kompatybilny z Bitchatem; dociera do pobliskich użytkowników na tych samych transmiterach. - Publiczny i efemeryczny – brak historii, każdy uczestnik może go odczytać. - W kolejce - Pracuję - Wymaga zatwierdzenia - Zatwierdzono - Wysłano - Niepowodzenie - Anulowano - Odmowa - Wartość-za-wartość Health Connect i Amethyst - Moja kondycja diff --git a/amethyst/src/main/res/values-pt-rBR/strings.xml b/amethyst/src/main/res/values-pt-rBR/strings.xml index 061ddb0b3a..d0c039e15a 100644 --- a/amethyst/src/main/res/values-pt-rBR/strings.xml +++ b/amethyst/src/main/res/values-pt-rBR/strings.xml @@ -1,156 +1,13 @@ - - Esta publicação tem mais de %1$d hashtag - Esta publicação tem mais de %1$d hashtags - - - %1$d recurso incluído - %1$d recursos incluídos - - - +%1$d\nresposta - +%1$d\nrespostas - - - Denunciado por %1$d pessoa que você segue - Denunciado por %1$d pessoas que você segue - - Spam - O número de eventos de spam vindo deste relé - Representação - Comportamento ilegal - Pedir para excluir - Faça login com uma chave privada para poder responder - Faça login com uma chave privada para poder impulsionar postagens - Faça login com uma chave privada para curtir postagens - Nenhuma configuração de quantidade de Zap. Pressione e segure para alterar - Faça login com uma chave privada para poder enviar Zaps - Faça login com uma chave privada para poder seguir - Faça login com uma chave privada para poder remover seguidores - Você está usando uma chave pública e as chaves públicas são somente de leitura. Faça login com uma chave privada para poder ocultar uma palavra ou frase. - Você está usando uma chave pública e as chaves públicas são somente de leitura. Faça login com uma chave privada para poder mostrar uma palavra ou frase. - Você está usando uma chave pública, e chaves públicas são somente leitura. Faça login com uma chave privada para poder fazer upload - Você está usando uma chave pública, e chaves públicas são somente leitura. Faça login com uma chave privada para poder assinar eventos - Descriptografia não autorizada - O assinador não autorizou a descriptografia necessária para realizar esta operação. Ative as descriptografias NIP-44 no seu aplicativo de assinatura e tente novamente - Assinador não encontrado - O aplicativo de assinatura foi desinstalado? Verifique se ele está instalado e com esta conta. Saia e entre novamente se ele foi alterado. - O assinador externo retornou dados estranhos para a solicitação. Pode haver um bug no Amethyst ou no assinador. - Zaps - Impulsionar impulsionado edição #%1$s - Propor uma Edição - Adicionar - Erro ao analisar mensagem de erro - Perfil - Filtros de segurança - Mostrar menos - Solicitando fatura… - O serviço de débito não concluiu o pagamento. - Pagar %1$s via %2$s? - Pagar esta fatura via %1$s? - Insira um valor válido para esta oferta. - Única vez - Diário - Semanal - Mensal - Pagar - Pagando via %1$s… - Falha no pagamento - Disponível para este destinatário: %1$s sats - Transação: %1$s - "Visualize a imagem do cartão para %1$s" - Descrição - O que você está pensando? - Escreva uma mensagem… - Salvar Salvar - Enviar - Criar Renomear - Cancelar - Erro - Erros - Porcentagem de conexões bem-sucedidas ao relay - Salvar no celular - Imagem salva para a galeria - O download do vídeo foi iniciado… - O download da mídia foi iniciado… - Fixar no topo - Desafixar - Falha ao salvar a imagem - Vídeo salvo na galeria de vídeos do telefone - Falha ao salvar o vídeo - PDF salvo em Downloads/Amethyst - Falha ao salvar o PDF - Nenhum app de câmera encontrado neste dispositivo - Clique e segure para gravar uma mensagem - Erro de upload - Falha ao enviar mensagem de voz - O NIP-95 ainda não é suportado para mensagens de voz - Falha no upload de voz: %1$s - Nenhum - Grave - Agudo - Neutro - Usuário não tem um endereço lightning configurado para receber sats - "responda aqui.. " - Conhecidos - Novas Solicitações - Usuários - Novos Tópicos - Conversas - Mais opções - Mostrar código QR de chave privada - Mostrar o código QR da chave privada criptografado - Seguir - Seguir de volta - Esconder senha - Chave inválida - Chave inválida: %1$s - Senha é necessária - Chave é obrigatória - Um nome é necessário - Não foi possível buscar este convite. O link pode ter expirado ou seus relays estarem inacessíveis. - Este link de convite é inválido ou não pode ser aberto com esta conta. - Não é possível abrir este link de convite. Ele pode estar desatualizado ou já ter sido substituído por um mais recente, ou ter sido criado com uma versão mais nova do app. Peça um novo link de convite. - Este link de convite foi revogado e não pode mais ser usado. Peça um novo. - Esta comunidade removeu você. O link ainda funciona, mas a lista de membros dela não permite sua entrada. - Links de convite - Links de convite… - Link de convite revogado. - Não foi possível revogar o link. Verifique sua conexão e tente novamente. - Este link de convite expirou e não pode mais ser usado. Peça um link novo. - Canais Concord - Nenhum canal ainda. - Enviar imagem - Novo canal - Renomear canal - Renomear - Nome do canal - Excluir canal - Excluir canal? - Excluir #%1$s? Isso não pode ser desfeito e o canal não pode ser recriado com o mesmo id. - Excluir - Sair da comunidade - Sair da comunidade? - Sair de %1$s? Ela é removida da lista desta conta e para de sincronizar nos seus dispositivos. A comunidade não é notificada e você não é removido da lista de membros. Mensagens que você não conseguir mais descriptografar podem ser irrecuperáveis, e você só poderá voltar com um novo convite. - Você criou esta comunidade. Sair não a exclui nem a entrega a mais ninguém, mas descarta a chave de proprietário armazenada na sua lista — você não conseguiria gerenciá-la novamente. - %1$s está digitando… - %1$s e %2$s estão digitando… - Várias pessoas estão digitando… - Novo canal Concord - Relés URL do ícone (opcional) - - %1$d canal - %1$d canais - %1$d espaço de trabalho %1$d espaços de trabalho @@ -159,318 +16,38 @@ %1$d canal %1$d canais - - %1$d membro - %1$d membros - - - %1$d nova mensagem - %1$d novas mensagens - - Nenhuma mensagem ainda - Criar - Convidar pessoas - Link de convite - Tornar admin - Remover admin - Relays que armazenam as mensagens criptografadas desta comunidade. Deixe em branco para usar os seus. - Editar comunidade - Membros - Tornar admin - Remover admin - Banir - Desbanir - Atribuir funções - Não foi possível atualizar as funções deste membro. - Concord - No chat - No tópico - - %1$d resposta - %1$d respostas - Novo perfil de chat: - Sair - Remover das Mensagens - Adicionar às Mensagens - Desseguir - Chat Desaparecendo - Chat Relé - Chat Relés - Chat Relés são grupos de chat controlados por seu relé de origem. - Eles são visíveis para todos no Nostr e qualquer pessoa pode participar. - São ótimos para comunidades abertas em torno de tópicos específicos. Alguns desses grupos são efêmeros, - portanto, as mensagens desaparecem com o tempo - Chat público - Grupo MLS - Metadados do Chat Público - Os chats públicos são visíveis para todos no Nostr, e qualquer pessoa - pode participar deles. Eles são ótimos para comunidades abertas em torno de tópicos específicos. - A moderação pode ser controlada excluindo postagens em seus relays - Relés - Inserir entre 1–3 relés que hospedam esse grupo. - os clientes Nostr usam essa configuração para saber de onde fazer o download de mensagens e enviar suas mensagens. - Remover - nunca - agora - h - m - d - Nudez - Palavrões / Discurso de ódio - Backup das chaves - Falha ao criptografar sua chave privada - Chave secreta (nsec) copiada - Copiar minha chave secreta - Autenticação falhou - A autenticação biométrica falhou ao autenticar o proprietário deste telefone - A autenticação biométrica falhou ao autenticar o proprietário deste telefone. Erro: %1$s - Texto copiado - Copiado @npub do autor - Copiado ID da nota (@note1) - "<Não foi possível descriptografar a mensagem privada>\\n\\nVocê foi citado em uma conversa privada/criptografada entre %1$s and %2$s." - Contas - Navegar - Você - Feeds - Criar - Sistema - Voltar - Compartilhar link do navegador - Compartilhar - Compartilhar como imagem - Compartilhar como URL de imagem - ID da Nota - Excluir - Silenciar tópico - Reativar tópico - Silenciar notificações - Reativar notificações - - Bloquear - Itens Salvos - Favoritos migrados com sucesso - Rascunhos - Posts agendados - Agendar post - Cancelar agendamento - Posts agendados podem não ser publicados até você reabrir o app. Ative notificações sempre ativas em Configurações → Preferências de UI para agendamento confiável em segundo plano. - Posts agendados podem não ser publicados até você reabrir o app. Posts agendados de outras contas não serão disparados enquanto esta conta estiver ativa. Ative notificações sempre ativas em Configurações → Preferências de UI para agendamento confiável em segundo plano. - %1$s · em %2$s - %1$s · há %2$s - Amanhã - Desconectado - - Desconectado · %d post agendado excluído - Desconectado · %d posts agendados excluídos - - Post agendado publicado - Post agendado falhou - Posts agendados - Notificações quando um post agendado é publicado ou falha ao publicar. - Enviar agora - Erro: %1$s - Agendado - Enviando… - Falhou - Enviado - Cancelado - - Você tem %d post agendado que ainda não foi publicado. Sair excluirá esse post permanentemente. - Você tem %d posts agendados que ainda não foram publicados. Sair excluirá esses posts permanentemente. - - - %d na fila - %d na fila - - - · %d em 1h - · %d em 1h - - - para %d relay - para %d relays - - ID do post copiado - Enquetes - Abertas - Encerradas - Selos - Comunidades - Nova comunidade - Editar comunidade - Moderadores - Relés - Regras verificáveis (opcional) - Tipos de evento permitidos - Texto curto (1) - Artigo longo (30023) - Post de imagem (20) - Post de vídeo (21) - Vídeo curto (22) - Comentário da comunidade (1111) - Usuários banidos - Regra da rede de confiança (opcional) - Tamanho máximo global do evento (opcional) - Novo selo - Conceder selo - Selos de perfil - Imagens - Treinos - Novo treino - - %1$d atividade - %1$d atividades - - Corrida - Caminhada - Ciclismo - Trilha - Natação - Remo - Musculação - Ioga - Meditação - Dieta - Jejum - Circuito - EMOM - AMRAP - Aplicativos Apps - nApplets - nSites - Navegador - Carregando pelo Tor. Toque para usar a web aberta. - Carregando pela web aberta. Toque para usar o Tor. - Favoritos - Descobrir web apps - Apps favoritos - Adicionar aos favoritos - Remover dos favoritos - Carrega pelo Tor. - Carrega pela web aberta. - Publicado nos relays - Enviou um arquivo - Realizou um pagamento - Este app ainda não carregou. Tente novamente em um momento. - Recente Permissões de nApplet Nenhuma permissão de nApplet ainda As permissões que você conceder aos nApplets aparecerão aqui. Esquecer este nApplet Bloqueado Revogar - nApplet %1$s… Terminal - Identidade - Ações de teclado - Relés - Criptografia - Armazenamento - Pagamentos - Rede - Envios Consultar quais capacidades estão disponíveis - Ler sua chave pública - Vincular atalhos de teclado - Ler, assinar & publicar seus eventos - Criptografar e descriptografar mensagens privadas com sua chave - Armazenamento privado próprio - Pagar faturas Lightning - Buscar recursos da web e do Blossom - Enviar arquivos para o seu servidor de mídia - Tema - Notificações - Mensagens - Combinar as cores do seu app - Mostrar notificações para você - Trocar mensagens com outros nApplets Capacidade: %1$s - Este nApplet quer ler sua chave pública. - Este nApplet quer ler seu perfil e dados da conta. - Este nApplet quer assinar e publicar um evento kind %1$d como você. - Este nApplet quer assinar e publicar um evento kind %1$d como você: - Este nApplet quer enviar um evento criptografado como você. - Este site quer criptografar uma mensagem para %1$s com sua chave Nostr. - Este site quer descriptografar uma mensagem de %1$s com sua chave Nostr. - Este nApplet quer ler eventos dos seus relays. - Este nApplet quer usar seu armazenamento privado. Este nApplet quer pagar uma fatura Lightning. - ⚠ Este nApplet quer pagar uma fatura Lightning que NÃO especifica um valor — quem recebe decide quanto é retirado. Só permita isto se você confiar nele. - Este nApplet quer buscar um recurso da web. - Este nApplet quer enviar um arquivo para o seu servidor de mídia. - Este nApplet quer mostrar notificações para você. - Este site quer assinar um evento kind %1$d com sua chave Nostr. - - Este nApplet quer pagar uma fatura Lightning de %1$d sat. - Este nApplet quer pagar uma fatura Lightning de %1$d sats. - - - segue %1$d nova conta - segue %1$d novas contas - - - DEIXA DE SEGUIR %1$d conta - DEIXA DE SEGUIR %1$d contas - - - adiciona %1$d relay - adiciona %1$d relays - - - REMOVE %1$d relay - REMOVE %1$d relays - - - silencia mais %1$d pessoa - silencia mais %1$d pessoas - - - REMOVE O SILÊNCIO de %1$d pessoa - REMOVE O SILÊNCIO de %1$d pessoas - - ⚠ Isto segue %1$s. - ⚠ Isto DEIXA DE SEGUIR %1$s. - ⚠ Isto silencia %1$s. - ⚠ Isto REMOVE O SILÊNCIO de %1$s. - ⚠ Isto reescreve sua lista de quem você segue: %1$s. - ⚠ Isto reescreve sua lista de relays: %1$s. Suas publicações e leituras vão junto. - ⚠ Isto reescreve sua lista de silenciados: %1$s. Palavras e hashtags silenciadas não são mostradas aqui — toque em “Mostrar evento” para ver a lista completa. - %1$s e %2$s - Isto republica sua lista existente sem alterações. - - ⚠ Isto grava uma lista de %1$d entrada. O Amethyst não tem cópia em cache para comparar. - ⚠ Isto grava uma lista de %1$d entradas. O Amethyst não tem cópia em cache para comparar. - - - ⚠ Isto solicita a exclusão de %1$d dos seus eventos. - ⚠ Isto solicita a exclusão de %1$d dos seus eventos. - - - Carrega %1$d tag. Toque em “Mostrar evento” para ver exatamente o que seria assinado. - Carrega %1$d tags. Toque em “Mostrar evento” para ver exatamente o que seria assinado. - Conectar ao Nostr @@ -479,889 +56,90 @@ Usado por último Expira - assinar para %1$s (kind: %2$d) - criptografar uma mensagem - ler suas mensagens privadas - ler suas mensagens privadas com %1$s - Sempre permitir para %1$s - O Amethyst não conseguiu descriptografar esta mensagem. Ela pode não ser destinada a esta conta. - Apps conectados Revogar todas as permissões Substituições de operação Nenhum app se conectou ainda. - apps permissões assinador napplet nsite webapp confiança conectados - Assinador Remoto assinador bunker nip46 nostr conectar remoto assinar Agir como assinador remoto Ouvindo em %1$d relay Ouvindo em %1$d relays - - Ouvindo em %1$d relay - Ouvindo em %1$d relays, todos conectados - Seu endereço bunker Cole isto em outro aplicativo para conectá-lo à sua chave. - Endereço bunker copiado - Gerado um novo endereço bunker - Conectado - Offiline - Reconectando aos relays… - - %1$d Relé - %1$d Relés - - Aplicativo conectado. O Amethyst agora assina por ele em segundo plano. - Conectado %1$s. O Amethyst agora assina por ele em segundo plano. - Não é um link nostrconnect:// válido - Esse link não traz nenhum relay para conectar - Não foi possível conectar: %1$s - Conexão recusada - Esta é uma conta somente leitura e não pode assinar. - Aplicativo de assinador remoto - - %1$d solicitação de assinatura - %1$d solicitações de assinatura - - Selecionar todos - Desmarcar todos Nenhuma solicitação atendida ainda. - Solicitações de assinatura - Avisos em tela cheia pedindo que você aprove um aplicativo que quer que o Amethyst assine, criptografe ou descriptografe com sua chave. - Aprovar uma solicitação de assinatura? - Um aplicativo quer se conectar - Toque para revisar - - %1$d aplicativo conectado - %1$d aplicativos conectados - - Autenticação de relay - auth autenticação relay assinar verificar nip-42 identidade - Sempre autenticar - Assinar desafios de autenticação de todos os relays que solicitarem - Nunca autenticar - Ignorar desafios de autenticação de todos os relays - Personalizado - Escolha exatamente em quais relays fazer login. Você será perguntado sobre qualquer um que não tenha permitido abaixo. - …é o meu relay, ou uma sala em que entrei ou que sigo - …eu estiver lendo alguém que sigo - …eu estiver enviando mensagem para alguém que sigo - …eu estiver enviando mensagem para qualquer outra pessoa - - %1$s e mais %2$d - %1$s e mais %2$d - - - Ele também está retendo mais %1$d coisa. - Ele também está retendo mais %1$d coisas. - - Sempre fazer login - Nunca - Sempre, todos os relays - Nunca, todos os relays - Fazer login em todos os relays? - O Amethyst fará login como %1$s em todos os relays que pedirem e deixará de perguntar. Os relays que você bloqueou, e aqueles em que você definiu nunca fazer login, continuam assim. Você pode mudar isso em Autenticação de relay. - Nunca fazer login em nenhum relay? - O Amethyst deixará de informar aos relays que você é %1$s e deixará de perguntar. Alguns relays vão se recusar a atendê-lo: mensagens, respostas e notificações podem não chegar. Os relays em que você definiu sempre fazer login continuam assim. Você pode mudar isso em Autenticação de relay. - Sempre, definido por você - Nunca, definido por você - suas mensagens - suas respostas - pessoas que você lê - uma sala em que você publica - uma sala que você lê - sua caixa de entrada - uma conversa - seu próprio relay - este relay - Curtas - Chats públicos - Canais de localização - Pacotes de seguidos - Transmissões ao vivo - Salas de áudio - Levantar mão - Abaixar mão - Silenciar - Ativar som - Não foi possível enviar a mensagem - Silenciar microfone - Ativar microfone - Salas de áudio - Mantém o áudio tocando enquanto a sala está aberta. - Nest conectado - Nest — Ao vivo - Toque para voltar. - Parar - levantou a mão - subiu ao palco - está falando - entrou como audiência - saiu do nest - Sair - Não foi possível marcar a sala como fechada. Saindo mesmo assim — a sala será fechada automaticamente. - - %1$d ouvinte - %1$d ouvintes - - Silenciar este orador - Restaurar este orador - Seguir - Deixar de seguir - Silenciar - Ativar som - Não foi possível salvar sua lista de servidores. Tente novamente. Console do agente - Servidores de nest - Seus servidores - Salvo como evento substituível kind-10112 para que outros clientes possam ler sua preferência. - Servidores recomendados - Sugestões integradas que você pode adicionar à sua lista com um toque. - Vídeos - Música - Listas de reprodução - Episódios - Podcasts Premium - - %1$d capítulo - %1$d capítulos - - Erro de Value-for-Value - Este podcast não tem destinatários de valor pagáveis. - Conecte uma carteira Nostr Wallet Connect para enviar a destinatários keysend (nó). - Conecte uma carteira Nostr Wallet Connect ou de débito para transmitir sats enquanto ouve. - Novo episódio - Editar episódio - Publicando… - Adicionar capa - Imagem quadrada exibida para o episódio - URL do vídeo - URL da transcrição - URL dos capítulos - Adicionar arquivo de áudio - MP3, M4A ou outro áudio - Seu podcast - Adicionar capa - Arte quadrada para o seu programa - Título do programa - Meu Podcast - Autor - E-mail de contato - Site - Categorias - Tecnologia, Notícias - Links de financiamento - https://… - Idioma - pt - Direitos autorais - Novo trailer - Adicionar clipe de trailer - Prévia curta de áudio ou vídeo - - %1$d trailer - %1$d trailers - Adicionar destinatário - Este usuário não tem endereço Lightning - - %1$d episódio - %1$d episódios - - Nova faixa de música - Nova playlist - - %1$d faixa - %1$d faixas - - Adicionar aos Itens Salvos Públicos - Remover dos Itens Salvos Públicos - Fixar no Perfil - Desafixar do Perfil - Nova lista de favoritos - Metadados da lista de favoritos - Conjuntos de interesses - Novo conjunto de interesses - Renomear - Nota privada - Esta nota foi entregue de forma privada e não está assinada. Apenas os participantes marcados podem vê-la, e ninguém pode provar a terceiros quem a escreveu. - Tornar privado: empacotar a nota (gift-wrap) apenas para os usuários notificados - Tornar público - Respostas a uma nota privada permanecem sempre privadas - Visível para Nenhum destinatário ainda: apenas você poderá ver esta nota. Adicione pessoas para compartilhá-la. - Somente você — escolha quem mais pode ver isto - Adicione pessoas para notificar - Enviar de forma privada - Já adicionado - Silenciado - Membro privado - - %1$s, %2$s e mais %3$d - %1$s, %2$s e mais %3$d - - - Esta nota será criptografada e entregue %1$d vez separada, uma por pessoa. Com um assinador externo, isso significa uma aprovação para cada. - Esta nota será criptografada e entregue %1$d vezes separadas, uma por pessoa. Com um assinador externo, isso significa uma aprovação para cada. - - - %1$d pessoa receberá uma notificação sobre esta publicação. - %1$d pessoas receberão uma notificação sobre esta publicação. - - - Isso daria %1$d pessoa. O Amethyst adiciona no máximo %2$d por vez — desmarque algumas. - Isso daria %1$d pessoas. O Amethyst adiciona no máximo %2$d por vez — desmarque algumas. - - - Adicionar %1$d pessoa - Adicionar %1$d pessoas - - - Adicionar %1$d pessoa mesmo assim - Adicionar %1$d pessoas mesmo assim - Adicionar Remover usuário das notificações - Notificando. Toque para silenciar a notificação deste usuário - Silenciado. Toque para notificar este usuário novamente Pesquisar e adicionar um usuário para notificar - Os metadados das listas de favoritos podem ser vistos por qualquer pessoa no Nostr. Somente seus membros privados são criptografados. - Mover para público - Mover para privado - Recarregar e enviar zap - Enviar zap - Recarregue %1$s sats para %2$s e envie zap de %3$s %4$s sats · taxa ≈ %5$s sats - Opção %s - (0–100)% - Escolha única - Múltipla escolha - Impossibilitado de votar - A enquete está fechada para novos votos - Apenas um voto por usuário é permitido neste tipo de enquete - Os autores de enquetes não podem votar em suas próprias enquetes. - O que isso significa? - A imagem é a mesma desde o post - A imagem mudou. O autor pode não ter visto a mudança - Adicionar Mídia - Adicionar Imagem - Adicionar Vídeo - Adicionar Documento - Servidor de arquivos - Escolha um servidor para onde enviar este arquivo - Servidores de Mídia Defina seus servidores de upload de mídia preferidos. Gerenciar arquivos armazenados - Meus arquivos Blossom - Copiando seus arquivos entre servidores… - Cancelar - Sincronização Blossom - Mostra o progresso enquanto seus arquivos são copiados entre seus servidores Blossom. - Em todos os servidores - Não está em todos os servidores Excluir de… - Este servidor exige pagamento para enviar: %1$s - - Pagar %1$d sat - Pagar %1$d sats - - Ativar todos - Desativar todos - Uma sincronização de arquivos já está em andamento. Tente importar novamente quando ela terminar. - - %1$d arquivo - %1$d arquivos - - - Encontrado %1$d arquivo para importar para os seus servidores. - Encontrados %1$d arquivos para importar para os seus servidores. - - - Importar %1$d arquivo - Importar %1$d arquivos - Servidores de Mídia Recomendados Lista padrão do Amethyst. Você pode adicioná-los individualmente ou adicionar a lista. - No ar - Lento - Fora do ar Verificando… - Destinos de pagamento - Adicione endereços de pagamento para diferentes redes (ex.: bitcoin, lightning, ethereum). - Nenhum aplicativo encontrado para processar este pagamento. Por favor, instale uma carteira compatível. - Nenhum app instalado para processar pagamentos %1$s. Instale uma carteira compatível. - Pague em %1$s — você escolhe o valor lá - Encaminhamento para app de pagamento - Quando o autor publica um método de pagamento que um app neste telefone consegue abrir (Venmo, Monero, um IBAN…), o seletor de zap pode oferecê-lo. Tocar abre esse app, que pede o valor — nada é publicado nos relays, então a contagem de zaps da nota não muda. - Oferecer os métodos de pagamento do autor - Não foi possível abrir o pagamento - Ofertas BOLT12 - Adicione uma ou mais ofertas BOLT12 (lno1…). Elas são compartilhadas publicamente, então qualquer pessoa pode pagar você. - Pagamento BOLT12 enviado - Falha no pagamento BOLT12: %1$s - Erro no zap BOLT12 - Pago via BOLT12, mas a carteira não retornou nenhum comprovante, então nenhum recibo de zap foi publicado. - Pago via BOLT12, mas o comprovante de pagamento não foi validado, então nenhum recibo de zap foi publicado. - Opções de Privacidade - Seguindo - Seguindo do Usuários - Lista Padrão de Seguir - Perto de mim - Teletransportar para um lugar… - Seguir este local - Deixar de seguir este local - Global - Curada - Meus - Lista Silenciada - Nova lista de seguidores - Novo pacote de recomendações - Editar lista - Porta padrão é 9050 - Porta Socks Orbot - Motor Tor Ativo - Use a versão interna ou o Orbot - Predefinições Tor/Privacidade - Modifique rapidamente todas as configurações abaixo - Endereço Onion/Relés - Use Tor para qualquer URL .onion - Relés de DM - Forçar Tor para enviar e receber mensagens diretas - Relés Não Confiáveis - Forçar Tor em relés de entrada/saída - Relés Confiáveis - Forçar Tor em todos os relés nas suas listas - Fotos de Perfil - Forçar Tor ao carregar fotos de perfil - Pré-visualizações de URL - Forçar Tor ao carregar pré-visualizações de URL - Imagens - Forçar Tor ao carregar imagens - Vídeos - Forçar Tor ao carregar vídeos - Operações Financeiras - Forçar Tor em zaps, transfers relâmpago e cashu - Verificação de Endereço Nostr - Forçar Tor ao verificar endereços NIP-05 - Envio de Mídia - Forçar Tor ao enviar conteúdo - Interno - Orbot - Desativado - Básico - Padrão - Tudo exceto Mídia - Privacidade Completa - Personalizado - Use Tor quando for necessário pelo servidor - Oculte seu IP de relés aleatórios - Oculte seu IP de tudo, exceto imagens e vídeos - Oculte seu IP em todas as conexões - Faça o seu próprio - Mensagens privadas - Notifica você quando chega uma mensagem privada - Zaps Recebidos - Notifica quando alguém te manda um zap - %1$s sats - De %1$s - por %1$s - Pagamentos recebidos - Notifica você quando sua carteira conectada recebe um pagamento que não é um zap do Nostr - Recebidos %1$s sats - Novos pagamentos - Responder - Marcar como lida - Eu - Nova mensagem - Você foi adicionado a %1$s - Novas mensagens - Novos zaps - Reações - Notifica você quando alguém reage à sua publicação - %1$s reagiu à sua publicação - para %1$s - Novas reações - Xadrez - Notifica você sobre eventos de jogos de xadrez - %1$s aceitou seu desafio de xadrez - %1$s jogou — a sua vez - Atualizações de xadrez - Respostas - Notifica você quando alguém responde à sua publicação %1$s respondeu em: %1$s - Novas respostas - Menções - Notifica você quando alguém menciona ou cita você em uma publicação - %1$s mencionou você - Novas menções - Mensagens - Social - Pagamentos - Conteúdo - Desenvolvedor - Jogos - Repostagens - Notifica você quando alguém reposta sua publicação - %1$s repostou sua publicação - Novos reposts - Mídia - Notifica você quando alguém menciona você em uma foto ou vídeo - %1$s compartilhou uma foto - %1$s compartilhou um vídeo - Nova mídia - Artigos e destaques - Notifica você quando alguém menciona ou destaca você em um artigo - %1$s mencionou você em um artigo - %1$s destacou seu artigo - Novos artigos - Código e Git - Notifica você sobre issues, patches e pull requests - %1$s abriu um issue - %1$s enviou um patch - %1$s abriu um pull request - %1$s atualizou um pull request - %1$s comentou - %1$s reabriu um tópico - %1$s mesclou um pull request - %1$s aplicou um patch - %1$s resolveu um issue - %1$s mesclou/resolveu um tópico - %1$s fechou um pull request - %1$s fechou um patch - %1$s fechou um issue - %1$s fechou um tópico - %1$s marcou um tópico como rascunho - Nova atividade de código - Selos - Notifica você quando você ganha um selo - Você ganhou um selo - Concedido por %1$s - Novos selos - Nutzap de %1$s - Zap onchain de %1$s - %1$s fez uma pergunta - Chamadas recebidas - Notificações de chamadas de voz e vídeo recebidas - Chamada recebida - Chamada de voz recebida\u2026 - Chamada de vídeo recebida\u2026 - Chamada com %1$s - Chamadas - Notificação de chamada em andamento - Desligar - Aceitar - Rejeitar - Silenciar - Ativar som - Câmera ligada - Câmera desligada - Compartilhar tela - Parar de compartilhar tela - Compartilhando tela - Alto-falante - Auricular - Bluetooth - O Amethyst precisa de acesso ao microfone para iniciar uma chamada de voz. Habilite-o nas configurações do aplicativo. - O Amethyst precisa de acesso à câmera e ao microfone para iniciar uma chamada de vídeo. Habilite-os nas configurações do aplicativo. - Configurações de Chamada - Mantém as conexões com seus relays de caixa de entrada ativas para notificações em tempo real - Notificações do Amethyst ativas - - Conectado a %1$d relay de entrada - Conectado a %1$d relays de entrada - - - Conectado a %1$d relay - Conectado a %1$d relays - - Mostrar detalhes - Ocultar detalhes - - %1$s \u00b7 %2$d relé - %1$s \u00b7 %2$d relés - - Navegação - Mídia - Hashtags - Tópicos - Conversa - Pesquisa - Encontrando eventos faltantes - Observando eventos - Busca por id os eventos a que algo na sua tela se refere, mas que você ainda não tem — uma citação, o pai de uma resposta, a raiz de uma conversa. - Observa os eventos exibidos no momento em busca de novas respostas, reações, repostagens, zaps e denúncias, para que as contagens sejam atualizadas enquanto você lê. - Complementos - Informações do relay - Outros - Localizador de listas de relays - Observando perfis - Dados da conta - Feed inicial - Grupos de relay - - %1$d grupo - %1$d grupos - - Chats efêmeros - Chats por localização - Chat de transmissão ao vivo - Grupos NIP-29 dos quais você participa. Cada grupo vive em um relay hospedeiro, então o app se conecta a todo relay que hospeda um grupo seu. - Salas de chat que não guardam histórico — as mensagens existem apenas enquanto você está conectado, então elas continuam assinadas para que algo chegue. - Salas baseadas em localização para as áreas que você segue, consultadas nos relays que as hospedam. - Chat e metas de zap ligados às transmissões ao vivo que você tem abertas ou segue. - Caixa de entrada de DM - Carteira - Caixa de entrada de nutzaps - Diretório de mints - Wallet Connect - Chats de comunidades - Feeds de comunidades - Os relays da sua caixa de entrada, mais uma pequena amostra rotativa dos relays em que quem você segue publica, caso uma menção tenha sido entregue em outro lugar. - Os relays da sua caixa de entrada de DM, para onde as mensagens em gift wrap são entregues. - O relay de origem de cada chat que você abriu ou do qual participa. - Os relays em que cada comunidade publica seus planos. - Mensagens de grupo e pacotes de chaves, nos relays de cada grupo. - Os relays da sala, enquanto ela estiver aberta. - Seu próprio perfil, configurações e rascunhos, nos seus relays de origem. - Perfis das pessoas atualmente na tela. - Descobre em quais relays cada pessoa publica, para que as publicações dela possam ser buscadas no lugar certo. - Listas de seguindo, usadas para montar seu feed e sua rede de confiança. - Denúncias que as pessoas que você segue escreveram sobre os perfis atualmente na sua tela, consultadas em cada relay em que essas pessoas publicam. - Denúncias de quem você segue - Os eventos da sua própria carteira, lidos de volta dos relays em que você os publicou. - Escuta nos seus relays de nutzap, além dos relays da caixa de entrada e de DM, para que nenhum pagamento passe despercebido. - Procura pelos relays quais mints existem e quais as pessoas recomendam. - Notificações da sua carteira conectada. - Assinaturas de relay ativas - - %1$d filtro - %1$d filtros - - - %1$d Relé - %1$d Relés - - - %1$d filtro ainda não foi atribuído - %1$d filtros ainda não foram atribuídos - %1$s \u00b7 %2$s - %1$d%% de todos - assinaturas subscriptions filtros relays requisições reqs conexões por que diagnóstico - Publicações de pessoas que você segue, lidas dos relays em que cada uma delas publica. - Conectando aos relays de caixa de entrada\u2026 Serviço de notificações sempre ativo Mantém uma conexão persistente com seus relays de caixa de entrada para entrega instantânea de notificações. Mostra uma notificação contínua. Usa mais bateria, mas garante que você nunca perca uma mensagem. Serviço de notificação - Ligado - Desligado - Serviço de notificação em segundo plano - Interruptor principal para notificações em tempo real em segundo plano. Desligue para economizar bateria — como um modo avião. Quando desligado, nenhuma conta permanece conectada em segundo plano, e ele continua desligado (mesmo após reinicializações) até você ligá-lo novamente. - Contas ativas em segundo plano Manter esta conta ativa em segundo plano - Dividir notificações por Seguindo - Mostra duas abas de notificações — Seguindo (pessoas que você segue) e Todos. O indicador de não lidas só acende para atividade de pessoas que você segue. - Mostrar mensagens - Inclui mensagens diretas e de grupo na aba Notificações. Desative para manter as mensagens apenas na aba Mensagens. - Notificar: - Hoje - Ocultar - Exibir - Avisar - Filtrar spam - Esconde publicações de desconhecidos que eram exatamente o mesmo por 5 ou mais vezes - Adicionar tag de cliente aos meus eventos - Quando ativado, o Amethyst anexa uma tag de cliente NIP-89 aos eventos que você publica. - Avisar em relatórios - Mostra uma mensagem de aviso quando as postagens tiverem 5 ou mais relatórios de suas seguintes - Ocultar posts que violam as regras da comunidade - Remove posts dos feeds da comunidade quando ela publica um documento de regras NIP-9B e o evento não passaria. Sem efeito quando uma comunidade não tem regras estruturadas. - Preferências de filtragem - Conteúdo bloqueado - Você ainda não bloqueou nenhum usuário. - Nenhuma conta foi marcada como spam nesta sessão. - Nenhuma palavra oculta. Adicione uma palavra abaixo para ocultar publicações que a contenham. - Nenhum tipo de reação selecionado. Pressione e segure para alterar - Ler do Relay - Enviar para o Relay - A quantidade em bytes que foi enviada para este relé, incluindo filtros e eventos - A quantidade em bytes que foi recebida deste relé, incluindo filtros e eventos - Política de privacidade - Padrões de segurança infantil - Sobre e Jurídico - Token Cashu - Nenhum endereço Lightning definido - Relés - Pacotes Seguir - Leituras - Algoritmos de feed - Mercado - Transmissões Ao Vivo - Comunidades - Conversas - Conteúdo sensível - Adiciona aviso de conteúdo sensível antes de mostrar este conteúdo - Preferências da Interface Preferências do aplicativo - Traduções - Reações - Configurações - Configurações da Conta - Configurações do App - Zona de Perigo - Redefinir estado do Marmot - Estado do Marmot redefinido. - Falha ao redefinir o estado do Marmot: %1$s - Sempre - WiFi não medida - Nunca - Wi-Fi - Concluído - Simplificado - Desempenho - Completo - Simples - Rápido - Clássico - Moderno - Sistema - Claro - Escuro - Aparência - Mídia e Dados - Geral - Conexão - Rotear pelo Tor - Seções e feeds - Abas visíveis - Conteúdo no feed - Notas de texto - Repostagens - Comentários e respostas - Imagens - Vídeos - Curtas - Artigos - Páginas wiki - Destaques - Enquetes - Classificados - Torrents - Mensagens de voz - Atividades ao vivo - Chats efêmeros - Histórias interativas - Partidas de xadrez - Observações de aves - Atestações - Rascunhos de NIP - Música e áudio - Podcasts - Arrecadações - Avaliações e resenhas - Avaliado com %1$s de 5 - Recurso de aprendizagem - Diretório - Registro de arquivo - - %1$d item - %1$d itens - - - mais %1$d item - mais %1$d itens - - Lembretes - Conectar Carteira - Tema - Roxo - Azul - Verde - Laranja - Vermelho - Rosa - Fonte - Tipo de letra usado em todo o app - Padrão do sistema - Sem serifa - Serifada - Monoespaçada - Sistema - Sans - Serif - Mono - Tamanho da fonte - Ajuste o tamanho do texto em todo o app - Pequeno - Normal - Grande - Enorme - Pré-visualizar imagens - Reproduzir vídeos automaticamente - Reprodução automática de vídeos - Pré-visualizar URL - Rolagem Imersiva - Ocultar as barras de navegação ao rolar - Modo de interface - Escolha o estilo da publicação - Estilo da Galeria de Perfil - Escolha o estilo da galeria - Spammers - Silenciado. Clique para ativar o som - Som ligado. Clique para silenciar - Voltar %d segundos - Avançar %d segundos - Escolher um lugar no mapa - Alterar lugar no mapa - Postagem exclusiva de localização - Somente seguidores da localização verão isso. Seus seguidores gerais não verão isso. - - %1$d faixa - %1$d faixas - - - +%1$d faixa a mais - +%1$d faixas a mais - - Enviar uma imagem de capa - Escolha uma imagem quadrada para ser a arte desta faixa. - Enviar um arquivo de áudio - Escolha um MP3, WAV ou FLAC. Ele será enviado ao seu servidor de mídia ao salvar. - Enviando capa + áudio e publicando. Isso continuará mesmo se você sair da tela. - Editar playlist - Enviar uma imagem de capa - Escolha uma imagem quadrada para ser a arte desta playlist. - Enviando capa e publicando. Isso continuará mesmo se você sair da tela. Público Grupo - Privado - Grupos criptografados - Ciente de relay - Mensagem privada - Mensagens diretas, com criptografia de ponta a ponta - Salas 1:1–5 - Conversas individuais e em pequenos grupos com pessoas que você conhece. - Nova mensagem - Individual e pequenos grupos - Criptografia de ponta a ponta - Não é possível adicionar usuários depois - Grupo Marmot - Grupos privados maiores - Vinculado ao dispositivo - Grupos privados maiores que ultrapassam as DMs de pequenos grupos. - Criar grupo - Escala além das DMs pequenas - Conversa em grupo criptografada - Vinculado ao dispositivo — não aparecerá se você entrar em outro lugar - Comunidade Concord - Comunidades divididas por canal - Espaços de trabalho - Comunidades enormes, organizadas por canais ou fluxos de trabalho. - Criar comunidade - Escala para comunidades enormes - Dividido por canal / fluxo de trabalho - Mais coisas para configurar - Conversa pública - Mensagens públicas em um relay - Sem moderação - Salas públicas abertas onde qualquer um pode publicar. - Criar conversa pública - Qualquer um pode entrar - Simples e fácil de descobrir - Apenas público - Sem moderação - Grupo de relay - Operado por relay, público ou privado - Moderado - Grupos moderados pelo relay que os hospeda. - Explorar grupos de relay - Moderado pelo relay - Público ou privado - Vinculado àquele relay específico - Conversa que desaparece - Quem estiver online, agora mesmo - Ao vivo agora - Conversa do momento com quem estiver online agora. - Iniciar conversa - Fale com quem está online agora - Nada é salvo - Sem histórico - Limitado ao relay - Grupos de relay - Grupos de relay - Mensagens - Mensagens privadas - Mensagens diretas com criptografia de ponta a ponta e gift-wrap (NIP-17). - DMs legadas - Mensagens diretas criptografadas mais antigas e menos privadas (NIP-04). - Canais públicos - Salas de chat abertas e públicas que qualquer um pode ler e participar (NIP-28). - Grupos de relay - Chats de grupo gerenciados por relay com listas de membros e moderação (NIP-29). - Grupos criptografados - Chats de grupo com criptografia de ponta a ponta MLS (Marmot). - Comunidades Concord - Comunidades criptografadas com múltiplos canais (Concord). - Chats de localização - Chat público restrito a um geohash para um lugar (Geolocalização). - Chats efêmeros - Salas leves, restritas a um relay, que não mantêm histórico. - Criar um grupo - Novo canal - Novo fórum - Canal privado - Oculto da lista de canais e apenas por convite. Desligado significa que qualquer pessoa neste relay pode encontrá-lo e entrar. Canal de fórum Publicações em discussões em vez de uma linha do tempo de chat. Isso não pode ser alterado depois. Nome do grupo @@ -1371,33 +149,19 @@ Criar Criando um convite… Código de convite copiado - Editar grupo Nome do grupo Tópico (opcional) Privado (leitura somente para membros) Somente por convite Salvar - Excluir grupo - Excluir “%1$s”? Isso remove o grupo e seu histórico para todos e não pode ser desfeito. - Excluir canal - Excluir “%1$s”? Isso remove o canal e suas mensagens para todos e não pode ser desfeito. - Arquivar canal - Desarquivar canal Alterar local - Privado - Apenas membros podem ler as mensagens. Procurando grupos nos seus relays… Nenhum grupo encontrado para este filtro ainda. - Título Escreva algo… Publicar Adicionado a %1$s - - %1$d membro - %1$d membros - %1$d mensagem %1$d mensagens @@ -1410,296 +174,30 @@ %1$d pessoa que você segue %1$d pessoas que você segue - - %1$d grupo - %1$d grupos - Privado - Assunto - Não pode enviar - Insira o destino da mensagem primeiro - Carteira não encontrada - O Amethyst não conseguiu encontrar nenhum aplicativo de carteira que suporte Nostr Wallet Connect (NWC). -\n\nO que você pode fazer: -\n\t1. Verifique o suporte NWC: Confirme se o aplicativo da sua carteira é compatível com o Nostr Wallet Connect. -\n\t2. Criar conexão: Vá até o aplicativo da sua carteira e crie uma nova conexão NWC. -\n\t3. Vincular ao Amethyst: Sua carteira geralmente oferece três opções: -\n\t\t3.1 Link Automático: Um botão para abrir e conectar automaticamente ao Amethyst. Clique nele, abra o Amethyst e salve na nova tela. -\n\t\t3.2 Link Manual: Um URI de conexão que você pode copiar e colar usando o ícone de colar nesta tela. -\n\t\t3.3 Código QR: A carteira gera um código QR que você pode ler usando o botão de código QR nesta tela. - Tema Escuro, Claro ou Padrão - Carregar automaticamente imagens e GIFs - Reproduz automaticamente vídeos e GIFs - Reproduzir vídeos automaticamente quando visíveis na tela - Mostrar visualizações de URL - Copiar para a Área de Transferência - Copiado para a área de transferência - Compartilhar ou Salvar Enviar como DM Novo destaque Nova Foto Novo Vídeo Curto Novo Vídeo - Novo destaque Texto destacado - Adicione seus comentários… - Mídia adicionada - Mídia adicionada à sua Galeria de Perfil - Não foi possível enviar o Zap - Configuração Lightning ausente - O usuário %1$s não possui um endereço lightning configurado para receber sats - Erro ao abrir o aplicativo para assinar evento - O aplicativo de assinatura não pôde ser encontrado. Verifique se o aplicativo não foi desinstalado - Não é possível reproduzir este vídeo - O codec ou formato não é compatível com este dispositivo (%1$s). Tente abri-lo no seu navegador. - Abrir no navegador - Solicitação de assinatura rejeitada - Certifique-se de que a aplicação assinante autorizou esta transação - Nenhuma carteira encontrada para pagar uma fatura Lightning (Erro: %1$s). Instale uma carteira Lightning para usar zaps - Nenhuma carteira encontrada para pagar uma fatura Lightning. Instale uma carteira Lightning para usar zaps - Não é possível abrir links Blossom - Nenhum aplicativo Blossom foi encontrado. Instale um aplicativo Blossom local para visualizar este arquivo - Palavras Ocultas - Tópicos silenciados - Nenhum tópico silenciado - Foto de Perfil - Mostrar fotos de perfil - Não foi possível pagar a fatura - Não foi possível sacar - Não foi possível resgatar o Cashu - O Mint forneceu a seguinte mensagem de erro: %1$s - Endereço de mint Cashu não seguro - O Amethyst não entrou em contato com o mint deste token. %1$s - Cashu Recebido - %1$s sats foram enviados para a sua carteira. (Taxas: %2$s sats) - Nenhuma carteira Cashu compatível encontrada no sistema - Não foi possível obter a fatura dos servidores do destinatário - Seu provedor de Wallet Connect retornou o seguinte erro: %1$s - Seu provedor Wallet Connect enviou uma resposta que o Amethyst não conseguiu ler. - Não foi possível montar o LNUrl a partir do Endereço Lightning \"%1$s\". Verifique a configuração do usuário - Não foi possível obter a fatura de %1$s: %2$s - Erro ao analisar JSON do %1$s. Verifique a configuração lightning do usuário - URL de retorno de chamada não encontrado da resposta %1$s - Quantidade incorreta na fatura (%1$s sats) de %2$s. Deveria ser %3$s - Não foi possível criar uma fatura Lightning antes de enviar o zap. A carteira Lightning do destinatário enviou o seguinte erro: %1$s - Usuário somente leitura - Nenhuma configuração de reações - Notificações - Entrega - Exibição no app - Categorias - Mensagem de %1$s - Bloquear relay - Oi %1$s, ainda está disponível? - Roupas - Acessórios - Eletrônicos - Móveis - Colecionáveis - Livros - Animais de Estimação - Esportes - Bem-estar - Arte - Artesanato - Casa - Escritório - Alimentos - Diversos - Outros - Não foi possível carregar a multimídia - Não foi possível abrir o arquivo compactado - Erro ao carregar: %1$s - O servidor não forneceu uma URL após o upload - Não foi possível baixar o arquivo de mídia carregado do servidor - Não foi possível verificar o arquivo baixado após o upload: %1$s - Falha ao acessar %1$s: %2$s - Falha ao excluir: %1$s - Mídia muito grande para NIP-95 - Criptografar arquivos - Criptografar arquivos antes do upload para privacidade. Alguns servidores podem não aceitar arquivos criptografados em contas gratuitas. - Falha no upload criptografado - Muitos servidores não aceitam arquivos criptografados em contas gratuitas. Você pode tentar novamente sem criptografia. - Usar codec H.265/HEVC - Melhor qualidade em arquivos menores, mas nem todos os dispositivos suportam reprodução em H.265. - Converter GIF em MP4 - Converte GIF animado em vídeo MP4 para menor tamanho de arquivo e melhor compatibilidade de reprodução. - Remover metadados privados - Tenta remover metadados privados de arquivos de mídia compatíveis antes do envio - Não foi possível remover os metadados - Não foi possível remover metadados privados da mídia. Envio cancelado. - Envio cancelado - Não foi possível remover os metadados do AVIF: %1$s - Início - Descobrir - Mensagens - Notificações - Mídia - Calendários - Listas de calendário - Xadrez - Carteira - Não foi possível carregar as transações - Não foi possível carregar mais transações - Não foi possível carregar seu saldo - Não foi possível criar a fatura - Sua carteira não retornou uma fatura - Tempo esgotado na solicitação à carteira - Não foi possível acessar sua carteira: %1$s - Sua carteira respondeu com algo que o Amethyst não reconhece (%1$s) - O Amethyst não conseguiu descriptografar a resposta da sua carteira — a carteira pode estar usando uma chave diferente - Carteira Cashu (NIP-60) Chave de nutzap (avançado) Uma chave privada separada, usada apenas para receber nutzaps NIP-61. Não é a chave da sua identidade Nostr. Gerar uma nova chave Chave privada P2PK (hex) - Editar carteira Cashu Salvar alterações - - +%1$d mais - +%1$d mais - - - Recomendado por %1$d outro - Recomendado por %1$d outros - - Mints populares - Mints correspondentes - Recebido - Enviado - Publicar um pedido de exclusão para sua recomendação kind:38000 de %1$s. Relays que respeitam o NIP-09 irão removê-la. - Recuperados %1$s sats em %2$s provas. - Pagar %1$s sat + até %2$s sat em taxas? - Falha no nutzap - Sem chave pública do destinatário na nota - Nutzaps são públicos e revelariam esta nota privada. Use um zap Lightning em vez disso. - Não foi possível construir a referência do evento - Aguardando o pagamento da fatura… - Verificando o mint… - Lenta - Normal - Rápida - ~1 h - ~30 min - ~10 min - %1$s · %2$s sat/vB · %3$s - - Enviar %1$s sats, dividido em %2$d parte - Enviar %1$s sats, dividido em %2$d partes - - - Usar a divisão de zap em %1$d partes desta nota - Usar a divisão de zap em %1$d partes desta nota - - - Divide entre %1$d destinatário - Divide entre %1$d destinatários - - - Ignorando %1$d destinatário que só tem endereço Lightning — o on-chain precisa de uma chave pública Nostr para derivar o endereço. - Ignorando %1$d destinatários que só têm endereço Lightning — o on-chain precisa de uma chave pública Nostr para derivar o endereço. - - carregando saldo - montando a transação - assinando - transmitindo - publicando o recibo - O backend da cadeia Bitcoin não está configurado - Não foi possível carregar seu saldo Bitcoin - Não foi possível montar a transação - A parte de um destinatário está abaixo do limite de poeira - Não foi possível assinar a transação - Não foi possível transmitir a transação - Pagamento enviado, mas o recibo do zap não pôde ser publicado - - Pagamento enviado (%1$d de %2$d recibo publicado), mas o próximo recibo não pôde ser publicado - Pagamento enviado (%1$d de %2$d recibos publicados), mas o próximo recibo não pôde ser publicado - - Importar Seguidos - Produto Novo - Novo artigo - Novo evento de calendário - Editar evento de calendário - Novo calendário - Editar calendário - Feed - Mês - Semana - Dia - - %1$s, %2$d evento - %1$s, %2$d eventos - - Acontecendo agora - %1$s · termina %2$s - Compartilhar evento de calendário - calendar_reminders - Lembretes de calendário - Aviso quando um evento do qual você participa está prestes a começar. - Evento de calendário - - Começa em %1$d minuto - Começa em %1$d minutos - - Falha no envio da imagem - A imagem escolhida não pôde ser enviada. Tente novamente ou cole uma URL. - Lembretes de calendário - Enviar lembretes - Uma notificação é disparada quando um evento do qual você participa está prestes a começar. - - %1$d min - %1$d min - - Abrir no mapa - Abrir link - Abrir todas as reações a esta postagem - Fechar todas as reações a esta postagem - Zap - Barra de navegação inferior Arraste para reordenar. Alterne para adicionar ou remover um item da barra inferior. Com zero itens, a barra inferior fica oculta. Reordenar - Nenhum favorito ainda. Marque um app com estrela no navegador para adicioná-lo aqui. - Nenhum grupo ingressado ainda. - Adicionar - Adicionado - Principal - Conversas e Grupos - Você - Feeds - Apps e Web - Outros - Menu lateral - - %1$d oculta - %1$d ocultas - - Visíveis - Ocultas - Sempre ativo Escolha quais abas aparecem na Tela Inicial. Quando apenas uma aba está ativa, a barra de abas fica oculta. - Tudo - Interface do perfil Escolha quais seções e feeds aparecem nas telas de perfil dos usuários. Todas as opções estão habilitadas por padrão. - Selos de perfil - Recomendações de Apps - Feed de Zaps Recebidos - Feed de Seguidores - Carteira Bitcoin (on-chain) - Configurações de Reações - Botões do reprodutor de vídeo - Visualizador de áudio - Editar - Editar - Editando mensagem - %1$s e %2$s estão digitando… Espaços de trabalho Buzz Onde humanos e agentes constroem juntos Sair do espaço de trabalho @@ -1715,65 +213,6 @@ Adicionar Nenhum canal encontrado Você ainda não parece ser membro de nenhum canal neste relay. Aceite primeiro o convite do espaço de trabalho no navegador e tente novamente. - Fixar canal - Desafixar canal - - %1$d conversa oculta - %1$d conversas ocultas - - - Ver mais %1$d conversa - Ver todas as %1$d conversas - - Aguardando um relay aceitar esta mensagem - Nenhuma informação de relay para esta mensagem - Aceita por pelo menos um relay - Entregue aos relays de todos os destinatários - Data de expiração - O autor pediu aos relays que excluam esta nota após %1$s. Ela desaparecerá dos feeds quando expirar. - Endereço inválido - O Amethyst recebeu um URI para abrir, mas esse URI era inválido: %1$s - Relés da Caixa de Entrada de DM - Relés de Pesquisa - Boas opções são:\n%1$s - Relays de Saída - Relays de Entrada - Configurações de Relay - Relés Públicos de Casa - O usuário está publicando seu conteúdo nesses relays - Esse tipo de relé armazena todo o seu conteúdo. Amethyst enviará suas postagens aqui e outros usarão esses relés para encontrar seu conteúdo. Insira entre 1–3 relés. Eles podem ser relés pessoais, relés pagos ou relés públicos. - Relés Públicos de Caixa de Entrada - O usuário está recebendo notificações nesses relays - Esse tipo de relé recebe todas as respostas, comentários, curtidas e zaps para suas postagens. Insira entre 1–3 relés e certifique-se de que aceitem postagens de qualquer pessoa. - Relés de Caixa de Entrada de DM - O usuário recebe mensagens diretas (DMs) nesses relays - Insira entre 1–3 relés para servir como sua caixa de entrada privada. Outros usarão esses relés para enviar DMs para você. Relés de Caixa de Entrada de DM devem aceitar qualquer mensagem de qualquer pessoa, mas permitir apenas você baixá-las. Boas opções são:\n - inbox.nostr.wine (pago)\n - you.nostr1.com (relés pessoais - pago) - KeyPackages - Relays de KeyPackage - Relays onde seus MLS KeyPackages são publicados (MIP-00). Outros usuários os buscam para convidá-lo para chats em grupo Marmot. Insira de 1 a 3 relays que aceitem eventos KeyPackage seus e permitam leitura pública. - Relés privados - Insira entre 1–3 retransmissores para armazenar eventos que ninguém mais possa ver, como seus rascunhos e/ou configurações de aplicativo. Idealmente, esses relés são locais ou requerem autenticação antes de baixar o conteúdo de cada usuário. - Relays conectados - Lista atual de relays em uso - Relés de Pesquisa - Lista de relés para usar em pesquisas e marcação de usuários. A marcação e a pesquisa não funcionarão se não houver opções disponíveis. - Relés locais - Lista de relés que estão sendo executados neste dispositivo. - Encaminhar perfis para relay local - Enviar todos os eventos de perfil recebidos (kind 0) para o seu relay local - Relays confiáveis - Relays em que você confia e que não precisam de conexão via Tor - Feeds de Relays Favoritos - Relays que você visita com frequência para ver o feed Global deles - Relays proxy - Relays agregadores que o app usa para baixar seus feeds, como filter.nostr.wine. Isso substitui o modelo outbox e faz o app se conectar apenas aos relays das suas listas. - Relays de broadcast - Relays especializados em enviar suas notas para todos os outros relays, como sendit.nosflare.com. O Amethyst adicionará esse relay a todos os novos eventos criados por você - Relays de indexação - Relays que armazenam metadados e listas de relays, como purplepag.es. O Amethyst usará esses relays para encontrar usuários fora de suas listas. - Relays bloqueados - O Amethyst nunca se conectará a esses relays - Exportar configurações de relay Site: Visão geral Mantido por @@ -1782,609 +221,40 @@ Mantenedores Tópicos Readme - - %1$d iten - %1$d itens - Fechar issue Reabrir - Repositórios Git - Destaques - Filtrar repositórios - Fechar filtro - Prova de Carimbo de data/hora - Há prova de que esta postagem foi assinada antes de %1$s. A prova foi carimbada no blockchain do Bitcoin naquela data e hora. - Uma prova de carimbo de data/hora para esta publicação foi solicitada e está aguardando para ser registrada na blockchain do Bitcoin. Geralmente conclui em algumas horas. - Editar postagem - Não é possível responder uma nota em rascunho - Não é possível citar uma nota em rascunho - Não é possível reagir uma nota em rascunho - Não é possível fazer um zap em uma nota em rascunho - Nota de rascunho - Requisição inválida - O servidor não pode ou não irá processar a requisição. - Não autorizado - O usuário não possui credenciais de autenticação válidas - Pagamento necessário - O servidor requer pagamento para completar a requisição - Proibido - O usuário não tem direitos de acesso para fazer a requisição - Não encontrado - O servidor não consegue encontrar o endereço solicitado - Método não permitido - O servidor suporta o método da requisição, mas não o recurso alvo - Não aceitável - O servidor não encontra nenhum conteúdo que satisfaça a requisição. - Autenticação de Proxy necessária - O usuário não possui credenciais de autenticação válidas - Tempo de requisição esgotado - O servidor esperou muito tempo por outra parte - Conflito - O servidor não pode cumprir a requisição devido a um conflito com o recurso - Indisponível - O conteúdo solicitado foi permanentemente excluído do servidor e não será restaurado - Comprimento necessário - O servidor rejeita a requisição porque requer um comprimento definido - Falha na pré-condição - As pré-condições do cabeçalho da requisição não foram atendidas pelo servidor - Carga muito grande - A requisição é maior que os limites definidos pelo servidor, e o servidor se recusa a processá-la - URI muito longa - A URL solicitada pelo cliente é muito longa para o servidor processar. - Tipo de mídia não suportado - A requisição usa um formato de mídia que o servidor não suporta - Faixa não satisfatória - O servidor não pode atender ao valor indicado no campo de cabeçalho Range da requisição. - Falha na expectativa - O servidor não pode atender aos requisitos indicados pelo campo de cabeçalho Expect da requisição - Atualização necessária - O servidor se recusa a processar a requisição com o protocolo atual, a menos que o cliente faça a atualização para um protocolo diferente. - Erro interno do servidor - O servidor encontrou um erro inesperado e não pode completar a requisição - Não implementado - O servidor não pode cumprir a requisição ou não reconhece o método da requisição - Gateway inválido - O servidor atua como um gateway e recebeu uma resposta inválida do host - Serviço indisponível - Isso geralmente ocorre quando um servidor está sobrecarregado ou em manutenção - Tempo de gateway esgotado - O servidor estava atuando como um gateway ou proxy e esperou muito tempo por uma resposta - Versão HTTP não suportada - O servidor não suporta a versão HTTP na requisição - Variante também negocia - O servidor tem um erro de configuração interna - Armazenamento insuficiente - O servidor não possui armazenamento suficiente para processar a requisição com sucesso - Loop detectado - O servidor detecta um loop infinito enquanto processa a requisição - Autenticação de rede necessária - O cliente deve ser autenticado para acessar a rede Servidores de Blossom Adicione quantos servidores você desejar. Você pode escolher qual usar mais tarde quando enviar sua foto - Adicionar um servidor NIP-96 - Adicionar um Servidor de Blossom Baixar - Falha ao abrir o arquivo - Nenhum aplicativo torrent instalado para abrir e baixar o arquivo. - O evento não tem informações suficientes para criar um link magnético - Minhas listas - Feeds - Hashtags - Conjuntos de interesses - Localizações - Comunidades - Listas - Algoritmos de feed - Todos os algoritmos de feed favoritos - Relés - Algoritmos de feed favoritos - Mensagem Privada - Mensagem pública - Não é possível compartilhar a imagem, por favor tente novamente mais tarde… - Não foi possível compartilhar o vídeo, tente novamente mais tarde… - Baixando vídeo… - Não Traduzir de - Os idiomas mostrados aqui não serão traduzidos. Selecione um idioma para removê-lo e traduzi-lo novamente. - Traduzir para - Escolha o idioma para o qual o conteúdo será traduzido. - Preferências de exibição de idioma - Para cada par de idiomas traduzido, escolha qual idioma exibir primeiro. - Pausar - Reproduzir - Uso de recursos do app - bateria dados uso consumo energia rede diagnóstico registro Hoje Últimos 7 dias - Celular hoje - Wi-Fi hoje - Tempo de relay hoje - No app hoje - Dados por dia - Celular (MB) - Wi-Fi (MB) - Atividade (7 dias) Dados de celular (segundo plano) Dados de celular (no app) Dados de Wi-Fi - Tempo de conexão com relay - … em segundo plano no celular - Processamento de notificações (CPU ativa) - Tarefas em segundo plano executadas - Reconexões de relay (falhas) - Requisições web - Ativações do rádio para downloads (est.) - Tempo de transferência ativa - Tempo de reprodução de mídia - Assinaturas verificadas - Tempo de processador usado Tempo no app - Inícios do processo do app - Mensagens descriptografadas - Assinaturas remotas - Mineração de proof-of-work - Tempo ativo do Tor - Tempo em chamadas - Tempo em salas de áudio - Escuta de localização - Bateria usada (no app / em segundo plano) - Serviço de notificações em segundo plano - Tempo em execução - - %1$d início - %1$d inícios - - Conexões de relay mantidas enquanto fechado - Bateria consumida nesse período (todo o dispositivo) - Bateria / hora no app - Dados / hora no app - Média de conexões de relay - Dados de celular por recurso (7 dias) - Tempo por tela (7 dias) - Tor integrado - Dados por recurso (7 dias) - Sincronização de relay - Imagens - Vídeo e áudio - Envios - Carteira e zaps - Verificação de endereço - Prévias de links - Registro de push - Outros - Memória agora - Memória do app (heap) - Memória nativa - Cache de imagens (RAM) - Cache de imagens (disco) - Notas na memória - Perfis na memória - Eventos endereçáveis na memória - Listas de salas de chat na memória - Classe de memória do dispositivo - Compartilhar com os desenvolvedores - Compartilhar - O Amethyst consumiu mais do que o esperado recentemente: %1$s. Deseja enviar um relatório de uso aos desenvolvedores em uma DM criptografada? Você verá o relatório completo antes de qualquer envio. - %1$s de dados de celular em segundo plano em um dia - %1$s de conexões de relay em segundo plano no celular em um dia - a CPU ficou ativa por %1$s processando notificações em um dia - - o processo do app reiniciou %1$d vez em um dia - o processo do app reiniciou %1$d vezes em um dia - - - o app reconectou aos relays %1$d vez em um dia - o app reconectou aos relays %1$d vezes em um dia - - Esta mensagem desaparecerá em %1$s - Metadados da lista de seguidores - Os metadados das listas de seguidores podem ser vistos por qualquer pessoa no Nostr. Apenas os membros privados são criptografados. - Metadados do pacote de recomendações - Os metadados dos pacotes de recomendações podem ser vistos por qualquer pessoa no Nostr e são frequentemente publicados em sites como kits iniciais para novos usuários. - Editar pacote de recomendações - Expandir - Tentar novamente - Reação - Post de voz - Resposta em voz - - · %1$d seleção - · %1$d seleções - - %1$d de %2$d respostas carregadas de %3$d relays. - %1$d de cerca de %2$d respostas carregadas de %3$d relays. - - %1$d voto › - %1$d votos › - - - %1$d votante - %1$d votantes - - - %1$d voto chegou depois do encerramento da enquete e foi excluído. - %1$d votos chegaram depois do encerramento da enquete e foram excluídos. - - - %1$d voto tem data anterior à publicação da enquete e foi excluído. - %1$d votos têm data anterior à publicação da enquete e foram excluídos. - - - %1$d resposta não escolheu uma opção válida e foi excluída. - %1$d respostas não escolheram uma opção válida e foram excluídas. - - - %1$d votante está oculto pela sua lista de silenciados. - %1$d votantes estão ocultos pela sua lista de silenciados. - - Relays de Saída - Aplicativos - Recomendações de Apps - Configurações do Usuário - Cabeçalho de Áudio - Faixa de Áudio - Faixa de música - Playlist de música - Episódio de podcast - Programa de podcast - Podcasts criados - Podcasts favoritos - Concessões de Emblemas - Definições de Emblemas - Conjunto de Distintivos Aceito - Emblemas do Perfil - Relays Bloqueados - Servidores Blossom - Servidores Nests - Autenticação Blossom - Relays de Broadcast - Lista de Favoritos - Lista de Favoritos Antiga - Compromisso do Dia - Calendário - Compromisso - RSVP do Compromisso - Jogos de Xadrez - Autenticação de Xadrez - Relays Favoritos - Desafios de Xadrez - Aceitar Jogo de Xadrez - Movimento de Xadrez - Fim do Jogo de Xadrez - Oferta de Empate - Definição de Canal - Ocultar Mensagem do Canal - Lista de Canais - Mensagem do Canal - Metadados do Canal - Silenciar Usuário no Canal - Arquivo DM - Mensagem DM - Relays de DM - Classificados - Comentários - Definição de Comunidade - Lista de Comunidades - Post da Comunidade - Lista de Seguindo - Exclusões - Rascunhos - Pacotes de Emoji - Lista de Pacotes de Emoji - Chat Efêmero - Salas de Chat Efêmeras - Cabeçalhos de Arquivo - Galeria do Perfil - Servidores de Arquivo - Dados Blob - Cabeçalhos Blob - Dados Médicos - Pacotes de Seguir - Repostagens (16) - Seguindo Geohash - Embrulhos de presente - Issue do Git - Patch do Git - Repositório Git - Resposta do Git - Pull request - Atualização de PR - Status do Git: Aberto - Status do Git: Aplicado - Status do Git: Fechado - Status do Git: Rascunho - Metas de Zap - Hashtags seguidas - Destaques - Autenticação HTTP - Lista de relays de índice - Prólogo da aventura - Cena da aventura - Leitura da aventura - Favoritos nomeados - Chats ao vivo - Transmissões ao vivo - Zaps - Solicitação NWC - Resposta NWC - Zaps privados - Solicitação de Zap - Blogs - Sala de reunião - Presença na sala - Espaço de reunião - Perfil - Lista de silenciados - NNS - CNPJ - Nostr Connect - Status do DVM - Solicitação de conteúdo DVM - Resposta de conteúdo DVM - Solicitação de usuário DVM - Resposta de usuário DVM - OTS - Pagar para - Listas de pessoas - Imagens - Treinos - Fixados - Enquete de Zap - Enquete - Resposta da enquete - DMs NIP-04 - Relays privados - Relays proxy - Mensagem pública - Reações - Cartão de contato - Autenticação de relay - Descoberta de Relays - Anúncio de Monitor de Relay - Conjunto de relays - Denúncias - Repostagens - Excluir usuário - Selos - Relays de busca - Status do usuário - Notas - Edições - Torrents - Comentários de torrent - Relays confiáveis - Provedores confiáveis - Vídeo (resposta) - Shorts (resposta) - Vídeo - Shorts - Mensagem de voz - Resposta de voz - Despertar - Marcador Web - Wiki - %1$d%% de disponibilidade - Configurações do Namecoin - %dms - Sincronização de Relays - Explorador Bitcoin (OTS) - eventos de você - eventos para você - eventos pesquisáveis - DMs - perfils - listas de saída - Visto pela última vez há %1$s - Visto pela última vez em %1$s (há %2$s) - Visto agora mesmo - Nunca visto - - %1$d minuto - %1$d minutos - - - %1$d hora - %1$d horas - - - %1$d dia - %1$d dias - - - %1$d semana - %1$d semanas - - - %1$d mês - %1$d meses - - - %1$d ano - %1$d anos - - - %1$d mint - %1$d mints - - - %1$d fatura pendente - %1$d faturas pendentes - - - Fundos mantidos em %1$d mint que você não usa - Fundos mantidos em %1$d mints que você não usa - - %1$s sat movidos para %2$s. - Transmitir para dispositivo - Parar transmissão - Upload HLS - Enviando %1$s (%2$d de %3$d) - Atestação - Solicitação de atestação - Recomendação do atestante - Competência do atestante - Marcadores Web - Adicionar Marcador Web - Editar Marcador Web - %1$s financiado de %2$s sats da meta - Nova Meta - Pedido para Desaparecer - Pedido para desaparecer enviado - Histórico de Desaparecimento - Usuários - Eventos - Tipos - IPs - Configurações - Sugerir melhorias de texto - Usa um modelo de IA no dispositivo para sugerir correções de texto e mudanças de tom. - Transmissões rastreadas - Usar o transmissor rastreado ao enviar eventos. Mostra progresso ao vivo e status por relay durante a transmissão. - Sugerir treinos para compartilhar - Lê treinos concluídos do Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) e sugere compartilhá-los como publicação. A permissão é solicitada apenas quando você conecta. - Configurações de composição - Criar rascunhos automaticamente - Salva um evento de rascunho automaticamente quando você digita ou sai do compositor com texto não enviado e envia para seus relays de saída privados. - Prova de trabalho - O autor gastou poder de computação para minerar esta nota até a dificuldade %1$s — um selo de proof-of-work que torna o spam caro. - Notas curtas & respostas - A principal superfície de spam público - Comentários - Respostas a artigos, arquivos e outros conteúdos - Denúncias - Os relays ponderam as denúncias pelo seu custo - Conteúdo longo & destaques - Artigos e destaques; pouco frequentes, o custo é insignificante - Mensagens de voz - Publicações e respostas de voz públicas - Republicações - Alto volume para usuários ativos - Reações - Kind de maior volume; minerar cada curtida gasta bateria - Chat público & ao vivo - Atrasos de mineração prejudicam o fluxo da conversa - Envelopes de mensagens privadas - Permite que os relays de DM filtrem spam da caixa de entrada; apenas o envelope externo é minerado, nunca sua mensagem - Outro conteúdo público - Enquetes, status ao vivo, classificados e tudo mais que for público - Minerando prova de trabalho - - Minerando prova de trabalho… (%1$d publicação na fila) - Minerando prova de trabalho… (%1$d publicações na fila) - - - %1$s • minerando em %2$d bit - %1$s • minerando em %2$d bits - - - %1$s • aguardando para minerar em %2$d bit - %1$s • aguardando para minerar em %2$d bits - - - Padrão (%1$d bit) - Padrão (%1$d bits) - - - %1$d bit - %1$d bits - - Mineração de prova de trabalho - Mostra publicações que ainda estão minerando sua prova de trabalho NIP-13 para que possam terminar depois que você sair do app. - Cancelar - Enviar agora - <1 s - - %1$d segundo - %1$d segundos - - - %1$d minuto - %1$d minutos - - - %1$d hora - %1$d horas - - - %1$d dia - %1$d dias - - ≈ %1$s restante - a qualquer momento - Seu %1$s terminou de minerar, mas não pôde ser publicado: %2$s - Seu %1$s terminou de minerar, mas não pôde ser publicado. Uma nova tentativa será feita na próxima vez que o app iniciar. - Mensagem de chat - Denúncia - Novo pacote de emoji - Editar pacote de emoji - Meus pacotes de emojis - Emojis - Emojis públicos são visíveis para todos e aparecem no seu menu de reações e no seletor de autocompletar \":\" quando este pacote está na sua lista de emojis. - Emojis privados são armazenados criptografados em relays e visíveis apenas para você. Eles aparecem no seu menu de reações e no autocompletar \":\" assim como os públicos. - O rascunho tem %1$d bytes; esta comunidade limita este tipo a %2$d bytes. - O rascunho tem %1$d bytes; esta comunidade limita eventos a %2$d bytes. - Você já publicou %1$d eventos deste tipo hoje (limite %2$d). - Site Nowhere - Nowhere Evento - Nowhere Arrecadação - Nowhere Loja - Nowhere Petição - Nowhere Mensagem - Nowhere Drop - Nowhere Arte - Nowhere Fórum - - %1$d msg - %1$d msgs - - - %1$d membro - %1$d membros - - - Sua carteira não respondeu em %1$d segundo. O pagamento pode ou não ter sido concluído — verifique sua carteira antes de tentar novamente. - Sua carteira não respondeu em %1$d segundos. O pagamento pode ou não ter sido concluído — verifique sua carteira antes de tentar novamente. - - - Tempo esgotado na solicitação à carteira — %1$d resposta foi rejeitada porque foi assinada por uma chave inesperada. Seu relay pode não ser confiável. - Tempo esgotado na solicitação à carteira — %1$d respostas foram rejeitadas porque foram assinadas por uma chave inesperada. Seu relay pode não ser confiável. - - Adicionar foto - Alterar foto - Informações do grupo atualizadas - Falha ao atualizar: %1$s - Falha ao criar grupo: %1$s - Falha ao sair do grupo: %1$s - Adicione primeiro um servidor de mídia Blossom nas Configurações — o grupo precisa de um lugar para onde enviar os anexos. - Este grupo agora usa anexos criptografados - Não foi possível mudar este grupo para anexos criptografados: %1$s - Grupo dissolvido - Encerrando o grupo. Isso termina quando o grupo concordar. - Este grupo está sendo encerrado. Você ainda pode lê-lo. - Você está saindo deste grupo. - Você não é mais membro deste grupo. - Não foi possível dissolver o grupo: %1$s - Adicionando %1$s… - Falha ao adicionar %1$s: %2$s - erro desconhecido - Membro removido - Falha ao remover membro: %1$s - Privilégios de administrador concedidos - Falha ao conceder admin: %1$s - Privilégios de administrador revogados - Falha ao revogar admin: %1$s - Não é membro deste grupo O serviço Lightning do destinatário em %1$s não está disponível. Foi calculado a partir do endereço Lightning \"%2$s\". Erro: %3$s. Verifique se o servidor está funcionando e se o endereço Lightning está correto Não foi possível resolver %1$s. Verifique se você está conectado, se o servidor está funcionando e se o endereço Lightning %2$s está correto.\n\nExceção foi: %3$s Erro ao analisar JSON da busca de fatura %1$s. Verifique a configuração de iluminação do usuário Não foi possível criar uma fatura com raios. Mensagem do %1$s: %2$s Não foi possível criar uma fatura lightning a partir de %1$s: Elemento pr não encontrado no JSON resultante. - Chat de localização - Canal de localização - Converse com quem estiver perto de um lugar, por geohash. - Local - Melhor para conversar com pessoas fisicamente próximas de um local — seu quarteirão, cidade ou região. - Escolher um local - Anônimo — uma identidade descartável por área, nunca seu npub. - Compatível com Bitchat; alcança usuários próximos nos mesmos relays. - Público e efêmero — sem histórico, qualquer um na célula pode ler. - Na fila - Trabalhando - Precisa de aprovação - Aprovada - Entregue - Falhou - Cancelada - Negada - Valor-para-Valor diff --git a/amethyst/src/main/res/values-pt-rPT/strings.xml b/amethyst/src/main/res/values-pt-rPT/strings.xml index 278fda2e5c..11092234bb 100644 --- a/amethyst/src/main/res/values-pt-rPT/strings.xml +++ b/amethyst/src/main/res/values-pt-rPT/strings.xml @@ -1,114 +1,12 @@ - - Esta publicação tem mais de %1$d hashtag - Esta publicação tem mais de %1$d hashtags - - - %1$d recurso incluído - %1$d recursos incluídos - - - +%1$d\nresposta - +%1$d\nrespostas - - O número de eventos de spam vindo deste relé - Representação - Comportamento ilegal - Pedir para excluir - Faça login com uma chave privada para poder responder - Faça login com uma chave privada para poder impulsionar postagens - Faça login com uma chave privada para curtir postagens - Nenhuma configuração de quantidade de Zap. Pressione e segure para alterar - Faça login com uma chave privada para poder enviar Zaps - Faça login com uma chave privada para poder seguir - Faça login com uma chave privada para poder remover seguidores - Você está usando uma chave pública e as chaves públicas são somente de leitura. Faça login com uma chave privada para poder ocultar uma palavra ou frase. - Você está usando uma chave pública e as chaves públicas são somente de leitura. Faça login com uma chave privada para poder mostrar uma palavra ou frase. - Você está usando uma chave pública, e chaves públicas são somente leitura. Faça login com uma chave privada para poder fazer upload - Você está usando uma chave pública, e chaves públicas são somente leitura. Faça login com uma chave privada para poder assinar eventos - Descriptografia não autorizada - O assinador não autorizou a descriptografia necessária para realizar esta operação. Ative as descriptografias NIP-44 no seu aplicativo de assinatura e tente novamente - Assinador não encontrado - O aplicativo de assinatura foi desinstalado? Verifique se ele está instalado e com esta conta. Saia e entre novamente se ele foi alterado. - O assinador externo retornou dados estranhos para a solicitação. Pode haver um bug no Amethyst ou no assinador. - Impulsionar impulsionado edição #%1$s - Propor uma Edição - Adicionar - Erro ao analisar mensagem de erro - Perfil - Filtros de segurança - Solicitando fatura… - O serviço de débito não concluiu o pagamento. - Pagar %1$s via %2$s? - Pagar esta fatura via %1$s? - Insira um valor válido para esta oferta. - Única vez - Diário - Semanal - Mensal - Pagar - Pagando via %1$s… - Falha no pagamento - Disponível para este destinatário: %1$s sats - Transação: %1$s - "Visualize a imagem do cartão para %1$s" - Descrição - O que você está pensando? - Escreva uma mensagem… - Salvar Salvar - Enviar - Criar Renomear - Cancelar - Erro - Erros - Porcentagem de conexões bem-sucedidas ao relay - Salvar no celular - Imagem salva para a galeria - O download do vídeo foi iniciado… - O download da mídia foi iniciado… - Fixar no topo - Desafixar - Falha ao salvar a imagem - Vídeo salvo na galeria de vídeos do telefone - Falha ao salvar o vídeo - PDF salvo em Downloads/Amethyst - Falha ao salvar o PDF - Nenhum app de câmera encontrado neste dispositivo - Clique e segure para gravar uma mensagem - Erro de upload - Falha ao enviar mensagem de voz - O NIP-95 ainda não é suportado para mensagens de voz - Falha no upload de voz: %1$s - Nenhum - Grave - Agudo - Neutro - Usuário não tem um endereço lightning configurado para receber sats - "responda aqui.. " - Conhecidos - Novas Solicitações - Usuários - Novos Tópicos - Conversas - Mais opções - Mostrar código QR de chave privada - Mostrar o código QR da chave privada criptografado - Seguir - Seguir de volta - Esconder senha - Chave inválida - Chave inválida: %1$s - Senha é necessária - Chave é obrigatória - Um nome é necessário @@ -117,154 +15,7 @@ Novo perfil de chat: - Sair - Desseguir - Chat Desaparecendo - Chat Relé - Chat Relés - Chat Relés são grupos de chat controlados por seu relé de origem. - Eles são visíveis para todos no Nostr e qualquer pessoa pode participar. - São ótimos para comunidades abertas em torno de tópicos específicos. Alguns desses grupos são efêmeros, - portanto, as mensagens desaparecem com o tempo - Chat público - Grupo MLS - Metadados do Chat Público - Os chats públicos são visíveis para todos no Nostr, e qualquer pessoa - pode participar deles. Eles são ótimos para comunidades abertas em torno de tópicos específicos. - A moderação pode ser controlada excluindo postagens em seus relays - Relés - Inserir entre 1–3 relés que hospedam esse grupo. - os clientes Nostr usam essa configuração para saber de onde fazer o download de mensagens e enviar suas mensagens. - Remover - nunca - agora - Nudez - Palavrões / Discurso de ódio - Backup das chaves - Falha ao criptografar sua chave privada - Chave secreta (nsec) copiada - Copiar minha chave secreta - Autenticação falhou - A autenticação biométrica falhou ao autenticar o proprietário deste telefone - A autenticação biométrica falhou ao autenticar o proprietário deste telefone. Erro: %1$s - Texto copiado - Copiado @npub do autor - Copiado ID da nota (@note1) - "<Não foi possível descriptografar a mensagem privada>\\n\\nVocê foi citado em uma conversa privada/criptografada entre %1$s and %2$s." - Contas - Navegar - Você - Criar - Sistema - Voltar - Compartilhar link do navegador - Compartilhar - Compartilhar como imagem - Compartilhar como URL de imagem - ID da Nota - Excluir - Silenciar tópico - Reativar tópico - - Bloquear - Itens Salvos - Favoritos migrados com sucesso - Rascunhos - Posts agendados - Agendar post - Cancelar agendamento - Posts agendados podem não ser publicados até você reabrir o app. Ative notificações sempre ativas em Configurações → Preferências de UI para agendamento confiável em segundo plano. - Posts agendados podem não ser publicados até você reabrir o app. Posts agendados de outras contas não serão disparados enquanto esta conta estiver ativa. Ative notificações sempre ativas em Configurações → Preferências de UI para agendamento confiável em segundo plano. - %1$s · em %2$s - %1$s · há %2$s - Amanhã - Desconectado - - Desconectado · %d post agendado excluído - Desconectado · %d posts agendados excluídos - - Post agendado publicado - Post agendado falhou - Posts agendados - Notificações quando um post agendado é publicado ou falha ao publicar. - Enviar agora - Erro: %1$s - Agendado - Enviando… - Falhou - Enviado - Cancelado - - Você tem %d post agendado que ainda não foi publicado. Sair excluirá esse post permanentemente. - Você tem %d posts agendados que ainda não foram publicados. Sair excluirá esses posts permanentemente. - - - %d na fila - %d na fila - - - · %d em 1h - · %d em 1h - - - para %d relay - para %d relays - - ID do post copiado - Enquetes - Abertas - Encerradas - Selos - Comunidades - Nova comunidade - Editar comunidade - Moderadores - Relés - Regras verificáveis (opcional) - Tipos de evento permitidos - Texto curto (1) - Artigo longo (30023) - Post de imagem (20) - Post de vídeo (21) - Vídeo curto (22) - Comentário da comunidade (1111) - Usuários banidos - Regra da rede de confiança (opcional) - Tamanho máximo global do evento (opcional) - Novo selo - Conceder selo - Selos de perfil - Imagens - Treinos - Novo treino - Corrida - Caminhada - Ciclismo - Trilha - Natação - Remo - Musculação - Ioga - Meditação - Dieta - Jejum - Circuito - Aplicativos Apps - Navegador - Carregando pelo Tor. Toque para usar a web aberta. - Carregando pela web aberta. Toque para usar o Tor. - Favoritos - Apps favoritos - Adicionar aos favoritos - Remover dos favoritos - Carrega pelo Tor. - Carrega pela web aberta. - Publicado nos relays - Enviou um arquivo - Realizou um pagamento - Este app ainda não carregou. Tente novamente em um momento. - Recente Permissões de nApplet Nenhuma permissão de nApplet ainda As permissões que você conceder aos nApplets aparecerão aqui. @@ -273,44 +24,11 @@ Revogar - Identidade - Ações de teclado - Armazenamento - Pagamentos - Rede Consultar quais capacidades estão disponíveis - Ler sua chave pública - Vincular atalhos de teclado - Ler, assinar & publicar seus eventos - Armazenamento privado próprio - Pagar faturas Lightning - Buscar recursos da web e do Blossom - Enviar arquivos para o seu servidor de mídia - Tema - Notificações - Mensagens - Combinar as cores do seu app - Mostrar notificações para você - Trocar mensagens com outros nApplets Capacidade: %1$s - Este nApplet quer ler sua chave pública. - Este nApplet quer ler seu perfil e dados da conta. - Este nApplet quer assinar e publicar um evento kind %1$d como você. - Este nApplet quer assinar e publicar um evento kind %1$d como você: - Este nApplet quer enviar um evento criptografado como você. - Este nApplet quer ler eventos dos seus relays. - Este nApplet quer usar seu armazenamento privado. Este nApplet quer pagar uma fatura Lightning. - Este nApplet quer buscar um recurso da web. - Este nApplet quer enviar um arquivo para o seu servidor de mídia. - Este nApplet quer mostrar notificações para você. - Este site quer assinar um evento kind %1$d com sua chave Nostr. - - Este nApplet quer pagar uma fatura Lightning de %1$d sat. - Este nApplet quer pagar uma fatura Lightning de %1$d sats. - - Curtas - Chats públicos - Pacotes de seguidos - Transmissões ao vivo - Salas de áudio - Levantar mão - Abaixar mão - Silenciar - Ativar som - Não foi possível enviar a mensagem - Silenciar microfone - Ativar microfone - Salas de áudio - Mantém o áudio tocando enquanto a sala está aberta. - Nest conectado - Nest — Ao vivo - Toque para voltar. - Parar - levantou a mão - subiu ao palco - está falando - entrou como audiência - saiu do nest - Sair - Não foi possível marcar a sala como fechada. Saindo mesmo assim — a sala será fechada automaticamente. - - %1$d ouvinte - %1$d ouvintes - - Silenciar este orador - Restaurar este orador - Seguir - Deixar de seguir - Silenciar - Ativar som - Não foi possível salvar sua lista de servidores. Tente novamente. - Servidores de nest - Seus servidores - Salvo como evento substituível kind-10112 para que outros clientes possam ler sua preferência. - Servidores recomendados - Sugestões integradas que você pode adicionar à sua lista com um toque. - Vídeos - Música - Listas de reprodução - Episódios - - %1$d episódio - %1$d episódios - - Nova faixa de música - Nova playlist - - %1$d faixa - %1$d faixas - - Adicionar aos Itens Salvos Públicos - Remover dos Itens Salvos Públicos - Fixar no Perfil - Desafixar do Perfil - Nova lista de favoritos - Metadados da lista de favoritos - Conjuntos de interesses - Novo conjunto de interesses - Renomear - Tornar privado: empacotar a nota (gift-wrap) apenas para os usuários notificados - Tornar público - Respostas a uma nota privada permanecem sempre privadas - Visível para Nenhum destinatário ainda: apenas você poderá ver esta nota. Adicione pessoas para compartilhá-la. Adicionar Remover usuário das notificações Pesquisar e adicionar um usuário para notificar - Os metadados das listas de favoritos podem ser vistos por qualquer pessoa no Nostr. Somente seus membros privados são criptografados. - Mover para público - Mover para privado - Recarregar e enviar zap - Enviar zap - Recarregue %1$s sats para %2$s e envie zap de %3$s %4$s sats · taxa ≈ %5$s sats - Opção %s - Escolha única - Múltipla escolha - Impossibilitado de votar - A enquete está fechada para novos votos - Apenas um voto por usuário é permitido neste tipo de enquete - Os autores de enquetes não podem votar em suas próprias enquetes. - O que isso significa? - A imagem é a mesma desde o post - A imagem mudou. O autor pode não ter visto a mudança - Adicionar Mídia - Adicionar Imagem - Adicionar Vídeo - Adicionar Documento - Servidor de arquivos - Escolha um servidor para onde enviar este arquivo - Servidores de Mídia Defina seus servidores de upload de mídia preferidos. Servidores de Mídia Recomendados Lista padrão do Amethyst. Você pode adicioná-los individualmente ou adicionar a lista. - Destinos de pagamento - Adicione endereços de pagamento para diferentes redes (ex.: bitcoin, lightning, ethereum). - Nenhum aplicativo encontrado para processar este pagamento. Por favor, instale uma carteira compatível. - Nenhum app instalado para processar pagamentos %1$s. Instale uma carteira compatível. - Não foi possível abrir o pagamento - Opções de Privacidade - Seguindo - Seguindo do Usuários - Lista Padrão de Seguir - Perto de mim - Curada - Meus - Lista Silenciada - Nova lista de seguidores - Novo pacote de recomendações - Editar lista - Porta padrão é 9050 - Porta Socks Orbot - Motor Tor Ativo - Use a versão interna ou o Orbot - Predefinições Tor/Privacidade - Modifique rapidamente todas as configurações abaixo - Endereço Onion/Relés - Use Tor para qualquer URL .onion - Relés de DM - Forçar Tor para enviar e receber mensagens diretas - Relés Não Confiáveis - Forçar Tor em relés de entrada/saída - Relés Confiáveis - Forçar Tor em todos os relés nas suas listas - Fotos de Perfil - Forçar Tor ao carregar fotos de perfil - Pré-visualizações de URL - Forçar Tor ao carregar pré-visualizações de URL - Imagens - Forçar Tor ao carregar imagens - Vídeos - Forçar Tor ao carregar vídeos - Operações Financeiras - Forçar Tor em zaps, transfers relâmpago e cashu - Verificação de Endereço Nostr - Forçar Tor ao verificar endereços NIP-05 - Envio de Mídia - Forçar Tor ao enviar conteúdo - Interno - Desativado - Básico - Padrão - Tudo exceto Mídia - Privacidade Completa - Personalizado - Use Tor quando for necessário pelo servidor - Oculte seu IP de relés aleatórios - Oculte seu IP de tudo, exceto imagens e vídeos - Oculte seu IP em todas as conexões - Faça o seu próprio - Mensagens privadas - Notifica você quando chega uma mensagem privada - Zaps Recebidos - Notifica quando alguém te manda um zap - De %1$s - por %1$s - Responder - Marcar como lida - Novas mensagens - Novos zaps - Reações - Notifica você quando alguém reage à sua publicação - %1$s reagiu à sua publicação - para %1$s - Novas reações - Xadrez - Notifica você sobre eventos de jogos de xadrez - %1$s aceitou seu desafio de xadrez - %1$s jogou — a sua vez - Atualizações de xadrez - Respostas - Notifica você quando alguém responde à sua publicação %1$s respondeu em: %1$s - Novas respostas - Menções - Notifica você quando alguém menciona ou cita você em uma publicação - %1$s mencionou você - Novas menções @@ -536,36 +80,6 @@ - Chamadas recebidas - Notificações de chamadas de voz e vídeo recebidas - Chamada recebida - Chamada de voz recebida\u2026 - Chamada de vídeo recebida\u2026 - Chamada com %1$s - Chamadas - Notificação de chamada em andamento - Desligar - Aceitar - Rejeitar - Silenciar - Ativar som - Câmera ligada - Câmera desligada - Alto-falante - Auricular - O Amethyst precisa de acesso ao microfone para iniciar uma chamada de voz. Habilite-o nas configurações do aplicativo. - O Amethyst precisa de acesso à câmera e ao microfone para iniciar uma chamada de vídeo. Habilite-os nas configurações do aplicativo. - Configurações de Chamada - Mantém as conexões com seus relays de caixa de entrada ativas para notificações em tempo real - Notificações do Amethyst ativas - - Conectado a %1$d relay de entrada - Conectado a %1$d relays de entrada - - - Conectado a %1$d relay - Conectado a %1$d relays - - Conectando aos relays de caixa de entrada\u2026 Serviço de notificações sempre ativo Mantém uma conexão persistente com seus relays de caixa de entrada para entrega instantânea de notificações. Mostra uma notificação contínua. Usa mais bateria, mas garante que você nunca perca uma mensagem. - Dividir notificações por Seguindo - Mostra duas abas de notificações — Seguindo (pessoas que você segue) e Todos. O indicador de não lidas só acende para atividade de pessoas que você segue. - Mostrar mensagens - Inclui mensagens diretas e de grupo na aba Notificações. Desative para manter as mensagens apenas na aba Mensagens. - Notificar: - Hoje - Ocultar - Exibir - Avisar - Filtrar spam - Esconde publicações de desconhecidos que eram exatamente o mesmo por 5 ou mais vezes - Adicionar tag de cliente aos meus eventos - Quando ativado, o Amethyst anexa uma tag de cliente NIP-89 aos eventos que você publica. - Avisar em relatórios - Mostra uma mensagem de aviso quando as postagens tiverem 5 ou mais relatórios de suas seguintes - Ocultar posts que violam as regras da comunidade - Remove posts dos feeds da comunidade quando ela publica um documento de regras NIP-9B e o evento não passaria. Sem efeito quando uma comunidade não tem regras estruturadas. - Preferências de filtragem - Conteúdo bloqueado - Você ainda não bloqueou nenhum usuário. - Nenhuma conta foi marcada como spam nesta sessão. - Nenhuma palavra oculta. Adicione uma palavra abaixo para ocultar publicações que a contenham. - Nenhum tipo de reação selecionado. Pressione e segure para alterar - Ler do Relay - Enviar para o Relay - A quantidade em bytes que foi enviada para este relé, incluindo filtros e eventos - A quantidade em bytes que foi recebida deste relé, incluindo filtros e eventos - Política de privacidade - Padrões de segurança infantil - Sobre e Jurídico - Token Cashu - Nenhum endereço Lightning definido - Relés - Pacotes Seguir - Leituras - Algoritmos de feed - Mercado - Transmissões Ao Vivo - Comunidades - Conversas - Conteúdo sensível - Adiciona aviso de conteúdo sensível antes de mostrar este conteúdo - Preferências da Interface Preferências do aplicativo - Traduções - Reações - Configurações - Configurações da Conta - Configurações do App - Zona de Perigo - Redefinir estado do Marmot - Estado do Marmot redefinido. - Falha ao redefinir o estado do Marmot: %1$s - Sempre - WiFi não medida - Nunca - Concluído - Simplificado - Desempenho - Clássico - Moderno - Sistema - Claro - Escuro - Conectar Carteira - Tema - Pré-visualizar imagens - Reproduzir vídeos automaticamente - Reprodução automática de vídeos - Pré-visualizar URL - Rolagem Imersiva - Ocultar as barras de navegação ao rolar - Modo de interface - Escolha o estilo da publicação - Estilo da Galeria de Perfil - Escolha o estilo da galeria - Silenciado. Clique para ativar o som - Som ligado. Clique para silenciar - Voltar %d segundos - Avançar %d segundos - Postagem exclusiva de localização - Somente seguidores da localização verão isso. Seus seguidores gerais não verão isso. - - %1$d faixa - %1$d faixas - - - +%1$d faixa a mais - +%1$d faixas a mais - - Enviar uma imagem de capa - Escolha uma imagem quadrada para ser a arte desta faixa. - Enviar um arquivo de áudio - Escolha um MP3, WAV ou FLAC. Ele será enviado ao seu servidor de mídia ao salvar. - Enviando capa + áudio e publicando. Isso continuará mesmo se você sair da tela. - Editar playlist - Enviar uma imagem de capa - Escolha uma imagem quadrada para ser a arte desta playlist. - Enviando capa e publicando. Isso continuará mesmo se você sair da tela. Público Grupo Privado - Assunto - Não pode enviar - Insira o destino da mensagem primeiro - Carteira não encontrada - O Amethyst não conseguiu encontrar nenhum aplicativo de carteira que suporte Nostr Wallet Connect (NWC). -\n\nO que você pode fazer: -\n\t1. Verifique o suporte NWC: Confirme se o aplicativo da sua carteira é compatível com o Nostr Wallet Connect. -\n\t2. Criar conexão: Vá até o aplicativo da sua carteira e crie uma nova conexão NWC. -\n\t3. Vincular ao Amethyst: Sua carteira geralmente oferece três opções: -\n\t\t3.1 Link Automático: Um botão para abrir e conectar automaticamente ao Amethyst. Clique nele, abra o Amethyst e salve na nova tela. -\n\t\t3.2 Link Manual: Um URI de conexão que você pode copiar e colar usando o ícone de colar nesta tela. -\n\t\t3.3 Código QR: A carteira gera um código QR que você pode ler usando o botão de código QR nesta tela. - Tema Escuro, Claro ou Padrão - Carregar automaticamente imagens e GIFs - Reproduz automaticamente vídeos e GIFs - Reproduzir vídeos automaticamente quando visíveis na tela - Mostrar visualizações de URL - Copiar para a Área de Transferência - Copiado para a área de transferência - Compartilhar ou Salvar Enviar como DM - Mídia adicionada - Mídia adicionada à sua Galeria de Perfil - Não foi possível enviar o Zap - Configuração Lightning ausente - O usuário %1$s não possui um endereço lightning configurado para receber sats - Erro ao abrir o aplicativo para assinar evento - O aplicativo de assinatura não pôde ser encontrado. Verifique se o aplicativo não foi desinstalado - Não é possível reproduzir este vídeo - O codec ou formato não é compatível com este dispositivo (%1$s). Tente abri-lo no seu navegador. - Abrir no navegador - Solicitação de assinatura rejeitada - Certifique-se de que a aplicação assinante autorizou esta transação - Nenhuma carteira encontrada para pagar uma fatura Lightning (Erro: %1$s). Instale uma carteira Lightning para usar zaps - Nenhuma carteira encontrada para pagar uma fatura Lightning. Instale uma carteira Lightning para usar zaps - Não é possível abrir links Blossom - Nenhum aplicativo Blossom foi encontrado. Instale um aplicativo Blossom local para visualizar este arquivo - Palavras Ocultas - Tópicos silenciados - Nenhum tópico silenciado - Foto de Perfil - Mostrar fotos de perfil - Não foi possível pagar a fatura - Não foi possível sacar - Não foi possível resgatar o Cashu - O Mint forneceu a seguinte mensagem de erro: %1$s - Cashu Recebido - %1$s sats foram enviados para a sua carteira. (Taxas: %2$s sats) - Nenhuma carteira Cashu compatível encontrada no sistema - Não foi possível obter a fatura dos servidores do destinatário - Seu provedor de Wallet Connect retornou o seguinte erro: %1$s - Não foi possível montar o LNUrl a partir do Endereço Lightning \"%1$s\". Verifique a configuração do usuário - Não foi possível obter a fatura de %1$s: %2$s - Erro ao analisar JSON do %1$s. Verifique a configuração lightning do usuário - URL de retorno de chamada não encontrado da resposta %1$s - Quantidade incorreta na fatura (%1$s sats) de %2$s. Deveria ser %3$s - Não foi possível criar uma fatura Lightning antes de enviar o zap. A carteira Lightning do destinatário enviou o seguinte erro: %1$s - Usuário somente leitura - Nenhuma configuração de reações - Notificações - Entrega - Exibição no app - Categorias - Mensagem de %1$s - Oi %1$s, ainda está disponível? - Roupas - Acessórios - Eletrônicos - Móveis - Colecionáveis - Livros - Animais de Estimação - Esportes - Bem-estar - Arte - Artesanato - Casa - Escritório - Alimentos - Diversos - Outros - Não foi possível carregar a multimídia - Não foi possível abrir o arquivo compactado - Erro ao carregar: %1$s - O servidor não forneceu uma URL após o upload - Não foi possível baixar o arquivo de mídia carregado do servidor - Não foi possível verificar o arquivo baixado após o upload: %1$s - Falha ao acessar %1$s: %2$s - Falha ao excluir: %1$s - Mídia muito grande para NIP-95 - Criptografar arquivos - Criptografar arquivos antes do upload para privacidade. Alguns servidores podem não aceitar arquivos criptografados em contas gratuitas. - Falha no upload criptografado - Muitos servidores não aceitam arquivos criptografados em contas gratuitas. Você pode tentar novamente sem criptografia. - Usar codec H.265/HEVC - Melhor qualidade em arquivos menores, mas nem todos os dispositivos suportam reprodução em H.265. - Converter GIF em MP4 - Converte GIF animado em vídeo MP4 para menor tamanho de arquivo e melhor compatibilidade de reprodução. - Remover metadados privados - Tenta remover metadados privados de arquivos de mídia compatíveis antes do envio - Não foi possível remover os metadados - Não foi possível remover metadados privados da mídia. Envio cancelado. - Envio cancelado - Não foi possível remover os metadados do AVIF: %1$s - Início - Descobrir - Mensagens - Notificações - Calendários - Listas de calendário - Xadrez - Carteira - Carteira Cashu (NIP-60) Chave de nutzap (avançado) Uma chave privada separada, usada apenas para receber nutzaps NIP-61. Não é a chave da sua identidade Nostr. Gerar uma nova chave Chave privada P2PK (hex) - Editar carteira Cashu Salvar alterações - - +%1$d mais - +%1$d mais - - - Recomendado por %1$d outro - Recomendado por %1$d outros - - Mints populares - Mints correspondentes - Recebido - Enviado - Publicar um pedido de exclusão para sua recomendação kind:38000 de %1$s. Relays que respeitam o NIP-09 irão removê-la. - Recuperados %1$s sats em %2$s provas. - Pagar %1$s sat + até %2$s sat em taxas? - Falha no nutzap - Sem chave pública do destinatário na nota - Nutzaps são públicos e revelariam esta nota privada. Use um zap Lightning em vez disso. - Não foi possível construir a referência do evento - Aguardando o pagamento da fatura… - Verificando o mint… - Lenta - Rápida - ~1 h - - Enviar %1$s sats, dividido em %2$d parte - Enviar %1$s sats, dividido em %2$d partes - - - Usar a divisão de zap em %1$d partes desta nota - Usar a divisão de zap em %1$d partes desta nota - - - Divide entre %1$d destinatário - Divide entre %1$d destinatários - - - Ignorando %1$d destinatário que só tem endereço Lightning — o on-chain precisa de uma chave pública Nostr para derivar o endereço. - Ignorando %1$d destinatários que só têm endereço Lightning — o on-chain precisa de uma chave pública Nostr para derivar o endereço. - - carregando saldo - montando a transação - assinando - transmitindo - publicando o recibo - O backend da cadeia Bitcoin não está configurado - Não foi possível carregar seu saldo Bitcoin - Não foi possível montar a transação - A parte de um destinatário está abaixo do limite de poeira - Não foi possível assinar a transação - Não foi possível transmitir a transação - Pagamento enviado, mas o recibo do zap não pôde ser publicado - - Pagamento enviado (%1$d de %2$d recibo publicado), mas o próximo recibo não pôde ser publicado - Pagamento enviado (%1$d de %2$d recibos publicados), mas o próximo recibo não pôde ser publicado - - Importar Seguidos - Produto Novo - Novo artigo - Novo evento de calendário - Editar evento de calendário - Novo calendário - Editar calendário - Mês - Semana - Dia - - %1$s, %2$d evento - %1$s, %2$d eventos - - Acontecendo agora - %1$s · termina %2$s - Compartilhar evento de calendário - Lembretes de calendário - Aviso quando um evento do qual você participa está prestes a começar. - Evento de calendário - - Começa em %1$d minuto - Começa em %1$d minutos - - Falha no envio da imagem - A imagem escolhida não pôde ser enviada. Tente novamente ou cole uma URL. - Lembretes de calendário - Enviar lembretes - Uma notificação é disparada quando um evento do qual você participa está prestes a começar. - Abrir no mapa - Abrir link - Abrir todas as reações a esta postagem - Fechar todas as reações a esta postagem - Barra de navegação inferior Arraste para reordenar. Alterne para adicionar ou remover um item da barra inferior. Com zero itens, a barra inferior fica oculta. Reordenar Escolha quais abas aparecem na Tela Inicial. Quando apenas uma aba está ativa, a barra de abas fica oculta. - Tudo - Interface do perfil Escolha quais seções e feeds aparecem nas telas de perfil dos usuários. Todas as opções estão habilitadas por padrão. - Selos de perfil - Recomendações de Apps - Feed de Zaps Recebidos - Feed de Seguidores - Configurações de Reações - Botões do reprodutor de vídeo - Visualizador de áudio - Data de expiração - Endereço inválido - O Amethyst recebeu um URI para abrir, mas esse URI era inválido: %1$s - Relés da Caixa de Entrada de DM - Relés de Pesquisa - Boas opções são:\n%1$s - Relays de Saída - Relays de Entrada - Configurações de Relay - Relés Públicos de Casa - O usuário está publicando seu conteúdo nesses relays - Esse tipo de relé armazena todo o seu conteúdo. Amethyst enviará suas postagens aqui e outros usarão esses relés para encontrar seu conteúdo. Insira entre 1–3 relés. Eles podem ser relés pessoais, relés pagos ou relés públicos. - Relés Públicos de Caixa de Entrada - O usuário está recebendo notificações nesses relays - Esse tipo de relé recebe todas as respostas, comentários, curtidas e zaps para suas postagens. Insira entre 1–3 relés e certifique-se de que aceitem postagens de qualquer pessoa. - Relés de Caixa de Entrada de DM - O usuário recebe mensagens diretas (DMs) nesses relays - Insira entre 1–3 relés para servir como sua caixa de entrada privada. Outros usarão esses relés para enviar DMs para você. Relés de Caixa de Entrada de DM devem aceitar qualquer mensagem de qualquer pessoa, mas permitir apenas você baixá-las. Boas opções são:\n - inbox.nostr.wine (pago)\n - you.nostr1.com (relés pessoais - pago) - Relays de KeyPackage - Relays onde seus MLS KeyPackages são publicados (MIP-00). Outros usuários os buscam para convidá-lo para chats em grupo Marmot. Insira de 1 a 3 relays que aceitem eventos KeyPackage seus e permitam leitura pública. - Relés privados - Insira entre 1–3 retransmissores para armazenar eventos que ninguém mais possa ver, como seus rascunhos e/ou configurações de aplicativo. Idealmente, esses relés são locais ou requerem autenticação antes de baixar o conteúdo de cada usuário. - Relays conectados - Lista atual de relays em uso - Relés de Pesquisa - Lista de relés para usar em pesquisas e marcação de usuários. A marcação e a pesquisa não funcionarão se não houver opções disponíveis. - Relés locais - Lista de relés que estão sendo executados neste dispositivo. - Encaminhar perfis para relay local - Enviar todos os eventos de perfil recebidos (kind 0) para o seu relay local - Relays confiáveis - Relays em que você confia e que não precisam de conexão via Tor - Feeds de Relays Favoritos - Relays que você visita com frequência para ver o feed Global deles - Relays proxy - Relays agregadores que o app usa para baixar seus feeds, como filter.nostr.wine. Isso substitui o modelo outbox e faz o app se conectar apenas aos relays das suas listas. - Relays de broadcast - Relays especializados em enviar suas notas para todos os outros relays, como sendit.nosflare.com. O Amethyst adicionará esse relay a todos os novos eventos criados por você - Relays de indexação - Relays que armazenam metadados e listas de relays, como purplepag.es. O Amethyst usará esses relays para encontrar usuários fora de suas listas. - Relays bloqueados - O Amethyst nunca se conectará a esses relays - Exportar configurações de relay Site: Visão geral Sobre Mantenedores Tópicos - Prova de Carimbo de data/hora - Há prova de que esta postagem foi assinada antes de %1$s. A prova foi carimbada no blockchain do Bitcoin naquela data e hora. - Editar postagem - Não é possível responder uma nota em rascunho - Não é possível citar uma nota em rascunho - Não é possível reagir uma nota em rascunho - Não é possível fazer um zap em uma nota em rascunho - Nota de rascunho - Requisição inválida - O servidor não pode ou não irá processar a requisição. - Não autorizado - O usuário não possui credenciais de autenticação válidas - Pagamento necessário - O servidor requer pagamento para completar a requisição - Proibido - O usuário não tem direitos de acesso para fazer a requisição - Não encontrado - O servidor não consegue encontrar o endereço solicitado - Método não permitido - O servidor suporta o método da requisição, mas não o recurso alvo - Não aceitável - O servidor não encontra nenhum conteúdo que satisfaça a requisição. - Autenticação de Proxy necessária - O usuário não possui credenciais de autenticação válidas - Tempo de requisição esgotado - O servidor esperou muito tempo por outra parte - Conflito - O servidor não pode cumprir a requisição devido a um conflito com o recurso - Indisponível - O conteúdo solicitado foi permanentemente excluído do servidor e não será restaurado - Comprimento necessário - O servidor rejeita a requisição porque requer um comprimento definido - Falha na pré-condição - As pré-condições do cabeçalho da requisição não foram atendidas pelo servidor - Carga muito grande - A requisição é maior que os limites definidos pelo servidor, e o servidor se recusa a processá-la - URI muito longa - A URL solicitada pelo cliente é muito longa para o servidor processar. - Tipo de mídia não suportado - A requisição usa um formato de mídia que o servidor não suporta - Faixa não satisfatória - O servidor não pode atender ao valor indicado no campo de cabeçalho Range da requisição. - Falha na expectativa - O servidor não pode atender aos requisitos indicados pelo campo de cabeçalho Expect da requisição - Atualização necessária - O servidor se recusa a processar a requisição com o protocolo atual, a menos que o cliente faça a atualização para um protocolo diferente. - Erro interno do servidor - O servidor encontrou um erro inesperado e não pode completar a requisição - Não implementado - O servidor não pode cumprir a requisição ou não reconhece o método da requisição - Gateway inválido - O servidor atua como um gateway e recebeu uma resposta inválida do host - Serviço indisponível - Isso geralmente ocorre quando um servidor está sobrecarregado ou em manutenção - Tempo de gateway esgotado - O servidor estava atuando como um gateway ou proxy e esperou muito tempo por uma resposta - Versão HTTP não suportada - O servidor não suporta a versão HTTP na requisição - Variante também negocia - O servidor tem um erro de configuração interna - Armazenamento insuficiente - O servidor não possui armazenamento suficiente para processar a requisição com sucesso - Loop detectado - O servidor detecta um loop infinito enquanto processa a requisição - Autenticação de rede necessária - O cliente deve ser autenticado para acessar a rede Servidores de Blossom Adicione quantos servidores você desejar. Você pode escolher qual usar mais tarde quando enviar sua foto - Adicionar um servidor NIP-96 - Adicionar um Servidor de Blossom Baixar - Falha ao abrir o arquivo - Nenhum aplicativo torrent instalado para abrir e baixar o arquivo. - O evento não tem informações suficientes para criar um link magnético - Minhas listas - Conjuntos de interesses - Localizações - Comunidades - Listas - Algoritmos de feed - Todos os algoritmos de feed favoritos - Relés - Algoritmos de feed favoritos - Mensagem Privada - Mensagem pública - Não é possível compartilhar a imagem, por favor tente novamente mais tarde… - Não foi possível compartilhar o vídeo, tente novamente mais tarde… - Baixando vídeo… - Não Traduzir de - Os idiomas mostrados aqui não serão traduzidos. Selecione um idioma para removê-lo e traduzi-lo novamente. - Traduzir para - Escolha o idioma para o qual o conteúdo será traduzido. - Preferências de exibição de idioma - Para cada par de idiomas traduzido, escolha qual idioma exibir primeiro. - Pausar - Reproduzir - Esta mensagem desaparecerá em %1$s - Metadados da lista de seguidores - Os metadados das listas de seguidores podem ser vistos por qualquer pessoa no Nostr. Apenas os membros privados são criptografados. - Metadados do pacote de recomendações - Os metadados dos pacotes de recomendações podem ser vistos por qualquer pessoa no Nostr e são frequentemente publicados em sites como kits iniciais para novos usuários. - Editar pacote de recomendações - Expandir - Tentar novamente - Reação - Post de voz - Resposta em voz - Relays de Saída - Aplicativos - Recomendações de Apps - Configurações do Usuário - Cabeçalho de Áudio - Faixa de Áudio - Faixa de música - Playlist de música - Episódio de podcast - Programa de podcast - Podcasts criados - Podcasts favoritos - Concessões de Emblemas - Definições de Emblemas - Conjunto de Distintivos Aceito - Emblemas do Perfil - Relays Bloqueados - Servidores Blossom - Servidores Nests - Autenticação Blossom - Relays de Broadcast - Lista de Favoritos - Lista de Favoritos Antiga - Compromisso do Dia - Calendário - Compromisso - RSVP do Compromisso - Jogos de Xadrez - Autenticação de Xadrez - Relays Favoritos - Desafios de Xadrez - Aceitar Jogo de Xadrez - Movimento de Xadrez - Fim do Jogo de Xadrez - Oferta de Empate - Definição de Canal - Ocultar Mensagem do Canal - Lista de Canais - Mensagem do Canal - Metadados do Canal - Silenciar Usuário no Canal - Arquivo DM - Mensagem DM - Relays de DM - Classificados - Comentários - Definição de Comunidade - Lista de Comunidades - Post da Comunidade - Lista de Seguindo - Exclusões - Rascunhos - Pacotes de Emoji - Lista de Pacotes de Emoji - Chat Efêmero - Salas de Chat Efêmeras - Cabeçalhos de Arquivo - Galeria do Perfil - Servidores de Arquivo - Dados Blob - Cabeçalhos Blob - Dados Médicos - Pacotes de Seguir - Repostagens (16) - Seguindo Geohash - Embrulhos de presente - Issue do Git - Patch do Git - Repositório Git - Resposta do Git - Metas de Zap - Hashtags seguidas - Destaques - Autenticação HTTP - Lista de relays de índice - Prólogo da aventura - Cena da aventura - Leitura da aventura - Favoritos nomeados - Chats ao vivo - Transmissões ao vivo - Solicitação NWC - Resposta NWC - Zaps privados - Solicitação de Zap - Sala de reunião - Presença na sala - Espaço de reunião - Perfil - Lista de silenciados - CNPJ - Status do DVM - Solicitação de conteúdo DVM - Resposta de conteúdo DVM - Solicitação de usuário DVM - Resposta de usuário DVM - Pagar para - Listas de pessoas - Imagens - Treinos - Fixados - Enquete de Zap - Enquete - Resposta da enquete - DMs NIP-04 - Relays privados - Relays proxy - Mensagem pública - Reações - Cartão de contato - Autenticação de relay - Descoberta de Relays - Anúncio de Monitor de Relay - Conjunto de relays - Denúncias - Repostagens - Excluir usuário - Selos - Relays de busca - Status do usuário - Notas - Edições - Comentários de torrent - Relays confiáveis - Provedores confiáveis - Vídeo (resposta) - Shorts (resposta) - Vídeo - Mensagem de voz - Resposta de voz - Despertar - Marcador Web - %1$d%% de disponibilidade - Configurações do Namecoin - Sincronização de Relays - Explorador Bitcoin (OTS) - eventos de você - eventos para você - eventos pesquisáveis - perfils - listas de saída - Visto pela última vez há %1$s - Visto pela última vez em %1$s (há %2$s) - Visto agora mesmo - Nunca visto - - %1$d minuto - %1$d minutos - - - %1$d hora - %1$d horas - - - %1$d dia - %1$d dias - - - %1$d semana - %1$d semanas - - - %1$d mês - %1$d meses - - - %1$d ano - %1$d anos - - - %1$d fatura pendente - %1$d faturas pendentes - - - Fundos mantidos em %1$d mint que você não usa - Fundos mantidos em %1$d mints que você não usa - - %1$s sat movidos para %2$s. - Transmitir para dispositivo - Parar transmissão - Upload HLS - Enviando %1$s (%2$d de %3$d) - Atestação - Solicitação de atestação - Recomendação do atestante - Competência do atestante - Marcadores Web - Adicionar Marcador Web - Editar Marcador Web - %1$s financiado de %2$s sats da meta - Nova Meta - Pedido para Desaparecer - Pedido para desaparecer enviado - Histórico de Desaparecimento - Usuários - Eventos - Tipos - Configurações - Sugerir melhorias de texto - Usa um modelo de IA no dispositivo para sugerir correções de texto e mudanças de tom. - Transmissões rastreadas - Usar o transmissor rastreado ao enviar eventos. Mostra progresso ao vivo e status por relay durante a transmissão. - Sugerir treinos para compartilhar - Lê treinos concluídos do Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) e sugere compartilhá-los como publicação. A permissão é solicitada apenas quando você conecta. - Configurações de composição - Criar rascunhos automaticamente - Salva um evento de rascunho automaticamente quando você digita ou sai do compositor com texto não enviado e envia para seus relays de saída privados. - Novo pacote de emoji - Editar pacote de emoji - Meus pacotes de emojis - Emojis públicos são visíveis para todos e aparecem no seu menu de reações e no seletor de autocompletar \":\" quando este pacote está na sua lista de emojis. - Emojis privados são armazenados criptografados em relays e visíveis apenas para você. Eles aparecem no seu menu de reações e no autocompletar \":\" assim como os públicos. - O rascunho tem %1$d bytes; esta comunidade limita este tipo a %2$d bytes. - O rascunho tem %1$d bytes; esta comunidade limita eventos a %2$d bytes. - Você já publicou %1$d eventos deste tipo hoje (limite %2$d). - Site Nowhere - Nowhere Evento - Nowhere Arrecadação - Nowhere Loja - Nowhere Petição - Nowhere Mensagem - Nowhere Arte - Nowhere Fórum - - %1$d membro - %1$d membros - - Informações do grupo atualizadas - Falha ao atualizar: %1$s - Falha ao criar grupo: %1$s - Falha ao sair do grupo: %1$s - Adicionando %1$s… - Falha ao adicionar %1$s: %2$s - erro desconhecido - Membro removido - Falha ao remover membro: %1$s - Privilégios de administrador concedidos - Falha ao conceder admin: %1$s - Privilégios de administrador revogados - Falha ao revogar admin: %1$s - Não é membro deste grupo O serviço Lightning do destinatário em %1$s não está disponível. Foi calculado a partir do endereço Lightning \"%2$s\". Erro: %3$s. Verifique se o servidor está funcionando e se o endereço Lightning está correto Não foi possível resolver %1$s. Verifique se você está conectado, se o servidor está funcionando e se o endereço Lightning %2$s está correto.\n\nExceção foi: %3$s Erro ao analisar JSON da busca de fatura %1$s. Verifique a configuração de iluminação do usuário diff --git a/amethyst/src/main/res/values-ru-rRU/strings.xml b/amethyst/src/main/res/values-ru-rRU/strings.xml index fdca0ce35a..b0e6c0b3b8 100644 --- a/amethyst/src/main/res/values-ru-rRU/strings.xml +++ b/amethyst/src/main/res/values-ru-rRU/strings.xml @@ -1,122 +1,12 @@ - - Этот пост имеет более чем %1$d хэштег - Этот пост имеет более чем %1$d хэштегов - Этот пост имеет более чем %1$d хэштегов - Этот пост имеет более чем %1$d хэштегов - - - %1$d вложение в комплекте - %1$d вложения в комплекте - %1$d вложений в комплекте - %1$d вложения в комплекте - - - +%1$d\\nответ - +%1$d\\nответа - +%1$d\\nответов - +%1$d\\nответа - - Спам - Количество спам-событий, поступающих с этого relay - Выдача себя за другое лицо - Незаконные действия - Запросить удаление - Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы ответить - Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы продвигать записи - Вы используете публичный ключ, они - только для чтения. Войдите с приватным ключом, чтобы лайкать посты - Не настроены запы. Нажмите и удерживайте для настройки - Войдите с приватным ключом чтобы запать - Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы иметь возможность подписаться - Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы иметь возможность отписаться - Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы иметь возможность скрыть слово или предложение - Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы иметь возможность показать слово или предложение - Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы иметь возможность загружать - Вы используете публичный ключ. Войдите приватным ключом, чтобы редактировать - Несанкционированная расшифровка - Подписчик не авторизовал расшифровку, необходимую для выполнения этой операции. Активируйте расшифровки NIP-44 в приложении для подписчика и попробуйте еще раз - Подпись не найдена - Приложение подписи удалено? Убедитесь, что оно установлено и содержит этот аккаунт. Выйдите и войдите снова, если приложение подписи изменилось. - Внешний подписант вернул неожиданный ответ на запрос. Возможно, ошибка в Amethyst или в приложении подписи. - Запы - Продвинуть репост изменить #%1$s - Предложить изменение - Добавить - Ошибка при анализе сообщения об ошибке - Профиль - Фильтры безопасности - Запрос счёта… - Сервис списания не завершил платёж. - Оплатить %1$s через %2$s? - Оплатить этот счёт через %1$s? - Введите допустимую сумму для этого предложения. - Однократно - Ежедневно - Еженедельно - Ежемесячно - Оплатить - Оплата через %1$s… - Платёж не выполнен - Доступно для этого получателя: %1$s sats - Транзакция: %1$s - "Предпросмотр для %1$s" - Описание - Что нового? - Написать сообщение… - Отправить Сохранить - Отправить - Создать Переименовать - Отменить - Ошибка - Ошибки - Процент успешных соединений к трансляции - Сохранить в телефон - Фото сохранено в галерею - Скачивание видео было запущено… - Загрузка вложений было запущено… - Закрепить наверху - Открепить - Не удалось сохранить фото - Видео сохранено в галерею - Не удалось сохранить видео - PDF сохранён в Downloads/Amethyst - Не удалось сохранить PDF-файл - На этом устройстве не найдено приложение камеры - Нажмите и удерживайте, чтобы записать сообщение - Ошибка загрузки - Неудалось загрузить голосовое сообщение - NIP-95 пока не поддерживается для голосовых сообщений - Ошибка загрузки голосового сообщения: %1$s - Отсутствует - Глубокий - Высокий - Нейтральный - Пользователь не установил Lightning адрес для получения чаевых - "ответить.. " - Известные - Новые запросы - Заблокированные пользователи - Новые треды - Обсуждения - Больше опций - Показать QR-код приватного ключа - Показать зашифрованный QR-код приватного ключа - Подписаться - Подписаться в ответ - Скрыть пароль - Некорректный ключ - Недопустимый ключ: %1$s - Требуется пароль - Нужно ввести ключ - Требуется имя @@ -125,167 +15,7 @@ Новый профиль чата: - Выйти - Отписаться - Исчезающий чат - Чат relay - Чаты relay - Чаты relay — это групповые чаты, управляемые их домашним relay. - Они видны всем в Nostr, и любой может в них участвовать. - Они отлично подходят для открытых сообществ по определённым темам. Некоторые группы эфемерны, - поэтому сообщения исчезают со временем - Публичный чат - Метаданные публичного чата - Публичные чаты видны всем в Nostr и открыты - для участия любого желающего. Они отлично подходят для открытых сообществ по определённым темам. - Модерация осуществляется путём удаления постов на relay - Relay - Укажите от 1 до 3 relay, на которых размещена эта группа. - Клиенты Nostr используют эту настройку, чтобы знать, откуда загружать сообщения и куда их отправлять. - Удалить - никогда - сейчас - ч - м - д - Нагота - Брань / Оскорбления - Резервное копирование - Не удалось зашифровать ваш приватный ключ - Приватный ключ (nsec) скопирован - Скопировать мой приватный ключ - Ошибка входа - Биометрия не смогла подтвердить личность владельца этого телефона - Биометрия не смогла подтвердить личность владельца этого телефона. Ошибка: %1$s - Копировать текст - ID (npub) автора скопирован - ID записи (note1) скопирован - "<Не удалось расшифровать сообщение!>\n\nВас упомянули в приватном/зашифрованном чате между %1$s и %2$s." - Аккаунты - Навигация - Вы - Ленты - Создать - Система - Назад - Поделиться ссылкой - Поделиться - Поделиться как изображение - Поделиться URL изображения - ID записи - Удалить - Заглушить тред - Включить звук треда - - Блокировать - Закладки - Закладки успешно перенесены - Черновики - Запланированные посты - Запланировать пост - Отменить расписание - Запланированные посты могут не опубликоваться до следующего открытия приложения. Включите постоянный режим в Настройках → Настройки интерфейса для надёжного фонового планирования. - Запланированные посты могут не опубликоваться до следующего открытия приложения. Запланированные посты других аккаунтов не будут отправлены, пока активен этот аккаунт. Включите постоянный режим в Настройках → Настройки интерфейса для надёжного фонового планирования. - %1$s · через %2$s - %1$s · %2$s назад - Завтра - Выход выполнен - - Выход выполнен · %d запланированный пост удалён - Выход выполнен · %d запланированных поста удалено - Выход выполнен · %d запланированных постов удалено - Выход выполнен · %d запланированных поста удалено - - Запланированный пост опубликован - Ошибка запланированного поста - Запланированные посты - Уведомления о публикации или ошибке запланированного поста. - Отправить сейчас - Ошибка: %1$s - Запланировано - Отправка… - Ошибка - Отправлено - Отменено - - У вас %d запланированный пост, который ещё не опубликован. При выходе он будет удалён навсегда. - У вас %d запланированных поста, которые ещё не опубликованы. При выходе они будут удалены навсегда. - У вас %d запланированных постов, которые ещё не опубликованы. При выходе они будут удалены навсегда. - У вас %d запланированных поста, которые ещё не опубликованы. При выходе они будут удалены навсегда. - - - %d в очереди - %d в очереди - %d в очереди - %d в очереди - - - · %d через 1ч - · %d через 1ч - · %d через 1ч - · %d через 1ч - - - на %d relay - на %d relay - на %d relay - на %d relay - - ID заметки скопирован - Опросы - Открытые - Закрытые - Значки - Сообщества - Новое сообщество - Редактировать сообщество - Модераторы - Relay - Проверяемые правила (необязательно) - Разрешённые виды событий - Короткий текст (1) - Длинная статья (30023) - Пост с изображением (20) - Видеопост (21) - Короткое видео (22) - Комментарий сообщества (1111) - Заблокированные пользователи - Фильтр сети доверия (необязательно) - Глобальный максимальный размер события (необязательно) - Новый значок - Вручить значок - Значки профиля - Изображения - Тренировки - Новая тренировка - Бег - Ходьба - Велоспорт - Пешие прогулки - Плавание - Гребля - Силовые тренировки - Йога - Медитация - Питание - Голодание - Круговая тренировка - Приложения Приложения - Браузер - Загрузка через Tor. Нажмите, чтобы использовать открытую сеть. - Загрузка через открытую сеть. Нажмите, чтобы использовать Tor. - Избранное - Избранные приложения - Добавить в избранное - Удалить из избранного - Загружается через Tor. - Загружается через открытую сеть. - Опубликовано на relay - Файл загружен - Платёж выполнен - Это приложение ещё не загружено. Повторите попытку через мгновение. - Недавние Разрешения nApplet Разрешений nApplet пока нет Разрешения, которые вы предоставляете nApplets, появятся здесь. @@ -295,48 +25,11 @@ Оболочка - Личность - Действия клавиатуры - relay - Хранилище - Платежи - Сеть - Загрузки Запрашивать доступные возможности - Читать ваш публичный ключ - Привязывать клавиатурные сочетания - Читать, подписывать и публиковать ваши события - Собственное приватное хранилище - Оплачивать Lightning-инвойсы - Загружать веб-ресурсы и ресурсы Blossom - Загружать файлы на ваш медиасервер - Тема - Уведомления - Обмен сообщениями - Соответствовать цветам вашего приложения - Показывать вам уведомления - Обмениваться сообщениями с другими nApplets Возможность: %1$s - Этот nApplet хочет прочитать ваш публичный ключ. - Этот nApplet хочет прочитать ваш профиль и данные аккаунта. - Этот nApplet хочет подписать и опубликовать событие kind:%1$d от вашего имени. - Этот nApplet хочет подписать и опубликовать событие kind:%1$d от вашего имени: - Этот nApplet хочет отправить зашифрованное событие от вашего имени. - Этот nApplet хочет читать события с ваших relay. - Этот nApplet хочет использовать своё приватное хранилище. Этот nApplet хочет оплатить Lightning-инвойс. - Этот nApplet хочет загрузить веб-ресурс. - Этот nApplet хочет загрузить файл на ваш медиасервер. - Этот nApplet хочет показывать вам уведомления. - Этот сайт хочет подписать событие kind:%1$d вашим ключом Nostr. - - Этот nApplet хочет оплатить Lightning-инвойс на %1$d sat. - Этот nApplet хочет оплатить Lightning-инвойс на %1$d sats. - Этот nApplet хочет оплатить Lightning-инвойс на %1$d sats. - Этот nApplet хочет оплатить Lightning-инвойс на %1$d sats. - - Публичные чаты - Пакеты подписок - Прямые трансляции - Поднять руку - Опустить руку - Выключить микрофон - Включить микрофон - Не удалось отправить сообщение - Выключить микрофон - Включить микрофон - Позволяет воспроизводить звук, пока комната открыта. - Nest подключён - Nest — в эфире - Нажмите, чтобы вернуться. - Стоп - поднял руку - вышел на сцену - говорит - присоединился как слушатель - покинул nest - Выйти - Не удалось отметить комнату как закрытую. Выходим в любом случае — комната закроется автоматически. - - %1$d слушатель - %1$d слушателя - %1$d слушателей - %1$d слушателя - - Заглушить этого участника - Восстановить этого участника - Подписаться - Отписаться - Заглушить - Включить звук - Не удалось сохранить список nest-серверов. Повторите попытку. - Nest-серверы - Ваши серверы - Сохраняется как заменяемое событие kind:10112, чтобы другие клиенты могли прочитать ваши настройки. - Рекомендуемые серверы - Встроенные предложения, которые можно добавить в список одним касанием. - Видео - Музыка - Плейлисты - Эпизоды - Подкасты - - %1$d эпизод - %1$d эпизода - %1$d эпизодов - %1$d эпизода - - Новый музыкальный трек - Новый плейлист - - %1$d трек - %1$d трека - %1$d треков - %1$d трека - - Добавить в Публичные закладки - Убрать из Публичных закладок - Закрепить в профиле - Открепить от профиля - Новый список закладок - Метаданные списка закладок - Наборы хэштегов - Новый набор интересов - Переименовать - Сделать приватным: gift-wrap заметка только для уведомлённых пользователей - Сделать публичным - Ответы на приватную заметку всегда остаются приватными - Видно для Получателей пока нет: только вы сможете видеть эту заметку. Добавьте людей, чтобы поделиться с ними. Добавить Удалить пользователя из уведомлений Найти и добавить пользователя для уведомления - Метаданные списков закладок могут быть видны любым пользователем Nostr. Только ваши частные участники зашифрованы. - Переместить в публчный - Переместить в личные - Пополнить & отправить зап - Отправить зап - Пополнить %1$s sats на %2$s и запнуть %3$s %4$s sats · комиссия ≈ %5$s sats - Вариант %s - (0–100)% - Один вариант ответа - Несколько вариантов ответа - Невозможно проголосовать - Опрос закрыт - В этом опросе можно голосовать только один раз - Автор опроса не может голосовать - Что это значит? - Фото не изменилось после публикации - Фото изменено. Автор мог не заметить изменение - Добавить медиа - Добавить фото - Добавить видео - Добавить документ - Сервер для загрузки - Выберите сервер для загрузки этого файла - Медиасерверы Задайте предпочтительные серверы для загрузки медиафайлов. Рекомендуемые медиасерверы Список Amethyst. Вы можете добавить его индивидуально или добавить список. - Получатели платежей - Добавьте платёжные адреса для различных сетей (например, bitcoin, lightning, ethereum). - Не найдено приложение для обработки этого платежа. Пожалуйста, установите совместимый кошелёк. - Не найдено приложение для обработки платежей %1$s. Пожалуйста, установите совместимый кошелёк. - Не удалось открыть платёж - Настройки конфиденциальности - Все подписки - Все подписки пользователя - Список подписок по умолчанию - Вокруг меня - Глобально - Подборка - Мои - Список игнора - Новый список подписок - Новый пакет подписок - Редактировать список - Порт по умолчанию: 9050 - Порт Orbot Socks - Встроенный движок Tor - Использовать встроенную версию или Orbot - Пресеты Tor/конфиденциальности - Быстро изменить все настройки ниже - Onion-адреса/relay - Использовать Tor для любых .onion-адресов - DM relay - Принудительно использовать Tor для отправки и получения личных сообщений - Ненадёжные relay - Принудительно использовать Tor для исходящих/входящих relay - Доверенные relay - Принудительно использовать Tor для всех relay из ваших списков - Фотографии профилей - Принудительно использовать Tor при загрузке фотографий профилей - Превью URL - Принудительно использовать Tor при загрузке превью ссылок - Изображения - Принудительно использовать Tor при загрузке изображений - Видео - Принудительно использовать Tor при загрузке видео - Денежные операции - Принудительно использовать Tor для запов, Lightning и переводов cashu - Верификация Nostr-адреса - Принудительно использовать Tor при верификации NIP-05 адресов - Загрузка медиа - Принудительно использовать Tor при загрузке контента - Встроенный - Выкл - Базовый - По умолчанию - Всё кроме медиа - Полная конфиденциальность - Настраиваемый - Использовать Tor только когда это требуется сервером - Скрыть ваш IP от случайных relay - Скрыть ваш IP от всего, кроме изображений и видео - Скрыть ваш IP во всех соединениях - Настройте по своему усмотрению - Личные сообщения - Уведомления о входящих сообщениях - Запы - Уведомления о полученных запах - %1$s sat - От %1$s - за %1$s - Ответить - Отметить прочитанным - Новые сообщения - Новые запы - Реакции - Уведомляет вас, когда кто-то реагирует на ваш пост - %1$s отреагировал(а) на ваш пост - на %1$s - Новые реакции - Шахматы - Уведомляет вас о событиях шахматной партии - %1$s принял(а) ваш вызов на шахматную партию - %1$s сделал(а) ход — ваш ход - Обновления шахмат - Ответы - Уведомляет вас, когда кто-то отвечает на ваш пост %1$s ответил(а) на: %1$s - Новые ответы - Упоминания - Уведомляет вас, когда кто-то упоминает или цитирует вас в посте - %1$s упомянул(а) вас - Новые упоминания @@ -569,40 +81,6 @@ - Входящие звонки - Уведомления о входящих голосовых и видеозвонках - Входящий звонок - Входящий голосовой звонок… - Входящий видеозвонок… - Звонок с %1$s - Звонки - Уведомление о текущем звонке - Завершить - Принять - Отклонить - Выключить микрофон - Включить микрофон - Камера включена - Камера выключена - Громкоговоритель - Динамик - Amethyst требует доступ к микрофону для совершения голосового звонка. Пожалуйста, включите его в настройках приложения. - Amethyst требует доступ к камере и микрофону для совершения видеозвонка. Пожалуйста, включите их в настройках приложения. - Настройки звонков - Поддерживает активные подключения к входящим relay для уведомлений в реальном времени - Уведомления Amethyst активны - - Подключено к %1$d входящему relay - Подключено к %1$d входящим relay - Подключено к %1$d входящим relay - Подключено к %1$d входящих relay - - - Подключено к %1$d relay - Подключено к %1$d relay - Подключено к %1$d relay - Подключено к %1$d relay - - Подключение к входящим relay… Постоянный сервис уведомлений Поддерживает постоянное соединение с вашими inbox-relay для мгновенной доставки уведомлений. Отображает постоянное уведомление. Расходует больше заряда батареи, но гарантирует, что вы не пропустите ни одного сообщения. - Разделить уведомления по подпискам - Показывать две вкладки уведомлений — «Подписки» (люди, на которых вы подписаны) и «Все». Индикатор непрочитанных светится только для активности от людей, на которых вы подписаны. - Показывать сообщения - Включить личные и групповые сообщения во вкладку «Уведомления». Отключите, чтобы сообщения отображались только во вкладке «Сообщения». - Уведомление: - Сегодня - Скрыть - Показать - Предупреждать - Фильтр спама - Скрывает публикации от незнакомцев, которые встречались 5 или более раз с одинаковым содержимым - Добавлять клиентский тег к моим событиям - При включении Amethyst добавляет NIP-89 клиентский тег к публикуемым вами событиям. - Предупреждать о жалобах - Показывает предупреждение, если на публикацию или профиль пожаловались люди из ваших подписок - Скрывать публикации, нарушающие правила сообщества - Удаляет публикации из лент сообщества, если сообщество опубликовало документ с правилами NIP-9B и событие им не соответствует. Не применяется, если у сообщества нет структурированных правил. - Настройки фильтрации - Заблокированный контент - Вы ещё не заблокировали ни одного пользователя. - В этой сессии ни один аккаунт не был помечен как спам. - Скрытых слов нет. Добавьте слово ниже, чтобы скрывать публикации с ним. - Типы реакций для этого пользователя не выбраны. Удерживайте кнопку сердечка, чтобы изменить - Чтение из relay - Запись в relay - Объём данных в байтах, отправленных на этот relay, включая фильтры и события - Объём данных в байтах, полученных от этого relay, включая фильтры и события - Политика конфиденциальности - Стандарты безопасности детей - О приложении & правовые сведения - Cashu-токен - Lightning-адрес не задан - Relay - Пакеты подписок - Чтение - Алгоритмы ленты - Рынок - Прямые трансляции - Сообщества - Чаты - Чувствительный контент - Добавляет предупреждение о чувствительном содержимом перед показом - Настройки интерфейса Настройки приложения - Переводы - Реакции - Настройки - Настройки аккаунта - Настройки приложения - Опасная зона - Сбросить состояние Marmot - Состояние Marmot сброшено. - Не удалось сбросить состояние Marmot: %1$s - Всегда - Безлимитный Wi-Fi - Никогда - Полный - Упрощённый - Производительный - Классический - Современный - Как в системе - Светлая - Тёмная - Тема - Просмотр изображения - Проигрывание видео - Автовоспроизведение видео - Просмотр URL - Иммерсивная прокрутка - Скрыть панели навигации при прокрутке - Режим интерфейса - Выберите стиль публикаций - Стиль галереи профиля - Выберите стиль галереи - Спамеры - Без звука. Нажмите для включения - Звук включён. Нажмите для отключения - Перемотать назад на %d сек. - Перемотать вперёд на %d сек. - Публикация только для местоположения - Её увидят только подписчики этого местоположения. Ваши обычные подписчики не увидят её. - - %1$d трек - %1$d трека - %1$d треков - %1$d трека - - - +%1$d трек ещё - +%1$d трека ещё - +%1$d треков ещё - +%1$d трека ещё - - Загрузить обложку - Выберите квадратное изображение в качестве обложки для этого трека. - Загрузить аудиофайл - Выберите файл MP3, WAV или FLAC. Он будет загружен на ваш медиасервер при сохранении. - Загрузка обложки и аудио, публикация. Процесс продолжится, даже если вы покинете экран. - Редактировать плейлист - Загрузить обложку - Выберите квадратное изображение в качестве обложки для этого плейлиста. - Загрузка обложки и публикация. Процесс продолжится, даже если вы покинете экран. Публичный Группа Приватный - Заголовок - Невозможно загрузить - Сначала укажите получателя сообщения - Кошелёк не найден - Amethyst не нашёл ни одного приложения кошелька с поддержкой Nostr Wallet Connect (NWC). -\n\nЧто можно сделать: -\n\t1. Проверьте поддержку NWC: убедитесь, что ваш кошелёк совместим с Nostr Wallet Connect. -\n\t2. Создайте подключение: откройте приложение кошелька и создайте новое NWC-подключение. -\n\t3. Привяжите к Amethyst: обычно кошелёк предлагает три варианта: -\n\t\t3.1 Автоматическая привязка: кнопка для автоматического открытия и подключения к Amethyst. Нажмите её, откройте Amethyst и сохраните новый экран. -\n\t\t3.2 Ручная привязка: URI подключения, который можно скопировать и вставить с помощью значка вставки на этом экране. -\n\t\t3.3 QR-код: кошелёк создаёт QR-код, который можно считать кнопкой QR-кода на этом экране. - - Тёмная, светлая или системная тема - Автоматически загружать изображения и GIF - Автоматически воспроизводить видео и GIF - Автоматически воспроизводить видео при появлении на экране - Показывать предварительный просмотр ссылок - Копировать в буфер обмена - Скопировано в буфер обмена - Поделиться или сохранить Отправить как DM - Медиа добавлено - Медиа добавлено в галерею вашего профиля - Не удалось отправить зап - Отсутствует настройка Lightning - У пользователя %1$s не настроен Lightning-адрес для получения sats - Ошибка открытия приложения подписи - Приложение подписи не найдено. Проверьте, не было ли оно удалено - Не удаётся воспроизвести видео - Кодек или формат не поддерживается на этом устройстве (%1$s). Попробуйте открыть в браузере. - Открыть в браузере - Запрос на подпись отклонён - Убедитесь, что приложение подписи авторизовало эту транзакцию - Не найдено кошельков для оплаты Lightning-счёта (Ошибка: %1$s). Установите Lightning-кошелёк для использования зап - Не найдено кошельков для оплаты Lightning-счёта. Установите Lightning-кошелёк для использования зап - Не удаётся открыть Blossom-ссылки - Blossom-приложения не найдены. Установите локальное Blossom-приложение для просмотра этого файла - Скрытые слова - Заглушённые ветки - Нет заглушённых веток - Картинка профилей - Показывать картинки профилей - Не удалось оплатить счёт - Не удалось выполнить вывод - Не удалось погасить Cashu - Mint вернул следующее сообщение об ошибке: %1$s - Cashu получен - %1$s sats отправлено в ваш кошелёк. (Комиссия: %2$s sats) - На устройстве не найден совместимый Cashu-кошелёк - Не удалось получить счёт с серверов получателя - Ваш провайдер wallet connect вернул следующую ошибку: %1$s - Не удалось собрать LNUrl из Lightning Address «%1$s». Проверьте настройки пользователя - Не удалось получить счёт от %1$s: %2$s - Ошибка разбора JSON от %1$s. Проверьте настройки Lightning пользователя - URL обратного вызова не найден в ответе %1$s - Неверная сумма счёта (%1$s sats) от %2$s. Должно быть %3$s - Не удалось создать Lightning-счёт перед отправкой зап. Lightning-кошелёк получателя вернул следующую ошибку: %1$s - Пользователь только для чтения - Реакции не настроены - Уведомления - Доставка - Отображение в приложении - Категории - Сообщение от %1$s - Привет, %1$s, это ещё в наличии? - Одежда - Аксессуары - Электроника - Мебель - Коллекции - Книги - Питомцы - Спорт - Фитнес - Искусство - Ремесло - Дом - Офис - Еда - Разное - Другое - Не удалось загрузить медиа - Не удалось открыть сжатый файл - Ошибка загрузки: %1$s - Сервер не предоставил URL после загрузки - Не удалось скачать загруженные медиа с сервера - Не удалось проверить загруженный файл после выгрузки: %1$s - Не удалось загрузить на %1$s: %2$s - Не удалось удалить: %1$s - Медиафайл слишком большой для NIP-95 - Шифровать файлы - Шифровать файлы перед загрузкой для защиты конфиденциальности. Некоторые серверы могут не принимать зашифрованные файлы на бесплатных аккаунтах. - Зашифрованная загрузка не удалась - Многие серверы не принимают зашифрованные файлы на бесплатных аккаунтах. Вы можете повторить попытку без шифрования. - Использовать кодек H.265/HEVC - Лучшее качество при меньшем размере файла, но не все устройства поддерживают воспроизведение H.265. - Конвертировать GIF в MP4 - Конвертирует анимированный GIF в видео MP4 для уменьшения размера файла и лучшей совместимости воспроизведения. - Удалить личные метаданные - Пытается удалить личные метаданные из поддерживаемых медиафайлов перед загрузкой - Не удалось удалить метаданные - Не удалось удалить личные метаданные из медиа. Загрузка отменена. - Загрузка отменена - Не удалось удалить метаданные из AVIF: %1$s - Главная - Обзор - Сообщения - Уведомления - Календари - Списки календарей - Шахматы - Кошелёк - Cashu-кошелёк (NIP-60) Ключ для nutzap (расширенные настройки) Отдельный приватный ключ, используемый только для получения NIP-61 nutzap. Не ваш идентификационный ключ Nostr. Сгенерировать новый ключ Приватный ключ P2PK (hex) - Изменить mint\'ы Сохранить изменения - - +%1$d ещё - +%1$d ещё - +%1$d ещё - +%1$d ещё - - - Рекомендовано %1$d пользователем - Рекомендовано %1$d пользователями - Рекомендовано %1$d пользователями - Рекомендовано %1$d пользователями - - Популярные mint\'ы - Подходящие mint\'ы - Получено - Отправлено - Опубликовать запрос на удаление вашей рекомендации kind:38000 для %1$s. Relay\'и, соблюдающие NIP-09, удалят её. - Восстановлено %1$s sats в %2$s доказательствах. - Оплатить %1$s sat + до %2$s sat комиссии? - Nutzap не удался - В заметке нет публичного ключа получателя - Nutzap\'ы публичны и раскроют эту приватную заметку. Используйте вместо этого Lightning зап. - Не удаётся создать ссылку на событие - Ожидание оплаты инвойса… - Проверка mint\'а… - Медленно - Нормально - Быстро - ~1 ч - ~30 мин - ~10 мин - - Отправить %1$s sats, %2$d получателю - Отправить %1$s sats, %2$d получателям - Отправить %1$s sats, %2$d получателям - Отправить %1$s sats, %2$d получателям - - - Использовать разделение этой заметки на %1$d часть - Использовать разделение этой заметки на %1$d части - Использовать разделение этой заметки на %1$d частей - Использовать разделение этой заметки на %1$d частей - - - Разделение между %1$d получателем - Разделение между %1$d получателями - Разделение между %1$d получателями - Разделение между %1$d получателями - - - Пропуск %1$d получателя с только Lightning-адресом — onchain требует публичный ключ Nostr для получения адреса. - Пропуск %1$d получателей с только Lightning-адресом — onchain требует публичный ключ Nostr для получения адреса. - Пропуск %1$d получателей с только Lightning-адресом — onchain требует публичный ключ Nostr для получения адреса. - Пропуск %1$d получателей с только Lightning-адресом — onchain требует публичный ключ Nostr для получения адреса. - - загрузка баланса - построение транзакции - подпись - трансляция - публикация квитанции - Блокчейн-бэкенд Bitcoin не настроен - Не удалось загрузить баланс Bitcoin - Не удалось построить транзакцию - Доля получателя ниже минимального порога (dust) - Не удалось подписать транзакцию - Не удалось транслировать транзакцию - Платёж отправлен, но квитанция о запе не может быть опубликована - - Платёж отправлен (%1$d из %2$d квитанции опубликовано), но следующая квитанция не может быть опубликована - Платёж отправлен (%1$d из %2$d квитанций опубликовано), но следующая квитанция не может быть опубликована - Платёж отправлен (%1$d из %2$d квитанций опубликовано), но следующая квитанция не может быть опубликована - Платёж отправлен (%1$d из %2$d квитанций опубликовано), но следующая квитанция не может быть опубликована - - Импортировать подписки - Новый товар - Новая статья - Новое событие календаря - Редактировать событие календаря - Новый календарь - Редактировать календарь - Лента - Месяц - Неделя - День - - %1$s, %2$d событие - %1$s, %2$d события - %1$s, %2$d событий - %1$s, %2$d событий - - Происходит сейчас - %1$s · заканчивается %2$s - Поделиться событием календаря - Напоминания календаря - Уведомление перед началом события, на которое вы записались. - Событие календаря - - Начнётся через %1$d минуту - Начнётся через %1$d минуты - Начнётся через %1$d минут - Начнётся через %1$d минуты - - Ошибка загрузки изображения - Не удалось загрузить выбранное изображение. Попробуйте ещё раз или вставьте URL. - Напоминания календаря - Отправлять напоминания - Уведомление приходит перед началом события, на которое вы записались. - - %1$d мин - %1$d мин - %1$d мин - %1$d мин - - Открыть на карте - Открыть ссылку - Открыть все реакции на эту запись - Закрыть все реакции на эту запись - Нижняя панель навигации Перетащите для изменения порядка. Включите или отключите, чтобы добавить или убрать элемент из нижней панели. При нулевом количестве элементов нижняя панель скрывается. Изменить порядок Выберите вкладки для главного экрана. Если активна только одна вкладка, панель вкладок скрывается. - Всё - Интерфейс профиля Выберите разделы и ленты, отображаемые на экранах профилей пользователей. По умолчанию все параметры включены. - Значки профиля - Рекомендации приложений - Лента полученных Zap - Лента подписчиков - Панель реакций - Кнопки видеоплеера - Визуализатор звука - Дата истечения - Неверный адрес - Amethyst получил URI для открытия, но этот URI недействителен: %1$s - Поисковые Relays - Хорошие варианты:\n%1$s - Настройки Relay - Публичные Outbox/Home Relays - Пользователь публикует контент на этих relay - Этот тип relay хранит весь ваш контент. Amethyst будет отправлять ваши публикации сюда, а другие будут использовать эти relay для поиска вашего контента. Укажите от 1 до 3 relay. Это могут быть личные, платные или публичные relay. - Публичные Inbox Relays - Пользователь получает уведомления на этих relay - Этот тип relay получает все ответы, комментарии, лайки и zap к вашим публикациям. Они могут быть платными или бесплатными. Ограничения, установленные оператором relay, могут влиять на получаемые уведомления как положительно, так и отрицательно. Например, если вас атакуют спам-комментариями, платные relay могут отфильтровать спам. Укажите от 1 до 3 relay. - Пользователь получает DM на этих relay - Укажите от 1 до 3 relay для использования в качестве личного почтового ящика. Другие будут использовать эти relay для отправки вам DM. DM Inbox relay должны принимать любые сообщения от кого угодно, но разрешать скачивание только вам. Хорошие варианты:\n - inbox.nostr.wine (платно)\n - auth.nostr1.com (бесплатно)\n - you.nostr1.com (личные relay — платно) - Relay, на которых публикуются ваши MLS KeyPackage (MIP-00). Другие пользователи загружают эти KeyPackage, чтобы пригласить вас в групповые чаты Marmot. Укажите от 1 до 3 relay, принимающих события KeyPackage от вас и допускающих публичное чтение. - Приватные Home Relays - Укажите от 1 до 3 relay для хранения событий, недоступных никому другому, например ваших черновиков и/или настроек приложения. В идеале эти relay являются либо локальными, либо требуют аутентификации перед загрузкой контента каждого пользователя. - Подключённые Relays - Текущий список используемых relay - Поисковые Relays - Список relay для поиска контента или пользователей. Упоминание и поиск не будут работать при отсутствии доступных вариантов. Убедитесь, что они реализуют NIP-50. - Локальные Relays - Список relay, работающих на этом устройстве. - Пересылать профили на локальный relay - Отправлять все полученные события профиля (kind 0) на ваш локальный relay - Доверенные Relays - Relay, которым вы доверяете настолько, что Tor-соединение не требуется - Избранные ленты Relay - Relay, которые вы часто посещаете для просмотра их глобальной ленты - Агрегирующие relay-серверы, которые приложение использует для загрузки ваших лент, например filter.nostr.wine. Это заменяет модель outbox и позволит приложению подключаться только к relay-серверам из ваших списков. - Relay-серверы для трансляции - Relay-серверы, специализирующиеся на рассылке ваших заметок на все остальные relay-серверы, например sendit.nosflare.com. Amethyst будет добавлять этот relay ко всем новым событиям, созданным вами. - Relay-серверы-индексаторы - Relay-серверы, специализирующиеся на хранении метаданных и списков relay-серверов всех пользователей, например purplepag.es. Amethyst будет использовать эти relay для поиска пользователей, которых нет в ваших списках. - Заблокированные relay-серверы - Amethyst никогда не будет подключаться к этим relay-серверам. - Экспортировать настройки relay Веб: Обзор О репозитории Ссылки Сопровождающие Темы - Доказательство временно́й метки - Есть доказательство того, что эта публикация была подписана до %1$s. Доказательство зафиксировано в блокчейне Bitcoin в указанную дату и время. - Редактировать пост - Нельзя ответить на черновую заметку - Нельзя процитировать черновую заметку - Нельзя отреагировать на черновую заметку - Нельзя отправить zap на черновую заметку - Черновая заметка - Неверный запрос — сервер не может или не хочет обработать запрос. - Не авторизован — у пользователя нет действительных учётных данных для аутентификации. - Требуется оплата — сервер требует оплаты для выполнения запроса. - Запрещено — у пользователя нет прав доступа для выполнения запроса. - Не найдено — сервер не может найти запрошенный адрес. - Метод не разрешён — сервер поддерживает метод запроса, но не для целевого ресурса. - Неприемлемо — сервер не находит содержимого, удовлетворяющего запросу. - Требуется аутентификация прокси — у пользователя нет действительных учётных данных для аутентификации. - Тайм-аут запроса — сервер завершил ожидание ответа от другой стороны. - Конфликт — сервер не может выполнить запрос из-за конфликта с ресурсом. - Удалено — запрошенный контент был безвозвратно удалён с сервера и не будет восстановлен. - Требуется длина — сервер отклоняет запрос, поскольку требует указания длины содержимого. - Предусловие не выполнено — сервер не может выполнить предусловия, указанные в полях заголовка запроса. - Слишком большая нагрузка — запрос превышает установленные ограничения сервера, и сервер отказывается его обрабатывать. - URI слишком длинный — URL, запрошенный клиентом, слишком длинный для обработки сервером. - Неподдерживаемый тип медиа — запрос использует формат медиа, который сервер не поддерживает. - Диапазон не удовлетворён — сервер не может выполнить значение, указанное в поле заголовка Range запроса. - Ожидание не выполнено — сервер не может выполнить требования, указанные в поле заголовка Expect запроса. - Требуется обновление — сервер отказывается обрабатывать запрос с использованием текущего протокола, если клиент не перейдёт на другой протокол. - Внутренняя ошибка сервера — сервер столкнулся с непредвиденной ошибкой и не может выполнить запрос. - Не реализовано — сервер не может выполнить запрос или не распознаёт метод запроса. - Плохой шлюз — сервер выступает в роли шлюза и получил недопустимый ответ от хоста. - Сервис недоступен — это часто происходит, когда сервер перегружен или находится на техническом обслуживании. - Тайм-аут шлюза — сервер выступал в роли шлюза или прокси и превысил время ожидания ответа. - Версия HTTP не поддерживается — сервер не поддерживает версию HTTP, указанную в запросе. - Вариант также проводит переговоры — сервер имеет внутреннюю ошибку конфигурации. - Недостаточно места для хранения — у сервера недостаточно места для успешной обработки запроса. - Обнаружена петля — сервер обнаружил бесконечный цикл при обработке запроса. - Требуется сетевая аутентификация — клиент должен пройти аутентификацию для доступа к сети. Серверы Blossom Добавьте столько серверов, сколько хотите. Вы сможете выбрать нужный при загрузке изображения. - Добавить NIP-96 сервер - Добавить Blossom сервер Скачать - Не удалось открыть файл - Нет установленных torrent-приложений для открытия и скачивания файла. - В событии недостаточно информации для создания magnet-ссылки. - Мои списки - Ленты - Хэштеги - Наборы интересов - Местоположения - Сообщества - Списки - Алгоритмы лент - Все избранные алгоритмы лент - Relay-серверы - Избранные алгоритмы лент - Личное сообщение - Публичное сообщение - Не удается поделиться изображением, повторите попытку позже… - Не удается поделиться видео, повторите попытку позже… - Скачивание видео… - Не переводить с - Языки показанные здесь не будут переведены. Выберите язык, чтобы удалить его и снова перевести. - Перевести на - Выберите язык для перевода содержимого. - Настройки отображения языка - Для каждой языковой пары, выберите язык, который показывать в первую очередь. - Пауза - Воспроизведение - Это сообщение исчезнет через %1$s - Метаданные списка подписок - Метаданные списков подписок могут видеть все пользователи Nostr. Только приватные участники зашифрованы. - Метаданные пакета подписок - Метаданные пакета подписок видны всем пользователям Nostr и часто публикуются на многих сайтах как стартовые наборы для новых пользователей. - Редактировать пакет подписок - Развернуть - Повторить - Реакция - Голосовая публикация - Голосовой ответ - Исходящие relay - Приложения - Рекомендации приложений - Настройки пользователя - Аудио-заголовок - Аудиодорожка - Музыкальный трек - Музыкальный плейлист - Эпизод подкаста - Подкаст-шоу - Авторские подкасты - Избранные подкасты - Выданные значки - Определения значков - Принятый набор значков - Значки профиля - Заблокированные relay - Серверы Blossom - Серверы Nests - Вещательные relay - Список закладок - Старый список закладок - Дневная запись - Календарь - Запись - Подтверждение записи - Шахматные партии - Избранные relay - Шахматные вызовы - Принятие шахматной партии - Шахматный ход - Завершение шахматной партии - Предложение ничьей - Определение канала - Скрытое сообщение канала - Список каналов - Сообщение канала - Метаданные канала - Отключение пользователя в канале - Файл в ЛС - Сообщение в ЛС - Relay для ЛС - Объявления - Комментарии - Определение сообщества - Список сообществ - Пост сообщества - Список подписок - Удаления - Черновики - Наборы эмодзи - Список наборов эмодзи - Эфемерный чат - Эфемерные чат-комнаты - Заголовки файлов - Галерея профиля - Файловые серверы - Данные Blob - Заголовки Blob - Медицинские данные - Наборы подписок - Репосты (16) - Подписки по геохешу - Цели Zap - Подписки по хештегу - Выделения - Список индексных relay - Пролог приключения - Сцена приключения - Чтение приключения - Именованные закладки - Живые чаты - Прямые трансляции - Приватные Zaps - Блоги - Комната встречи - Присутствие в комнате - Пространство встречи - Профиль - Список отключённых - Списки пользователей - Картинки - Тренировки - Закреплённые - Опрос - Ответ на опрос - Приватные relay - Прокси-relay - Публичное сообщение - Реакции - Контактная карточка - Обнаружение relay - Объявление монитора relay - Набор relay - Жалобы - Репосты - Удаление пользователя - Печати - Поисковые relay - Статус пользователя - Заметки - Правки - Торренты - Комментарии к торрентам - Доверенные relay - Доверенные провайдеры - Видео (Repl) - Видео - Голосовое сообщение - Голосовой ответ - Веб-закладка - %1$d%% времени работы - Настройки Namecoin - %dмс - Синхронизация relay - события от вас - события для вас - события в поиске - профили - списки исходящих - Последний раз %1$s назад - Последний раз %1$s (%2$s назад) - Только что был(а) в сети - Никогда не посещал(а) - - %1$d минута - %1$d минуты - %1$d минут - %1$d минуты - - - %1$d час - %1$d часа - %1$d часов - %1$d часа - - - %1$d день - %1$d дня - %1$d дней - %1$d дня - - - %1$d неделя - %1$d недели - %1$d недель - %1$d недели - - - %1$d месяц - %1$d месяца - %1$d месяцев - %1$d месяца - - - %1$d год - %1$d года - %1$d лет - %1$d года - - - %1$d ожидающий счёт - %1$d ожидающих счёта - %1$d ожидающих счетов - %1$d ожидающих счёта - - - Средства хранятся в %1$d mint, который вы не используете - Средства хранятся в %1$d mint, которые вы не используете - Средства хранятся в %1$d mint, которые вы не используете - Средства хранятся в %1$d mint, которые вы не используете - - Перемещено %1$s sat в %2$s. - Трансляция на устройство - Остановить трансляцию - Загрузка HLS - Загрузка %1$s (%2$d из %3$d) - Аттестация - Запрос аттестации - Рекомендация аттестора - Квалификация аттестора - Веб-закладки - Добавить веб-закладку - Редактировать веб-закладку - %1$s собрано из %2$s sat - Новая цель - Запрос на удаление - Запрос на удаление отправлен - История запросов на удаление - Пользователи - События - Виды - IP-адреса - Настройки - Предлагать улучшения текста - Использует модель ИИ на устройстве для предложения исправлений текста и изменения тональности. - Отслеживаемые трансляции - Использует отслеживаемый режим при отправке событий. Показывает прогресс в реальном времени и статус по каждому relay. - Предлагать публикации тренировок - Читает завершённые тренировки из Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) и предлагает поделиться ими в виде публикации. Разрешение запрашивается только при подключении. - Настройки редактора - Автоматически создавать черновики - Автоматически сохраняет черновик при вводе текста или выходе из редактора с неотправленным текстом и отправляет в ваши приватные outbox relay. - Новый набор эмодзи - Изменить набор эмодзи - Мои наборы эмодзи - Эмодзи - Публичные эмодзи видны всем и отображаются в вашем меню реакций и автодополнении «:», когда этот набор добавлен в ваш список. - Приватные эмодзи хранятся в зашифрованном виде на relay и видны только вам. Они отображаются в вашем меню реакций и автодополнении «:» так же, как и публичные. - Черновик занимает %1$d байт; в этом сообществе для данного kind установлено ограничение %2$d байт. - Черновик занимает %1$d байт; в этом сообществе установлено ограничение %2$d байт для событий. - Сегодня вы уже опубликовали %1$d событий этого kind (лимит: %2$d). - Сайт Nowhere - Событие Nowhere - Сбор средств Nowhere - Магазин Nowhere - Петиция Nowhere - Сообщение Nowhere - Дроп Nowhere - Арт Nowhere - Форум Nowhere - - %1$d сообщ. - %1$d сообщ. - %1$d сообщ. - %1$d сообщ. - - - %1$d участник - %1$d участника - %1$d участников - %1$d участника - - Информация о группе обновлена - Не удалось обновить: %1$s - Не удалось создать группу: %1$s - Не удалось покинуть группу: %1$s - Добавление %1$s… - Не удалось добавить %1$s: %2$s - неизвестная ошибка - Участник удалён - Не удалось удалить участника: %1$s - Права администратора выданы - Не удалось выдать права администратора: %1$s - Права администратора отозваны - Не удалось отозвать права администратора: %1$s - Не является участником этой группы Lightning-сервис получателя по адресу %1$s недоступен. Он был вычислен из Lightning-адреса \"%2$s\". Ошибка: %3$s. Проверьте, работает ли сервер и правильно ли указан Lightning-адрес Не удалось разрешить %1$s. Проверьте подключение к сети, работоспособность сервера и правильность Lightning-адреса %2$s.\n\nИсключение: %3$s Ошибка разбора JSON при получении счёта от %1$s. Проверьте настройки Lightning пользователя diff --git a/amethyst/src/main/res/values-ru-rUA/strings.xml b/amethyst/src/main/res/values-ru-rUA/strings.xml index 7714d49441..0c1e2c31bc 100644 --- a/amethyst/src/main/res/values-ru-rUA/strings.xml +++ b/amethyst/src/main/res/values-ru-rUA/strings.xml @@ -1,121 +1,12 @@ - - В этой публикации более %1$d хэштега - В этой публикации более %1$d хэштегов - В этой публикации более %1$d хэштегов - В этой публикации более %1$d хэштега - - - %1$d вложение в комплекте - %1$d вложения в комплекте - %1$d вложений в комплекте - %1$d вложения в комплекте - - - +%1$d\\nответ - +%1$d\\nответа - +%1$d\\nответов - +%1$d\\nответа - - Спам - Количество спам-событий, поступающих с этого relay - Выдача себя за другого - Незаконные действия - Запросить удаление - Вы используете публичный ключ, который доступен только для чтения. Войдите с приватным ключом, чтобы отвечать на записи - Вы используете публичный ключ, который доступен только для чтения. Войдите с приватным ключом, чтобы делать репосты - Вы используете публичный ключ, который доступен только для чтения. Войдите с приватным ключом, чтобы ставить лайки - Сумма Zap не настроена. Нажмите и удерживайте для изменения - Вы используете публичный ключ, который доступен только для чтения. Войдите с приватным ключом, чтобы отправлять zap - Вы используете публичный ключ, который доступен только для чтения. Войдите с приватным ключом, чтобы подписываться - Вы используете публичный ключ, который доступен только для чтения. Войдите с приватным ключом, чтобы отписываться - Вы используете публичный ключ, который доступен только для чтения. Войдите с приватным ключом, чтобы скрыть слово или фразу - Вы используете публичный ключ, который доступен только для чтения. Войдите с приватным ключом, чтобы показывать слово или фразу - Вы используете публичный ключ, который доступен только для чтения. Войдите с приватным ключом, чтобы загружать файлы - Вы используете публичный ключ, который доступен только для чтения. Войдите с приватным ключом, чтобы подписывать события - Несанкционированная расшифровка - Подписчик не авторизовал расшифровку, необходимую для выполнения этой операции. Активируйте расшифровку NIP-44 в вашем приложении-подписчике и повторите попытку - Подписчик не найден - Приложение подписи удалено? Убедитесь, что оно установлено и содержит этот аккаунт. Выйдите и войдите снова, если приложение подписи изменилось. - Внешний подписант вернул неожиданный ответ на запрос. Возможно, ошибка в Amethyst или в приложении подписи. - Репост репост изменение #%1$s - Предложить правку - Добавить - Ошибка разбора сообщения об ошибке - Профиль - Фильтры безопасности - Запрос счёта… - Сервис списания не завершил платёж. - Оплатить %1$s через %2$s? - Оплатить этот счёт через %1$s? - Введите допустимую сумму для этого предложения. - Однократно - Ежедневно - Еженедельно - Ежемесячно - Оплатить - Оплата через %1$s… - Платёж не выполнен - Доступно для этого получателя: %1$s sats - Транзакция: %1$s - "Изображение карточки предпросмотра для %1$s" - Описание - О чём вы думаете? - Написать сообщение… - Опубликовать Сохранить - Отправить - Создать Переименовать - Отмена - Ошибка - Ошибки - Процент успешных подключений к relay - Сохранить на телефон - Изображение сохранено в фотогалерее телефона - Загрузка видео началась… - Загрузка медиафайла началась… - Закрепить наверху - Открепить - Не удалось сохранить изображение - Видео сохранено в галерею телефона - Не удалось сохранить видео - PDF сохранён в Downloads/Amethyst - Не удалось сохранить PDF - На этом устройстве не найдено приложение камеры - Нажмите и удерживайте для записи сообщения - Ошибка загрузки - Не удалось загрузить голосовое сообщение - NIP-95 пока не поддерживается для голосовых сообщений - Ошибка загрузки голосового сообщения: %1$s - Нет - Низкий - Высокий - Нейтральный - У пользователя не настроен Lightning-адрес для получения sats - "ответить здесь… " - Известные - Новые запросы - Заблокированные пользователи - Новые темы - Беседы - Ещё параметры - Показать QR-код приватного ключа - Показать QR-код зашифрованного приватного ключа - Подписаться - Подписаться в ответ - Скрыть пароль - Неверный ключ - Неверный ключ: %1$s - Необходимо указать пароль - Ключ обязателен - Необходимо указать имя @@ -124,164 +15,7 @@ Новый профиль чата: - Покинуть - Отписаться - Исчезающий чат - Чат relay - Чаты relay - Чаты relay — это групповые чаты, управляемые их домашним relay. - Они видны всем в Nostr, и любой может в них участвовать. - Они отлично подходят для открытых сообществ по определённым темам. Некоторые группы эфемерны, - поэтому сообщения исчезают со временем - Публичный чат - Метаданные публичного чата - Публичные чаты видны всем в Nostr и открыты - для участия любого желающего. Они отлично подходят для открытых сообществ по определённым темам. - Модерация осуществляется путём удаления постов на relay - Relay - Укажите от 1 до 3 relay, на которых размещена эта группа. - Клиенты Nostr используют эту настройку, чтобы знать, откуда загружать сообщения и куда их отправлять. - Удалить - никогда - сейчас - Обнажённость - Ненормативная лексика / Язык ненависти - Резервное копирование ключей - Не удалось зашифровать ваш приватный ключ - Секретный ключ (nsec) скопирован в буфер обмена - Скопировать мой секретный ключ - Аутентификация не удалась - Биометрия не смогла подтвердить личность владельца телефона - Биометрия не смогла подтвердить личность владельца телефона. Ошибка: %1$s - Текст записи скопирован в буфер обмена - \@npub автора скопирован в буфер обмена - ID записи (@note1) скопирован в буфер обмена - "<Невозможно расшифровать личное сообщение>\n\nВас упомянули в личной/зашифрованной переписке между %1$s и %2$s." - Аккаунты - Навигация - Вы - Ленты - Создать - Система - Назад - Поделиться ссылкой в браузере - Поделиться - Поделиться как изображение - Поделиться URL изображения - ID заметки - Удалить - Заглушить тред - Включить звук треда - - Заблокировать - Закладки - Закладки успешно перенесены - Черновики - Запланированные посты - Запланировать пост - Отменить расписание - Запланированные посты могут не опубликоваться до следующего открытия приложения. Включите постоянный режим в Настройках → Настройки интерфейса для надёжного фонового планирования. - Запланированные посты могут не опубликоваться до следующего открытия приложения. Запланированные посты других аккаунтов не будут отправлены, пока активен этот аккаунт. Включите постоянный режим в Настройках → Настройки интерфейса для надёжного фонового планирования. - %1$s · через %2$s - %1$s · %2$s назад - Завтра - Выход выполнен - - Выход выполнен · %d запланированный пост удалён - Выход выполнен · %d запланированных поста удалено - Выход выполнен · %d запланированных постов удалено - Выход выполнен · %d запланированных поста удалено - - Запланированный пост опубликован - Ошибка запланированного поста - Запланированные посты - Уведомления о публикации или ошибке запланированного поста. - Отправить сейчас - Ошибка: %1$s - Запланировано - Отправка… - Ошибка - Отправлено - Отменено - - У вас %d запланированный пост, который ещё не опубликован. При выходе он будет удалён навсегда. - У вас %d запланированных поста, которые ещё не опубликованы. При выходе они будут удалены навсегда. - У вас %d запланированных постов, которые ещё не опубликованы. При выходе они будут удалены навсегда. - У вас %d запланированных поста, которые ещё не опубликованы. При выходе они будут удалены навсегда. - - - %d в очереди - %d в очереди - %d в очереди - %d в очереди - - - · %d через 1ч - · %d через 1ч - · %d через 1ч - · %d через 1ч - - - на %d relay - на %d relay - на %d relay - на %d relay - - ID заметки скопирован - Опросы - Открытые - Закрытые - Значки - Сообщества - Новое сообщество - Редактировать сообщество - Модераторы - Relay - Проверяемые правила (необязательно) - Разрешённые виды событий - Короткий текст (1) - Длинная статья (30023) - Пост с изображением (20) - Видеопост (21) - Короткое видео (22) - Комментарий сообщества (1111) - Заблокированные пользователи - Фильтр сети доверия (необязательно) - Глобальный максимальный размер события (необязательно) - Новый значок - Вручить значок - Значки профиля - Изображения - Тренировки - Новая тренировка - Бег - Ходьба - Велоспорт - Пешие прогулки - Плавание - Гребля - Силовые тренировки - Йога - Медитация - Питание - Голодание - Круговая тренировка - Приложения Приложения - Браузер - Загрузка через Tor. Нажмите, чтобы использовать открытую сеть. - Загрузка через открытую сеть. Нажмите, чтобы использовать Tor. - Избранное - Избранные приложения - Добавить в избранное - Удалить из избранного - Загружается через Tor. - Загружается через открытую сеть. - Опубликовано на relay - Файл загружен - Платёж выполнен - Это приложение ещё не загружено. Повторите попытку через мгновение. - Недавние Разрешения nApplet Разрешений nApplet пока нет Разрешения, которые вы предоставляете nApplets, появятся здесь. @@ -291,48 +25,11 @@ Оболочка - Личность - Действия клавиатуры - relay - Хранилище - Платежи - Сеть - Загрузки Запрашивать доступные возможности - Читать ваш публичный ключ - Привязывать клавиатурные сочетания - Читать, подписывать и публиковать ваши события - Собственное приватное хранилище - Оплачивать Lightning-инвойсы - Загружать веб-ресурсы и ресурсы Blossom - Загружать файлы на ваш медиасервер - Тема - Уведомления - Обмен сообщениями - Соответствовать цветам вашего приложения - Показывать вам уведомления - Обмениваться сообщениями с другими nApplets Возможность: %1$s - Этот nApplet хочет прочитать ваш публичный ключ. - Этот nApplet хочет прочитать ваш профиль и данные аккаунта. - Этот nApplet хочет подписать и опубликовать событие kind:%1$d от вашего имени. - Этот nApplet хочет подписать и опубликовать событие kind:%1$d от вашего имени: - Этот nApplet хочет отправить зашифрованное событие от вашего имени. - Этот nApplet хочет читать события с ваших relay. - Этот nApplet хочет использовать своё приватное хранилище. Этот nApplet хочет оплатить Lightning-инвойс. - Этот nApplet хочет загрузить веб-ресурс. - Этот nApplet хочет загрузить файл на ваш медиасервер. - Этот nApplet хочет показывать вам уведомления. - Этот сайт хочет подписать событие kind:%1$d вашим ключом Nostr. - - Этот nApplet хочет оплатить Lightning-инвойс на %1$d sat. - Этот nApplet хочет оплатить Lightning-инвойс на %1$d sats. - Этот nApplet хочет оплатить Lightning-инвойс на %1$d sats. - Этот nApplet хочет оплатить Lightning-инвойс на %1$d sats. - - Публичные чаты - Пакеты подписок - Прямые трансляции - Поднять руку - Опустить руку - Выключить микрофон - Включить микрофон - Не удалось отправить сообщение - Выключить микрофон - Включить микрофон - Позволяет воспроизводить звук, пока комната открыта. - Nest подключён - Nest — в эфире - Нажмите, чтобы вернуться. - Стоп - поднял руку - вышел на сцену - говорит - присоединился как слушатель - покинул nest - Выйти - Не удалось отметить комнату как закрытую. Выходим в любом случае — комната закроется автоматически. - - %1$d слушатель - %1$d слушателя - %1$d слушателей - %1$d слушателя - - Заглушить этого участника - Восстановить этого участника - Подписаться - Отписаться - Заглушить - Включить звук - Не удалось сохранить список nest-серверов. Повторите попытку. - Nest-серверы - Ваши серверы - Сохраняется как заменяемое событие kind:10112, чтобы другие клиенты могли прочитать ваши настройки. - Рекомендуемые серверы - Встроенные предложения, которые можно добавить в список одним касанием. - Видео - Музыка - Плейлисты - Эпизоды - Подкасты - - %1$d эпизод - %1$d эпизода - %1$d эпизодов - %1$d эпизода - - Новый музыкальный трек - Новый плейлист - - %1$d трек - %1$d трека - %1$d треков - %1$d трека - - Добавить в публичные закладки - Удалить из публичных закладок - Закрепить в профиле - Открепить от профиля - Новый список закладок - Метаданные списка закладок - Наборы хэштегов - Новый набор интересов - Переименовать - Сделать приватным: gift-wrap заметка только для уведомлённых пользователей - Сделать публичным - Ответы на приватную заметку всегда остаются приватными - Видно для Получателей пока нет: только вы сможете видеть эту заметку. Добавьте людей, чтобы поделиться с ними. Добавить Удалить пользователя из уведомлений Найти и добавить пользователя для уведомления - Метаданные списков закладок видны всем в Nostr. Только личные записи зашифрованы. - Переместить в публичные - Переместить в личные - Пополнить & отправить зап - Отправить зап - Пополнить %1$s sats на %2$s и запнуть %3$s %4$s sats · комиссия ≈ %5$s sats - Вариант %s - Одиночный выбор - Множественный выбор - Невозможно проголосовать - Опрос закрыт для новых голосов - В этом типе опроса разрешён только один голос от пользователя - Авторы опроса не могут голосовать в собственных опросах. - Что это означает? - Содержимое не изменилось с момента публикации - Содержимое изменилось. Возможно, автор не видел или не одобрял это изменение - Добавить медиа - Добавить изображение - Добавить видео - Добавить документ - Файловый сервер - Выберите сервер для загрузки этого файла - Медиасерверы Задайте предпочтительные серверы для загрузки медиафайлов. Рекомендуемые медиасерверы Список по умолчанию от Amethyst. Вы можете добавить их по отдельности или весь список. - Получатели платежей - Добавьте платёжные адреса для различных сетей (например, bitcoin, lightning, ethereum). - Не найдено приложение для обработки этого платежа. Пожалуйста, установите совместимый кошелёк. - Не найдено приложение для обработки платежей %1$s. Пожалуйста, установите совместимый кошелёк. - Не удалось открыть платёж - Настройки конфиденциальности - Все подписки - Все подписки пользователя - Список подписок по умолчанию - Вокруг меня - Глобальная - Подборка - Мои - Список игнора - Новый список подписок - Новый пакет подписок - Редактировать список - Порт по умолчанию: 9050 - Порт Orbot Socks - Встроенный движок Tor - Использовать встроенную версию или Orbot - Пресеты Tor/конфиденциальности - Быстро изменить все настройки ниже - Onion-адреса/relay - Использовать Tor для любых .onion-адресов - DM relay - Принудительно использовать Tor для отправки и получения личных сообщений - Ненадёжные relay - Принудительно использовать Tor для исходящих/входящих relay - Доверенные relay - Принудительно использовать Tor для всех relay из ваших списков - Фотографии профилей - Принудительно использовать Tor при загрузке фотографий профилей - Превью URL - Принудительно использовать Tor при загрузке превью ссылок - Изображения - Принудительно использовать Tor при загрузке изображений - Видео - Принудительно использовать Tor при загрузке видео - Денежные операции - Принудительно использовать Tor для запов, Lightning и переводов cashu - Верификация Nostr-адреса - Принудительно использовать Tor при верификации NIP-05 адресов - Загрузка медиа - Принудительно использовать Tor при загрузке контента - Встроенный - Выкл - Базовый - По умолчанию - Всё кроме медиа - Полная конфиденциальность - Настраиваемый - Использовать Tor только когда это требуется сервером - Скрыть ваш IP от случайных relay - Скрыть ваш IP от всего, кроме изображений и видео - Скрыть ваш IP во всех соединениях - Настройте по своему усмотрению - Личные сообщения - Уведомляет о получении личного сообщения - Полученные zap - Уведомляет, когда кто-то отправляет вам zap - %1$s sat - От %1$s - за %1$s - Ответить - Отметить прочитанным - Новые сообщения - Новые запы - Реакции - Уведомляет вас, когда кто-то реагирует на ваш пост - %1$s отреагировал(а) на ваш пост - на %1$s - Новые реакции - Шахматы - Уведомляет вас о событиях шахматной партии - %1$s принял(а) ваш вызов на шахматную партию - %1$s сделал(а) ход — ваш ход - Обновления шахмат - Ответы - Уведомляет вас, когда кто-то отвечает на ваш пост %1$s ответил(а) на: %1$s - Новые ответы - Упоминания - Уведомляет вас, когда кто-то упоминает или цитирует вас в посте - %1$s упомянул(а) вас - Новые упоминания @@ -564,40 +81,6 @@ - Входящие звонки - Уведомления о входящих голосовых и видеозвонках - Входящий звонок - Входящий голосовой звонок… - Входящий видеозвонок… - Звонок с %1$s - Звонки - Уведомление о текущем звонке - Завершить - Принять - Отклонить - Выключить микрофон - Включить микрофон - Камера включена - Камера выключена - Громкоговоритель - Динамик - Amethyst требует доступ к микрофону для совершения голосового звонка. Пожалуйста, включите его в настройках приложения. - Amethyst требует доступ к камере и микрофону для совершения видеозвонка. Пожалуйста, включите их в настройках приложения. - Настройки звонков - Поддерживает активные подключения к входящим relay для уведомлений в реальном времени - Уведомления Amethyst активны - - Подключено к %1$d входящему relay - Подключено к %1$d входящим relay - Подключено к %1$d входящим relay - Подключено к %1$d входящих relay - - - Подключено к %1$d relay - Подключено к %1$d relay - Подключено к %1$d relay - Подключено к %1$d relay - - Подключение к входящим relay… Постоянный сервис уведомлений Поддерживает постоянное соединение с вашими inbox-relay для мгновенной доставки уведомлений. Отображает постоянное уведомление. Расходует больше заряда батареи, но гарантирует, что вы не пропустите ни одного сообщения. - Разделить уведомления по подпискам - Показывать две вкладки уведомлений — «Подписки» (люди, на которых вы подписаны) и «Все». Индикатор непрочитанных светится только для активности от людей, на которых вы подписаны. - Показывать сообщения - Включить личные и групповые сообщения во вкладку «Уведомления». Отключите, чтобы сообщения отображались только во вкладке «Сообщения». - Уведомить: - Сегодня - Скрыть - Показать - Предупреждать - Фильтр спама - Скрывает публикации от незнакомцев, которые встречались 5 или более раз с одинаковым содержимым - Добавлять клиентский тег к моим событиям - При включении Amethyst добавляет NIP-89 клиентский тег к публикуемым вами событиям. - Предупреждать о жалобах - Показывает предупреждение, если на публикацию или профиль пожаловались люди из ваших подписок - Скрывать публикации, нарушающие правила сообщества - Удаляет публикации из лент сообщества, если сообщество опубликовало документ с правилами NIP-9B и событие им не соответствует. Не применяется, если у сообщества нет структурированных правил. - Настройки фильтрации - Заблокированный контент - Вы ещё не заблокировали ни одного пользователя. - В этой сессии ни один аккаунт не был помечен как спам. - Скрытых слов нет. Добавьте слово ниже, чтобы скрывать публикации с ним. - Типы реакций для этого пользователя не выбраны. Удерживайте кнопку сердечка, чтобы изменить - Чтение из relay - Запись в relay - Объём данных в байтах, отправленных на этот relay, включая фильтры и события - Объём данных в байтах, полученных от этого relay, включая фильтры и события - Политика конфиденциальности - Стандарты безопасности детей - О приложении & правовые сведения - Cashu-токен - Lightning-адрес не задан - Relay - Пакеты подписок - Чтение - Алгоритмы ленты - Маркетплейс - Прямые трансляции - Сообщества - Чаты - Чувствительный контент - Добавляет предупреждение о чувствительном контенте перед его отображением - Настройки интерфейса Настройки приложения - Переводы - Реакции - Настройки - Настройки аккаунта - Настройки приложения - Опасная зона - Сбросить состояние Marmot - Состояние Marmot сброшено. - Не удалось сбросить состояние Marmot: %1$s - Всегда - Безлимитный Wi-Fi - Никогда - Полный - Упрощённый - Производительный - Классический - Современный - Системная - Светлая - Тёмная - Тема - Предпросмотр изображений - Воспроизведение видео - Автовоспроизведение видео - Предпросмотр URL - Иммерсивная прокрутка - Скрывать панель навигации при прокрутке - Режим интерфейса - Выберите стиль публикаций - Стиль галереи профиля - Выберите стиль галереи - Спамеры - Без звука. Нажмите для включения - Звук включён. Нажмите для отключения - Перемотать назад на %d сек. - Перемотать вперёд на %d сек. - Публикация только для местоположения - Её увидят только подписчики этого местоположения. Ваши обычные подписчики не увидят её. - - %1$d трек - %1$d трека - %1$d треков - %1$d трека - - - +%1$d трек ещё - +%1$d трека ещё - +%1$d треков ещё - +%1$d трека ещё - - Загрузить обложку - Выберите квадратное изображение в качестве обложки для этого трека. - Загрузить аудиофайл - Выберите файл MP3, WAV или FLAC. Он будет загружен на ваш медиасервер при сохранении. - Загрузка обложки и аудио, публикация. Процесс продолжится, даже если вы покинете экран. - Редактировать плейлист - Загрузить обложку - Выберите квадратное изображение в качестве обложки для этого плейлиста. - Загрузка обложки и публикация. Процесс продолжится, даже если вы покинете экран. Публичный Группа Личный - Тема - Невозможно загрузить - Сначала укажите получателя сообщения - Кошелёк не найден - Amethyst не нашёл ни одного приложения кошелька с поддержкой Nostr Wallet Connect (NWC). -\n\nЧто можно сделать: -\n\t1. Проверьте поддержку NWC: убедитесь, что ваш кошелёк совместим с Nostr Wallet Connect. -\n\t2. Создайте подключение: откройте приложение кошелька и создайте новое NWC-подключение. -\n\t3. Привяжите к Amethyst: обычно кошелёк предлагает три варианта: -\n\t\t3.1 Автоматическая привязка: кнопка для автоматического открытия и подключения к Amethyst. Нажмите её, откройте Amethyst и сохраните новый экран. -\n\t\t3.2 Ручная привязка: URI подключения, который можно скопировать и вставить с помощью значка вставки на этом экране. -\n\t\t3.3 QR-код: кошелёк создаёт QR-код, который можно считать кнопкой QR-кода на этом экране. - - Тёмная, светлая или системная тема - Автоматически загружать изображения и GIF - Автоматически загружать видео и GIF - Автоматически воспроизводить видео при появлении на экране - Показывать предварительный просмотр ссылок - Скопировать в буфер обмена - Скопировано в буфер обмена - Поделиться или сохранить Отправить как DM - Медиа добавлено - Медиа добавлено в галерею вашего профиля - Не удалось отправить зап - Отсутствует настройка Lightning - У пользователя %1$s не настроен Lightning-адрес для получения sats - Ошибка открытия приложения подписи - Приложение подписи не найдено. Проверьте, не было ли оно удалено - Не удаётся воспроизвести видео - Кодек или формат не поддерживается на этом устройстве (%1$s). Попробуйте открыть в браузере. - Открыть в браузере - Запрос на подпись отклонён - Убедитесь, что приложение подписи авторизовало эту транзакцию - Не найдено кошельков для оплаты Lightning-счёта (Ошибка: %1$s). Установите Lightning-кошелёк для использования зап - Не найдено кошельков для оплаты Lightning-счёта. Установите Lightning-кошелёк для использования зап - Не удаётся открыть Blossom-ссылки - Blossom-приложения не найдены. Установите локальное Blossom-приложение для просмотра этого файла - Скрытые слова - Заглушённые ветки - Нет заглушённых веток - Фото профиля - Показывать фото профиля - Не удалось оплатить счёт - Не удалось выполнить вывод - Не удалось погасить Cashu - Mint вернул следующее сообщение об ошибке: %1$s - Cashu получен - %1$s sats отправлено в ваш кошелёк. (Комиссия: %2$s sats) - На устройстве не найден совместимый Cashu-кошелёк - Не удалось получить счёт с серверов получателя - Ваш провайдер wallet connect вернул следующую ошибку: %1$s - Не удалось собрать LNUrl из Lightning Address «%1$s». Проверьте настройки пользователя - Не удалось получить счёт от %1$s: %2$s - Ошибка разбора JSON от %1$s. Проверьте настройки Lightning пользователя - URL обратного вызова не найден в ответе %1$s - Неверная сумма счёта (%1$s sats) от %2$s. Должно быть %3$s - Не удалось создать Lightning-счёт перед отправкой зап. Lightning-кошелёк получателя вернул следующую ошибку: %1$s - Пользователь только для чтения - Реакции не настроены - Уведомления - Доставка - Отображение в приложении - Категории - Сообщение от %1$s - Привет, %1$s, это ещё в наличии? - Одежда - Аксессуары - Электроника - Мебель - Коллекционные предметы - Книги - Животные - Спорт - Фитнес - Искусство - Рукоделие - Дом - Офис - Еда - Разное - Другое - Не удалось загрузить медиа - Не удалось открыть сжатый файл - Ошибка загрузки: %1$s - Сервер не предоставил URL после загрузки - Не удалось скачать загруженные медиа с сервера - Не удалось проверить загруженный файл после выгрузки: %1$s - Не удалось загрузить на %1$s: %2$s - Не удалось удалить: %1$s - Медиафайл слишком большой для NIP-95 - Шифровать файлы - Шифровать файлы перед загрузкой для защиты конфиденциальности. Некоторые серверы могут не принимать зашифрованные файлы на бесплатных аккаунтах. - Зашифрованная загрузка не удалась - Многие серверы не принимают зашифрованные файлы на бесплатных аккаунтах. Вы можете повторить попытку без шифрования. - Использовать кодек H.265/HEVC - Лучшее качество при меньшем размере файла, но не все устройства поддерживают воспроизведение H.265. - Конвертировать GIF в MP4 - Конвертирует анимированный GIF в видео MP4 для уменьшения размера файла и лучшей совместимости воспроизведения. - Удалить личные метаданные - Пытается удалить личные метаданные из поддерживаемых медиафайлов перед загрузкой - Не удалось удалить метаданные - Не удалось удалить личные метаданные из медиа. Загрузка отменена. - Загрузка отменена - Не удалось удалить метаданные из AVIF: %1$s - Главная - Обзор - Сообщения - Уведомления - Календари - Списки календарей - Шахматы - Кошелёк - Cashu-кошелёк (NIP-60) Ключ для nutzap (расширенные настройки) Отдельный приватный ключ, используемый только для получения NIP-61 nutzap. Не ваш идентификационный ключ Nostr. Сгенерировать новый ключ Приватный ключ P2PK (hex) - Изменить mint\'ы Сохранить изменения - - +%1$d ещё - +%1$d ещё - +%1$d ещё - +%1$d ещё - - - Рекомендовано %1$d пользователем - Рекомендовано %1$d пользователями - Рекомендовано %1$d пользователями - Рекомендовано %1$d пользователями - - Популярные mint\'ы - Подходящие mint\'ы - Получено - Отправлено - Опубликовать запрос на удаление вашей рекомендации kind:38000 для %1$s. Relay\'и, соблюдающие NIP-09, удалят её. - Восстановлено %1$s sats в %2$s доказательствах. - Оплатить %1$s sat + до %2$s sat комиссии? - Nutzap не удался - В заметке нет публичного ключа получателя - Nutzap\'ы публичны и раскроют эту приватную заметку. Используйте вместо этого Lightning зап. - Не удаётся создать ссылку на событие - Ожидание оплаты инвойса… - Проверка mint\'а… - Медленно - Нормально - Быстро - ~1 ч - ~30 мин - ~10 мин - - Отправить %1$s sats, %2$d получателю - Отправить %1$s sats, %2$d получателям - Отправить %1$s sats, %2$d получателям - Отправить %1$s sats, %2$d получателям - - - Использовать разделение этой заметки на %1$d часть - Использовать разделение этой заметки на %1$d части - Использовать разделение этой заметки на %1$d частей - Использовать разделение этой заметки на %1$d частей - - - Разделение между %1$d получателем - Разделение между %1$d получателями - Разделение между %1$d получателями - Разделение между %1$d получателями - - - Пропуск %1$d получателя с только Lightning-адресом — onchain требует публичный ключ Nostr для получения адреса. - Пропуск %1$d получателей с только Lightning-адресом — onchain требует публичный ключ Nostr для получения адреса. - Пропуск %1$d получателей с только Lightning-адресом — onchain требует публичный ключ Nostr для получения адреса. - Пропуск %1$d получателей с только Lightning-адресом — onchain требует публичный ключ Nostr для получения адреса. - - загрузка баланса - построение транзакции - подпись - трансляция - публикация квитанции - Блокчейн-бэкенд Bitcoin не настроен - Не удалось загрузить баланс Bitcoin - Не удалось построить транзакцию - Доля получателя ниже минимального порога (dust) - Не удалось подписать транзакцию - Не удалось транслировать транзакцию - Платёж отправлен, но квитанция о запе не может быть опубликована - - Платёж отправлен (%1$d из %2$d квитанции опубликовано), но следующая квитанция не может быть опубликована - Платёж отправлен (%1$d из %2$d квитанций опубликовано), но следующая квитанция не может быть опубликована - Платёж отправлен (%1$d из %2$d квитанций опубликовано), но следующая квитанция не может быть опубликована - Платёж отправлен (%1$d из %2$d квитанций опубликовано), но следующая квитанция не может быть опубликована - - Импортировать подписки - Новый товар - Новая статья - Новое событие календаря - Редактировать событие календаря - Новый календарь - Редактировать календарь - Лента - Месяц - Неделя - День - - %1$s, %2$d событие - %1$s, %2$d события - %1$s, %2$d событий - %1$s, %2$d событий - - Происходит сейчас - %1$s · заканчивается %2$s - Поделиться событием календаря - Напоминания календаря - Уведомление перед началом события, на которое вы записались. - Событие календаря - - Начнётся через %1$d минуту - Начнётся через %1$d минуты - Начнётся через %1$d минут - Начнётся через %1$d минуты - - Ошибка загрузки изображения - Не удалось загрузить выбранное изображение. Попробуйте ещё раз или вставьте URL. - Напоминания календаря - Отправлять напоминания - Уведомление приходит перед началом события, на которое вы записались. - - %1$d мин - %1$d мин - %1$d мин - %1$d мин - - Открыть на карте - Открыть ссылку - Открыть все реакции на эту запись - Закрыть все реакции на эту запись - Нижняя панель навигации Перетащите для изменения порядка. Включите или отключите, чтобы добавить или убрать элемент из нижней панели. При нулевом количестве элементов нижняя панель скрывается. Изменить порядок Выберите вкладки для главного экрана. Если активна только одна вкладка, панель вкладок скрывается. - Всё - Интерфейс профиля Выберите разделы и ленты, отображаемые на экранах профилей пользователей. По умолчанию все параметры включены. - Значки профиля - Рекомендации приложений - Лента полученных Zap - Лента подписчиков - Панель реакций - Кнопки видеоплеера - Визуализатор звука - Дата истечения - Неверный адрес - Amethyst получил URI для открытия, но этот URI недействителен: %1$s - Поисковые Relays - Хорошие варианты:\n%1$s - Настройки Relay - Публичные Outbox/Home Relays - Пользователь публикует контент на этих relay - Этот тип relay хранит весь ваш контент. Amethyst будет отправлять ваши публикации сюда, а другие будут использовать эти relay для поиска вашего контента. Укажите от 1 до 3 relay. Это могут быть личные, платные или публичные relay. - Публичные Inbox Relays - Пользователь получает уведомления на этих relay - Этот тип relay получает все ответы, комментарии, лайки и zap к вашим публикациям. Они могут быть платными или бесплатными. Ограничения, установленные оператором relay, могут влиять на получаемые уведомления как положительно, так и отрицательно. Например, если вас атакуют спам-комментариями, платные relay могут отфильтровать спам. Укажите от 1 до 3 relay. - Пользователь получает DM на этих relay - Укажите от 1 до 3 relay для использования в качестве личного почтового ящика. Другие будут использовать эти relay для отправки вам DM. DM Inbox relay должны принимать любые сообщения от кого угодно, но разрешать скачивание только вам. Хорошие варианты:\n - inbox.nostr.wine (платно)\n - auth.nostr1.com (бесплатно)\n - you.nostr1.com (личные relay — платно) - Relay, на которых публикуются ваши MLS KeyPackage (MIP-00). Другие пользователи загружают эти KeyPackage, чтобы пригласить вас в групповые чаты Marmot. Укажите от 1 до 3 relay, принимающих события KeyPackage от вас и допускающих публичное чтение. - Приватные Home Relays - Укажите от 1 до 3 relay для хранения событий, недоступных никому другому, например ваших черновиков и/или настроек приложения. В идеале эти relay являются либо локальными, либо требуют аутентификации перед загрузкой контента каждого пользователя. - Подключённые Relays - Текущий список используемых relay - Поисковые Relays - Список relay для поиска контента или пользователей. Упоминание и поиск не будут работать при отсутствии доступных вариантов. Убедитесь, что они реализуют NIP-50. - Локальные Relays - Список relay, работающих на этом устройстве. - Пересылать профили на локальный relay - Отправлять все полученные события профиля (kind 0) на ваш локальный relay - Доверенные Relays - Relay, которым вы доверяете настолько, что Tor-соединение не требуется - Избранные ленты Relay - Relay, которые вы часто посещаете для просмотра их глобальной ленты - Агрегирующие relay-серверы, которые приложение использует для загрузки ваших лент, например filter.nostr.wine. Это заменяет модель outbox и позволит приложению подключаться только к relay-серверам из ваших списков. - Relay-серверы для трансляции - Relay-серверы, специализирующиеся на рассылке ваших заметок на все остальные relay-серверы, например sendit.nosflare.com. Amethyst будет добавлять этот relay ко всем новым событиям, созданным вами. - Relay-серверы-индексаторы - Relay-серверы, специализирующиеся на хранении метаданных и списков relay-серверов всех пользователей, например purplepag.es. Amethyst будет использовать эти relay для поиска пользователей, которых нет в ваших списках. - Заблокированные relay-серверы - Amethyst никогда не будет подключаться к этим relay-серверам. - Экспортировать настройки relay Веб: Обзор О репозитории Ссылки Сопровождающие Темы - Доказательство временно́й метки - Есть доказательство того, что эта публикация была подписана до %1$s. Доказательство зафиксировано в блокчейне Bitcoin в указанную дату и время. - Редактировать пост - Нельзя ответить на черновую заметку - Нельзя процитировать черновую заметку - Нельзя отреагировать на черновую заметку - Нельзя отправить zap на черновую заметку - Черновая заметка - Неверный запрос — сервер не может или не хочет обработать запрос. - Не авторизован — у пользователя нет действительных учётных данных для аутентификации. - Требуется оплата — сервер требует оплаты для выполнения запроса. - Запрещено — у пользователя нет прав доступа для выполнения запроса. - Не найдено — сервер не может найти запрошенный адрес. - Метод не разрешён — сервер поддерживает метод запроса, но не для целевого ресурса. - Неприемлемо — сервер не находит содержимого, удовлетворяющего запросу. - Требуется аутентификация прокси — у пользователя нет действительных учётных данных для аутентификации. - Тайм-аут запроса — сервер завершил ожидание ответа от другой стороны. - Конфликт — сервер не может выполнить запрос из-за конфликта с ресурсом. - Удалено — запрошенный контент был безвозвратно удалён с сервера и не будет восстановлен. - Требуется длина — сервер отклоняет запрос, поскольку требует указания длины содержимого. - Предусловие не выполнено — сервер не может выполнить предусловия, указанные в полях заголовка запроса. - Слишком большая нагрузка — запрос превышает установленные ограничения сервера, и сервер отказывается его обрабатывать. - URI слишком длинный — URL, запрошенный клиентом, слишком длинный для обработки сервером. - Неподдерживаемый тип медиа — запрос использует формат медиа, который сервер не поддерживает. - Диапазон не удовлетворён — сервер не может выполнить значение, указанное в поле заголовка Range запроса. - Ожидание не выполнено — сервер не может выполнить требования, указанные в поле заголовка Expect запроса. - Требуется обновление — сервер отказывается обрабатывать запрос с использованием текущего протокола, если клиент не перейдёт на другой протокол. - Внутренняя ошибка сервера — сервер столкнулся с непредвиденной ошибкой и не может выполнить запрос. - Не реализовано — сервер не может выполнить запрос или не распознаёт метод запроса. - Плохой шлюз — сервер выступает в роли шлюза и получил недопустимый ответ от хоста. - Сервис недоступен — это часто происходит, когда сервер перегружен или находится на техническом обслуживании. - Тайм-аут шлюза — сервер выступал в роли шлюза или прокси и превысил время ожидания ответа. - Версия HTTP не поддерживается — сервер не поддерживает версию HTTP, указанную в запросе. - Вариант также проводит переговоры — сервер имеет внутреннюю ошибку конфигурации. - Недостаточно места для хранения — у сервера недостаточно места для успешной обработки запроса. - Обнаружена петля — сервер обнаружил бесконечный цикл при обработке запроса. - Требуется сетевая аутентификация — клиент должен пройти аутентификацию для доступа к сети. Серверы Blossom Добавьте столько серверов, сколько хотите. Вы сможете выбрать нужный при загрузке изображения. - Добавить NIP-96 сервер - Добавить Blossom сервер Скачать - Не удалось открыть файл - Нет установленных torrent-приложений для открытия и скачивания файла. - В событии недостаточно информации для создания magnet-ссылки. - Мои списки - Ленты - Хэштеги - Наборы интересов - Местоположения - Сообщества - Списки - Алгоритмы лент - Все избранные алгоритмы лент - Relay-серверы - Избранные алгоритмы лент - Личное сообщение - Публичное сообщение - Не удалось поделиться изображением, попробуйте позже… - Не удалось поделиться видео, попробуйте позже… - Загрузка видео… - Не переводить с - Языки, указанные здесь, не будут переводиться. Выберите язык, чтобы убрать его из списка и снова включить перевод. - Перевести на - Выберите язык, на который переводить контент. - Настройки отображения языка - Для каждой переведённой языковой пары выберите, какой язык показывать первым. - Пауза - Воспроизвести - Это сообщение исчезнет через %1$s - Метаданные списка подписок - Метаданные списков подписок могут видеть все пользователи Nostr. Только приватные участники зашифрованы. - Метаданные пакета подписок - Метаданные пакета подписок видны всем пользователям Nostr и часто публикуются на многих сайтах как стартовые наборы для новых пользователей. - Редактировать пакет подписок - Развернуть - Повторить - Реакция - Голосовая публикация - Голосовой ответ - Исходящие relay - Приложения - Рекомендации приложений - Настройки пользователя - Аудио-заголовок - Аудиодорожка - Музыкальный трек - Музыкальный плейлист - Эпизод подкаста - Подкаст-шоу - Авторские подкасты - Избранные подкасты - Выданные значки - Определения значков - Принятый набор значков - Значки профиля - Заблокированные relay - Серверы Blossom - Серверы Nests - Вещательные relay - Список закладок - Старый список закладок - Дневная запись - Календарь - Запись - Подтверждение записи - Шахматные партии - Избранные relay - Шахматные вызовы - Принятие шахматной партии - Шахматный ход - Завершение шахматной партии - Предложение ничьей - Определение канала - Скрытое сообщение канала - Список каналов - Сообщение канала - Метаданные канала - Отключение пользователя в канале - Файл в ЛС - Сообщение в ЛС - Relay для ЛС - Объявления - Комментарии - Определение сообщества - Список сообществ - Пост сообщества - Список подписок - Удаления - Черновики - Наборы эмодзи - Список наборов эмодзи - Эфемерный чат - Эфемерные чат-комнаты - Заголовки файлов - Галерея профиля - Файловые серверы - Данные Blob - Заголовки Blob - Медицинские данные - Наборы подписок - Репосты (16) - Подписки по геохешу - Цели Zap - Подписки по хештегу - Выделения - Список индексных relay - Пролог приключения - Сцена приключения - Чтение приключения - Именованные закладки - Живые чаты - Прямые трансляции - Приватные Zaps - Блоги - Комната встречи - Присутствие в комнате - Пространство встречи - Профиль - Список отключённых - Списки пользователей - Картинки - Тренировки - Закреплённые - Опрос - Ответ на опрос - Приватные relay - Прокси-relay - Публичное сообщение - Реакции - Контактная карточка - Обнаружение relay - Объявление монитора relay - Набор relay - Жалобы - Репосты - Удаление пользователя - Печати - Поисковые relay - Статус пользователя - Заметки - Правки - Торренты - Комментарии к торрентам - Доверенные relay - Доверенные провайдеры - Видео (Repl) - Видео - Голосовое сообщение - Голосовой ответ - Веб-закладка - %1$d%% времени работы - Настройки Namecoin - %dмс - Синхронизация relay - события от вас - события для вас - события в поиске - профили - списки исходящих - Последний раз %1$s назад - Последний раз %1$s (%2$s назад) - Только что был(а) в сети - Никогда не посещал(а) - - %1$d минута - %1$d минуты - %1$d минут - %1$d минуты - - - %1$d час - %1$d часа - %1$d часов - %1$d часа - - - %1$d день - %1$d дня - %1$d дней - %1$d дня - - - %1$d неделя - %1$d недели - %1$d недель - %1$d недели - - - %1$d месяц - %1$d месяца - %1$d месяцев - %1$d месяца - - - %1$d год - %1$d года - %1$d лет - %1$d года - - - %1$d ожидающий счёт - %1$d ожидающих счёта - %1$d ожидающих счетов - %1$d ожидающих счёта - - - Средства хранятся в %1$d mint, который вы не используете - Средства хранятся в %1$d mint, которые вы не используете - Средства хранятся в %1$d mint, которые вы не используете - Средства хранятся в %1$d mint, которые вы не используете - - Перемещено %1$s sat в %2$s. - Трансляция на устройство - Остановить трансляцию - Загрузка HLS - Загрузка %1$s (%2$d из %3$d) - Аттестация - Запрос аттестации - Рекомендация аттестора - Квалификация аттестора - Веб-закладки - Добавить веб-закладку - Редактировать веб-закладку - %1$s собрано из %2$s sat - Новая цель - Запрос на удаление - Запрос на удаление отправлен - История запросов на удаление - Пользователи - События - Виды - IP-адреса - Настройки - Предлагать улучшения текста - Использует модель ИИ на устройстве для предложения исправлений текста и изменения тональности. - Отслеживаемые трансляции - Использует отслеживаемый режим при отправке событий. Показывает прогресс в реальном времени и статус по каждому relay. - Предлагать публикации тренировок - Читает завершённые тренировки из Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) и предлагает поделиться ими в виде публикации. Разрешение запрашивается только при подключении. - Настройки редактора - Автоматически создавать черновики - Автоматически сохраняет черновик при вводе текста или выходе из редактора с неотправленным текстом и отправляет в ваши приватные outbox relay. - Новый набор эмодзи - Изменить набор эмодзи - Мои наборы эмодзи - Эмодзи - Публичные эмодзи видны всем и отображаются в вашем меню реакций и автодополнении «:», когда этот набор добавлен в ваш список. - Приватные эмодзи хранятся в зашифрованном виде на relay и видны только вам. Они отображаются в вашем меню реакций и автодополнении «:» так же, как и публичные. - Черновик занимает %1$d байт; в этом сообществе для данного kind установлено ограничение %2$d байт. - Черновик занимает %1$d байт; в этом сообществе установлено ограничение %2$d байт для событий. - Сегодня вы уже опубликовали %1$d событий этого kind (лимит: %2$d). - Сайт Nowhere - Событие Nowhere - Сбор средств Nowhere - Магазин Nowhere - Петиция Nowhere - Сообщение Nowhere - Дроп Nowhere - Арт Nowhere - Форум Nowhere - - %1$d сообщ. - %1$d сообщ. - %1$d сообщ. - %1$d сообщ. - - - %1$d участник - %1$d участника - %1$d участников - %1$d участника - - Информация о группе обновлена - Не удалось обновить: %1$s - Не удалось создать группу: %1$s - Не удалось покинуть группу: %1$s - Добавление %1$s… - Не удалось добавить %1$s: %2$s - неизвестная ошибка - Участник удалён - Не удалось удалить участника: %1$s - Права администратора выданы - Не удалось выдать права администратора: %1$s - Права администратора отозваны - Не удалось отозвать права администратора: %1$s - Не является участником этой группы Lightning-сервис получателя по адресу %1$s недоступен. Он был вычислен из Lightning-адреса \"%2$s\". Ошибка: %3$s. Проверьте, работает ли сервер и правильно ли указан Lightning-адрес Не удалось разрешить %1$s. Проверьте подключение к сети, работоспособность сервера и правильность Lightning-адреса %2$s.\n\nИсключение: %3$s Ошибка разбора JSON при получении счёта от %1$s. Проверьте настройки Lightning пользователя diff --git a/amethyst/src/main/res/values-ru/strings.xml b/amethyst/src/main/res/values-ru/strings.xml index a6d4735721..1f81601150 100644 --- a/amethyst/src/main/res/values-ru/strings.xml +++ b/amethyst/src/main/res/values-ru/strings.xml @@ -1,158 +1,9 @@ - Спам - Выдача себя за другое лицо - Незаконные действия - Запросить удаление - Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы ответить - Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы продвигать записи - Вы используете публичный ключ, они - только для чтения. Войдите с приватным ключом, чтобы лайкать посты - Не настроены запы. Нажмите и удерживайте для настройки - Войдите с приватным ключом чтобы запать - Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы иметь возможность подписаться - Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы иметь возможность отписаться - Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы иметь возможность скрыть слово или предложение - Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы иметь возможность показать слово или предложение - Запы - Продвинуть - Добавить - Ошибка при анализе сообщения об ошибке - Профиль - Фильтры безопасности - Оплатить - "Предпросмотр для %1$s" - Описание - Что нового? - Отправить Сохранить - Создать - Отменить - Ошибки - Фото сохранено в галерею - Не удалось сохранить фото - Пользователь не установил Lightning адрес для получения чаевых - "ответить.. " - Известные - Новые запросы - Заблокированные пользователи - Новые треды - Обсуждения - Больше опций - Подписаться - Подписаться в ответ - Скрыть пароль - Некорректный ключ - Нужно ввести ключ - Выйти - Отписаться - Публичный чат - Удалить - никогда - сейчас - ч - м - д - Нагота - Брань / Оскорбления - Резервное копирование - Приватный ключ (nsec) скопирован - Скопировать мой приватный ключ - Ошибка входа - Биометрия не смогла подтвердить личность владельца этого телефона - Биометрия не смогла подтвердить личность владельца этого телефона. Ошибка: %1$s - Копировать текст - ID (npub) автора скопирован - ID записи (note1) скопирован - "<Не удалось расшифровать сообщение!>\n\nВас упомянули в приватном/зашифрованном чате между %1$s и %2$s." - Аккаунты - Назад - Поделиться ссылкой - Поделиться - ID записи - Удалить - - Блокировать - Закладки - Добавить в Публичные закладки - Убрать из Публичных закладок - Вариант %s - Невозможно проголосовать - Опрос закрыт - В этом опросе можно голосовать только один раз - Автор опроса не может голосовать - Что это значит? - Фото не изменилось после публикации - Фото изменено. Автор мог не заметить изменение - Добавить фото - Добавить видео - Добавить документ - Сервер для загрузки - Все подписки - Глобально - Порт Orbot Socks - Личные сообщения - Уведомления о входящих сообщениях - Запы - Уведомления о полученных запах - %1$s sat - От %1$s - за %1$s - Уведомление: - Сегодня - Рынок - Чаты - Чувствительный контент - Добавляет предупреждение о чувствительном содержимом перед показом - Настройки - Всегда - Никогда - Как в системе - Светлая - Тёмная - Тема - Просмотр изображения - Проигрывание видео - Просмотр URL - Иммерсивная прокрутка - Скрыть панели навигации при прокрутке - Спамеры Публичный Приватный - Заголовок - Тёмная, светлая или системная тема - Автоматически загружать изображения и GIF - Автоматически воспроизводить видео и GIF - Копировать в буфер обмена - Скрытые слова - Картинка профилей - Показывать картинки профилей - Одежда - Аксессуары - Электроника - Мебель - Коллекции - Книги - Питомцы - Спорт - Фитнес - Искусство - Ремесло - Дом - Офис - Еда - Разное - Другое - - - - Пополнить & отправить зап - - Отправить зап - - - - Пополнить %1$s sats на %2$s и запнуть %3$s %4$s sats · комиссия ≈ %5$s sats @@ -167,13 +18,18 @@ - Добавить медиа - Медиасерверы + + + + + + + Задайте предпочтительные серверы для загрузки медиафайлов. @@ -189,20 +45,15 @@ - Получатели платежей - Добавьте платёжные адреса для различных сетей (например, bitcoin, lightning, ethereum). - Не найдено приложение для обработки этого платежа. Пожалуйста, установите совместимый кошелёк. - Не найдено приложение для обработки платежей %1$s. Пожалуйста, установите совместимый кошелёк. - Не удалось открыть платёж @@ -211,21 +62,14 @@ - Настройки конфиденциальности - Все подписки пользователя - Список подписок по умолчанию - Вокруг меня - Подборка - Мои - Список игнора @@ -240,9 +84,7 @@ - Новый список подписок - Новый пакет подписок @@ -256,188 +98,69 @@ - Редактировать список - Порт по умолчанию: 9050 - Встроенный движок Tor - Использовать встроенную версию или Orbot - Пресеты Tor/конфиденциальности - Быстро изменить все настройки ниже - Onion-адреса/relay - Использовать Tor для любых .onion-адресов - DM relay - Принудительно использовать Tor для отправки и получения личных сообщений - Ненадёжные relay - Принудительно использовать Tor для исходящих/входящих relay - Доверенные relay - Принудительно использовать Tor для всех relay из ваших списков - Фотографии профилей - Принудительно использовать Tor при загрузке фотографий профилей - Превью URL - Принудительно использовать Tor при загрузке превью ссылок - Изображения - Принудительно использовать Tor при загрузке изображений - Видео - Принудительно использовать Tor при загрузке видео - Принудительно использовать Tor для запов, Lightning и переводов cashu - Верификация Nostr-адреса - Принудительно использовать Tor при верификации NIP-05 адресов - Загрузка медиа - Принудительно использовать Tor при загрузке контента - Встроенный - Orbot - Выкл - Базовый - По умолчанию - Всё кроме медиа - Полная конфиденциальность - Настраиваемый - Использовать Tor только когда это требуется сервером - Скрыть ваш IP от случайных relay - Скрыть ваш IP от всего, кроме изображений и видео - Скрыть ваш IP во всех соединениях - Настройте по своему усмотрению - Ответить - Отметить прочитанным - Новые сообщения - Новые запы - Реакции - Уведомляет вас, когда кто-то реагирует на ваш пост - %1$s отреагировал(а) на ваш пост - на %1$s - Новые реакции - Шахматы - Уведомляет вас о событиях шахматной партии - %1$s принял(а) ваш вызов на шахматную партию - %1$s сделал(а) ход — ваш ход - Обновления шахмат - Ответы - Уведомляет вас, когда кто-то отвечает на ваш пост %1$s ответил(а) на: %1$s - Новые ответы - - Упоминания - - Уведомляет вас, когда кто-то упоминает или цитирует вас в посте - - %1$s упомянул(а) вас - - Новые упоминания - - Входящие звонки - - Уведомления о входящих голосовых и видеозвонках - - Входящий звонок - - Входящий голосовой звонок… - - Входящий видеозвонок… - - - - - Звонок с %1$s - - Звонки - - Уведомление о текущем звонке - - Завершить - - Принять - - Отклонить - - - Выключить микрофон - - Включить микрофон - - Камера включена - - Камера выключена - - - Громкоговоритель - - Динамик - - Bluetooth - - - - - - - Amethyst требует доступ к микрофону для совершения голосового звонка. Пожалуйста, включите его в настройках приложения. - - Amethyst требует доступ к камере и микрофону для совершения видеозвонка. Пожалуйста, включите их в настройках приложения. - - - - Настройки звонков @@ -453,37 +176,55 @@ - Поддерживает активные подключения к входящим relay для уведомлений в реальном времени - Уведомления Amethyst активны - - Подключено к %1$d входящему relay - Подключено к %1$d входящим relay - Подключено к %1$d входящим relay - Подключено к %1$d входящих relay - - - Подключено к %1$d relay - Подключено к %1$d relay - Подключено к %1$d relay - Подключено к %1$d relay - - Подключение к входящим relay… + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Постоянный сервис уведомлений Поддерживает постоянное соединение с вашими inbox-relay для мгновенной доставки уведомлений. Отображает постоянное уведомление. Расходует больше заряда батареи, но гарантирует, что вы не пропустите ни одного сообщения. - Разделить уведомления по подпискам - Показывать две вкладки уведомлений — «Подписки» (люди, на которых вы подписаны) и «Все». Индикатор непрочитанных светится только для активности от людей, на которых вы подписаны. - Показывать сообщения - Включить личные и групповые сообщения во вкладку «Уведомления». Отключите, чтобы сообщения отображались только во вкладке «Сообщения». @@ -493,23 +234,14 @@ - Скрыть - Показать - Предупреждать - Фильтр спама - Скрывает публикации от незнакомцев, которые встречались 5 или более раз с одинаковым содержимым - Добавлять клиентский тег к моим событиям - При включении Amethyst добавляет NIP-89 клиентский тег к публикуемым вами событиям. - Предупреждать о жалобах - Показывает предупреждение, если на публикацию или профиль пожаловались люди из ваших подписок @@ -517,35 +249,23 @@ - Скрывать публикации, нарушающие правила сообщества - Удаляет публикации из лент сообщества, если сообщество опубликовало документ с правилами NIP-9B и событие им не соответствует. Не применяется, если у сообщества нет структурированных правил. - Настройки фильтрации - Заблокированный контент - Вы ещё не заблокировали ни одного пользователя. - В этой сессии ни один аккаунт не был помечен как спам. - Скрытых слов нет. Добавьте слово ниже, чтобы скрывать публикации с ним. - Типы реакций для этого пользователя не выбраны. Удерживайте кнопку сердечка, чтобы изменить - Чтение из relay - Запись в relay - Объём данных в байтах, отправленных на этот relay, включая фильтры и события - Объём данных в байтах, полученных от этого relay, включая фильтры и события @@ -566,12 +286,9 @@ - Политика конфиденциальности - Стандарты безопасности детей - О приложении & правовые сведения @@ -615,12 +332,10 @@ - Cashu-токен - Lightning-адрес не задан @@ -630,78 +345,47 @@ - Relay - Пакеты подписок - Чтение - Алгоритмы ленты - Прямые трансляции - Сообщества - Настройки интерфейса Настройки приложения - Переводы - Реакции - Настройки аккаунта - Настройки приложения - Опасная зона - Сбросить состояние Marmot - Состояние Marmot сброшено. - Не удалось сбросить состояние Marmot: %1$s - Безлимитный Wi-Fi - Полный - Упрощённый - Производительный - Классический - Современный - Wallet Connect - Автовоспроизведение видео - Режим интерфейса - Выберите стиль публикаций - Стиль галереи профиля - Выберите стиль галереи - Без звука. Нажмите для включения - Звук включён. Нажмите для отключения - Перемотать назад на %d сек. - Перемотать вперёд на %d сек. @@ -711,58 +395,35 @@ - Публикация только для местоположения - Её увидят только подписчики этого местоположения. Ваши обычные подписчики не увидят её. - - %1$d трек - %1$d трека - %1$d треков - %1$d трека - - - +%1$d трек ещё - +%1$d трека ещё - +%1$d треков ещё - +%1$d трека ещё - - Загрузить обложку - Выберите квадратное изображение в качестве обложки для этого трека. - Загрузить аудиофайл - Выберите файл MP3, WAV или FLAC. Он будет загружен на ваш медиасервер при сохранении. - Загрузка обложки и аудио, публикация. Процесс продолжится, даже если вы покинете экран. - Редактировать плейлист - Загрузить обложку - Выберите квадратное изображение в качестве обложки для этого плейлиста. - Загрузка обложки и публикация. Процесс продолжится, даже если вы покинете экран. @@ -778,35 +439,19 @@ - Невозможно загрузить - - Сначала укажите получателя сообщения - Кошелёк не найден - - Amethyst не нашёл ни одного приложения кошелька с поддержкой Nostr Wallet Connect (NWC). -\n\nЧто можно сделать: -\n\t1. Проверьте поддержку NWC: убедитесь, что ваш кошелёк совместим с Nostr Wallet Connect. -\n\t2. Создайте подключение: откройте приложение кошелька и создайте новое NWC-подключение. -\n\t3. Привяжите к Amethyst: обычно кошелёк предлагает три варианта: -\n\t\t3.1 Автоматическая привязка: кнопка для автоматического открытия и подключения к Amethyst. Нажмите её, откройте Amethyst и сохраните новый экран. -\n\t\t3.2 Ручная привязка: URI подключения, который можно скопировать и вставить с помощью значка вставки на этом экране. -\n\t\t3.3 QR-код: кошелёк создаёт QR-код, который можно считать кнопкой QR-кода на этом экране. - - - Автоматически воспроизводить видео при появлении на экране - - Показывать предварительный просмотр ссылок - - - Скопировано в буфер обмена - Поделиться или сохранить + + + + + + Отправить как DM @@ -815,16 +460,13 @@ - Медиа добавлено - Медиа добавлено в галерею вашего профиля - Не удалось отправить зап @@ -833,85 +475,49 @@ - Отсутствует настройка Lightning - У пользователя %1$s не настроен Lightning-адрес для получения sats - Ошибка открытия приложения подписи - Приложение подписи не найдено. Проверьте, не было ли оно удалено - Не удаётся воспроизвести видео - Кодек или формат не поддерживается на этом устройстве (%1$s). Попробуйте открыть в браузере. - Открыть в браузере - Запрос на подпись отклонён - Убедитесь, что приложение подписи авторизовало эту транзакцию - Не найдено кошельков для оплаты Lightning-счёта (Ошибка: %1$s). Установите Lightning-кошелёк для использования зап - Не найдено кошельков для оплаты Lightning-счёта. Установите Lightning-кошелёк для использования зап - Не удаётся открыть Blossom-ссылки - Blossom-приложения не найдены. Установите локальное Blossom-приложение для просмотра этого файла - Заглушённые ветки - Нет заглушённых веток - Не удалось оплатить счёт - Не удалось выполнить вывод - Не удалось погасить Cashu - Mint вернул следующее сообщение об ошибке: %1$s - Cashu получен - %1$s sats отправлено в ваш кошелёк. (Комиссия: %2$s sats) - На устройстве не найден совместимый Cashu-кошелёк - Не удалось получить счёт с серверов получателя - Ваш провайдер wallet connect вернул следующую ошибку: %1$s - Не удалось собрать LNUrl из Lightning Address «%1$s». Проверьте настройки пользователя - Не удалось получить счёт от %1$s: %2$s - Ошибка разбора JSON от %1$s. Проверьте настройки Lightning пользователя - URL обратного вызова не найден в ответе %1$s - Неверная сумма счёта (%1$s sats) от %2$s. Должно быть %3$s - Не удалось создать Lightning-счёт перед отправкой зап. Lightning-кошелёк получателя вернул следующую ошибку: %1$s - Пользователь только для чтения - Реакции не настроены - Уведомления - Доставка - Отображение в приложении - Категории @@ -922,10 +528,8 @@ - Сообщение от %1$s - Привет, %1$s, это ещё в наличии? @@ -943,31 +547,18 @@ - Не удалось загрузить медиа - Не удалось открыть сжатый файл - Ошибка загрузки: %1$s - Сервер не предоставил URL после загрузки - Не удалось скачать загруженные медиа с сервера - Не удалось проверить загруженный файл после выгрузки: %1$s - Не удалось загрузить на %1$s: %2$s - Не удалось удалить: %1$s - Медиафайл слишком большой для NIP-95 - Шифровать файлы - Шифровать файлы перед загрузкой для защиты конфиденциальности. Некоторые серверы могут не принимать зашифрованные файлы на бесплатных аккаунтах. - Зашифрованная загрузка не удалась - Многие серверы не принимают зашифрованные файлы на бесплатных аккаунтах. Вы можете повторить попытку без шифрования. @@ -977,46 +568,28 @@ - Использовать кодек H.265/HEVC - Лучшее качество при меньшем размере файла, но не все устройства поддерживают воспроизведение H.265. - Конвертировать GIF в MP4 - Конвертирует анимированный GIF в видео MP4 для уменьшения размера файла и лучшей совместимости воспроизведения. - Удалить личные метаданные - Пытается удалить личные метаданные из поддерживаемых медиафайлов перед загрузкой - Не удалось удалить метаданные - Не удалось удалить личные метаданные из медиа. Загрузка отменена. - Загрузка отменена - Не удалось удалить метаданные из AVIF: %1$s - Главная - Обзор - Сообщения - Уведомления - Календари - Списки календарей - Шахматы - Кошелёк @@ -1054,7 +627,6 @@ - Cashu-кошелёк (NIP-60) @@ -1076,29 +648,14 @@ Приватный ключ P2PK (hex) - Изменить mint\'ы Сохранить изменения - - +%1$d ещё - +%1$d ещё - +%1$d ещё - +%1$d ещё - - - Рекомендовано %1$d пользователем - Рекомендовано %1$d пользователями - Рекомендовано %1$d пользователями - Рекомендовано %1$d пользователями - - Популярные mint\'ы - Подходящие mint\'ы @@ -1112,9 +669,7 @@ - Получено - Отправлено @@ -1124,14 +679,12 @@ - Опубликовать запрос на удаление вашей рекомендации kind:38000 для %1$s. Relay\'и, соблюдающие NIP-09, удалят её. - Восстановлено %1$s sats в %2$s доказательствах. @@ -1155,28 +708,21 @@ - Оплатить %1$s sat + до %2$s sat комиссии? - Nutzap не удался - В заметке нет публичного ключа получателя - Nutzap\'ы публичны и раскроют эту приватную заметку. Используйте вместо этого Lightning зап. - Не удаётся создать ссылку на событие - Ожидание оплаты инвойса… - Проверка mint\'а… @@ -1212,50 +758,19 @@ - Медленно - Нормально - Быстро - ~1 ч - ~30 мин - ~10 мин - %1$s · %2$s sat/vB · %3$s - - Отправить %1$s sats, %2$d получателю - Отправить %1$s sats, %2$d получателям - Отправить %1$s sats, %2$d получателям - Отправить %1$s sats, %2$d получателям - - - Использовать разделение этой заметки на %1$d часть - Использовать разделение этой заметки на %1$d части - Использовать разделение этой заметки на %1$d частей - Использовать разделение этой заметки на %1$d частей - - - Разделение между %1$d получателем - Разделение между %1$d получателями - Разделение между %1$d получателями - Разделение между %1$d получателями - - - Пропуск %1$d получателя с только Lightning-адресом — onchain требует публичный ключ Nostr для получения адреса. - Пропуск %1$d получателей с только Lightning-адресом — onchain требует публичный ключ Nostr для получения адреса. - Пропуск %1$d получателей с только Lightning-адресом — onchain требует публичный ключ Nostr для получения адреса. - Пропуск %1$d получателей с только Lightning-адресом — onchain требует публичный ключ Nostr для получения адреса. - @@ -1267,66 +782,37 @@ - загрузка баланса - построение транзакции - подпись - трансляция - публикация квитанции - Блокчейн-бэкенд Bitcoin не настроен - Не удалось загрузить баланс Bitcoin - Не удалось построить транзакцию - Доля получателя ниже минимального порога (dust) - Не удалось подписать транзакцию - Не удалось транслировать транзакцию - Платёж отправлен, но квитанция о запе не может быть опубликована - - Платёж отправлен (%1$d из %2$d квитанции опубликовано), но следующая квитанция не может быть опубликована - Платёж отправлен (%1$d из %2$d квитанций опубликовано), но следующая квитанция не может быть опубликована - Платёж отправлен (%1$d из %2$d квитанций опубликовано), но следующая квитанция не может быть опубликована - Платёж отправлен (%1$d из %2$d квитанций опубликовано), но следующая квитанция не может быть опубликована - - Импортировать подписки - Новый товар - Новая статья - Новое событие календаря - Редактировать событие календаря - Новый календарь - Редактировать календарь - Лента - Месяц - Неделя - День @@ -1360,12 +846,6 @@ - - %1$s, %2$d событие - %1$s, %2$d события - %1$s, %2$d событий - %1$s, %2$d событий - @@ -1392,65 +872,6 @@ - Происходит сейчас - - %1$s · заканчивается %2$s - - Поделиться событием календаря - - - calendar_reminders - - Напоминания календаря - - Уведомление перед началом события, на которое вы записались. - - Событие календаря - - - Начнётся через %1$d минуту - Начнётся через %1$d минуты - Начнётся через %1$d минут - Начнётся через %1$d минуты - - - - - - - - - - Ошибка загрузки изображения - - Не удалось загрузить выбранное изображение. Попробуйте ещё раз или вставьте URL. - - - - - Напоминания календаря - - Отправлять напоминания - - Уведомление приходит перед началом события, на которое вы записались. - - - - - %1$d мин - %1$d мин - %1$d мин - %1$d мин - - - - - - - - Открыть на карте - - Открыть ссылку @@ -1466,20 +887,49 @@ - Открыть все реакции на эту запись - - Закрыть все реакции на эту запись - Zap - Нижняя панель навигации + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Перетащите для изменения порядка. Включите или отключите, чтобы добавить или убрать элемент из нижней панели. При нулевом количестве элементов нижняя панель скрывается. @@ -1490,21 +940,14 @@ Выберите вкладки для главного экрана. Если активна только одна вкладка, панель вкладок скрывается. - Всё - Интерфейс профиля Выберите разделы и ленты, отображаемые на экранах профилей пользователей. По умолчанию все параметры включены. - Значки профиля - Рекомендации приложений - Лента полученных Zap - Лента подписчиков - Панель реакций @@ -1522,7 +965,6 @@ - Кнопки видеоплеера @@ -1542,7 +984,6 @@ - Визуализатор звука @@ -1568,7 +1009,6 @@ - Дата истечения @@ -1576,11 +1016,8 @@ - Неверный адрес - Amethyst получил URI для открытия, но этот URI недействителен: %1$s - DM Inbox Relays @@ -1588,103 +1025,63 @@ - Поисковые Relays - Хорошие варианты:\n%1$s - Outbox Relays - Inbox Relays - Настройки Relay - Публичные Outbox/Home Relays - Пользователь публикует контент на этих relay - Этот тип relay хранит весь ваш контент. Amethyst будет отправлять ваши публикации сюда, а другие будут использовать эти relay для поиска вашего контента. Укажите от 1 до 3 relay. Это могут быть личные, платные или публичные relay. - Публичные Inbox Relays - Пользователь получает уведомления на этих relay - Этот тип relay получает все ответы, комментарии, лайки и zap к вашим публикациям. Они могут быть платными или бесплатными. Ограничения, установленные оператором relay, могут влиять на получаемые уведомления как положительно, так и отрицательно. Например, если вас атакуют спам-комментариями, платные relay могут отфильтровать спам. Укажите от 1 до 3 relay. - DM Inbox Relays - Пользователь получает DM на этих relay - Укажите от 1 до 3 relay для использования в качестве личного почтового ящика. Другие будут использовать эти relay для отправки вам DM. DM Inbox relay должны принимать любые сообщения от кого угодно, но разрешать скачивание только вам. Хорошие варианты:\n - inbox.nostr.wine (платно)\n - auth.nostr1.com (бесплатно)\n - you.nostr1.com (личные relay — платно) - KeyPackages - KeyPackage Relays - Relay, на которых публикуются ваши MLS KeyPackage (MIP-00). Другие пользователи загружают эти KeyPackage, чтобы пригласить вас в групповые чаты Marmot. Укажите от 1 до 3 relay, принимающих события KeyPackage от вас и допускающих публичное чтение. - Приватные Home Relays - Укажите от 1 до 3 relay для хранения событий, недоступных никому другому, например ваших черновиков и/или настроек приложения. В идеале эти relay являются либо локальными, либо требуют аутентификации перед загрузкой контента каждого пользователя. - Подключённые Relays - Текущий список используемых relay - Поисковые Relays - Список relay для поиска контента или пользователей. Упоминание и поиск не будут работать при отсутствии доступных вариантов. Убедитесь, что они реализуют NIP-50. - Локальные Relays - Список relay, работающих на этом устройстве. - Пересылать профили на локальный relay - Отправлять все полученные события профиля (kind 0) на ваш локальный relay - Доверенные Relays - Relay, которым вы доверяете настолько, что Tor-соединение не требуется - Избранные ленты Relay - Relay, которые вы часто посещаете для просмотра их глобальной ленты - Proxy Relays - Агрегирующие relay-серверы, которые приложение использует для загрузки ваших лент, например filter.nostr.wine. Это заменяет модель outbox и позволит приложению подключаться только к relay-серверам из ваших списков. - Relay-серверы для трансляции - - Relay-серверы, специализирующиеся на рассылке ваших заметок на все остальные relay-серверы, например sendit.nosflare.com. Amethyst будет добавлять этот relay ко всем новым событиям, созданным вами. - Relay-серверы-индексаторы - - Relay-серверы, специализирующиеся на хранении метаданных и списков relay-серверов всех пользователей, например purplepag.es. Amethyst будет использовать эти relay для поиска пользователей, которых нет в ваших списках. - Заблокированные relay-серверы - Amethyst никогда не будет подключаться к этим relay-серверам. - Экспортировать настройки relay + + @@ -1725,12 +1122,6 @@ - Доказательство временно́й метки - - Есть доказательство того, что эта публикация была подписана до %1$s. Доказательство зафиксировано в блокчейне Bitcoin в указанную дату и время. - - - Редактировать пост @@ -1741,15 +1132,6 @@ - Нельзя ответить на черновую заметку - - Нельзя процитировать черновую заметку - - Нельзя отреагировать на черновую заметку - - Нельзя отправить zap на черновую заметку - - Черновая заметка @@ -1757,107 +1139,69 @@ - Неверный запрос — сервер не может или не хочет обработать запрос. - Не авторизован — у пользователя нет действительных учётных данных для аутентификации. - Требуется оплата — сервер требует оплаты для выполнения запроса. - Запрещено — у пользователя нет прав доступа для выполнения запроса. - Не найдено — сервер не может найти запрошенный адрес. - Метод не разрешён — сервер поддерживает метод запроса, но не для целевого ресурса. - Неприемлемо — сервер не находит содержимого, удовлетворяющего запросу. - Требуется аутентификация прокси — у пользователя нет действительных учётных данных для аутентификации. - Тайм-аут запроса — сервер завершил ожидание ответа от другой стороны. - Конфликт — сервер не может выполнить запрос из-за конфликта с ресурсом. - Удалено — запрошенный контент был безвозвратно удалён с сервера и не будет восстановлен. - Требуется длина — сервер отклоняет запрос, поскольку требует указания длины содержимого. - Предусловие не выполнено — сервер не может выполнить предусловия, указанные в полях заголовка запроса. - Слишком большая нагрузка — запрос превышает установленные ограничения сервера, и сервер отказывается его обрабатывать. - URI слишком длинный — URL, запрошенный клиентом, слишком длинный для обработки сервером. - Неподдерживаемый тип медиа — запрос использует формат медиа, который сервер не поддерживает. - Диапазон не удовлетворён — сервер не может выполнить значение, указанное в поле заголовка Range запроса. - Ожидание не выполнено — сервер не может выполнить требования, указанные в поле заголовка Expect запроса. - Требуется обновление — сервер отказывается обрабатывать запрос с использованием текущего протокола, если клиент не перейдёт на другой протокол. - Внутренняя ошибка сервера — сервер столкнулся с непредвиденной ошибкой и не может выполнить запрос. - Не реализовано — сервер не может выполнить запрос или не распознаёт метод запроса. - Плохой шлюз — сервер выступает в роли шлюза и получил недопустимый ответ от хоста. - Сервис недоступен — это часто происходит, когда сервер перегружен или находится на техническом обслуживании. - Тайм-аут шлюза — сервер выступал в роли шлюза или прокси и превысил время ожидания ответа. - Версия HTTP не поддерживается — сервер не поддерживает версию HTTP, указанную в запросе. - Вариант также проводит переговоры — сервер имеет внутреннюю ошибку конфигурации. - Недостаточно места для хранения — у сервера недостаточно места для успешной обработки запроса. - Обнаружена петля — сервер обнаружил бесконечный цикл при обработке запроса. - Требуется сетевая аутентификация — клиент должен пройти аутентификацию для доступа к сети. + + + + + + + Серверы Blossom Добавьте столько серверов, сколько хотите. Вы сможете выбрать нужный при загрузке изображения. - Добавить NIP-96 сервер - Добавить Blossom сервер Скачать - Не удалось открыть файл - Нет установленных torrent-приложений для открытия и скачивания файла. - В событии недостаточно информации для создания magnet-ссылки. - Мои списки - Ленты - Хэштеги - Наборы интересов - Местоположения - Сообщества - Списки - Алгоритмы лент - Все избранные алгоритмы лент - Relay-серверы - Избранные алгоритмы лент @@ -1872,9 +1216,7 @@ - Личное сообщение - Публичное сообщение @@ -1896,7 +1238,6 @@ - Это сообщение исчезнет через %1$s @@ -1910,15 +1251,10 @@ - Метаданные списка подписок - Метаданные списков подписок могут видеть все пользователи Nostr. Только приватные участники зашифрованы. - Метаданные пакета подписок - Метаданные пакета подписок видны всем пользователям Nostr и часто публикуются на многих сайтах как стартовые наборы для новых пользователей. - Редактировать пакет подписок @@ -1934,12 +1270,10 @@ - Развернуть - Повторить @@ -1950,666 +1284,6 @@ - Реакция - - Голосовая публикация - - Голосовой ответ - - - - - - - - - - - - - - - - - - - - - - Исходящие relay - - Приложения - - Рекомендации приложений - - Настройки пользователя - - Аудио-заголовок - - Аудиодорожка - - Музыкальный трек - - Музыкальный плейлист - - Эпизод подкаста - - Подкаст-шоу - - Авторские подкасты - - Избранные подкасты - - Выданные значки - - Определения значков - - Принятый набор значков - - Значки профиля - - Заблокированные relay - - Серверы Blossom - - Серверы Nests - - Blossom Auth - - Вещательные relay - - Список закладок - - Старый список закладок - - Дневная запись - - Календарь - - Запись - - Подтверждение записи - - Шахматные партии - - Chess Auth - - Избранные relay - - Шахматные вызовы - - Принятие шахматной партии - - Шахматный ход - - Завершение шахматной партии - - Предложение ничьей - - Определение канала - - Скрытое сообщение канала - - Список каналов - - Сообщение канала - - Метаданные канала - - Отключение пользователя в канале - - Файл в ЛС - - Сообщение в ЛС - - Relay для ЛС - - Объявления - - Комментарии - - Определение сообщества - - Список сообществ - - Пост сообщества - - Список подписок - - Удаления - - Черновики - - Наборы эмодзи - - Список наборов эмодзи - - Эфемерный чат - - Эфемерные чат-комнаты - - Заголовки файлов - - Галерея профиля - - Файловые серверы - - Данные Blob - - Заголовки Blob - - Медицинские данные - - Наборы подписок - - Репосты (16) - - Подписки по геохешу - - GiftWraps - - Git Issue - - Git Patch - - Git Repo - - Git Reply - - Цели Zap - - Подписки по хештегу - - Выделения - - Http Auth - - Список индексных relay - - Пролог приключения - - Сцена приключения - - Чтение приключения - - Именованные закладки - - Живые чаты - - Прямые трансляции - - Zaps - - NWC Request - - NWC Response - - Приватные Zaps - - Zap Req - - Блоги - - Комната встречи - - Присутствие в комнате - - Пространство встречи - - Профиль - - Список отключённых - - NNS - - NIP - - Nostr Connect - - DVM Status - - DVM Content Req - - DVM Content Resp - - DVM User Req - - DVM User Resp - - OTS - - PayTo - - Списки пользователей - - Картинки - - Тренировки - - Закреплённые - - Zap Poll - - Опрос - - Ответ на опрос - - NIP-04 DMs - - Приватные relay - - Прокси-relay - - Публичное сообщение - - Реакции - - Контактная карточка - - Relay Auth - - Обнаружение relay - - Объявление монитора relay - - Набор relay - - Жалобы - - Репосты - - Удаление пользователя - - Печати - - Поисковые relay - - Статус пользователя - - Заметки - - Правки - - Торренты - - Комментарии к торрентам - - Доверенные relay - - Доверенные провайдеры - - Видео (Repl) - - Shorts (Repl) - - Видео - - Shorts - - Голосовое сообщение - - Голосовой ответ - - WakeUp - - Веб-закладка - - Wiki - - - - - - - - - - - - - - - - - %1$d%% времени работы - - Настройки Namecoin - - - - - - - - - - - %dмс - - - - - - Синхронизация relay - - - - - - - - - - - - - - - - - - - - - - - - - - - - Bitcoin Explorer (OTS) - - события от вас - - события для вас - - события в поиске - - DMs - - профили - - списки исходящих - - Последний раз %1$s назад - - Последний раз %1$s (%2$s назад) - - Только что был(а) в сети - - Никогда не посещал(а) - - - - %1$d минута - %1$d минуты - %1$d минут - %1$d минуты - - - - %1$d час - %1$d часа - %1$d часов - %1$d часа - - - - %1$d день - %1$d дня - %1$d дней - %1$d дня - - - - %1$d неделя - %1$d недели - %1$d недель - %1$d недели - - - - %1$d месяц - %1$d месяца - %1$d месяцев - %1$d месяца - - - - %1$d год - %1$d года - %1$d лет - %1$d года - - - - %1$d mint - %1$d mint - %1$d mint - %1$d mint - - - - %1$d ожидающий счёт - %1$d ожидающих счёта - %1$d ожидающих счетов - %1$d ожидающих счёта - - - - - - - - Средства хранятся в %1$d mint, который вы не используете - Средства хранятся в %1$d mint, которые вы не используете - Средства хранятся в %1$d mint, которые вы не используете - Средства хранятся в %1$d mint, которые вы не используете - - - - - - - - - - - - - - - - Перемещено %1$s sat в %2$s. - - - - - - - - - - - - - Трансляция на устройство - - Остановить трансляцию - - - - Загрузка HLS - - - - - - - - - - - - - - - - - - - - - Загрузка %1$s (%2$d из %3$d) - - - - - - - - - - - - - - - - - - Аттестация - - - - - - - - Запрос аттестации - - Рекомендация аттестора - - - Квалификация аттестора - - - - - - - - Веб-закладки - - Добавить веб-закладку - - Редактировать веб-закладку - - - - - - - - - - - - - - - %1$s собрано из %2$s sat - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Новая цель - - Запрос на удаление - - - - - - - - - - - - - - Запрос на удаление отправлен - - - - - - - - - - - - - - История запросов на удаление - - - - - - - Пользователи - - События - - Виды - - IP-адреса - - Настройки - - - - - - - - @@ -2653,23 +1327,14 @@ - Предлагать улучшения текста - Использует модель ИИ на устройстве для предложения исправлений текста и изменения тональности. - Отслеживаемые трансляции - Использует отслеживаемый режим при отправке событий. Показывает прогресс в реальном времени и статус по каждому relay. - Предлагать публикации тренировок - Читает завершённые тренировки из Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) и предлагает поделиться ими в виде публикации. Разрешение запрашивается только при подключении. - Настройки редактора - Автоматически создавать черновики - Автоматически сохраняет черновик при вводе текста или выходе из редактора с неотправленным текстом и отправляет в ваши приватные outbox relay. @@ -2686,9 +1351,7 @@ - Новый набор эмодзи - Изменить набор эмодзи @@ -2712,45 +1375,114 @@ - Мои наборы эмодзи - Эмодзи - Публичные эмодзи видны всем и отображаются в вашем меню реакций и автодополнении «:», когда этот набор добавлен в ваш список. - Приватные эмодзи хранятся в зашифрованном виде на relay и видны только вам. Они отображаются в вашем меню реакций и автодополнении «:» так же, как и публичные. - Черновик занимает %1$d байт; в этом сообществе для данного kind установлено ограничение %2$d байт. - Черновик занимает %1$d байт; в этом сообществе установлено ограничение %2$d байт для событий. - Сегодня вы уже опубликовали %1$d событий этого kind (лимит: %2$d). - Сайт Nowhere - Событие Nowhere - Сбор средств Nowhere - Магазин Nowhere - Петиция Nowhere - Сообщение Nowhere - Дроп Nowhere - Арт Nowhere - Форум Nowhere + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2769,31 +1501,363 @@ - - %1$d сообщ. - %1$d сообщ. - %1$d сообщ. - %1$d сообщ. - - - - %1$d участник - %1$d участника - %1$d участников - %1$d участника - + + + + + + + + + + + + + - Информация о группе обновлена - Не удалось обновить: %1$s - Не удалось создать группу: %1$s + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2804,13 +1868,6 @@ - Не удалось покинуть группу: %1$s - - Добавление %1$s… - - Не удалось добавить %1$s: %2$s - - неизвестная ошибка @@ -2819,9 +1876,6 @@ - Участник удалён - - Не удалось удалить участника: %1$s @@ -2829,22 +1883,15 @@ - Права администратора выданы - - Не удалось выдать права администратора: %1$s - Права администратора отозваны - - Не удалось отозвать права администратора: %1$s - Не является участником этой группы @@ -2861,32 +1908,16 @@ Не удалось создать Lightning-счёт от %1$s: элемент pr не найден в полученном JSON. - - %1$d вложение в комплекте - %1$d вложения в комплекте - %1$d вложений в комплекте - %1$d вложения в комплекте - - - - +%1$d\\nответ - +%1$d\\nответа - +%1$d\\nответов - +%1$d\\nответа - - - - Количество спам-событий, поступающих с этого relay - Несанкционированная расшифровка - Приложение подписи удалено? Убедитесь, что оно установлено и содержит этот аккаунт. Выйдите и войдите снова, если приложение подписи изменилось. - Внешний подписант вернул неожиданный ответ на запрос. Возможно, ошибка в Amethyst или в приложении подписи. + + + репост @@ -2894,17 +1925,12 @@ - Запрос счёта… - Сервис списания не завершил платёж. - Оплатить %1$s через %2$s? - Оплатить этот счёт через %1$s? - Введите допустимую сумму для этого предложения. @@ -2913,13 +1939,9 @@ - Однократно - Ежедневно - Еженедельно - Ежемесячно @@ -2945,13 +1967,11 @@ - Оплата через %1$s… - Платёж не выполнен @@ -2961,27 +1981,19 @@ - Доступно для этого получателя: %1$s sats - Транзакция: %1$s - Закрепить наверху - Открепить - PDF сохранён в Downloads/Amethyst - На этом устройстве не найдено приложение камеры - NIP-95 пока не поддерживается для голосовых сообщений - Ошибка загрузки голосового сообщения: %1$s @@ -2991,28 +2003,14 @@ - Чат relay - Чаты relay - Чаты relay — это групповые чаты, управляемые их домашним relay. - Они видны всем в Nostr, и любой может в них участвовать. - Они отлично подходят для открытых сообществ по определённым темам. Некоторые группы эфемерны, - поэтому сообщения исчезают со временем - Marmot Group - Метаданные публичного чата - Публичные чаты видны всем в Nostr и открыты - для участия любого желающего. Они отлично подходят для открытых сообществ по определённым темам. - Модерация осуществляется путём удаления постов на relay - Relay - Укажите от 1 до 3 relay, на которых размещена эта группа. - Клиенты Nostr используют эту настройку, чтобы знать, откуда загружать сообщения и куда их отправлять. @@ -3021,33 +2019,22 @@ - Навигация - Вы - Ленты - Создать - Система - Поделиться как изображение - Поделиться URL изображения - Заглушить тред - Включить звук треда - Закладки успешно перенесены - Запланированные посты @@ -3056,14 +2043,10 @@ - Запланировать пост - Отменить расписание - Запланированные посты могут не опубликоваться до следующего открытия приложения. Включите постоянный режим в Настройках → Настройки интерфейса для надёжного фонового планирования. - Запланированные посты могут не опубликоваться до следующего открытия приложения. Запланированные посты других аккаунтов не будут отправлены, пока активен этот аккаунт. Включите постоянный режим в Настройках → Настройки интерфейса для надёжного фонового планирования. @@ -3072,122 +2055,60 @@ - %1$s · через %2$s - %1$s · %2$s назад - Завтра - Выход выполнен - - Выход выполнен · %d запланированный пост удалён - Выход выполнен · %d запланированных поста удалено - Выход выполнен · %d запланированных постов удалено - Выход выполнен · %d запланированных поста удалено - - Запланированный пост опубликован - Ошибка запланированного поста - Запланированные посты - Уведомления о публикации или ошибке запланированного поста. - Отправить сейчас - Ошибка: %1$s - Запланировано - Отправка… - Ошибка - Отправлено - Отменено - - У вас %d запланированный пост, который ещё не опубликован. При выходе он будет удалён навсегда. - У вас %d запланированных поста, которые ещё не опубликованы. При выходе они будут удалены навсегда. - У вас %d запланированных постов, которые ещё не опубликованы. При выходе они будут удалены навсегда. - У вас %d запланированных поста, которые ещё не опубликованы. При выходе они будут удалены навсегда. - - - %d в очереди - %d в очереди - %d в очереди - %d в очереди - - - · %d через 1ч - · %d через 1ч - · %d через 1ч - · %d через 1ч - - - на %d relay - на %d relay - на %d relay - на %d relay - - ID заметки скопирован - Открытые - Закрытые - Значки - Сообщества - Новое сообщество - Редактировать сообщество - Модераторы - Relay - Проверяемые правила (необязательно) - Разрешённые виды событий - Короткий текст (1) - Длинная статья (30023) - Пост с изображением (20) - Видеопост (21) - Короткое видео (22) - Комментарий сообщества (1111) @@ -3196,23 +2117,18 @@ - Заблокированные пользователи - Фильтр сети доверия (необязательно) - Глобальный максимальный размер события (необязательно) - Новый значок - Вручить значок @@ -3229,7 +2145,6 @@ - Значки профиля @@ -3253,10 +2168,8 @@ - Тренировки - Новая тренировка @@ -3283,87 +2196,56 @@ - Бег - Ходьба - Велоспорт - Пешие прогулки - Плавание - Гребля - Силовые тренировки - Йога - Медитация - Питание - Голодание - Круговая тренировка - EMOM - AMRAP - Приложения Приложения - nApplets - - nSites - - - Браузер - Загрузка через Tor. Нажмите, чтобы использовать открытую сеть. - - Загрузка через открытую сеть. Нажмите, чтобы использовать Tor. - Избранное - - - - Избранные приложения - - - Добавить в избранное - - Удалить из избранного - Загружается через Tor. - - Загружается через открытую сеть. - Опубликовано на relay - Файл загружен - Платёж выполнен - Это приложение ещё не загружено. Повторите попытку через мгновение. - Недавние + + + + + + + + + + + Разрешения nApplet @@ -3380,51 +2262,30 @@ - nApplet %1$s… Оболочка - Личность - Действия клавиатуры - relay - Хранилище - Платежи - Сеть - Загрузки Запрашивать доступные возможности - Читать ваш публичный ключ - Привязывать клавиатурные сочетания - Читать, подписывать и публиковать ваши события - Собственное приватное хранилище - Оплачивать Lightning-инвойсы - Загружать веб-ресурсы и ресурсы Blossom - Загружать файлы на ваш медиасервер - Тема - Уведомления - Обмен сообщениями - Соответствовать цветам вашего приложения - Показывать вам уведомления - Обмениваться сообщениями с другими nApplets Возможность: %1$s @@ -3432,36 +2293,15 @@ - Этот nApplet хочет прочитать ваш публичный ключ. - Этот nApplet хочет прочитать ваш профиль и данные аккаунта. - Этот nApplet хочет подписать и опубликовать событие kind:%1$d от вашего имени. - Этот nApplet хочет подписать и опубликовать событие kind:%1$d от вашего имени: - Этот nApplet хочет отправить зашифрованное событие от вашего имени. - Этот nApplet хочет читать события с ваших relay. - Этот nApplet хочет использовать своё приватное хранилище. Этот nApplet хочет оплатить Lightning-инвойс. - Этот nApplet хочет загрузить веб-ресурс. - - Этот nApplet хочет загрузить файл на ваш медиасервер. - - Этот nApplet хочет показывать вам уведомления. - - Этот сайт хочет подписать событие kind:%1$d вашим ключом Nostr. - - - Этот nApplet хочет оплатить Lightning-инвойс на %1$d sat. - Этот nApplet хочет оплатить Lightning-инвойс на %1$d sats. - Этот nApplet хочет оплатить Lightning-инвойс на %1$d sats. - Этот nApplet хочет оплатить Lightning-инвойс на %1$d sats. - @@ -3475,35 +2315,29 @@ - Shorts - - Публичные чаты - - Пакеты подписок - - Прямые трансляции - - Nests - - - - - - Поднять руку - - Опустить руку - - - Выключить микрофон - - Включить микрофон - Не удалось отправить сообщение + + + + + + + + + + + + + + + + + @@ -3512,25 +2346,17 @@ - Выключить микрофон - Включить микрофон - Nests - Позволяет воспроизводить звук, пока комната открыта. - Nest подключён - Nest — в эфире - Нажмите, чтобы вернуться. - Стоп @@ -3542,30 +2368,17 @@ - поднял руку - вышел на сцену - говорит - присоединился как слушатель - покинул nest - Выйти - Не удалось отметить комнату как закрытую. Выходим в любом случае — комната закроется автоматически. - - %1$d слушатель - %1$d слушателя - %1$d слушателей - %1$d слушателя - @@ -3585,20 +2398,14 @@ - Заглушить этого участника - Восстановить этого участника - Подписаться - Отписаться - Заглушить - Включить звук @@ -3626,7 +2433,6 @@ - Не удалось сохранить список nest-серверов. Повторите попытку. @@ -3640,46 +2446,29 @@ - Nest-серверы - Ваши серверы - Сохраняется как заменяемое событие kind:10112, чтобы другие клиенты могли прочитать ваши настройки. - Рекомендуемые серверы - Встроенные предложения, которые можно добавить в список одним касанием. - Музыка - Плейлисты - Эпизоды - Подкасты - - %1$d эпизод - %1$d эпизода - %1$d эпизодов - %1$d эпизода - - Новый музыкальный трек - Новый плейлист @@ -3697,12 +2486,6 @@ - - %1$d трек - %1$d трека - %1$d треков - %1$d трека - @@ -3711,24 +2494,20 @@ - Открепить от профиля - Метаданные списка закладок - Наборы хэштегов - Новый набор интересов @@ -3736,7 +2515,6 @@ - Переименовать @@ -3754,13 +2532,9 @@ - Сделать приватным: gift-wrap заметка только для уведомлённых пользователей - Сделать публичным - Ответы на приватную заметку всегда остаются приватными - Видно для Получателей пока нет: только вы сможете видеть эту заметку. Добавьте людей, чтобы поделиться с ними. @@ -3779,68 +2553,8 @@ -Новый список закладок -Метаданные списков закладок видны всем в Nostr. Только ваши приватные элементы зашифрованы. Список по умолчанию Amethyst. Вы можете добавлять их по отдельности или добавить весь список. Новый профиль чата: -Процент успешных подключений к relay -Не переводить с -Языки, указанные здесь, не будут переводиться. Выберите язык, чтобы убрать его из списка и снова получать переводы. -Сохранить на телефон -Загрузка видео… -Черновики правка №%1$s -Исчезающий чат -Ошибка -Не удалось зашифровать ваш приватный ключ -Не удалось сохранить PDF -Не удалось сохранить видео -Выберите сервер для загрузки файла -Неверный ключ: %1$s -Настройки отображения языка -Для каждой переведённой языковой пары выберите, какой язык показывать первым. -Вы используете публичный ключ, который доступен только для чтения. Войдите с приватным ключом, чтобы подписывать события -Вы используете публичный ключ, который доступен только для чтения. Войдите с приватным ключом, чтобы загружать файлы -Видео -Загрузка медиафайла начата… -Переместить в приватные -Переместить в публичные -Необходимо указать имя -Необходимо указать пароль -Пауза -Фото -Закрепить в профиле -Воспроизвести -(0–100)% -Множественный выбор -Одиночный выбор -Опросы -Предложить правку -Нажмите и удерживайте для записи сообщения Переименовать -Отправить -Показать QR-код зашифрованного приватного ключа -Показать QR-код приватного ключа -Подписант не найден -Денежные операции -Перевести на -Выберите язык, на который переводить контент. -Не удалось поделиться изображением, повторите попытку позже… -Не удалось поделиться видео, повторите попытку позже… -Подписант не разрешил расшифровку, необходимую для выполнения этой операции. Активируйте расшифровки NIP-44 в вашем приложении-подписанте и повторите попытку -Ошибка загрузки -Не удалось загрузить голосовое сообщение -Загрузка видео начата… -Видео сохранено в видеогалерею телефона -Низкий -Высокий -Нейтральный -Нет -Написать сообщение… - - Этот пост содержит более %1$d хэштега - Этот пост содержит более %1$d хэштегов - Этот пост содержит более %1$d хэштегов - Этот пост содержит более %1$d хэштегов - diff --git a/amethyst/src/main/res/values-sl-rSI/strings.xml b/amethyst/src/main/res/values-sl-rSI/strings.xml index 1ee945173d..2f20b9096c 100644 --- a/amethyst/src/main/res/values-sl-rSI/strings.xml +++ b/amethyst/src/main/res/values-sl-rSI/strings.xml @@ -1,176 +1,13 @@ - - Ta objava ima več kot %1$d ključnik - Ta objava ima več kot %1$d ključnika - Ta objava ima več kot %1$d ključnike - Ta objava ima več kot %1$d ključnikov - - - %1$d sredstvo v paketu - %1$d sredstva v paketu - %1$d sredstva v paketu - %1$d sredstev v paketu - - - +%1$d\nodgovor - +%1$d\nodgovora - +%1$d\nodgovorov - +%1$d\nodgovorov - - - %1$d oseba, ki ji sledite, je prijavila - %1$d osebi, ki jima sledite, sta se prijavili - %1$d osebe, ki jim sledite, so se prijavile - %1$d oseb, ki ji sledite, so se prijavile - - Nezaželena vsebina - Iz tega releja izvira številna nezaželena vsebina - Oponašanje - Nedovoljeno vedenje - Zaprosi za izbris - Uporabljaš javni ključ in javni ključi omogočajo le branje. -Prijavi se s privatnim ključem, da omogočiš tudi pisanje - Uporabljaš javni ključ in javni ključi omogočajo le branje. -Prijavi se s privatnim ključem za posredovanje sporočila - Uporabljaš javni ključ in javni ključi omogočajo le branje. -Prijavi se s privatnim ključem za všečkanje sporočila - Nimaš nastavljene Zap vsote. Za spremembo uporabi daljši pritisk - Uporabljaš javni ključ in javni ključi omogočajo le branje. -Prijavite se s privatnim ključem, da boste lahko pošiljali Zape - Uporabljaš javni ključ in javni ključi omogočajo le branje. -Prijavi se s privatnim ključem, za sledenje uporabnika - Uporabljaš javni ključ in javni ključi omogočajo le branje. -Prijavi se s privatnim ključem, za odstranitev iz seznama sledljivih - Uporabljaš javni ključ in javni ključi omogočajo le branje. -Prijavi se s privatnim ključem, za cenzuro besed ali stavkov - Uporabljaš javni ključ in javni ključi omogočajo le branje. -Prijavi se s privatnim ključem, za prikaz skritih besed in stavkov - Uporabljaš javni ključ in javni ključi omogočajo le branje. -Za nalaganje se je potrebno prijaviti s privatnim ključem - Uporabljaš javni ključ in javni ključi omogočajo le branje. -Za podpisovanje se je potrebno prijaviti s privatnim ključem - Dešifriranje nima pooblastila - Podpisnik ni odobril dešifriranja, ki je potrebno za to operacijo. V aplikaciji za podpisovanje aktivirajte NIP-44 možnost dešifriranja in poskusite znova - Ne najdem podpisnika - Ali je bila aplikacija za podpisovanje odstranjena? Preverite, ali je aplikacija za podpisovanje nameščena in ima dostop do tega računa. Odjavite se in ponovno prijavite, če se je aplikacija morda spremenila. - Zunanji podpisnik je vrnil neobičajen odgovor. Morda gre za napako v aplikaciji Amethyst ali v podpisniku. - Zapi - Pošlji naprej poslano naprej uredi #%1$s - Prošnja za urejanje - Dodaj - Napaka pri razčlembi sporočila o napaki - Profil - Varnostni filtri - Prikaži manj - Pridobivanje računa… - Plačilo prek debetne storitve ni uspelo. - Plačaj %1$s preko %2$s? - Plačaj ta račun preko %1$s? - Vnesite veljaven znesek za to ponudbo. - Enkratno - Dnevno - Tedensko - Mesečno - Plačaj - Plačevanje prek %1$s… - Plačilo ni uspelo - Za tega prejemnika je na voljo: %1$s satov - Transakcija: %1$s - "Predogled kartne slike za %1$s" - Opis - O čem razmišljaš? - Napiši sporočilo… - Pošlji Shrani - Pošlji - Ustvari Preimenuj - Prekliči - Napaka - Napake - Delež uspešnih povezav z relejem - Shrani v telefon - Slika shranjena v foto galerijo telefona - Prenos videa se je začel… - Začenjam prenos medija… - Pripni na vrh - Odpni - Neuspešno shranjevanje slike - Video shranjen v video galerijo telefona - Neuspešno shranjevanje videa - PDF shranjen v Prenosi/Amethyst - PDF ni bil shranjen - Na tej napravi ni nameščene nobene aplikacije za kamero - Klikni in drži za snemanje sporočila - Naloži napako - Neuspešno nalaganje zvočnega sporočila - NIP-95 še ne podpira zvočnih posnetkov - Neuspešno nalaganje zvočnega posnetka: %1$s - Nič - Globok - Visok - Nevtralen - Uporabnik nima nastavljenega \"lightning\" naslova za sprejem satoshi-jev - "odgovori tukaj… " - Poznani - Nova prošnja - Blokirani uporabniki - Novi nizi objav - Razprave - Več možnosti - Pokaži QR kodo zasebnega ključa - Pokaži QR kodo šifriranega zasebnega ključa - Sledi - Sledi nazaj - Skrij geslo - Neveljaven ključ - Neveljaven ključ: %1$s - Potrebno je geslo - Potreben je ključ - Potrebno je ime - Povabila ni mogoče pridobiti. Povezava je morda potekla ali pa so njeni releji nedosegljivi. - Ta povezava do povabila ni veljavna ali pa je ni mogoče odpreti s tem računom. - Te povezave do povabila ni mogoče odpreti. Morda je zastarela, jo je nadomestila nova ali pa je bila ustvarjena z novejšo različico aplikacije. Zaprosite za novo povezavo do povabila. - Ta povezava do povabila je bila preklicana in je ni več mogoče uporabiti. Zaprosite za novo. - Ta skupnost vas je odstranila. Povezava še vedno deluje, vendar vas seznam članov več ne sprejme. - Povezave do povabil - Povezave do povabil… - Povezava do povabila je preklicana. - Povezave ni bilo mogoče preklicati. Preverite povezavo in poskusite znova. - Ta povezava do povabila je potekla in je ni več mogoče uporabiti. Zaprosite za novo povezavo. - Kanali Concord - Še ni kanalov. - Pošlji sliko - Nov kanal - Preimenuj kanal - Preimenuj - Ime kanala - Izbriši kanal - Izbrišem kanal? - Želite izbrisati kanal #%1$s? Tega ni mogoče razveljaviti, kanala pa tudi ni mogoče ponovno ustvariti z istim ID-jem. - Izbriši - Zapusti skupnost - Zapustim skupnost? - Želite zapustiti skupnost %1$s? Odstranjena bo iz seznama tega računa in sinhronizacija v vaših napravah se bo ustavila. Skupnost o tem ne bo obveščena in ne boste odstranjeni iz seznama njenih članov. Sporočil, ki jih ne boste mogli več dešifrirati, morda ne bo mogoče obnoviti, vrnete pa se lahko le z novim povabilom. - To skupnost ste ustvarili vi. Z izhodom je ne boste izbrisali ali predali komu drugemu, vendar boste zavrgli lastniški ključ, shranjen na vašem seznamu – tako je ne boste mogli več upravljati. - %1$s tipka… - %1$s in %2$s tipkata… - Več ljudi tipka… - Nov kanal Concord - Releji URL ikone (izbirno) - - %1$d kanal - %1$d kanala - %1$d kanali - %1$d kanalov - %1$d delovni prostor %1$d delovna prostora @@ -183,352 +20,38 @@ Za podpisovanje se je potrebno prijaviti s privatnim ključem %1$d kanali %1$d kanalov - - %1$d član - %1$d člana - %1$d člani - %1$d članov - - - %1$d novo sporočilo - %1$d nova sporočila - %1$d nova sporočila - %1$d novih sporočil - - Še ni sporočil - Ustvari - Povabi ljudi - Povezava za povabilo - Povišaj v administratorja - Odstrani administratorja - Releji, ki shranjujejo šifrirana sporočila te skupnosti. Pustite prazno, če želite uporabiti svoje. - Uredi skupnost - Člani - Povišaj v administratorja - Odstrani skrbnika - Blokiraj - Odstrani blokado - Dodeli vloge - Vloge tega člana ni bilo mogoče posodobiti. - Concord - V klepetu - V nizu objav - - %1$d odgovor - %1$d odgovora - %1$d odgovori - %1$d odgovorov - Nov profil klepeta: - Zapusti - Odstrani iz sporočil - Dodaj med sporočila - Prenehaj slediti - Izginjajoči klepeti - Rele klepet - Rele klepeti - Pogovori prek relejev so pogovorne skupine, ki jih nadzoruje njihov domači rele. - Vidne so vsem na Nostru in v njih lahko sodeluje kdorkoli. - So odlične za odprte skupnosti, povezane s specifičnimi temami. Nekatere od teh skupin so kratkotrajne - zato sporočila v klepetu sčasoma izginejo - Javni pogovor - MLS skupina - Metapodatki Javnega Klepeta - Javni klepeti so vidni vsem na Nostru in vsakdo - se lahko pridruži. So odlični za odprte skupnosti o specifičnih temah. - Moderiranje je možno z brisanjem objav na njihovih relejih - Releji - Vnesi 1–3 releje, ki gostijo to skupino. - Nostr odjemalci uporabljajo to nastavitev, da vedo, od kod prenesti vaša sporočila in kam jih poslati. - Odstrani - nikoli - zdaj - h - m - d - Golota - Psovke / Sovražni govor - Varnostna kopija ključev - Neuspelo dešifriranje tvojega privatnega ključa - Privatni ključ (nsec) kopiran v odložišče - Kopiraj moj privatni ključ - Neuspela overitev - Neuspela overitev lastnika telefona z biometrijo - Neuspela overitev lastnika telefona z biometrijo. Napaka: %1$s - Tekst zapiska kopiran v odložišče - Avtorjev @npub kopiran v odložišče - Zapiskov ID (@note1) kopiran v odložišče - "<Unable to decrypt private message>\n\nOmenjeni ste bili v zasebnem/šifriranem pogovoru med %1$s in %2$s." - Računi - Krmarjenje - Vi - Viri vsebin - Ustvari - Sistem - Nazaj - Deli povezavo brskalnika - Deli - Deli sliko - Deli URL slike - ID zapiska - Izbriši - Utišaj niz objav - Vklopi zvok niza objav - Utišaj obvestila - Vklopi zvok - - Blokiraj - Zaznamki - Migracija zaznamkov uspešna - Osnutki - Načrtovane objave - Načrtovana objava - Prekliči načrtovanje - Načrtovane objave morda ne bodo objavljene, dokler znova ne odprete aplikacije. Za zanesljivo načrtovanje v ozadju vklopite trajna obvestila v Nastavitve → Nastavitve vmesnika. - Načrtovane objave morda ne bodo objavljene, dokler znova ne odprete aplikacije. Načrtovane objave drugih računov se ne bodo sprožile, ko je aktiven ta račun. Za zanesljivo načrtovanje v ozadju vklopite trajna obvestila v Nastavitve → Nastavitve vmesnika. - %1$s · čez %2$s - %1$s · %2$s nazaj - Jutri - Izpisani - - Odjavljeni · %d načrtovana objava je bila izbrisana - Odjavljeni · %d načrtovani objavi sta bili izbrisani - Odjavljeni · %d načrtovane objave so bile izbrisane - Odjavljeni · %d načrtovanih objav je bilo izbrisanih - - Načrtovana objava objavljena - Načrtovana objava ni bila objavljena - Načrtovane objave - Obvestila ob uspešni ali neuspešni objavi načrtovane objave. - Pošlji zdaj - Napaka: %1$s - Načrtovano - Pošiljam… - Neuspešno - Poslano - Preklicano - - Imate %d načrtovano objavo, ki še ni bila objavljena. Z odjavo jo boste trajno izbrisali. - Imate %d načrtovani objavi, ki še nista bili objavljeni. Z odjavo ju boste trajno izbrisali. - Imate %d načrtovane objave, ki še niso bile objavljene. Z odjavo jih boste trajno izbrisali. - Imate %d načrtovanih objav, ki še niso bile objavljene. Z odjavo jih boste trajno izbrisali. - - - %d v čakalni vrsti - %d v čakalni vrsti - %d v čakalni vrsti - %d v čakalni vrsti - - - %d na vrsti čez 1 h - %d na vrsti čez 1 h - %d na vrsti čez 1 h - %d na vrsti čez 1 h - - - na %d rele - na %d releja - na %d releje - na %d relejev - - ID zapiska je kopiran - Glasovanja - Odpri - Končani - Značke - Skupnosti - Nova skupnost - Uredi Skupnost - Moderatorji - Releji - Preverljiva pravila (poljubno) - Dovoljeni tipi (kind) dogodka - Kratko besedilo (1) - Članek v daljši obliki (30023) - Slikovna objava (20) - Video objava (21) - Kratki videoposnetki (22) - Komentar skupnosti (1111) - Blokirani uporabniki - Web-of-trust vrata (poljubno) - Največja velikost dogodka (izbirno) - Nova značka - Podeli značko - Značke v profilu - Fotografije - Vadbe - Nova vadba - - %1$d aktivnost - %1$d aktivnosti - %1$d aktivnosti - %1$d aktivnosti - - Tek - Hoja - Kolesarjenje - Pohodništvo - Plavanje - Veslanje - Vaje za moč - Joga - Meditacija - Dieta - Post - Krožna vadba - EMOM - AMRAP - Aplikacije Applikacije - nApplets - nSites - Brskalnik - Nalaganje prek Tor. Tapnite za uporabo odprtega spleta. - Nalaganje prek odprtega spleta. Tapnite za uporabo Tor. - Priljubljene - Odkrijte spletne aplikacije - Priljubljene aplikacije - dodaj med priljubljene - Odstrani iz priljubljenih - Nalaganje prek Tor - Nalaganje prek odprtega spleta - Objavljeno na relejih - Datoteka naložena - Plačilo izvedeno - Ta aplikacija še ni naložena. Poskusite znova kasneje. - Nedavno nApplet dovoljenja Še ni dovoljenj za nApplet Tukaj bodo prikazana dovoljenja, ki jih dodelite nAppletom. Pozabi ta nApplet Blokirano Prekliči - nApplet%1$s… Shell - Identiteta - Tipkovne bližnjice - Releji - Shramba - Plačila - Mreža - Prenosi Ta nApplet želi preveriti, katere zmogljivosti so na voljo - Prebere vaš javni ključ - Poveži tipkovne bližnjice - Branje, podpisovanje in objavljanje dogodkov - Lastna zasebna shramba - Plačaj Lightning račune - Pridobi spletne in Blossom vire - Nalaganje datotek na vaš medijski strežnik - Tema - Obvestila - Sporočanje - Prilagoditev barv aplikaciji - Prikaz obvestil - Izmenjava sporočil z drugimi nAppleti Zmogljivost: %1$s - Ta nApplet želi prebrati vaš javni ključ. - Ta nApplet želi prebrati vaše podatke o profilu in računu. - Ta nApplet želi v vašem imenu podpisati in objaviti dogodek vrste %1$d. - Ta nApplet želi v vašem imenu podpisati in objaviti dogodek vrste %1$d: - Ta nApplet želi v vašem imenu poslati šifriran dogodek. - Ta nApplet želi prebrati dogodke z vaših relejev. - Ta nApplet želi uporabiti svojo zasebno shrambo. Ta nApplet želi plačati Lightning račun. - ⚠ Ta nApplet želi plačati račun Lightning, ki ne določa zneska — prejemnik plačila določi, koliko se odtrga. To dovolite samo, če mu zaupate. - Ta nApplet želi pridobiti spletni vir. - Ta nApplet želi naložiti datoteko na vaš medijski strežnik. - Ta nApplet vam želi prikazati obvestila. - Ta stran želi podpisati dogodek vrste (kind) %1$d, z vašim Nostr ključem. - - Ta nApplet želi plačati Lightning račun za %1$d sat. - Ta nApplet želi plačati Lightning račun za %1$d sata. - Ta nApplet želi plačati Lightning račun za %1$d sate. - Ta nApplet želi plačati Lightning račun za %1$d satov. - - - Sledi %1$d novemu računu - Sledi %1$d novima računoma - Sledi %1$d novim računom - Sledi %1$d novim računom - - - ODSLEDI %1$d račun - ODSLEDI %1$d računa - ODSLEDI %1$d račune - ODSLEDI %1$d računov - - - doda %1$d rele - doda %1$d releja - doda %1$d releje - doda %1$d relejev - - - ODSTRANI %1$d rele - ODSTRANI %1$d releja - ODSTRANI %1$d releje - ODSTRANI %1$d relejev - - - utiša %1$d dodatno osebo - utiša %1$d dodatni osebi - utiša %1$d dodatne osebe - utiša %1$d dodatnih oseb - - - PREKINE UTIŠANJE %1$d osebe - PREKINE UTIŠANJE %1$d oseb - PREKINE UTIŠANJE %1$d oseb - PREKINE UTIŠANJE %1$d oseb - - ⚠ To sledi uporabniku %1$s. - ⚠ To ODSLEDI uporabnika %1$s. - ⚠ To utiša uporabnika %1$s. - ⚠ To PREKINE UTIŠANJE uporabnika %1$s. - ⚠ To prepiše vaš seznam sledilcev: %1$s. - ⚠ To prepiše vaš seznam relejev: %1$s. Vaše objave in branja se premaknejo skupaj z njim. - ⚠ To prepiše vaš seznam utišanih: %1$s. Utišane besede in oznake niso prikazane tukaj — za celoten seznam tapnite »Pokaži dogodek« - %1$s in %2$s - To ponovno objavi vaš obstoječi seznam nespremenjen. - - To zapisuje seznam z %1$d vnosom. Amethyst nima zajete kopije za primerjavo. - ⚠ To zapisuje seznam z %1$d vnosoma. Amethyst nima zajete kopije za primerjavo. - ⚠ To zapisuje seznam z %1$d vnosi. Amethyst nima zajete kopije za primerjavo. - ⚠ To zapisuje seznam z %1$d vnosi. Amethyst nima zajete kopije za primerjavo. - - - ⚠ To zahteva izbris %1$d vašega dogodka. - ⚠ To zahteva izbris %1$d vaših dogodkov. - ⚠ To zahteva izbris %1$d vaših dogodkov. - ⚠ To zahteva izbris %1$d vaših dogodkov. - - - Vsebuje %1$d oznako. Tapnite »Pokaži dogodek«, da vidite, kaj bo podpisano. - Vsebuje %1$d oznaki. Tapnite »Pokaži dogodek«, da vidite, kaj bo podpisano. - Vsebuje %1$d oznake. Tapnite »Pokaži dogodek«, da vidite, kaj bo podpisano. - Vsebuje %1$d oznak. Tapnite »Pokaži dogodek«, da vidite, kaj bo podpisano. - Povezava z Nostrom @@ -537,25 +60,16 @@ Za podpisovanje se je potrebno prijaviti s privatnim ključem Nazadnje uporabljeno Preteče - podpiši za %1$s (kind: %2$d) - Šifriraj sporočilo - bere vaša zasebna sporočila - preberite zasebna sporočila z %1$s - Vedno dovoli za %1$s - Amethyst tega sporočila ni mogel dešifrirati. Morda ni naslovljeno na ta račun. - Povezane aplikacije Prekliči vsa dovoljenja Preglasitve operacij Nobena aplikacija se še ni povezala. - Aplikacije, dovoljenja, podpisovalnik, napplet, nsite, spletna aplikacije zaupnik povezan. - Oddaljen podpisnik Podpisnik, bunker, NIP-46, Nostr Connect, oddaljeno podpisovanje Deluj kot oddaljeni podpisnik @@ -564,883 +78,74 @@ Za podpisovanje se je potrebno prijaviti s privatnim ključem Poslušanje na %1$d relejih Poslušanje na %1$d relejih - - Poslušanje na %1$d vhodnem releju - Poslušanje na %1$d vhodnih relejih, oba poveza - Poslušanje na %1$d vhodnih relejih, vsi povezani - Poslušanje na %1$d vhodnih relejih, vsi povezani - Vaš bunker naslov Prilepite to v drugo aplikacijo, da jo povežete s svojim ključem. - Naslov bunkerja kopiran - Generiran nov bunker naslov - Povezano - Brez povezave - Ponovno povezovanje z releji… - - %1$d rele - %1$d releja - %1$d releji - %1$d relejev - - Aplikacija je povezana. Amethyst zdaj zanjo podpisuje v ozadju. - Povezano %1$s. Amethyst zdaj za to podpisuje v ozadju. - Ni veljavna povezava nostrconnect:// - Ta povezava ne vsebuje nobenega releja za povezavo - Ni se bilo mogoče povezati: %1$s - Povezava je bila zavrnjena - To je račun samo za branje in ne more podpisovati. - Aplikacija oddaljenega podpisnika - - %1$d zahteva za podpis - %1$d zahtevi za podpis - %1$d zahteve za podpis - %1$d zahtev za podpis - - Izberi vse - Nič ne izberi Še ni bilo obdelanih zahtev. - Zahteve za podpisovanje - Celozaslonski pozivi, ki vas prosijo za odobritev aplikacije, ki želi, da Amethyst z vašim ključem podpisuje, šifrira ali dešifrira. - Želite odobriti zahtevo za podpisovanje? - Aplikacija se želi povezati - Tapnite za preveritev - - %1$d povezana aplikacija - %1$d povezani aplikaciji - %1$d povezane aplikacije - %1$d povezanih aplikacij - - Avtentikacija releja - Preverjanje pristnosti (Auth), rele (Relay), podpis (Sign), preverjanje (Verify), NIP-42, identiteta - Vedno zahtevaj avtentikacijo - Podpiši avtentikacijske izzive za vsak relej, ki to zahteva - Nikoli ne avtenticiraj - Prezri avtentikacijske izzive vseh relejev - Po meri - Izberite natančno, v katere releje se želite prijaviti. Za vse, česar spodaj niste dovolili, boste vprašani naknadno. - …gre za moj rele ali sobo, ki sem se ji pridružil ali ji sledim - ...berem objave nekoga, ki mu sledim - …pošiljam sporočilo nekomu, ki mu sledim - …pošiljam sporočilo komur koli drugemu - - %1$s in %2$d ostali - %1$s in %2$d ostala - %1$s in %2$d ostali - %1$s in %2$d ostalih - - - Zadržuje pa še %1$d drugo stvar. - Zadržuje pa še %1$d drugi stvari. - Zadržuje pa še %1$d druge stvari. - Zadržuje pa še %1$d drugih stvari. - - Vedno, po vaši izbiri - Nikoli, po vaši izbiri - Vaša sporočila - Vaši odgovori - Ljudje katerih berete - soba v katero pošiljate - soba iz katere berete - vaš nabiralnik - pogovor - vaš rele - ta rele - Kratki posnetki - Javni klepeti - Lokacijski kanali - Paketi sledenih - Posnetki v živo - Zvočne sobe - Dvigni roko - Spusti roko - Utišaj - Vklopi zvok - Sporočila ni bilo mogoče poslati - Izklopi mikrofon - Vklopi mikrofon - Gnezda - Ohrani predvajanje zvoka, ko je soba odprta. - Gnezdo je povezano - Gnezdo — V živo - Dotaknite se za vrnitev - Stop - so dvignili roko - na odru - govori - pridružen kot občinstvo - zapusti gnezdo - Zapusti - Sobe ni bilo mogoče zapreti. Vseeno zapuščam – soba se bo zaprla samodejno. - - %1$d poslušalec - %1$d poslušalcev - %1$d poslušalcev - %1$d poslušalci - - Utišaj govorca - Omogoči govorca - Sledi - Prenehaj slediti - Utišaj - Vklopi zvok - Seznama strežnikov gnezda ni bilo mogoče shraniti. Poskusite znova. Konzola za agente - Strežnii gnezda (nests) - Vaši strežniki - Shranjeno kot zamenljiv dogodek kind-10112, da lahko vaše nastavitve berejo tudi drugi odjemalci. - Priporočeni strežniki - Vgrajeni predlogi, ki jih lahko na seznam dodate z enim dotikom. - Videoposnetki - Glasba - Predvajalni seznami - Epizode - Podkasti Premium - - %1$d poglavje - %1$d poglavji - %1$d poglavja - %1$d poglavij - - Napaka pri vrednost za vrednost - Ta podcast nima določenih prejemnikov sredstev. - Povežite denarnico Nostr Wallet Connect za pošiljanje k Keysend (vozlišča) prejemnikom. - Povežite denarnico Nostr Wallet Connect ali debetno denarnico za sprotno plačevanje satov med poslušanjem. - Nova epizoda - Uredi epizodo - Objavljam… - Dodaj naslovnico - Kvadratna slika prikazana za epizodo - URL videa - URL prepisa - URL poglavja - Dodaj zvočni posnetek - MP3, M4A, ali ostali zvočni posnetki - Vaš podkast - Dodaj naslovnico - Kvadratna slika za vašo oddajo - Prikaži naslov - Moj podcast - Avtor - E-pošta za stik - Spletna stran - Kategorije - Tehnologija, novice - Povezave za financiranje - https://… - Jezik - en - Avtorske pravice - Nov napovednik - Dodaj napovednik - Kratek predogled (zvok ali video) - - %1$d napovednik - %1$d napovednika - %1$d napovedniki - %1$d napovednikov - Dodaj prejemnika - Ta uporabnik nima lightning naslova - - %1$d epizoda - %1$d epizodi - %1$d epizode - %1$d epizod - - Nova skladba - Nov seznam predvajanja - - %1$d skladba - %1$d skladbi - %1$d skladbe - %1$d skladb - - Dodaj v javne zaznamke - Odstrani iz javnih zaznamkov - Pripni k profilu - Odpni od profila - Nov seznam zaznamkov - Metapodatki seznama zaznamkov - Nabor ključnikov - Nov nabor zanimanj - Preimenuj - Zasebni zapisek - To sporočilo je bilo dostavljeno zasebno in ni podpisano. Vidijo ga lahko le označeni udeleženci, nihče zunaj pa ne more dokazati, kdo ga je napisal. - Nastavi kot zasebno: šifriraj zapis le za obveščene uporabnike - Nastavi kot javno - Odgovori na zasebni zapis so vedno zasebni. - Vidno za: Ni še prejemnikov: ta zapis lahko vidiš samo ti. Dodaj ljudi, da ga deliš z njimi. - Le vi \u2014 izberete kdo to vidi - Dodaj ljudi za opozorila - Pošlji kot zasebno - Že dodano - Utišano - Zasebni član - - %1$s, %2$s in še %3$d drug - %1$s, %2$s in še %3$d druga - %1$s, %2$s in še %3$d drugi - %1$s, %2$s in še %3$d drugih - - - To sporočilo bo šifrirano in dostavljeno %1$d-krat ločeno, enkrat za vsako osebo. Z zunanjim podpisnikom to pomeni po eno potrditev za vsako. - To sporočilo bo šifrirano in dostavljeno %1$d-krat ločeno, enkrat za vsako osebo. Z zunanjim podpisnikom to pomeni po eno potrditev za vsako. - To sporočilo bo šifrirano in dostavljeno %1$d-krat ločeno, enkrat za vsako osebo. Z zunanjim podpisnikom to pomeni po eno potrditev za vsako. - To sporočilo bo šifrirano in dostavljeno %1$d-krat ločeno, enkrat za vsako osebo. Z zunanjim podpisnikom to pomeni po eno potrditev za vsako. - - - %1$d oseba bo prejela obvestilo za to objavo. - %1$d osebi bosta prejeli obvestilo za to objavo. - %1$d osebe bodo prejele obvestilo za to objavo. - %1$d oseb bo prejelo obvestilo za to objavo. - - - To bi bila %1$d oseba. Amethyst doda največ %2$d hkrati – odznačite jih nekaj. - To bi bili %1$d osebi. Amethyst doda največ %2$d hkrati – odznačite jih nekaj. - To bi bile %1$d osebe. Amethyst doda največ %2$d hkrati – odznačite jih nekaj. - To bi bilo %1$d oseb. Amethyst doda največ %2$d hkrati – odznačite jih nekaj. - - - Dodaj %1$d osebo - Dodaj %1$d osebi - Dodaj %1$d osebe - Dodaj %1$d oseb - - - Vseeno dodaj %1$d osebo - Vseeno dodaj %1$d osebi - Vseeno dodaj %1$d osebe - Vseeno dodaj %1$d oseb - Dodaj Odstrani uporabnika iz obvestil - Pošiljanje obvestil. Tapnite, da utišate obvestila za tega uporabnika - Pošiljanje obvestil. Tapnite, da utišate obvestila za tega uporabnika Poišči in dodaj prejemnika obvestil - Metapodatki seznama zaznamkov so vidni vsem na Nostru. Le tvoji zasebni člani so šifrirani. - Premakni v javno - Premakni v zasebno - Napolni in pošlji zap - Pošlji zap - Napolni %1$s satov v %2$s in pošlji zap za %3$s (%4$s satov) · provizija ≈ %5$s satov - Izbira %s - (0–100)% - Ena izbira - Več izbire - Nezmožen za glasovanje - Anketa je zaprta za nove glasove - Dovoljen je le en glas na uporabnika pri tem tipu ankete - Avtorji anket ne morejo glasovati v svojih anketah. - Kaj to pomeni? - Ta vsebina je ista od objave - Ta vsebina je bila spremenjena. Avtor morda ni videl ali dovolil spremembe - Dodaj medij - Dodaj sliko - Dodaj video - Dodaj dokument - Datotečni strežnik - Izberi strežnik za nalaganje te datoteke - Medijski strežniki Nastavi svoje prednostne medijske strežnike za nalaganje medijev. Upravljanje shranjenih datotek - Moje Blossom datoteke - Kopiranje vaših datotek med strežniki… - Prekliči - Blossom sinhronizacija - Prikazuje napredek med kopiranjem vaših datotek med vašimi strežniki Blossom. - Na vseh strežnikih - Ni na vseh strežnikih Izbriši iz… - Ta strežnik za nalaganje zahteva plačilo: %1$s - - Plačaj %1$d sat - Plačaj %1$d sata - Plačaj %1$d sate - Plačaj %1$d satov - - Omogoči vse - Onemogoči vse - Sinhronizacija datotek že poteka. Poskusite znova, ko se zaključi. - - %1$d datoteka - %1$d datoteki - %1$d datoteke - %1$d datotek - - - Najdena %1$d datoteka za uvoz na vaše strežnike. - Najdeni %1$d datoteki za uvoz na vaše strežnike. - Najdene %1$d datoteke za uvoz na vaše strežnike. - Najdenih %1$d datotek za uvoz na vaše strežnike. - - - Uvozi %1$d datoteko - Uvozi %1$d datoteki - Uvozi %1$d datoteke - Uvozi %1$d datotek - Priporočljivi medijski strežniki Privzeti seznam Amethysta. Lahko jih dodate posamično ali dodate celoten seznam. - Povezano - Počasno - Brez povezave Preverjam… - Cilji plačil - Dodajte naslove za plačila za različna omrežja (npr. bitcoin, lightning, monero). - Ni aplikacije za tovrstno plačilo. Namestite združljivo denarnico. - Ni nameščene aplikacije za plačila %1$s. Namesti združljivo denarnico. - Plačila ni mogoče odpreti - BOLT12 Ponudbe - Dodajte eno ali več ponudb BOLT12 (lno1…). Objavljene so javno, tako da vam lahko plača kdo koli. - BOLT12 plačilo poslano - BOLT12 plačilo ni uspelo: %1$s - BOLT12 zap napaka - Plačano preko BOLT12, vendar denarnica ni vrnila dokazila, zato potrdilo o zapu ni bilo objavljeno. - Plačano preko BOLT12, vendar dokazilo o plačilu ni prestalo preverjanja, zato potrdilo o zapu ni bilo objavljeno. - Nastavitve zasebnosti - Vsa sledenja - Vsi sledeni sledenih - Privzeti seznam sledenih - V moji okolici - Teleportacija na lokacijo… - Sledi tej lokaciji - Prenehaj slediti tej lokaciji - Globalno - Izbrani - Moje - Seznam utišanih - Nov seznam sledenih - Nov paket sledenih - Uredi seznam - Prevzeta vrata so 9050 - Orbot socks vrata - Aktivni Tor stroj - Uporabi interno različico ali Orbot - Prednastavitve zasebnosti - Hitro spremeni vse spodnje nastavitve - Onion Url/Releji - Uporabi Tor za katerikoli .onion url - Rele ZS - Prisili tor za pošiljanje in sprejemanje ZS - Nezaupanja vredni releji - Prisili tor pri relejih za odhodno/prejeto pošto - Zaupanja vredni releji - Prisili Tor na vseh relejih v tvojem spisku - Slike profilov - Prisili tor pri nalaganju profilnih slik - URL predogledi - Prisili tor pri nalaganju url predogledov - Slike - Prisili tor pri nalaganju slik - Videoposnetki - Prisili tor ob nalaganju videoposnetkov - Denarne operacije - Prisili tor pri Zapih, Lightning in Cashu plačilnih prenosih - Preveritev Nostr naslova - Prisili tor ob preverjanju NIP-05 naslovov - Nalaganje medijske vsebine - Prisili tor pri nalaganju vsebine - Interno - Orbot - Izključeno - Osnovno - Privzeto - Vse razen mediji - Popolna zasebnost - Lastne nastavitve - Uporabi Tor, ko je ta potreben za strežnik - Skrij svoj IP pred naključnimi releji - Skrij svoj IP pred vsem, razen pred slikami in video vsebini - Skrij svoj IP v vseh povezavah - Ustvari svojega - Zasebna sporočila - Ob prejemu zasebnega sporočila te obvesti - Prejeti Zapi - Vas obvesti, ko vas nekdo Zap-ne - %1$s sat - Od %1$s - za %1$s - Plačilo prejeto - Obvesti vas, ko vaša povezana denarnica prejme plačilo, ki ni Nostr zap - Prejeto %1$s sat - Nova plačila - Odgovori - Označi kot prebrano - Jaz - Novo sporočilo - Dodani ste bili v %1$s - Novo sporočilo - Novi zapi - Odzivne ikone - Prejmi obvestila o odzivih na objave - %1$s se je odzval na vašo objavo - za %1$s - Novi odzivi - Šah - Prejemaj obvestila o šahovskih igrah - %1$s je sprejel vaš šahovski izziv - Poteza uporabnika %1$s — vi ste na vrsti - Šahovske novosti - Odgovori - Obvesti vas o odgovorih na vašo objavo %1$s vam odgovarja na: %1$s - Novi odgovori - Omembe - Obvesti vas, ko vas nekdo omeni ali citira v objavi - %1$s vas je omenil - Nove omembe - Sporočila - Družabno - Plačila - Vsebina - Razvijalec - Igre - Deljenja - Obvesti vas, ko nekdo znova objavi vašo objavo - Oseba %1$s je delila vašo objavo - Nove delitve - Medijske vsebine - Obvesti vas, ko vas nekdo označi na fotografiji ali v videoposnetku - Oseba %1$s je delila fotografijo - Oseba %1$s je delila video - Nova medijska vsebina - Članki in poudarki - Obvesti vas, ko vas nekdo emeni ali označi v članku - %1$s vas je omenil v članku - %1$s je poudaril vaš članek - Novi članki - Koda in Git - Obvesti vas o težavah, popravkih in zahtevkih za poteg (PR) - %1$s je odprl/a težavo - %1$s je poslal/a popravek - %1$s je odprl/a zahtevo za popravek (PR) - %1$s je osvežil/a zahtevo za popravek (PR) - Nove aktivnosti v kodi - Značke - Vas obvesti ko si prislužite značko - Prislužili ste si značko - Nagrajeni ste bili od %1$s - Nove značke - Nutzap od %1$s - Onchain zap od %1$s - %1$s sprašuje - Dohodni klici - Obvestila o dohodnih glasovnih in video klicih - Dohodni klic - Dohodni glasovni klic\u2026 - Dohodni video klic\u2026 - Pokliči z %1$s - Klici - Obvestilo o aktivnem klicu - Prekini - Sprejmi - Zavrni - Utišaj - Vklopi zvok - Vklopljena kamera - Izklopljena kamera - Zvočnik - Slušalka - Bluetooth - Amethyst potrebuje dostop do mikrofona za začetek glasovnega klica. Omogoči ga v nastavitvah aplikacije. - Amethyst potrebuje dostop do kamere in mikrofona za začetek video klica. Omogoči ju v nastavitvah aplikacije. - Klicne nastavitve - Ohranja aktivne povezave z vašimi releji za obvestila v realnem času - Amethyst obvestila so aktivna - - Povezano z %1$d vhodnimi releji - Povezano z %1$d vhodnima relejema - Povezano z %1$d vhodnimi releji - Povezano z %1$d vhodnimi releji - - - Povezano z %1$d relejem - Povezano z %1$d relejema - Povezano z %1$d releji - Povezano z %1$d releji - - - %1$s \u00b7 %2$d rele - %1$s \u00b7 %2$d releja - %1$s \u00b7 %2$d releji - %1$s \u00b7 %2$d relejev - - Brskanje - Medijske vsebine - Ključniki - Teme - Pogovor - Iskanje - Iskanje pogrešanih dogodkov - Opazovani dogodki - Pridobi dogodke po ID-ju, na katere se sklicuje nekaj na vašem zaslonu, a jih še nimate — citat, starševsko sporočilo odgovora ali začetek objav. - Spremlja trenutno prikazane dogodke za nove odgovore, odzive, ponovne objave, zape in prijave, da se števci posodabljajo med branjem. - Dodatki - Informacije releja - Drugo - Iskalnik seznama relejev - Opazovani profili - Podatki računa - Domače vsebine - Skupine relejev - - %1$d skupina - %1$d skupini - %1$d skupine - %1$d skupin - - Minljivi klepeti - Lokacijski klepeti - Klepet v živo - Skupine NIP-29, ki ste se jim pridružili. Vsaka skupina gostuje na enem gostiteljskem releju, zato se aplikacija poveže z vsakim relejem, ki gostuje vašo skupino. - Klepetalnice, ki ne hranijo zgodovine — sporočila obstajajo le, dokler ste povezani, zato ostanejo naročene, da sploh prejmejo karkoli. - Sobe glede na lokacijo za območja, ki jim sledite, z zahtevo do relejev, ki jih prenašajo. - Cilji klepetov in zappov pri odprtih ali sledenih prenosih v živo. - Zasebna sporočila - Denarnica - Nutzap nabiralnik - Mapa kovnice - Wallet Connect - Klepeti skupnosti - Objave skupnosti - Releji vaše pošte vhodnih relejev in manjši spremenljivi vzorec relejev, na katere objavljajo osebe, ki jim sledite — na primer, če je bila omemba dostavljena kam drugam. - Vaši vhodni releji za zasebna sporočila, kamor se dostavljajo šifrirana sporočila. - Domači rele vsakega klepeta katerega ste odprli ali pridružili. - Releji, kamor vsaka skupnost objavlja svoje načrte. - Skupinska sporočila in ključni paketi na relejih posameznih skupin. - Releji sobe, dokler je ta odprta. - Vaš profil, nastavitve in osnutki na vaših domačih relejih. - Profili trenutno prikazanih oseb. - Najde releje objav vsake osebe za prenos z ustreznega mesta. - Seznami sledenj za oblikovanje vira objav in mreže zaupanja. - Prijave vaših sledenih oseb o trenutno prikazanih profilih, poslane relejem, na katere te osebe objavljajo. - Prijave vaših sledenih oseb - Dogodki vaša denarnice, prebrani z vaših objavitvenih relejev. - Spremlja vaše nutzap releje ter vhodne releje in releje ZS, da nobeno plačilo ne ostane neopaženo. - Preverja releje in išče, katere kovnice (mints) obstajajo ter katere ljudje priporočajo. - Opozorila iz povezane denarnice - Aktivne rele naročnine - - %1$d filter - %1$d filtra - %1$d filtri - %1$d filtrov - - - %1$d rele - %1$d releja - %1$d releji - %1$d relejev - - - %1$d filter še ni dodeljen - %1$d filtra še nista dodeljena - %1$d filtri še niso dodeljeni - %1$d filtrov še ni dodeljenih - %1$s \u00b7 %2$s - %1$d%% od vseh - naročnine, filtri, releji, zahteve, povezave, zakaj, diagnostika - Objave oseb, ki jim sledite, prebrane z relejev, na katere objavlja posamezna od njih. - Povezovanje vhodnih relejev\u2026 Vedno aktivna obvestila Ohranja stalno povezavo z vašimi releji za takojšnjo dostavo obvestil. Prikazuje trajno obvestilo. Porabi več baterije, a zagotavlja, da ne zamudite nobenega sporočila. Storitev obveščanja - Vklop - Izklop - Storitev obveščanja v ozadju - Glavno stikalo za sprotna obvestila v ozadju. Izklopite za varčevanje z baterijo — podobno kot način letenja. Ko je stikalo izklopljeno, noben račun v ozadju ne ostane povezan, nastavitev pa se ohrani (tudi po ponovnem zagonu), dokler je znova ne vklopite. - Aktivni računi v ozadju Ta račun naj ostane aktiven v ozadju - Razdeli opozorila glede na sledilce - Prikaže dva zavihka z obvestili — Sledim (ljudje, ki jim slediš) in Vsi ostali. Indikator neprebranih obvestil sveti le za aktivnosti ljudi, ki jim slediš. - Prikaži sporočilo - V zavihek Obvestila vključite neposredna in skupinska sporočila. Izklopite, če želite sporočila ohraniti samo v zavihku Sporočila. - Obvesti: - Danes - Skrij - Prikaži - Opozori - Filtriraj spam - Skrije objave neznancev, ki so bile popolnoma enake več kot petkrat - Vključi oznako Nostr odjemalca v moje dogodke - Če je omogočeno, Amethyst vašim objavljenim dogodkom doda NIP-87 oznako Nostr odjemalca. - Opozori o prijavah - Prikaže opozorilo, ko objava preseže 5 ali več prijav od oseb, ki jim slediš - Skrij objave, ki kršijo pravila skupnosti - Iz vira vsebin skupnosti odstrani objave, ki kršijo pravila NIP-9B, če jih je skupnost objavila. Nima učinka, če skupnost nima strukturiranih pravil. - Možnosti filtriranja - Blokirana vsebina - Zaenkrat še niste blokirali nobenega uporabnika - V tej seji noben račun ni bil označen kot nezaželjen. - Ni skritih besed. Spodaj dodaj besedo, da skriješ objave, ki jo vsebujejo. - Za tega uporabnika niso predhodno izbrane nobene vrste reakcij. Dolgo pritisnite na gumb za srce, da jih spremenite - Beri iz releja - Piši v rele - Količina bajtov, ki je bila poslana temu releju, vključno s filtri in dogodki - Količina bajtov, ki je bila prejeta od tega releja, vključno s filtri in dogodki - Izjava o zasebnosti - Standardi za varnost otrok - Vizitka in pravna obvestila - Cashu žeton - Lightning naslov ni nastavljen - Releji - Paketi sledenih - Branje - Algoritmi vira vsebin - Tržnica - Prenos v živo - Skupnosti - Pogovori - Občutljiva vsebina - Doda opozorilo o občutljivi vsebini pred prikazom te vsebine - Možnosti UI Nastavitve aplikacije - Prevodi - Odzivi - Nastavitve - Nastavitve računa - Nastavitve aplikacije - Nevarno območje - Ponastavi Marmot stanje - Ponastavitev stanja Marmot. - Neuspešna ponastavitev stanja Marmot: %1$s - Vedno - Samo z WiFi - Nikoli - Wi-Fi - Celovit - Poenostavljen - Optimiziran - Polno - Preprosto - Hitro - Klasično - Moderno - Sistemska - Svetla - Temna - Prikaz - Medijske vsebine in podatki - Splošno - Povezava - Usmeri preko Tor - Odseki in viri vsebin - Vidni zavihki - Vsebina v viru vsebin - Besedilni zapiski - Preposlane objave - Komentarji in odgovori - Fotografije - Video - Kratki videoposnetki - Članki - Wiki strani - Poudarki - Ankete - Oglasi - Torenti - Glasovna sporočila - Aktivnosti v živo - Minljivi klepeti - Interaktivne zgodbe - Šahovske igre - Opazovanja ptic - Overitve - NIP osnutki - Video in zvok - Podkasti - Zbiranje sredstev - Opomniki - Wallet Connect - Tema - Vijolična - Modra - Zelena - Oranžna - Rdeča - Roza - Pisava - Pisava v aplikaciji - Sistemske prednastavitve - Sans Serif - Serif - Monospace - Sistem - Sans - Serif - Mono - Velikost pisave - Prilagoditev velikosti besedila v aplikaciji - Majhno - Normalno - Veliko - Ogromno - Predogled slike - Predvajaj Video - Video predvajaj samodejno - Predogled URL-ja - Poglobljeno pomikanje - Skrij navigacijsko vrstico ob pomikanju - UI način - Izberi stil objave - Slog galerije profila - Izberi slog galerije - Spam pošiljatelji - Utišano. Klikni za vklop zvoka - Zvok je prižgan. Klikni da ga utišaš - Skoči nazaj za %d sekund - Skoči nazprej za %d sekund - Izberi lokacijo na karti - Spremeni lokacijo na karti - Lokacijsko-ekskluzivna objava - To bodo videli samo sledilci lokacije. Vaši splošni sledilci tega ne bodo videli. - - %1$d skladba - %1$d skladbi - %1$d skladbe - %1$d skladb - - - +%1$d dodatna skladba - +%1$d dodatni skladbi - +%1$d dodatne skladbe - +%1$d dodatnih skladb - - Dodaj naslovno sliko - Izberi kvadratno sliko za naslovnico te skladbe. - Naloži zvočno datoteko - Izberi MP3, WAV ali FLAC. Ob shranjevanju bo naložen na vaš medijski strežnik. - Nalaganje naslovnice in zvoka ter objavljanje. Postopek se bo nadaljeval, tudi če zapustiš ta zaslon. - Uredi seznam predvajanja - Naloži prikazno sliko - Izberi kvadratno sliko za naslovnico tega seznama predvajanja. - Nalaganje in objava naslovnice. Ta postopek se bo nadaljeval, tudi če zapustite zaslon. Javno Skupina - Zasebno - Šifrirane skupine - Zavedanje o relejih - Zasebno sporočilo - Zasebna sporočila, šifrirana od konca do konca (E2EE) - 1:1–5 sob - Klepeti ena na ena in v manjših skupinah z ljudmi, ki jih poznate. - Novo sporočilo - 1 na 1 in manjše skupine - Šifrirano od konca do konca (E2EE) - Uporabnikov ni mogoče dodati pozneje - Marmot skupina - Večje zasebne skupine - Vezano na napravo - Večje zasebne skupine za tiste, ki prerasejo male zasebne klepete. - Ustvari skupino - Presega omejitve malih klepetov - Šifriran skupinski klepet - ezano na napravo — ne bo prikazano, če se prijavite drugje - Concord skupnost - Skupnosti, razdeljene po kanalih - Delovni prostori - Velike skupnosti, organizirane po kanalih ali potekih dela. - Ustvari skupnost - Prilagojeno za ogromne skupnosti - Razdeljeno po kanalih ali potekih dela - Zahteva več nastavitev - Javni klepet - Javna sporočila na releju - Brez moderiranja - Odprte javne sobe, kjer lahko objavlja vsak. - Ustvari nov javen klepet - Pridruži se lahko kdorkoli - Preprosto in zlahka dosegljivo - Samo javno - Brez moderacije - Skupina releja - Na relejih — javno ali zasebno - Moderirano - Skupine, ki jih moderira njihov gostiteljski rele - Brskanje po skupinah na relejih - Moderira gostiteljski rele - Javno ali zasebno - Vezano na tisti posamezni rele - Minljivi klepet - Kdor koli je trenutno na spletu - Trenutno v živo - Klepet v živo s tistimi, ki so pravkar na spletu. - Zaženi klepet - Pogovor s trenutno prisotnimi - Nič ni shranjeno - Brez zgodovine - Omejeno na rele - Skupine relejev - Skupine relejev - Sporočila - Zasebna sporočila - E2EE, gift-wrapped zasebna sporočila (NIP-17) - Zastarela direktna sporočila - Starejša, manj zasebna šifrirana direktna sporočila (NIP-04) - Javni kanali - Odprte, javne klepetalnice, ki jih lahko prebere in se jim pridruži vsak (NIP-28) - Skupine relejev - Skupinski klepeti z moderiranjem in seznami članov (NIP-29) - Šifrirane skupine - MLS- E2EE šifrirani skupinski klepeti (Marmot) - Concord skupnosti - Šifrirane skupnosti z več tematskimi kanali (Concord). - Lokacijski klepeti - Javni klepet glede na vašo lokacijo (Geohash) - Minljivi klepeti - Hitri klepeti na releju, ki ne hranijo zgodovine sporočil - Ustvari skupino - Nov kanal - Nov forum - Zasebni kanal - Skrito s seznama kanalov in dostopno le z vabilom. Ko je možnost izklopljena, lahko kanal poišče in se mu pridruži vsakdo na tem releju. Kanal foruma Objave v nizov objav namesto časovnice klepeta. Tega kasneje ni mogoče spremeniti. Ime supine @@ -1450,35 +155,19 @@ Za podpisovanje se je potrebno prijaviti s privatnim ključem Ustvari Ustvarjam povabilo… Koda povabila kopirana - Uredi skupino Ime skupine Tema (nebvezno) Zasebno (branje samo za člane) Samo s povabilom Shrani - Izbriši skupino - Želite izbrisati »%1$s«? S tem boste skupino in njeno zgodovino odstranili za vse. Dejanja ni mogoče razveljaviti. - Izbriši kanal - Želite izbrisati »%1$s«? S tem boste kanal in njegova sporočila odstranili za vse. Dejanja ni mogoče razveljaviti. - Arhiviraj kanal - Obnovi kanal Spremeni lokacijo - Zasebno - Samo člani lahko berejo sporočila. Iščem skupine po vaših relejih… S tem filtrom še ni najdenih nobenih skupin. - Naslov Napiši kaj… Pošlji Dodano v: %1$s - - %1$d član - %1$d člana - %1$d člani - %1$d članov - %1$d sporočilo %1$d sporočila @@ -1497,309 +186,30 @@ Za podpisovanje se je potrebno prijaviti s privatnim ključem %1$d uporabniki, ki jim sledite %1$d uporabnikov, ki jim sledite - - %1$d skupina - %1$d skupini - %1$d skupine - %1$d skupin - Zasebno - Zadeva - Nalaganje ni uspelo - Najprej vnesi cilj sporočila - Ne najdem denarnice - Amethyst ni našel nobene denarnice, ki podpira Nostr Wallet Connect (NWC). -\n\nKaj lahko storiš: -\n\t1. Preverite podporo za NWC: Ponovno\t preverite, ali vaša priljubljena denarnica podpira Nostr Wallet Connect. -\n\t2. Ustvari povezavo: Odprite svojo denarnico in ustvarite novo NWC povezavo. -\n\t3. Povežite z Amethyst: Vaša denarnica vam bo ponavadi ponudila tri možnosti: -\n\t\t3.1 Samodejna povezava: Gumb za samodejno odprtje in povezavo z Amethyst. Če je na voljo, kliknite ta gumb, odprite Amethyst in na novem zaslonu pritisnite shrani. -\n\t\tRočna povezava: Povezovalni URI, ki ga lahko kopirate, nato pa na tem zaslonu kliknite ikono za lepljenje, da ga neposredno vnesete. -\n\t\tQR koda: Denarnica ustvari QR-kodo, ki jo skenirajte z gumbom za QR na tem zaslonu. - - Temna, svetla ali sistemska tema - Samodejno naloži slike in GIF-e - Samodejno predvajaj video in GIF-e - Video predvajaj samodejno, ko je viden na ekranu - Prikaži predogled URL-jev - Kopiraj v odložišče - Kopirano v odložišče - Deli ali shrani Pošlji kot ZS Nov poudarek Nova slika Nov kratek videoposnetek Nov video - Nov poudarek Poudarjeno besedilo - Dodajte svoje misli… - Medij dodan - Medij dodan v galerijo profila - Zap ni uspel - Manjka \"lightning\" nastavitev - Uporabnik %1$s nima nastavljenega \"lightning\" naslova za prejemanje satoshi-jev - Napaka pri odpiranju aplikacije za podpisovanje - Aplikacije za podpisovanje ni bilo mogoče najti. Preverite, ali aplikacija morda, ni bila odstranjena - Tega videa ni mogoče predvajati - Kodek ali format na tej napravi ni podprt (%1$s). Poskusi odpreti v brskalniku. - Odpri v brskalniku - Zahteva za vpis zavrnjena - Prepričajte se, da je aplikacija za podpisovanje odobrila to transakcijo - Denarnica za plačilo z \"lightning\" ni najdena (Napaka: %1$s). Prosimo, namestite \"lightning\" denarnico da boste lahko Zap-ali ostale - Denarnica za plačilo z \"lightning\" ni najdena. Prosimo, namestite \"lightning\" denarnico da boste lahko Zap-ali ostale - Ne morem odpreti Blossom povezav - Aplikacije Blossom niso bile najdene. Za ogled te datoteke namestite lokalno aplikacijo Blossom. - Skrite besede - Utišaj nize objav - Ni utišanih nizov objav - Slika profila - Prikaži slike profilov - Fakture ni bilo mogoče plačati - Ni bilo mogoče dvigniti - Cashu žetona ni bilo mogoče unovčiti - Kovnica je posredovala naslednje sporočilo o napaki: %1$s - Ta naslov strežnika Cashu kovnice ni varen. - Amethyst se ni povezal z izdajateljem tega žetona. %1$s - Prejeli ste Cashu žeton - V vašo denarnico je bilo poslanih %1$s satoshi-jev. (Provizija: %2$s sat) - Na sistemu ni najdene združljive Cashu denarnice - Ni mogoče pridobiti fakture s strežnikov prejemnika - Vaš \"Wallet Connect\" ponudnik je vrnil naslednjo napako: %1$s - Ni bilo mogoče sestaviti LNUrl iz \"lightning\" naslova \'%1$s\'. Preverite uporabnikove nastavitve - Ni bilo mogoče pridobiti fakture od %1$s: %2$s - Napaka pri razčlenjevanju JSON iz %1$s. Preverite uporabnikove nastavitve za \"lightning\" - Povratni URL ni bil najden v odzivu od %1$s - Napačen znesek fakture (%1$s sat) od %2$s. Moral bi biti %3$s - Ni mogoče ustvariti lightning fakture pred plačilom. Lightning denarnica prejemnika je poslala naslednjo napako: %1$s - Uporabnik samo za branje - Ni nastavitev za odzive - Obvestila - Dostava - Prikaz v aplikaciji - Kategorije - Sporočilo od %1$s - Živjo %1$s, je to še na voljo? - Oblačila - Pripomočki - Elektronika - Pohištvo - Zbirateljstvo - Knjige - Živali - Šport - Fitnes - Umetnost - Rokodelstvo - Dom - Pisarna - Hrana - Razno - Drugo - Nalaganje medija ni uspelo - Stisnjene datoteke ni bilo mogoče odpreti - Napaka pri nalaganju: %1$s - Strežnik po nalaganju ni posredoval URL naslova - Prenos naloženega medija s strežnika ni uspel - Ni bilo mogoče preveriti prenesene datoteke po nalaganju: %1$s - Nalaganje na %1$s ni uspelo: %2$s - Izbris ni uspel: %1$s - Medij je prevelik za NIP-95 - Šifriraj datoteke - Za večjo zasebnost datoteke pred nalaganjem šifrirajte. Nekateri strežniki pri brezplačnih računih morda ne sprejemajo šifriranih datotek. - Šifrirano nalaganje ni uspelo - Številni strežniki pri brezplačnih računih ne sprejemajo šifriranih datotek. Poskusite lahko znova brez šifriranja. - Uporabi H.265/HEVC Codec - Boljša kakovost pri manjših velikostih datotek, vendar predvajanja H.265 ne podpirajo vse naprave. - Pretvori GIF v MP4 - Pretvori animirane slike GIF v video MP4 za manjšo datoteko in boljšo združljivost predvajanja. - Odstrani zasebne metapodatke - Poskusi odstraniti zasebne metapodatke iz podprtih datotek pred nalaganjem. - Metapodatkov ni možno odstraniti - Zasebnih metapodatkov ni bilo mogoče odstraniti. Nalaganje je preklicano. - Nalaganje je preklicano. - Iz datoteke AVIF ni mogoče odstraniti metapodatkov: %1$s - Domov - Odkrij - Sporočila - Obvestila - Koledarji - Seznami koledarjev - Šah - Denarnica - Cashu denarnica (NIP-60) Ključ Nutzap (napredno) Ločen zasebni ključ, uporabljen le za prejemanje NIP-61 nutzapov. To ni vaš ključ identitete Nostr. Generiraj nov ključ Zasebni ključ P2PK (hex) - Urejanje denarnice Cashu Shrani spremembe - - + %1$d več - + %1$d več - + %1$d več - + %1$d več - - - %1$d priporoča - %1$d priporočata - %1$d priporočajo - %1$d jih priporoča - - Popularne kovnice - Ujemajoče kovnice - Prejeto - Poslano - Objavi zahtevek za izbris priporočila vrste kind:38000 za %1$s. Releji, ki podpirajo NIP-09, ga bodo odstranili. - Uspešno obnovljenih %1$s satov skozi %2$s dokazil. - Želiš plačati %1$s satov in do %2$s satov provizije? - Nutzap ni uspel - V objavi ni javnega ključa prejemnika. - Nutzapi so javni in bi razkrili to zasebno objavo. Namesto tega uporabi Lightning zap. - Ni mogoče zgraditi povezave do dogodka. - Čakanje na plačilo računa… - Preverjam kovnico… - Počasno - Običajno - Hitro - ~1 hr - ~30 min - ~10 min - %1$s · %2$s sat/vB · %3$s - - Pošlji %1$s satov, na %2$d način - Pošlji %1$s satov, na %2$d načina - Pošlji %1$s satov, na %2$d načine - Pošlji %1$s satov, na %2$d načinov - - - Uporabi %1$d-načinsko razdelitev zapa te objave - Uporabi %1$d-načinski razdelitvi zapa te objave - Uporabi %1$d-načinske razdelitve zapa te objave - Uporabi %1$d-načinsko razdelitev zapa te objave - - - Razdelitev med %1$d prejemnikom - Razdelitev med %1$d prejemnika - Razdelitev med %1$d prejemniki - Razdelitev med %1$d prejemniki - - - Preskok %1$d prejemnika, ki ima le Lightning naslov — onchain plačilo potrebuje Nostr pubkey za izpeljavo naslova. - Preskok %1$d prejemnikov, ki imata le Lightning naslov — onchain plačilo potrebuje Nostr pubkey za izpeljavo naslova. - Preskok %1$d prejemnikov, ki imajo le Lightning naslov — onchain plačilo potrebuje Nostr pubkey za izpeljavo naslova. - Preskok %1$d prejemnikov, ki imajo le Lightning naslov — onchain plačilo potrebuje Nostr pubkey za izpeljavo naslova. - - Nalaganje stanja… - Priprava transakcije… - podpisovanje - oddajam - Objavljanje potrdila… - Povezava z Bitcoin omrežjem ni nastavljena - Nalaganje Bitcoin stanja je spodletelo - Sestavljanje transakcije je spodletelo - Znesek za prejemnika je prenizek (pod pragom dust) - Podpisovanje transakcije je spodletelo - Oddajanje transakcije je spodletelo - Plačilo je poslano, vendar potrdila o zapu ni bilo mogoče objaviti. - - Plačilo je poslano (objavljeno %1$d od %2$d potrdilo), vendar naslednjega potrdila ni bilo mogoče objaviti - Plačilo je poslano (objavljena %1$d od %2$d potrdila), vendar naslednjega potrdila ni bilo mogoče objaviti - Plačilo je poslano (objavljenih %1$d od %2$d potrdil), vendar naslednjega potrdila ni bilo mogoče objaviti - Plačilo je poslano (objavljeno %1$d od %2$d potrdil), vendar naslednjega potrdila ni bilo mogoče objaviti - - Uvozi sledilce - Nov produkt - Nov članek - Nov koledarski dogodek - Uredi koledarski dogodek - Nov koledar - Uredi koledar - Vir vsebin - Mesec - Teden - Dan - - %1$s, %2$d dogodek - %1$s, %2$d dogodka - %1$s, %2$d dogodki - %1$s, %2$d dogodkov - - Pravkar poteka - %1$s · konec ob %2$s - Deli koledarske dogodke - opomniki_koledarja - Opomniki koledarja - Opozorilo pred začetkom dogodka, ki se ga udeležuješ. - Koledarski dogodek - - Začne se čez %1$d minuto - Začne se čez %1$d minuti - Začne se čez %1$d minute - Začne se čez %1$d minut - - Nalaganje slike ni uspelo - Izbrane slike ni bilo mogoče naložiti. Poskusi znova ali prilepi URL. - Opomniki koledarja - Pošlji opomnike - Prejmi obvestilo tik pred začetkom dogodka, ki se ga udeležuješ. - - %1$d min - %1$d min - %1$d min - %1$d min - - Odpri z maps - Odpri povezavo - Odpri vse reakcije na to objavo - Zapri vse reakcije na to objavo - Zap - Spodnja navigacijska vrstica Povlecite za spremembo vrstnega reda. Preklopite za dodajanje ali odstranjevanje elementov s spodnje vrstice. Če ni izbran noben element, je spodnja vrstica skrita. Razporedi - Ni priljubljenih. Dodaj jih z zvezdico v brskalniku. - Niste še član nobene skupine. - Dodaj - Dodano - Glavno - Klepeti in skupine - Ti - Viri vsebin - Aplikacije in Splet - Drugo - Stranski meni - - %1$d skrit - %1$d skrita - %1$d skriti - %1$d skritih - - Vidno - Skrito - Vedno vklopljeno Izberite zavihke, ki se prikažejo na začetnem zaslonu. Če je aktiven le en zavihek, je vrstica z zavihki skrita. - Vse - UI profila Izberi, kateri razdelki in viri vsebin naj se prikažejo na profilih uporabnikov. Vse možnosti so privzeto omogočene. - profilne zančke - Priporočene aplikacije - Vir vsebin prejetih zapov - Vir vsebin sledilcev - Bitcoin (on-chain) denarnica - Vrstica odzivnih ikon - Gumbi video predvajalnika - Vizualizacija zvoka - Uredi - Uredi - Urejanje sporočila - %1$s in %2$s tipkata… Buzz delovni prostori Kjer ljudje in agenti ustvarjajo skupaj Zapusti delovni prostor @@ -1815,69 +225,6 @@ Za podpisovanje se je potrebno prijaviti s privatnim ključem Dodaj Ni najdenih kanalov Videti je, da na tem releju še nisi član nobenega kanala. Najprej v brskalniku sprejmi vabilo v delovni prostor in poskusite znova. - Pripni kanal - Odpni kanal - - %1$d skrit pogovor - %1$d skrita pogovora - %1$d skriti pogovori - %1$d skritih pogovorov - - - Prikaži še %1$d pogovor - Prikaži še %1$d pogovora - Prikaži še %1$d pogovore - Prikaži vseh %1$d pogovorov - - Čakanje, da rele sprejme to sporočilo - Za to sporočilo ni podatkov o releju - Sprejeto s strani vsaj enega releja - Dostavljeno relejem vseh prejemnikov - Datum poteka - Avtor je zahteval, da releji to opombo izbrišejo po %1$s. Ko poteče, bo izginila iz virov. - Neveljaven naslov - Amethyst je prejel zahtevo da odpre URI, vendar je bil ta URI neveljaven: %1$s - Releji predala zasebnih sporočil - Iskalni releji - Dobre možnosti so\n%1$s - Izhodni releji - Vhodni rele - Nastavitve relejev - Javni za odhajajočo pošto/domači releji - Uporabnik pošilja objave na te releje - Ta tip releja shranjuje vse vaše vsebine. Amethyst bo sem pošiljal vaše objave, ostali uporabniki pa bodo te releje uporabljali za iskanje vaših vsebin. Vstavite 1–3 releje. To so lahko osebni releji, plačljivi releji ali javni releji. - Javni releji za dospelo pošto - Uporabnik prejema obvestila na teh relejih - Ta tip releja sprejema vsa odgovore, komentarje, všečke in zap-e na vaše objave. Ti releji so lahko plačljivi ali brezplačni. Omejitve, ki jih nastavi upravljavec releja, lahko omejijo obvestila, ki jih prejemate, tako v dobrem kot v slabem. Na primer, če ste tarča napada s spam komentarji, ki so nezaželeni, lahko plačljivi releji te nezaželene komentarje odstranijo. Vnesite med 1–3 releje. - Releji predala zasebnih sporočil - Uporabnik prejema ZS prek teh relejev - Vnesite 1–3 releje, ki bodo služili kot vaš predal za zasebna sporočila. Drugi bodo te releje uporabljali za pošiljanje zasebnih sporočil vam. Releji za zasebna sporočila bi morali sprejeti katero koli sporočilo od kogar koli, vendar samo vam dovoliti njihov prenos. Dobre možnosti so:\n - inbox.nostr.wine (plačljiv)\n - auth.nostr1.com (brezplačen)\n - you.nostr1.com (osebni releji - plačljivi) - KeyPackage-i - KeyPackage Releji - Releji, kjer so objavljeni vaši MLS KeyPackage-i (MIP-00). Drugi uporabniki jih pridobijo, da vas lahko povabijo v skupinske klepete Marmot. Vstavite od 1 do 3 releje, ki sprejemajo vaše KeyPackage dogodke in omogočajo javno branje. - Zasebni domači releji - Vnesite 1–3 releje za shranjevanje dogodkov, ki jih nihče drug ne more videti, kot so vaši osnutki in/ali nastavitve aplikacije. Idealno je, da so ti releji bodisi lokalni ali zahtevajo preverjanje pristnosti pred prenosom vsebine posameznega uporabnika. - Povezani releji - Trenutni seznam relejev v uporabi - Iskalni releji - Seznam relejev za uporabo pri iskanju vsebine ali uporabnikov. Označevanje in iskanje ne bosta delovala, če možnosti niso na voljo. Prepričajte se, da podpirajo NIP-50. - Lokalni releji - Seznam relejev, ki delujejo na tej napravi. - Preusmeri profile na lokalni rele - Pošiljanje vseh prejetih dogodkov profilov (kind 0) na lokalni rele - Zaupanja vredni releji - Releji katerim zaupaš in zanje ne rabiš Tor povezave - Najljubši viri vsebin releja - Releji na katerih pogosto spremljaš globalne vire vsebin - Proxy releji - Agregatorji, ki jih mora aplikacija uporabljati za prenos vaših vsebin, na primer filter.nostr.wine. To nadomesti model odhodne pošte (outbox model) in bo prisililo aplikacijo k povezovanju prek relejev iz vašega seznama. - Oddajni releji - Releji specializirani za posredovanje vaših zapiskov na vse ostale releje kot npr. sendit.nosflare.com. Amethyst bo dodal ta rele k vsem vašim novim dogodkom. - Indeksni releji - Releji, specializirani za gostovanje metapodatkov in seznamov relejev vseh uporabnikov, na primer purplepag.es. Amethyst bo te releje uporabil za iskanje uporabnikov, ki niso na vaših seznamih. - Blokirani releji - Amethyst se ne bo nikoli povezal na te releje - Izvozi nastavitve releja Splet: Predogled Vzdržuje: @@ -1886,650 +233,40 @@ Za podpisovanje se je potrebno prijaviti s privatnim ključem Vzdrževalci Teme Readme - - %1$d element - %1$d elementa - %1$d elementi - %1$d elementov - Zapri težavo Ponovno odpri - Git repozitoriji - Poudarki - Filtriraj repozitorij - Zapri filter - Dokaz časovnega žiga - Obstaja dokaz, da je bil ta zapisek podpisan pred %1$s. Dokaz je bil ožigosan v Bitcoin verigi blokov na ta datum in čas. - Za to objavo je bilo zahtevano dokazilo o časovnem žigu, ki čaka na zapis v verigo blokov Bitcoin. Postopek se običajno zaključi v nekaj urah. - Uredi objavo - Ni mogoče odgovoriti na osnutek zapiska - Ni mogoče citirati osnutka zapiska - Ni mogoče reagirati na osnutek zapiska - Osnutke zapisa ni mogoče Zap-niti - Osnutek zapiska - Neveljavna zahteva - Strežnik ne more ali noče obdelati zahteve. - Nepooblaščeno - Uporabnik nima veljavnih overitvenih podatkov - Potrebno je plačilo - Strežnik zahteva plačilo za dokončanje zahteve - Prepovedano - Uporabnik nima pravic dostopa za izvedbo zahteve - Ni najdeno - Strežnik ne najde zahtevanega naslova - Nedovoljena metoda - Strežnik podpira metodo zahteve, vendar ne ciljnega vira - Ni sprejemljivo – Strežnik ni našel nobene vsebine, ki bi ustrezala zahtevi. - Zahtevana je zastopniška overitev - Uporabnik nima veljavnih overitvenih podatkov - Zahteva je potekla – Strežnik je predolgo čakal na nekoga drugega - Spor – Strežnik ne more izpolniti zahteve zaradi konflikta z virom - Izbris – Zahtevana vsebina je bila trajno izbrisana s strežnika in ne bo obnovljena - Zahtevana dolžina – Strežnik zavrnil zahtevo, ker zahteva določeno dolžino - Predpogoj ni izpolnjen – Zahtevani predpogoji v glavi zahteve niso izpolnjeni s strani strežnika - Tovor je prevelik – Zahteva presega omejitve, določene s strani strežnika, zato jo strežniška obdelava zavrača - URI je predolg – URL, ki ga zahteva odjemalec, je predolg, da bi ga strežnik lahko obdelal. - Nepodprta vrsta medija – Zahteva uporablja medijski format, ki ga strežnik ne podpira - Razpon ni zadovoljiv – Strežnik ne more izpolniti vrednosti, navedene v \"request’s Range header\" polju. - Neizpolnjeno pričakovanje – Strežnik ne more izpolniti zahtev, navedenih v glavi zahteve \"Expect\" - Potrebna nadgradnja – Strežnik zavrača obdelavo zahteve z uporabo trenutnega protokola, razen če odjemalec ne preklopi na drug protokol. - Notranja napaka strežnika – Strežnik je naletel na nepričakovano napako in ne more izpolniti zahteve - Ni implementirano – Strežnik ne more izpolniti zahteve ali ne prepozna metode zahteve - Slab prehod – Strežnik deluje kot prehod in je prejel neveljaven odgovor od gostitelja - Storitev ni na voljo – To se pogosto zgodi, ko je strežnik preobremenjen ali nedosegljiv zaradi vzdrževanja - Časovna omejitev prehoda – Strežnik je deloval kot prehod ali posrednik in je prekoračil časovno omejitev med čakanjem na odgovor - HTTP različica ni podprta – Strežnik ne podpira te različice HTTP, navedene v zahtevi - Različica povzroča pogajanja – Strežnik ima notranjo konfiguracijsko napako - Premalo prostora za shranjevanje – Strežnik nima dovolj prostora za uspešno obdelavo zahteve - Zaznana zanka – Strežnik je zaznal neskončno zanko med obdelavo zahteve - Zahtevana overitev omrežja – Odjemalec mora biti overjen za dostop do omrežja Blossom strežniki Dodajte poljubno število strežnikov. Kasneje lahko izberete, katerega želite uporabiti pri nalaganju slike - Dodaj NIP-96 strežnik - Dodaj Blossom strežnik Prenesi - Datoteke ni bilo mogoče odpreti - Ni nameščenih torent aplikacij za odpiranje in prenos datoteke. - Dogodek nima dovolj podatkov za sestavo magnetne povezave. - Moji seznami - Viri vsebin - Ključniki - Nabor zanimanj - Lokacije - Skupnosti - Seznami - Algoritmi vira vsebin - Vsi priljubljeni algoritmi vira vsebin - Releji - Priljubljeni algoritmi vira vsebin - Zasebno sporočilo - Javno sporočilo - Deljenje slike ni uspelo, prosimo poskusite znova… - Videa ni bilo mogoče deliti, prosim poskusite kasneje… - Prenašam video … - Ne prevedi iz - Tu prikazani jeziki ne bodo prevedeni. Izberite jezik, da ga odstranite in ga znova prevedete. - Prevedi v - Izberi jezik v katerega želite prevesti vsebino. - Nastavitve prikaza jezika - Za vsak preveden jezikovni par izberite, kateri jezik naj bo prikazan prvi. - Premor - Predvajaj - Uporaba virov aplikacije - Poraba baterije in podatkov, energija, omrežje, diagnostika ter glavna knjiga Danes Zadnjih 7 dni - Mobilni podatki danes - Wi-Fi danes - Uporaba releja danes - Danes v aplikaciji - Količina podatkov na dan - Mobilni podatki (MB) - Wi-Fi (MB) - Aktivnost (7 dni) Mobilni podatki (v ozadju) Mobilni podatki (v aplikaciji) Wi-Fi podatki - Čas povezave z releji - \u2026 v ozadju na mobilnih podatkih - Obdelava obvestil (CPU buden) - Izvedena opravila v ozadju - Neuspele ponovne povezave z relejem - Spletne zahteve - Obuditve radijskega modula za prenose (ocena) - Aktivni čas prenosa - Čas predvajanja - Preverjeni podpisi - Porabljen procesorski čas Čas v aplikaciji - Zagoni procesov aplikacije - Dešifrirana sporočila - Oddaljeni podpisi - Rudarjenje PoW - Čas delovanja Tor - Čas trajanja klicev - Čas v zvočnih sobah - Spremljanje lokacije - Poraba baterije (v aplikaciji / v ozadju) - Storitev obvestil v ozadju - Čas delovanja - - %1$d zagon - %1$d zagona - %1$d zagoni - %1$d zagonov - - Ohranjene povezave z releji med zaprtjem - Poraba baterije v tem času (celotna naprava) - Baterija / ur v aplikaciji - Podatki / ur v aplikaciji - Povp. povezave z releji - Podatki po funkcijah (7 dni) - Čas zaslona (7 dni) - Vgrajen Tor - Poraba podatkov po funkcijah (7 dni) - Sinhronizacija relejev - Slike - Video in zvok - Prenosi - Denarnica in zapi - Preverjanje naslova - Predogled povezav - Registracija potisnih obvestil - Drugo - Trenutni pomnilnik - Pomnilnik aplikacije (heap) - Lokalni pomnilnik - Pomnilnik slik (RAM) - Pomnilnik slik (disk) - Zapiski v pomnilniku - Profili v pomnilniku - Dosegljivi dogodki v pomnilniku - Seznami sob v pomnilniku - Kategorija pomnilnika naprave - Pošlji razvijalcem - Deli - Aplikacija Amethyst je nedavno porabila več virov kot pričakovano: %1$s. Želite razvijalcem poslati poročilo o uporabi v šifriranem zasebnem sporočilu (ZS)? Preden bo karkoli poslano, boste videli celotno poročilo. - %1$s mobilnih podatkov v ozadju v enem dnevu - %1$s povezav z releji v ozadju prek mobilnih podatkov v enem dnevu - Procesor je bil zaradi obdelave obvestil v enem dnevu buden %1$s - - Process aplikacije se je v enem dnevu znova zagnal %1$d-krat - Process aplikacije se je v enem dnevu znova zagnal %1$d-krat - Process aplikacije se je v enem dnevu znova zagnal %1$d-krat - Process aplikacije se je v enem dnevu znova zagnal %1$d-krat - - - Aplikacija se je z releji v enem dnevu znova povezala %1$d-krat - Aplikacija se je z releji v enem dnevu znova povezala %1$d-krat - Aplikacija se je z releji v enem dnevu znova povezala %1$d-krat - Aplikacija se je z releji v enem dnevu znova povezala %1$d-krat - - To sporočilo bo izginilo čez %1$s - Sledi metapodatkom seznama - Sledenje metapodatkom seznama je lahko vidno vsem na Nostru. Le tvoji zasebni člani so šifrirani. - Metapodatki paketa sledenih - Metapodatki paketa sledenih so lahko vidno vsem na Nostru in redno objavljeni na ostalih spletnih straneh, kot začetni prikaz za nove uporabnike - Uredi paket sledenih - Razširi - Poskusi ponovno - Odziv - Glasovna objava - Zvočni odgovor - - %1$d izbira - %1$d izbiri - %1$d izbire - %1$d izbir - - Naloženih %1$d od %2$d odzivov iz %3$d relejev. - %1$d od približno %2$d odzivov iz %3$d relejev. - - %1$d glas - %1$d glasova - %1$d glasovi - %1$d glasov - - - %1$d volivec - %1$d volivca - %1$d volivci - %1$d volivcev - - - %1$d glas je prispel po zaprtju zato ne bo upoštevan. - %1$d glasova sta prispela po zaprtju zato ne bosta upoštevana. - %1$d glasovi so prispeli po zaprtju zato ne bojo upoštevani. - %1$d glasov je prispelo po zaprtju zato ne bojo upoštevani. - - - %1$d glas je zabeležen pred objavo glasovanja in je zato izključen. - %1$d glasova sta zabeležena pred objavo glasovanja in sta zato izključena. - %1$d glasovi so zabeleženi pred objavo glasovanja in so zato izključeni. - %1$d glasov je zabeleženih pred objavo glasovanja in so zato izključeni. - - - %1$d odziv ni izbral veljavne možnosti in bo zato izključen. - %1$d odziva nista izbrala veljavne možnosti in bosta zato izključena. - %1$d odzivi niso izbrali veljavne možnosti in bojo zato izključeni. - %1$d odzivov ni izbralo veljavne možnosti in bojo zato izključeni. - - - %1$d volivec je skrit na vašem seznamu utišanih uporabnikov. - %1$d volivca sta skrita na vašem seznamu utišanih uporabnikov. - %1$d volivci so skriti na vašem seznamu utišanih uporabnikov. - %1$d volivcev je skritih na vašem seznamu utišanih uporabnikov. - - Izhodni releji - Aplikacije - Priporočila aplikacij - Nastavitve uporabnika - Zvočna glava - Zvočni zapis - Skladba - Seznam predvajanja - Epizoda podkasta - Podkast - Moji podkasti - Priljubljeni podkasti - Nagradne značke - Definicija značke - Sprejet nabor značk - Značke profila - Blokirani releji - Blossom strežniki - Strežniki gnezd - Blossom avtentikacija - Oddajni releji - Seznam zaznamkov - Star seznam zaznamkov - Dnevni termin - Koledar - Sestanek - Potrditev termina - Šahovske igre - Šahovska avtentikacija - Priljubljeni releji - Šahovski izzivi - Sprejmi partijo - Šahovska poteza - Konec partije - Predlagaj remi - Definicija kanala - Skrij sporočilo v kanalu - Seznam kanalov - Sporočilo v kanalu - Metapodatki kanala - Utišani uporabniki kanala - Datoteka ZS - ZS sporočilo - Releji ZS - Oglasi - Komentarji - Opis skupnosti - Seznam skupnosti - Objava skupnosti - Seznam sledenih - Izbrisano - Osnutki - Zbirke emojijev - Pregled zbirk emojijev - Minljivi klepet - Minljive klepetalnice - Glave datotek - Galerija profila - Datotečni strežniki - Blob podatki - Blob glava - Zdravstveni podatki - Paketi za sledenje - Ponovno preposlani (16) - Sledeni geohash-i - GiftWraps - Git zadeva - Git popravek - Git repozitorij - Git odgovor - Zahtevek za združitev - Posodobitev zahtevka (PR) - Ciljni znesek zapov - Sledeni ključniki - Poudarki - Http Auth - Indeksiraj seznam relejev - Pustolovski prolog - Pustolovska scena - Pustolovsko branje - Poimenovani zaznamki - Pogovori v živo - Prenosi v živo - Zapi - NWC zahtevek - NWC odgovor - Zasebni zapi - Zap zahtevek - Blogi - Sejna soba - Prisotnost v sobi - Srečevalnica - Profil - Seznam utišanih - NNS - NIP - Nostr Connect - DVM status - DVM zahtevek vsebine - DVM odgovor na vsebino - DVM zahtevek uporabnika - DVM odgovor uporabnika - OTS - Plačaj - Seznam oseb - Fotografije - Vadbe - Bucike - Zap sklad - Anketa - Odziv na anketo - NIP-04 ZS - Zasebni releji - Proxy releji - Javno sporočilo - Odzivi - Kartica kontakta - Avtorizacija releja - Odkrivanje relejev - Obvestilo nadzornika relejev - Nabor relejev - Prijave - Ponovne objave - Brisanje uporabnika - Pečat - Iskalni releji - Status uporabnika - Zapiski - Urejeni - Torenti - Komentarji torentov - Zaupanja vredni releji - Zaupanja vredni ponudniki - Videoposnetki (odgovor) - Kratki posnetki (odgovor) - Videoposnetki - Kratki videoposnetki - Zvočno sporočilo - Zvočni odgovori - ZbudiSe - Spletni zaznamek - Wiki - %1$d%% časa delovanja - Namecoin nastavitve - %dms - Sinhronizacija relejev - Bitcoin Raziskovalec (OTS) - vaši dogodki - dogodki za vas - iskalni dogodki - ZS - profili - izhodni seznami - Nazadnje viden pred %1$s - Nazadje viden %1$s (pred %2$s) - Nazadnje viden prav zdaj - Nikoli viden - - %1$d minuta - %1$dminuti - %1$d minut - %1$d minute - - - %1$d Ura - %1$d uri - %1$d ure - %1$d ur - - - %1$d dan - %1$d dni - %1$d dni - %1$d dni - - - %1$d teden - %1$d tedna - %1$d tedni - %1$d tednov - - - %1$d mesec - %1$d meseca - %1$d meseci - %1$d mesecev - - - %1$d leto - %1$d leti - %1$d let - %1$d let - - - %1$d kovnica - %1$d kovnici - %1$d kovnice - %1$d kovnic - - - %1$d račun na čakanju - %1$d računa na čakanju - %1$d računi na čakanju - %1$d računi na čakanju - - - Sredstva v %1$d kovnici, ki je ne uporabljate - Sredstva v %1$d kovnicah, ki ju ne uporabljate - Sredstva v %1$d kovnicah, ki jih ne uporabljate - Sredstva v %1$d kovnicah, ki jih ne uporabljate - - %1$s satov premaknjenih v %2$s - Prenesi v napravo - Prenehaj s prenašanjem - Naloži HLS - Nalagam %1$s (%2$d of %3$d) - Overitev - Prošnja za overitev - Priporočeni potrjevalci - Usposobljenost potrjevalca - Spletni zaznamki - Dodaj spletni zaznamek - Uredi spletni zaznamek - Zbranih %1$s od ciljnih %2$s satov - Nov cilj - Zahteva za izbris sledi - Zahteva za izbris sledi poslana - Pregled zahtev za izbris - Uporabniki - Dogodki - Tipi (kind) - IP-ji - Nastavitve - Predlagaj tekstovne izboljšave - Uporablja model umetne inteligence v napravi za predloge popravkov besedila in spremembe tona. - Sledeni prenosi - Pri pošiljanju dogodkov uporabi sledilnik oddajanja. V živo prikazuje napredek in stanje posameznih relejev med oddajanjem. - Predlagaj vadbo za deljenje - Prebere opravljene vadbe iz aplikacije Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) in predlaga objavo. Dovoljenje je zahtevano le ob povezavi. - Nastavitve urejevalnika - Samodejno ustvari osnutke - Samodejno shrani osnutek, ko tipkaš ali zapustiš urejevalnik z neodposlanim besedilom, in ga pošlje v vaše zasebne odhodne releje. - Dokazilo o delu (PoW) - Avtor je porabil računsko moč za rudarjenje tega zapisa do zahtevnosti %1$s – dokaz o opravljenem delu (PoW), ki otežuje pošiljanje neželene pošte. - Kratki zapiski in odgovori - Glavno javni vir za vsiljeno vsebino - Komentarji - Odgovori na članke, datoteke in drugo vsebino - Prijave - Releji ocenjujejo poročila glede na njihove stroške - Dolg zapis in poudarki - Članki in poudarki; redko, strošek je zanemarljiv - Glasovna sporočila - Javna glasovna sporočila in odgovori - Deli dalje - Višja glasnost za aktivne uporabnike - Odzivi - Tip (kind) z najvišjim obsegom; rudarjenje vsakega všečka porablja baterijo - Javni in pogovori v živo - Zamik zaradi rudarjenja, moti tekočemu pogovoru - Ovoji zasebnih sporočil - Releji za zasebna sporočila filtrirajo vsiljeno vsebino; rudari se le zunanji ovoj, nikoli vaše sporočilo. - Ostala javna vsebina - Ankete, statusi v živo, mali oglasi in vse ostalo javno - Rudarjenje dokaza o delu (PoW) - - Rudarjenje dokaza o delu… (%1$d objava v čakalni vrsti) - Rudarjenje dokaza o delu… (%1$d objavi v čakalni vrsti) - Rudarjenje dokaza o delu… (%1$d objave v čakalni vrsti) - Rudarjenje dokaza o delu… (%1$d objav v čakalni vrsti) - - - %1$s • rudarjenje pri %2$d bitu - %1$s • rudarjenje pri %2$d bitih - %1$s • rudarjenje pri %2$d bitih - %1$s • rudarjenje pri %2$d bitih - - - %1$s • čakanje na rudarjenje pri %2$d bitu - %1$s • čakanje na rudarjenje pri %2$d bitih - %1$s • čakanje na rudarjenje pri %2$d bitih - %1$s • čakanje na rudarjenje pri %2$d bitih - - - Privzeto (%1$d bit) - Privzeto (%1$d bita) - Privzeto (%1$d biti) - Privzeto (%1$d bitov) - - - %1$d bit - %1$d bita - %1$d biti - %1$d bitov - - Rudarjenje z dokazom o delu (PoW) - Prikazuje objave, ki še rudarijo svoj NIP-13 dokaz o delu, da lahko zaključijo postopek, potem ko zapustite aplikacijo. - Prekliči - Pošlji zdaj - <1 s - - %1$d sekunda - %1$d sekundi - %1$d sekunde - %1$d sekund - - - %1$d minuta - %1$d minuti - %1$d minut - %1$d minut - - - %1$d ura - %1$d uri - %1$d ure - %1$d ur - - - %1$d dan - %1$d dneva - %1$d dni - %1$d dni - - ≈ %1$s še ostane - Vsak čas bo - Vaš %1$s je zaključil rudarjenje, vendar ga ni bilo mogoče objaviti: %2$s - Vaš %1$s je končal z rudarjenjem, vendar ga ni bilo mogoče objaviti. Ponovni poskus bo izveden ob naslednjem zagonu aplikacije. - Sporočilo klepeta - Prijavi - Nov emoji paket - Uredi emoji paket - Moji emoji paketi - Emojiji - Javni emojiji so vidni vsem. Ko dodate ta paket, se bodo pojavili v meniju za odzive in v izbirniku ob vpisu dvopičja (\":\"). - Zasebni emojiji so šifrirano shranjeni na relejih in vidni le vam. V meniju za odzive in pri samodejnem dokončanju z »:« se pojavijo enako kot javni. - Osnutek obsega %1$d bajtov; ta skupnost omejuje te tipe (kind) na %2$d bajtov. - Osnutek obsega %1$d bajtov; ta skupnost omejuje dogodke na %2$d bajtov. - Danes imate že %1$d dogodkov tega tipa (kind) (omejitev je %2$d). - Stran Nowhere - Nowhere dogodek - Zbiranje sredstev Nowhere - Trgovina Nowhere - Nowhere peticija - Sporočilo Nowhere - Nowhere Drop - Umetnost Nowhere - Forum Nowhere - - %1$d sporočilo - %1$d sporočili - %1$d sporočila - %1$d sporočilo - - - %1$d član - %1$d člana - %1$d člani - %1$d članov - - Dodaj fotografijo - Zamenjaj sliko - Podatki o skupini so posodobljeni - Posodobitev ni uspela: %1$s - Skupine ni bilo mogoče ustvariti: %1$s - Skupine ni bilo mogoče zapustiti: %1$s - Dodajam %1$s… - Dodajanje ni uspelo \"%1$s\": %2$s - neznana napaka - Član odstranjen - Člana ni bilo mogoče odstraniti: %1$s - Administratorske pravice so bile podeljene - Administratorskih pravic ni bilo mogoče podeliti: %1$s - Administratorske pravice so bile preklicane - Administratorskih pravic ni bilo mogoče preklicati: %1$s - Ni član te skupine Prejemnikova \"lightning\" storitev na %1$s ni na voljo. Izračunana je bila iz \"lightning\" naslova \'%2$s\'. Napaka: %3$s. Preverite, ali strežnik deluje in ali je \"lightning\" naslov pravilen Ni bilo mogoče razrešiti %1$s. Preverite, ali ste povezani, ali je strežnik dosegljiv in ali je lightning naslov %2$s pravilen.\n\nIzjema je bila: %3$s Napaka pri razčlenjevanju JSON med pridobivanjem fakture iz %1$s. Preverite uporabnikove nastavitve za \"Lightning\" Ni mogoče ustvariti lightning fakture. Sporočilo od %1$s: %2$s Ni mogoče ustvariti lightning fakture od %1$s: Element \'pr\' ni bil najden v JSON-u. - Lokacijski klepet - Lokacijski kanal - Klepetajte z ljudmi v bližini lokacije (geohash) - Lokalno - Odlično za klepet z ljudmi v bližini – v soseski, mestu ali regiji. - Izberi lokacijo - Anonimno — enkratna identiteta za posamezno področje, nikoli vaš npub. - Združljivo z Bitchatom — doseže bližnje uporabnike na istih relejih. - Javno in minljivo — brez zgodovine sporočil, dostopno vsem v celici. - V čakanju - V delu - Potrebuje odobritev - Odobreno - Poslano - Neuspešno - Preklicano - Zavrnjeno - Vrednost za vrednost diff --git a/amethyst/src/main/res/values-sr-rSP/strings.xml b/amethyst/src/main/res/values-sr-rSP/strings.xml index c06f35d302..2634b58dbf 100644 --- a/amethyst/src/main/res/values-sr-rSP/strings.xml +++ b/amethyst/src/main/res/values-sr-rSP/strings.xml @@ -1,116 +1,11 @@ - - Ova objava ima više od %1$d heštega - Ova objava ima više od %1$d heštega - Ova objava ima više od %1$d heštegova - - - %1$d priloženi resurs - %1$d priložena resursa - %1$d priloženih resursa - - - +%1$d\nodgovor - +%1$d\nodgovora - +%1$d\nodgovora - - Спам - Broj spam događaja koji dolaze sa ovog relay-a - лажно представљање - Незаконито понашање - Захтевај брисање - Користите јавни кључ и јавни кључеви су само за читање. Пријавите се са приватним кључем да бисте могли да одговорите - Користите јавни кључ и јавни кључеви су само за читање. Пријавите се са приватним кључем да бисте могли да појачате постове - Користите јавни кључ и јавни кључеви су само за читање. Пријавите се са приватним кључем да бисте лајковали постове - Нема подешавања износа Зап. Дуго притисните да бисте променили - Koristite javni ključ koji je samo za čitanje. Prijavite se privatnim ključem da biste mogli da šaljete Zap-ove - Koristite javni ključ koji je samo za čitanje. Prijavite se privatnim ključem da biste mogli da pratite korisnike - Koristite javni ključ koji je samo za čitanje. Prijavite se privatnim ključem da biste mogli da prestanete da pratite korisnike - Koristite javni ključ koji je samo za čitanje. Prijavite se privatnim ključem da biste mogli da sakrijete reč ili rečenicu - Koristite javni ključ koji je samo za čitanje. Prijavite se privatnim ključem da biste mogli da prikažete reč ili rečenicu - Koristite javni ključ koji je samo za čitanje. Prijavite se privatnim ključem da biste mogli da otpremite sadržaj - Koristite javni ključ koji je samo za čitanje. Prijavite se privatnim ključem da biste mogli da potpisujete događaje - Neovlašćeno dešifrovanje - Potpisnik nije odobrio dešifrovanje koje je potrebno za ovu operaciju. Aktivirajte NIP-44 dešifrovanja u svojoj aplikaciji za potpisivanje i pokušajte ponovo - Potpisnik nije pronađen - Da li je aplikacija za potpisivanje deinstalirana? Proverite da li je potpisnik instaliran i da li ima ovaj nalog. Odjavite se i ponovo prijavite ako se aplikacija za potpisivanje promenila. - Spoljni potpisnik je vratio podatke koji su neočekivani za zahtev. Možda postoji greška u Amethyst-u ili aplikaciji za potpisivanje. izmena #%1$s - Predloži izmenu - Dodaj - Greška pri parsiranju poruke o grešci - Profil - Bezbednosni filteri - Traženje fakture… - Debitna usluga nije završila plaćanje. - Platiti %1$s putem %2$s? - Platiti ovu fakturu putem %1$s? - Unesite važeći iznos za ovu ponudu. - Jednokratno - Dnevno - Nedeljno - Mesečno - Plati - Plaćanje putem %1$s… - Plaćanje nije uspelo - Potrošivo za ovog primaoca: %1$s sats - Transakcija: %1$s - "Slika kartice pregleda za %1$s" - Opis - O čemu razmišljate? - Napišite poruku… - Objavi Sačuvaj - Pošalji - Napravi Preimenuj - Otkaži - Greška - Greške - Procenat uspešnih veza sa relay-om - Sačuvaj na telefon - Slika je sačuvana u galeriji fotografija telefona - Preuzimanje videa je počelo… - Preuzimanje medija je počelo… - Zakači na vrh - Otkači - Čuvanje slike nije uspelo - Video je sačuvan u galeriji videa telefona - Čuvanje videa nije uspelo - PDF je sačuvan u Downloads/Amethyst - Čuvanje PDF-a nije uspelo - Na ovom uređaju nije pronađena aplikacija za kameru - Kliknite i držite za snimanje poruke - Greška pri otpremanju - Otpremanje glasovne poruke nije uspelo - NIP-95 još nije podržan za glasovne poruke - Otpremanje glasa nije uspelo: %1$s - Bez promene - Duboko - Visoko - Neutralno - Korisnik nema podešenu Lightning adresu za primanje sats-a - "odgovorite ovde… " - Poznato - Novi zahtevi - Blokirani korisnici - Nove niti - Razgovori - Više opcija - Prikaži QR kod privatnog ključa - Prikaži QR kod šifrovanog privatnog ključa - Prati - Zaprati nazad - Sakrij lozinku - Nevažeći ključ - Nevažeći ključ: %1$s - Lozinka je obavezna - Ključ je obavezan - Ime je obavezno @@ -119,161 +14,7 @@ Novi profil četa: - Napusti - Prestani pratiti - Nestajući čet - Relay čet - Relay četovi - Relay četovi su grupe za razgovor kojima upravlja njihov matični relay. - Vidljivi su svima na Nostr-u i svako može da učestvuje. - Odlični su za otvorene zajednice oko specifičnih tema. Neke od ovih grupa su efemeralne - i stoga poruke nestaju s vremenom - Javni čet - MLS grupa - Metapodaci javnog četa - Javni četovi vidljivi su svima na Nostr-u i svako - može da učestvuje. Odlični su za otvorene zajednice oko specifičnih tema. - Moderacija se može kontrolisati brisanjem objava na relay-ima - Relay-i - Unesite između 1 i 3 relay-a koji hostuju ovu grupu. - Nostr klijenti koriste ovo podešavanje da znaju odakle da preuzmu poruke i kuda da ih šalju. - Ukloni - nikad - sada - č - Golotinja - Psovke / Govor mržnje - Rezervne kopije ključeva - Neuspelo šifrovanje privatnog ključa - Tajni ključ (nsec) kopiran u clipboard - Kopiraj moj tajni ključ - Autentifikacija neuspešna - Biometrija nije uspela da autentifikuje vlasnika ovog telefona - Biometrija nije uspela da autentifikuje vlasnika ovog telefona. Greška: %1$s - Tekst beleške kopiran u clipboard - \@npub autora kopiran u clipboard - ID beleške (@note1) kopiran u clipboard - "<Nije moguće dešifrovati privatnu poruku>\n\nPomenuti ste u privatnom/šifrovanom razgovoru između %1$s i %2$s." - Nalozi - Navigacija - Vi - Objave - Kreiraj - Sistem - Nazad - Podeli vezu pregledača - Podeli - Podeli kao sliku - Podeli kao URL slike - ID beleške - Obriši - Utišaj nit - Poništi utišavanje niti - - Blokiraj - Obeleživači - Obeleživači uspešno migrirani - Nacrti - Zakazane objave - Zakaži objavu - Otkaži zakazivanje - Zakazane objave možda neće biti objavljene dok ponovo ne otvorite aplikaciju. Omogućite uvek uključeno u Podešavanjima → UI podešavanja za pouzdano zakazivanje u pozadini. - Zakazane objave možda neće biti objavljene dok ponovo ne otvorite aplikaciju. Zakazane objave ostalih naloga neće se izvršiti dok je ovaj nalog aktivan. Omogućite uvek uključeno u Podešavanjima → UI podešavanja za pouzdano zakazivanje u pozadini. - %1$s · za %2$s - %1$s · pre %2$s - Sutra - Odjavljen - - Odjavljeni · %d zakazana objava obrisana - Odjavljeni · %d zakazane objave obrisane - Odjavljeni · %d zakazanih objava obrisano - - Zakazana objava objavljena - Zakazana objava neuspešna - Zakazane objave - Obaveštenja kada se zakazana objava objavi ili ne uspe da se objavi. - Pošalji sada - Greška: %1$s - Zakazano - Slanje… - Neuspešno - Poslano - Otkazano - - Imate %d zakazanu objavu koja još nije objavljena. Odjavljivanjem će biti trajno obrisana. - Imate %d zakazane objave koje još nisu objavljene. Odjavljivanjem će biti trajno obrisane. - Imate %d zakazanih objava koje još nisu objavljene. Odjavljivanjem će biti trajno obrisane. - - - %d u redu - %d u redu - %d u redu - - - · %d za 1h - · %d za 1h - · %d za 1h - - - na %d relay - na %d relay-a - na %d relay-a - - ID beleške kopiran - Ankete - Otvorene - Zatvorene - Značke - Zajednice - Nova zajednica - Uredi zajednicu - Moderatori - Relay-i - Proverljiva pravila (opciono) - Dozvoljene vrste događaja - Kratki tekst (1) - Dugački članak (30023) - Objava slike (20) - Objava videa (21) - Kratki video (22) - Komentar zajednice (1111) - Zabranjeni korisnici - Ulaz putem mreže poverenja (opciono) - Globalna maks. veličina događaja (opciono) - Nova značka - Dodeli značku - Značke profila - Slike - Treninzi - Novi trening - Trčanje - Hodanje - Vožnja bicikla - Planinarenje - Plivanje - Veslanje - Snaga - Joga - Meditacija - Dijeta - Post - Krug - Aplikacije Aplikacije - Pregledač - Učitavanje putem Tor-a. Dodirnite da koristite otvoreni veb. - Učitavanje putem otvorenog veba. Dodirnite da koristite Tor. - Omiljene - Omiljene aplikacije - Dodaj u omiljene - Ukloni iz omiljenih - Učitava se putem Tor-a. - Učitava se putem otvorenog veba. - Objavljeno na relay-ima - Otpremljena datoteka - Izvršeno plaćanje - Ta aplikacija još nije učitana. Pokušajte ponovo za trenutak. - Nedavne nApplet dozvole Još nema nApplet dozvola Dozvole koje dodelite nApplet-ima pojaviće se ovde. @@ -282,47 +23,11 @@ Opozovi - Identitet - Akcije tastature - Relay-i - Skladište - Plaćanja - Mreža - Otpremanje Pita koje mogućnosti su dostupne - Čita vaš javni ključ - Vezuje prečice tastature - Čita, potpisuje & objavljuje vaše događaje - Sopstveno privatno skladište - Plaća Lightning fakture - Preuzima veb i Blossom resurse - Otprema datoteke na vaš medija server - Tema - Obaveštenja - Poruke - Usklađuje boje vaše aplikacije - Prikazuje vam obaveštenja - Razmenjuje poruke sa drugim napplets-ima Mogućnost: %1$s - Ovaj nApplet želi da pročita vaš javni ključ. - Ovaj nApplet želi da pročita vaš profil i podatke naloga. - Ovaj nApplet želi da potpiše i objavi događaj vrste %1$d u vaše ime. - Ovaj nApplet želi da potpiše i objavi događaj vrste %1$d u vaše ime: - Ovaj nApplet želi da pošalje šifrovani događaj u vaše ime. - Ovaj nApplet želi da pročita događaje sa vaših relay-a. - Ovaj nApplet želi da koristi svoje privatno skladište. Ovaj nApplet želi da plati Lightning fakturu. - Ovaj nApplet želi da preuzme veb resurs. - Ovaj nApplet želi da otpremi datoteku na vaš medija server. - Ovaj nApplet želi da vam prikazuje obaveštenja. - Ovaj sajt želi da potpiše događaj vrste %1$d vašim Nostr ključem. - - Ovaj nApplet želi da plati Lightning fakturu od %1$d sat. - Ovaj nApplet želi da plati Lightning fakturu od %1$d sata. - Ovaj nApplet želi da plati Lightning fakturu od %1$d sats. - - Kratki snimci - Javni razgovori - Paketi praćenja - Uživo prenosi - Digni ruku - Spusti ruku - Utišaj - Uključi zvuk - Nije moguće poslati poruku - Utišaj mikrofon - Uključi mikrofon - Održava zvuk dok je soba otvorena. - Nest povezan - Nest — Uživo - Dodirnite za povratak. - Zaustavi - digao ruku - stupio na pozornicu - govori - pridružio se kao publika - napustio nest - Napusti - Nije moguće označiti sobu kao zatvorenu. Napuštanje u svakom slučaju — soba će se automatski zatvoriti. - - %1$d slušalac - %1$d slušaoca - %1$d slušalaca - - Ućutkaj ovog govornika - Vrati ovog govornika - Prati - Prestani pratiti - Utišaj - Uključi zvuk - Nije moguće sačuvati listu nest servera. Pokušajte ponovo. - Nest serveri - Vaši serveri - Sačuvano kao kind-10112 zamenljivi događaj kako bi drugi klijenti mogli da pročitaju vaše preference. - Preporučeni serveri - Ugrađeni predlozi koje možete dodati na svoju listu jednim dodirom. - Videi - Muzika - Plejliste - Epizode - Podkasti - - %1$d epizoda - %1$d epizode - %1$d epizoda - - Nova muzička numera - Nova plejlista - - %1$d zapis - %1$d zapisa - %1$d zapisa - - Dodaj u javne oznake - Ukloni iz javnih oznaka - Zakači na profil - Otkači sa profila - Nova lista oznaka - Metapodaci liste oznaka - Skupovi hashtaga - Novi skup interesovanja - Preimenuj - Privatno: gift-wrap beleška samo za obaveštene korisnike - Učini javnim - Odgovori na privatnu belešku uvek ostaju privatni - Vidljivo za Još nema primalaca: samo vi ćete moći da vidite ovu belešku. Dodajte osobe da biste je podelili. Dodaj Ukloni korisnika iz obaveštenja Pretraži i dodaj korisnika za obaveštavanje - Metapodaci liste oznaka mogu biti vidljivi svima na Nostr. Samo vaši privatni članovi su šifrovani. - Premesti u javno - Premesti u privatno - Napuni & pošalji Zap - Pošalji Zap - Napuni %1$s sats u %2$s i pošalji Zap %3$s %4$s sats · naknada ≈ %5$s sats - Opcija %s - Jedan izbor - Višestruki izbor - Nije moguće glasati - Anketa je zatvorena za nove glasove - Na ovoj vrsti ankete dozvoljen je samo jedan glas po korisniku - Autori ankete ne mogu glasati u sopstvenim anketama. - Šta ovo znači? - Ovaj sadržaj je isti od kada je objavljen - Ovaj sadržaj se promenio. Autor možda nije video ili odobrio promenu - Dodaj medije - Dodaj sliku - Dodaj video - Dodaj dokument - Server datoteka - Izaberite server na koji ćete otpremiti ovu datoteku - Medijski serveri Podesite željene servere za otpremanje medija. Preporučeni medijski serveri Amethyst-ova podrazumevana lista. Možete dodati pojedinačno ili dodati celu listu. - Odredišta plaćanja - Dodajte adrese za plaćanje za različite mreže (npr. bitcoin, lightning, ethereum). - Nije pronađena aplikacija za obradu ovog plaćanja. Molimo instalirajte kompatibilni novčanik. - Nije instalirana aplikacija za obradu %1$s plaćanja. Molimo instalirajte kompatibilni novčanik. - Nije moguće otvoriti plaćanje - Opcije privatnosti - Svi pratoci - Svi pratoci korisnika - Podrazumevana lista praćenja - U mojoj okolini - Globalno - Odabrano - Moje - Lista isključenih - Nova lista praćenja - Novi paket praćenja - Uredi listu - Podrazumevani port je 9050 - Orbot Socks port - Aktivan Tor motor - Koristite internu verziju ili Orbot - Tor/Podešavanja privatnosti - Brzo izmenite sva podešavanja ispod - Koristi Tor za sve .onion url adrese - Prisili Tor za slanje i primanje DM poruka - Nepouzdani Relays - Prisili Tor na outbox/inbox relays - Pouzdani Relays - Prisili Tor na sve relays sa vaših lista - Profilne slike - Prisili Tor pri učitavanju profilnih slika - Pregledi URL-ova - Prisili Tor pri učitavanju pregleda URL-ova - Slike - Prisili Tor pri učitavanju slika - Video - Prisili Tor pri učitavanju videa - Novčane operacije - Prisili Tor na zaps, Lightning i Cashu transakcije - Nostr verifikacija adrese - Prisili Tor pri verifikaciji NIP-05 adresa - Otpremanje medija - Prisili Tor pri otpremanju sadržaja - Interno - Isključeno - Osnovno - Podrazumevano - Sve osim medija - Potpuna privatnost - Prilagođeno - Koristi Tor kada server to zahteva - Sakrij svoju IP adresu od nasumičnih relays - Sakrij svoju IP adresu od svega osim od slika i videa - Sakrij svoju IP adresu u svim vezama - Napravite sopstvena podešavanja - Privatne poruke - Obaveštava vas kada stigne privatna poruka - Primljeni Zaps - Obaveštava vas kada vam neko pošalje Zap - Od %1$s - za %1$s - Odgovori - Označi kao pročitano - Nove poruke - Novi Zaps - Reakcije - Obaveštava vas kada neko reaguje na vašu objavu - %1$s je reagovao na vašu objavu - za %1$s - Nove reakcije - Šah - Obaveštava vas o događajima u šahovskoj partiji - %1$s je prihvatio vaš šahovski izazov - %1$s je odigrao — vaš je red - Ažuriranja šaha - Odgovori - Obaveštava vas kada neko odgovori na vašu objavu %1$s je odgovorio na: %1$s - Novi odgovori - Pominjanja - Obaveštava vas kada vas neko pomene ili citira u objavi - %1$s vas je pomenuo - Nova pominjanja @@ -549,38 +79,6 @@ - Dolazni pozivi - Obaveštenja za dolazne glasovne i video pozive - Dolazni poziv - Dolazni glasovni poziv… - Dolazni video poziv… - Poziv sa %1$s - Pozivi - Obaveštenje o aktivnom pozivu - Prekini poziv - Prihvati - Odbij - Isključi mikrofon - Uključi mikrofon - Kamera uključena - Kamera isključena - Zvučnik - Slušalica - Amethyst potreban pristup mikrofonu za pokretanje glasovnog poziva. Omogućite ga u podešavanjima aplikacije. - Amethyst potreban pristup kameri i mikrofonu za pokretanje video poziva. Omogućite ih u podešavanjima aplikacije. - Podešavanja poziva - Održava veze sa vašim inbox relays aktivnim za obaveštenja u realnom vremenu - Amethyst obaveštenja aktivna - - Povezan sa %1$d dolaznim relay-om - Povezan sa %1$d dolazna relay-a - Povezan sa %1$d dolaznih relay-a - - - Povezan sa %1$d relay-om - Povezan sa %1$d relay-a - Povezan sa %1$d relay-a - - Povezivanje sa inbox relays… Uvek aktivna usluga obaveštenja Održava stalnu vezu sa vašim inbox relays za trenutnu isporuku obaveštenja. Prikazuje stalno obaveštenje. Troši više baterije, ali osigurava da nikada ne propustite poruku. - Podeli obaveštenja prema praćenima - Prikaži dve kartice obaveštenja — Praćeni (osobe koje pratite) i Svi. Indikator nepročitanih svetli samo za aktivnost od osoba koje pratite. - Prikaži poruke - Uključi direktne i grupne poruke na kartici Obaveštenja. Isključite da poruke budu samo na kartici Poruke. - Obavesti: - Danas - Sakrij - Prikaži - Upozori - Filtriraj neželjene poruke - Sakriva objave od stranaca koje su bile potpuno iste 5 ili više puta - Dodaj klijentsku oznaku mojim događajima - Kada je omogućeno, Amethyst dodaje NIP-89 klijentsku oznaku događajima koje objavljujete. - Upozori na prijave - Prikazuje poruku upozorenja kada objave ili profili imaju prijave od vaših praćenih - Sakrij objave koje krše pravila zajednice - Uklanja objave iz feedova zajednice kada zajednica objavi NIP-9B dokument pravila i događaj ne ispuni uslove. Nema efekta kada zajednica nema strukturisana pravila. - Podešavanja filtriranja - Blokiran sadržaj - Još niste blokirali nijednog korisnika. - Nijedan nalog nije označen kao neželjeni u ovoj sesiji. - Nema skrivenih reči. Dodajte reč ispod da sakrijete objave koje je sadrže. - Nisu unapred odabrani tipovi reakcija za ovog korisnika. Dugo pritisnite dugme srca za promenu - Čitanje sa relay-a - Pisanje na relay - Količina u bajtovima koja je poslata na ovaj relay, uključujući filtere i događaje - Količina u bajtovima koja je primljena sa ovog relay-a, uključujući filtere i događaje - Politika privatnosti - Standardi bezbednosti dece - O nama & Pravno - Cashu token - Nije podešena Lightning adresa - Relay-i - Paketi praćenja - Čitanje - Algoritmi kanala - Tržište - Prenosi uživo - Zajednice - Ćaskanje - Osetljiv sadržaj - Dodaje upozorenje o osetljivom sadržaju pre prikazivanja ovog sadržaja - UI podešavanja Podešavanja aplikacije - Prevodi - Reakcije - Podešavanja - Podešavanja naloga - Podešavanja aplikacije - Opasna zona - Resetuj Marmot stanje - Marmot stanje resetovano. - Neuspešno resetovanje Marmot stanja: %1$s - Uvek - Neograničeni WiFi - Nikad - Potpuno - Pojednostavljeno - Performanse - Klasično - Moderno - Sistem - Svetlo - Tamno - Tema - Pregled slika - Reprodukcija videa - Automatska reprodukcija videa - Pregled URL-a - Imerzivno skrolovanje - Sakrij navigacione trake pri skrolovanju - UI mod - Izaberite stil objave - Stil galerije profila - Izaberite stil galerije - Spameri - Utišano. Kliknite za uključivanje zvuka - Zvuk uključen. Kliknite za utišavanje - Premotaj unazad %d sekundi - Premotaj unapred %d sekundi - Objava isključivo za lokaciju - Videće je samo pratioci te lokacije. Vaši opšti pratioci je neće videti. - - %1$d zapis - %1$d zapisa - %1$d zapisa - - - +%1$d zapis više - +%1$d zapisa više - +%1$d zapisa više - - Otpremi naslovnu sliku - Izaberite kvadratnu sliku kao umetničko delo za ovu numeru. - Otpremi audio datoteku - Izaberite MP3, WAV ili FLAC. Biće otpremljeno na vaš medijski server pri čuvanju. - Otpremanje naslovne slike i audio sadržaja i objavljivanje. Ovo će se nastaviti čak i ako napustite ekran. - Uredi plejlistu - Otpremi naslovnu sliku - Izaberite kvadratnu sliku kao umetničko delo za ovu plejlistu. - Otpremanje naslovne slike i objavljivanje. Ovo će se nastaviti čak i ako napustite ekran. Javno Grupa Privatno - Tema - Nije moguće otpremiti - Najpre unesite odredište poruke - Novčanik nije pronađen - Amethyst nije mogao da pronađe nijednu aplikaciju novčanika koja podržava Nostr Wallet Connect (NWC). -\n\nŠta možete da uradite: -\n\t1. Proverite NWC podršku: Proverite da li vaša preferovana aplikacija novčanika podržava Nostr Wallet Connect. -\n\t2. Kreirajte vezu: Idite na aplikaciju novčanika i kreirajte novu NWC vezu. -\n\t3. Povežite sa Amethyst: Vaš novčanik će obično ponuditi tri opcije: -\n\t\t3.1 Automatska veza: Dugme za automatsko otvaranje i povezivanje sa Amethyst. Ako postoji, kliknite to dugme, otvorite Amethyst i pritisnite sačuvaj na novom ekranu. -\n\t\t3.2 Ručna veza: URI veze koji možete kopirati i kliknuti ikonu za nalepljivanje na ovom ekranu da ga direktno unesete. -\n\t\t3.3 QR kod: Novčanik kreira QR kod koji možete očitati dugmetom za QR kod na ovom ekranu. - - Tamna, svetla ili sistemska tema - Automatski učitavaj slike i GIF-ove - Automatski učitavaj video zapise i GIF-ove - Automatski reprodukuj video zapise kada su vidljivi na ekranu - Prikaži preglede URL-a - Kopiraj u privremenu memoriju - Kopirano u privremenu memoriju - Podeli ili sačuvaj Pošalji kao DM - Medij dodat - Medij dodat u vašu galeriju profila - Nije moguće poslati Zap - Nedostaje Lightning podešavanje - Korisnik %1$s nema podešenu Lightning adresu za primanje sats-a - Greška pri otvaranju aplikacije za potpisivanje - Aplikacija za potpisivanje nije pronađena. Proverite da li je možda deinstalirana - Nije moguće reprodukovati ovaj video - Kodek ili format nije podržan na ovom uređaju (%1$s). Pokušajte da ga otvorite u pretraživaču. - Otvori u pretraživaču - Zahtev za potpisivanje odbijen - Proverite da li je aplikacija za potpisivanje odobrila ovu transakciju - Nisu pronađeni novčanici za plaćanje Lightning fakture (Greška: %1$s). Instalirajte Lightning novčanik da biste koristili Zap-ove - Nisu pronađeni novčanici za plaćanje Lightning fakture. Instalirajte Lightning novčanik da biste koristili Zap-ove - Nije moguće otvoriti Blossom veze - Blossom aplikacije nisu pronađene. Instalirajte lokalnu Blossom aplikaciju da biste videli ovu datoteku - Skrivene reči - Utišane niti - Nema utišanih niti - Slika profila - Prikaži slike profila - Nije moguće platiti fakturu - Nije moguće izvršiti povlačenje - Nije moguće unovčiti Cashu - Mint je dostavio sledeću poruku o grešci: %1$s - Cashu primljen - %1$s sats je poslato u vaš novčanik. (Naknade: %2$s sats) - Na sistemu nije pronađen kompatibilni Cashu novčanik - Nije moguće dohvatiti fakturu sa servera primaoca - Vaš Wallet Connect provajder je vratio sledeću grešku: %1$s - Nije moguće sastaviti LNUrl iz Lightning adrese \"%1$s\". Proverite podešavanja korisnika - Nije moguće dohvatiti fakturu od %1$s: %2$s - Greška pri parsiranju JSON-a sa %1$s. Proverite Lightning podešavanja korisnika - URL povratnog poziva nije pronađen u odgovoru od %1$s - Neispravan iznos fakture (%1$s sats) od %2$s. Trebalo je biti %3$s - Nije moguće kreirati Lightning fakturu pre slanja Zap-a. Lightning novčanik primaoca je poslao sledeću grešku: %1$s - Korisnik samo za čitanje - Reakcije nisu podešene - Obaveštenja - Dostava - Prikaz u aplikaciji - Kategorije - Poruka od %1$s - Zdravo %1$s, da li je ovo još uvek dostupno? - Odjeća - Dodaci - Elektronika - Nameštaj - Kolekcionarski predmeti - Knjige - Kućni ljubimci - Sport - Fitnes - Umetnost - Ručni radovi - Dom - Kancelarija - Hrana - Razno - Ostalo - Otpremanje medija nije uspelo - Komprimovana datoteka se ne može otvoriti - Greška pri otpremanju: %1$s - Server nije dostavio URL nakon otpremanja - Otpremljeni mediji se ne mogu preuzeti sa servera - Preuzeta datoteka se ne može proveriti nakon otpremanja: %1$s - Otpremanje na %1$s nije uspelo: %2$s - Brisanje nije uspelo: %1$s - Medij je prevelik za NIP-95 - Enkriptuj datoteke - Enkriptujte datoteke pre otpremanja radi privatnosti. Neki serveri možda neće prihvatiti enkriptovane datoteke na besplatnim nalozima. - Enkriptovano otpremanje nije uspelo - Mnogi serveri ne prihvataju enkriptovane datoteke na besplatnim nalozima. Možete pokušati ponovo bez enkripcije. - Koristi H.265/HEVC kodek - Bolji kvalitet uz manje veličine datoteke, ali ne podržavaju svi uređaji reprodukciju H.265. - Konvertuj GIF u MP4 - Konvertuje animirane GIF fajlove u MP4 video za manju veličinu datoteke i bolju kompatibilnost reprodukcije. - Ukloni privatne metapodatke - Pokušava da ukloni privatne metapodatke iz podržanih medijskih datoteka pre otpremanja - Metapodaci se ne mogu ukloniti - Uklanjanje privatnih metapodataka iz medija nije uspelo. Otpremanje je otkazano. - Otpremanje otkazano - Metapodaci se ne mogu ukloniti iz AVIF-a: %1$s - Početna - Otkrij - Poruke - Obaveštenja - Kalendari - Liste kalendara - Šah - Novčanik - Cashu novčanik (NIP-60) Nutzap ključ (napredno) Zasebni privatni ključ koji se koristi samo za primanje NIP-61 nutzaps. Nije vaš Nostr identifikacioni ključ. Generiši novi ključ P2PK privatni ključ (hex) - Uredi kovnice Sačuvaj izmene - - +%1$d više - +%1$d više - +%1$d više - - - Preporučuje %1$d drugi - Preporučuju %1$d druga - Preporučuje %1$d drugih - - Popularne kovnice - Odgovarajuće kovnice - Primljeno - Poslato - Objavite zahtev za brisanje vaše kind:38000 preporuke za %1$s. Relay-i koji poštuju NIP-09 će je ukloniti. - Oporavljeno %1$s sats u %2$s dokaza. - Platiti %1$s sat + do %2$s sat u naknadama? - Nutzap nije uspeo - Nema javnog ključa primaoca na beleški - Nutzaps su javni i bi otkrili ovu privatnu belešku. Umesto toga koristite Lightning zap. - Referenca događaja se ne može izgraditi - Čekanje na plaćanje fakture… - Proveravanje kovnice… - Sporo - Normalno - Brzo - ~1 sat - - Pošalji %1$s sats, %2$d način - Pošalji %1$s sats, %2$d načina - Pošalji %1$s sats, %2$d načina - - - Koristi podelu Zap-a ove beleške na %1$d način - Koristi podelu Zap-a ove beleške na %1$d načina - Koristi podelu Zap-a ove beleške na %1$d načina - - - Podela između %1$d primaoca - Podela između %1$d primaoca - Podela između %1$d primalaca - - - Preskakanje %1$d primaoca koji ima samo Lightning adresu — on-chain zahteva Nostr javni ključ za izračunavanje adrese. - Preskakanje %1$d primaoca koji imaju samo Lightning adresu — on-chain zahteva Nostr javni ključ za izračunavanje adrese. - Preskakanje %1$d primaoca koji imaju samo Lightning adresu — on-chain zahteva Nostr javni ključ za izračunavanje adrese. - - učitavanje stanja - izgradnja transakcije - potpisivanje - emitovanje - objavljivanje potvrde - Bitcoin chain backend nije konfigurisan - Vaše Bitcoin stanje se ne može učitati - Transakcija se ne može izgraditi - Deo primaoca je ispod praga prašine - Transakcija se ne može potpisati - Transakcija se ne može emitovati - Uplata poslata, ali potvrda zap-a nije mogla biti objavljena - - Plaćanje poslato (%1$d od %2$d priznanice objavljeno), ali sledeća priznanica nije mogla biti objavljena - Plaćanje poslato (%1$d od %2$d priznanice objavljeno), ali sledeća priznanica nije mogla biti objavljena - Plaćanje poslato (%1$d od %2$d priznanica objavljeno), ali sledeća priznanica nije mogla biti objavljena - - Uvezi praćenja - Novi proizvod - Novi članak - Novi kalendarski događaj - Uredi kalendarski događaj - Novi kalendar - Uredi kalendar - Mesec - Nedelja - Dan - - %1$s, %2$d događaj - %1$s, %2$d događaja - %1$s, %2$d događaja - - Upravo se dešava - %1$s · završava %2$s - Podeli kalendarski događaj - Podsetnici kalendara - Upozorenje kada će događaj koji pohađate uskoro početi. - Kalendarski događaj - - Počinje za %1$d minut - Počinje za %1$d minuta - Počinje za %1$d minuta - - Otpremanje slike nije uspelo - Odabrana slika nije mogla biti otpremljena. Pokušajte ponovo ili nalepite URL. - Podsetnici kalendara - Slanje podsetnika - Obaveštenje se šalje kada će događaj koji pohađate uskoro početi. - Otvori u mapama - Otvori link - Otvori sve reakcije na ovu objavu - Zatvori sve reakcije na ovu objavu - Donja navigaciona traka Prevucite za promenu redosleda. Uključite/isključite da biste dodali ili uklonili stavku iz donje trake. Sa nula stavki donja traka je skrivena. Promeni redosled Odaberite koje kartice se prikazuju na početnom ekranu. Kada je aktivna samo jedna kartica, traka kartica je skrivena. - Sve - Korisnički interfejs profila Odaberite koje sekcije i feedovi se prikazuju na korisničkim profilima. Sve opcije su podrazumevano uključene. - Bedževi profila - Preporuke aplikacija - Feed primljenih Zap-ova - Feed pratilaca - Red reakcija - Dugmad video plejera - Audio vizualizator - Datum isteka - Nevažeća adresa - Amethyst je primio URI za otvaranje, ali taj URI je bio nevažeći: %1$s - DM Inbox Relay-i - Relay-i za pretragu - Dobre opcije su:\n%1$s - Outbox Relay-i - Inbox Relay-i - Podešavanja relay-a - Javni Outbox/Home Relay-i - Korisnik objavljuje sadržaj na ove relay-e - Ovaj tip relay-a čuva sav vaš sadržaj. Amethyst će ovde slati vaše objave i drugi će koristiti ove relay-e da pronađu vaš sadržaj. Unesite između 1–3 relay-a. Mogu biti lični, plaćeni ili javni relay-i. - Javni Inbox Relay-i - Korisnik prima obaveštenja na ovim relay-ima - Ovaj tip relay-a prima sve odgovore, komentare, sviđanja i zaps na vaše objave. Mogu biti plaćeni ili besplatni relay-i. Ograničenja postavljena od strane operatora relay-a mogu ograničiti obaveštenja koja primate na bolje i gore. Na primer, ako vas napadaju spam komentarima, plaćeni relay-i mogu filtrirati spam. Unesite između 1–3 relay-a. - DM Inbox Relay-i - Korisnik prima DM-ove na ovim relay-ima - Unesite između 1–3 relay-a koji će služiti kao vaš privatni inbox. Drugi će koristiti ove relay-e da vam šalju DM-ove. DM Inbox relay-i trebalo bi da prihvataju poruke od svakoga, ali da dozvoljavaju samo vama da ih preuzimate. Dobre opcije su:\n - inbox.nostr.wine (plaćeno)\n - auth.nostr1.com (besplatno)\n - you.nostr1.com (lični relay-i - plaćeno) - KeyPackage Relay-i - Relay-i gde su objavljeni vaši MLS KeyPackages (MIP-00). Drugi korisnici preuzimaju ove KeyPackages da bi vas pozvali u Marmot grupne razgovore. Unesite između 1–3 relay-a koji prihvataju KeyPackage događaje od vas i dozvoljavaju javna čitanja. - Privatni Home Relay-i - Unesite između 1–3 relay-a za čuvanje događaja koje niko drugi ne može videti, poput vaših nacrta i/ili podešavanja aplikacije. Idealno bi bilo da ovi relay-i budu lokalni ili zahtevaju autentifikaciju pre preuzimanja sadržaja svakog korisnika. - Povezani Relay-i - Trenutna lista relay-a koji se koriste - Relay-i za pretragu - Lista relay-a koji se koriste pri pretrazi sadržaja ili korisnika. Označavanje i pretraga neće raditi ako nema dostupnih opcija. Uverite se da implementiraju NIP-50. - Lokalni Relay-i - Lista relay-a koji rade na ovom uređaju. - Prosleđuj profile lokalnom relay-u - Pošalji sve primljene profile (kind 0) događaje vašem lokalnom relay-u - Pouzdani Relay-i - Relay-i kojima verujete da im nije potrebna Tor veza - Omiljeni Feed-ovi Relay-a - Relay-i kojima često odlazite da biste videli njihov globalni feed - Proxy Relay-i - Agregatorni relay-i koje aplikacija mora koristiti za preuzimanje vaših feedova, poput filter.nostr.wine. Ovo zamenjuje outbox model i čini da se aplikacija povezuje samo na relay-e u vašim listama. - Broadcast Relay-i - Relay-i specijalizovani za guranje vaših beleški na sve ostale relay-e, poput sendit.nosflare.com. Amethyst će dodati ovaj relay svim novim događajima koje vi napravite - Indexer Relay-i - Relay-i specijalizovani za hostovanje metapodataka i lista relay-a svih korisnika, poput purplepag.es. Amethyst će koristiti ove relay-e da pronađe korisnike koji nisu u vašim listama. - Blokirani Relay-i - Amethyst se nikada neće povezati na ove relay-e - Izvezi podešavanja relay-a Pregled O projektu Linkovi Održavaoci Teme - Dokaz vremenskog pečata - Postoji dokaz da je ova objava bila potpisana neko vreme pre %1$s. Dokaz je utisnut u Bitcoin blockchain na taj datum i vreme. - Uredi objavu - Nije moguće odgovoriti na belešku u nacrtu - Nije moguće citirati belešku u nacrtu - Nije moguće reagovati na belešku u nacrtu - Nije moguće zap-ovati belešku u nacrtu - Beleška u nacrtu - Loš zahtev - Server ne može ili neće da obradi zahtev. - Neovlašćeno - Korisnik nema važeće akreditive za autentifikaciju - Plaćanje obavezno - Server zahteva plaćanje za dovršetak zahteva - Zabranjeno - Korisnik nema prava pristupa za izvršavanje zahteva - Nije pronađeno - Server ne može da pronađe traženu adresu - Metod nije dozvoljen - Server podržava metod zahteva, ali ne i ciljni resurs - Neprihvatljivo - Server ne nalazi nikakav sadržaj koji zadovoljava zahtev. - Obavezna autentifikacija proxy-ja - Korisnik nema važeće akreditive za autentifikaciju - Vremensko ograničenje zahteva - Server je prekoračio vremensko ograničenje čekajući nekoga drugog - Konflikt - Server ne može da ispuni zahtev jer postoji konflikt sa resursom - Nestalo - Traženi sadržaj je trajno obrisan sa servera i neće biti vraćen - Dužina obavezna - Server odbija zahtev jer zahteva definisanu vrednost - Preduslov nije ispunjen - Preduslovi zahteva u header poljima koje server nije ispunio - Korisni teret prevelik - Zahtev je veći od definisanih ograničenja servera i server odbija da ga obradi - URI predugačak - URL koji je klijent zatražio je predugačak za server da ga obradi. - Nepodržani tip medija - Zahtev koristi format medija koji server ne podržava - Opseg nije zadovoljivši - Server ne može da ispuni vrednost navedenu u Range header polju zahteva. - Očekivanje nije ispunjeno - Server ne može da ispuni zahteve navedene u Expect header polju zahteva - Nadogradnja obavezna - Server odbija da obradi zahtev koristeći trenutni protokol osim ako klijent ne nadogradi na drugi protokol. - Interna greška servera - Server je naišao na neočekivanu grešku i ne može da dovršiti zahtev - Nije implementovano - Server ne može da ispuni zahtev ili ne prepoznaje metod zahteva - Loš gateway - Server deluje kao gateway i dobio je nevažeći odgovor od hosta - Usluga nedostupna - Ovo se često dešava kada je server preopterećen ili isključen radi održavanja - Vremensko ograničenje gateway-a - Server je delovao kao gateway ili proxy i prekoračio je vremensko ograničenje čekajući odgovor - HTTP verzija nije podržana - Server ne podržava HTTP verziju u zahtevu - Varijanta takođe pregovara - Server ima internu grešku konfiguracije - Nedovoljno prostora za skladištenje - Server nema dovoljno prostora za uspešnu obradu zahteva - Petlja otkrivena - Server je otkrio beskonačnu petlju tokom obrade zahteva - Obavezna mrežna autentifikacija - Klijent mora biti autentifikovan za pristup mreži Blossom serveri Dodajte onoliko servera koliko želite. Možete odabrati koji ćete koristiti kada budete otpremali svoju sliku - Dodaj NIP-96 server - Dodaj Blossom server Preuzmi - Otvaranje fajla nije uspelo - Nema instaliranih torrent aplikacija za otvaranje i preuzimanje fajla. - Događaj nema dovoljno informacija za izgradnju magnet linka - Moje liste - Feedovi - Heštegovi - Skupovi interesovanja - Lokacije - Zajednice - Liste - Algoritmi feeda - Svi omiljeni algoritmi feeda - Relay-i - Omiljeni algoritmi feeda - Privatna poruka - Javna poruka - Deljenje slike nije moguće, pokušajte ponovo kasnije… - Deljenje videa nije moguće, pokušajte ponovo kasnije… - Preuzimanje videa… - Nemoj prevoditi sa - Jezici prikazani ovde neće biti prevedeni. Odaberite jezik da ga uklonite i ponovo ga prevedete. - Prevedi na - Odaberite jezik na koji će se sadržaj prevoditi. - Jezičke preferencije prikaza - Za svaki prevedeni jezički par, odaberite koji jezik da se prikaže prvi. - Pauziraj - Reprodukuj - Ova poruka će nestati za %1$s - Metapodaci liste praćenja - Metapodaci lista praćenja mogu biti vidljivi svima na Nostr-u. Samo vaši privatni članovi su šifrovani. - Metapodaci paketa praćenja - Metapodaci paketa praćenja vidljivi su svima na Nostr-u i često se objavljuju na mnogim veb-sajtovima kao početni komplet za nove korisnike. - Uredi paket praćenja - Proširi - Pokušaj ponovo - Reakcija - Glasovna objava - Glasovni odgovor - Odlazni relay-i - Aplikacije - Preporuke aplikacija - Korisničke postavke - Audio zaglavlje - Audio zapis - Muzički zapis - Muzička lista za reprodukciju - Epizoda podkasta - Podkast emisija - Autorski podkasti - Omiljeni podkasti - Dodele bedževa - Definicije bedževa - Prihvaćeni skup bedževa - Bedževi profila - Blokirani relay-i - Blossom serveri - Nests serveri - Blossom autentifikacija - Relay-i za emitovanje - Lista obeleživača - Stara lista obeleživača - Dnevni termin - Kalendar - Termin - RSVP termina - Šahovske partije - Šahovska autentifikacija - Omiljeni relay-i - Šahovski izazovi - Prihvatanje šahovske partije - Šahovski potez - Kraj šahovske partije - Ponuda remija - Definicija kanala - Sakrivanje poruke kanala - Lista kanala - Poruka kanala - Metapodaci kanala - Isključivanje korisnika kanala - DM datoteka - DM poruka - DM relay-i - Oglasi - Komentari - Definicija zajednice - Lista zajednica - Objava zajednice - Lista praćenja - Brisanja - Nacrti - Emoji paketi - Lista emoji paketa - Efemeralni čet - Efemeralne čet sobe - Zaglavlja datoteka - Galerija profila - Serveri datoteka - Blob podaci - Blob zaglavlja - Medicinski podaci - Paketi praćenja - Deljenja (16) - Geohash praćenja - Git problem - Git zakrpa - Git repozitorijum - Git odgovor - Zap ciljevi - Praćenja heštegova - Istaknuto - HTTP autentifikacija - Lista indeks relay-a - Prolog avanture - Scena avanture - Čitanje avanture - Imenovani obeleživači - Uživo četovi - Uživo strimovi - Zap-ovi - NWC zahtev - NWC odgovor - Privatni Zap-ovi - Zap zahtev - Blogovi - Sala za sastanke - Prisustvo u sobi - Prostor za sastanke - Profil - Lista isključenih - DVM status - DVM zahtev za sadržaj - DVM odgovor na sadržaj - DVM korisnički zahtev - DVM korisnički odgovor - Liste osoba - Slike - Treninzi - Pinovi - Zap anketa - Anketa - Odgovor na anketu - NIP-04 DM-ovi - Privatni relay-i - Proxy relay-i - Javna poruka - Reakcije - Kontakt kartica - Relay autentifikacija - Otkrivanje relay-a - Objava monitora relay-a - Skup relay-a - Prijave - Deljenja - Brisanje korisnika - Pečati - Relay-i za pretragu - Status korisnika - Beleške - Izmene - Torrenti - Komentari torrenta - Pouzdani relay-i - Pouzdani pružaoci usluga - Glasovna poruka - Glasovni odgovor - Veb obeleživač - %1$d%% dostupnost - Namecoin postavke - Sinhronizacija relay-a - događaji od vas - događaji upućeni vama - pretraživi događaji - DM-ovi - profili - odlazne liste - Poslednji put viđen pre %1$s - Poslednji put viđen %1$s (pre %2$s) - Poslednji put viđen upravo sada - Nikad viđen - - %1$d minut - %1$d minuta - %1$d minuta - - - %1$d sat - %1$d sata - %1$d sati - - - %1$d dan - %1$d dana - %1$d dana - - - %1$d nedelja - %1$d nedelje - %1$d nedelja - - - %1$d mesec - %1$d meseca - %1$d meseci - - - %1$d godina - %1$d godine - %1$d godina - - - %1$d faktura na čekanju - %1$d fakture na čekanju - %1$d faktura na čekanju - - - Sredstva u %1$d mint-u koji ne koristite - Sredstva u %1$d minta koje ne koristite - Sredstva u %1$d mintova koje ne koristite - - Premešćeno %1$s sat na %2$s. - Prikaži na uređaju - Zaustavi prikazivanje - HLS otpremanje - Otpremanje %1$s (%2$d od %3$d) - Atestacija - Zahtev za atestaciju - Preporuka atestora - Stručnost atestora - Veb obeleživači - Dodaj veb obeleživač - Uredi veb obeleživač - %1$s prikupljeno od cilja od %2$s sats - Novi cilj - Zahtev za nestanak - Zahtev za nestanak poslat - Istorija nestanaka - Korisnici - Događaji - Vrste - IP adrese - Postavke - Predloži poboljšanja teksta - Koristi AI model na uređaju za predlaganje ispravki teksta i promena tona. - Praćena emitovanja - Koristite praćeni emiter pri slanju događaja. Prikazuje uživo napredak i status po relay-u tokom emitovanja. - Predloži treninge za deljenje - Čita završene treninge iz Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) i predlaže njihovo deljenje kao objavu. Dozvola se traži samo kada se povežete. - Postavke pisanja - Automatski kreiraj nacrte - Automatski čuva nacrt kada kucate ili napustite editor sa neposlat im tekstom i šalje na vaše privatne odlazne relay-e. - Novi emoji paket - Uredi emoji paket - Moji emoji paketi - Emojiji - Javni emojiji vidljivi su svima i pojavljuju se u vašem meniju reakcija i automatskom dovršavanju „:\" kada je ovaj paket na vašoj emoji listi. - Privatni emojiji čuvaju se šifrovano na relay-ima i vidljivi su samo vama. Pojavljuju se u vašem meniju reakcija i automatskom dovršavanju „:\" baš kao i javni. - Nacrt ima %1$d bajtova; ova zajednica ograničava ovu vrstu na %2$d bajtova. - Nacrt ima %1$d bajtova; ova zajednica ograničava događaje na %2$d bajtova. - Danas ste već objavili %1$d događaja ove vrste (ograničenje %2$d). - Nowhere sajt - Nowhere događaj - Nowhere prikupljanje sredstava - Nowhere prodavnica - Nowhere peticija - Nowhere poruka - Nowhere drop - Nowhere umetnost - Nowhere forum - - %1$d poruka - %1$d poruke - %1$d poruka - - - %1$d član - %1$d člana - %1$d članova - - Informacije o grupi ažurirane - Ažuriranje nije uspelo: %1$s - Kreiranje grupe nije uspelo: %1$s - Napuštanje grupe nije uspelo: %1$s - Dodavanje %1$s… - Dodavanje %1$s nije uspelo: %2$s - nepoznata greška - Član uklonjen - Uklanjanje člana nije uspelo: %1$s - Administratorske privilegije dodeljene - Dodeljivanje admin privilegija nije uspelo: %1$s - Administratorske privilegije opozvane - Opozivanje admin privilegija nije uspelo: %1$s - Niste član ove grupe Lightning usluga primaoca na %1$s nije dostupna. Izračunata je iz lightning adrese „%2$s\". Greška: %3$s. Proverite da li je server aktivan i da li je lightning adresa ispravna Nije moguće razrešiti %1$s. Proverite da li ste povezani, da li je server aktivan i da li je lightning adresa %2$s ispravna.\n\nGreška: %3$s Greška pri parsiranju JSON-a iz preuzimanja fakture korisnika %1$s. Proverite korisnikovo lightning podešavanje diff --git a/amethyst/src/main/res/values-sv-rSE/strings.xml b/amethyst/src/main/res/values-sv-rSE/strings.xml index 438ce567e2..3c2d2c02c0 100644 --- a/amethyst/src/main/res/values-sv-rSE/strings.xml +++ b/amethyst/src/main/res/values-sv-rSE/strings.xml @@ -1,156 +1,13 @@ - - Det här inlägget har fler än %1$d hashtagg - Det här inlägget har fler än %1$d hashtaggar - - - %1$d tillgång paketerad - %1$d tillgångar buntade - - - +%1$d\nsvar - +%1$d\nsvar - - - Anmäld av %1$d person du följer - Anmäld av %1$d personer du följer - - Spam - Antal skräpposthändelser från detta relä - Imitation - Olagligt beteende - Begär radering - Logga in med en privat nyckel för att kunna svara - Logga in med en privat nyckel för att kunna boosta inlägg - Logga in med en privat nyckel för att gilla inlägg - Ingen konfiguration av Zap-belopp. Tryck länge för att ändra - Logga in med en privat nyckel för att kunna skicka Zaps - Logga in med en privat nyckel för att kunna följa - Logga in med en privat nyckel för att kunna sluta följa - Du använder en offentlig nyckel, och offentliga nycklar är endast läsbara. Logga in med en privat nyckel för att kunna dölja ett ord eller en mening - Du använder en offentlig nyckel, och offentliga nycklar är endast läsbara. Logga in med en privat nyckel för att kunna visa ett ord eller en mening - Du använder en publik nyckel som är skrivskyddad. Logga in med en privat nyckel för att ladda upp - Du använder en publik nyckel som är skrivskyddad. Logga in med en privat nyckel för att signera händelser - Otillåten dekryptering - Signatären har inte godkänt den dekryptering som krävs. Aktivera NIP-44-dekryptering i din signeringsapp och försök igen - Signatör saknas - Har signeringsappen avinstallerats? Kontrollera om den är installerad och innehåller det här kontot. Logga ut och in igen om den har ändrats. - Extern signatär returnerade data som är ovanliga för begäran. Det kan finnas en bugg i antingen Amethyst eller signatären. - Zaps - Boosta boostad redigering #%1$s - Föreslå en redigering - Lägg till - Fel vid tolkning av felmeddelande - Profil - Säkerhetsfilter - Visa mindre - Begär faktura… - Debit-tjänsten slutförde inte betalningen. - Betala %1$s via %2$s? - Betala denna faktura via %1$s? - Ange ett giltigt belopp för detta erbjudande. - En gång - Dagligen - Veckovis - Månadsvis - Betala - Betalar via %1$s… - Betalning misslyckades - Tillgängligt för denna mottagare: %1$s sats - Transaktion: %1$s - "Förhandsgranska kortbild för %1$s" - Beskrivning - Vad tänker du på? - Skriv ett meddelande… - Dela Spara - Skicka - Skapa Byt namn - Avbryt - Fel - Fel - Andel lyckade anslutningar till reläet - Spara till telefon - Bild sparad till galleriet - Nedladdning av video har startat… - Nedladdning av media har startat… - Fäst högst upp - Lossa - Misslyckades att spara bilden - Videon sparad i telefonens videogalleri - Det gick inte att spara videon - PDF sparad i Downloads/Amethyst - Det gick inte att spara PDF:en - Ingen kameraapp hittades på den här enheten - Tryck och håll in för att spela in ett meddelande - Uppladdningsfel - Misslyckades med att ladda upp röstmeddelandet - NIP-95 stöds ännu inte för röstmeddelanden - Uppladdning av röst misslyckades: %1$s - Ingen - Djup - Hög - Neutral - Användaren har inte en Lightningadressinställning för att ta emot sats - "svara här.. " - Känd - Nya förfrågningar - Blockerade användare - Nya trådar - Konversationer - Fler alternativ - Visa QR-kod för privat nyckel - Visa QR-kod för krypterad privat nyckel - Följ - Följ tillbaka - Göm lösenord - Ogiltig nyckel - Ogiltig nyckel: %1$s - Lösenord krävs - Nyckel krävs - Namn är obligatoriskt - Kunde inte hämta den här inbjudan. Länken kan ha upphört att gälla eller så går dess reläer inte att nå. - Den här inbjudningslänken är ogiltig eller kan inte öppnas med det här kontot. - Den här inbjudningslänken kan inte öppnas. Den kan vara föråldrad eller redan ersatt av en nyare, eller skapad med en nyare version av appen. Be om en ny inbjudningslänk. - Den här inbjudningslänken har återkallats och kan inte längre användas. Be om en ny. - Den här gemenskapen har tagit bort dig. Länken fungerar fortfarande, men dess medlemslista släpper inte in dig. - Inbjudningslänkar - Inbjudningslänkar… - Inbjudningslänken har återkallats. - Länken kunde inte återkallas. Kontrollera din anslutning och försök igen. - Den här inbjudningslänken har upphört att gälla och kan inte längre användas. Be om en ny länk. - Concord-kanaler - Inga kanaler än. - Skicka bild - Ny kanal - Byt namn på kanal - Byt namn - Kanalnamn - Radera kanal - Radera kanal? - Radera #%1$s? Detta kan inte ångras och kanalen kan inte återskapas med samma id. - Radera - Lämna gemenskapen - Lämna gemenskapen? - Lämna %1$s? Den tas bort från det här kontots lista och slutar synkas på dina enheter. Gemenskapen meddelas inte och du tas inte bort från dess medlemslista. Meddelanden som du inte längre kan dekryptera kan gå förlorade, och du kan bara återvända med en ny inbjudan. - Du skapade den här gemenskapen. Att lämna raderar den inte och överlämnar den inte till någon annan, men det kasserar ägarnyckeln som lagras i din lista — du skulle inte kunna hantera den igen. - %1$s skriver… - %1$s och %2$s skriver… - Flera personer skriver… - Ny Concord-kanal - Reläer Ikon-URL (valfritt) - - %1$d kanal - %1$d kanaler - %1$d arbetsyta %1$d arbetsytor @@ -159,318 +16,38 @@ %1$d kanal %1$d kanaler - - %1$d medlem - %1$d medlemmar - - - %1$d nytt meddelande - %1$d nya meddelanden - - Inga meddelanden än - Skapa - Bjud in personer - Inbjudningslänk - Gör till admin - Ta bort admin - Reläer som lagrar den här gemenskapens krypterade meddelanden. Lämna tomt för att använda dina egna. - Redigera gemenskap - Medlemmar - Gör till admin - Ta bort admin - Bannlys - Häv bannlysning - Tilldela roller - Kunde inte uppdatera den här medlemmens roller. - Concord - I chatten - I tråden - - %1$d svar - %1$d svar - Ny chattprofil: - Lämna - Ta bort från Meddelanden - Lägg till i Meddelanden - Sluta följa - Försvinnande chatt - Relä Chatt - Relä Chattar - Relä chattar är chattgrupper som kontrolleras av deras hem relä. - De är synliga för alla på Nostr och vem som helst kan delta på dem. - De är bra för öppna gemenskaper kring specifika ämnen. Några av dessa grupper är kortlivade - och därmed försvinner chattmeddelanden över tiden - Publik Chat - MLS-grupp - Metadata för offentlig chatt - Offentliga chattar är synliga för alla på Nostr och alla - kan delta på dem. De är bra för öppna samhällen kring specifika ämnen. - Moderation kan kontrolleras genom att ta bort inlägg på reläerna - Reläer - Infoga mellan 1–3 reläer som är värd för denna grupp. - Nostr klienter använder denna inställning för att veta var du kan ladda ner meddelanden från och skicka dina meddelanden till. - Ta bort - aldrig - nu - t - m - d - Naket - Svordomar / Hatiskt tal - Backup-nycklar - Misslyckades med att kryptera din privata nyckel - Hemlig nyckel (nsec) kopierad till urklipp - Kopiera min hemliga nyckel - Autentisering misslyckades - Biometri misslyckades med att autentisera ägaren av denna telefon - Biometri misslyckades med att autentisera ägaren av denna telefon. Fel: %1$s - Kopierade anteckningstext till urklipp - Kopierade författarens @npub till urklipp - Kopierade antecknings-ID (@note1) till urklipp - "<Kan inte dekryptera privat meddelande>\n\nDu citerades i en privat/krypterad konversation mellan %1$s och %2$s." - Konton - Navigera - Du - Flöden - Skapa - System - Tillbaka - Dela webbläsarlänk - Dela - Dela som bild - Dela som bild-URL - Antecknings ID - Radera - Tysta tråd - Avtysta tråd - Tysta aviseringar - Sluta tysta aviseringar - - Blockera - Bokmärken - Bokmärken migrerade - Utkast - Schemalagda inlägg - Schemalägg inlägg - Avbryt schemaläggning - Schemalagda inlägg kanske inte publiceras förrän du öppnar appen igen. Aktivera alltid-på i Inställningar → UI-inställningar för pålitlig schemaläggning i bakgrunden. - Schemalagda inlägg kanske inte publiceras förrän du öppnar appen igen. Andra kontons schemalagda inlägg utlöses inte medan detta konto är aktivt. Aktivera alltid-på i Inställningar → UI-inställningar för pålitlig schemaläggning i bakgrunden. - %1$s · om %2$s - %1$s · för %2$s sedan - Imorgon - Utloggad - - Utloggad · %d schemalagt inlägg raderat - Utloggad · %d schemalagda inlägg raderade - - Schemalagt inlägg publicerat - Schemalagt inlägg misslyckades - Schemalagda inlägg - Aviseringar när ett schemalagt inlägg publiceras eller misslyckas att publicera. - Skicka nu - Fel: %1$s - Schemalagd - Skickar… - Misslyckades - Skickat - Avbrutet - - Du har %d schemalagt inlägg som inte har publicerats än. Att logga ut raderar det permanent. - Du har %d schemalagda inlägg som inte har publicerats än. Att logga ut raderar dem permanent. - - - %d i kö - %d i kö - - - · %d inom 1 h - · %d inom 1 h - - - till %d relä - till %d reläer - - Inläggs-ID kopierat - Omröstningar - Öppna - Stängda - Märken - Gemenskaper - Ny gemenskap - Redigera gemenskap - Moderatorer - Relän - Verifierbara regler (valfritt) - Tillåtna händelsetyper - Kort text (1) - Långformat artikel (30023) - Bildinlägg (20) - Videoinlägg (21) - Kort video (22) - Gemenskapskommentar (1111) - Blockerade användare - Förtroendenät-grind (valfritt) - Global max händelsestorlek (valfritt) - Nytt märke - Tilldela märke - Profilmärken - Bilder - Träningspass - Nytt träningspass - - %1$d aktivitet - %1$d aktiviteter - - Löpning - Promenad - Cykling - Vandring - Simning - Rodd - Styrketräning - Yoga - Meditation - Kost - Fasta - Cirkelträning - EMOM - AMRAP - Appar Appar - nApplets - nSites - Webbläsare - Laddar via Tor. Tryck för att använda det öppna webben. - Laddar via det öppna webben. Tryck för att använda Tor. - Favoriter - Upptäck webbappar - Favoritappar - Lägg till i favoriter - Ta bort från favoriter - Laddar via Tor. - Laddar via det öppna webben. - Publicerade till reläer - Laddade upp en fil - Genomförde en betalning - Den appen är inte laddad ännu. Försök igen om ett ögonblick. - Senaste nApplet-behörigheter Inga nApplet-behörigheter ännu Behörigheter du beviljar nApplets visas här. Glöm det här nApplet Blockerad Återkalla - nApplet %1$s… Shell - Identitet - Tangentbordsåtgärder - Reläer - Kryptering - Lagring - Betalningar - Nätverk - Uppladdningar Fråga vilka funktioner som är tillgängliga - Läs din offentliga nyckel - Bind tangentbordsgenvägar - Läs, signera & publicera dina händelser - Kryptera och dekryptera privata meddelanden med din nyckel - Dess egna privata lagring - Betala Lightning-fakturor - Hämta webb- och Blossom-resurser - Ladda upp filer till din medieserver - Tema - Aviseringar - Meddelanden - Matcha din apps färger - Visa dig aviseringar - Utbyt meddelanden med andra nApplets Funktion: %1$s - Det här nApplet vill läsa din offentliga nyckel. - Det här nApplet vill läsa din profil och kontodata. - Det här nApplet vill signera och publicera en kind %1$d-händelse som dig. - Det här nApplet vill signera och publicera en kind %1$d-händelse som dig: - Det här nApplet vill skicka en krypterad händelse som dig. - Den här webbplatsen vill kryptera ett meddelande till %1$s med din Nostr-nyckel. - Den här webbplatsen vill dekryptera ett meddelande från %1$s med din Nostr-nyckel. - Det här nApplet vill läsa händelser från dina reläer. - Det här nApplet vill använda sin privata lagring. Det här nApplet vill betala en Lightning-faktura. - ⚠ Den här nApplet vill betala en Lightning-faktura som anger INGET belopp — betalningsmottagaren avgör hur mycket som tas. Tillåt detta endast om du litar på den. - Det här nApplet vill hämta en webbresurs. - Det här nApplet vill ladda upp en fil till din medieserver. - Det här nApplet vill visa dig aviseringar. - Den här webbplatsen vill signera en kind %1$d-händelse med din Nostr-nyckel. - - Det här nApplet vill betala en Lightning-faktura på %1$d sat. - Det här nApplet vill betala en Lightning-faktura på %1$d sats. - - - följer %1$d nytt konto - följer %1$d nya konton - - - SLUTAR FÖLJA %1$d konto - SLUTAR FÖLJA %1$d konton - - - lägger till %1$d relä - lägger till %1$d reläer - - - TAR BORT %1$d relä - TAR BORT %1$d reläer - - - tystar %1$d person till - tystar %1$d personer till - - - SLUTAR TYSTA %1$d person - SLUTAR TYSTA %1$d personer - - ⚠ Detta följer %1$s. - ⚠ Detta SLUTAR FÖLJA %1$s. - ⚠ Detta tystar %1$s. - ⚠ Detta SLUTAR TYSTA %1$s. - ⚠ Detta skriver om din följlista: %1$s. - ⚠ Detta skriver om din relälista: %1$s. Dina inlägg och läsningar flyttas med den. - ⚠ Detta skriver om din tystningslista: %1$s. Tystade ord och hashtaggar visas inte här — tryck på “Visa händelse” för hela listan. - %1$s och %2$s - Detta återpublicerar din befintliga lista oförändrad. - - ⚠ Detta skriver en lista med %1$d post. Amethyst har ingen cachad kopia att jämföra med. - ⚠ Detta skriver en lista med %1$d poster. Amethyst har ingen cachad kopia att jämföra med. - - - ⚠ Detta begär radering av %1$d av dina händelser. - ⚠ Detta begär radering av %1$d av dina händelser. - - - Bär %1$d tagg. Tryck på “Visa händelse” för att se exakt vad som skulle signeras. - Bär %1$d taggar. Tryck på “Visa händelse” för att se exakt vad som skulle signeras. - Anslut till Nostr @@ -479,889 +56,90 @@ Senast använd Upphör - signera för %1$s (typ: %2$d) - kryptera ett meddelande - läsa dina privata meddelanden - läsa dina privata meddelanden med %1$s - Tillåt alltid för %1$s - Amethyst kunde inte dekryptera det här meddelandet. Det kanske inte är adresserat till det här kontot. - Anslutna appar Återkalla alla behörigheter Åsidosättningar för operationer Inga appar har anslutit ännu. - appar behörigheter signerare napplet nsite webapp förtroende anslutna - Fjärrsignatär signatär bunker nip46 nostr anslut fjärr signera Agera som en fjärrsignatär Lyssnar på %1$d relä Lyssnar på %1$d reläer - - Lyssnar på %1$d relä - Lyssnar på %1$d reläer, alla anslutna - Din bunkeradress Klistra in detta i en annan app för att ansluta den till din nyckel. - Bunkeradress kopierad - Genererade en ny bunkeradress - Ansluten - Frånkopplad - Återansluter till reläer… - - %1$d relä - %1$d reläer - - Appen anslöt. Amethyst signerar nu åt den i bakgrunden. - Anslöt %1$s. Amethyst signerar nu åt den i bakgrunden. - Inte en giltig nostrconnect://-länk - Den länken innehåller inget relä att ansluta på - Kunde inte ansluta: %1$s - Anslutningen nekades - Det här är ett skrivskyddat konto som inte kan signera. - Fjärrsignatärapp - - %1$d signeringsförfrågan - %1$d signeringsförfrågningar - - Markera alla - Avmarkera alla Inga förfrågningar har behandlats än. - Signeringsförfrågningar - Helskärmsmeddelanden som ber dig godkänna en app som vill att Amethyst ska signera, kryptera eller dekryptera med din nyckel. - Godkänn en signeringsförfrågan? - En app vill ansluta - Tryck för att granska - - %1$d ansluten app - %1$d anslutna appar - - Reläautentisering - auth autentisering relä signera verifiera nip-42 identitet - Autentisera alltid - Signera autentiseringsutmaningar för varje relä som begär det - Autentisera aldrig - Ignorera autentiseringsutmaningar från alla reläer - Anpassad - Välj exakt vilka reläer du vill logga in på. Du tillfrågas om allt du inte har tillåtit nedan. - …det är mitt relä, eller ett rum jag gått med i eller följer - …jag läser någon jag följer - …jag skriver till någon jag följer - …jag skriver till någon annan - - %1$s och %2$d till - %1$s och %2$d till - - - Det håller också inne med %1$d annan sak. - Det håller också inne med %1$d andra saker. - - Logga alltid in - Aldrig - Alltid, alla reläer - Aldrig, alla reläer - Logga in på alla reläer? - Amethyst loggar in som %1$s på varje relä som frågar och slutar fråga dig. Reläer du har blockerat, och de du har ställt in att aldrig logga in på, förblir som de är. Du kan ändra detta under Reläautentisering. - Logga aldrig in på något relä? - Amethyst slutar berätta för reläer att du är %1$s och slutar fråga dig. Vissa reläer kommer att vägra betjäna dig: meddelanden, svar och aviseringar kanske inte går fram. Reläer du har ställt in att alltid logga in på förblir som de är. Du kan ändra detta under Reläautentisering. - Alltid, inställt av dig - Aldrig, inställt av dig - dina meddelanden - dina svar - personer du läser - ett rum du postar i - ett rum du läser - din inkorg - en konversation - ditt eget relä - det här reläet - Kortfilmer - Offentliga chattar - Platskanaler - Följpaket - Livesändningar - Ljudrum - Räck upp handen - Sänk handen - Tysta - Slå på ljud - Kunde inte skicka meddelandet - Stäng av mikrofon - Slå på mikrofon - Ljudrum - Håller ljudet igång medan rummet är öppet. - Nest anslutet - Nest — Live - Tryck för att återgå. - Stoppa - räckte upp handen - klev upp på scen - talar - anslöt sig som publik - lämnade nestet - Lämna - Kunde inte markera rummet som stängt. Lämnar ändå — rummet stängs automatiskt. - - %1$d lyssnare - %1$d lyssnare - - Tysta den här talaren - Återställ den här talaren - Följ - Sluta följa - Tysta - Slå på ljud - Kunde inte spara din nest-serverlista. Försök igen. Agentkonsol - Nest-servrar - Dina servrar - Sparas som en utbytbar händelse av typ kind-10112 så andra klienter kan läsa dina inställningar. - Rekommenderade servrar - Inbyggda förslag som du kan lägga till i din lista med ett tryck. - Videor - Musik - Spellistor - Avsnitt - Poddar Premium - - %1$d kapitel - %1$d kapitel - - Value-for-Value-fel - Den här podden har inga betalbara värdemottagare. - Anslut en Nostr Wallet Connect-plånbok för att skicka till keysend-mottagare (noder). - Anslut en Nostr Wallet Connect- eller debiteringsplånbok för att streama sats medan du lyssnar. - Nytt avsnitt - Redigera avsnitt - Publicerar… - Lägg till omslagsbild - Kvadratisk bild som visas för avsnittet - Video-URL - Transkriptions-URL - Kapitel-URL - Lägg till ljudfil - MP3, M4A eller annat ljud - Din podd - Lägg till omslagsbild - Kvadratisk bild för din podd - Poddtitel - Min podd - Författare - Kontakt-e-post - Webbplats - Kategorier - Teknik, Nyheter - Finansieringslänkar - https://… - Språk - sv - Upphovsrätt - Ny trailer - Lägg till trailerklipp - Kort ljud- eller videoförhandsvisning - - %1$d trailer - %1$d trailrar - Lägg till mottagare - Den här användaren har ingen Lightning-adress - - %1$d avsnitt - %1$d avsnitt - - Nytt musikspår - Ny spellista - - %1$d spår - %1$d spår - - Lägg till i Publika Bokmärken - Ta bort från Publika Bokmärken - Fäst på profil - Ta bort från profil - Ny bokmärkeslista - Metadata för bokmärkeslista - Intresseuppsättningar - Ny intresseuppsättning - Byt namn - Privat anteckning - Den här anteckningen levererades privat och är inte signerad. Endast de taggade deltagarna kan se den, och ingen kan bevisa för utomstående vem som skrev den. - Gör privat: paketera anteckningen som gåva endast till de aviserade användarna - Gör offentlig - Svar på en privat anteckning förblir alltid privata - Synlig för Inga mottagare ännu: bara du kommer att kunna se den här anteckningen. Lägg till personer att dela den med. - Bara du — välj vem mer som får se detta - Lägg till personer att avisera - Skicka privat - Redan tillagd - Tystad - Privat medlem - - %1$s, %2$s och %3$d till - %1$s, %2$s och %3$d till - - - Den här anteckningen krypteras och levereras %1$d separat gång, en gång per person. Med en extern signerare innebär det ett godkännande var. - Den här anteckningen krypteras och levereras %1$d separata gånger, en gång per person. Med en extern signerare innebär det ett godkännande var. - - - %1$d person får en avisering om det här inlägget. - %1$d personer får en avisering om det här inlägget. - - - Det skulle bli %1$d person. Amethyst lägger till högst %2$d åt gången — avmarkera några. - Det skulle bli %1$d personer. Amethyst lägger till högst %2$d åt gången — avmarkera några. - - - Lägg till %1$d person - Lägg till %1$d personer - - - Lägg till %1$d person ändå - Lägg till %1$d personer ändå - Lägg till Ta bort användare från aviseringar - Aviserar. Tryck för att tysta aviseringen för den här användaren - Tystad. Tryck för att avisera den här användaren igen Sök och lägg till en användare att avisera - Metadata för bokmärkeslistor kan ses av alla på Nostr. Endast dina privata medlemmar är krypterade. - Flytta till offentligt - Flytta till privat - Fyll på & skicka zap - Skicka zap - Fyll på %1$s sats till %2$s och zappa %3$s %4$s sats · avgift ≈ %5$s sats - Alternativ %s - (0–100)% - Enkelt val - Flerval - Kunde inte rösta - Omröstningen är stängd för nya röster - Endast en röst per användare tillåts i denna typ av omröstning - Omröstningsskapare kan inte rösta i sina egna omröstningar. - Vad betyder detta? - Bilden är densamma sedan inlägget - Bilden har ändrats. Användaren kanske inte har sett förändringen - Lägg till media - Lägg till Bild - Lägg till Video - Lägg till Dokument - Fil Server - Välj en server att ladda upp denna fil till - Mediaservrar Ställ in dina önskade mediauppladdningsservrar. Hantera lagrade filer - Mina Blossom-filer - Kopierar dina filer mellan servrar… - Avbryt - Blossom-synk - Visar förloppet medan dina filer kopieras mellan dina Blossom-servrar. - På alla servrar - Inte på alla servrar Ta bort från… - Den här servern kräver betalning för uppladdning: %1$s - - Betala %1$d sat - Betala %1$d sats - - Aktivera alla - Inaktivera alla - En filsynkronisering pågår redan. Försök importera igen när den är klar. - - %1$d fil - %1$d filer - - - Hittade %1$d fil att importera till dina servrar. - Hittade %1$d filer att importera till dina servrar. - - - Importera %1$d fil - Importera %1$d filer - Rekommenderade Mediaservrar Amethysts standardlista. Du kan lägga till dem individuellt eller lägga till listan. - Online - Långsam - Offline Kontrollerar… - Betalningsmottagare - Lägg till betalningsadresser för olika nätverk (t.ex. bitcoin, lightning, ethereum). - Ingen app hittades för att hantera denna betalning. Installera en kompatibel plånbok. - Ingen app installerad för att hantera %1$s-betalningar. Installera en kompatibel plånbok. - Betala i %1$s — du väljer beloppet där - Överlämning till betalapp - När författaren publicerar en betalningsmetod som en app på den här telefonen kan öppna (Venmo, Monero, ett IBAN…) kan zap-väljaren erbjuda den. Ett tryck öppnar den appen, som frågar efter beloppet — inget publiceras till reläer, så anteckningens zap-antal ändras inte. - Erbjud författarens betalningsmetoder - Det gick inte att öppna betalningen - BOLT12-erbjudanden - Lägg till ett eller flera BOLT12-erbjudanden (lno1…). De delas offentligt så att vem som helst kan betala dig. - BOLT12-betalning skickad - BOLT12-betalningen misslyckades: %1$s - BOLT12-zapfel - Betalt via BOLT12, men plånboken returnerade inget bevis, så inget zapkvitto publicerades. - Betalt via BOLT12, men betalningsbeviset kunde inte valideras, så inget zapkvitto publicerades. - Sekretess Alternativ - Alla följare - Alla Användare Följare - Standard Följ-Lista - Runt mig - Teleportera till en plats… - Följ den här platsen - Sluta följa den här platsen - Global - Kurerad - Mina - Tyst listan - Ny följelista - Nytt rekommendationspaket - Redigera lista - Standardporten är 9050 - Orbot Socks Port - Aktiv Tor Engine - Använd den interna versionen eller Orbot - Tor/Integritet Förinställningar - Ändra snabbt alla inställningar nedan - Onion Url/Reläer - Använd Tor för alla .onion adresser - DM Reläer - Tvinga Tor att skicka och ta emot DMs - Ej betrodda Reläer - Tvinga Tor på utgående/inkommande reläer - Betrodda Reläer - Tvinga Tor på alla reläer i dina listor - Profilbilder - Tvinga Tor vid inläsning av profilbilder - URL Förhandsvisningar - Tvinga Tor vid inläsning av URL förhandsvisningar - Bilder - Tvinga Tor vid nerladdning av bilder - Videor - Tvinga Tor vid nerladdning av videor - Pengatransaktioner - Tvinga Tor på zaps, lightning och cashu överföringar - Nostr Adress Verifiering - Tvinga Tor vid verifiering av NIP-05 adresser - Mediauppladdningar - Tvinga Tor vid uppladdning av innehåll - Intern - Orbot - Av - Grundläggande - Standard - Allt utom Media - Full Sekretess - Anpassad - Använd Tor när det krävs av servern - Dölj din IP från slumpmässiga reläer - Dölj din IP från allt utom bilder och videor - Dölj din IP i alla anslutningar - Skapa din egen - Privata Meddelade - Meddelar dig när ett privat meddelande kommer - Zaps Mottaget - Meddela dig när någon zappar dig - %1$s sats - Från %1$s - till %1$s - Mottagna betalningar - Meddelar dig när din anslutna plånbok tar emot en betalning som inte är en Nostr-zap - Tog emot %1$s sats - Nya betalningar - Svara - Markera som läst - Jag - Nytt meddelande - Du har lagts till i %1$s - Nya meddelanden - Nya zaps - Reaktioner - Meddelar dig när någon reagerar på ditt inlägg - %1$s reagerade på ditt inlägg - för %1$s - Nya reaktioner - Schack - Meddelar dig om schackspelshändelser - %1$s accepterade din schackutmaning - %1$s drog — din tur - Schackuppdateringar - Svar - Meddelar dig när någon svarar på ditt inlägg %1$s svarade på: %1$s - Nya svar - Omnämnanden - Meddelar dig när någon nämner eller citerar dig i ett inlägg - %1$s nämnde dig - Nya omnämnanden - Meddelanden - Socialt - Betalningar - Innehåll - Utvecklare - Spel - Reposter - Meddelar dig när någon repostar ditt inlägg - %1$s repostade ditt inlägg - Nya reposter - Media - Meddelar dig när någon nämner dig i ett foto eller en video - %1$s delade ett foto - %1$s delade en video - Nya media - Artiklar & markeringar - Meddelar dig när någon nämner eller markerar dig i en artikel - %1$s nämnde dig i en artikel - %1$s markerade din artikel - Nya artiklar - Kod & Git - Meddelar dig om issues, patchar och pull requests - %1$s öppnade ett issue - %1$s skickade en patch - %1$s öppnade en pull request - %1$s uppdaterade en pull request - %1$s kommenterade - %1$s öppnade en tråd igen - %1$s mergade en pull request - %1$s tillämpade en patch - %1$s löste ett issue - %1$s mergade/löste en tråd - %1$s stängde en pull request - %1$s stängde en patch - %1$s stängde ett issue - %1$s stängde en tråd - %1$s markerade en tråd som utkast - Ny kodaktivitet - Märken - Meddelar dig när du får ett märke - Du fick ett märke - Tilldelat av %1$s - Nya märken - Nutzap från %1$s - Onchain-zap från %1$s - %1$s ställde en fråga - Inkommande samtal - Aviseringar för inkommande röst- och videosamtal - Inkommande samtal - Inkommande röstsamtal\u2026 - Inkommande videosamtal\u2026 - Samtal med %1$s - Samtal - Avisering om pågående samtal - Lägg på - Svara - Avvisa - Ljud av - Ljud på - Kamera på - Kamera av - Dela skärm - Sluta dela skärm - Delar skärm - Högtalare - Hörlur - Bluetooth - Amethyst behöver åtkomst till mikrofonen för att starta ett röstsamtal. Aktivera den i appens inställningar. - Amethyst behöver åtkomst till kameran och mikrofonen för att starta ett videosamtal. Aktivera dem i appens inställningar. - Samtalsinställningar - Håller anslutningarna till dina inbox-relän aktiva för realtidsnotifieringar - Amethyst-notifieringar aktiva - - Ansluten till %1$d inkorgsrelä - Ansluten till %1$d inkorgsreläer - - - Ansluten till %1$d relä - Ansluten till %1$d reläer - - Visa detaljer - Dölj detaljer - - %1$s \u00b7 %2$d relä - %1$s \u00b7 %2$d reläer - - Bläddring - Media - Hashtaggar - Ämnen - Konversation - Sök - Hittar saknade händelser - Observerar händelser - Hämtar händelser via id som något på din skärm hänvisar till men som du inte har ännu — ett citat, ett svars förälder, en trådrot. - Bevakar de händelser som visas just nu efter nya svar, reaktioner, återinlägg, zaps och rapporter, så att räknarna uppdateras medan du läser. - Tillägg - Reläinfo - Övrigt - Relälistsökare - Observerar profiler - Kontots data - Hemflöde - Relägrupper - - %1$d grupp - %1$d grupper - - Försvinnande chattar - Platschattar - Livesändningschatt - NIP-29-grupper du gått med i. Varje grupp bor på ett värdrelä, så appen ansluter till varje relä som är värd för en av dina grupper. - Chattrum som inte sparar någon historik — meddelanden finns bara medan du är ansluten, så dessa förblir prenumererade för att något alls ska komma fram. - Platsbaserade rum för de områden du följer, efterfrågade från de reläer som bär dem. - Chatt och zap-mål kopplade till livesändningar du har öppna eller följer. - DM-inkorg - Plånbok - Nutzap-inkorg - Mint-katalog - Wallet Connect - Gemenskapschattar - Gemenskapsflöden - Dina inkorgsreläer, plus ett litet roterande urval av de reläer personer du följer publicerar till, ifall ett omnämnande levererades någon annanstans. - Dina DM-inkorgsreläer, dit gift-wrap-meddelanden levereras. - Hemrelät för varje chatt du har öppen eller har gått med i. - Reläerna som varje gemenskap publicerar sina plan till. - Gruppmeddelanden och nyckelpaket, på varje grupps reläer. - Rummets reläer, medan det är öppet. - Din egen profil, dina inställningar och utkast, på dina hemreläer. - Profiler för personerna som just nu visas på skärmen. - Hittar vilka reläer varje person publicerar till, så att deras inlägg kan hämtas från rätt ställe. - Följerlistor, som används för att bygga ditt flöde och ditt förtroendenät. - Rapporter som personer du följer har skrivit om profilerna som just nu visas på skärmen, efterfrågade från varje relä dessa personer publicerar till. - Rapporter från personer du följer - Dina egna plånbokshändelser, lästa tillbaka från de reläer du publicerade dem till. - Lyssnar på dina nutzap-reläer plus dina inkorgs- och DM-reläer, så att en betalning inte kan slinka förbi. - Söker över reläer efter vilka mints som finns och vilka folk rekommenderar. - Aviseringar från din anslutna plånbok. - Aktiva reläprenumerationer - - %1$d filter - %1$d filter - - - %1$d relä - %1$d reläer - - - %1$d filter är inte kopplat ännu - %1$d filter är inte kopplade ännu - %1$s \u00b7 %2$s - %1$d %% av alla - prenumerationer subscriptions filter reläer relay förfrågningar reqs anslutningar varför diagnostik - Inlägg från personer du följer, lästa från de reläer var och en av dem publicerar till. - Ansluter till inbox-relän\u2026 Alltid på-notifieringstjänst Upprätthåller en konstant anslutning till dina inbox-relän för omedelbar leverans av notifieringar. Visar en pågående notifiering. Använder mer batteri men säkerställer att du aldrig missar ett meddelande. Aviseringstjänst - På - Av - Aviseringstjänst i bakgrunden - Huvudströmbrytare för realtidsaviseringar i bakgrunden. Stäng av för att spara batteri — som ett flygplansläge. När det är avstängt förblir inget konto anslutet i bakgrunden, och det förblir avstängt (även efter omstart) tills du slår på det igen. - Konton aktiva i bakgrunden Håll det här kontot aktivt i bakgrunden - Dela upp notiser efter Följer - Visa två flikar för notiser — Följer (personer du följer) och Alla. Oläst-indikatorn lyser endast för aktivitet från personer du följer. - Visa meddelanden - Inkludera direktmeddelanden och gruppmeddelanden på fliken Aviseringar. Stäng av för att hålla meddelanden enbart på fliken Meddelanden. - Meddela: - Idag - Dölj - Visa - Varna - Filtrera spam - Döljer inlägg från främlingar som var exakt samma för 5 eller fler gånger - Lägg till klient-tagg i mina händelser - När det är aktiverat lägger Amethyst till en NIP-89-klient-tagg i händelser du publicerar. - Varna vid rapporter - Visar ett varningsmeddelande när inlägg har 5 eller fler rapporter från följande - Dölj inlägg som bryter mot gemenskapens regler - Filtrerar bort inlägg från gemenskapsflöden när gemenskapen publicerar ett NIP-9B-regeldokument och en händelse inte skulle godkännas. Ingen effekt när en gemenskap inte har strukturerade regler. - Filterinställningar - Blockerat innehåll - Du har inte blockerat några användare än. - Inga konton har flaggats som spam under denna session. - Inga dolda ord. Lägg till ett ord nedan för att dölja inlägg som innehåller det. - Inga reaktionstyper valda. Håll ned för att ändra - Läs från Relay - Skriv till Relay - Mängden data i byte som skickades till detta relä, inklusive filter och händelser - Mängden data i byte som mottogs från detta relä, inklusive filter och händelser - Integritetspolicy - Standarder för barnsäkerhet - Om och juridiskt - Cashu Token - Ingen Lightning-adress angiven - Reläer - Följpaket - Läsningar - Feed algoritmer - Marknadsplats - Live-streams - Grupper - Chattar - Känsligt innehåll - Lägger till varning för känsligt innehåll innan detta innehåll visas. - Gränssnittsinställningar Appinställningar - Översättningar - Reaktioner - Inställningar - Kontoinställningar - Appinställningar - Riskzon - Återställ Marmot-tillstånd - Marmot-tillstånd återställt. - Kunde inte återställa Marmot-tillstånd: %1$s - Alltid - Obegränsad WiFi - Aldrig - Wi-Fi - Slutförd - Förenklad - Prestanda - Fullständig - Enkel - Snabb - Klassisk - Modern - System - Ljus - Mörk - Utseende - Media & data - Allmänt - Anslutning - Dirigera via Tor - Sektioner & flöden - Synliga flikar - Innehåll i flödet - Textanteckningar - Återinlägg - Kommentarer & svar - Bilder - Videor - Kortfilmer - Artiklar - Wiki-sidor - Höjdpunkter - Omröstningar - Annonser - Torrenter - Röstmeddelanden - Liveaktiviteter - Tillfälliga chattar - Interaktiva berättelser - Schackpartier - Fågelobservationer - Attesteringar - NIP-utkast - Musik & ljud - Poddar - Insamlingar - Betyg & recensioner - Betyg %1$s av 5 - Läroresurs - Katalog - Filpost - - %1$d objekt - %1$d objekt - - - %1$d objekt till - %1$d objekt till - - Påminnelser - Plånboksanslut - Tema - Lila - Blå - Grön - Orange - Röd - Rosa - Typsnitt - Teckensnitt som används genom hela appen - Systemstandard - Sans Serif - Serif - Monospace - System - Sans - Serif - Mono - Teckenstorlek - Skala textstorleken i hela appen - Liten - Normal - Stor - Enorm - Ladda automatiskt bilder/gif - Spela automatiskt videor - Automatisk uppspelning av videor - URL-förhandsvisning - Omslutande bläddring - Dölj navigeringsfält vid bläddring - UI läge - Välj stilen för inlägg - Profilgalleri stil - Välj galleriets stil - Spammare - Ljud avstängt. Klicka för att ta bort ljudlöst - Ljud på. Klicka för att stänga av ljudet - Hoppa tillbaka %d sekunder - Hoppa framåt %d sekunder - Välj en plats på kartan - Ändra plats på kartan - Plats-exklusivt inlägg - Endast anhängare av platsen kommer att se den. Dina allmänna anhängare kommer inte att se den. - - %1$d spår - %1$d spår - - - +%1$d spår till - +%1$d spår till - - Ladda upp en omslagsbild - Välj en kvadratisk bild som omslag för det här spåret. - Ladda upp en ljudfil - Välj en MP3, WAV eller FLAC. Den laddas upp till din mediaserver när du sparar. - Laddar upp omslag och ljud och publicerar. Detta fortsätter även om du lämnar skärmen. - Redigera spellista - Ladda upp en omslagsbild - Välj en kvadratisk bild som konstverk för den här spellistan. - Laddar upp omslag och publicerar. Detta fortsätter även om du lämnar skärmen. Publik Grupp - Privat - Krypterade grupper - Relämedveten - Privat meddelande - Direktmeddelanden, totalsträckskrypterade - 1:1–5 rum - En-till-en och små gruppchattar med personer du känner. - Nytt meddelande - 1-till-1 & små grupper - Totalsträckskrypterad - Kan inte lägga till användare senare - Marmot-grupp - Större privata grupper - Enhetsbunden - Större privata grupper som växer ur små grupp-DM. - Skapa grupp - Skalar bortom små DM - Krypterad gruppchatt - Enhetsbunden — visas inte om du loggar in någon annanstans - Concord-gemenskap - Gemenskaper uppdelade efter kanal - Arbetsytor - Enorma gemenskaper, organiserade efter kanaler eller arbetsflöden. - Skapa gemenskap - Skalar till enorma gemenskaper - Uppdelat efter kanal / arbetsflöde - Mer att konfigurera - Offentlig chatt - Offentliga meddelanden på ett relä - Omodererad - Öppna offentliga rum där vem som helst kan posta. - Skapa offentlig chatt - Vem som helst kan gå med - Enkel & upptäckbar - Endast offentlig - Ingen moderering - Relägrupp - Relädriven, offentlig eller privat - Modererad - Grupper som modereras av reläet som är värd för dem. - Bläddra bland relägrupper - Modereras av reläet - Offentlig eller privat - Bunden till det enda reläet - Försvinnande chatt - Vem som helst som är online, just nu - Live nu - Chatt i stunden med vem som helst som är online just nu. - Starta chatt - Prata med vem som är online nu - Inget sparas - Ingen historik - Relä-avgränsad - Relägrupper - Relägrupper - Meddelanden - Privata meddelanden - Totalsträckskrypterade, presentinslagna direktmeddelanden (NIP-17). - Äldre DM - Äldre, mindre privata krypterade direktmeddelanden (NIP-04). - Offentliga kanaler - Öppna, offentliga chattrum som vem som helst kan läsa och gå med i (NIP-28). - Relägrupper - Relähanterade gruppchattar med medlemslistor och moderering (NIP-29). - Krypterade grupper - MLS-totalsträckskrypterade gruppchattar (Marmot). - Concord-gemenskaper - Krypterade gemenskaper med flera kanaler (Concord). - Platschattar - Offentlig geohash-begränsad chatt för en plats (Geolokalisering). - Försvinnande chattar - Lätta, reläbegränsade rum som inte sparar historik. - Skapa en grupp - Ny kanal - Nytt forum - Privat kanal - Dold från kanallistan och endast via inbjudan. Av innebär att vem som helst på det här relät kan hitta och gå med i den. Forumkanal Inlägg i trådar i stället för en chattidslinje. Detta kan inte ändras senare. Gruppnamn @@ -1371,33 +149,19 @@ Skapa Skapar en inbjudan… Inbjudningskod kopierad - Redigera grupp Gruppnamn Ämne (valfritt) Privat (läsning endast för medlemmar) Endast inbjudan Spara - Radera grupp - Radera ”%1$s”? Det tar bort gruppen och dess historik för alla, och kan inte ångras. - Radera kanal - Radera ”%1$s”? Det tar bort kanalen och dess meddelanden för alla, och kan inte ångras. - Arkivera kanal - Avarkivera kanal Ändra plats - Privat - Endast medlemmar kan läsa meddelanden. Söker efter grupper på dina reläer… Inga grupper hittades för det här filtret ännu. - Titel Skriv något… Publicera Tillagd i %1$s - - %1$d medlem - %1$d medlemmar - %1$d meddelande %1$d meddelanden @@ -1410,296 +174,30 @@ %1$d person du följer %1$d personer du följer - - %1$d grupp - %1$d grupper - Privat - Ämne - Kan inte ladda upp - Infoga destinationen för meddelandet först - Plånbok hittades inte - Amethyst kunde inte hitta några plånboksappar som stöder Nostr Wallet Connect (NWC). -\n\nVad du kan göra: -\n\t1. Verifiera NWC-stöd: Kontrollera att din föredragna plånbok stöder Nostr Wallet Connect. -\n\t2. Skapa anslutning: Gå till din plånbok och skapa en ny NWC-anslutning. -\n\t3. Länka till Amethyst: Din plånbok erbjuder vanligtvis tre alternativ: -\n\t\t3.1 Automatisk länk: En knapp för att automatiskt öppna och ansluta till Amethyst. Klicka på den, öppna Amethyst och spara på den nya skärmen. -\n\t\t3.2 Manuell länk: En anslutnings-URI som du kan kopiera och klistra in via klistra-ikonen på den här skärmen. -\n\t\t3.3 QR-kod: Plånboken skapar en QR-kod som du kan skanna med QR-knappens funktion på den här skärmen. - Mörkt, Ljust eller Systemtema - Ladda automatiskt bilder och GIFs - Spela upp videor och GIFs automatiskt - Spela upp videor automatiskt när de syns på skärmen - Visa förhandsgranskning av URL - Kopiera till Urklipp - Kopierat till urklipp - Dela eller Spara Skicka som DM Ny höjdpunkt Ny bild Ny kortfilm Ny video - Ny höjdpunkt Markerad text - Lägg till dina tankar… - Media tillagd - Media har lagts till i ditt profilgalleri - Kunde inte skicka zap - Saknad lightning-konfiguration - Användaren %1$s har inte ställt in en blixtfakturaadress för att ta emot satoshis - Fel vid öppning av signeringsapp - Signeringsprogrammet kunde inte hittas. Kontrollera att appen inte har avinstallerats - Kan inte spela upp den här videon - Codec eller format stöds inte på den här enheten (%1$s). Försök öppna den i din webbläsare. - Öppna i webbläsare - Signeringsförfrågan avvisad - Kontrollera att signeringsprogrammet har godkänt denna transaktion - Inga plånböcker hittades för att betala en blixtfaktura (Fel: %1$s). Installera en blixtpengaplånbok för att använda zaps - Inga plånböcker hittades för att betala en blixtfaktura. Installera en blixtpengaplånbok för att använda zaps - Kan inte öppna Blossom-länkar - Inga Blossom-appar hittades. Installera en lokal Blossom-app för att visa den här filen - Dolda ord - Tystade trådar - Inga tystade trådar - Profilbild - Visa profilbilder - Kunde inte betala fakturan - Kunde inte ta ut - Kunde inte lösa in Cashu - Mint gav följande felmeddelande: %1$s - Osäker Cashu-mint-adress - Amethyst kontaktade inte den här tokenens mint. %1$s - Cashu mottagen - %1$s sats skickades till din plånbok. (Avgifter: %2$s sats) - Ingen kompatibel Cashu-plånbok hittades på systemet - Kunde inte hämta fakturan från mottagarens servrar - Din Wallet Connect-leverantör returnerade följande fel: %1$s - Din Wallet Connect-leverantör skickade ett svar som Amethyst inte kunde läsa. - Kunde inte montera LNUrl från Lightning Address \"%1$s\". Kontrollera användarens konfiguration - Kunde inte hämta faktura från %1$s: %2$s - Fel vid tolkning av JSON från %1$s. Kontrollera användarens blixtkonfiguration - Callback URL hittades inte från %1$s\'s svar - Felaktig fakturabelopp (%1$s sats) från %2$s. Det borde ha varit %3$s - Kunde inte skapa en Lightning-faktura innan Zap skickades. Mottagarens Lightning-plånbok skickade följande fel: %1$s - Skrivskyddad användare - Inga reaktioner konfigurerade - Aviseringar - Leverans - Visning i appen - Kategorier - Meddelande från %1$s - Blockera relä - Hej %1$s, är detta fortfarande tillgängligt? - Kläder - Tillbehör - Elektronik - Möbler - Samlarobjekt - Böcker - Husdjur - Sport - Träning - Konst - Hantverk - Hem - Kontor - Mat - Diverse - Annat - Det gick inte att ladda upp media - Kunde inte öppna den komprimerade filen - Fel vid uppladdning: %1$s - Servern gav inte en URL efter uppladdning - Kunde inte ladda ner uppladdade medier från servern - Kunde inte kontrollera nedladdad fil efter uppladdning: %1$s - Det gick inte att nå %1$s: %2$s - Radering misslyckades: %1$s - Media är för stort för NIP-95 - Kryptera filer - Kryptera filer innan uppladdning för integritet. Vissa servrar kanske inte accepterar krypterade filer på gratiskonton. - Krypterad uppladdning misslyckades - Många servrar accepterar inte krypterade filer på gratiskonton. Du kan försöka igen utan kryptering. - Använd H.265/HEVC-codec - Bättre kvalitet med mindre filstorlek, men inte alla enheter stöder H.265-uppspelning. - Konvertera GIF till MP4 - Konverterar animerad GIF till MP4-video för mindre filstorlek och bättre uppspelningskompatibilitet. - Ta bort privat metadata - Försöker ta bort privat metadata från mediefiler som stöds innan uppladdning - Metadata kunde inte tas bort - Kunde inte ta bort privat metadata från media. Uppladdning avbruten. - Uppladdning avbruten - Kan inte ta bort metadata från AVIF: %1$s - Hem - Upptäck - Meddelanden - Aviseringar - Media - Kalendrar - Kalenderlistor - Schack - Plånbok - Kunde inte läsa in transaktioner - Kunde inte läsa in fler transaktioner - Kunde inte läsa in ditt saldo - Kunde inte skapa fakturan - Din plånbok returnerade ingen faktura - Tidsgränsen för plånboksförfrågan överskreds - Kunde inte nå din plånbok: %1$s - Din plånbok svarade med något som Amethyst inte känner igen (%1$s) - Amethyst kunde inte dekryptera plånbokens svar — plånboken kanske använder en annan nyckel - Cashu-plånbok (NIP-60) Nutzap-nyckel (avancerat) En separat privat nyckel som endast används för att ta emot NIP-61-nutzaps. Inte din Nostr-identitetsnyckel. Generera en ny nyckel Privat P2PK-nyckel (hex) - Redigera Cashu-plånbok Spara ändringar - - +%1$d till - +%1$d till - - - Rekommenderad av %1$d annan - Rekommenderad av %1$d andra - - Populära mints - Matchande mints - Mottaget - Skickat - Publicera en raderingsbegäran för din kind:38000-rekommendation av %1$s. Relayer som följer NIP-09 tar bort den. - Återställde %1$s sats över %2$s proofs. - Betala %1$s sat + upp till %2$s sat i avgifter? - Nutzap misslyckades - Ingen mottagar-pubkey på noten - Nutzaps är offentliga och skulle avslöja den här privata anteckningen. Använd en Lightning-zap istället. - Kan inte bygga händelsereferens - Väntar på att fakturan ska betalas… - Kontrollerar minten… - Långsam - Normal - Snabb - ~1 tim - ~30 min - ~10 min - %1$s · %2$s sat/vB · %3$s - - Skicka %1$s sats, %2$d sätt - Skicka %1$s sats, %2$d sätt - - - Använd den här anteckningens %1$d-vägs zap-uppdelning - Använd den här anteckningens %1$d-vägs zap-uppdelning - - - Delas mellan %1$d mottagare - Delas mellan %1$d mottagare - - - Hoppar över %1$d mottagare med endast Lightning-adress — on-chain behöver en Nostr-publik nyckel för att härleda adressen. - Hoppar över %1$d mottagare med endast Lightning-adress — on-chain behöver en Nostr-publik nyckel för att härleda adressen. - - laddar saldo - bygger transaktionen - signerar - sänder ut - publicerar kvittot - Backend för Bitcoin-kedjan är inte konfigurerad - Kunde inte ladda ditt Bitcoin-saldo - Kunde inte bygga transaktionen - En mottagarandel är under damm - Kunde inte signera transaktionen - Kunde inte sända ut transaktionen - Betalning skickad, men zap-kvittot kunde inte publiceras - - Betalning skickad (%1$d av %2$d kvitto publicerat), men nästa kvitto kunde inte publiceras - Betalning skickad (%1$d av %2$d kvitton publicerade), men nästa kvitto kunde inte publiceras - - Importera följare - Ny produkt - Ny artikel - Ny kalenderhändelse - Redigera kalenderhändelse - Ny kalender - Redigera kalender - Flöde - Månad - Vecka - Dag - - %1$s, %2$d händelse - %1$s, %2$d händelser - - Pågår nu - %1$s · slutar %2$s - Dela kalenderhändelse - calendar_reminders - Kalenderpåminnelser - Påminnelse när en händelse du deltar i snart ska börja. - Kalenderhändelse - - Börjar om %1$d minut - Börjar om %1$d minuter - - Bilduppladdning misslyckades - Den valda bilden kunde inte laddas upp. Försök igen eller klistra in en URL. - Kalenderpåminnelser - Skicka påminnelser - En notis visas när en händelse du deltar i snart ska börja. - - %1$d min - %1$d min - - Öppna i kartor - Öppna länk - Öppna alla reaktioner på detta inlägg - Stäng alla reaktioner på detta inlägg - Zap - Nedre navigeringsfält Dra för att ändra ordning. Växla för att lägga till eller ta bort ett objekt från nedre fältet. Med noll objekt döljs det nedre fältet. Ändra ordning - Inga favoriter än. Stjärnmärk en app i Webbläsaren för att lägga till den här. - Inga anslutna grupper än. - Lägg till - Tillagd - Huvud - Chattar & grupper - Du - Flöden - Appar & webb - Övrigt - Sidomeny - - %1$d dold - %1$d dolda - - Synliga - Dolda - Alltid på Välj vilka flikar som visas på startskärmen. När endast en flik är aktiv döljs flikraden. - Allt - Profilgränssnitt Välj vilka sektioner och flöden som visas på användarprofiler. Alla alternativ är aktiverade som standard. - Profilmärken - App-rekommendationer - Mottagna zaps-flöde - Följarflöde - Bitcoin-plånbok (on-chain) - Reaktionsinställningar - Videospelarens knappar - Ljudvisualiserare - Redigera - Redigera - Redigerar meddelande - %1$s och %2$s skriver… Buzz-arbetsytor Där människor och agenter bygger tillsammans Lämna arbetsytan @@ -1715,65 +213,6 @@ Lägg till Inga kanaler hittades Du verkar inte vara medlem i några kanaler på det här relät än. Acceptera arbetsyteinbjudan i webbläsaren först och försök sedan igen. - Fäst kanal - Lossa kanal - - %1$d dold konversation - %1$d dolda konversationer - - - Visa %1$d konversation till - Visa alla %1$d konversationer - - Väntar på att ett relä ska acceptera detta meddelande - Ingen reläinformation för detta meddelande - Accepterad av minst ett relä - Levererad till alla mottagares reläer - Utgångsdatum - Författaren bad reläer att radera den här anteckningen efter %1$s. Den försvinner från flödena när den upphör att gälla. - Ogiltig adress - Amethyst fick en URI att öppna men den URI var ogiltig: %1$s - DM Inkorg Reläer - Sökreläer - Bra alternativ är:\n%1$s - Utgående reläer - Inkommande reläer - Relä inställningar - Offentliga hemreläer - Användaren publicerar sitt innehåll på dessa reläer - Denna typ av relä lagrar allt ditt innehåll. Amethyst skickar dina inlägg hit och andra kommer att använda dessa reläer för att hitta ditt innehåll. Sätt in mellan 1–3 reläer. De kan vara personliga reläer, betalda reläer eller offentliga reläer. - Offentliga inkorgsreläer - Användaren tar emot aviseringar på dessa reläer - Denna typ av relä tar emot alla svar, kommentarer, gillanden och zaps till dina inlägg. Sätt in mellan 1–3 reläer och se till att de accepterar inlägg från vem som helst. - DM inkorgsreläer - Användaren tar emot DM:s på dessa reläer - Sätt in mellan 1–3 reläer som ska fungera som din privata inkorg. Andra kommer att använda dessa reläer för att skicka DM till dig. DM inkorgsreläer bör acceptera alla meddelanden från vem som helst, men endast tillåta dig att ladda ner dem. Bra alternativ är:\n - inbox.nostr.wine (betald)\n - you.nostr1.com (personliga reläer - betald) - KeyPackages - KeyPackage-relays - Relays där dina MLS KeyPackages publiceras (MIP-00). Andra användare hämtar dessa KeyPackages för att bjuda in dig till Marmot-gruppchatter. Lägg till mellan 1–3 relays som accepterar KeyPackage-händelser från dig och tillåter offentlig läsning. - Privata reläer - Infoga mellan 1–3 reläer för att lagra händelser som ingen annan kan se, som dina Utkast och/eller appinställningar. Helst är dessa reläer antingen lokala eller kräver autentisering innan du laddar ner varje användares innehåll. - Anslutna reläer - Aktuell lista över reläer som används - Sökreläer - Lista över reläer som används för sökning och taggning av användare. Taggning och sökning kommer inte att fungera om inga alternativ är tillgängliga. - Lokala reläer - Lista över reläer som körs i denna enhet. - Vidarebefordra profiler till lokalt relä - Skicka alla mottagna profilhändelser (kind 0) till ditt lokala relä - Betrodda reläer - Reläer du litar på och inte kräver Tor för - Favorit-reläflöden - Reläer som du ofta besöker för att se deras globala flöde - Proxyreläer - Aggregeringsreläer som används för att hämta flöden, t.ex. filter.nostr.wine - Sändande reläer - Reläer som skickar dina anteckningar till alla andra reläer - Indexerande reläer - Reläer som lagrar metadata och listor över reläer, t.ex. purplepag.es - Blockerade reläer - Amethyst kommer aldrig att ansluta till dessa reläer - Exportera relay-inställningar Webbplats: Översikt Underhålls av @@ -1782,609 +221,40 @@ Underhållare Ämnen Readme - - %1$d objekt - %1$d objekt - Stäng ärende Öppna igen - Git-repositories - Höjdpunkter - Filtrera repositories - Stäng filter - Tidsstämpel Bevis - Det finns bevis på att detta inlägg signerades någon gång före %1$s. Beviset stämplades i Bitcoin-blockchainen vid det datumet och den tiden. - Ett tidsstämpelbevis för det här inlägget har begärts och väntar på att stämplas i Bitcoin-blockkedjan. Det slutförs vanligtvis inom några timmar. - Redigera inlägg - Det går inte att svara på ett utkast - Det går inte att citera ett utkast - Det går inte att reagera på ett utkast - Det går inte att zappa ett utkast - Utkast - Felaktig begäran - Servern kan inte eller vill inte bearbeta begäran. - Obehörig - Användaren har inte giltiga autentiseringsuppgifter - Betalning krävs - Servern kräver betalning för att slutföra begäran - Förbjuden - Användaren har inte rätt att göra begäran - Ej hittad - Servern kan inte hitta den begärda adressen - Metod ej tillåten - Servern stöder begärningsmetoden men inte målresursen - Ej acceptabel - Servern hittar inget innehåll som uppfyller begäran. - Proxyautentisering krävs - Användaren har inte giltiga autentiseringsuppgifter - Begäran timeout - Servern väntade för länge på någon annan - Konflikt - Servern kan inte uppfylla begäran på grund av en konflikt med resursen - Borta - Det begärda innehållet har permanent raderats från servern och kommer inte att återställas - Längd krävs - Servern avvisar begäran eftersom den kräver en definierad längd - Förhandsvillkor misslyckades - Begärningens förhandsvillkor i huvudfält som servern inte uppfyller - För stor last - Begäran är större än serverns definierade gränser och servern vägrar att bearbeta den - URI för lång - URL som begärdes av klienten är för lång för servern att bearbeta. - Osupporterat mediatyp - Begäran använder ett mediaformat som servern inte stöder - Område ej tillfredsställt - Servern kan inte uppfylla värdet som anges i begärans Range-huvudfält. - Förväntning misslyckades - Servern kan inte uppfylla kraven som anges av Expect-begärans huvudfält - Uppgradering krävs - Servern vägrar att bearbeta begäran med det nuvarande protokollet om inte klienten uppgraderar till ett annat protokoll. - Internt serverfel - Servern har stött på ett oväntat fel och kan inte slutföra begäran - Ej implementerad - Servern kan inte uppfylla begäran eller känner inte igen begärningsmetoden - Fel gateway - Servern agerar som en gateway och fick ett ogiltigt svar från värden - Tjänst otillgänglig - Detta sker ofta när en server är överbelastad eller nere för underhåll - Gateway timeout - Servern agerade som en gateway eller proxy och väntade för länge på ett svar - HTTP-version ej stödd - Servern stöder inte HTTP-versionen i begäran - Variant förhandlar också - Servern har ett internt konfigurationsfel - Otillräckligt lagringsutrymme - Servern har inte tillräckligt med lagringsutrymme för att bearbeta begäran framgångsrikt - Loop upptäckt - Servern upptäcker en oändlig loop medan den bearbetar begäran - Nätverksautentisering krävs - Klienten måste autentiseras för att få tillgång till nätverket Blossom Servrar Lägg till så många servrar som du vill. Du kan välja vilken som ska användas senare när du laddar upp din bild - Lägg till en NIP-96 Server - Lägg till en Blossom Server Ladda ner - Det gick inte att öppna filen - Inga torrent-appar installerade för att öppna och ladda ner filen. - Händelsen har inte tillräcklig information för att skapa en magnetlänk - Mina listor - Flöden - Hashtaggar - Intresseuppsättningar - Platser - Gemenskaper - Listor - Flödesalgoritmer - Alla favorit-flödesalgoritmer - Reläer - Favorit-flödesalgoritmer - Privat meddelande - Offentligt meddelande - Kunde inte dela bilden, försök igen senare… - Det gick inte att dela videon, försök igen senare… - Laddar ner videon… - Översätt inte från - Språk som visas här kommer inte att översättas. Välj ett språk för att ta bort det och få det översatt igen. - Översätt till - Välj det språk du vill översätta innehållet till. - Språkvisningsinställningar - Välj för varje översatt språkpar vilket språk som ska visas först. - Pausa - Spela - Appens resursanvändning - batteri data användning förbrukning ström nätverk diagnostik liggare Idag Senaste 7 dagarna - Mobildata idag - Wi-Fi idag - Relätid idag - I appen idag - Data per dag - Mobildata (MB) - Wi-Fi (MB) - Aktivitet (7 dagar) Mobildata (bakgrund) Mobildata (i appen) Wi-Fi-data - Reläanslutningstid - … i bakgrunden på mobildata - Aviseringsbearbetning (processor vaken) - Körda bakgrundsjobb - Reläåteranslutningar (misslyckade) - Webbförfrågningar - Radiouppvakningar för nedladdningar (uppsk.) - Aktiv överföringstid - Mediauppspelningstid - Verifierade signaturer - Processortid använd Tid i appen - Starter av appprocessen - Dekrypterade meddelanden - Fjärrsignaturer - Proof-of-work-brytning - Tor-drifttid - Tid i samtal - Tid i ljudrum - Platslyssning - Batteri använt (i appen / bakgrund) - Aviseringstjänst i bakgrunden - Körtid - - %1$d startar - %1$d startar - - Reläanslutningar hållna medan appen är stängd - Batteri förbrukat under tiden (hela enheten) - Batteri / timme i appen - Data / timme i appen - Genomsn. reläanslutningar - Mobildata per funktion (7 dagar) - Tid per skärm (7 dagar) - Inbyggd Tor - Data per funktion (7 dagar) - Reläsynkning - Bilder - Video & ljud - Uppladdningar - Plånbok & zaps - Adressverifiering - Länkförhandsvisningar - Push-registrering - Övrigt - Minne just nu - Appminne (heap) - Nativt minne - Bildcache (RAM) - Bildcache (disk) - Anteckningar i minnet - Profiler i minnet - Adresserbara händelser i minnet - Chattrumslistor i minnet - Enhetens minnesklass - Dela med utvecklarna - Dela - Amethyst förbrukade mer än väntat nyligen: %1$s. Vill du skicka en användningsrapport till utvecklarna i ett krypterat DM? Du får se hela rapporten innan något skickas. - %1$s mobildata i bakgrunden på en dag - %1$s reläanslutningar i bakgrunden på mobildata på en dag - processorn hölls vaken i %1$s för att bearbeta aviseringar på en dag - - appprocessen startade om %1$d gång på en dag - appprocessen startade om %1$d gånger på en dag - - - appen återanslöt till reläer %1$d gång på en dag - appen återanslöt till reläer %1$d gånger på en dag - - Detta meddelande försvinner om %1$s - Metadata för följlista - Metadata för följlistor kan ses av alla på Nostr. Endast privata medlemmar är krypterade. - Metadata för rekommendationspaket - Metadata för rekommendationspaket kan ses av alla på Nostr och publiceras ofta på webbplatser som startpaket för nya användare. - Redigera rekommendationspaket - Fäll ut - Försök igen - Reaktion - Röstinlägg - Röstsvar - - · %1$d val - · %1$d val - - %1$d av %2$d svar inlästa från %3$d reläer. - %1$d av ungefär %2$d svar inlästa från %3$d reläer. - - %1$d röst › - %1$d röster › - - - %1$d röstande - %1$d röstande - - - %1$d röst kom in efter att omröstningen stängde och utesluts. - %1$d röster kom in efter att omröstningen stängde och utesluts. - - - %1$d röst är daterad före omröstningen publicerades och utesluts. - %1$d röster är daterade före omröstningen publicerades och utesluts. - - - %1$d svar valde inget giltigt alternativ och utesluts. - %1$d svar valde inget giltigt alternativ och utesluts. - - - %1$d röstande döljs av din tystningslista. - %1$d röstande döljs av din tystningslista. - - Outbox relayer - Appar - Apprekommendationer - Användarinställningar - Ljudhuvud - Ljudspår - Musikspår - Musikspellista - Poddavsnitt - Poddprogram - Skapade poddar - Favoritpoddar - Utmärkelser - Utmärkelsedefinitioner - Accepterad emblemuppsättning - Profilutmärkelser - Blockerade relayer - Blossom-servrar - Nests-servrar - Blossom-autentisering - Broadcast-relayer - Bokmärkeslista - Gammal bokmärkeslista - Dagsmöte - Kalender - Möte - OSA för möte - Schackpartier - Schackautentisering - Favoritrelayer - Schackutmaningar - Acceptera schackparti - Schackdrag - Slut på schackparti - Remianbud - Kanaldefinition - Dölj kanalmeddelande - Kanallista - Kanalmeddelande - Kanalmetadata - Tysta användare i kanal - DM-fil - DM-meddelande - DM-relayer - Annonser - Kommentarer - Community-definition - Communitylista - Communityinlägg - Följerlista - Raderingar - Utkast - Emoji-paket - Emoji-paketlista - Tillfällig chatt - Tillfälliga chattrum - Filhuvuden - Profilgalleri - Filservrar - Blob-data - Blob-huvuden - Medicinska data - Följ-paket - Återinlägg (16) - Geohash-följer - Presentinslagningar - Git-ärende - Git-patch - Git-repository - Git-svar - Pull Request - PR-uppdatering - Git-status: Öppen - Git-status: Tillämpad - Git-status: Stängd - Git-status: Utkast - Zap-mål - Följda hashtaggar - Höjdpunkter - HTTP-autentisering - Indexrelälista - Äventyrsprolog - Äventyrsscen - Äventyrsläsning - Namngivna bokmärken - Livechattar - Livesändningar - Zaps - NWC-förfrågan - NWC-svar - Privata zaps - Zap-förfrågan - Bloggar - Mötesrum - Närvaro i rum - Mötesutrymme - Profil - Tystnadslista - NNS - NIP - Nostr Connect - DVM-status - DVM-innehållsförfrågan - DVM-innehållssvar - DVM-användarförfrågan - DVM-användarsvar - OTS - Betala till - Personlistor - Bilder - Träningspass - Nålar - Zap-omröstning - Omröstning - Omröstningssvar - NIP-04 DM - Privata reläer - Proxyreläer - Offentligt meddelande - Reaktioner - Kontaktkort - Reläautentisering - Relay upptäckt - Relay övervakningsmeddelande - Reläuppsättning - Rapporter - Återinlägg - Radera användare - Sigill - Sökreläer - Användarstatus - Anteckningar - Redigeringar - Torrenter - Torrentkommentarer - Betrodda reläer - Betrodda leverantörer - Video (svar) - Shorts (svar) - Video - Shorts - Röstmeddelande - Röstsvar - Väckning - Webbbokmärke - Wiki - %1$d%% drifttid - Namecoin-inställningar - %dms - Relä-synkronisering - Bitcoin Explorer (OTS) - händelser från dig - händelser till dig - sökbara händelser - DMs - profiler - utgående listor - Senast sedd för %1$s sedan - Senast sedd %1$s (för %2$s sedan) - Senast sedd just nu - Aldrig sedd - - %1$d minut - %1$d minuter - - - %1$d timme - %1$d timmar - - - %1$d dag - %1$d dagar - - - %1$d vecka - %1$d veckor - - - %1$d månad - %1$d månader - - - %1$d år - %1$d år - - - %1$d mint - %1$d mints - - - %1$d väntande faktura - %1$d väntande fakturor - - - Tillgångar hos %1$d mint du inte använder - Tillgångar hos %1$d mints du inte använder - - Flyttade %1$s sat till %2$s. - Casta till enhet - Sluta casta - HLS-uppladdning - Laddar upp %1$s (%2$d av %3$d) - Attestering - Attesteringsförfrågan - Attestantens rekommendation - Attestantens kompetens - Webbbokmärken - Lägg till webbbokmärke - Redigera webbbokmärke - %1$s finansierat av %2$s sats mål - Nytt mål - Begäran om försvinnande - Begäran om försvinnande skickad - Försvinnande historik - Användare - Händelser - Typer - IP-adresser - Inställningar - Föreslå textförbättringar - Använder en AI-modell på enheten för att föreslå textkorrigeringar och tonändringar. - Spårade sändningar - Använd den spårade sändaren när du skickar händelser. Visar liveförlopp och status per relä under sändning. - Föreslå träningspass att dela - Läser avslutade träningspass från Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) och föreslår att dela dem som ett inlägg. Behörighet begärs endast när du ansluter. - Skrivinställningar - Skapa utkast automatiskt - Sparar ett utkast automatiskt när du skriver eller lämnar redigeraren med osänd text och skickar det till dina privata utgående reläer. - Bevis på arbete - Författaren använde beräkningskraft för att bryta den här anteckningen till svårighetsgrad %1$s — en proof-of-work-stämpel som gör skräppost dyrt. - Korta notiser & svar - Den primära offentliga spamytan - Kommentarer - Svar på artiklar, filer och annat innehåll - Rapporter - Reläer väger rapporter efter deras kostnad - Långform & höjdpunkter - Artiklar och höjdpunkter; sällsynta, kostnaden är försumbar - Röstmeddelanden - Offentliga röstinlägg och svar - Reposter - Hög volym för aktiva användare - Reaktioner - Den mest högvolymiga typen; att mina varje gillning kostar batteri - Offentlig & livechatt - Miningfördröjningar skadar konversationsflödet - Omslag för privata meddelanden - Låter DM-reläer filtrera inkorgsspam; endast det yttre omslaget minas, aldrig ditt meddelande - Annat offentligt innehåll - Omröstningar, livestatus, radannonser och allt annat offentligt - Minar bevis på arbete - - Minar bevis på arbete… (%1$d inlägg i kön) - Minar bevis på arbete… (%1$d inlägg i kön) - - - %1$s • minar vid %2$d bit - %1$s • minar vid %2$d bitar - - - %1$s • väntar på att minas vid %2$d bit - %1$s • väntar på att minas vid %2$d bitar - - - Standard (%1$d bit) - Standard (%1$d bitar) - - - %1$d bit - %1$d bits - - Mining av bevis på arbete - Visar inlägg som fortfarande minar sitt NIP-13-bevis på arbete så att de kan slutföras efter att du lämnat appen. - Avbryt - Skicka nu - <1 s - - %1$d sekund - %1$d sekunder - - - %1$d minut - %1$d minuter - - - %1$d timme - %1$d timmar - - - %1$d dag - %1$d dagar - - ≈ %1$s kvar - när som helst nu - Ditt %1$s slutförde miningen men kunde inte publiceras: %2$s - Ditt %1$s slutförde miningen men kunde inte publiceras. Det görs ett nytt försök nästa gång appen startar. - Chattmeddelande - Rapport - Nytt emoji-paket - Redigera emoji-paket - Mina emoji-paket - Emojis - Offentliga emojis är synliga för alla och visas i din reaktionsmeny och i \":\"-autokompletteringen när detta paket finns i din emoji-lista. - Privata emojis lagras krypterade på relän och är endast synliga för dig. De visas i din reaktionsmeny och i autokomplettering med \":\" precis som offentliga. - Utkastet är %1$d byte; den här gemenskapen begränsar den här typen till %2$d byte. - Utkastet är %1$d byte; den här gemenskapen begränsar händelser till %2$d byte. - Du har redan publicerat %1$d händelser av den här typen idag (gräns %2$d). - Nowhere-webbplats - Nowhere Evenemang - Nowhere Insamling - Nowhere Butik - Nowhere Namninsamling - Nowhere Meddelande - Nowhere Drop - Nowhere Konst - Nowhere Forum - - %1$d medd - %1$d medd - - - %1$d medlem - %1$d medlemmar - - - Din plånbok svarade inte inom %1$d sekund. Betalningen kan ha gått igenom ändå — kontrollera din plånbok innan du försöker igen. - Din plånbok svarade inte inom %1$d sekunder. Betalningen kan ha gått igenom ändå — kontrollera din plånbok innan du försöker igen. - - - Tidsgränsen för plånboksförfrågan överskreds — %1$d svar avvisades eftersom det signerades med en oväntad nyckel. Ditt relä kanske inte är betrott. - Tidsgränsen för plånboksförfrågan överskreds — %1$d svar avvisades eftersom de signerades med en oväntad nyckel. Ditt relä kanske inte är betrott. - - Lägg till foto - Byt foto - Gruppinfo uppdaterad - Misslyckades med att uppdatera: %1$s - Misslyckades med att skapa grupp: %1$s - Misslyckades med att lämna grupp: %1$s - Lägg först till en Blossom-medieserver i Inställningar — gruppen behöver någonstans att ladda upp bilagor till. - Den här gruppen använder nu krypterade bilagor - Kunde inte byta den här gruppen till krypterade bilagor: %1$s - Gruppen upplöst - Avslutar gruppen. Det blir klart när gruppen godkänner. - Den här gruppen avslutas. Du kan fortfarande läsa den. - Du lämnar den här gruppen. - Du är inte längre medlem i den här gruppen. - Kunde inte upplösa gruppen: %1$s - Lägger till %1$s… - Misslyckades med att lägga till %1$s: %2$s - okänt fel - Medlem borttagen - Misslyckades med att ta bort medlem: %1$s - Administratörsbehörighet beviljad - Misslyckades med att bevilja admin: %1$s - Administratörsbehörighet återkallad - Misslyckades med att återkalla admin: %1$s - Inte medlem i den här gruppen Mottagarens Lightning-tjänst på %1$s är inte tillgänglig. Den beräknades från Lightning Address \"%2$s\". Fel: %3$s. Kontrollera om servern är uppe och om Lightning Addressen är korrekt Kunde inte lösa %1$s. Kontrollera om du är ansluten, om servern är uppe och om Lightning Addressen %2$s är korrekt.\n\nUndantag var: %3$s Fel vid tolkning av JSON från %1$ss fakturahämtning. Kontrollera användarens blixtkonfiguration Det gick inte att skapa en blixt faktura. Meddelande från %1$s: %2$s Det gick inte att skapa en blixtfaktura från %1$s: Elementet pr hittades inte i den resulterande JSON. - Platschatt - Platskanal - Chatta med vem som helst nära en plats, via geohash. - Lokal - Bäst för att prata med personer fysiskt kring en plats — ditt kvarter, din stad eller region. - Välj en plats - Anonym — en engångsidentitet per område, aldrig din npub. - Bitchat-kompatibel; når närliggande användare på samma reläer. - Offentlig och flyktig — ingen historik, alla i cellen kan läsa den. - I kö - Arbetar - Behöver godkännande - Godkänd - Levererad - Misslyckades - Avbruten - Nekad - Värde -för-värde diff --git a/amethyst/src/main/res/values-sw/strings.xml b/amethyst/src/main/res/values-sw/strings.xml index d5fb3accd8..ef43b10ca5 100644 --- a/amethyst/src/main/res/values-sw/strings.xml +++ b/amethyst/src/main/res/values-sw/strings.xml @@ -1,115 +1,12 @@ - - Chapisho hili lina zaidi ya hashtagi %1$d - Chapisho hili lina zaidi ya hashtagi %1$d - - - Rasilimali %1$d imefungwa pamoja - Rasilimali %1$d zimefungwa pamoja - - - +%1$d\njibu - +%1$d\nmajibu - - Barua taka - Idadi ya matukio ya utumaji taka yanayotoka kwenye usambazaji huu - Uigaji - Tabia Haramu - Omba Kufutwa - Ingia kwa kutumia Ufunguo wa Faragha ili uweze kujibu - Ingia kwa kutumia ufunguo wa Faragha ili uweze kuboresha machapisho - Ingia kwa kutumia ufunguo wa Faragha ili kupenda Machapisho - Hakuna Usanidi wa Kiasi cha Zap. Bonyeza kwa Muda mrefu ili kubadilisha - Ingia kwa kutumia ufunguo wa Faragha ili uweze kutuma Zaps - Ingia kwa kutumia Ufunguo wa Faragha ili uweze Kufuata - Ingia kwa kutumia Ufunguo wa Faragha ili uweze Kuacha Kufuata - Unatumia maneno ya umma na funguo za umma ni za kusoma tu. Ingia kwa kutumia ua Faragha ili kuweza kuficha neno au sentensi - Unatumia maneno ya umma na maneno ya umma ni ya kusoma tu. Ingia kwa kutumia maneno ya Faragha ili kuweza kuonyesha neno au sentensi - Unatumia maneno ya umma na maneno ya umma ni ya kusoma tu. Ingia kwa kutumia maneno ya Faragha ili kuweza kupakia - Unatumia maneno ya umma na maneno ya umma ni ya kusoma tu. Ingia kwa kutumia maneno ya Faragha ili kuweza kujisajili kwa matukio - Usimbuaji Uisoidhinishwa - Mtuaji sahihi hakuidhinisha usimbuaji unaohitajika ili kutekeleza operesheni hii. Washa usimbuaji NIP-44 kwenye programu yako ya utiaji sahihi kisha ujaribu tena - Mtuaji sahihi hajaonekana - Je, programu ya Utiaji sahihi iliondolewa? Angalia ikiwa programu ya utiaji sahihi imesakinishwa na ina akaunti hii. Ondoka kisha Uingie tena ikiwa programu ya utiaji sahihi imebadilika. - Msimamizi wa nje alirejesha data ya ajabu kwa ombi hili. Huenda kuna hitilafu katika Amethyst au Msimamizi. - Kuongeza imeimarishwa hariri #%1$s - Pendekeza Hariri - Ongeza - Hitilafu katika kuchanganua ujumbe wa hitilafu - Wasifu - Vichujio vya Usalama - Inaomba ankara… - Huduma ya debit haikukamilisha malipo. - Lipa %1$s kupitia %2$s? - Lipa ankara hii kupitia %1$s? - Weka kiasi halali kwa ofa hii. - Mara moja - Kila siku - Kila wiki - Kila mwezi - Lipa - Inalipa kupitia %1$s… - Malipo yameshindwa - Inayoweza kutumika kwa mpokeaji huyu: %1$s sats - Muamala: %1$s - "Hakiki Picha ya Kadi ya %1$s" - Maelezo - Unafikiria nini? - Andika ujumbe… - Tuma Hifadhi - Tuma - Unda Badilisha jina - Ghairi - Hitilafu - Makosa - Asilimia ya miunganiko iliyofaulu kwa relay - Hifadhi kwenye Simu - Picha imesave kwenye galeria - Upakuaji wa video umeanza… - Upakuaji wa maudhui umeanza… - Piga pini juu - Ondoa pini - Kushindwa kuhifadhi picha - Video imehifadhiwa kwenye gallery ya video ya simu - Imeshindwa kuhifadhi video - PDF imehifadhiwa kwenye Downloads/Amethyst - Imeshindwa kuhifadhi PDF - Hakuna programu ya kamera iliyopatikana kwenye kifaa hiki - Bonyeza na ushikilie kurekodi ujumbe - Hitilafu ya Upakiaji - Imeshindwa kupakia ujumbe wa sauti - NIP-95 haijatarajiwa kwa ujumbe wa sauti bado - Upakiaji wa sauti umeshindwa: %1$s - Hakuna - Nzito - Juu - Kawaida - Mtumiaji hana anwani ya umeme iliyoandaliwa kupokea sati - "jibu hapa.. " - Inajulikana - Maombi Mapya - Watumiaji Waliozuiwa - Nyuzi Mpya - Mazungumzo - Chaguo Zaidi - Onyesha msimbo wa QR wa ufunguo wa siri - Onyesha msimbo wa QR wa ufunguo wa siri uliofichwa - Fuata - Fuata tena - Ficha Nywila - Ufunguo usiofaa - Ufunguo batili: %1$s - Nenosiri linahitajika - Ufunguo unahitajika - Jina linahitajika @@ -118,155 +15,7 @@ Wasifu mpya wa mazungumzo: - Ondoka - Acha kufuata - Mazungumzo Yanayopotea - Mazungumzo ya Relay - Mazungumzo ya Relay - Mazungumzo ya relay ni vikundi vya mazungumzo vinavyodhibitiwa na relay yao ya nyumbani. - Yanaweza kuonekana na kila mtu kwenye Nostr na mtu yeyote anaweza kushiriki. - Ni mazuri kwa jamii wazi kuhusu mada maalum. Baadhi ya vikundi hivi ni vya muda mfupi - na hivyo ujumbe wa mazungumzo huisha baada ya muda - Mazungumzo ya Umma - Kikundi cha MLS - Metadata ya Mazungumzo ya Umma - Mazungumzo ya umma yanaweza kuonekana na kila mtu kwenye Nostr na mtu yeyote - anaweza kushiriki. Ni mazuri kwa jamii wazi kuhusu mada maalum. - Udhibiti unaweza kufanywa kwa kufuta machapisho kwenye relay zake - Ingiza kati ya relay 1–3 zinazohifadhi kikundi hiki. - Wateja wa Nostr hutumia mipangilio hii kujua mahali pa kupakua ujumbe na kutuma ujumbe wako. - Ondoa - kamwe - sasa - s - d - siku - Uchi - Lugha chafu / Maneno yenye chuki - Nakili Nakala za Ufunguo - Imeshindwa kusimba ufunguo wako wa siri - Ufunguo wa siri (nsec) umeinakiliwa kwenye ubao wa kunakili - Nakili Ufunguo Wangu wa Siri - Uthibitishaji umeshindwa - Biometriki imeshindwa kuthibitisha mmiliki wa simu hii - Biometriki imeshindwa kuthibitisha mmiliki wa simu hii. Hitilafu: %1$s - Maudhui ya dokezo yamenakiliwa kwenye ubao wa kunakili - Imesakinishwa @npub ya mwandishi kwa ubao wa kunakili - Imesakinishwa ID ya andiko (@note1) kwa ubao wa kunakili - "<Haiwezi kuifanyia utawala ujumbe binafsi uliofichwa>\n\nUlinukuliwa katika mazungumzo ya faragha/yaliyofichwa kati ya %1$s na %2$s." - Akaunti - Navigeti - Wewe - Milisho - Unda - Mfumo - Rudi - Shiriki Kiungo cha Kivinjari - Shiriki - Shiriki kama Picha - Shiriki kama URL ya Picha - ID ya Andiko - Futa - Nyamazisha mada - Ondoa unyamazishaji wa mada - - Zuia - Vialamisho - Alamisho zimehamishwa kwa mafanikio - Rasimu - Machapisho yaliyopangwa - Panga chapisho - Ghairi upangaji - Machapisho yaliyopangwa yanaweza kutochapishwa mpaka ufungue programu tena. Washa kudumu katika Mipangilio → Mapendeleo ya UI kwa upangaji wa nyuma ya kuaminika. - Machapisho yaliyopangwa yanaweza kutochapishwa mpaka ufungue programu tena. Machapisho yaliyopangwa ya akaunti nyingine hayatawaka wakati akaunti hii iko hai. Washa kudumu katika Mipangilio → Mapendeleo ya UI kwa upangaji wa nyuma wa kuaminika. - %1$s · ndani ya %2$s - %1$s · %2$s iliyopita - Kesho - Umetoka - - Umetoka · chapisho %d lililopangwa limefutwa - Umetoka · machapisho %d yaliyopangwa yamefutwa - - Chapisho lililopotoka limechapishwa - Chapisho lililopotoka limeshindwa - Machapisho yaliyopangwa - Arifa wakati chapisho lililopotoka linachapishwa au linashindwa kuchapishwa. - Tuma sasa - Hitilafu: %1$s - Imepangwa - Inatuma… - Imeshindwa - Imetumwa - Imeghairiwa - - Una chapisho %d lililopangwa ambalo bado halijachapishwa. Kutoka kutafuta kufuta kabisa. - Una machapisho %d yaliyopangwa ambayo bado hayajachapishwa. Kutoka kutafuta kufuta kabisa. - - - %d imepangwa foleni - %d zimepangwa foleni - - - · %d inakuja ndani ya saa 1 - · %d zinakuja ndani ya saa 1 - - - kwa relay %d - kwa relay %d - - Kitambulisho cha kumbuka kimenakiliwa - Kura - Wazi - Zilizofungwa - Beji - Jumuiya - Jumuiya Mpya - Hariri Jumuiya - Wasimamizi - Sheria zinazoweza kuthibitishwa (hiari) - Aina za matukio zinazoruhusiwa - Maandishi mafupi (1) - Makala ndefu (30023) - Chapisho la picha (20) - Chapisho la video (21) - Video fupi (22) - Maoni ya jamii (1111) - Watumiaji waliozuiwa - Lango la mtandao wa imani (hiari) - Ukubwa wa juu wa tukio duniani (hiari) - Beji Mpya - Toa Beji - Beji za wasifu - Picha - Mazoezi - Mazoezi Mapya - Kukimbia - Kutembea - Kupanda baiskeli - Kupanda mlima - Kuogelea - Kupiga makasia - Nguvu - Kutafakari - Lishe - Kufunga - Mzunguko - Programu Programu - Kivinjari - Inapakia kupitia Tor. Gonga kutumia wavuti wazi. - Inapakia kupitia wavuti wazi. Gonga kutumia Tor. - Vipendwa - Programu vipendwa - Ongeza kwenye vipendwa - Ondoa kutoka kwenye vipendwa - Inapakia kupitia Tor. - Inapakia kupitia wavuti wazi. - Imechapishwa kwenye relay - Imepakia faili - Imelipa malipo - Programu hiyo bado haijapakiwa. Jaribu tena baada ya muda. - Hivi karibuni Ruhusa za nApplet Bado hakuna ruhusa za nApplet Ruhusa unazotoa kwa nApplets zitaonekana hapa. @@ -276,46 +25,11 @@ Ganda - Utambulisho - Vitendo vya kibodi - Relay - Hifadhi - Malipo - Mtandao - Upakiaji Uliza ni uwezo gani unapatikana - Soma funguo yako ya umma - Funga njia za mkato za kibodi - Soma, na usaini & uchapishe matukio yako - Hifadhi yake ya kibinafsi - Lipa ankara za Lightning - Pata rasilimali za wavuti na Blossom - Pakia faili kwenye seva yako ya media - Mandhari - Arifa - Ujumbe - Linganisha rangi za programu yako - Kukuonyesha arifa - Badilishana ujumbe na nApplets nyingine Uwezo: %1$s - nApplet hii inataka kusoma funguo yako ya umma. - nApplet hii inataka kusoma wasifu wako na data ya akaunti. - nApplet hii inataka kusaini na kuchapisha tukio la aina %1$d kwa niaba yako. - nApplet hii inataka kusaini na kuchapisha tukio la aina %1$d kwa niaba yako: - nApplet hii inataka kutuma tukio lililofichwa kwa niaba yako. - nApplet hii inataka kusoma matukio kutoka kwa relay zako. - nApplet hii inataka kutumia hifadhi yake ya kibinafsi. nApplet hii inataka kulipa ankara ya Lightning. - nApplet hii inataka kupata rasilimali ya wavuti. - nApplet hii inataka kupakia faili kwenye seva yako ya media. - nApplet hii inataka kukuonyesha arifa. - Tovuti hii inataka kusaini tukio la aina %1$d kwa kutumia funguo yako ya Nostr. - - nApplet hii inataka kulipa ankara ya Lightning ya sat %1$d. - nApplet hii inataka kulipa ankara ya Lightning ya sats %1$d. - - Mafupi - Mazungumzo ya Umma - Vifurushi vya Kufuata - Mtiririko wa Moja kwa Moja - Inua mkono - Shukisha mkono - Zima sauti - Washa sauti - Haikuweza kutuma ujumbe - Zima maikrofoni - Washa maikrofoni - Inaweka sauti ikicheza wakati chumba kiko wazi. - Nest imeunganishwa - Nest — Moja kwa Moja - Gonga kurudi. - Simama - ameinua mkono - amepanda jukwaani - anazungumza - amejiunga kama hadhira - ameacha nest - Ondoka - Imeshindwa kuweka alama ya chumba kama kilichofungwa. Inaondoka hata hivyo — chumba kitafungwa kiotomatiki. - - msikilizaji %1$d - wasikilizaji %1$d - - Nyamazisha mzungumzaji huyu - Rejesha mzungumzaji huyu - Fuata - Acha kufuata - Nyamazisha - Ondoa unyamazishaji - Imeshindwa kuhifadhi orodha yako ya seva za nest. Jaribu tena. - Seva za Nest - Seva zako - Imehifadhiwa kama tukio la aina-10112 linaloweza kubadilishwa ili wateja wengine waweze kusoma upendeleo wako. - Seva zinazopendekezwa - Mapendekezo yaliyojengwa ndani ambayo unaweza kuongeza kwenye orodha yako kwa kubonyeza mara moja. - Video - Muziki - Orodha za kucheza - Vipindi - Podikasti - - kipindi %1$d - vipindi %1$d - - Wimbo mpya wa muziki - Orodha mpya ya kucheza - - wimbo %1$d - nyimbo %1$d - - Ongeza kwenye Vialamisho vya Umma - Ondoa kutoka kwenye Vialamisho vya Umma - Bandika kwenye Wasifu - Ondoa kubandika kutoka Wasifu - Orodha Mpya ya Alama za Kurasa - Metadata ya Orodha ya Alama za Kurasa - Seti za Hashtag - Seti Mpya ya Maslahi - Badilisha jina - Fanya faragha: funga kumbuka kwa watumiaji waliotarajiwa tu - Fanya umma - Majibu ya kumbuka ya faragha daima yanabaki faragha - Inaonekana kwa Bado hakuna wapokeaji: wewe peke yako utaweza kuona kumbuka hii. Ongeza watu ili kushiriki nao. Ongeza Ondoa mtumiaji kutoka arifa Tafuta na ongeza mtumiaji wa kutaarifu - Metadata ya orodha za alama za kurasa inaweza kuonekana na mtu yeyote kwenye Nostr. Wanachama wako wa faragha peke yao wanasimbwa. - Hamia kwa Umma - Hamia kwa Faragha - Jaza & tuma Zap - Tuma Zap - Jaza %1$s sats kwa %2$s na zap %3$s %4$s sats · ada ≈ %5$s sats - Chaguo %s - Chaguo moja - Chaguzi nyingi - Haiwezekani kupiga kura - Kura imefungwa kwa kura mpya - Kura moja tu kwa mtumiaji inaruhusiwa kwenye aina hii ya kura - Waandishi wa kura hawawezi kupiga kura kwenye kura zao wenyewe. - Hii inamaanisha nini? - Yaliyomo haya ni sawa tangu chapisho - Yaliyomo haya yamebadilika. Mwandishi huenda hakuyapata au kuyaidhinisha mabadiliko - Ongeza Media - Ongeza Picha - Ongeza Video - Ongeza Hati - Seva ya Faili - Chagua seva ya kupakia faili hili - Seva za Media Weka seva zako zinazopendelewa za kupakia media. Seva Zinazopendekezwa za Media Orodha ya chaguo-msingi ya Amethyst. Unaweza kuziongeza mmoja mmoja au kuongeza orodha nzima. - Malengo ya Malipo - Ongeza anwani za malipo kwa mitandao tofauti (k.m. bitcoin, lightning, ethereum). - Hakuna programu iliyopatikana kushughulikia malipo haya. Tafadhali sakinisha mkoba unaooana nayo. - Hakuna programu iliyosakinishwa kushughulikia malipo ya %1$s. Tafadhali sakinisha mkoba unaooana nayo. - Imeshindwa kufungua malipo - Chaguzi za Faragha - Yafuatayo Yote - Wafuasi Wote wa Mtumiaji - Orodha ya Ufuatiliaji ya Kawaida - Karibu Nami - Kote - Iliyopangwa - Zangu - Orodha ya Kimya - Orodha Mpya ya Ufuatiliaji - Kifurushi Kipya cha Ufuatiliaji - Hariri Orodha - Bandari ya kawaida ni 9050 - Bandari ya Socks ya Orbot - Injini ya Tor Inayofanya Kazi - Tumia toleo la ndani au Orbot - Mipangilio ya Awali ya Tor/Faragha - Badilisha haraka mipangilio yote hapa chini - Url/Relays za Onion - Tumia Tor kwa url yoyote ya .onion - Lazimisha Tor kutuma na kupokea DM - Relays Zisizo na Imani - Lazimisha Tor kwenye relays za outbox/inbox - Relays Zenye Imani - Lazimisha Tor kwenye relays zote kwenye orodha zako - Picha za Wasifu - Lazimisha Tor wakati wa kupakia picha za wasifu - Maonyesho ya URL - Lazimisha Tor wakati wa kupakia maonyesho ya url - Picha - Lazimisha Tor wakati wa kupakia picha - Video - Lazimisha Tor wakati wa kupakia video - Shughuli za Pesa - Lazimisha Tor kwenye zaps, lightning na uhamishaji wa cashu - Uthibitishaji wa Anwani ya Nostr - Lazimisha Tor wakati wa kuthibitisha anwani za NIP-05 - Upakiaji wa Midia - Lazimisha Tor wakati wa kupakia maudhui - Ya Ndani - Imezimwa - Msingi - Kawaida - Yote Isipokuwa Midia - Faragha Kamili - Maalum - Tumia Tor inapohitajika na seva - Ficha IP yako kutoka kwa relays za nasibu - Ficha IP yako kutoka kila kitu, isipokuwa picha na video - Ficha IP yako katika miunganisho yote - Tengeneza yako mwenyewe - Ujumbe Binafsi - Inakuarifu wakati ujumbe binafsi unapowasili - Zaps Zilizopokelewa - Inakuarifu wakati mtu anapokuzap - Kutoka kwa %1$s - kwa %1$s - Jibu - Weka Alama Imesomwa - Ujumbe mpya - Zaps mpya - Majibu - Inakuarifu mtu anapojibu chapisho lako - %1$s alijibu chapisho lako - kwa %1$s - Majibu mapya - Sataranji - Inakuarifu kuhusu matukio ya mchezo wa sataranji - %1$s amekubali changamoto yako ya sataranji - %1$s amesogeza — zamu yako - Masasisho ya sataranji - Majibu - Inakuarifu mtu anapojibu chapisho lako %1$s alijibu kwenye: %1$s - Majibu mapya - Kutajwa - Inakuarifu mtu anapokutaja au kukununulia kwenye chapisho - %1$s amekutaja - Kutajwa mapya @@ -540,36 +81,6 @@ - Simu zinazoingia - Arifa za simu za sauti na video zinazoingia - Simu inayoingia - Simu ya sauti inayoingia… - Simu ya video inayoingia… - Simu na %1$s - Simu - Arifa ya simu inayoendelea - Kata simu - Pokea - Kataa - Kimya - Ondoa kimya - Kamera imewashwa - Kamera imezimwa - Spika - Kipaza sauti - Amethyst inahitaji ufikiaji wa maikrofoni kuanza simu ya sauti. Tafadhali iwezesha katika mipangilio ya programu. - Amethyst inahitaji ufikiaji wa kamera na maikrofoni kuanza simu ya video. Tafadhali zishe katika mipangilio ya programu. - Mipangilio ya Simu - Inaweka miunganisho kwenye relays za inbox yako hai kwa arifa za wakati halisi - Arifa za Amethyst Zinafanya Kazi - - Imeunganishwa na relay %1$d ya kikasha - Imeunganishwa na relay %1$d za kikasha - - - Imeunganishwa na relay %1$d - Imeunganishwa na relay %1$d - - Inaunganika kwenye relays za inbox… Huduma ya arifa inayofanya kazi daima Inaweka muunganiko wa kudumu kwenye relays za inbox yako kwa utoaji wa arifa wa papo hapo. Inaonyesha arifa inayoendelea. Inatumia betri zaidi lakini inahakikisha hukosi ujumbe wowote. - Gawanya arifa kwa Wafuatiliaji - Onyesha kichupo kimoja cha arifa — Wanaofuatwa (watu unaowasiliana) na Kila Mtu. Kiashiria cha kusomwa kinawaka tu kwa shughuli kutoka kwa watu unaowasiliana. - Onyesha Ujumbe - Jumuisha ujumbe wa moja kwa moja na wa kikundi kwenye kichupo cha Arifa. Zima ili kuweka ujumbe kwenye kichupo cha Ujumbe pekee. - Taarifa: - Leo - Ficha - Onyesha - Onya - Chuja spam - Huficha machapisho kutoka kwa wageni ambayo yalikuwa sawa kabisa mara 5 au zaidi - Ongeza lebo ya mteja kwenye matukio yangu - Inapowezesha, Amethyst inaambatanisha lebo ya mteja ya NIP-89 kwenye matukio unayochapisha. - Onya kuhusu ripoti - Inaonyesha ujumbe wa onyo wakati machapisho au wasifu vina ripoti kutoka kwa watu unaowasiliana - Ficha machapisho yanayokiuka sheria za jamii - Huacha machapisho kutoka kwa malisho ya jamii wakati jamii inachapisha hati ya sheria za NIP-9B na tukio lingeweza kulishindwa. Haina athari wakati jamii haina sheria zilizopangwa. - Mapendeleo ya uchujaji - Maudhui yaliyozuiwa - Bado hujazuia watumiaji wowote. - Hakuna akaunti zilizobainishwa kama spam katika kipindi hiki. - Hakuna maneno yaliyofichwa. Ongeza neno hapa chini ili kuficha machapisho yanayolihusisha. - Hakuna aina za majibu zilizochaguliwa. Bonyeza kwa muda mrefu kubadilisha - Soma kutoka kwa Relay - Andika kwa Relay - Kiasi kwa baiti kilichotumwa kwenye relay hii, ikijumuisha vichujio na matukio - Kiasi kwa baiti kilichopokelewa kutoka kwa relay hii, ikijumuisha vichujio na matukio - Sera ya Faragha - Viwango vya Usalama wa Watoto - Kuhusu & Kisheria - Tokeni ya Cashu - Hakuna Anwani ya Lightning Imewekwa - Usanidi wa Relays - Vifurushi vya Kufuata - Usomaji - Algoriti za Malisho - Soko - Mtiririko wa Moja kwa Moja - Jumuiya - Mazungumzo - Yaliyomo Nyeti - Inaongeza onyo la yaliyomo nyeti kabla ya kuonyesha yaliyomo hii - Mapendeleo ya UI Mapendeleo ya Programu - Tafsiri - Mwitikio - Mipangilio - Mipangilio ya Akaunti - Mipangilio ya Programu - Eneo Hatari - Weka upya Hali ya Marmot - Hali ya Marmot imewekwa upya. - Imeshindwa kuweka upya hali ya Marmot: %1$s - Daima - WiFi Isiyo na Kipimo - Kamwe - Kamili - Iliyorahisishwa - Utendaji - Klasiki - Ya Kisasa - Mfumo - Mwanga - Giza - Mandhari - Onesha Picha - Cheza Video - Cheza Video Kiotomatiki - Onesha Hakikisho za URL - Kuogelea kwa Kuzama - Ficha Vipau vya Urambazaji Unapopiga Kitelezi - Hali ya UI - Chagua mtindo wa chapisho - Mtindo wa Matunzio ya Wasifu - Chagua mtindo wa matunzio - Wahasibu - Walemavu. Bonyeza kuwasha sauti - Sauti imewashwa. Bonyeza kulegeza - Ruka nyuma sekunde %d - Ruka mbele sekunde %d - Chapisho la Mahali Peke Yake - Wafuasi wa mahali hilo tu ndio watakaokiona. Wafuasi wako wa kawaida hawataiona. - - wimbo %1$d - nyimbo %1$d - - - +%1$d wimbo zaidi - +%1$d nyimbo zaidi - - Pakia picha ya jalada - Chagua picha ya mraba kuwa sanaa ya wimbo huu. - Pakia faili la sauti - Chagua MP3, WAV, au FLAC. Itapakiwa kwenye seva yako ya media ukihifadhi. - Inapakia jalada na sauti na kuchapisha. Hii itaendelea hata ukiacha skrini. - Hariri orodha ya nyimbo - Pakia picha ya jalada - Chagua picha ya mraba kuwa sanaa ya orodha hii ya nyimbo. - Inapakia jalada na kuchapisha. Hii itaendelea hata ukiacha skrini. Umma Kikundi Binafsi - Somo - Haiwezi Kupakia - Ingiza marudio ya ujumbe kwanza - Mkoba haukupatikana - Amethyst haikupata programu yoyote ya mkoba inayounga mkono Nostr Wallet Connect (NWC). -\n\nUnachoweza kufanya: -\n\t1. Thibitisha Usaidizi wa NWC: Hakikisha kuwa programu yako ya mkoba inaoana na Nostr Wallet Connect. -\n\t2. Unda Muunganisho: Nenda kwenye programu yako ya mkoba na unda muunganisho mpya wa NWC. -\n\t3. Unganisha na Amethyst: Mkoba wako kwa kawaida utakupa chaguo tatu: -\n\t\t3.1 Kiungo cha Kiotomatiki: Kitufe cha kufungua na kuunganisha moja kwa moja na Amethyst. Ikiwa ndivyo, bonyeza kitufe hicho, fungua Amethyst na bonyeza hifadhi kwenye skrini mpya. -\n\t\t3.2 Kiungo cha Mkono: URI ya Muunganisho unayoweza kunakili na kubonyeza ikoni ya kubandika kwenye skrini hii kuiingiza moja kwa moja. -\n\t\t3.3 Msimbo wa QR: Mkoba unaunda msimbo wa QR ambao unaweza kuusoma kutoka kwa kitufe cha msimbo wa QR kwenye skrini hii. - - Mada ya Giza, Mada ya Mwanga, au Mada ya Mfumo - Lisha picha na GIFs kiotomatiki - Cheza video na GIFs kiotomatiki - Cheza video kiotomatiki zinapoonekana kwenye skrini - Onyesha hakikisho za URL kiotomatiki - Nakili kwenye ubao wa kunakili - Imenakiliwa kwenye ubao wa kunakili - Shiriki au Hifadhi Tuma kama DM - Media imeongezwa - Media imeongezwa kwenye Matunzio yako ya Wasifu - Haiwezekani kutuma zap - Mpangilio wa lightning umepotea - Mtumiaji %1$s hana anwani ya lightning iliyowekwa kupokea sats - Hitilafu ya kufungua programu ya kusaini - Programu ya kusaini haikupatikana. Angalia kama programu haikufutwa - Haiwezi kucheza video hii - Codec au muundo haukubaliwi kwenye kifaa hiki (%1$s). Jaribu kuifungua kwenye kivinjari chako. - Fungua kwenye kivinjari - Ombi la kusaini limekataliwa - Hakikisha programu ya kusaini imeidhinisha muamala huu - Hakuna Mikoba iliyopatikana kulipa ankara ya lightning (Hitilafu: %1$s). Tafadhali sakinisha mkoba wa Lightning kutumia zap - Hakuna Mikoba iliyopatikana kulipa ankara ya lightning. Tafadhali sakinisha mkoba wa Lightning kutumia zap - Haiwezi kufungua viungo vya Blossom - Programu za Blossom hazikupatikana. Tafadhali sakinisha programu ya Blossom ya ndani kuona faili hili - Maneno Yaliyofichwa - Nyuzi zilizonyamazishwa - Hakuna nyuzi zilizonyamazishwa - Picha ya Wasifu - Onyesha picha za wasifu - Haikuweza kulipa ankara - Haikuweza kutoa - Haikuweza kukomboa Cashu - Mint ilitoa ujumbe huu wa hitilafu: %1$s - Cashu Imepokelewa - %1$s sats zilitumwa kwenye mkoba wako. (Ada: %2$s sats) - Hakuna mkoba wa Cashu unaooana uliopatikana kwenye mfumo - Haiwezi kupata ankara kutoka kwa seva za mpokeaji - Mtoa huduma wako wa wallet connect alirejesha hitilafu ifuatayo: %1$s - Haikuweza kuunda LNUrl kutoka kwa Anwani ya Lightning \"%1$s\". Angalia mpangilio wa mtumiaji - Haikuweza kupata ankara kutoka kwa %1$s: %2$s - Hitilafu ya Kuchanganua JSON kutoka kwa %1$s. Angalia mpangilio wa lightning wa mtumiaji - URL ya mrejesho haikupatikana kutoka kwa jibu la %1$s - Kiasi kibaya cha ankara (%1$s sats) kutoka kwa %2$s. Kinapaswa kuwa %3$s - Haiwezi kuunda ankara ya lightning kabla ya kutuma zap. Mkoba wa lightning wa mpokeaji ulituma hitilafu ifuatayo: %1$s - Mtumiaji wa kusoma tu - Hakuna mpangilio wa mwitikio - Arifa - Uwasilishaji - Onyesho ndani ya programu - Makundi - Ujumbe kutoka kwa %1$s - Habari %1$s, je, hii bado inapatikana? - Mavazi - Vifaa vya ziada - Vifaa vya Umeme - Samani - Vitu vya Kukusanya - Vitabu - Wanyama wa Kipenzi - Michezo - Afya na Mazoezi - Sanaa - Ufundi - Nyumbani - Ofisi - Chakula - Mchanganyiko - Nyingine - Imeshindwa kupakia media - Haikuweza kufungua faili lililosinyazwa - Hitilafu ya kupakia: %1$s - Seva haikutoa URL baada ya kupakia - Haikuweza kupakua media iliyopakiwa kutoka kwa seva - Haikuweza kukagua faili lililопakuliwa baada ya kupakia: %1$s - Imeshindwa kupakia kwa %1$s: %2$s - Imeshindwa kufuta: %1$s - Media ni kubwa sana kwa NIP-95 - Simba faili - Simba faili kabla ya kupakia kwa faragha. Seva zingine zinaweza kutokukubali faili zilizosimbwa kwenye akaunti za bure. - Kupakia kwa usimbaji kumeshindwa - Seva nyingi hazikubali faili zilizosimbwa kwenye akaunti za bure. Unaweza kujaribu tena bila usimbaji. - Tumia Codec ya H.265/HEVC - Ubora bora kwa ukubwa mdogo wa faili lakini si vifaa vyote vinavyounga mkono uchezaji wa H.265. - Badilisha GIF kuwa MP4 - Inabadilisha GIF inayosogea kuwa video ya MP4 kwa ukubwa mdogo wa faili na uoanifu bora wa kucheza. - Ondoa metadata ya kibinafsi - Inajaribu kuondoa metadata ya kibinafsi kutoka kwa faili za midia zinazotumika kabla ya kupakia - Metadata haikuweza kuondolewa - Imeshindwa kuondoa metadata ya kibinafsi kutoka kwa midia. Upakiaji umeghairiwa. - Upakiaji umeghairiwa - Haiwezi kuondoa metadata kutoka AVIF: %1$s - Nyumbani - Gundua - Ujumbe - Arifa - Kalenda - Orodha za kalenda - Mkoba - Mkoba wa Cashu (NIP-60) Ufunguo wa Nutzap (wa hali ya juu) Ufunguo tofauti wa kibinafsi unaotumika tu kupokea nutzap za NIP-61. Si ufunguo wako wa utambulisho wa Nostr. Tengeneza ufunguo mpya Ufunguo wa kibinafsi wa P2PK (hex) - Hariri mints Hifadhi mabadiliko - - +%1$d zaidi - +%1$d zaidi - - - Inapendekezwa na mtu %1$d mwingine - Inapendekezwa na watu %1$d wengine - - Mints maarufu - Mints zinazofanana - Ilipokelewa - Ilitumwa - Chapisha ombi la kufuta pendekezo lako la kind:38000 la %1$s. Relay zinazoheshimu NIP-09 zitaondoa. - Imerejesha %1$s sats katika uthibitisho %2$s. - Je, ulipe %1$s sat + hadi %2$s sat kwa ada? - Nutzap imeshindwa - Hakuna pubkey ya mpokeaji kwenye kumbukumbu - Nutzap ni za hadharani na zingefichua kumbukumbu hii ya siri. Tumia zap ya Lightning badala yake. - Haiwezi kuunda rejeleo la tukio - Inasubiri ankara ilipwe… - Inakagua mint… - Polepole - Kawaida - Haraka - ~saa 1 - ~dakika 30 - ~dakika 10 - - Tuma sats %1$s, mgawanyo %2$d - Tuma sats %1$s, migawanyo %2$d - - - Tumia mgawanyo wa Zap wa njia %1$d wa kumbuka hii - Tumia mgawanyo wa Zap wa njia %1$d wa kumbuka hii - - - Migawanyo miongoni mwa mpokeaji %1$d - Migawanyo miongoni mwa wapokeaji %1$d - - - Inaruka mpokeaji %1$d wa anwani ya Lightning pekee — on-chain inahitaji funguo ya umma ya Nostr kupata anwani. - Inaruka wapokeaji %1$d wa anwani ya Lightning pekee — on-chain inahitaji funguo ya umma ya Nostr kupata anwani. - - inapakia salio - inajenga muamala - inasaini - inatangaza - inachapisha risiti - Mfumo wa msururu wa Bitcoin haujasanidiwa - Haikuweza kupakia salio lako la Bitcoin - Haikuweza kujenga muamala - Sehemu ya mpokeaji iko chini ya kiwango cha chini - Haikuweza kusaini muamala - Haikuweza kutangaza muamala - Malipo yametumwa, lakini risiti ya zap haikuweza kuchapishwa - - Malipo yametumwa (risiti %1$d kati ya %2$d imechapishwa), lakini risiti inayofuata haikuweza kuchapishwa - Malipo yametumwa (risiti %1$d kati ya %2$d zimechapishwa), lakini risiti inayofuata haikuweza kuchapishwa - - Ingiza Wanaofuatwa - Bidhaa Mpya - Makala Mpya - Tukio Jipya la Kalenda - Hariri Tukio la Kalenda - Kalenda Mpya - Hariri Kalenda - Mtiririko - Mwezi - Wiki - Siku - - %1$s, tukio %2$d - %1$s, matukio %2$d - - Inaendelea sasa hivi - %1$s · inaisha %2$s - Shiriki tukio la kalenda - Vikumbusho vya kalenda - Onyo wakati tukio unalolishuhudia linakaribia kuanza. - Tukio la kalenda - - Inaanza baada ya dakika %1$d - Inaanza baada ya dakika %1$d - - Upakiaji wa picha umeshindwa - Picha iliyochaguliwa haikuweza kupakiwa. Jaribu tena au bandika URL. - Vikumbusho vya kalenda - Tuma vikumbusho - Arifa inatolewa wakati tukio unalolishuhudia linakaribia kuanza. - - %1$d dak - %1$d dak - - Fungua kwenye ramani - Fungua kiungo - Fungua majibu yote kwa chapisho hili - Funga majibu yote kwa chapisho hili - Upau wa Chini wa Urambazaji Buruta kupanga upya. Geuza kuongeza au kuondoa kipengee kutoka kwenye upau wa chini. Bila vipengee vya upau wa chini unafichwa. Panga upya Chagua vichupo vinavyoonekana kwenye skrini ya Nyumbani. Wakati kichupo kimoja tu kipo hai, upau wa vichupo unafichwa. - Kila kitu - Mwonekano wa Wasifu Chagua sehemu na malisho yanayoonekana kwenye skrini za wasifu wa watumiaji. Chaguo zote zimewezeshwa kwa chaguomsingi. - Beji za Wasifu - Mapendekezo ya Programu - Malisho ya Zap Iliyopokelewa - Malisho ya Wafuataji - Safu ya Majibu - Vitufe vya Kichezaji Video - Kionyeshi cha Sauti - Tarehe ya Kumalizika - Anwani batili - Amethyst ilipokea URI ya kufungua lakini uri hiyo ilikuwa batili: %1$s - Relay za Sanduku la DM - Relay za Utafutaji - Chaguo nzuri ni:\n%1$s - Relay za Sanduku la Nje - Relay za Sanduku la Ndani - Mipangilio ya Relay - Relay za Sanduku la Nje/Nyumbani za Umma - Mtumiaji anachapisha maudhui yake kwenye relay hizi - Aina hii ya relay huhifadhi maudhui yako yote. Amethyst itatuma machapisho yako hapa na wengine watatumia relay hizi kupata maudhui yako. Ingiza kati ya relay 1–3. Zinaweza kuwa relay za kibinafsi, relay za kulipwa au relay za umma. - Relay za Sanduku la Ndani la Umma - Mtumiaji anapokea arifa kwenye relay hizi - Aina hii ya relay hupokea majibu yote, maoni, mapendo na zaps kwa machapisho yako. Zinaweza kuwa relay za kulipwa au za bure. Mipaka iliyowekwa na opereta wa relay inaweza kupunguza arifa unazopokea kwa wema na ubaya. Kwa mfano, ikiwa unashambuliwa na barua taka za maoni, relay za kulipwa zinaweza kuchuja barua taka. Ingiza kati ya relay 1–3. - Relay za Sanduku la DM - Mtumiaji anapokea DM kwenye relay hizi - Ingiza kati ya relay 1–3 kutumikia kama sanduku lako la kibinafsi. Wengine watatumia relay hizi kutumia DM kwako. Relay za Sanduku la DM zinapaswa kukubali ujumbe wowote kutoka kwa mtu yeyote, lakini kukuruhusu wewe tu kupakua. Chaguo nzuri ni:\n - inbox.nostr.wine (kulipwa)\n - auth.nostr1.com (bure)\n - you.nostr1.com (relay za kibinafsi - kulipwa) - Relay za KeyPackage - Relay ambapo MLS KeyPackages zako zimechapishwa (MIP-00). Watumiaji wengine wanaletea KeyPackages hizi kukualika kwenye mazungumzo ya kikundi cha Marmot. Ingiza kati ya relay 1–3 zinazokubali matukio ya KeyPackage kutoka kwako na kuruhusu usomaji wa umma. - Relay za Nyumbani za Kibinafsi - Ingiza kati ya relay 1–3 kuhifadhi matukio ambayo hakuna mtu mwingine anaweza kuona, kama Rasimu zako na/au mipangilio ya programu. Kwa kawaida, relay hizi ni za ndani au zinahitaji uthibitisho kabla ya kupakua maudhui ya kila mtumiaji. - Relay Zilizounganishwa - Orodha ya sasa ya relay zinazotumika - Relay za Utafutaji - Orodha ya relay za kutumia wakati wa kutafuta maudhui au watumiaji. Kuweka alama na utafutaji havitafanya kazi ikiwa hakuna chaguo zinazopatikana. Hakikisha zinatekeleza NIP-50. - Relay za Ndani - Orodha ya relay zinazoendesha kwenye kifaa hiki. - Peleka wasifu kwenye relay ya ndani - Tuma matukio yote ya wasifu yaliyopokelewa (kind 0) kwenye relay yako ya ndani - Relay Zinazoaminiwa - Relay unazozaamini ambazo hazihitaji muunganisho wa Tor - Malisho ya Relay Uipendayo - Relay unazokwenda mara kwa mara kuona Malisho yake ya Kimataifa - Relay za Wakala - Relay za mkusanyaji ambazo programu lazima itumie kupakua malisho yako, kama filter.nostr.wine. Hii inabadilisha mfano wa sanduku la nje na itafanya programu iunganike na relay zilizo kwenye orodha zako tu. - Relay za Utangazaji - Relay zinazobobea katika kusukuma dokezo zako kwenye relay zote nyingine, kama sendit.nosflare.com. Amethyst itaongeza relay hii kwenye matukio yote mapya yaliyoundwa nawe - Relay za Kielezo - Relay zinazobobea katika kuhifadhi metadata na orodha za relay za kila mtu, kama purplepag.es. Amethyst itatumia relay hizi kupata watumiaji ambao hawako kwenye orodha zako. - Relay Zilizozuiwa - Amethyst kamwe haitaunganika na relay hizi - Hamisha mipangilio ya relay Wavuti: Muhtasari Kuhusu Viungo Watunzaji Mada - Uthibitisho wa Muda - Kuna uthibitisho kwamba chapisho hili lilisainiwa kabla ya %1$s. Uthibitisho uliwekwa muhuri katika blockchain ya Bitcoin tarehe na wakati huo. - Hariri Chapisho - Haiwezekani kujibu kumbuka ya rasimu - Haiwezekani kunukuu kumbuka ya rasimu - Haiwezekani kuitikia kumbuka ya rasimu - Haiwezekani ku-zap kumbuka ya rasimu - Kumbuka ya Rasimu - Ombi Baya - Seva haiwezi au haitaki kushughulikia ombi. - Hauruhusiwi - Mtumiaji hana vitambulisho sahihi vya uthibitishaji - Malipo Yanahitajika - Seva inahitaji malipo kukamilisha ombi - Imekatazwa - Mtumiaji hana haki za ufikiaji za kutoa ombi - Haikupatikana - Seva haiwezi kupata anwani iliyoombwa - Njia Hairuhusiwi - Seva inasaidia njia ya ombi, lakini si rasilimali lengwa - Haikubaliwi - Seva haipati maudhui yoyote yanayokidhi ombi. - Uthibitishaji wa Wakala Unahitajika - Mtumiaji hana vitambulisho sahihi vya uthibitishaji - Muda wa Ombi Umekwisha - Seva ilimalizia wakati ikingoja mtu mwingine - Mgongano - Seva haiwezi kutimiza ombi kwa sababu kuna mgongano na rasilimali - Imeondolewa - Maudhui yaliyoombwa yamefutwa kabisa kwenye seva na hayatarudishwa - Urefu Unahitajika - Seva inakataa ombi kwa sababu inahitaji uainishaji - Sharti Imeshindwa - Masharti ya ombi katika sehemu za kichwa ambazo seva haikidhi - Mzigo Mkubwa Sana - Ombi ni kubwa kuliko mipaka iliyoainishwa na seva, na seva inakataa kulishughulikia - URI Ndefu Sana - Url iliyoombwa na mteja ni ndefu sana kwa seva kushughulikia. - Aina ya Media Haijasaidiwa - Ombi linatumia muundo wa media ambao seva haujasaidia - Kipindi Hakiridhishi - Seva haiwezi kutimiza thamani iliyoonyeshwa katika sehemu ya Range ya ombi. - Matarajio Yameshindwa - Seva haiwezi kukidhi mahitaji yaliyoonyeshwa katika sehemu ya Expect ya kichwa cha ombi - Uboreshaji Unahitajika - Seva inakataa kushughulikia ombi kwa kutumia itifaki ya sasa isipokuwa mteja aboreshe hadi itifaki nyingine. - Hitilafu ya Ndani ya Seva - Seva imekutana na hitilafu isiyotarajiwa na haiwezi kukamilisha ombi - Haijatekelezwa - Seva haiwezi kutimiza ombi au haitambui njia ya ombi - Lango Baya - Seva inafanya kazi kama lango na ilipata jibu lisilo sahihi kutoka kwa mwenyeji - Huduma Haipatikani - Hii mara nyingi hutokea seva inapozidiwa au iko chini kwa matengenezo - Muda wa Lango Umekwisha - Seva ilikuwa ikifanya kama lango au wakala na ilimaliza wakati, ikingoja jibu - Toleo la HTTP Halijasaidiwa - Seva haijasaidia toleo la HTTP katika ombi - Tofauti Inajadiliana Pia - Seva ina hitilafu ya usanidi wa ndani - Hifadhi Haitoshi - Seva haina hifadhi ya kutosha kushughulikia ombi kwa mafanikio - Kitanzi Kimegunduliwa - Seva inagundua kitanzi kisichokwisha wakati wa kushughulikia ombi - Uthibitishaji wa Mtandao Unahitajika - Mteja lazima athibitishwe kupata ufikiaji wa mtandao Seva za Blossom Ongeza seva nyingi unavyotaka. Unaweza kuchagua ni ipi ya kutumia baadaye unapopakia picha yako - Ongeza Seva ya NIP-96 - Ongeza Seva ya Blossom Pakua - Imeshindwa kufungua faili - Hakuna programu za torrent zilizosanikishwa kufungua na kupakua faili. - Tukio halina taarifa za kutosha kuunda kiungo cha sumaku - Orodha Zangu - Milisho - Lebo za Hashi - Vikundi vya Maslahi - Maeneo - Jamii - Orodha - Algoriti za Mlisho - Algoriti zote za mlisho zinazopendwa - Algoriti za Mlisho Zinazopendwa - Ujumbe wa Siri - Ujumbe wa Umma - Haiwezekani kushiriki picha, tafadhali jaribu tena baadaye… - Haiwezekani kushiriki video, tafadhali jaribu tena baadaye… - Inapakua video… - Usitafsiri Kutoka - Lugha zinazoonyeshwa hapa hazitatafsiriwa. Chagua lugha kuiondoa na kuifanya itafsiriwe tena. - Tafsiri Kwenda - Chagua lugha ya kutafsiri maudhui. - Mapendeleo ya Kuonyesha Lugha - Kwa kila jozi ya lugha iliyotafsiriwa, chagua ni lugha ipi ya kuonyesha kwanza. - Simamisha - Cheza - Ujumbe huu utaondoka katika %1$s - Metadata ya Orodha ya Kufuata - Metadata ya orodha za kufuata inaweza kuonekana na mtu yeyote kwenye Nostr. Wanachama wako wa siri peke yao wamesimbwa kwa njia ya fiche. - Metadata ya Pakiti ya Kufuata - Metadata ya pakiti ya kufuata inaweza kuonekana na mtu yeyote kwenye Nostr na mara nyingi huchapishwa katika tovuti nyingi kama vifaa vya kuanza kwa watumiaji wapya. - Hariri Pakiti ya Kufuata - Panua - Jaribu tena - Mwitikio - Chapisho la Sauti - Jibu la Sauti - Relays za Sanduku la Kutuma - Programu - Mapendekezo ya Programu - Mipangilio ya Mtumiaji - Kichwa cha Sauti - Wimbo wa Sauti - Wimbo wa Muziki - Orodha ya Kucheza Muziki - Kipindi cha Podcast - Onyesho la Podcast - Podcasts Zilizoandikwa - Podcasts Zinazopendwa - Tuzo za Beji - Ufafanuzi wa Beji - Seti ya Beji Zilizokubaliwa - Beji za Wasifu - Relay Zilizozuiwa - Seva za Blossom - Seva za Nests - Uthibitisho wa Blossom - Relay za Utangazaji - Orodha ya Alamisho - Orodha ya Alamisho ya Zamani - Miadi ya Siku - Kalenda - Miadi - RSVP ya Miadi - Michezo ya Sataranji - Uthibitisho wa Sataranji - Relay Zinazopendelewa - Changamoto za Sataranji - Kukubali Mchezo wa Sataranji - Hatua ya Sataranji - Mwisho wa Mchezo wa Sataranji - Ofa ya Sare ya Sataranji - Ufafanuzi wa Chaneli - Ficha Ujumbe wa Chaneli - Orodha ya Chaneli - Ujumbe wa Chaneli - Metadata ya Chaneli - Kimya Mtumiaji wa Chaneli - Faili la DM - Ujumbe wa DM - Relay za DM - Matangazo - Maoni - Ufafanuzi wa Jumuiya - Orodha ya Jumuiya - Chapisho la Jumuiya - Orodha ya Wanaofuatwa - Mafutio - Rasimu - Mifuko ya Emoji - Orodha ya Mifuko ya Emoji - Mazungumzo ya Muda Mfupi - Vyumba vya Mazungumzo vya Muda Mfupi - Vichwa vya Faili - Matunzio ya Wasifu - Seva za Faili - Data ya Blob - Vichwa vya Blob - Data ya Matibabu - Mifuko ya Kufuata - Machapisho Mapya (16) - Ufuatiliaji wa Geohash - Suala la Git - Kiraka cha Git - Hazina ya Git - Jibu la Git - Malengo ya Zap - Ufuatiliaji wa Hashtag - Mambo Muhimu - Uthibitisho wa Http - Orodha ya Index Relay - Utangulizi wa Safari - Tukio la Safari - Usomaji wa Safari - Alamisho Zenye Majina - Mazungumzo ya Moja kwa Moja - Mtiririko wa Moja kwa Moja - Ombi la NWC - Jibu la NWC - Zaps za Kibinafsi - Ombi la Zap - Blogu - Chumba cha Mkutano - Uwepo wa Chumba - Nafasi ya Mkutano - Wasifu - Orodha ya Kimya - Muunganiko wa Nostr - Hali ya DVM - Ombi la Maudhui ya DVM - Jibu la Maudhui ya DVM - Ombi la Mtumiaji wa DVM - Jibu la Mtumiaji wa DVM - Lipa Kwa - Orodha za Watu - Picha - Mazoezi - Pini - Kura ya Zap - Kura - Jibu la Kura - DMs za NIP-04 - Relay za Kibinafsi - Relay za Wakala - Ujumbe wa Umma - Majibu - Kadi ya Mawasiliano - Uthibitisho wa Relay - Ugunduzi wa Relay - Tangazo la Mfuatiliaji wa Relay - Seti ya Relay - Ripoti - Machapisho Mapya - Futa Mtumiaji - Muhuri - Tafuta Relay - Hali ya Mtumiaji - Maelezo - Marekebisho - Maoni ya Torrent - Relay Zinazoaminiwa - Watoa Huduma Wanaoaminiwa - Ujumbe wa Sauti - Jibu la Sauti - Amsha - Alamisho la Wavuti - %1$d%% wakati wa uendeshaji - Mipangilio ya Namecoin - Usawazishaji wa Relay - Kichunguzi cha Bitcoin (OTS) - matukio kutoka kwako - matukio kwako - matukio yanayoweza kutafutwa - wasifu - orodha za outbox - Alionekana mwisho miaka %1$s iliyopita - Alionekana mwisho tarehe %1$s (miaka %2$s iliyopita) - Alionekana mwisho sasa hivi - Hajaonekana kamwe - - dakika %1$d - dakika %1$d - - - saa %1$d - saa %1$d - - - siku %1$d - siku %1$d - - - wiki %1$d - wiki %1$d - - - mwezi %1$d - miezi %1$d - - - mwaka %1$d - miaka %1$d - - - mint %1$d - mints %1$d - - - ankara %1$d inayosubiri - ankara %1$d zinazosubiri - - - Fedha zilizohifadhiwa katika mint %1$d ambayo hutumii - Fedha zilizohifadhiwa katika mints %1$d ambazo hutumii - - Imehamisha %1$s sat kwenye %2$s. - Tuma kwenye kifaa - Acha kutuma - Pakia HLS - Inapakia %1$s (%2$d kati ya %3$d) - Uthibitisho - Ombi la Uthibitisho - Mapendekezo ya Mthibitishaji - Ujuzi wa Mthibitishaji - Vialamisho vya Wavuti - Ongeza Alamisho la Wavuti - Hariri Alamisho la Wavuti - %1$s imefadhiliwa kati ya lengo la %2$s sats - Lengo Jipya - Ombi la Kutoweka - Ombi la kutoweka limetumwa - Historia ya Kutoweka - Watumiaji - Matukio - Aina - Mipangilio - Pendekeza maboresho ya maandishi - Hutumia mfano wa AI uliopo kwenye kifaa kupendekeza marekebisho ya maandishi na mabadiliko ya sauti. - Matangazo yanayofuatiliwa - Tumia mtangazaji anayefuatiliwa wakati wa kutuma matukio. Inaonyesha maendeleo ya moja kwa moja na hali ya kila relay wakati wa kutangaza. - Pendekeza mazoezi ya kushiriki - Inasoma mazoezi yaliyokamilika kutoka Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) na inapendekeza kuyashiriki kama chapisho. Ruhusa inaombwa tu unapounganisha. - Mipangilio ya Kutunga - Unda rasimu kiotomatiki - Huhifadhi tukio la rasimu kiotomatiki unapoandika au kuacha kitenzi cha kutunga chenye maandishi ambayo hayajatumwa na kutuma kwa relay zako za kibinafsi za outbox. - Pakiti mpya ya emoji - Hariri pakiti ya emoji - Pakiti Zangu za Emoji - Emoji - Emoji za umma zinaonekana kwa kila mtu na zinaonekana kwenye menyu yako ya majibu na kichaguo cha kukamilisha \":\" wakati pakiti hii ipo kwenye orodha yako ya emoji. - Emoji za siri zimehifadhiwa zimesimbwa kwenye relay na zinaonekana kwako peke yako. Zinaonekana kwenye menyu yako ya majibu na kukamilisha \":\" kama zile za umma. - Rasimu ina %1$d baiti; jamii hii inapunguza aina hii hadi baiti %2$d. - Rasimu ina %1$d baiti; jamii hii inapunguza matukio hadi baiti %2$d. - Umeshatuma matukio %1$d ya aina hii leo (kikomo %2$d). - Tovuti ya Nowhere - Tukio la Nowhere - Ukusanyaji wa Fedha wa Nowhere - Duka la Nowhere - Ombi la Nowhere - Ujumbe wa Nowhere - Tone la Nowhere - Sanaa ya Nowhere - Jukwaa la Nowhere - - ujumbe %1$d - ujumbe %1$d - - - mwanachama %1$d - wanachama %1$d - - Maelezo ya kikundi yamebadilishwa - Imeshindwa kubadilisha: %1$s - Imeshindwa kuunda kikundi: %1$s - Imeshindwa kuacha kikundi: %1$s - Inaongeza %1$s… - Imeshindwa kuongeza %1$s: %2$s - kosa lisilojulikana - Mwanachama ameondolewa - Imeshindwa kuondoa mwanachama: %1$s - Mamlaka za msimamizi zimetolewa - Imeshindwa kutoa mamlaka za msimamizi: %1$s - Mamlaka za msimamizi zimefutwa - Imeshindwa kufuta mamlaka za msimamizi: %1$s - Si mwanachama wa kikundi hiki Huduma ya Lightning ya mpokeaji katika %1$s haipatikani. Ilihesabiwa kutoka kwa anwani ya lightning \"%2$s\". Kosa: %3$s. Angalia kama seva iko juu na kama anwani ya lightning ni sahihi Haikuweza kusuluhisha %1$s. Angalia kama umeunganishwa, kama seva iko juu na kama anwani ya lightning %2$s ni sahihi.\n\nKosa lilikuwa: %3$s Kosa la kuchanganua JSON kutoka kwa upataji wa ankara wa %1$s. Angalia usanidi wa lightning wa mtumiaji diff --git a/amethyst/src/main/res/values-ta-rIN/strings.xml b/amethyst/src/main/res/values-ta-rIN/strings.xml index 1987974119..0b9ed92e32 100644 --- a/amethyst/src/main/res/values-ta-rIN/strings.xml +++ b/amethyst/src/main/res/values-ta-rIN/strings.xml @@ -1,116 +1,12 @@ - - இந்த இடுகையில் %1$d hashtag-ஐ விட அதிகம் உள்ளது - இந்த இடுகையில் %1$d hashtags-ஐ விட அதிகம் உள்ளது - - - %1$d சொத்து தொகுக்கப்பட்டது - %1$d சொத்துக்கள் தொகுக்கப்பட்டன - - - +%1$d\nபதில் - +%1$d\nபதில்கள் - - எரிதம் (தேவையற்றவை) - இந்த relay இலிருந்து வரும் ஸ்பேம் நிகழ்வுகளின் எண்ணிக்கை - ஆள்மாறாட்டம் - சட்டவிரோத நடத்தை - நீக்கக் கோரு - பதிலளிக்க ஒரு தனிப்பட்ட சாவியுடன் உள்நுழைக - குறிப்புகளை உயர்த்த ஒரு தனிப்பட்ட சாவியுடன் உள்நுழைக - குறிப்புகளை விரும்புவதற்கு தனிப்பட்ட சாவியுடன் உள்நுழைக - ஜாப் தொகை அமைப்பு இல்லை. மாற்ற நீண்ட நேரம் அழுத்தவும் - ஜாப்களை அனுப்ப ஒரு தனிப்பட்ட சாவியுடன் உள்நுழைக - நீங்கள் பொது விசையைப் பயன்படுத்துகிறீர்கள், பொது விசைகள் படிக்க மட்டுமே பயன்படும். பின்தொடர முடியுமாறு தனிப்பட்ட விசையுடன் உள்நுழைக - நீங்கள் பொது விசையைப் பயன்படுத்துகிறீர்கள், பொது விசைகள் படிக்க மட்டுமே பயன்படும். பின்தொடர்வதை நிறுத்த தனிப்பட்ட விசையுடன் உள்நுழைக - நீங்கள் பொது விசையைப் பயன்படுத்துகிறீர்கள், பொது விசைகள் படிக்க மட்டுமே பயன்படும். ஒரு வார்த்தை அல்லது வாக்கியத்தை மறைக்க தனிப்பட்ட விசையுடன் உள்நுழைக - நீங்கள் பொது விசையைப் பயன்படுத்துகிறீர்கள், பொது விசைகள் படிக்க மட்டுமே பயன்படும். ஒரு வார்த்தை அல்லது வாக்கியத்தை காட்ட தனிப்பட்ட விசையுடன் உள்நுழைக - நீங்கள் பொது விசையைப் பயன்படுத்துகிறீர்கள், பொது விசைகள் படிக்க மட்டுமே பயன்படும். பதிவேற்ற தனிப்பட்ட விசையுடன் உள்நுழைக - நீங்கள் பொது விசையைப் பயன்படுத்துகிறீர்கள், பொது விசைகள் படிக்க மட்டுமே பயன்படும். நிகழ்வுகளில் கையெழுத்திட தனிப்பட்ட விசையுடன் உள்நுழைக - அங்கீகரிக்கப்படாத மறைகுறியாக்கம் - இந்த செயல்பாட்டை முடிக்க தேவையான மறைகுறியாக்கத்தை கையெழுத்திட்டவர் அங்கீகரிக்கவில்லை. உங்கள் கையெழுத்திட்டவர் செயலியில் NIP-44 மறைகுறியாக்கங்களை இயக்கி மீண்டும் முயற்சிக்கவும் - கையெழுத்திட்டவர் கண்டுபிடிக்கப்படவில்லை - கையெழுத்திட்டவர் செயலி நிறுவல் நீக்கம் செய்யப்பட்டதா? கையெழுத்திட்டவர் நிறுவப்பட்டு இந்த கணக்கை வைத்திருக்கிறதா என சரிபார்க்கவும். கையெழுத்திட்டவர் செயலி மாறியிருந்தால் வெளியேறி மீண்டும் உள்நுழைக. - வெளிப்புற கையெழுத்திட்டவர் கோரிக்கைக்கு அசாதாரணமான தரவை திரும்ப அனுப்பியது. Amethyst அல்லது கையெழுத்திட்டவரில் ஒரு பிழை இருக்கலாம். - ஜாப்கள் - உயர்த்து உயர்த்தப்பட்டது திருத்தம் #%1$s - திருத்தத்தை முன்மொழிக - சேர் - பிழை செய்தியை பாகுபடுத்துவதில் பிழை - தன்விவரம் - பாதுகாப்பு வடிப்பான்கள் - விலைப்பட்டியல் கோரப்படுகிறது… - டெபிட் சேவை பணத்தை செலுத்தி முடிக்கவில்லை. - %2$s வழியாக %1$s செலுத்தவா? - %1$s வழியாக இந்த விலைப்பட்டியலை செலுத்தவா? - இந்த சலுகைக்கு சரியான தொகையை உள்ளிடவும். - ஒரு முறை - தினசரி - வாராந்திர - மாதாந்திர - செலுத்து - %1$s வழியாக செலுத்துகிறது… - பணம் செலுத்துதல் தோல்வியடைந்தது - இந்த பெறுநருக்கு செலவிடக்கூடியது: %1$s sats - பரிவர்த்தனை: %1$s - " %1$s க்கான முன்னோட்ட அட்டைப் படம்" - தகவல் - உங்கள் மனதில் என்ன உள்ளது? - ஒரு செய்தி எழுதவும்… - பதிவு சேமி - அனுப்பு - உருவாக்கு பெயர் மாற்று - ரத்து - பிழை - பிழைகள் - relay உடனான வெற்றிகரமான இணைப்புகளின் சதவீதம் - தொலைபேசியில் சேமிக்கவும் - படம் காட்சியகத்தில் சேமிக்கப்பட்டது - வீடியோ பதிவிறக்கம் தொடங்கியது… - மீடியா பதிவிறக்கம் தொடங்கியது… - மேலே பொருத்து - பொருத்தலை நீக்கு - படத்தைச் சேமிக்க இயலவில்லை - வீடியோ தொலைபேசியின் வீடியோ தொகுப்பில் சேமிக்கப்பட்டது - வீடியோவை சேமிக்க தோல்வியடைந்தது - PDF, Downloads/Amethyst இல் சேமிக்கப்பட்டது - PDF ஐ சேமிக்க தோல்வியடைந்தது - இந்த சாதனத்தில் கேமரா செயலி எதுவும் கண்டுபிடிக்கப்படவில்லை - செய்தி பதிவு செய்ய கிளிக் செய்து பிடிக்கவும் - பதிவேற்ற பிழை - குரல் செய்தியை பதிவேற்ற தோல்வியடைந்தது - குரல் செய்திகளுக்கு NIP-95 இன்னும் ஆதரிக்கப்படவில்லை - குரல் பதிவேற்றம் தோல்வியடைந்தது: %1$s - எதுவுமில்லை - ஆழமான - உயர்ந்த - நடுநிலை - பயனர் ஸாட்கள் பெறுவதற்கு லைட்னிங் முகவரி அமைக்கவில்லை - "இங்கு பதிலளிக்கவும்.. " - தெரிந்த - புதிய கோரிக்கைகள் - முடக்கப்பட்டப் பயனர்கள் - புதிய இழைகள் - உரையாடல்கள் - மேலும் - தனிப்பட்ட விசை QR குறியீட்டை காட்டு - மறைகுறியாக்கப்பட்ட தனிப்பட்ட விசை QR குறியீட்டை காட்டு - பின்தொடர் - பதிலுக்கு பின்தொடரவும் - கடவுச்சொல்லை மறைக்கவும் - தவறான சாவி - தவறான விசை: %1$s - கடவுச்சொல் தேவை - சாவி தேவை - ஒரு பெயர் தேவை @@ -119,157 +15,7 @@ புதிய அரட்டை சுயவிவரம்: - வெளியேறு - நிறுத்து - மறையும் அரட்டை - Relay அரட்டை - Relay அரட்டைகள் - Relay அரட்டைகள் என்பவை அவற்றின் முகப்பு relay-ஆல் கட்டுப்படுத்தப்படும் அரட்டை குழுக்கள். - அவை Nostr-ல் அனைவருக்கும் தெரியும் மற்றும் யாரும் அவற்றில் பங்கேற்கலாம். - அவை குறிப்பிட்ட தலைப்புகளை சுற்றிய திறந்த சமூகங்களுக்கு மிகவும் ஏற்றவை. இந்த குழுக்களில் சில தற்காலிகமானவை - எனவே அரட்டை செய்திகள் காலப்போக்கில் மறைந்துவிடும் - பொது அரட்டை - MLS குழு - பொது அரட்டை மெட்டாடேட்டா - பொது அரட்டைகள் Nostr-ல் அனைவருக்கும் தெரியும் மற்றும் யாரும் - அவற்றில் பங்கேற்கலாம். அவை குறிப்பிட்ட தலைப்புகளை சுற்றிய திறந்த சமூகங்களுக்கு மிகவும் ஏற்றவை. - அதன் relays-ல் இடுகைகளை நீக்குவதன் மூலம் மிதவாண்மையை கட்டுப்படுத்தலாம் - Relay கள் - இந்த குழுவை ஹோஸ்ட் செய்யும் 1–3 relays-ஐ உள்ளிடவும். - Nostr கிளையன்கள் செய்திகளை எங்கிருந்து பதிவிறக்கம் செய்வது மற்றும் உங்கள் செய்திகளை எங்கே அனுப்புவது என்பதை அறிய இந்த அமைப்பை பயன்படுத்துகின்றன. - அகற்று - ஒருபோதும் இல்லை - இப்போது - ம - நி - நா - பிறந்தமேனி - அவதூறு / வெறுப்புப் பேச்சு - காப்புச் சாவிகள் - உங்கள் தனிப்பட்ட விசையை மறைகுறியாக்க தோல்வியடைந்தது - ரகசிய சாவி (nsec) கிளிப்போர்டுக்கு நகலெடுக்கப்பட்டது - எனது ரகசிய சாவியை நகலெடுக்கவும் - அங்கீகரிப்பு தோல்வியுற்றது - இந்த தொலைபேசியின் உரிமையாளரை பயோமெட்ரிக்ஸ் அங்கீகரிக்க தோல்வியடைந்தது - இந்த தொலைபேசியின் உரிமையாளரை பயோமெட்ரிக்ஸ் அங்கீகரிக்க தோல்வியடைந்தது. பிழை: %1$s - குறிப்பு கிளிப்போர்டுக்கு நகலெடுக்கப் பட்டது - கிளிப்போர்டுக்கு எழுத்தாளரின் @npub நகலெடுக்கப் பட்டது - கிளிப்போர்டுக்கு குறிப்பு ஐடி (@note1) நகலெடுக்கப் பட்டது - "தனிப்பட்ட செய்தியை மறைக்குறியாக்க இயலவில்லை \n \n %1$s மற்றும் %2$s க்கு இடையே தனிப்பட்ட/ குறியாக்கப்பட்ட உரையாடலில் நீங்கள் மேற்கோள் காட்டப்பட்டீர்கள்." - கணக்குகள் - வழிசெல்க - நீங்கள் - தொடர்கள் - உருவாக்கு - அமைப்பு - பின் - உலாவி இணைப்பைப் பகிரவும் - பகிர் - படமாக பகிரவும் - படத்தின் URL ஆக பகிரவும் - பதிவின் எண் - அழி - இழையை முடக்கவும் - இழையின் முடக்கத்தை நீக்கவும் - - தடு - புக்மார்க்குகள் - புக்மார்க்குகள் வெற்றிகரமாக இடம்பெயர்க்கப்பட்டன - வரைவுகள் - திட்டமிட்ட இடுகைகள் - இடுகையை திட்டமிடவும் - திட்டமிடலை ரத்து செய்யவும் - திட்டமிட்ட இடுகைகள் நீங்கள் அடுத்த முறை செயலியை திறக்கும் வரை வெளியிடப்படாமல் போகலாம். நம்பகமான பின்னணி திட்டமிடலுக்கு அமைப்புகள் → UI விருப்பங்களில் எப்போதும் இயங்கும் வசதியை இயக்கவும். - திட்டமிட்ட இடுகைகள் நீங்கள் செயலியை மீண்டும் திறக்கும் வரை வெளியிடப்படாமல் போகலாம். இந்த கணக்கு செயலில் இருக்கும்போது மற்ற கணக்குகளின் திட்டமிட்ட இடுகைகள் செயல்படாது. நம்பகமான பின்னணி திட்டமிடலுக்கு அமைப்புகள் → UI விருப்பங்களில் எப்போதும் இயங்கும் வசதியை இயக்கவும். - %1$s · %2$s இல் - %1$s · %2$s முன்பு - நாளை - வெளியேறப்பட்டது - - வெளியேறியது · %d திட்டமிட்ட இடுகை நீக்கப்பட்டது - வெளியேறியது · %d திட்டமிட்ட இடுகைகள் நீக்கப்பட்டன - - திட்டமிட்ட இடுகை வெளியிடப்பட்டது - திட்டமிட்ட இடுகை தோல்வியடைந்தது - திட்டமிட்ட இடுகைகள் - திட்டமிட்ட இடுகை வெளியிடப்படும்போது அல்லது வெளியிட தோல்வியடையும்போது அறிவிப்புகள். - இப்போது அனுப்பவும் - பிழை: %1$s - திட்டமிடப்பட்டது - அனுப்புகிறது… - தோல்வியடைந்தது - அனுப்பப்பட்டது - ரத்து செய்யப்பட்டது - - இன்னும் வெளியிடப்படாத %d திட்டமிட்ட இடுகை உள்ளது. வெளியேறினால் அது நிரந்தரமாக நீக்கப்படும். - இன்னும் வெளியிடப்படாத %d திட்டமிட்ட இடுகைகள் உள்ளன. வெளியேறினால் அவை நிரந்தரமாக நீக்கப்படும். - - - %d காத்திருக்கும் - %d காத்திருக்கும் - - - · %d 1 மணி நேரத்தில் காலாவதி - · %d 1 மணி நேரத்தில் காலாவதி - - - %d relay-க்கு - %d relays-க்கு - - குறிப்பு ID நகலெடுக்கப்பட்டது - வாக்கெடுப்புகள் - திறந்தவை - மூடப்பட்டவை - சின்னங்கள் - சமூகங்கள் - புதிய சமூகம் - சமூகத்தை திருத்து - மட்டுப்படுத்துவோர் - சரிபார்க்கக்கூடிய விதிகள் (விரும்பினால்) - அனுமதிக்கப்பட்ட நிகழ்வு வகைகள் - குறுகிய உரை (1) - நீண்ட கட்டுரை (30023) - படம் இடுகை (20) - வீடியோ இடுகை (21) - குறுகிய வீடியோ (22) - சமூக கருத்து (1111) - தடை செய்யப்பட்ட பயனர்கள் - நம்பிக்கை-வலை வாயில் (விரும்பினால்) - உலகளாவிய அதிகபட்ச நிகழ்வு அளவு (விரும்பினால்) - புதிய சின்னம் - சின்னம் வழங்கு - சுயவிவர சின்னங்கள் - படங்கள் - உடற்பயிற்சிகள் - புதிய உடற்பயிற்சி - ஓட்டம் - நடைப்பயணம் - சைக்கிள் ஓட்டுதல் - மலையேற்றம் - நீச்சல் - படகு ஓட்டுதல் - வலிமை பயிற்சி - யோகா - தியானம் - உணவு முறை - உண்ணாவிரதம் - சுற்று பயிற்சி - பயன்பாடுகள் பயன்பாடுகள் - உலாவி - Tor மூலம் ஏற்றுகிறது. திறந்த வலையை பயன்படுத்த தட்டவும். - திறந்த வலை மூலம் ஏற்றுகிறது. Tor ஐ பயன்படுத்த தட்டவும். - விருப்பங்கள் - விருப்பமான பயன்பாடுகள் - விருப்பங்களில் சேர்க்கவும் - விருப்பங்களிலிருந்து அகற்று - Tor மூலம் ஏற்றுகிறது. - திறந்த வலை மூலம் ஏற்றுகிறது. - relays இல் வெளியிடப்பட்டது - ஒரு கோப்பு பதிவேற்றப்பட்டது - ஒரு கட்டணம் செய்யப்பட்டது - அந்த பயன்பாடு இன்னும் ஏற்றப்படவில்லை. ஒரு கணம் கழித்து மீண்டும் முயற்சிக்கவும். - சமீபத்தியவை nApplet அனுமதிகள் இன்னும் nApplet அனுமதிகள் இல்லை nApplets க்கு நீங்கள் வழங்கும் அனுமதிகள் இங்கே தோன்றும். @@ -278,45 +24,11 @@ திரும்பப் பெறவும் - அடையாளம் - விசைப்பலகை செயல்கள் - சேமிப்பு - கொடுப்பனவுகள் - வலைப்பின்னல் - பதிவேற்றங்கள் எந்த திறன்கள் கிடைக்கின்றன என்று கேட்கவும் - உங்கள் பொது சாவியை படிக்கவும் - விசைப்பலகை குறுக்குவழிகளை பிணைக்கவும் - உங்கள் நிகழ்வுகளை படித்து, கையொப்பமிட்டு & வெளியிடவும் - அதன் சொந்த தனிப்பட்ட சேமிப்பு - Lightning இன்வாய்ஸ்களை செலுத்தவும் - இணைய மற்றும் Blossom வளங்களை பெறவும் - உங்கள் மீடியா சேவையகத்தில் கோப்புகளை பதிவேற்றவும் - தீம் - அறிவிப்புகள் - செய்தியிடல் - உங்கள் பயன்பாட்டின் வண்ணங்களுடன் பொருத்தவும் - உங்களுக்கு அறிவிப்புகளை காட்டவும் - மற்ற napplets உடன் செய்திகளை பரிமாறிக்கொள்ளவும் திறன்: %1$s - இந்த nApplet உங்கள் பொது சாவியை படிக்க விரும்புகிறது. - இந்த nApplet உங்கள் சுயவிவரம் மற்றும் கணக்கு தரவை படிக்க விரும்புகிறது. - இந்த nApplet உங்களாக ஒரு வகை %1$d நிகழ்வை கையொப்பமிட்டு வெளியிட விரும்புகிறது. - இந்த nApplet உங்களாக ஒரு வகை %1$d நிகழ்வை கையொப்பமிட்டு வெளியிட விரும்புகிறது: - இந்த nApplet உங்களாக ஒரு குறியாக்கப்பட்ட நிகழ்வை அனுப்ப விரும்புகிறது. - இந்த nApplet உங்கள் relays இலிருந்து நிகழ்வுகளை படிக்க விரும்புகிறது. - இந்த nApplet அதன் தனிப்பட்ட சேமிப்பை பயன்படுத்த விரும்புகிறது. இந்த nApplet ஒரு Lightning இன்வாய்ஸை செலுத்த விரும்புகிறது. - இந்த nApplet ஒரு இணைய வளத்தை பெற விரும்புகிறது. - இந்த nApplet உங்கள் மீடியா சேவையகத்தில் ஒரு கோப்பை பதிவேற்ற விரும்புகிறது. - இந்த nApplet உங்களுக்கு அறிவிப்புகளை காட்ட விரும்புகிறது. - இந்த தளம் உங்கள் Nostr சாவியுடன் ஒரு வகை %1$d நிகழ்வை கையொப்பமிட விரும்புகிறது. - - இந்த nApplet %1$d sat-க்கான Lightning invoice செலுத்த விரும்புகிறது. - இந்த nApplet %1$d sats-க்கான Lightning invoice செலுத்த விரும்புகிறது. - - குறுவீடியோக்கள் - பொது அரட்டைகள் - நேரடி ஒளிபரப்புகள் - கையை உயர்த்தவும் - கையை கீழே இறக்கு - ஒலியடக்கு - ஒலியை மீட்டமை - செய்தி அனுப்ப முடியவில்லை - மைக்கை ஒலியடக்கு - மைக்கை ஒலி திறக்கு - அறை திறந்திருக்கும்போது ஆடியோவை இயக்கிக் கொண்டே இருக்கும். - Nest இணைக்கப்பட்டது - Nest — நேரலை - திரும்ப திரும்ப தட்டவும். - நிறுத்து - கையை உயர்த்தினார் - மேடையில் ஏறினார் - பேசுகிறார் - பார்வையாளராக சேர்ந்தார் - nest ஐ விட்டு சென்றார் - வெளியேறு - அறையை மூடியதாக குறிக்க முடியவில்லை. எப்படியும் வெளியேறுகிறது — அறை தானாக மூடும். - - %1$d கேட்பவர் - %1$d கேட்பவர்கள் - - இந்த பேச்சாளரை அமைதிப்படுத்து - இந்த பேச்சாளரை மீட்டமை - பின்தொடர் - பின்தொடர்வதை நிறுத்து - ஒலியடக்கு - ஒலியை மீட்டமை - Nest சேவையக பட்டியலை சேமிக்க முடியவில்லை. மீண்டும் முயற்சி செய்யவும். - Nest சேவையகங்கள் - உங்கள் சேவையகங்கள் - மற்ற கிளையர்கள் உங்கள் விருப்பத்தை படிக்கும் வகையில் kind-10112 மாற்று நிகழ்வாக சேமிக்கப்படும். - பரிந்துரைக்கப்பட்ட சேவையகங்கள் - ஒரு தட்டுதலில் உங்கள் பட்டியலில் சேர்க்கக்கூடிய உள்ளமைக்கப்பட்ட பரிந்துரைகள். - வீடியோக்கள் - இசை - இயல்பட்டியல்கள் - அத்தியாயங்கள் - நிகழ்நேரப் பிரசாரங்கள் - - %1$d அத்தியாயம் - %1$d அத்தியாயங்கள் - - புதிய இசைத் தடம் - புதிய இயல்பட்டியல் - - %1$d பாடல் - %1$d பாடல்கள் - - பொது புக்மார்க்குகளில் சேர்க்கவும் - பொது புக்மார்க்குகளிலிருந்து அகற்று - சுயவிவரத்தில் பொருத்து - சுயவிவரத்திலிருந்து நீக்கு - புதிய புக்மார்க் பட்டியல் - புக்மார்க் பட்டியல் மெட்டாடேட்டா - ஹேஷ்டேக் தொகுப்புகள் - புதிய ஆர்வ தொகுப்பு - மறுபெயரிடு - தனிப்பட்டதாக்கு: குறிப்பிடப்பட்ட பயனர்களுக்கு மட்டுமே பரிசு-சுற்றில் குறிப்பை வழங்கு - பொதுவாக்கு - தனிப்பட்ட குறிப்புக்கான பதில்கள் எப்போதும் தனிப்பட்டதாக இருக்கும் - யாருக்கு தெரியும் இன்னும் பெறுநர்கள் இல்லை: இந்த குறிப்பை நீங்கள் மட்டுமே காண முடியும். பகிர்வதற்கு மக்களை சேர்க்கவும். சேர் அறிவிப்புகளிலிருந்து பயனரை நீக்கு அறிவிக்க ஒரு பயனரை தேடி சேர்க்கவும் - புக்மார்க் பட்டியல் மெட்டாடேட்டா Nostr இல் யாரும் காண முடியும். உங்கள் தனிப்பட்ட உறுப்பினர்கள் மட்டுமே குறியாக்கம் செய்யப்படுவார்கள். - பொதுவிற்கு நகர்த்து - தனிப்பட்டதிற்கு நகர்த்து - நிரப்பி zap அனுப்பு - Zap அனுப்பு - %2$s க்கு %1$s sats நிரப்பி %3$s க்கு %4$s sats zap அனுப்பு · கட்டணம் ≈ %5$s sats - விருப்பம் %s - ஒற்றை தேர்வு - பல தேர்வுகள் - வாக்களிக்க முடியவில்லை - வாக்கெடுப்பு புதிய வாக்குகளுக்கு மூடப்பட்டது - இந்த வகை வாக்கெடுப்பில் ஒரு பயனருக்கு ஒரு வாக்கு மட்டுமே அனுமதிக்கப்படுகிறது - வாக்கெடுப்பை உருவாக்கியோர் தங்கள் சொந்த வாக்கெடுப்பில் வாக்களிக்க முடியாது. - இது என்ன அர்த்தம்? - பதிவு பதியப்பட்ட பின்னர் படம் மாற்றப்படவில்லை - படம் மாறிவிட்டது. மாற்றத்தை பயனர் பார்த்திருக்க மாட்டார் - மீடியா சேர் - படத்தைச் சேர்க்கவும் - காணொளியைச் சேர்க்கவும் - ஆவணத்தைச் சேர்க்கவும் - கோப்புச் சேவையகம் - இந்த கோப்பை பதிவேற்ற ஒரு சேவையகத்தை தேர்வு செய்க - மீடியா சேவையகங்கள் உங்கள் விருப்பமான மீடியா பதிவேற்ற சேவையகங்களை அமைக்கவும். பரிந்துரைக்கப்பட்ட மீடியா சேவையகங்கள் Amethyst\'ன் இயல்புநிலை பட்டியல். அவற்றை தனித்தனியாக சேர்க்கலாம் அல்லது பட்டியலை சேர்க்கலாம். - கட்டண இலக்குகள் - வெவ்வேறு நெட்வொர்க்குகளுக்கு (எ.கா. bitcoin, lightning, ethereum) கட்டண முகவரிகளை சேர்க்கவும். - இந்த கட்டணத்தை கையாள எந்த பயன்பாடும் கிடைக்கவில்லை. பொருந்தும் பணப்பை நிறுவவும். - %1$s கட்டணங்களை கையாள எந்த பயன்பாடும் நிறுவப்படவில்லை. பொருந்தும் பணப்பை நிறுவவும். - கட்டணத்தை திறக்க முடியவில்லை - தனியுரிமை விருப்பங்கள் - எல்லா பின்பற்றப் படுவோர் - அனைத்து பயனர் தொடர்புகளும் - இயல்புநிலை தொடர் பட்டியல் - என்னை சுற்றி - முழுதளாவிய - தொகுக்கப்பட்டது - என்னுடையது - முடக்கு பட்டியல் - புதிய தொடர் பட்டியல் - புதிய தொடர் தொகுப்பு - பட்டியலை திருத்து - இயல்புநிலை போர்ட் 9050 - Orbot Socks போர்ட் - செயலில் Tor எஞ்சின் - உள்ளமைக்கப்பட்ட பதிப்பு அல்லது Orbot பயன்படுத்தவும் - Tor/தனியுரிமை முன்னமைவுகள் - கீழே உள்ள அனைத்து அமைப்புகளையும் விரைவாக மாற்றவும் - எந்த .onion url க்கும் Tor பயன்படுத்தவும் - DM அனுப்பவும் பெறவும் Tor கட்டாயமாக்கவும் - நம்பப்படாத Relays - outbox/inbox relays இல் Tor கட்டாயமாக்கவும் - நம்பகமான Relays - உங்கள் பட்டியல்களில் உள்ள அனைத்து relays இலும் Tor கட்டாயமாக்கவும் - சுயவிவர படங்கள் - சுயவிவர படங்களை ஏற்றும்போது Tor கட்டாயமாக்கவும் - URL முன்னோட்டங்கள் - url முன்னோட்டங்களை ஏற்றும்போது Tor கட்டாயமாக்கவும் - படங்கள் - படங்களை ஏற்றும்போது Tor கட்டாயமாக்கவும் - வீடியோக்கள் - வீடியோக்களை ஏற்றும்போது Tor கட்டாயமாக்கவும் - பண பரிவர்த்தனைகள் - zaps, lightning மற்றும் cashu பரிமாற்றங்களில் Tor கட்டாயமாக்கவும் - Nostr முகவரி சரிபார்ப்பு - NIP-05 முகவரிகளை சரிபார்க்கும்போது Tor கட்டாயமாக்கவும் - மீடியா பதிவேற்றங்கள் - உள்ளடக்கம் பதிவேற்றும்போது Tor கட்டாயமாக்கவும் - உள்ளமைக்கப்பட்டது - அணைக்கவும் - அடிப்படை - இயல்புநிலை - மீடியா தவிர அனைத்தும் - முழு தனியுரிமை - தனிப்பயன் - சேவையகம் தேவைப்படும்போது Tor பயன்படுத்தவும் - சீரற்ற relays இலிருந்து உங்கள் IP ஐ மறைக்கவும் - படங்கள் மற்றும் வீடியோக்கள் தவிர அனைத்திலும் உங்கள் IP ஐ மறைக்கவும் - அனைத்து இணைப்புகளிலும் உங்கள் IP ஐ மறைக்கவும் - உங்களுடையதை உருவாக்கவும் - தனிப்பட்ட செய்திகள் - தனிப்பட்ட செய்தி வருகையில் தெரிவிக்கவும் - ஜாப் பெறப்பட்டது - யாரேனும் உங்களுக்கு ஜாப் அனுப்பும்போது தெரிவிக்கவும் - %1$s ஸாட்ஸ் - %1$s -இடமிருந்து - %1$s -க்கு - பதில் - படித்ததாக குறி - புதிய செய்திகள் - புதிய zaps - எதிர்வினைகள் - யாரோ உங்கள் இடுகைக்கு எதிர்வினை செய்யும்போது அறிவிக்கிறது - %1$s உங்கள் இடுகைக்கு எதிர்வினை செய்தார் - %1$s க்காக - புதிய எதிர்வினைகள் - சதுரங்கம் - சதுரங்க விளையாட்டு நிகழ்வுகளை பற்றி அறிவிக்கிறது - %1$s உங்கள் சதுரங்க சவாலை ஏற்றார் - %1$s நகர்ந்தார் — உங்கள் முறை - சதுரங்க புதுப்பிப்புகள் - பதில்கள் - யாரோ உங்கள் இடுகைக்கு பதில் செய்யும்போது அறிவிக்கிறது %1$s பதிலளித்தார் இதில்: %1$s - புதிய பதில்கள் - குறிப்பீடுகள் - யாரோ ஒரு இடுகையில் உங்களை குறிப்பிடும்போது அல்லது மேற்கோள் காட்டும்போது அறிவிக்கிறது - %1$s உங்களை குறிப்பிட்டார் - புதிய குறிப்பீடுகள் @@ -540,37 +80,6 @@ - வரும் அழைப்புகள் - வரும் குரல் மற்றும் வீடியோ அழைப்புகளுக்கான அறிவிப்புகள் - வரும் அழைப்பு - வரும் குரல் அழைப்பு… - வரும் வீடியோ அழைப்பு… - %1$s உடன் அழைப்பு - அழைப்புகள் - நடைமுறையில் உள்ள அழைப்பு அறிவிப்பு - அழைப்பு துண்டி - ஏற்கவும் - நிராகரி - முடக்கு - முடக்கு நீக்கு - கேமரா இயக்கு - கேமரா அணை - ஸ்பீக்கர் - காதுகேட்கும் கருவி - புளூடூத் - குரல் அழைப்பை தொடங்க Amethyst க்கு மைக்ரோஃபோன் அணுகல் தேவை. பயன்பாட்டு அமைப்புகளில் அதை இயக்கவும். - வீடியோ அழைப்பை தொடங்க Amethyst க்கு கேமரா மற்றும் மைக்ரோஃபோன் அணுகல் தேவை. பயன்பாட்டு அமைப்புகளில் அவற்றை இயக்கவும். - அழைப்பு அமைப்புகள் - நிகழ்நேர அறிவிப்புகளுக்காக உங்கள் inbox relays உடன் இணைப்புகளை செயலில் வைக்கிறது - Amethyst அறிவிப்புகள் செயலில் - - %1$d inbox relay-உடன் இணைக்கப்பட்டது - %1$d inbox relays-உடன் இணைக்கப்பட்டது - - - %1$d relay-உடன் இணைக்கப்பட்டது - %1$d relays-உடன் இணைக்கப்பட்டது - - inbox relays உடன் இணைக்கிறது… எப்போதும் இயங்கும் அறிவிப்பு சேவை உடனடி அறிவிப்பு வழங்கலுக்காக உங்கள் inbox relays உடன் நிரந்தர இணைப்பை பராமரிக்கிறது. தொடர்ச்சியான அறிவிப்பை காட்டுகிறது. அதிக பேட்டரி பயன்படுத்துகிறது, ஆனால் ஒரு செய்தியையும் தவறவிடாமல் உறுதி செய்கிறது. - தொடர்புகளால் அறிவிப்புகளை பிரி - இரண்டு அறிவிப்பு தாவல்களை காட்டு — தொடர்பவர்கள் (நீங்கள் தொடரும் நபர்கள்) மற்றும் அனைவரும். படிக்காத குறிகாட்டி நீங்கள் தொடரும் நபர்களின் செயல்பாட்டிற்கு மட்டுமே ஒளிர்கிறது. - செய்திகளை காட்டு - அறிவிப்பு தாவலில் நேரடி மற்றும் குழு செய்திகளை சேர்க்கவும். செய்திகளை செய்திகள் தாவலில் மட்டும் வைக்க அணைக்கவும். - தெரிவிக்க - இன்று - மறை - காட்டு - எச்சரி - ஸ்பாம் வடிகட்டு - 5 அல்லது அதிகமான முறை சரியாக ஒரே மாதிரியான அந்நியர்களின் இடுகைகளை மறைக்கிறது - என் நிகழ்வுகளில் கிளையண்ட் குறிச்சொல் சேர் - இயக்கப்படும்போது, Amethyst நீங்கள் வெளியிடும் நிகழ்வுகளில் NIP-89 கிளையண்ட் குறிச்சொல்லை இணைக்கிறது. - அறிக்கைகளில் எச்சரி - இடுகைகள் அல்லது சுயவிவரங்களுக்கு உங்கள் தொடர்புகளிடமிருந்து அறிக்கைகள் இருக்கும்போது எச்சரிக்கை செய்தி காட்டுகிறது - சமூக விதிகளை மீறும் இடுகைகளை மறை - சமூகம் NIP-9B விதிகள் ஆவணத்தை வெளியிடும்போது மற்றும் ஒரு நிகழ்வு அதை தவறுகையில் சமூக ஊட்டங்களிலிருந்து இடுகைகளை நீக்குகிறது. சமூகத்திற்கு கட்டமைக்கப்பட்ட விதிகள் இல்லாத போது எந்த விளைவும் இல்லை. - வடிகட்டல் விருப்பங்கள் - தடுக்கப்பட்ட உள்ளடக்கம் - நீங்கள் இன்னும் எந்த பயனரையும் தடுக்கவில்லை. - இந்த அமர்வில் எந்த கணக்கும் ஸ்பாமாக கொடியிடப்படவில்லை. - மறைக்கப்பட்ட வார்த்தைகள் இல்லை. அதை கொண்ட இடுகைகளை மறைக்க கீழே ஒரு வார்த்தையை சேர்க்கவும். - எந்த ரியாக்ஷனும் தேர்ந்தெடுக்கவில்லை. மாற்ற நீண்ட நேரம் அழுத்தவும் - படிப்பதற்கான ரிலே - போஸ்ட் செய்வதற்கான ரிலே - வடிகட்டிகள் மற்றும் நிகழ்வுகள் உட்பட இந்த relay க்கு அனுப்பப்பட்ட பைட்டுகளின் அளவு - வடிகட்டிகள் மற்றும் நிகழ்வுகள் உட்பட இந்த relay இலிருந்து பெறப்பட்ட பைட்டுகளின் அளவு - தனியுரிமைக் கொள்கை - குழந்தை பாதுகாப்பு தரநிலைகள் - பற்றி & சட்டம் - Cashu வில்லை - Lightning முகவரி அமைக்கப்படவில்லை - ரிலேகள் - பின்தொடர் தொகுப்புகள் - வாசிப்புகள் - ஊட்ட அல்காரிதங்கள் - சந்தை - நேரடி ஒளிபரப்புகள் - சமூகங்கள் - அரட்டை - உணர்திறன் உள்ளடக்கம் - இந்த உள்ளடக்கத்தை காட்டுவதற்கு முன் உணர்திறன் உள்ளடக்க எச்சரிக்கை சேர்க்கிறது - UI விருப்பங்கள் செயலி விருப்பங்கள் - மொழிபெயர்ப்புகள் - எதிர்வினைகள் - அமைப்புகள் - கணக்கு அமைப்புகள் - செயலி அமைப்புகள் - ஆபத்து மண்டலம் - Marmot நிலையை மீட்டமை - Marmot நிலை மீட்டமைக்கப்பட்டது. - Marmot நிலையை மீட்டமைக்க முடியவில்லை: %1$s - எப்போதும் - அளவிடா WiFi - ஒருபோதும் இல்லை - முழுமை - எளிமைப்படுத்தப்பட்ட - செயல்திறன் - கிளாசிக் - நவீன - கணினி - வெளிச்சம் - இருள் - தீம் - படம் முன்னோட்டம் - வீடியோ இயக்கம் - வீடியோக்களை தானாக இயக்கு - URL முன்னோட்டம் - மூழ்கிய சுருள் - சுருள்லும்போது நேவிகேஷன் பட்டிகளை மறை - UI பயன்முறை - இடுகை பாணியை தேர்ந்தெடுக்கவும் - சுயவிவர கேலரி பாணி - கேலரி பாணியை தேர்ந்தெடுக்கவும் - ஸ்பாமர்கள் - முடக்கப்பட்டது. முடக்கத்தை நீக்க கிளிக் செய்யவும் - ஒலி இயக்கத்தில். முடக்க கிளிக் செய்யவும் - %d வினாடிகள் பின்னோக்கி தவிர் - %d வினாடிகள் முன்னோக்கி தவிர் - இடம்-மட்டுமான இடுகை - இடத்தை பின்தொடர்பவர்கள் மட்டுமே அதை பார்ப்பார்கள். உங்கள் பொது பின்தொடர்பவர்கள் அதை பார்க்கமாட்டார்கள். - - %1$d பாடல் - %1$d பாடல்கள் - - - +%1$d மேலும் பாடல் - +%1$d மேலும் பாடல்கள் - - அட்டை படத்தை பதிவேற்று - இந்த பாடலின் கலை ஓவியமாக இருக்க ஒரு சதுர படத்தை தேர்ந்தெடுக்கவும். - ஆடியோ கோப்பை பதிவேற்று - MP3, WAV, அல்லது FLAC தேர்ந்தெடுக்கவும். சேமிக்கும்போது உங்கள் மீடியா சேவையகத்தில் பதிவேற்றப்படும். - அட்டை + ஆடியோ பதிவேற்றி வெளியிடுகிறது. திரையை விட்டு சென்றாலும் இது தொடரும். - இசை பட்டியலை திருத்து - அட்டை படத்தை பதிவேற்று - இந்த இசை பட்டியலின் கலை ஓவியமாக இருக்க ஒரு சதுர படத்தை தேர்ந்தெடுக்கவும். - அட்டை பதிவேற்றி வெளியிடுகிறது. திரையை விட்டு சென்றாலும் இது தொடரும். பொது குழு தனியார் - பொருள் - பதிவேற்ற முடியவில்லை - முதலில் செய்தியின் இலக்கை உள்ளிடவும் - வாலட் கிடைக்கவில்லை - Nostr Wallet Connect (NWC)-ஐ ஆதரிக்கும் எந்த பணப்பை பயன்பாடுகளையும் Amethyst கண்டுபிடிக்கவில்லை. -\n\nநீங்கள் செய்யக்கூடியவை: -\n\t1. NWC ஆதரவை சரிபாருங்கள்: உங்கள் விருப்பமான பணப்பை பயன்பாடு Nostr Wallet Connect-உடன் இணக்கமானதா என இரட்டிப்பு சரிபாருங்கள். -\n\t2. இணைப்பை உருவாக்குங்கள்: உங்கள் பணப்பை பயன்பாட்டிற்கு சென்று புதிய NWC இணைப்பை உருவாக்குங்கள். -\n\t3. Amethyst-உடன் இணைக்குங்கள்: உங்கள் பணப்பை பொதுவாக மூன்று விருப்பங்களை வழங்கும்: -\n\t\t3.1 தானியங்கி இணைப்பு: Amethyst-ஐ தானாக திறந்து இணைக்க ஒரு பொத்தான். அவ்வாறிருந்தால், அந்த பொத்தானை அழுத்தி Amethyst-ஐ திறந்து புதிய திரையில் சேமி அழுத்துங்கள். -\n\t\t3.2 கைமுறை இணைப்பு: நீங்கள் நகலெடுக்கக்கூடிய Connection URI, இந்த திரையில் ஒட்டு ஐகானை அழுத்தி நேரடியாக உள்ளிடலாம். -\n\t\t3.3 QR குறியீடு: பணப்பை ஒரு QR குறியீட்டை உருவாக்கும், இந்த திரையில் QR குறியீடு பொத்தானிலிருந்து படிக்கலாம். - - இருண்ட, வெளிச்சம் அல்லது கணினி தீம் - படங்களை மற்றும் GIF களை தானாக ஏற்று - வீடியோக்களை மற்றும் GIF களை தானாக ஏற்று - திரையில் தெரியும்போது வீடியோக்களை தானாக இயக்கு - URL முன்னோட்டங்களை காட்டு - கிளிப்போர்டுக்கு நகலெடு - கிளிப்போர்டுக்கு நகலெடுக்கப்பட்டது - பகிர் அல்லது சேமி DM ஆக அனுப்பு - மீடியா சேர்க்கப்பட்டது - உங்கள் சுயவிவர கேலரியில் மீடியா சேர்க்கப்பட்டது - Zap அனுப்ப முடியவில்லை - Lightning அமைப்பு இல்லை - பயனர் %1$s க்கு sats பெறுவதற்கான lightning முகவரி அமைப்பு இல்லை - கையொப்பமிடல் செயலியை திறக்கும்போது பிழை - கையொப்பமிடல் செயலியை கண்டுபிடிக்க முடியவில்லை. செயலி நிறுவல் நீக்கப்படவில்லையா என சரிபார்க்கவும் - இந்த வீடியோவை இயக்க முடியவில்லை - இந்த சாதனத்தில் codec அல்லது வடிவம் ஆதரிக்கப்படவில்லை (%1$s). உங்கள் உலாவியில் திறக்க முயற்சிக்கவும். - உலாவியில் திற - கையொப்பமிடல் கோரிக்கை நிராகரிக்கப்பட்டது - கையொப்பமிடல் செயலி இந்த பரிவர்த்தனையை அங்கீகரித்திருக்கிறதா என சரிபார்க்கவும் - lightning இன்வாய்ஸை செலுத்த வாலட்கள் எதுவும் கிடைக்கவில்லை (பிழை: %1$s). Zap களை பயன்படுத்த Lightning வாலட்டை நிறுவுக - lightning இன்வாய்ஸை செலுத்த வாலட்கள் எதுவும் கிடைக்கவில்லை. Zap களை பயன்படுத்த Lightning வாலட்டை நிறுவுக - Blossom இணைப்புகளை திறக்க முடியவில்லை - Blossom செயலிகள் கண்டுபிடிக்கப்படவில்லை. இந்த கோப்பை பார்க்க உள்ளூர் Blossom செயலியை நிறுவுக - மறைக்கப்பட்ட வார்த்தைகள் - முடக்கப்பட்ட நூல்கள் - முடக்கப்பட்ட நூல்கள் இல்லை - சுயவிவர படம் - சுயவிவர படங்களை காட்டு - இன்வாய்ஸை செலுத்த முடியவில்லை - திரும்பப் பெற முடியவில்லை - Cashu ஐ மீட்டெடுக்க முடியவில்லை - Mint பின்வரும் பிழை செய்தியை வழங்கியது: %1$s - Cashu பெறப்பட்டது - %1$s sats உங்கள் வாலட்டுக்கு அனுப்பப்பட்டது. (கட்டணம்: %2$s sats) - கணினியில் பொருந்தக்கூடிய Cashu வாலட் கிடைக்கவில்லை - பெறுநரின் சேவையகங்களிலிருந்து இன்வாய்ஸை பெற முடியவில்லை - உங்கள் wallet connect வழங்குனர் பின்வரும் பிழையை திருப்பி அனுப்பியது: %1$s - Lightning முகவரி \"%1$s\" இலிருந்து LNUrl ஐ உருவாக்க முடியவில்லை. பயனரின் அமைப்பை சரிபார்க்கவும் - %1$s இலிருந்து இன்வாய்ஸை பெற முடியவில்லை: %2$s - %1$s இலிருந்து JSON ஐ பாகுபடுத்துவதில் பிழை. பயனரின் lightning அமைப்பை சரிபார்க்கவும் - %1$s இன் பதிலில் callback URL கிடைக்கவில்லை - %2$s இலிருந்து தவறான இன்வாய்ஸ் தொகை (%1$s sats). அது %3$s ஆக இருந்திருக்க வேண்டும் - Zap அனுப்புவதற்கு முன் lightning இன்வாய்ஸை உருவாக்க முடியவில்லை. பெறுநரின் lightning வாலட் பின்வரும் பிழையை அனுப்பியது: %1$s - படிக்க மட்டும் பயனர் - எந்த எதிர்வினையும் அமைக்கப்படவில்லை - அறிவிப்புகள் - வழங்கல் - ஆப்-உள் காட்சி - வகைகள் - %1$s இலிருந்து செய்தி - வணக்கம் %1$s, இது இன்னும் கிடைக்கிறதா? - ஆடைகள் - துணைக்கருவிகள் - மின்னணுவியல் - தளபாடங்கள் - சேகரிப்பு பொருட்கள் - புத்தகங்கள் - செல்லப்பிராணிகள் - விளையாட்டு - உடற்பயிற்சி - கலை - கைவினை - வீடு - அலுவலகம் - உணவு - இதர - மற்றவை - மீடியா பதிவேற்றம் தோல்வியடைந்தது - சுருக்கப்பட்ட கோப்பை திறக்க முடியவில்லை - பதிவேற்றப் பிழை: %1$s - பதிவேற்றிய பிறகு சர்வர் URL வழங்கவில்லை - சர்வரிலிருந்து பதிவேற்றிய மீடியாவை பதிவிறக்க முடியவில்லை - பதிவேற்றத்திற்குப் பிறகு பதிவிறக்கிய கோப்பை சரிபார்க்க முடியவில்லை: %1$s - %1$s-க்கு பதிவேற்றம் தோல்வியடைந்தது: %2$s - நீக்கம் தோல்வியடைந்தது: %1$s - NIP-95-க்கு மீடியா மிகவும் பெரியது - கோப்புகளை குறியாக்கு - தனியுரிமைக்காக பதிவேற்றுவதற்கு முன் கோப்புகளை குறியாக்கவும். சில சர்வர்கள் இலவச கணக்குகளில் குறியாக்கப்பட்ட கோப்புகளை ஏற்காது. - குறியாக்கப்பட்ட பதிவேற்றம் தோல்வியடைந்தது - பல சர்வர்கள் இலவச கணக்குகளில் குறியாக்கப்பட்ட கோப்புகளை ஏற்காது. குறியாக்கம் இல்லாமல் மீண்டும் முயற்சிக்கலாம். - H.265/HEVC கோடெக் பயன்படுத்தவும் - சிறிய கோப்பு அளவுகளில் சிறந்த தரம், ஆனால் எல்லா சாதனங்களும் H.265 இயக்கத்தை ஆதரிக்காது. - GIF-ஐ MP4-ஆக மாற்றவும் - சிறிய கோப்பு அளவு மற்றும் சிறந்த இயக்க இணக்கத்திற்காக அனிமேட்டட் GIF-ஐ MP4 வீடியோவாக மாற்றுகிறது. - தனிப்பட்ட மெட்டாடேட்டாவை அகற்றவும் - பதிவேற்றுவதற்கு முன் ஆதரவு மீடியா கோப்புகளிலிருந்து தனிப்பட்ட மெட்டாடேட்டாவை நீக்க முயற்சிக்கிறது - மெட்டாடேட்டாவை அகற்ற முடியவில்லை - மீடியாவிலிருந்து தனிப்பட்ட மெட்டாடேட்டாவை நீக்கத் தோல்வியடைந்தது. பதிவேற்றம் ரத்துசெய்யப்பட்டது. - பதிவேற்றம் ரத்துசெய்யப்பட்டது - AVIF-இலிருந்து மெட்டாடேட்டாவை நீக்க முடியவில்லை: %1$s - முகப்பு - கண்டுபிடிக்கவும் - செய்திகள் - அறிவிப்புகள் - காலண்டர்கள் - காலண்டர் பட்டியல்கள் - சதுரங்கம் - பணப்பை - Cashu பணப்பை (NIP-60) Nutzap விசை (மேம்பட்டது) NIP-61 nutzap-களை பெறுவதற்கு மட்டும் பயன்படுத்தப்படும் தனி தனிப்பட்ட விசை. உங்கள் Nostr அடையாள விசை அல்ல. புதிய விசையை உருவாக்கவும் P2PK தனிப்பட்ட விசை (hex) - Mint-களை திருத்தவும் மாற்றங்களை சேமிக்கவும் - - +%1$d மேலும் - +%1$d மேலும் - - - %1$d பிறரால் பரிந்துரைக்கப்பட்டது - %1$d பிறரால் பரிந்துரைக்கப்பட்டது - - பிரபலமான mints - பொருந்தும் mints - பெறப்பட்டது - அனுப்பப்பட்டது - %1$s-க்கான உங்கள் kind:38000 பரிந்துரைக்கு நீக்க கோரிக்கையை வெளியிடவும். NIP-09-ஐ மதிக்கும் relay-கள் அதை நீக்கும். - %2$s ஆதாரங்களில் %1$s sats மீட்டெடுக்கப்பட்டது. - %1$s sat + கட்டணமாக %2$s sat வரை செலுத்தவா? - Nutzap தோல்வியடைந்தது - குறிப்பில் பெறுநர் pubkey இல்லை - Nutzap-கள் பொது மற்றும் இந்த தனிப்பட்ட குறிப்பை வெளியிடும். அதற்கு பதில் Lightning zap பயன்படுத்தவும். - நிகழ்வு குறிப்பை உருவாக்க முடியவில்லை - இன்வாயிஸ் செலுத்தப்படுவதற்கு காத்திருக்கிறது… - Mint-ஐ சரிபார்க்கிறது… - மெதுவாக - சாதாரண - வேகமாக - ~1 மணி நேரம் - ~30 நிமிடம் - ~10 நிமிடம் - - %1$s sats அனுப்பு, %2$d வழி - %1$s sats அனுப்பு, %2$d வழிகள் - - - இந்த குறிப்பின் %1$d-வழி zap பிரிவை பயன்படுத்து - இந்த குறிப்பின் %1$d-வழி zap பிரிவை பயன்படுத்து - - - %1$d பெறுநருக்கு இடையே பிரிவு - %1$d பெறுநர்களுக்கு இடையே பிரிவு - - - %1$d Lightning-முகவரி மட்டும் உள்ள பெறுநரை தவிர்க்கிறோம் — on-chain முகவரி பெற Nostr pubkey தேவை. - %1$d Lightning-முகவரி மட்டும் உள்ள பெறுநர்களை தவிர்க்கிறோம் — on-chain முகவரி பெற Nostr pubkey தேவை. - - இருப்பு ஏற்றுகிறது - பரிவர்த்தனையை உருவாக்குகிறது - கையொப்மிடுகிறது - ஒளிபரப்புகிறது - ரசீதை வெளியிடுகிறது - Bitcoin சேயின் பின்தள அமைவு இல்லை - உங்கள் Bitcoin இருப்பை ஏற்ற முடியவில்லை - பரிவர்த்தனையை உருவாக்க முடியவில்லை - ஒரு பெறுநர் பங்கு டஸ்ட் வரம்பிற்கு கீழே உள்ளது - பரிவர்த்தனையில் கையொப்மிட முடியவில்லை - பரிவர்த்தனையை ஒளிபரப்ப முடியவில்லை - கட்டணம் அனுப்பப்பட்டது, ஆனால் zap ரசீதை வெளியிட முடியவில்லை - - கட்டணம் அனுப்பப்பட்டது (%2$d-ல் %1$d ரசீது வெளியிடப்பட்டது), ஆனால் அடுத்த ரசீதை வெளியிட முடியவில்லை - கட்டணம் அனுப்பப்பட்டது (%2$d-ல் %1$d ரசீதுகள் வெளியிடப்பட்டன), ஆனால் அடுத்த ரசீதை வெளியிட முடியவில்லை - - பின்தொடர்பவர்களை இறக்குமதி செய் - புதிய தயாரிப்பு - புதிய கட்டுரை - புதிய நாட்காட்டி நிகழ்வு - நாட்காட்டி நிகழ்வை திருத்து - புதிய நாட்காட்டி - நாட்காட்டியை திருத்து - ஊட்டம் - மாதம் - வாரம் - நாள் - - %1$s, %2$d நிகழ்வு - %1$s, %2$d நிகழ்வுகள் - - இப்போது நடக்கிறது - %1$s · %2$s இல் முடிகிறது - நாட்காட்டி நிகழ்வை பகிர் - நாட்காட்டி நினைவூட்டல்கள் - நீங்கள் கலந்துகொள்ளும் நிகழ்வு தொடங்கப்போகும்போது முன்னறிவிப்பு. - நாட்காட்டி நிகழ்வு - - %1$d நிமிடத்தில் தொடங்கும் - %1$d நிமிடங்களில் தொடங்கும் - - படம் பதிவேற்றம் தோல்வியடைந்தது - தேர்ந்தெடுக்கப்பட்ட படத்தை பதிவேற்ற முடியவில்லை. மீண்டும் முயற்சிக்கவும் அல்லது URL ஒட்டவும். - நாட்காட்டி நினைவூட்டல்கள் - நினைவூட்டல்களை அனுப்பு - நீங்கள் கலந்துகொள்ளும் நிகழ்வு தொடங்கப்போகும்போது அறிவிப்பு வரும். - - %1$d நிமிடம் - %1$d நிமிடம் - - வரைபடங்களில் திற - இணைப்பை திற - இந்த இடுகைக்கான அனைத்து எதிர்வினைகளையும் திற - இந்த இடுகைக்கான அனைத்து எதிர்வினைகளையும் மூடு - கீழ் வழிசெலுத்தல் பட்டை மறுவரிசைப்படுத்த இழுக்கவும். கீழ் பட்டையில் ஒரு உருப்படியை சேர்க்க அல்லது அகற்ற மாற்றவும். பூஜ்ய உருப்படிகளுடன் கீழ் பட்டை மறைக்கப்படும். மறுவரிசைப்படுத்து முகப்புத் திரையில் எந்த தாவல்கள் தோன்றுமென்று தேர்வு செய்யுங்கள். ஒரே ஒரு தாவல் மட்டும் இயக்கத்தில் இருக்கும்போது தாவல் பட்டை மறைக்கப்படும். - அனைத்தும் - சுயவிவர UI பயனர் சுயவிவரத் திரைகளில் எந்த பகுதிகள் மற்றும் ஊட்டங்கள் தோன்றுமென்று தேர்வு செய்யுங்கள். அனைத்து விருப்பங்களும் இயல்பாக இயக்கப்பட்டிருக்கும். - சுயவிவர பேட்ஜுகள் - பயன்பாட்டு பரிந்துரைகள் - Zap பெற்ற ஊட்டம் - பின்தொடர்பவர்கள் ஊட்டம் - எதிர்வினை வரிசை - வீடியோ பிளேயர் பொத்தான்கள் - ஆடியோ காட்சிப்படுத்தி - காலாவதி தேதி - தவறான முகவரி - Amethyst திறக்க ஒரு URI பெற்றது, ஆனால் அந்த URI தவறானது: %1$s - DM இன்பாக்ஸ் Relays - தேடல் Relays - நல்ல விருப்பங்கள்:\n%1$s - அவுட்பாக்ஸ் Relays - இன்பாக்ஸ் Relays - Relay அமைப்புகள் - பொது அவுட்பாக்ஸ்/முகப்பு Relays - பயனர் இந்த relays-ல் தன் உள்ளடக்கத்தை இடுகையிடுகிறார் - இந்த relay வகை உங்கள் அனைத்து உள்ளடக்கத்தையும் சேமிக்கிறது. Amethyst உங்கள் இடுகைகளை இங்கே அனுப்பும், மற்றவர்கள் உங்கள் உள்ளடக்கத்தை கண்டுபிடிக்க இந்த relays பயன்படுத்துவார்கள். 1–3 relays சேர்க்கவும். அவை தனிப்பட்ட relays, கட்டண relays அல்லது பொது relays ஆக இருக்கலாம். - பொது இன்பாக்ஸ் Relays - பயனர் இந்த relays-ல் அறிவிப்புகளைப் பெறுகிறார் - இந்த relay வகை உங்கள் இடுகைகளுக்கான அனைத்து பதில்கள், கருத்துகள், விருப்பங்கள் மற்றும் zaps பெறுகிறது. அவை கட்டண அல்லது இலவச relays ஆக இருக்கலாம். relay ஆபரேட்டர் அமைக்கும் வரம்புகள் நல்லதற்கும் கெட்டதற்கும் நீங்கள் பெறும் அறிவிப்புகளை கட்டுப்படுத்தலாம். எடுத்துக்காட்டாக, கருத்து ஸ்பாம் தாக்குதலுக்கு உட்பட்டால், கட்டண relays ஸ்பாமை வடிகட்டலாம். 1–3 relays சேர்க்கவும். - DM இன்பாக்ஸ் Relays - பயனர் இந்த relays-ல் DMs பெறுகிறார் - உங்கள் தனிப்பட்ட இன்பாக்ஸாக 1–3 relays சேர்க்கவும். மற்றவர்கள் உங்களுக்கு DMs அனுப்ப இந்த relays பயன்படுத்துவார்கள். DM இன்பாக்ஸ் relays யாரிடமிருந்தும் எந்த செய்தியும் ஏற்றுக்கொள்ள வேண்டும், ஆனால் நீங்கள் மட்டுமே அவற்றை பதிவிறக்க அனுமதிக்க வேண்டும். நல்ல விருப்பங்கள்:\n - inbox.nostr.wine (கட்டணம்)\n - auth.nostr1.com (இலவசம்)\n - you.nostr1.com (தனிப்பட்ட relays - கட்டணம்) - உங்கள் MLS KeyPackages வெளியிடப்படும் Relays (MIP-00). மற்ற பயனர்கள் உங்களை Marmot குழு அரட்டைகளில் அழைக்க இந்த KeyPackages பெறுகிறார்கள். KeyPackage நிகழ்வுகளை ஏற்றுக்கொள்ளும் மற்றும் பொது வாசிப்பை அனுமதிக்கும் 1–3 relays சேர்க்கவும். - தனிப்பட்ட முகப்பு Relays - வேறு யாரும் பார்க்க முடியாத நிகழ்வுகளை சேமிக்க 1–3 relays சேர்க்கவும், உங்கள் வரைவுகள் மற்றும்/அல்லது பயன்பாட்டு அமைப்புகள் போன்றவை. ஆனால், இந்த relays உள்ளூர் அல்லது ஒவ்வொரு பயனரின் உள்ளடக்கத்தையும் பதிவிறக்குவதற்கு முன் அங்கீகரிப்பு தேவைப்படுவது சிறந்தது. - இணைந்த Relays - தற்போது பயன்படுத்தப்படும் relays பட்டியல் - தேடல் Relays - உள்ளடக்கம் அல்லது பயனர்களை தேடும்போது பயன்படுத்த வேண்டிய relays பட்டியல். எந்த விருப்பங்களும் இல்லையென்றால் குறியிடல் மற்றும் தேடல் வேலை செய்யாது. அவை NIP-50 செயல்படுத்துகிறதா என்று உறுதிப்படுத்தவும். - உள்ளூர் Relays - இந்த சாதனத்தில் இயங்கும் relays பட்டியல். - சுயவிவரங்களை உள்ளூர் relay-க்கு அனுப்பு - பெறப்பட்ட அனைத்து சுயவிவர (kind 0) நிகழ்வுகளையும் உங்கள் உள்ளூர் relay-க்கு அனுப்பு - நம்பகமான Relays - Tor இணைப்பு தேவையில்லை என்று நீங்கள் நம்பும் Relays - விருப்பமான Relay ஊட்டங்கள் - உங்கள் பொது ஊட்டத்தை பார்க்க நீங்கள் அடிக்கடி செல்லும் Relays - filter.nostr.wine போன்ற ஒருங்கிணைப்பு relays, பயன்பாடு உங்கள் ஊட்டங்களை பதிவிறக்க பயன்படுத்த வேண்டும். இது அவுட்பாக்ஸ் மாதிரியை மாற்றுகிறது, பயன்பாட்டை உங்கள் பட்டியல்களில் உள்ள relays மட்டுமே இணைக்கும். - ஒளிபரப்பு Relays - sendit.nosflare.com போன்ற, உங்கள் குறிப்புகளை மற்ற அனைத்து relays-க்கும் தள்ளுவதில் நிபுணத்துவம் பெற்ற Relays. Amethyst நீங்கள் செய்யும் அனைத்து புதிய நிகழ்வுகளிலும் இந்த relay-ஐ சேர்க்கும் - குறியீட்டாளர் Relays - purplepag.es போன்ற, அனைவரின் மெட்டாடேட்டா மற்றும் relay பட்டியல்களை வழங்குவதில் நிபுணத்துவம் பெற்ற Relays. உங்கள் பட்டியல்களில் இல்லாத பயனர்களை கண்டுபிடிக்க Amethyst இந்த relays பயன்படுத்தும். - தடுக்கப்பட்ட Relays - Amethyst இந்த relays-க்கு ஒருபோதும் இணைக்காது - Relay அமைப்புகளை ஏற்றுமதி செய் இணையம்: மேலோட்டம் பற்றி இணைப்புகள் பராமரிப்பாளர்கள் தலைப்புகள் - நேர முத்திரை சான்று - இந்த இடுகை %1$s-க்கு முன்பு ஒரு நேரத்தில் கையொப்பமிடப்பட்டது என்பதற்கான சான்று உள்ளது. சான்று அந்த தேதியிலும் நேரத்திலும் Bitcoin blockchain-ல் முத்திரையிடப்பட்டது. - இடுகையைத் திருத்து - வரைவு குறிப்புக்கு பதில் அளிக்க முடியாது - வரைவு குறிப்பை மேற்கோள் காட்ட முடியாது - வரைவு குறிப்பிற்கு எதிர்வினையாற்ற முடியாது - வரைவு குறிப்பை zap செய்ய முடியாது - வரைவு குறிப்பு - தவறான கோரிக்கை - சேவையகம் கோரிக்கையை செயலாக்க முடியவில்லை அல்லது மறுக்கிறது. - அங்கீகரிக்கப்படவில்லை - பயனருக்கு செல்லுபடியாகும் அங்கீகார சான்றுகள் இல்லை - கட்டணம் தேவை - கோரிக்கையை நிறைவேற்ற சேவையகம் கட்டணம் தேவைப்படுகிறது - தடைசெய்யப்பட்டது - கோரிக்கையை செய்ய பயனருக்கு அணுகல் உரிமைகள் இல்லை - கிடைக்கவில்லை - கோரப்பட்ட முகவரியை சேவையகம் கண்டுபிடிக்கவில்லை - முறை அனுமதிக்கப்படவில்லை - சேவையகம் கோரிக்கை முறையை ஆதரிக்கிறது, ஆனால் இலக்கு வளத்தை இல்லை - ஏற்றுக்கொள்ளத்தக்கதல்ல - கோரிக்கையை திருப்திப்படுத்தும் எந்த உள்ளடக்கத்தையும் சேவையகம் கண்டுபிடிக்கவில்லை. - Proxy அங்கீகரிப்பு தேவை - பயனருக்கு செல்லுபடியாகும் அங்கீகார சான்றுகள் இல்லை - கோரிக்கை காலாவதி - வேறு யாரோ காத்திருக்க சேவையகம் காலாவதியானது - முரண்பாடு - வளத்துடன் முரண்பாடு இருப்பதால் சேவையகம் கோரிக்கையை நிறைவேற்ற முடியவில்லை - நீங்கிவிட்டது - கோரப்பட்ட உள்ளடக்கம் சேவையகத்திலிருந்து நிரந்தரமாக நீக்கப்பட்டது, மீண்டும் வழங்கப்படாது - நீளம் தேவை - வரையறுக்கப்பட்ட Content-Length தேவைப்படுவதால் சேவையகம் கோரிக்கையை நிராகரிக்கிறது - முன்நிபந்தனை தோல்வியடைந்தது - சேவையகம் பூர்த்திசெய்யாத தலைப்பு புலங்களில் கோரிக்கையின் முன்நிபந்தனைகள் - பேலோட் மிகவும் பெரியது - கோரிக்கை சேவையகத்தின் வரையறுக்கப்பட்ட வரம்புகளை விட பெரியது, சேவையகம் அதை செயலாக்க மறுக்கிறது - URI மிகவும் நீண்டது - கிளையன்ட் கோரிய URL சேவையகம் செயலாக்க மிகவும் நீண்டது. - ஆதரிக்கப்படாத மீடியா வகை - கோரிக்கை சேவையகம் ஆதரிக்காத மீடியா வடிவத்தைப் பயன்படுத்துகிறது - வரம்பு திருப்திகரமாக இல்லை - கோரிக்கையின் Range தலைப்பு புலத்தில் குறிப்பிடப்பட்ட மதிப்பை சேவையகம் நிறைவேற்ற முடியவில்லை. - எதிர்பார்ப்பு தோல்வியடைந்தது - Expect கோரிக்கை தலைப்பு புலத்தால் குறிப்பிடப்பட்ட தேவைகளை சேவையகம் பூர்த்திசெய்ய முடியவில்லை - மேம்படுத்துதல் தேவை - கிளையன்ட் வேறு நெறிமுறைக்கு மேம்படுத்தாத வரை தற்போதைய நெறிமுறையைப் பயன்படுத்தி கோரிக்கையை செயலாக்க சேவையகம் மறுக்கிறது. - உள் சேவையக பிழை - சேவையகம் எதிர்பாராத பிழையை சந்தித்தது, கோரிக்கையை நிறைவேற்ற முடியவில்லை - செயல்படுத்தப்படவில்லை - கோரிக்கையை சேவையகம் நிறைவேற்ற முடியவில்லை அல்லது கோரிக்கை முறையை அடையாளம் காணவில்லை - தவறான நுழைவாயில் - சேவையகம் நுழைவாயிலாக செயல்படுகிறது மற்றும் கணினியிலிருந்து தவறான பதில் பெற்றது - சேவை கிடைக்கவில்லை - இது பெரும்பாலும் சேவையகம் அதிக சுமையில் இருக்கும்போது அல்லது பராமரிப்புக்கு கீழே இருக்கும்போது நிகழ்கிறது - நுழைவாயில் காலாவதி - சேவையகம் நுழைவாயில் அல்லது proxy ஆக செயல்பட்டு, பதிலுக்காக காத்திருந்து காலாவதியானது - HTTP பதிப்பு ஆதரிக்கப்படவில்லை - கோரிக்கையில் உள்ள HTTP பதிப்பை சேவையகம் ஆதரிக்கவில்லை - மாறுபாடும் பேச்சுவார்த்தை நடத்துகிறது - சேவையகத்தில் உள் உள்ளமைவு பிழை உள்ளது - போதுமான சேமிப்பிடம் இல்லை - கோரிக்கையை வெற்றிகரமாக செயலாக்க சேவையகத்தில் போதுமான சேமிப்பிடம் இல்லை - சுழல் கண்டறியப்பட்டது - கோரிக்கையை செயலாக்கும்போது சேவையகம் முடிவற்ற சுழலை கண்டறிகிறது - நெட்வொர்க் அங்கீகரிப்பு தேவை - நெட்வொர்க்கை அணுக கிளையன்ட் அங்கீகரிக்கப்பட வேண்டும் Blossom சேவையகங்கள் உங்களுக்கு விரும்பிய அளவு சேவையகங்கள் சேர்க்கவும். உங்கள் படத்தை பதிவேற்றும்போது எதைப் பயன்படுத்த வேண்டும் என்று பின்னர் தேர்வு செய்யலாம் - NIP-96 சேவையகம் சேர்க்கவும் - Blossom சேவையகம் சேர்க்கவும் பதிவிறக்கு - கோப்பை திறக்கத் தவறியது - கோப்பை திறக்க மற்றும் பதிவிறக்க torrent பயன்பாடுகள் எதுவும் நிறுவப்படவில்லை. - magnet இணைப்பை உருவாக்க நிகழ்வில் போதுமான தகவல் இல்லை - என் பட்டியல்கள் - ஊட்டங்கள் - ஆர்வ தொகுப்புகள் - இடங்கள் - சமுதாயங்கள் - பட்டியல்கள் - ஊட்ட அல்காரிதங்கள் - அனைத்து விருப்பமான ஊட்ட அல்காரிதங்கள் - விருப்பமான ஊட்ட அல்காரிதங்கள் - தனிப்பட்ட செய்தி - பொது செய்தி - படத்தைப் பகிர முடியவில்லை, பின்னர் மீண்டும் முயற்சிக்கவும்… - வீடியோவைப் பகிர முடியவில்லை, பின்னர் மீண்டும் முயற்சிக்கவும்… - வீடியோவை பதிவிறக்குகிறது… - இதிலிருந்து மொழிபெயர்க்காதே - இங்கே காட்டப்படும் மொழிகள் மொழிபெயர்க்கப்படாது. மொழியை தேர்ந்தெடுத்து அகற்று, மீண்டும் மொழிபெயர்க்கப்படும். - இதற்கு மொழிபெயர்க்கவும் - உள்ளடக்கத்தை மொழிபெயர்க்க வேண்டிய மொழியை தேர்ந்தெடுக்கவும். - மொழி காட்சி விருப்பங்கள் - ஒவ்வொரு மொழிபெயர்க்கப்பட்ட மொழி ஜோடிக்கும், எந்த மொழியை முதலில் காட்ட வேண்டும் என்று தேர்ந்தெடுக்கவும். - இடைநிறுத்து - இயக்கு - இந்த செய்தி %1$s-ல் மறைந்துவிடும் - Follow பட்டியல் மெட்டாடேட்டா - Follow பட்டியல் மெட்டாடேட்டாவை Nostr-ல் யாரும் பார்க்கலாம். உங்கள் தனிப்பட்ட உறுப்பினர்கள் மட்டுமே குறியாக்கப்பட்டுள்ளனர். - Follow Pack மெட்டாடேட்டா - Follow pack மெட்டாடேட்டாவை Nostr-ல் யாரும் பார்க்கலாம் மற்றும் புதிய பயனர்களுக்கான தொடக்க கருவியாக பல இணையதளங்களில் அடிக்கடி வெளியிடப்படுகிறது. - Follow Pack-ஐ திருத்து - விரிவாக்கு - மீண்டும் முயற்சி - எதிர்வினை - குரல் இடுகை - குரல் பதில் - பயன்பாடுகள் - பயன்பாட்டு பரிந்துரைகள் - பயனர் அமைப்புகள் - ஆடியோ தலைப்பு - ஆடியோ டிராக் - இசை டிராக் - இசை பட்டியல் - போட்காஸ்ட் எபிசோட் - போட்காஸ்ட் நிகழ்ச்சி - உருவாக்கிய போட்காஸ்ட்கள் - விருப்பமான போட்காஸ்ட்கள் - பேட்ஜ் விருதுகள் - பேட்ஜ் வரையறைகள் - ஏற்றுக்கொள்ளப்பட்ட பேட்ஜ் தொகுப்பு - சுயவிவர பேட்ஜ்கள் - தடுக்கப்பட்ட Relays - Blossom சேவையகங்கள் - Nests சேவையகங்கள் - புக்மார்க் பட்டியல் - பழைய புக்மார்க் பட்டியல் - நாள் சந்திப்பு - நாட்காட்டி - சந்திப்பு - சந்திப்பு RSVP - சதுரங்க விளையாட்டுகள் - சதுரங்க Auth - விருப்பமான Relays - சதுரங்க சவால்கள் - சதுரங்க விளையாட்டு ஏற்பு - சதுரங்க நகர்வு - சதுரங்க விளையாட்டு முடிவு - சதுரங்க சமன் சலுகை - சேனல் வரையறை - சேனல் மறை செய்தி - சேனல் பட்டியல் - சேனல் செய்தி - சேனல் மெட்டாடேட்டா - சேனல் முடக்கு பயனர் - DM கோப்பு - DM செய்தி - வகைப்படுத்தப்பட்டவை - கருத்துகள் - சமூக வரையறை - சமூக பட்டியல் - சமூக இடுகை - Follow பட்டியல் - நீக்கங்கள் - வரைவுகள் - Emoji பேக்கள் - Emoji பேக் பட்டியல் - தற்காலிக அரட்டை - தற்காலிக அரட்டை அறைகள் - கோப்பு தலைப்புகள் - சுயவிவர தொகுப்பு - கோப்பு சேவையகங்கள் - Blob தரவு - Blob தலைப்புகள் - மருத்துவ தரவு - மறுவெளியீடுகள் (16) - ஜியோஹாஷ் follows - Git சிக்கல் - Git பேட்ச் - Git களஞ்சியம் - Git பதில் - Zap இலக்குகள் - ஹேஷ்டேக் follows - சிறப்பம்சங்கள் - குறியீட்டு Relay பட்டியல் - சாகச முன்னுரை - சாகச காட்சி - சாகச வாசிப்பு - பெயரிடப்பட்ட புக்மார்க்குகள் - நேரடி அரட்டைகள் - நேரடி ஒளிபரப்புகள் - NWC கோரிக்கை - NWC பதில் - தனிப்பட்ட Zaps - Zap கோரிக்கை - வலைப்பதிவுகள் - சந்திப்பு அறை - அறை இருப்பு - சந்திப்பு இடம் - சுயவிவரம் - முடக்கு பட்டியல் - Nostr இணைப்பு - DVM நிலை - DVM உள்ளடக்க கோரிக்கை - DVM உள்ளடக்க பதில் - DVM பயனர் கோரிக்கை - DVM பயனர் பதில் - மக்கள் பட்டியல்கள் - படங்கள் - உடற்பயிற்சிகள் - பின்கள் - Zap வாக்கெடுப்பு - வாக்கெடுப்பு - வாக்கெடுப்பு பதில் - தனிப்பட்ட Relays - பொது செய்தி - எதிர்வினைகள் - தொடர்பு அட்டை - Relay கண்டுபிடிப்பு - Relay கண்காணிப்பு அறிவிப்பு - Relay தொகுப்பு - அறிக்கைகள் - மறுவெளியீடுகள் - பயனர் நீக்கம் - முத்திரைகள் - தேடல் Relays - பயனர் நிலை - குறிப்புகள் - திருத்தங்கள் - Torrent கருத்துகள் - நம்பகமான Relays - நம்பகமான வழங்குனர்கள் - வீடியோ (Repl) - வீடியோ - குரல் செய்தி - குரல் பதில் - வலை புக்மார்க் - விக்கி - %1$d%% இயக்க நேரம் - Namecoin அமைப்புகள் - Relay ஒத்திசைவு - பிட்காயின் எக்ஸ்ப்ளோரர் (OTS) - உங்களிடமிருந்து நிகழ்வுகள் - உங்களுக்கான நிகழ்வுகள் - தேடக்கூடிய நிகழ்வுகள் - சுயவிவரங்கள் - அஞ்சல் வெளி பட்டியல்கள் - கடைசியாக %1$s முன்பு பார்க்கப்பட்டது - %1$s அன்று கடைசியாக பார்க்கப்பட்டது (%2$s முன்பு) - இப்போது தான் பார்க்கப்பட்டது - ஒருபோதும் பார்க்கப்படவில்லை - - %1$d நிமிடம் - %1$d நிமிடங்கள் - - - %1$d மணி நேரம் - %1$d மணி நேரங்கள் - - - %1$d நாள் - %1$d நாட்கள் - - - %1$d வாரம் - %1$d வாரங்கள் - - - %1$d மாதம் - %1$d மாதங்கள் - - - %1$d ஆண்டு - %1$d ஆண்டுகள் - - - %1$d நிலுவை invoice - %1$d நிலுவை invoices - - - நீங்கள் பயன்படுத்தாத %1$d mint-ல் நிதி உள்ளது - நீங்கள் பயன்படுத்தாத %1$d mints-ல் நிதி உள்ளது - - %1$s sat-ஐ %2$s-க்கு நகர்த்தப்பட்டது. - சாதனத்திற்கு அனுப்பவும் - அனுப்புவதை நிறுத்தவும் - HLS பதிவேற்றம் - %1$s பதிவேற்றுகிறது (%3$d-ல் %2$d) - சான்றிதழ் - சான்றிதழ் கோரிக்கை - சான்றளிப்பவர் பரிந்துரை - சான்றளிப்பவர் திறன் - வலை புக்மார்க்கள் - வலை புக்மார்க் சேர்க்கவும் - வலை புக்மார்க் திருத்தவும் - %2$s sats இலக்கில் %1$s நிதியளிக்கப்பட்டது - புதிய இலக்கு - மறைவு கோரிக்கை - மறைவு கோரிக்கை அனுப்பப்பட்டது - மறைவு வரலாறு - பயனர்கள் - நிகழ்வுகள் - வகைகள் - அமைப்புகள் - உரை மேம்பாடுகளை பரிந்துரை செய்யவும் - உரை திருத்தங்கள் மற்றும் தொனி மாற்றங்களை பரிந்துரைக்க சாதனத்திலுள்ள AI மாதிரியை பயன்படுத்துகிறது. - கண்காணிக்கப்பட்ட ஒளிபரப்புகள் - நிகழ்வுகளை அனுப்பும்போது கண்காணிக்கப்பட்ட ஒளிபரப்பாளரை பயன்படுத்தவும். ஒளிபரப்பும்போது நேரடி முன்னேற்றம் மற்றும் ஒவ்வொரு relay நிலையையும் காட்டுகிறது. - பகிர உடற்பயிற்சிகளை பரிந்துரை செய்யவும் - Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) இலிருந்து முடிந்த உடற்பயிற்சிகளை படித்து அவற்றை பதிவாக பகிர பரிந்துரைக்கிறது. நீங்கள் இணைக்கும்போது மட்டும் அனுமதி கேட்கப்படும். - எழுதும் அமைப்புகள் - தானாக வரைவுகளை உருவாக்கவும் - நீங்கள் தட்டச்சு செய்யும்போது அல்லது அனுப்பப்படாத உரையுடன் ஒரு எழுத்துக் கலைஞரை விட்டு வெளியேறும்போது தானாகவே வரைவு நிகழ்வை சேமித்து உங்கள் தனிப்பட்ட outbox relays-களுக்கு அனுப்புகிறது. - புதிய emoji தொகுப்பு - emoji தொகுப்பை திருத்து - என் Emoji தொகுப்புகள் - பொது emojis அனைவருக்கும் தெரியும் மற்றும் இந்த தொகுப்பு உங்கள் emoji பட்டியலில் இருக்கும்போது உங்கள் எதிர்வினை மெனு மற்றும் \":\" தானாக நிரப்பியில் தோன்றும். - தனிப்பட்ட emojis relays-இல் குறியாக்கப்பட்டு சேமிக்கப்படும் மற்றும் உங்களுக்கு மட்டுமே தெரியும். அவை பொது emojis போலவே உங்கள் எதிர்வினை மெனு மற்றும் \":\" தானாக நிரப்பியில் தோன்றும். - வரைவு %1$d bytes; இந்த சமூகம் இந்த வகைக்கு %2$d bytes வரை அனுமதிக்கிறது. - வரைவு %1$d bytes; இந்த சமூகம் நிகழ்வுகளை %2$d bytes வரை மட்டுமே அனுமதிக்கிறது. - நீங்கள் இன்று இந்த வகையில் %1$d நிகழ்வுகளை ஏற்கனவே இடுகையிட்டுள்ளீர்கள் (வரம்பு %2$d). - Nowhere தளம் - Nowhere நிகழ்வு - Nowhere நிதி திரட்டல் - Nowhere கடை - Nowhere மனு - Nowhere செய்தி - Nowhere வெளியீடு - Nowhere கலை - Nowhere மன்றம் - - %1$d செய்தி - %1$d செய்திகள் - - - %1$d உறுப்பினர் - %1$d உறுப்பினர்கள் - - குழு தகவல் புதுப்பிக்கப்பட்டது - புதுப்பிக்க தோல்வி: %1$s - குழு உருவாக்க தோல்வி: %1$s - குழுவை விட்டு வெளியேற தோல்வி: %1$s - %1$s-ஐ சேர்க்கிறோம்… - %1$s-ஐ சேர்க்க தோல்வி: %2$s - அறியாத பிழை - உறுப்பினர் நீக்கப்பட்டார் - உறுப்பினரை நீக்க தோல்வி: %1$s - நிர்வாக உரிமைகள் வழங்கப்பட்டன - நிர்வாக உரிமைகள் வழங்க தோல்வி: %1$s - நிர்வாக உரிமைகள் திரும்பப்பெறப்பட்டன - நிர்வாக உரிமைகளை திரும்பப்பெற தோல்வி: %1$s - இந்த குழுவின் உறுப்பினர் இல்லை %1$s-ல் பெறுநரின் lightning சேவை கிடைக்கவில்லை. இது lightning முகவரி \"%2$s\" இலிருந்து கணக்கிடப்பட்டது. பிழை: %3$s. சர்வர் இயங்குகிறதா மற்றும் lightning முகவரி சரியானதா என சரிபாருங்கள் %1$s-ஐ தீர்க்க முடியவில்லை. நீங்கள் இணைக்கப்பட்டிருக்கிறீர்களா, சர்வர் இயங்குகிறதா மற்றும் lightning முகவரி %2$s சரியானதா என சரிபாருங்கள்.\n\nவிதிவிலக்கு: %3$s %1$s-இன் invoice பெறலிலிருந்து JSON பாகுபடுத்தும் பிழை. பயனரின் lightning அமைப்பை சரிபாருங்கள் diff --git a/amethyst/src/main/res/values-ta/strings.xml b/amethyst/src/main/res/values-ta/strings.xml index ccf96ab1a8..3820e19dfd 100644 --- a/amethyst/src/main/res/values-ta/strings.xml +++ b/amethyst/src/main/res/values-ta/strings.xml @@ -1,1271 +1,59 @@ - எரிதம் (தேவையற்றவை) - ஆள்மாறாட்டம் - சட்டவிரோத நடத்தை - நீக்கக் கோரு - பதிலளிக்க ஒரு தனிப்பட்ட சாவியுடன் உள்நுழைக - குறிப்புகளை உயர்த்த ஒரு தனிப்பட்ட சாவியுடன் உள்நுழைக - குறிப்புகளை விரும்புவதற்கு தனிப்பட்ட சாவியுடன் உள்நுழைக - ஜாப் தொகை அமைப்பு இல்லை. மாற்ற நீண்ட நேரம் அழுத்தவும் - ஜாப்களை அனுப்ப ஒரு தனிப்பட்ட சாவியுடன் உள்நுழைக - ஜாப்கள் - உயர்த்து உயர்த்தப்பட்டது - சேர் - தன்விவரம் - பாதுகாப்பு வடிப்பான்கள் - செலுத்து - " %1$s க்கான முன்னோட்ட அட்டைப் படம்" - தகவல் - உங்கள் மனதில் என்ன உள்ளது? - பதிவு சேமி - உருவாக்கு - ரத்து - பிழைகள் - படம் காட்சியகத்தில் சேமிக்கப்பட்டது - படத்தைச் சேமிக்க இயலவில்லை - பயனர் ஸாட்கள் பெறுவதற்கு லைட்னிங் முகவரி அமைக்கவில்லை - "இங்கு பதிலளிக்கவும்.. " - தெரிந்த - புதிய கோரிக்கைகள் - முடக்கப்பட்டப் பயனர்கள் - புதிய இழைகள் - உரையாடல்கள் - மேலும் - பின்தொடர் - பதிலுக்கு பின்தொடரவும் - கடவுச்சொல்லை மறைக்கவும் - தவறான சாவி - சாவி தேவை - வெளியேறு - நிறுத்து - பொது அரட்டை - அகற்று - ஒருபோதும் இல்லை - இப்போது - பிறந்தமேனி - அவதூறு / வெறுப்புப் பேச்சு - காப்புச் சாவிகள் - ரகசிய சாவி (nsec) கிளிப்போர்டுக்கு நகலெடுக்கப்பட்டது - எனது ரகசிய சாவியை நகலெடுக்கவும் - அங்கீகரிப்பு தோல்வியுற்றது - குறிப்பு கிளிப்போர்டுக்கு நகலெடுக்கப் பட்டது - கிளிப்போர்டுக்கு எழுத்தாளரின் @npub நகலெடுக்கப் பட்டது - கிளிப்போர்டுக்கு குறிப்பு ஐடி (@note1) நகலெடுக்கப் பட்டது - "தனிப்பட்ட செய்தியை மறைக்குறியாக்க இயலவில்லை \n \n %1$s மற்றும் %2$s க்கு இடையே தனிப்பட்ட/ குறியாக்கப்பட்ட உரையாடலில் நீங்கள் மேற்கோள் காட்டப்பட்டீர்கள்." - கணக்குகள் - பின் - உலாவி இணைப்பைப் பகிரவும் - பகிர் - பதிவின் எண் - அழி - - தடு - புக்மார்க்குகள் - பொது புக்மார்க்குகளில் சேர்க்கவும் - பொது புக்மார்க்குகளிலிருந்து அகற்று - விருப்பம் %s - இந்த வகை வாக்கெடுப்பில் ஒரு பயனருக்கு ஒரு வாக்கு மட்டுமே அனுமதிக்கப்படுகிறது - வாக்கெடுப்பை உருவாக்கியோர் தங்கள் சொந்த வாக்கெடுப்பில் வாக்களிக்க முடியாது. - பதிவு பதியப்பட்ட பின்னர் படம் மாற்றப்படவில்லை - படம் மாறிவிட்டது. மாற்றத்தை பயனர் பார்த்திருக்க மாட்டார் - படத்தைச் சேர்க்கவும் - காணொளியைச் சேர்க்கவும் - ஆவணத்தைச் சேர்க்கவும் - கோப்புச் சேவையகம் - எல்லா பின்பற்றப் படுவோர் - முழுதளாவிய - Orbot Socks போர்ட் - தனிப்பட்ட செய்திகள் - தனிப்பட்ட செய்தி வருகையில் தெரிவிக்கவும் - ஜாப் பெறப்பட்டது - யாரேனும் உங்களுக்கு ஜாப் அனுப்பும்போது தெரிவிக்கவும் - %1$s ஸாட்ஸ் - %1$s -இடமிருந்து - %1$s -க்கு - தெரிவிக்க - இன்று - எந்த ரியாக்ஷனும் தேர்ந்தெடுக்கவில்லை. மாற்ற நீண்ட நேரம் அழுத்தவும் - படிப்பதற்கான ரிலே - போஸ்ட் செய்வதற்கான ரிலே - Cashu வில்லை - ரிலேகள் - அரட்டை -இந்த relay இலிருந்து வரும் ஸ்பேம் நிகழ்வுகளின் எண்ணிக்கை -நீங்கள் பொது விசையைப் பயன்படுத்துகிறீர்கள், பொது விசைகள் படிக்க மட்டுமே பயன்படும். பின்தொடர முடியுமாறு தனிப்பட்ட விசையுடன் உள்நுழைக -நீங்கள் பொது விசையைப் பயன்படுத்துகிறீர்கள், பொது விசைகள் படிக்க மட்டுமே பயன்படும். பின்தொடர்வதை நிறுத்த தனிப்பட்ட விசையுடன் உள்நுழைக -நீங்கள் பொது விசையைப் பயன்படுத்துகிறீர்கள், பொது விசைகள் படிக்க மட்டுமே பயன்படும். ஒரு வார்த்தை அல்லது வாக்கியத்தை மறைக்க தனிப்பட்ட விசையுடன் உள்நுழைக -நீங்கள் பொது விசையைப் பயன்படுத்துகிறீர்கள், பொது விசைகள் படிக்க மட்டுமே பயன்படும். ஒரு வார்த்தை அல்லது வாக்கியத்தை காட்ட தனிப்பட்ட விசையுடன் உள்நுழைக -நீங்கள் பொது விசையைப் பயன்படுத்துகிறீர்கள், பொது விசைகள் படிக்க மட்டுமே பயன்படும். பதிவேற்ற தனிப்பட்ட விசையுடன் உள்நுழைக -நீங்கள் பொது விசையைப் பயன்படுத்துகிறீர்கள், பொது விசைகள் படிக்க மட்டுமே பயன்படும். நிகழ்வுகளில் கையெழுத்திட தனிப்பட்ட விசையுடன் உள்நுழைக -அங்கீகரிக்கப்படாத மறைகுறியாக்கம் -இந்த செயல்பாட்டை முடிக்க தேவையான மறைகுறியாக்கத்தை கையெழுத்திட்டவர் அங்கீகரிக்கவில்லை. உங்கள் கையெழுத்திட்டவர் செயலியில் NIP-44 மறைகுறியாக்கங்களை இயக்கி மீண்டும் முயற்சிக்கவும் -கையெழுத்திட்டவர் கண்டுபிடிக்கப்படவில்லை -கையெழுத்திட்டவர் செயலி நிறுவல் நீக்கம் செய்யப்பட்டதா? கையெழுத்திட்டவர் நிறுவப்பட்டு இந்த கணக்கை வைத்திருக்கிறதா என சரிபார்க்கவும். கையெழுத்திட்டவர் செயலி மாறியிருந்தால் வெளியேறி மீண்டும் உள்நுழைக. -வெளிப்புற கையெழுத்திட்டவர் கோரிக்கைக்கு அசாதாரணமான தரவை திரும்ப அனுப்பியது. Amethyst அல்லது கையெழுத்திட்டவரில் ஒரு பிழை இருக்கலாம். திருத்தம் #%1$s -திருத்தத்தை முன்மொழிக -பிழை செய்தியை பாகுபடுத்துவதில் பிழை -விலைப்பட்டியல் கோரப்படுகிறது… -டெபிட் சேவை பணத்தை செலுத்தி முடிக்கவில்லை. -%2$s வழியாக %1$s செலுத்தவா? -%1$s வழியாக இந்த விலைப்பட்டியலை செலுத்தவா? -இந்த சலுகைக்கு சரியான தொகையை உள்ளிடவும். -ஒரு முறை -தினசரி -வாராந்திர -மாதாந்திர -%1$s வழியாக செலுத்துகிறது… -பணம் செலுத்துதல் தோல்வியடைந்தது -இந்த பெறுநருக்கு செலவிடக்கூடியது: %1$s sats -பரிவர்த்தனை: %1$s -ஒரு செய்தி எழுதவும்… -அனுப்பு பெயர் மாற்று -பிழை -relay உடனான வெற்றிகரமான இணைப்புகளின் சதவீதம் -தொலைபேசியில் சேமிக்கவும் -வீடியோ பதிவிறக்கம் தொடங்கியது… -மீடியா பதிவிறக்கம் தொடங்கியது… -மேலே பொருத்து -பொருத்தலை நீக்கு -வீடியோ தொலைபேசியின் வீடியோ தொகுப்பில் சேமிக்கப்பட்டது -வீடியோவை சேமிக்க தோல்வியடைந்தது -PDF, Downloads/Amethyst இல் சேமிக்கப்பட்டது -PDF ஐ சேமிக்க தோல்வியடைந்தது -இந்த சாதனத்தில் கேமரா செயலி எதுவும் கண்டுபிடிக்கப்படவில்லை -செய்தி பதிவு செய்ய கிளிக் செய்து பிடிக்கவும் -பதிவேற்ற பிழை -குரல் செய்தியை பதிவேற்ற தோல்வியடைந்தது -குரல் செய்திகளுக்கு NIP-95 இன்னும் ஆதரிக்கப்படவில்லை -குரல் பதிவேற்றம் தோல்வியடைந்தது: %1$s -எதுவுமில்லை -ஆழமான -உயர்ந்த -நடுநிலை -தனிப்பட்ட விசை QR குறியீட்டை காட்டு -மறைகுறியாக்கப்பட்ட தனிப்பட்ட விசை QR குறியீட்டை காட்டு -தவறான விசை: %1$s -கடவுச்சொல் தேவை -ஒரு பெயர் தேவை புதிய அரட்டை சுயவிவரம்: -மறையும் அரட்டை -Relay அரட்டை -Relay அரட்டைகள் -MLS குழு -பொது அரட்டை மெட்டாடேட்டா -Relay கள் -ம -நி -நா -உங்கள் தனிப்பட்ட விசையை மறைகுறியாக்க தோல்வியடைந்தது -இந்த தொலைபேசியின் உரிமையாளரை பயோமெட்ரிக்ஸ் அங்கீகரிக்க தோல்வியடைந்தது -இந்த தொலைபேசியின் உரிமையாளரை பயோமெட்ரிக்ஸ் அங்கீகரிக்க தோல்வியடைந்தது. பிழை: %1$s -வழிசெல்க -நீங்கள் -தொடர்கள் -உருவாக்கு -அமைப்பு -படமாக பகிரவும் -படத்தின் URL ஆக பகிரவும் -இழையை முடக்கவும் -இழையின் முடக்கத்தை நீக்கவும் -புக்மார்க்குகள் வெற்றிகரமாக இடம்பெயர்க்கப்பட்டன -வரைவுகள் -திட்டமிட்ட இடுகைகள் -இடுகையை திட்டமிடவும் -திட்டமிடலை ரத்து செய்யவும் -திட்டமிட்ட இடுகைகள் நீங்கள் அடுத்த முறை செயலியை திறக்கும் வரை வெளியிடப்படாமல் போகலாம். நம்பகமான பின்னணி திட்டமிடலுக்கு அமைப்புகள் → UI விருப்பங்களில் எப்போதும் இயங்கும் வசதியை இயக்கவும். -திட்டமிட்ட இடுகைகள் நீங்கள் செயலியை மீண்டும் திறக்கும் வரை வெளியிடப்படாமல் போகலாம். இந்த கணக்கு செயலில் இருக்கும்போது மற்ற கணக்குகளின் திட்டமிட்ட இடுகைகள் செயல்படாது. நம்பகமான பின்னணி திட்டமிடலுக்கு அமைப்புகள் → UI விருப்பங்களில் எப்போதும் இயங்கும் வசதியை இயக்கவும். -%1$s · %2$s இல் -%1$s · %2$s முன்பு -நாளை -வெளியேறப்பட்டது -திட்டமிட்ட இடுகை வெளியிடப்பட்டது -திட்டமிட்ட இடுகை தோல்வியடைந்தது -திட்டமிட்ட இடுகைகள் -திட்டமிட்ட இடுகை வெளியிடப்படும்போது அல்லது வெளியிட தோல்வியடையும்போது அறிவிப்புகள். -இப்போது அனுப்பவும் -பிழை: %1$s -திட்டமிடப்பட்டது -அனுப்புகிறது… -தோல்வியடைந்தது -அனுப்பப்பட்டது -ரத்து செய்யப்பட்டது -குறிப்பு ID நகலெடுக்கப்பட்டது -வாக்கெடுப்புகள் -திறந்தவை -மூடப்பட்டவை -சின்னங்கள் -சமூகங்கள் -புதிய சமூகம் -சமூகத்தை திருத்து -மட்டுப்படுத்துவோர் -Relays -சரிபார்க்கக்கூடிய விதிகள் (விரும்பினால்) -அனுமதிக்கப்பட்ட நிகழ்வு வகைகள் -குறுகிய உரை (1) -நீண்ட கட்டுரை (30023) -படம் இடுகை (20) -வீடியோ இடுகை (21) -குறுகிய வீடியோ (22) -சமூக கருத்து (1111) -தடை செய்யப்பட்ட பயனர்கள் -நம்பிக்கை-வலை வாயில் (விரும்பினால்) -உலகளாவிய அதிகபட்ச நிகழ்வு அளவு (விரும்பினால்) -புதிய சின்னம் -சின்னம் வழங்கு -சுயவிவர சின்னங்கள் -படங்கள் -உடற்பயிற்சிகள் -புதிய உடற்பயிற்சி -ஓட்டம் -நடைப்பயணம் -சைக்கிள் ஓட்டுதல் -மலையேற்றம் -நீச்சல் -படகு ஓட்டுதல் -வலிமை பயிற்சி -யோகா -தியானம் -உணவு முறை -உண்ணாவிரதம் -சுற்று பயிற்சி -EMOM -AMRAP -பயன்பாடுகள் பயன்பாடுகள் -nApplets -nSites -உலாவி -Tor மூலம் ஏற்றுகிறது. திறந்த வலையை பயன்படுத்த தட்டவும். -திறந்த வலை மூலம் ஏற்றுகிறது. Tor ஐ பயன்படுத்த தட்டவும். -விருப்பங்கள் -விருப்பமான பயன்பாடுகள் -விருப்பங்களில் சேர்க்கவும் -விருப்பங்களிலிருந்து அகற்று -Tor மூலம் ஏற்றுகிறது. -திறந்த வலை மூலம் ஏற்றுகிறது. -relays இல் வெளியிடப்பட்டது -ஒரு கோப்பு பதிவேற்றப்பட்டது -ஒரு கட்டணம் செய்யப்பட்டது -அந்த பயன்பாடு இன்னும் ஏற்றப்படவில்லை. ஒரு கணம் கழித்து மீண்டும் முயற்சிக்கவும். -சமீபத்தியவை nApplet அனுமதிகள் இன்னும் nApplet அனுமதிகள் இல்லை nApplets க்கு நீங்கள் வழங்கும் அனுமதிகள் இங்கே தோன்றும். இந்த nApplet ஐ மறக்கவும் தடுக்கப்பட்டது திரும்பப் பெறவும் -nApplet %1$s… Shell -அடையாளம் -விசைப்பலகை செயல்கள் -Relays -சேமிப்பு -கொடுப்பனவுகள் -வலைப்பின்னல் -பதிவேற்றங்கள் எந்த திறன்கள் கிடைக்கின்றன என்று கேட்கவும் -உங்கள் பொது சாவியை படிக்கவும் -விசைப்பலகை குறுக்குவழிகளை பிணைக்கவும் -உங்கள் நிகழ்வுகளை படித்து, கையொப்பமிட்டு & வெளியிடவும் -அதன் சொந்த தனிப்பட்ட சேமிப்பு -Lightning இன்வாய்ஸ்களை செலுத்தவும் -இணைய மற்றும் Blossom வளங்களை பெறவும் -உங்கள் மீடியா சேவையகத்தில் கோப்புகளை பதிவேற்றவும் -தீம் -அறிவிப்புகள் -செய்தியிடல் -உங்கள் பயன்பாட்டின் வண்ணங்களுடன் பொருத்தவும் -உங்களுக்கு அறிவிப்புகளை காட்டவும் -மற்ற napplets உடன் செய்திகளை பரிமாறிக்கொள்ளவும் திறன்: %1$s -இந்த nApplet உங்கள் பொது சாவியை படிக்க விரும்புகிறது. -இந்த nApplet உங்கள் சுயவிவரம் மற்றும் கணக்கு தரவை படிக்க விரும்புகிறது. -இந்த nApplet உங்களாக ஒரு வகை %1$d நிகழ்வை கையொப்பமிட்டு வெளியிட விரும்புகிறது. -இந்த nApplet உங்களாக ஒரு வகை %1$d நிகழ்வை கையொப்பமிட்டு வெளியிட விரும்புகிறது: -இந்த nApplet உங்களாக ஒரு குறியாக்கப்பட்ட நிகழ்வை அனுப்ப விரும்புகிறது. -இந்த nApplet உங்கள் relays இலிருந்து நிகழ்வுகளை படிக்க விரும்புகிறது. -இந்த nApplet அதன் தனிப்பட்ட சேமிப்பை பயன்படுத்த விரும்புகிறது. இந்த nApplet ஒரு Lightning இன்வாய்ஸை செலுத்த விரும்புகிறது. -இந்த nApplet ஒரு இணைய வளத்தை பெற விரும்புகிறது. -இந்த nApplet உங்கள் மீடியா சேவையகத்தில் ஒரு கோப்பை பதிவேற்ற விரும்புகிறது. -இந்த nApplet உங்களுக்கு அறிவிப்புகளை காட்ட விரும்புகிறது. -இந்த தளம் உங்கள் Nostr சாவியுடன் ஒரு வகை %1$d நிகழ்வை கையொப்பமிட விரும்புகிறது. -குறுவீடியோக்கள் -பொது அரட்டைகள் -Follow Packs -நேரடி ஒளிபரப்புகள் -Nests -கையை உயர்த்தவும் -கையை கீழே இறக்கு -ஒலியடக்கு -ஒலியை மீட்டமை -செய்தி அனுப்ப முடியவில்லை -மைக்கை ஒலியடக்கு -மைக்கை ஒலி திறக்கு -Nests -அறை திறந்திருக்கும்போது ஆடியோவை இயக்கிக் கொண்டே இருக்கும். -Nest இணைக்கப்பட்டது -Nest — நேரலை -திரும்ப திரும்ப தட்டவும். -நிறுத்து -கையை உயர்த்தினார் -மேடையில் ஏறினார் -பேசுகிறார் -பார்வையாளராக சேர்ந்தார் -nest ஐ விட்டு சென்றார் -வெளியேறு -அறையை மூடியதாக குறிக்க முடியவில்லை. எப்படியும் வெளியேறுகிறது — அறை தானாக மூடும். -இந்த பேச்சாளரை அமைதிப்படுத்து -இந்த பேச்சாளரை மீட்டமை -பின்தொடர் -பின்தொடர்வதை நிறுத்து -ஒலியடக்கு -ஒலியை மீட்டமை -Nest சேவையக பட்டியலை சேமிக்க முடியவில்லை. மீண்டும் முயற்சி செய்யவும். -Nest சேவையகங்கள் -உங்கள் சேவையகங்கள் -மற்ற கிளையர்கள் உங்கள் விருப்பத்தை படிக்கும் வகையில் kind-10112 மாற்று நிகழ்வாக சேமிக்கப்படும். -பரிந்துரைக்கப்பட்ட சேவையகங்கள் -ஒரு தட்டுதலில் உங்கள் பட்டியலில் சேர்க்கக்கூடிய உள்ளமைக்கப்பட்ட பரிந்துரைகள். -வீடியோக்கள் -இசை -இயல்பட்டியல்கள் -அத்தியாயங்கள் -நிகழ்நேரப் பிரசாரங்கள் -புதிய இசைத் தடம் -புதிய இயல்பட்டியல் -சுயவிவரத்தில் பொருத்து -சுயவிவரத்திலிருந்து நீக்கு -புதிய புக்மார்க் பட்டியல் -புக்மார்க் பட்டியல் மெட்டாடேட்டா -ஹேஷ்டேக் தொகுப்புகள் -புதிய ஆர்வ தொகுப்பு -மறுபெயரிடு -தனிப்பட்டதாக்கு: குறிப்பிடப்பட்ட பயனர்களுக்கு மட்டுமே பரிசு-சுற்றில் குறிப்பை வழங்கு -பொதுவாக்கு -தனிப்பட்ட குறிப்புக்கான பதில்கள் எப்போதும் தனிப்பட்டதாக இருக்கும் -யாருக்கு தெரியும் இன்னும் பெறுநர்கள் இல்லை: இந்த குறிப்பை நீங்கள் மட்டுமே காண முடியும். பகிர்வதற்கு மக்களை சேர்க்கவும். சேர் அறிவிப்புகளிலிருந்து பயனரை நீக்கு அறிவிக்க ஒரு பயனரை தேடி சேர்க்கவும் -புக்மார்க் பட்டியல் மெட்டாடேட்டா Nostr இல் யாரும் காண முடியும். உங்கள் தனிப்பட்ட உறுப்பினர்கள் மட்டுமே குறியாக்கம் செய்யப்படுவார்கள். -பொதுவிற்கு நகர்த்து -தனிப்பட்டதிற்கு நகர்த்து -நிரப்பி zap அனுப்பு -Zap அனுப்பு -%2$s க்கு %1$s sats நிரப்பி %3$s க்கு %4$s sats zap அனுப்பு · கட்டணம் ≈ %5$s sats -(0–100)% -ஒற்றை தேர்வு -பல தேர்வுகள் -வாக்களிக்க முடியவில்லை -வாக்கெடுப்பு புதிய வாக்குகளுக்கு மூடப்பட்டது -இது என்ன அர்த்தம்? -மீடியா சேர் -இந்த கோப்பை பதிவேற்ற ஒரு சேவையகத்தை தேர்வு செய்க -மீடியா சேவையகங்கள் உங்கள் விருப்பமான மீடியா பதிவேற்ற சேவையகங்களை அமைக்கவும். பரிந்துரைக்கப்பட்ட மீடியா சேவையகங்கள் Amethyst\'ன் இயல்புநிலை பட்டியல். அவற்றை தனித்தனியாக சேர்க்கலாம் அல்லது பட்டியலை சேர்க்கலாம். -கட்டண இலக்குகள் -வெவ்வேறு நெட்வொர்க்குகளுக்கு (எ.கா. bitcoin, lightning, ethereum) கட்டண முகவரிகளை சேர்க்கவும். -இந்த கட்டணத்தை கையாள எந்த பயன்பாடும் கிடைக்கவில்லை. பொருந்தும் பணப்பை நிறுவவும். -%1$s கட்டணங்களை கையாள எந்த பயன்பாடும் நிறுவப்படவில்லை. பொருந்தும் பணப்பை நிறுவவும். -கட்டணத்தை திறக்க முடியவில்லை -தனியுரிமை விருப்பங்கள் -அனைத்து பயனர் தொடர்புகளும் -இயல்புநிலை தொடர் பட்டியல் -என்னை சுற்றி -தொகுக்கப்பட்டது -என்னுடையது -முடக்கு பட்டியல் -புதிய தொடர் பட்டியல் -புதிய தொடர் தொகுப்பு -பட்டியலை திருத்து -இயல்புநிலை போர்ட் 9050 -செயலில் Tor எஞ்சின் -உள்ளமைக்கப்பட்ட பதிப்பு அல்லது Orbot பயன்படுத்தவும் -Tor/தனியுரிமை முன்னமைவுகள் -கீழே உள்ள அனைத்து அமைப்புகளையும் விரைவாக மாற்றவும் -Onion Url/Relays -எந்த .onion url க்கும் Tor பயன்படுத்தவும் -DM Relays -DM அனுப்பவும் பெறவும் Tor கட்டாயமாக்கவும் -நம்பப்படாத Relays -outbox/inbox relays இல் Tor கட்டாயமாக்கவும் -நம்பகமான Relays -உங்கள் பட்டியல்களில் உள்ள அனைத்து relays இலும் Tor கட்டாயமாக்கவும் -சுயவிவர படங்கள் -சுயவிவர படங்களை ஏற்றும்போது Tor கட்டாயமாக்கவும் -URL முன்னோட்டங்கள் -url முன்னோட்டங்களை ஏற்றும்போது Tor கட்டாயமாக்கவும் -படங்கள் -படங்களை ஏற்றும்போது Tor கட்டாயமாக்கவும் -வீடியோக்கள் -வீடியோக்களை ஏற்றும்போது Tor கட்டாயமாக்கவும் -பண பரிவர்த்தனைகள் -zaps, lightning மற்றும் cashu பரிமாற்றங்களில் Tor கட்டாயமாக்கவும் -Nostr முகவரி சரிபார்ப்பு -NIP-05 முகவரிகளை சரிபார்க்கும்போது Tor கட்டாயமாக்கவும் -மீடியா பதிவேற்றங்கள் -உள்ளடக்கம் பதிவேற்றும்போது Tor கட்டாயமாக்கவும் -உள்ளமைக்கப்பட்டது -Orbot -அணைக்கவும் -அடிப்படை -இயல்புநிலை -மீடியா தவிர அனைத்தும் -முழு தனியுரிமை -தனிப்பயன் -சேவையகம் தேவைப்படும்போது Tor பயன்படுத்தவும் -சீரற்ற relays இலிருந்து உங்கள் IP ஐ மறைக்கவும் -படங்கள் மற்றும் வீடியோக்கள் தவிர அனைத்திலும் உங்கள் IP ஐ மறைக்கவும் -அனைத்து இணைப்புகளிலும் உங்கள் IP ஐ மறைக்கவும் -உங்களுடையதை உருவாக்கவும் -பதில் -படித்ததாக குறி -புதிய செய்திகள் -புதிய zaps -எதிர்வினைகள் -யாரோ உங்கள் இடுகைக்கு எதிர்வினை செய்யும்போது அறிவிக்கிறது -%1$s உங்கள் இடுகைக்கு எதிர்வினை செய்தார் -%1$s க்காக -புதிய எதிர்வினைகள் -சதுரங்கம் -சதுரங்க விளையாட்டு நிகழ்வுகளை பற்றி அறிவிக்கிறது -%1$s உங்கள் சதுரங்க சவாலை ஏற்றார் -%1$s நகர்ந்தார் — உங்கள் முறை -சதுரங்க புதுப்பிப்புகள் -பதில்கள் -யாரோ உங்கள் இடுகைக்கு பதில் செய்யும்போது அறிவிக்கிறது %1$s பதிலளித்தார் இதில்: %1$s -புதிய பதில்கள் -குறிப்பீடுகள் -யாரோ ஒரு இடுகையில் உங்களை குறிப்பிடும்போது அல்லது மேற்கோள் காட்டும்போது அறிவிக்கிறது -%1$s உங்களை குறிப்பிட்டார் -புதிய குறிப்பீடுகள் -வரும் அழைப்புகள் -வரும் குரல் மற்றும் வீடியோ அழைப்புகளுக்கான அறிவிப்புகள் -வரும் அழைப்பு -வரும் குரல் அழைப்பு… -வரும் வீடியோ அழைப்பு… -%1$s உடன் அழைப்பு -அழைப்புகள் -நடைமுறையில் உள்ள அழைப்பு அறிவிப்பு -அழைப்பு துண்டி -ஏற்கவும் -நிராகரி -முடக்கு -முடக்கு நீக்கு -கேமரா இயக்கு -கேமரா அணை -ஸ்பீக்கர் -காதுகேட்கும் கருவி -புளூடூத் -குரல் அழைப்பை தொடங்க Amethyst க்கு மைக்ரோஃபோன் அணுகல் தேவை. பயன்பாட்டு அமைப்புகளில் அதை இயக்கவும். -வீடியோ அழைப்பை தொடங்க Amethyst க்கு கேமரா மற்றும் மைக்ரோஃபோன் அணுகல் தேவை. பயன்பாட்டு அமைப்புகளில் அவற்றை இயக்கவும். -அழைப்பு அமைப்புகள் -நிகழ்நேர அறிவிப்புகளுக்காக உங்கள் inbox relays உடன் இணைப்புகளை செயலில் வைக்கிறது -Amethyst அறிவிப்புகள் செயலில் -inbox relays உடன் இணைக்கிறது… எப்போதும் இயங்கும் அறிவிப்பு சேவை உடனடி அறிவிப்பு வழங்கலுக்காக உங்கள் inbox relays உடன் நிரந்தர இணைப்பை பராமரிக்கிறது. தொடர்ச்சியான அறிவிப்பை காட்டுகிறது. அதிக பேட்டரி பயன்படுத்துகிறது, ஆனால் ஒரு செய்தியையும் தவறவிடாமல் உறுதி செய்கிறது. -தொடர்புகளால் அறிவிப்புகளை பிரி -இரண்டு அறிவிப்பு தாவல்களை காட்டு — தொடர்பவர்கள் (நீங்கள் தொடரும் நபர்கள்) மற்றும் அனைவரும். படிக்காத குறிகாட்டி நீங்கள் தொடரும் நபர்களின் செயல்பாட்டிற்கு மட்டுமே ஒளிர்கிறது. -செய்திகளை காட்டு -அறிவிப்பு தாவலில் நேரடி மற்றும் குழு செய்திகளை சேர்க்கவும். செய்திகளை செய்திகள் தாவலில் மட்டும் வைக்க அணைக்கவும். -மறை -காட்டு -எச்சரி -ஸ்பாம் வடிகட்டு -5 அல்லது அதிகமான முறை சரியாக ஒரே மாதிரியான அந்நியர்களின் இடுகைகளை மறைக்கிறது -என் நிகழ்வுகளில் கிளையண்ட் குறிச்சொல் சேர் -இயக்கப்படும்போது, Amethyst நீங்கள் வெளியிடும் நிகழ்வுகளில் NIP-89 கிளையண்ட் குறிச்சொல்லை இணைக்கிறது. -அறிக்கைகளில் எச்சரி -இடுகைகள் அல்லது சுயவிவரங்களுக்கு உங்கள் தொடர்புகளிடமிருந்து அறிக்கைகள் இருக்கும்போது எச்சரிக்கை செய்தி காட்டுகிறது -சமூக விதிகளை மீறும் இடுகைகளை மறை -சமூகம் NIP-9B விதிகள் ஆவணத்தை வெளியிடும்போது மற்றும் ஒரு நிகழ்வு அதை தவறுகையில் சமூக ஊட்டங்களிலிருந்து இடுகைகளை நீக்குகிறது. சமூகத்திற்கு கட்டமைக்கப்பட்ட விதிகள் இல்லாத போது எந்த விளைவும் இல்லை. -வடிகட்டல் விருப்பங்கள் -தடுக்கப்பட்ட உள்ளடக்கம் -நீங்கள் இன்னும் எந்த பயனரையும் தடுக்கவில்லை. -இந்த அமர்வில் எந்த கணக்கும் ஸ்பாமாக கொடியிடப்படவில்லை. -மறைக்கப்பட்ட வார்த்தைகள் இல்லை. அதை கொண்ட இடுகைகளை மறைக்க கீழே ஒரு வார்த்தையை சேர்க்கவும். -வடிகட்டிகள் மற்றும் நிகழ்வுகள் உட்பட இந்த relay க்கு அனுப்பப்பட்ட பைட்டுகளின் அளவு -வடிகட்டிகள் மற்றும் நிகழ்வுகள் உட்பட இந்த relay இலிருந்து பெறப்பட்ட பைட்டுகளின் அளவு -தனியுரிமைக் கொள்கை -குழந்தை பாதுகாப்பு தரநிலைகள் -பற்றி & சட்டம் -Lightning முகவரி அமைக்கப்படவில்லை -பின்தொடர் தொகுப்புகள் -வாசிப்புகள் -ஊட்ட அல்காரிதங்கள் -சந்தை -நேரடி ஒளிபரப்புகள் -சமூகங்கள் -உணர்திறன் உள்ளடக்கம் -இந்த உள்ளடக்கத்தை காட்டுவதற்கு முன் உணர்திறன் உள்ளடக்க எச்சரிக்கை சேர்க்கிறது -UI விருப்பங்கள் செயலி விருப்பங்கள் -மொழிபெயர்ப்புகள் -எதிர்வினைகள் -அமைப்புகள் -கணக்கு அமைப்புகள் -செயலி அமைப்புகள் -ஆபத்து மண்டலம் -Marmot நிலையை மீட்டமை -Marmot நிலை மீட்டமைக்கப்பட்டது. -Marmot நிலையை மீட்டமைக்க முடியவில்லை: %1$s -எப்போதும் -அளவிடா WiFi -ஒருபோதும் இல்லை -முழுமை -எளிமைப்படுத்தப்பட்ட -செயல்திறன் -கிளாசிக் -நவீன -கணினி -வெளிச்சம் -இருள் -Wallet Connect -தீம் -படம் முன்னோட்டம் -வீடியோ இயக்கம் -வீடியோக்களை தானாக இயக்கு -URL முன்னோட்டம் -மூழ்கிய சுருள் -சுருள்லும்போது நேவிகேஷன் பட்டிகளை மறை -UI பயன்முறை -இடுகை பாணியை தேர்ந்தெடுக்கவும் -சுயவிவர கேலரி பாணி -கேலரி பாணியை தேர்ந்தெடுக்கவும் -ஸ்பாமர்கள் -முடக்கப்பட்டது. முடக்கத்தை நீக்க கிளிக் செய்யவும் -ஒலி இயக்கத்தில். முடக்க கிளிக் செய்யவும் -%d வினாடிகள் பின்னோக்கி தவிர் -%d வினாடிகள் முன்னோக்கி தவிர் -இடம்-மட்டுமான இடுகை -இடத்தை பின்தொடர்பவர்கள் மட்டுமே அதை பார்ப்பார்கள். உங்கள் பொது பின்தொடர்பவர்கள் அதை பார்க்கமாட்டார்கள். -அட்டை படத்தை பதிவேற்று -இந்த பாடலின் கலை ஓவியமாக இருக்க ஒரு சதுர படத்தை தேர்ந்தெடுக்கவும். -ஆடியோ கோப்பை பதிவேற்று -MP3, WAV, அல்லது FLAC தேர்ந்தெடுக்கவும். சேமிக்கும்போது உங்கள் மீடியா சேவையகத்தில் பதிவேற்றப்படும். -அட்டை + ஆடியோ பதிவேற்றி வெளியிடுகிறது. திரையை விட்டு சென்றாலும் இது தொடரும். -இசை பட்டியலை திருத்து -அட்டை படத்தை பதிவேற்று -இந்த இசை பட்டியலின் கலை ஓவியமாக இருக்க ஒரு சதுர படத்தை தேர்ந்தெடுக்கவும். -அட்டை பதிவேற்றி வெளியிடுகிறது. திரையை விட்டு சென்றாலும் இது தொடரும். பொது குழு தனியார் -பொருள் -பதிவேற்ற முடியவில்லை -முதலில் செய்தியின் இலக்கை உள்ளிடவும் -வாலட் கிடைக்கவில்லை -இருண்ட, வெளிச்சம் அல்லது கணினி தீம் -படங்களை மற்றும் GIF களை தானாக ஏற்று -வீடியோக்களை மற்றும் GIF களை தானாக ஏற்று -திரையில் தெரியும்போது வீடியோக்களை தானாக இயக்கு -URL முன்னோட்டங்களை காட்டு -கிளிப்போர்டுக்கு நகலெடு -கிளிப்போர்டுக்கு நகலெடுக்கப்பட்டது -பகிர் அல்லது சேமி DM ஆக அனுப்பு -மீடியா சேர்க்கப்பட்டது -உங்கள் சுயவிவர கேலரியில் மீடியா சேர்க்கப்பட்டது -Zap அனுப்ப முடியவில்லை -Lightning அமைப்பு இல்லை -பயனர் %1$s க்கு sats பெறுவதற்கான lightning முகவரி அமைப்பு இல்லை -கையொப்பமிடல் செயலியை திறக்கும்போது பிழை -கையொப்பமிடல் செயலியை கண்டுபிடிக்க முடியவில்லை. செயலி நிறுவல் நீக்கப்படவில்லையா என சரிபார்க்கவும் -இந்த வீடியோவை இயக்க முடியவில்லை -இந்த சாதனத்தில் codec அல்லது வடிவம் ஆதரிக்கப்படவில்லை (%1$s). உங்கள் உலாவியில் திறக்க முயற்சிக்கவும். -உலாவியில் திற -கையொப்பமிடல் கோரிக்கை நிராகரிக்கப்பட்டது -கையொப்பமிடல் செயலி இந்த பரிவர்த்தனையை அங்கீகரித்திருக்கிறதா என சரிபார்க்கவும் -lightning இன்வாய்ஸை செலுத்த வாலட்கள் எதுவும் கிடைக்கவில்லை (பிழை: %1$s). Zap களை பயன்படுத்த Lightning வாலட்டை நிறுவுக -lightning இன்வாய்ஸை செலுத்த வாலட்கள் எதுவும் கிடைக்கவில்லை. Zap களை பயன்படுத்த Lightning வாலட்டை நிறுவுக -Blossom இணைப்புகளை திறக்க முடியவில்லை -Blossom செயலிகள் கண்டுபிடிக்கப்படவில்லை. இந்த கோப்பை பார்க்க உள்ளூர் Blossom செயலியை நிறுவுக -மறைக்கப்பட்ட வார்த்தைகள் -முடக்கப்பட்ட நூல்கள் -முடக்கப்பட்ட நூல்கள் இல்லை -சுயவிவர படம் -சுயவிவர படங்களை காட்டு -இன்வாய்ஸை செலுத்த முடியவில்லை -திரும்பப் பெற முடியவில்லை -Cashu ஐ மீட்டெடுக்க முடியவில்லை -Mint பின்வரும் பிழை செய்தியை வழங்கியது: %1$s -Cashu பெறப்பட்டது -%1$s sats உங்கள் வாலட்டுக்கு அனுப்பப்பட்டது. (கட்டணம்: %2$s sats) -கணினியில் பொருந்தக்கூடிய Cashu வாலட் கிடைக்கவில்லை -பெறுநரின் சேவையகங்களிலிருந்து இன்வாய்ஸை பெற முடியவில்லை -உங்கள் wallet connect வழங்குனர் பின்வரும் பிழையை திருப்பி அனுப்பியது: %1$s -Lightning முகவரி \"%1$s\" இலிருந்து LNUrl ஐ உருவாக்க முடியவில்லை. பயனரின் அமைப்பை சரிபார்க்கவும் -%1$s இலிருந்து இன்வாய்ஸை பெற முடியவில்லை: %2$s -%1$s இலிருந்து JSON ஐ பாகுபடுத்துவதில் பிழை. பயனரின் lightning அமைப்பை சரிபார்க்கவும் -%1$s இன் பதிலில் callback URL கிடைக்கவில்லை -%2$s இலிருந்து தவறான இன்வாய்ஸ் தொகை (%1$s sats). அது %3$s ஆக இருந்திருக்க வேண்டும் -Zap அனுப்புவதற்கு முன் lightning இன்வாய்ஸை உருவாக்க முடியவில்லை. பெறுநரின் lightning வாலட் பின்வரும் பிழையை அனுப்பியது: %1$s -படிக்க மட்டும் பயனர் -எந்த எதிர்வினையும் அமைக்கப்படவில்லை -அறிவிப்புகள் -வழங்கல் -ஆப்-உள் காட்சி -வகைகள் -%1$s இலிருந்து செய்தி -வணக்கம் %1$s, இது இன்னும் கிடைக்கிறதா? -ஆடைகள் -துணைக்கருவிகள் -மின்னணுவியல் -தளபாடங்கள் -சேகரிப்பு பொருட்கள் -புத்தகங்கள் -செல்லப்பிராணிகள் -விளையாட்டு -உடற்பயிற்சி -கலை -கைவினை -வீடு -அலுவலகம் -உணவு -இதர -மற்றவை -மீடியா பதிவேற்றம் தோல்வியடைந்தது -சுருக்கப்பட்ட கோப்பை திறக்க முடியவில்லை -பதிவேற்றப் பிழை: %1$s -பதிவேற்றிய பிறகு சர்வர் URL வழங்கவில்லை -சர்வரிலிருந்து பதிவேற்றிய மீடியாவை பதிவிறக்க முடியவில்லை -பதிவேற்றத்திற்குப் பிறகு பதிவிறக்கிய கோப்பை சரிபார்க்க முடியவில்லை: %1$s -%1$s-க்கு பதிவேற்றம் தோல்வியடைந்தது: %2$s -நீக்கம் தோல்வியடைந்தது: %1$s -NIP-95-க்கு மீடியா மிகவும் பெரியது -கோப்புகளை குறியாக்கு -தனியுரிமைக்காக பதிவேற்றுவதற்கு முன் கோப்புகளை குறியாக்கவும். சில சர்வர்கள் இலவச கணக்குகளில் குறியாக்கப்பட்ட கோப்புகளை ஏற்காது. -குறியாக்கப்பட்ட பதிவேற்றம் தோல்வியடைந்தது -பல சர்வர்கள் இலவச கணக்குகளில் குறியாக்கப்பட்ட கோப்புகளை ஏற்காது. குறியாக்கம் இல்லாமல் மீண்டும் முயற்சிக்கலாம். -H.265/HEVC கோடெக் பயன்படுத்தவும் -சிறிய கோப்பு அளவுகளில் சிறந்த தரம், ஆனால் எல்லா சாதனங்களும் H.265 இயக்கத்தை ஆதரிக்காது. -GIF-ஐ MP4-ஆக மாற்றவும் -சிறிய கோப்பு அளவு மற்றும் சிறந்த இயக்க இணக்கத்திற்காக அனிமேட்டட் GIF-ஐ MP4 வீடியோவாக மாற்றுகிறது. -தனிப்பட்ட மெட்டாடேட்டாவை அகற்றவும் -பதிவேற்றுவதற்கு முன் ஆதரவு மீடியா கோப்புகளிலிருந்து தனிப்பட்ட மெட்டாடேட்டாவை நீக்க முயற்சிக்கிறது -மெட்டாடேட்டாவை அகற்ற முடியவில்லை -மீடியாவிலிருந்து தனிப்பட்ட மெட்டாடேட்டாவை நீக்கத் தோல்வியடைந்தது. பதிவேற்றம் ரத்துசெய்யப்பட்டது. -பதிவேற்றம் ரத்துசெய்யப்பட்டது -AVIF-இலிருந்து மெட்டாடேட்டாவை நீக்க முடியவில்லை: %1$s -முகப்பு -கண்டுபிடிக்கவும் -செய்திகள் -அறிவிப்புகள் -காலண்டர்கள் -காலண்டர் பட்டியல்கள் -சதுரங்கம் -பணப்பை -Cashu பணப்பை (NIP-60) Nutzap விசை (மேம்பட்டது) NIP-61 nutzap-களை பெறுவதற்கு மட்டும் பயன்படுத்தப்படும் தனி தனிப்பட்ட விசை. உங்கள் Nostr அடையாள விசை அல்ல. புதிய விசையை உருவாக்கவும் P2PK தனிப்பட்ட விசை (hex) -Mint-களை திருத்தவும் மாற்றங்களை சேமிக்கவும் -பிரபலமான mints -பொருந்தும் mints -பெறப்பட்டது -அனுப்பப்பட்டது -%1$s-க்கான உங்கள் kind:38000 பரிந்துரைக்கு நீக்க கோரிக்கையை வெளியிடவும். NIP-09-ஐ மதிக்கும் relay-கள் அதை நீக்கும். -%2$s ஆதாரங்களில் %1$s sats மீட்டெடுக்கப்பட்டது. -%1$s sat + கட்டணமாக %2$s sat வரை செலுத்தவா? -Nutzap தோல்வியடைந்தது -குறிப்பில் பெறுநர் pubkey இல்லை -Nutzap-கள் பொது மற்றும் இந்த தனிப்பட்ட குறிப்பை வெளியிடும். அதற்கு பதில் Lightning zap பயன்படுத்தவும். -நிகழ்வு குறிப்பை உருவாக்க முடியவில்லை -இன்வாயிஸ் செலுத்தப்படுவதற்கு காத்திருக்கிறது… -Mint-ஐ சரிபார்க்கிறது… -மெதுவாக -சாதாரண -வேகமாக -~1 மணி நேரம் -~30 நிமிடம் -~10 நிமிடம் -%1$s · %2$s sat/vB · %3$s -இருப்பு ஏற்றுகிறது -பரிவர்த்தனையை உருவாக்குகிறது -கையொப்மிடுகிறது -ஒளிபரப்புகிறது -ரசீதை வெளியிடுகிறது -Bitcoin சேயின் பின்தள அமைவு இல்லை -உங்கள் Bitcoin இருப்பை ஏற்ற முடியவில்லை -பரிவர்த்தனையை உருவாக்க முடியவில்லை -ஒரு பெறுநர் பங்கு டஸ்ட் வரம்பிற்கு கீழே உள்ளது -பரிவர்த்தனையில் கையொப்மிட முடியவில்லை -பரிவர்த்தனையை ஒளிபரப்ப முடியவில்லை -கட்டணம் அனுப்பப்பட்டது, ஆனால் zap ரசீதை வெளியிட முடியவில்லை -பின்தொடர்பவர்களை இறக்குமதி செய் -புதிய தயாரிப்பு -புதிய கட்டுரை -புதிய நாட்காட்டி நிகழ்வு -நாட்காட்டி நிகழ்வை திருத்து -புதிய நாட்காட்டி -நாட்காட்டியை திருத்து -ஊட்டம் -மாதம் -வாரம் -நாள் -இப்போது நடக்கிறது -%1$s · %2$s இல் முடிகிறது -நாட்காட்டி நிகழ்வை பகிர் -calendar_reminders -நாட்காட்டி நினைவூட்டல்கள் -நீங்கள் கலந்துகொள்ளும் நிகழ்வு தொடங்கப்போகும்போது முன்னறிவிப்பு. -நாட்காட்டி நிகழ்வு -படம் பதிவேற்றம் தோல்வியடைந்தது -தேர்ந்தெடுக்கப்பட்ட படத்தை பதிவேற்ற முடியவில்லை. மீண்டும் முயற்சிக்கவும் அல்லது URL ஒட்டவும். -நாட்காட்டி நினைவூட்டல்கள் -நினைவூட்டல்களை அனுப்பு -நீங்கள் கலந்துகொள்ளும் நிகழ்வு தொடங்கப்போகும்போது அறிவிப்பு வரும். -வரைபடங்களில் திற -இணைப்பை திற -இந்த இடுகைக்கான அனைத்து எதிர்வினைகளையும் திற -இந்த இடுகைக்கான அனைத்து எதிர்வினைகளையும் மூடு -Zap -கீழ் வழிசெலுத்தல் பட்டை மறுவரிசைப்படுத்த இழுக்கவும். கீழ் பட்டையில் ஒரு உருப்படியை சேர்க்க அல்லது அகற்ற மாற்றவும். பூஜ்ய உருப்படிகளுடன் கீழ் பட்டை மறைக்கப்படும். மறுவரிசைப்படுத்து முகப்புத் திரையில் எந்த தாவல்கள் தோன்றுமென்று தேர்வு செய்யுங்கள். ஒரே ஒரு தாவல் மட்டும் இயக்கத்தில் இருக்கும்போது தாவல் பட்டை மறைக்கப்படும். -அனைத்தும் -சுயவிவர UI பயனர் சுயவிவரத் திரைகளில் எந்த பகுதிகள் மற்றும் ஊட்டங்கள் தோன்றுமென்று தேர்வு செய்யுங்கள். அனைத்து விருப்பங்களும் இயல்பாக இயக்கப்பட்டிருக்கும். -சுயவிவர பேட்ஜுகள் -பயன்பாட்டு பரிந்துரைகள் -Zap பெற்ற ஊட்டம் -பின்தொடர்பவர்கள் ஊட்டம் -எதிர்வினை வரிசை -வீடியோ பிளேயர் பொத்தான்கள் -ஆடியோ காட்சிப்படுத்தி -காலாவதி தேதி -தவறான முகவரி -Amethyst திறக்க ஒரு URI பெற்றது, ஆனால் அந்த URI தவறானது: %1$s -DM இன்பாக்ஸ் Relays -தேடல் Relays -நல்ல விருப்பங்கள்:\n%1$s -அவுட்பாக்ஸ் Relays -இன்பாக்ஸ் Relays -Relay அமைப்புகள் -பொது அவுட்பாக்ஸ்/முகப்பு Relays -பயனர் இந்த relays-ல் தன் உள்ளடக்கத்தை இடுகையிடுகிறார் -இந்த relay வகை உங்கள் அனைத்து உள்ளடக்கத்தையும் சேமிக்கிறது. Amethyst உங்கள் இடுகைகளை இங்கே அனுப்பும், மற்றவர்கள் உங்கள் உள்ளடக்கத்தை கண்டுபிடிக்க இந்த relays பயன்படுத்துவார்கள். 1–3 relays சேர்க்கவும். அவை தனிப்பட்ட relays, கட்டண relays அல்லது பொது relays ஆக இருக்கலாம். -பொது இன்பாக்ஸ் Relays -பயனர் இந்த relays-ல் அறிவிப்புகளைப் பெறுகிறார் -இந்த relay வகை உங்கள் இடுகைகளுக்கான அனைத்து பதில்கள், கருத்துகள், விருப்பங்கள் மற்றும் zaps பெறுகிறது. அவை கட்டண அல்லது இலவச relays ஆக இருக்கலாம். relay ஆபரேட்டர் அமைக்கும் வரம்புகள் நல்லதற்கும் கெட்டதற்கும் நீங்கள் பெறும் அறிவிப்புகளை கட்டுப்படுத்தலாம். எடுத்துக்காட்டாக, கருத்து ஸ்பாம் தாக்குதலுக்கு உட்பட்டால், கட்டண relays ஸ்பாமை வடிகட்டலாம். 1–3 relays சேர்க்கவும். -DM இன்பாக்ஸ் Relays -பயனர் இந்த relays-ல் DMs பெறுகிறார் -உங்கள் தனிப்பட்ட இன்பாக்ஸாக 1–3 relays சேர்க்கவும். மற்றவர்கள் உங்களுக்கு DMs அனுப்ப இந்த relays பயன்படுத்துவார்கள். DM இன்பாக்ஸ் relays யாரிடமிருந்தும் எந்த செய்தியும் ஏற்றுக்கொள்ள வேண்டும், ஆனால் நீங்கள் மட்டுமே அவற்றை பதிவிறக்க அனுமதிக்க வேண்டும். நல்ல விருப்பங்கள்:\n - inbox.nostr.wine (கட்டணம்)\n - auth.nostr1.com (இலவசம்)\n - you.nostr1.com (தனிப்பட்ட relays - கட்டணம்) -KeyPackages -KeyPackage Relays -உங்கள் MLS KeyPackages வெளியிடப்படும் Relays (MIP-00). மற்ற பயனர்கள் உங்களை Marmot குழு அரட்டைகளில் அழைக்க இந்த KeyPackages பெறுகிறார்கள். KeyPackage நிகழ்வுகளை ஏற்றுக்கொள்ளும் மற்றும் பொது வாசிப்பை அனுமதிக்கும் 1–3 relays சேர்க்கவும். -தனிப்பட்ட முகப்பு Relays -வேறு யாரும் பார்க்க முடியாத நிகழ்வுகளை சேமிக்க 1–3 relays சேர்க்கவும், உங்கள் வரைவுகள் மற்றும்/அல்லது பயன்பாட்டு அமைப்புகள் போன்றவை. ஆனால், இந்த relays உள்ளூர் அல்லது ஒவ்வொரு பயனரின் உள்ளடக்கத்தையும் பதிவிறக்குவதற்கு முன் அங்கீகரிப்பு தேவைப்படுவது சிறந்தது. -இணைந்த Relays -தற்போது பயன்படுத்தப்படும் relays பட்டியல் -தேடல் Relays -உள்ளடக்கம் அல்லது பயனர்களை தேடும்போது பயன்படுத்த வேண்டிய relays பட்டியல். எந்த விருப்பங்களும் இல்லையென்றால் குறியிடல் மற்றும் தேடல் வேலை செய்யாது. அவை NIP-50 செயல்படுத்துகிறதா என்று உறுதிப்படுத்தவும். -உள்ளூர் Relays -இந்த சாதனத்தில் இயங்கும் relays பட்டியல். -சுயவிவரங்களை உள்ளூர் relay-க்கு அனுப்பு -பெறப்பட்ட அனைத்து சுயவிவர (kind 0) நிகழ்வுகளையும் உங்கள் உள்ளூர் relay-க்கு அனுப்பு -நம்பகமான Relays -Tor இணைப்பு தேவையில்லை என்று நீங்கள் நம்பும் Relays -விருப்பமான Relay ஊட்டங்கள் -உங்கள் பொது ஊட்டத்தை பார்க்க நீங்கள் அடிக்கடி செல்லும் Relays -Proxy Relays -filter.nostr.wine போன்ற ஒருங்கிணைப்பு relays, பயன்பாடு உங்கள் ஊட்டங்களை பதிவிறக்க பயன்படுத்த வேண்டும். இது அவுட்பாக்ஸ் மாதிரியை மாற்றுகிறது, பயன்பாட்டை உங்கள் பட்டியல்களில் உள்ள relays மட்டுமே இணைக்கும். -ஒளிபரப்பு Relays -sendit.nosflare.com போன்ற, உங்கள் குறிப்புகளை மற்ற அனைத்து relays-க்கும் தள்ளுவதில் நிபுணத்துவம் பெற்ற Relays. Amethyst நீங்கள் செய்யும் அனைத்து புதிய நிகழ்வுகளிலும் இந்த relay-ஐ சேர்க்கும் -குறியீட்டாளர் Relays -purplepag.es போன்ற, அனைவரின் மெட்டாடேட்டா மற்றும் relay பட்டியல்களை வழங்குவதில் நிபுணத்துவம் பெற்ற Relays. உங்கள் பட்டியல்களில் இல்லாத பயனர்களை கண்டுபிடிக்க Amethyst இந்த relays பயன்படுத்தும். -தடுக்கப்பட்ட Relays -Amethyst இந்த relays-க்கு ஒருபோதும் இணைக்காது -Relay அமைப்புகளை ஏற்றுமதி செய் இணையம்: மேலோட்டம் பற்றி இணைப்புகள் பராமரிப்பாளர்கள் தலைப்புகள் -நேர முத்திரை சான்று -இந்த இடுகை %1$s-க்கு முன்பு ஒரு நேரத்தில் கையொப்பமிடப்பட்டது என்பதற்கான சான்று உள்ளது. சான்று அந்த தேதியிலும் நேரத்திலும் Bitcoin blockchain-ல் முத்திரையிடப்பட்டது. -இடுகையைத் திருத்து -வரைவு குறிப்புக்கு பதில் அளிக்க முடியாது -வரைவு குறிப்பை மேற்கோள் காட்ட முடியாது -வரைவு குறிப்பிற்கு எதிர்வினையாற்ற முடியாது -வரைவு குறிப்பை zap செய்ய முடியாது -வரைவு குறிப்பு -தவறான கோரிக்கை - சேவையகம் கோரிக்கையை செயலாக்க முடியவில்லை அல்லது மறுக்கிறது. -அங்கீகரிக்கப்படவில்லை - பயனருக்கு செல்லுபடியாகும் அங்கீகார சான்றுகள் இல்லை -கட்டணம் தேவை - கோரிக்கையை நிறைவேற்ற சேவையகம் கட்டணம் தேவைப்படுகிறது -தடைசெய்யப்பட்டது - கோரிக்கையை செய்ய பயனருக்கு அணுகல் உரிமைகள் இல்லை -கிடைக்கவில்லை - கோரப்பட்ட முகவரியை சேவையகம் கண்டுபிடிக்கவில்லை -முறை அனுமதிக்கப்படவில்லை - சேவையகம் கோரிக்கை முறையை ஆதரிக்கிறது, ஆனால் இலக்கு வளத்தை இல்லை -ஏற்றுக்கொள்ளத்தக்கதல்ல - கோரிக்கையை திருப்திப்படுத்தும் எந்த உள்ளடக்கத்தையும் சேவையகம் கண்டுபிடிக்கவில்லை. -Proxy அங்கீகரிப்பு தேவை - பயனருக்கு செல்லுபடியாகும் அங்கீகார சான்றுகள் இல்லை -கோரிக்கை காலாவதி - வேறு யாரோ காத்திருக்க சேவையகம் காலாவதியானது -முரண்பாடு - வளத்துடன் முரண்பாடு இருப்பதால் சேவையகம் கோரிக்கையை நிறைவேற்ற முடியவில்லை -நீங்கிவிட்டது - கோரப்பட்ட உள்ளடக்கம் சேவையகத்திலிருந்து நிரந்தரமாக நீக்கப்பட்டது, மீண்டும் வழங்கப்படாது -நீளம் தேவை - வரையறுக்கப்பட்ட Content-Length தேவைப்படுவதால் சேவையகம் கோரிக்கையை நிராகரிக்கிறது -முன்நிபந்தனை தோல்வியடைந்தது - சேவையகம் பூர்த்திசெய்யாத தலைப்பு புலங்களில் கோரிக்கையின் முன்நிபந்தனைகள் -பேலோட் மிகவும் பெரியது - கோரிக்கை சேவையகத்தின் வரையறுக்கப்பட்ட வரம்புகளை விட பெரியது, சேவையகம் அதை செயலாக்க மறுக்கிறது -URI மிகவும் நீண்டது - கிளையன்ட் கோரிய URL சேவையகம் செயலாக்க மிகவும் நீண்டது. -ஆதரிக்கப்படாத மீடியா வகை - கோரிக்கை சேவையகம் ஆதரிக்காத மீடியா வடிவத்தைப் பயன்படுத்துகிறது -வரம்பு திருப்திகரமாக இல்லை - கோரிக்கையின் Range தலைப்பு புலத்தில் குறிப்பிடப்பட்ட மதிப்பை சேவையகம் நிறைவேற்ற முடியவில்லை. -எதிர்பார்ப்பு தோல்வியடைந்தது - Expect கோரிக்கை தலைப்பு புலத்தால் குறிப்பிடப்பட்ட தேவைகளை சேவையகம் பூர்த்திசெய்ய முடியவில்லை -மேம்படுத்துதல் தேவை - கிளையன்ட் வேறு நெறிமுறைக்கு மேம்படுத்தாத வரை தற்போதைய நெறிமுறையைப் பயன்படுத்தி கோரிக்கையை செயலாக்க சேவையகம் மறுக்கிறது. -உள் சேவையக பிழை - சேவையகம் எதிர்பாராத பிழையை சந்தித்தது, கோரிக்கையை நிறைவேற்ற முடியவில்லை -செயல்படுத்தப்படவில்லை - கோரிக்கையை சேவையகம் நிறைவேற்ற முடியவில்லை அல்லது கோரிக்கை முறையை அடையாளம் காணவில்லை -தவறான நுழைவாயில் - சேவையகம் நுழைவாயிலாக செயல்படுகிறது மற்றும் கணினியிலிருந்து தவறான பதில் பெற்றது -சேவை கிடைக்கவில்லை - இது பெரும்பாலும் சேவையகம் அதிக சுமையில் இருக்கும்போது அல்லது பராமரிப்புக்கு கீழே இருக்கும்போது நிகழ்கிறது -நுழைவாயில் காலாவதி - சேவையகம் நுழைவாயில் அல்லது proxy ஆக செயல்பட்டு, பதிலுக்காக காத்திருந்து காலாவதியானது -HTTP பதிப்பு ஆதரிக்கப்படவில்லை - கோரிக்கையில் உள்ள HTTP பதிப்பை சேவையகம் ஆதரிக்கவில்லை -மாறுபாடும் பேச்சுவார்த்தை நடத்துகிறது - சேவையகத்தில் உள் உள்ளமைவு பிழை உள்ளது -போதுமான சேமிப்பிடம் இல்லை - கோரிக்கையை வெற்றிகரமாக செயலாக்க சேவையகத்தில் போதுமான சேமிப்பிடம் இல்லை -சுழல் கண்டறியப்பட்டது - கோரிக்கையை செயலாக்கும்போது சேவையகம் முடிவற்ற சுழலை கண்டறிகிறது -நெட்வொர்க் அங்கீகரிப்பு தேவை - நெட்வொர்க்கை அணுக கிளையன்ட் அங்கீகரிக்கப்பட வேண்டும் Blossom சேவையகங்கள் உங்களுக்கு விரும்பிய அளவு சேவையகங்கள் சேர்க்கவும். உங்கள் படத்தை பதிவேற்றும்போது எதைப் பயன்படுத்த வேண்டும் என்று பின்னர் தேர்வு செய்யலாம் -NIP-96 சேவையகம் சேர்க்கவும் -Blossom சேவையகம் சேர்க்கவும் பதிவிறக்கு -கோப்பை திறக்கத் தவறியது -கோப்பை திறக்க மற்றும் பதிவிறக்க torrent பயன்பாடுகள் எதுவும் நிறுவப்படவில்லை. -magnet இணைப்பை உருவாக்க நிகழ்வில் போதுமான தகவல் இல்லை -என் பட்டியல்கள் -ஊட்டங்கள் -Hashtags -ஆர்வ தொகுப்புகள் -இடங்கள் -சமுதாயங்கள் -பட்டியல்கள் -ஊட்ட அல்காரிதங்கள் -அனைத்து விருப்பமான ஊட்ட அல்காரிதங்கள் -Relays -விருப்பமான ஊட்ட அல்காரிதங்கள் -தனிப்பட்ட செய்தி -பொது செய்தி -படத்தைப் பகிர முடியவில்லை, பின்னர் மீண்டும் முயற்சிக்கவும்… -வீடியோவைப் பகிர முடியவில்லை, பின்னர் மீண்டும் முயற்சிக்கவும்… -வீடியோவை பதிவிறக்குகிறது… -இதிலிருந்து மொழிபெயர்க்காதே -இங்கே காட்டப்படும் மொழிகள் மொழிபெயர்க்கப்படாது. மொழியை தேர்ந்தெடுத்து அகற்று, மீண்டும் மொழிபெயர்க்கப்படும். -இதற்கு மொழிபெயர்க்கவும் -உள்ளடக்கத்தை மொழிபெயர்க்க வேண்டிய மொழியை தேர்ந்தெடுக்கவும். -மொழி காட்சி விருப்பங்கள் -ஒவ்வொரு மொழிபெயர்க்கப்பட்ட மொழி ஜோடிக்கும், எந்த மொழியை முதலில் காட்ட வேண்டும் என்று தேர்ந்தெடுக்கவும். -இடைநிறுத்து -இயக்கு -இந்த செய்தி %1$s-ல் மறைந்துவிடும் -Follow பட்டியல் மெட்டாடேட்டா -Follow பட்டியல் மெட்டாடேட்டாவை Nostr-ல் யாரும் பார்க்கலாம். உங்கள் தனிப்பட்ட உறுப்பினர்கள் மட்டுமே குறியாக்கப்பட்டுள்ளனர். -Follow Pack மெட்டாடேட்டா -Follow pack மெட்டாடேட்டாவை Nostr-ல் யாரும் பார்க்கலாம் மற்றும் புதிய பயனர்களுக்கான தொடக்க கருவியாக பல இணையதளங்களில் அடிக்கடி வெளியிடப்படுகிறது. -Follow Pack-ஐ திருத்து -விரிவாக்கு -மீண்டும் முயற்சி -எதிர்வினை -குரல் இடுகை -குரல் பதில் -Outbox Relays -பயன்பாடுகள் -பயன்பாட்டு பரிந்துரைகள் -பயனர் அமைப்புகள் -ஆடியோ தலைப்பு -ஆடியோ டிராக் -இசை டிராக் -இசை பட்டியல் -போட்காஸ்ட் எபிசோட் -போட்காஸ்ட் நிகழ்ச்சி -உருவாக்கிய போட்காஸ்ட்கள் -விருப்பமான போட்காஸ்ட்கள் -பேட்ஜ் விருதுகள் -பேட்ஜ் வரையறைகள் -ஏற்றுக்கொள்ளப்பட்ட பேட்ஜ் தொகுப்பு -சுயவிவர பேட்ஜ்கள் -தடுக்கப்பட்ட Relays -Blossom சேவையகங்கள் -Nests சேவையகங்கள் -Blossom Auth -Broadcast Relays -புக்மார்க் பட்டியல் -பழைய புக்மார்க் பட்டியல் -நாள் சந்திப்பு -நாட்காட்டி -சந்திப்பு -சந்திப்பு RSVP -சதுரங்க விளையாட்டுகள் -சதுரங்க Auth -விருப்பமான Relays -சதுரங்க சவால்கள் -சதுரங்க விளையாட்டு ஏற்பு -சதுரங்க நகர்வு -சதுரங்க விளையாட்டு முடிவு -சதுரங்க சமன் சலுகை -சேனல் வரையறை -சேனல் மறை செய்தி -சேனல் பட்டியல் -சேனல் செய்தி -சேனல் மெட்டாடேட்டா -சேனல் முடக்கு பயனர் -DM கோப்பு -DM செய்தி -DM Relays -வகைப்படுத்தப்பட்டவை -கருத்துகள் -சமூக வரையறை -சமூக பட்டியல் -சமூக இடுகை -Follow பட்டியல் -நீக்கங்கள் -வரைவுகள் -Emoji பேக்கள் -Emoji பேக் பட்டியல் -தற்காலிக அரட்டை -தற்காலிக அரட்டை அறைகள் -கோப்பு தலைப்புகள் -சுயவிவர தொகுப்பு -கோப்பு சேவையகங்கள் -Blob தரவு -Blob தலைப்புகள் -மருத்துவ தரவு -Follow Packs -மறுவெளியீடுகள் (16) -ஜியோஹாஷ் follows -GiftWraps -Git சிக்கல் -Git பேட்ச் -Git களஞ்சியம் -Git பதில் -Zap இலக்குகள் -ஹேஷ்டேக் follows -சிறப்பம்சங்கள் -Http Auth -குறியீட்டு Relay பட்டியல் -சாகச முன்னுரை -சாகச காட்சி -சாகச வாசிப்பு -பெயரிடப்பட்ட புக்மார்க்குகள் -நேரடி அரட்டைகள் -நேரடி ஒளிபரப்புகள் -Zaps -NWC கோரிக்கை -NWC பதில் -தனிப்பட்ட Zaps -Zap கோரிக்கை -வலைப்பதிவுகள் -சந்திப்பு அறை -அறை இருப்பு -சந்திப்பு இடம் -சுயவிவரம் -முடக்கு பட்டியல் -NNS -NIP -Nostr இணைப்பு -DVM நிலை -DVM உள்ளடக்க கோரிக்கை -DVM உள்ளடக்க பதில் -DVM பயனர் கோரிக்கை -DVM பயனர் பதில் -OTS -PayTo -மக்கள் பட்டியல்கள் -படங்கள் -உடற்பயிற்சிகள் -பின்கள் -Zap வாக்கெடுப்பு -வாக்கெடுப்பு -வாக்கெடுப்பு பதில் -NIP-04 DMs -தனிப்பட்ட Relays -Proxy Relays -பொது செய்தி -எதிர்வினைகள் -தொடர்பு அட்டை -Relay Auth -Relay கண்டுபிடிப்பு -Relay கண்காணிப்பு அறிவிப்பு -Relay தொகுப்பு -அறிக்கைகள் -மறுவெளியீடுகள் -பயனர் நீக்கம் -முத்திரைகள் -தேடல் Relays -பயனர் நிலை -குறிப்புகள் -திருத்தங்கள் -Torrents -Torrent கருத்துகள் -நம்பகமான Relays -நம்பகமான வழங்குனர்கள் -வீடியோ (Repl) -Shorts (Repl) -வீடியோ -Shorts -குரல் செய்தி -குரல் பதில் -WakeUp -வலை புக்மார்க் -விக்கி -%1$d%% இயக்க நேரம் -Namecoin அமைப்புகள் -%dms -Relay ஒத்திசைவு -பிட்காயின் எக்ஸ்ப்ளோரர் (OTS) -உங்களிடமிருந்து நிகழ்வுகள் -உங்களுக்கான நிகழ்வுகள் -தேடக்கூடிய நிகழ்வுகள் -DMs -சுயவிவரங்கள் -அஞ்சல் வெளி பட்டியல்கள் -கடைசியாக %1$s முன்பு பார்க்கப்பட்டது -%1$s அன்று கடைசியாக பார்க்கப்பட்டது (%2$s முன்பு) -இப்போது தான் பார்க்கப்பட்டது -ஒருபோதும் பார்க்கப்படவில்லை -%1$s sat-ஐ %2$s-க்கு நகர்த்தப்பட்டது. -சாதனத்திற்கு அனுப்பவும் -அனுப்புவதை நிறுத்தவும் -HLS பதிவேற்றம் -%1$s பதிவேற்றுகிறது (%3$d-ல் %2$d) -சான்றிதழ் -சான்றிதழ் கோரிக்கை -சான்றளிப்பவர் பரிந்துரை -சான்றளிப்பவர் திறன் -வலை புக்மார்க்கள் -வலை புக்மார்க் சேர்க்கவும் -வலை புக்மார்க் திருத்தவும் -%2$s sats இலக்கில் %1$s நிதியளிக்கப்பட்டது -புதிய இலக்கு -மறைவு கோரிக்கை -மறைவு கோரிக்கை அனுப்பப்பட்டது -மறைவு வரலாறு -பயனர்கள் -நிகழ்வுகள் -வகைகள் -IPs -அமைப்புகள் -உரை மேம்பாடுகளை பரிந்துரை செய்யவும் -உரை திருத்தங்கள் மற்றும் தொனி மாற்றங்களை பரிந்துரைக்க சாதனத்திலுள்ள AI மாதிரியை பயன்படுத்துகிறது. -கண்காணிக்கப்பட்ட ஒளிபரப்புகள் -நிகழ்வுகளை அனுப்பும்போது கண்காணிக்கப்பட்ட ஒளிபரப்பாளரை பயன்படுத்தவும். ஒளிபரப்பும்போது நேரடி முன்னேற்றம் மற்றும் ஒவ்வொரு relay நிலையையும் காட்டுகிறது. -பகிர உடற்பயிற்சிகளை பரிந்துரை செய்யவும் -Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) இலிருந்து முடிந்த உடற்பயிற்சிகளை படித்து அவற்றை பதிவாக பகிர பரிந்துரைக்கிறது. நீங்கள் இணைக்கும்போது மட்டும் அனுமதி கேட்கப்படும். -எழுதும் அமைப்புகள் -தானாக வரைவுகளை உருவாக்கவும் -நீங்கள் தட்டச்சு செய்யும்போது அல்லது அனுப்பப்படாத உரையுடன் ஒரு எழுத்துக் கலைஞரை விட்டு வெளியேறும்போது தானாகவே வரைவு நிகழ்வை சேமித்து உங்கள் தனிப்பட்ட outbox relays-களுக்கு அனுப்புகிறது. -புதிய emoji தொகுப்பு -emoji தொகுப்பை திருத்து -என் Emoji தொகுப்புகள் -Emojis -பொது emojis அனைவருக்கும் தெரியும் மற்றும் இந்த தொகுப்பு உங்கள் emoji பட்டியலில் இருக்கும்போது உங்கள் எதிர்வினை மெனு மற்றும் \":\" தானாக நிரப்பியில் தோன்றும். -தனிப்பட்ட emojis relays-இல் குறியாக்கப்பட்டு சேமிக்கப்படும் மற்றும் உங்களுக்கு மட்டுமே தெரியும். அவை பொது emojis போலவே உங்கள் எதிர்வினை மெனு மற்றும் \":\" தானாக நிரப்பியில் தோன்றும். -வரைவு %1$d bytes; இந்த சமூகம் இந்த வகைக்கு %2$d bytes வரை அனுமதிக்கிறது. -வரைவு %1$d bytes; இந்த சமூகம் நிகழ்வுகளை %2$d bytes வரை மட்டுமே அனுமதிக்கிறது. -நீங்கள் இன்று இந்த வகையில் %1$d நிகழ்வுகளை ஏற்கனவே இடுகையிட்டுள்ளீர்கள் (வரம்பு %2$d). -Nowhere தளம் -Nowhere நிகழ்வு -Nowhere நிதி திரட்டல் -Nowhere கடை -Nowhere மனு -Nowhere செய்தி -Nowhere வெளியீடு -Nowhere கலை -Nowhere மன்றம் -குழு தகவல் புதுப்பிக்கப்பட்டது -புதுப்பிக்க தோல்வி: %1$s -குழு உருவாக்க தோல்வி: %1$s -குழுவை விட்டு வெளியேற தோல்வி: %1$s -%1$s-ஐ சேர்க்கிறோம்… -%1$s-ஐ சேர்க்க தோல்வி: %2$s -அறியாத பிழை -உறுப்பினர் நீக்கப்பட்டார் -உறுப்பினரை நீக்க தோல்வி: %1$s -நிர்வாக உரிமைகள் வழங்கப்பட்டன -நிர்வாக உரிமைகள் வழங்க தோல்வி: %1$s -நிர்வாக உரிமைகள் திரும்பப்பெறப்பட்டன -நிர்வாக உரிமைகளை திரும்பப்பெற தோல்வி: %1$s -இந்த குழுவின் உறுப்பினர் இல்லை %1$s-ல் பெறுநரின் lightning சேவை கிடைக்கவில்லை. இது lightning முகவரி \"%2$s\" இலிருந்து கணக்கிடப்பட்டது. பிழை: %3$s. சர்வர் இயங்குகிறதா மற்றும் lightning முகவரி சரியானதா என சரிபாருங்கள் %1$s-ஐ தீர்க்க முடியவில்லை. நீங்கள் இணைக்கப்பட்டிருக்கிறீர்களா, சர்வர் இயங்குகிறதா மற்றும் lightning முகவரி %2$s சரியானதா என சரிபாருங்கள்.\n\nவிதிவிலக்கு: %3$s %1$s-இன் invoice பெறலிலிருந்து JSON பாகுபடுத்தும் பிழை. பயனரின் lightning அமைப்பை சரிபாருங்கள் Lightning invoice உருவாக்க முடியவில்லை. %1$s-இலிருந்து செய்தி: %2$s %1$s-இலிருந்து lightning invoice உருவாக்க முடியவில்லை: முடிவு JSON-ல் pr உறுப்பு கிடைக்கவில்லை. - - இந்த இடுகையில் %1$d hashtag-ஐ விட அதிகம் உள்ளது - இந்த இடுகையில் %1$d hashtags-ஐ விட அதிகம் உள்ளது - - - %1$d சொத்து தொகுக்கப்பட்டது - %1$d சொத்துக்கள் தொகுக்கப்பட்டன - - - +%1$d\nபதில் - +%1$d\nபதில்கள் - - - வெளியேறியது · %d திட்டமிட்ட இடுகை நீக்கப்பட்டது - வெளியேறியது · %d திட்டமிட்ட இடுகைகள் நீக்கப்பட்டன - - - இன்னும் வெளியிடப்படாத %d திட்டமிட்ட இடுகை உள்ளது. வெளியேறினால் அது நிரந்தரமாக நீக்கப்படும். - இன்னும் வெளியிடப்படாத %d திட்டமிட்ட இடுகைகள் உள்ளன. வெளியேறினால் அவை நிரந்தரமாக நீக்கப்படும். - - - %d காத்திருக்கும் - %d காத்திருக்கும் - - - · %d 1 மணி நேரத்தில் காலாவதி - · %d 1 மணி நேரத்தில் காலாவதி - - - %d relay-க்கு - %d relays-க்கு - - - இந்த nApplet %1$d sat-க்கான Lightning invoice செலுத்த விரும்புகிறது. - இந்த nApplet %1$d sats-க்கான Lightning invoice செலுத்த விரும்புகிறது. - - - %1$d கேட்பவர் - %1$d கேட்பவர்கள் - - - %1$d அத்தியாயம் - %1$d அத்தியாயங்கள் - - - %1$d பாடல் - %1$d பாடல்கள் - - - %1$d inbox relay-உடன் இணைக்கப்பட்டது - %1$d inbox relays-உடன் இணைக்கப்பட்டது - - - %1$d relay-உடன் இணைக்கப்பட்டது - %1$d relays-உடன் இணைக்கப்பட்டது - - - %1$d பாடல் - %1$d பாடல்கள் - - - +%1$d மேலும் பாடல் - +%1$d மேலும் பாடல்கள் - - - +%1$d மேலும் - +%1$d மேலும் - - - %1$d பிறரால் பரிந்துரைக்கப்பட்டது - %1$d பிறரால் பரிந்துரைக்கப்பட்டது - - - %1$s sats அனுப்பு, %2$d வழி - %1$s sats அனுப்பு, %2$d வழிகள் - - - இந்த குறிப்பின் %1$d-வழி zap பிரிவை பயன்படுத்து - இந்த குறிப்பின் %1$d-வழி zap பிரிவை பயன்படுத்து - - - %1$d பெறுநருக்கு இடையே பிரிவு - %1$d பெறுநர்களுக்கு இடையே பிரிவு - - - %1$d Lightning-முகவரி மட்டும் உள்ள பெறுநரை தவிர்க்கிறோம் — on-chain முகவரி பெற Nostr pubkey தேவை. - %1$d Lightning-முகவரி மட்டும் உள்ள பெறுநர்களை தவிர்க்கிறோம் — on-chain முகவரி பெற Nostr pubkey தேவை. - - - கட்டணம் அனுப்பப்பட்டது (%2$d-ல் %1$d ரசீது வெளியிடப்பட்டது), ஆனால் அடுத்த ரசீதை வெளியிட முடியவில்லை - கட்டணம் அனுப்பப்பட்டது (%2$d-ல் %1$d ரசீதுகள் வெளியிடப்பட்டன), ஆனால் அடுத்த ரசீதை வெளியிட முடியவில்லை - - - %1$s, %2$d நிகழ்வு - %1$s, %2$d நிகழ்வுகள் - - - %1$d நிமிடத்தில் தொடங்கும் - %1$d நிமிடங்களில் தொடங்கும் - - - %1$d நிமிடம் - %1$d நிமிடம் - - - %1$d நிமிடம் - %1$d நிமிடங்கள் - - - %1$d மணி நேரம் - %1$d மணி நேரங்கள் - - - %1$d நாள் - %1$d நாட்கள் - - - %1$d வாரம் - %1$d வாரங்கள் - - - %1$d மாதம் - %1$d மாதங்கள் - - - %1$d ஆண்டு - %1$d ஆண்டுகள் - - - %1$d mint - %1$d mints - - - %1$d நிலுவை invoice - %1$d நிலுவை invoices - - - நீங்கள் பயன்படுத்தாத %1$d mint-ல் நிதி உள்ளது - நீங்கள் பயன்படுத்தாத %1$d mints-ல் நிதி உள்ளது - - - %1$d செய்தி - %1$d செய்திகள் - - - %1$d உறுப்பினர் - %1$d உறுப்பினர்கள் - -Relay அரட்டைகள் என்பவை அவற்றின் முகப்பு relay-ஆல் கட்டுப்படுத்தப்படும் அரட்டை குழுக்கள். - அவை Nostr-ல் அனைவருக்கும் தெரியும் மற்றும் யாரும் அவற்றில் பங்கேற்கலாம். - அவை குறிப்பிட்ட தலைப்புகளை சுற்றிய திறந்த சமூகங்களுக்கு மிகவும் ஏற்றவை. இந்த குழுக்களில் சில தற்காலிகமானவை - எனவே அரட்டை செய்திகள் காலப்போக்கில் மறைந்துவிடும் -பொது அரட்டைகள் Nostr-ல் அனைவருக்கும் தெரியும் மற்றும் யாரும் - அவற்றில் பங்கேற்கலாம். அவை குறிப்பிட்ட தலைப்புகளை சுற்றிய திறந்த சமூகங்களுக்கு மிகவும் ஏற்றவை. - அதன் relays-ல் இடுகைகளை நீக்குவதன் மூலம் மிதவாண்மையை கட்டுப்படுத்தலாம் -இந்த குழுவை ஹோஸ்ட் செய்யும் 1–3 relays-ஐ உள்ளிடவும். - Nostr கிளையன்கள் செய்திகளை எங்கிருந்து பதிவிறக்கம் செய்வது மற்றும் உங்கள் செய்திகளை எங்கே அனுப்புவது என்பதை அறிய இந்த அமைப்பை பயன்படுத்துகின்றன. -Nostr Wallet Connect (NWC)-ஐ ஆதரிக்கும் எந்த பணப்பை பயன்பாடுகளையும் Amethyst கண்டுபிடிக்கவில்லை. -\n\nநீங்கள் செய்யக்கூடியவை: -\n\t1. NWC ஆதரவை சரிபாருங்கள்: உங்கள் விருப்பமான பணப்பை பயன்பாடு Nostr Wallet Connect-உடன் இணக்கமானதா என இரட்டிப்பு சரிபாருங்கள். -\n\t2. இணைப்பை உருவாக்குங்கள்: உங்கள் பணப்பை பயன்பாட்டிற்கு சென்று புதிய NWC இணைப்பை உருவாக்குங்கள். -\n\t3. Amethyst-உடன் இணைக்குங்கள்: உங்கள் பணப்பை பொதுவாக மூன்று விருப்பங்களை வழங்கும்: -\n\t\t3.1 தானியங்கி இணைப்பு: Amethyst-ஐ தானாக திறந்து இணைக்க ஒரு பொத்தான். அவ்வாறிருந்தால், அந்த பொத்தானை அழுத்தி Amethyst-ஐ திறந்து புதிய திரையில் சேமி அழுத்துங்கள். -\n\t\t3.2 கைமுறை இணைப்பு: நீங்கள் நகலெடுக்கக்கூடிய Connection URI, இந்த திரையில் ஒட்டு ஐகானை அழுத்தி நேரடியாக உள்ளிடலாம். -\n\t\t3.3 QR குறியீடு: பணப்பை ஒரு QR குறியீட்டை உருவாக்கும், இந்த திரையில் QR குறியீடு பொத்தானிலிருந்து படிக்கலாம். - diff --git a/amethyst/src/main/res/values-th-rTH/strings.xml b/amethyst/src/main/res/values-th-rTH/strings.xml index ba46c2c444..41272d831a 100644 --- a/amethyst/src/main/res/values-th-rTH/strings.xml +++ b/amethyst/src/main/res/values-th-rTH/strings.xml @@ -1,113 +1,12 @@ - - โพสต์นี้มีแฮชแท็กมากกว่า %1$d รายการ - - - %1$d ไฟล์แนบ - - - +%1$d\nการตอบกลับ - - สแปม - สแปมอีเว้นถูกรับมาจาก relay นี้ - เลียนแบบ - พฤติกรรมที่ผิดกฎหมาย - ส่งคำขอให้ลบ - เข้าสู่ระบบด้วย private key เพื่อตอบกลับ - เข้าสู่ระบบด้วย private key เพื่อบูสโพสต์ - เข้าสู่ระบบด้วย private key เพื่อถูกใจโพสต์ - ไม่มีการตั้งค่าจำนวนเพื่อ zap กดค้างเพื่อตั้งค่า - เข้าสู่ระบบด้วย private key เพื่อส่ง zaps - เข้าสู่ระบบด้วย private key เพื่อติดตาม - เข้าสู่ระบบด้วย private key เพื่อเลิกติดตาม - เข้าสู่ระบบด้วย private key เพื่อเพิ่มการซ่อนข้อความ - เข้าสู่ระบบด้วย private key เพื่อแก้ไขการซ่อนข้อความ - คุณกำลังใช้คีย์สาธารณะซึ่งอ่านได้อย่างเดียว เข้าสู่ระบบด้วยคีย์ส่วนตัวเพื่ออัปโหลดไฟล์ - คุณกำลังใช้คีย์สาธารณะซึ่งอ่านได้อย่างเดียว เข้าสู่ระบบด้วยคีย์ส่วนตัวเพื่อลงนามเหตุการณ์ - การถอดรหัสไม่ได้รับอนุญาต - ผู้ลงนามไม่อนุญาตการถอดรหัสที่จำเป็นสำหรับการดำเนินการนี้ เปิดใช้การถอดรหัส NIP-44 ในแอปผู้ลงนามของคุณแล้วลองใหม่อีกครั้ง - ไม่พบผู้ลงนาม - ถอนการติดตั้งแอปผู้ลงนามแล้วหรือไม่ ตรวจสอบว่าติดตั้งผู้ลงนามและมีบัญชีนี้อยู่ ออกจากระบบและเข้าสู่ระบบใหม่หากมีการเปลี่ยนแปลงแอปผู้ลงนาม - ผู้ลงนามภายนอกส่งคืนข้อมูลที่ผิดปกติสำหรับคำขอนี้ อาจมีข้อผิดพลาดใน Amethyst หรือแอปผู้ลงนาม - Zaps - แชร์ แชร์ แก้ไข #%1$s - เสนอการแก้ไข - เพิ่ม - เกิดข้อผิดพลาดในการวิเคราะห์ข้อความแสดงข้อผิดพลาด - โปรไฟล์ - ตัวกรองความปลอดภัย - กำลังขอใบแจ้งหนี้… - บริการเดบิตไม่สามารถดำเนินการชำระเงินได้ - ชำระ %1$s ผ่าน %2$s? - ชำระใบแจ้งหนี้นี้ผ่าน %1$s? - กรุณาใส่จำนวนที่ถูกต้องสำหรับข้อเสนอนี้ - ครั้งเดียว - รายวัน - รายสัปดาห์ - รายเดือน - จ่าย - กำลังชำระผ่าน %1$s… - การชำระเงินล้มเหลว - ยอดที่ใช้ได้สำหรับผู้รับนี้: %1$s sats - ธุรกรรม: %1$s - "รูปตัวอย่างสำหรับ %1$s" - รายละเอียด - คุณคิดอะไรอยู่ ? - เขียนข้อความ… - โพสต์ บันทึก - ส่ง - สร้าง เปลี่ยนชื่อ - ยกเลิก - ข้อผิดพลาด - ข้อผิดพลาด - เปอร์เซ็นต์การเชื่อมต่อสำเร็จกับ relay - บันทึกลงโทรศัพท์ - บันทึกรูปภาพลงแกลเลอรี - เริ่มดาวน์โหลดวิดีโอแล้ว… - เริ่มดาวน์โหลดสื่อแล้ว… - ปักหมุดไว้ด้านบน - เลิกปักหมุด - เกิดข้อผิดพลาดในการบันทึกรูปภาพ - บันทึกวิดีโอลงแกลเลอรีในโทรศัพท์แล้ว - ไม่สามารถบันทึกวิดีโอได้ - บันทึก PDF ลงใน Downloads/Amethyst แล้ว - ไม่สามารถบันทึก PDF ได้ - ไม่พบแอปกล้องในอุปกรณ์นี้ - กดค้างเพื่อบันทึกข้อความเสียง - ข้อผิดพลาดในการอัปโหลด - ไม่สามารถอัปโหลดข้อความเสียงได้ - NIP-95 ยังไม่รองรับข้อความเสียง - การอัปโหลดเสียงล้มเหลว: %1$s - ไม่มี - เสียงทุ้ม - เสียงสูง - เสียงปกติ - ผู้ใช้นี้ไม่ได้ตั้งค่า lightning address เพื่อรับ sats - "ตอบกลับที่นี่.. " - รู้ - ส่งคำขอใหม่ - ผู้ใช้ที่ถูกบล็อก - เธรดใหม่ - การสนทนา - ตัวเลือกเพิ่มเติม - แสดง QR code คีย์ส่วนตัว - แสดง QR code คีย์ส่วนตัวแบบเข้ารหัส - ติดตาม - ติดตามกลับ - ซ่อนรหัสผ่าน - key ไม่ถูกต้อง - รหัสลับไม่ถูกต้อง: %1$s - ต้องป้อนรหัสผ่าน - ต้องใช้ key - ต้องระบุชื่อ @@ -116,146 +15,7 @@ โปรไฟล์แชทใหม่: - ออก - เลิกติดตาม - แชทชั่วคราว - แชท relay - แชท relay - แชท relay คือกลุ่มแชทที่ควบคุมโดย relay หลัก มองเห็นได้สำหรับทุกคนบน Nostr และทุกคนสามารถเข้าร่วมได้ เหมาะสำหรับชุมชนเปิดในหัวข้อเฉพาะ บางกลุ่มเป็นแบบชั่วคราวดังนั้นข้อความแชทจะหายไปตามเวลา - แชทสาธรณะ - กลุ่ม MLS - ข้อมูลเมตาแชทสาธารณะ - แชทสาธารณะมองเห็นได้สำหรับทุกคนบน Nostr และทุกคนสามารถเข้าร่วมได้ เหมาะสำหรับชุมชนเปิดในหัวข้อเฉพาะ การกลั่นกรองสามารถควบคุมได้โดยการลบโพสต์บน relay ของกลุ่ม - relay - ใส่ relay 1–3 รายการที่โฮสต์กลุ่มนี้ ไคลเอนต์ Nostr ใช้การตั้งค่านี้เพื่อทราบว่าจะดาวน์โหลดข้อความจากที่ใดและส่งข้อความของคุณไปที่ใด - ลบ - ไม่เคย - ตอนนี้ - ชม. - เดือน - วัน - ภาพเปลือย/สื่อลามก - คําหยาบคาย / คําพูดที่แสดงความเกลียดชัง - สำรองข้อมูลรหัสลับ - การเข้ารหัสคีย์ส่วนตัวของคุณล้มเหลว - คัดลอก Secret key (nsec) ลงคลิปบอร์ด - คัดลอก secret key ของฉัน - เกิดข้อผิดพลาดในการตรวจสอบ - เกิดข้อผิดพลาดจากการยืนยันตนด้วยชีวภาพ - เกิดข้อผิดพลาดจากการยืนยันตนด้วยชีวภาพ: Error: %1$s - คัดลอกข่้อความในโน้ตลงคลิปบอร์ด - คัดลอก @npub ของผู้เขียนลงคลิปบอร์ด - คัดลอกโน้ต ID (@note1)ลงคลิปบอร์ด - "<ไม่สามารถถอดรหัสข้อความส่วนตัวได้>\n\nคุณถูกอ้างถึงในการสนทนาส่วนตัว/เข้ารหัสระหว่าง %1$s และ %2$s." - บัญชี - นำทาง - คุณ - ฟีด - สร้าง - ระบบ - ย้อนกลับ - แชร์ Browser Link - แชร์ - แชร์เป็นรูปภาพ - แชร์เป็น URL รูปภาพ - ID โน้ต - ลบ - ปิดเสียงกระทู้ - เปิดเสียงกระทู้ - - บล๊อก - บุ๊คมาร์ค - ย้ายบุ๊กมาร์กสำเร็จ - ฉบับร่าง - โพสต์ที่กำหนดเวลา - กำหนดเวลาโพสต์ - ยกเลิกการกำหนดเวลา - โพสต์ที่กำหนดเวลาอาจไม่เผยแพร่จนกว่าคุณจะเปิดแอปอีกครั้ง เปิดใช้การทำงานตลอดเวลาในการตั้งค่า → การตั้งค่า UI เพื่อกำหนดเวลาในพื้นหลังอย่างน่าเชื่อถือ - โพสต์ที่กำหนดเวลาอาจไม่เผยแพร่จนกว่าคุณจะเปิดแอปอีกครั้ง โพสต์ที่กำหนดเวลาของบัญชีอื่นจะไม่ส่งขณะที่บัญชีนี้ใช้งานอยู่ เปิดใช้การทำงานตลอดเวลาในการตั้งค่า → การตั้งค่า UI เพื่อกำหนดเวลาในพื้นหลังอย่างน่าเชื่อถือ - %1$s · อีก %2$s - %1$s · %2$s ที่แล้ว - พรุ่งนี้ - ออกจากระบบแล้ว - - ออกจากระบบแล้ว · ลบโพสต์ที่กำหนดเวลา %d รายการ - - เผยแพร่โพสต์ที่กำหนดเวลาแล้ว - โพสต์ที่กำหนดเวลาล้มเหลว - โพสต์ที่กำหนดเวลา - การแจ้งเตือนเมื่อโพสต์ที่กำหนดเวลาถูกเผยแพร่หรือล้มเหลวในการเผยแพร่ - ส่งทันที - ข้อผิดพลาด: %1$s - ตั้งเวลาไว้ - กำลังส่ง… - ล้มเหลว - ส่งแล้ว - ยกเลิกแล้ว - - คุณมี %d โพสต์ที่ตั้งเวลาไว้แต่ยังไม่ได้เผยแพร่ การออกจากระบบจะลบโพสต์เหล่านั้นอย่างถาวร - - - %d รายการในคิว - - - · %d รายการจะส่งใน 1 ชม. - - - ไปยัง %d relay - - คัดลอก ID โน้ตแล้ว - โพล - เปิดอยู่ - ปิดแล้ว - แบดจ์ - ชุมชน - ชุมชนใหม่ - แก้ไขชุมชน - ผู้ดูแล - กฎที่ตรวจสอบได้ (ไม่บังคับ) - ประเภทอีเวนต์ที่อนุญาต - ข้อความสั้น (1) - บทความยาว (30023) - โพสต์รูปภาพ (20) - โพสต์วิดีโอ (21) - วิดีโอสั้น (22) - ความคิดเห็นในชุมชน (1111) - ผู้ใช้ที่ถูกแบน - ประตู Web-of-trust (ไม่บังคับ) - ขนาดอีเวนต์สูงสุดแบบ Global (ไม่บังคับ) - แบดจ์ใหม่ - มอบแบดจ์ - แบดจ์โปรไฟล์ - รูปภาพ - การออกกำลังกาย - การออกกำลังกายใหม่ - วิ่ง - เดิน - ปั่นจักรยาน - เดินป่า - ว่ายน้ำ - พาย - ฝึกความแข็งแกร่ง - โยคะ - ทำสมาธิ - อาหาร - อดอาหาร - เซอร์กิต - แอป แอป - เบราว์เซอร์ - กำลังโหลดผ่าน Tor แตะเพื่อใช้เว็บแบบเปิด - กำลังโหลดผ่านเว็บแบบเปิด แตะเพื่อใช้ Tor - รายการโปรด - แอปโปรด - เพิ่มในรายการโปรด - ลบออกจากรายการโปรด - โหลดผ่าน Tor - โหลดผ่านเว็บแบบเปิด - เผยแพร่ไปยัง relay แล้ว - อัปโหลดไฟล์แล้ว - ชำระเงินแล้ว - แอปนั้นยังไม่ได้โหลด ลองอีกครั้งในอีกสักครู่ - ล่าสุด สิทธิ์ nApplet ยังไม่มีสิทธิ์ nApplet สิทธิ์ที่คุณให้แก่ nApplets จะปรากฏที่นี่ @@ -264,43 +24,11 @@ เพิกถอน - การกระทำบนแป้นพิมพ์ - พื้นที่จัดเก็บ - การชำระเงิน - เครือข่าย - การอัปโหลด ถามว่าความสามารถใดบ้างที่พร้อมใช้งาน - อ่าน public key ของคุณ - ผูก keyboard shortcuts - อ่าน ลงนาม และเผยแพร่อีเวนต์ของคุณ - พื้นที่จัดเก็บส่วนตัวของตัวเอง - ชำระ Lightning invoices - ดึงทรัพยากรจากเว็บและ Blossom - อัปโหลดไฟล์ไปยังเซิร์ฟเวอร์มีเดียของคุณ - ธีม - การแจ้งเตือน - การส่งข้อความ - จับคู่สีของแอปของคุณ - แสดงการแจ้งเตือนให้คุณ - แลกเปลี่ยนข้อความกับ nApplet อื่น ความสามารถ: %1$s - nApplet นี้ต้องการอ่านคีย์สาธารณะของคุณ - nApplet นี้ต้องการอ่านโปรไฟล์และข้อมูลบัญชีของคุณ - nApplet นี้ต้องการลงนามและเผยแพร่อีเวนต์ kind %1$d ในนามของคุณ - nApplet นี้ต้องการลงนามและเผยแพร่อีเวนต์ kind %1$d ในนามของคุณ: - nApplet นี้ต้องการส่งอีเวนต์ที่เข้ารหัสในนามของคุณ - nApplet นี้ต้องการอ่านอีเวนต์จาก relay ของคุณ - nApplet นี้ต้องการใช้พื้นที่จัดเก็บส่วนตัวของตัวเอง nApplet นี้ต้องการชำระใบแจ้งหนี้ Lightning - nApplet นี้ต้องการดึงข้อมูลทรัพยากรเว็บ - nApplet นี้ต้องการอัปโหลดไฟล์ไปยังเซิร์ฟเวอร์สื่อของคุณ - nApplet นี้ต้องการแสดงการแจ้งเตือนให้คุณ - ไซต์นี้ต้องการลงนามอีเวนต์ kind %1$d ด้วยคีย์ Nostr ของคุณ - - nApplet นี้ต้องการชำระใบแจ้งหนี้ Lightning เป็นจำนวน %1$d sats - - แชทสาธารณะ - ยกมือ - ลดมือ - ปิดเสียง - เปิดเสียง - ไม่สามารถส่งข้อความได้ - ปิดไมค์ - เปิดไมค์ - เปิดเสียงต่อเนื่องขณะที่ห้องเปิดอยู่ - Nest เชื่อมต่อแล้ว - แตะเพื่อกลับ - หยุด - ยกมือขึ้น - ขึ้นเวทีแล้ว - กำลังพูด - เข้าร่วมในฐานะผู้ฟัง - ออกจาก nest แล้ว - ออก - ไม่สามารถทำเครื่องหมายห้องว่าปิดแล้ว กำลังออกอยู่ดี — ห้องจะปิดอัตโนมัติ - - %1$d ผู้ฟัง - - ปิดเสียงผู้พูดคนนี้ - กู้คืนผู้พูดคนนี้ - ติดตาม - เลิกติดตาม - ปิดเสียง - เปิดเสียง - ไม่สามารถบันทึกรายการเซิร์ฟเวอร์ nest ของคุณได้ ลองอีกครั้ง - เซิร์ฟเวอร์ Nest - เซิร์ฟเวอร์ของคุณ - บันทึกเป็นอีเวนต์ที่แทนที่ได้ kind-10112 เพื่อให้ไคลเอนต์อื่นอ่านการตั้งค่าของคุณได้ - เซิร์ฟเวอร์ที่แนะนำ - ข้อเสนอแนะในตัวที่คุณสามารถเพิ่มลงในรายการด้วยการแตะครั้งเดียว - วิดีโอ - เพลง - เพลย์ลิสต์ - ตอน - พอดแคสต์ - - %1$d ตอน - - เพลงใหม่ - เพลย์ลิสต์ใหม่ - - %1$d แทร็ก - - เพิ่มไปยังบุ๊คมาร์คสาธรณะ - ลบออกจากบุ๊คมาร์คสาธรณะ - ปักหมุดที่โปรไฟล์ - เลิกปักหมุดจากโปรไฟล์ - รายการบุ๊กมาร์กใหม่ - ข้อมูลเมตาของรายการบุ๊กมาร์ก - ชุดแฮชแท็ก - ชุดความสนใจใหม่ - เปลี่ยนชื่อ - ทำให้เป็นส่วนตัว: gift-wrap โน้ตไปยังผู้ใช้ที่ได้รับการแจ้งเตือนเท่านั้น - ทำให้เป็นสาธารณะ - การตอบกลับโน้ตส่วนตัวจะเป็นส่วนตัวเสมอ - มองเห็นได้โดย ยังไม่มีผู้รับ: เฉพาะคุณเท่านั้นที่จะเห็นโน้ตนี้ เพิ่มผู้คนเพื่อแชร์ เพิ่ม ลบผู้ใช้ออกจากการแจ้งเตือน ค้นหาและเพิ่มผู้ใช้เพื่อแจ้งเตือน - ข้อมูลเมตาของรายการบุ๊กมาร์กสามารถถูกดูได้โดยทุกคนบน Nostr เฉพาะสมาชิกส่วนตัวของคุณเท่านั้นที่ถูกเข้ารหัส - ย้ายไปสาธารณะ - ย้ายไปส่วนตัว - เติมและส่ง zap - ส่ง zap - เติม %1$s sats ไปยัง %2$s และ zap %3$s %4$s sats · ค่าธรรมเนียม ≈ %5$s sats - ตัวเลือก %s - (0–100)% - ตัวเลือกเดียว - หลายตัวเลือก - ไม่สามารถโหวต - โพลปิดรับการลงคะแนนเพิ่มเติม - อนุญาตให้โหวตได้เพียงครั้งเดียวต่อผู้ใช้หนึ่งคนสำหรับการสำรวจประเภทนี้ - ผู้เขียนโพลล์ไม่สามารถลงคะแนนในโพล์ของตนเองได้ - หมายถึงอะไร? - เนื้อหานี้เหมือนเดิมตั้งแต่โพสต์ - เนื้อหามีการเปลี่ยนแปลง ผู้เขียนอาจไม่เห็นหรืออนุมัติการเปลี่ยนแปลง - เพิ่มสื่อ - เพิ่มรูปภาพ - เพิ่มวีดีโอ - เพิ่มเอกสาร - เซิร์ฟเวอร์เก็บข้อมูล - เลือกเซิร์ฟเวอร์เพื่ออัปโหลดไฟล์นี้ - Media Servers ตั้งค่า media server ที่คุณต้องการ เซิร์ฟเวอร์สื่อที่แนะนำ รายการค่าเริ่มต้นของ Amethyst คุณสามารถเพิ่มทีละรายการหรือเพิ่มทั้งรายการก็ได้ - เป้าหมายการชำระเงิน - เพิ่มที่อยู่การชำระเงินสำหรับเครือข่ายต่างๆ (เช่น bitcoin, lightning, ethereum) - ไม่พบแอปสำหรับการชำระเงินนี้ กรุณาติดตั้งกระเป๋าเงินที่รองรับ - ไม่มีแอปที่ติดตั้งสำหรับการชำระเงิน %1$s กรุณาติดตั้งกระเป๋าเงินที่รองรับ - ไม่สามารถเปิดการชำระเงินได้ - ตัวเลือกความเป็นส่วนตัว - ติดตามทั้งหมด - การติดตามผู้ใช้ทั้งหมด - รายการติดตามเริ่มต้น - รอบตัวฉัน - ทั่วโลก - คัดสรร - ของฉัน - รายการผู้ถูกปิดกั้น - รายการติดตามใหม่ - Follow Pack ใหม่ - แก้ไขรายการ - Port เริ่มต้นคือ 9050 - พอร์ต Orbot Socks - เครื่องยนต์ Tor ที่ใช้งานอยู่ - ใช้เวอร์ชันภายในหรือ Orbot - การตั้งค่า Tor/ความเป็นส่วนตัว - แก้ไขการตั้งค่าทั้งหมดด้านล่างอย่างรวดเร็ว - URL/Relays แบบ Onion - ใช้ Tor สำหรับ URL แบบ .onion - รีเลย์สำหรีบข้อความส่วนตัว - บังคับให้ Tor ส่งและรับ DM - Relay ที่ไม่น่าเชื่อถือ - บังคับให้ Tor ใช้ relay outbox/inbox - Relay ที่น่าเชื่อถือ - บังคับให้ Tor ใช้ relay ทั้งหมดในรายการของคุณ - รูปโปรไฟล์ - บังคับให้ Tor เมื่อโหลดรูปโปรไฟล์ - ตัวอย่าง URL - บังคับให้ Tor เมื่อโหลดตัวอย่าง URL - รูปภาพ - บังคับให้ Tor เมื่อโหลดรูปภาพ - วิดีโอ - บังคับให้ Tor เมื่อโหลดวิดีโอ - การดำเนินการเงิน - บังคับให้ Tor ใช้กับ zap, Lightning และการโอน Cashu - การยืนยันที่อยู่ Nostr - บังคับให้ Tor เมื่อยืนยันที่อยู่ NIP-05 - การอัปโหลดสื่อ - บังคับให้ Tor เมื่ออัปโหลดเนื้อหา - ภายใน - ปิด - พื้นฐาน - ค่าเริ่มต้น - ทุกอย่างยกเว้นสื่อ - ความเป็นส่วนตัวเต็มรูปแบบ - ปรับแต่ง - ใช้ Tor เมื่อเซิร์ฟเวอร์ต้องการ - ซ่อน IP ของคุณจาก relay ทั่วไป - ซ่อน IP ของคุณจากทุกอย่าง ยกเว้นรูปภาพและวิดีโอ - ซ่อน IP ของคุณจากทุกการเชื่อมต่อ - ตั้งค่าเอง - ข้อความส่วนตัว - แจ้งเตือนฉันเมื่อข้อความส่วนตัวมาถึง - ได้รับ Zaps - แจ้งเตือนเมื่อมีคน zaps - %1$s sats - จาก %1$s - ถึง %1$s - ตอบกลับ - ทำเครื่องหมายอ่านแล้ว - ข้อความใหม่ - Zap ใหม่ - ปฏิกิริยา - แจ้งเตือนเมื่อมีคนตอบสนองต่อโพสต์ของคุณ - %1$s ตอบสนองต่อโพสต์ของคุณ - สำหรับ %1$s - ปฏิกิริยาใหม่ - หมากรุก - แจ้งเตือนเกี่ยวกับเหตุการณ์ในเกมหมากรุก - %1$s ยอมรับการท้าทายหมากรุกของคุณ - %1$s เดินแล้ว — ถึงตาคุณ - อัปเดตหมากรุก - การตอบกลับ - แจ้งเตือนเมื่อมีคนตอบกลับโพสต์ของคุณ %1$s ตอบกลับ เกี่ยวกับ: %1$s - การตอบกลับใหม่ - การกล่าวถึง - แจ้งเตือนเมื่อมีคนกล่าวถึงหรืออ้างอิงคุณในโพสต์ - %1$s กล่าวถึงคุณ - การกล่าวถึงใหม่ @@ -521,34 +80,6 @@ - สายเรียกเข้า - การแจ้งเตือนสำหรับสายโทรด้วยเสียงและวิดีโอที่เข้ามา - สายเรียกเข้า - สายโทรด้วยเสียงเข้ามา… - สายโทรด้วยวิดีโอเข้ามา… - โทรกับ %1$s - การโทร - การแจ้งเตือนการโทรที่กำลังดำเนินอยู่ - วางสาย - รับสาย - ปฏิเสธ - ปิดเสียง - เปิดเสียง - เปิดกล้อง - ปิดกล้อง - ลำโพง - หูฟัง - Amethyst ต้องการสิทธิ์เข้าถึงไมโครโฟนเพื่อเริ่มการโทรด้วยเสียง โปรดเปิดใช้งานในการตั้งค่าแอป - Amethyst ต้องการสิทธิ์เข้าถึงกล้องและไมโครโฟนเพื่อเริ่มการโทรด้วยวิดีโอ โปรดเปิดใช้งานในการตั้งค่าแอป - การตั้งค่าการโทร - รักษาการเชื่อมต่อกับ relay กล่องข้อความของคุณให้ใช้งานได้เพื่อรับการแจ้งเตือนแบบเรียลไทม์ - การแจ้งเตือน Amethyst ใช้งานอยู่ - - เชื่อมต่อกับ %1$d inbox relay แล้ว - - - เชื่อมต่อกับ %1$d relay แล้ว - - กำลังเชื่อมต่อกับ inbox relay… บริการแจ้งเตือนแบบถาวร รักษาการเชื่อมต่อถาวรกับ inbox relay ของคุณเพื่อการส่งการแจ้งเตือนแบบทันที แสดงการแจ้งเตือนที่กำลังดำเนินอยู่ ใช้แบตเตอรี่มากขึ้น แต่รับประกันว่าคุณจะไม่พลาดข้อความ - แยกการแจ้งเตือนตามผู้ที่ติดตาม - แสดงแท็บการแจ้งเตือนสองแท็บ — กำลังติดตาม (คนที่คุณติดตาม) และทุกคน ตัวบ่งชี้ที่ยังไม่ได้อ่านจะเรืองแสงเฉพาะสำหรับกิจกรรมจากคนที่คุณติดตาม - แสดงข้อความ - รวมข้อความส่วนตัวและกลุ่มในแท็บการแจ้งเตือน ปิดเพื่อเก็บข้อความไว้เฉพาะในแท็บข้อความ - การแจ้งเตือน: - วันนี้ - ซ่อน - แสดง - เตือน - กรองสแปม - ซ่อนโพสต์จากคนแปลกหน้าที่มีเนื้อหาเหมือนกันตั้งแต่ 5 ครั้งขึ้นไป - เพิ่มแท็กไคลเอนต์ในกิจกรรมของฉัน - เมื่อเปิดใช้งาน Amethyst จะเพิ่มแท็กไคลเอนต์ NIP-89 ในกิจกรรมที่คุณเผยแพร่ - เตือนเมื่อมีรายงาน - แสดงข้อความเตือนเมื่อโพสต์หรือโปรไฟล์มีรายงานจากคนที่คุณติดตาม - ซ่อนโพสต์ที่ละเมิดกฎของชุมชน - ลบโพสต์ออกจากฟีดชุมชนเมื่อชุมชนเผยแพร่เอกสารกฎ NIP-9B และกิจกรรมไม่ผ่านกฎนั้น ไม่มีผลเมื่อชุมชนไม่มีกฎที่มีโครงสร้าง - การตั้งค่าการกรอง - เนื้อหาที่ถูกบล็อก - คุณยังไม่ได้บล็อกผู้ใช้ใดเลย - ไม่มีบัญชีที่ถูกระบุว่าเป็นสแปมในเซสชันนี้ - ไม่มีคำที่ซ่อนอยู่ เพิ่มคำด้านล่างเพื่อซ่อนโพสต์ที่มีคำนั้น - ไม่มีการเลือกประเภทของ reaction กดค้างเพื่อเปลี่ยน - อ่านจาก Relay - เขียนบน Relay - จำนวนข้อมูลในหน่วยไบต์ที่ถูกส่งไปยังรีเลย์นี้ รวมถึงฟิลเตอร์และอีเว้นต่างๆ - จำนวนข้อมูลในหน่วยไบต์ที่ถูกรับมาจากรีเลย์นี้ รวมถึงฟิลเตอร์และอีเว้นต่างๆ - นโยบายความเป็นส่วนตัว - มาตรฐานความปลอดภัยของเด็ก - เกี่ยวกับและข้อมูลทางกฎหมาย - โทเคน Cashu - ไม่ได้ตั้งค่า Lightning Address - รีเลย์ - การอ่าน - อัลกอริทึมฟีด - ตลาด - สตรีมสด - ชุมชน - ช่องสนทนา - เนื้อหาที่ละเอียดอ่อน - เพิ่มการแจ้งเตือนเนื้อหาที่ละเอียดอ่อนก่อนโชว์เนื้อหานี้ - การตั้งค่า UI การตั้งค่าแอป - การแปลภาษา - ปฏิกิริยา - การตั้งค่า - การตั้งค่าบัญชี - การตั้งค่าแอป - เขตอันตราย - รีเซ็ตสถานะ Marmot - รีเซ็ตสถานะ Marmot แล้ว - ไม่สามารถรีเซ็ตสถานะ Marmot ได้: %1$s - ตลอดเวลา - Unmetered WiFi - ไม่ต้องแสดง - เสร็จสมบูรณ์ - Simplified - Performance - คลาสสิก - ทันสมัย - ระบบ(ค่าพื้นฐาน) - สว่าง - มืด - ธีม - ภาพตัวอย่าง - การเล่นวิดีโอ - เล่นวิดีโออัตโนมัติ - การแสดงตัวอย่าง URL - การไถฟีดแบบลื่นไหล - ซ่อนแถบเมนูขณะเลื่อนฟีด - UI Mode - เลือกรูปแบบการโพสต์ - สไตล์แกลเลอรีโปรไฟล์ - เลือกสไตล์แกลเลอรี - แสปม - ปิดการมองเห็น คลิกเพื่อปลดออก - เปิดการมองเห็นอยู่ คลิกเพื่อปิด - ย้อนกลับ %d วินาที - ข้ามไปข้างหน้า %d วินาที - โพสต์เฉพาะตำแหน่งที่ตั้ง - เฉพาะผู้ติดตามตำแหน่งนั้นเท่านั้นที่จะเห็น ผู้ติดตามทั่วไปของคุณจะไม่เห็น - - %1$d แทร็ก - - - +%1$d แทร็กเพิ่มเติม - - อัปโหลดรูปภาพปก - เลือกรูปภาพสี่เหลี่ยมจัตุรัสเพื่อใช้เป็นอาร์ตเวิร์กของแทร็กนี้ - อัปโหลดไฟล์เสียง - เลือกไฟล์ MP3, WAV หรือ FLAC ระบบจะอัปโหลดไปยังเซิร์ฟเวอร์มีเดียของคุณเมื่อบันทึก - กำลังอัปโหลดปกและเสียง และเผยแพร่ ระบบจะดำเนินการต่อแม้คุณออกจากหน้าจอ - แก้ไขเพลย์ลิสต์ - อัปโหลดรูปภาพปก - เลือกรูปภาพสี่เหลี่ยมจัตุรัสเพื่อใช้เป็นอาร์ตเวิร์กของเพลย์ลิสต์นี้ - กำลังอัปโหลดปกและเผยแพร่ ระบบจะดำเนินการต่อแม้คุณออกจากหน้าจอ สาธรณะ กลุ่ม ส่วนตัว - ชื่อเรื่อง - อัปโหลดไม่ได้ - กรุณาระบุปลายทางของข้อความก่อน - ไม่พบกระเป๋าเงิน - Amethyst ไม่พบแอปกระเป๋าเงินที่รองรับ Nostr Wallet Connect (NWC) -\n\nสิ่งที่คุณทำได้: -\n\t1. ตรวจสอบการรองรับ NWC: ตรวจสอบอีกครั้งว่าแอปกระเป๋าเงินที่คุณต้องการใช้รองรับ Nostr Wallet Connect หรือไม่ -\n\t2. สร้างการเชื่อมต่อ: ไปที่แอปกระเป๋าเงินของคุณและสร้างการเชื่อมต่อ NWC ใหม่ -\n\t3. เชื่อมกับ Amethyst: กระเป๋าเงินของคุณมักจะให้ตัวเลือกสามแบบ: -\n\t\t3.1 ลิงก์อัตโนมัติ: ปุ่มเพื่อเปิดและเชื่อมต่อกับ Amethyst โดยอัตโนมัติ หากมี ให้กดปุ่มนั้น เปิด Amethyst และกดบันทึกที่หน้าจอใหม่ -\n\t\t3.2 ลิงก์ด้วยตนเอง: URI การเชื่อมต่อที่คุณสามารถคัดลอกและกดไอคอนวางบนหน้าจอนี้เพื่อป้อนโดยตรง -\n\t\t3.3 QR Code: กระเป๋าเงินสร้าง QR Code ที่คุณสามารถอ่านได้จากปุ่ม QR code ในหน้าจอนี้ - - ธีม: มืด, สว่าง หรือระบบ - โหลดรูปภาพและ GIFs โดยอัตโนมัติ - เล่นวีดีโอและ GIFs โดยอัตโนมัติ - เล่นวิดีโออัตโนมัติเมื่อมองเห็นบนหน้าจอ - แสดงจัวอย่าง URL - คัดลอก - คัดลอกไปยังคลิปบอร์ดแล้ว - แชร์ หรือเก็บไว้ ส่งเป็น DM - เพิ่มสื่อแล้ว - เพิ่มสื่อในแกลเลอรีโปรไฟล์ของคุณแล้ว - แย่จัง ส่ง Zaps ไม่ได้ - ไม่พบการตั้งค่า Lightning - ผู้ใช้ %1$s ไม่ได้ตั้งค่า lightning address เพื่อรับ sats - เกิดข้อผิดพลาดในการเปิดแอพเข้ารหัส - ไม่พบแอพที่สามารถช่วยเข้ารหัส หรือ signer โปรดตรวจดูอีกครั้งว่าได้ติดตั้งแอพแล้ว - ไม่สามารถเล่นวิดีโอนี้ได้ - codec หรือรูปแบบไม่รองรับบนอุปกรณ์นี้ (%1$s) ลองเปิดในเบราว์เซอร์ของคุณ - เปิดในเบราว์เซอร์ - คำขอลงชื่อถูกปฏิเสธ - โปรดตรวจสอบให้แน่ใจว่าแอพเข้ารหัส หรือ Signer ได้อนุญาติทำรายการนี้ - ไม่พบกระเป๋า Lightning (Error: %1$s) โปรดติดตั้งแอพกระเป๋า Lightning ก่อน - ไม่พบกระเป๋า Lightning โปรดติดตั้งแอพกระเป๋า Lightning ก่อน - ไม่สามารถเปิดลิงก์ Blossom ได้ - ไม่พบแอป Blossom กรุณาติดตั้งแอป Blossom ในเครื่องเพื่อดูไฟล์นี้ - คำต้องห้าม - เธรดที่ปิดเสียง - ไม่มีเธรดที่ปิดเสียง - รูปโปรไฟล์ - แสดงรูปโปรไฟล์ - ไม่สามารถชำระได้ - ไม่สามารถถอนได้ - ไม่สามารถใช้งาน Cashu - ผู้ให้บริการ Mint เกิดข้อผิดพลาด : %1$s - ได้รับ Cashu - %1$s sats ถูกส่งไปยังกระเป๋าของคุณ. (ค่าธรรมเนียม: %2$s sats) - ไม่พบกระเป๋า Cashu ที่รองรับ - ไม่สามารถสร้างบิลจากเซอเวอร์ของผู้รับเงินได้ - เกิดข้อผิดพลาดจากบริการกระเป๋า Lightning : %1$s - ไม่สามารถสร้าง LNUrl จากที่อยู่ Lightning ได้ \"%1$s\" โปรดตรวจสอบการตั้งค่า - ไม่สามารถดึงใบแจ้งหนี้จาก %1$s: %2$s - เกิดข้อผิดพลาดในการอ่าน JSON จาก %1$s. โปรดตรวจสอบการตั้งค่า Lightning - ไม่พบที่อยู่ URL จาก %1$s - จำนวนที่ต้องชำระไม่ถูกต้อง (%1$s sats) จาก %2$s. มันควรจะเป็น %3$s - ไม่สามารถสร้างบิลชำระในการส่ง zap ได้ โดยเกิดข้อผิดพลาด %1$s จากกระเป๋าของผู้รับ - ดูอย่างเดียว - ไม่มีรายการ reaction - การแจ้งเตือน - การส่ง - การแสดงผลในแอป - หมวดหมู่ - ข้อความจาก %1$s - สวัสดี! ยังมี %1$s อยู่ไหม? - เสื้อผ้า - อุปกรณ์เสริม - เครื่องใช้ไฟฟ้า - เฟอร์นิเจอร์ - ของสะสม - หนังสือ - สัตว์เลี้ยง - กีฬา - ฟิตเนส - ศิลปะ - งานฝีมือ - บ้าน - สำนักงาน - อาหาร - เบ็ดเตล็ด - อื่นๆ - ไม่สามารถโหลดสื่อได้ - ไม่สามารถเปิดดูข้อมูลที่ถูกบีบอัดได้ - เกิดข้อผิดพลาดขณะอัพโหลด: %1$s - เซอเวอร์ไม่ตอบสนองหลังจากอัพโหลดแล้ว - ไม่สามารถโหลดข้อมูลสื่อได้ - ไม่สามารถตรวจสอบไฟล์ที่ดาวน์โหลดหลังจากอัปโหลด: %1$s - อัปโหลดไปยัง %1$s ล้มเหลว: %2$s - การลบล้มเหลว: %1$s - สื่อชิ้นนี้ใหญ่เกินไปสำหรับ NIP-95 - เข้ารหัสไฟล์ - เข้ารหัสไฟล์ก่อนอัปโหลดเพื่อความเป็นส่วนตัว บางเซิร์ฟเวอร์อาจไม่รับไฟล์ที่เข้ารหัสในบัญชีฟรี - การอัปโหลดแบบเข้ารหัสล้มเหลว - เซิร์ฟเวอร์หลายแห่งไม่รับไฟล์ที่เข้ารหัสในบัญชีฟรี คุณสามารถลองใหม่โดยไม่เข้ารหัส - ใช้ Codec H.265/HEVC - คุณภาพดีกว่าที่ขนาดไฟล์เล็กกว่า แต่ไม่ใช่ทุกอุปกรณ์รองรับการเล่น H.265 - แปลง GIF เป็น MP4 - แปลง GIF เคลื่อนไหวเป็นวิดีโอ MP4 เพื่อลดขนาดไฟล์และเพิ่มความเข้ากันได้ในการเล่น - ลบข้อมูลเมตาส่วนตัว - พยายามลบข้อมูลเมตาส่วนตัวออกจากไฟล์มีเดียที่รองรับก่อนอัปโหลด - ไม่สามารถลบข้อมูลเมตาได้ - ไม่สามารถลบข้อมูลเมตาส่วนตัวออกจากสื่อได้ ยกเลิกการอัปโหลดแล้ว - ยกเลิกการอัปโหลดแล้ว - ไม่สามารถลบข้อมูลเมตาจาก AVIF: %1$s - หน้าแรก - สำรวจ - ข้อความ - การแจ้งเตือน - ปฏิทิน - รายการปฏิทิน - หมากรุก - กระเป๋าเงิน - กระเป๋าเงิน Cashu (NIP-60) คีย์ Nutzap (ขั้นสูง) คีย์ส่วนตัวแยกต่างหากที่ใช้เฉพาะสำหรับรับ NIP-61 nutzap ไม่ใช่คีย์ตัวตน Nostr ของคุณ สร้างคีย์ใหม่ คีย์ส่วนตัว P2PK (hex) - แก้ไข mints บันทึกการเปลี่ยนแปลง - - +%1$d เพิ่มเติม - - - แนะนำโดย %1$d คน - - Mints ยอดนิยม - Mints ที่ตรงกัน - รับแล้ว - ส่งแล้ว - เผยแพร่คำขอลบคำแนะนำ kind:38000 ของ %1$s ของคุณ relay ที่รองรับ NIP-09 จะลบออก - กู้คืนได้ %1$s sats จาก %2$s proof - จ่าย %1$s sat + สูงสุด %2$s sat ในค่าธรรมเนียมใช่หรือไม่? - Nutzap ล้มเหลว - ไม่มี pubkey ผู้รับในโน้ตนี้ - nutzap เป็นแบบสาธารณะและจะเปิดเผยโน้ตส่วนตัวนี้ ใช้ Lightning zap แทน - ไม่สามารถสร้างการอ้างอิง event ได้ - รอการชำระใบแจ้งหนี้… - กำลังตรวจสอบ mint… - ช้า - ปกติ - เร็ว - ~1 ชั่วโมง - ~30 นาที - ~10 นาที - - ส่ง %1$s sats, %2$d ทาง - - - ใช้การแบ่ง zap %1$d ทางของโน้ตนี้ - - - แบ่งให้ %1$d ผู้รับ - - - ข้าม %1$d ผู้รับที่มีแต่ Lightning address — on-chain ต้องการ Nostr pubkey เพื่อสร้างที่อยู่ - - กำลังโหลดยอดคงเหลือ - กำลังสร้างธุรกรรม - กำลังเซ็น - กำลังกระจาย - กำลังเผยแพร่ใบเสร็จ - ไม่ได้ตั้งค่า Bitcoin chain backend ไว้ - ไม่สามารถโหลดยอด Bitcoin ของคุณได้ - ไม่สามารถสร้างธุรกรรมได้ - ส่วนแบ่งของผู้รับต่ำกว่าเกณฑ์ขั้นต่ำ - ไม่สามารถเซ็นธุรกรรมได้ - ไม่สามารถกระจายธุรกรรมได้ - ส่งการชำระเงินแล้ว แต่ไม่สามารถเผยแพร่ใบเสร็จ zap ได้ - - ส่งการชำระเงินแล้ว (เผยแพร่ %1$d จาก %2$d ใบเสร็จ) แต่ไม่สามารถเผยแพร่ใบเสร็จถัดไปได้ - - นำเข้ารายการที่ติดตาม - สินค้าใหม่ - บทความใหม่ - กิจกรรมปฏิทินใหม่ - แก้ไขกิจกรรมปฏิทิน - ปฏิทินใหม่ - แก้ไขปฏิทิน - ฟีด - เดือน - สัปดาห์ - วัน - - %1$s, %2$d กิจกรรม - - กำลังดำเนินอยู่ - %1$s · สิ้นสุด %2$s - แชร์กิจกรรมปฏิทิน - การแจ้งเตือนปฏิทิน - แจ้งเตือนเมื่อกิจกรรมที่คุณเข้าร่วมกำลังจะเริ่ม - กิจกรรมปฏิทิน - - เริ่มในอีก %1$d นาที - - อัปโหลดรูปภาพล้มเหลว - ไม่สามารถอัปโหลดรูปภาพที่เลือก ลองอีกครั้งหรือวาง URL - การแจ้งเตือนปฏิทิน - ส่งการแจ้งเตือน - การแจ้งเตือนจะถูกส่งเมื่อกิจกรรมที่คุณเข้าร่วมกำลังจะเริ่ม - - %1$d นาที - - เปิดในแผนที่ - เปิดลิงก์ - แสดง Reactions ทั้งหมด - ปิดการสดง Reactions - Zap - แถบนำทางด้านล่าง ลากเพื่อจัดลำดับ สลับเพื่อเพิ่มหรือลบรายการออกจากแถบด้านล่าง หากไม่มีรายการ แถบด้านล่างจะถูกซ่อน จัดลำดับใหม่ เลือกแท็บที่จะแสดงในหน้าหลัก เมื่อมีเพียงแท็บเดียวที่เปิดใช้งาน แถบแท็บจะถูกซ่อน - ทั้งหมด - ส่วนติดต่อผู้ใช้โปรไฟล์ เลือกส่วนและฟีดที่จะแสดงในหน้าโปรไฟล์ผู้ใช้ ตัวเลือกทั้งหมดเปิดใช้งานตามค่าเริ่มต้น - ป้ายโปรไฟล์ - คำแนะนำแอป - ฟีด Zap ที่ได้รับ - ฟีดผู้ติดตาม - แถวปฏิกิริยา - ปุ่มเครื่องเล่นวิดีโอ - ตัวแสดงภาพเสียง - วันหมดอายุ - ที่อยู่ไม่ถูกต้อง - Amethyst ได้รับ URI แต่ URI นั้นไม่ถูกต้อง: %1$s - รีเลย์ขาเข้าของ DM - ค้นหารีเลย์ - ตัวเลือกที่ดี ได้แก่:\n%1$s - ตั้งค่ารีเลย์ - รีเลย์สาธารณะสำหรับหน้า Home - ผู้ใช้กำลังโพสต์เนื้อหาของตนไปยัง relay เหล่านี้ - รีเลย์ประเภทนี้จะเก็บเนื้อหาทั้งหมดของคุณ Amethyst จะส่งโพสต์ของคุณไปยังรีเลย์เหล่านี้ และคนอื่น ๆ จะใช้รีเลย์เหล่านี้เพื่อค้นหาเนื้อหาของคุณ ใส่รีเลย์ 1–3 ตัว ซึ่งสามารถเป็นรีเลย์ส่วนตัว รีเลย์ที่ต้องเสียค่าบริการ หรือรีเลย์สาธารณะก็ได้ - รีเลย์ขาเข้าสาธารณะ - ผู้ใช้กำลังรับการแจ้งเตือนบน relay เหล่านี้ - รีเลย์ประเภทนี้จะรับการตอบกลับ ความคิดเห็น การถูกใจ และการส่ง \"zap\" ทั้งหมดไปยังโพสต์ของคุณ ใส่รีเลย์ 1–3 ตัว และตรวจสอบให้แน่ใจว่ารีเลย์เหล่านี้ยอมรับโพสต์จากทุกคน - รีเลย์ขาเข้าของ DM - ผู้ใช้รับ DM บน relay เหล่านี้ - ใส่รีเลย์ 1–3 ตัวเพื่อทำหน้าที่เป็นกล่องขาเข้าส่วนตัวของคุณ คนอื่นจะใช้รีเลย์เหล่านี้ในการส่งข้อความ DM ถึงคุณ รีเลย์กล่องขาเข้า DM ควรยอมรับข้อความจากทุกคน แต่อนุญาตให้คุณดาวน์โหลดได้เท่านั้น ตัวเลือกที่ดี ได้แก่:\n - inbox.nostr.wine (เสียค่าบริการ)\n - you.nostr1.com (รีเลย์ส่วนตัว - เสียค่าบริการ) - Relays ที่เผยแพร่ MLS KeyPackages ของคุณ (MIP-00) ผู้ใช้รายอื่นดึง KeyPackages เหล่านี้เพื่อเชิญคุณเข้ากลุ่มแชท Marmot ใส่ relay 1–3 รายการที่รับเหตุการณ์ KeyPackage จากคุณและอนุญาตให้อ่านแบบสาธารณะ - รีเลย์ส่วนตัว - ใส่รีเลย์ 1–3 ตัวเพื่อเก็บเหตุการณ์ที่ไม่มีใครสามารถเห็นได้ เช่น ร่างโพสต์ และการตั้งค่าแอปของคุณ รีเลย์เหล่านี้ควรเป็นรีเลย์ภายในเครื่องหรือรีเลย์ที่ต้องมีการยืนยันตัวตนก่อนที่จะดาวน์โหลดเนื้อหาของผู้ใช้แต่ละคน - Relays ที่เชื่อมต่อ - รายการ relay ปัจจุบันที่กำลังใช้งาน - ค้นหารีเลย์ - รายการรีเลย์ที่จะใช้เมื่อค้นหาข้อมูลหรือผู้ใช้ การแท็กและการค้นหาจะไม่ทำงานหากไม่มีตัวเลือก ตรวจสอบให้แน่ใจว่ารีเลย์เหล่านี้รองรับ NIP-50 - รีเลย์ในพื้นที่ของคุณ - รายการรีเลย์ที่กำลังทำงานอยู่ในอุปกรณ์นี้ - ส่งต่อโปรไฟล์ไปยัง relay ในเครื่อง - ส่งเหตุการณ์โปรไฟล์ (kind 0) ที่ได้รับทั้งหมดไปยัง relay ในเครื่องของคุณ - Relays ที่คุณเชื่อถือว่าไม่จำเป็นต้องใช้การเชื่อมต่อ Tor - ฟีด Relay โปรด - Relays ที่คุณมักเข้าไปดูฟีดทั่วโลกของพวกเขา - Relay รวมที่แอปต้องใช้เพื่อดาวน์โหลดฟีดของคุณ เช่น filter.nostr.wine ซึ่งจะแทนที่โมเดล outbox และทำให้แอปเชื่อมต่อเฉพาะ relay ในรายการของคุณ - Relays ที่เชี่ยวชาญในการส่งโน้ตของคุณไปยัง relay อื่นๆ ทั้งหมด เช่น sendit.nosflare.com Amethyst จะเพิ่ม relay นี้ในเหตุการณ์ใหม่ทั้งหมดที่คุณสร้าง - Relays ที่เชี่ยวชาญในการโฮสต์ข้อมูลเมตาและรายการ relay ของทุกคน เช่น purplepag.es Amethyst จะใช้ relay เหล่านี้เพื่อค้นหาผู้ใช้ที่ไม่ได้อยู่ในรายการของคุณ - Amethyst จะไม่เชื่อมต่อกับ relay เหล่านี้เด็ดขาด - ส่งออกการตั้งค่า relay เว็บไซน์ ภาพรวม เกี่ยวกับ ลิงก์ ผู้ดูแล หัวข้อ - Timestamp ถูกยืนยัน - มีหลักฐานว่าโพสต์นี้มีการลงนามก่อน %1$s หลักฐานถูกประทับตราใน Bitcoin blockchain ณ วันและเวลาดังกล่าว - แก้ไขโพสต์ - ไม่สามารถตอบกลับโน้ตฉบับร่างได้ - ไม่สามารถโควทโน้ตฉบับร่างได้ - ไม่สามารถกดรีแอคโน้ตฉบับร่างได้ - ไม่สามารถ zap โน้ตฉบับร่างได้ - โน๊ตฉบับร่าง - คำขอไม่ถูกต้อง - เซิร์ฟเวอร์ไม่สามารถหรือไม่ยอมดำเนินการตามคำขอ - ไม่ได้รับอนุญาต - ผู้ใช้ไม่มีข้อมูลประจำตัวการตรวจสอบที่ถูกต้อง - ต้องชำระเงิน - เซิร์ฟเวอร์ต้องการการชำระเงินเพื่อดำเนินการตามคำขอ - ไม่สามารถเข้าถึงได้ - ผู้ใช้ไม่มีสิทธิ์การเข้าถึงในการทำคำขอ - ไม่พบที่อยู่ - เซิร์ฟเวอร์ไม่สามารถหาที่อยู่ที่ขอได้ - วิธีการไม่อนุญาต - เซิร์ฟเวอร์รองรับวิธีการขอ แต่ไม่รองรับทรัพยากรเป้าหมาย - ไม่ยอมรับ - เซิร์ฟเวอร์ไม่พบเนื้อหาใดที่ตรงตามคำขอ - ต้องการการตรวจสอบพร็อกซี - ผู้ใช้ไม่มีข้อมูลประจำตัวการตรวจสอบที่ถูกต้อง - คำขอหมดเวลา - เซิร์ฟเวอร์หมดเวลารอคำตอบจากบุคคลอื่น - ความขัดแย้ง - เซิร์ฟเวอร์ไม่สามารถดำเนินการตามคำขอได้เนื่องจากมีความขัดแย้งกับทรัพยากร - ไม่พบ - เนื้อหาที่ร้องขอได้ถูกลบถาวรจากเซิร์ฟเวอร์และจะไม่ถูกกู้คืน - ต้องการความยาว - เซิร์ฟเวอร์ปฏิเสธคำขอเพราะต้องการความยาวที่กำหนดไว้ - ข้อกำหนดเบื้องต้นล้มเหลว - ข้อกำหนดเบื้องต้นของคำขอในฟิลด์หัวเรื่องที่เซิร์ฟเวอร์ไม่สามารถตอบสนองได้ - ข้อมูลขนาดใหญ่เกินไป - คำขอมีขนาดใหญ่กว่าขีดจำกัดที่เซิร์ฟเวอร์กำหนด และเซิร์ฟเวอร์ปฏิเสธที่จะดำเนินการ - URI ยาวเกินไป - URL ที่ร้องขอโดยไคลเอนต์ยาวเกินกว่าที่เซิร์ฟเวอร์จะดำเนินการได้ - ประเภทสื่อไม่รองรับ - คำขอใช้รูปแบบสื่อที่เซิร์ฟเวอร์ไม่รองรับ - จำนวนข้อมูลไม่เหมาะสม - เซิร์ฟเวอร์ไม่สามารถตอบสนองค่าที่ระบุในฟิลด์หัวเรื่องช่วงของคำขอได้ - การคาดหวังล้มเหลว - เซิร์ฟเวอร์ไม่สามารถตอบสนองข้อกำหนดที่ระบุในฟิลด์หัวเรื่องของคำขอ Expect - ต้องการการอัปเกรด - เซิร์ฟเวอร์ปฏิเสธที่จะดำเนินการตามคำขอโดยใช้โปรโตคอลปัจจุบัน เว้นแต่ไคลเอนต์จะอัปเกรดเป็นโปรโตคอลที่แตกต่าง - ข้อผิดพลาดภายในเซิร์ฟเวอร์ - เซิร์ฟเวอร์พบข้อผิดพลาดที่ไม่คาดคิดและไม่สามารถดำเนินการตามคำขอได้ - ไม่ไสามารถดำเนินการได้ - เซิร์ฟเวอร์ไม่สามารถตอบสนองคำขอหรือไม่รู้จักวิธีการขอ - Bad Gateway - เซิร์ฟเวอร์ทำหน้าที่เป็นเกตเวย์และได้รับการตอบกลับที่ไม่ถูกต้องจากโฮสต์ - บริการไม่พร้อมใช้งาน - มักเกิดขึ้นเมื่อเซิร์ฟเวอร์มีการใช้งานมากเกินไปหรือหยุดทำงานเพื่อบำรุงรักษา - Gateway หมดเวลา - เซิร์ฟเวอร์ทำหน้าที่เป็นเกตเวย์หรือพร็อกซีและหมดเวลารอการตอบกลับ - ไม่รองรับเวอร์ชัน HTTP - เซิร์ฟเวอร์ไม่รองรับเวอร์ชัน HTTP ที่อยู่ในคำขอ - เซิร์ฟเวอร์มีข้อผิดพลาดในการกำหนดค่าภายใน - พื้นที่จัดเก็บไม่เพียงพอ - เซิร์ฟเวอร์มีพื้นที่จัดเก็บไม่เพียงพอที่จะดำเนินการตามคำขอได้สำเร็จ - พบลูป - เซิร์ฟเวอร์ตรวจพบการวนลูปไม่สิ้นสุดขณะประมวลผลคำขอ - ต้องการการตรวจสอบเครือข่าย - ไคลเอนต์ต้องได้รับการตรวจสอบเพื่อเข้าถึงเครือข่าย เพิ่มเซิร์ฟเวอร์ได้มากเท่าที่ต้องการ คุณสามารถเลือกเซิร์ฟเวอร์ที่จะใช้ในภายหลังเมื่ออัปโหลดรูปภาพ - เพิ่ม เซิร์ฟเวอร์ NIP-96 - เพิ่ม Blossom Server ดาวน์โหลด - ไม่สามารถเปิดไฟล์ได้ - ไม่มีแอป torrent ติดตั้งเพื่อเปิดและดาวน์โหลดไฟล์ - เหตุการณ์ไม่มีข้อมูลเพียงพอในการสร้างลิงก์ magnet - รายการของฉัน - ฟีด - ชุดความสนใจ - สถานที่ - ชุมชน - รายการ - อัลกอริทึมฟีด - อัลกอริทึมฟีดโปรดทั้งหมด - อัลกอริทึมฟีดโปรด - ข้อความส่วนตัว - ข้อความสาธารณะ - ไม่สามารถแชร์รูปภาพได้ โปรดลองอีกครั้งในภายหลัง… - ไม่สามารถแชร์วิดีโอได้ โปรดลองอีกครั้งในภายหลัง… - กำลังดาวน์โหลดวิดีโอ… - ไม่แปลจาก - ภาษาที่แสดงที่นี่จะไม่ถูกแปล เลือกภาษาเพื่อลบออกและให้แปลอีกครั้ง - แปลเป็น - เลือกภาษาที่จะแปลเนื้อหาเป็น - การตั้งค่าการแสดงภาษา - สำหรับแต่ละคู่ภาษาที่แปล เลือกภาษาที่จะแสดงก่อน - หยุดชั่วคราว - เล่น - ข้อความนี้จะหายไปใน %1$s - ข้อมูลเมตาของรายการติดตาม - ข้อมูลเมตาของรายการติดตามสามารถดูได้โดยทุกคนบน Nostr โดยเฉพาะสมาชิกส่วนตัวของคุณที่จะถูกเข้ารหัส - ข้อมูลเมตาของ Follow Pack - ข้อมูลเมตาของ Follow Pack สามารถดูได้โดยทุกคนบน Nostr และมักถูกเผยแพร่บนเว็บไซต์ต่าง ๆ ในฐานะชุดเริ่มต้นสำหรับผู้ใช้ใหม่ - แก้ไข Follow Pack - ขยาย - ลองใหม่ - ปฏิกิริยา - โพสต์เสียง - ตอบกลับด้วยเสียง - การตั้งค่าผู้ใช้ - รายการบุ๊กมาร์ก - รายการบุ๊กมาร์กเก่า - นัดหมายรายวัน - ปฏิทิน - นัดหมาย - ประกาศ - ความคิดเห็น - การลบ - ฉบับร่าง - ข้อมูลทางการแพทย์ - ไฮไลต์ - บล็อก - ห้องประชุม - โปรไฟล์ - รูปภาพ - โหวต - รายงาน - โน้ต - การแก้ไข - วิดีโอ - เวลาทำงาน %1$d%% - การตั้งค่า Namecoin - การซิงค์ Relay - event จากคุณ - event ถึงคุณ - event ที่ค้นหาได้ - โปรไฟล์ - รายการ outbox - เห็นล่าสุด %1$s ที่ผ่านมา - เห็นล่าสุดเมื่อ %1$s (%2$s ที่ผ่านมา) - เห็นเมื่อสักครู่นี้ - ไม่เคยพบ - - %1$d นาที - - - %1$d ชั่วโมง - - - %1$d วัน - - - %1$d สัปดาห์ - - - %1$d เดือน - - - %1$d ปี - - - %1$d mint - - - %1$d ใบแจ้งหนี้ที่รอดำเนินการ - - - เงินทุนที่ถือครองที่ %1$d mint ที่คุณไม่ได้ใช้ - - ย้าย %1$s sat ไปยัง %2$s แล้ว - แคสต์ไปยังอุปกรณ์ - หยุดการแคสต์ - อัปโหลด HLS - กำลังอัปโหลด %1$s (%2$d จาก %3$d) - การรับรอง - คำขอการรับรอง - คำแนะนำจาก Attestor - ความเชี่ยวชาญของ Attestor - บุ๊กมาร์กเว็บ - เพิ่มบุ๊กมาร์กเว็บ - แก้ไขบุ๊กมาร์กเว็บ - ได้รับทุน %1$s จากเป้าหมาย %2$s sats - เป้าหมายใหม่ - คำขอให้ลบข้อมูล - ส่งคำขอให้ลบข้อมูลแล้ว - ประวัติการลบข้อมูล - ผู้ใช้ - กิจกรรม - ประเภท - การตั้งค่า - เสนอการปรับปรุงข้อความ - ใช้โมเดล AI บนอุปกรณ์เพื่อเสนอการแก้ไขข้อความและการเปลี่ยนแปลงโทนเสียง - การออกอากาศที่ติดตาม - ใช้ตัวออกอากาศที่ติดตามเมื่อส่งกิจกรรม แสดงความคืบหน้าสดและสถานะต่อ relay ขณะออกอากาศ - แนะนำการออกกำลังกายเพื่อแชร์ - อ่านการออกกำลังกายที่เสร็จสิ้นจาก Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) และแนะนำให้แชร์เป็นโพสต์ การอนุญาตจะถูกขอเฉพาะเมื่อคุณเชื่อมต่อ - การตั้งค่าการแต่ง - สร้างร่างโดยอัตโนมัติ - บันทึกกิจกรรมร่างโดยอัตโนมัติเมื่อคุณพิมพ์หรือออกจากตัวแต่งที่มีข้อความที่ยังไม่ได้ส่ง และส่งไปยัง relay outbox ส่วนตัวของคุณ - แพ็ค emoji ใหม่ - แก้ไขแพ็ค emoji - แพ็ค Emoji ของฉัน - Emoji - Emoji สาธารณะมองเห็นได้โดยทุกคนและปรากฏในเมนูรีแอคชันและตัวเลือก \":\" autocomplete ของคุณเมื่อแพ็คนี้อยู่ในรายการ emoji ของคุณ - Emoji ส่วนตัวถูกจัดเก็บแบบเข้ารหัสบน relay และมองเห็นได้เฉพาะคุณเท่านั้น Emoji เหล่านี้ปรากฏในเมนูรีแอคชันและ \":\" autocomplete เช่นเดียวกับ emoji สาธารณะ - ร่างมีขนาด %1$d ไบต์ ชุมชนนี้จำกัดประเภทนี้ไว้ที่ %2$d ไบต์ - ร่างมีขนาด %1$d ไบต์ ชุมชนนี้จำกัดกิจกรรมไว้ที่ %2$d ไบต์ - คุณโพสต์กิจกรรมประเภทนี้ไปแล้ว %1$d รายการในวันนี้ (จำกัด %2$d) - เว็บไซต์ Nowhere - กิจกรรม Nowhere - การระดมทุน Nowhere - ร้านค้า Nowhere - คำร้อง Nowhere - ข้อความ Nowhere - Drop ของ Nowhere - งานศิลปะ Nowhere - ฟอรัม Nowhere - - %1$d ข้อความ - - - %1$d สมาชิก - - อัปเดตข้อมูลกลุ่มแล้ว - ไม่สามารถอัปเดตได้: %1$s - ไม่สามารถสร้างกลุ่มได้: %1$s - ไม่สามารถออกจากกลุ่มได้: %1$s - กำลังเพิ่ม %1$s… - ไม่สามารถเพิ่ม %1$s: %2$s - ข้อผิดพลาดที่ไม่ทราบสาเหตุ - ลบสมาชิกออกแล้ว - ไม่สามารถลบสมาชิกได้: %1$s - มอบสิทธิ์ผู้ดูแลระบบแล้ว - ไม่สามารถมอบสิทธิ์ผู้ดูแลระบบได้: %1$s - เพิกถอนสิทธิ์ผู้ดูแลระบบแล้ว - ไม่สามารถเพิกถอนสิทธิ์ผู้ดูแลระบบได้: %1$s - ไม่ได้เป็นสมาชิกของกลุ่มนี้ บริการ Lightning ของ %1$s แลจะไม่พร้อมใช้งานจาก \"%2$s\". Error: %3$s. โปรดตรวจสอบผู้ให้บริการ หรือที่อยู่ Lightning ให้ถูกตต้อง เกิดข้อผิดพลาด %1$s. โปรดตรวจสอบเครือข่ายเน็ต และทบทวนว่า %2$s นั้นถูกต้อง\n\nข้อผิดพลาด : %3$s เกิดข้อผิดพลาดในการอ่านบิล JSON จาก %1$s โปรดตรวจสอบการตั้งค่า lightning diff --git a/amethyst/src/main/res/values-th/strings.xml b/amethyst/src/main/res/values-th/strings.xml index de0bb9d67c..493df747d1 100644 --- a/amethyst/src/main/res/values-th/strings.xml +++ b/amethyst/src/main/res/values-th/strings.xml @@ -1,286 +1,15 @@ - สแปม - สแปมอีเว้นถูกรับมาจาก relay นี้ - เลียนแบบ - พฤติกรรมที่ผิดกฎหมาย - ส่งคำขอให้ลบ - เข้าสู่ระบบด้วย private key เพื่อตอบกลับ - เข้าสู่ระบบด้วย private key เพื่อบูสโพสต์ - เข้าสู่ระบบด้วย private key เพื่อถูกใจโพสต์ - ไม่มีการตั้งค่าจำนวนเพื่อ zap กดค้างเพื่อตั้งค่า - เข้าสู่ระบบด้วย private key เพื่อส่ง zaps - เข้าสู่ระบบด้วย private key เพื่อติดตาม - เข้าสู่ระบบด้วย private key เพื่อเลิกติดตาม - เข้าสู่ระบบด้วย private key เพื่อเพิ่มการซ่อนข้อความ - เข้าสู่ระบบด้วย private key เพื่อแก้ไขการซ่อนข้อความ - Zaps - แชร์ แชร์ แก้ไข #%1$s - เสนอการแก้ไข - เพิ่ม - เกิดข้อผิดพลาดในการวิเคราะห์ข้อความแสดงข้อผิดพลาด - โปรไฟล์ - ตัวกรองความปลอดภัย - จ่าย - "รูปตัวอย่างสำหรับ %1$s" - รายละเอียด - คุณคิดอะไรอยู่ ? - โพสต์ บันทึก - สร้าง - ยกเลิก - ข้อผิดพลาด - บันทึกรูปภาพลงแกลเลอรี - เกิดข้อผิดพลาดในการบันทึกรูปภาพ - ผู้ใช้นี้ไม่ได้ตั้งค่า lightning address เพื่อรับ sats - "ตอบกลับที่นี่.. " - รู้ - ส่งคำขอใหม่ - ผู้ใช้ที่ถูกบล็อก - เธรดใหม่ - การสนทนา - ตัวเลือกเพิ่มเติม - ติดตาม - ติดตามกลับ - ซ่อนรหัสผ่าน - key ไม่ถูกต้อง - รหัสลับไม่ถูกต้อง: %1$s - ต้องป้อนรหัสผ่าน - ต้องใช้ key - ต้องระบุชื่อ - ออก - เลิกติดตาม - แชทสาธรณะ - ลบ - ไม่เคย - ตอนนี้ - ชม. - เดือน - วัน - ภาพเปลือย/สื่อลามก - คําหยาบคาย / คําพูดที่แสดงความเกลียดชัง - สำรองข้อมูลรหัสลับ - การเข้ารหัสคีย์ส่วนตัวของคุณล้มเหลว - คัดลอก Secret key (nsec) ลงคลิปบอร์ด - คัดลอก secret key ของฉัน - เกิดข้อผิดพลาดในการตรวจสอบ - เกิดข้อผิดพลาดจากการยืนยันตนด้วยชีวภาพ - เกิดข้อผิดพลาดจากการยืนยันตนด้วยชีวภาพ: Error: %1$s - คัดลอกข่้อความในโน้ตลงคลิปบอร์ด - คัดลอก @npub ของผู้เขียนลงคลิปบอร์ด - คัดลอกโน้ต ID (@note1)ลงคลิปบอร์ด - "<ไม่สามารถถอดรหัสข้อความส่วนตัวได้>\n\nคุณถูกอ้างถึงในการสนทนาส่วนตัว/เข้ารหัสระหว่าง %1$s และ %2$s." - บัญชี - ย้อนกลับ - แชร์ Browser Link - แชร์ - ID โน้ต - ลบ - - บล๊อก - บุ๊คมาร์ค - ฉบับร่าง - เพิ่มไปยังบุ๊คมาร์คสาธรณะ - ลบออกจากบุ๊คมาร์คสาธรณะ - ตัวเลือก %s - (0–100)% - ไม่สามารถโหวต - โพลปิดรับการลงคะแนนเพิ่มเติม - อนุญาตให้โหวตได้เพียงครั้งเดียวต่อผู้ใช้หนึ่งคนสำหรับการสำรวจประเภทนี้ - ผู้เขียนโพลล์ไม่สามารถลงคะแนนในโพล์ของตนเองได้ - หมายถึงอะไร? - เนื้อหานี้เหมือนเดิมตั้งแต่โพสต์ - เนื้อหามีการเปลี่ยนแปลง ผู้เขียนอาจไม่เห็นหรืออนุมัติการเปลี่ยนแปลง - เพิ่มรูปภาพ - เพิ่มวีดีโอ - เพิ่มเอกสาร - เซิร์ฟเวอร์เก็บข้อมูล - Media Servers ตั้งค่า media server ที่คุณต้องการ รายการค่าเริ่มต้นของ Amethyst คุณสามารถเพิ่มทีละรายการหรือเพิ่มทั้งรายการก็ได้ - ติดตามทั้งหมด - ทั่วโลก - รายการผู้ถูกปิดกั้น - Port เริ่มต้นคือ 9050 - พอร์ต Orbot Socks - DM Relays - ปิด - ค่าเริ่มต้น - ปรับแต่ง - ซ่อน IP ของคุณจากทุกอย่าง ยกเว้นรูปภาพและวิดีโอ - ซ่อน IP ของคุณจากทุกการเชื่อมต่อ - ข้อความส่วนตัว - แจ้งเตือนฉันเมื่อข้อความส่วนตัวมาถึง - ได้รับ Zaps - แจ้งเตือนเมื่อมีคน zaps - %1$s sats - จาก %1$s - ถึง %1$s - การแจ้งเตือน: - วันนี้ - ไม่มีการเลือกประเภทของ reaction กดค้างเพื่อเปลี่ยน - อ่านจาก Relay - เขียนบน Relay - จำนวนข้อมูลในหน่วยไบต์ที่ถูกส่งไปยังรีเลย์นี้ รวมถึงฟิลเตอร์และอีเว้นต่างๆ - จำนวนข้อมูลในหน่วยไบต์ที่ถูกรับมาจากรีเลย์นี้ รวมถึงฟิลเตอร์และอีเว้นต่างๆ - โทเคน Cashu - ไม่ได้ตั้งค่า Lightning Address - รีเลย์ - ตลาด - ช่องสนทนา - เนื้อหาที่ละเอียดอ่อน - เพิ่มการแจ้งเตือนเนื้อหาที่ละเอียดอ่อนก่อนโชว์เนื้อหานี้ - การตั้งค่า - ตลอดเวลา - Unmetered WiFi - ไม่ต้องแสดง - เสร็จสมบูรณ์ - Simplified - Performance - ระบบ(ค่าพื้นฐาน) - สว่าง - มืด - ธีม - ภาพตัวอย่าง - การเล่นวิดีโอ - การแสดงตัวอย่าง URL - การไถฟีดแบบลื่นไหล - ซ่อนแถบเมนูขณะเลื่อนฟีด - UI Mode - เลือกรูปแบบการโพสต์ - แสปม - ปิดการมองเห็น คลิกเพื่อปลดออก - เปิดการมองเห็นอยู่ คลิกเพื่อปิด สาธรณะ ส่วนตัว - ชื่อเรื่อง - ธีม: มืด, สว่าง หรือระบบ - โหลดรูปภาพและ GIFs โดยอัตโนมัติ - เล่นวีดีโอและ GIFs โดยอัตโนมัติ - แสดงจัวอย่าง URL - คัดลอก - แชร์ หรือเก็บไว้ - แย่จัง ส่ง Zaps ไม่ได้ - ไม่พบการตั้งค่า Lightning - ผู้ใช้ %1$s ไม่ได้ตั้งค่า lightning address เพื่อรับ sats - เกิดข้อผิดพลาดในการเปิดแอพเข้ารหัส - ไม่พบแอพที่สามารถช่วยเข้ารหัส หรือ signer โปรดตรวจดูอีกครั้งว่าได้ติดตั้งแอพแล้ว - โปรดตรวจสอบให้แน่ใจว่าแอพเข้ารหัส หรือ Signer ได้อนุญาติทำรายการนี้ - ไม่พบกระเป๋า Lightning (Error: %1$s) โปรดติดตั้งแอพกระเป๋า Lightning ก่อน - ไม่พบกระเป๋า Lightning โปรดติดตั้งแอพกระเป๋า Lightning ก่อน - คำต้องห้าม - รูปโปรไฟล์ - แสดงรูปโปรไฟล์ - ไม่สามารถชำระได้ - ไม่สามารถถอนได้ - ไม่สามารถใช้งาน Cashu - ผู้ให้บริการ Mint เกิดข้อผิดพลาด : %1$s - ได้รับ Cashu - %1$s sats ถูกส่งไปยังกระเป๋าของคุณ. (ค่าธรรมเนียม: %2$s sats) - ไม่พบกระเป๋า Cashu ที่รองรับ - ไม่สามารถสร้างบิลจากเซอเวอร์ของผู้รับเงินได้ - เกิดข้อผิดพลาดจากบริการกระเป๋า Lightning : %1$s - ไม่สามารถสร้าง LNUrl จากที่อยู่ Lightning ได้ \"%1$s\" โปรดตรวจสอบการตั้งค่า - เกิดข้อผิดพลาดในการอ่าน JSON จาก %1$s. โปรดตรวจสอบการตั้งค่า Lightning - ไม่พบที่อยู่ URL จาก %1$s - จำนวนที่ต้องชำระไม่ถูกต้อง (%1$s sats) จาก %2$s. มันควรจะเป็น %3$s - ไม่สามารถสร้างบิลชำระในการส่ง zap ได้ โดยเกิดข้อผิดพลาด %1$s จากกระเป๋าของผู้รับ - ดูอย่างเดียว - ไม่มีรายการ reaction - ข้อความจาก %1$s - สวัสดี! ยังมี %1$s อยู่ไหม? - เสื้อผ้า - อุปกรณ์เสริม - เครื่องใช้ไฟฟ้า - เฟอร์นิเจอร์ - ของสะสม - หนังสือ - สัตว์เลี้ยง - กีฬา - ฟิตเนส - ศิลปะ - งานฝีมือ - บ้าน - สำนักงาน - อาหาร - เบ็ดเตล็ด - อื่นๆ - ไม่สามารถโหลดสื่อได้ - ไม่สามารถเปิดดูข้อมูลที่ถูกบีบอัดได้ - เกิดข้อผิดพลาดขณะอัพโหลด: %1$s - เซอเวอร์ไม่ตอบสนองหลังจากอัพโหลดแล้ว - ไม่สามารถโหลดข้อมูลสื่อได้ - การลบล้มเหลว: %1$s - สื่อชิ้นนี้ใหญ่เกินไปสำหรับ NIP-95 - หน้าแรก - สำรวจ - ข้อความ - การแจ้งเตือน - แสดง Reactions ทั้งหมด - ปิดการสดง Reactions - Zap - ที่อยู่ไม่ถูกต้อง - Amethyst ได้รับ URI แต่ URI นั้นไม่ถูกต้อง: %1$s - รีเลย์ขาเข้าของ DM - ค้นหารีเลย์ - ตัวเลือกที่ดี ได้แก่:\n%1$s - ตั้งค่ารีเลย์ - รีเลย์สาธารณะสำหรับหน้า Home - รีเลย์ประเภทนี้จะเก็บเนื้อหาทั้งหมดของคุณ Amethyst จะส่งโพสต์ของคุณไปยังรีเลย์เหล่านี้ และคนอื่น ๆ จะใช้รีเลย์เหล่านี้เพื่อค้นหาเนื้อหาของคุณ ใส่รีเลย์ 1–3 ตัว ซึ่งสามารถเป็นรีเลย์ส่วนตัว รีเลย์ที่ต้องเสียค่าบริการ หรือรีเลย์สาธารณะก็ได้ - รีเลย์ขาเข้าสาธารณะ - รีเลย์ประเภทนี้จะรับการตอบกลับ ความคิดเห็น การถูกใจ และการส่ง \"zap\" ทั้งหมดไปยังโพสต์ของคุณ ใส่รีเลย์ 1–3 ตัว และตรวจสอบให้แน่ใจว่ารีเลย์เหล่านี้ยอมรับโพสต์จากทุกคน - รีเลย์ขาเข้าของ DM - ใส่รีเลย์ 1–3 ตัวเพื่อทำหน้าที่เป็นกล่องขาเข้าส่วนตัวของคุณ คนอื่นจะใช้รีเลย์เหล่านี้ในการส่งข้อความ DM ถึงคุณ รีเลย์กล่องขาเข้า DM ควรยอมรับข้อความจากทุกคน แต่อนุญาตให้คุณดาวน์โหลดได้เท่านั้น ตัวเลือกที่ดี ได้แก่:\n - inbox.nostr.wine (เสียค่าบริการ)\n - you.nostr1.com (รีเลย์ส่วนตัว - เสียค่าบริการ) - รีเลย์ส่วนตัว - ใส่รีเลย์ 1–3 ตัวเพื่อเก็บเหตุการณ์ที่ไม่มีใครสามารถเห็นได้ เช่น ร่างโพสต์ และการตั้งค่าแอปของคุณ รีเลย์เหล่านี้ควรเป็นรีเลย์ภายในเครื่องหรือรีเลย์ที่ต้องมีการยืนยันตัวตนก่อนที่จะดาวน์โหลดเนื้อหาของผู้ใช้แต่ละคน - ค้นหารีเลย์ - รายการรีเลย์ที่จะใช้เมื่อค้นหาข้อมูลหรือผู้ใช้ การแท็กและการค้นหาจะไม่ทำงานหากไม่มีตัวเลือก ตรวจสอบให้แน่ใจว่ารีเลย์เหล่านี้รองรับ NIP-50 - รีเลย์ในพื้นที่ของคุณ - รายการรีเลย์ที่กำลังทำงานอยู่ในอุปกรณ์นี้ เว็บไซน์ - Timestamp ถูกยืนยัน - มีหลักฐานว่าโพสต์นี้มีการลงนามก่อน %1$s หลักฐานถูกประทับตราใน Bitcoin blockchain ณ วันและเวลาดังกล่าว - แก้ไขโพสต์ - ไม่สามารถตอบกลับโน้ตฉบับร่างได้ - ไม่สามารถโควทโน้ตฉบับร่างได้ - ไม่สามารถกดรีแอคโน้ตฉบับร่างได้ - ไม่สามารถ zap โน้ตฉบับร่างได้ - โน๊ตฉบับร่าง - คำขอไม่ถูกต้อง - เซิร์ฟเวอร์ไม่สามารถหรือไม่ยอมดำเนินการตามคำขอ - ไม่ได้รับอนุญาต - ผู้ใช้ไม่มีข้อมูลประจำตัวการตรวจสอบที่ถูกต้อง - ต้องชำระเงิน - เซิร์ฟเวอร์ต้องการการชำระเงินเพื่อดำเนินการตามคำขอ - ไม่สามารถเข้าถึงได้ - ผู้ใช้ไม่มีสิทธิ์การเข้าถึงในการทำคำขอ - ไม่พบที่อยู่ - เซิร์ฟเวอร์ไม่สามารถหาที่อยู่ที่ขอได้ - วิธีการไม่อนุญาต - เซิร์ฟเวอร์รองรับวิธีการขอ แต่ไม่รองรับทรัพยากรเป้าหมาย - ไม่ยอมรับ - เซิร์ฟเวอร์ไม่พบเนื้อหาใดที่ตรงตามคำขอ - ต้องการการตรวจสอบพร็อกซี - ผู้ใช้ไม่มีข้อมูลประจำตัวการตรวจสอบที่ถูกต้อง - คำขอหมดเวลา - เซิร์ฟเวอร์หมดเวลารอคำตอบจากบุคคลอื่น - ความขัดแย้ง - เซิร์ฟเวอร์ไม่สามารถดำเนินการตามคำขอได้เนื่องจากมีความขัดแย้งกับทรัพยากร - ไม่พบ - เนื้อหาที่ร้องขอได้ถูกลบถาวรจากเซิร์ฟเวอร์และจะไม่ถูกกู้คืน - ต้องการความยาว - เซิร์ฟเวอร์ปฏิเสธคำขอเพราะต้องการความยาวที่กำหนดไว้ - ข้อกำหนดเบื้องต้นล้มเหลว - ข้อกำหนดเบื้องต้นของคำขอในฟิลด์หัวเรื่องที่เซิร์ฟเวอร์ไม่สามารถตอบสนองได้ - ข้อมูลขนาดใหญ่เกินไป - คำขอมีขนาดใหญ่กว่าขีดจำกัดที่เซิร์ฟเวอร์กำหนด และเซิร์ฟเวอร์ปฏิเสธที่จะดำเนินการ - URI ยาวเกินไป - URL ที่ร้องขอโดยไคลเอนต์ยาวเกินกว่าที่เซิร์ฟเวอร์จะดำเนินการได้ - ประเภทสื่อไม่รองรับ - คำขอใช้รูปแบบสื่อที่เซิร์ฟเวอร์ไม่รองรับ - จำนวนข้อมูลไม่เหมาะสม - เซิร์ฟเวอร์ไม่สามารถตอบสนองค่าที่ระบุในฟิลด์หัวเรื่องช่วงของคำขอได้ - การคาดหวังล้มเหลว - เซิร์ฟเวอร์ไม่สามารถตอบสนองข้อกำหนดที่ระบุในฟิลด์หัวเรื่องของคำขอ Expect - ต้องการการอัปเกรด - เซิร์ฟเวอร์ปฏิเสธที่จะดำเนินการตามคำขอโดยใช้โปรโตคอลปัจจุบัน เว้นแต่ไคลเอนต์จะอัปเกรดเป็นโปรโตคอลที่แตกต่าง - ข้อผิดพลาดภายในเซิร์ฟเวอร์ - เซิร์ฟเวอร์พบข้อผิดพลาดที่ไม่คาดคิดและไม่สามารถดำเนินการตามคำขอได้ - ไม่ไสามารถดำเนินการได้ - เซิร์ฟเวอร์ไม่สามารถตอบสนองคำขอหรือไม่รู้จักวิธีการขอ - Bad Gateway - เซิร์ฟเวอร์ทำหน้าที่เป็นเกตเวย์และได้รับการตอบกลับที่ไม่ถูกต้องจากโฮสต์ - บริการไม่พร้อมใช้งาน - มักเกิดขึ้นเมื่อเซิร์ฟเวอร์มีการใช้งานมากเกินไปหรือหยุดทำงานเพื่อบำรุงรักษา - Gateway หมดเวลา - เซิร์ฟเวอร์ทำหน้าที่เป็นเกตเวย์หรือพร็อกซีและหมดเวลารอการตอบกลับ - ไม่รองรับเวอร์ชัน HTTP - เซิร์ฟเวอร์ไม่รองรับเวอร์ชัน HTTP ที่อยู่ในคำขอ - เซิร์ฟเวอร์มีข้อผิดพลาดในการกำหนดค่าภายใน - พื้นที่จัดเก็บไม่เพียงพอ - เซิร์ฟเวอร์มีพื้นที่จัดเก็บไม่เพียงพอที่จะดำเนินการตามคำขอได้สำเร็จ - พบลูป - เซิร์ฟเวอร์ตรวจพบการวนลูปไม่สิ้นสุดขณะประมวลผลคำขอ - ต้องการการตรวจสอบเครือข่าย - ไคลเอนต์ต้องได้รับการตรวจสอบเพื่อเข้าถึงเครือข่าย - เพิ่ม เซิร์ฟเวอร์ NIP-96 ดาวน์โหลด - ไม่สามารถเปิดไฟล์ได้ บริการ Lightning ของ %1$s แลจะไม่พร้อมใช้งานจาก \"%2$s\". Error: %3$s. โปรดตรวจสอบผู้ให้บริการ หรือที่อยู่ Lightning ให้ถูกตต้อง เกิดข้อผิดพลาด %1$s. โปรดตรวจสอบเครือข่ายเน็ต และทบทวนว่า %2$s นั้นถูกต้อง\n\nข้อผิดพลาด : %3$s เกิดข้อผิดพลาดในการอ่านบิล JSON จาก %1$s โปรดตรวจสอบการตั้งค่า lightning @@ -289,37 +18,6 @@ - ปักหมุดที่โปรไฟล์ - - เลิกปักหมุดจากโปรไฟล์ - - - - - - - รายการบุ๊กมาร์กใหม่ - - ข้อมูลเมตาของรายการบุ๊กมาร์ก - - - - - - - ชุดแฮชแท็ก - - - - ชุดความสนใจใหม่ - - - - - - - - เปลี่ยนชื่อ @@ -337,13 +35,33 @@ - ทำให้เป็นส่วนตัว: gift-wrap โน้ตไปยังผู้ใช้ที่ได้รับการแจ้งเตือนเท่านั้น - ทำให้เป็นสาธารณะ - การตอบกลับโน้ตส่วนตัวจะเป็นส่วนตัวเสมอ - มองเห็นได้โดย + + + + + + + + + + + + + + + + + + + + + + + + ยังไม่มีผู้รับ: เฉพาะคุณเท่านั้นที่จะเห็นโน้ตนี้ เพิ่มผู้คนเพื่อแชร์ @@ -359,31 +77,6 @@ - ข้อมูลเมตาของรายการบุ๊กมาร์กสามารถถูกดูได้โดยทุกคนบน Nostr เฉพาะสมาชิกส่วนตัวของคุณเท่านั้นที่ถูกเข้ารหัส - - ย้ายไปสาธารณะ - - ย้ายไปส่วนตัว - - - - - - - - - - - - - - เติมและส่ง zap - - ส่ง zap - - - - เติม %1$s sats ไปยัง %2$s และ zap %3$s %4$s sats · ค่าธรรมเนียม ≈ %5$s sats @@ -398,14 +91,6 @@ - ตัวเลือกเดียว - - หลายตัวเลือก - - - - - เพิ่มสื่อ @@ -413,7 +98,30 @@ - เลือกเซิร์ฟเวอร์เพื่ออัปโหลดไฟล์นี้ + + + + + + + + + + + + + + + + + + + + + + + + @@ -424,20 +132,15 @@ เซิร์ฟเวอร์สื่อที่แนะนำ - เป้าหมายการชำระเงิน - เพิ่มที่อยู่การชำระเงินสำหรับเครือข่ายต่างๆ (เช่น bitcoin, lightning, ethereum) - ไม่พบแอปสำหรับการชำระเงินนี้ กรุณาติดตั้งกระเป๋าเงินที่รองรับ - ไม่มีแอปที่ติดตั้งสำหรับการชำระเงิน %1$s กรุณาติดตั้งกระเป๋าเงินที่รองรับ - ไม่สามารถเปิดการชำระเงินได้ @@ -447,19 +150,13 @@ - ตัวเลือกความเป็นส่วนตัว - การติดตามผู้ใช้ทั้งหมด - รายการติดตามเริ่มต้น - รอบตัวฉัน - คัดสรร - ของฉัน @@ -474,9 +171,7 @@ - รายการติดตามใหม่ - Follow Pack ใหม่ @@ -490,176 +185,63 @@ - แก้ไขรายการ - เครื่องยนต์ Tor ที่ใช้งานอยู่ - ใช้เวอร์ชันภายในหรือ Orbot - การตั้งค่า Tor/ความเป็นส่วนตัว - แก้ไขการตั้งค่าทั้งหมดด้านล่างอย่างรวดเร็ว - URL/Relays แบบ Onion - ใช้ Tor สำหรับ URL แบบ .onion - บังคับให้ Tor ส่งและรับ DM - Relay ที่ไม่น่าเชื่อถือ - บังคับให้ Tor ใช้ relay outbox/inbox - Relay ที่น่าเชื่อถือ - บังคับให้ Tor ใช้ relay ทั้งหมดในรายการของคุณ - รูปโปรไฟล์ - บังคับให้ Tor เมื่อโหลดรูปโปรไฟล์ - ตัวอย่าง URL - บังคับให้ Tor เมื่อโหลดตัวอย่าง URL - รูปภาพ - บังคับให้ Tor เมื่อโหลดรูปภาพ - วิดีโอ - บังคับให้ Tor เมื่อโหลดวิดีโอ - การดำเนินการเงิน - บังคับให้ Tor ใช้กับ zap, Lightning และการโอน Cashu - การยืนยันที่อยู่ Nostr - บังคับให้ Tor เมื่อยืนยันที่อยู่ NIP-05 - การอัปโหลดสื่อ - บังคับให้ Tor เมื่ออัปโหลดเนื้อหา - ภายใน - Orbot - พื้นฐาน - ทุกอย่างยกเว้นสื่อ - ความเป็นส่วนตัวเต็มรูปแบบ - ใช้ Tor เมื่อเซิร์ฟเวอร์ต้องการ - ซ่อน IP ของคุณจาก relay ทั่วไป - ตั้งค่าเอง - ตอบกลับ - ทำเครื่องหมายอ่านแล้ว - ข้อความใหม่ - Zap ใหม่ - ปฏิกิริยา - แจ้งเตือนเมื่อมีคนตอบสนองต่อโพสต์ของคุณ - %1$s ตอบสนองต่อโพสต์ของคุณ - สำหรับ %1$s - ปฏิกิริยาใหม่ - หมากรุก - แจ้งเตือนเกี่ยวกับเหตุการณ์ในเกมหมากรุก - %1$s ยอมรับการท้าทายหมากรุกของคุณ - %1$s เดินแล้ว — ถึงตาคุณ - อัปเดตหมากรุก - การตอบกลับ - แจ้งเตือนเมื่อมีคนตอบกลับโพสต์ของคุณ %1$s ตอบกลับ เกี่ยวกับ: %1$s - การตอบกลับใหม่ - - การกล่าวถึง - - แจ้งเตือนเมื่อมีคนกล่าวถึงหรืออ้างอิงคุณในโพสต์ - - %1$s กล่าวถึงคุณ - - การกล่าวถึงใหม่ - - สายเรียกเข้า - - การแจ้งเตือนสำหรับสายโทรด้วยเสียงและวิดีโอที่เข้ามา - - สายเรียกเข้า - - สายโทรด้วยเสียงเข้ามา… - - สายโทรด้วยวิดีโอเข้ามา… - - - - - โทรกับ %1$s - - การโทร - - การแจ้งเตือนการโทรที่กำลังดำเนินอยู่ - - วางสาย - - รับสาย - - ปฏิเสธ - - - ปิดเสียง - - เปิดเสียง - - เปิดกล้อง - - ปิดกล้อง - - - ลำโพง - - หูฟัง - - Bluetooth - - - - - - - Amethyst ต้องการสิทธิ์เข้าถึงไมโครโฟนเพื่อเริ่มการโทรด้วยเสียง โปรดเปิดใช้งานในการตั้งค่าแอป - - Amethyst ต้องการสิทธิ์เข้าถึงกล้องและไมโครโฟนเพื่อเริ่มการโทรด้วยวิดีโอ โปรดเปิดใช้งานในการตั้งค่าแอป - - - - การตั้งค่าการโทร @@ -675,31 +257,55 @@ - รักษาการเชื่อมต่อกับ relay กล่องข้อความของคุณให้ใช้งานได้เพื่อรับการแจ้งเตือนแบบเรียลไทม์ - การแจ้งเตือน Amethyst ใช้งานอยู่ - - เชื่อมต่อกับ %1$d inbox relay แล้ว - - - เชื่อมต่อกับ %1$d relay แล้ว - - กำลังเชื่อมต่อกับ inbox relay… + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + บริการแจ้งเตือนแบบถาวร รักษาการเชื่อมต่อถาวรกับ inbox relay ของคุณเพื่อการส่งการแจ้งเตือนแบบทันที แสดงการแจ้งเตือนที่กำลังดำเนินอยู่ ใช้แบตเตอรี่มากขึ้น แต่รับประกันว่าคุณจะไม่พลาดข้อความ - แยกการแจ้งเตือนตามผู้ที่ติดตาม - แสดงแท็บการแจ้งเตือนสองแท็บ — กำลังติดตาม (คนที่คุณติดตาม) และทุกคน ตัวบ่งชี้ที่ยังไม่ได้อ่านจะเรืองแสงเฉพาะสำหรับกิจกรรมจากคนที่คุณติดตาม - แสดงข้อความ - รวมข้อความส่วนตัวและกลุ่มในแท็บการแจ้งเตือน ปิดเพื่อเก็บข้อความไว้เฉพาะในแท็บข้อความ @@ -707,23 +313,14 @@ - ซ่อน - แสดง - เตือน - กรองสแปม - ซ่อนโพสต์จากคนแปลกหน้าที่มีเนื้อหาเหมือนกันตั้งแต่ 5 ครั้งขึ้นไป - เพิ่มแท็กไคลเอนต์ในกิจกรรมของฉัน - เมื่อเปิดใช้งาน Amethyst จะเพิ่มแท็กไคลเอนต์ NIP-89 ในกิจกรรมที่คุณเผยแพร่ - เตือนเมื่อมีรายงาน - แสดงข้อความเตือนเมื่อโพสต์หรือโปรไฟล์มีรายงานจากคนที่คุณติดตาม @@ -731,20 +328,13 @@ - ซ่อนโพสต์ที่ละเมิดกฎของชุมชน - ลบโพสต์ออกจากฟีดชุมชนเมื่อชุมชนเผยแพร่เอกสารกฎ NIP-9B และกิจกรรมไม่ผ่านกฎนั้น ไม่มีผลเมื่อชุมชนไม่มีกฎที่มีโครงสร้าง - การตั้งค่าการกรอง - เนื้อหาที่ถูกบล็อก - คุณยังไม่ได้บล็อกผู้ใช้ใดเลย - ไม่มีบัญชีที่ถูกระบุว่าเป็นสแปมในเซสชันนี้ - ไม่มีคำที่ซ่อนอยู่ เพิ่มคำด้านล่างเพื่อซ่อนโพสต์ที่มีคำนั้น @@ -759,12 +349,9 @@ - นโยบายความเป็นส่วนตัว - มาตรฐานความปลอดภัยของเด็ก - เกี่ยวกับและข้อมูลทางกฎหมาย @@ -812,108 +399,69 @@ - Follow Packs - การอ่าน - อัลกอริทึมฟีด - สตรีมสด - ชุมชน - การตั้งค่า UI การตั้งค่าแอป - การแปลภาษา - - ปฏิกิริยา - - การตั้งค่าบัญชี - - การตั้งค่าแอป - - - - เขตอันตราย - - รีเซ็ตสถานะ Marmot - - - - - รีเซ็ตสถานะ Marmot แล้ว - - ไม่สามารถรีเซ็ตสถานะ Marmot ได้: %1$s - - คลาสสิก - - ทันสมัย - - Wallet Connect - - เล่นวิดีโออัตโนมัติ - - สไตล์แกลเลอรีโปรไฟล์ - - เลือกสไตล์แกลเลอรี - - - ย้อนกลับ %d วินาที - - ข้ามไปข้างหน้า %d วินาที - - - - โพสต์เฉพาะตำแหน่งที่ตั้ง - - เฉพาะผู้ติดตามตำแหน่งนั้นเท่านั้นที่จะเห็น ผู้ติดตามทั่วไปของคุณจะไม่เห็น - - %1$d แทร็ก - - - +%1$d แทร็กเพิ่มเติม - + + + + + + + + + + + + + + + + + + + + + + + + + - อัปโหลดรูปภาพปก - - เลือกรูปภาพสี่เหลี่ยมจัตุรัสเพื่อใช้เป็นอาร์ตเวิร์กของแทร็กนี้ - - อัปโหลดไฟล์เสียง - - เลือกไฟล์ MP3, WAV หรือ FLAC ระบบจะอัปโหลดไปยังเซิร์ฟเวอร์มีเดียของคุณเมื่อบันทึก - - - กำลังอัปโหลดปกและเสียง และเผยแพร่ ระบบจะดำเนินการต่อแม้คุณออกจากหน้าจอ - - แก้ไขเพลย์ลิสต์ - อัปโหลดรูปภาพปก - - เลือกรูปภาพสี่เหลี่ยมจัตุรัสเพื่อใช้เป็นอาร์ตเวิร์กของเพลย์ลิสต์นี้ - กำลังอัปโหลดปกและเผยแพร่ ระบบจะดำเนินการต่อแม้คุณออกจากหน้าจอ + + + + + + + @@ -924,120 +472,71 @@ กลุ่ม - อัปโหลดไม่ได้ - - กรุณาระบุปลายทางของข้อความก่อน - - ไม่พบกระเป๋าเงิน - - Amethyst ไม่พบแอปกระเป๋าเงินที่รองรับ Nostr Wallet Connect (NWC) -\n\nสิ่งที่คุณทำได้: -\n\t1. ตรวจสอบการรองรับ NWC: ตรวจสอบอีกครั้งว่าแอปกระเป๋าเงินที่คุณต้องการใช้รองรับ Nostr Wallet Connect หรือไม่ -\n\t2. สร้างการเชื่อมต่อ: ไปที่แอปกระเป๋าเงินของคุณและสร้างการเชื่อมต่อ NWC ใหม่ -\n\t3. เชื่อมกับ Amethyst: กระเป๋าเงินของคุณมักจะให้ตัวเลือกสามแบบ: -\n\t\t3.1 ลิงก์อัตโนมัติ: ปุ่มเพื่อเปิดและเชื่อมต่อกับ Amethyst โดยอัตโนมัติ หากมี ให้กดปุ่มนั้น เปิด Amethyst และกดบันทึกที่หน้าจอใหม่ -\n\t\t3.2 ลิงก์ด้วยตนเอง: URI การเชื่อมต่อที่คุณสามารถคัดลอกและกดไอคอนวางบนหน้าจอนี้เพื่อป้อนโดยตรง -\n\t\t3.3 QR Code: กระเป๋าเงินสร้าง QR Code ที่คุณสามารถอ่านได้จากปุ่ม QR code ในหน้าจอนี้ - - - เล่นวิดีโออัตโนมัติเมื่อมองเห็นบนหน้าจอ - คัดลอกไปยังคลิปบอร์ดแล้ว + + + + ส่งเป็น DM - เพิ่มสื่อแล้ว - เพิ่มสื่อในแกลเลอรีโปรไฟล์ของคุณแล้ว - ไม่สามารถเล่นวิดีโอนี้ได้ - codec หรือรูปแบบไม่รองรับบนอุปกรณ์นี้ (%1$s) ลองเปิดในเบราว์เซอร์ของคุณ - เปิดในเบราว์เซอร์ - คำขอลงชื่อถูกปฏิเสธ - ไม่สามารถเปิดลิงก์ Blossom ได้ - ไม่พบแอป Blossom กรุณาติดตั้งแอป Blossom ในเครื่องเพื่อดูไฟล์นี้ - เธรดที่ปิดเสียง - ไม่มีเธรดที่ปิดเสียง - ไม่สามารถดึงใบแจ้งหนี้จาก %1$s: %2$s - การแจ้งเตือน - การส่ง - การแสดงผลในแอป - หมวดหมู่ - ไม่สามารถตรวจสอบไฟล์ที่ดาวน์โหลดหลังจากอัปโหลด: %1$s - อัปโหลดไปยัง %1$s ล้มเหลว: %2$s - เข้ารหัสไฟล์ - เข้ารหัสไฟล์ก่อนอัปโหลดเพื่อความเป็นส่วนตัว บางเซิร์ฟเวอร์อาจไม่รับไฟล์ที่เข้ารหัสในบัญชีฟรี - การอัปโหลดแบบเข้ารหัสล้มเหลว - เซิร์ฟเวอร์หลายแห่งไม่รับไฟล์ที่เข้ารหัสในบัญชีฟรี คุณสามารถลองใหม่โดยไม่เข้ารหัส - ใช้ Codec H.265/HEVC - คุณภาพดีกว่าที่ขนาดไฟล์เล็กกว่า แต่ไม่ใช่ทุกอุปกรณ์รองรับการเล่น H.265 - แปลง GIF เป็น MP4 - แปลง GIF เคลื่อนไหวเป็นวิดีโอ MP4 เพื่อลดขนาดไฟล์และเพิ่มความเข้ากันได้ในการเล่น - ลบข้อมูลเมตาส่วนตัว - พยายามลบข้อมูลเมตาส่วนตัวออกจากไฟล์มีเดียที่รองรับก่อนอัปโหลด - ไม่สามารถลบข้อมูลเมตาได้ - ไม่สามารถลบข้อมูลเมตาส่วนตัวออกจากสื่อได้ ยกเลิกการอัปโหลดแล้ว - ยกเลิกการอัปโหลดแล้ว - ไม่สามารถลบข้อมูลเมตาจาก AVIF: %1$s - ปฏิทิน - รายการปฏิทิน - หมากรุก - กระเป๋าเงิน @@ -1075,7 +574,6 @@ - กระเป๋าเงิน Cashu (NIP-60) @@ -1097,56 +595,11 @@ คีย์ส่วนตัว P2PK (hex) - แก้ไข mints บันทึกการเปลี่ยนแปลง - - +%1$d เพิ่มเติม - - - - แนะนำโดย %1$d คน - - - Mints ยอดนิยม - - Mints ที่ตรงกัน - - - - - - - - - - - - - - รับแล้ว - - ส่งแล้ว - - - - - - - - - - เผยแพร่คำขอลบคำแนะนำ kind:38000 ของ %1$s ของคุณ relay ที่รองรับ NIP-09 จะลบออก - - - - - - - กู้คืนได้ %1$s sats จาก %2$s proof @@ -1170,28 +623,53 @@ - จ่าย %1$s sat + สูงสุด %2$s sat ในค่าธรรมเนียมใช่หรือไม่? - Nutzap ล้มเหลว + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - ไม่มี pubkey ผู้รับในโน้ตนี้ - nutzap เป็นแบบสาธารณะและจะเปิดเผยโน้ตส่วนตัวนี้ ใช้ Lightning zap แทน - ไม่สามารถสร้างการอ้างอิง event ได้ - รอการชำระใบแจ้งหนี้… - กำลังตรวจสอบ mint… @@ -1227,38 +705,19 @@ - ช้า - ปกติ - เร็ว - ~1 ชั่วโมง - ~30 นาที - ~10 นาที - %1$s · %2$s sat/vB · %3$s - - ส่ง %1$s sats, %2$d ทาง - - - ใช้การแบ่ง zap %1$d ทางของโน้ตนี้ - - - แบ่งให้ %1$d ผู้รับ - - - ข้าม %1$d ผู้รับที่มีแต่ Lightning address — on-chain ต้องการ Nostr pubkey เพื่อสร้างที่อยู่ - @@ -1270,60 +729,34 @@ - กำลังโหลดยอดคงเหลือ - กำลังสร้างธุรกรรม - กำลังเซ็น - กำลังกระจาย - กำลังเผยแพร่ใบเสร็จ - ไม่ได้ตั้งค่า Bitcoin chain backend ไว้ - ไม่สามารถโหลดยอด Bitcoin ของคุณได้ - ไม่สามารถสร้างธุรกรรมได้ - ส่วนแบ่งของผู้รับต่ำกว่าเกณฑ์ขั้นต่ำ - ไม่สามารถเซ็นธุรกรรมได้ - ไม่สามารถกระจายธุรกรรมได้ - ส่งการชำระเงินแล้ว แต่ไม่สามารถเผยแพร่ใบเสร็จ zap ได้ - - ส่งการชำระเงินแล้ว (เผยแพร่ %1$d จาก %2$d ใบเสร็จ) แต่ไม่สามารถเผยแพร่ใบเสร็จถัดไปได้ - - นำเข้ารายการที่ติดตาม - สินค้าใหม่ - บทความใหม่ - กิจกรรมปฏิทินใหม่ - แก้ไขกิจกรรมปฏิทิน - ปฏิทินใหม่ - แก้ไขปฏิทิน - ฟีด - เดือน - สัปดาห์ - วัน @@ -1357,9 +790,6 @@ - - %1$s, %2$d กิจกรรม - @@ -1386,24 +816,14 @@ - กำลังดำเนินอยู่ - %1$s · สิ้นสุด %2$s - แชร์กิจกรรมปฏิทิน - calendar_reminders - การแจ้งเตือนปฏิทิน - แจ้งเตือนเมื่อกิจกรรมที่คุณเข้าร่วมกำลังจะเริ่ม - กิจกรรมปฏิทิน - - เริ่มในอีก %1$d นาที - @@ -1412,33 +832,23 @@ - อัปโหลดรูปภาพล้มเหลว - ไม่สามารถอัปโหลดรูปภาพที่เลือก ลองอีกครั้งหรือวาง URL - การแจ้งเตือนปฏิทิน - ส่งการแจ้งเตือน - การแจ้งเตือนจะถูกส่งเมื่อกิจกรรมที่คุณเข้าร่วมกำลังจะเริ่ม - - %1$d นาที - - เปิดในแผนที่ - เปิดลิงก์ @@ -1457,7 +867,6 @@ - แถบนำทางด้านล่าง ลากเพื่อจัดลำดับ สลับเพื่อเพิ่มหรือลบรายการออกจากแถบด้านล่าง หากไม่มีรายการ แถบด้านล่างจะถูกซ่อน @@ -1468,21 +877,14 @@ เลือกแท็บที่จะแสดงในหน้าหลัก เมื่อมีเพียงแท็บเดียวที่เปิดใช้งาน แถบแท็บจะถูกซ่อน - ทั้งหมด - ส่วนติดต่อผู้ใช้โปรไฟล์ เลือกส่วนและฟีดที่จะแสดงในหน้าโปรไฟล์ผู้ใช้ ตัวเลือกทั้งหมดเปิดใช้งานตามค่าเริ่มต้น - ป้ายโปรไฟล์ - คำแนะนำแอป - ฟีด Zap ที่ได้รับ - ฟีดผู้ติดตาม - แถวปฏิกิริยา @@ -1500,7 +902,6 @@ - ปุ่มเครื่องเล่นวิดีโอ @@ -1520,7 +921,6 @@ - ตัวแสดงภาพเสียง @@ -1532,7 +932,6 @@ - วันหมดอายุ @@ -1541,70 +940,45 @@ - Outbox Relays - Inbox Relays - ผู้ใช้กำลังโพสต์เนื้อหาของตนไปยัง relay เหล่านี้ - ผู้ใช้กำลังรับการแจ้งเตือนบน relay เหล่านี้ - ผู้ใช้รับ DM บน relay เหล่านี้ - KeyPackages - KeyPackage Relays - Relays ที่เผยแพร่ MLS KeyPackages ของคุณ (MIP-00) ผู้ใช้รายอื่นดึง KeyPackages เหล่านี้เพื่อเชิญคุณเข้ากลุ่มแชท Marmot ใส่ relay 1–3 รายการที่รับเหตุการณ์ KeyPackage จากคุณและอนุญาตให้อ่านแบบสาธารณะ - Relays ที่เชื่อมต่อ - รายการ relay ปัจจุบันที่กำลังใช้งาน - ส่งต่อโปรไฟล์ไปยัง relay ในเครื่อง - ส่งเหตุการณ์โปรไฟล์ (kind 0) ที่ได้รับทั้งหมดไปยัง relay ในเครื่องของคุณ - Trusted Relays - Relays ที่คุณเชื่อถือว่าไม่จำเป็นต้องใช้การเชื่อมต่อ Tor - ฟีด Relay โปรด - Relays ที่คุณมักเข้าไปดูฟีดทั่วโลกของพวกเขา - Proxy Relays - Relay รวมที่แอปต้องใช้เพื่อดาวน์โหลดฟีดของคุณ เช่น filter.nostr.wine ซึ่งจะแทนที่โมเดล outbox และทำให้แอปเชื่อมต่อเฉพาะ relay ในรายการของคุณ - Broadcast Relays - Relays ที่เชี่ยวชาญในการส่งโน้ตของคุณไปยัง relay อื่นๆ ทั้งหมด เช่น sendit.nosflare.com Amethyst จะเพิ่ม relay นี้ในเหตุการณ์ใหม่ทั้งหมดที่คุณสร้าง - Indexer Relays - Relays ที่เชี่ยวชาญในการโฮสต์ข้อมูลเมตาและรายการ relay ของทุกคน เช่น purplepag.es Amethyst จะใช้ relay เหล่านี้เพื่อค้นหาผู้ใช้ที่ไม่ได้อยู่ในรายการของคุณ - Blocked Relays - Amethyst จะไม่เชื่อมต่อกับ relay เหล่านี้เด็ดขาด - ส่งออกการตั้งค่า relay @@ -1641,35 +1015,21 @@ เพิ่มเซิร์ฟเวอร์ได้มากเท่าที่ต้องการ คุณสามารถเลือกเซิร์ฟเวอร์ที่จะใช้ในภายหลังเมื่ออัปโหลดรูปภาพ - เพิ่ม Blossom Server - ไม่มีแอป torrent ติดตั้งเพื่อเปิดและดาวน์โหลดไฟล์ - เหตุการณ์ไม่มีข้อมูลเพียงพอในการสร้างลิงก์ magnet - รายการของฉัน - ฟีด - Hashtags - ชุดความสนใจ - สถานที่ - ชุมชน - รายการ - อัลกอริทึมฟีด - อัลกอริทึมฟีดโปรดทั้งหมด - Relays - อัลกอริทึมฟีดโปรด @@ -1683,18 +1043,13 @@ - ข้อความส่วนตัว - ข้อความสาธารณะ - ไม่สามารถแชร์รูปภาพได้ โปรดลองอีกครั้งในภายหลัง… - ไม่สามารถแชร์วิดีโอได้ โปรดลองอีกครั้งในภายหลัง… - กำลังดาวน์โหลดวิดีโอ… @@ -1712,17 +1067,11 @@ - ไม่แปลจาก - ภาษาที่แสดงที่นี่จะไม่ถูกแปล เลือกภาษาเพื่อลบออกและให้แปลอีกครั้ง - แปลเป็น - เลือกภาษาที่จะแปลเนื้อหาเป็น - การตั้งค่าการแสดงภาษา - สำหรับแต่ละคู่ภาษาที่แปล เลือกภาษาที่จะแสดงก่อน @@ -1733,9 +1082,7 @@ - หยุดชั่วคราว - เล่น @@ -1744,7 +1091,6 @@ - ข้อความนี้จะหายไปใน %1$s @@ -1759,15 +1105,10 @@ - ข้อมูลเมตาของรายการติดตาม - ข้อมูลเมตาของรายการติดตามสามารถดูได้โดยทุกคนบน Nostr โดยเฉพาะสมาชิกส่วนตัวของคุณที่จะถูกเข้ารหัส - ข้อมูลเมตาของ Follow Pack - ข้อมูลเมตาของ Follow Pack สามารถดูได้โดยทุกคนบน Nostr และมักถูกเผยแพร่บนเว็บไซต์ต่าง ๆ ในฐานะชุดเริ่มต้นสำหรับผู้ใช้ใหม่ - แก้ไข Follow Pack @@ -1783,12 +1124,10 @@ - ขยาย - ลองใหม่ @@ -1799,11 +1138,8 @@ - ปฏิกิริยา - โพสต์เสียง - ตอบกลับด้วยเสียง @@ -1825,285 +1161,145 @@ - Outbox Relays - Apps - App Recommendations - การตั้งค่าผู้ใช้ - Audio Header - Audio Track - Music Track - Music Playlist - Podcast Episode - Podcast Show - Authored Podcasts - Favorite Podcasts - Badge Awards - Badge Definitions - Accepted Badge Set - Profile Badges - Blocked Relays - Blossom Servers - Nests Servers - Blossom Auth - Broadcast Relays - รายการบุ๊กมาร์ก - รายการบุ๊กมาร์กเก่า - นัดหมายรายวัน - ปฏิทิน - นัดหมาย - Appt RSVP - Chess Games - Chess Auth - Favorite Relays - Chess Challenges - Chess Game Accept - Chess Move - Chess Game End - Chess Draw Offer - Channel Definition - Channel Hide Msg - Channel List - Channel Message - Channel Metadata - Channel Mute User - DM File - DM Message - DM Relays - ประกาศ - ความคิดเห็น - Community Def - Community List - Community Post - Follow List - การลบ - ฉบับร่าง - Emoji Packs - Emoji Pack List - Ephemeral Chat - Ephemeral Chatrooms - File Headers - Profile Gallery - File Servers - Blob Data - Blob Headers - ข้อมูลทางการแพทย์ - Follow Packs - Reposts (16) - Geohash Follows - GiftWraps - Git Issue - Git Patch - Git Repo - Git Reply - Zap Goals - Hashtag Follows - ไฮไลต์ - Http Auth - Index Relay List - Adventure Prologue - Adventure Scene - Adventure Reading - Named Bookmarks - Live Chats - Live Streams - Zaps - NWC Request - NWC Response - Private Zaps - Zap Req - บล็อก - ห้องประชุม - Room Presence - Meeting Space - โปรไฟล์ - Mute List - NNS - NIP - Nostr Connect - DVM Status - DVM Content Req - DVM Content Resp - DVM User Req - DVM User Resp - OTS - PayTo - People Lists - รูปภาพ - Workouts - Pins - Zap Poll - โหวต - Poll Response - NIP-04 DMs - Private Relays - Proxy Relays - Public Message - Reactions - Contact Card - Relay Auth - Relay Discovery - Relay Monitor Announcement - Relay Set - รายงาน - Reposts - User Delete - Seals - Search Relays - User Status - โน้ต - การแก้ไข - Torrents - Torrent Comments - Trusted Relays - Trusted Providers - Video (Repl) - Shorts (Repl) - วิดีโอ - Shorts - Voice Msg - Voice Reply - WakeUp - Web Bookmark - Wiki @@ -2120,9 +1316,7 @@ - เวลาทำงาน %1$d%% - การตั้งค่า Namecoin @@ -2133,13 +1327,11 @@ - %dms - การซิงค์ Relay @@ -2167,65 +1359,27 @@ - Bitcoin Explorer (OTS) - event จากคุณ - event ถึงคุณ - event ที่ค้นหาได้ - DMs - โปรไฟล์ - รายการ outbox - เห็นล่าสุด %1$s ที่ผ่านมา - เห็นล่าสุดเมื่อ %1$s (%2$s ที่ผ่านมา) - เห็นเมื่อสักครู่นี้ - ไม่เคยพบ - - %1$d นาที - - - %1$d ชั่วโมง - - - %1$d วัน - - - %1$d สัปดาห์ - - - %1$d เดือน - - - %1$d ปี - - - %1$d mint - - - %1$d ใบแจ้งหนี้ที่รอดำเนินการ - - - เงินทุนที่ถือครองที่ %1$d mint ที่คุณไม่ได้ใช้ - @@ -2239,7 +1393,6 @@ - ย้าย %1$s sat ไปยัง %2$s แล้ว @@ -2252,13 +1405,10 @@ - แคสต์ไปยังอุปกรณ์ - หยุดการแคสต์ - อัปโหลด HLS @@ -2279,7 +1429,6 @@ - กำลังอัปโหลด %1$s (%2$d จาก %3$d) @@ -2297,7 +1446,6 @@ - การรับรอง @@ -2305,12 +1453,9 @@ - คำขอการรับรอง - คำแนะนำจาก Attestor - ความเชี่ยวชาญของ Attestor @@ -2318,11 +1463,8 @@ - บุ๊กมาร์กเว็บ - เพิ่มบุ๊กมาร์กเว็บ - แก้ไขบุ๊กมาร์กเว็บ @@ -2337,7 +1479,6 @@ - ได้รับทุน %1$s จากเป้าหมาย %2$s sats @@ -2372,9 +1513,7 @@ - เป้าหมายใหม่ - คำขอให้ลบข้อมูล @@ -2388,7 +1527,6 @@ - ส่งคำขอให้ลบข้อมูลแล้ว @@ -2402,22 +1540,16 @@ - ประวัติการลบข้อมูล - ผู้ใช้ - กิจกรรม - ประเภท - IPs - การตั้งค่า @@ -2469,23 +1601,14 @@ - เสนอการปรับปรุงข้อความ - ใช้โมเดล AI บนอุปกรณ์เพื่อเสนอการแก้ไขข้อความและการเปลี่ยนแปลงโทนเสียง - การออกอากาศที่ติดตาม - ใช้ตัวออกอากาศที่ติดตามเมื่อส่งกิจกรรม แสดงความคืบหน้าสดและสถานะต่อ relay ขณะออกอากาศ - แนะนำการออกกำลังกายเพื่อแชร์ - อ่านการออกกำลังกายที่เสร็จสิ้นจาก Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) และแนะนำให้แชร์เป็นโพสต์ การอนุญาตจะถูกขอเฉพาะเมื่อคุณเชื่อมต่อ - การตั้งค่าการแต่ง - สร้างร่างโดยอัตโนมัติ - บันทึกกิจกรรมร่างโดยอัตโนมัติเมื่อคุณพิมพ์หรือออกจากตัวแต่งที่มีข้อความที่ยังไม่ได้ส่ง และส่งไปยัง relay outbox ส่วนตัวของคุณ @@ -2502,9 +1625,7 @@ - แพ็ค emoji ใหม่ - แก้ไขแพ็ค emoji @@ -2528,45 +1649,29 @@ - แพ็ค Emoji ของฉัน - Emoji - Emoji สาธารณะมองเห็นได้โดยทุกคนและปรากฏในเมนูรีแอคชันและตัวเลือก \":\" autocomplete ของคุณเมื่อแพ็คนี้อยู่ในรายการ emoji ของคุณ - Emoji ส่วนตัวถูกจัดเก็บแบบเข้ารหัสบน relay และมองเห็นได้เฉพาะคุณเท่านั้น Emoji เหล่านี้ปรากฏในเมนูรีแอคชันและ \":\" autocomplete เช่นเดียวกับ emoji สาธารณะ - ร่างมีขนาด %1$d ไบต์ ชุมชนนี้จำกัดประเภทนี้ไว้ที่ %2$d ไบต์ - ร่างมีขนาด %1$d ไบต์ ชุมชนนี้จำกัดกิจกรรมไว้ที่ %2$d ไบต์ - คุณโพสต์กิจกรรมประเภทนี้ไปแล้ว %1$d รายการในวันนี้ (จำกัด %2$d) - เว็บไซต์ Nowhere - กิจกรรม Nowhere - การระดมทุน Nowhere - ร้านค้า Nowhere - คำร้อง Nowhere - ข้อความ Nowhere - Drop ของ Nowhere - งานศิลปะ Nowhere - ฟอรัม Nowhere @@ -2584,23 +1689,14 @@ - - %1$d ข้อความ - - - %1$d สมาชิก - - อัปเดตข้อมูลกลุ่มแล้ว - ไม่สามารถอัปเดตได้: %1$s - ไม่สามารถสร้างกลุ่มได้: %1$s @@ -2611,13 +1707,9 @@ - ไม่สามารถออกจากกลุ่มได้: %1$s - กำลังเพิ่ม %1$s… - ไม่สามารถเพิ่ม %1$s: %2$s - ข้อผิดพลาดที่ไม่ทราบสาเหตุ @@ -2626,9 +1718,7 @@ - ลบสมาชิกออกแล้ว - ไม่สามารถลบสมาชิกได้: %1$s @@ -2636,39 +1726,25 @@ - มอบสิทธิ์ผู้ดูแลระบบแล้ว - ไม่สามารถมอบสิทธิ์ผู้ดูแลระบบได้: %1$s - เพิกถอนสิทธิ์ผู้ดูแลระบบแล้ว - ไม่สามารถเพิกถอนสิทธิ์ผู้ดูแลระบบได้: %1$s - ไม่ได้เป็นสมาชิกของกลุ่มนี้ - - โพสต์นี้มีแฮชแท็กมากกว่า %1$d รายการ - - - %1$d ไฟล์แนบ - - - +%1$d\nการตอบกลับ - @@ -2679,36 +1755,24 @@ - คุณกำลังใช้คีย์สาธารณะซึ่งอ่านได้อย่างเดียว เข้าสู่ระบบด้วยคีย์ส่วนตัวเพื่ออัปโหลดไฟล์ - คุณกำลังใช้คีย์สาธารณะซึ่งอ่านได้อย่างเดียว เข้าสู่ระบบด้วยคีย์ส่วนตัวเพื่อลงนามเหตุการณ์ - การถอดรหัสไม่ได้รับอนุญาต - ผู้ลงนามไม่อนุญาตการถอดรหัสที่จำเป็นสำหรับการดำเนินการนี้ เปิดใช้การถอดรหัส NIP-44 ในแอปผู้ลงนามของคุณแล้วลองใหม่อีกครั้ง - ไม่พบผู้ลงนาม - ถอนการติดตั้งแอปผู้ลงนามแล้วหรือไม่ ตรวจสอบว่าติดตั้งผู้ลงนามและมีบัญชีนี้อยู่ ออกจากระบบและเข้าสู่ระบบใหม่หากมีการเปลี่ยนแปลงแอปผู้ลงนาม - ผู้ลงนามภายนอกส่งคืนข้อมูลที่ผิดปกติสำหรับคำขอนี้ อาจมีข้อผิดพลาดใน Amethyst หรือแอปผู้ลงนาม - กำลังขอใบแจ้งหนี้… - บริการเดบิตไม่สามารถดำเนินการชำระเงินได้ - ชำระ %1$s ผ่าน %2$s? - ชำระใบแจ้งหนี้นี้ผ่าน %1$s? - กรุณาใส่จำนวนที่ถูกต้องสำหรับข้อเสนอนี้ @@ -2717,13 +1781,9 @@ - ครั้งเดียว - รายวัน - รายสัปดาห์ - รายเดือน @@ -2749,13 +1809,11 @@ - กำลังชำระผ่าน %1$s… - การชำระเงินล้มเหลว @@ -2765,10 +1823,8 @@ - ยอดที่ใช้ได้สำหรับผู้รับนี้: %1$s sats - ธุรกรรม: %1$s @@ -2779,66 +1835,10 @@ - เขียนข้อความ… - ส่ง เปลี่ยนชื่อ - ข้อผิดพลาด - - เปอร์เซ็นต์การเชื่อมต่อสำเร็จกับ relay - - - - - - - บันทึกลงโทรศัพท์ - - เริ่มดาวน์โหลดวิดีโอแล้ว… - - เริ่มดาวน์โหลดสื่อแล้ว… - - ปักหมุดไว้ด้านบน - - เลิกปักหมุด - - - บันทึกวิดีโอลงแกลเลอรีในโทรศัพท์แล้ว - - ไม่สามารถบันทึกวิดีโอได้ - - บันทึก PDF ลงใน Downloads/Amethyst แล้ว - - ไม่สามารถบันทึก PDF ได้ - - - - - ไม่พบแอปกล้องในอุปกรณ์นี้ - - - กดค้างเพื่อบันทึกข้อความเสียง - - - - - ข้อผิดพลาดในการอัปโหลด - - ไม่สามารถอัปโหลดข้อความเสียงได้ - - NIP-95 ยังไม่รองรับข้อความเสียง - - การอัปโหลดเสียงล้มเหลว: %1$s - - ไม่มี - - เสียงทุ้ม - - เสียงสูง - - เสียงปกติ @@ -2847,9 +1847,40 @@ - แสดง QR code คีย์ส่วนตัว - แสดง QR code คีย์ส่วนตัวแบบเข้ารหัส + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2861,50 +1892,32 @@ โปรไฟล์แชทใหม่: - แชทชั่วคราว - แชท relay - แชท relay - แชท relay คือกลุ่มแชทที่ควบคุมโดย relay หลัก มองเห็นได้สำหรับทุกคนบน Nostr และทุกคนสามารถเข้าร่วมได้ เหมาะสำหรับชุมชนเปิดในหัวข้อเฉพาะ บางกลุ่มเป็นแบบชั่วคราวดังนั้นข้อความแชทจะหายไปตามเวลา - กลุ่ม MLS - ข้อมูลเมตาแชทสาธารณะ - แชทสาธารณะมองเห็นได้สำหรับทุกคนบน Nostr และทุกคนสามารถเข้าร่วมได้ เหมาะสำหรับชุมชนเปิดในหัวข้อเฉพาะ การกลั่นกรองสามารถควบคุมได้โดยการลบโพสต์บน relay ของกลุ่ม - relay - ใส่ relay 1–3 รายการที่โฮสต์กลุ่มนี้ ไคลเอนต์ Nostr ใช้การตั้งค่านี้เพื่อทราบว่าจะดาวน์โหลดข้อความจากที่ใดและส่งข้อความของคุณไปที่ใด - นำทาง - คุณ - ฟีด - สร้าง - ระบบ - แชร์เป็นรูปภาพ - แชร์เป็น URL รูปภาพ - ปิดเสียงกระทู้ - เปิดเสียงกระทู้ @@ -2912,9 +1925,7 @@ - ย้ายบุ๊กมาร์กสำเร็จ - โพสต์ที่กำหนดเวลา @@ -2923,14 +1934,10 @@ - กำหนดเวลาโพสต์ - ยกเลิกการกำหนดเวลา - โพสต์ที่กำหนดเวลาอาจไม่เผยแพร่จนกว่าคุณจะเปิดแอปอีกครั้ง เปิดใช้การทำงานตลอดเวลาในการตั้งค่า → การตั้งค่า UI เพื่อกำหนดเวลาในพื้นหลังอย่างน่าเชื่อถือ - โพสต์ที่กำหนดเวลาอาจไม่เผยแพร่จนกว่าคุณจะเปิดแอปอีกครั้ง โพสต์ที่กำหนดเวลาของบัญชีอื่นจะไม่ส่งขณะที่บัญชีนี้ใช้งานอยู่ เปิดใช้การทำงานตลอดเวลาในการตั้งค่า → การตั้งค่า UI เพื่อกำหนดเวลาในพื้นหลังอย่างน่าเชื่อถือ @@ -2939,109 +1946,61 @@ - %1$s · อีก %2$s - %1$s · %2$s ที่แล้ว - พรุ่งนี้ - ออกจากระบบแล้ว - - ออกจากระบบแล้ว · ลบโพสต์ที่กำหนดเวลา %d รายการ - - เผยแพร่โพสต์ที่กำหนดเวลาแล้ว - โพสต์ที่กำหนดเวลาล้มเหลว - โพสต์ที่กำหนดเวลา - การแจ้งเตือนเมื่อโพสต์ที่กำหนดเวลาถูกเผยแพร่หรือล้มเหลวในการเผยแพร่ - ส่งทันที - ข้อผิดพลาด: %1$s - ตั้งเวลาไว้ - กำลังส่ง… - ล้มเหลว - ส่งแล้ว - ยกเลิกแล้ว - - คุณมี %d โพสต์ที่ตั้งเวลาไว้แต่ยังไม่ได้เผยแพร่ การออกจากระบบจะลบโพสต์เหล่านั้นอย่างถาวร - - - %d รายการในคิว - - - · %d รายการจะส่งใน 1 ชม. - - - ไปยัง %d relay - - คัดลอก ID โน้ตแล้ว - โพล - เปิดอยู่ - ปิดแล้ว - แบดจ์ - ชุมชน - ชุมชนใหม่ - แก้ไขชุมชน - ผู้ดูแล - Relays - กฎที่ตรวจสอบได้ (ไม่บังคับ) - ประเภทอีเวนต์ที่อนุญาต - ข้อความสั้น (1) - บทความยาว (30023) - โพสต์รูปภาพ (20) - โพสต์วิดีโอ (21) - วิดีโอสั้น (22) - ความคิดเห็นในชุมชน (1111) @@ -3050,23 +2009,18 @@ - ผู้ใช้ที่ถูกแบน - ประตู Web-of-trust (ไม่บังคับ) - ขนาดอีเวนต์สูงสุดแบบ Global (ไม่บังคับ) - แบดจ์ใหม่ - มอบแบดจ์ @@ -3083,7 +2037,6 @@ - แบดจ์โปรไฟล์ @@ -3107,12 +2060,9 @@ - รูปภาพ - การออกกำลังกาย - การออกกำลังกายใหม่ @@ -3139,87 +2089,56 @@ - วิ่ง - เดิน - ปั่นจักรยาน - เดินป่า - ว่ายน้ำ - พาย - ฝึกความแข็งแกร่ง - โยคะ - ทำสมาธิ - อาหาร - อดอาหาร - เซอร์กิต - EMOM - AMRAP - แอป แอป - nApplets - - nSites - - - เบราว์เซอร์ - กำลังโหลดผ่าน Tor แตะเพื่อใช้เว็บแบบเปิด - - กำลังโหลดผ่านเว็บแบบเปิด แตะเพื่อใช้ Tor - รายการโปรด - - - - แอปโปรด - - - เพิ่มในรายการโปรด - - ลบออกจากรายการโปรด - โหลดผ่าน Tor - - โหลดผ่านเว็บแบบเปิด - เผยแพร่ไปยัง relay แล้ว - อัปโหลดไฟล์แล้ว - ชำระเงินแล้ว - แอปนั้นยังไม่ได้โหลด ลองอีกครั้งในอีกสักครู่ - ล่าสุด + + + + + + + + + + + สิทธิ์ nApplet @@ -3236,51 +2155,30 @@ - nApplet %1$s… Shell - Identity - การกระทำบนแป้นพิมพ์ - Relays - พื้นที่จัดเก็บ - การชำระเงิน - เครือข่าย - การอัปโหลด ถามว่าความสามารถใดบ้างที่พร้อมใช้งาน - อ่าน public key ของคุณ - ผูก keyboard shortcuts - อ่าน ลงนาม และเผยแพร่อีเวนต์ของคุณ - พื้นที่จัดเก็บส่วนตัวของตัวเอง - ชำระ Lightning invoices - ดึงทรัพยากรจากเว็บและ Blossom - อัปโหลดไฟล์ไปยังเซิร์ฟเวอร์มีเดียของคุณ - ธีม - การแจ้งเตือน - การส่งข้อความ - จับคู่สีของแอปของคุณ - แสดงการแจ้งเตือนให้คุณ - แลกเปลี่ยนข้อความกับ nApplet อื่น ความสามารถ: %1$s @@ -3288,33 +2186,19 @@ - nApplet นี้ต้องการอ่านคีย์สาธารณะของคุณ - nApplet นี้ต้องการอ่านโปรไฟล์และข้อมูลบัญชีของคุณ - nApplet นี้ต้องการลงนามและเผยแพร่อีเวนต์ kind %1$d ในนามของคุณ - nApplet นี้ต้องการลงนามและเผยแพร่อีเวนต์ kind %1$d ในนามของคุณ: - nApplet นี้ต้องการส่งอีเวนต์ที่เข้ารหัสในนามของคุณ - nApplet นี้ต้องการอ่านอีเวนต์จาก relay ของคุณ - nApplet นี้ต้องการใช้พื้นที่จัดเก็บส่วนตัวของตัวเอง nApplet นี้ต้องการชำระใบแจ้งหนี้ Lightning - nApplet นี้ต้องการดึงข้อมูลทรัพยากรเว็บ - nApplet นี้ต้องการอัปโหลดไฟล์ไปยังเซิร์ฟเวอร์สื่อของคุณ - nApplet นี้ต้องการแสดงการแจ้งเตือนให้คุณ - ไซต์นี้ต้องการลงนามอีเวนต์ kind %1$d ด้วยคีย์ Nostr ของคุณ - - nApplet นี้ต้องการชำระใบแจ้งหนี้ Lightning เป็นจำนวน %1$d sats - @@ -3328,35 +2212,25 @@ - Shorts - แชทสาธารณะ - Follow Packs - Live Streams - Nests - ยกมือ - ลดมือ - ปิดเสียง - เปิดเสียง - ไม่สามารถส่งข้อความได้ @@ -3365,25 +2239,17 @@ - ปิดไมค์ - เปิดไมค์ - Nests - เปิดเสียงต่อเนื่องขณะที่ห้องเปิดอยู่ - Nest เชื่อมต่อแล้ว - Nest — Live - แตะเพื่อกลับ - หยุด @@ -3395,27 +2261,17 @@ - ยกมือขึ้น - ขึ้นเวทีแล้ว - กำลังพูด - เข้าร่วมในฐานะผู้ฟัง - ออกจาก nest แล้ว - ออก - ไม่สามารถทำเครื่องหมายห้องว่าปิดแล้ว กำลังออกอยู่ดี — ห้องจะปิดอัตโนมัติ - - %1$d ผู้ฟัง - @@ -3435,20 +2291,14 @@ - ปิดเสียงผู้พูดคนนี้ - กู้คืนผู้พูดคนนี้ - ติดตาม - เลิกติดตาม - ปิดเสียง - เปิดเสียง @@ -3476,7 +2326,6 @@ - ไม่สามารถบันทึกรายการเซิร์ฟเวอร์ nest ของคุณได้ ลองอีกครั้ง @@ -3490,45 +2339,30 @@ - เซิร์ฟเวอร์ Nest - เซิร์ฟเวอร์ของคุณ - บันทึกเป็นอีเวนต์ที่แทนที่ได้ kind-10112 เพื่อให้ไคลเอนต์อื่นอ่านการตั้งค่าของคุณได้ - เซิร์ฟเวอร์ที่แนะนำ - ข้อเสนอแนะในตัวที่คุณสามารถเพิ่มลงในรายการด้วยการแตะครั้งเดียว - วิดีโอ - เพลง - เพลย์ลิสต์ - ตอน - พอดแคสต์ - - %1$d ตอน - - เพลงใหม่ - เพลย์ลิสต์ใหม่ @@ -3546,9 +2380,6 @@ - - %1$d แทร็ก - diff --git a/amethyst/src/main/res/values-tr-rTR/strings.xml b/amethyst/src/main/res/values-tr-rTR/strings.xml index f1ab223acc..ac4d81ebf6 100644 --- a/amethyst/src/main/res/values-tr-rTR/strings.xml +++ b/amethyst/src/main/res/values-tr-rTR/strings.xml @@ -1,116 +1,12 @@ - - Bu gönderide %1$d\'den fazla hashtag var - Bu gönderide %1$d\'den fazla hashtag var - - - %1$d varlık paketlendi - %1$d varlık paketlendi - - - +%1$d\nyanıt - +%1$d\nyanıt - - İstenmeyen - Bu relay\'den gelen spam etkinliklerinin sayısı - Taklit Etme - İllegal Davranış - Silme İste - Yanıtlamak için bir Gizli Anahtarla giriş yap - Gönderileri desteklemek için bir Gizli Anahtarla giriş yap - Gönderileri beğenmek için bir Gizli Anahtarla giriş yap - Zap miktarı belirlenmedi. Değiştirmek için uzun basılı tutun - Zap göndermek için bir Gizli Anahtarla giriş yap - Bir genel anahtar kullanıyorsunuz ve genel anahtarlar salt okunurdur. Takip edebilmek için özel anahtarla giriş yapın - Bir genel anahtar kullanıyorsunuz ve genel anahtarlar salt okunurdur. Takibi bırakabilmek için özel anahtarla giriş yapın - Bir genel anahtar kullanıyorsunuz ve genel anahtarlar salt okunurdur. Bir kelime veya cümleyi gizleyebilmek için özel anahtarla giriş yapın - Bir genel anahtar kullanıyorsunuz ve genel anahtarlar salt okunurdur. Bir kelime veya cümleyi gösterebilmek için özel anahtarla giriş yapın - Bir genel anahtar kullanıyorsunuz ve genel anahtarlar salt okunurdur. Yükleme yapabilmek için özel anahtarla giriş yapın - Bir genel anahtar kullanıyorsunuz ve genel anahtarlar salt okunurdur. Etkinlikleri imzalayabilmek için özel anahtarla giriş yapın - Yetkisiz Şifre Çözme - İmzalayıcı, bu işlemi gerçekleştirmek için gereken şifre çözme işlemine izin vermedi. İmzalayıcı uygulamanızda NIP-44 şifre çözmeyi etkinleştirin ve tekrar deneyin - İmzalayıcı bulunamadı - İmzalayıcı uygulaması kaldırıldı mı? İmzalayıcının kurulu olup olmadığını ve bu hesabın kayıtlı olup olmadığını kontrol edin. İmzalayıcı uygulaması değiştiyse çıkış yapıp tekrar giriş yapın. - Harici imzalayıcı, istek için beklenmedik bir yük döndürdü. Amethyst veya İmzalayıcıda bir hata olabilir. - Zapler - Destekle desteklendi düzenleme #%1$s - Düzenleme Öner - Ekle - Hata mesajı ayrıştırılırken hata oluştu - Profil - Güvenlik Filtreleri - Fatura isteniyor… - Borç servisi ödemeyi tamamlamadı. - %2$s üzerinden %1$s ödensin mi? - Bu fatura %1$s üzerinden ödensin mi? - Bu teklif için geçerli bir miktar girin. - Tek seferlik - Günlük - Haftalık - Aylık - Öde - %1$s üzerinden ödeniyor… - Ödeme başarısız - Bu alıcı için harcanabilir: %1$s sats - İşlem: %1$s - "%1$s için Önizleme Kartı Görseli" - Açıklama - Aklında ne var? - Bir mesaj yazın… - Gönder Kaydet - Gönder - Oluştur Yeniden adlandır - Vazgeç - Hata - Hatalar - relay\'e başarılı bağlantı yüzdesi - Telefona Kaydet - Resim galeriye kaydedildi - Video indirme başladı… - Medya indirme başladı… - Üste sabitle - Sabitlemeyi kaldır - Resim galeriye kaydedilemedi - Video telefonun video galerisine kaydedildi - Video kaydedilemedi - PDF İndirilenler/Amethyst klasörüne kaydedildi - PDF kaydedilemedi - Bu cihazda kamera uygulaması bulunamadı - Sesli mesaj kaydetmek için tıklayıp basılı tutun - Yükleme Hatası - Sesli mesaj yüklenemedi - NIP-95 henüz sesli mesajlar için desteklenmiyor - Ses yükleme başarısız: %1$s - Yok - Derin - Tiz - Nötr - Kullanıcının sats alabileceği bir lightning adresi kurulu değil - "buraya yanıtlayın…" - Bilinen - Yeni İstekler - Engellenmiş Kullanıcılar - Yeni Threadler - Diyaloglar - Daha Fazla Seçenek - Özel anahtar QR kodunu göster - Şifreli özel anahtar QR kodunu göster - Takip Et - Geri takip et - Şifreyi Gizle - Geçersiz Anahtar - Geçersiz anahtar: %1$s - Parola gereklidir - Anahtar gerekiyor - Bir isim gereklidir @@ -119,157 +15,7 @@ Yeni sohbet profili: - Ayrıl - Takip Etme - Kaybolan Sohbet - relay Sohbeti - relay Sohbetleri - relay sohbetleri, ana relay\'leri tarafından kontrol edilen sohbet gruplarıdır. - Nostr\'daki herkese görünürdür ve herkes katılabilir. - Belirli konular etrafında açık topluluklar için idealdirler. Bu grupların bir kısmı geçici niteliktedir - ve bu nedenle sohbet mesajları zamanla silinir - Herkese Açık Chat - MLS Grubu - Genel Sohbet Meta Verisi - Genel sohbetler Nostr\'daki herkese görünürdür ve herkes - katılabilir. Belirli konular etrafında açık topluluklar için idealdirler. - Moderasyon, relay\'lerindeki gönderilerin silinmesiyle kontrol edilebilir - relay\'ler - Bu grubu barındıran 1–3 relay ekleyin. - Nostr istemcileri mesajları nereden indireceğini ve mesajlarınızı nereye göndereceğini öğrenmek için bu ayarı kullanır. - Kaldır - asla - şimdi - s - d - g - Çıplaklık - Küfür / Nefret dolu konuşma - Anahtarları Yedekle - Özel anahtarınız şifrelenemedi - Gizli anahtar (nsec) panoya kopyalandı - Gizli anahtarımı kopyala - Kimlik doğrulama başarısız oldu - Biyometri, bu telefonun sahibini doğrulayamadı - Biyometri, bu telefonun sahibini doğrulayamadı. Hata: %1$s - Not metni panoya kopyalandı - Yazarın @npub\'ı panoya kopyalandı - Not kimliği (@note1) panoya kopyalandı - "<Özel mesaj şifresi çözülemiyor>\n\n%1$s ve %2$s arasındaki özel/şifreli bir konuşmada adınız geçti." - Hesaplar - Gezin - Siz - Akışlar - Oluştur - Sistem - Geri - Tarayıcı Bağlantısını Paylaş - Paylaş - Görsel Olarak Paylaş - Görsel URL\'si Olarak Paylaş - Not Kimliği - Sil - Konuyu sustur - Konunun sesini aç - - Engelle - Yer İmleri - Yer imleri başarıyla taşındı - Taslaklar - Zamanlanmış gönderiler - Gönderiyi zamanla - Zamanlamayı iptal et - Zamanlanmış gönderiler, uygulamayı bir sonraki açışınıza kadar yayımlanmayabilir. Güvenilir arka plan zamanlaması için Ayarlar → Arayüz Tercihleri bölümünden her zaman açık seçeneğini etkinleştirin. - Zamanlanmış gönderiler, uygulamayı yeniden açana kadar yayımlanmayabilir. Bu hesap etkinken diğer hesapların zamanlanmış gönderileri tetiklenmeyecek. Güvenilir arka plan zamanlaması için Ayarlar → Arayüz Tercihleri bölümünden her zaman açık seçeneğini etkinleştirin. - %1$s · %2$s içinde - %1$s · %2$s önce - Yarın - Çıkış yapıldı - - Çıkış yapıldı · %d zamanlanmış gönderi silindi - Çıkış yapıldı · %d zamanlanmış gönderi silindi - - Zamanlanmış gönderi yayımlandı - Zamanlanmış gönderi başarısız oldu - Zamanlanmış gönderiler - Zamanlanmış bir gönderi yayımlandığında veya yayımlanamadığında bildirimler. - Şimdi gönder - Hata: %1$s - Zamanlandı - Gönderiliyor… - Başarısız - Gönderildi - İptal edildi - - Henüz yayımlanmamış %d zamanlanmış gönderiniz var. Çıkış yapmak bu gönderiyi kalıcı olarak silecektir. - Henüz yayımlanmamış %d zamanlanmış gönderiniz var. Çıkış yapmak bunları kalıcı olarak silecektir. - - - %d sırada - %d sırada - - - · %d tanesi 1 saatte - · %d tanesi 1 saatte - - - %d relay\'e - %d relay\'e - - Not kimliği kopyalandı - Anketler - Açık - Kapalı - Rozetler - Topluluklar - Yeni Topluluk - Topluluğu Düzenle - Moderatörler - Relay\'ler - Doğrulanabilir kurallar (isteğe bağlı) - İzin verilen etkinlik türleri - Kısa metin (1) - Uzun biçimli makale (30023) - Fotoğraf gönderisi (20) - Video gönderisi (21) - Kısa video (22) - Topluluk yorumu (1111) - Yasaklı kullanıcılar - Web-of-trust kapısı (isteğe bağlı) - Genel maksimum etkinlik boyutu (isteğe bağlı) - Yeni Rozet - Rozet Ver - Profil rozetleri - Fotoğraflar - Egzersizler - Yeni Egzersiz - Koşu - Yürüyüş - Bisiklet - Doğa yürüyüşü - Yüzme - Kürek çekme - Kuvvet - Meditasyon - Diyet - Oruç - Devre - Uygulamalar Uygulamalar - Tarayıcı - Tor üzerinden yükleniyor. Açık web\'i kullanmak için dokun. - Açık web üzerinden yükleniyor. Tor\'u kullanmak için dokun. - Favoriler - Favori uygulamalar - Favorilere ekle - Favorilerden kaldır - Tor üzerinden yüklenir. - Açık web üzerinden yüklenir. - relay\'lere yayımlandı - Dosya yüklendi - Ödeme yapıldı - O uygulama henüz yüklenmedi. Bir süre sonra tekrar dene. - Son kullanılan nApplet izinleri Henüz nApplet izni yok nApplet\'lere verdiğin izinler burada görünecek. @@ -279,46 +25,11 @@ Kabuk - Kimlik - Klavye eylemleri - relay\'ler - Depolama - Ödemeler - Ağ - Yüklemeler Hangi özelliklerin mevcut olduğunu sorgula - Ortak anahtarını oku - Klavye kısayollarını bağla - Etkinliklerini oku, imzala ve yayımla - Kendi özel depolaması - Lightning faturalarını öde - Web ve Blossom kaynaklarını getir - Medya sunucuna dosya yükle - Tema - Bildirimler - Mesajlaşma - Uygulamanın renklerine uy - Sana bildirim göster - Diğer nApplet\'lerle mesaj alışverişi yap Yetenek: %1$s - Bu nApplet ortak anahtarını okumak istiyor. - Bu nApplet profilini ve hesap verilerini okumak istiyor. - Bu nApplet senin adına kind %1$d türünde bir etkinlik imzalayıp yayımlamak istiyor. - Bu nApplet senin adına kind %1$d türünde bir etkinlik imzalayıp yayımlamak istiyor: - Bu nApplet senin adına şifreli bir etkinlik göndermek istiyor. - Bu nApplet relay\'lerinden etkinlikleri okumak istiyor. - Bu nApplet kendi özel depolamasını kullanmak istiyor. Bu nApplet bir Lightning faturası ödemek istiyor. - Bu nApplet bir web kaynağı getirmek istiyor. - Bu nApplet medya sunucuna dosya yüklemek istiyor. - Bu nApplet sana bildirim göstermek istiyor. - Bu site Nostr anahtarınla kind %1$d türünde bir etkinlik imzalamak istiyor. - - Bu nApplet %1$d sat için bir Lightning faturası ödemek istiyor. - Bu nApplet %1$d sat için bir Lightning faturası ödemek istiyor. - - Kısa videolar - Genel Sohbetler - Takip Paketleri - Canlı Yayınlar - El kaldır - Eli indir - Sessize al - Sesi aç - Mesaj gönderilemedi - Mikrofonu kapat - Mikrofonu aç - Oda açıkken ses çalmayı sürdürür. - Nest bağlandı - Nest — Canlı - Geri dönmek için dokun. - Durdur - elini kaldırdı - sahneye çıktı - konuşuyor - dinleyici olarak katıldı - Nest\'ten ayrıldı - Ayrıl - Oda kapalı olarak işaretlenemedi. Yine de ayrılıyorum — oda otomatik kapanacak. - - %1$d dinleyici - %1$d dinleyici - - Bu konuşmacıyı sustur - Bu konuşmacıyı geri yükle - Takip et - Takibi bırak - Sessize al - Sesi aç - Nest sunucu listeniz kaydedilemedi. Tekrar deneyin. - Nest sunucuları - Sunucularınız - Diğer istemcilerin tercihinizi okuyabilmesi için kind-10112 değiştirilebilir olay olarak kaydedilir. - Önerilen sunucular - Tek dokunuşla listenize ekleyebileceğiniz yerleşik öneriler. - Videolar - Müzik - Çalma listeleri - Bölümler - Podcastler - - %1$d bölüm - %1$d bölüm - - Yeni müzik parçası - Yeni çalma listesi - - %1$d parça - %1$d parça - - Herkese Açık Yer İşaretlerine Ekle - Herkese Açık Yer İşaretlerinden Kaldır - Profile Sabitle - Profil Sabitlemesini Kaldır - Yeni Yer İşareti Listesi - Yer İşareti Listesi Meta Verisi - Hashtag Setleri - Yeni İlgi Seti - Yeniden adlandır - Özel yap: notu yalnızca bildirilen kullanıcılara hediye sarmalıyla gönder - Herkese açık yap - Özel bir nota verilen yanıtlar her zaman özel kalır - Görebilecekler Henüz alıcı yok: bu notu yalnızca siz görebilirsiniz. Paylaşmak için kişi ekleyin. Ekle Kullanıcıyı bildirimlerden kaldır Bildirim göndermek için kullanıcı ara ve ekle - Yer işareti listesi meta verileri Nostr\'daki herkes tarafından görülebilir. Yalnızca özel üyeleriniz şifrelenir. - Herkese Açığa Taşı - Özele Taşı - Doldur & zap gönder - Zap gönder - %2$s\'ye %1$s sat doldur ve %3$s\'ye %4$s sat zap gönder · ücret ≈ %5$s sat - Seçenek %s - Tek seçim - Çoklu seçim - Oy kullanılamıyor - Anket yeni oylar için kapatıldı - Bu tür anketlerde kullanıcı başına yalnızca bir oy kullanılabilir - Anket yazarları kendi anketlerinde oy kullanamaz. - Bu ne anlama geliyor? - Bu içerik gönderi tarihinden bu yana değişmedi - Bu içerik değişti. Yazar değişikliği görmemiş veya onaylamamış olabilir - Medya Ekle - Resim Ekle - Video Ekle - Belge Ekle - Dosya Sunucusu - Bu dosyayı yüklemek için bir sunucu seçin - Medya Sunucuları Tercih ettiğiniz medya yükleme sunucularını ayarlayın. Önerilen Medya Sunucuları Amethyst\'in varsayılan listesi. Bunları tek tek veya liste olarak ekleyebilirsiniz. - Ödeme Hedefleri - Farklı ağlar için ödeme adresleri ekleyin (ör. bitcoin, lightning, ethereum). - Bu ödemeyi işleyecek uygulama bulunamadı. Lütfen uyumlu bir cüzdan yükleyin. - %1$s ödemelerini işleyecek uygulama yüklü değil. Lütfen uyumlu bir cüzdan yükleyin. - Ödeme açılamadı - Gizlilik Seçenekleri - Tüm Takipler - Tüm Kullanıcı Takipleri - Varsayılan Takip Listesi - Çevremdekiler - Küratörlü - Benimkiler - Sessize Alma Listesi - Yeni Takip Listesi - Yeni Takip Paketi - Listeyi Düzenle - Varsayılan port 9050\'dir - Orbot Socks Portu - Aktif Tor Motoru - Dahili sürümü veya Orbot\'u kullanın - Tor/Gizlilik Ön Ayarları - Aşağıdaki tüm ayarları hızlıca değiştirin - Onion URL/Relay\'leri - Herhangi bir .onion URL\'si için Tor kullan - DM Relay\'leri - DM gönderip almak için Tor\'u zorla kullan - Güvenilmeyen Relay\'ler - Giden/gelen relay\'lerde Tor\'u zorla kullan - Güvenilen Relay\'ler - Listelerinizdeki tüm relay\'lerde Tor\'u zorla kullan - Profil Resimleri - Profil resimleri yüklenirken Tor\'u zorla kullan - URL Önizlemeleri - URL önizlemeleri yüklenirken Tor\'u zorla kullan - Resimler - Resimler yüklenirken Tor\'u zorla kullan - Videolar - Videolar yüklenirken Tor\'u zorla kullan - Para İşlemleri - Zap, Lightning ve Cashu transferlerinde Tor\'u zorla kullan - Nostr Adres Doğrulama - NIP-05 adresleri doğrulanırken Tor\'u zorla kullan - Medya Yüklemeleri - İçerik yüklenirken Tor\'u zorla kullan - Dahili - Kapalı - Temel - Varsayılan - Medya Hariç Hepsi - Tam Gizlilik - Özel - Sunucu tarafından gerektiğinde Tor kullan - IP adresinizi rastgele relay\'lerden gizleyin - IP adresinizi resimler ve videolar hariç her şeyden gizleyin - IP adresinizi tüm bağlantılarda gizleyin - Kendinize özel ayar yapın - Özel Mesajlar - Özel bir mesaj geldiğinde sizi bilgilendirir - Alınan Zap\'lar - Birisi size zap gönderdiğinde bildirim alırsınız - %1$s sat - Kimden: %1$s - şunun için: %1$s - Yanıtla - Okundu İşaretle - Yeni mesajlar - Yeni zap\'lar - Tepkiler - Birisi gönderinize tepki verdiğinde bildirim alırsınız - %1$s gönderinize tepki verdi - şunun için: %1$s - Yeni tepkiler - Satranç - Satranç oyunu etkinlikleri hakkında sizi bilgilendirir - %1$s satranç meydan okumanızı kabul etti - %1$s hareket etti — sıra sizde - Satranç güncellemeleri - Yanıtlar - Birisi gönderinize yanıt verdiğinde bildirim alırsınız %1$s yanıtladı şurada: %1$s - Yeni yanıtlar - Bahsedilmeler - Birisi sizi bir gönderide bahsettiğinde veya alıntıladığında bildirim alırsınız - %1$s sizi bahsetti - Yeni bahsedilmeler @@ -544,36 +81,6 @@ - Gelen aramalar - Gelen sesli ve görüntülü aramalar için bildirimler - Gelen arama - Gelen sesli arama… - Gelen görüntülü arama… - %1$s ile arama - Aramalar - Devam eden arama bildirimi - Kapat - Kabul Et - Reddet - Sesi Kapat - Sesi Aç - Kamera açık - Kamera kapalı - Hoparlör - Ahize - Amethyst\'in sesli arama başlatabilmesi için mikrofon erişimine ihtiyacı var. Lütfen uygulama ayarlarından etkinleştirin. - Amethyst\'in görüntülü arama başlatabilmesi için kamera ve mikrofon erişimine ihtiyacı var. Lütfen uygulama ayarlarından etkinleştirin. - Arama Ayarları - Gerçek zamanlı bildirimler için gelen kutusu relay\'lerinize bağlantıları etkin tutar - Amethyst Bildirimleri Etkin - - %1$d gelen kutusu relay\'ine bağlandı - %1$d gelen kutusu relay\'ine bağlandı - - - %1$d relay\'e bağlandı - %1$d relay\'e bağlandı - - Gelen kutusu relay\'lerine bağlanılıyor… Her zaman açık bildirim servisi Anlık bildirim teslimi için gelen kutusu relay\'lerinize kalıcı bir bağlantı tutar. Devam eden bir bildirim gösterir. Daha fazla pil kullanır ancak bir mesajı kaçırmamanızı sağlar. - Bildirimleri Takip Edilenlere göre ayır - İki bildirim sekmesi göster — Takip Edilenler (takip ettiğiniz kişiler) ve Herkes. Okunmamış göstergesi yalnızca takip ettiğiniz kişilerin etkinlikleri için yanar. - Mesajları Göster - Bildirim sekmesine doğrudan ve grup mesajlarını dahil et. Mesajları yalnızca Mesajlar sekmesinde tutmak için kapatın. - Bildir: - Bugün - Gizle - Göster - Uyar - İstenmeyen içeriği filtrele - Tanımadığınız kişilerden 5 veya daha fazla kez birebir aynı şekilde paylaşılan gönderileri gizler - Etkinliklerime istemci etiketi ekle - Etkinleştirildiğinde, Amethyst yayımladığınız etkinliklere bir NIP-89 istemci etiketi ekler. - Raporlarda uyar - Gönderiler veya profiller, takip ettiklerinizden rapor aldığında uyarı mesajı gösterir - Topluluk kurallarını ihlal eden gönderileri gizle - Topluluk bir NIP-9B kural belgesi yayımladığında ve bir etkinlik bunu karşılamadığında, topluluk akışlarından o gönderiyi düşürür. Topluluğun yapılandırılmış kuralı yoksa hiçbir etkisi olmaz. - Filtreleme tercihleri - Engellenen içerik - Henüz hiçbir kullanıcıyı engellemiyorsunuz. - Bu oturumda hiçbir hesap istenmeyen içerik olarak işaretlenmedi. - Gizli kelime yok. İçeren gönderileri gizlemek için aşağıya bir kelime ekleyin. - Bu kullanıcı için önceden seçilmiş tepki türü yok. Değiştirmek için kalp düğmesine uzun basın - Relay\'den Oku - Relay\'e Yaz - Filtreler ve etkinlikler dahil bu relay\'e gönderilen bayt miktarı - Filtreler ve etkinlikler dahil bu relay\'den alınan bayt miktarı - Gizlilik Politikası - Çocuk Güvenliği Standartları - Hakkında & Yasal - Cashu Token\'ı - Lightning Adresi ayarlanmamış - Relay\'ler - Takip Paketleri - Okumalar - Akış Algoritmaları - Pazar Yeri - Canlı Yayınlar - Topluluklar - Sohbetler - Hassas İçerik - Bu içeriği göstermeden önce hassas içerik uyarısı ekler - Arayüz Tercihleri Uygulama Tercihleri - Çeviriler - Tepkiler - Ayarlar - Hesap Ayarları - Uygulama Ayarları - Tehlike Bölgesi - Marmot Durumunu Sıfırla - Marmot durumu sıfırlandı. - Marmot durumu sıfırlanamadı: %1$s - Her Zaman - Ölçümsüz WiFi - Hiçbir Zaman - Tam - Basitleştirilmiş - Performans - Klasik - Sistem - Açık - Koyu - Tema - Görsel Önizleme - Video Oynatma - Videoları Otomatik Oynat - URL Önizleme - Sürükleyici Kaydırma - Kaydırırken Gezinme Çubuklarını Gizle - Arayüz Modu - Gönderi stilini seçin - Profil Galeri Stili - Galeri stilini seçin - Spam Gönderenler - Sessize alındı. Sesi açmak için tıklayın - Ses açık. Sessize almak için tıklayın - %d saniye geri atla - %d saniye ileri atla - Yalnızca Konuma Özel Gönderi - Yalnızca konumu takip edenler görecektir. Genel takipçileriniz görmeyecektir. - - %1$d parça - %1$d parça - - - +%1$d daha fazla parça - +%1$d daha fazla parça - - Kapak görseli yükle - Bu parça için kapak resmi olarak kare bir görsel seçin. - Ses dosyası yükle - MP3, WAV veya FLAC seçin. Kaydettiğinizde medya sunucunuza yüklenecektir. - Kapak ve ses yükleniyor, yayınlanıyor. Ekrandan ayrılsanız bile bu işlem devam edecektir. - Çalma listesini düzenle - Kapak görseli yükle - Bu çalma listesi için kapak resmi olarak kare bir görsel seçin. - Kapak yükleniyor ve yayınlanıyor. Ekrandan ayrılsanız bile bu işlem devam edecektir. Herkese Açık Grup Özel - Konu - Yüklenemiyor - Önce mesajın alıcısını girin - Cüzdan bulunamadı - Amethyst, Nostr Wallet Connect (NWC) destekleyen herhangi bir cüzdan uygulaması bulamadı. -\n\nYapabilecekleriniz: -\n\t1. NWC Desteğini Doğrulayın: Tercih ettiğiniz cüzdan uygulamasının Nostr Wallet Connect ile uyumlu olup olmadığını iki kez kontrol edin. -\n\t2. Bağlantı Oluşturun: Cüzdan uygulamanıza gidin ve yeni bir NWC bağlantısı oluşturun. -\n\t3. Amethyst\'e Bağlayın: Cüzdanınız genellikle size üç seçenek sunar: -\n\t\t3.1 Otomatik Bağlantı: Amethyst\'i otomatik olarak açıp bağlamak için bir düğme. Öyleyse o düğmeye tıklayın, Amethyst\'i açın ve yeni ekranda kaydet\'e basın. -\n\t\t3.2 Manuel Bağlantı: Doğrudan girmek için bu ekrandaki yapıştır simgesine tıklayabileceğiniz bir Bağlantı URI\'si kopyalayın. -\n\t\t3.3 QR Kodu: Cüzdan, bu ekrandaki QR kodu düğmesiyle okuyabileceğiniz bir QR kodu oluşturur. - - Koyu, Açık veya Sistem teması - Resimleri ve GIF\'leri otomatik yükle - Videoları ve GIF\'leri otomatik yükle - Ekranda görünür olduğunda videoları otomatik oynat - URL önizlemelerini göster - Panoya kopyala - Panoya kopyalandı - Paylaş veya Kaydet DM Olarak Gönder - Medya eklendi - Medya Profil Galerinize eklendi - Zap gönderilemedi - Lightning kurulumu eksik - %1$s kullanıcısının sat almak için tanımlanmış bir lightning adresi yok - İmzalayıcı uygulama açılırken hata oluştu - İmzalayıcı uygulama bulunamadı. Uygulamanın kaldırılmamış olduğunu kontrol edin - Bu video oynatılamıyor - Codec veya format bu cihazda desteklenmiyor (%1$s). Tarayıcınızda açmayı deneyin. - Tarayıcıda aç - İmza isteği reddedildi - İmzalayıcı uygulamanın bu işlemi yetkilendirdiğinden emin olun - Lightning faturası ödemek için cüzdan bulunamadı (Hata: %1$s). Lütfen zap kullanmak için bir Lightning cüzdanı yükleyin - Lightning faturası ödemek için cüzdan bulunamadı. Lütfen zap kullanmak için bir Lightning cüzdanı yükleyin - Blossom bağlantıları açılamıyor - Blossom uygulamaları bulunamadı. Lütfen bu dosyayı görüntülemek için yerel bir Blossom uygulaması yükleyin - Gizli Kelimeler - Sessize alınan konular - Sessize alınan konu yok - Profil Resmi - Profil resimlerini göster - Fatura ödenemedi - Para çekilemedi - Cashu kullanılamadı - Mint şu hata mesajını döndürdü: %1$s - Cashu Alındı - %1$s sat cüzdanınıza gönderildi. (Ücretler: %2$s sat) - Sistemde uyumlu Cashu cüzdanı bulunamadı - Alıcının sunucularından fatura alınamadı - Cüzdan bağlantı sağlayıcınız şu hatayı döndürdü: %1$s - \"%1$s\" Lightning Adresinden LNUrl oluşturulamadı. Kullanıcının kurulumunu kontrol edin - %1$s\'den fatura alınamadı: %2$s - %1$s\'den JSON ayrıştırılırken hata oluştu. Kullanıcının lightning kurulumunu kontrol edin - %1$s\'in yanıtında geri çağırma URL\'si bulunamadı - %2$s\'den gelen fatura tutarı hatalı (%1$s sat). %3$s olması gerekirdi - Zap gönderilmeden önce lightning faturası oluşturulamadı. Alıcının lightning cüzdanı şu hatayı döndürdü: %1$s - Salt okunur kullanıcı - Tepki kurulumu yok - Bildirimler - Teslim - Uygulama içi görüntüleme - Kategoriler - %1$s\'den mesaj - Merhaba %1$s, bu hâlâ mevcut mu? - Giyim - Aksesuar - Elektronik - Mobilya - Koleksiyon - Kitaplar - Evcil Hayvanlar - Spor - Sanat - El Sanatları - Ev - Ofis - Yiyecek - Çeşitli - Diğer - Medya yüklenemedi - Sıkıştırılmış dosya açılamadı - Yükleme hatası: %1$s - Sunucu, yükleme sonrasında bir URL sağlamadı - Yüklenen medya sunucudan indirilemedi - Yükleme sonrası indirilen dosya kontrol edilemedi: %1$s - %1$s\'e yükleme başarısız oldu: %2$s - Silme başarısız oldu: %1$s - Medya NIP-95 için çok büyük - Dosyaları şifrele - Gizlilik için dosyaları yüklemeden önce şifreleyin. Bazı sunucular ücretsiz hesaplarda şifrelenmiş dosyaları kabul etmeyebilir. - Şifreli yükleme başarısız oldu - Birçok sunucu ücretsiz hesaplarda şifrelenmiş dosyaları kabul etmemektedir. Şifreleme olmadan yeniden deneyebilirsiniz. - H.265/HEVC Codec\'i Kullan - Daha küçük dosya boyutlarında daha iyi kalite sunar ancak tüm cihazlar H.265 oynatmayı desteklemez. - GIF\'i MP4\'e Dönüştür - Daha küçük dosya boyutu ve daha iyi oynatma uyumluluğu için animasyonlu GIF\'i MP4 videoya dönüştürür. - Özel meta veriyi kaldır - Yüklemeden önce desteklenen medya dosyalarından özel meta veriyi kaldırmayı dener - Meta veri kaldırılamadı - Medyadan özel meta veri kaldırılamadı. Yükleme iptal edildi. - Yükleme iptal edildi - AVIF\'ten meta veri kaldırılamıyor: %1$s - Ana Sayfa - Keşfet - Mesajlar - Bildirimler - Takvimler - Takvim listeleri - Satranç - Cüzdan - Cashu cüzdanı (NIP-60) Nutzap anahtarı (gelişmiş) Yalnızca NIP-61 nutzap almak için kullanılan ayrı bir özel anahtar. Nostr kimlik anahtarınız değildir. Yeni bir anahtar oluştur P2PK özel anahtarı (hex) - Mint\'leri düzenle Değişiklikleri kaydet - - +%1$d daha fazla - +%1$d daha fazla - - - %1$d diğer kişi tarafından önerildi - %1$d diğer kişi tarafından önerildi - - Popüler mint\'ler - Eşleşen mint\'ler - Alınan - Gönderilen - %1$s\'nin kind:38000 önerisi için bir silme isteği yayınlayın. NIP-09\'u destekleyen relay\'ler bunu kaldıracaktır. - %2$s kanıt içinde %1$s sats kurtarıldı. - %1$s sat + %2$s sat\'a kadar ücret ödensin mi? - Nutzap başarısız oldu - Notta alıcı pubkey\'i yok - Nutzap\'lar herkese açıktır ve bu özel notu ifşa eder. Bunun yerine bir Lightning zap kullanın. - Olay referansı oluşturulamıyor - Faturanın ödenmesi bekleniyor… - Mint kontrol ediliyor… - Yavaş - Hızlı - ~1 sa - ~30 dak - ~10 dak - - %1$s sats gönder, %2$d yol - %1$s sats gönder, %2$d yol - - - Bu notun %1$d yollu zap bölünmesini kullan - Bu notun %1$d yollu zap bölünmesini kullan - - - %1$d alıcıya bölün - %1$d alıcıya bölün - - - %1$d yalnızca Lightning adresli alıcı atlanıyor — zincir üstü işlem için Nostr pubkey gereklidir. - %1$d yalnızca Lightning adresli alıcı atlanıyor — zincir üstü işlem için Nostr pubkey gereklidir. - - bakiye yükleniyor - işlem oluşturuluyor - imzalanıyor - yayınlanıyor - makbuz yayımlanıyor - Bitcoin zinciri arka ucu yapılandırılmamış - Bitcoin bakiyeniz yüklenemedi - İşlem oluşturulamadı - Bir alıcı payı toz sınırının altında - İşlem imzalanamadı - İşlem yayınlanamadı - Ödeme gönderildi, ancak zap makbuzu yayımlanamadı - - Ödeme gönderildi (%2$d makbuzdan %1$d tanesi yayımlandı), ancak bir sonraki makbuz yayımlanamadı - Ödeme gönderildi (%2$d makbuzdan %1$d tanesi yayımlandı), ancak bir sonraki makbuz yayımlanamadı - - Takip Listesini İçe Aktar - Yeni Ürün - Yeni Makale - Yeni Takvim Etkinliği - Takvim Etkinliğini Düzenle - Yeni Takvim - Takvimi Düzenle - Akış - Ay - Hafta - Gün - - %1$s, %2$d etkinlik - %1$s, %2$d etkinlik - - Şu an devam ediyor - %1$s · %2$s bitiyor - Takvim etkinliğini paylaş - Takvim hatırlatıcıları - Katıldığınız bir etkinlik başlamak üzereyken uyarı alın. - Takvim etkinliği - - %1$d dakika içinde başlıyor - %1$d dakika içinde başlıyor - - Resim yükleme başarısız - Seçilen resim yüklenemedi. Tekrar deneyin veya bir URL yapıştırın. - Takvim hatırlatıcıları - Hatırlatıcı gönder - Katıldığınız bir etkinlik başlamak üzereyken bildirim gönderilir. - - %1$d dak - %1$d dak - - Haritada aç - Bağlantıyı aç - Bu gönderinin tüm tepkilerini aç - Bu gönderinin tüm tepkilerini kapat - Alt Gezinme Çubuğu Sıralamak için sürükleyin. Bir öğeyi alt çubuktan eklemek veya kaldırmak için geçiş yapın. Sıfır öğeyle alt çubuk gizlenir. Yeniden Sırala Ana Sayfa ekranında hangi sekmelerin görüneceğini seçin. Yalnızca bir sekme etkin olduğunda sekme çubuğu gizlenir. - Her Şey - Profil Arayüzü Kullanıcı profil ekranlarında hangi bölümlerin ve akışların görüneceğini seçin. Tüm seçenekler varsayılan olarak etkindir. - Profil Rozetleri - Uygulama Önerileri - Alınan Zap Akışı - Takipçi Akışı - Tepki Satırı - Video Oynatıcı Düğmeleri - Ses Görselleştirici - Son Kullanma Tarihi - Geçersiz adres - Amethyst açmak için bir URI aldı ancak bu URI geçersizdi: %1$s - DM Gelen Kutusu Relay\'leri - Arama Relay\'leri - İyi seçenekler:\n%1$s - Giden Kutusu Relay\'leri - Gelen Kutusu Relay\'leri - Relay Ayarları - Genel Giden Kutusu/Ana Sayfa Relay\'leri - Kullanıcı içeriğini bu relay\'lere gönderiyor - Bu relay türü tüm içeriğinizi saklar. Amethyst gönderilerinizi buraya gönderecek ve diğerleri içeriğinizi bulmak için bu relay\'leri kullanacaktır. 1–3 relay ekleyin. Kişisel relay\'ler, ücretli relay\'ler veya genel relay\'ler olabilir. - Genel Gelen Kutusu Relay\'leri - Kullanıcı bu relay\'lerde bildirimleri alıyor - Bu relay türü gönderilerinize gelen tüm yanıtları, yorumları, beğenileri ve zap\'ları alır. Ücretli veya ücretsiz relay\'ler olabilir. Relay operatörü tarafından belirlenen sınırlar, aldığınız bildirimleri iyi veya kötü yönde etkileyebilir. Örneğin, yorum spam saldırısına uğruyorsanız, ücretli relay\'ler spam\'i filtreleyebilir. 1–3 relay ekleyin. - DM Gelen Kutusu Relay\'leri - Kullanıcı DM\'leri bu relay\'lerde alıyor - Özel gelen kutunuz olarak kullanmak için 1–3 relay ekleyin. Diğerleri size DM göndermek için bu relay\'leri kullanacaktır. DM Gelen Kutusu relay\'leri herkesten mesaj kabul etmeli, ancak yalnızca sizin indirmenize izin vermelidir. İyi seçenekler:\n - inbox.nostr.wine (ücretli)\n - auth.nostr1.com (ücretsiz)\n - you.nostr1.com (kişisel relay\'ler - ücretli) - KeyPackage Relay\'leri - MLS KeyPackage\'larınızın yayınlandığı relay\'ler (MIP-00). Diğer kullanıcılar sizi Marmot grup sohbetlerine davet etmek için bu KeyPackage\'ları alır. KeyPackage etkinliklerini sizden kabul eden ve genel okumaya izin veren 1–3 relay ekleyin. - Özel Ana Sayfa Relay\'leri - Taslaklar ve/veya uygulama ayarları gibi başka kimsenin göremediği etkinlikleri depolamak için 1–3 relay ekleyin. İdeal olarak, bu relay\'ler yerel olmalı veya her kullanıcının içeriğini indirmeden önce kimlik doğrulaması gerektirmelidir. - Bağlı Relay\'ler - Kullanılmakta olan relay\'lerin güncel listesi - Arama Relay\'leri - İçerik veya kullanıcı ararken kullanılacak relay\'lerin listesi. Kullanılabilir seçenek yoksa etiketleme ve arama çalışmaz. NIP-50\'yi uyguladıklarından emin olun. - Yerel Relay\'ler - Bu cihazda çalışan relay\'lerin listesi. - Profilleri yerel relay\'e ilet - Alınan tüm profil (kind 0) etkinliklerini yerel relay\'inize gönderin - Güvenilen Relay\'ler - Tor bağlantısı gerektirmeyen güvendiğiniz relay\'ler - Favori Relay Akışları - Küresel akışlarını görmek için sık sık gittiğiniz relay\'ler - Proxy Relay\'leri - Uygulamanın akışlarınızı indirmek için kullanması gereken filter.nostr.wine gibi toplayıcı relay\'ler. Bu, giden kutusu modelinin yerini alır ve uygulamanın yalnızca listelerinizdeki relay\'lere bağlanmasını sağlar. - Yayın Relay\'leri - sendit.nosflare.com gibi notlarınızı diğer tüm relay\'lere iletmede uzmanlaşmış relay\'ler. Amethyst bu relay\'i sizin tarafınızdan yapılan tüm yeni etkinliklere ekleyecektir - İndeksleyici Relay\'leri - purplepag.es gibi herkesin meta verilerini ve relay listelerini barındırmada uzmanlaşmış relay\'ler. Amethyst, listelerinizde olmayan kullanıcıları bulmak için bu relay\'leri kullanacaktır. - Engellenen Relay\'ler - Amethyst bu relay\'lere hiçbir zaman bağlanmaz - Relay ayarlarını dışa aktar Genel Bakış Hakkında Bağlantılar Bakımcılar Konular - Zaman Damgası Kanıtı - Bu gönderinin %1$s tarihinden önce imzalandığına dair kanıt var. Kanıt, o tarih ve saatte Bitcoin blok zincirine işlendi. - Gönderiyi Düzenle - Taslak bir nota yanıt vermek mümkün değildir - Taslak bir notu alıntılamak mümkün değildir - Taslak bir nota tepki vermek mümkün değildir - Taslak bir nota zap atmak mümkün değildir - Taslak Not - Hatalı İstek - Sunucu isteği işleyemiyor veya işlemeyecek. - Yetkisiz - Kullanıcının geçerli kimlik doğrulama bilgileri yok - Ödeme Gerekli - Sunucu isteği tamamlamak için ödeme gerektiriyor - Yasak - Kullanıcının isteği yapmak için erişim hakları yok - Bulunamadı - Sunucu istenen adresi bulamıyor - Yönteme İzin Verilmiyor - Sunucu istek yöntemini destekliyor ancak hedef kaynağı desteklemiyor - Kabul Edilemez - Sunucu isteği karşılayan hiçbir içerik bulamıyor. - Proxy Kimlik Doğrulaması Gerekli - Kullanıcının geçerli kimlik doğrulama bilgileri yok - İstek Zaman Aşımı - Sunucu başka birini beklerken zaman aşımına uğradı - Çakışma - Sunucu kaynakla bir çakışma olduğu için isteği yerine getiremiyor - Kaldırıldı - İstenen içerik sunucudan kalıcı olarak silindi ve yeniden yüklenmeyecek - Uzunluk Gerekli - Sunucu tanımlı bir değer gerektirdiği için isteği reddediyor - Ön Koşul Başarısız - Sunucunun karşılayamadığı başlık alanlarındaki istek ön koşulları - Yük Çok Büyük - İstek sunucunun tanımlı sınırlarından daha büyük ve sunucu işlemeyi reddediyor - URI Çok Uzun - İstemci tarafından istenen URL sunucunun işleyebileceğinden çok uzun. - Desteklenmeyen Medya Türü - İstek, sunucunun desteklemediği bir medya biçimi kullanıyor - Aralık Karşılanamaz - Sunucu isteğin Range başlık alanında belirtilen değeri yerine getiremiyor. - Beklenti Başarısız - Sunucu Expect istek başlık alanında belirtilen gereksinimleri karşılayamıyor - Yükseltme Gerekli - İstemci farklı bir protokole yükseltme yapmadıkça sunucu mevcut protokolü kullanarak isteği işlemeyi reddediyor. - Dahili Sunucu Hatası - Sunucu beklenmedik bir hatayla karşılaştı ve isteği tamamlayamıyor - Uygulanmadı - Sunucu isteği yerine getiremiyor veya istek yöntemini tanımıyor - Hatalı Ağ Geçidi - Sunucu ağ geçidi olarak davranıyor ve ana bilgisayardan geçersiz yanıt aldı - Hizmet Kullanılamıyor - Bu genellikle sunucu aşırı yüklendiğinde veya bakım için kapalı olduğunda gerçekleşir - Ağ Geçidi Zaman Aşımı - Sunucu ağ geçidi veya proxy olarak davranıyordu ve yanıt beklerken zaman aşımına uğradı - HTTP Sürümü Desteklenmiyor - Sunucu istekteki HTTP sürümünü desteklemiyor - Varyant da Müzakere Ediyor - Sunucuda dahili yapılandırma hatası var - Yetersiz Depolama - Sunucu isteği başarıyla işlemek için yeterli depolamaya sahip değil - Döngü Algılandı - Sunucu isteği işlerken sonsuz bir döngü algılıyor - Ağ Kimlik Doğrulaması Gerekli - İstemcinin ağa erişmek için kimlik doğrulaması yapması gerekiyor Blossom Sunucuları İstediğiniz kadar sunucu ekleyin. Resminizi yüklerken hangisini kullanacağınızı daha sonra seçebilirsiniz - NIP-96 Sunucusu Ekle - Blossom Sunucusu Ekle İndir - Dosya açılamadı - Dosyayı açmak ve indirmek için torrent uygulaması yüklü değil. - Etkinlik bir mıknatıs bağlantısı oluşturmak için yeterli bilgiye sahip değil - Listelerim - Akışlar - Etiketler - İlgi Kümeleri - Konumlar - Topluluklar - Listeler - Akış Algoritmaları - Tüm favori akış algoritmaları - Relay\'ler - Favori Akış Algoritmaları - Özel Mesaj - Genel Mesaj - Resim paylaşılamıyor, lütfen daha sonra tekrar deneyin… - Video paylaşılamıyor, lütfen daha sonra tekrar deneyin… - Video indiriliyor… - Şu dilden çevirme - Burada gösterilen diller çevrilmeyecek. Bir dili kaldırıp tekrar çevrilmesini sağlamak için üzerine dokunun. - Çeviri dili - İçeriğin çevrileceği dili seçin. - Dil Görüntüleme Tercihleri - Her çevrilen dil çifti için önce hangi dilin gösterileceğini seçin. - Duraklat - Oynat - Bu mesaj %1$s sonra kaybolacak - Takip Listesi Meta Verileri - Takip listesi meta verileri Nostr\'daki herkes tarafından görülebilir. Yalnızca özel üyeleriniz şifrelenir. - Takip Paketi Meta Verileri - Takip paketi meta verileri Nostr\'daki herkes tarafından görülebilir ve yeni kullanıcılar için başlangıç kiti olarak birçok web sitesinde sıkça yayımlanır. - Takip Paketini Düzenle - Genişlet - Yeniden dene - Tepki - Sesli Gönderi - Sesli Yanıt - Giden Kutsu Relay\'leri - Uygulamalar - Uygulama Önerileri - Kullanıcı Ayarları - Ses Başlığı - Ses Parçası - Müzik Parçası - Müzik Çalma Listesi - Podcast Bölümü - Podcast Programı - Oluşturulan Podcast\'ler - Favori Podcast\'ler - Rozet Ödülleri - Rozet Tanımları - Kabul Edilen Rozet Seti - Profil Rozetleri - Engellenen Relay\'ler - Blossom Sunucuları - Nests Sunucuları - Yayın Relay\'leri - Yer İşareti Listesi - Eski Yer İşareti Listesi - Günlük Randevu - Takvim - Randevu - Randevu RSVP - Satranç Oyunları - Satranç Auth - Favori Relay\'ler - Satranç Meydan Okumaları - Satranç Oyunu Kabul - Satranç Hamlesi - Satranç Oyunu Sonu - Satranç Beraberlik Teklifi - Kanal Tanımı - Kanal Mesaj Gizle - Kanal Listesi - Kanal Mesajı - Kanal Meta Verisi - Kanal Kullanıcı Sessizleştir - DM Dosyası - DM Mesajı - DM Relay\'leri - İlanlar - Yorumlar - Topluluk Tanımı - Topluluk Listesi - Topluluk Gönderisi - Takip Listesi - Silmeler - Taslaklar - Emoji Paketleri - Emoji Paketi Listesi - Geçici Sohbet - Geçici Sohbet Odaları - Dosya Başlıkları - Profil Galerisi - Dosya Sunucuları - Blob Verisi - Blob Başlıkları - Tıbbi Veri - Takip Paketleri - Yeniden Paylaşımlar (16) - Geohash Takipleri - GiftWrap\'ler - Zap Hedefleri - Hashtag Takipleri - Öne Çıkanlar - Dizin Relay Listesi - Macera Prologu - Macera Sahnesi - Macera Okuması - Adlandırılmış Yer İşaretleri - Canlı Sohbetler - Canlı Yayınlar - NWC İsteği - NWC Yanıtı - Özel Zaps - Zap İsteği - Bloglar - Toplantı Odası - Oda Varlığı - Toplantı Alanı - Profil - Sessizlik Listesi - Nostr Bağlantısı - DVM Durumu - DVM İçerik İsteği - DVM İçerik Yanıtı - DVM Kullanıcı İsteği - DVM Kullanıcı Yanıtı - Kişi Listeleri - Resimler - Egzersizler - Sabitlemeler - Zap Anketi - Anket - Anket Yanıtı - Özel Relay\'ler - Proxy Relay\'ler - Genel Mesaj - Tepkiler - Kişi Kartı - Relay Kimlik Doğrulama - Relay Keşfi - Relay Monitör Duyurusu - Relay Kümesi - Raporlar - Yeniden Paylaşımlar - Kullanıcı Silme - Mühürler - Arama Relay\'leri - Kullanıcı Durumu - Notlar - Düzenlemeler - Torrentler - Torrent Yorumları - Güvenilen Relay\'ler - Güvenilen Sağlayıcılar - Sesli Mesaj - Sesli Yanıt - Web Yer İşareti - %1$d%% çalışma süresi - Namecoin Ayarları - Relay Senkronizasyonu - Bitcoin Gezgini (OTS) - sizden etkinlikler - size etkinlikler - aranabilir etkinlikler - profiller - giden kutusu listeleri - %1$s önce görüldü - %1$s tarihinde görüldü (%2$s önce) - Az önce görüldü - Hiç görülmedi - - %1$d dakika - %1$d dakika - - - %1$d saat - %1$d saat - - - %1$d gün - %1$d gün - - - %1$d hafta - %1$d hafta - - - %1$d ay - %1$d ay - - - %1$d yıl - %1$d yıl - - - %1$d bekleyen fatura - %1$d bekleyen fatura - - - Kullanmadığınız %1$d mint\'te tutulan fonlar - Kullanmadığınız %1$d mint\'te tutulan fonlar - - %1$s sat, %2$s\'e taşındı. - Cihaza yayınla - Yayını durdur - HLS Yükle - %1$s yükleniyor (%3$d içinden %2$d) - Tasdik - Tasdik Talebi - Tasdikçi Tavsiyesi - Tasdikçi Yetkinliği - Web Yer İmleri - Web Yer İmi Ekle - Web Yer İmini Düzenle - %2$s sats hedefinin %1$s\'i finanse edildi - Yeni Hedef - Silinme Talebi - Silinme talebi gönderildi - Silinme Geçmişi - Kullanıcılar - Etkinlikler - Türler - IP\'ler - Ayarlar - Metin iyileştirmeleri öner - Metin düzeltmeleri ve ton değişiklikleri önermek için cihaz üzerindeki bir yapay zeka modeli kullanır. - Takip edilen yayınlar - Etkinlikler gönderilirken takip edilen yayıncıyı kullan. Yayın sırasında canlı ilerlemeyi ve relay başına durumu gösterir. - Paylaşılacak antrenmanlar öner - Health Connect\'ten (Samsung Health, Google Fit, Fitbit, Garmin…) tamamlanan antrenmanları okur ve bunları gönderi olarak paylaşmayı önerir. İzin yalnızca bağlandığınızda istenir. - Oluşturma Ayarları - Otomatik olarak taslak oluştur - Yazarken veya gönderilmemiş metin içeren bir düzenleyiciden ayrılırken otomatik olarak taslak etkinliği kaydeder ve özel giden kutusu relay\'lerinize gönderir. - Yeni emoji paketi - Emoji paketini düzenle - Emoji Paketlerim - Emojiler - Genel emojiler herkese görünür ve bu paket emoji listenizde olduğunda tepki menünüzde ve \":\" otomatik tamamlama seçicisinde görünür. - Özel emojiler relay\'lerde şifrelenmiş olarak saklanır ve yalnızca size görünür. Genel emojiler gibi tepki menünüzde ve \":\" otomatik tamamlamada görünürler. - Taslak %1$d bayttır; bu topluluk bu türü en fazla %2$d bayt ile sınırlandırmaktadır. - Taslak %1$d bayttır; bu topluluk etkinlikleri en fazla %2$d bayt ile sınırlandırmaktadır. - Bugün bu türden %1$d etkinlik paylaştınız (sınır: %2$d). - - %1$d mesaj - %1$d mesaj - - - %1$d üye - %1$d üye - - Grup bilgisi güncellendi - Güncellenemedi: %1$s - Grup oluşturulamadı: %1$s - Gruptan ayrılınamadı: %1$s - %1$s ekleniyor… - %1$s eklenemedi: %2$s - bilinmeyen hata - Üye kaldırıldı - Üye kaldırılamadı: %1$s - Yönetici ayrıcalıkları verildi - Yönetici ayrıcalığı verilemedi: %1$s - Yönetici ayrıcalıkları iptal edildi - Yönetici ayrıcalığı iptal edilemedi: %1$s - Bu grubun üyesi değilsiniz %1$s adresindeki alıcının Lightning hizmeti kullanılamıyor. Bu adres \"%2$s\" Lightning adresinden hesaplandı. Hata: %3$s. Sunucunun çalışıp çalışmadığını ve Lightning adresinin doğru olup olmadığını kontrol edin. %1$s çözümlenemedi. Bağlı olup olmadığınızı, sunucunun çalışıp çalışmadığını ve %2$s Lightning adresinin doğru olup olmadığını kontrol edin.\n\nİstisna: %3$s %1$s adresinin fatura sorgulamasından gelen JSON ayrıştırılamadı. Kullanıcının Lightning kurulumunu kontrol edin. diff --git a/amethyst/src/main/res/values-tr/strings.xml b/amethyst/src/main/res/values-tr/strings.xml index 859b938c17..9f7f90fd26 100644 --- a/amethyst/src/main/res/values-tr/strings.xml +++ b/amethyst/src/main/res/values-tr/strings.xml @@ -1,69 +1,21 @@ - İstenmeyen - Taklit Etme - İllegal Davranış - Yanıtlamak için bir Gizli Anahtarla giriş yap - Gönderileri desteklemek için bir Gizli Anahtarla giriş yap - Gönderileri beğenmek için bir Gizli Anahtarla giriş yap - Zap miktarı belirlenmedi. Değiştirmek için uzun basılı tutun - Zap göndermek için bir Gizli Anahtarla giriş yap - Zapler - Destekle desteklendi - Ekle - Profil - Güvenlik Filtreleri - Öde - Açıklama - Aklında ne var? - Gönder Kaydet - Oluştur - Vazgeç - Hatalar - Resim galeriye kaydedildi - Resim galeriye kaydedilemedi - Kullanıcının sats alabileceği bir lightning adresi kurulu değil - "buraya yanıtlayın…" - Bilinen - Yeni İstekler - Engellenmiş Kullanıcılar - Yeni Threadler - Diyaloglar - Daha Fazla Seçenek - Takip Et - Şifreyi Gizle - Geçersiz Anahtar - Anahtar gerekiyor - Ayrıl - Takip Etme - Herkese Açık Chat - Kaldır - asla - şimdi - Çıplaklık - Küfür / Nefret dolu konuşma - Bu konuşmacıyı sustur - Bu konuşmacıyı geri yükle - Takip et - Takibi bırak - Sessize al - Sesi aç @@ -91,7 +43,6 @@ - Nest sunucu listeniz kaydedilemedi. Tekrar deneyin. @@ -105,46 +56,30 @@ - Nest sunucuları - Sunucularınız - Diğer istemcilerin tercihinizi okuyabilmesi için kind-10112 değiştirilebilir olay olarak kaydedilir. - Önerilen sunucular - Tek dokunuşla listenize ekleyebileceğiniz yerleşik öneriler. - Videolar - Müzik - Çalma listeleri - Bölümler - Podcastler - - %1$d bölüm - %1$d bölüm - - Yeni müzik parçası - Yeni çalma listesi @@ -162,18 +97,12 @@ - - %1$d parça - %1$d parça - - Herkese Açık Yer İşaretlerine Ekle - Herkese Açık Yer İşaretlerinden Kaldır @@ -183,29 +112,23 @@ - Profile Sabitle - Profil Sabitlemesini Kaldır - Yeni Yer İşareti Listesi - Yer İşareti Listesi Meta Verisi - Hashtag Setleri - Yeni İlgi Seti @@ -213,7 +136,6 @@ - Yeniden adlandır @@ -231,13 +153,9 @@ - Özel yap: notu yalnızca bildirilen kullanıcılara hediye sarmalıyla gönder - Herkese açık yap - Özel bir nota verilen yanıtlar her zaman özel kalır - Görebilecekler Henüz alıcı yok: bu notu yalnızca siz görebilirsiniz. Paylaşmak için kişi ekleyin. @@ -253,31 +171,6 @@ - Yer işareti listesi meta verileri Nostr\'daki herkes tarafından görülebilir. Yalnızca özel üyeleriniz şifrelenir. - - Herkese Açığa Taşı - - Özele Taşı - - - - - - - - - - - - - - Doldur & zap gönder - - Zap gönder - - - - %2$s\'ye %1$s sat doldur ve %3$s\'ye %4$s sat zap gönder · ücret ≈ %5$s sat @@ -293,48 +186,37 @@ - Seçenek %s - (0–100)% - - Tek seçim - - Çoklu seçim - Oy kullanılamıyor - Anket yeni oylar için kapatıldı + + + + + + + + + + + + + + + + + + + + + - Bu tür anketlerde kullanıcı başına yalnızca bir oy kullanılabilir - - - - - - - - - Anket yazarları kendi anketlerinde oy kullanamaz. - - Bu ne anlama geliyor? - - Bu içerik gönderi tarihinden bu yana değişmedi - - Bu içerik değişti. Yazar değişikliği görmemiş veya onaylamamış olabilir - - Medya Ekle - - Resim Ekle - - Video Ekle - - Belge Ekle @@ -355,11 +237,23 @@ - Dosya Sunucusu - Bu dosyayı yüklemek için bir sunucu seçin - Medya Sunucuları + + + + + + + + + + + + + + + Tercih ettiğiniz medya yükleme sunucularını ayarlayın. @@ -377,20 +271,15 @@ - Ödeme Hedefleri - Farklı ağlar için ödeme adresleri ekleyin (ör. bitcoin, lightning, ethereum). - Bu ödemeyi işleyecek uygulama bulunamadı. Lütfen uyumlu bir cüzdan yükleyin. - %1$s ödemelerini işleyecek uygulama yüklü değil. Lütfen uyumlu bir cüzdan yükleyin. - Ödeme açılamadı @@ -400,27 +289,18 @@ - Gizlilik Seçenekleri - Tüm Takipler - Tüm Kullanıcı Takipleri - Varsayılan Takip Listesi - Çevremdekiler - Global - Küratörlü - Benimkiler - Sessize Alma Listesi @@ -435,9 +315,7 @@ - Yeni Takip Listesi - Yeni Takip Paketi @@ -451,207 +329,112 @@ - Listeyi Düzenle - Varsayılan port 9050\'dir - Orbot Socks Portu - Aktif Tor Motoru - Dahili sürümü veya Orbot\'u kullanın - Tor/Gizlilik Ön Ayarları - Aşağıdaki tüm ayarları hızlıca değiştirin - Onion URL/Relay\'leri - Herhangi bir .onion URL\'si için Tor kullan - DM Relay\'leri - DM gönderip almak için Tor\'u zorla kullan - Güvenilmeyen Relay\'ler - Giden/gelen relay\'lerde Tor\'u zorla kullan - Güvenilen Relay\'ler - Listelerinizdeki tüm relay\'lerde Tor\'u zorla kullan - Profil Resimleri - Profil resimleri yüklenirken Tor\'u zorla kullan - URL Önizlemeleri - URL önizlemeleri yüklenirken Tor\'u zorla kullan - Resimler - Resimler yüklenirken Tor\'u zorla kullan - Videolar - Videolar yüklenirken Tor\'u zorla kullan - Para İşlemleri - Zap, Lightning ve Cashu transferlerinde Tor\'u zorla kullan - Nostr Adres Doğrulama - NIP-05 adresleri doğrulanırken Tor\'u zorla kullan - Medya Yüklemeleri - İçerik yüklenirken Tor\'u zorla kullan - Dahili - Orbot - Kapalı - Temel - Varsayılan - Medya Hariç Hepsi - Tam Gizlilik - Özel - Sunucu tarafından gerektiğinde Tor kullan - IP adresinizi rastgele relay\'lerden gizleyin - IP adresinizi resimler ve videolar hariç her şeyden gizleyin - IP adresinizi tüm bağlantılarda gizleyin - Kendinize özel ayar yapın - Özel Mesajlar - Özel bir mesaj geldiğinde sizi bilgilendirir - Alınan Zap\'lar - Birisi size zap gönderdiğinde bildirim alırsınız - %1$s sat - Kimden: %1$s - şunun için: %1$s - Yanıtla - Okundu İşaretle - Yeni mesajlar - Yeni zap\'lar - Tepkiler - Birisi gönderinize tepki verdiğinde bildirim alırsınız - %1$s gönderinize tepki verdi - şunun için: %1$s - Yeni tepkiler - Satranç - Satranç oyunu etkinlikleri hakkında sizi bilgilendirir - %1$s satranç meydan okumanızı kabul etti - %1$s hareket etti — sıra sizde - Satranç güncellemeleri - Yanıtlar - Birisi gönderinize yanıt verdiğinde bildirim alırsınız %1$s yanıtladı şurada: %1$s - Yeni yanıtlar - - Bahsedilmeler - - Birisi sizi bir gönderide bahsettiğinde veya alıntıladığında bildirim alırsınız - - %1$s sizi bahsetti - - Yeni bahsedilmeler - - Gelen aramalar - - Gelen sesli ve görüntülü aramalar için bildirimler - - Gelen arama - - Gelen sesli arama… - - Gelen görüntülü arama… - %1$s ile arama - - Aramalar - - Devam eden arama bildirimi - - Kapat - - Kabul Et - - Reddet - Sesi Kapat - - Sesi Aç - - Kamera açık - - Kamera kapalı - Hoparlör - Ahize - Bluetooth + + + + + + + + + + + + + + + + + - Amethyst\'in sesli arama başlatabilmesi için mikrofon erişimine ihtiyacı var. Lütfen uygulama ayarlarından etkinleştirin. - - Amethyst\'in görüntülü arama başlatabilmesi için kamera ve mikrofon erişimine ihtiyacı var. Lütfen uygulama ayarlarından etkinleştirin. - - - - Arama Ayarları @@ -667,63 +450,41 @@ - Gerçek zamanlı bildirimler için gelen kutusu relay\'lerinize bağlantıları etkin tutar - Amethyst Bildirimleri Etkin - - %1$d gelen kutusu relay\'ine bağlandı - %1$d gelen kutusu relay\'ine bağlandı - - - %1$d relay\'e bağlandı - %1$d relay\'e bağlandı - - Gelen kutusu relay\'lerine bağlanılıyor… + + + + Her zaman açık bildirim servisi Anlık bildirim teslimi için gelen kutusu relay\'lerinize kalıcı bir bağlantı tutar. Devam eden bir bildirim gösterir. Daha fazla pil kullanır ancak bir mesajı kaçırmamanızı sağlar. - Bildirimleri Takip Edilenlere göre ayır - İki bildirim sekmesi göster — Takip Edilenler (takip ettiğiniz kişiler) ve Herkes. Okunmamış göstergesi yalnızca takip ettiğiniz kişilerin etkinlikleri için yanar. - Mesajları Göster - Bildirim sekmesine doğrudan ve grup mesajlarını dahil et. Mesajları yalnızca Mesajlar sekmesinde tutmak için kapatın. - Bildir: - Bugün - Gizle - Göster - Uyar - İstenmeyen içeriği filtrele - Tanımadığınız kişilerden 5 veya daha fazla kez birebir aynı şekilde paylaşılan gönderileri gizler - Etkinliklerime istemci etiketi ekle - Etkinleştirildiğinde, Amethyst yayımladığınız etkinliklere bir NIP-89 istemci etiketi ekler. - Raporlarda uyar - Gönderiler veya profiller, takip ettiklerinizden rapor aldığında uyarı mesajı gösterir @@ -731,35 +492,23 @@ - Topluluk kurallarını ihlal eden gönderileri gizle - Topluluk bir NIP-9B kural belgesi yayımladığında ve bir etkinlik bunu karşılamadığında, topluluk akışlarından o gönderiyi düşürür. Topluluğun yapılandırılmış kuralı yoksa hiçbir etkisi olmaz. - Filtreleme tercihleri - Engellenen içerik - Henüz hiçbir kullanıcıyı engellemiyorsunuz. - Bu oturumda hiçbir hesap istenmeyen içerik olarak işaretlenmedi. - Gizli kelime yok. İçeren gönderileri gizlemek için aşağıya bir kelime ekleyin. - Bu kullanıcı için önceden seçilmiş tepki türü yok. Değiştirmek için kalp düğmesine uzun basın - Relay\'den Oku - Relay\'e Yaz - Filtreler ve etkinlikler dahil bu relay\'e gönderilen bayt miktarı - Filtreler ve etkinlikler dahil bu relay\'den alınan bayt miktarı @@ -784,12 +533,9 @@ - Gizlilik Politikası - Çocuk Güvenliği Standartları - Hakkında & Yasal @@ -833,13 +579,11 @@ - Cashu Token\'ı - Lightning Adresi ayarlanmamış @@ -855,116 +599,52 @@ - Relay\'ler - Takip Paketleri - Okumalar - Akış Algoritmaları - Pazar Yeri - Canlı Yayınlar - Topluluklar - Sohbetler - Hassas İçerik - Bu içeriği göstermeden önce hassas içerik uyarısı ekler - Arayüz Tercihleri Uygulama Tercihleri - Çeviriler - - Tepkiler - - Ayarlar - - Hesap Ayarları - - Uygulama Ayarları - - - - Tehlike Bölgesi - - Marmot Durumunu Sıfırla - Marmot durumu sıfırlandı. - - Marmot durumu sıfırlanamadı: %1$s - - Her Zaman - - Ölçümsüz WiFi - - Hiçbir Zaman - - Tam - - Basitleştirilmiş - - Performans - - Klasik - - Modern - - Sistem - - Açık - - Koyu - Wallet Connect + + + + + + + + + + + + + + + + + + + + - Tema - - Görsel Önizleme - - Video Oynatma - - Videoları Otomatik Oynat - - URL Önizleme - - Sürükleyici Kaydırma - - Kaydırırken Gezinme Çubuklarını Gizle - - Arayüz Modu - - Gönderi stilini seçin - - Profil Galeri Stili - - Galeri stilini seçin - - Spam Gönderenler - - Sessize alındı. Sesi açmak için tıklayın - - Ses açık. Sessize almak için tıklayın - - - %d saniye geri atla - - %d saniye ileri atla @@ -975,54 +655,51 @@ - Yalnızca Konuma Özel Gönderi - - Yalnızca konumu takip edenler görecektir. Genel takipçileriniz görmeyecektir. - - %1$d parça - %1$d parça - - - - +%1$d daha fazla parça - +%1$d daha fazla parça - - Kapak görseli yükle - - Bu parça için kapak resmi olarak kare bir görsel seçin. - - Ses dosyası yükle - - MP3, WAV veya FLAC seçin. Kaydettiğinizde medya sunucunuza yüklenecektir. - - - Kapak ve ses yükleniyor, yayınlanıyor. Ekrandan ayrılsanız bile bu işlem devam edecektir. - - Çalma listesini düzenle - Kapak görseli yükle - - Bu çalma listesi için kapak resmi olarak kare bir görsel seçin. - Kapak yükleniyor ve yayınlanıyor. Ekrandan ayrılsanız bile bu işlem devam edecektir. + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1040,49 +717,28 @@ Özel - Konu - - - - Yüklenemiyor - - Önce mesajın alıcısını girin - Cüzdan bulunamadı - - Amethyst, Nostr Wallet Connect (NWC) destekleyen herhangi bir cüzdan uygulaması bulamadı. -\n\nYapabilecekleriniz: -\n\t1. NWC Desteğini Doğrulayın: Tercih ettiğiniz cüzdan uygulamasının Nostr Wallet Connect ile uyumlu olup olmadığını iki kez kontrol edin. -\n\t2. Bağlantı Oluşturun: Cüzdan uygulamanıza gidin ve yeni bir NWC bağlantısı oluşturun. -\n\t3. Amethyst\'e Bağlayın: Cüzdanınız genellikle size üç seçenek sunar: -\n\t\t3.1 Otomatik Bağlantı: Amethyst\'i otomatik olarak açıp bağlamak için bir düğme. Öyleyse o düğmeye tıklayın, Amethyst\'i açın ve yeni ekranda kaydet\'e basın. -\n\t\t3.2 Manuel Bağlantı: Doğrudan girmek için bu ekrandaki yapıştır simgesine tıklayabileceğiniz bir Bağlantı URI\'si kopyalayın. -\n\t\t3.3 QR Kodu: Cüzdan, bu ekrandaki QR kodu düğmesiyle okuyabileceğiniz bir QR kodu oluşturur. - - - - Koyu, Açık veya Sistem teması - - Resimleri ve GIF\'leri otomatik yükle - - Videoları ve GIF\'leri otomatik yükle - - Ekranda görünür olduğunda videoları otomatik oynat - - URL önizlemelerini göster - - - Panoya kopyala - - Panoya kopyalandı - Paylaş veya Kaydet + + + + + + + + + + + + + + DM Olarak Gönder @@ -1091,9 +747,7 @@ - Medya eklendi - Medya Profil Galerinize eklendi @@ -1101,7 +755,6 @@ - Zap gönderilemedi @@ -1110,92 +763,53 @@ - Lightning kurulumu eksik - %1$s kullanıcısının sat almak için tanımlanmış bir lightning adresi yok - İmzalayıcı uygulama açılırken hata oluştu - İmzalayıcı uygulama bulunamadı. Uygulamanın kaldırılmamış olduğunu kontrol edin - Bu video oynatılamıyor - Codec veya format bu cihazda desteklenmiyor (%1$s). Tarayıcınızda açmayı deneyin. - Tarayıcıda aç - İmza isteği reddedildi - İmzalayıcı uygulamanın bu işlemi yetkilendirdiğinden emin olun - Lightning faturası ödemek için cüzdan bulunamadı (Hata: %1$s). Lütfen zap kullanmak için bir Lightning cüzdanı yükleyin - Lightning faturası ödemek için cüzdan bulunamadı. Lütfen zap kullanmak için bir Lightning cüzdanı yükleyin - Blossom bağlantıları açılamıyor - Blossom uygulamaları bulunamadı. Lütfen bu dosyayı görüntülemek için yerel bir Blossom uygulaması yükleyin - Gizli Kelimeler - Sessize alınan konular - Sessize alınan konu yok - Profil Resmi - Profil resimlerini göster - Fatura ödenemedi - Para çekilemedi - Cashu kullanılamadı - Mint şu hata mesajını döndürdü: %1$s - Cashu Alındı - %1$s sat cüzdanınıza gönderildi. (Ücretler: %2$s sat) - Sistemde uyumlu Cashu cüzdanı bulunamadı - Alıcının sunucularından fatura alınamadı - Cüzdan bağlantı sağlayıcınız şu hatayı döndürdü: %1$s - \"%1$s\" Lightning Adresinden LNUrl oluşturulamadı. Kullanıcının kurulumunu kontrol edin - %1$s\'den fatura alınamadı: %2$s - %1$s\'den JSON ayrıştırılırken hata oluştu. Kullanıcının lightning kurulumunu kontrol edin - %1$s\'in yanıtında geri çağırma URL\'si bulunamadı - %2$s\'den gelen fatura tutarı hatalı (%1$s sat). %3$s olması gerekirdi - Zap gönderilmeden önce lightning faturası oluşturulamadı. Alıcının lightning cüzdanı şu hatayı döndürdü: %1$s - Salt okunur kullanıcı - Tepki kurulumu yok - Bildirimler - Teslim - Uygulama içi görüntüleme - Kategoriler @@ -1209,11 +823,9 @@ - %1$s\'den mesaj - Merhaba %1$s, bu hâlâ mevcut mu? @@ -1231,63 +843,34 @@ - Giyim - Aksesuar - Elektronik - Mobilya - Koleksiyon - Kitaplar - Evcil Hayvanlar - Spor - Fitness - Sanat - El Sanatları - Ev - Ofis - Yiyecek - Çeşitli - Diğer - Medya yüklenemedi - Sıkıştırılmış dosya açılamadı - Yükleme hatası: %1$s - Sunucu, yükleme sonrasında bir URL sağlamadı - Yüklenen medya sunucudan indirilemedi - Yükleme sonrası indirilen dosya kontrol edilemedi: %1$s - %1$s\'e yükleme başarısız oldu: %2$s - Silme başarısız oldu: %1$s - Medya NIP-95 için çok büyük - Dosyaları şifrele - Gizlilik için dosyaları yüklemeden önce şifreleyin. Bazı sunucular ücretsiz hesaplarda şifrelenmiş dosyaları kabul etmeyebilir. - Şifreli yükleme başarısız oldu - Birçok sunucu ücretsiz hesaplarda şifrelenmiş dosyaları kabul etmemektedir. Şifreleme olmadan yeniden deneyebilirsiniz. @@ -1297,46 +880,28 @@ - H.265/HEVC Codec\'i Kullan - Daha küçük dosya boyutlarında daha iyi kalite sunar ancak tüm cihazlar H.265 oynatmayı desteklemez. - GIF\'i MP4\'e Dönüştür - Daha küçük dosya boyutu ve daha iyi oynatma uyumluluğu için animasyonlu GIF\'i MP4 videoya dönüştürür. - Özel meta veriyi kaldır - Yüklemeden önce desteklenen medya dosyalarından özel meta veriyi kaldırmayı dener - Meta veri kaldırılamadı - Medyadan özel meta veri kaldırılamadı. Yükleme iptal edildi. - Yükleme iptal edildi - AVIF\'ten meta veri kaldırılamıyor: %1$s - Ana Sayfa - Keşfet - Mesajlar - Bildirimler - Takvimler - Takvim listeleri - Satranç - Cüzdan @@ -1374,7 +939,6 @@ - Cashu cüzdanı (NIP-60) @@ -1396,25 +960,14 @@ P2PK özel anahtarı (hex) - Mint\'leri düzenle Değişiklikleri kaydet - - +%1$d daha fazla - +%1$d daha fazla - - - %1$d diğer kişi tarafından önerildi - %1$d diğer kişi tarafından önerildi - - Popüler mint\'ler - Eşleşen mint\'ler @@ -1428,9 +981,7 @@ - Alınan - Gönderilen @@ -1440,14 +991,12 @@ - %1$s\'nin kind:38000 önerisi için bir silme isteği yayınlayın. NIP-09\'u destekleyen relay\'ler bunu kaldıracaktır. - %2$s kanıt içinde %1$s sats kurtarıldı. @@ -1471,28 +1020,21 @@ - %1$s sat + %2$s sat\'a kadar ücret ödensin mi? - Nutzap başarısız oldu - Notta alıcı pubkey\'i yok - Nutzap\'lar herkese açıktır ve bu özel notu ifşa eder. Bunun yerine bir Lightning zap kullanın. - Olay referansı oluşturulamıyor - Faturanın ödenmesi bekleniyor… - Mint kontrol ediliyor… @@ -1528,42 +1070,19 @@ - Yavaş - Normal - Hızlı - ~1 sa - ~30 dak - ~10 dak - %1$s · %2$s sat/vB · %3$s - - %1$s sats gönder, %2$d yol - %1$s sats gönder, %2$d yol - - - Bu notun %1$d yollu zap bölünmesini kullan - Bu notun %1$d yollu zap bölünmesini kullan - - - %1$d alıcıya bölün - %1$d alıcıya bölün - - - %1$d yalnızca Lightning adresli alıcı atlanıyor — zincir üstü işlem için Nostr pubkey gereklidir. - %1$d yalnızca Lightning adresli alıcı atlanıyor — zincir üstü işlem için Nostr pubkey gereklidir. - @@ -1575,64 +1094,37 @@ - bakiye yükleniyor - işlem oluşturuluyor - imzalanıyor - yayınlanıyor - makbuz yayımlanıyor - Bitcoin zinciri arka ucu yapılandırılmamış - Bitcoin bakiyeniz yüklenemedi - İşlem oluşturulamadı - Bir alıcı payı toz sınırının altında - İşlem imzalanamadı - İşlem yayınlanamadı - Ödeme gönderildi, ancak zap makbuzu yayımlanamadı - - Ödeme gönderildi (%2$d makbuzdan %1$d tanesi yayımlandı), ancak bir sonraki makbuz yayımlanamadı - Ödeme gönderildi (%2$d makbuzdan %1$d tanesi yayımlandı), ancak bir sonraki makbuz yayımlanamadı - - Takip Listesini İçe Aktar - Yeni Ürün - Yeni Makale - Yeni Takvim Etkinliği - Takvim Etkinliğini Düzenle - Yeni Takvim - Takvimi Düzenle - Akış - Ay - Hafta - Gün @@ -1666,10 +1158,6 @@ - - %1$s, %2$d etkinlik - %1$s, %2$d etkinlik - @@ -1696,25 +1184,14 @@ - Şu an devam ediyor - %1$s · %2$s bitiyor - Takvim etkinliğini paylaş - calendar_reminders - Takvim hatırlatıcıları - Katıldığınız bir etkinlik başlamak üzereyken uyarı alın. - Takvim etkinliği - - %1$d dakika içinde başlıyor - %1$d dakika içinde başlıyor - @@ -1723,34 +1200,23 @@ - Resim yükleme başarısız - Seçilen resim yüklenemedi. Tekrar deneyin veya bir URL yapıştırın. - Takvim hatırlatıcıları - Hatırlatıcı gönder - Katıldığınız bir etkinlik başlamak üzereyken bildirim gönderilir. - - %1$d dak - %1$d dak - - Haritada aç - Bağlantıyı aç @@ -1766,20 +1232,16 @@ - Bu gönderinin tüm tepkilerini aç - Bu gönderinin tüm tepkilerini kapat - Zap - Alt Gezinme Çubuğu Sıralamak için sürükleyin. Bir öğeyi alt çubuktan eklemek veya kaldırmak için geçiş yapın. Sıfır öğeyle alt çubuk gizlenir. @@ -1790,21 +1252,10 @@ Ana Sayfa ekranında hangi sekmelerin görüneceğini seçin. Yalnızca bir sekme etkin olduğunda sekme çubuğu gizlenir. - Her Şey - Profil Arayüzü Kullanıcı profil ekranlarında hangi bölümlerin ve akışların görüneceğini seçin. Tüm seçenekler varsayılan olarak etkindir. - Profil Rozetleri - - Uygulama Önerileri - - Alınan Zap Akışı - - Takipçi Akışı - - Tepki Satırı @@ -1822,7 +1273,10 @@ - Video Oynatıcı Düğmeleri + + + + @@ -1842,7 +1296,6 @@ - Ses Görselleştirici @@ -1868,7 +1321,6 @@ - Son Kullanma Tarihi @@ -1876,11 +1328,8 @@ - Geçersiz adres - Amethyst açmak için bir URI aldı ancak bu URI geçersizdi: %1$s - DM Gelen Kutusu Relay\'leri @@ -1888,103 +1337,63 @@ - Arama Relay\'leri - İyi seçenekler:\n%1$s - Giden Kutusu Relay\'leri - Gelen Kutusu Relay\'leri - Relay Ayarları - Genel Giden Kutusu/Ana Sayfa Relay\'leri - Kullanıcı içeriğini bu relay\'lere gönderiyor - Bu relay türü tüm içeriğinizi saklar. Amethyst gönderilerinizi buraya gönderecek ve diğerleri içeriğinizi bulmak için bu relay\'leri kullanacaktır. 1–3 relay ekleyin. Kişisel relay\'ler, ücretli relay\'ler veya genel relay\'ler olabilir. - Genel Gelen Kutusu Relay\'leri - Kullanıcı bu relay\'lerde bildirimleri alıyor - Bu relay türü gönderilerinize gelen tüm yanıtları, yorumları, beğenileri ve zap\'ları alır. Ücretli veya ücretsiz relay\'ler olabilir. Relay operatörü tarafından belirlenen sınırlar, aldığınız bildirimleri iyi veya kötü yönde etkileyebilir. Örneğin, yorum spam saldırısına uğruyorsanız, ücretli relay\'ler spam\'i filtreleyebilir. 1–3 relay ekleyin. - DM Gelen Kutusu Relay\'leri - Kullanıcı DM\'leri bu relay\'lerde alıyor - Özel gelen kutunuz olarak kullanmak için 1–3 relay ekleyin. Diğerleri size DM göndermek için bu relay\'leri kullanacaktır. DM Gelen Kutusu relay\'leri herkesten mesaj kabul etmeli, ancak yalnızca sizin indirmenize izin vermelidir. İyi seçenekler:\n - inbox.nostr.wine (ücretli)\n - auth.nostr1.com (ücretsiz)\n - you.nostr1.com (kişisel relay\'ler - ücretli) - KeyPackages - KeyPackage Relay\'leri - MLS KeyPackage\'larınızın yayınlandığı relay\'ler (MIP-00). Diğer kullanıcılar sizi Marmot grup sohbetlerine davet etmek için bu KeyPackage\'ları alır. KeyPackage etkinliklerini sizden kabul eden ve genel okumaya izin veren 1–3 relay ekleyin. - Özel Ana Sayfa Relay\'leri - Taslaklar ve/veya uygulama ayarları gibi başka kimsenin göremediği etkinlikleri depolamak için 1–3 relay ekleyin. İdeal olarak, bu relay\'ler yerel olmalı veya her kullanıcının içeriğini indirmeden önce kimlik doğrulaması gerektirmelidir. - Bağlı Relay\'ler - Kullanılmakta olan relay\'lerin güncel listesi - Arama Relay\'leri - İçerik veya kullanıcı ararken kullanılacak relay\'lerin listesi. Kullanılabilir seçenek yoksa etiketleme ve arama çalışmaz. NIP-50\'yi uyguladıklarından emin olun. - Yerel Relay\'ler - Bu cihazda çalışan relay\'lerin listesi. - Profilleri yerel relay\'e ilet - Alınan tüm profil (kind 0) etkinliklerini yerel relay\'inize gönderin - Güvenilen Relay\'ler - Tor bağlantısı gerektirmeyen güvendiğiniz relay\'ler - Favori Relay Akışları - Küresel akışlarını görmek için sık sık gittiğiniz relay\'ler - Proxy Relay\'leri - Uygulamanın akışlarınızı indirmek için kullanması gereken filter.nostr.wine gibi toplayıcı relay\'ler. Bu, giden kutusu modelinin yerini alır ve uygulamanın yalnızca listelerinizdeki relay\'lere bağlanmasını sağlar. - Yayın Relay\'leri - sendit.nosflare.com gibi notlarınızı diğer tüm relay\'lere iletmede uzmanlaşmış relay\'ler. Amethyst bu relay\'i sizin tarafınızdan yapılan tüm yeni etkinliklere ekleyecektir - İndeksleyici Relay\'leri - purplepag.es gibi herkesin meta verilerini ve relay listelerini barındırmada uzmanlaşmış relay\'ler. Amethyst, listelerinizde olmayan kullanıcıları bulmak için bu relay\'leri kullanacaktır. - Engellenen Relay\'ler - Amethyst bu relay\'lere hiçbir zaman bağlanmaz - Relay ayarlarını dışa aktar @@ -2025,12 +1434,6 @@ - Zaman Damgası Kanıtı - - Bu gönderinin %1$s tarihinden önce imzalandığına dair kanıt var. Kanıt, o tarih ve saatte Bitcoin blok zincirine işlendi. - - - Gönderiyi Düzenle @@ -2041,15 +1444,6 @@ - Taslak bir nota yanıt vermek mümkün değildir - - Taslak bir notu alıntılamak mümkün değildir - - Taslak bir nota tepki vermek mümkün değildir - - Taslak bir nota zap atmak mümkün değildir - - Taslak Not @@ -2057,676 +1451,60 @@ - Hatalı İstek - Sunucu isteği işleyemiyor veya işlemeyecek. - Yetkisiz - Kullanıcının geçerli kimlik doğrulama bilgileri yok - Ödeme Gerekli - Sunucu isteği tamamlamak için ödeme gerektiriyor - Yasak - Kullanıcının isteği yapmak için erişim hakları yok - Bulunamadı - Sunucu istenen adresi bulamıyor - Yönteme İzin Verilmiyor - Sunucu istek yöntemini destekliyor ancak hedef kaynağı desteklemiyor - Kabul Edilemez - Sunucu isteği karşılayan hiçbir içerik bulamıyor. - Proxy Kimlik Doğrulaması Gerekli - Kullanıcının geçerli kimlik doğrulama bilgileri yok - İstek Zaman Aşımı - Sunucu başka birini beklerken zaman aşımına uğradı - Çakışma - Sunucu kaynakla bir çakışma olduğu için isteği yerine getiremiyor - Kaldırıldı - İstenen içerik sunucudan kalıcı olarak silindi ve yeniden yüklenmeyecek - Uzunluk Gerekli - Sunucu tanımlı bir değer gerektirdiği için isteği reddediyor - Ön Koşul Başarısız - Sunucunun karşılayamadığı başlık alanlarındaki istek ön koşulları - Yük Çok Büyük - İstek sunucunun tanımlı sınırlarından daha büyük ve sunucu işlemeyi reddediyor - URI Çok Uzun - İstemci tarafından istenen URL sunucunun işleyebileceğinden çok uzun. - Desteklenmeyen Medya Türü - İstek, sunucunun desteklemediği bir medya biçimi kullanıyor - Aralık Karşılanamaz - Sunucu isteğin Range başlık alanında belirtilen değeri yerine getiremiyor. - Beklenti Başarısız - Sunucu Expect istek başlık alanında belirtilen gereksinimleri karşılayamıyor - Yükseltme Gerekli - İstemci farklı bir protokole yükseltme yapmadıkça sunucu mevcut protokolü kullanarak isteği işlemeyi reddediyor. - Dahili Sunucu Hatası - Sunucu beklenmedik bir hatayla karşılaştı ve isteği tamamlayamıyor - Uygulanmadı - Sunucu isteği yerine getiremiyor veya istek yöntemini tanımıyor - Hatalı Ağ Geçidi - Sunucu ağ geçidi olarak davranıyor ve ana bilgisayardan geçersiz yanıt aldı - Hizmet Kullanılamıyor - Bu genellikle sunucu aşırı yüklendiğinde veya bakım için kapalı olduğunda gerçekleşir - Ağ Geçidi Zaman Aşımı - Sunucu ağ geçidi veya proxy olarak davranıyordu ve yanıt beklerken zaman aşımına uğradı - HTTP Sürümü Desteklenmiyor - Sunucu istekteki HTTP sürümünü desteklemiyor - Varyant da Müzakere Ediyor - Sunucuda dahili yapılandırma hatası var - Yetersiz Depolama - Sunucu isteği başarıyla işlemek için yeterli depolamaya sahip değil - Döngü Algılandı - Sunucu isteği işlerken sonsuz bir döngü algılıyor - Ağ Kimlik Doğrulaması Gerekli - İstemcinin ağa erişmek için kimlik doğrulaması yapması gerekiyor + + + + + + + Blossom Sunucuları İstediğiniz kadar sunucu ekleyin. Resminizi yüklerken hangisini kullanacağınızı daha sonra seçebilirsiniz - NIP-96 Sunucusu Ekle - Blossom Sunucusu Ekle İndir - Dosya açılamadı - Dosyayı açmak ve indirmek için torrent uygulaması yüklü değil. - Etkinlik bir mıknatıs bağlantısı oluşturmak için yeterli bilgiye sahip değil - Listelerim - Akışlar - Etiketler - İlgi Kümeleri - - Konumlar - - Topluluklar - - Listeler - - Akış Algoritmaları - - Tüm favori akış algoritmaları - - Relay\'ler - - - - Favori Akış Algoritmaları - - - - - - - - - - - - - - - Özel Mesaj - - Genel Mesaj - - - - Resim paylaşılamıyor, lütfen daha sonra tekrar deneyin… - - - Video paylaşılamıyor, lütfen daha sonra tekrar deneyin… - - Video indiriliyor… - - - - - - - - - - - - - - - - - - Şu dilden çevirme - - Burada gösterilen diller çevrilmeyecek. Bir dili kaldırıp tekrar çevrilmesini sağlamak için üzerine dokunun. - - Çeviri dili - - İçeriğin çevrileceği dili seçin. - - Dil Görüntüleme Tercihleri - - Her çevrilen dil çifti için önce hangi dilin gösterileceğini seçin. - - - - - - - - - - - Duraklat - - Oynat - - - - - - - - - Bu mesaj %1$s sonra kaybolacak - - - - - - - - - - - - - - - Takip Listesi Meta Verileri - - Takip listesi meta verileri Nostr\'daki herkes tarafından görülebilir. Yalnızca özel üyeleriniz şifrelenir. - - Takip Paketi Meta Verileri - - Takip paketi meta verileri Nostr\'daki herkes tarafından görülebilir ve yeni kullanıcılar için başlangıç kiti olarak birçok web sitesinde sıkça yayımlanır. - - Takip Paketini Düzenle - - - - - - - - - - - - - - - - Genişlet - - - - - Yeniden dene - - - - - - - - - - - Tepki - - Sesli Gönderi - - Sesli Yanıt - - - - - - - - - - - - - - - - - - - - - - Giden Kutsu Relay\'leri - - Uygulamalar - - Uygulama Önerileri - - Kullanıcı Ayarları - - Ses Başlığı - - Ses Parçası - - Müzik Parçası - - Müzik Çalma Listesi - - Podcast Bölümü - - Podcast Programı - - Oluşturulan Podcast\'ler - - Favori Podcast\'ler - - Rozet Ödülleri - - Rozet Tanımları - - Kabul Edilen Rozet Seti - - Profil Rozetleri - - Engellenen Relay\'ler - - Blossom Sunucuları - - Nests Sunucuları - - Blossom Auth - - Yayın Relay\'leri - - Yer İşareti Listesi - - Eski Yer İşareti Listesi - - Günlük Randevu - - Takvim - - Randevu - - Randevu RSVP - - Satranç Oyunları - - Satranç Auth - - Favori Relay\'ler - - Satranç Meydan Okumaları - - Satranç Oyunu Kabul - - Satranç Hamlesi - - Satranç Oyunu Sonu - - Satranç Beraberlik Teklifi - - Kanal Tanımı - - Kanal Mesaj Gizle - - Kanal Listesi - - Kanal Mesajı - - Kanal Meta Verisi - - Kanal Kullanıcı Sessizleştir - - DM Dosyası - - DM Mesajı - - DM Relay\'leri - - İlanlar - - Yorumlar - - Topluluk Tanımı - - Topluluk Listesi - - Topluluk Gönderisi - - Takip Listesi - - Silmeler - - Taslaklar - - Emoji Paketleri - - Emoji Paketi Listesi - - Geçici Sohbet - - Geçici Sohbet Odaları - - Dosya Başlıkları - - Profil Galerisi - - Dosya Sunucuları - - Blob Verisi - - Blob Başlıkları - - Tıbbi Veri - - Takip Paketleri - - Yeniden Paylaşımlar (16) - - Geohash Takipleri - - GiftWrap\'ler - - Git Issue - - Git Patch - - Git Repo - - Git Reply - - Zap Hedefleri - - Hashtag Takipleri - - Öne Çıkanlar - - Http Auth - - Dizin Relay Listesi - - Macera Prologu - - Macera Sahnesi - - Macera Okuması - - Adlandırılmış Yer İşaretleri - - Canlı Sohbetler - - Canlı Yayınlar - - Zaps - - NWC İsteği - - NWC Yanıtı - - Özel Zaps - - Zap İsteği - - Bloglar - - Toplantı Odası - - Oda Varlığı - - Toplantı Alanı - - Profil - - Sessizlik Listesi - - NNS - - NIP - - Nostr Bağlantısı - - DVM Durumu - - DVM İçerik İsteği - - DVM İçerik Yanıtı - - DVM Kullanıcı İsteği - - DVM Kullanıcı Yanıtı - - OTS - - PayTo - - Kişi Listeleri - - Resimler - - Egzersizler - - Sabitlemeler - - Zap Anketi - - Anket - - Anket Yanıtı - - NIP-04 DMs - - Özel Relay\'ler - - Proxy Relay\'ler - - Genel Mesaj - - Tepkiler - - Kişi Kartı - - Relay Kimlik Doğrulama - - Relay Keşfi - - Relay Monitör Duyurusu - - Relay Kümesi - - Raporlar - - Yeniden Paylaşımlar - - Kullanıcı Silme - - Mühürler - - Arama Relay\'leri - - Kullanıcı Durumu - - Notlar - - Düzenlemeler - - Torrentler - - Torrent Yorumları - - Güvenilen Relay\'ler - - Güvenilen Sağlayıcılar - - Video (Repl) - - Shorts (Repl) - - Video - - Shorts - - Sesli Mesaj - - Sesli Yanıt - - WakeUp - - Web Yer İşareti - - Wiki - - - - - - - - - - - - - - - - - %1$d%% çalışma süresi - - Namecoin Ayarları - - - - - - - - - - - %dms - - - - - - Relay Senkronizasyonu - - - - - - - - - - - - - - - - - - - - - - - - - - - - Bitcoin Gezgini (OTS) - - sizden etkinlikler - - size etkinlikler - - aranabilir etkinlikler - - DMs - - profiller - - giden kutusu listeleri - - %1$s önce görüldü - - %1$s tarihinde görüldü (%2$s önce) - - Az önce görüldü - - Hiç görülmedi - - - - %1$d dakika - %1$d dakika - - - - %1$d saat - %1$d saat - - - - %1$d gün - %1$d gün - - - - %1$d hafta - %1$d hafta - - - - %1$d ay - %1$d ay - - - - %1$d yıl - %1$d yıl - - - - %1$d mint - %1$d mint - - - - %1$d bekleyen fatura - %1$d bekleyen fatura - - - - - - - - Kullanmadığınız %1$d mint\'te tutulan fonlar - Kullanmadığınız %1$d mint\'te tutulan fonlar - @@ -2741,26 +1519,6 @@ - %1$s sat, %2$s\'e taşındı. - - - - - - - - - - - - - Cihaza yayınla - - Yayını durdur - - - - HLS Yükle @@ -2781,7 +1539,171 @@ - %1$s yükleniyor (%3$d içinden %2$d) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2799,7 +1721,6 @@ - Tasdik @@ -2807,12 +1728,9 @@ - Tasdik Talebi - Tasdikçi Tavsiyesi - Tasdikçi Yetkinliği @@ -2820,11 +1738,8 @@ - Web Yer İmleri - Web Yer İmi Ekle - Web Yer İmini Düzenle @@ -2839,7 +1754,6 @@ - %2$s sats hedefinin %1$s\'i finanse edildi @@ -2874,9 +1788,7 @@ - Yeni Hedef - Silinme Talebi @@ -2890,7 +1802,6 @@ - Silinme talebi gönderildi @@ -2904,22 +1815,16 @@ - Silinme Geçmişi - Kullanıcılar - Etkinlikler - Türler - IP\'ler - Ayarlar @@ -2949,126 +1854,313 @@ - - - - - - - - - - - - - - - - - - - - - - - Metin iyileştirmeleri öner - - Metin düzeltmeleri ve ton değişiklikleri önermek için cihaz üzerindeki bir yapay zeka modeli kullanır. - - Takip edilen yayınlar - - Etkinlikler gönderilirken takip edilen yayıncıyı kullan. Yayın sırasında canlı ilerlemeyi ve relay başına durumu gösterir. - - Paylaşılacak antrenmanlar öner - - Health Connect\'ten (Samsung Health, Google Fit, Fitbit, Garmin…) tamamlanan antrenmanları okur ve bunları gönderi olarak paylaşmayı önerir. İzin yalnızca bağlandığınızda istenir. - - Oluşturma Ayarları - - Otomatik olarak taslak oluştur - - Yazarken veya gönderilmemiş metin içeren bir düzenleyiciden ayrılırken otomatik olarak taslak etkinliği kaydeder ve özel giden kutusu relay\'lerinize gönderir. - - - - - - - - - - - - - - - - - Yeni emoji paketi - - Emoji paketini düzenle - - - - - - - - - - - - - - - - - - - - - - - - Emoji Paketlerim - - Emojiler - Genel emojiler herkese görünür ve bu paket emoji listenizde olduğunda tepki menünüzde ve \":\" otomatik tamamlama seçicisinde görünür. - Özel emojiler relay\'lerde şifrelenmiş olarak saklanır ve yalnızca size görünür. Genel emojiler gibi tepki menünüzde ve \":\" otomatik tamamlamada görünürler. - Taslak %1$d bayttır; bu topluluk bu türü en fazla %2$d bayt ile sınırlandırmaktadır. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - Taslak %1$d bayttır; bu topluluk etkinlikleri en fazla %2$d bayt ile sınırlandırmaktadır. - Bugün bu türden %1$d etkinlik paylaştınız (sınır: %2$d). - Nowhere site - Nowhere Event - Nowhere Fundraiser - Nowhere Store - Nowhere Petition - Nowhere Message - Nowhere Drop - Nowhere Art - Nowhere Forum @@ -3086,25 +2178,14 @@ - - %1$d mesaj - %1$d mesaj - - - %1$d üye - %1$d üye - - Grup bilgisi güncellendi - Güncellenemedi: %1$s - Grup oluşturulamadı: %1$s @@ -3115,13 +2196,9 @@ - Gruptan ayrılınamadı: %1$s - %1$s ekleniyor… - %1$s eklenemedi: %2$s - bilinmeyen hata @@ -3130,9 +2207,7 @@ - Üye kaldırıldı - Üye kaldırılamadı: %1$s @@ -3140,22 +2215,17 @@ - Yönetici ayrıcalıkları verildi - Yönetici ayrıcalığı verilemedi: %1$s - Yönetici ayrıcalıkları iptal edildi - Yönetici ayrıcalığı iptal edilemedi: %1$s - Bu grubun üyesi değilsiniz @@ -3174,25 +2244,6 @@ - - Bu gönderide %1$d\'den fazla hashtag var - Bu gönderide %1$d\'den fazla hashtag var - - - - %1$d varlık paketlendi - %1$d varlık paketlendi - - - - +%1$d\nyanıt - +%1$d\nyanıt - - - - - - Bu relay\'den gelen spam etkinliklerinin sayısı @@ -3201,7 +2252,6 @@ - Silme İste @@ -3210,53 +2260,41 @@ - Bir genel anahtar kullanıyorsunuz ve genel anahtarlar salt okunurdur. Takip edebilmek için özel anahtarla giriş yapın - Bir genel anahtar kullanıyorsunuz ve genel anahtarlar salt okunurdur. Takibi bırakabilmek için özel anahtarla giriş yapın - Bir genel anahtar kullanıyorsunuz ve genel anahtarlar salt okunurdur. Bir kelime veya cümleyi gizleyebilmek için özel anahtarla giriş yapın - Bir genel anahtar kullanıyorsunuz ve genel anahtarlar salt okunurdur. Bir kelime veya cümleyi gösterebilmek için özel anahtarla giriş yapın - Bir genel anahtar kullanıyorsunuz ve genel anahtarlar salt okunurdur. Yükleme yapabilmek için özel anahtarla giriş yapın - Bir genel anahtar kullanıyorsunuz ve genel anahtarlar salt okunurdur. Etkinlikleri imzalayabilmek için özel anahtarla giriş yapın - Yetkisiz Şifre Çözme - İmzalayıcı, bu işlemi gerçekleştirmek için gereken şifre çözme işlemine izin vermedi. İmzalayıcı uygulamanızda NIP-44 şifre çözmeyi etkinleştirin ve tekrar deneyin - İmzalayıcı bulunamadı - İmzalayıcı uygulaması kaldırıldı mı? İmzalayıcının kurulu olup olmadığını ve bu hesabın kayıtlı olup olmadığını kontrol edin. İmzalayıcı uygulaması değiştiyse çıkış yapıp tekrar giriş yapın. - Harici imzalayıcı, istek için beklenmedik bir yük döndürdü. Amethyst veya İmzalayıcıda bir hata olabilir. + + + + + + düzenleme #%1$s - Düzenleme Öner - Hata mesajı ayrıştırılırken hata oluştu - Fatura isteniyor… - Borç servisi ödemeyi tamamlamadı. - %2$s üzerinden %1$s ödensin mi? - Bu fatura %1$s üzerinden ödensin mi? - Bu teklif için geçerli bir miktar girin. @@ -3265,13 +2303,9 @@ - Tek seferlik - Günlük - Haftalık - Aylık @@ -3297,13 +2331,11 @@ - %1$s üzerinden ödeniyor… - Ödeme başarısız @@ -3313,10 +2345,8 @@ - Bu alıcı için harcanabilir: %1$s sats - İşlem: %1$s @@ -3325,72 +2355,13 @@ - "%1$s için Önizleme Kartı Görseli" - Bir mesaj yazın… - Gönder Yeniden adlandır - Hata - - relay\'e başarılı bağlantı yüzdesi - - - - - - - - - Telefona Kaydet - - Video indirme başladı… - - Medya indirme başladı… - - Üste sabitle - - Sabitlemeyi kaldır - - - Video telefonun video galerisine kaydedildi - - Video kaydedilemedi - - PDF İndirilenler/Amethyst klasörüne kaydedildi - - PDF kaydedilemedi - - - - - Bu cihazda kamera uygulaması bulunamadı - - - Sesli mesaj kaydetmek için tıklayıp basılı tutun - - - - - Yükleme Hatası - - Sesli mesaj yüklenemedi - - NIP-95 henüz sesli mesajlar için desteklenmiyor - - Ses yükleme başarısız: %1$s - - Yok - - Derin - - Tiz - - Nötr @@ -3401,19 +2372,48 @@ - Özel anahtar QR kodunu göster - - Şifreli özel anahtar QR kodunu göster - - Geri takip et - Geçersiz anahtar: %1$s - Parola gereklidir - Bir isim gereklidir + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3430,105 +2430,63 @@ Yeni sohbet profili: - Kaybolan Sohbet - - relay Sohbeti - - relay Sohbetleri - - relay sohbetleri, ana relay\'leri tarafından kontrol edilen sohbet gruplarıdır. - Nostr\'daki herkese görünürdür ve herkes katılabilir. - Belirli konular etrafında açık topluluklar için idealdirler. Bu grupların bir kısmı geçici niteliktedir - ve bu nedenle sohbet mesajları zamanla silinir - - MLS Grubu - - - Genel Sohbet Meta Verisi - - Genel sohbetler Nostr\'daki herkese görünürdür ve herkes - katılabilir. Belirli konular etrafında açık topluluklar için idealdirler. - Moderasyon, relay\'lerindeki gönderilerin silinmesiyle kontrol edilebilir - - relay\'ler - - Bu grubu barındıran 1–3 relay ekleyin. - Nostr istemcileri mesajları nereden indireceğini ve mesajlarınızı nereye göndereceğini öğrenmek için bu ayarı kullanır. - s - - d - - g - - Anahtarları Yedekle - Özel anahtarınız şifrelenemedi - Gizli anahtar (nsec) panoya kopyalandı - Gizli anahtarımı kopyala + + + + + + + + + + + + - Kimlik doğrulama başarısız oldu - Biyometri, bu telefonun sahibini doğrulayamadı - Biyometri, bu telefonun sahibini doğrulayamadı. Hata: %1$s - Not metni panoya kopyalandı - Yazarın @npub\'ı panoya kopyalandı - Not kimliği (@note1) panoya kopyalandı - "<Özel mesaj şifresi çözülemiyor>\n\n%1$s ve %2$s arasındaki özel/şifreli bir konuşmada adınız geçti." - Hesaplar - Gezin - Siz - Akışlar - Oluştur - Sistem - Geri - Tarayıcı Bağlantısını Paylaş - Paylaş - Görsel Olarak Paylaş - Görsel URL\'si Olarak Paylaş - Not Kimliği - Sil @@ -3539,9 +2497,7 @@ - Konuyu sustur - Konunun sesini aç @@ -3551,7 +2507,6 @@ - Kullanıcıyı Engelle ve Gizle @@ -3561,21 +2516,16 @@ - Engelle - Yer İmleri - Yer imleri başarıyla taşındı - Taslaklar - Zamanlanmış gönderiler @@ -3584,14 +2534,10 @@ - Gönderiyi zamanla - Zamanlamayı iptal et - Zamanlanmış gönderiler, uygulamayı bir sonraki açışınıza kadar yayımlanmayabilir. Güvenilir arka plan zamanlaması için Ayarlar → Arayüz Tercihleri bölümünden her zaman açık seçeneğini etkinleştirin. - Zamanlanmış gönderiler, uygulamayı yeniden açana kadar yayımlanmayabilir. Bu hesap etkinken diğer hesapların zamanlanmış gönderileri tetiklenmeyecek. Güvenilir arka plan zamanlaması için Ayarlar → Arayüz Tercihleri bölümünden her zaman açık seçeneğini etkinleştirin. @@ -3600,114 +2546,61 @@ - %1$s · %2$s içinde - %1$s · %2$s önce - Yarın - Çıkış yapıldı - - Çıkış yapıldı · %d zamanlanmış gönderi silindi - Çıkış yapıldı · %d zamanlanmış gönderi silindi - - Zamanlanmış gönderi yayımlandı - Zamanlanmış gönderi başarısız oldu - Zamanlanmış gönderiler - Zamanlanmış bir gönderi yayımlandığında veya yayımlanamadığında bildirimler. - Şimdi gönder - Hata: %1$s - Zamanlandı - Gönderiliyor… - Başarısız - Gönderildi - İptal edildi - - Henüz yayımlanmamış %d zamanlanmış gönderiniz var. Çıkış yapmak bu gönderiyi kalıcı olarak silecektir. - Henüz yayımlanmamış %d zamanlanmış gönderiniz var. Çıkış yapmak bunları kalıcı olarak silecektir. - - - %d sırada - %d sırada - - - · %d tanesi 1 saatte - · %d tanesi 1 saatte - - - %d relay\'e - %d relay\'e - - Not kimliği kopyalandı - Anketler - Açık - Kapalı - Rozetler - Topluluklar - Yeni Topluluk - Topluluğu Düzenle - Moderatörler - Relay\'ler - Doğrulanabilir kurallar (isteğe bağlı) - İzin verilen etkinlik türleri - Kısa metin (1) - Uzun biçimli makale (30023) - Fotoğraf gönderisi (20) - Video gönderisi (21) - Kısa video (22) - Topluluk yorumu (1111) @@ -3716,23 +2609,18 @@ - Yasaklı kullanıcılar - Web-of-trust kapısı (isteğe bağlı) - Genel maksimum etkinlik boyutu (isteğe bağlı) - Yeni Rozet - Rozet Ver @@ -3749,7 +2637,6 @@ - Profil rozetleri @@ -3773,12 +2660,9 @@ - Fotoğraflar - Egzersizler - Yeni Egzersiz @@ -3805,87 +2689,56 @@ - Koşu - Yürüyüş - Bisiklet - Doğa yürüyüşü - Yüzme - Kürek çekme - Kuvvet - Yoga - Meditasyon - Diyet - Oruç - Devre - EMOM - AMRAP - Uygulamalar Uygulamalar - nApplets - - nSites - - - Tarayıcı - Tor üzerinden yükleniyor. Açık web\'i kullanmak için dokun. - - Açık web üzerinden yükleniyor. Tor\'u kullanmak için dokun. - Favoriler - - - - Favori uygulamalar - - - Favorilere ekle - - Favorilerden kaldır - Tor üzerinden yüklenir. - - Açık web üzerinden yüklenir. - relay\'lere yayımlandı - Dosya yüklendi - Ödeme yapıldı - O uygulama henüz yüklenmedi. Bir süre sonra tekrar dene. - Son kullanılan + + + + + + + + + + + nApplet izinleri @@ -3902,51 +2755,30 @@ - nApplet %1$s… Kabuk - Kimlik - Klavye eylemleri - relay\'ler - Depolama - Ödemeler - Ağ - Yüklemeler Hangi özelliklerin mevcut olduğunu sorgula - Ortak anahtarını oku - Klavye kısayollarını bağla - Etkinliklerini oku, imzala ve yayımla - Kendi özel depolaması - Lightning faturalarını öde - Web ve Blossom kaynaklarını getir - Medya sunucuna dosya yükle - Tema - Bildirimler - Mesajlaşma - Uygulamanın renklerine uy - Sana bildirim göster - Diğer nApplet\'lerle mesaj alışverişi yap Yetenek: %1$s @@ -3954,34 +2786,19 @@ - Bu nApplet ortak anahtarını okumak istiyor. - Bu nApplet profilini ve hesap verilerini okumak istiyor. - Bu nApplet senin adına kind %1$d türünde bir etkinlik imzalayıp yayımlamak istiyor. - Bu nApplet senin adına kind %1$d türünde bir etkinlik imzalayıp yayımlamak istiyor: - Bu nApplet senin adına şifreli bir etkinlik göndermek istiyor. - Bu nApplet relay\'lerinden etkinlikleri okumak istiyor. - Bu nApplet kendi özel depolamasını kullanmak istiyor. Bu nApplet bir Lightning faturası ödemek istiyor. - Bu nApplet bir web kaynağı getirmek istiyor. - Bu nApplet medya sunucuna dosya yüklemek istiyor. - Bu nApplet sana bildirim göstermek istiyor. - Bu site Nostr anahtarınla kind %1$d türünde bir etkinlik imzalamak istiyor. - - Bu nApplet %1$d sat için bir Lightning faturası ödemek istiyor. - Bu nApplet %1$d sat için bir Lightning faturası ödemek istiyor. - @@ -3995,35 +2812,25 @@ - Kısa videolar - Genel Sohbetler - Takip Paketleri - Canlı Yayınlar - Nests - El kaldır - Eli indir - Sessize al - Sesi aç - Mesaj gönderilemedi @@ -4032,25 +2839,17 @@ - Mikrofonu kapat - Mikrofonu aç - Nests - Oda açıkken ses çalmayı sürdürür. - Nest bağlandı - Nest — Canlı - Geri dönmek için dokun. - Durdur @@ -4062,28 +2861,17 @@ - elini kaldırdı - sahneye çıktı - konuşuyor - dinleyici olarak katıldı - Nest\'ten ayrıldı - Ayrıl - Oda kapalı olarak işaretlenemedi. Yine de ayrılıyorum — oda otomatik kapanacak. - - %1$d dinleyici - %1$d dinleyici - diff --git a/amethyst/src/main/res/values-uk-rUA/strings.xml b/amethyst/src/main/res/values-uk-rUA/strings.xml index 7480369920..fa9092b9a4 100644 --- a/amethyst/src/main/res/values-uk-rUA/strings.xml +++ b/amethyst/src/main/res/values-uk-rUA/strings.xml @@ -1,122 +1,12 @@ - - Цей пост містить більше ніж %1$d хештег - Цей пост містить більше ніж %1$d хештеги - Цей пост містить більше ніж %1$d хештегів - Цей пост містить більше ніж %1$d хештега - - - %1$d актив у комплекті - %1$d активи у комплекті - %1$d активів у комплекті - %1$d актива у комплекті - - - +%1$d\\nвідповідь - +%1$d\\nвідповіді - +%1$d\\nвідповідей - +%1$d\\nвідповіді - - Спам - Кількість спам-подій, що надходять з цього relay - Видача себе за іншу особу - Незаконні дії - Запросити видалення - Увійдіть з приватним ключем щоб відповісти - Увійдіть з приватним ключем щоб просувати дописи - Увійдіть з приватним ключем щоб лайкати дописи - Не налаштовані запи. Натисніть та утримуйте для налаштування - Увійдіть з приватним ключем щоб запати - Ви використовуєте відкритий ключ, і відкриті ключі доступні лише для читання. Увійдіть за допомогою закритого ключа, щоб мати можливість стежити - Ви використовуєте відкритий ключ, і відкриті ключі доступні лише для читання. Увійдіть за допомогою закритого ключа, щоб мати можливість скасувати підписку - Ви використовуєте відкритий ключ, і відкриті ключі доступні лише для читання. Увійдіть за допомогою закритого ключа, щоб мати можливість приховати слово або речення - Ви використовуєте відкритий ключ, і відкриті ключі доступні лише для читання. Увійдіть за допомогою закритого ключа, щоб мати можливість показати слово або речення - Ви використовуєте публічний ключ, а публічні ключі доступні лише для читання. Увійдіть за допомогою приватного ключа, щоб мати можливість завантажувати файли - Ви використовуєте публічний ключ, а публічні ключі доступні лише для читання. Увійдіть за допомогою приватного ключа, щоб мати можливість підписувати події - Несанкціоноване розшифрування - Підписувач не дозволив розшифрування, необхідне для виконання цієї операції. Активуйте NIP-44 розшифрування у вашому застосунку-підписувачі та спробуйте знову - Підписувач не знайдений - Чи не було видалено застосунок-підписувач? Перевірте, чи встановлено підписувач і чи є в ньому цей обліковий запис. Вийдіть і увійдіть знову, якщо застосунок-підписувач змінився. - Зовнішній підписувач повернув дані, що не відповідають запиту. Можливо, є помилка в Amethyst або підписувачі. - Запи - Просувати підсилено редакція #%1$s - Запропонувати редагування - Додати - Помилка при обробці повідомлення про помилку - Профіль - Фільтри безпеки - Запит рахунку… - Сервіс дебетування не завершив платіж. - Сплатити %1$s через %2$s? - Сплатити цей рахунок через %1$s? - Введіть дійсну суму для цього offer. - Одноразово - Щодня - Щотижня - Щомісяця - Сплатити - Оплата через %1$s… - Платіж не вдався - Доступно для цього отримувача: %1$s sats - Транзакція: %1$s - "Перегляд для %1$s" - Опис - Що нового? - Написати повідомлення… - Надіслати Зберегти - Надіслати - Створити Перейменувати - Скасувати - Помилка - Помилки - Відсоток успішних підключень до relay - Зберегти на телефон - Фото збережено до галереї - Завантаження відео розпочато… - Завантаження медіа розпочато… - Закріпити вгорі - Відкріпити - Не вдалося зберегти фото - Відео збережено до відеогалереї телефону - Не вдалося зберегти відео - PDF збережено до Downloads/Amethyst - Не вдалося зберегти PDF - На цьому пристрої не знайдено застосунок камери - Натисніть і утримуйте, щоб записати повідомлення - Помилка завантаження - Не вдалося завантажити голосове повідомлення - NIP-95 ще не підтримується для голосових повідомлень - Помилка завантаження голосу: %1$s - Немає - Глибокий - Високий - Нейтральний - Користувач не встановив Lightning адресу для отримання чайових - "відповісти.. " - Відомі - Нові запити - Заблоковані користувачі - Нові треди - Обговорення - Більше опцій - Показати QR-код приватного ключа - Показати QR-код зашифрованого приватного ключа - Підписатися - Підписатися у відповідь - Сховати пароль - Некоректний ключ - Недійсний ключ: %1$s - Пароль обов\'язковий - Треба ввести ключ - Необхідно вказати ім\'я @@ -125,167 +15,7 @@ Новий профіль чату: - Вийти - Відписатися - Тимчасовий чат - Чат relay - Чати relay - Чати relay — це групи чатів, керовані їхнім домашнім relay. - Вони видимі всім у Nostr, і кожен може брати в них участь. - Вони чудово підходять для відкритих спільнот за певними темами. Деякі з цих груп є тимчасовими, - і тому повідомлення чату зникають з часом - Публічний чат - Метадані публічного чату - Публічні чати видимі всім у Nostr, і кожен - може брати в них участь. Вони чудово підходять для відкритих спільнот за певними темами. - Модерацію можна здійснювати, видаляючи публікації на відповідних relay - Relay - Вкажіть від 1 до 3 relay, що розміщують цю групу. - Клієнти Nostr використовують це налаштування, щоб знати, звідки завантажувати повідомлення та куди їх надсилати. - Видалити - ніколи - зараз - год - хв - дн - Нагота - Лайка / Образи - Резервне копіювання - Не вдалося зашифрувати ваш приватний ключ - Приватний ключ (nsec) скопійовано - Скопіювати мій приватний ключ - Помилка входу - Не вдалося виконати біометрику для автентифікації власника цього телефону - Не вдалося виконати біометрику для автентифікації власника цього телефону. Помилка: %1$s - Скопіювати текст - ID (npub) автора скопійовано - ID запису (note1) скопійовано - "<Не вдалося розшифрувати повідомлення>\n\nпВас згадали в приватному/зашифрованому чаті між %1$s і %2$s." - Акаунти - Навігація - Ви - Стрічки - Створити - Система - Назад - Поділитися посиланням - Поділитися - Поділитися як зображення - Поділитися як URL зображення - Скопіювати ID запису - Видалити - Заглушити гілку - Увімкнути звук гілки - - Заблокувати - Закладки - Закладки успішно перенесено - Чернетки - Заплановані публікації - Запланувати допис - Скасувати планування - Заплановані дописи можуть не опублікуватися, доки ви знову не відкриєте застосунок. Увімкніть постійний режим у Налаштування → Параметри інтерфейсу для надійного планування у фоні. - Заплановані дописи можуть не опублікуватися, доки ви знову не відкриєте застосунок. Заплановані дописи інших акаунтів не виконуватимуться, доки активний цей акаунт. Увімкніть постійний режим у Налаштування → Параметри інтерфейсу для надійного планування у фоні. - %1$s · через %2$s - %1$s · %2$s тому - Завтра - Вихід виконано - - Вихід виконано · %d запланований допис видалено - Вихід виконано · %d заплановані дописи видалено - Вихід виконано · %d запланованих дописів видалено - Вихід виконано · %d запланованих дописів видалено - - Запланований допис опубліковано - Помилка запланованого допису - Заплановані дописи - Сповіщення про публікацію або помилку запланованого допису. - Надіслати зараз - Помилка: %1$s - Заплановано - Надсилається… - Помилка - Надіслано - Скасовано - - У вас є %d запланований допис, який ще не опубліковано. Вихід з акаунта назавжди видалить його. - У вас є %d заплановані дописи, які ще не опубліковано. Вихід з акаунта назавжди видалить їх. - У вас є %d запланованих дописів, які ще не опубліковано. Вихід з акаунта назавжди видалить їх. - У вас є %d запланованих дописів, які ще не опубліковано. Вихід з акаунта назавжди видалить їх. - - - %d у черзі - %d у черзі - %d у черзі - %d у черзі - - - · %d через 1 год - · %d через 1 год - · %d через 1 год - · %d через 1 год - - - на %d relay - на %d relay - на %d relay - на %d relay - - ID нотатки скопійовано - Опитування - Відкриті - Закриті - Значки - Спільноти - Нова спільнота - Редагувати спільноту - Модератори - Relay - Перевірені правила (необов\'язково) - Дозволені типи подій - Короткий текст (1) - Стаття у довгому форматі (30023) - Допис із зображенням (20) - Відеодопис (21) - Коротке відео (22) - Коментар спільноти (1111) - Заблоковані користувачі - Фільтр мережі довіри (необов\'язково) - Глобальний максимальний розмір події (необов\'язково) - Новий значок - Присвоїти значок - Значки профілю - Зображення - Тренування - Нове тренування - Біг - Ходьба - Велоспорт - Туристичний похід - Плавання - Веслування - Силові вправи - Йога - Медитація - Дієта - Голодування - Кругове тренування - Застосунки Застосунки - Браузер - Завантаження через Tor. Торкніться, щоб використати відкриту мережу. - Завантаження через відкриту мережу. Торкніться, щоб використати Tor. - Вибране - Улюблені застосунки - Додати до улюблених - Видалити з улюблених - Завантажується через Tor. - Завантажується через відкриту мережу. - Опубліковано на relay - Завантажено файл - Виконано платіж - Цей застосунок ще не завантажено. Спробуйте ще раз за мить. - Нещодавні Дозволи nApplet Дозволів nApplet ще немає Тут з\'являться дозволи, які ви надасте nApplets. @@ -294,48 +24,11 @@ Відкликати - Ідентичність - Дії клавіатури - relay - Сховище - Платежі - Мережа - Завантаження Запитати, які можливості доступні - Читати ваш публічний ключ - Прив\'язати комбінації клавіш - Читати, підписувати та публікувати ваші події - Власне приватне сховище - Оплачувати Lightning-інвойси - Отримувати веб- та Blossom-ресурси - Завантажувати файли на ваш медіасервер - Тема - Сповіщення - Обмін повідомленнями - Відповідати кольорам вашого застосунку - Показувати вам сповіщення - Обмінюватися повідомленнями з іншими nApplets Можливість: %1$s - Цей nApplet хоче прочитати ваш публічний ключ. - Цей nApplet хоче прочитати ваш профіль і дані облікового запису. - Цей nApplet хоче підписати та опублікувати подію kind:%1$d від вашого імені. - Цей nApplet хоче підписати та опублікувати подію kind:%1$d від вашого імені: - Цей nApplet хоче надіслати зашифровану подію від вашого імені. - Цей nApplet хоче читати події з ваших relay. - Цей nApplet хоче використовувати своє приватне сховище. Цей nApplet хоче оплатити Lightning-інвойс. - Цей nApplet хоче отримати веб-ресурс. - Цей nApplet хоче завантажити файл на ваш медіасервер. - Цей nApplet хоче показати вам сповіщення. - Цей сайт хоче підписати подію kind:%1$d за допомогою вашого ключа Nostr. - - Цей nApplet хоче оплатити Lightning-інвойс на %1$d sat. - Цей nApplet хоче оплатити Lightning-інвойс на %1$d sats. - Цей nApplet хоче оплатити Lightning-інвойс на %1$d sats. - Цей nApplet хоче оплатити Lightning-інвойс на %1$d sats. - - Публічні чати - Прямі трансляції - Підняти руку - Опустити руку - Вимкнути звук - Увімкнути звук - Не вдалося надіслати повідомлення - Вимкнути мікрофон - Увімкнути мікрофон - Підтримує відтворення аудіо, поки кімната відкрита. - Nest підключено - Торкніться, щоб повернутися. - Зупинити - підняв(-ла) руку - вийшов(-ла) на сцену - говорить - приєднався(-лась) як слухач - покинув(-ла) nest - Вийти - Не вдалося позначити кімнату як закриту. Виходимо — кімната закриється автоматично. - - %1$d слухач - %1$d слухачі - %1$d слухачів - %1$d слухача - - Заглушити цього спікера - Відновити цього спікера - Стежити - Не стежити - Вимкнути звук - Увімкнути звук - Не вдалося зберегти список nest-серверів. Спробуйте ще раз. - Nest-сервери - Ваші сервери - Збережено як замінна подія kind:10112, щоб інші клієнти могли читати ваші налаштування. - Рекомендовані сервери - Вбудовані пропозиції, які можна додати до списку одним дотиком. - Відео - Музика - Плейлисти - Епізоди - Подкасти - - %1$d епізод - %1$d епізоди - %1$d епізодів - %1$d епізоду - - Новий музичний трек - Новий плейлист - - %1$d трек - %1$d треки - %1$d треків - %1$d треку - - Додати в Публічні закладки - Прибрати з Публічних закладок - Закріпити у профілі - Відкріпити від профілю - Новий список закладок - Метадані списку закладок - Набори хештегів - Новий набір інтересів - Перейменувати - Зробити приватним: надіслати нотатку у gift-wrap лише повідомленим користувачам - Зробити публічним - Відповіді на приватну нотатку завжди залишаються приватними - Видно для Немає одержувачів: лише ви зможете бачити цю нотатку. Додайте людей, щоб поділитися нею. Додати Видалити користувача з сповіщень Знайти та додати користувача для сповіщення - Метадані списків закладок може бачити будь-хто в Nostr. Тільки ваші приватні елементи зашифровані. - Перемістити до публічних - Перемістити до приватних - Поповнити & надіслати зап - Надіслати зап - Поповнити %1$s sats до %2$s і зап %3$s %4$s sats · комісія ≈ %5$s sats - Варіант %s - Одна відповідь - Кілька відповідей - Неможливо проголосувати - Опитування закрито для нових голосів - У цьому опитуванні можна голосувати тільки один раз - Автор опитування не може голосувати - Що це значить? - Фото не змінилося після публікації - Фото змінено. Автор міг не помітити зміну - Додати медіа - Додати фото - Додати відео - Додати документ - Сервер для завантаження - Оберіть сервер для завантаження цього файлу - Медіасервери Встановіть бажані сервери для завантаження медіа. Рекомендовані медіасервери Стандартний список Amethyst. Ви можете додавати їх окремо або додати весь список. - Адреси для платежів - Додайте платіжні адреси для різних мереж (наприклад, bitcoin, lightning, ethereum). - Не знайдено програми для обробки цього платежу. Будь ласка, встановіть сумісний гаманець. - Не встановлено програми для обробки платежів %1$s. Будь ласка, встановіть сумісний гаманець. - Не вдалося відкрити платіж - Параметри конфіденційності - Всі підписки - Усі підписки користувача - Стандартний список підписок - Навколо мене - Глобально - Підібрані - Мої - Список ігнорування - Новий список підписок - Новий пакет підписок - Редагувати список - Стандартний порт — 9050 - Порт Orbot Socks - Активний рушій Tor - Використовувати вбудовану версію або Orbot - Попередні налаштування Tor/конфіденційності - Швидко змінити всі налаштування нижче - Onion URL/Relay - Використовувати Tor для будь-якого .onion URL - DM Relay - Примусово використовувати Tor для надсилання та отримання DM - Ненадійні relay - Примусово використовувати Tor для outbox/inbox relay - Надійні relay - Примусово використовувати Tor для всіх relay у ваших списках - Фото профілю - Примусово використовувати Tor при завантаженні фото профілю - Попередній перегляд URL - Примусово використовувати Tor при завантаженні попереднього перегляду URL - Зображення - Примусово використовувати Tor при завантаженні зображень - Відео - Примусово використовувати Tor при завантаженні відео - Грошові операції - Примусово використовувати Tor для zap, Lightning та Cashu переказів - Верифікація Nostr-адреси - Примусово використовувати Tor при верифікації NIP-05 адрес - Завантаження медіа - Примусово використовувати Tor при завантаженні контенту - Вбудований - Вимкнено - Базовий - Стандартний - Усе, крім медіа - Повна приватність - Власний - Використовувати Tor, коли цього вимагає сервер - Приховати вашу IP-адресу від випадкових relay - Приховати вашу IP-адресу від усього, крім зображень і відео - Приховати вашу IP-адресу в усіх з\'єднаннях - Налаштуйте власний варіант - Особисті повідомлення - Сповіщення про вхідні повідомлення - Запи - Сповіщення про отримані запахи - %1$s sat - Від %1$s - за %1$s - Відповісти - Позначити як прочитане - Нові повідомлення - Нові zap - Реакції - Сповіщає вас, коли хтось реагує на ваш пост - %1$s відреагував(ла) на ваш пост - для %1$s - Нові реакції - Шахи - Сповіщає вас про події шахової гри - %1$s прийняв(ла) ваш шаховий виклик - %1$s зробив(ла) хід — ваша черга - Оновлення шахів - Відповіді - Сповіщає вас, коли хтось відповідає на ваш пост %1$s відповів(ла) на: %1$s - Нові відповіді - Згадки - Сповіщає вас, коли хтось згадує або цитує вас у пості - %1$s згадав(ла) вас - Нові згадки @@ -565,40 +80,6 @@ - Вхідні дзвінки - Сповіщення про вхідні голосові та відеодзвінки - Вхідний дзвінок - Вхідний голосовий дзвінок… - Вхідний відеодзвінок… - Дзвінок з %1$s - Дзвінки - Сповіщення про поточний дзвінок - Завершити - Прийняти - Відхилити - Вимкнути мікрофон - Увімкнути мікрофон - Камера увімкнена - Камера вимкнена - Гучномовець - Навушник - Amethyst потребує доступу до мікрофона для початку голосового дзвінка. Будь ласка, увімкніть його в налаштуваннях програми. - Amethyst потребує доступу до камери та мікрофона для початку відеодзвінка. Будь ласка, увімкніть їх у налаштуваннях програми. - Налаштування дзвінків - Підтримує активні з\'єднання з вашими inbox relay для сповіщень у реальному часі - Сповіщення Amethyst активні - - Підключено до %1$d inbox relay - Підключено до %1$d inbox relay - Підключено до %1$d inbox relay - Підключено до %1$d inbox relay - - - Підключено до %1$d relay - Підключено до %1$d relay - Підключено до %1$d relay - Підключено до %1$d relay - - Підключення до inbox relay… Постійна служба сповіщень Підтримує постійне з\'єднання з вашими inbox relay для миттєвої доставки сповіщень. Відображає постійне сповіщення. Використовує більше заряду батареї, але гарантує, що ви ніколи не пропустите повідомлення. - Розділити сповіщення за підписками - Показати дві вкладки сповіщень — «Стежу» (люди, за якими ви стежите) та «Усі». Індикатор непрочитаних світиться лише для активності від людей, за якими ви стежите. - Показувати повідомлення - Включати особисті та групові повідомлення на вкладку «Сповіщення». Вимкніть, щоб залишити повідомлення лише на вкладці «Повідомлення». - Сповіщення: - Сьогодні - Приховати - Показати - Попереджати - Фільтрувати спам - Приховує пости від незнайомців, які були абсолютно однаковими 5 або більше разів - Додавати клієнтський тег до моїх подій - Коли увімкнено, Amethyst додає NIP-89 клієнтський тег до подій, які ви публікуєте. - Попереджати про скарги - Показує попередження, коли на пости або профілі надходять скарги від людей, за якими ви стежите - Приховувати пости, що порушують правила спільноти - Виключає пости з лент спільноти, коли спільнота публікує документ правил NIP-9B і подія не відповідає їм. Не діє, якщо спільнота не має структурованих правил. - Налаштування фільтрації - Заблокований вміст - Ви ще не заблокували жодного користувача. - Жодних акаунтів не було позначено як спам у цій сесії. - Немає прихованих слів. Додайте слово нижче, щоб приховати пости, що містять його. - Для цього користувача не вибрано жодного типу реакції. Довге натискання на кнопку серця, щоб змінити - Читати з relay - Писати до relay - Кількість байтів, надісланих до цього relay, включаючи фільтри та події - Кількість байтів, отриманих від цього relay, включаючи фільтри та події - Політика конфіденційності - Стандарти безпеки дітей - Про додаток і правові відомості - Cashu токен - Lightning адресу не встановлено - Relay-сервери - Пакети підписок - Читання - Алгоритми стрічки - Торгівельний майданчик - Живі трансляції - Спільноти - Чати - Чутливий контент - Додає попередження про чутливий контент перед показом цього контенту - Параметри інтерфейсу Параметри додатку - Переклади - Реакції - Налаштування - Налаштування акаунту - Налаштування додатку - Небезпечна зона - Скинути стан Marmot - Стан Marmot скинуто. - Не вдалося скинути стан Marmot: %1$s - Завжди - WiFi без ліміту - Ніколи - Повний - Спрощений - Продуктивність - Класичний - Сучасний - Система - Світла - Темна - Оформлення - Попередній перегляд - Відтворення відео - Автовідтворення відео - Перегляд URL-адреси - Розширена прокрутка - Приховати Nav панель під час прокручування - Режим інтерфейсу - Виберіть стиль публікації - Стиль галереї профілю - Виберіть стиль галереї - Спам - Звук вимкнено. Натисніть, щоб увімкнути звук - Звук увімкнено. Натисніть, щоб вимкнути звук - Перемотати назад на %d секунд - Перемотати вперед на %d секунд - Публікація лише для цього місця - Її побачать лише підписники цього місця. Ваші звичайні підписники її не побачать. - - %1$d трек - %1$d треки - %1$d треків - %1$d треків - - - +%1$d додатковий трек - +%1$d додаткові треки - +%1$d додаткових треків - +%1$d додаткових треків - - Завантажити обкладинку - Виберіть квадратне зображення для обкладинки цього треку. - Завантажити аудіофайл - Виберіть MP3, WAV або FLAC. Файл буде завантажено на ваш медіасервер після збереження. - Завантаження обкладинки та аудіо і публікація. Процес продовжиться навіть якщо ви залишите екран. - Редагувати плейлист - Завантажити обкладинку - Виберіть квадратне зображення для обкладинки цього плейлисту. - Завантаження обкладинки і публікація. Процес продовжиться навіть якщо ви залишите екран. Публічний Група Приватний - Тема - Неможливо завантажити - Спочатку введіть адресу отримувача повідомлення - Гаманець не знайдено - Amethyst не знайшов жодного гаманця, який підтримує Nostr Wallet Connect (NWC). -\n\nЩо можна зробити: -\n\t1. Перевірте підтримку NWC: переконайтеся, що ваш гаманець сумісний з Nostr Wallet Connect. -\n\t2. Створіть підключення: відкрийте гаманець і створіть нове NWC-підключення. -\n\t3. Прив\'яжіть до Amethyst: зазвичай гаманець надає три варіанти: -\n\t\t3.1 Автоматичне підключення: кнопка для автоматичного відкриття та підключення до Amethyst. Якщо так — натисніть її, відкрийте Amethyst і збережіть налаштування на новому екрані. -\n\t\t3.2 Ручне підключення: URI підключення, який можна скопіювати та вставити за допомогою значка вставки на цьому екрані. -\n\t\t3.3 QR-код: гаманець створює QR-код, який можна зчитати за допомогою кнопки QR-коду на цьому екрані. - - Темна, світла або системна тема - Автоматично завантажувати зображення і GIF - Автоматично відтворювати відео та GIF-зображення - Автоматично відтворювати відео, коли вони видимі на екрані - Попередній перегляд URL - Скопіювати в буфер - Скопійовано до буфера обміну - Поділитися або зберегти Надіслати як DM - Медіа додано - Медіа додано до вашої галереї профілю - Не вдалося надіслати файл Zap - Відсутнє налаштування Lightning - Користувач %1$s не має налаштованої Lightning адреси для отримання sats - Помилка при відкритті додатка для входу - Додаток для входу не знайдено. Перевірте чи не було видалено додаток - Неможливо відтворити це відео - Кодек або формат не підтримується на цьому пристрої (%1$s). Спробуйте відкрити у браузері. - Відкрити у браузері - Запит на підписання відхилено - Переконайтеся, що застосунок-підписант авторизував цю транзакцію - Не знайдено гаманців для оплати Lightning інвойсу (Помилка: %1$s). Встановіть Lightning гаманець для використання зап - Не знайдено гаманців для оплати Lightning інвойсу. Встановіть Lightning гаманець для використання зап - Неможливо відкрити Blossom посилання - Blossom додатки не знайдено. Встановіть локальний Blossom додаток, щоб переглянути цей файл - Приховані слова - Вимкнені теми - Немає вимкнених тем - Зображення профілю - Показувати зображення профілю - Не вдалося сплатити рахунок - Не вдалося зняти - Не вдалося отримати Cashu - Mint надав таке повідомлення про помилку: %1$s - Отримано Cashu - %1$s sats були відправлені в ваш гаманець. (Fees: %2$s sats) - У системі не знайдено сумісний гаманець Cashu - Не вдалося отримати рахунок з серверів отримувача - Постачальник підключення гаманця повернув наступну помилку: %1$s - Не вдалося скласти LNUrl з Lightning адреси «%1$s». Перевірте налаштування користувача - Не вдалося отримати інвойс від %1$s: %2$s - Помилка розбору JSON від %1$s. Перевірте Lightning налаштування користувача - URL зворотного виклику не знайдено у відповіді %1$s - Неправильна сума інвойсу (%1$s sats) від %2$s. Мало бути %3$s - Неможливо створити Lightning інвойс перед надсиланням зап. Lightning гаманець отримувача повернув таку помилку: %1$s - Користувач лише для читання - Реакції не налаштовані - Сповіщення - Доставка - Відображення у додатку - Категорії - Повідомлення від %1$s - Привіт, %1$s, це ще доступно? - Одяг - Аксесуари - Електроніка - Меблі - Колекційні елементи - Книги - Домашні тварини - Спорт - Фітнес - Мистецтво - Ремесла - Дім - Офіс - Їжа - Різне - Інше - Не вдалося завантажити фото - Не вдалося відкрити стиснутий файл - Помилка завантаження: %1$s - Сервер не задав URL після завантаження - Не вдалося завантажити завантажені медіафайли з сервера - Не вдалося перевірити завантажений файл після вивантаження: %1$s - Не вдалося завантажити на %1$s: %2$s - Не вдалося видалити: %1$s - Медіафайл занадто великий для NIP-95 - Шифрувати файли - Шифрувати файли перед вивантаженням для захисту конфіденційності. Деякі сервери можуть не приймати зашифровані файли на безкоштовних акаунтах. - Зашифроване вивантаження не вдалося - Багато серверів не приймають зашифровані файли на безкоштовних акаунтах. Ви можете повторити спробу без шифрування. - Використовувати кодек H.265/HEVC - Краща якість при менших розмірах файлів, але не всі пристрої підтримують відтворення H.265. - Конвертувати GIF у MP4 - Конвертує анімований GIF у відео MP4 для зменшення розміру файлу та кращої сумісності відтворення. - Видалити приватні метадані - Намагається видалити приватні метадані з підтримуваних медіафайлів перед вивантаженням - Метадані не вдалося видалити - Не вдалося видалити приватні метадані з медіафайлу. Вивантаження скасовано. - Вивантаження скасовано - Неможливо видалити метадані з AVIF: %1$s - Головна - Відкрити - Повідомлення - Сповіщення - Календарі - Списки календарів - Шахи - Гаманець - Cashu гаманець (NIP-60) Nutzap ключ (для досвідчених) Окремий приватний ключ, що використовується лише для отримання NIP-61 nutzap. Це не ваш ключ ідентифікації Nostr. Згенерувати новий ключ P2PK приватний ключ (hex) - Редагувати mints Зберегти зміни - - +%1$d ще - +%1$d ще - +%1$d ще - +%1$d ще - - - Рекомендовано %1$d іншим - Рекомендовано %1$d іншими - Рекомендовано %1$d іншими - Рекомендовано %1$d іншими - - Популярні mints - Відповідні mints - Отримано - Надіслано - Опублікувати запит на видалення вашої kind:38000 рекомендації %1$s. Relay, які дотримуються NIP-09, видалять її. - Відновлено %1$s sats у %2$s підтвердженнях. - Сплатити %1$s sat + до %2$s sat комісії? - Nutzap не вдався - Немає публічного ключа отримувача в нотатці - Nutzap є публічними та розкриють цю приватну нотатку. Натомість використайте Lightning zap. - Не вдалося створити посилання на event - Очікування оплати інвойсу… - Перевірка mint… - Повільно - Нормально - Швидко - ~1 год - ~30 хв - ~10 хв - - Надіслати %1$s sats, %2$d одержувачу - Надіслати %1$s sats, %2$d одержувачам - Надіслати %1$s sats, %2$d одержувачам - Надіслати %1$s sats, %2$d одержувачам - - - Використати %1$d-сторонній поділ zap цієї нотатки - Використати %1$d-сторонній поділ zap цієї нотатки - Використати %1$d-сторонній поділ zap цієї нотатки - Використати %1$d-сторонній поділ zap цієї нотатки - - - Поділ між %1$d отримувачем - Поділ між %1$d отримувачами - Поділ між %1$d отримувачами - Поділ між %1$d отримувачами - - - Пропуск %1$d отримувача, що має лише Lightning адресу — onchain потребує Nostr pubkey для отримання адреси. - Пропуск %1$d отримувачів, що мають лише Lightning адресу — onchain потребує Nostr pubkey для отримання адреси. - Пропуск %1$d отримувачів, що мають лише Lightning адресу — onchain потребує Nostr pubkey для отримання адреси. - Пропуск %1$d отримувачів, що мають лише Lightning адресу — onchain потребує Nostr pubkey для отримання адреси. - - завантаження балансу - побудова транзакції - підпис - трансляція - публікація квитанції - Bitcoin chain бекенд не налаштовано - Не вдалося завантажити ваш Bitcoin баланс - Не вдалося побудувати транзакцію - Частка отримувача нижча за пиловий ліміт - Не вдалося підписати транзакцію - Не вдалося транслювати транзакцію - Платіж надіслано, але квитанцію zap не вдалося опублікувати - - Платіж надіслано (%1$d з %2$d квитанцію опубліковано), але наступну квитанцію не вдалося опублікувати - Платіж надіслано (%1$d з %2$d квитанцій опубліковано), але наступну квитанцію не вдалося опублікувати - Платіж надіслано (%1$d з %2$d квитанцій опубліковано), але наступну квитанцію не вдалося опублікувати - Платіж надіслано (%1$d з %2$d квитанцій опубліковано), але наступну квитанцію не вдалося опублікувати - - Імпортувати підписки - Новий продукт - Нова стаття - Нова подія календаря - Редагувати подію календаря - Новий календар - Редагувати календар - Стрічка - Місяць - Тиждень - День - - %1$s, %2$d подія - %1$s, %2$d події - %1$s, %2$d подій - %1$s, %2$d подій - - Відбувається зараз - %1$s · закінчується %2$s - Поділитися подією календаря - Нагадування календаря - Сповіщення, коли подія, на яку ви зареєструвалися, ось-ось розпочнеться. - Подія календаря - - Починається через %1$d хвилину - Починається через %1$d хвилини - Починається через %1$d хвилин - Починається через %1$d хвилин - - Помилка завантаження зображення - Вибране зображення не вдалося завантажити. Спробуйте ще раз або вставте URL. - Нагадування календаря - Надсилати нагадування - Сповіщення надходить, коли подія, на яку ви зареєструвалися, ось-ось розпочнеться. - - %1$d хв - %1$d хв - %1$d хв - %1$d хв - - Відкрити на картах - Відкрити посилання - Відкрити всі реакції на цей допис - Закрити всі реакції на цей допис - Нижня навігаційна панель Перетягніть для зміни порядку. Перемикайте, щоб додати або видалити елемент із нижньої панелі. При нулі елементів нижня панель прихована. Змінити порядок Виберіть, які вкладки з\'являються на головному екрані. Якщо активна лише одна вкладка, панель вкладок прихована. - Все - Інтерфейс профілю Виберіть, які розділи та стрічки з\'являються на екранах профілів користувачів. За замовчуванням усі параметри увімкнені. - Значки профілю - Рекомендації застосунків - Стрічка отриманих Zap - Стрічка підписників - Панель реакцій - Кнопки відеоплеєра - Аудіовізуалізатор - Дата завершення - Недійсна адреса - Amethyst отримав URI для відкриття, але цей URI був недійсним: %1$s - Relay-сервери для вхідних DM - Relay-сервери для пошуку - Гарні варіанти:\n%1$s - Relay для вихідних - Relay для вхідних - Налаштування relay-серверів - Публічні Outbox/домашні relay-сервери - Користувач публікує свій вміст на цих relay-серверах - Цей тип relay-серверів зберігає весь ваш вміст. Amethyst надсилатиме ваші публікації сюди, а інші використовуватимуть ці relay-сервери для пошуку вашого вмісту. Введіть від 1 до 3 relay-серверів. Це можуть бути особисті, платні або публічні relay-сервери. - Публічні relay-сервери для вхідних повідомлень - Користувач отримує сповіщення на цих relay-серверах - Цей тип relay-серверів отримує всі відповіді, коментарі, лайки та zap-и до ваших публікацій. Це можуть бути платні або безкоштовні relay-сервери. Обмеження, встановлені оператором relay-сервера, можуть як позитивно, так і негативно впливати на отримувані вами сповіщення. Наприклад, якщо вас атакують спамом у коментарях, платні relay-сервери можуть відфільтрувати його. Введіть від 1 до 3 relay-серверів. - Relay-сервери для вхідних DM - Користувач отримує DM на цих relay-серверах - Введіть від 1 до 3 relay-серверів для вашої приватної скриньки. Інші використовуватимуть ці relay-сервери для надсилання вам DM. Relay-сервери для вхідних DM мають приймати будь-які повідомлення від будь-кого, але дозволяти завантажувати їх лише вам. Гарні варіанти:\n - inbox.nostr.wine (платно)\n - auth.nostr1.com (безкоштовно)\n - you.nostr1.com (особисті relay-сервери — платно) - Relay-сервери для KeyPackage - Relay-сервери, на яких публікуються ваші MLS KeyPackages (MIP-00). Інші користувачі завантажують ці KeyPackages, щоб запросити вас до групових чатів Marmot. Введіть від 1 до 3 relay-серверів, які приймають від вас події KeyPackage та дозволяють публічне читання. - Приватні домашні relay-сервери - Введіть від 1 до 3 relay-серверів для зберігання подій, які більше ніхто не може бачити, наприклад ваші чернетки та/або налаштування застосунку. В ідеалі ці relay-сервери мають бути локальними або вимагати автентифікації перед завантаженням вмісту кожного користувача. - Підключені relay-сервери - Поточний список використовуваних relay-серверів - Relay-сервери для пошуку - Список relay-серверів для пошуку вмісту або користувачів. Позначення та пошук не працюватимуть, якщо жодних варіантів немає. Переконайтесь, що вони підтримують NIP-50. - Локальні relay-сервери - Список relay-серверів, що працюють на цьому пристрої. - Пересилати профілі до локального relay-сервера - Надсилати всі отримані події профілю (kind 0) до вашого локального relay-сервера - Довірені relay-сервери - Relay-сервери, яким ви довіряєте і яким не потрібне підключення через Tor - Улюблені стрічки relay-серверів - Relay-сервери, на глобальні стрічки яких ви часто заходите - Proxy relay-сервери - Агрегаторні relay-сервери, які застосунок має використовувати для завантаження ваших стрічок, наприклад filter.nostr.wine. Це замінює модель outbox і змусить застосунок підключатися лише до relay-серверів у ваших списках. - Relay-сервери для розсилки - Relay-сервери, що спеціалізуються на поширенні ваших нотаток до всіх інших relay-серверів, наприклад sendit.nosflare.com. Amethyst додаватиме цей relay-сервер до всіх нових подій, створених вами - Relay-сервери-індексатори - Relay-сервери, що спеціалізуються на зберіганні метаданих та списків relay-серверів усіх користувачів, наприклад purplepag.es. Amethyst використовуватиме ці relay-сервери для пошуку користувачів, яких немає у ваших списках. - Заблоковані relay-сервери - Amethyst ніколи не підключатиметься до цих relay-серверів - Експортувати налаштування relay-серверів Веб: Огляд Про репозиторій Посилання Супровідники Теми - Доказ часової позначки - Є доказ того, що ця публікація була підписана до %1$s. Доказ засвідчено в блокчейні Bitcoin на ту дату та час. - Редагувати публікацію - Неможливо відповісти на чернетку нотатки - Неможливо процитувати чернетку нотатки - Неможливо відреагувати на чернетку нотатки - Неможливо зробити zap на чернетку нотатки - Чернетка нотатки - Bad Request — сервер не може або не хоче обробити запит. - Unauthorized — користувач не має дійсних облікових даних для автентифікації - Payment Required — сервер вимагає оплату для виконання запиту - Forbidden — користувач не має прав доступу для виконання запиту - Not Found — сервер не може знайти запитану адресу - Method Not Allowed — сервер підтримує метод запиту, але не для цього ресурсу - Not Acceptable — сервер не знаходить вмісту, що задовольняє запит. - Proxy Authentication Required — користувач не має дійсних облікових даних для автентифікації - Request Timeout — сервер вичерпав час очікування - Conflict — сервер не може виконати запит через конфлікт з ресурсом - Gone — запитаний вміст було остаточно видалено з сервера і не буде відновлено - Length Required — сервер відхиляє запит, оскільки він вимагає визначеної довжини вмісту - Precondition Failed — сервер не виконує передумови запиту, вказані в полях заголовка - Payload Too Large — запит перевищує визначені межі сервера, і сервер відмовляється його обробляти - URI Too Long — URL, запитана клієнтом, надто довга для обробки сервером. - Unsupported Media Type — запит використовує формат медіа, який сервер не підтримує - Range Not Satisfiable — сервер не може виконати значення, вказане в полі заголовка Range запиту. - Expectation Failed — сервер не може виконати вимоги, вказані в полі заголовка Expect запиту - Upgrade Required — сервер відмовляється обробляти запит за поточним протоколом, якщо клієнт не перейде на інший протокол. - Internal Server Error — сервер зіткнувся з неочікуваною помилкою і не може виконати запит - Not Implemented — сервер не може виконати запит або не розпізнає метод запиту - Bad Gateway — сервер діє як шлюз і отримав недійсну відповідь від хоста - Service Unavailable — це часто відбувається, коли сервер перевантажений або проводить технічне обслуговування - Gateway Timeout — сервер діяв як шлюз або проксі та перевищив час очікування відповіді - HTTP Version Not Supported — сервер не підтримує версію HTTP, вказану в запиті - Variant Also Negotiates — на сервері виникла внутрішня помилка конфігурації - Insufficient Storage — у сервера недостатньо місця для успішної обробки запиту - Loop Detected — сервер виявив нескінченний цикл під час обробки запиту - Network Authentication Required — клієнт має пройти автентифікацію для доступу до мережі Сервери Blossom Додайте стільки серверів, скільки потрібно. Ви зможете обрати, який використовувати пізніше, під час завантаження зображення - Додати сервер NIP-96 - Додати сервер Blossom Завантажити - Не вдалося відкрити файл - Не встановлено жодного torrent-застосунку для відкриття та завантаження файлу. - Подія не містить достатньої інформації для створення magnet-посилання - Мої списки - Стрічки - Хештеги - Набори інтересів - Місця - Спільноти - Списки - Алгоритми стрічки - Усі улюблені алгоритми стрічки - Relay-сервери - Улюблені алгоритми стрічки - Приватне повідомлення - Публічне повідомлення - Не вдалося поділитися зображенням, спробуйте пізніше… - Не вдалося поділитися відео, спробуйте пізніше… - Завантаження відео… - Не перекладати з - Мови, вказані тут, не перекладатимуться. Виберіть мову, щоб прибрати її зі списку та знову отримувати переклад. - Перекладати на - Оберіть мову, на яку перекладати вміст. - Налаштування відображення мови - Для кожної пари мов перекладу оберіть, яку мову показувати першою. - Пауза - Відтворити - Це повідомлення зникне через %1$s - Метадані списку підписок - Метадані списків підписок може бачити будь-хто у Nostr. Тільки ваші приватні учасники зашифровані. - Метадані Follow Pack - Метадані Follow Pack може бачити будь-хто у Nostr, і вони часто публікуються на багатьох сайтах як стартові набори для нових користувачів. - Редагувати Follow Pack - Розгорнути - Повторити - Реакція - Голосова публікація - Голосова відповідь - Застосунки - Рекомендації застосунків - Налаштування користувача - Аудіо заголовок - Аудіо трек - Музичний трек - Музичний плейлист - Епізод подкасту - Подкаст-шоу - Авторські подкасти - Улюблені подкасти - Нагороди бейджів - Визначення бейджів - Набір прийнятих бейджів - Бейджі профілю - Заблоковані Relays - Список закладок - Старий список закладок - Денна зустріч - Календар - Зустріч - RSVP зустрічі - Шахові партії - Улюблені Relays - Шахові виклики - Прийняття шахової партії - Шаховий хід - Кінець шахової партії - Пропозиція нічиєї - Визначення каналу - Приховати повідомлення каналу - Список каналів - Повідомлення каналу - Метадані каналу - Заглушити користувача каналу - Файл особистого повідомлення - Особисте повідомлення - Оголошення - Коментарі - Визначення спільноти - Список спільнот - Публікація спільноти - Видалення - Чернетки - Набори емодзі - Список наборів емодзі - Ефемерний чат - Ефемерні чат-кімнати - Заголовки файлів - Галерея профілю - Файлові сервери - Blob дані - Blob заголовки - Медичні дані - Репости (16) - Підписки геохешу - Цілі Zap - Підписки хештегу - Виділення - Список індексних Relays - Пролог пригоди - Сцена пригоди - Читання пригоди - Іменовані закладки - Живі чати - Живі трансляції - Приватні Zaps - Блоги - Кімната нарад - Присутність у кімнаті - Простір нарад - Профіль - Список заглушених - Списки людей - Зображення - Тренування - Закріплення - Zap-голосування - Голосування - Відповідь на голосування - Приватні relay - Проксі relay - Публічне повідомлення - Реакції - Контактна картка - Relay-автентифікація - Виявлення relay - Оголошення монітора relay - Набір relay - Звіти - Репости - Видалення користувача - Печатки - Пошукові relay - Статус користувача - Нотатки - Редагування - Торренти - Коментарі до торрентів - Довірені relay - Довірені провайдери - Відео (Repl) - Відео - Голос. повідомлення - Голосова відповідь - Веб-закладка - %1$d%% доступності - Налаштування Namecoin - %dмс - Синхронізація relay - події від вас - події до вас - події для пошуку - профілі - списки outbox - Востаннє бачено %1$s тому - Востаннє бачено %1$s (%2$s тому) - Щойно в мережі - Не спостерігався - - %1$d хвилина - %1$d хвилини - %1$d хвилин - %1$d хвилини - - - %1$d година - %1$d години - %1$d годин - %1$d години - - - %1$d день - %1$d дні - %1$d днів - %1$d дні - - - %1$d тиждень - %1$d тижні - %1$d тижнів - %1$d тижні - - - %1$d місяць - %1$d місяці - %1$d місяців - %1$d місяці - - - %1$d рік - %1$d роки - %1$d років - %1$d роки - - - %1$d очікуючий інвойс - %1$d очікуючих інвойси - %1$d очікуючих інвойсів - %1$d очікуючих інвойси - - - Кошти зберігаються в %1$d mint, який ви не використовуєте - Кошти зберігаються в %1$d mint, які ви не використовуєте - Кошти зберігаються в %1$d mint, які ви не використовуєте - Кошти зберігаються в %1$d mint, які ви не використовуєте - - Переміщено %1$s sat до %2$s. - Трансляція на пристрій - Зупинити трансляцію - Завантаження %1$s (%2$d із %3$d) - Атестація - Запит атестації - Рекомендація атестора - Компетентність атестора - Веб-закладки - Додати веб-закладку - Редагувати веб-закладку - %1$s зібрано з %2$s sats мети - Нова ціль - Запит на зникнення - Запит на зникнення надіслано - Історія зникнень - Користувачі - Події - IP-адреси - Налаштування - Пропонувати вдосконалення тексту - Використовує AI-модель на пристрої для пропозиції виправлень тексту та зміни тону. - Відстежувані трансляції - Використовувати відстежувальний транслятор під час надсилання подій. Відображає живий прогрес та статус по кожному relay під час трансляції. - Пропонувати тренування для поширення - Читає завершені тренування з Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) і пропонує поділитися ними як публікацією. Дозвіл запитується лише під час підключення. - Налаштування редактора - Автоматично створювати чернетки - Автоматично зберігає чернетку події, коли ви друкуєте або залишаєте редактор з ненадісленим текстом, і надсилає до ваших приватних вихідних relay. - Новий пакет емодзі - Редагувати пакет емодзі - Мої пакети емодзі - Емодзі - Публічні емодзі видимі всім і з\'являються в меню реакцій та автодоповненні «:», коли цей пакет знаходиться у вашому списку емодзі. - Приватні емодзі зберігаються зашифровано на relay і видимі лише вам. Вони з\'являються в меню реакцій та автодоповненні «:», як і публічні. - Чернетка займає %1$d байт; ця спільнота обмежує цей kind до %2$d байт. - Чернетка займає %1$d байт; ця спільнота обмежує події до %2$d байт. - Ви вже опублікували %1$d подій цього kind сьогодні (ліміт %2$d). - Сайт Nowhere - Подія Nowhere - Збір коштів Nowhere - Магазин Nowhere - Петиція Nowhere - Повідомлення Nowhere - Drop Nowhere - Мистецтво Nowhere - Форум Nowhere - - %1$d повідомлення - %1$d повідомлення - %1$d повідомлень - %1$d повідомлень - - - %1$d учасник - %1$d учасники - %1$d учасників - %1$d учасників - - Інформацію про групу оновлено - Не вдалося оновити: %1$s - Не вдалося створити групу: %1$s - Не вдалося покинути групу: %1$s - Додаємо %1$s… - Не вдалося додати %1$s: %2$s - невідома помилка - Учасника видалено - Не вдалося видалити учасника: %1$s - Права адміністратора надано - Не вдалося надати права адміністратора: %1$s - Права адміністратора відкликано - Не вдалося відкликати права адміністратора: %1$s - Не є учасником цієї групи Lightning-сервіс отримувача за адресою %1$s недоступний. Він був розрахований із lightning-адреси \"%2$s\". Помилка: %3$s. Перевірте, чи працює сервер і чи правильна lightning-адреса Не вдалося розв\'язати %1$s. Перевірте підключення до мережі, чи працює сервер і чи правильна lightning-адреса %2$s.\n\nВиключення: %3$s Помилка розбору JSON із запиту рахунку від %1$s. Перевірте налаштування Lightning користувача diff --git a/amethyst/src/main/res/values-uk/strings.xml b/amethyst/src/main/res/values-uk/strings.xml index 856244abd8..7cc9b7a603 100644 --- a/amethyst/src/main/res/values-uk/strings.xml +++ b/amethyst/src/main/res/values-uk/strings.xml @@ -1,175 +1,13 @@ - Спам - Видача себе за іншу особу - Незаконні дії - Запросити видалення - Увійдіть з приватним ключем щоб відповісти - Увійдіть з приватним ключем щоб просувати дописи - Увійдіть з приватним ключем щоб лайкати дописи - Не налаштовані запи. Натисніть та утримуйте для налаштування - Увійдіть з приватним ключем щоб запати - Ви використовуєте відкритий ключ, і відкриті ключі доступні лише для читання. Увійдіть за допомогою закритого ключа, щоб мати можливість стежити - Ви використовуєте відкритий ключ, і відкриті ключі доступні лише для читання. Увійдіть за допомогою закритого ключа, щоб мати можливість скасувати підписку - Ви використовуєте відкритий ключ, і відкриті ключі доступні лише для читання. Увійдіть за допомогою закритого ключа, щоб мати можливість приховати слово або речення - Ви використовуєте відкритий ключ, і відкриті ключі доступні лише для читання. Увійдіть за допомогою закритого ключа, щоб мати можливість показати слово або речення - Запи - Просувати підсилено - Додати - Помилка при обробці повідомлення про помилку - Профіль - Фільтри безпеки - Сплатити - "Перегляд для %1$s" - Опис - Що нового? - Надіслати Зберегти - Створити - Скасувати - Помилки - Фото збережено до галереї - Не вдалося зберегти фото - Користувач не встановив Lightning адресу для отримання чайових - "відповісти.. " - Відомі - Нові запити - Заблоковані користувачі - Нові треди - Обговорення - Більше опцій - Підписатися - Підписатися у відповідь - Сховати пароль - Некоректний ключ - Треба ввести ключ - Необхідно вказати ім\'я - Вийти - Відписатися - Публічний чат - Видалити - ніколи - зараз - год - хв - дн - Нагота - Лайка / Образи - Резервне копіювання - Приватний ключ (nsec) скопійовано - Скопіювати мій приватний ключ - Помилка входу - Не вдалося виконати біометрику для автентифікації власника цього телефону - Не вдалося виконати біометрику для автентифікації власника цього телефону. Помилка: %1$s - Скопіювати текст - ID (npub) автора скопійовано - ID запису (note1) скопійовано - "<Не вдалося розшифрувати повідомлення>\n\nпВас згадали в приватному/зашифрованому чаті між %1$s і %2$s." - Акаунти - Назад - Поділитися посиланням - Поділитися - Скопіювати ID запису - Видалити - - Заблокувати - Закладки - Додати в Публічні закладки - Прибрати з Публічних закладок - Варіант %s - Неможливо проголосувати - Опитування закрито для нових голосів - У цьому опитуванні можна голосувати тільки один раз - Автор опитування не може голосувати - Що це значить? - Фото не змінилося після публікації - Фото змінено. Автор міг не помітити зміну - Додати фото - Додати відео - Додати документ - Сервер для завантаження - Всі підписки - Глобально - Особисті повідомлення - Сповіщення про вхідні повідомлення - Запи - Сповіщення про отримані запахи - %1$s sat - Від %1$s - за %1$s - Сповіщення: - Сьогодні - Для цього користувача не вибрано жодного типу реакції. Довге натискання на кнопку серця, щоб змінити - Торгівельний майданчик - Чати - Чутливий контент - Додає попередження про чутливий контент перед показом цього контенту - Налаштування - Завжди - Ніколи - Система - Світла - Темна - Оформлення - Попередній перегляд - Відтворення відео - Перегляд URL-адреси - Розширена прокрутка - Приховати Nav панель під час прокручування - Спам - Звук вимкнено. Натисніть, щоб увімкнути звук - Звук увімкнено. Натисніть, щоб вимкнути звук - Темна, світла або системна тема - Автоматично завантажувати зображення і GIF - Автоматично відтворювати відео та GIF-зображення - Попередній перегляд URL - Скопіювати в буфер - Не вдалося надіслати файл Zap - Помилка при відкритті додатка для входу - Додаток для входу не знайдено. Перевірте чи не було видалено додаток - Зображення профілю - Показувати зображення профілю - Не вдалося сплатити рахунок - Не вдалося зняти - Mint надав таке повідомлення про помилку: %1$s - Отримано Cashu - %1$s sats були відправлені в ваш гаманець. (Fees: %2$s sats) - У системі не знайдено сумісний гаманець Cashu - Не вдалося отримати рахунок з серверів отримувача - Постачальник підключення гаманця повернув наступну помилку: %1$s - Одяг - Аксесуари - Електроніка - Меблі - Колекційні елементи - Книги - Домашні тварини - Спорт - Фітнес - Мистецтво - Ремесла - Інше - Не вдалося завантажити фото - Не вдалося відкрити стиснутий файл - Помилка завантаження: %1$s - Сервер не задав URL після завантаження - Не вдалося завантажити завантажені медіафайли з сервера - Подкасти - - %1$d епізод - %1$d епізоди - %1$d епізодів - %1$d епізоду - - Новий музичний трек - Новий плейлист @@ -187,12 +25,6 @@ - - %1$d трек - %1$d треки - %1$d треків - %1$d треку - @@ -202,29 +34,23 @@ - Закріпити у профілі - Відкріпити від профілю - Новий список закладок - Метадані списку закладок - Набори хештегів - Новий набір інтересів @@ -232,7 +58,6 @@ - Перейменувати @@ -250,13 +75,9 @@ - Зробити приватним: надіслати нотатку у gift-wrap лише повідомленим користувачам - Зробити публічним - Відповіді на приватну нотатку завжди залишаються приватними - Видно для Немає одержувачів: лише ви зможете бачити цю нотатку. Додайте людей, щоб поділитися нею. @@ -272,31 +93,6 @@ - Метадані списків закладок може бачити будь-хто в Nostr. Тільки ваші приватні елементи зашифровані. - - Перемістити до публічних - - Перемістити до приватних - - - - - - - - - - - - - - Поповнити & надіслати зап - - Надіслати зап - - - - Поповнити %1$s sats до %2$s і зап %3$s %4$s sats · комісія ≈ %5$s sats @@ -311,16 +107,6 @@ - (0–100)% - - Одна відповідь - - Кілька відповідей - - - - - Додати медіа @@ -328,9 +114,32 @@ - Оберіть сервер для завантаження цього файлу - Медіасервери + + + + + + + + + + + + + + + + + + + + + + + + + Встановіть бажані сервери для завантаження медіа. @@ -348,44 +157,6 @@ - Адреси для платежів - - - Додайте платіжні адреси для різних мереж (наприклад, bitcoin, lightning, ethereum). - - - - - - Не знайдено програми для обробки цього платежу. Будь ласка, встановіть сумісний гаманець. - - Не встановлено програми для обробки платежів %1$s. Будь ласка, встановіть сумісний гаманець. - - Не вдалося відкрити платіж - - - - - - - - - - Параметри конфіденційності - - - - Усі підписки користувача - - Стандартний список підписок - - Навколо мене - - Підібрані - - Мої - - Список ігнорування @@ -400,9 +171,6 @@ - Новий список підписок - - Новий пакет підписок @@ -416,192 +184,98 @@ - Редагувати список - Стандартний порт — 9050 - Порт Orbot Socks - Активний рушій Tor - Використовувати вбудовану версію або Orbot - Попередні налаштування Tor/конфіденційності + + + + + + + + + + + + + + + + + + + + + + + + + + + - Швидко змінити всі налаштування нижче - Onion URL/Relay - Використовувати Tor для будь-якого .onion URL - DM Relay - Примусово використовувати Tor для надсилання та отримання DM - Ненадійні relay - Примусово використовувати Tor для outbox/inbox relay - Надійні relay - Примусово використовувати Tor для всіх relay у ваших списках - Фото профілю - Примусово використовувати Tor при завантаженні фото профілю - Попередній перегляд URL - Примусово використовувати Tor при завантаженні попереднього перегляду URL - Зображення - Примусово використовувати Tor при завантаженні зображень - Відео - Примусово використовувати Tor при завантаженні відео - Грошові операції - Примусово використовувати Tor для zap, Lightning та Cashu переказів - Верифікація Nostr-адреси - Примусово використовувати Tor при верифікації NIP-05 адрес - Завантаження медіа - Примусово використовувати Tor при завантаженні контенту - Вбудований - Orbot - Вимкнено - Базовий - Стандартний - Усе, крім медіа - Повна приватність - Власний - Використовувати Tor, коли цього вимагає сервер - Приховати вашу IP-адресу від випадкових relay - Приховати вашу IP-адресу від усього, крім зображень і відео - Приховати вашу IP-адресу в усіх з\'єднаннях - Налаштуйте власний варіант - Відповісти - Позначити як прочитане - Нові повідомлення - Нові zap - Реакції - Сповіщає вас, коли хтось реагує на ваш пост - %1$s відреагував(ла) на ваш пост - для %1$s - Нові реакції - Шахи - Сповіщає вас про події шахової гри - %1$s прийняв(ла) ваш шаховий виклик - %1$s зробив(ла) хід — ваша черга - Оновлення шахів - Відповіді - Сповіщає вас, коли хтось відповідає на ваш пост %1$s відповів(ла) на: %1$s - Нові відповіді - - Згадки - - Сповіщає вас, коли хтось згадує або цитує вас у пості - - %1$s згадав(ла) вас - - Нові згадки - - Вхідні дзвінки - - Сповіщення про вхідні голосові та відеодзвінки - - Вхідний дзвінок - - Вхідний голосовий дзвінок… - - Вхідний відеодзвінок… - - - - - Дзвінок з %1$s - - Дзвінки - - Сповіщення про поточний дзвінок - - Завершити - - Прийняти - - Відхилити - - - Вимкнути мікрофон - - Увімкнути мікрофон - - Камера увімкнена - - Камера вимкнена - - - Гучномовець - - Навушник - - Bluetooth - - - - - - - Amethyst потребує доступу до мікрофона для початку голосового дзвінка. Будь ласка, увімкніть його в налаштуваннях програми. - - Amethyst потребує доступу до камери та мікрофона для початку відеодзвінка. Будь ласка, увімкніть їх у налаштуваннях програми. - - - - Налаштування дзвінків @@ -617,93 +291,52 @@ - Підтримує активні з\'єднання з вашими inbox relay для сповіщень у реальному часі - Сповіщення Amethyst активні - - Підключено до %1$d inbox relay - Підключено до %1$d inbox relay - Підключено до %1$d inbox relay - Підключено до %1$d inbox relay - - - Підключено до %1$d relay - Підключено до %1$d relay - Підключено до %1$d relay - Підключено до %1$d relay - - Підключення до inbox relay… + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Постійна служба сповіщень Підтримує постійне з\'єднання з вашими inbox relay для миттєвої доставки сповіщень. Відображає постійне сповіщення. Використовує більше заряду батареї, але гарантує, що ви ніколи не пропустите повідомлення. - Розділити сповіщення за підписками - - Показати дві вкладки сповіщень — «Стежу» (люди, за якими ви стежите) та «Усі». Індикатор непрочитаних світиться лише для активності від людей, за якими ви стежите. - - Показувати повідомлення - - Включати особисті та групові повідомлення на вкладку «Сповіщення». Вимкніть, щоб залишити повідомлення лише на вкладці «Повідомлення». - - - - - - - - Приховати - - Показати - - Попереджати - - Фільтрувати спам - - Приховує пости від незнайомців, які були абсолютно однаковими 5 або більше разів - - Додавати клієнтський тег до моїх подій - - Коли увімкнено, Amethyst додає NIP-89 клієнтський тег до подій, які ви публікуєте. - - Попереджати про скарги - - Показує попередження, коли на пости або профілі надходять скарги від людей, за якими ви стежите - - - - - - - - Приховувати пости, що порушують правила спільноти - - Виключає пости з лент спільноти, коли спільнота публікує документ правил NIP-9B і подія не відповідає їм. Не діє, якщо спільнота не має структурованих правил. - - Налаштування фільтрації - - Заблокований вміст - - - Ви ще не заблокували жодного користувача. - - Жодних акаунтів не було позначено як спам у цій сесії. - - Немає прихованих слів. Додайте слово нижче, щоб приховати пости, що містять його. - - - - - Читати з relay - - Писати до relay - - Кількість байтів, надісланих до цього relay, включаючи фільтри та події - - Кількість байтів, отриманих від цього relay, включаючи фільтри та події @@ -719,12 +352,48 @@ - Політика конфіденційності - Стандарти безпеки дітей - Про додаток і правові відомості + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -765,13 +434,6 @@ - Cashu токен - - - - - - Lightning адресу не встановлено @@ -779,130 +441,83 @@ - Relay-сервери - - Пакети підписок - Читання - Алгоритми стрічки - Живі трансляції - Спільноти - Параметри інтерфейсу + + + + + + Параметри додатку - Переклади - - Реакції - - Налаштування акаунту - - Налаштування додатку - - - - Небезпечна зона - - Скинути стан Marmot - - - - - Стан Marmot скинуто. - - Не вдалося скинути стан Marmot: %1$s - - WiFi без ліміту - - Повний - - Спрощений - - Продуктивність - - Класичний - - Сучасний - - Wallet Connect - - Автовідтворення відео - - Режим інтерфейсу - - Виберіть стиль публікації - - Стиль галереї профілю - - Виберіть стиль галереї - - - Перемотати назад на %d секунд - - Перемотати вперед на %d секунд - Публікація лише для цього місця - - Її побачать лише підписники цього місця. Ваші звичайні підписники її не побачать. - - %1$d трек - %1$d треки - %1$d треків - %1$d треків - - - - +%1$d додатковий трек - +%1$d додаткові треки - +%1$d додаткових треків - +%1$d додаткових треків - - Завантажити обкладинку - - Виберіть квадратне зображення для обкладинки цього треку. - - Завантажити аудіофайл - - Виберіть MP3, WAV або FLAC. Файл буде завантажено на ваш медіасервер після збереження. - - - Завантаження обкладинки та аудіо і публікація. Процес продовжиться навіть якщо ви залишите екран. - - Редагувати плейлист - Завантажити обкладинку - - Виберіть квадратне зображення для обкладинки цього плейлисту. - Завантаження обкладинки і публікація. Процес продовжиться навіть якщо ви залишите екран. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -920,41 +535,23 @@ Приватний - Тема - - Неможливо завантажити - - Спочатку введіть адресу отримувача повідомлення - - Гаманець не знайдено - - Amethyst не знайшов жодного гаманця, який підтримує Nostr Wallet Connect (NWC). -\n\nЩо можна зробити: -\n\t1. Перевірте підтримку NWC: переконайтеся, що ваш гаманець сумісний з Nostr Wallet Connect. -\n\t2. Створіть підключення: відкрийте гаманець і створіть нове NWC-підключення. -\n\t3. Прив\'яжіть до Amethyst: зазвичай гаманець надає три варіанти: -\n\t\t3.1 Автоматичне підключення: кнопка для автоматичного відкриття та підключення до Amethyst. Якщо так — натисніть її, відкрийте Amethyst і збережіть налаштування на новому екрані. -\n\t\t3.2 Ручне підключення: URI підключення, який можна скопіювати та вставити за допомогою значка вставки на цьому екрані. -\n\t\t3.3 QR-код: гаманець створює QR-код, який можна зчитати за допомогою кнопки QR-коду на цьому екрані. - - - Автоматично відтворювати відео, коли вони видимі на екрані - - - Скопійовано до буфера обміну - Поділитися або зберегти + + + + + + + Надіслати як DM - Медіа додано - Медіа додано до вашої галереї профілю @@ -962,64 +559,37 @@ - Відсутнє налаштування Lightning - Користувач %1$s не має налаштованої Lightning адреси для отримання sats - Неможливо відтворити це відео - Кодек або формат не підтримується на цьому пристрої (%1$s). Спробуйте відкрити у браузері. - Відкрити у браузері - Запит на підписання відхилено - Переконайтеся, що застосунок-підписант авторизував цю транзакцію - Не знайдено гаманців для оплати Lightning інвойсу (Помилка: %1$s). Встановіть Lightning гаманець для використання зап - Не знайдено гаманців для оплати Lightning інвойсу. Встановіть Lightning гаманець для використання зап - Неможливо відкрити Blossom посилання - Blossom додатки не знайдено. Встановіть локальний Blossom додаток, щоб переглянути цей файл - Приховані слова - Вимкнені теми - Немає вимкнених тем - Не вдалося отримати Cashu - Не вдалося скласти LNUrl з Lightning адреси «%1$s». Перевірте налаштування користувача - Не вдалося отримати інвойс від %1$s: %2$s - Помилка розбору JSON від %1$s. Перевірте Lightning налаштування користувача - URL зворотного виклику не знайдено у відповіді %1$s - Неправильна сума інвойсу (%1$s sats) від %2$s. Мало бути %3$s - Неможливо створити Lightning інвойс перед надсиланням зап. Lightning гаманець отримувача повернув таку помилку: %1$s - Користувач лише для читання - Реакції не налаштовані - Сповіщення - Доставка - Відображення у додатку - Категорії @@ -1033,11 +603,9 @@ - Повідомлення від %1$s - Привіт, %1$s, це ще доступно? @@ -1048,29 +616,17 @@ - Дім - Офіс - Їжа - Різне - Не вдалося перевірити завантажений файл після вивантаження: %1$s - Не вдалося завантажити на %1$s: %2$s - Не вдалося видалити: %1$s - Медіафайл занадто великий для NIP-95 - Шифрувати файли - Шифрувати файли перед вивантаженням для захисту конфіденційності. Деякі сервери можуть не приймати зашифровані файли на безкоштовних акаунтах. - Зашифроване вивантаження не вдалося - Багато серверів не приймають зашифровані файли на безкоштовних акаунтах. Ви можете повторити спробу без шифрування. @@ -1080,46 +636,20 @@ - Використовувати кодек H.265/HEVC - Краща якість при менших розмірах файлів, але не всі пристрої підтримують відтворення H.265. - Конвертувати GIF у MP4 - Конвертує анімований GIF у відео MP4 для зменшення розміру файлу та кращої сумісності відтворення. - Видалити приватні метадані - Намагається видалити приватні метадані з підтримуваних медіафайлів перед вивантаженням - Метадані не вдалося видалити - Не вдалося видалити приватні метадані з медіафайлу. Вивантаження скасовано. - Вивантаження скасовано - Неможливо видалити метадані з AVIF: %1$s - Головна - - Відкрити - - Повідомлення - - Сповіщення - - - Календарі - - Списки календарів - - Шахи - - Гаманець @@ -1157,7 +687,14 @@ - Cashu гаманець (NIP-60) + + + + + + + + @@ -1179,29 +716,14 @@ P2PK приватний ключ (hex) - Редагувати mints Зберегти зміни - - +%1$d ще - +%1$d ще - +%1$d ще - +%1$d ще - - - Рекомендовано %1$d іншим - Рекомендовано %1$d іншими - Рекомендовано %1$d іншими - Рекомендовано %1$d іншими - - Популярні mints - Відповідні mints @@ -1215,9 +737,7 @@ - Отримано - Надіслано @@ -1227,14 +747,12 @@ - Опублікувати запит на видалення вашої kind:38000 рекомендації %1$s. Relay, які дотримуються NIP-09, видалять її. - Відновлено %1$s sats у %2$s підтвердженнях. @@ -1258,28 +776,21 @@ - Сплатити %1$s sat + до %2$s sat комісії? - Nutzap не вдався - Немає публічного ключа отримувача в нотатці - Nutzap є публічними та розкриють цю приватну нотатку. Натомість використайте Lightning zap. - Не вдалося створити посилання на event - Очікування оплати інвойсу… - Перевірка mint… @@ -1315,50 +826,19 @@ - Повільно - Нормально - Швидко - ~1 год - ~30 хв - ~10 хв - %1$s · %2$s sat/vB · %3$s - - Надіслати %1$s sats, %2$d одержувачу - Надіслати %1$s sats, %2$d одержувачам - Надіслати %1$s sats, %2$d одержувачам - Надіслати %1$s sats, %2$d одержувачам - - - Використати %1$d-сторонній поділ zap цієї нотатки - Використати %1$d-сторонній поділ zap цієї нотатки - Використати %1$d-сторонній поділ zap цієї нотатки - Використати %1$d-сторонній поділ zap цієї нотатки - - - Поділ між %1$d отримувачем - Поділ між %1$d отримувачами - Поділ між %1$d отримувачами - Поділ між %1$d отримувачами - - - Пропуск %1$d отримувача, що має лише Lightning адресу — onchain потребує Nostr pubkey для отримання адреси. - Пропуск %1$d отримувачів, що мають лише Lightning адресу — onchain потребує Nostr pubkey для отримання адреси. - Пропуск %1$d отримувачів, що мають лише Lightning адресу — onchain потребує Nostr pubkey для отримання адреси. - Пропуск %1$d отримувачів, що мають лише Lightning адресу — onchain потребує Nostr pubkey для отримання адреси. - @@ -1370,66 +850,37 @@ - завантаження балансу - побудова транзакції - підпис - трансляція - публікація квитанції - Bitcoin chain бекенд не налаштовано - Не вдалося завантажити ваш Bitcoin баланс - Не вдалося побудувати транзакцію - Частка отримувача нижча за пиловий ліміт - Не вдалося підписати транзакцію - Не вдалося транслювати транзакцію - Платіж надіслано, але квитанцію zap не вдалося опублікувати - - Платіж надіслано (%1$d з %2$d квитанцію опубліковано), але наступну квитанцію не вдалося опублікувати - Платіж надіслано (%1$d з %2$d квитанцій опубліковано), але наступну квитанцію не вдалося опублікувати - Платіж надіслано (%1$d з %2$d квитанцій опубліковано), але наступну квитанцію не вдалося опублікувати - Платіж надіслано (%1$d з %2$d квитанцій опубліковано), але наступну квитанцію не вдалося опублікувати - - Імпортувати підписки - Новий продукт - Нова стаття - Нова подія календаря - Редагувати подію календаря - Новий календар - Редагувати календар - Стрічка - Місяць - Тиждень - День @@ -1463,12 +914,6 @@ - - %1$s, %2$d подія - %1$s, %2$d події - %1$s, %2$d подій - %1$s, %2$d подій - @@ -1495,27 +940,14 @@ - Відбувається зараз - %1$s · закінчується %2$s - Поділитися подією календаря - calendar_reminders - Нагадування календаря - Сповіщення, коли подія, на яку ви зареєструвалися, ось-ось розпочнеться. - Подія календаря - - Починається через %1$d хвилину - Починається через %1$d хвилини - Починається через %1$d хвилин - Починається через %1$d хвилин - @@ -1524,36 +956,23 @@ - Помилка завантаження зображення - Вибране зображення не вдалося завантажити. Спробуйте ще раз або вставте URL. - Нагадування календаря - Надсилати нагадування - Сповіщення надходить, коли подія, на яку ви зареєструвалися, ось-ось розпочнеться. - - %1$d хв - %1$d хв - %1$d хв - %1$d хв - - Відкрити на картах - Відкрити посилання @@ -1569,20 +988,16 @@ - Відкрити всі реакції на цей допис - Закрити всі реакції на цей допис - Zap - Нижня навігаційна панель Перетягніть для зміни порядку. Перемикайте, щоб додати або видалити елемент із нижньої панелі. При нулі елементів нижня панель прихована. @@ -1593,21 +1008,14 @@ Виберіть, які вкладки з\'являються на головному екрані. Якщо активна лише одна вкладка, панель вкладок прихована. - Все - Інтерфейс профілю Виберіть, які розділи та стрічки з\'являються на екранах профілів користувачів. За замовчуванням усі параметри увімкнені. - Значки профілю - Рекомендації застосунків - Стрічка отриманих Zap - Стрічка підписників - Панель реакцій @@ -1625,7 +1033,6 @@ - Кнопки відеоплеєра @@ -1645,7 +1052,6 @@ - Аудіовізуалізатор @@ -1671,7 +1077,6 @@ - Дата завершення @@ -1679,11 +1084,8 @@ - Недійсна адреса - Amethyst отримав URI для відкриття, але цей URI був недійсним: %1$s - Relay-сервери для вхідних DM @@ -1691,103 +1093,63 @@ - Relay-сервери для пошуку - Гарні варіанти:\n%1$s - Relay для вихідних - Relay для вхідних - Налаштування relay-серверів - Публічні Outbox/домашні relay-сервери - Користувач публікує свій вміст на цих relay-серверах - Цей тип relay-серверів зберігає весь ваш вміст. Amethyst надсилатиме ваші публікації сюди, а інші використовуватимуть ці relay-сервери для пошуку вашого вмісту. Введіть від 1 до 3 relay-серверів. Це можуть бути особисті, платні або публічні relay-сервери. - Публічні relay-сервери для вхідних повідомлень - Користувач отримує сповіщення на цих relay-серверах - Цей тип relay-серверів отримує всі відповіді, коментарі, лайки та zap-и до ваших публікацій. Це можуть бути платні або безкоштовні relay-сервери. Обмеження, встановлені оператором relay-сервера, можуть як позитивно, так і негативно впливати на отримувані вами сповіщення. Наприклад, якщо вас атакують спамом у коментарях, платні relay-сервери можуть відфільтрувати його. Введіть від 1 до 3 relay-серверів. - Relay-сервери для вхідних DM - Користувач отримує DM на цих relay-серверах - Введіть від 1 до 3 relay-серверів для вашої приватної скриньки. Інші використовуватимуть ці relay-сервери для надсилання вам DM. Relay-сервери для вхідних DM мають приймати будь-які повідомлення від будь-кого, але дозволяти завантажувати їх лише вам. Гарні варіанти:\n - inbox.nostr.wine (платно)\n - auth.nostr1.com (безкоштовно)\n - you.nostr1.com (особисті relay-сервери — платно) - KeyPackages - Relay-сервери для KeyPackage - Relay-сервери, на яких публікуються ваші MLS KeyPackages (MIP-00). Інші користувачі завантажують ці KeyPackages, щоб запросити вас до групових чатів Marmot. Введіть від 1 до 3 relay-серверів, які приймають від вас події KeyPackage та дозволяють публічне читання. - Приватні домашні relay-сервери - Введіть від 1 до 3 relay-серверів для зберігання подій, які більше ніхто не може бачити, наприклад ваші чернетки та/або налаштування застосунку. В ідеалі ці relay-сервери мають бути локальними або вимагати автентифікації перед завантаженням вмісту кожного користувача. - Підключені relay-сервери - Поточний список використовуваних relay-серверів - Relay-сервери для пошуку - Список relay-серверів для пошуку вмісту або користувачів. Позначення та пошук не працюватимуть, якщо жодних варіантів немає. Переконайтесь, що вони підтримують NIP-50. - Локальні relay-сервери - Список relay-серверів, що працюють на цьому пристрої. - Пересилати профілі до локального relay-сервера - Надсилати всі отримані події профілю (kind 0) до вашого локального relay-сервера - Довірені relay-сервери - Relay-сервери, яким ви довіряєте і яким не потрібне підключення через Tor - Улюблені стрічки relay-серверів - Relay-сервери, на глобальні стрічки яких ви часто заходите - Proxy relay-сервери - Агрегаторні relay-сервери, які застосунок має використовувати для завантаження ваших стрічок, наприклад filter.nostr.wine. Це замінює модель outbox і змусить застосунок підключатися лише до relay-серверів у ваших списках. - Relay-сервери для розсилки - Relay-сервери, що спеціалізуються на поширенні ваших нотаток до всіх інших relay-серверів, наприклад sendit.nosflare.com. Amethyst додаватиме цей relay-сервер до всіх нових подій, створених вами - Relay-сервери-індексатори - Relay-сервери, що спеціалізуються на зберіганні метаданих та списків relay-серверів усіх користувачів, наприклад purplepag.es. Amethyst використовуватиме ці relay-сервери для пошуку користувачів, яких немає у ваших списках. - Заблоковані relay-сервери - Amethyst ніколи не підключатиметься до цих relay-серверів - Експортувати налаштування relay-серверів @@ -1828,12 +1190,6 @@ - Доказ часової позначки - - Є доказ того, що ця публікація була підписана до %1$s. Доказ засвідчено в блокчейні Bitcoin на ту дату та час. - - - Редагувати публікацію @@ -1844,15 +1200,6 @@ - Неможливо відповісти на чернетку нотатки - - Неможливо процитувати чернетку нотатки - - Неможливо відреагувати на чернетку нотатки - - Неможливо зробити zap на чернетку нотатки - - Чернетка нотатки @@ -1860,107 +1207,53 @@ - Bad Request — сервер не може або не хоче обробити запит. - Unauthorized — користувач не має дійсних облікових даних для автентифікації - Payment Required — сервер вимагає оплату для виконання запиту - Forbidden — користувач не має прав доступу для виконання запиту - Not Found — сервер не може знайти запитану адресу - Method Not Allowed — сервер підтримує метод запиту, але не для цього ресурсу - Not Acceptable — сервер не знаходить вмісту, що задовольняє запит. - Proxy Authentication Required — користувач не має дійсних облікових даних для автентифікації - Request Timeout — сервер вичерпав час очікування - Conflict — сервер не може виконати запит через конфлікт з ресурсом - Gone — запитаний вміст було остаточно видалено з сервера і не буде відновлено - Length Required — сервер відхиляє запит, оскільки він вимагає визначеної довжини вмісту - Precondition Failed — сервер не виконує передумови запиту, вказані в полях заголовка - Payload Too Large — запит перевищує визначені межі сервера, і сервер відмовляється його обробляти - URI Too Long — URL, запитана клієнтом, надто довга для обробки сервером. - Unsupported Media Type — запит використовує формат медіа, який сервер не підтримує - Range Not Satisfiable — сервер не може виконати значення, вказане в полі заголовка Range запиту. - Expectation Failed — сервер не може виконати вимоги, вказані в полі заголовка Expect запиту - Upgrade Required — сервер відмовляється обробляти запит за поточним протоколом, якщо клієнт не перейде на інший протокол. - Internal Server Error — сервер зіткнувся з неочікуваною помилкою і не може виконати запит - Not Implemented — сервер не може виконати запит або не розпізнає метод запиту - Bad Gateway — сервер діє як шлюз і отримав недійсну відповідь від хоста - Service Unavailable — це часто відбувається, коли сервер перевантажений або проводить технічне обслуговування - Gateway Timeout — сервер діяв як шлюз або проксі та перевищив час очікування відповіді - HTTP Version Not Supported — сервер не підтримує версію HTTP, вказану в запиті - Variant Also Negotiates — на сервері виникла внутрішня помилка конфігурації - Insufficient Storage — у сервера недостатньо місця для успішної обробки запиту - Loop Detected — сервер виявив нескінченний цикл під час обробки запиту - Network Authentication Required — клієнт має пройти автентифікацію для доступу до мережі + + + + + + + Сервери Blossom Додайте стільки серверів, скільки потрібно. Ви зможете обрати, який використовувати пізніше, під час завантаження зображення - Додати сервер NIP-96 - Додати сервер Blossom Завантажити - Не вдалося відкрити файл - - Не встановлено жодного torrent-застосунку для відкриття та завантаження файлу. - - Подія не містить достатньої інформації для створення magnet-посилання - - Мої списки - - - Стрічки - - Хештеги - - Набори інтересів - - Місця - - Спільноти - - Списки - - Алгоритми стрічки - - Усі улюблені алгоритми стрічки - - Relay-сервери - - - - Улюблені алгоритми стрічки @@ -1975,18 +1268,29 @@ - Приватне повідомлення - - Публічне повідомлення - Не вдалося поділитися зображенням, спробуйте пізніше… - Не вдалося поділитися відео, спробуйте пізніше… - Завантаження відео… + + + + + + + + + + + + + + + + + @@ -2004,17 +1308,11 @@ - Не перекладати з - Мови, вказані тут, не перекладатимуться. Виберіть мову, щоб прибрати її зі списку та знову отримувати переклад. - Перекладати на - Оберіть мову, на яку перекладати вміст. - Налаштування відображення мови - Для кожної пари мов перекладу оберіть, яку мову показувати першою. @@ -2025,9 +1323,7 @@ - Пауза - Відтворити @@ -2036,7 +1332,6 @@ - Це повідомлення зникне через %1$s @@ -2051,15 +1346,10 @@ - Метадані списку підписок - Метадані списків підписок може бачити будь-хто у Nostr. Тільки ваші приватні учасники зашифровані. - Метадані Follow Pack - Метадані Follow Pack може бачити будь-хто у Nostr, і вони часто публікуються на багатьох сайтах як стартові набори для нових користувачів. - Редагувати Follow Pack @@ -2075,12 +1365,10 @@ - Розгорнути - Повторити @@ -2091,11 +1379,8 @@ - Реакція - Голосова публікація - Голосова відповідь @@ -2117,437 +1402,109 @@ - Outbox Relays - Застосунки - Рекомендації застосунків - Налаштування користувача - Аудіо заголовок - Аудіо трек - Музичний трек - Музичний плейлист - Епізод подкасту - Подкаст-шоу - Авторські подкасти - Улюблені подкасти - Нагороди бейджів - Визначення бейджів - Набір прийнятих бейджів - Бейджі профілю - Заблоковані Relays - Blossom Servers - Nests Servers - Blossom Auth - Broadcast Relays - Список закладок - Старий список закладок - Денна зустріч - Календар - Зустріч - RSVP зустрічі - Шахові партії - Chess Auth - Улюблені Relays - Шахові виклики - Прийняття шахової партії - Шаховий хід - Кінець шахової партії - Пропозиція нічиєї - Визначення каналу - Приховати повідомлення каналу - Список каналів - Повідомлення каналу - Метадані каналу - Заглушити користувача каналу - Файл особистого повідомлення - Особисте повідомлення - DM Relays - Оголошення - Коментарі - Визначення спільноти - Список спільнот - Публікація спільноти - Follow List - Видалення - Чернетки - Набори емодзі - Список наборів емодзі - Ефемерний чат - Ефемерні чат-кімнати - Заголовки файлів - Галерея профілю - Файлові сервери - Blob дані - Blob заголовки - Медичні дані - Follow Packs - Репости (16) - Підписки геохешу - GiftWraps - Git Issue - Git Patch - Git Repo - Git Reply - Цілі Zap - Підписки хештегу - Виділення - Http Auth - Список індексних Relays - Пролог пригоди - Сцена пригоди - Читання пригоди - Іменовані закладки - Живі чати - Живі трансляції - Zaps - NWC Request - NWC Response - Приватні Zaps - Zap Req - Блоги - Кімната нарад - Присутність у кімнаті - Простір нарад - Профіль - Список заглушених - NNS - NIP - Nostr Connect - DVM Status - DVM Content Req - DVM Content Resp - DVM User Req - DVM User Resp - OTS - PayTo - Списки людей - Зображення - - Тренування - - Закріплення - - Zap-голосування - - Голосування - - Відповідь на голосування - - NIP-04 DMs - - Приватні relay - - Проксі relay - - Публічне повідомлення - - Реакції - - Контактна картка - - Relay-автентифікація - - Виявлення relay - - Оголошення монітора relay - - Набір relay - - Звіти - - Репости - - Видалення користувача - - Печатки - - Пошукові relay - - Статус користувача - - Нотатки - - Редагування - - Торренти - - Коментарі до торрентів - - Довірені relay - - Довірені провайдери - - Відео (Repl) - - Shorts (Repl) - - Відео - - Shorts - - Голос. повідомлення - - Голосова відповідь - - WakeUp - - Веб-закладка - - Wiki - - - - - - - - - - - - - - - - - %1$d%% доступності - - Налаштування Namecoin - - - - - - - - - - - %dмс - - - - - - Синхронізація relay - - - - - - - - - - - - - - - - - - - - - - - - - - - - Bitcoin Explorer (OTS) - - події від вас - - події до вас - - події для пошуку - - DMs - - профілі - - списки outbox - - Востаннє бачено %1$s тому - - Востаннє бачено %1$s (%2$s тому) - - Щойно в мережі - - Не спостерігався - - - - %1$d хвилина - %1$d хвилини - %1$d хвилин - %1$d хвилини - - - - %1$d година - %1$d години - %1$d годин - %1$d години - - - - %1$d день - %1$d дні - %1$d днів - %1$d дні - - - - %1$d тиждень - %1$d тижні - %1$d тижнів - %1$d тижні - - - - %1$d місяць - %1$d місяці - %1$d місяців - %1$d місяці - - - - %1$d рік - %1$d роки - %1$d років - %1$d роки - - - - %1$d mint - %1$d mint - %1$d mint - %1$d mint - - - - %1$d очікуючий інвойс - %1$d очікуючих інвойси - %1$d очікуючих інвойсів - %1$d очікуючих інвойси - - - - - - - - Кошти зберігаються в %1$d mint, який ви не використовуєте - Кошти зберігаються в %1$d mint, які ви не використовуєте - Кошти зберігаються в %1$d mint, які ви не використовуєте - Кошти зберігаються в %1$d mint, які ви не використовуєте - @@ -2562,7 +1519,6 @@ - Переміщено %1$s sat до %2$s. @@ -2575,13 +1531,10 @@ - Трансляція на пристрій - Зупинити трансляцію - HLS Upload @@ -2602,7 +1555,6 @@ - Завантаження %1$s (%2$d із %3$d) @@ -2620,7 +1572,6 @@ - Атестація @@ -2628,12 +1579,9 @@ - Запит атестації - Рекомендація атестора - Компетентність атестора @@ -2641,11 +1589,127 @@ - Веб-закладки - Додати веб-закладку - Редагувати веб-закладку + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2660,7 +1724,6 @@ - %1$s зібрано з %2$s sats мети @@ -2698,9 +1761,7 @@ - Нова ціль - Запит на зникнення @@ -2714,7 +1775,6 @@ - Запит на зникнення надіслано @@ -2728,22 +1788,16 @@ - Історія зникнень - Користувачі - Події - Kinds - IP-адреси - Налаштування @@ -2795,23 +1849,14 @@ - Пропонувати вдосконалення тексту - Використовує AI-модель на пристрої для пропозиції виправлень тексту та зміни тону. - Відстежувані трансляції - Використовувати відстежувальний транслятор під час надсилання подій. Відображає живий прогрес та статус по кожному relay під час трансляції. - Пропонувати тренування для поширення - Читає завершені тренування з Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) і пропонує поділитися ними як публікацією. Дозвіл запитується лише під час підключення. - Налаштування редактора - Автоматично створювати чернетки - Автоматично зберігає чернетку події, коли ви друкуєте або залишаєте редактор з ненадісленим текстом, і надсилає до ваших приватних вихідних relay. @@ -2828,9 +1873,7 @@ - Новий пакет емодзі - Редагувати пакет емодзі @@ -2854,45 +1897,29 @@ - Мої пакети емодзі - Емодзі - Публічні емодзі видимі всім і з\'являються в меню реакцій та автодоповненні «:», коли цей пакет знаходиться у вашому списку емодзі. - Приватні емодзі зберігаються зашифровано на relay і видимі лише вам. Вони з\'являються в меню реакцій та автодоповненні «:», як і публічні. - Чернетка займає %1$d байт; ця спільнота обмежує цей kind до %2$d байт. - Чернетка займає %1$d байт; ця спільнота обмежує події до %2$d байт. - Ви вже опублікували %1$d подій цього kind сьогодні (ліміт %2$d). - Сайт Nowhere - Подія Nowhere - Збір коштів Nowhere - Магазин Nowhere - Петиція Nowhere - Повідомлення Nowhere - Drop Nowhere - Мистецтво Nowhere - Форум Nowhere @@ -2910,29 +1937,6 @@ - - %1$d повідомлення - %1$d повідомлення - %1$d повідомлень - %1$d повідомлень - - - - %1$d учасник - %1$d учасники - %1$d учасників - %1$d учасників - - - - - - - Інформацію про групу оновлено - - Не вдалося оновити: %1$s - - Не вдалося створити групу: %1$s @@ -2943,13 +1947,6 @@ - Не вдалося покинути групу: %1$s - - Додаємо %1$s… - - Не вдалося додати %1$s: %2$s - - невідома помилка @@ -2958,9 +1955,6 @@ - Учасника видалено - - Не вдалося видалити учасника: %1$s @@ -2968,22 +1962,29 @@ - Права адміністратора надано - - Не вдалося надати права адміністратора: %1$s - Права адміністратора відкликано - - Не вдалося відкликати права адміністратора: %1$s - Не є учасником цієї групи + + + + + + + + + + + + + + @@ -3002,31 +2003,6 @@ - - Цей пост містить більше ніж %1$d хештег - Цей пост містить більше ніж %1$d хештеги - Цей пост містить більше ніж %1$d хештегів - Цей пост містить більше ніж %1$d хештега - - - - %1$d актив у комплекті - %1$d активи у комплекті - %1$d активів у комплекті - %1$d актива у комплекті - - - - +%1$d\\nвідповідь - +%1$d\\nвідповіді - +%1$d\\nвідповідей - +%1$d\\nвідповіді - - - - - - Кількість спам-подій, що надходять з цього relay @@ -3042,43 +2018,36 @@ - Ви використовуєте публічний ключ, а публічні ключі доступні лише для читання. Увійдіть за допомогою приватного ключа, щоб мати можливість завантажувати файли - Ви використовуєте публічний ключ, а публічні ключі доступні лише для читання. Увійдіть за допомогою приватного ключа, щоб мати можливість підписувати події - Несанкціоноване розшифрування - Підписувач не дозволив розшифрування, необхідне для виконання цієї операції. Активуйте NIP-44 розшифрування у вашому застосунку-підписувачі та спробуйте знову - Підписувач не знайдений - Чи не було видалено застосунок-підписувач? Перевірте, чи встановлено підписувач і чи є в ньому цей обліковий запис. Вийдіть і увійдіть знову, якщо застосунок-підписувач змінився. - Зовнішній підписувач повернув дані, що не відповідають запиту. Можливо, є помилка в Amethyst або підписувачі. + + + + + + редакція #%1$s - Запропонувати редагування - Запит рахунку… - Сервіс дебетування не завершив платіж. - Сплатити %1$s через %2$s? - Сплатити цей рахунок через %1$s? - Введіть дійсну суму для цього offer. @@ -3087,13 +2056,9 @@ - Одноразово - Щодня - Щотижня - Щомісяця @@ -3119,13 +2084,11 @@ - Оплата через %1$s… - Платіж не вдався @@ -3135,10 +2098,8 @@ - Доступно для цього отримувача: %1$s sats - Транзакція: %1$s @@ -3149,68 +2110,10 @@ - Написати повідомлення… - Надіслати Перейменувати - Помилка - - Відсоток успішних підключень до relay - - - - - - - - - Зберегти на телефон - - Завантаження відео розпочато… - - Завантаження медіа розпочато… - - Закріпити вгорі - - Відкріпити - - - Відео збережено до відеогалереї телефону - - Не вдалося зберегти відео - - PDF збережено до Downloads/Amethyst - - Не вдалося зберегти PDF - - - - - На цьому пристрої не знайдено застосунок камери - - - Натисніть і утримуйте, щоб записати повідомлення - - - - - Помилка завантаження - - Не вдалося завантажити голосове повідомлення - - NIP-95 ще не підтримується для голосових повідомлень - - Помилка завантаження голосу: %1$s - - Немає - - Глибокий - - Високий - - Нейтральний @@ -3220,15 +2123,46 @@ - Показати QR-код приватного ключа - - Показати QR-код зашифрованого приватного ключа - Недійсний ключ: %1$s - Пароль обов\'язковий + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3239,30 +2173,6 @@ Новий профіль чату: - Тимчасовий чат - - Чат relay - - Чати relay - - Чати relay — це групи чатів, керовані їхнім домашнім relay. - Вони видимі всім у Nostr, і кожен може брати в них участь. - Вони чудово підходять для відкритих спільнот за певними темами. Деякі з цих груп є тимчасовими, - і тому повідомлення чату зникають з часом - - Marmot Group - - - Метадані публічного чату - - Публічні чати видимі всім у Nostr, і кожен - може брати в них участь. Вони чудово підходять для відкритих спільнот за певними темами. - Модерацію можна здійснювати, видаляючи публікації на відповідних relay - - Relay - - Вкажіть від 1 до 3 relay, що розміщують цю групу. - Клієнти Nostr використовують це налаштування, щоб знати, звідки завантажувати повідомлення та куди їх надсилати. @@ -3270,31 +2180,6 @@ - Не вдалося зашифрувати ваш приватний ключ - - - - Навігація - - Ви - - Стрічки - - Створити - - Система - - Поділитися як зображення - - Поділитися як URL зображення - - - - - - Заглушити гілку - - Увімкнути звук гілки @@ -3302,11 +2187,32 @@ - Закладки успішно перенесено - Чернетки - Заплановані публікації + + + + + + + + + + + + + + + + + + + + + + + + @@ -3315,14 +2221,10 @@ - Запланувати допис - Скасувати планування - Заплановані дописи можуть не опублікуватися, доки ви знову не відкриєте застосунок. Увімкніть постійний режим у Налаштування → Параметри інтерфейсу для надійного планування у фоні. - Заплановані дописи можуть не опублікуватися, доки ви знову не відкриєте застосунок. Заплановані дописи інших акаунтів не виконуватимуться, доки активний цей акаунт. Увімкніть постійний режим у Налаштування → Параметри інтерфейсу для надійного планування у фоні. @@ -3331,124 +2233,61 @@ - %1$s · через %2$s - %1$s · %2$s тому - Завтра - Вихід виконано - - Вихід виконано · %d запланований допис видалено - Вихід виконано · %d заплановані дописи видалено - Вихід виконано · %d запланованих дописів видалено - Вихід виконано · %d запланованих дописів видалено - - Запланований допис опубліковано - Помилка запланованого допису - Заплановані дописи - Сповіщення про публікацію або помилку запланованого допису. - Надіслати зараз - Помилка: %1$s - Заплановано - Надсилається… - Помилка - Надіслано - Скасовано - - У вас є %d запланований допис, який ще не опубліковано. Вихід з акаунта назавжди видалить його. - У вас є %d заплановані дописи, які ще не опубліковано. Вихід з акаунта назавжди видалить їх. - У вас є %d запланованих дописів, які ще не опубліковано. Вихід з акаунта назавжди видалить їх. - У вас є %d запланованих дописів, які ще не опубліковано. Вихід з акаунта назавжди видалить їх. - - - %d у черзі - %d у черзі - %d у черзі - %d у черзі - - - · %d через 1 год - · %d через 1 год - · %d через 1 год - · %d через 1 год - - - на %d relay - на %d relay - на %d relay - на %d relay - - ID нотатки скопійовано - Опитування - Відкриті - Закриті - Значки - Спільноти - Нова спільнота - Редагувати спільноту - Модератори - Relay - Перевірені правила (необов\'язково) - Дозволені типи подій - Короткий текст (1) - Стаття у довгому форматі (30023) - Допис із зображенням (20) - Відеодопис (21) - Коротке відео (22) - Коментар спільноти (1111) @@ -3457,23 +2296,18 @@ - Заблоковані користувачі - Фільтр мережі довіри (необов\'язково) - Глобальний максимальний розмір події (необов\'язково) - Новий значок - Присвоїти значок @@ -3490,7 +2324,6 @@ - Значки профілю @@ -3514,12 +2347,9 @@ - Зображення - Тренування - Нове тренування @@ -3546,87 +2376,56 @@ - Біг - Ходьба - Велоспорт - Туристичний похід - Плавання - Веслування - Силові вправи - Йога - Медитація - Дієта - Голодування - Кругове тренування - EMOM - AMRAP - Застосунки Застосунки - nApplets - - nSites - - - Браузер - Завантаження через Tor. Торкніться, щоб використати відкриту мережу. - - Завантаження через відкриту мережу. Торкніться, щоб використати Tor. - Вибране - - - - Улюблені застосунки - - - Додати до улюблених - - Видалити з улюблених - Завантажується через Tor. - - Завантажується через відкриту мережу. - Опубліковано на relay - Завантажено файл - Виконано платіж + + + + + + + + + + + - Цей застосунок ще не завантажено. Спробуйте ще раз за мить. - Нещодавні Дозволи nApplet @@ -3643,51 +2442,30 @@ - nApplet %1$s… Shell - Ідентичність - Дії клавіатури - relay - Сховище - Платежі - Мережа - Завантаження Запитати, які можливості доступні - Читати ваш публічний ключ - Прив\'язати комбінації клавіш - Читати, підписувати та публікувати ваші події - Власне приватне сховище - Оплачувати Lightning-інвойси - Отримувати веб- та Blossom-ресурси - Завантажувати файли на ваш медіасервер - Тема - Сповіщення - Обмін повідомленнями - Відповідати кольорам вашого застосунку - Показувати вам сповіщення - Обмінюватися повідомленнями з іншими nApplets Можливість: %1$s @@ -3695,36 +2473,19 @@ - Цей nApplet хоче прочитати ваш публічний ключ. - Цей nApplet хоче прочитати ваш профіль і дані облікового запису. - Цей nApplet хоче підписати та опублікувати подію kind:%1$d від вашого імені. - Цей nApplet хоче підписати та опублікувати подію kind:%1$d від вашого імені: - Цей nApplet хоче надіслати зашифровану подію від вашого імені. - Цей nApplet хоче читати події з ваших relay. - Цей nApplet хоче використовувати своє приватне сховище. Цей nApplet хоче оплатити Lightning-інвойс. - Цей nApplet хоче отримати веб-ресурс. - Цей nApplet хоче завантажити файл на ваш медіасервер. - Цей nApplet хоче показати вам сповіщення. - Цей сайт хоче підписати подію kind:%1$d за допомогою вашого ключа Nostr. - - Цей nApplet хоче оплатити Lightning-інвойс на %1$d sat. - Цей nApplet хоче оплатити Lightning-інвойс на %1$d sats. - Цей nApplet хоче оплатити Lightning-інвойс на %1$d sats. - Цей nApplet хоче оплатити Lightning-інвойс на %1$d sats. - @@ -3738,35 +2499,25 @@ - Shorts - Публічні чати - Follow Packs - Прямі трансляції - Nests - Підняти руку - Опустити руку - Вимкнути звук - Увімкнути звук - Не вдалося надіслати повідомлення @@ -3775,25 +2526,17 @@ - Вимкнути мікрофон - Увімкнути мікрофон - Nests - Підтримує відтворення аудіо, поки кімната відкрита. - Nest підключено - Nest — Live - Торкніться, щоб повернутися. - Зупинити @@ -3805,30 +2548,17 @@ - підняв(-ла) руку - вийшов(-ла) на сцену - говорить - приєднався(-лась) як слухач - покинув(-ла) nest - Вийти - Не вдалося позначити кімнату як закриту. Виходимо — кімната закриється автоматично. - - %1$d слухач - %1$d слухачі - %1$d слухачів - %1$d слухача - @@ -3848,20 +2578,14 @@ - Заглушити цього спікера - Відновити цього спікера - Стежити - Не стежити - Вимкнути звук - Увімкнути звук @@ -3889,7 +2613,6 @@ - Не вдалося зберегти список nest-серверів. Спробуйте ще раз. @@ -3903,32 +2626,23 @@ - Nest-сервери - Ваші сервери - Збережено як замінна подія kind:10112, щоб інші клієнти могли читати ваші налаштування. - Рекомендовані сервери - Вбудовані пропозиції, які можна додати до списку одним дотиком. - Відео - Музика - Плейлисти - Епізоди diff --git a/amethyst/src/main/res/values-uz-rUZ/strings.xml b/amethyst/src/main/res/values-uz-rUZ/strings.xml index 4ae535415c..994ccb093d 100644 --- a/amethyst/src/main/res/values-uz-rUZ/strings.xml +++ b/amethyst/src/main/res/values-uz-rUZ/strings.xml @@ -1,115 +1,12 @@ - - Bu postda %1$d tadan ortiq hashtag mavjud - Bu postda %1$d tadan ortiq hashtaglar mavjud - - - %1$d ta aktivni o\'z ichiga oladi - %1$d ta aktivni o\'z ichiga oladi - - - +%1$d\njawob - +%1$d\njawoblar - - Spam - Ushbu relaydan kelayotgan spam vaziyatlarining soni - Soxtalashtirish - Noqonuniy xatti-harakat - Oʻchirishni soʻrash - Sizda ommaviy kalit faol. Ommaviy kalitlar orqali faqat o‘qish mumkin. Xabar yozish uchun, maxfiy kalit bilan avtorizatsiyadan o‘ting - Sizda ommaviy kalit faol. Ommaviy kalitlar orqali faqat o‘qish mumkin. Postni targ‘ib qilish uchun, maxfiy kalit bilan avtorizatsiyadan o‘ting - Sizda ommaviy kalit faol. Ommaviy kalitlar orqali faqat o‘qish mumkin. Postga reaksiya qilish uchun, maxfiy kalit bilan avtorizatsiyadan o‘ting - Zap miqdori o\'rnatilmagan. O\'zgartirish uchun uzoq bosing - Siz ochiq kalitdan foydalanayapsiz va ochiq kalitlar faqat o\'qish uchun. Zap yuborish uchun shaxsiy kalit bilan kiring - Siz ommaviy kalitdan foydalanmoqdasiz va ommaviy kalitlar faqat o‘qish huquqiga ega. Obuna bo‘lish uchun shaxsiy kalit bilan tizimga kiring - Siz ochiq kalitdan foydalanayapsiz va ochiq kalitlar faqat o\'qish uchun. Kuzatishni bekor qilish uchun shaxsiy kalit bilan kiring - Siz ochiq kalitdan foydalanayapsiz va ochiq kalitlar faqat o\'qish uchun. So\'z yoki jumlani yashirish uchun shaxsiy kalit bilan kiring - Siz ochiq kalitdan foydalanayapsiz va ochiq kalitlar faqat o\'qish uchun. So\'z yoki jumlani ko\'rsatish uchun shaxsiy kalit bilan kiring - Siz ommaviy kalitdan foydalanmoqdasiz va ommaviy kalitlar faqat o‘qish huquqiga ega. Yuklash uchun shaxsiy kalit bilan tizimga kiring - Siz ommaviy kalitdan foydalanmoqdasiz va ommaviy kalitlar faqat o‘qish huquqiga ega. Xabarlarni imzolash uchun shaxsiy kalit bilan tizimga kiring - Ruxsatsiz deshifrlash - Imzolovchi ushbu operatsiyani amalga oshirish uchun zarur boʻlgan shifrlashni ochishga ruxsat bermadi. Imzolovchi ilovangizda NIP-44 shifrlashni ochish funksiyasini yoqing va qaytadan urinib koʻring - Imzolovchi ilova topilmadi - Imzolovchi ilova oʻchirib tashlandimi? Imzolovchi oʻrnatilganligini va ushbu hisobga ega ekanligini tekshiring. Agar imzolovchi ilova oʻzgargan boʻlsa, tizimdan chiqing va qayta kiring. - Tashqi imzolash dasturi so\'rov uchun g\'alati javob qaytardi. Amethyst yoki imzolash dasturida xato bo\'lishi mumkin. - Zeplar - Targʻib qilish Targ\'ib qilidi Tahrir № %1$s - Tahrir taklif qilish - Qo\'shish - Xato xabarini tahlil qilishda xato - Profil - Xavfsizlik filtrlari - Hisob-faktura so\'ralmoqda… - Debet xizmati to\'lovni amalga oshirmadi. - %1$s ni %2$s orqali to\'laysizmi? - Bu hisob-fakturani %1$s orqali to\'laysizmi? - Bu taklif uchun to\'g\'ri miqdorni kiriting. - Bir martalik - Kunlik - Haftalik - Oylik - To\'lash - %1$s orqali to\'lanmoqda… - To\'lov amalga oshmadi - Ushbu qabul qiluvchi uchun sarflanishi mumkin: %1$s sats - Tranzaksiya: %1$s - "%1$s uchun oldindan ko'rish kartasi tasviri" - Tavsif - Nima haqida o\'ylayapsiz? - Xabar yozing… Saqlash - Yuborish - Yaratish Qayta nomlash - Bekor qilish - Xato - Xatolar - Relay ga muvaffaqiyatli ulanishlar foizi - Telefonга saqlash - Rasm telefon foto galereysiga saqlandi - Video yuklab olish boshlandi… - Media yuklab olish boshlandi… - Tepaga mahkamlash - Mahkamlashni bekor qilish - Rasmni saqlash muvaffaqiyatsiz tugadi - Video telefon video galereysiga saqlandi - Videoni saqlash muvaffaqiyatsiz tugadi - PDF Downloads/Amethyst ga saqlandi - PDF ni saqlash muvaffaqiyatsiz tugadi - Bu qurilmada kamera ilovasi topilmadi - Xabar yozib olish uchun bosib ushlab turing - Yuklash xatosi - Ovozli xabarni yuklash muvaffaqiyatsiz tugadi - NIP-95 ovozli xabarlar uchun hali qo\'llab-quvvatlanmaydi - Ovoz yuklash muvaffaqiyatsiz tugadi: %1$s - Yo\'q - Chuqur - Yuqori - Neytral - Foydalanuvchi sats qabul qilish uchun lightning manzilini o\'rnatmagan - "bu yerga javob yozing… " - Ma\'lum - Yangi so\'rovlar - Bloklangan foydalanuvchilar - Yangi mavzular - Suhbatlar - Boshqa variantlar - Shaxsiy kalit QR kodini ko\'rsatish - Shifrlangan shaxsiy kalit QR kodini ko\'rsatish - Kuzatish - Orqaga kuzatish - Parolni yashirish - Noto\'g\'ri kalit - Noto\'g\'ri kalit: %1$s - Parol talab etiladi - Kalit talab etiladi - Nom talab etiladi @@ -118,159 +15,7 @@ Yangi chat profili: - Chiqish - Kuzatishni bekor qilish - Yo\'qoladigan chat - Relay chati - Relay chatlari - Relay chatlari o\'z uy relay\'lari tomonidan boshqariladigan chat guruhlaridir. - Ular Nostr dagi hamma uchun ko\'rinadi va har kim ularda ishtirok eta oladi. - Ular muayyan mavzular bo\'yicha ochiq jamoalar uchun juda mos keladi. Bu guruhlarning bir qismi vaqtinchalik bo\'lib, - shuning uchun chat xabarlari vaqt o\'tishi bilan yo\'qoladi - Ommaviy chat - MLS guruhi - Ommaviy chat metama\'lumotlari - Ommaviy chatlar Nostr dagi hamma uchun ko\'rinadi va har kim - ularda ishtirok eta oladi. Ular muayyan mavzular bo\'yicha ochiq jamoalar uchun juda mos keladi. - Moderatsiya relay\'larida postlarni o\'chirish orqali boshqarilishi mumkin - Relay lar - Ushbu guruhni joylashtiradigan 1-3 ta relay kiriting. - Nostr klientlari xabarlarni qayerdan yuklab olishini va xabarlaringizni qayerga yuborishini bilish uchun ushbu sozlamadan foydalanadi. - O\'chirish - hech qachon - hozir - s - d - k - Yalang\'ochlik - Qo\'pol so\'z / Nafratli nutq - Kalitlarni zaxiralash - Shaxsiy kalitni shifrlash muvaffaqiyatsiz bo\'ldi - Maxfiy kalit (nsec) buferga nusxalandi - Mening maxfiy kalitimni nusxalash - Autentifikatsiya muvaffaqiyatsiz bo\'ldi - Biometrik ma\'lumotlar telefon egasini autentifikatsiya qila olmadi - Biometrik ma\'lumotlar telefon egasini autentifikatsiya qila olmadi. Xato: %1$s - Eslatma matni buferga nusxalandi - Muallifning @npub manzili buferga nusxalandi - Eslatma identifikatori (@note1) buferga nusxalandi - "<Shaxsiy xabarni shifrlash imkonsiz>\n\nSiz %1$s va %2$s o'rtasidagi shaxsiy/shifrlangan suhbatda tilga olindingiz." - Hisoblar - Navigatsiya - Siz - Lentalar - Yaratish - Tizim - Orqaga - Brauzer havolasini ulashish - Ulashish - Rasm sifatida ulashish - Rasm URL sifatida ulashish - Eslatma identifikatori - O\'chirish - Mavzuni o\'chirish - Mavzuning ovozini yoqish - - Bloklash - Xatchо\'plar - Xatchо\'plar muvaffaqiyatli ko\'chirildi - Qoralamalar - Rejalashtirilgan postlar - Postni rejalashtirish - Rejalashtirishni bekor qilish - Rejalashtirilgan postlar ilovani qayta ochguningizcha nashr etilmasligi mumkin. Ishonchli fon rejalashtirilishi uchun Sozlamalar → Interfeys sozlamalari bo\'limida doimiy rejimni yoqing. - Rejalashtirilgan postlar ilovani qayta ochguncha nashr etilmasligi mumkin. Bu hisob faol bo\'lsa, boshqa hisoblarning rejalashtirilgan postlari ishlamasligi mumkin. Ishonchli fon rejalashtirilishi uchun Sozlamalar → Interfeys sozlamalari bo\'limida doimiy rejimni yoqing. - %1$s · %2$s ichida - %1$s · %2$s oldin - Ertaga - Tizimdan chiqildi - - Chiqildi · %d rejalashtirilgan post o\'chirildi - Chiqildi · %d rejalashtirilgan postlar o\'chirildi - - Rejalashtirilgan post nashr etildi - Rejalashtirilgan post muvaffaqiyatsiz bo\'ldi - Rejalashtirilgan postlar - Rejalashtirilgan post nashr etilganda yoki nashr etilmaganda bildirishnomalar. - Hozir yuborish - Xato: %1$s - Rejalashtirilgan - Yuborilmoqda… - Muvaffaqiyatsiz - Yuborildi - Bekor qilindi - - Hali nashr etilmagan %d ta rejalashtirilgan postingiz bor. Chiqish uni butunlay o\'chiradi. - Hali nashr etilmagan %d ta rejalashtirilgan postlaringiz bor. Chiqish ularni butunlay o\'chiradi. - - - %d ta navbatda - %d ta navbatda - - - · %d ta 1 soatda muddati tugaydi - · %d ta 1 soatda muddati tugaydi - - - %d relay\'ga - %d relay\'ga - - Eslatma identifikatori nusxalandi - So\'rovlar - Ochiq - Yopiq - Nishonlar - Jamoalar - Yangi jamoa - Jamoani tahrirlash - Moderatorlar - Relaylar - Tekshiriladigan qoidalar (ixtiyoriy) - Ruxsat etilgan hodisa turlari - Qisqa matn (1) - Uzun maqola (30023) - Rasm posti (20) - Video posti (21) - Qisqa video (22) - Jamoa izohi (1111) - Taqiqlangan foydalanuvchilar - Ishonch tarmog\'i eshigi (ixtiyoriy) - Global maksimal hodisa hajmi (ixtiyoriy) - Yangi nishon - Nishon berish - Profil nishonlari - Rasmlar - Mashqlar - Yangi mashq - Yugurish - Yurish - Velosiped minish - Piyoda sayohat - Suzish - Eshkak eshish - Kuch mashqlari - Meditatsiya - Parhez - Ro\'za - Sirkuit - Ilovalar Ilovalar - nAppletlar - nSitelar - Brauzer - Tor orqali yuklanmoqda. Ochiq internetdan foydalanish uchun bosing. - Ochiq internet orqali yuklanmoqda. Tor dan foydalanish uchun bosing. - Sevimlilar - Sevimli ilovalar - Sevimlilarga qo\'shish - Sevimlilardan o\'chirish - Tor orqali yuklanadi. - Ochiq internet orqali yuklanadi. - Relaylarga e\'lon qilindi - Fayl yuklandi - To\'lov amalga oshirildi - Bu ilova hali yuklanmagan. Bir ozdan so\'ng qayta urinib ko\'ring. - So\'nggi nApplet ruxsatlari Hali nApplet ruxsatlari yo\'q nAppletlarga bergan ruxsatlaringiz bu yerda ko\'rinadi. @@ -279,46 +24,11 @@ Bekor qilish - Shaxsiyat - Klaviatura amallari - Relaylar - Saqlash - To\'lovlar - Tarmoq - Yuklamalar Qaysi imkoniyatlar mavjudligini so\'rash - Ochiq kalitingizni o\'qish - Klaviatura yorliqlarini bog\'lash - Voqealaringizni o\'qish, imzolash & nashr etish - O\'zining xususiy saqlash joyi - Lightning hisob-fakturalarini to\'lash - Veb va Blossom resurslarini olish - Media serveringizga fayllar yuklash - Mavzu - Bildirishnomalar - Xabar almashish - Ilovangiz ranglariga moslashish - Sizga bildirishnomalar ko\'rsatish - Boshqa nappletlar bilan xabar almashish Imkoniyat: %1$s - Bu nApplet ochiq kalitingizni o\'qishni xohlaydi. - Bu nApplet profilingiz va hisob ma\'lumotlaringizni o\'qishni xohlaydi. - Bu nApplet sizning nomingizdan %1$d turdagi voqeani imzolash va nashr etishni xohlaydi. - Bu nApplet sizning nomingizdan %1$d turdagi voqeani imzolash va nashr etishni xohlaydi: - Bu nApplet sizning nomingizdan shifrlangan voqea yuborishni xohlaydi. - Bu nApplet relaylaringizdan voqealarni o\'qishni xohlaydi. - Bu nApplet o\'zining xususiy saqlash joyidan foydalanishni xohlaydi. Bu nApplet Lightning hisob-fakturasini to\'lashni xohlaydi. - Bu nApplet veb resursini olishni xohlaydi. - Bu nApplet media serveringizga fayl yuklashni xohlaydi. - Bu nApplet sizga bildirishnomalar ko\'rsatishni xohlaydi. - Bu sayt Nostr kalitingiz bilan %1$d turdagi voqeani imzolashni xohlaydi. - - Bu nApplet %1$d sat uchun Lightning hisob-fakturasini to\'lamoqchi. - Bu nApplet %1$d sats uchun Lightning hisob-fakturasini to\'lamoqchi. - - Shortslar - Ommaviy chatlar - Kuzatish to\'plamlari - Jonli efirlar - Nestlar - Qo\'l ko\'tarish - Qo\'lni tushirish - Ovozni o\'chirish - Ovozni yoqish - Xabar yuborib bo\'lmadi - Mikrofon ovozini o\'chirish - Mikrofon ovozini yoqish - Nestlar - Xona ochiq bo\'lganda audio ijrosini davom ettiradi. - Nest ulandi - Nest — Jonli - Qaytish uchun bosing. - To\'xtatish - qo\'lini ko\'tardi - sahnaga chiqdi - gapiryapti - auditoriya sifatida qo\'shildi - nestni tark etdi - Chiqish - Xonani yopiq deb belgilab bo\'lmadi. Baribir chiqilmoqda — xona avtomatik yopiladi. - - %1$d tinglovchi - %1$d tinglovchi - - Bu notiqni jimlatish - Bu notiqni tiklash - Kuzatish - Kuzatishni to\'xtatish - Ovozini o\'chirish - Ovozini yoqish - Nest server ro\'yxatingizni saqlash muvaffaqiyatsiz tugadi. Qayta urinib ko\'ring. - Nest serverlari - Sizning serverlaringiz - Boshqa mijozlar sozlamasini o\'qiy olishi uchun kind-10112 almashtiriladigan voqea sifatida saqlanadi. - Tavsiya etilgan serverlar - Bir marta bosib ro\'yxatingizga qo\'shishingiz mumkin bo\'lgan o\'rnatilgan takliflar. - Videolar - Musiqa - Pleylistlar - Epizodlar - Podkastlar - - %1$d epizod - %1$d epizod - - Yangi musiqa trek - Yangi pleylist - - %1$d trek - %1$d trek - - Ommaviy Xatcho\'plarga qo\'shish - Ommaviy Xatcho\'plardan olib tashlash - Profilga mahkamlash - Profildan mahkamni olish - Yangi Xatcho\'p Ro\'yxati - Xatcho\'p Ro\'yxati Metama\'lumotlari - Xeshteg To\'plamlari - Yangi Qiziqish To\'plami - Nomini o\'zgartirish - Shaxsiy qilish: eslatmani faqat xabardor qilingan foydalanuvchilarga o\'rab yuborish - Ommaviy qilish - Shaxsiy eslatmaga javoblar doimo shaxsiy qoladi - Ko\'rinadi Hozircha qabul qiluvchilar yo\'q: faqat siz bu eslatmani ko\'ra olasiz. Ulashish uchun odamlarni qo\'shing. Qo\'shish Foydalanuvchini bildirishnomalardan olib tashlash Xabardor qilish uchun foydalanuvchini qidirish va qo\'shish - Xatcho\'p ro\'yxatlari metama\'lumotlarini Nostr dagi har kim ko\'ra oladi. Faqat shaxsiy a\'zolar shifrlangan. - Ommaviyga o\'tkazish - Shaxsiyga o\'tkazish - To\'ldirish & zap yuborish - Zap yuborish - %2$s ga %1$s sats to\'ldirish va %3$s ga %4$s sats zap · to\'lov ≈ %5$s sats - %s variant - Yagona tanlov - Ko\'p tanlov - Ovoz berish imkonsiz - So\'rovnoma yangi ovozlarga yopildi - Bu turdagi so\'rovnomada foydalanuvchi boshiga faqat bitta ovoz ruxsat etiladi - So\'rovnoma mualliflari o\'z so\'rovnomalarida ovoz bera olmaydi. - Bu nima degani? - Bu kontent post beri o\'zgarmagan - Bu kontent o\'zgargan. Muallif o\'zgarishni ko\'rmagan yoki ma\'qullamagan bo\'lishi mumkin - Media Qo\'shish - Rasm Qo\'shish - Video Qo\'shish - Hujjat Qo\'shish - Fayl Serveri - Bu faylni yuklash uchun server tanlang - Media Serverlari Afzal ko\'rgan media yuklash serverlaringizni belgilang. Tavsiya Etilgan Media Serverlari Amethyst\'ning standart ro\'yxati. Ularni alohida yoki ro\'yxat sifatida qo\'shishingiz mumkin. - To\'lov Manzillari - Turli tarmoqlar uchun to\'lov manzillarini qo\'shing (masalan, bitcoin, lightning, ethereum). - Bu to\'lovni qayta ishlash uchun ilova topilmadi. Mos hamyonni o\'rnating. - %1$s to\'lovlarni qayta ishlash uchun o\'rnatilgan ilova yo\'q. Mos hamyonni o\'rnating. - To\'lovni ochib bo\'lmadi - Maxfiylik Sozlamalari - Barcha Kuzatuvchilar - Barcha Foydalanuvchi Kuzatuvchilar - Standart Kuzatuv Ro\'yxati - Atrofimda - Tanlangan - Menikilar - Soket Ro\'yxati - Yangi Kuzatuv Ro\'yxati - Yangi Kuzatuv To\'plami - Ro\'yxatni tahrirlash - Standart port: 9050 - Orbot Socks Porti - Faol Tor Mexanizmi - Ichki versiya yoki Orbot\'dan foydalaning - Tor/Maxfiylik Oldindan Sozlamalari - Quyidagi barcha sozlamalarni tezda o\'zgartiring - Onion Url/Relaylar - Har qanday .onion url uchun Tor\'dan foydalaning - DM Relaylar - DM yuborish va qabul qilish uchun Tor\'ni majburlang - Ishonilmagan Relaylar - Chiqish/kirish relaylarda Tor\'ni majburlang - Ishonchli Relaylar - Ro\'yxatlardagi barcha relaylarda Tor\'ni majburlang - Profil Rasmlari - Profil rasmlarini yuklashda Tor\'ni majburlang - URL Ko\'rinishlari - URL ko\'rinishlarini yuklashda Tor\'ni majburlang - Rasmlar - Rasmlarni yuklashda Tor\'ni majburlang - Videolar - Videolarni yuklashda Tor\'ni majburlang - Pul Operatsiyalari - Zap, lightning va Cashu o\'tkazmalari uchun Tor\'ni majburlang - Nostr Manzilini Tasdiqlash - NIP-05 manzillarini tekshirishda Tor\'ni majburlang - Media Yuklash - Kontent yuklashda Tor\'ni majburlang - Ichki - O\'chiq - Asosiy - Standart - Media Tashqari Hammasi - To\'liq Maxfiylik - Maxsus - Server talab qilganida Tor\'dan foydalaning - IP manzilingizni tasodifiy relaylardan yashiring - IP manzilingizni rasm va videolardan tashqari hamma narsadan yashiring - IP manzilingizni barcha ulanishlardan yashiring - O\'zingiznikini yarating - Shaxsiy Xabarlar - Shaxsiy xabar kelganda sizni xabardor qiladi - Qabul Qilingan Zaplar - Kimdir sizga Zap yuborganda xabardor qiladi - Kimdan: %1$s - uchun %1$s - Javob berish - O\'qilgan deb belgilash - Yangi xabarlar - Yangi Zaplar - Reaktsiyalar - Kimdir postingizga reaktsiya bildirganda xabardor qiladi - %1$s postingizga reaktsiya bildirdi - uchun %1$s - Yangi reaktsiyalar - Shaxmat - Shaxmat o\'yini hodisalari haqida xabardor qiladi - %1$s shaxmat taklifingizni qabul qildi - %1$s yurdi — sizning navbatingiz - Shaxmat yangiliklari - Javoblar - Kimdir postingizga javob berganda xabardor qiladi %1$s javob berdi bu haqda: %1$s - Yangi javoblar - Eslatmalar - Kimdir postda sizni eslatsa yoki iqtibos keltirsa xabardor qiladi - %1$s sizni eslatdi - Yangi eslatmalar @@ -545,36 +80,6 @@ - Kiruvchi qo\'ng\'iroqlar - Kiruvchi ovozli va video qo\'ng\'iroqlar uchun bildirishnomalar - Kiruvchi qo\'ng\'iroq - Kiruvchi ovozli qo\'ng\'iroq… - Kiruvchi video qo\'ng\'iroq… - %1$s bilan qo\'ng\'iroq - Qo\'ng\'iroqlar - Davom etayotgan qo\'ng\'iroq bildirishномаsi - Tugatish - Qabul qilish - Rad etish - Ovozni o\'chirish - Ovozni yoqish - Kamera yoqiq - Kamera o\'chiq - Dinamik - Quloqchin - Amethyst ovozli qo\'ng\'iroqni boshlash uchun mikrofonga kirish kerak. Iltimos, ilova sozlamalarida yoqing. - Amethyst video qo\'ng\'iroqni boshlash uchun kamera va mikrofonga kirish kerak. Iltimos, ilova sozlamalarida yoqing. - Qo\'ng\'iroq Sozlamalari - Real vaqtli bildirishnomalar uchun kirish relaylaringizga ulanishni faol saqlaydi - Amethyst Bildirishnomalari Faol - - %1$d kirish relay\'iga ulangan - %1$d kirish relay\'lariga ulangan - - - %1$d relay\'ga ulangan - %1$d relay\'larga ulangan - - Kirish relaylariga ulanilmoqda… Har doim yoqiq bildirishnoma xizmati Darhol bildirishnoma yetkazib berish uchun kirish relaylaringizga doimiy ulanishni saqlaydi. Davom etayotgan bildirishnomani ko\'rsatadi. Ko\'proq batareya sarflaydi, lekin xabarni o\'tkazib yubormasligingizni ta\'minlaydi. - Bildirishnomalarni Kuzatilayotganlar bo\'yicha ajratish - Ikki bildirishnoma yorlig\'ini ko\'rsatish — Kuzatilayotganlar (siz kuzatadigan odamlar) va Hamma. O\'qilmagan ko\'rsatkich faqat kuzatadigan odamlaringizdan faollik uchun yonadi. - Xabarlarni Ko\'rsatish - Bildirishnoma yorlig\'iga to\'g\'ridan-to\'g\'ri va guruh xabarlarini kiriting. Xabarlarni faqat Xabarlar yorlig\'ida saqlash uchun o\'chiring. - Xabar berish: - Bugun - Yashirish - Ko\'rsatish - Ogohlantirish - Spamni filtrlash - Noma\'lum shaxslardan 5 yoki undan ko\'p marta aynan bir xil bo\'lgan postlarni yashiradi - Voqealarimga mijoz tegi qo\'shish - Yoqilganda, Amethyst siz nashr etgan voqealarga NIP-89 mijoz tegini qo\'shadi. - Hisobotlar haqida ogohlantirish - Postlar yoki profillar kuzatayotganlaringizdan hisobotlarga ega bo\'lganda ogohlantirish xabarini ko\'rsatadi - Jamiyat qoidalarini buzuvchi postlarni yashirish - Jamiyat NIP-9B qoidalar hujjatini nashr etganda va voqea uni bajarmaganida jamiyat tasmalaridan postlarni o\'chiradi. Jamiyatda tuzilgan qoidalar bo\'lmasa ta\'sir qilmaydi. - Filtrlash sozlamalari - Bloklangan kontent - Siz hali hech qanday foydalanuvchini bloklamagansiz. - Bu sessiyada spam sifatida belgilangan hisob yo\'q. - Yashirilgan so\'zlar yo\'q. Uni o\'z ichiga olgan postlarni yashirish uchun quyida so\'z qo\'shing. - Bu foydalanuvchi uchun reaktsiya turlari oldindan tanlanmagan. O\'zgartirish uchun yurak tugmasini uzoq bosib turing - Relay\'dan o\'qish - Relay\'ga yozish - Bu relay\'ga yuborilgan baytlar miqdori, filtrlar va voqealarni o\'z ichiga oladi - Bu relay\'dan olingan baytlar miqdori, filtrlar va voqealarni o\'z ichiga oladi - Maxfiylik Siyosati - Bolalar Xavfsizligi Standartlari - Haqida & Huquqiy - Lightning manzili o\'rnatilmagan - Relay\'lar - Kuzatuv to\'plamlari - O\'qishlar - Tasma algoritmlari - Bozor - Jonli efirlar - Jamoalar - Chatlar - Sezgir kontent - Bu kontentni ko\'rsatishdan oldin sezgir kontent ogohlantirishini qo\'shadi - Interfeys sozlamalari Ilova sozlamalari - Tarjimalar - Reaktsiyalar - Sozlamalar - Hisob sozlamalari - Ilova sozlamalari - Xavfli zona - Marmot holatini tiklash - Marmot holati tiklandi. - Marmot holatini tiklashda xato: %1$s - Doimo - Hisoblanmagan WiFi - Hech qachon - To\'liq - Soddalashtirilgan - Unumdorlik - Klassik - Zamonaviy - Tizim - Yorug\' - Qorong\'u - Mavzu - Rasm ko\'rinishi - Video ijro etish - Videolarni avtomatik ijro etish - URL ko\'rinishi - Immersiv aylantirish - Aylantirish paytida navigatsiya panellarini yashirish - Interfeys rejimi - Post uslubini tanlang - Profil galereyasi uslubi - Galereya uslubini tanlang - Spamchilar - Ovozsiz. Ovozni yoqish uchun bosing - Ovoz yoqilgan. Ovozsiz qilish uchun bosing - %d soniya orqaga o\'tish - %d soniya oldinga o\'tish - Faqat joylashuv uchun post - Uni faqat joylashuv kuzatuvchilari ko\'radi. Umumiy kuzatuvchilaringiz uni ko\'rmaydi. - - %1$d trek - %1$d trek - - - +%1$d ta trek ko\'proq - +%1$d ta trek ko\'proq - - Muqova rasmini yuklash - Bu track uchun muqova bo\'lishi uchun kvadrat rasm tanlang. - Audio faylni yuklash - MP3, WAV yoki FLAC tanlang. Saqlashda media serveringizga yuklanadi. - Muqova va audio yuklanmoqda va nashr etilmoqda. Ekrandan chiqqan bo\'lsangiz ham davom etadi. - Playlisti tahrirlash - Muqova rasmini yuklash - Bu playlist uchun muqova bo\'lishi uchun kvadrat rasm tanlang. - Muqova yuklanmoqda va nashr etilmoqda. Ekrandan chiqqan bo\'lsangiz ham davom etadi. Ommaviy Guruh Shaxsiy - Mavzu - Yuklash mumkin emas - Avval xabar manzilini kiriting - Hamyon topilmadi - Amethyst Nostr Wallet Connect (NWC) ni qo\'llab-quvvatlaydigan hech qanday hamyon ilovasini topa olmadi. -\n\nNima qilishingiz mumkin: -\n\t1. NWC qo\'llab-quvvatlashini tekshirish: Tanlagan hamyon ilovangiz Nostr Wallet Connect bilan mos kelishini ikki marta tekshiring. -\n\t2. Ulanish yaratish: Hamyon ilovangizga o\'ting va yangi NWC ulanishini yarating. -\n\t3. Amethyst ga bog\'lash: Hamyoningiz odatda uchta variant taqdim etadi: -\n\t\t3.1 Avtomatik bog\'lash: Amethyst ni avtomatik ochish va ulash tugmasi. Agar shunday bo\'lsa, ushbu tugmani bosing, Amethyst ni oching va yangi ekranda saqlash tugmasini bosing. -\n\t\t3.2 Qo\'lda bog\'lash: Nusxa olishingiz va to\'g\'ridan-to\'g\'ri kiritish uchun ushbu ekrandagi joylashtirish belgisini bosishingiz mumkin bo\'lgan Ulanish URI si. -\n\t\t3.3 QR kod: Hamyon ushbu ekrandagi QR kod tugmasidan o\'qishingiz mumkin bo\'lgan QR kod yaratadi. - - Qorong\'u, yorug\' yoki tizim mavzusi - Rasmlar va GIFlarni avtomatik yuklash - Videolar va GIFlarni avtomatik yuklash - Ekranda ko\'ringan videolarni avtomatik ijro etish - URL ko\'rinishlarini ko\'rsatish - Buferga nusxalash - Buferga nusxalandi - Ulashish yoki saqlash DM sifatida yuborish - Media qo\'shildi - Media profil galereyangizga qo\'shildi - Zap yuborishda xato - Lightning sozlamasi yo\'q - %1$s foydalanuvchisining sat larni qabul qilish uchun lightning manzili sozlanmagan - Imzolash ilovasini ochishda xato - Imzolash ilovasi topilmadi. Ilova o\'chirilmaganligini tekshiring - Bu videoni ijro etib bo\'lmaydi - Kodek yoki format ushbu qurilmada qo\'llab-quvvatlanmaydi (%1$s). Uni brauzeringizda ochib ko\'ring. - Brauzerda ochish - Imzo so\'rovi rad etildi - Imzolash ilovasi ushbu tranzaksiyaga ruxsat berganligini tekshiring - Lightning hisob-fakturasini to\'lash uchun hamyon topilmadi (Xato: %1$s). Zap lardan foydalanish uchun Lightning hamyonini o\'rnating - Lightning hisob-fakturasini to\'lash uchun hamyon topilmadi. Zap lardan foydalanish uchun Lightning hamyonini o\'rnating - Blossom havolalarini ochib bo\'lmaydi - Blossom ilovalari topilmadi. Bu faylni ko\'rish uchun mahalliy Blossom ilovasini o\'rnating - Yashirin so\'zlar - Ovozsiz iplari - Ovozsiz iplar yo\'q - Profil rasmi - Profil rasmlarini ko\'rsatish - Hisob-fakturani to\'lab bo\'lmadi - Yechib bo\'lmadi - Cashu ni qaytarib bo\'lmadi - Mint quyidagi xato xabarini yubordi: %1$s - Cashu qabul qilindi - %1$s sat hamyoningizga yuborildi. (To\'lovlar: %2$s sat) - Tizimda mos Cashu hamyoni topilmadi - Qabul qiluvchining serverlaridan hisob-faktura olishda xato - Wallet connect provayderingiz quyidagi xatoni qaytardi: %1$s - Lightning manzilidan LNUrl yig\'ib bo\'lmadi \"%1$s\". Foydalanuvchi sozlamasini tekshiring - %1$s dan hisob-faktura olishda xato: %2$s - %1$s dan JSON tahlilida xato. Foydalanuvchining lightning sozlamasini tekshiring - %1$s ning javobida qayta qo\'ng\'iroq URL si topilmadi - Noto\'g\'ri hisob-faktura miqdori (%1$s sat) %2$s dan. %3$s bo\'lishi kerak edi - Zap yuborishdan oldin lightning hisob-fakturasini yaratib bo\'lmadi. Qabul qiluvchining lightning hamyoni quyidagi xatoni yubordi: %1$s - Faqat o\'qish foydalanuvchisi - Reaktsiyalar sozlanmagan - Bildirishnomalar - Yetkazib berish - Ilova ichida ko\'rsatish - Kategoriyalar - %1$s dan xabar - Salom %1$s, bu hali ham mavjudmi? - Kiyim-kechak - Aksessuarlar - Elektronika - Mebel - Kolleksiya buyumlari - Kitoblar - Uy hayvonlari - Sport - San\'at - Hunarmandchilik - Uy - Ofis - Oziq-ovqat - Turli xil - Boshqa - Media yuklash muvaffaqiyatsiz tugadi - Siqilgan faylni ochib bo\'lmadi - Yuklash xatosi: %1$s - Server yuklashdan keyin URL manzil bermadi - Serverdan yuklangan mediani yuklab bo\'lmadi - Yuklashdan keyin yuklab olingan faylni tekshirib bo\'lmadi: %1$s - %1$s serveriga yuklash muvaffaqiyatsiz tugadi: %2$s - O\'chirishda xatolik: %1$s - Media NIP-95 uchun juda katta - Fayllarni shifrlash - Maxfiylik uchun yuklamasdan oldin fayllarni shifrlang. Ba\'zi serverlar bepul hisoblarda shifrlangan fayllarni qabul qilmasligi mumkin. - Shifrlangan yuklash muvaffaqiyatsiz tugadi - Ko\'plab serverlar bepul hisoblarda shifrlangan fayllarni qabul qilmaydi. Siz shifrlashsiz qayta urinib ko\'rishingiz mumkin. - H.265/HEVC kodekidan foydalanish - Kichikroq fayl hajmida yaxshiroq sifat, lekin barcha qurilmalar H.265 ni qo\'llab-quvvatlamaydi. - GIF ni MP4 ga aylantirish - Kichikroq fayl hajmi va yaxshiroq ijro mosligini ta\'minlash uchun animatsion GIF ni MP4 videoga aylantiradi. - Shaxsiy metama\'lumotlarni olib tashlash - Yuklashdan oldin qo\'llab-quvvatlanadigan media fayllardan shaxsiy metama\'lumotlarni olib tashlashga harakat qiladi - Metama\'lumotlarni olib bo\'lmadi - Mediadan shaxsiy metama\'lumotlarni olib bo\'lmadi. Yuklash bekor qilindi. - Yuklash bekor qilindi - AVIF dan metama\'lumotlarni olib bo\'lmaydi: %1$s - Bosh sahifa - Kashf etish - Xabarlar - Bildirishnomalar - Taqvimlar - Taqvim ro\'yxatlari - Shaxmat - Hamyon - Cashu hamyoni (NIP-60) Nutzap kaliti (kengaytirilgan) Faqat NIP-61 nutzaplarini qabul qilish uchun ishlatiladigan alohida shaxsiy kalit. Bu sizning Nostr identifikatsiya kalitingiz emas. Yangi kalit yaratish P2PK shaxsiy kalit (hex) - Mintlarni tahrirlash O\'zgarishlarni saqlash - - +%1$d ta ko\'proq - +%1$d ta ko\'proq - - - %1$d boshqa tomonidan tavsiya etilgan - %1$d boshqalar tomonidan tavsiya etilgan - - Mashhur mintlar - Mos keladigan mintlar - Qabul qilindi - Yuborildi - %1$s ning kind:38000 tavsiyangiz uchun o\'chirish so\'rovini nashr eting. NIP-09 ni hurmat qiladigan relay lar uni o\'chiradi. - %2$s isbotlar bo\'yicha %1$s sats tiklandi. - %1$s sat + %2$s satgacha komissiya to\'lansinmi? - Nutzap muvaffaqiyatsiz tugadi - Eslatmada qabul qiluvchi pubkey yo\'q - Nutzaplar ommaviy bo\'lib, bu shaxsiy eslatmani oshkor qiladi. Uning o\'rniga Lightning zap dan foydalaning. - Voqea havolasini yaratib bo\'lmadi - Hisob-faktura to\'lanishi kutilmoqda… - Mint tekshirilmoqda… - Sekin - Tez - ~1 soat - ~30 daqiqa - ~10 daqiqa - - %1$s sats jo\'natish, %2$d yo\'l - %1$s sats jo\'natish, %2$d yo\'l - - - Bu notaning %1$d tomonlama Zap bo\'linmasidan foydalanish - Bu notaning %1$d tomonlama Zap bo\'linmasidan foydalanish - - - %1$d qabul qiluvchi o\'rtasida bo\'linma - %1$d qabul qiluvchi o\'rtasida bo\'linma - - - %1$d ta faqat Lightning-manzilli qabul qiluvchi o\'tkazib yuborildi — zanjir bo\'yicha manzilni olish uchun Nostr umumiy kaliti kerak. - %1$d ta faqat Lightning-manzilli qabul qiluvchilar o\'tkazib yuborildi — zanjir bo\'yicha manzilni olish uchun Nostr umumiy kaliti kerak. - - balans yuklanmoqda - tranzaksiya qurilmoqda - imzolanmoqda - tarqatilmoqda - kvitansiya nashr etilmoqda - Bitcoin zanjir backend sozlanmagan - Bitcoin balansingizni yuklab bo\'lmadi - Tranzaksiyani tuzib bo\'lmadi - Qabul qiluvchi ulushi chang chegarasidan past - Tranzaksiyani imzolab bo\'lmadi - Tranzaksiyani tarqatib bo\'lmadi - To\'lov yuborildi, lekin zap cheki nashr etilmadi - - To\'lov yuborildi (%1$d / %2$d kvitansiya nashr etildi), lekin keyingi kvitansiya nashr etilmadi - To\'lov yuborildi (%1$d / %2$d kvitansiya nashr etildi), lekin keyingi kvitansiya nashr etilmadi - - Kuzatuvlarni import qilish - Yangi mahsulot - Yangi maqola - Yangi kalendar hodisasi - Kalendar hodisasini tahrirlash - Yangi kalendar - Kalendarni tahrirlash - Lenta - Oy - Hafta - Kun - - %1$s, %2$d tadbir - %1$s, %2$d tadbir - - Hozir bo\'lyapti - %1$s · %2$s da tugaydi - Kalendar hodisasini ulashish - Kalendar eslatmalari - Qatnashayotgan hodisa boshlanmoqda bo\'lganda xabar. - Kalendar hodisasi - - %1$d daqiqada boshlanadi - %1$d daqiqada boshlanadi - - Rasmni yuklash muvaffaqiyatsiz bo\'ldi - Tanlangan rasmni yuklab bo\'lmadi. Qayta urinib ko\'ring yoki URL manzilini joylashtiring. - Kalendar eslatmalari - Eslatmalarni yuborish - Qatnashayotgan hodisa boshlanmoqda bo\'lganda bildirishnoma yuboriladi. - - %1$d daq - %1$d daq - - Xaritada ochish - Havolani ochish - Bu postga barcha reaktsiyalarni ochish - Bu postga barcha reaktsiyalarni yopish - Quyi navigatsiya paneli Qayta tartiblash uchun sudrang. Quyi panelga element qo\'shish yoki olib tashlash uchun almashtiring. Nol element bo\'lganda quyi panel yashiriladi. Qayta tartiblash Asosiy ekranda qaysi yorliqlar ko\'rinishini tanlang. Faqat bitta yorliq faol bo\'lganda yorliq paneli yashiriladi. - Hammasi - Profil interfeysi Foydalanuvchi profil ekranlarida qaysi bo\'limlar va lentalar ko\'rinishini tanlang. Barcha variantlar sukut bo\'yicha yoqilgan. - Profil nishonlari - Ilova tavsiyalari - Qabul qilingan Zap lentasi - Kuzatuvchilar lentasi - Reaktsiya qatori - Video o\'ynatuvchi tugmalari - Audio vizualizator - Muddati tugash sanasi - Noto\'g\'ri manzil - Amethyst ochish uchun URI qabul qildi, lekin u URI noto\'g\'ri edi: %1$s - DM Kirish qutisi Relaylari - Qidiruv Relaylari - Yaxshi variantlar:\n%1$s - Chiqish qutisi Relaylari - Kirish qutisi Relaylari - Relay sozlamalari - Umumiy chiqish/Asosiy Relaylar - Foydalanuvchi kontentini ushbu relaylarga joylashtirmoqda - Bu relay turi barcha kontentingizni saqlaydi. Amethyst postlaringizni bu yerga yuboradi va boshqalar kontentingizni topish uchun ushbu relaylardan foydalanadi. 1–3 relay kiriting. Ular shaxsiy relaylar, pullik relaylar yoki umumiy relaylar bo\'lishi mumkin. - Umumiy kirish qutisi Relaylari - Foydalanuvchi ushbu relaylarda bildirishnomalar qabul qilmoqda - Ushbu relay turi sizning postlaringizga barcha javoblar, izohlar, yoqtirishlar va Zap larni qabul qiladi. Ular pullik yoki bepul relay lar bo\'lishi mumkin. Relay operatori tomonidan belgilangan cheklovlar siz qabul qiladigan bildirishnomalarni yaxshi yoki yomon tomonga cheklashi mumkin. Masalan, agar siz izoh spami hujumiga uchrasangiz, pullik relay lar spamni filtrlashi mumkin. 1–3 ta relay kiriting. - DM Kiruvchi Relay lar - Foydalanuvchi ushbu relay larda DM larni qabul qiladi - Shaxsiy qutingiz sifatida 1–3 ta relay kiriting. Boshqalar sizga DM yuborish uchun ushbu relay lardan foydalanadi. DM Kiruvchi relay lar har qanday kishidan har qanday xabarni qabul qilishi, lekin faqat sizga yuklab olishga ruxsat berishi kerak. Yaxshi variantlar:\n - inbox.nostr.wine (pullik)\n - auth.nostr1.com (bepul)\n - you.nostr1.com (shaxsiy relay lar - pullik) - KeyPackage lar - KeyPackage Relay lari - Sizning MLS KeyPackage laringiz nashr etiladigan relay lar (MIP-00). Boshqa foydalanuvchilar sizni Marmot guruh chatlariga taklif qilish uchun ushbu KeyPackage larni oladi. Sizdan KeyPackage hodisalarini qabul qiladigan va ommaviy o\'qishga ruxsat beradigan 1–3 ta relay kiriting. - Shaxsiy Bosh Relay lar - Qoralamalar va/yoki ilova sozlamalari kabi hech kim ko\'ra olmaydigan hodisalarni saqlash uchun 1–3 ta relay kiriting. Ideali, bu relay lar mahalliy yoki har bir foydalanuvchi mazmunini yuklab olishdan oldin autentifikatsiya talab qiluvchi bo\'lishi kerak. - Ulangan Relay lar - Hozirda ishlatiladigan relay larning joriy ro\'yxati - Qidiruv Relay lari - Kontent yoki foydalanuvchilarni qidirishda foydalaniladigan relay lar ro\'yxati. Agar variantlar mavjud bo\'lmasa, teglar va qidiruv ishlamaydi. Ular NIP-50 ni amalga oshirishiga ishonch hosil qiling. - Mahalliy Relay lar - Ushbu qurilmada ishlaydigan relay lar ro\'yxati. - Profillarni mahalliy relay ga yo\'naltirish - Barcha qabul qilingan profil (kind 0) hodisalarini mahalliy relay ingizga yuboring - Ishonchli Relay lar - Tor ulanishini talab qilmaydigan ishonchli relay laringiz - Sevimli Relay Tasmalar - Global tasmasini ko\'rish uchun tez-tez boradigan relay laringiz - Proksi Relay lar - Ilovaning tasmalangizni yuklab olish uchun foydalanishi kerak bo\'lgan agregator relay lar, masalan filter.nostr.wine. Bu chiqib ketish modelini almashtiradi va ilovani faqat ro\'yxatlaringizdagi relay larga ulanishga majbur qiladi. - Translyatsiya Relay lari - Sizning eslatmalaringizni boshqa barcha relay larga yuborishda ixtisoslashgan relay lar, masalan sendit.nosflare.com. Amethyst ushbu relay ni siz tomonidan qilingan barcha yangi hodisalarga qo\'shadi - Indeksator Relay lar - Hamma metama\'lumotlar va relay ro\'yxatlarini saqlashda ixtisoslashgan relay lar, masalan purplepag.es. Amethyst ro\'yxatlaringizda bo\'lmagan foydalanuvchilarni topish uchun ushbu relay lardan foydalanadi. - Bloklangan Relay lar - Amethyst bu relay larga hech qachon ulanmaydi - Relay sozlamalarini eksport qilish Veb: Umumiy Ko\'rinish Haqida Havolalar Qo\'llab-quvvatlovchilar Mavzular - Vaqt Tamg\'asi Isboti - Ushbu post %1$s dan oldin imzolanganligi isboti mavjud. Isbot o\'sha sana va vaqtda Bitcoin blokchain da muhrlangan. - Postni Tahrirlash - Qoralama eslatmasiga javob berish mumkin emas - Qoralama eslatmasini iqtibos qilish mumkin emas - Qoralama eslatmasiga munosabat bildirish mumkin emas - Qoralama eslatmasiga Zap berish mumkin emas - Qoralama Eslatma - Noto\'g\'ri So\'rov - Server so\'rovni qayta ishlay olmaydi yoki qayta ishlamoqchi emas. - Ruxsatsiz - Foydalanuvchi haqiqiy autentifikatsiya hisob ma\'lumotlariga ega emas - To\'lov Talab Etiladi - Server so\'rovni bajarish uchun to\'lov talab qiladi - Taqiqlangan - Foydalanuvchi so\'rov qilish uchun kirish huquqlariga ega emas - Topilmadi - Server so\'ralgan manzilni topa olmadi - Usul Ruxsat Etilmagan - Server so\'rov usulini qo\'llaydi, lekin maqsad resursini emas - Maqbul Emas - Server so\'rovni qoniqtiradigan hech qanday kontent topa olmadi. - Proksi Autentifikatsiyasi Talab Etiladi - Foydalanuvchi haqiqiy autentifikatsiya hisob ma\'lumotlariga ega emas - So\'rov Vaqti Tugadi - Server boshqa birovni kutishda vaqt tugadi - Ziddiyat - Server resurs bilan ziddiyat mavjudligi sababli so\'rovni bajara olmadi - Yo\'q - So\'ralgan kontent serverdan butunlay o\'chirilgan va qayta tiklanmaydi - Uzunlik Talab Etiladi - Server belgilangan uzunlik talab qilgani uchun so\'rovni rad etadi - Oldindan Shart Bajarilmadi - Sarlavha maydonlaridagi so\'rovning oldindan shartlari server tomonidan bajarilmadi - Yuk Juda Katta - So\'rov server belgilangan chegaralardan kattaroq va server uni qayta ishlashdan bosh tortadi - URI Juda Uzun - Mijoz tomonidan so\'ralgan url server qayta ishlashi uchun juda uzun. - Qo\'llab-quvvatlanmaydigan Media Turi - So\'rov server qo\'llab-quvvatlamaydigan media formatdan foydalanadi - Diapazon Qoniqarli Emas - Server so\'rovning Range sarlavha maydonida ko\'rsatilgan qiymatni bajara olmadi. - Kutish Bajarilmadi - Server Expect so\'rov sarlavha maydoni tomonidan ko\'rsatilgan talablarni bajara olmadi - Yangilash Talab Etiladi - Mijoz boshqa protokolga yangilanmasa, server joriy protokol yordamida so\'rovni qayta ishlashdan bosh tortadi. - Ichki Server Xatosi - Server kutilmagan xatoga duch keldi va so\'rovni bajara olmadi - Amalga Oshirilmagan - Server so\'rovni bajara olmadi yoki so\'rov usulini tanib olmadi - Yomon Shlyuz - Server shlyuz sifatida ishlaydi va xostdan noto\'g\'ri javob oldi - Xizmat Mavjud Emas - Bu ko\'pincha server haddan tashqari yuklanganida yoki texnik xizmat ko\'rsatish uchun o\'chirilganida sodir bo\'ladi - Shlyuz Vaqti Tugadi - Server shlyuz yoki proksi sifatida ishlayotgan edi va javob kutishda vaqti tugadi - HTTP Versiyasi Qo\'llab-quvvatlanmaydi - Server so\'rovdagi HTTP versiyasini qo\'llamaydi - Variant Ham Muzokaralar Qiladi - Serverda ichki konfiguratsiya xatosi mavjud - Saqlash Yetarli Emas - Serverda so\'rovni muvaffaqiyatli qayta ishlash uchun yetarli saqlash joyi yo\'q - Cheksiz Tsikl Aniqlandi - Server so\'rovni qayta ishlashda cheksiz tsiklni aniqladi - Tarmoq Autentifikatsiyasi Talab Etiladi - Tarmoqqa kirish uchun mijoz autentifikatsiya qilinishi kerak Blossom Serverlari Xohlagancha server qo\'shing. Rasmingizni yuklashda qaysi birini ishlatishni keyinroq tanlashingiz mumkin - NIP-96 Serveri Qo\'shish - Blossom Serveri Qo\'shish Yuklab olish - Faylni ochib bo\'lmadi - Faylni ochish va yuklab olish uchun o\'rnatilgan torrent ilovalari yo\'q. - Hodisada magnet havola yaratish uchun yetarli ma\'lumot yo\'q - Mening Ro\'yxatlarim - Tasmalar - Xeshteglar - Qiziqish To\'plamlari - Joylashuvlar - Jamoalar - Ro\'yxatlar - Tasma Algoritmlari - Barcha sevimli tasma algoritmlari - Relay lar - Sevimli Tasma Algoritmlari - Shaxsiy Xabar - Ommaviy Xabar - Rasmni ulashib bo\'lmadi, iltimos keyinroq qayta urinib ko\'ring… - Videoni ulashib bo\'lmadi, iltimos keyinroq qayta urinib ko\'ring… - Video yuklab olinmoqda… - Tarjima Qilmaslik - Bu yerda ko\'rsatilgan tillar tarjima qilinmaydi. Tilni tanlang va uni olib tashlang, shunda u yana tarjima qilinadi. - Tarjima Qilish - Kontent tarjima qilinadigan tilni tanlang. - Til Ko\'rsatish Afzalliklari - Har bir tarjima qilingan til juftligi uchun qaysi tilni birinchi ko\'rsatishni tanlang. - Pauza - Ijro etish - Ushbu xabar %1$s da yo\'qoladi - Kuzatish Ro\'yxati Metama\'lumotlari - Kuzatish ro\'yxatlari metama\'lumotlarini Nostr dagi har kim ko\'rishi mumkin. Faqat shaxsiy a\'zolaringiz shifrlangan. - Kuzatish To\'plami Metama\'lumotlari - Kuzatish to\'plami metama\'lumotlarini Nostr dagi har kim ko\'rishi mumkin va yangi foydalanuvchilar uchun boshlang\'ich to\'plamlar sifatida ko\'plab veb-saytlarda tez-tez nashr etiladi. - Kuzatish To\'plamini Tahrirlash - Kengaytirish - Qayta Urinish - Reaksiya - Ovozli post - Ovozli javob - Chiqish relaylari - Ilovalar - Ilova tavsiyalari - Foydalanuvchi sozlamalari - Audio sarlavha - Audio trek - Musiqa treki - Musiqa pleylist - Podcast epizodi - Podcast ko\'rsatuvi - Muallif podcastlari - Sevimli podcastlar - Nishon mukofotlari - Nishon ta\'riflari - Qabul qilingan nishonlar to\'plami - Profil nishonlari - Bloklangan relaylar - Blossom serverlari - Nests serverlari - Uzatish relaylari - Xatcho\'p ro\'yxati - Eski xatcho\'p ro\'yxati - Kunlik uchrashuv - Taqvim - Uchrashuv - Uchrashuv RSVP - Shaxmat o\'yinlari - Shaxmat Auth - Sevimli relaylar - Shaxmat chaqiruvlari - Shaxmat o\'yinini qabul qilish - Shaxmat yurishi - Shaxmat o\'yini tugashi - Shaxmat durrang taklifi - Kanal ta\'rifi - Kanal xabarini yashirish - Kanal ro\'yxati - Kanal xabari - Kanal metama\'lumotlari - Kanalda foydalanuvchini jim qilish - DM fayli - DM xabari - DM relaylari - E\'lonlar - Izohlar - Hamjamiyat ta\'rifi - Hamjamiyat ro\'yxati - Hamjamiyat posti - Kuzatuvchilar ro\'yxati - O\'chirishlar - Qoralamalar - Emoji to\'plamlari - Emoji to\'plami ro\'yxati - Vaqtinchalik chat - Vaqtinchalik chat xonalari - Fayl sarlavhalari - Profil galereyasi - Fayl serverlari - Blob ma\'lumotlari - Blob sarlavhalari - Tibbiy ma\'lumotlar - Kuzatuv to\'plamlari - Qayta ulashishlar (16) - Geohash kuzatuvi - GiftWraplar - Git muammosi - Git yamasi - Git reposi - Git javobi - Zap maqsadlari - Xeshteg kuzatuvi - Ta\'kidlashlar - Indeks relay ro\'yxati - Sarguzasht kirish qismi - Sarguzasht sahnasi - Sarguzasht o\'qish - Nomlangan xatcho\'plar - Jonli chatlar - Jonli efirlar - Zaplar - NWC so\'rovi - NWC javobi - Shaxsiy Zaplar - Zap so\'rovi - Bloglar - Uchrashув xonasi - Xona mavjudligi - Uchrashuv maydoni - Profil - Jim qilish ro\'yxati - Nostr ulanish - DVM holati - DVM kontent so\'rovi - DVM kontent javobi - DVM foydalanuvchi so\'rovi - DVM foydalanuvchi javobi - Odamlar ro\'yxati - Rasmlar - Mashqlar - Pinlar - Zap so\'rovnomasi - So\'rovnoma - So\'rovnoma javobi - NIP-04 DMlar - Shaxsiy relaylar - Proksi relaylar - Ommaviy xabar - Reaksiyalar - Aloqa kartasi - Relay autentifikatsiyasi - Relay kashfiyoti - Relay monitor e\'loni - Relay to\'plami - Hisobotlar - Qayta ulashishlar - Foydalanuvchini o\'chirish - Muhrlar - Qidiruv relaylari - Foydalanuvchi holati - Eslatmalar - Tahrirlashlar - Torrentlar - Torrent izohlari - Ishonchli relaylar - Ishonchli ta\'minotchilar - Ovozli xabar - Ovozli javob - Veb xatcho\'p - %1$d%% ishga tayyor vaqt - Namecoin sozlamalari - %d ms - Relay sinxronizatsiyasi - sizdan kelgan voqealar - sizga kelgan voqealar - qidiriluvchi voqealar - DMlar - profillar - chiqish ro\'yxatlari - Oxirgi faollik %1$s oldin - Oxirgi faollik %1$s da (%2$s oldin) - Hozir ko\'rildi - Hech qachon ko\'rilmagan - - %1$d daqiqa - %1$d daqiqa - - - %1$d soat - %1$d soat - - - %1$d kun - %1$d kun - - - %1$d hafta - %1$d hafta - - - %1$d oy - %1$d oy - - - %1$d yil - %1$d yil - - - %1$d ta kutilayotgan hisob-faktura - %1$d ta kutilayotgan hisob-faktura - - - Siz ishlatmaydigan %1$d mint da saqlanayotgan mablag\'lar - Siz ishlatmaydigan %1$d ta mint da saqlanayotgan mablag\'lar - - %1$s sat %2$s ga ko\'chirildi. - Qurilmaga uzatish - Uzatishni to\'xtatish - HLS yuklash - %1$s yuklanmoqda (%3$d dan %2$d si) - Tasdiqlash - Tasdiqlash so\'rovi - Tasdiqlаgich tavsiyasi - Tasdiqlаgich malakasi - Veb xatchо\'plar - Veb xatchо\'p qo\'shish - Veb xatchо\'pni tahrirlash - %2$s sats maqsadidan %1$s moliyalashtirildi - Yangi maqsad - Yo\'q bo\'lib ketish so\'rovi - Yo\'q bo\'lib ketish so\'rovi yuborildi - Yo\'q bo\'lib ketish tarixi - Foydalanuvchilar - Hodisalar - Turlar - IP lar - Sozlamalar - Matn yaxshilanishlarini taklif qilish - Matn tuzatishlar va ohang o\'zgarishlarini taklif qilish uchun qurilmadagi AI modelidan foydalanadi. - Kuzatilgan translyatsiyalar - Hodisalarni yuborishda kuzatilgan translyator dan foydalaning. Translyatsiya vaqtida jonli holat va har bir relay holati ko\'rsatiladi. - Ulashish uchun mashg\'ulotlar taklif qilish - Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) dan tugallangan mashg\'ulotlarni o\'qib, ularni post sifatida ulashishni taklif qiladi. Ruxsat faqat ulanganingizda so\'raladi. - Yozish sozlamalari - Avtomatik qoralamalar yaratish - Yozsangiz yoki yuborilmagan matn bilan kompositordan chiqib ketsangiz qoralama hodisasini avtomatik saqlaydi va shaxsiy chiqish relay laringizga yuboradi. - Yangi emoji to\'plami - Emoji to\'plamini tahrirlash - Mening emoji to\'plamlarim - Emojilar - Ommaviy emojilar hammaga ko\'rinadi va bu to\'plam emoji ro\'yxatingizda bo\'lsa, munosabat menyungizda va \":\" avtoto\'ldirish tanlagichida ko\'rsatiladi. - Shaxsiy emojilar relay\'larda shifrlangan holda saqlanadi va faqat sizga ko\'rinadi. Ular ommaviy emojilar kabi munosabat menyungizda va \":\" avtoto\'ldiruvchida ko\'rsatiladi. - Qoralama %1$d bayt; ushbu hamjamiyat bu turni %2$d bayt bilan cheklaydi. - Qoralama %1$d bayt; ushbu hamjamiyat voqealarni %2$d bayt bilan cheklaydi. - Bugun bu turdan allaqachon %1$d ta voqea joylashtirgansiz (chegara %2$d). - Nowhere sayti - Nowhere tadbirи - Nowhere mablag\' yig\'ish - Nowhere do\'koni - Nowhere petitsiyasi - Nowhere xabari - Nowhere drop - Nowhere san\'ati - Nowhere forumi - - %1$d xabar - %1$d xabar - - - %1$d a\'zo - %1$d a\'zo - - Guruh ma\'lumotlari yangilandi - Yangilash muvaffaqiyatsiz: %1$s - Guruh yaratish muvaffaqiyatsiz: %1$s - Guruhni tark etish muvaffaqiyatsiz: %1$s - %1$s qo\'shilmoqda… - %1$s ni qo\'shish muvaffaqiyatsiz: %2$s - noma\'lum xato - A\'zo olib tashlandi - A\'zoni olib tashlash muvaffaqiyatsiz: %1$s - Admin huquqlari berildi - Admin huquqini berish muvaffaqiyatsiz: %1$s - Admin huquqlari qaytarib olindi - Admin huquqini qaytarib olish muvaffaqiyatsiz: %1$s - Ushbu guruh a\'zosi emas %1$s manzilidagi qabul qiluvchining lightning xizmati mavjud emas. U \"%2$s\" lightning manzilidan hisoblangan. Xato: %3$s. Server ishlayotganini va lightning manzili to\'g\'riligini tekshiring %1$s ni aniqlab bo\'lmadi. Ulangan-ulmaganligingizni, server ishlayotganini va lightning manzili %2$s to\'g\'riligini tekshiring.\n\nIstisno: %3$s %1$s ning hisob-faktura olish so\'rovidan JSON tahlil qilishda xato. Foydalanuvchining lightning sozlamasini tekshiring diff --git a/amethyst/src/main/res/values-vi-rVN/strings.xml b/amethyst/src/main/res/values-vi-rVN/strings.xml index bdbc3647b6..09256c190d 100644 --- a/amethyst/src/main/res/values-vi-rVN/strings.xml +++ b/amethyst/src/main/res/values-vi-rVN/strings.xml @@ -1,110 +1,12 @@ - - Bài đăng này có hơn %1$d hashtag - - - %1$d tài sản đính kèm - - - +%1$d\ntrả lời - - Số lượng sự kiện spam đến từ relay này - Mạo danh - Hành vi trái pháp luật - Yêu cầu xóa - Bạn đang dùng khóa công khai và chỉ có thể đọc. Đăng nhập bằng khóa riêng tư để có thể trả lời - Bạn đang dùng khóa công khai và chỉ có thể đọc. Đăng nhập bằng khóa riêng tư để có thể boost bài đăng - Bạn đang dùng khóa công khai và chỉ có thể đọc. Đăng nhập bằng khóa riêng tư để thích bài đăng - Chưa thiết lập số tiền Zap. Nhấn giữ để thay đổi - Bạn đang dùng khóa công khai và chỉ có thể đọc. Đăng nhập bằng khóa riêng tư để có thể gửi zap - Bạn đang dùng khóa công khai và chỉ có thể đọc. Đăng nhập bằng khóa riêng tư để có thể theo dõi - Bạn đang dùng khóa công khai và chỉ có thể đọc. Đăng nhập bằng khóa riêng tư để có thể bỏ theo dõi - Bạn đang dùng khóa công khai và chỉ có thể đọc. Đăng nhập bằng khóa riêng tư để có thể ẩn từ hoặc câu - Bạn đang dùng khóa công khai và chỉ có thể đọc. Đăng nhập bằng khóa riêng tư để có thể hiển thị từ hoặc câu - Bạn đang dùng khóa công khai và chỉ có thể đọc. Đăng nhập bằng khóa riêng tư để có thể tải lên - Bạn đang dùng khóa công khai và chỉ có thể đọc. Đăng nhập bằng khóa riêng tư để có thể ký sự kiện - Giải mã không được phép - Trình ký không cho phép giải mã cần thiết cho thao tác này. Hãy bật giải mã NIP-44 trong ứng dụng ký của bạn rồi thử lại - Không tìm thấy trình ký - Ứng dụng trình ký đã bị gỡ cài đặt? Hãy kiểm tra xem trình ký đã được cài đặt và có tài khoản này chưa. Đăng xuất và đăng nhập lại nếu ứng dụng trình ký đã thay đổi. - Trình ký bên ngoài trả về dữ liệu không hợp lệ cho yêu cầu. Có thể có lỗi trong Amethyst hoặc trong trình ký. đã boost lần chỉnh sửa #%1$s - Đề xuất chỉnh sửa - Thêm - Lỗi phân tích thông báo lỗi - Hồ sơ - Bộ lọc bảo mật - Đang yêu cầu hóa đơn… - Dịch vụ ghi nợ không hoàn tất thanh toán. - Thanh toán %1$s qua %2$s? - Thanh toán hóa đơn này qua %1$s? - Nhập số tiền hợp lệ cho ưu đãi này. - Một lần - Hàng ngày - Hàng tuần - Hàng tháng - Thanh toán - Đang thanh toán qua %1$s… - Thanh toán thất bại - Có thể chi tiêu cho người nhận này: %1$s sats - Giao dịch: %1$s - "Ảnh thẻ xem trước cho %1$s" - Mô tả - Bạn đang nghĩ gì? - Viết tin nhắn… - Đăng Lưu - Gửi - Tạo Đổi tên - Hủy - Lỗi - Các lỗi - Tỷ lệ phần trăm kết nối thành công đến relay - Lưu vào điện thoại - Ảnh đã được lưu vào thư viện ảnh của điện thoại - Đang tải video xuống… - Đang tải phương tiện xuống… - Ghim lên đầu - Bỏ ghim - Không thể lưu ảnh - Video đã được lưu vào thư viện video của điện thoại - Không thể lưu video - PDF đã được lưu vào Downloads/Amethyst - Không thể lưu PDF - Không tìm thấy ứng dụng camera trên thiết bị này - Nhấn và giữ để ghi âm tin nhắn - Lỗi tải lên - Không thể tải lên tin nhắn thoại - NIP-95 chưa được hỗ trợ cho tin nhắn thoại - Tải lên giọng nói thất bại: %1$s - Không có - Trầm - Cao - Trung tính - Người dùng chưa thiết lập địa chỉ Lightning để nhận sats - "trả lời ở đây… " - Đã biết - Yêu cầu mới - Người dùng bị chặn - Chủ đề mới - Cuộc trò chuyện - Thêm tùy chọn - Hiển thị mã QR khóa riêng tư - Hiển thị mã QR khóa riêng tư đã mã hóa - Theo dõi - Theo dõi lại - Ẩn mật khẩu - Khóa không hợp lệ - Khóa không hợp lệ: %1$s - Mật khẩu là bắt buộc - Khóa là bắt buộc - Tên là bắt buộc @@ -113,150 +15,7 @@ Hồ sơ trò chuyện mới: - Rời khỏi - Bỏ theo dõi - Trò chuyện tạm thời - Relay Chat - Relay chat là các nhóm trò chuyện được kiểm soát bởi relay chủ quản. - Chúng hiển thị với mọi người trên Nostr và bất kỳ ai cũng có thể tham gia. - Chúng rất phù hợp cho các cộng đồng mở xung quanh các chủ đề cụ thể. Một số nhóm này là tạm thời - và do đó tin nhắn trò chuyện sẽ biến mất theo thời gian - Trò chuyện công khai - Nhóm MLS - Siêu dữ liệu trò chuyện công khai - Trò chuyện công khai hiển thị với mọi người trên Nostr và bất kỳ ai - cũng có thể tham gia. Chúng rất phù hợp cho các cộng đồng mở xung quanh các chủ đề cụ thể. - Kiểm duyệt có thể được kiểm soát bằng cách xóa bài đăng trên các relay của nó - Relay - Nhập từ 1–3 relay lưu trữ nhóm này. - Các ứng dụng Nostr sử dụng cài đặt này để biết nơi tải xuống tin nhắn và gửi tin nhắn của bạn. - Xóa - không bao giờ - bây giờ - g - ph - n - Nội dung khỏa thân - Tục tĩu / Phát ngôn thù địch - Sao lưu khóa - Không thể mã hóa khóa riêng tư của bạn - Khóa bí mật (nsec) đã được sao chép vào clipboard - Sao chép khóa bí mật của tôi - Xác thực thất bại - Xác thực sinh trắc học không thể xác minh chủ sở hữu điện thoại này - Xác thực sinh trắc học không thể xác minh chủ sở hữu điện thoại này. Lỗi: %1$s - Đã sao chép nội dung ghi chú vào clipboard - Đã sao chép @npub của tác giả vào clipboard - Đã sao chép ID ghi chú (@note1) vào clipboard - "<Không thể giải mã tin nhắn riêng tư>\n\nBạn được nhắc đến trong một cuộc trò chuyện riêng tư/được mã hóa giữa %1$s và %2$s." - Tài khoản - Điều hướng - Bạn - Bảng tin - Tạo mới - Hệ thống - Quay lại - Chia sẻ liên kết trình duyệt - Chia sẻ - Chia sẻ dưới dạng hình ảnh - Chia sẻ dưới dạng URL hình ảnh - ID ghi chú - Xóa - Tắt tiếng chủ đề - Bỏ tắt tiếng chủ đề - - Chặn - Dấu trang - Dấu trang đã được di chuyển thành công - Bản nháp - Bài đăng đã lên lịch - Lên lịch bài đăng - Hủy lên lịch - Các bài đăng đã lên lịch có thể không được xuất bản cho đến khi bạn mở lại ứng dụng. Bật luôn bật trong Cài đặt → Tùy chọn giao diện để lên lịch nền đáng tin cậy. - Các bài đăng đã lên lịch có thể không được xuất bản cho đến khi bạn mở lại ứng dụng. Các bài đăng đã lên lịch của tài khoản khác sẽ không kích hoạt trong khi tài khoản này đang hoạt động. Bật luôn bật trong Cài đặt → Tùy chọn giao diện để lên lịch nền đáng tin cậy. - %1$s · trong %2$s - %1$s · %2$s trước - Ngày mai - Đã đăng xuất - - Đã đăng xuất · Đã xóa %d bài đăng đã lên lịch - - Đã đăng bài theo lịch - Bài đăng theo lịch thất bại - Bài đăng đã lên lịch - Thông báo khi bài đăng đã lên lịch được đăng hoặc không đăng được. - Gửi ngay - Lỗi: %1$s - Đã lên lịch - Đang gửi… - Thất bại - Đã gửi - Đã hủy - - Bạn có %d bài đăng đã lên lịch chưa được đăng. Đăng xuất sẽ xóa vĩnh viễn chúng. - - - %d trong hàng đợi - - - · %d đến hạn trong 1 giờ - - - tới %d relay - - Đã sao chép ID ghi chú - Cuộc thăm dò - Đang mở - Đã đóng - Huy hiệu - Cộng đồng - Cộng đồng mới - Chỉnh sửa cộng đồng - Người kiểm duyệt - Relay - Quy tắc có thể xác minh (tùy chọn) - Loại sự kiện được phép - Văn bản ngắn (1) - Bài viết dài (30023) - Bài đăng ảnh (20) - Bài đăng video (21) - Video ngắn (22) - Bình luận cộng đồng (1111) - Người dùng bị cấm - Cổng web-of-trust (tùy chọn) - Kích thước sự kiện tối đa toàn cục (tùy chọn) - Huy hiệu mới - Trao huy hiệu - Huy hiệu hồ sơ - Hình ảnh - Bài tập - Bài tập mới - Chạy bộ - Đi bộ - Đạp xe - Leo núi - Bơi lội - Chèo thuyền - Tập sức mạnh - Thiền định - Chế độ ăn - Nhịn ăn - Ứng dụng Ứng dụng - Trình duyệt - Đang tải qua Tor. Nhấn để dùng web mở. - Đang tải qua web mở. Nhấn để dùng Tor. - Yêu thích - Ứng dụng yêu thích - Thêm vào yêu thích - Xóa khỏi yêu thích - Tải qua Tor. - Tải qua web mở. - Đã đăng lên relay - Đã tải lên tệp - Đã thực hiện thanh toán - Ứng dụng đó chưa được tải. Thử lại sau giây lát. - Gần đây Quyền nApplet Chưa có quyền nApplet nào Các quyền bạn cấp cho nApplets sẽ xuất hiện ở đây. @@ -265,45 +24,11 @@ Thu hồi - Danh tính - Thao tác bàn phím - Relay - Bộ nhớ - Thanh toán - Mạng - Tải lên Hỏi những tính năng nào khả dụng - Đọc khóa công khai của bạn - Gán phím tắt bàn phím - Đọc, ký & đăng sự kiện của bạn - Bộ nhớ riêng tư của nó - Thanh toán hóa đơn Lightning - Tải tài nguyên web và Blossom - Tải tệp lên máy chủ phương tiện của bạn - Giao diện - Thông báo - Nhắn tin - Khớp màu sắc ứng dụng của bạn - Hiển thị thông báo cho bạn - Trao đổi tin nhắn với các nApplet khác Tính năng: %1$s - nApplet này muốn đọc khóa công khai của bạn. - nApplet này muốn đọc hồ sơ và dữ liệu tài khoản của bạn. - nApplet này muốn ký và đăng sự kiện kind %1$d với tư cách bạn. - nApplet này muốn ký và đăng sự kiện kind %1$d với tư cách bạn: - nApplet này muốn gửi sự kiện được mã hóa với tư cách bạn. - nApplet này muốn đọc sự kiện từ các relay của bạn. - nApplet này muốn sử dụng bộ nhớ riêng tư của nó. nApplet này muốn thanh toán một hóa đơn Lightning. - nApplet này muốn tải một tài nguyên web. - nApplet này muốn tải tệp lên máy chủ phương tiện của bạn. - nApplet này muốn hiển thị thông báo cho bạn. - Trang web này muốn ký sự kiện kind %1$d bằng khóa Nostr của bạn. - - nApplet này muốn thanh toán hóa đơn Lightning %1$d sats. - - Trò chuyện công khai - Gói theo dõi - Phát trực tiếp - Giơ tay - Hạ tay - Tắt tiếng - Bật tiếng - Không thể gửi tin nhắn - Tắt mic - Bật mic - Giữ âm thanh phát trong khi phòng đang mở. - Nest đã kết nối - Nest — Trực tiếp - Nhấn để quay lại. - Dừng - đã giơ tay - đã lên sân khấu - đang phát biểu - đã tham gia với tư cách khán giả - đã rời nest - Rời - Không thể đánh dấu phòng là đã đóng. Đang rời dù sao — phòng sẽ tự đóng. - - %1$d người nghe - - Làm im lặng diễn giả này - Khôi phục diễn giả này - Theo dõi - Bỏ theo dõi - Tắt tiếng - Bật tiếng - Không thể lưu danh sách máy chủ nest. Vui lòng thử lại. - Máy chủ Nest - Máy chủ của bạn - Được lưu dưới dạng sự kiện có thể thay thế kind-10112 để các client khác có thể đọc tùy chọn của bạn. - Máy chủ được đề xuất - Các đề xuất tích hợp sẵn mà bạn có thể thêm vào danh sách chỉ bằng một lần nhấn. - Video - Nhạc - Danh sách phát - Tập phim - - %1$d tập - - Bài nhạc mới - Danh sách phát mới - - %1$d bản nhạc - - Thêm vào Dấu trang Công khai - Xóa khỏi Dấu trang Công khai - Ghim vào Hồ sơ - Bỏ ghim khỏi Hồ sơ - Danh sách Dấu trang Mới - Siêu dữ liệu Danh sách Dấu trang - Bộ Hashtag - Bộ Sở thích Mới - Đổi tên - Đặt riêng tư: gói ghi chú tặng quà chỉ cho những người dùng được thông báo - Đặt công khai - Các trả lời cho ghi chú riêng tư luôn luôn ở chế độ riêng tư - Hiển thị với Chưa có người nhận: chỉ bạn mới có thể xem ghi chú này. Thêm người để chia sẻ với họ. Thêm Xóa người dùng khỏi thông báo Tìm kiếm và thêm người dùng để thông báo - Siêu dữ liệu danh sách dấu trang có thể được bất kỳ ai trên Nostr xem. Chỉ các thành viên riêng tư của bạn mới được mã hóa. - Chuyển sang Công khai - Chuyển sang Riêng tư - Nạp tiền & gửi zap - Gửi zap - Nạp %1$s sats vào %2$s và zap %3$s %4$s sats · phí ≈ %5$s sats - Tùy chọn %s - Một lựa chọn - Nhiều lựa chọn - Không thể bình chọn - Bình chọn đã đóng cho các phiếu mới - Chỉ được phép một phiếu bầu trên mỗi người dùng cho loại bình chọn này - Tác giả bình chọn không thể bình chọn trong chính bình chọn của họ. - Điều này có nghĩa là gì? - Nội dung này vẫn như khi đăng bài - Nội dung này đã thay đổi. Tác giả có thể chưa thấy hoặc chưa phê duyệt thay đổi - Thêm Phương tiện - Thêm Hình ảnh - Thêm Video - Thêm Tài liệu - Máy chủ Tệp - Chọn máy chủ để tải tệp này lên - Máy chủ Phương tiện Đặt máy chủ tải lên phương tiện ưa thích của bạn. Máy chủ Phương tiện Được đề xuất Danh sách mặc định của Amethyst. Bạn có thể thêm từng máy chủ riêng lẻ hoặc thêm cả danh sách. - Đích Thanh toán - Thêm địa chỉ thanh toán cho các mạng khác nhau (ví dụ: bitcoin, lightning, ethereum). - Không tìm thấy ứng dụng để xử lý khoản thanh toán này. Vui lòng cài đặt ví tương thích. - Không có ứng dụng nào được cài đặt để xử lý thanh toán %1$s. Vui lòng cài đặt ví tương thích. - Không thể mở thanh toán - Tùy chọn Quyền riêng tư - Tất cả những người theo dõi - Tất cả người dùng được theo dõi - Danh sách Theo dõi Mặc định - Xung quanh tôi - Toàn cầu - Được tuyển chọn - Của tôi - Danh sách Tắt tiếng - Danh sách theo dõi mới - Gói theo dõi mới - Chỉnh sửa danh sách - Cổng mặc định là 9050 - Cổng Socks của Orbot - Bật công cụ Tor - Sử dụng phiên bản nội bộ hoặc Orbot - Cài đặt trước Tor/Quyền riêng tư - Thay đổi nhanh tất cả cài đặt bên dưới - Url/Relay Onion - Sử dụng Tor cho bất kỳ url .onion nào - Relay DM - Buộc Tor gửi và nhận DM - Relay không tin cậy - Buộc Tor trên các relay outbox/inbox - Relay tin cậy - Buộc Tor trên tất cả relay trong danh sách của bạn - Ảnh hồ sơ - Buộc Tor khi tải ảnh hồ sơ - Xem trước URL - Buộc Tor khi tải xem trước url - Hình ảnh - Buộc Tor khi tải hình ảnh - Video - Buộc Tor khi tải video - Giao dịch tiền tệ - Buộc Tor cho zap, Lightning và chuyển Cashu - Xác minh địa chỉ Nostr - Buộc Tor khi xác minh địa chỉ NIP-05 - Tải lên nội dung - Buộc Tor khi tải lên nội dung - Nội bộ - Tắt - Cơ bản - Mặc định - Tất cả trừ Media - Toàn quyền riêng tư - Tùy chỉnh - Sử dụng Tor khi máy chủ yêu cầu - Ẩn địa chỉ IP của bạn khỏi các relay ngẫu nhiên - Ẩn địa chỉ IP của bạn khỏi mọi thứ, trừ hình ảnh và video - Ẩn địa chỉ IP của bạn trong tất cả kết nối - Tự thiết lập của riêng bạn - Tin nhắn riêng tư - Thông báo khi có tin nhắn riêng tư đến - Đã nhận Zap - Thông báo khi có người zap bạn - Từ %1$s - cho %1$s - Trả lời - Đánh dấu đã đọc - Tin nhắn mới - Zap mới - Phản ứng - Thông báo khi có người phản ứng với bài đăng của bạn - %1$s đã phản ứng với bài đăng của bạn - cho %1$s - Phản ứng mới - Cờ vua - Thông báo về các sự kiện trò chơi cờ vua - %1$s đã chấp nhận thách đấu cờ vua của bạn - %1$s đã đi — đến lượt bạn - Cập nhật cờ vua - Trả lời - Thông báo khi có người trả lời bài đăng của bạn %1$s đã trả lời trên: %1$s - Trả lời mới - Nhắc đến - Thông báo khi có người nhắc đến hoặc trích dẫn bạn trong bài đăng - %1$s đã nhắc đến bạn - Lượt nhắc đến mới @@ -524,34 +80,6 @@ - Cuộc gọi đến - Thông báo cho cuộc gọi thoại và video đến - Cuộc gọi đến - Cuộc gọi thoại đến… - Cuộc gọi video đến… - Cuộc gọi với %1$s - Cuộc gọi - Thông báo cuộc gọi đang diễn ra - Cúp máy - Chấp nhận - Từ chối - Tắt tiếng - Bật tiếng - Bật camera - Tắt camera - Loa ngoài - Loa tai nghe - Amethyst cần quyền truy cập micro để bắt đầu cuộc gọi thoại. Vui lòng bật trong cài đặt ứng dụng. - Amethyst cần quyền truy cập camera và micro để bắt đầu cuộc gọi video. Vui lòng bật trong cài đặt ứng dụng. - Cài đặt cuộc gọi - Duy trì kết nối đến các relay hộp thư đến của bạn để thông báo theo thời gian thực - Thông báo Amethyst đang hoạt động - - Đã kết nối với %1$d relay hộp thư đến - - - Đã kết nối với %1$d relay - - Đang kết nối với các relay hộp thư đến… Dịch vụ thông báo luôn hoạt động Duy trì kết nối liên tục đến các relay hộp thư đến của bạn để gửi thông báo tức thì. Hiển thị thông báo liên tục. Tốn nhiều pin hơn nhưng đảm bảo bạn không bao giờ bỏ lỡ tin nhắn. - Tách thông báo theo người theo dõi - Hiển thị hai tab thông báo — Đang theo dõi (những người bạn theo dõi) và Mọi người. Chỉ số chưa đọc sáng lên chỉ cho hoạt động từ những người bạn theo dõi. - Hiển thị tin nhắn - Bao gồm tin nhắn trực tiếp và nhóm trên tab Thông báo. Tắt để chỉ giữ tin nhắn trong tab Tin nhắn. - Thông báo: - Hôm nay - Ẩn - Hiện - Cảnh báo - Lọc thư rác - Ẩn các bài đăng từ người lạ có nội dung giống hệt nhau từ 5 lần trở lên - Thêm thẻ client vào sự kiện của tôi - Khi bật, Amethyst sẽ thêm thẻ client NIP-89 vào các sự kiện bạn đăng. - Cảnh báo khi có báo cáo - Hiển thị thông báo cảnh báo khi bài đăng hoặc hồ sơ có báo cáo từ những người bạn theo dõi - Ẩn bài đăng vi phạm quy tắc cộng đồng - Loại bỏ bài đăng khỏi nguồn cộng đồng khi cộng đồng đăng tài liệu quy tắc NIP-9B và sự kiện không đáp ứng. Không có hiệu lực khi cộng đồng không có quy tắc có cấu trúc. - Tùy chọn lọc - Nội dung bị chặn - Bạn chưa chặn người dùng nào. - Không có tài khoản nào bị gắn cờ là thư rác trong phiên này. - Không có từ ẩn. Thêm từ bên dưới để ẩn bài đăng chứa từ đó. - Chưa có loại phản ứng nào được chọn trước cho người dùng này. Nhấn giữ nút tim để thay đổi - Đọc từ Relay - Ghi vào Relay - Lượng dữ liệu tính bằng byte đã được gửi đến relay này, bao gồm các bộ lọc và sự kiện - Lượng dữ liệu tính bằng byte đã nhận được từ relay này, bao gồm các bộ lọc và sự kiện - Chính sách quyền riêng tư - Tiêu chuẩn an toàn trẻ em - Giới thiệu & Pháp lý - Token Cashu - Chưa cài đặt địa chỉ Lightning - Relay - Gói theo dõi - Bài đọc - Thuật toán bảng tin - Chợ - Livestream - Cộng đồng - Trò chuyện - Nội dung nhạy cảm - Thêm cảnh báo nội dung nhạy cảm trước khi hiển thị nội dung này - Tùy chỉnh giao diện Tùy chỉnh ứng dụng - Bản dịch - Phản ứng - Cài đặt - Cài đặt tài khoản - Cài đặt ứng dụng - Vùng nguy hiểm - Đặt lại trạng thái Marmot - Đã đặt lại trạng thái Marmot. - Không thể đặt lại trạng thái Marmot: %1$s - Luôn luôn - WiFi không giới hạn - Không bao giờ - Đầy đủ - Đơn giản - Hiệu năng - Cổ điển - Hiện đại - Hệ thống - Sáng - Tối - Giao diện - Xem trước hình ảnh - Phát video - Tự động phát video - Xem trước URL - Cuộn toàn màn hình - Ẩn thanh điều hướng khi cuộn - Chế độ giao diện - Chọn kiểu bài đăng - Kiểu thư viện hồ sơ - Chọn kiểu thư viện - Người spam - Đã tắt tiếng. Nhấn để bật tiếng - Đang bật tiếng. Nhấn để tắt tiếng - Tua lại %d giây - Tua tới %d giây - Bài đăng giới hạn theo vị trí - Chỉ người theo dõi vị trí mới thấy được. Người theo dõi thông thường của bạn sẽ không thấy. - - %1$d bài hát - - - +%1$d bài hát nữa - - Tải lên ảnh bìa - Chọn ảnh vuông làm artwork cho bài hát này. - Tải lên tệp âm thanh - Chọn tệp MP3, WAV hoặc FLAC. Tệp sẽ được tải lên máy chủ media của bạn khi lưu. - Đang tải lên ảnh bìa + âm thanh và xuất bản. Quá trình này sẽ tiếp tục ngay cả khi bạn rời khỏi màn hình. - Chỉnh sửa danh sách phát - Tải lên ảnh bìa - Chọn ảnh vuông làm artwork cho danh sách phát này. - Đang tải lên ảnh bìa và xuất bản. Quá trình này sẽ tiếp tục ngay cả khi bạn rời khỏi màn hình. Công khai Nhóm Riêng tư - Chủ đề - Không thể tải lên - Hãy nhập đích đến của tin nhắn trước - Không tìm thấy ví - Amethyst không tìm thấy ứng dụng ví nào hỗ trợ Nostr Wallet Connect (NWC). -\n\nBạn có thể thực hiện: -\n\t1. Xác minh hỗ trợ NWC: Kiểm tra lại xem ứng dụng ví của bạn có tương thích với Nostr Wallet Connect không. -\n\t2. Tạo kết nối: Vào ứng dụng ví của bạn và tạo kết nối NWC mới. -\n\t3. Liên kết với Amethyst: Ví của bạn thường cung cấp ba tùy chọn: -\n\t\t3.1 Liên kết tự động: Nút để tự động mở và kết nối với Amethyst. Nếu có, nhấn nút đó, mở Amethyst và nhấn lưu trên màn hình mới. -\n\t\t3.2 Liên kết thủ công: URI kết nối mà bạn có thể sao chép và nhấn biểu tượng dán trên màn hình này để nhập trực tiếp. -\n\t\t3.3 Mã QR: Ví tạo mã QR mà bạn có thể đọc bằng nút mã QR trên màn hình này. - - Giao diện Tối, Sáng hoặc Theo hệ thống - Tự động tải hình ảnh và GIF - Tự động tải video và GIF - Tự động phát video khi hiển thị trên màn hình - Hiển thị xem trước URL - Sao chép vào clipboard - Đã sao chép vào clipboard - Chia sẻ hoặc Lưu Gửi qua DM - Đã thêm media - Đã thêm media vào Thư viện Hồ sơ của bạn - Không thể gửi zap - Thiếu cài đặt Lightning - Người dùng %1$s chưa cài đặt địa chỉ Lightning để nhận sats - Lỗi khi mở ứng dụng ký - Không tìm thấy ứng dụng ký. Hãy kiểm tra xem ứng dụng có bị gỡ cài đặt không - Không thể phát video này - Codec hoặc định dạng không được hỗ trợ trên thiết bị này (%1$s). Hãy thử mở trong trình duyệt. - Mở trong trình duyệt - Yêu cầu ký bị từ chối - Hãy đảm bảo ứng dụng ký đã cho phép giao dịch này - Không tìm thấy Ví nào để thanh toán hóa đơn Lightning (Lỗi: %1$s). Vui lòng cài đặt ví Lightning để sử dụng zap - Không tìm thấy Ví nào để thanh toán hóa đơn Lightning. Vui lòng cài đặt ví Lightning để sử dụng zap - Không thể mở liên kết Blossom - Không tìm thấy ứng dụng Blossom. Vui lòng cài đặt ứng dụng Blossom cục bộ để xem tệp này - Từ ẩn - Luồng đã tắt tiếng - Không có luồng nào bị tắt tiếng - Ảnh hồ sơ - Hiển thị ảnh hồ sơ - Không thể thanh toán hóa đơn - Không thể rút tiền - Không thể đổi Cashu - Mint cung cấp thông báo lỗi sau: %1$s - Đã nhận Cashu - %1$s sats đã được gửi vào ví của bạn. (Phí: %2$s sats) - Không tìm thấy ví Cashu tương thích trên hệ thống - Không thể tải hóa đơn từ máy chủ của người nhận - Nhà cung cấp kết nối ví của bạn trả về lỗi sau: %1$s - Không thể tạo LNUrl từ Địa chỉ Lightning \"%1$s\". Hãy kiểm tra cài đặt của người dùng - Không thể tải hóa đơn từ %1$s: %2$s - Lỗi phân tích JSON từ %1$s. Hãy kiểm tra cài đặt Lightning của người dùng - Không tìm thấy URL callback từ phản hồi của %1$s - Số tiền hóa đơn không đúng (%1$s sats) từ %2$s. Đáng lẽ phải là %3$s - Không thể tạo hóa đơn Lightning trước khi gửi zap. Ví Lightning của người nhận gửi thông báo lỗi sau: %1$s - Người dùng chỉ đọc - Chưa cài đặt phản ứng - Thông báo - Phân phối - Hiển thị trong ứng dụng - Danh mục - Tin nhắn từ %1$s - Xin chào %1$s, mặt hàng này còn không? - Quần áo - Phụ kiện - Điện tử - Nội thất - Đồ sưu tầm - Sách - Thú cưng - Thể thao - Thể dục - Nghệ thuật - Thủ công - Gia dụng - Văn phòng - Thực phẩm - Linh tinh - Khác - Tải lên media thất bại - Không thể mở tệp nén - Lỗi tải lên: %1$s - Máy chủ không cung cấp URL sau khi tải lên - Không thể tải xuống media đã tải lên từ máy chủ - Không thể kiểm tra tệp đã tải xuống sau khi tải lên: %1$s - Tải lên %1$s thất bại: %2$s - Xóa thất bại: %1$s - Media quá lớn cho NIP-95 - Mã hóa tệp - Mã hóa tệp trước khi tải lên để bảo vệ quyền riêng tư. Một số máy chủ có thể không chấp nhận tệp mã hóa trên tài khoản miễn phí. - Tải lên mã hóa thất bại - Nhiều máy chủ không chấp nhận tệp mã hóa trên tài khoản miễn phí. Bạn có thể thử lại mà không cần mã hóa. - Sử dụng Codec H.265/HEVC - Chất lượng tốt hơn với kích thước tệp nhỏ hơn nhưng không phải tất cả thiết bị đều hỗ trợ phát lại H.265. - Chuyển đổi GIF sang MP4 - Chuyển đổi GIF động sang video MP4 để giảm kích thước tệp và tương thích phát lại tốt hơn. - Xóa siêu dữ liệu riêng tư - Cố gắng xóa siêu dữ liệu riêng tư khỏi các tệp media được hỗ trợ trước khi tải lên - Không thể xóa siêu dữ liệu - Không thể xóa siêu dữ liệu riêng tư khỏi media. Đã hủy tải lên. - Đã hủy tải lên - Không thể xóa siêu dữ liệu khỏi AVIF: %1$s - Trang chủ - Khám phá - Tin nhắn - Thông báo - Lịch - Danh sách lịch - Cờ vua - Ví - Ví Cashu (NIP-60) Khóa nutzap (nâng cao) Một khóa riêng tư riêng biệt chỉ dùng để nhận nutzap theo NIP-61. Không phải khóa danh tính Nostr của bạn. Tạo khóa mới Khóa riêng tư P2PK (hex) - Chỉnh sửa mint Lưu thay đổi - - +%1$d thêm - - - Được đề xuất bởi %1$d người khác - - Mint phổ biến - Mint phù hợp - Đã nhận - Đã gửi - Đăng yêu cầu xóa đề xuất kind:38000 của bạn về %1$s. Các relay tuân theo NIP-09 sẽ xóa nó. - Đã khôi phục %1$s sats từ %2$s bằng chứng. - Thanh toán %1$s sat + tối đa %2$s sat phí? - Nutzap thất bại - Không có pubkey người nhận trong ghi chú - Nutzap là công khai và sẽ tiết lộ ghi chú riêng tư này. Hãy dùng Lightning zap thay thế. - Không thể tạo tham chiếu sự kiện - Đang chờ hóa đơn được thanh toán… - Đang kiểm tra mint… - Chậm - Bình thường - Nhanh - ~1 giờ - ~30 phút - ~10 phút - - Gửi %1$s sats, %2$d cách - - - Dùng cách chia zap %1$d chiều của ghi chú này - - - Chia cho %1$d người nhận - - - Bỏ qua %1$d người nhận chỉ có địa chỉ Lightning — on-chain cần pubkey Nostr để tạo địa chỉ. - - đang tải số dư - đang xây dựng giao dịch - đang ký - đang phát sóng - đang đăng biên lai - Chain backend Bitcoin chưa được cấu hình - Không thể tải số dư Bitcoin của bạn - Không thể xây dựng giao dịch - Phần chia của một người nhận dưới mức dust - Không thể ký giao dịch - Không thể phát sóng giao dịch - Đã gửi thanh toán, nhưng không thể đăng biên lai zap - - Đã gửi thanh toán (%1$d trên %2$d biên lai đã đăng), nhưng không thể đăng biên lai tiếp theo - - Nhập danh sách theo dõi - Sản phẩm mới - Bài viết mới - Sự kiện lịch mới - Chỉnh sửa sự kiện lịch - Lịch mới - Chỉnh sửa lịch - Nguồn cấp - Tháng - Tuần - Ngày - - %1$s, %2$d sự kiện - - Đang diễn ra - %1$s · kết thúc %2$s - Chia sẻ sự kiện lịch - Nhắc nhở lịch - Thông báo khi sự kiện bạn tham dự sắp bắt đầu. - Sự kiện lịch - - Bắt đầu sau %1$d phút - - Tải hình ảnh lên thất bại - Hình ảnh đã chọn không thể được tải lên. Hãy thử lại hoặc dán URL. - Nhắc nhở lịch - Gửi nhắc nhở - Thông báo sẽ được gửi khi sự kiện bạn tham dự sắp bắt đầu. - - %1$d phút - - Mở trong bản đồ - Mở liên kết - Mở tất cả phản ứng với bài đăng này - Đóng tất cả phản ứng với bài đăng này - Thanh Điều Hướng Dưới Kéo để sắp xếp lại. Bật/tắt để thêm hoặc xóa mục khỏi thanh dưới. Khi không có mục nào, thanh dưới sẽ ẩn. Sắp xếp lại Chọn tab nào xuất hiện trên màn hình Trang chủ. Khi chỉ có một tab đang hoạt động, thanh tab sẽ ẩn. - Tất cả - Giao diện Hồ sơ Chọn các phần và nguồn tin nào xuất hiện trên màn hình hồ sơ người dùng. Tất cả tùy chọn được bật theo mặc định. - Huy hiệu Hồ sơ - Đề xuất Ứng dụng - Nguồn tin Zap nhận được - Nguồn tin Người theo dõi - Hàng Phản ứng - Nút Trình phát Video - Trình hiển thị Âm thanh - Ngày hết hạn - Địa chỉ không hợp lệ - Amethyst nhận được URI để mở nhưng URI đó không hợp lệ: %1$s - Relay Hộp thư DM - Relay Tìm kiếm - Các tùy chọn tốt là:\n%1$s - Relay Outbox - Relay Inbox - Cài đặt Relay - Relay Outbox/Home Công khai - Người dùng đang đăng nội dung lên các relay này - Loại relay này lưu trữ tất cả nội dung của bạn. Amethyst sẽ gửi bài đăng của bạn tới đây và người khác sẽ dùng các relay này để tìm nội dung của bạn. Nhập từ 1–3 relay. Chúng có thể là relay cá nhân, relay trả phí hoặc relay công khai. - Relay Inbox Công khai - Người dùng đang nhận thông báo trên các relay này - Loại relay này nhận tất cả các trả lời, bình luận, lượt thích và zap cho bài đăng của bạn. Chúng có thể là relay trả phí hoặc miễn phí. Giới hạn do người điều hành relay đặt ra có thể hạn chế thông báo bạn nhận theo hướng tốt và xấu. Ví dụ: nếu bạn bị tấn công bằng spam bình luận, relay trả phí có thể lọc spam. Nhập từ 1–3 relay. - Relay Hộp thư DM - Người dùng nhận DM trên các relay này - Nhập từ 1–3 relay để làm hộp thư riêng tư của bạn. Người khác sẽ dùng các relay này để gửi DM cho bạn. Relay DM Inbox nên chấp nhận tin nhắn từ bất kỳ ai, nhưng chỉ cho phép bạn tải xuống. Các tùy chọn tốt là:\n - inbox.nostr.wine (trả phí)\n - auth.nostr1.com (miễn phí)\n - you.nostr1.com (relay cá nhân - trả phí) - Relay KeyPackage - Relay nơi các MLS KeyPackage của bạn được công bố (MIP-00). Người dùng khác lấy các KeyPackage này để mời bạn vào nhóm chat Marmot. Nhập từ 1–3 relay chấp nhận sự kiện KeyPackage từ bạn và cho phép đọc công khai. - Relay Home Riêng tư - Nhập từ 1–3 relay để lưu trữ các sự kiện mà không ai khác có thể thấy, như Bản nháp và/hoặc cài đặt ứng dụng của bạn. Lý tưởng nhất, các relay này phải là cục bộ hoặc yêu cầu xác thực trước khi tải xuống nội dung của mỗi người dùng. - Relay đã kết nối - Danh sách relay hiện đang được sử dụng - Relay Tìm kiếm - Danh sách relay sử dụng khi tìm kiếm nội dung hoặc người dùng. Gắn thẻ và tìm kiếm sẽ không hoạt động nếu không có tùy chọn nào. Đảm bảo chúng hỗ trợ NIP-50. - Relay Cục bộ - Danh sách các relay đang chạy trên thiết bị này. - Chuyển tiếp hồ sơ đến relay cục bộ - Gửi tất cả các sự kiện hồ sơ nhận được (kind 0) đến relay cục bộ của bạn - Relay Đáng tin cậy - Các relay bạn tin tưởng và không cần kết nối qua Tor - Feed Relay Yêu thích - Các relay bạn thường xuyên truy cập để xem feed Toàn cầu của chúng - Relay Proxy - Các relay tổng hợp mà ứng dụng phải sử dụng để tải feed của bạn, như filter.nostr.wine. Tùy chọn này thay thế mô hình outbox và sẽ khiến ứng dụng chỉ kết nối đến các relay trong danh sách của bạn. - Relay Phát sóng - Các relay chuyên đẩy ghi chú của bạn đến tất cả các relay khác, như sendit.nosflare.com. Amethyst sẽ thêm relay này vào tất cả các sự kiện mới do bạn tạo - Relay Chỉ mục - Các relay chuyên lưu trữ siêu dữ liệu và danh sách relay của mọi người, như purplepag.es. Amethyst sẽ sử dụng các relay này để tìm người dùng không có trong danh sách của bạn. - Relay Bị chặn - Amethyst sẽ không bao giờ kết nối đến các relay này - Xuất cài đặt relay Tổng quan Giới thiệu Liên kết Người bảo trì Chủ đề - Bằng chứng Dấu thời gian - Có bằng chứng bài đăng này đã được ký trước %1$s. Bằng chứng đã được đóng dấu vào blockchain Bitcoin tại thời điểm đó. - Chỉnh sửa Bài đăng - Không thể trả lời một ghi chú nháp - Không thể trích dẫn một ghi chú nháp - Không thể phản ứng với một ghi chú nháp - Không thể zap một ghi chú nháp - Ghi chú Nháp - Yêu cầu không hợp lệ - Máy chủ không thể hoặc không muốn xử lý yêu cầu. - Không được phép - Người dùng không có thông tin xác thực hợp lệ - Yêu cầu Thanh toán - Máy chủ yêu cầu thanh toán để hoàn tất yêu cầu - Bị từ chối - Người dùng không có quyền truy cập để thực hiện yêu cầu - Không tìm thấy - Máy chủ không thể tìm thấy địa chỉ được yêu cầu - Phương thức không được phép - Máy chủ hỗ trợ phương thức yêu cầu, nhưng không hỗ trợ tài nguyên mục tiêu - Không chấp nhận được - Máy chủ không tìm thấy nội dung nào đáp ứng yêu cầu. - Yêu cầu Xác thực Proxy - Người dùng không có thông tin xác thực hợp lệ - Hết thời gian Yêu cầu - Máy chủ đã hết thời gian chờ từ phía khác - Xung đột - Máy chủ không thể thực hiện yêu cầu do xung đột với tài nguyên - Đã biến mất - Nội dung được yêu cầu đã bị xóa vĩnh viễn khỏi máy chủ và sẽ không được khôi phục - Yêu cầu Độ dài - Máy chủ từ chối yêu cầu vì yêu cầu một độ dài xác định - Điều kiện tiên quyết Thất bại - Các điều kiện tiên quyết trong các trường tiêu đề của yêu cầu mà máy chủ không đáp ứng được - Tải trọng Quá lớn - Yêu cầu lớn hơn giới hạn đã xác định của máy chủ, và máy chủ từ chối xử lý - URI Quá dài - URL được yêu cầu bởi khách hàng quá dài để máy chủ xử lý. - Loại phương tiện không được hỗ trợ - Yêu cầu sử dụng định dạng phương tiện mà máy chủ không hỗ trợ - Phạm vi Không thể đáp ứng - Máy chủ không thể thực hiện giá trị được chỉ định trong trường tiêu đề Range của yêu cầu. - Kỳ vọng Thất bại - Máy chủ không thể đáp ứng các yêu cầu được chỉ định bởi trường tiêu đề Expect - Yêu cầu Nâng cấp - Máy chủ từ chối xử lý yêu cầu bằng giao thức hiện tại trừ khi khách hàng nâng cấp lên giao thức khác. - Lỗi Máy chủ Nội bộ - Máy chủ gặp lỗi không mong đợi và không thể hoàn tất yêu cầu - Chưa được triển khai - Máy chủ không thể thực hiện yêu cầu hoặc không nhận ra phương thức yêu cầu - Cổng kết nối Xấu - Máy chủ hoạt động như một cổng kết nối và nhận được phản hồi không hợp lệ từ máy chủ lưu trữ - Dịch vụ Không khả dụng - Thường xảy ra khi máy chủ quá tải hoặc đang bảo trì - Hết thời gian Cổng kết nối - Máy chủ đang hoạt động như một cổng kết nối hoặc proxy và đã hết thời gian chờ phản hồi - Phiên bản HTTP Không được hỗ trợ - Máy chủ không hỗ trợ phiên bản HTTP trong yêu cầu - Biến thể Cũng Đàm phán - Máy chủ có lỗi cấu hình nội bộ - Lưu trữ Không đủ - Máy chủ không có đủ dung lượng lưu trữ để xử lý yêu cầu thành công - Phát hiện Vòng lặp - Máy chủ phát hiện vòng lặp vô hạn trong khi xử lý yêu cầu - Yêu cầu Xác thực Mạng - Khách hàng phải được xác thực để truy cập mạng Máy chủ Blossom Thêm bao nhiêu máy chủ tùy thích. Bạn có thể chọn máy chủ nào để sử dụng sau khi tải ảnh lên - Thêm máy chủ NIP-96 - Thêm máy chủ Blossom Tải xuống - Không thể mở tệp - Không có ứng dụng torrent nào được cài đặt để mở và tải tệp. - Sự kiện không có đủ thông tin để tạo liên kết magnet - Danh sách của tôi - Feed - Hashtag - Bộ sở thích - Vị trí - Cộng đồng - Danh sách - Thuật toán Feed - Tất cả thuật toán feed yêu thích - Relay - Thuật toán Feed Yêu thích - Tin nhắn Riêng tư - Tin nhắn Công khai - Không thể chia sẻ hình ảnh, vui lòng thử lại sau… - Không thể chia sẻ video, vui lòng thử lại sau… - Đang tải video… - Không Dịch Từ - Các ngôn ngữ hiển thị ở đây sẽ không được dịch. Chọn một ngôn ngữ để xóa nó và cho phép dịch lại. - Dịch Sang - Chọn ngôn ngữ để dịch nội dung vào. - Tùy chọn Hiển thị Ngôn ngữ - Đối với mỗi cặp ngôn ngữ đã dịch, chọn ngôn ngữ nào hiển thị trước. - Tạm dừng - Phát - Tin nhắn này sẽ biến mất sau %1$s - Siêu dữ liệu danh sách theo dõi - Siêu dữ liệu danh sách theo dõi có thể được bất kỳ ai trên Nostr xem thấy. Chỉ các thành viên riêng tư của bạn mới được mã hóa. - Siêu dữ liệu gói theo dõi - Siêu dữ liệu gói theo dõi có thể được bất kỳ ai trên Nostr xem thấy và thường xuyên được công bố trên nhiều trang web dưới dạng bộ khởi động cho người dùng mới. - Chỉnh sửa gói theo dõi - Mở rộng - Thử lại - Phản ứng - Bài đăng giọng nói - Trả lời giọng nói - Relay hộp thư đi - Ứng dụng - Đề xuất ứng dụng - Cài đặt người dùng - Tiêu đề âm thanh - Bản nhạc âm thanh - Bản nhạc - Danh sách phát nhạc - Tập podcast - Chương trình Podcast - Podcast đã tạo - Podcast yêu thích - Trao huy hiệu - Định nghĩa huy hiệu - Bộ huy hiệu đã chấp nhận - Huy hiệu hồ sơ - Relay bị chặn - Máy chủ Blossom - Máy chủ Nests - Xác thực Blossom - Relay phát sóng - Danh sách đánh dấu - Danh sách đánh dấu cũ - Lịch hẹn trong ngày - Lịch - Lịch hẹn - RSVP lịch hẹn - Trò chơi cờ vua - Xác thực cờ vua - Relay yêu thích - Thách đấu cờ vua - Chấp nhận trò chơi cờ vua - Nước đi cờ vua - Kết thúc trò chơi cờ vua - Đề nghị hòa cờ vua - Định nghĩa kênh - Ẩn tin nhắn kênh - Danh sách kênh - Tin nhắn kênh - Siêu dữ liệu kênh - Tắt tiếng người dùng trong kênh - Tệp DM - Tin nhắn DM - Relay DM - Rao vặt - Bình luận - Định nghĩa cộng đồng - Danh sách cộng đồng - Bài đăng cộng đồng - Danh sách theo dõi - Xóa - Bản nháp - Gói emoji - Danh sách gói emoji - Trò chuyện tạm thời - Phòng chat tạm thời - Tiêu đề tệp - Thư viện hồ sơ - Máy chủ tệp - Dữ liệu Blob - Tiêu đề Blob - Dữ liệu y tế - Gói theo dõi - Chia sẻ lại (16) - Theo dõi Geohash - Mục tiêu Zap - Theo dõi Hashtag - Nổi bật - Xác thực Http - Danh sách relay chỉ mục - Mở đầu phiêu lưu - Cảnh phiêu lưu - Đọc phiêu lưu - Đánh dấu có tên - Chat trực tiếp - Phát trực tiếp - Yêu cầu NWC - Phản hồi NWC - Zap riêng tư - Yêu cầu Zap - Blog - Phòng họp - Hiện diện trong phòng - Không gian họp - Hồ sơ - Danh sách tắt tiếng - Trạng thái DVM - Yêu cầu nội dung DVM - Phản hồi nội dung DVM - Yêu cầu người dùng DVM - Phản hồi người dùng DVM - Danh sách người - Hình ảnh - Bài tập - Ghim - Bình chọn Zap - Bình chọn - Phản hồi bình chọn - Relay riêng tư - Relay proxy - Tin nhắn công khai - Phản ứng - Thẻ liên hệ - Xác thực relay - Khám phá relay - Thông báo giám sát relay - Bộ relay - Báo cáo - Chia sẻ lại - Xóa người dùng - Niêm phong - Relay tìm kiếm - Trạng thái người dùng - Ghi chú - Chỉnh sửa - Bình luận Torrent - Relay tin cậy - Nhà cung cấp tin cậy - Tin nhắn giọng nói - Trả lời giọng nói - Đánh dấu web - %1$d%% thời gian hoạt động - Cài đặt Namecoin - Đồng bộ Relay - Trình khám phá Bitcoin (OTS) - sự kiện từ bạn - sự kiện gửi đến bạn - sự kiện có thể tìm kiếm - hồ sơ - danh sách hộp thư gửi - Lần cuối thấy %1$s trước - Lần cuối thấy vào %1$s (%2$s trước) - Vừa thấy - Chưa từng thấy - - %1$d phút - - - %1$d giờ - - - %1$d ngày - - - %1$d tuần - - - %1$d tháng - - - %1$d năm - - - %1$d mint - - - %1$d hóa đơn đang chờ - - - Tiền được giữ tại %1$d mint bạn chưa dùng - - Đã chuyển %1$s sat đến %2$s. - Chiếu đến thiết bị - Dừng chiếu - Tải lên HLS - Đang tải lên %1$s (%2$d / %3$d) - Chứng thực - Yêu cầu chứng thực - Đề xuất của người chứng thực - Năng lực người chứng thực - Dấu trang web - Thêm dấu trang web - Chỉnh sửa dấu trang web - %1$s đã được tài trợ trong mục tiêu %2$s sats - Mục tiêu mới - Yêu cầu xóa dữ liệu - Đã gửi yêu cầu xóa - Lịch sử xóa - Người dùng - Sự kiện - Loại - IP - Cài đặt - Đề xuất cải thiện văn bản - Sử dụng mô hình AI trên thiết bị để đề xuất sửa lỗi văn bản và thay đổi giọng điệu. - Phát sóng có theo dõi - Sử dụng trình phát sóng có theo dõi khi gửi sự kiện. Hiển thị tiến trình trực tiếp và trạng thái từng relay trong khi phát sóng. - Đề xuất chia sẻ bài tập - Đọc bài tập đã hoàn thành từ Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) và đề xuất chia sẻ chúng dưới dạng bài đăng. Quyền truy cập chỉ được yêu cầu khi bạn kết nối. - Cài đặt soạn thảo - Tự động tạo bản nháp - Tự động lưu sự kiện nháp khi bạn gõ hoặc rời khỏi trình soạn thảo có văn bản chưa gửi, và gửi đến các relay outbox riêng tư của bạn. - Gói emoji mới - Chỉnh sửa gói emoji - Gói Emoji của tôi - Emoji - Emoji công khai hiển thị với mọi người và xuất hiện trong menu phản ứng và bộ chọn tự động hoàn thành \":\" khi gói này có trong danh sách emoji của bạn. - Emoji riêng tư được lưu trữ mã hóa trên các relay và chỉ hiển thị với bạn. Chúng xuất hiện trong menu phản ứng và tự động hoàn thành \":\" giống như emoji công khai. - Bản nháp là %1$d byte; cộng đồng này giới hạn loại này ở %2$d byte. - Bản nháp là %1$d byte; cộng đồng này giới hạn sự kiện ở %2$d byte. - Bạn đã đăng %1$d sự kiện loại này hôm nay (giới hạn %2$d). - Trang Nowhere - Sự kiện Nowhere - Gây quỹ Nowhere - Cửa hàng Nowhere - Kiến nghị Nowhere - Tin nhắn Nowhere - Drop Nowhere - Nghệ thuật Nowhere - Diễn đàn Nowhere - - %1$d tin nhắn - - - %1$d thành viên - - Thông tin nhóm đã được cập nhật - Cập nhật thất bại: %1$s - Tạo nhóm thất bại: %1$s - Rời nhóm thất bại: %1$s - Đang thêm %1$s… - Thêm %1$s thất bại: %2$s - lỗi không xác định - Đã xóa thành viên - Xóa thành viên thất bại: %1$s - Đã cấp quyền quản trị viên - Cấp quyền quản trị viên thất bại: %1$s - Đã thu hồi quyền quản trị viên - Thu hồi quyền quản trị viên thất bại: %1$s - Không phải thành viên của nhóm này Dịch vụ Lightning của người nhận tại %1$s không khả dụng. Địa chỉ này được tính từ địa chỉ Lightning \"%2$s\". Lỗi: %3$s. Hãy kiểm tra xem máy chủ có hoạt động và địa chỉ Lightning có đúng không Không thể phân giải %1$s. Hãy kiểm tra xem bạn có kết nối mạng, máy chủ có hoạt động và địa chỉ Lightning %2$s có đúng không.\n\nNgoại lệ: %3$s Lỗi phân tích JSON từ lần lấy hóa đơn của %1$s. Hãy kiểm tra cài đặt Lightning của người dùng diff --git a/amethyst/src/main/res/values-zh-rCN/strings.xml b/amethyst/src/main/res/values-zh-rCN/strings.xml index bc0f2e2454..fedc064d68 100644 --- a/amethyst/src/main/res/values-zh-rCN/strings.xml +++ b/amethyst/src/main/res/values-zh-rCN/strings.xml @@ -1,372 +1,36 @@ - - 此帖有超过 %1$d 个话题标签 - - - 捆绑了 %1$d 个资产 - - - +%1$d\n条回复 - - 垃圾信息 - 来自该中继的垃圾事件数量 - 冒充 - 非法行为 - 请求删除 - 你正在使用公钥,公钥是只读的。使用私钥登录以便回复 - 你正在使用公钥,公钥是只读的。使用私钥登录以便提升帖子 - 你正在使用公钥,公钥是只读的。使用私钥登录以点赞帖子 - 没有设置打闪金额。长按以更改 - 你正在使用公钥,公钥是只读的。使用私钥登录以便发送打闪 - 你正在使用公钥,公钥是只读的。使用私钥登录以便能够关注 - 你正在使用公钥,公钥是只读的。使用私钥登录以便能够取消关注 - 你正在使用公钥,公钥是只读的。使用私钥登录以便能够隐藏单词或句子 - 你正在使用公钥,公钥是只读的。使用私钥登录以便能够显示单词或句子 - 您正在使用公钥以只读方式登录,需要使用私钥登录才能上传。 - 您正在使用公钥以只读方式登录,需要使用私钥登录才能签署事件。 - 未授权的解密 - 签名器没有授权解密操作,请在签名器中授予 NIP-44 解密权限并重试。 - 未找到签名器 - 签名器被卸载?请检查是否已经安装了签名器以及其中是否存在该账户。变更签名器需要注销后重新登录。 - 外部签名器对该请求返回了不正常的载荷。这可能是 Amethyst 或签名器上的错误。 - 打闪 - 提升 已提升 编辑 #%1$s - 提出修改建议 - 添加 - 解析错误信息时出错 - 个人档案 - 安全过滤器 - 显示较少 - 正在请求发票… - 借记服务没有完成付款。 - 通过 %2$s 支付 %1$s? - 通过 %1$s支付这张发票? - 输入此报价的有效金额。 - 一次性 - 每日 - 每周 - 每月 - 付款 - 正通过 %1$s 付款… - 付款失败 - 可为该收款人支付的金额:%1$s sats - 交易: %1$s - "预览 %1$s 卡片图片" - 描述 - 你在想什么? - 写一条消息… - 帖子 保存 - 发送 - 创建 重命名 - 取消 - 错误 - 错误 - 中继成功连接的百分比 - 保存到手机 - 图片已保存到相册 - 视频下载已开始… - 媒体下载已开始… - 置顶 - 取消置顶 - 保存图片失败 - 视频已保存到媒体库 - 保存视频失败 - 已保存 PDF 到 Downloads/Amethyst - 保存 PDF 失败 - 此设备上没有找到相机应用 - 点按以录制消息 - 上传出错 - 上传语音消息失败 - 语音消息尚不支持 NIP-95 - 语音上传失败:%1$s - 无 - 深沉 - 高音 - 中性 - 用户尚未设置闪电地址以接收聪 - "🔏在此回复… " - 私聊 - 新请求 - 已隐藏用户 - 新主题帖 - 会话 - 更多选项 - 显示私钥二维码 - 显示加密私钥二维码 - 关注 - 回关 - 隐藏密码 - 无效密钥 - 无效的密钥:%1$s - 密码必填 - 需要密钥 - 名称必填 - 无法获取此邀请。链接可能已过期或其中继不可访问。 - 此邀请链接无效或无法用此账户打开。 - 此邀请是用新版本的应用创建,尚无法在此处打开。 请求新的邀请链接。 - 此邀请链接已被撤销,不能再使用。请求新链接。 - Concord 频道 - 尚无频道。 - 发送图片 - 新频道 - 重命名频道 - 重命名 - 频道名 - 删除频道 - 删除频道? - 删除 #%1$s?无法撤销此操作且无法用同一个 id 重新创建该频道。 - 删除 - %1$s 正在输入… - %1$s 和 %2$s 正在输入… - 多人正在输入… - 新建Concord 频道 - 中继 图标 URL (可选) - - %1$d 个频道 - - - %1$d 位成员 - - - %1$d 条新消息 - - 尚无消息 - 创建 - 邀请其他人 - 邀请链接 - 设为管理员 - 撤销管理员 - 存储此社区加密消息的中继。留空以使用您自己的中继。 - 编辑社区 - 成员 - 设为管理员 - 撤销管理员 - 封禁 - 解除封禁 - Concord - 在聊天中 - 在主题帖中 - - %1$d条回复 - 新的聊天资料: - 离开 - 取关 - 临时聊天 - 中继聊天 - 中继聊天 - 中继聊天是由聊天所属中继控制的聊天群组。 - Nostr 上的每个人都可以看到这些群组,任何人都可以加入群组。 - 这非常适合围绕特定主题而建立的开放社区。其中一些群组是临时的, - 因此聊天信息会随着时间的推移而消失。 - 公共聊天 - Marmot 群组 - 公开聊天元数据 - 公开聊天对所有 Nostr 用户都是可见的,任何人都可以: - 参与这些聊天。这对特定话题建立的开放式社区来说很重要 - 通过删除中继上的帖子实现内容审核控制 - 中继器 - 使用 1~3 个中继托管这个群组。 - 让 Nostr 客户端知道应该使用这些中继配置来发送和下载消息。 - 移除 - 从不 - 现在 - 时 - 分 - 天 - 裸露 - 不文雅的言辞 / 敌意言论 - 备份密匙 - 私钥加密失败 - 私人密钥(nsec)已复制到剪贴板 - 复制我的私人密钥 - 身份验证失败 - 生物计未能验证此手机的所有者 - 生物计未能验证此手机的所有者。错误:%1$s - 文本已复制到剪贴板 - 已复制作者公钥 ID 到剪贴板 - 已复制笔记ID (@note1) 到剪贴板 - "<无法解密私密消息>\n\n;你被 %1$s 和 %2$s 之间的私人/加密会话引用。" - 账户 - 导航 - 你 - 源 - 创建 - 系统 - 返回 - 分享浏览网址 - 分享 - 以图片方式共享 - 以图像地址形式分享 - 笔记ID - 删除 - 主题帖静音 - 取消主题帖静音 - - 仅阻止 - 书签 - 书签迁移成功 - 草稿 - 定时帖子 - 定时帖 - 取消时间安排 - 下次重新打开应用前可能不会发布定时贴。要获得稳定的后台定时功能在“设置” → “用户界面偏好” 中启用“始终显示”。 - 在重新打开应用前可能不会发布定时帖。此账户活跃时,其他账户的定时帖不会发布。要获得稳定的后台定时功能,在“设置” →\"用户界面首选项“ 中开启”始终显示“。 - %1$s ·在 %2$s - %1$s · %2$s 前 - 明天 - 已退出登录 - - 已退出登录 删除了 %d 个定时帖 - - 发布了定时帖 - 未能发布定时帖 - 定时帖 - 当成功发布了定时帖或未能发布定时帖时发出通知。 - 立即发送 - 错误:%1$s - 已安排时间 - 正在发送… - 失败 - 已发送 - 已取消 - - 您有尚未发布的 %d 个定时帖。退出登录将永久删除它们。 - - - %d 个已加入队列 - - - • %d 个于1小时内到期 - - - 到 %d 个中继 - - 已复制笔记 ID - 投票 - 开启 - 已关闭 - 徽章 - 社区 - 新建社区 - 编辑社区 - 协管 - 中继 - 可验证规则 (可选) - 允许的事件类型 - 短文本 (1) - 长文章(30023) - 图片帖子(20) - 视频帖子 (21) - 短视频(22) - 社区评论(1111) - 封禁的用户 - 信任网络网关(可选) - 全局最大事件大小(可选) - 新徽章 - 授予徽章 - 个人资料徽章 - 图片 - 锻炼 - 新锻炼 - 跑步 - 步行 - 骑行 - 远足 - 游泳 - 划船 - 强度 - 瑜伽 - 冥想 - 饮食 - 节食 - 循环训练 - EMOM - AMRAP - App Store App Store - nApplets - nSites - 浏览器 - 正通过 Tor 加载。点击使用 open web。 - 正通过 open web 加载 Tor。点击使用 Tor。 - 收藏夹 - 发现 web 应用 - Web 应用 - 添加至收藏夹 - 从收藏中移除 - 通过 Tor 加载。 - 通过 open web 加载。 - 已发布到中继 - 上传了一个文件 - 支付了一笔款项 - 该应用尚未加载。稍后再试。 - 最近 nApplet 权限 尚无nApplet 权限 您授予nApplets的权限将显示在这里。 忘记此 nApplet 已阻止 撤销 - nApplet %1$s… 外壳 - 身份 - 键盘操作 - 中继 - 存储 - 付款 - 网络 - 上传 询问哪些功能可用 - 读取您的公钥 - 绑定键盘快捷键 - 读取并签署 & 发布您的事件 - 其自身的私密存储 - 支付闪电发票 - 获取 web 和 Blossom 资源 - 上传文件到您的媒体服务器 - 主题 - 通知 - 消息收发 - 匹配您应用的颜色 - 向您显示通知 - 与其他napplets交换消息 功能:%1$s - 此 nApplet 想要读取您的公钥。 - 此 nApplet 想要读取您的个人资料和账户数据。 - 此 nApplet 想要像您一样签署并发布一个 %1$d 类型事件。 - 此 nApplet 想要像您一样签署并发布一个 %1$d 类型事件: - 此 nApplet 想像您一样发送一个加密事件。 - 此 nApplet 想要从您的中继读取事件。 - 此 nApplet 想要使用其私密存储。 此 nApplet 想要支付闪电发票。 - 此 nApplet 想要获取一个 web 资源。 - 此 nApplet 想要上传一个文件到您的媒体服务器。 - 此 nApplet 想要向您显示通知。 - 此站点想要用您的Nostr密钥签署一个 %1$d 类型事件。 - - 此 nApplet 想要支付 %1$d sat 的闪电发票。 - - 签署 %1$s (类型: %2$d) - 加密消息 - 读取您的私信 - 已连接的应用程序 撤销所有权限 操作覆盖 尚未连接任何应用。 - 应用程序权限签名者napplet nsite webapp 信任已连接 - 远程签名者 签名者掩体nip46 nostr 连接远程签名 充当远程签名人 正在监听 %1$d 个中继 - - 正在监听 %1$d 个中继,所有均已连接 - 您的掩体地址 将此粘贴到另一个应用程序将它连接到您的密钥。 - 已复制掩体地址 - 生成了一个新的掩体地址 - 已连接 - 离线 - 正在重新连接到中继… - - %1$d 个中继 - - 应用程序已连接。Amethyst 现在在后台为其签名。 - 已连接 %1$s。Amethyst 现在在后台为其签名。 - 无效的nostrconnect:// 链接 - 此链接不含可连接的中继 - 无法连接: %1$s - 连接被拒绝 - 这是一个只读账户,无法签字。 - 远程签名应用 - - %1$d 个签名请求 - - 全选 - 全不选 还没有满足请求。 - 签名请求 - 全屏提示,请求批准一个想要 Amethyst 用您的密钥来签名、加密或解密的应用程序。 - 批准一个签名请求吗? - 一个应用程序想要连接 - 轻触查看 - - %1$d 个已连接的应用 - - 中继身份认证 - auth authentication relay sign verify nip-42 identity - 总是认证身份 - 为每个请求身份认证挑战的中继签署它 - 从不认证 - 忽略所有中继的认证挑战 - 自定义 - 选择登录到哪些中继。会询问你任何下面尚未允许的东西。 @@ -460,253 +78,21 @@ - 短视频 - 公共聊天 - 位置频道 - 关注包 - 直播 - 音频室 - 举手 - 放下手 - 静音 - 取消静音 - 无法发送信息 - 麦克风静音 - 取消麦克风静音 - 语音聊天房 - 当聊天室开放时保持音频播放。 - 语音聊天室已连接 - 语音聊天室 — 在线 - 轻触返回。 - 停止 - 举手 - 步入舞台 - 正在说话 - 作为观众加入 - 离开语音聊天室 - 离开 - 不能将聊天室标记为已关闭。仍然离开——聊天室将自动关闭。 - - %1$d 位听众 - - 消除此演讲者的声音 - 恢复此演讲者的声音 - 关注 - 取关 - 静音 - 取消静音 - 无法保存您的语音聊天服务器列表。请重试。 - 语音聊天服务器 - 您的服务器 - 保存为 10112 类型的可替换事件,以便其他客户端可以读取您的首选项。 - 推荐的服务器 - 内置建议,您可轻触添加到列表中。 - 视频 - 音乐 - 播放列表 - 节目 - 播客 高级版 - - %1$d 章 - - Value-for-Value 错误 - 这个播客没有可支付的值收款人。 - 连接Nostr Wallet Connect 钱包以发送到Keysend(节点) 收件人。 - 监听时将Nostr Wallet Connect 或借记钱包在收听时串流 sat。 - 新节目 - 编辑节目 - 正在发布… - 添加封面画 - 节目图片显示为正方形 - 视频 URL - 文稿 URL - 章节URL - 添加音频文件 - MP3,M4A或其他音频 - 你的播客 - 添加封面画 - 请使用正方形图片 - 显示标题 - 我的播客 - 作者 - 联系邮箱 - 网站 - 类别 - 技术、新闻 - 赞助链接 - https://… - 语言 - en - 版权所有​​​​​ - 新建预告片 - 添加预告片段 - 短音频或视频预览 - - %1$d 则预告片 - 添加收款人 - 此用户没有闪电地址 - - %1$d 期节目 - - 新音乐曲目 - 新建播放列表 - - %1$d 首曲目 - - 添加到公开书签 - 从公开书签中移除 - 置顶到个人资料 - 从个人资料中取消置顶 - 新建书签列表 - 书签列表元数据 - 兴趣集 - 新的兴趣集 - 重命名 - 私密笔记 - 该笔记是私下发送的,没有签名。只有带标签的参与者可以看到它,没有人能够向外人证明谁写了该笔记。 - 设为私密:将笔记包装为礼物仅发给要通知的用户 - 设为公开 - 对私密笔记的回复总是不公开的 - 可见范围 尚无接收方:只有您才能看到此笔记。添加分享对象。 添加 从通知中删除用户 - 通知中。轻触静音此用户的通知 - 已静音。轻触再次通知此用户 搜索并添加要通知的用户 - 书签列表元数据可以被Nostr上的任何人看到。只有您的私密成员是加密的。 - 移动到公开 - 移动到私密 - 充值 & 发送打闪 - 发送打闪 - 充值 %1$s sats 到 %2$s 并打闪 %3$s %4$s sats · fee ≈ %5$s sats - 选项 %s - (0–100)% - 单选 - 多选 - 无法投票 - 该投票已结束 - 这种投票只允许每个用户一票 - 投票作者不能在自己的投票中投票。 - 这是什么意思 - 此内容与发布时相同 - 此内容已更改。作者可能没有看到或批准更改 - 添加媒体 - 添加图片 - 添加视频 - 添加文件 - 文件服务器 - 选择上传文件时使用的服务器 - 媒体服务器 设置首选媒体上传服务器。 管理存储的文件 - 我的 Blossom 文件 - 正在服务器之间复制您的文件… - 取消 - Blossom 同步 - 在您的 Blossom 服务器间复制文件时显示进度。 从何处删除… - 此服务器需要付款才能上传: %1$s - - 支付 %1$d sats - 推荐的媒体服务器 Amethyst 的默认列表。可单独添加或添加整个列表。 - 在线 - 慢 - 离线 正在检查… - 付款目标 - 添加不同网络的付款地址(如比特币、比特币闪电、以太坊)。 - 没有找到处理此付款的应用。请安装兼容的钱包。 - 没有安装应用程序来处理 %1$s 付款。请安装一个兼容的钱包。 - 无法打开付款 - 隐私选项 - 所有关注 - 所有用户关注 - 默认关注列表 - 周围的人 - 全球 - 精选 - 我的 - 静音列表 - 新建关注列表 - 新的关注包 - 编辑列表 - 默认端口为 9050 - Orbot Socks 端口 - 启动 Tor - 使用内置 Tor 或者 Orbot - Tor 和隐私预设 - 快速修改下方的设置 - Onion 链接或中继地址 - 为 .onion 链接使用 Tor - 私信中继 - 强制在收发私信时使用 Tor - 不受信任的中继 - 强制对收件箱和发件箱中继使用 Tor - 可信中继 - 强制为所有中继使用 Tor - 用户资料图片 - 强制为下载用户资料图片时使用 Tor - 链接预览 - 强制为链接预览使用 Tor - 图片 - 强制为加载图片时使用 Tor - 视频 - 强制为加载视频时使用 Tor - 资金操作 - 强制为 Zap、闪电网络和 Cashu 转账时使用 Tor - Nostr 地址验证 - 强制为 NIP-05 地址验证使用 Tor - 媒体上传 - 强制为上传媒体内容时使用 Tor - 内置 - Orbot - 关闭 - 基础 - 默认 - 除多媒体外的所有内容 - 完全隐私 - 自定义 - 当服务器要求时使用 Tor - 从随机中继中隐藏 IP - 除了图片和视频外,总是隐藏 IP - 为所有连接隐藏 IP - 让你自己来设置 - 私信 - 收到私信时通知你 - 收到打闪 - 收到打闪时通知你 - %1$s聪 - 来自 %1$s - 为 %1$s - 回复 - 标记为已读 - 新信息 - 新打闪 - 回应 - 当有人回应您的帖子做出时通知您 - %1$s 回应了您的帖子 - 针对 %1$s - 新回应 - 国际象棋 - 提醒您有关国际象棋游戏的事件 - %1$s 接受了您的国际象棋挑战 - %1$s 已移动 —— 轮到您了 - 国际象棋更新 - 回复 - 当有人回复您的帖子时通知您 %1$s 回复了 在: %1$s - 新的回复 - 提及 - 当某人在帖子中提到或引用你时,通知你 - %1$s 提到了你 - 新提及 @@ -716,35 +102,6 @@ - 来电 - 语音和视频来电通知 - 来电 - 语音来电 \u2026 - 视频来电 \u2026 - 和 %1$s 的通话 - 通话 - 进行中的通话通知 - 挂断 - 接受 - 拒绝 - 静音 - 取消静音 - 开启摄像头 - 关闭摄像头 - 扬声器 - 耳机 - 蓝牙 - Amethyst 需要麦克风权限来开始语音通话。请在应用程序设置中启用它。 - Amethyst需要摄像头和麦克风访问权限来开始视频通话。请在应用程序设置中启用它们。 - 通话设置 - 保持与收件箱中继的连接以便接收实时通知 - Amethyst 通知活跃 - - 已连接到 %1$d 个收件箱中继 - - - 已连接到 %1$d 个中继 - - 正在连接到收件箱中继\u2026 “始终显示通知”服务 保持与收件箱中继的持续连接以便即时发送通知。 显示正在进行的通知。使用更多电量,但确保您永远不会错过消息。 通知服务 - 开 - 关 - 后台通知服务 - 实时后台通知总开关。关闭以节省电量——就像飞行模式。 关闭时,没有账户在后台保持连接,它一直处于关闭状态(重启不会改变),直到您重新开启。 - 在后台活跃的账户 保持该账户在后台活跃 - 根据关注拆分通知 - 显示两个通知选项卡 — — 关注(你关注的人) 和所有人。未读的指示器只为你关注的人的活动发出微光。 - 显示消息 - 在通知选项卡上包含私信和群消息。如关闭只在消息选项卡中保留消息。 - 通知: - 今天 - 隐藏 - 显示 - 警告 - 过滤垃圾信息 - 隐藏陌生人的五次或五次以上完全相同的帖子 - 将客户端标签添加到我的事件 - 启用时,Amethyst 将会附加一个 NIP-89 客户端标签到您发布的事件。 - 举报警示 - 当帖子有来自你关注的五次及以上举报时显示警告消息 - 隐藏违反社区规则的帖子 - 当社区发布了一份NIP-9B规则文档而一个事件会让它失灵时,丢弃社区的帖子。 当社区没有结构化规则时没有任何影响。 - 过滤的首选项 - 拦截的内容 - 您尚未屏蔽任何用户。 - 本次会话中还没有账户被标记为垃圾信息。 - 没有隐藏的单词。在下方添加一个单词来隐藏包含它的帖子。 - 未选择回应类型。长按可更改 - 从中继器读取 - 写入到继电器 - 向该中继发送事件和过滤请求所使用的数据量 - 从该中继接收事件和过滤响应所使用的数据量 - 隐私政策 - 儿童安全标准 - 关于 & 法律 - Cashu 代币 - 未设置闪电地址 - 中继器 - 关注包 - 阅读 - 算法动态 - 市场 - 直播 - 社区 - 聊天 - 敏感内容 - 在显示此内容之前添加敏感内容警告 - 用户界面首选项 偏好设置 - 翻译 - 回应 - 设置 - 账户设置 - 应用程序设置 - 危险区 - 重置 Marmot 状态 - Marmot 状态重置。 - 重置 Marmot 状态失败: %1$s - 始终 - 未计量的 WiFi - 从不 - Wi-Fi - 完整版 - 简化版 - 极速版 - 完整 - 简单 - 快速 - 经典 - 现代 - 系统 - 浅色 - 深色 - 外观 - 媒体 & 数据 - 常规 - 钱包绑定 - 主题 - 紫色 - 蓝色 - 绿色 - 橙色 - 红色 - 粉色 - 字体 - 在整个应用程序中使用的字体 - 系统默认 - Sans Serif - Serif - 等宽字体 - 系统 - Sans - 衬线字体 - 等宽 - 字体大小 - 在整个应用程序缩放文本大小 - 小 - 正常 - 大 - 巨大 - 图像预览 - 视频播放 - 自动播放视频 - URL 预览 - 沉浸式滚动 - 滚动时隐藏导航栏 - 界面模式 - 选择帖子样式 - 资料页图库样式 - 选择图库样式 - 垃圾邮件 - 静音。点击取消静音 - 声音开启。点击静音 - 后退 %d 秒 - 前进 %d 秒 - 位置限定帖子 - 只有处于同一地理位置的关注者才能看到贴帖子。一般关注者无法看到。 - - %1$d 首曲目 - - - 另外 %1$d 首曲目 - - 上传封面图片 - 选择一个正方形图像作为这个曲目的艺术作品。 - 上传音频文件 - 选择 MP3, WAV 或 FLAC。保存时它将被上传到媒体服务器。 - 正砸上传封面 + 音频和发布。即使您离开屏幕,这也会继续进行。 - 编辑播放列表 - 上传封面图片 - 选择一个正方形图像作为这个播放列表的艺术作品。 - 正在上传封面并发布。即使您离开屏幕,这也会继续进行。 公开 组 - 私密 - 加密群组 - 支持中继 - 私信 - 私信,端到端加密 - 1:1–5 个房间 - 和你认识的人的一对一及小型群聊。 - 新消息 - 1-1 & 小型群组 - 端到端加密 - 稍后无法添加用户 - Marmot 群 - 较大的私密群 - 绑定设备 - 规模较大的私密群组,不再适合小型群组私信。 - 创建群组 - 发送大量私信 - 加密的群组聊天 - 绑定设备-如果您在其他地方登录则不会显示 - Concord 社区 - 按频道拆分社区 - 工作区域 - 根据频道或工作流组织的大规模社区。 - 创建社区 - 扩大到超大社区 - 按照频道/工作流拆分 - 更多待设置 - 公开聊天 - 中继上的公开消息 - 无人管理 - 任何人都可以发帖的开放公共房间。 - 创建公开聊天 - 任何人都可以加入 - 简单 & 可发现 - 仅公开 - 无审核 - 中继群组 - 中继运行,公开或私密 - 有审核 - 群组由托管它们的中继管理。 - 浏览中继群组 - 由中继管理 - 公开或私密 - 绑定单一中继 - 临时聊天 - 不论谁在线,立马聊天 - 当前在线 - 与当前在线的任何人进行即时聊天。 - 开始聊天 - 与当前在线的人交谈 - 不保存任何内容 - 没有历史记录 - 限于中继范围 - 中继组 - 中继组 - 消息 - 私信 - 端到端加密、礼品包装的私信 (NIP-17)。 - 旧式私信 - 较旧、不太私密的加密私信(NIP-04)。 - 公共频道 - 任何人可以阅读和加入的开放、公开的聊天室 (NIP-28)。 - 中继组 - 有 roaster 和 moderation 的由中继管理的群聊 (NIP-29)。 - 加密群组 - MLS 端到端加密群聊(Marmot)。 - Concord 社区 - 与多个频道的加密通信(Concord)。 - 位置聊天 - 某地 geohash 限定的公共聊天 (Geolocation)。 - 临时聊天 - 不留存历史记录的中继限定的轻量级房间。 - 建群 群名称 主题(可选) @@ -984,24 +136,17 @@ 创建 正在创建邀请… 已复制邀请码 - 编辑群 群名称 主题(可选) 私有(仅成员可读取) 仅限受邀 保存 - 私密 - 只有成员可以阅读消息。 在您的中继中寻找群组… 此筛选器尚未找到群组。 - 标题 写点什么… 发表 - - %1$d 位成员 - %1$d 条消息 @@ -1012,298 +157,24 @@ 您关注的 %1$d 人 私人 - 主题 - 无法上传 - 需要首先输入消息的目标位置 - 未找到钱包 - Amethyst 找不到任何支持 Nostr Wallet Connect (NWC) 的钱包应用. -\n\n你可以做的事情: -\n\t1. 验证 NWC 支持:仔细确认偏好的钱包应用和 Nostr Wallet Connect 兼容。 -\n\t2. 创建连接:前往钱包应用并创建新的 NWC 连接。 -\n\t3.链接到 Amethyst: 你的钱包通常会给你三个选项: -\n\t\t3.1 自动链接:自动打开并连接到 Amethyst 的按钮。如果是这样, 单击那个按钮,打开 Amethyst 并在新屏上按保存。 -\n\t\t3.2 手动链接: 你可以复制的连接 URI,单击这个屏幕上的粘贴图标直接输入它。 -\n\t\t3.3 二维码: 钱包会创建一个你可以从这个屏幕中的二维码按钮那里读取的二维码。 - - 暗色、亮色或系统主题 - 自动加载图像和 GIF - 自动播放视频和 GIF - 视频在屏幕上可见时自动播放视频 - 显示 URL 预览 - 复制到剪贴板 - 已复制到剪贴板 - 分享或保存 已私信形式发送 - 媒体已添加 - 媒体已添加到个人资料相册中 - 无法发送打闪 - 打闪设置缺失 - 用户 %1$s 尚未设置接收聪的闪电地址 - 打开签名应用时出错 - 找不到签名应用。检查应用是否已被卸载 - 无法播放此视频。 - 此设备不支持该编解码器或格式(%1$s)。请尝试在您的浏览器中打开它。 - 在浏览器中打开 - 签名请求已被拒绝 - 请确保签名应用程序已授权此交易 - 找不到支付闪电发票的钱包(错误:%1$s)。请安装闪电钱包来使用打闪 - 找不到支付闪电发票的钱包。请安装闪电钱包来使用打闪 - 无法打开 Blossom 链接 - 找不到Blossom应用。请安装本地Blossom应用查看此文件 - 隐藏单词 - 静音的主题帖 - 无静音的主题帖 - 个人头像 - 显示个人头像 - 不能生成支付发票 - 无法提款 - 无法兑换 Cashu - 铸币厂提供了以下错误信息: %1$s - 已收到 Cashu - %1$s 聪已被发送到你的钱包。(费用︰ %2$s 聪) - 系统上没有找到兼容的 Cashu 钱包 - 无法从接收方的服务器获取发票 - 你的钱包连接提供者返回了以下错误: %1$s - 无法从闪电地址集合LNURL\"%1$s\"。请检查用户设置 - 无法从 %1$s 获取发票:%2$s - 从 %1$s 解析 JSON 发生错误。请检查用户的闪电设置 - 从 %1$s 的响应中找不到回调 URL - 来自 %2$s 的错误的发票金额(%1$s 聪)。它本应该是 %3$s - 无法在发送打闪前创建闪电发票。接收者闪电钱包发送了以下错误: %1$s - 仅读用户 - 没有设置回应 - 通知 - 发送 - 应用内显示 - 分类 - 来自 %1$s 的消息 - 嗨,%1$s,这个还能买到吗? - 服装 - 配件 - 电子 - 家具 - 收藏 - 书籍 - 宠物 - 运动 - 健身 - 艺术 - 工艺 - 家中 - 办公 - 食品 - 杂项 - 其它 - 无法上传媒体 - 无法打开压缩文件 - 上传错误:%1$s - 上传后服务器没有提供 URL - 无法从服务器下载上传的媒体 - 无法检查经过上传后再下载的文件:%1$s - 无法上传到%1$s:%2$s - 删除失败:%1$s - 文件过大,无法使用 NIP-95 - 加密文件 - 上传前为了隐私加密文件。有些服务器可能不接受免费账户的加密文件。 - 加密上传失败 - 许多服务器不接受免费账户的加密文件。您可以不加密重试。 - 使用 H.265/HEVC 编解码器 - 文件较小而质量更佳,但不是所有设备都支持 H.265 播放。 - 转换 GIF 为 MP4 - 将动画的 GIF 转换为 MP4 视频以获取较小文件大小和更好的播放兼容性。 - 删除私密元数据 - 尝试在上传之前从支持的媒体文件中删除私密元数据 - 无法删除元数据 - 从媒体删除私密元数据失败。上传取消。 - 上传已取消 - 无法从 AVIF 删除元数据: %1$s - 主页 - 发现 - 消息 - 通知 - 日历 - 日历列表 - 国际象棋 - 钱包 - Cashu 钱包 (NIP-60) Nutzap 密钥(高级) 一枚单独的私钥仅用于接收NIP-61 nutzaps。不是您的 Nostr 身份密钥。 生成新密钥 P2PK 私钥(十六进制) - 编辑铸币厂 保存更改 - - + 另外 %1$d - - - 由其他 %1$d 个用户推荐 - - 热门铸币厂 - 匹配的铸币厂 - 已收到 - 已发送 - 发布 %1$s 的 kind:38000 推荐删除请求。遵守 NIP-09 的中继会丢弃它。 - 从 %2$s 证明中恢复了 %1$s sats 。 - 支付 %1$s sat + 最多 %2$s sat 的费用? - Nutzap 失败 - 笔记上没有收件人的公钥 - Nutzaps 是公开的,将会透露该私密笔记。请使用闪电打闪代替。 - 无法构建事件参考 - 正在等待支付发票… - 正在检查铸币厂… - 慢 - 正常 - 快 - 约1小时 - 约30分钟 - 约10分钟 - %1$s · %2$s sat/vB · %3$s - - 发送 %1$s sats, %2$d 拆分 - - - 使用此记事的 %1$d 路打闪拆分 - - - 在 %1$d 位收款人之间拆分 - - - 正在跳过 %1$d 位仅闪电网络地址收款人 - 链上需 Nostr 公钥派生地址。 - - 加载余额 - 正在建立交易 - 正签名 - 正在广播 - 发布收据中 - 未配置比特币链后端 - 无法加载您的比特币余额 - 无法构建交易 - 收款人份额过低 - 无法签署交易 - 无法广播交易 - 付款已发送,但打闪收据无法发布 - - 付款已发送(已发布 %1$d 份收据,共 %2$d 份),但下一收据无法发布 - - 导入关注 - 新产品 - 新文章 - 新建日历活动 - 编辑日历活动 - 新建日历 - 编辑日历 - 源 - 月 - 周 - 日 - - %1$s, %2$d 个活动 - - 正在发生 - %1$s · 结束于 %2$s - 分享日历活动 - 日历提醒 - 日历提醒 - 您正参加的活动即将开始时进行提醒。 - 日历活动 - - 在 %1$d 分钟内开始 - - 图片上传失败 - 选中的图像无法上传。请重试或粘贴一个URL。 - 日历提醒 - 发送提醒 - 您正参加的活动即将开始时发出通知。 - - %1$d 分钟 - - 在地图中打开 - 打开链接 - 展开对此帖子的所有回应 - 收起对此帖子的所有回应 - 打闪 - 底部导航栏 拖动可重新排序。切换可从底部栏中添加或删除一个项目。无项目则底部栏隐藏。 调整顺序 - 尚无收藏内容。在浏览器中给应用添加星标以在此添加。 - 尚未加入任何群组。 - 添加 - 已添加 - 主要 - 聊天 & 群组 - 您 - 订阅源 - Apps & Web - 其它 选择主屏幕上出现的标签页。当只有一个标签处于活动状态时,标签栏将被隐藏。 - 全部 - 个人资料界面 选择在用户个人资料屏幕上显示哪些部分和源。默认情况下所有选项都启用。 - 个人资料徽章 - 应用推荐 - 收到的打闪源 - 关注者源 - 比特币 (链上) 钱包 - 回应设置 - 视频播放器按钮 - 音频可视化 - 正在等待中继接受此消息 - 没有此消息的中继信息 - 被至少一个中继接受 - 已传送到所有收信人的中继 - 过期日期 - 作者要求中继在 %1$s之后删除此笔记。一旦过期,它将从源中消失。 - 地址无效 - Amethyst 收到了要打开的 URI,但该 uri 无效:%1$s - 私信收件箱中继 - 搜索中继 - 示例:\n%1$s - 发件箱中继 - 收件箱中继 - 中继设置 - 公共时间线中继 - 用户正在将其内容发布到这些中继 - 这类中继会保存您的所有内容。Amethyst 会将您的事件发送到这些中继,其他人则通过这些中继查找您的内容。可以设置 1 ~ 3 个中继。它们可以是个人专用中继、付费中继或者公共中继。 - 公共收件箱中继 - 用户正在接收这些中继的通知 - 这类中继用于接收其他人对您内容的回复、评论、点赞和打闪。可设置 1 ~ 3 个中继,需要确保它们能够接受来自任何人的事件(公共写入)。 - 私信收件箱中继 - 用户接收到这些中继的私信 - 设置 1 ~ 3 个中继作为您的私人收件箱。其他人将使用这些中继向您发送私信。需要确保这些收件箱中继能够接受来自任何人的任何私信消息,但只允许您读取这些消息。示例:\n - inbox.nostr.wine(付费)\n - you.nostr1.com(个人专用中继 - 付费) - 密钥包 - 密钥包中继 - 发布 MLS 密钥包的中继(MIP-00)。其他用户获取这些密钥包来邀请你加入 Marmot 群聊。插入1~3个接受来自你的密钥包事件的中继并允许公开读取。 - 私人中继 - 设置 1 ~ 3 个中继用于保存其他人无法看到的事件,例如您的草稿和软件设置。理想情况下,这些应该是本地中继,或者是在获取用户内容时需要经过身份验证的中继。 - 已连接的中继 - 当前正在使用的中继列表 - 搜索中继 - 用于关键词和标签检索的中继列表。如果没有可用选项,也就无法使用关键词和标签检索。需要确保它们支持 NIP-50。 - 本地中继 - 在该设备中运行的中继列表。 - 转发个人资料到本地中继 - 将所有收到的配置文件(类型0)事件发送到您的本地中继 - 可信中继 - 无需使用 Tor 进行连接的可信中继 - 喜爱的中继源 - 经常前去查看全局源的中继 - 代理中继 - 聚合器中继是应用获取资讯源时使用的中继(例如:filter.nostr.wine),设置这个列表将覆盖信箱模型的行为,使得应用只会连接到这个列表中的中继以获取内容。 - 广播中继 - 推送你的帖子到其他中继的中继,例如:sendit.nosflare.com,应用会把这个中继作为提示嵌入到你发送的所有事件的 Json 结构中 - 索引器中继 - 专门保存每个人的账户元数据的中继(例如:purplepag.es),应用会使用这些中继来查找不在你列表中的账户元数据。 - 中继黑名单 - 应用永远不会连接的中继 - 导出中继设置 网址 概述 维护者 @@ -1312,521 +183,40 @@ 维护者 话题 Readme - - %1$d 个项目 - 关闭工单 重新打开 - Git 仓库 - OpenTimestamps 证明 - %1$s之前的某个时候签署了此帖子的证明。此证明是在那个日期和时间在比特币区块链中盖章的。 - 已请求此帖的时间戳证明,正在等待在比特币区块链中盖章。 通常在几小时内完成。 - 编辑帖子 - 无法回复笔记草稿 - 无法引用笔记草稿 - 无法回应笔记草稿 - 无法打闪笔记草稿 - 笔记草稿 - Bad Request - 服务器无法处理请求。 - Unauthorized - 用户没有有效的身份凭证。 - Payment Required - 服务器需要付费以完成该请求。 - Forbidden - 用户没有权限发起该请求。 - Not Found - 服务器无法找到请求的地址。 - Method Not Allowed - 服务器支持该请求方法,但目标资源不支持。 - Not Acceptable - 服务器找不到满足该请求的内容。 - Proxy Authentication Required - 用户没有有效的身份凭证。 - Request Timeout - 服务器等待其他人时超时。 - Conflict - 服务器由于资源有冲突无法完成该请求。 - Gone - 请求的内容已从服务器上永久性删除。 - Length Required - 服务器由于内容长度未定义而拒绝该请求。 - Precondition Failed - 请求头部未满足服务器的前提条件。 - Payload Too Large - 服务器由于请求体大小超过接受的上限而拒绝处理该请求。 - URI Too Long - 客户端请求的 URL 过长导致服务器无法处理。 - Unsupported Media Type - 该请求使用了服务器不支持的媒体格式。 - Range Not Satisfiable - 服务器无法满足该请求头部中指定的 Range 标头范围。 - Expectation Failed - 服务器无法满足该请求头部中指定的 Expect 标头条件。 - Upgrade Required - 服务器拒绝使用当前协议处理该请求,除非客户端升级到其他协议。 - Internal Server Error -服务器遭遇意外错误而无法完成请求。 - Not Implemented - 服务器无法完成该请求或不支持该请求方法。 - Bad Gateway - 网关服务器收到了源服务器的无效响应。 - Service Unavailable - 该情况通常发生在服务器超载或因维护而宕机。 - Gateway Timeout - 网关服务器因等待源服务器响应而超时。 - HTTP Version Not Supported - 服务器不支持该请求的 HTTP 版本。 - Variant Also Negotiates - 服务器内部配置错误。 - Insufficient Storage - 服务器没有足够的存储空间用于处理该请求。 - Loop Detected - 服务器处理该请求时检测到死循环。 - Network Authentication Required - 客户端必须通过认证才能访问该网络。 Blossom 服务器 添加上传图片时可以选择的服务器。 - 添加 NIP-96 服务器 - 添加 Blossom 服务器 下载 - 打开文件失败 - 没有用于打开和下载文件的 Torrent 客户端 - 事件没有足够信息来构建磁力链 - 我的列表 - 源 - 话题标签 - 兴趣集 - 位置 - 社区 - 列表 - 订阅源算法 - 所有收藏源算法 - 中继 - 收藏源算法 - 私信 - 公开消息 - 无法分享图片,请稍后重试… - 无法分享视频,请稍后重试… - 正下载视频… - 不要翻译 - 此处显示的语言不会被翻译,请选择一种目标语言重新翻译并去除这个提示。 - 翻译为 - 选择要将内容翻译为什么语言。 - 语言显示首选项 - 对于每个翻译的语言对,选择先显示哪个语言。 - 暂停 - 播放 - 应用资源使用情况 - battery data usage consumption power network diagnostics ledger 今天 最近7天 - 今日移动网络消耗 - 今日Wi-Fi用量 - 今日中继时间 - 今天在应用中 - 每日数据 - 蜂窝移动网络 (MB) - Wi-Fi (MB) - 活动(7天) 蜂窝数据(后台) 蜂窝移动数据(应用内) Wi-Fi 数据 - 中继连接时间 - \u2026 后台蜂窝网络消耗 - 通知处理 (CPU 唤醒) - 已运行后台任务 - 中继重连(失败的) - Web 请求 - 为下载进行的广播唤醒数(预估) - 有效传输时间 - 媒体播放时间 - 签名已验证 - 所用的进程时间 应用内时间 - 应用进程启动 - 已解密信息 - 远程签名 - 工作证明开采 - Tor 运行时长 - 通话时间 - 音频房间中的时间 - 位置监听 - 耗电量(应用内/后台) - 后台通知服务 - 运行时间 - - %1$d 次启动 - - 应用关闭时保持中继连接 - 同时期耗电量(整个设备) - 电池/小时 - 数据/小时 - 平均中继连接 - 按功能分列的蜂窝数据(7天) - 按屏幕排列时间 (7天) - 内置Tor - 按特征分列的数据 (7天) - 中继同步 - 图片 - 视频 & 音频 - 上传 - 钱包 & zaps - 地址验证 - 链接预览 - 推送注册 - 其它 - 内存用量目前不大 - 应用内存 (Heap) - 本机内存 - 图像缓存 (RAM) - 图像缓存 (磁盘) - 在内存中的笔记 - 内存中的配置文件 - 内存中的可处理事件 - 内存中的聊天室列表 - 设备内存类 - 与开发者分享 - Amethyst 最近消耗的资源比预期的来得多:%1$s。要用加密私信给开发者发送使用报告吗?发送任何东西前,你都会看到完整的报告。 - 一天后台移动数据消耗量 %1$s - 一天中蜂窝网络下中继后台连接时间 %1$s - CPU 一天内被唤醒了 %1$s 来处理通知 - - 应用程序进程一天内重启 %1$d 次 - - - 应用程序在一天内重新连接到中继 %1$d 次 - - 此消息将在 %1$s 后消失 - 关注列表元数据 - 关注列表元数据可以被Nostr上的任何人看到。只有您的私人成员是加密的。 - 关注包元数据 - 关注包元数据可以被Nostr上的任何人看见,并且常作为新用户启动包发布在许多网站上。 - 编辑关注包 - 展开 - 重试 - 回应 - 语音帖子 - 语音回复 - 发件箱中继 - 应用程序 - 应用推荐 - 用户设置 - 音频标题 - 音轨 - 音乐曲目 - 音乐播放列表 - 播客节目 - 播客秀 - 创作的播客 - 收藏的播客 - 徽章奖励 - 徽章定义 - 接受的徽章集 - 个人资料徽章 - 中继黑名单 - Blossom 服务器 - 语音聊天服务器 - Blossom 认证 - 广播中继 - 书签列表 - 旧书签列表 - 日预约 - 日历 - 预约 - 预约确认请求 - 国际象棋游戏 - Chess 网站认证 - 喜爱的中继 - 国际象棋挑战 - 接受国际象棋游戏挑战 - 棋子移动 - 国际象棋游戏结束 - 和棋请求 - 频道定义 - 频道隐藏消息 - 频道列表 - 频道消息 - 频道元数据 - 频道静音用户 - 私信文件 - 私信消息 - 私信中继 - 分类广告 - 评论 - 社区定义 - 社区列表 - 社区帖子 - 关注列表 - 删除 - 草稿 - 表情包 - 表情包列表 - 临时聊天 - 临时聊天室 - 文件标题 - 资料页图库 - 文件服务器 - Blob 数据 - Blob 头部 - 医疗数据 - 关注包 - 转发(16) - Geohash 关注 - 礼物包装 - Git 问题 - Git 补丁 - Git 仓库 - Git 回复 - 拉取请求 - PR 更新 - 打闪目标 - 话题关注 - 精彩场面 - Http 认证 - 索引中继列表 - 探险前言 - 探险场景 - 探险阅读 - 已命名书签 - 实时聊天 - 直播 - 打闪 - NWC 请求 - NWC 响应 - 私下打闪 - 打闪请求 - 博客 - 会议室 - 房间状态 - 会议空间 - 个人资料 - 静音列表 - NNS - NIP - Nostr 连接 - DVM 状态 - DVM 内容请求 - DVM 内容响应 - DVM 用户请求 - DVM 用户响应 - OTS - PayTo - 人员列表 - 图片 - 锻炼 - 置顶 - 打闪投票 - 投票 - 投票响应 - NIP-04 私信 - 私密中继 - 代理中继 - 公开消息 - 回应 - 名片 - 中继认证 - 中继发现 - 中继监视器公告 - 中继集合 - 举报 - 转发 - 用户删除 - 密封信息 - 搜索中继 - 用户状态 - 笔记 - 编辑 - 种子 - 种子注释 - 可信中继 - 可信的提供商 - 视频 (回复) - 短篇 (回复) - 视频 - 短篇 - 语音消息 - 语音回复 - 唤醒 - 网络书签 - 维基 - %1$d%% 运行时间 - Namecoin 设置 - %d毫秒 - 中继同步 - 比特币资源管理器 (OTS) - 来自您的事件 - 给您的事件 - 可搜索的事件 - 私信 - 个人资料 - 发件箱列表 - %1$s 前活跃 - 上次见于 %1$s (%2$s 之前) - 刚见到 - 从未见过 - - %1$d 分钟 - - - %1$d 小时 - - - %1$d 天 - - - %1$d 周 - - - %1$d 个月 - - - %1$d 年 - - - %1$d 铸币厂 - - - %1$d 张待处理发票 - - - 您不使用的 %1$d 座铸币厂中持有的资金 - - 移动了 %1$s sat 到 %2$s。 - 投射到设备 - 停止投影 - HLS 上传 - 正在上传 %1$s (%3$d 中的 %2$d) - 证明 - 证明请求 - 证明人建议 - 证明人熟练度 - 网络书签 - 添加网络书签 - 编辑网络书签 - 设定目标为 %2$s sats,筹集到 %1$s - 新目标 - 请求消失 - 消失请求已发送 - 消失历史记录 - 用户 - 事件 - 类型 - IP地址 - 设置 - 建议文本改进 - 使用设备上的 AI 模型来提出文本更正和音调更改。 - 已跟踪的广播 - 在发送事件时使用已跟踪的广播。在广播时显示实时进度和每个中继的状态。 - 推荐要分享的锻炼 - 从 Health Connect (Shamsung Health, Google Fit, Fitbit, Garmin…)读取完成的锻炼,并建议将其作为帖子分享。 只有当您连接时才请求权限。 - 撰写设置 - 自动创建草稿 - 当您输入或在编辑器中有未发送的文本时自动保存草稿事件并发送到您的私人发件箱中继。 - 工作证明 - 作者耗费了算力将此笔记开采为 %1$s 难度——这是让垃圾信息成本高昂的工作证明印记。 - 短笔记 & 回复 - 主要的公共垃圾邮件表面 - 评论 - 文章回复、文件和其他内容 - 举报 - 中继根据开销对举报进行加权 - 长文 & 重点 - 文章和重点;不经常发生;费用微不足道 - 语音消息 - 公共语音帖子和回复 - 转发 - 活跃用户的高容量 - 回应 - 量最大的类型;挖掘每个赞都会消耗电量 - 公开 & 实时聊天 - 采矿延迟伤害对话流 - 私密消息包装器 - 让私信中继过滤收件箱垃圾邮件;只挖掘外部包装,永远不会挖掘你的消息 - 其他公开内容 - 投票、实时状态、分类和所有其他所有公开信息 - 挖掘工作证明 - - 挖掘工作证明… (队列中有 %1$d 篇帖子) - - - %1$s • 在 %2$d 比特挖掘中 - - - %1$s • 正在等待在 %2$d 位上开采 - - - 默认 (%1$d 比特) - - - %1$d 比特 - - 工作证明开采 - 显示仍在挖掘 NIP-13 工作证明的帖子,以便在你离开应用后它们可以完成挖掘。 - 取消 - <1 秒 - - %1$d 秒 - - - %1$d 分钟 - - - %1$d 小时 - - - %1$d 天 - - 剩余约 %1$s - 很快 - 您的 %1$s 完成了挖掘,但无法发布: %2$s - 您的 %1$s 完成了挖掘,但无法发布。将在下次应用程序启动时重新尝试。 - 聊天消息 - 举报 - 新的表情包 - 编辑表情包 - 我的表情包 - 表情 - 公开表情符号对所有人可见;当此表情包位于您的表情符号列表中时,它们会显示在您的“反应”菜单及“:”自动补全选择器中。 - 私密表情符号被加密存储在中继上,只对您可见。它们就像公开表情符号一样出现在回应菜单和 \":\" 自动完成中。 - 草稿为 %1$d 字节;这个社区将此类内容大小限制为 %2$d 字节。 - 草稿为 %1$d 字节;这个社区将事件大小限制为 %2$d 字节。 - 您今天已经发布了 %1$d 个此类事件 (限制 %2$d)。 - Nowhere 站点 - Nowhere 事件 - Nowhere 筹款人 - Nowhere 商店 - Nowhere 申请 - Nowhere 消息 - Nowhere Drop - Nowhere 艺术 - Nowhere 论坛 - - %1$d 条消息 - - - %1$d 位成员 - - 添加照片 - 更改照片 - 群信息已更新 - 更新失败: %1$s - 创建群失败: %1$s - 退群失败: %1$s - 正在添加 %1$s… - 添加 %1$s失败: %2$s - 未知错误 - 成员已移除 - 移除成员失败: %1$s - 已授予管理员权限 - 授予管理员权限失败: %1$s - 已撤销管理员权限 - 撤销管理员失败: %1$s - 不是此群的成员 %1$s 的接收者闪电服务不可用。它是根据雷电地址\"%2$s\"计算的。 错误: %3$s。请检查服务器是否已经上线,闪电地址是否正确 无法解析 %1$s。请检查你是否已连接,服务器是否启动,以及闪电地址 %2$s 是否正确。\n\n异常为:%3$s 从 %1$s 的闪电发票获取解析JSON 发生错误。请检查用户的闪电设置 无法创建闪电发票。来自 %1$s 的消息:%2$s 无法从 %1$s 创建闪电发票:在生成的 JSON 中找不到付款要求元素。 - 位置聊天 - 位置频道 - 根据Geohash与任何在某个地方附近的人聊天。 - 本地 - 最适合与身处某地周围的人交谈——你的街区、城市或区域。 - 选择一个位置 - 匿名−−每个区域的一次性身份,永远不会透露你的 npub。 - Bitchat-兼容;接触同一中继上的附近用户。 - 公开和临时——没有历史记录,房间里的任何人都可以阅读。 - Value-for-Value diff --git a/amethyst/src/main/res/values-zh-rHK/strings.xml b/amethyst/src/main/res/values-zh-rHK/strings.xml index dc88d50a3b..66b73c3f13 100644 --- a/amethyst/src/main/res/values-zh-rHK/strings.xml +++ b/amethyst/src/main/res/values-zh-rHK/strings.xml @@ -1,113 +1,12 @@ - - 此帖有超过 %1$d 个话题标签 - - - 捆绑了 %1$d 个资产 - - - +%1$d\n条回复 - - 垃圾郵件 - 来自该中继的垃圾事件数量 - 冒充 - 非法行為 - 请求删除 - 使用私鑰登錄以便回覆 - 使用私鑰登錄以便提升帖子 - 使用私鑰登錄以便點贊帖子 - 沒有設置Zap金額。長按以更改 - 使用私鑰登錄以便發送Zaps - 你正在使用公钥,公钥是只读的。使用私钥登录以便能够关注 - 你正在使用公钥,公钥是只读的。使用私钥登录以便能够取消关注 - 你正在使用公钥,公钥是只读的。使用私钥登录以便能够隐藏单词或句子 - 你正在使用公钥,公钥是只读的。使用私钥登录以便能够显示单词或句子 - 您正在使用公钥以只读方式登录,需要使用私钥登录才能上传。 - 您正在使用公钥以只读方式登录,需要使用私钥登录才能签署事件。 - 未授权的解密 - 签名器没有授权解密操作,请在签名器中授予 NIP-44 解密权限并重试。 - 未找到签名器 - 签名器被卸载?请检查是否已经安装了签名器以及其中是否存在该账户。变更签名器需要注销后重新登录。 - 外部签名器对该请求返回了不正常的载荷。这可能是 Amethyst 或签名器上的错误。 - 打闪 - 提升 已提升 编辑 #%1$s - 提出修改建议 - 添加 - 解析错误信息时出错 - 個人檔案 - 安全過濾器 - 正在请求发票… - 借记服务没有完成付款。 - 通过 %2$s 支付 %1$s? - 通过 %1$s支付这张发票? - 输入此报价的有效金额。 - 一次性 - 每日 - 每周 - 每月 - 付款 - 正通过 %1$s 付款… - 付款失败 - 可为该收款人支付的金额:%1$s sats - 交易: %1$s - "預覽 %1$s 卡片圖片" - 描述 - 你在想什麼? - 写一条消息… - 發佈 保存 - 发送 - 創建 重命名 - 取消 - 错误 - 錯誤 - 中继成功连接的百分比 - 保存到手机 - 圖片已保存到相冊 - 视频下载已开始… - 媒体下载已开始… - 置顶 - 取消置顶 - 保存圖片失敗 - 视频已保存到媒体库 - 保存视频失败 - 已保存 PDF 到 Downloads/Amethyst - 保存 PDF 失败 - 此设备上没有找到相机应用 - 点按以录制消息 - 上传出错 - 上传语音消息失败 - 语音消息尚不支持 NIP-95 - 语音上传失败:%1$s - 无 - 深沉 - 高音 - 中性 - 用户尚未設置閃電地址以接收聰 - "🔏 在此回覆… " - 私聊 - 新請求 - 已隱藏用户 - 新動態 - 會話 - 更多選項 - 显示私钥二维码 - 显示加密私钥二维码 - 關注 - 回关 - 隱藏密碼 - 無效密鑰 - 无效的密钥:%1$s - 密码必填 - 需要密鑰 - 名称必填 @@ -116,153 +15,7 @@ 新的聊天资料: - 離開 - 取關 - 临时聊天 - 中继聊天 - 中继聊天 - 中继聊天是由聊天所属中继控制的聊天群组。 - Nostr 上的每个人都可以看到这些群组,任何人都可以加入群组。 - 这非常适合围绕特定主题而建立的开放社区。其中一些群组是临时的, - 因此聊天信息会随着时间的推移而消失。 - 公共聊天 - MLS 组 - 公开聊天元数据 - 公开聊天对所有 Nostr 用户都是可见的,任何人都可以: - 参与这些聊天。这对特定话题建立的开放式社区来说很重要 - 通过删除中继上的帖子实现内容审核控制 - 中继器 - 使用 1~3 个中继托管这个群组。 - 让 Nostr 客户端知道应该使用这些中继配置来发送和下载消息。 - 移除 - 從不 - 現在 - 小時 - 分 - 天 - 裸體 - 不文雅的言辭 / 敵意言論 - 備份密匙 - 私钥加密失败 - 私人密鑰(nsec)已複製到剪貼板 - 複製我的私人密鑰 - 身份驗證失敗 - 生物计未能验证此手机的所有者 - 生物计未能验证此手机的所有者。错误:%1$s - 文本已複製到剪貼板 - 複製作者的 @npub 到剪貼板 - 複製文章ID (@note1) 到剪貼板 - "<無法解密私人消息>\n\n您被%1$s和%2$s之間的私人/加密會話引用。" - 賬户 - 导航 - 你 - 源 - 创建 - 系统 - 返回 - 分享瀏覽網址 - 分享 - 以图片方式共享 - 以图像地址形式分享 - 引用 - 刪除 - 主题帖静音 - 取消主题帖静音 - - 僅阻止 - 書籤 - 书签迁移成功 - 草稿 - 定时帖子 - 定时帖 - 取消时间安排 - 下次重新打开应用前可能不会发布定时贴。要获得稳定的后台定时功能在“设置” → “用户界面偏好” 中启用“始终显示”。 - 在重新打开应用前可能不会发布定时帖。此账户活跃时,其他账户的定时帖不会发布。要获得稳定的后台定时功能,在“设置” →\"用户界面首选项“ 中开启”始终显示“。 - %1$s ·在 %2$s - %1$s · %2$s 前 - 明天 - 已退出登录 - - 已退出登录 删除了 %d 个定时帖 - - 发布了定时帖 - 未能发布定时帖 - 定时帖 - 当成功发布了定时帖或未能发布定时帖时发出通知。 - 立即发送 - 错误:%1$s - 已安排时间 - 正在发送… - 失败 - 已发送 - 已取消 - - 您有尚未发布的 %d 个定时帖。退出登录将永久删除它们。 - - - %d 个已加入队列 - - - • %d 个于1小时内到期 - - - 到 %d 个中继 - - 已复制笔记 ID - 投票 - 开启 - 已关闭 - 徽章 - 社区 - 新建社区 - 编辑社区 - 协管 - 中继 - 可验证规则 (可选) - 允许的事件类型 - 短文本 (1) - 长文章(30023) - 图片帖子(20) - 视频帖子 (21) - 短视频(22) - 社区评论(1111) - 封禁的用户 - 信任网络网关(可选) - 全局最大事件大小(可选) - 新徽章 - 授予徽章 - 个人资料徽章 - 图片 - 锻炼 - 新锻炼 - 跑步 - 步行 - 骑行 - 远足 - 游泳 - 划船 - 强度 - 瑜伽 - 冥想 - 饮食 - 节食 - 循环训练 - 应用 应用 - 浏览器 - 正通过 Tor 加载。点击使用 open web。 - 正通过 open web 加载 Tor。点击使用 Tor。 - 收藏夹 - 喜欢的应用 - 添加至收藏夹 - 从收藏中移除 - 通过 Tor 加载。 - 通过 open web 加载。 - 已发布到中继 - 上传了一个文件 - 支付了一笔款项 - 该应用尚未加载。稍后再试。 - 最近 nApplet 权限 尚无nApplet 权限 您授予nApplets的权限将显示在这里。 @@ -272,45 +25,11 @@ 外壳 - 身份 - 键盘操作 - 中继 - 存储 - 付款 - 网络 - 上传 询问哪些功能可用 - 读取您的公钥 - 绑定键盘快捷键 - 读取并签署 & 发布您的事件 - 其自身的私密存储 - 支付闪电发票 - 获取 web 和 Blossom 资源 - 上传文件到您的媒体服务器 - 主题 - 通知 - 消息收发 - 匹配您应用的颜色 - 向您显示通知 - 与其他napplets交换消息 功能:%1$s - 此 nApplet 想要读取您的公钥。 - 此 nApplet 想要读取您的个人资料和账户数据。 - 此 nApplet 想要像您一样签署并发布一个 %1$d 类型事件。 - 此 nApplet 想要像您一样签署并发布一个 %1$d 类型事件: - 此 nApplet 想像您一样发送一个加密事件。 - 此 nApplet 想要从您的中继读取事件。 - 此 nApplet 想要使用其私密存储。 此 nApplet 想要支付闪电发票。 - 此 nApplet 想要获取一个 web 资源。 - 此 nApplet 想要上传一个文件到您的媒体服务器。 - 此 nApplet 想要向您显示通知。 - 此站点想要用您的Nostr密钥签署一个 %1$d 类型事件。 - - 此 nApplet 想要支付 %1$d sat 的闪电发票。 - - 短视频 - 公共聊天 - 关注包 - 直播 - 音频室 - 举手 - 放下手 - 静音 - 取消静音 - 无法发送信息 - 麦克风静音 - 取消麦克风静音 - 语音聊天房 - 当聊天室开放时保持音频播放。 - 语音聊天室已连接 - 语音聊天室 — 在线 - 轻触返回。 - 停止 - 举手 - 步入舞台 - 正在说话 - 作为观众加入 - 离开语音聊天室 - 离开 - 不能将聊天室标记为已关闭。仍然离开——聊天室将自动关闭。 - - %1$d 位听众 - - 消除此演讲者的声音 - 恢复此演讲者的声音 - 关注 - 取关 - 静音 - 取消静音 - 无法保存您的语音聊天服务器列表。请重试。 - 语音聊天服务器 - 您的服务器 - 保存为 10112 类型的可替换事件,以便其他客户端可以读取您的首选项。 - 推荐的服务器 - 内置建议,您可轻触添加到列表中。 - 视频 - 音乐 - 播放列表 - 节目 - 播客 - - %1$d 期节目 - - 新音乐曲目 - 新建播放列表 - - %1$d 首曲目 - - 添加到公開書籤 - 從公開書籤中移除 - 置顶到个人资料 - 从个人资料中取消置顶 - 新建书签列表 - 书签列表元数据 - 兴趣集 - 新的兴趣集 - 重命名 - 设为私密:将笔记包装为礼物仅发给要通知的用户 - 设为公开 - 对私密笔记的回复总是不公开的 - 可见范围 尚无接收方:只有您才能看到此笔记。添加分享对象。 添加 从通知中删除用户 搜索并添加要通知的用户 - 书签列表元数据可以被Nostr上的任何人看到。只有您的私密成员是加密的。 - 移动到公开 - 移动到私密 - 充值 & 发送打闪 - 发送打闪 - 充值 %1$s sats 到 %2$s 并打闪 %3$s %4$s sats · fee ≈ %5$s sats - 选项 %s - 单选 - 多选 - 无法投票 - 该投票已结束 - 这种投票只允许每个用户一票 - 投票作者不能在自己的投票中投票。 - 这是什么意思 - 此内容与发布时相同 - 此内容已更改。作者可能没有看到或批准更改 - 添加媒体 - 添加图片 - 添加视频 - 添加文件 - 文件服务器 - 选择上传文件时使用的服务器 - 媒体服务器 设置首选媒体上传服务器。 推荐的媒体服务器 Amethyst 的默认列表。可单独添加或添加整个列表。 - 付款目标 - 添加不同网络的付款地址(如比特币、比特币闪电、以太坊)。 - 没有找到处理此付款的应用。请安装兼容的钱包。 - 没有安装应用程序来处理 %1$s 付款。请安装一个兼容的钱包。 - 无法打开付款 - 隐私选项 - 所有关注 - 所有用户关注 - 默认关注列表 - 周围的人 - 全球 - 精选 - 我的 - 静音列表 - 新建关注列表 - 新的关注包 - 编辑列表 - 默认端口为 9050 - Orbot Socks 端口 - 启动 Tor - 使用内置 Tor 或者 Orbot - Tor 和隐私预设 - 快速修改下方的设置 - Onion 链接或中继地址 - 为 .onion 链接使用 Tor - 私信中继 - 强制在收发私信时使用 Tor - 不受信任的中继 - 强制对收件箱和发件箱中继使用 Tor - 可信中继 - 强制为所有中继使用 Tor - 用户资料图片 - 强制为下载用户资料图片时使用 Tor - 链接预览 - 强制为链接预览使用 Tor - 图片 - 强制为加载图片时使用 Tor - 视频 - 强制为加载视频时使用 Tor - 资金操作 - 强制为 Zap、闪电网络和 Cashu 转账时使用 Tor - Nostr 地址验证 - 强制为 NIP-05 地址验证使用 Tor - 媒体上传 - 强制为上传媒体内容时使用 Tor - 内置 - 关闭 - 基础 - 默认 - 除多媒体外的所有内容 - 完全隐私 - 自定义 - 当服务器要求时使用 Tor - 从随机中继中隐藏 IP - 除了图片和视频外,总是隐藏 IP - 为所有连接隐藏 IP - 让你自己来设置 - 私信 - 收到私信时通知你 - 收到打闪 - 收到打闪时通知你 - %1$s聪 - 来自 %1$s - 为 %1$s - 回复 - 标记为已读 - 新信息 - 新打闪 - 回应 - 当有人回应您的帖子做出时通知您 - %1$s 回应了您的帖子 - 针对 %1$s - 新回应 - 国际象棋 - 提醒您有关国际象棋游戏的事件 - %1$s 接受了您的国际象棋挑战 - %1$s 已移动 —— 轮到您了 - 国际象棋更新 - 回复 - 当有人回复您的帖子时通知您 %1$s 回复了 在: %1$s - 新的回复 - 提及 - 当某人在帖子中提到或引用你时,通知你 - %1$s 提到了你 - 新提及 @@ -536,35 +81,6 @@ - 来电 - 语音和视频来电通知 - 来电 - 语音来电 \u2026 - 视频来电 \u2026 - 和 %1$s 的通话 - 通话 - 进行中的通话通知 - 挂断 - 接受 - 拒绝 - 静音 - 取消静音 - 开启摄像头 - 关闭摄像头 - 扬声器 - 耳机 - 蓝牙 - Amethyst 需要麦克风权限来开始语音通话。请在应用程序设置中启用它。 - Amethyst需要摄像头和麦克风访问权限来开始视频通话。请在应用程序设置中启用它们。 - 通话设置 - 保持与收件箱中继的连接以便接收实时通知 - Amethyst 通知活跃 - - 已连接到 %1$d 个收件箱中继 - - - 已连接到 %1$d 个中继 - - 正在连接到收件箱中继\u2026 “始终显示通知”服务 保持与收件箱中继的持续连接以便即时发送通知。 显示正在进行的通知。使用更多电量,但确保您永远不会错过消息。 - 根据关注拆分通知 - 显示两个通知选项卡 — — 关注(你关注的人) 和所有人。未读的指示器只为你关注的人的活动发出微光。 - 显示消息 - 在通知选项卡上包含私信和群消息。如关闭只在消息选项卡中保留消息。 - 通知: - 今天 - 隐藏 - 显示 - 警告 - 过滤垃圾信息 - 隐藏陌生人的五次或五次以上完全相同的帖子 - 将客户端标签添加到我的事件 - 启用时,Amethyst 将会附加一个 NIP-89 客户端标签到您发布的事件。 - 举报警示 - 当帖子有来自你关注的五次及以上举报时显示警告消息 - 隐藏违反社区规则的帖子 - 当社区发布了一份NIP-9B规则文档而一个事件会让它失灵时,丢弃社区的帖子。 当社区没有结构化规则时没有任何影响。 - 过滤的首选项 - 拦截的内容 - 您尚未屏蔽任何用户。 - 本次会话中还没有账户被标记为垃圾信息。 - 没有隐藏的单词。在下方添加一个单词来隐藏包含它的帖子。 - 未选择回应类型。长按可更改 - 从中继器读取 - 写入到继电器 - 向该中继发送事件和过滤请求所使用的数据量 - 从该中继接收事件和过滤响应所使用的数据量 - 隐私政策 - 儿童安全标准 - 关于 & 法律 - Cashu 代币 - 未设置闪电地址 - 中继器 - 关注包 - 阅读 - 算法动态 - 市场 - 直播 - 社区 - 聊天 - 敏感内容 - 在显示此内容之前添加敏感内容警告 - 用户界面首选项 偏好设置 - 翻译 - 回应 - 设置 - 账户设置 - 应用程序设置 - 危险区 - 重置 Marmot 状态 - Marmot 状态重置。 - 重置 Marmot 状态失败: %1$s - 始终 - 未计量的 WiFi - 从不 - 完整版 - 简化版 - 极速版 - 经典 - 现代 - 系统 - 浅色 - 深色 - 钱包绑定 - 主题 - 图像预览 - 视频播放 - 自动播放视频 - URL 预览 - 沉浸式滚动 - 滚动时隐藏导航栏 - 界面模式 - 选择帖子样式 - 资料页图库样式 - 选择图库样式 - 垃圾邮件 - 静音。点击取消静音 - 声音开启。点击静音 - 后退 %d 秒 - 前进 %d 秒 - 位置限定帖子 - 只有处于同一地理位置的关注者才能看到贴帖子。一般关注者无法看到。 - - %1$d 首曲目 - - - 另外 %1$d 首曲目 - - 上传封面图片 - 选择一个正方形图像作为这个曲目的艺术作品。 - 上传音频文件 - 选择 MP3, WAV 或 FLAC。保存时它将被上传到媒体服务器。 - 正砸上传封面 + 音频和发布。即使您离开屏幕,这也会继续进行。 - 编辑播放列表 - 上传封面图片 - 选择一个正方形图像作为这个播放列表的艺术作品。 - 正在上传封面并发布。即使您离开屏幕,这也会继续进行。 公开 组 私人 - 主题 - 无法上传 - 需要首先输入消息的目标位置 - 未找到钱包 - Amethyst 找不到任何支持 Nostr Wallet Connect (NWC) 的钱包应用. -\n\n你可以做的事情: -\n\t1. 验证 NWC 支持:仔细确认偏好的钱包应用和 Nostr Wallet Connect 兼容。 -\n\t2. 创建连接:前往钱包应用并创建新的 NWC 连接。 -\n\t3.链接到 Amethyst: 你的钱包通常会给你三个选项: -\n\t\t3.1 自动链接:自动打开并连接到 Amethyst 的按钮。如果是这样, 单击那个按钮,打开 Amethyst 并在新屏上按保存。 -\n\t\t3.2 手动链接: 你可以复制的连接 URI,单击这个屏幕上的粘贴图标直接输入它。 -\n\t\t3.3 二维码: 钱包会创建一个你可以从这个屏幕中的二维码按钮那里读取的二维码。 - - 暗色、亮色或系统主题 - 自动加载图像和 GIF - 自动播放视频和 GIF - 视频在屏幕上可见时自动播放视频 - 显示 URL 预览 - 复制到剪贴板 - 已复制到剪贴板 - 分享或保存 已私信形式发送 - 媒体已添加 - 媒体已添加到个人资料相册中 - 无法发送打闪 - 打闪设置缺失 - 用户 %1$s 尚未设置接收聪的闪电地址 - 打开签名应用时出错 - 找不到签名应用。检查应用是否已被卸载 - 无法播放此视频。 - 此设备不支持该编解码器或格式(%1$s)。请尝试在您的浏览器中打开它。 - 在浏览器中打开 - 签名请求已被拒绝 - 请确保签名应用程序已授权此交易 - 找不到支付闪电发票的钱包(错误:%1$s)。请安装闪电钱包来使用打闪 - 找不到支付闪电发票的钱包。请安装闪电钱包来使用打闪 - 无法打开 Blossom 链接 - 找不到Blossom应用。请安装本地Blossom应用查看此文件 - 隐藏单词 - 静音的主题帖 - 无静音的主题帖 - 个人头像 - 显示个人头像 - 不能生成支付发票 - 无法提款 - 无法兑换 Cashu - 铸币厂提供了以下错误信息: %1$s - 已收到 Cashu - %1$s 聪已被发送到你的钱包。(费用︰ %2$s 聪) - 系统上没有找到兼容的 Cashu 钱包 - 无法从接收方的服务器获取发票 - 你的钱包连接提供者返回了以下错误: %1$s - 无法从闪电地址集合LNURL\"%1$s\"。请检查用户设置 - 无法从 %1$s 获取发票:%2$s - 从 %1$s 解析 JSON 发生错误。请检查用户的闪电设置 - 从 %1$s 的响应中找不到回调 URL - 来自 %2$s 的错误的发票金额(%1$s 聪)。它本应该是 %3$s - 无法在发送打闪前创建闪电发票。接收者闪电钱包发送了以下错误: %1$s - 仅读用户 - 没有设置回应 - 通知 - 发送 - 应用内显示 - 分类 - 来自 %1$s 的消息 - 嗨,%1$s,这个还能买到吗? - 服装 - 配件 - 电子 - 家具 - 收藏 - 书籍 - 宠物 - 运动 - 健身 - 艺术 - 工艺 - 家中 - 办公 - 食品 - 杂项 - 其它 - 无法上传媒体 - 无法打开压缩文件 - 上传错误:%1$s - 上传后服务器没有提供 URL - 无法从服务器下载上传的媒体 - 无法检查经过上传后再下载的文件:%1$s - 无法上传到%1$s:%2$s - 删除失败:%1$s - 文件过大,无法使用 NIP-95 - 加密文件 - 上传前为了隐私加密文件。有些服务器可能不接受免费账户的加密文件。 - 加密上传失败 - 许多服务器不接受免费账户的加密文件。您可以不加密重试。 - 使用 H.265/HEVC 编解码器 - 文件较小而质量更佳,但不是所有设备都支持 H.265 播放。 - 转换 GIF 为 MP4 - 将动画的 GIF 转换为 MP4 视频以获取较小文件大小和更好的播放兼容性。 - 删除私密元数据 - 尝试在上传之前从支持的媒体文件中删除私密元数据 - 无法删除元数据 - 从媒体删除私密元数据失败。上传取消。 - 上传已取消 - 无法从 AVIF 删除元数据: %1$s - 主页 - 发现 - 消息 - 通知 - 日历 - 日历列表 - 国际象棋 - 钱包 - Cashu 钱包 (NIP-60) Nutzap 密钥(高级) 一枚单独的私钥仅用于接收NIP-61 nutzaps。不是您的 Nostr 身份密钥。 生成新密钥 P2PK 私钥(十六进制) - 编辑铸币厂 保存更改 - - + 另外 %1$d - - - 由其他 %1$d 个用户推荐 - - 热门铸币厂 - 匹配的铸币厂 - 已收到 - 已发送 - 发布 %1$s 的 kind:38000 推荐删除请求。遵守 NIP-09 的中继会丢弃它。 - 从 %2$s 证明中恢复了 %1$s sats 。 - 支付 %1$s sat + 最多 %2$s sat 的费用? - Nutzap 失败 - 笔记上没有收件人的公钥 - Nutzaps 是公开的,将会透露该私密笔记。请使用闪电打闪代替。 - 无法构建事件参考 - 正在等待支付发票… - 正在检查铸币厂… - 慢 - 正常 - 快 - 约1小时 - 约30分钟 - 约10分钟 - - 发送 %1$s sats, %2$d 拆分 - - - 使用此记事的 %1$d 路打闪拆分 - - - 在 %1$d 位收款人之间拆分 - - - 正在跳过 %1$d 位仅闪电网络地址收款人 - 链上需 Nostr 公钥派生地址。 - - 加载余额 - 正在建立交易 - 正签名 - 正在广播 - 发布收据中 - 未配置比特币链后端 - 无法加载您的比特币余额 - 无法构建交易 - 收款人份额过低 - 无法签署交易 - 无法广播交易 - 付款已发送,但打闪收据无法发布 - - 付款已发送(已发布 %1$d 份收据,共 %2$d 份),但下一收据无法发布 - - 导入关注 - 新产品 - 新文章 - 新建日历活动 - 编辑日历活动 - 新建日历 - 编辑日历 - 源 - 月 - 周 - 日 - - %1$s, %2$d 个活动 - - 正在发生 - %1$s · 结束于 %2$s - 分享日历活动 - 日历提醒 - 日历提醒 - 您正参加的活动即将开始时进行提醒。 - 日历活动 - - 在 %1$d 分钟内开始 - - 图片上传失败 - 选中的图像无法上传。请重试或粘贴一个URL。 - 日历提醒 - 发送提醒 - 您正参加的活动即将开始时发出通知。 - - %1$d 分钟 - - 在地图中打开 - 打开链接 - 展开对此帖子的所有回应 - 收起对此帖子的所有回应 - 打闪 - 底部导航栏 拖动可重新排序。切换可从底部栏中添加或删除一个项目。无项目则底部栏隐藏。 调整顺序 选择主屏幕上出现的标签页。当只有一个标签处于活动状态时,标签栏将被隐藏。 - 全部 - 个人资料界面 选择在用户个人资料屏幕上显示哪些部分和源。默认情况下所有选项都启用。 - 个人资料徽章 - 应用推荐 - 收到的打闪源 - 关注者源 - 回应设置 - 视频播放器按钮 - 音频可视化 - 过期日期 - 地址无效 - Amethyst 收到了要打开的 URI,但该 uri 无效:%1$s - 私信收件箱中继 - 搜索中继 - 示例:\n%1$s - 发件箱中继 - 收件箱中继 - 中继设置 - 公共时间线中继 - 用户正在将其内容发布到这些中继 - 这类中继会保存您的所有内容。Amethyst 会将您的事件发送到这些中继,其他人则通过这些中继查找您的内容。可以设置 1 ~ 3 个中继。它们可以是个人专用中继、付费中继或者公共中继。 - 公共收件箱中继 - 用户正在接收这些中继的通知 - 这类中继用于接收其他人对您内容的回复、评论、点赞和打闪。可设置 1 ~ 3 个中继,需要确保它们能够接受来自任何人的事件(公共写入)。 - 私信收件箱中继 - 用户接收到这些中继的私信 - 设置 1 ~ 3 个中继作为您的私人收件箱。其他人将使用这些中继向您发送私信。需要确保这些收件箱中继能够接受来自任何人的任何私信消息,但只允许您读取这些消息。示例:\n - inbox.nostr.wine(付费)\n - you.nostr1.com(个人专用中继 - 付费) - 密钥包 - 密钥包中继 - 发布 MLS 密钥包的中继(MIP-00)。其他用户获取这些密钥包来邀请你加入 Marmot 群聊。插入1~3个接受来自你的密钥包事件的中继并允许公开读取。 - 私人中继 - 设置 1 ~ 3 个中继用于保存其他人无法看到的事件,例如您的草稿和软件设置。理想情况下,这些应该是本地中继,或者是在获取用户内容时需要经过身份验证的中继。 - 已连接的中继 - 当前正在使用的中继列表 - 搜索中继 - 用于关键词和标签检索的中继列表。如果没有可用选项,也就无法使用关键词和标签检索。需要确保它们支持 NIP-50。 - 本地中继 - 在该设备中运行的中继列表。 - 转发个人资料到本地中继 - 将所有收到的配置文件(类型0)事件发送到您的本地中继 - 可信中继 - 无需使用 Tor 进行连接的可信中继 - 喜爱的中继源 - 经常前去查看全局源的中继 - 代理中继 - 聚合器中继是应用获取资讯源时使用的中继(例如:filter.nostr.wine),设置这个列表将覆盖信箱模型的行为,使得应用只会连接到这个列表中的中继以获取内容。 - 广播中继 - 推送你的帖子到其他中继的中继,例如:sendit.nosflare.com,应用会把这个中继作为提示嵌入到你发送的所有事件的 Json 结构中 - 索引器中继 - 专门保存每个人的账户元数据的中继(例如:purplepag.es),应用会使用这些中继来查找不在你列表中的账户元数据。 - 中继黑名单 - 应用永远不会连接的中继 - 导出中继设置 网址 概述 关于 链接 维护者 话题 - OpenTimestamps 证明 - %1$s之前的某个时候签署了此帖子的证明。此证明是在那个日期和时间在比特币区块链中盖章的。 - 编辑帖子 - 无法回复笔记草稿 - 无法引用笔记草稿 - 无法回应笔记草稿 - 无法打闪笔记草稿 - 笔记草稿 - Bad Request - 服务器无法处理请求。 - Unauthorized - 用户没有有效的身份凭证。 - Payment Required - 服务器需要付费以完成该请求。 - Forbidden - 用户没有权限发起该请求。 - Not Found - 服务器无法找到请求的地址。 - Method Not Allowed - 服务器支持该请求方法,但目标资源不支持。 - Not Acceptable - 服务器找不到满足该请求的内容。 - Proxy Authentication Required - 用户没有有效的身份凭证。 - Request Timeout - 服务器等待其他人时超时。 - Conflict - 服务器由于资源有冲突无法完成该请求。 - Gone - 请求的内容已从服务器上永久性删除。 - Length Required - 服务器由于内容长度未定义而拒绝该请求。 - Precondition Failed - 请求头部未满足服务器的前提条件。 - Payload Too Large - 服务器由于请求体大小超过接受的上限而拒绝处理该请求。 - URI Too Long - 客户端请求的 URL 过长导致服务器无法处理。 - Unsupported Media Type - 该请求使用了服务器不支持的媒体格式。 - Range Not Satisfiable - 服务器无法满足该请求头部中指定的 Range 标头范围。 - Expectation Failed - 服务器无法满足该请求头部中指定的 Expect 标头条件。 - Upgrade Required - 服务器拒绝使用当前协议处理该请求,除非客户端升级到其他协议。 - Internal Server Error -服务器遭遇意外错误而无法完成请求。 - Not Implemented - 服务器无法完成该请求或不支持该请求方法。 - Bad Gateway - 网关服务器收到了源服务器的无效响应。 - Service Unavailable - 该情况通常发生在服务器超载或因维护而宕机。 - Gateway Timeout - 网关服务器因等待源服务器响应而超时。 - HTTP Version Not Supported - 服务器不支持该请求的 HTTP 版本。 - Variant Also Negotiates - 服务器内部配置错误。 - Insufficient Storage - 服务器没有足够的存储空间用于处理该请求。 - Loop Detected - 服务器处理该请求时检测到死循环。 - Network Authentication Required - 客户端必须通过认证才能访问该网络。 Blossom 服务器 添加上传图片时可以选择的服务器。 - 添加 NIP-96 服务器 - 添加 Blossom 服务器 下载 - 打开文件失败 - 没有用于打开和下载文件的 Torrent 客户端 - 事件没有足够信息来构建磁力链 - 我的列表 - 源 - 话题标签 - 兴趣集 - 位置 - 社区 - 列表 - 订阅源算法 - 所有收藏源算法 - 中继 - 收藏源算法 - 私信 - 公开消息 - 无法分享图片,请稍后重试… - 无法分享视频,请稍后重试… - 正下载视频… - 不要翻译 - 此处显示的语言不会被翻译,请选择一种目标语言重新翻译并去除这个提示。 - 翻译为 - 选择要将内容翻译为什么语言。 - 语言显示首选项 - 对于每个翻译的语言对,选择先显示哪个语言。 - 暂停 - 播放 - 此消息将在 %1$s 后消失 - 关注列表元数据 - 关注列表元数据可以被Nostr上的任何人看到。只有您的私人成员是加密的。 - 关注包元数据 - 关注包元数据可以被Nostr上的任何人看见,并且常作为新用户启动包发布在许多网站上。 - 编辑关注包 - 展开 - 重试 - 回应 - 语音帖子 - 语音回复 - 发件箱中继 - 应用程序 - 应用推荐 - 用户设置 - 音频标题 - 音轨 - 音乐曲目 - 音乐播放列表 - 播客节目 - 播客秀 - 创作的播客 - 收藏的播客 - 徽章奖励 - 徽章定义 - 接受的徽章集 - 个人资料徽章 - 中继黑名单 - Blossom 服务器 - 语音聊天服务器 - Blossom 认证 - 广播中继 - 书签列表 - 旧书签列表 - 日预约 - 日历 - 预约 - 预约确认请求 - 国际象棋游戏 - Chess 网站认证 - 喜爱的中继 - 国际象棋挑战 - 接受国际象棋游戏挑战 - 棋子移动 - 国际象棋游戏结束 - 和棋请求 - 频道定义 - 频道隐藏消息 - 频道列表 - 频道消息 - 频道元数据 - 频道静音用户 - 私信文件 - 私信消息 - 私信中继 - 分类广告 - 评论 - 社区定义 - 社区列表 - 社区帖子 - 关注列表 - 删除 - 草稿 - 表情包 - 表情包列表 - 临时聊天 - 临时聊天室 - 文件标题 - 资料页图库 - 文件服务器 - Blob 数据 - Blob 头部 - 医疗数据 - 关注包 - 转发(16) - Geohash 关注 - 包装礼物 - Git 问题 - Git 补丁 - Git 仓库 - Git 回复 - 打闪目标 - 话题关注 - 精彩场面 - Http 认证 - 索引中继列表 - 探险前言 - 探险场景 - 探险阅读 - 已命名书签 - 实时聊天 - 直播 - 打闪 - NWC 请求 - NWC 响应 - 私下打闪 - 打闪请求 - 博客 - 会议室 - 房间状态 - 会议空间 - 个人资料 - 静音列表 - Nostr 连接 - DVM 状态 - DVM 内容请求 - DVM 内容响应 - DVM 用户请求 - DVM 用户响应 - 人员列表 - 图片 - 锻炼 - 置顶 - 打闪投票 - 投票 - 投票响应 - NIP-04 私信 - 私密中继 - 代理中继 - 公开消息 - 回应 - 名片 - 中继认证 - 中继发现 - 中继监视器公告 - 中继集合 - 举报 - 转发 - 用户删除 - 密封信息 - 搜索中继 - 用户状态 - 笔记 - 编辑 - 种子 - 种子注释 - 可信中继 - 可信的提供商 - 视频 (回复) - 短篇 (回复) - 视频 - 短篇 - 语音消息 - 语音回复 - 唤醒 - 网络书签 - 维基 - %1$d%% 运行时间 - Namecoin 设置 - %d毫秒 - 中继同步 - 比特币资源管理器 (OTS) - 来自您的事件 - 给您的事件 - 可搜索的事件 - 私信 - 个人资料 - 发件箱列表 - %1$s 前活跃 - 上次见于 %1$s (%2$s 之前) - 刚见到 - 从未见过 - - %1$d 分钟 - - - %1$d 小时 - - - %1$d 天 - - - %1$d 周 - - - %1$d 个月 - - - %1$d 年 - - - %1$d 铸币厂 - - - %1$d 张待处理发票 - - - 您不使用的 %1$d 座铸币厂中持有的资金 - - 移动了 %1$s sat 到 %2$s。 - 投射到设备 - 停止投影 - HLS 上传 - 正在上传 %1$s (%3$d 中的 %2$d) - 证明 - 证明请求 - 证明人建议 - 证明人熟练度 - 网络书签 - 添加网络书签 - 编辑网络书签 - 设定目标为 %2$s sats,筹集到 %1$s - 新目标 - 请求消失 - 消失请求已发送 - 消失历史记录 - 用户 - 事件 - 类型 - IP地址 - 设置 - 建议文本改进 - 使用设备上的 AI 模型来提出文本更正和音调更改。 - 已跟踪的广播 - 在发送事件时使用已跟踪的广播。在广播时显示实时进度和每个中继的状态。 - 推荐要分享的锻炼 - 从 Health Connect (Shamsung Health, Google Fit, Fitbit, Garmin…)读取完成的锻炼,并建议将其作为帖子分享。 只有当您连接时才请求权限。 - 撰写设置 - 自动创建草稿 - 当您输入或在编辑器中有未发送的文本时自动保存草稿事件并发送到您的私人发件箱中继。 - 新的表情包 - 编辑表情包 - 我的表情包 - 表情 - 公开表情符号对所有人可见;当此表情包位于您的表情符号列表中时,它们会显示在您的“反应”菜单及“:”自动补全选择器中。 - 私密表情符号被加密存储在中继上,只对您可见。它们就像公开表情符号一样出现在回应菜单和 \":\" 自动完成中。 - 草稿为 %1$d 字节;这个社区将此类内容大小限制为 %2$d 字节。 - 草稿为 %1$d 字节;这个社区将事件大小限制为 %2$d 字节。 - 您今天已经发布了 %1$d 个此类事件 (限制 %2$d)。 - Nowhere 站点 - Nowhere 事件 - Nowhere 筹款人 - Nowhere 商店 - Nowhere 申请 - Nowhere 消息 - Nowhere 艺术 - Nowhere 论坛 - - %1$d 条消息 - - - %1$d 位成员 - - 群信息已更新 - 更新失败: %1$s - 创建群失败: %1$s - 退群失败: %1$s - 正在添加 %1$s… - 添加 %1$s失败: %2$s - 未知错误 - 成员已移除 - 移除成员失败: %1$s - 已授予管理员权限 - 授予管理员权限失败: %1$s - 已撤销管理员权限 - 撤销管理员失败: %1$s - 不是此群的成员 %1$s 的接收者闪电服务不可用。它是根据雷电地址\"%2$s\"计算的。 错误: %3$s。请检查服务器是否已经上线,闪电地址是否正确 无法解析 %1$s。请检查你是否已连接,服务器是否启动,以及闪电地址 %2$s 是否正确。\n\n异常为:%3$s 从 %1$s 的闪电发票获取解析JSON 发生错误。请检查用户的闪电设置 diff --git a/amethyst/src/main/res/values-zh-rSG/strings.xml b/amethyst/src/main/res/values-zh-rSG/strings.xml index 40448a41a2..1efa729804 100644 --- a/amethyst/src/main/res/values-zh-rSG/strings.xml +++ b/amethyst/src/main/res/values-zh-rSG/strings.xml @@ -1,113 +1,12 @@ - - 此帖有超过 %1$d 个话题标签 - - - 捆绑了 %1$d 个资产 - - - +%1$d\n条回复 - - 垃圾信息 - 来自该中继的垃圾事件数量 - 冒充 - 非法行为 - 请求删除 - 你正在使用公钥,公钥是只读的。使用私钥登录以便回复 - 你正在使用公钥,公钥是只读的。使用私钥登录以便提升帖子 - 你正在使用公钥,公钥是只读的。使用私钥登录以点赞帖子 - 没有设置打闪金额。长按以更改 - 你正在使用公钥,公钥是只读的。使用私钥登录以便发送打闪 - 你正在使用公钥,公钥是只读的。使用私钥登录以便能够关注 - 你正在使用公钥,公钥是只读的。使用私钥登录以便能够取消关注 - 你正在使用公钥,公钥是只读的。使用私钥登录以便能够隐藏单词或句子 - 你正在使用公钥,公钥是只读的。使用私钥登录以便能够显示单词或句子 - 您正在使用公钥以只读方式登录,需要使用私钥登录才能上传。 - 您正在使用公钥以只读方式登录,需要使用私钥登录才能签署事件。 - 未授权的解密 - 签名器没有授权解密操作,请在签名器中授予 NIP-44 解密权限并重试。 - 未找到签名器 - 签名器被卸载?请检查是否已经安装了签名器以及其中是否存在该账户。变更签名器需要注销后重新登录。 - 外部签名器对该请求返回了不正常的载荷。这可能是 Amethyst 或签名器上的错误。 - 打闪 - 提升 已提升 编辑 #%1$s - 提出修改建议 - 添加 - 解析错误信息时出错 - 个人档案 - 安全过滤器 - 正在请求发票… - 借记服务没有完成付款。 - 通过 %2$s 支付 %1$s? - 通过 %1$s支付这张发票? - 输入此报价的有效金额。 - 一次性 - 每日 - 每周 - 每月 - 付款 - 正通过 %1$s 付款… - 付款失败 - 可为该收款人支付的金额:%1$s sats - 交易: %1$s - "预览 %1$s 卡片图片" - 描述 - 你在想什么? - 写一条消息… - 帖子 保存 - 发送 - 创建 重命名 - 取消 - 错误 - 错误 - 中继成功连接的百分比 - 保存到手机 - 图片已保存到相册 - 视频下载已开始… - 媒体下载已开始… - 置顶 - 取消置顶 - 保存图片失败 - 视频已保存到媒体库 - 保存视频失败 - 已保存 PDF 到 Downloads/Amethyst - 保存 PDF 失败 - 此设备上没有找到相机应用 - 点按以录制消息 - 上传出错 - 上传语音消息失败 - 语音消息尚不支持 NIP-95 - 语音上传失败:%1$s - 无 - 深沉 - 高音 - 中性 - 用户尚未设置闪电地址以接收聪 - "🔏在此回复… " - 私聊 - 新请求 - 已隐藏用户 - 新主题帖 - 会话 - 更多选项 - 显示私钥二维码 - 显示加密私钥二维码 - 关注 - 回关 - 隐藏密码 - 无效密钥 - 无效的密钥:%1$s - 密码必填 - 需要密钥 - 名称必填 @@ -116,153 +15,7 @@ 新的聊天资料: - 离开 - 取关 - 临时聊天 - 中继聊天 - 中继聊天 - 中继聊天是由聊天所属中继控制的聊天群组。 - Nostr 上的每个人都可以看到这些群组,任何人都可以加入群组。 - 这非常适合围绕特定主题而建立的开放社区。其中一些群组是临时的, - 因此聊天信息会随着时间的推移而消失。 - 公共聊天 - MLS 组 - 公开聊天元数据 - 公开聊天对所有 Nostr 用户都是可见的,任何人都可以: - 参与这些聊天。这对特定话题建立的开放式社区来说很重要 - 通过删除中继上的帖子实现内容审核控制 - 中继器 - 使用 1~3 个中继托管这个群组。 - 让 Nostr 客户端知道应该使用这些中继配置来发送和下载消息。 - 移除 - 从不 - 现在 - 时 - 分 - 天 - 裸露 - 不文雅的言辞 / 敌意言论 - 备份密匙 - 私钥加密失败 - 私人密钥(nsec)已复制到剪贴板 - 复制我的私人密钥 - 身份验证失败 - 生物计未能验证此手机的所有者 - 生物计未能验证此手机的所有者。错误:%1$s - 文本已复制到剪贴板 - 已复制作者公钥 ID 到剪贴板 - 已复制笔记ID (@note1) 到剪贴板 - "<无法解密私密消息>\n\n;你被 %1$s 和 %2$s 之间的私人/加密会话引用。" - 账户 - 导航 - 你 - 源 - 创建 - 系统 - 返回 - 分享浏览网址 - 分享 - 以图片方式共享 - 以图像地址形式分享 - 笔记ID - 删除 - 主题帖静音 - 取消主题帖静音 - - 仅阻止 - 书签 - 书签迁移成功 - 草稿 - 定时帖子 - 定时帖 - 取消时间安排 - 下次重新打开应用前可能不会发布定时贴。要获得稳定的后台定时功能在“设置” → “用户界面偏好” 中启用“始终显示”。 - 在重新打开应用前可能不会发布定时帖。此账户活跃时,其他账户的定时帖不会发布。要获得稳定的后台定时功能,在“设置” →\"用户界面首选项“ 中开启”始终显示“。 - %1$s ·在 %2$s - %1$s · %2$s 前 - 明天 - 已退出登录 - - 已退出登录 删除了 %d 个定时帖 - - 发布了定时帖 - 未能发布定时帖 - 定时帖 - 当成功发布了定时帖或未能发布定时帖时发出通知。 - 立即发送 - 错误:%1$s - 已安排时间 - 正在发送… - 失败 - 已发送 - 已取消 - - 您有尚未发布的 %d 个定时帖。退出登录将永久删除它们。 - - - %d 个已加入队列 - - - • %d 个于1小时内到期 - - - 到 %d 个中继 - - 已复制笔记 ID - 投票 - 开启 - 已关闭 - 徽章 - 社区 - 新建社区 - 编辑社区 - 协管 - 中继 - 可验证规则 (可选) - 允许的事件类型 - 短文本 (1) - 长文章(30023) - 图片帖子(20) - 视频帖子 (21) - 短视频(22) - 社区评论(1111) - 封禁的用户 - 信任网络网关(可选) - 全局最大事件大小(可选) - 新徽章 - 授予徽章 - 个人资料徽章 - 图片 - 锻炼 - 新锻炼 - 跑步 - 步行 - 骑行 - 远足 - 游泳 - 划船 - 强度 - 瑜伽 - 冥想 - 饮食 - 节食 - 循环训练 - 应用 应用 - 浏览器 - 正通过 Tor 加载。点击使用 open web。 - 正通过 open web 加载 Tor。点击使用 Tor。 - 收藏夹 - 喜欢的应用 - 添加至收藏夹 - 从收藏中移除 - 通过 Tor 加载。 - 通过 open web 加载。 - 已发布到中继 - 上传了一个文件 - 支付了一笔款项 - 该应用尚未加载。稍后再试。 - 最近 nApplet 权限 尚无nApplet 权限 您授予nApplets的权限将显示在这里。 @@ -272,45 +25,11 @@ 外壳 - 身份 - 键盘操作 - 中继 - 存储 - 付款 - 网络 - 上传 询问哪些功能可用 - 读取您的公钥 - 绑定键盘快捷键 - 读取并签署 & 发布您的事件 - 其自身的私密存储 - 支付闪电发票 - 获取 web 和 Blossom 资源 - 上传文件到您的媒体服务器 - 主题 - 通知 - 消息收发 - 匹配您应用的颜色 - 向您显示通知 - 与其他napplets交换消息 功能:%1$s - 此 nApplet 想要读取您的公钥。 - 此 nApplet 想要读取您的个人资料和账户数据。 - 此 nApplet 想要像您一样签署并发布一个 %1$d 类型事件。 - 此 nApplet 想要像您一样签署并发布一个 %1$d 类型事件: - 此 nApplet 想像您一样发送一个加密事件。 - 此 nApplet 想要从您的中继读取事件。 - 此 nApplet 想要使用其私密存储。 此 nApplet 想要支付闪电发票。 - 此 nApplet 想要获取一个 web 资源。 - 此 nApplet 想要上传一个文件到您的媒体服务器。 - 此 nApplet 想要向您显示通知。 - 此站点想要用您的Nostr密钥签署一个 %1$d 类型事件。 - - 此 nApplet 想要支付 %1$d sat 的闪电发票。 - - 短视频 - 公共聊天 - 关注包 - 直播 - 音频室 - 举手 - 放下手 - 静音 - 取消静音 - 无法发送信息 - 麦克风静音 - 取消麦克风静音 - 语音聊天房 - 当聊天室开放时保持音频播放。 - 语音聊天室已连接 - 语音聊天室 — 在线 - 轻触返回。 - 停止 - 举手 - 步入舞台 - 正在说话 - 作为观众加入 - 离开语音聊天室 - 离开 - 不能将聊天室标记为已关闭。仍然离开——聊天室将自动关闭。 - - %1$d 位听众 - - 消除此演讲者的声音 - 恢复此演讲者的声音 - 关注 - 取关 - 静音 - 取消静音 - 无法保存您的语音聊天服务器列表。请重试。 - 语音聊天服务器 - 您的服务器 - 保存为 10112 类型的可替换事件,以便其他客户端可以读取您的首选项。 - 推荐的服务器 - 内置建议,您可轻触添加到列表中。 - 视频 - 音乐 - 播放列表 - 节目 - 播客 - - %1$d 期节目 - - 新音乐曲目 - 新建播放列表 - - %1$d 首曲目 - - 添加到公开书签 - 从公开书签中移除 - 置顶到个人资料 - 从个人资料中取消置顶 - 新建书签列表 - 书签列表元数据 - 兴趣集 - 新的兴趣集 - 重命名 - 设为私密:将笔记包装为礼物仅发给要通知的用户 - 设为公开 - 对私密笔记的回复总是不公开的 - 可见范围 尚无接收方:只有您才能看到此笔记。添加分享对象。 添加 从通知中删除用户 搜索并添加要通知的用户 - 书签列表元数据可以被Nostr上的任何人看到。只有您的私密成员是加密的。 - 移动到公开 - 移动到私密 - 充值 & 发送打闪 - 发送打闪 - 充值 %1$s sats 到 %2$s 并打闪 %3$s %4$s sats · fee ≈ %5$s sats - 选项 %s - 单选 - 多选 - 无法投票 - 该投票已结束 - 这种投票只允许每个用户一票 - 投票作者不能在自己的投票中投票。 - 这是什么意思 - 此内容与发布时相同 - 此内容已更改。作者可能没有看到或批准更改 - 添加媒体 - 添加图片 - 添加视频 - 添加文件 - 文件服务器 - 选择上传文件时使用的服务器 - 媒体服务器 设置首选媒体上传服务器。 推荐的媒体服务器 Amethyst 的默认列表。可单独添加或添加整个列表。 - 付款目标 - 添加不同网络的付款地址(如比特币、比特币闪电、以太坊)。 - 没有找到处理此付款的应用。请安装兼容的钱包。 - 没有安装应用程序来处理 %1$s 付款。请安装一个兼容的钱包。 - 无法打开付款 - 隐私选项 - 所有关注 - 所有用户关注 - 默认关注列表 - 周围的人 - 全球 - 精选 - 我的 - 静音列表 - 新建关注列表 - 新的关注包 - 编辑列表 - 默认端口为 9050 - Orbot Socks 端口 - 启动 Tor - 使用内置 Tor 或者 Orbot - Tor 和隐私预设 - 快速修改下方的设置 - Onion 链接或中继地址 - 为 .onion 链接使用 Tor - 私信中继 - 强制在收发私信时使用 Tor - 不受信任的中继 - 强制对收件箱和发件箱中继使用 Tor - 可信中继 - 强制为所有中继使用 Tor - 用户资料图片 - 强制为下载用户资料图片时使用 Tor - 链接预览 - 强制为链接预览使用 Tor - 图片 - 强制为加载图片时使用 Tor - 视频 - 强制为加载视频时使用 Tor - 资金操作 - 强制为 Zap、闪电网络和 Cashu 转账时使用 Tor - Nostr 地址验证 - 强制为 NIP-05 地址验证使用 Tor - 媒体上传 - 强制为上传媒体内容时使用 Tor - 内置 - 关闭 - 基础 - 默认 - 除多媒体外的所有内容 - 完全隐私 - 自定义 - 当服务器要求时使用 Tor - 从随机中继中隐藏 IP - 除了图片和视频外,总是隐藏 IP - 为所有连接隐藏 IP - 让你自己来设置 - 私信 - 收到私信时通知你 - 收到打闪 - 收到打闪时通知你 - %1$s聪 - 来自 %1$s - 为 %1$s - 回复 - 标记为已读 - 新信息 - 新打闪 - 回应 - 当有人回应您的帖子做出时通知您 - %1$s 回应了您的帖子 - 针对 %1$s - 新回应 - 国际象棋 - 提醒您有关国际象棋游戏的事件 - %1$s 接受了您的国际象棋挑战 - %1$s 已移动 —— 轮到您了 - 国际象棋更新 - 回复 - 当有人回复您的帖子时通知您 %1$s 回复了 在: %1$s - 新的回复 - 提及 - 当某人在帖子中提到或引用你时,通知你 - %1$s 提到了你 - 新提及 @@ -536,35 +81,6 @@ - 来电 - 语音和视频来电通知 - 来电 - 语音来电 \u2026 - 视频来电 \u2026 - 和 %1$s 的通话 - 通话 - 进行中的通话通知 - 挂断 - 接受 - 拒绝 - 静音 - 取消静音 - 开启摄像头 - 关闭摄像头 - 扬声器 - 耳机 - 蓝牙 - Amethyst 需要麦克风权限来开始语音通话。请在应用程序设置中启用它。 - Amethyst需要摄像头和麦克风访问权限来开始视频通话。请在应用程序设置中启用它们。 - 通话设置 - 保持与收件箱中继的连接以便接收实时通知 - Amethyst 通知活跃 - - 已连接到 %1$d 个收件箱中继 - - - 已连接到 %1$d 个中继 - - 正在连接到收件箱中继\u2026 “始终显示通知”服务 保持与收件箱中继的持续连接以便即时发送通知。 显示正在进行的通知。使用更多电量,但确保您永远不会错过消息。 - 根据关注拆分通知 - 显示两个通知选项卡 — — 关注(你关注的人) 和所有人。未读的指示器只为你关注的人的活动发出微光。 - 显示消息 - 在通知选项卡上包含私信和群消息。如关闭只在消息选项卡中保留消息。 - 通知: - 今天 - 隐藏 - 显示 - 警告 - 过滤垃圾信息 - 隐藏陌生人的五次或五次以上完全相同的帖子 - 将客户端标签添加到我的事件 - 启用时,Amethyst 将会附加一个 NIP-89 客户端标签到您发布的事件。 - 举报警示 - 当帖子有来自你关注的五次及以上举报时显示警告消息 - 隐藏违反社区规则的帖子 - 当社区发布了一份NIP-9B规则文档而一个事件会让它失灵时,丢弃社区的帖子。 当社区没有结构化规则时没有任何影响。 - 过滤的首选项 - 拦截的内容 - 您尚未屏蔽任何用户。 - 本次会话中还没有账户被标记为垃圾信息。 - 没有隐藏的单词。在下方添加一个单词来隐藏包含它的帖子。 - 未选择回应类型。长按可更改 - 从中继器读取 - 写入到继电器 - 向该中继发送事件和过滤请求所使用的数据量 - 从该中继接收事件和过滤响应所使用的数据量 - 隐私政策 - 儿童安全标准 - 关于 & 法律 - Cashu 代币 - 未设置闪电地址 - 中继器 - 关注包 - 阅读 - 算法动态 - 市场 - 直播 - 社区 - 聊天 - 敏感内容 - 在显示此内容之前添加敏感内容警告 - 用户界面首选项 偏好设置 - 翻译 - 回应 - 设置 - 账户设置 - 应用程序设置 - 危险区 - 重置 Marmot 状态 - Marmot 状态重置。 - 重置 Marmot 状态失败: %1$s - 始终 - 未计量的 WiFi - 从不 - 完整版 - 简化版 - 极速版 - 经典 - 现代 - 系统 - 浅色 - 深色 - 钱包绑定 - 主题 - 图像预览 - 视频播放 - 自动播放视频 - URL 预览 - 沉浸式滚动 - 滚动时隐藏导航栏 - 界面模式 - 选择帖子样式 - 资料页图库样式 - 选择图库样式 - 垃圾邮件 - 静音。点击取消静音 - 声音开启。点击静音 - 后退 %d 秒 - 前进 %d 秒 - 位置限定帖子 - 只有处于同一地理位置的关注者才能看到贴帖子。一般关注者无法看到。 - - %1$d 首曲目 - - - 另外 %1$d 首曲目 - - 上传封面图片 - 选择一个正方形图像作为这个曲目的艺术作品。 - 上传音频文件 - 选择 MP3, WAV 或 FLAC。保存时它将被上传到媒体服务器。 - 正砸上传封面 + 音频和发布。即使您离开屏幕,这也会继续进行。 - 编辑播放列表 - 上传封面图片 - 选择一个正方形图像作为这个播放列表的艺术作品。 - 正在上传封面并发布。即使您离开屏幕,这也会继续进行。 公开 组 私人 - 主题 - 无法上传 - 需要首先输入消息的目标位置 - 未找到钱包 - Amethyst 找不到任何支持 Nostr Wallet Connect (NWC) 的钱包应用. -\n\n你可以做的事情: -\n\t1. 验证 NWC 支持:仔细确认偏好的钱包应用和 Nostr Wallet Connect 兼容。 -\n\t2. 创建连接:前往钱包应用并创建新的 NWC 连接。 -\n\t3.链接到 Amethyst: 你的钱包通常会给你三个选项: -\n\t\t3.1 自动链接:自动打开并连接到 Amethyst 的按钮。如果是这样, 单击那个按钮,打开 Amethyst 并在新屏上按保存。 -\n\t\t3.2 手动链接: 你可以复制的连接 URI,单击这个屏幕上的粘贴图标直接输入它。 -\n\t\t3.3 二维码: 钱包会创建一个你可以从这个屏幕中的二维码按钮那里读取的二维码。 - - 暗色、亮色或系统主题 - 自动加载图像和 GIF - 自动播放视频和 GIF - 视频在屏幕上可见时自动播放视频 - 显示 URL 预览 - 复制到剪贴板 - 已复制到剪贴板 - 分享或保存 已私信形式发送 - 媒体已添加 - 媒体已添加到个人资料相册中 - 无法发送打闪 - 打闪设置缺失 - 用户 %1$s 尚未设置接收聪的闪电地址 - 打开签名应用时出错 - 找不到签名应用。检查应用是否已被卸载 - 无法播放此视频。 - 此设备不支持该编解码器或格式(%1$s)。请尝试在您的浏览器中打开它。 - 在浏览器中打开 - 签名请求已被拒绝 - 请确保签名应用程序已授权此交易 - 找不到支付闪电发票的钱包(错误:%1$s)。请安装闪电钱包来使用打闪 - 找不到支付闪电发票的钱包。请安装闪电钱包来使用打闪 - 无法打开 Blossom 链接 - 找不到Blossom应用。请安装本地Blossom应用查看此文件 - 隐藏单词 - 静音的主题帖 - 无静音的主题帖 - 个人头像 - 显示个人头像 - 不能生成支付发票 - 无法提款 - 无法兑换 Cashu - 铸币厂提供了以下错误信息: %1$s - 已收到 Cashu - %1$s 聪已被发送到你的钱包。(费用︰ %2$s 聪) - 系统上没有找到兼容的 Cashu 钱包 - 无法从接收方的服务器获取发票 - 你的钱包连接提供者返回了以下错误: %1$s - 无法从闪电地址集合LNURL\"%1$s\"。请检查用户设置 - 无法从 %1$s 获取发票:%2$s - 从 %1$s 解析 JSON 发生错误。请检查用户的闪电设置 - 从 %1$s 的响应中找不到回调 URL - 来自 %2$s 的错误的发票金额(%1$s 聪)。它本应该是 %3$s - 无法在发送打闪前创建闪电发票。接收者闪电钱包发送了以下错误: %1$s - 仅读用户 - 没有设置回应 - 通知 - 发送 - 应用内显示 - 分类 - 来自 %1$s 的消息 - 嗨,%1$s,这个还能买到吗? - 服装 - 配件 - 电子 - 家具 - 收藏 - 书籍 - 宠物 - 运动 - 健身 - 艺术 - 工艺 - 家中 - 办公 - 食品 - 杂项 - 其它 - 无法上传媒体 - 无法打开压缩文件 - 上传错误:%1$s - 上传后服务器没有提供 URL - 无法从服务器下载上传的媒体 - 无法检查经过上传后再下载的文件:%1$s - 无法上传到%1$s:%2$s - 删除失败:%1$s - 文件过大,无法使用 NIP-95 - 加密文件 - 上传前为了隐私加密文件。有些服务器可能不接受免费账户的加密文件。 - 加密上传失败 - 许多服务器不接受免费账户的加密文件。您可以不加密重试。 - 使用 H.265/HEVC 编解码器 - 文件较小而质量更佳,但不是所有设备都支持 H.265 播放。 - 转换 GIF 为 MP4 - 将动画的 GIF 转换为 MP4 视频以获取较小文件大小和更好的播放兼容性。 - 删除私密元数据 - 尝试在上传之前从支持的媒体文件中删除私密元数据 - 无法删除元数据 - 从媒体删除私密元数据失败。上传取消。 - 上传已取消 - 无法从 AVIF 删除元数据: %1$s - 主页 - 发现 - 消息 - 通知 - 日历 - 日历列表 - 国际象棋 - 钱包 - Cashu 钱包 (NIP-60) Nutzap 密钥(高级) 一枚单独的私钥仅用于接收NIP-61 nutzaps。不是您的 Nostr 身份密钥。 生成新密钥 P2PK 私钥(十六进制) - 编辑铸币厂 保存更改 - - + 另外 %1$d - - - 由其他 %1$d 个用户推荐 - - 热门铸币厂 - 匹配的铸币厂 - 已收到 - 已发送 - 发布 %1$s 的 kind:38000 推荐删除请求。遵守 NIP-09 的中继会丢弃它。 - 从 %2$s 证明中恢复了 %1$s sats 。 - 支付 %1$s sat + 最多 %2$s sat 的费用? - Nutzap 失败 - 笔记上没有收件人的公钥 - Nutzaps 是公开的,将会透露该私密笔记。请使用闪电打闪代替。 - 无法构建事件参考 - 正在等待支付发票… - 正在检查铸币厂… - 慢 - 正常 - 快 - 约1小时 - 约30分钟 - 约10分钟 - - 发送 %1$s sats, %2$d 拆分 - - - 使用此记事的 %1$d 路打闪拆分 - - - 在 %1$d 位收款人之间拆分 - - - 正在跳过 %1$d 位仅闪电网络地址收款人 - 链上需 Nostr 公钥派生地址。 - - 加载余额 - 正在建立交易 - 正签名 - 正在广播 - 发布收据中 - 未配置比特币链后端 - 无法加载您的比特币余额 - 无法构建交易 - 收款人份额过低 - 无法签署交易 - 无法广播交易 - 付款已发送,但打闪收据无法发布 - - 付款已发送(已发布 %1$d 份收据,共 %2$d 份),但下一收据无法发布 - - 导入关注 - 新产品 - 新文章 - 新建日历活动 - 编辑日历活动 - 新建日历 - 编辑日历 - 源 - 月 - 周 - 日 - - %1$s, %2$d 个活动 - - 正在发生 - %1$s · 结束于 %2$s - 分享日历活动 - 日历提醒 - 日历提醒 - 您正参加的活动即将开始时进行提醒。 - 日历活动 - - 在 %1$d 分钟内开始 - - 图片上传失败 - 选中的图像无法上传。请重试或粘贴一个URL。 - 日历提醒 - 发送提醒 - 您正参加的活动即将开始时发出通知。 - - %1$d 分钟 - - 在地图中打开 - 打开链接 - 展开对此帖子的所有回应 - 收起对此帖子的所有回应 - 打闪 - 底部导航栏 拖动可重新排序。切换可从底部栏中添加或删除一个项目。无项目则底部栏隐藏。 调整顺序 选择主屏幕上出现的标签页。当只有一个标签处于活动状态时,标签栏将被隐藏。 - 全部 - 个人资料界面 选择在用户个人资料屏幕上显示哪些部分和源。默认情况下所有选项都启用。 - 个人资料徽章 - 应用推荐 - 收到的打闪源 - 关注者源 - 回应设置 - 视频播放器按钮 - 音频可视化 - 过期日期 - 地址无效 - Amethyst 收到了要打开的 URI,但该 uri 无效:%1$s - 私信收件箱中继 - 搜索中继 - 示例:\n%1$s - 发件箱中继 - 收件箱中继 - 中继设置 - 公共时间线中继 - 用户正在将其内容发布到这些中继 - 这类中继会保存您的所有内容。Amethyst 会将您的事件发送到这些中继,其他人则通过这些中继查找您的内容。可以设置 1 ~ 3 个中继。它们可以是个人专用中继、付费中继或者公共中继。 - 公共收件箱中继 - 用户正在接收这些中继的通知 - 这类中继用于接收其他人对您内容的回复、评论、点赞和打闪。可设置 1 ~ 3 个中继,需要确保它们能够接受来自任何人的事件(公共写入)。 - 私信收件箱中继 - 用户接收到这些中继的私信 - 设置 1 ~ 3 个中继作为您的私人收件箱。其他人将使用这些中继向您发送私信。需要确保这些收件箱中继能够接受来自任何人的任何私信消息,但只允许您读取这些消息。示例:\n - inbox.nostr.wine(付费)\n - you.nostr1.com(个人专用中继 - 付费) - 密钥包 - 密钥包中继 - 发布 MLS 密钥包的中继(MIP-00)。其他用户获取这些密钥包来邀请你加入 Marmot 群聊。插入1~3个接受来自你的密钥包事件的中继并允许公开读取。 - 私人中继 - 设置 1 ~ 3 个中继用于保存其他人无法看到的事件,例如您的草稿和软件设置。理想情况下,这些应该是本地中继,或者是在获取用户内容时需要经过身份验证的中继。 - 已连接的中继 - 当前正在使用的中继列表 - 搜索中继 - 用于关键词和标签检索的中继列表。如果没有可用选项,也就无法使用关键词和标签检索。需要确保它们支持 NIP-50。 - 本地中继 - 在该设备中运行的中继列表。 - 转发个人资料到本地中继 - 将所有收到的配置文件(类型0)事件发送到您的本地中继 - 可信中继 - 无需使用 Tor 进行连接的可信中继 - 喜爱的中继源 - 经常前去查看全局源的中继 - 代理中继 - 聚合器中继是应用获取资讯源时使用的中继(例如:filter.nostr.wine),设置这个列表将覆盖信箱模型的行为,使得应用只会连接到这个列表中的中继以获取内容。 - 广播中继 - 推送你的帖子到其他中继的中继,例如:sendit.nosflare.com,应用会把这个中继作为提示嵌入到你发送的所有事件的 Json 结构中 - 索引器中继 - 专门保存每个人的账户元数据的中继(例如:purplepag.es),应用会使用这些中继来查找不在你列表中的账户元数据。 - 中继黑名单 - 应用永远不会连接的中继 - 导出中继设置 网址 概述 关于 链接 维护者 话题 - OpenTimestamps 证明 - %1$s之前的某个时候签署了此帖子的证明。此证明是在那个日期和时间在比特币区块链中盖章的。 - 编辑帖子 - 无法回复笔记草稿 - 无法引用笔记草稿 - 无法回应笔记草稿 - 无法打闪笔记草稿 - 笔记草稿 - Bad Request - 服务器无法处理请求。 - Unauthorized - 用户没有有效的身份凭证。 - Payment Required - 服务器需要付费以完成该请求。 - Forbidden - 用户没有权限发起该请求。 - Not Found - 服务器无法找到请求的地址。 - Method Not Allowed - 服务器支持该请求方法,但目标资源不支持。 - Not Acceptable - 服务器找不到满足该请求的内容。 - Proxy Authentication Required - 用户没有有效的身份凭证。 - Request Timeout - 服务器等待其他人时超时。 - Conflict - 服务器由于资源有冲突无法完成该请求。 - Gone - 请求的内容已从服务器上永久性删除。 - Length Required - 服务器由于内容长度未定义而拒绝该请求。 - Precondition Failed - 请求头部未满足服务器的前提条件。 - Payload Too Large - 服务器由于请求体大小超过接受的上限而拒绝处理该请求。 - URI Too Long - 客户端请求的 URL 过长导致服务器无法处理。 - Unsupported Media Type - 该请求使用了服务器不支持的媒体格式。 - Range Not Satisfiable - 服务器无法满足该请求头部中指定的 Range 标头范围。 - Expectation Failed - 服务器无法满足该请求头部中指定的 Expect 标头条件。 - Upgrade Required - 服务器拒绝使用当前协议处理该请求,除非客户端升级到其他协议。 - Internal Server Error -服务器遭遇意外错误而无法完成请求。 - Not Implemented - 服务器无法完成该请求或不支持该请求方法。 - Bad Gateway - 网关服务器收到了源服务器的无效响应。 - Service Unavailable - 该情况通常发生在服务器超载或因维护而宕机。 - Gateway Timeout - 网关服务器因等待源服务器响应而超时。 - HTTP Version Not Supported - 服务器不支持该请求的 HTTP 版本。 - Variant Also Negotiates - 服务器内部配置错误。 - Insufficient Storage - 服务器没有足够的存储空间用于处理该请求。 - Loop Detected - 服务器处理该请求时检测到死循环。 - Network Authentication Required - 客户端必须通过认证才能访问该网络。 Blossom 服务器 添加上传图片时可以选择的服务器。 - 添加 NIP-96 服务器 - 添加 Blossom 服务器 下载 - 打开文件失败 - 没有用于打开和下载文件的 Torrent 客户端 - 事件没有足够信息来构建磁力链 - 我的列表 - 源 - 话题标签 - 兴趣集 - 位置 - 社区 - 列表 - 订阅源算法 - 所有收藏源算法 - 中继 - 收藏源算法 - 私信 - 公开消息 - 无法分享图片,请稍后重试… - 无法分享视频,请稍后重试… - 正下载视频… - 不要翻译 - 此处显示的语言不会被翻译,请选择一种目标语言重新翻译并去除这个提示。 - 翻译为 - 选择要将内容翻译为什么语言。 - 语言显示首选项 - 对于每个翻译的语言对,选择先显示哪个语言。 - 暂停 - 播放 - 此消息将在 %1$s 后消失 - 关注列表元数据 - 关注列表元数据可以被Nostr上的任何人看到。只有您的私人成员是加密的。 - 关注包元数据 - 关注包元数据可以被Nostr上的任何人看见,并且常作为新用户启动包发布在许多网站上。 - 编辑关注包 - 展开 - 重试 - 回应 - 语音帖子 - 语音回复 - 发件箱中继 - 应用程序 - 应用推荐 - 用户设置 - 音频标题 - 音轨 - 音乐曲目 - 音乐播放列表 - 播客节目 - 播客秀 - 创作的播客 - 收藏的播客 - 徽章奖励 - 徽章定义 - 接受的徽章集 - 个人资料徽章 - 中继黑名单 - Blossom 服务器 - 语音聊天服务器 - Blossom 认证 - 广播中继 - 书签列表 - 旧书签列表 - 日预约 - 日历 - 预约 - 预约确认请求 - 国际象棋游戏 - Chess 网站认证 - 喜爱的中继 - 国际象棋挑战 - 接受国际象棋游戏挑战 - 棋子移动 - 国际象棋游戏结束 - 和棋请求 - 频道定义 - 频道隐藏消息 - 频道列表 - 频道消息 - 频道元数据 - 频道静音用户 - 私信文件 - 私信消息 - 私信中继 - 分类广告 - 评论 - 社区定义 - 社区列表 - 社区帖子 - 关注列表 - 删除 - 草稿 - 表情包 - 表情包列表 - 临时聊天 - 临时聊天室 - 文件标题 - 资料页图库 - 文件服务器 - Blob 数据 - Blob 头部 - 医疗数据 - 关注包 - 转发(16) - Geohash 关注 - 包装礼物 - Git 问题 - Git 补丁 - Git 仓库 - Git 回复 - 打闪目标 - 话题关注 - 精彩场面 - Http 认证 - 索引中继列表 - 探险前言 - 探险场景 - 探险阅读 - 已命名书签 - 实时聊天 - 直播 - 打闪 - NWC 请求 - NWC 响应 - 私下打闪 - 打闪请求 - 博客 - 会议室 - 房间状态 - 会议空间 - 个人资料 - 静音列表 - Nostr 连接 - DVM 状态 - DVM 内容请求 - DVM 内容响应 - DVM 用户请求 - DVM 用户响应 - 人员列表 - 图片 - 锻炼 - 置顶 - 打闪投票 - 投票 - 投票响应 - NIP-04 私信 - 私密中继 - 代理中继 - 公开消息 - 回应 - 名片 - 中继认证 - 中继发现 - 中继监视器公告 - 中继集合 - 举报 - 转发 - 用户删除 - 密封信息 - 搜索中继 - 用户状态 - 笔记 - 编辑 - 种子 - 种子注释 - 可信中继 - 可信的提供商 - 视频 (回复) - 短篇 (回复) - 视频 - 短篇 - 语音消息 - 语音回复 - 唤醒 - 网络书签 - 维基 - %1$d%% 运行时间 - Namecoin 设置 - %d毫秒 - 中继同步 - 比特币资源管理器 (OTS) - 来自您的事件 - 给您的事件 - 可搜索的事件 - 私信 - 个人资料 - 发件箱列表 - %1$s 前活跃 - 上次见于 %1$s (%2$s 之前) - 刚见到 - 从未见过 - - %1$d 分钟 - - - %1$d 小时 - - - %1$d 天 - - - %1$d 周 - - - %1$d 个月 - - - %1$d 年 - - - %1$d 铸币厂 - - - %1$d 张待处理发票 - - - 您不使用的 %1$d 座铸币厂中持有的资金 - - 移动了 %1$s sat 到 %2$s。 - 投射到设备 - 停止投影 - HLS 上传 - 正在上传 %1$s (%3$d 中的 %2$d) - 证明 - 证明请求 - 证明人建议 - 证明人熟练度 - 网络书签 - 添加网络书签 - 编辑网络书签 - 设定目标为 %2$s sats,筹集到 %1$s - 新目标 - 请求消失 - 消失请求已发送 - 消失历史记录 - 用户 - 事件 - 类型 - IP地址 - 设置 - 建议文本改进 - 使用设备上的 AI 模型来提出文本更正和音调更改。 - 已跟踪的广播 - 在发送事件时使用已跟踪的广播。在广播时显示实时进度和每个中继的状态。 - 推荐要分享的锻炼 - 从 Health Connect (Shamsung Health, Google Fit, Fitbit, Garmin…)读取完成的锻炼,并建议将其作为帖子分享。 只有当您连接时才请求权限。 - 撰写设置 - 自动创建草稿 - 当您输入或在编辑器中有未发送的文本时自动保存草稿事件并发送到您的私人发件箱中继。 - 新的表情包 - 编辑表情包 - 我的表情包 - 表情 - 公开表情符号对所有人可见;当此表情包位于您的表情符号列表中时,它们会显示在您的“反应”菜单及“:”自动补全选择器中。 - 私密表情符号被加密存储在中继上,只对您可见。它们就像公开表情符号一样出现在回应菜单和 \":\" 自动完成中。 - 草稿为 %1$d 字节;这个社区将此类内容大小限制为 %2$d 字节。 - 草稿为 %1$d 字节;这个社区将事件大小限制为 %2$d 字节。 - 您今天已经发布了 %1$d 个此类事件 (限制 %2$d)。 - Nowhere 站点 - Nowhere 事件 - Nowhere 筹款人 - Nowhere 商店 - Nowhere 申请 - Nowhere 消息 - Nowhere 艺术 - Nowhere 论坛 - - %1$d 条消息 - - - %1$d 位成员 - - 群信息已更新 - 更新失败: %1$s - 创建群失败: %1$s - 退群失败: %1$s - 正在添加 %1$s… - 添加 %1$s失败: %2$s - 未知错误 - 成员已移除 - 移除成员失败: %1$s - 已授予管理员权限 - 授予管理员权限失败: %1$s - 已撤销管理员权限 - 撤销管理员失败: %1$s - 不是此群的成员 %1$s 的接收者闪电服务不可用。它是根据雷电地址\"%2$s\"计算的。 错误: %3$s。请检查服务器是否已经上线,闪电地址是否正确 无法解析 %1$s。请检查你是否已连接,服务器是否启动,以及闪电地址 %2$s 是否正确。\n\n异常为:%3$s 从 %1$s 的闪电发票获取解析JSON 发生错误。请检查用户的闪电设置 diff --git a/amethyst/src/main/res/values-zh-rTW/strings.xml b/amethyst/src/main/res/values-zh-rTW/strings.xml index 3c13261a60..be80391747 100644 --- a/amethyst/src/main/res/values-zh-rTW/strings.xml +++ b/amethyst/src/main/res/values-zh-rTW/strings.xml @@ -1,113 +1,12 @@ - - 此貼文含有超過 %1$d 個主題標籤 - - - 已捆綁 %1$d 個資源 - - - +%1$d\n則回覆 - - 垃圾郵件 - 來自該中繼的垃圾事件數量 - 冒充 - 非法行為 - 請求刪除 - 你正在使用公鑰,公鑰是只讀的。使用私鑰登錄以便回覆 - 你正在使用公鑰,公鑰是只讀的。使用私鑰登錄以便提升貼文 - 使用私鑰登錄以便點贊貼文 - 沒有設置打閃金額。長按以更改 - 你正在使用公鑰,公鑰是只讀的。使用私鑰登錄以便發送打閃 - 你正在使用公鑰,公鑰是只讀的。使用私鑰登錄以便關注 - 你正在使用公鑰,公鑰是只讀的。使用私鑰登錄以便取關 - 你正在使用公鑰,公鑰是只讀的。使用私鑰登錄以便能夠隱藏單詞或句子 - 你正在使用公鑰,公鑰是只讀的。使用私鑰登錄以便能夠顯示單詞或句子 - 您正在使用公鑰,公鑰為唯讀模式。請使用私鑰登入以便上傳 - 您正在使用公鑰,公鑰為唯讀模式。請使用私鑰登入以便簽署事件 - 未授權的解密 - 簽署器未授權執行此操作所需的解密。請在您的簽署器應用程式中啟用 NIP-44 解密後再試一次 - 找不到簽署器 - 簽署器應用程式是否已被解除安裝?請確認簽署器已安裝且包含此帳號。若簽署器應用程式已更換,請先登出再重新登入。 - 外部簽署器回傳了與請求不符的酬載。Amethyst 或簽署器可能存在錯誤。 - 打閃 - 提升 已提升 編輯 #%1$s - 提議編輯 - 添加 - 錯誤解析錯誤消息 - 個人檔案 - 安全過濾器 - 正在請求發票… - 扣款服務未完成付款。 - 透過 %2$s 支付 %1$s? - 透過 %1$s 支付此發票? - 請輸入有效的 offer 金額。 - 單次 - 每日 - 每週 - 每月 - 付款 - 正在透過 %1$s 付款… - 付款失敗 - 可支付給此收款方:%1$s sats - 交易:%1$s - "預覽 %1$s 卡片圖片" - 描述 - 你在想什麼? - 撰寫訊息… - 發佈 保存 - 傳送 - 創建 重新命名 - 取消 - 錯誤 - 錯誤 - 成功連線至 relay 的百分比 - 儲存至手機 - 圖片已保存到相冊 - 影片下載已開始… - 媒體下載已開始… - 釘選至頂部 - 取消釘選 - 保存圖片失敗 - 影片已儲存至手機的影片相簿 - 儲存影片失敗 - PDF 已儲存至 Downloads/Amethyst - 儲存 PDF 失敗 - 此裝置上找不到相機應用程式 - 按住以錄製訊息 - 上傳錯誤 - 語音訊息上傳失敗 - NIP-95 尚不支援語音訊息 - 語音上傳失敗:%1$s - 無 - 低沉 - 高亢 - 中性 - 用户尚未設置閃電地址以接收聰 - "回覆這裡.." - 已准 - 新請求 - 已隱藏用户 - 新動態 - 會話 - 更多選項 - 顯示私鑰 QR 碼 - 顯示加密私鑰 QR 碼 - 關注 - 回關 - 隱藏密碼 - 無效密鑰 - 無效的密鑰:%1$s - 密碼必填 - 需要密鑰 - 名稱為必填 @@ -116,153 +15,7 @@ 新的聊天個人資料: - 離開 - 取關 - 閱後即焚聊天 - Relay 聊天 - Relay 聊天室 - Relay 聊天室是由其所屬 relay 管控的聊天群組。 - 所有 Nostr 使用者均可看見,任何人皆可參與。 - 非常適合圍繞特定主題的開放社群。部分群組為臨時性質, - 因此聊天訊息會隨時間消失 - 公共聊天 - MLS 群組 - 公開聊天室元資料 - 公開聊天室對所有 Nostr 使用者可見, - 任何人皆可參與。非常適合圍繞特定主題的開放社群。 - 可透過在其 relay 上刪除貼文來進行內容管理 - Relay - 請輸入 1–3 個託管此群組的 relay。 - Nostr 客戶端使用此設定來確認下載訊息及傳送訊息的位置。 - 移除 - 從不 - 現在 - 小時 - 分 - 天 - 裸體 - 不文雅的言辭 / 敵意言論 - 備份密鑰 - 私鑰加密失敗 - 私人密鑰(nsec)已複製到剪貼板 - 複製我的私人密鑰 - 身份驗證失敗 - 生物計未能驗證此手機的所有者 - 生物計未能驗證此手機的所有者。錯誤:%1$s - 文本已複製到剪貼板 - 複製作者的 @npub 到剪貼板 - 複製文章ID (@note1) 到剪貼板 - "<無法解密私人消息>\n\n你被 %1$s 和 %2$s 之間的私人/加密對話引用。" - 帳戶 - 導覽 - 您 - 動態 - 建立 - 系統 - 返回 - 分享瀏覽網址 - 分享 - 以圖片分享 - 以圖片網址分享 - 貼文 ID - 刪除 - 靜音討論串 - 取消靜音討論串 - - 屏蔽 - 書籤 - 書籤遷移成功 - 草稿 - 已排程貼文 - 排程貼文 - 取消排程 - 排程貼文可能要等到您下次重新開啟應用程式時才會發布。請在「設定 → 介面偏好設定」中啟用常駐模式,以確保背景排程可靠運作。 - 排程貼文可能要等到您重新開啟應用程式時才會發布。當此帳號處於活躍狀態時,其他帳號的排程貼文不會觸發。請在「設定 → 介面偏好設定」中啟用常駐模式,以確保背景排程可靠運作。 - %1$s · %2$s 後 - %1$s · %2$s 前 - 明天 - 已登出 - - 已登出 · 已刪除 %d 則排程貼文 - - 排程貼文已發布 - 排程貼文失敗 - 排程貼文 - 當排程貼文發佈或發佈失敗時發送通知。 - 立即傳送 - 錯誤:%1$s - 已排程 - 傳送中… - 失敗 - 已傳送 - 已取消 - - 您有 %d 則排程貼文尚未發佈。登出將永久刪除它們。 - - - %d 個排隊中 - - - · %d 個將在 1 小時內發佈 - - - 發送至 %d 個 relay - - 筆記 ID 已複製 - 投票 - 開放中 - 已結束 - 徽章 - 社群 - 新社群 - 編輯社群 - 版主 - Relay - 可驗證規則(選填) - 允許的事件類型 - 短文(1) - 長篇文章(30023) - 圖片貼文(20) - 影片貼文(21) - 短影片(22) - 社群留言(1111) - 被封禁的使用者 - 信任網路閘門(選填) - 全域最大事件大小(選填) - 新徽章 - 頒發徽章 - 個人檔案徽章 - 圖片 - 運動記錄 - 新運動記錄 - 跑步 - 步行 - 騎自行車 - 健行 - 游泳 - 划船 - 重量訓練 - 瑜伽 - 冥想 - 飲食 - 禁食 - 循環訓練 - 應用程式 應用程式 - 瀏覽器 - 正透過 Tor 載入。點擊以使用開放網路。 - 正透過開放網路載入。點擊以使用 Tor。 - 我的最愛 - 我的最愛應用程式 - 加入我的最愛 - 從我的最愛移除 - 透過 Tor 載入。 - 透過開放網路載入。 - 已發佈至 relay - 已上傳檔案 - 已完成付款 - 該應用程式尚未載入。請稍後再試。 - 最近 nApplet 權限 尚無 nApplet 權限 您授予 nApplets 的權限將顯示於此。 @@ -271,45 +24,11 @@ 撤銷 - 身份識別 - 鍵盤操作 - Relay - 儲存空間 - 付款 - 網路 - 上傳 查詢可用的功能 - 讀取您的公鑰 - 綁定鍵盤快捷鍵 - 讀取、簽署並發佈您的事件 - 其自有的私人儲存空間 - 支付 Lightning 發票 - 擷取網路及 Blossom 資源 - 上傳檔案至您的媒體伺服器 - 佈景主題 - 通知 - 訊息傳遞 - 配合您應用程式的色彩 - 向您顯示通知 - 與其他 nApplet 交換訊息 功能:%1$s - 此 nApplet 想要讀取您的公鑰。 - 此 nApplet 想要讀取您的個人資料及帳號資料。 - 此 nApplet 想要以您的身份簽署並發布 kind %1$d 事件。 - 此 nApplet 想要以您的身份簽署並發布 kind %1$d 事件: - 此 nApplet 想要以您的身份傳送加密事件。 - 此 nApplet 想要從您的 relay 讀取事件。 - 此 nApplet 想要使用其私有儲存空間。 此 nApplet 想要支付一筆 Lightning 發票。 - 此 nApplet 想要擷取一個網路資源。 - 此 nApplet 想要上傳檔案至您的媒體伺服器。 - 此 nApplet 想要向您顯示通知。 - 此網站想要以您的 Nostr 金鑰簽署 kind %1$d 事件。 - - 此 nApplet 想要支付一筆 %1$d sats 的 Lightning 發票。 - - 短片 - 公開聊天室 - 追蹤包 - 直播 - 舉手 - 放下手 - 靜音 - 取消靜音 - 無法傳送訊息 - 靜音麥克風 - 取消麥克風靜音 - 在房間開啟期間保持音訊播放。 - Nest 已連線 - Nest — 直播中 - 點擊以返回。 - 停止 - 舉起了手 - 走上了舞台 - 正在發言 - 以聽眾身份加入 - 離開了 nest - 離開 - 無法將房間標記為已關閉。仍將離開——房間將自動關閉。 - - %1$d 位聽眾 - - 本地靜音此講者 - 恢復此講者 - 追蹤 - 取消追蹤 - 靜音 - 取消靜音 - 無法儲存您的 nest 伺服器列表。請再試一次。 - Nest 伺服器 - 您的伺服器 - 儲存為 kind:10112 可替換事件,讓其他客戶端可以讀取您的偏好設定。 - 推薦伺服器 - 內建建議,只需點擊一下即可新增至您的列表。 - 影片 - 音樂 - 播放清單 - 集數 - Podcast - - %1$d 集 - - 新增音樂曲目 - 新增播放清單 - - %1$d 首曲目 - - 添加到公開書籤 - 從公開書籤移除 - 置頂到個人資料 - 從個人資料取消置頂 - 新增書籤清單 - 書籤清單中繼資料 - 主題標籤集 - 新增興趣集 - 重新命名 - 設為私密:將筆記以禮物包裝方式傳送給被通知的使用者 - 設為公開 - 回覆私密筆記將永遠保持私密 - 可見對象 尚無接收者:只有您能看到此筆記。新增人員以分享給他們。 新增 從通知中移除使用者 搜尋並新增要通知的使用者 - 書籤清單的中繼資料可被 Nostr 上的任何人看到。只有您的私密成員是加密的。 - 移至公開 - 移至私密 - 充值並傳送 zap - 傳送 zap - 充值 %1$s sats 至 %2$s 並 zap %3$s %4$s sats · 手續費約 %5$s sats - 選項 %s - (0–100)% - 單選 - 多選 - 無法投票 - 該投票已結束 - 這種投票只允許每個用戶一票 - 投票作者不能在自己的投票中投票。 - 這是什麼意思? - 此內容與發佈時相同 - 此內容已更改。作者可能沒有看到或批准更改 - 新增媒體 - 添加圖像 - 添加視頻 - 添加文件 - 文檔服務器 - 選擇要上傳此檔案的伺服器 - 媒體服務器 設置首選媒體上傳服務器 推薦媒體伺服器 Amethyst 的默認列表。可單獨添加或添加整個列表。 - 付款目標 - 為不同網路新增付款地址(例如:bitcoin、lightning、ethereum)。 - 找不到可處理此付款的應用程式。請安裝相容的錢包。 - 未安裝可處理 %1$s 付款的應用程式。請安裝相容的錢包。 - 無法開啟付款 - 隱私選項 - 所有關注 - 所有使用者關注 - 預設關注清單 - 我的周圍 - 全球 - 精選 - 我的 - 靜音列表 - 新增關注清單 - 新增關注包 - 編輯清單 - 預設連接埠為 9050 - Orbot Socks 端口 - 啟用 Tor 引擎 - 使用內建版本或 Orbot - Tor/隱私預設 - 快速修改下方所有設定 - 洋蔥網址/relay - 對任何 .onion 網址使用 Tor - DM relay - 強制使用 Tor 傳送和接收私訊 - 不受信任的 relay - 對發件箱/收件箱 relay 強制使用 Tor - 受信任的 relay - 對您清單中的所有 relay 強制使用 Tor - 個人資料圖片 - 載入個人資料圖片時強制使用 Tor - URL 預覽 - 載入 URL 預覽時強制使用 Tor - 圖片 - 載入圖片時強制使用 Tor - 影片 - 載入影片時強制使用 Tor - 金融操作 - 對 zap、Lightning 和 cashu 轉帳強制使用 Tor - Nostr 地址驗證 - 驗證 NIP-05 地址時強制使用 Tor - 媒體上傳 - 上傳內容時強制使用 Tor - 內建 - 關閉 - 基本 - 預設 - 除媒體外全部 - 完全隱私 - 自訂 - 在伺服器要求時使用 Tor - 對隨機 relay 隱藏您的 IP - 對所有內容隱藏您的 IP,但圖片和影片除外 - 隱藏所有連線中的 IP 位址 - 自訂設定 - 私信 - 受到私信時通知你 - 收到打閃 - 收到打閃時通知你 - %1$s聰 - 來自%1$s - 為 %1$s - 回覆 - 標記為已讀 - 新訊息 - 新的 zaps - 回應 - 當有人對您的貼文做出回應時通知您 - %1$s 對您的貼文做出回應 - 為了 %1$s - 新回應 - 西洋棋 - 通知您西洋棋對局事件 - %1$s 接受了您的西洋棋對局邀請 - %1$s 已落子——輪到您了 - 西洋棋更新 - 回覆 - 當有人回覆您的貼文時通知您 %1$s 已回覆 關於:%1$s - 新回覆 - 提及 - 當有人在貼文中提及或引用您時通知您 - %1$s 提及了您 - 新提及 @@ -534,35 +80,6 @@ - 來電 - 語音及視訊通話來電通知 - 來電 - 語音來電… - 視訊來電… - 與 %1$s 通話 - 通話 - 進行中的通話通知 - 掛斷 - 接聽 - 拒絕 - 靜音 - 取消靜音 - 開啟攝影機 - 關閉攝影機 - 擴音器 - 聽筒 - 藍牙 - Amethyst 需要麥克風存取權限才能發起語音通話。請在應用程式設定中啟用。 - Amethyst 需要攝影機及麥克風存取權限才能發起視訊通話。請在應用程式設定中啟用。 - 通話設定 - 保持與收件匣 relay 的連線,以接收即時通知 - Amethyst 通知已啟用 - - 已連接至 %1$d 個收件匣 relay - - - 已連接至 %1$d 個 relay - - 正在連接收件匣 relay… 常駐通知服務 與收件匣 relay 保持持久連線,以確保即時傳遞通知。會顯示持續性通知,耗電量較高,但可確保您不會錯過任何訊息。 - 依追蹤對象分割通知 - 顯示兩個通知分頁——「追蹤中」(您追蹤的人)及「所有人」。未讀指示器僅在追蹤對象有動態時亮起。 - 顯示訊息 - 在通知分頁中包含私訊及群組訊息。關閉後,訊息將只出現在訊息分頁中。 - 通知: - 今天 - 隱藏 - 顯示 - 警告 - 過濾垃圾訊息 - 隱藏陌生人發送的相同內容達 5 次或以上的貼文 - 在我的事件中新增客戶端標籤 - 啟用後,Amethyst 會在您發布的事件中附加 NIP-89 客戶端標籤。 - 舉報警告 - 當貼文或個人資料遭您的追蹤對象舉報時顯示警告訊息 - 隱藏違反社群規則的貼文 - 當社群發布 NIP-9B 規則文件時,從社群動態中移除不符合規則的貼文。若社群沒有結構化規則則無效。 - 過濾偏好設定 - 已封鎖的內容 - 您尚未封鎖任何使用者。 - 此工作階段中尚未將任何帳號標記為垃圾訊息。 - 沒有隱藏的詞彙。在下方新增詞彙以隱藏包含該詞彙的貼文。 - 未選擇回應類型。長按可更改 - 從中繼器讀取 - 寫入到中繼器 - 發送到此中繼的數據量,包括過濾和事件 - 從此中繼接收的數據量,包括過濾和事件 - 隱私政策 - 兒童安全標準 - 關於與法律 - Cashu 代幣 - 未設定閃電地址 - 中繼器 - 追蹤包 - 閱讀 - 動態演算法 - 市場 - 直播 - 社群 - 聊天 - 敏感內容 - 在顯示此內容之前添加敏感內容警告 - UI 偏好設定 應用程式偏好設定 - 翻譯 - 回應 - 設置 - 帳號設定 - 應用程式設定 - 危險區域 - 重置 Marmot 狀態 - Marmot 狀態已重置。 - 重置 Marmot 狀態失敗:%1$s - 始終 - 未計量的 WiFi - 永不 - 完整版 - 簡化版 - 效能 - 經典 - 現代 - 系統 - 淺色 - 深色 - 主題 - 圖像預覽 - 視頻播放 - 自動播放影片 - 鏈接預覽 - 沉浸式捲動 - 捲動時隱藏導航欄 - 界面模式 - 選擇帖子樣式 - 個人資料相簿樣式 - 選擇相簿樣式 - 垃圾郵件 - 靜音。點擊取消靜音 - 聲音開啟。點擊靜音 - 倒退 %d 秒 - 快進 %d 秒 - 僅限特定位置的貼文 - 只有關注該地點的人才會看到此內容。您的一般追蹤者不會看到。 - - %1$d 首曲目 - - - 再 +%1$d 首 - - 上傳封面圖片 - 請選取正方形圖片作為此曲目的封面。 - 上傳音訊檔案 - 請選取 MP3、WAV 或 FLAC 檔案。儲存時將上傳至您的媒體伺服器。 - 正在上傳封面和音訊並發布。即使您離開此畫面,上傳仍將繼續。 - 編輯播放清單 - 上傳封面圖片 - 請選取正方形圖片作為此播放清單的封面。 - 正在上傳封面並發布。即使您離開此畫面,上傳仍將繼續。 公開 群組 私人 - 主題 - 無法上傳 - 請先填寫訊息的目標地址 - 找不到錢包 - Amethyst 找不到任何支援 Nostr Wallet Connect (NWC) 的錢包應用程式。\n\n您可以這樣做:\n\t1. 確認 NWC 支援:請再次確認您偏好的錢包應用程式是否與 Nostr Wallet Connect 相容。\n\t2. 建立連線:前往您的錢包應用程式並建立新的 NWC 連線。\n\t3. 連結至 Amethyst:您的錢包通常會提供三種選項:\n\t\t3.1 自動連結:點擊按鈕自動開啟並連接到 Amethyst。若有此選項,請點擊該按鈕,開啟 Amethyst 並在新畫面上點擊儲存。\n\t\t3.2 手動連結:複製連線 URI,然後點擊此畫面上的貼上圖示直接輸入。\n\t\t3.3 QR 碼:錢包會產生 QR 碼,您可透過此畫面上的 QR 碼按鈕掃描。\n - 暗色、亮色或系統主題 - 自動加載圖像和 GIF - 自動播放視頻和 GIF - 在畫面上顯示時自動播放影片 - 顯示鏈接預覽 - 複製至剪貼簿 - 已複製到剪貼簿 - 分享或保存 以私訊傳送 - 媒體已新增 - 媒體已新增至您的個人資料相簿 - 無法發送打閃 - 閃電設置缺失 - 用户 %1$s 尚未設置接收聰的閃電地址 - 打開簽署程式時出錯 - 找不到簽名應用。檢查應用是否已被預載。 - 無法播放此影片 - 此裝置不支援該編解碼器或格式(%1$s)。請嘗試在瀏覽器中開啟。 - 在瀏覽器中開啟 - 簽名請求已被拒絕 - 請確保簽名應用程式已授權此交易 - 找不到支付閃電發票的錢包(錯誤:%1$s)。請安裝一個閃電錢包來使用打閃 - 找不到支付閃電發票的錢包。請安裝一個閃電錢包來使用打閃 - 無法開啟 Blossom 連結 - 找不到 Blossom 應用程式。請安裝本地 Blossom 應用程式以查看此檔案 - 隱藏單詞 - 已靜音的討論串 - 沒有已靜音的討論串 - 頭像 - 顯示頭像圖片 - 無法支付發票 - 無法提款 - 無法兌換 Cashu - 鑄幣廠提供了以下錯誤消息:%1$s - 已收到 Cashu - %1$s 聰已被發送到你的錢包。(費用:%2$s 聰) - 系統上沒有找到兼容的 Cashu 錢包 - 無法從接收方的伺服器獲取發票 - 你的錢包連接提供者返回了以下錯誤:%1$s - 無法從閃電地址集合 LNURL “%1$s”。請檢查用戶設置 - 無法從 %1$s 取得發票:%2$s - 從 %1$s 解析 JSON 發生錯誤。請檢查用戶的閃電設置 - 從 %1$s 的響應中找不到回調 URL - 來自 %2$s 的錯誤的發票金額(%1$s 聰)。應該是 %3$s - 無法在發送打閃前創建閃電發票。接收者閃電錢包發送了以下錯誤:%1$s - 只讀用戶 - 沒有設置回應 - 通知 - 傳送 - 應用程式內顯示 - 類別 - 來自 %1$s 的消息 - 嗨,%1$s,這個還能買到嗎? - 服装 - 配件 - 電子 - 家具 - 收藏 - 書籍 - 寵物 - 運動 - 健身 - 藝術 - 工藝 - 住家 - 辦公 - 食品 - 雜項 - 其它 - 上傳媒體失敗 - 無法打開壓縮文件 - 上傳錯誤:%1$s - 上傳後伺服器沒有提供 URL - 無法從伺服器下載上傳的媒體 - 上傳後無法檢查已下載的檔案:%1$s - 上傳至 %1$s 失敗:%2$s - 刪除失敗:%1$s - 媒體檔案對 NIP-95 而言太大 - 加密檔案 - 上傳前加密檔案以保護隱私。部分伺服器可能不接受免費帳號上傳加密檔案。 - 加密上傳失敗 - 許多伺服器不接受免費帳號上傳加密檔案。您可以嘗試不加密重試。 - 使用 H.265/HEVC 編解碼器 - 在較小的檔案大小下提供更好的品質,但並非所有裝置都支援 H.265 播放。 - 將 GIF 轉換為 MP4 - 將動態 GIF 轉換為 MP4 影片,以縮小檔案大小並提高播放相容性。 - 移除私人中繼資料 - 嘗試在上傳前從支援的媒體檔案中移除私人中繼資料 - 無法移除中繼資料 - 無法從媒體中移除私人中繼資料。上傳已取消。 - 上傳已取消 - 無法從 AVIF 移除中繼資料:%1$s - 主頁 - 發現 - 訊息 - 通知 - 日曆 - 日曆清單 - 西洋棋 - 錢包 - Cashu 錢包(NIP-60) Nutzap 金鑰(進階) 僅用於接收 NIP-61 nutzap 的獨立私鑰。不是您的 Nostr 身分金鑰。 產生新金鑰 P2PK 私鑰(十六進位) - 編輯 mints 儲存變更 - - 再 +%1$d 個 - - - 另有 %1$d 人推薦 - - 熱門 mints - 符合的 mints - 已接收 - 已傳送 - 發布刪除請求以撤回您對 %1$s 的 kind:38000 推薦。遵守 NIP-09 的 relay 將會刪除它。 - 已從 %2$s 個憑證中恢復 %1$s sats。 - 支付 %1$s sat,手續費最高 %2$s sat? - Nutzap 失敗 - 此貼文沒有收款人公鑰 - Nutzap 是公開的,會洩露此私密貼文。請改用 Lightning zap。 - 無法建立事件參考 - 等待發票付款… - 正在檢查 mint… - 慢速 - 一般 - 快速 - 約 1 小時 - 約 30 分鐘 - 約 10 分鐘 - - 傳送 %1$s sats,%2$d 方式 - - - 使用此貼文的 %1$d 向 zap 分配 - - - 在 %1$d 位收款人之間分配 - - - 略過 %1$d 位僅有 Lightning 地址的收款人——鏈上交易需要 Nostr 公鑰才能推導地址。 - - 正在載入餘額 - 正在建立交易 - 正在簽署 - 正在廣播 - 正在發布收據 - 比特幣鏈後端未設定 - 無法載入您的比特幣餘額 - 無法建立交易 - 某位收款人的份額低於塵埃限額 - 無法簽署交易 - 無法廣播交易 - 付款已傳送,但 zap 收據無法發布 - - 付款已傳送(已發布 %2$d 份收據中的 %1$d 份),但下一份收據無法發布 - - 匯入追蹤名單 - 新商品 - 新文章 - 新行事曆活動 - 編輯行事曆活動 - 新行事曆 - 編輯行事曆 - 動態 - 月 - 週 - 日 - - %1$s,%2$d 個活動 - - 正在進行中 - %1$s · 結束於 %2$s - 分享行事曆活動 - 行事曆提醒 - 當您出席的活動即將開始時發出提醒。 - 行事曆活動 - - %1$d 分鐘後開始 - - 圖片上傳失敗 - 所選圖片無法上傳。請再試一次或貼上 URL。 - 行事曆提醒 - 傳送提醒 - 當您出席的活動即將開始時發出通知。 - - %1$d 分鐘 - - 在地圖中開啟 - 開啟連結 - 展開所有對此帖子的回應 - 收起所有對此帖子的回應 - 打閃 - 底部導覽列 拖曳以重新排序。切換以新增或移除底部列項目。項目數為零時底部列將隱藏。 重新排序 選擇首頁顯示的分頁。只有一個分頁啟用時,分頁列將隱藏。 - 全部 - 個人資料介面 選擇使用者個人資料頁面顯示的區塊和動態。預設啟用全部選項。 - 個人資料徽章 - 應用程式推薦 - 收到的 Zap 動態 - 追蹤者動態 - 反應列 - 影片播放器按鈕 - 音訊視覺化 - 到期日 - 地址無效 - Amethyst 收到了要打開的 URI,但該 URI 無效:%1$s - 私信收件匣中繼 - 搜索中繼器 - 不錯的選擇是:\n%1$s - 發件匣 Relay - 收件匣 Relay - 中繼器設置 - 公開主頁中繼 - 使用者正在將其內容發佈至這些 relay - 這種中繼將保存所有你的內容。Amethyst 會將你的帖子發送到此處,而他人則將使用這些中繼查找你的內容。輸入 1–3 個中繼。它們可以是個人中繼、付費中繼或公開中繼。 - 公開收件匣中繼 - 使用者正在這些 relay 上接收通知 - 這種中繼接收所有對你的帖子的回覆、評論、點贊和打閃。輸入 1–3 個中繼並確認它們接收來自任何人的事件。 - 私信收件匣中繼 - 使用者在這些 relay 上接收私訊 - 輸入 1–3 個中繼作爲你的私人收件匣。他人將使用這些中繼向你發送私信。私信收件匣中繼應該接受來自任何人的訊息,但只允許你下載它們。不錯的選擇是:\n - inbox.nostr.wine (付費)\n - you.nostr1.com (私人中繼 - 付費) - KeyPackage Relay - 您的 MLS KeyPackages 發佈所在的 relay(MIP-00)。其他用戶透過這些 KeyPackages 邀請您加入 Marmot 群組聊天。請輸入 1–3 個接受您 KeyPackage 事件且允許公開讀取的 relay。 - 私人中繼 - 輸入 1–3 個中繼用於存儲別人看不到的事件,例如你的草稿和/或應用設置。理想情況下,這些中繼要么是本地的,要么需要在下載每個用戶的內容之前進行驗證。 - 已連線的 Relay - 目前使用中的 relay 清單 - 搜索中繼器 - 搜尋內容或用戶時使用的中繼列表。如果沒有可用選項,標記和搜索將無法運作。確保他們實施 NIP-50。 - 本地中繼器 - 在該設備上運行的中繼器列表。 - 轉發個人資料至本地 relay - 將所有收到的個人資料(kind 0)事件傳送至您的本地 relay - 受信任的 Relay - 您信任且不需要 Tor 連線的 relay - 我的最愛 Relay 動態 - 您常前往查看全球動態的 relay - 代理 Relay - 應用程式必須用來下載您的動態的聚合器 relay,例如 filter.nostr.wine。這將取代發件匣模式,使應用程式僅連線至您清單中的 relay。 - 廣播 Relay - 專門將您的貼文推送至所有其他 relay 的 relay,例如 sendit.nosflare.com。Amethyst 會將此 relay 加入您發出的所有新事件中。 - 索引 Relay - 專門儲存所有人的元數據和 relay 清單的 relay,例如 purplepag.es。Amethyst 將使用這些 relay 尋找不在您清單中的用戶。 - 封鎖的 Relay - Amethyst 永遠不會連線至這些 relay - 匯出 relay 設定 網址 概覽 關於 連結 維護者 主題 - 時間戳證明 - 有在 %1$s 之前的某個時間簽署了此帖子的證明。此證明是在那個日期和時間在比特幣區塊鏈中記錄的時間戳。 - 編輯帖子 - 無法回覆筆記草稿 - 無法引用筆記草稿 - 無法回應筆記草稿 - 無法打閃筆記草稿 - 筆記草稿 - 錯誤請求 - 伺服器無法或拒絕處理此請求。 - 未授權 - 使用者沒有有效的身份驗證憑證 - 需要付款 - 伺服器需要付款才能完成請求 - 禁止存取 - 使用者沒有發出此請求的存取權限 - 找不到 - 伺服器找不到請求的位址 - 方法不允許 - 伺服器支援此請求方法,但不支援目標資源 - 不可接受 - 伺服器找不到符合請求的內容。 - 需要代理身份驗證 - 使用者沒有有效的身份驗證憑證 - 請求逾時 - 伺服器等待其他方回應時逾時 - 衝突 - 伺服器因資源衝突而無法完成請求 - 已消失 - 請求的內容已從伺服器永久刪除且不會恢復 - 需要內容長度 - 伺服器拒絕請求,因為請求需要定義長度 - 前提條件失敗 - 伺服器未能滿足請求標頭欄位中的前提條件 - 內容過大 - 請求超過伺服器定義的限制,伺服器拒絕處理 - URI 過長 - 用戶端請求的 URL 過長,伺服器無法處理。 - 不支援的媒體類型 - 請求使用了伺服器不支援的媒體格式 - 範圍無法滿足 - 伺服器無法滿足請求 Range 標頭欄位中指定的值。 - 預期失敗 - 伺服器無法滿足 Expect 請求標頭欄位的要求 - 需要升級 - 除非用戶端升級至不同協議,否則伺服器拒絕使用當前協議處理請求。 - 內部伺服器錯誤 - 伺服器遇到意外錯誤,無法完成請求 - 未實作 - 伺服器無法完成請求或無法識別請求方法 - 錯誤閘道 - 伺服器作為閘道並從主機收到無效回應 - 服務無法使用 - 通常發生在伺服器過載或正在維護時 - 閘道逾時 - 伺服器作為閘道或代理時,等待回應時逾時 - 不支援的 HTTP 版本 - 伺服器不支援請求中的 HTTP 版本 - 變體也在協商 - 伺服器存在內部設定錯誤 - 儲存空間不足 - 伺服器沒有足夠的儲存空間來成功處理請求 - 偵測到迴圈 - 伺服器在處理請求時偵測到無限迴圈 - 需要網路身份驗證 - 用戶端必須先通過身份驗證才能存取網路 Blossom 伺服器 可新增任意數量的伺服器。上傳圖片時可選擇要使用的伺服器。 - 添加 NIP-96 服務器 - 新增 Blossom 伺服器 下載 - 開啟檔案失敗 - 未安裝任何 torrent 應用程式來開啟並下載此檔案。 - 事件沒有足夠的資訊來建立磁力連結 - 我的清單 - 動態 - 主題標籤 - 興趣集合 - 位置 - 社群 - 清單 - 動態演算法 - 所有我的最愛動態演算法 - Relay - 我的最愛動態演算法 - 私人訊息 - 公開訊息 - 無法分享圖片,請稍後再試… - 無法分享影片,請稍後再試… - 正在下載影片… - 不翻譯來源語言 - 此處列出的語言將不會被翻譯。選取語言可將其移除,並再次進行翻譯。 - 翻譯為 - 選擇要將內容翻譯成的語言。 - 語言顯示偏好設定 - 針對每個翻譯語言組合,選擇優先顯示的語言。 - 暫停 - 播放 - 此訊息將在 %1$s 後消失 - 追蹤清單元資料 - 追蹤清單的元資料可被 Nostr 上的任何人查看。只有您的私人成員是加密的。 - 追蹤包元資料 - 追蹤包的元資料可被 Nostr 上的任何人查看,並經常作為新用戶的入門套件發布在許多網站上。 - 編輯追蹤包 - 展開 - 重試 - 回應 - 語音貼文 - 語音回覆 - 外送 Relays - 應用程式 - 應用程式推薦 - 用戶設定 - 音訊標頭 - 音訊軌道 - 音樂曲目 - 音樂播放清單 - 播客集數 - 播客節目 - 已創作的播客 - 最愛的播客 - 徽章獎勵 - 徽章定義 - 已接受的徽章集 - 個人資料徽章 - 已封鎖的 Relays - Blossom 伺服器 - Nests 伺服器 - Blossom 驗證 - 廣播 Relays - 書籤清單 - 舊書籤清單 - 當日預約 - 行事曆 - 預約 - 預約回覆 - 棋局遊戲 - 棋局驗證 - 最愛的 Relays - 棋局挑戰 - 棋局接受 - 棋步 - 棋局結束 - 棋局和棋提議 - 頻道定義 - 頻道隱藏訊息 - 頻道清單 - 頻道訊息 - 頻道元資料 - 頻道靜音用戶 - DM 檔案 - DM 訊息 - 分類廣告 - 評論 - 社群定義 - 社群清單 - 社群貼文 - 追蹤清單 - 刪除 - 草稿 - 表情符號包 - 表情符號包清單 - 臨時聊天 - 臨時聊天室 - 檔案標頭 - 個人資料圖庫 - 檔案伺服器 - Blob 資料 - Blob 標頭 - 醫療資料 - 追蹤包 - 轉發(16) - 地理哈希追蹤 - 禮物包裝 - Zap 目標 - 主題標籤追蹤 - 精選 - Http 驗證 - 索引 Relay 清單 - 冒險序章 - 冒險場景 - 冒險閱讀 - 命名書籤 - 直播聊天 - 直播串流 - NWC 請求 - NWC 回應 - 私人 Zaps - Zap 請求 - 部落格 - 會議室 - 房間出席狀態 - 會議空間 - 個人資料 - 靜音清單 - DVM 狀態 - DVM 內容請求 - DVM 內容回應 - DVM 用戶請求 - DVM 用戶回應 - 用戶清單 - 圖片 - 健身紀錄 - 釘選 - Zap 投票 - 投票 - 投票回應 - NIP-04 私訊 - 私人 Relay - 代理 Relay - 公開訊息 - 反應 - 聯絡人名片 - Relay 驗證 - Relay 探索 - Relay 監控公告 - Relay 集合 - 舉報 - 轉貼 - 刪除用戶 - 封蠟印記 - 搜尋 Relay - 用戶狀態 - 筆記 - 編輯 - Torrent 留言 - 信任的 Relay - 信任的提供者 - 影片(Repl) - 短片(Repl) - 影片 - 短片 - 語音訊息 - 語音回覆 - 網頁書籤 - %1$d%% 正常運行時間 - Namecoin 設定 - Relay 同步 - Bitcoin 區塊鏈瀏覽器(OTS) - 來自您的事件 - 發給您的事件 - 可搜尋的事件 - 私訊 - 個人資料 - 發件箱清單 - 上次出現於 %1$s 前 - 上次出現於 %1$s(%2$s 前) - 剛剛出現 - 從未出現 - - %1$d 分鐘 - - - %1$d 小時 - - - %1$d 天 - - - %1$d 週 - - - %1$d 個月 - - - %1$d 年 - - - %1$d 個 mint - - - %1$d 筆待處理發票 - - - 有資金存放在您未使用的 %1$d 個 mint - - 已將 %1$s sat 移至 %2$s。 - 投放至裝置 - 停止投放 - HLS 上傳 - 正在上傳 %1$s(%2$d / %3$d) - 認證 - 認證請求 - 認證者推薦 - 認證者專業能力 - 網頁書籤 - 新增網頁書籤 - 編輯網頁書籤 - %2$s sats 目標中已籌得 %1$s - 新目標 - 申請消除資料 - 消除請求已送出 - 消除記錄 - 使用者 - 事件 - 類型 - IP - 設定 - 建議文字改進 - 使用裝置上的 AI 模型提出文字修正和語氣變更建議。 - 追蹤廣播 - 傳送事件時使用追蹤廣播器。廣播時顯示即時進度和每個 relay 的狀態。 - 建議分享運動紀錄 - 從 Health Connect(Samsung Health、Google Fit、Fitbit、Garmin…)讀取已完成的運動紀錄,並建議以貼文形式分享。只有在您連接時才會請求權限。 - 撰寫設定 - 自動建立草稿 - 當您輸入或離開含有未送出文字的撰寫器時,自動儲存草稿事件並傳送至您的私人發件箱 relay。 - 新增 emoji 包 - 編輯 emoji 包 - 我的 Emoji 包 - Emoji - 公開 emoji 對所有人可見,當此包在您的 emoji 清單中時,會顯示在您的回應選單和「:」自動完成選擇器中。 - 私人 emoji 以加密方式儲存在 relay 上,只有您可以看見。它們與公開 emoji 一樣顯示在您的回應選單和「:」自動完成中。 - 草稿為 %1$d 位元組;此社群將此類型上限設為 %2$d 位元組。 - 草稿為 %1$d 位元組;此社群將事件上限設為 %2$d 位元組。 - 您今天已發布 %1$d 個此類型的事件(上限 %2$d 個)。 - Nowhere 網站 - Nowhere 活動 - Nowhere 募款 - Nowhere 商店 - Nowhere 請願 - Nowhere 訊息 - Nowhere 藝術 - Nowhere 論壇 - - %1$d 則訊息 - - - %1$d 位成員 - - 群組資訊已更新 - 更新失敗:%1$s - 建立群組失敗:%1$s - 離開群組失敗:%1$s - 正在新增 %1$s… - 新增 %1$s 失敗:%2$s - 未知錯誤 - 成員已移除 - 移除成員失敗:%1$s - 管理員權限已授予 - 授予管理員權限失敗:%1$s - 管理員權限已撤銷 - 撤銷管理員權限失敗:%1$s - 非此群組的成員 %1$s 的接收方閃電服務不可用。它是根據閃電地址“%2$s”計算的。錯誤:%3$s。請檢查伺服器是否已上線,閃電地址是否正確 無法解析 %1$s。請檢查你是否已連接,服務器是否啓動,以及閃電地址 %2$s 是否正確。\n\n異常爲:%3$s 從 %1$s 的閃電發票獲取解析 JSON 發生錯誤。請檢查用戶的閃電設置 diff --git a/amethyst/src/main/res/values-zh/strings.xml b/amethyst/src/main/res/values-zh/strings.xml index 72120c25a5..221a68280b 100644 --- a/amethyst/src/main/res/values-zh/strings.xml +++ b/amethyst/src/main/res/values-zh/strings.xml @@ -1,95 +1,9 @@ - 垃圾邮件 - 冒充 - 非法行为 - 请求删除 - 使用私钥登录以便回复 - 使用私钥登录以便提升帖子 - 使用私钥登录以便点赞帖子 - 没有设置Zap金额。长按以更改 - 使用私钥登录以便发送Zaps - Zaps - 提升 已提升 - 添加 - 个人档案 - 安全过滤器 - 付款 - "预览 %1$s 卡片图片" - 描述 - 你在想什么? - 发布 保存 - 创建 - 取消 - 错误 - 图片已保存到相册 - 保存图片失败 - 用户尚未设置闪电地址以接收聪 - "🔏在此回复… " - 私聊 - 新请求 - 已隐藏用户 - 新动态 - 会话 - 更多选项 - 关注 - 隐藏密码 - 无效密钥 - 需要密钥 - 离开 - 取关 - 公共聊天 - 移除 - 从不 - 现在 - 时 - 分 - 天 - 裸露 - 不文雅的言辞 / 敌意言论 - 备份密匙 - 私人密钥(nsec)已复制到剪贴板 - 复制我的私人密钥 - 身份验证失败 - 文本已复制到剪贴板 - 复制作者的 @npub 到剪贴板 - 复制文章ID (@note1) 到剪贴板 - "<无法解密私人消息>\n\n您被%1$s和%2$s之间的私人/加密会话引用。" - 账户 - 返回 - 分享浏览网址 - 分享 - 引用 - 删除 - - - - 仅阻止 - 书签 - 添加到公开书签 - 从公开书签中移除 - - - - 此帖有超过 %1$d 个话题标签 - - - - 捆绑了 %1$d 个资产 - - - - +%1$d\n条回复 - - - - - -来自该中继的垃圾事件数量 @@ -105,53 +19,43 @@ -你正在使用公钥,公钥是只读的。使用私钥登录以便能够关注 -你正在使用公钥,公钥是只读的。使用私钥登录以便能够取消关注 -你正在使用公钥,公钥是只读的。使用私钥登录以便能够隐藏单词或句子 -你正在使用公钥,公钥是只读的。使用私钥登录以便能够显示单词或句子 -您正在使用公钥以只读方式登录,需要使用私钥登录才能上传。 -您正在使用公钥以只读方式登录,需要使用私钥登录才能签署事件。 -未授权的解密 -签名器没有授权解密操作,请在签名器中授予 NIP-44 解密权限并重试。 -未找到签名器 -签名器被卸载?请检查是否已经安装了签名器以及其中是否存在该账户。变更签名器需要注销后重新登录。 -外部签名器对该请求返回了不正常的载荷。这可能是 Amethyst 或签名器上的错误。 + + + + + + + + 编辑 #%1$s -提出修改建议 -解析错误信息时出错 -正在请求发票… -借记服务没有完成付款。 -通过 %2$s 支付 %1$s? -通过 %1$s支付这张发票? -输入此报价的有效金额。 @@ -160,13 +64,9 @@ -一次性 -每日 -每周 -每月 @@ -192,13 +92,11 @@ -正通过 %1$s 付款… -付款失败 @@ -208,10 +106,8 @@ -可为该收款人支付的金额:%1$s sats -交易: %1$s @@ -222,68 +118,10 @@ -写一条消息… -发送 重命名 -错误 - -中继成功连接的百分比 - - - - - - - - -保存到手机 - -视频下载已开始… - -媒体下载已开始… - -置顶 - -取消置顶 - - -视频已保存到媒体库 - -保存视频失败 - -已保存 PDF 到 Downloads/Amethyst - -保存 PDF 失败 - - - - -此设备上没有找到相机应用 - - -点按以录制消息 - - - - -上传出错 - -上传语音消息失败 - -语音消息尚不支持 NIP-95 - -语音上传失败:%1$s - -无 - -深沉 - -高音 - -中性 @@ -293,19 +131,48 @@ -显示私钥二维码 - -显示加密私钥二维码 - -回关 -无效的密钥:%1$s -密码必填 -名称必填 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -324,30 +191,15 @@ 新的聊天资料: -临时聊天 -中继聊天 -中继聊天 -中继聊天是由聊天所属中继控制的聊天群组。 - Nostr 上的每个人都可以看到这些群组,任何人都可以加入群组。 - 这非常适合围绕特定主题而建立的开放社区。其中一些群组是临时的, - 因此聊天信息会随着时间的推移而消失。 -MLS 组 -公开聊天元数据 -公开聊天对所有 Nostr 用户都是可见的,任何人都可以: - 参与这些聊天。这对特定话题建立的开放式社区来说很重要 - 通过删除中继上的帖子实现内容审核控制 -中继器 -使用 1~3 个中继托管这个群组。 - 让 Nostr 客户端知道应该使用这些中继配置来发送和下载消息。 @@ -356,35 +208,23 @@ -私钥加密失败 -生物计未能验证此手机的所有者 -生物计未能验证此手机的所有者。错误:%1$s -导航 -你 -源 -创建 -系统 -以图片方式共享 -以图像地址形式分享 -主题帖静音 -取消主题帖静音 @@ -392,11 +232,8 @@ -书签迁移成功 -草稿 -定时帖子 @@ -405,14 +242,10 @@ -定时帖 -取消时间安排 -下次重新打开应用前可能不会发布定时贴。要获得稳定的后台定时功能在“设置” → “用户界面偏好” 中启用“始终显示”。 -在重新打开应用前可能不会发布定时帖。此账户活跃时,其他账户的定时帖不会发布。要获得稳定的后台定时功能,在“设置” →\"用户界面首选项“ 中开启”始终显示“。 @@ -421,109 +254,61 @@ -%1$s ·在 %2$s -%1$s · %2$s 前 -明天 -已退出登录 - - 已退出登录 删除了 %d 个定时帖 - -发布了定时帖 -未能发布定时帖 -定时帖 -当成功发布了定时帖或未能发布定时帖时发出通知。 -立即发送 -错误:%1$s -已安排时间 -正在发送… -失败 -已发送 -已取消 - - 您有尚未发布的 %d 个定时帖。退出登录将永久删除它们。 - - - %d 个已加入队列 - - - • %d 个于1小时内到期 - - - 到 %d 个中继 - -已复制笔记 ID -投票 -开启 -已关闭 -徽章 -社区 -新建社区 -编辑社区 -协管 -中继 -可验证规则 (可选) -允许的事件类型 -短文本 (1) -长文章(30023) -图片帖子(20) -视频帖子 (21) -短视频(22) -社区评论(1111) @@ -532,23 +317,18 @@ -封禁的用户 -信任网络网关(可选) -全局最大事件大小(可选) -新徽章 -授予徽章 @@ -565,7 +345,6 @@ -个人资料徽章 @@ -589,12 +368,9 @@ -图片 -锻炼 -新锻炼 @@ -621,87 +397,56 @@ -跑步 -步行 -骑行 -远足 -游泳 -划船 -强度 -瑜伽 -冥想 -饮食 -节食 -循环训练 -EMOM -AMRAP -应用 应用 -nApplets - -nSites - - -浏览器 -正通过 Tor 加载。点击使用 open web。 - -正通过 open web 加载 Tor。点击使用 Tor。 -收藏夹 - - - -喜欢的应用 - - -添加至收藏夹 - -从收藏中移除 -通过 Tor 加载。 - -通过 open web 加载。 -已发布到中继 -上传了一个文件 -支付了一笔款项 -该应用尚未加载。稍后再试。 -最近 + + + + + + + + + + + nApplet 权限 @@ -718,53 +463,32 @@ -nApplet %1$s… 外壳 -身份 -键盘操作 -中继 -存储 -付款 -网络 -上传 询问哪些功能可用 -读取您的公钥 -绑定键盘快捷键 -读取并签署 & 发布您的事件 -其自身的私密存储 -支付闪电发票 -获取 web 和 Blossom 资源 -上传文件到您的媒体服务器 -主题 -通知 -消息收发 -匹配您应用的颜色 -向您显示通知 -与其他napplets交换消息 功能:%1$s @@ -773,33 +497,19 @@ -此 nApplet 想要读取您的公钥。 -此 nApplet 想要读取您的个人资料和账户数据。 -此 nApplet 想要像您一样签署并发布一个 %1$d 类型事件。 -此 nApplet 想要像您一样签署并发布一个 %1$d 类型事件: -此 nApplet 想像您一样发送一个加密事件。 -此 nApplet 想要从您的中继读取事件。 -此 nApplet 想要使用其私密存储。 此 nApplet 想要支付闪电发票。 -此 nApplet 想要获取一个 web 资源。 -此 nApplet 想要上传一个文件到您的媒体服务器。 -此 nApplet 想要向您显示通知。 -此站点想要用您的Nostr密钥签署一个 %1$d 类型事件。 - - 此 nApplet 想要支付 %1$d sat 的闪电发票。 - @@ -813,35 +523,25 @@ -短视频 -公共聊天 -关注包 -直播 -音频室 -举手 -放下手 -静音 -取消静音 -无法发送信息 @@ -850,25 +550,17 @@ -麦克风静音 -取消麦克风静音 -语音聊天房 -当聊天室开放时保持音频播放。 -语音聊天室已连接 -语音聊天室 — 在线 -轻触返回。 -停止 @@ -880,27 +572,17 @@ -举手 -步入舞台 -正在说话 -作为观众加入 -离开语音聊天室 -离开 -不能将聊天室标记为已关闭。仍然离开——聊天室将自动关闭。 - - %1$d 位听众 - @@ -920,20 +602,14 @@ -消除此演讲者的声音 -恢复此演讲者的声音 -关注 -取关 -静音 -取消静音 @@ -961,7 +637,6 @@ -无法保存您的语音聊天服务器列表。请重试。 @@ -975,45 +650,30 @@ -语音聊天服务器 -您的服务器 -保存为 10112 类型的可替换事件,以便其他客户端可以读取您的首选项。 -推荐的服务器 -内置建议,您可轻触添加到列表中。 -视频 -音乐 -播放列表 -节目 -播客 - - %1$d 期节目 - -新音乐曲目 -新建播放列表 @@ -1031,9 +691,6 @@ - - %1$d 首曲目 - @@ -1043,29 +700,23 @@ -置顶到个人资料 -从个人资料中取消置顶 -新建书签列表 -书签列表元数据 -兴趣集 -新的兴趣集 @@ -1073,7 +724,6 @@ -重命名 @@ -1091,13 +741,9 @@ -设为私密:将笔记包装为礼物仅发给要通知的用户 -设为公开 -对私密笔记的回复总是不公开的 -可见范围 尚无接收方:只有您才能看到此笔记。添加分享对象。 @@ -1113,11 +759,8 @@ -书签列表元数据可以被Nostr上的任何人看到。只有您的私密成员是加密的。 -移动到公开 -移动到私密 @@ -1131,13 +774,10 @@ -充值 & 发送打闪 -发送打闪 -充值 %1$s sats 到 %2$s 并打闪 %3$s %4$s sats · fee ≈ %5$s sats @@ -1152,25 +792,18 @@ -选项 %s -(0–100)% -单选 -多选 -无法投票 -该投票已结束 -这种投票只允许每个用户一票 @@ -1178,21 +811,13 @@ -投票作者不能在自己的投票中投票。 -这是什么意思 -此内容与发布时相同 -此内容已更改。作者可能没有看到或批准更改 -添加媒体 -添加图片 -添加视频 -添加文件 @@ -1213,11 +838,8 @@ -文件服务器 -选择上传文件时使用的服务器 -媒体服务器 设置首选媒体上传服务器。 @@ -1235,20 +857,15 @@ -付款目标 -添加不同网络的付款地址(如比特币、比特币闪电、以太坊)。 -没有找到处理此付款的应用。请安装兼容的钱包。 -没有安装应用程序来处理 %1$s 付款。请安装一个兼容的钱包。 -无法打开付款 @@ -1258,27 +875,18 @@ -隐私选项 -所有关注 -所有用户关注 -默认关注列表 -周围的人 -全球 -精选 -我的 -静音列表 @@ -1293,9 +901,7 @@ -新建关注列表 -新的关注包 @@ -1309,208 +915,79 @@ -编辑列表 -默认端口为 9050 -Orbot Socks 端口 -启动 Tor -使用内置 Tor 或者 Orbot -Tor 和隐私预设 -快速修改下方的设置 -Onion 链接或中继地址 -为 .onion 链接使用 Tor -私信中继 -强制在收发私信时使用 Tor -不受信任的中继 -强制对收件箱和发件箱中继使用 Tor -可信中继 -强制为所有中继使用 Tor -用户资料图片 -强制为下载用户资料图片时使用 Tor -链接预览 -强制为链接预览使用 Tor -图片 -强制为加载图片时使用 Tor -视频 -强制为加载视频时使用 Tor -资金操作 -强制为 Zap、闪电网络和 Cashu 转账时使用 Tor -Nostr 地址验证 -强制为 NIP-05 地址验证使用 Tor -媒体上传 -强制为上传媒体内容时使用 Tor -内置 -Orbot -关闭 -基础 -默认 -除多媒体外的所有内容 -完全隐私 -自定义 -当服务器要求时使用 Tor -从随机中继中隐藏 IP -除了图片和视频外,总是隐藏 IP -为所有连接隐藏 IP -让你自己来设置 -私信 -收到私信时通知你 -收到打闪 -收到打闪时通知你 -%1$s聪 -来自 %1$s -为 %1$s -回复 -标记为已读 -新信息 -新打闪 -回应 -当有人回应您的帖子做出时通知您 -%1$s 回应了您的帖子 -针对 %1$s -新回应 -国际象棋 -提醒您有关国际象棋游戏的事件 -%1$s 接受了您的国际象棋挑战 -%1$s 已移动 —— 轮到您了 -国际象棋更新 -回复 -当有人回复您的帖子时通知您 %1$s 回复了 在: %1$s -新的回复 - -提及 - -当某人在帖子中提到或引用你时,通知你 - -%1$s 提到了你 - -新提及 - - -来电 - -语音和视频来电通知 - -来电 - -语音来电 \u2026 - -视频来电 \u2026 - - - - -和 %1$s 的通话 - -通话 - -进行中的通话通知 - -挂断 - -接受 - -拒绝 - - -静音 - -取消静音 - -开启摄像头 - -关闭摄像头 - - -扬声器 - -耳机 - -蓝牙 - - - - - - -Amethyst 需要麦克风权限来开始语音通话。请在应用程序设置中启用它。 - -Amethyst需要摄像头和麦克风访问权限来开始视频通话。请在应用程序设置中启用它们。 - - - -通话设置 @@ -1526,61 +1003,75 @@ -保持与收件箱中继的连接以便接收实时通知 -Amethyst 通知活跃 - - 已连接到 %1$d 个收件箱中继 - - - 已连接到 %1$d 个中继 - -正在连接到收件箱中继\u2026 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + “始终显示通知”服务 保持与收件箱中继的持续连接以便即时发送通知。 显示正在进行的通知。使用更多电量,但确保您永远不会错过消息。 -根据关注拆分通知 -显示两个通知选项卡 — — 关注(你关注的人) 和所有人。未读的指示器只为你关注的人的活动发出微光。 -显示消息 -在通知选项卡上包含私信和群消息。如关闭只在消息选项卡中保留消息。 -通知: -今天 -隐藏 -显示 -警告 -过滤垃圾信息 -隐藏陌生人的五次或五次以上完全相同的帖子 -将客户端标签添加到我的事件 -启用时,Amethyst 将会附加一个 NIP-89 客户端标签到您发布的事件。 -举报警示 -当帖子有来自你关注的五次及以上举报时显示警告消息 @@ -1588,35 +1079,23 @@ -隐藏违反社区规则的帖子 -当社区发布了一份NIP-9B规则文档而一个事件会让它失灵时,丢弃社区的帖子。 当社区没有结构化规则时没有任何影响。 -过滤的首选项 -拦截的内容 -您尚未屏蔽任何用户。 -本次会话中还没有账户被标记为垃圾信息。 -没有隐藏的单词。在下方添加一个单词来隐藏包含它的帖子。 -未选择回应类型。长按可更改 -从中继器读取 -写入到继电器 -向该中继发送事件和过滤请求所使用的数据量 -从该中继接收事件和过滤响应所使用的数据量 @@ -1641,12 +1120,9 @@ -隐私政策 -儿童安全标准 -关于 & 法律 @@ -1690,13 +1166,11 @@ -Cashu 代币 -未设置闪电地址 @@ -1712,118 +1186,70 @@ -中继器 -关注包 -阅读 -算法动态 -市场 -直播 -社区 -聊天 -敏感内容 -在显示此内容之前添加敏感内容警告 -用户界面首选项 偏好设置 -翻译 -回应 -设置 -账户设置 -应用程序设置 -危险区 -重置 Marmot 状态 -Marmot 状态重置。 -重置 Marmot 状态失败: %1$s -始终 -未计量的 WiFi -从不 -完整版 -简化版 -极速版 -经典 -现代 -系统 -浅色 -深色 -钱包绑定 -主题 -图像预览 -视频播放 -自动播放视频 -URL 预览 -沉浸式滚动 -滚动时隐藏导航栏 -界面模式 -选择帖子样式 -资料页图库样式 -选择图库样式 -垃圾邮件 -静音。点击取消静音 -声音开启。点击静音 -后退 %d 秒 -前进 %d 秒 @@ -1834,52 +1260,35 @@ -位置限定帖子 -只有处于同一地理位置的关注者才能看到贴帖子。一般关注者无法看到。 - - %1$d 首曲目 - - - 另外 %1$d 首曲目 - -上传封面图片 -选择一个正方形图像作为这个曲目的艺术作品。 -上传音频文件 -选择 MP3, WAV 或 FLAC。保存时它将被上传到媒体服务器。 -正砸上传封面 + 音频和发布。即使您离开屏幕,这也会继续进行。 -编辑播放列表 -上传封面图片 -选择一个正方形图像作为这个播放列表的艺术作品。 -正在上传封面并发布。即使您离开屏幕,这也会继续进行。 @@ -1897,49 +1306,28 @@ 私人 -主题 - - - -无法上传 - -需要首先输入消息的目标位置 -未找到钱包 - -Amethyst 找不到任何支持 Nostr Wallet Connect (NWC) 的钱包应用. -\n\n你可以做的事情: -\n\t1. 验证 NWC 支持:仔细确认偏好的钱包应用和 Nostr Wallet Connect 兼容。 -\n\t2. 创建连接:前往钱包应用并创建新的 NWC 连接。 -\n\t3.链接到 Amethyst: 你的钱包通常会给你三个选项: -\n\t\t3.1 自动链接:自动打开并连接到 Amethyst 的按钮。如果是这样, 单击那个按钮,打开 Amethyst 并在新屏上按保存。 -\n\t\t3.2 手动链接: 你可以复制的连接 URI,单击这个屏幕上的粘贴图标直接输入它。 -\n\t\t3.3 二维码: 钱包会创建一个你可以从这个屏幕中的二维码按钮那里读取的二维码。 - - - -暗色、亮色或系统主题 - -自动加载图像和 GIF - -自动播放视频和 GIF - -视频在屏幕上可见时自动播放视频 - -显示 URL 预览 - - -复制到剪贴板 - -已复制到剪贴板 -分享或保存 + + + + + + + + + + + + + + 已私信形式发送 @@ -1948,9 +1336,7 @@ -媒体已添加 -媒体已添加到个人资料相册中 @@ -1958,7 +1344,6 @@ -无法发送打闪 @@ -1967,92 +1352,53 @@ -打闪设置缺失 -用户 %1$s 尚未设置接收聪的闪电地址 -打开签名应用时出错 -找不到签名应用。检查应用是否已被卸载 -无法播放此视频。 -此设备不支持该编解码器或格式(%1$s)。请尝试在您的浏览器中打开它。 -在浏览器中打开 -签名请求已被拒绝 -请确保签名应用程序已授权此交易 -找不到支付闪电发票的钱包(错误:%1$s)。请安装闪电钱包来使用打闪 -找不到支付闪电发票的钱包。请安装闪电钱包来使用打闪 -无法打开 Blossom 链接 -找不到Blossom应用。请安装本地Blossom应用查看此文件 -隐藏单词 -静音的主题帖 -无静音的主题帖 -个人头像 -显示个人头像 -不能生成支付发票 -无法提款 -无法兑换 Cashu -铸币厂提供了以下错误信息: %1$s -已收到 Cashu -%1$s 聪已被发送到你的钱包。(费用︰ %2$s 聪) -系统上没有找到兼容的 Cashu 钱包 -无法从接收方的服务器获取发票 -你的钱包连接提供者返回了以下错误: %1$s -无法从闪电地址集合LNURL\"%1$s\"。请检查用户设置 -无法从 %1$s 获取发票:%2$s -从 %1$s 解析 JSON 发生错误。请检查用户的闪电设置 -从 %1$s 的响应中找不到回调 URL -来自 %2$s 的错误的发票金额(%1$s 聪)。它本应该是 %3$s -无法在发送打闪前创建闪电发票。接收者闪电钱包发送了以下错误: %1$s -仅读用户 -没有设置回应 -通知 -发送 -应用内显示 -分类 @@ -2066,11 +1412,9 @@ -来自 %1$s 的消息 -嗨,%1$s,这个还能买到吗? @@ -2088,63 +1432,34 @@ -服装 -配件 -电子 -家具 -收藏 -书籍 -宠物 -运动 -健身 -艺术 -工艺 -家中 -办公 -食品 -杂项 -其它 -无法上传媒体 -无法打开压缩文件 -上传错误:%1$s -上传后服务器没有提供 URL -无法从服务器下载上传的媒体 -无法检查经过上传后再下载的文件:%1$s -无法上传到%1$s:%2$s -删除失败:%1$s -文件过大,无法使用 NIP-95 -加密文件 -上传前为了隐私加密文件。有些服务器可能不接受免费账户的加密文件。 -加密上传失败 -许多服务器不接受免费账户的加密文件。您可以不加密重试。 @@ -2154,46 +1469,28 @@ -使用 H.265/HEVC 编解码器 -文件较小而质量更佳,但不是所有设备都支持 H.265 播放。 -转换 GIF 为 MP4 -将动画的 GIF 转换为 MP4 视频以获取较小文件大小和更好的播放兼容性。 -删除私密元数据 -尝试在上传之前从支持的媒体文件中删除私密元数据 -无法删除元数据 -从媒体删除私密元数据失败。上传取消。 -上传已取消 -无法从 AVIF 删除元数据: %1$s -主页 -发现 -消息 -通知 -日历 -日历列表 -国际象棋 -钱包 @@ -2231,7 +1528,6 @@ -Cashu 钱包 (NIP-60) @@ -2253,23 +1549,14 @@ P2PK 私钥(十六进制) -编辑铸币厂 保存更改 - - + 另外 %1$d - - - 由其他 %1$d 个用户推荐 - -热门铸币厂 -匹配的铸币厂 @@ -2283,9 +1570,7 @@ -已收到 -已发送 @@ -2295,14 +1580,12 @@ -发布 %1$s 的 kind:38000 推荐删除请求。遵守 NIP-09 的中继会丢弃它。 -从 %2$s 证明中恢复了 %1$s sats 。 @@ -2326,28 +1609,21 @@ -支付 %1$s sat + 最多 %2$s sat 的费用? -Nutzap 失败 -笔记上没有收件人的公钥 -Nutzaps 是公开的,将会透露该私密笔记。请使用闪电打闪代替。 -无法构建事件参考 -正在等待支付发票… -正在检查铸币厂… @@ -2384,38 +1660,19 @@ -慢 -正常 -快 -约1小时 -约30分钟 -约10分钟 -%1$s · %2$s sat/vB · %3$s - - 发送 %1$s sats, %2$d 拆分 - - - 使用此记事的 %1$d 路打闪拆分 - - - 在 %1$d 位收款人之间拆分 - - - 正在跳过 %1$d 位仅闪电网络地址收款人 - 链上需 Nostr 公钥派生地址。 - @@ -2427,63 +1684,37 @@ -加载余额 -正在建立交易 -正签名 -正在广播 -发布收据中 -未配置比特币链后端 -无法加载您的比特币余额 -无法构建交易 -收款人份额过低 -无法签署交易 -无法广播交易 -付款已发送,但打闪收据无法发布 - - 付款已发送(已发布 %1$d 份收据,共 %2$d 份),但下一收据无法发布 - -导入关注 -新产品 -新文章 -新建日历活动 -编辑日历活动 -新建日历 -编辑日历 -源 -月 -周 -日 @@ -2517,9 +1748,6 @@ - - %1$s, %2$d 个活动 - @@ -2546,24 +1774,14 @@ -正在发生 -%1$s · 结束于 %2$s -分享日历活动 -日历提醒 -日历提醒 -您正参加的活动即将开始时进行提醒。 -日历活动 - - 在 %1$d 分钟内开始 - @@ -2572,33 +1790,23 @@ -图片上传失败 -选中的图像无法上传。请重试或粘贴一个URL。 -日历提醒 -发送提醒 -您正参加的活动即将开始时发出通知。 - - %1$d 分钟 - -在地图中打开 -打开链接 @@ -2614,20 +1822,16 @@ -展开对此帖子的所有回应 -收起对此帖子的所有回应 -打闪 -底部导航栏 拖动可重新排序。切换可从底部栏中添加或删除一个项目。无项目则底部栏隐藏。 @@ -2638,21 +1842,14 @@ 选择主屏幕上出现的标签页。当只有一个标签处于活动状态时,标签栏将被隐藏。 -全部 -个人资料界面 选择在用户个人资料屏幕上显示哪些部分和源。默认情况下所有选项都启用。 -个人资料徽章 -应用推荐 -收到的打闪源 -关注者源 -回应设置 @@ -2670,7 +1867,6 @@ -视频播放器按钮 @@ -2690,7 +1886,6 @@ -音频可视化 @@ -2716,7 +1911,6 @@ -过期日期 @@ -2724,11 +1918,8 @@ -地址无效 -Amethyst 收到了要打开的 URI,但该 uri 无效:%1$s -私信收件箱中继 @@ -2736,103 +1927,63 @@ -搜索中继 -示例:\n%1$s -发件箱中继 -收件箱中继 -中继设置 -公共时间线中继 -用户正在将其内容发布到这些中继 -这类中继会保存您的所有内容。Amethyst 会将您的事件发送到这些中继,其他人则通过这些中继查找您的内容。可以设置 1 ~ 3 个中继。它们可以是个人专用中继、付费中继或者公共中继。 -公共收件箱中继 -用户正在接收这些中继的通知 -这类中继用于接收其他人对您内容的回复、评论、点赞和打闪。可设置 1 ~ 3 个中继,需要确保它们能够接受来自任何人的事件(公共写入)。 -私信收件箱中继 -用户接收到这些中继的私信 -设置 1 ~ 3 个中继作为您的私人收件箱。其他人将使用这些中继向您发送私信。需要确保这些收件箱中继能够接受来自任何人的任何私信消息,但只允许您读取这些消息。示例:\n - inbox.nostr.wine(付费)\n - you.nostr1.com(个人专用中继 - 付费) -密钥包 -密钥包中继 -发布 MLS 密钥包的中继(MIP-00)。其他用户获取这些密钥包来邀请你加入 Marmot 群聊。插入1~3个接受来自你的密钥包事件的中继并允许公开读取。 -私人中继 -设置 1 ~ 3 个中继用于保存其他人无法看到的事件,例如您的草稿和软件设置。理想情况下,这些应该是本地中继,或者是在获取用户内容时需要经过身份验证的中继。 -已连接的中继 -当前正在使用的中继列表 -搜索中继 -用于关键词和标签检索的中继列表。如果没有可用选项,也就无法使用关键词和标签检索。需要确保它们支持 NIP-50。 -本地中继 -在该设备中运行的中继列表。 -转发个人资料到本地中继 -将所有收到的配置文件(类型0)事件发送到您的本地中继 -可信中继 -无需使用 Tor 进行连接的可信中继 -喜爱的中继源 -经常前去查看全局源的中继 -代理中继 -聚合器中继是应用获取资讯源时使用的中继(例如:filter.nostr.wine),设置这个列表将覆盖信箱模型的行为,使得应用只会连接到这个列表中的中继以获取内容。 -广播中继 -推送你的帖子到其他中继的中继,例如:sendit.nosflare.com,应用会把这个中继作为提示嵌入到你发送的所有事件的 Json 结构中 -索引器中继 -专门保存每个人的账户元数据的中继(例如:purplepag.es),应用会使用这些中继来查找不在你列表中的账户元数据。 -中继黑名单 -应用永远不会连接的中继 -导出中继设置 @@ -2873,12 +2024,6 @@ -OpenTimestamps 证明 - -%1$s之前的某个时候签署了此帖子的证明。此证明是在那个日期和时间在比特币区块链中盖章的。 - - -编辑帖子 @@ -2889,15 +2034,6 @@ -无法回复笔记草稿 - -无法引用笔记草稿 - -无法回应笔记草稿 - -无法打闪笔记草稿 - -笔记草稿 @@ -2905,107 +2041,69 @@ -Bad Request - 服务器无法处理请求。 -Unauthorized - 用户没有有效的身份凭证。 -Payment Required - 服务器需要付费以完成该请求。 -Forbidden - 用户没有权限发起该请求。 -Not Found - 服务器无法找到请求的地址。 -Method Not Allowed - 服务器支持该请求方法,但目标资源不支持。 -Not Acceptable - 服务器找不到满足该请求的内容。 -Proxy Authentication Required - 用户没有有效的身份凭证。 -Request Timeout - 服务器等待其他人时超时。 -Conflict - 服务器由于资源有冲突无法完成该请求。 -Gone - 请求的内容已从服务器上永久性删除。 -Length Required - 服务器由于内容长度未定义而拒绝该请求。 -Precondition Failed - 请求头部未满足服务器的前提条件。 -Payload Too Large - 服务器由于请求体大小超过接受的上限而拒绝处理该请求。 -URI Too Long - 客户端请求的 URL 过长导致服务器无法处理。 -Unsupported Media Type - 该请求使用了服务器不支持的媒体格式。 -Range Not Satisfiable - 服务器无法满足该请求头部中指定的 Range 标头范围。 -Expectation Failed - 服务器无法满足该请求头部中指定的 Expect 标头条件。 -Upgrade Required - 服务器拒绝使用当前协议处理该请求,除非客户端升级到其他协议。 -Internal Server Error -服务器遭遇意外错误而无法完成请求。 -Not Implemented - 服务器无法完成该请求或不支持该请求方法。 -Bad Gateway - 网关服务器收到了源服务器的无效响应。 -Service Unavailable - 该情况通常发生在服务器超载或因维护而宕机。 -Gateway Timeout - 网关服务器因等待源服务器响应而超时。 -HTTP Version Not Supported - 服务器不支持该请求的 HTTP 版本。 -Variant Also Negotiates - 服务器内部配置错误。 -Insufficient Storage - 服务器没有足够的存储空间用于处理该请求。 -Loop Detected - 服务器处理该请求时检测到死循环。 -Network Authentication Required - 客户端必须通过认证才能访问该网络。 + + + + + + + Blossom 服务器 添加上传图片时可以选择的服务器。 -添加 NIP-96 服务器 -添加 Blossom 服务器 下载 -打开文件失败 -没有用于打开和下载文件的 Torrent 客户端 -事件没有足够信息来构建磁力链 -我的列表 -源 -话题标签 -兴趣集 -位置 -社区 -列表 -订阅源算法 -所有收藏源算法 -中继 -收藏源算法 @@ -3021,18 +2119,13 @@ -私信 -公开消息 -无法分享图片,请稍后重试… -无法分享视频,请稍后重试… -正下载视频… @@ -3050,17 +2143,11 @@ -不要翻译 -此处显示的语言不会被翻译,请选择一种目标语言重新翻译并去除这个提示。 -翻译为 -选择要将内容翻译为什么语言。 -语言显示首选项 -对于每个翻译的语言对,选择先显示哪个语言。 @@ -3071,9 +2158,7 @@ -暂停 -播放 @@ -3082,7 +2167,6 @@ -此消息将在 %1$s 后消失 @@ -3097,15 +2181,10 @@ -关注列表元数据 -关注列表元数据可以被Nostr上的任何人看到。只有您的私人成员是加密的。 -关注包元数据 -关注包元数据可以被Nostr上的任何人看见,并且常作为新用户启动包发布在许多网站上。 -编辑关注包 @@ -3121,12 +2200,10 @@ -展开 -重试 @@ -3137,11 +2214,8 @@ -回应 -语音帖子 -语音回复 @@ -3164,285 +2238,145 @@ -发件箱中继 -应用程序 -应用推荐 -用户设置 -音频标题 -音轨 -音乐曲目 -音乐播放列表 -播客节目 -播客秀 -创作的播客 -收藏的播客 -徽章奖励 -徽章定义 -接受的徽章集 -个人资料徽章 -中继黑名单 -Blossom 服务器 -语音聊天服务器 -Blossom 认证 -广播中继 -书签列表 -旧书签列表 -日预约 -日历 -预约 -预约确认请求 -国际象棋游戏 -Chess 网站认证 -喜爱的中继 -国际象棋挑战 -接受国际象棋游戏挑战 -棋子移动 -国际象棋游戏结束 -和棋请求 -频道定义 -频道隐藏消息 -频道列表 -频道消息 -频道元数据 -频道静音用户 -私信文件 -私信消息 -私信中继 -分类广告 -评论 -社区定义 -社区列表 -社区帖子 -关注列表 -删除 -草稿 -表情包 -表情包列表 -临时聊天 -临时聊天室 -文件标题 -资料页图库 -文件服务器 -Blob 数据 -Blob 头部 -医疗数据 -关注包 -转发(16) -Geohash 关注 -包装礼物 -Git 问题 -Git 补丁 -Git 仓库 -Git 回复 -打闪目标 -话题关注 -精彩场面 -Http 认证 -索引中继列表 -探险前言 -探险场景 -探险阅读 -已命名书签 -实时聊天 -直播 -打闪 -NWC 请求 -NWC 响应 -私下打闪 -打闪请求 -博客 -会议室 -房间状态 -会议空间 -个人资料 -静音列表 -NNS -NIP -Nostr 连接 -DVM 状态 -DVM 内容请求 -DVM 内容响应 -DVM 用户请求 -DVM 用户响应 -OTS -PayTo -人员列表 -图片 -锻炼 -置顶 -打闪投票 -投票 -投票响应 -NIP-04 私信 -私密中继 -代理中继 -公开消息 -回应 -名片 -中继认证 -中继发现 -中继监视器公告 -中继集合 -举报 -转发 -用户删除 -密封信息 -搜索中继 -用户状态 -笔记 -编辑 -种子 -种子注释 -可信中继 -可信的提供商 -视频 (回复) -短篇 (回复) -视频 -短篇 -语音消息 -语音回复 -唤醒 -网络书签 -维基 @@ -3459,9 +2393,7 @@ -%1$d%% 运行时间 -Namecoin 设置 @@ -3472,13 +2404,11 @@ -%d毫秒 -中继同步 @@ -3506,65 +2436,27 @@ -比特币资源管理器 (OTS) -来自您的事件 -给您的事件 -可搜索的事件 -私信 -个人资料 -发件箱列表 -%1$s 前活跃 -上次见于 %1$s (%2$s 之前) -刚见到 -从未见过 - - %1$d 分钟 - - - %1$d 小时 - - - %1$d 天 - - - %1$d 周 - - - %1$d 个月 - - - %1$d 年 - - - %1$d 铸币厂 - - - %1$d 张待处理发票 - - - 您不使用的 %1$d 座铸币厂中持有的资金 - @@ -3578,7 +2470,6 @@ -移动了 %1$s sat 到 %2$s。 @@ -3593,14 +2484,11 @@ -投射到设备 -停止投影 -HLS 上传 @@ -3621,7 +2509,6 @@ -正在上传 %1$s (%3$d 中的 %2$d) @@ -3639,7 +2526,6 @@ -证明 @@ -3647,12 +2533,9 @@ -证明请求 -证明人建议 -证明人熟练度 @@ -3660,11 +2543,8 @@ -网络书签 -添加网络书签 -编辑网络书签 @@ -3680,7 +2560,6 @@ -设定目标为 %2$s sats,筹集到 %1$s @@ -3716,9 +2595,7 @@ -新目标 -请求消失 @@ -3732,7 +2609,6 @@ -消失请求已发送 @@ -3746,7 +2622,6 @@ -消失历史记录 @@ -3754,15 +2629,10 @@ -用户 -事件 -类型 -IP地址 -设置 @@ -3814,23 +2684,14 @@ -建议文本改进 -使用设备上的 AI 模型来提出文本更正和音调更改。 -已跟踪的广播 -在发送事件时使用已跟踪的广播。在广播时显示实时进度和每个中继的状态。 -推荐要分享的锻炼 -从 Health Connect (Shamsung Health, Google Fit, Fitbit, Garmin…)读取完成的锻炼,并建议将其作为帖子分享。 只有当您连接时才请求权限。 -撰写设置 -自动创建草稿 -当您输入或在编辑器中有未发送的文本时自动保存草稿事件并发送到您的私人发件箱中继。 @@ -3848,9 +2709,7 @@ -新的表情包 -编辑表情包 @@ -3874,47 +2733,31 @@ -我的表情包 -表情 -公开表情符号对所有人可见;当此表情包位于您的表情符号列表中时,它们会显示在您的“反应”菜单及“:”自动补全选择器中。 -私密表情符号被加密存储在中继上,只对您可见。它们就像公开表情符号一样出现在回应菜单和 \":\" 自动完成中。 -草稿为 %1$d 字节;这个社区将此类内容大小限制为 %2$d 字节。 -草稿为 %1$d 字节;这个社区将事件大小限制为 %2$d 字节。 -您今天已经发布了 %1$d 个此类事件 (限制 %2$d)。 -Nowhere 站点 -Nowhere 事件 -Nowhere 筹款人 -Nowhere 商店 -Nowhere 申请 -Nowhere 消息 -Nowhere Drop -Nowhere 艺术 -Nowhere 论坛 @@ -3933,23 +2776,14 @@ - - %1$d 条消息 - - - %1$d 位成员 - -群信息已更新 -更新失败: %1$s -创建群失败: %1$s @@ -3960,13 +2794,9 @@ -退群失败: %1$s -正在添加 %1$s… -添加 %1$s失败: %2$s -未知错误 @@ -3975,9 +2805,7 @@ -成员已移除 -移除成员失败: %1$s @@ -3985,22 +2813,17 @@ -已授予管理员权限 -授予管理员权限失败: %1$s -已撤销管理员权限 -撤销管理员失败: %1$s -不是此群的成员 @@ -4018,80 +2841,43 @@ 无法从 %1$s 创建闪电发票:在生成的 JSON 中找不到付款要求元素。 -中继连接服务 -收到新通知 -音频, 可视化, 频谱, 条形, 波形, 径向, 极光, 动画 -nsec, 私钥, 种子, 助记词, 导出 -导航, 标签, 导航栏 -日历, 活动, 提醒, RSVP -WebRTC, 视频通话, 语音通话, 通话 -法律, 安全, 滥用, CSAE, 儿童保护 -草稿, 发布, 编辑器, 自动保存 -Negentropy, 同步, 对账, 回填 -DVM, 数据自动售货机, 算法, 推送 -Github Gist w/ Proof -标签, 推送, 帖子, 对话 -联系人, 关注, 关注列表, 导入 -Mastodon Post ID w/ Proof -Blossom, 上传, 图片, 照片, 文件, CDN, 存储 -namecoin, DNS, 身份, 名称 -音频房间, 直播, 空间, 房间 -推送, 提醒, 声音, 振动 -OpenTimestamps, 时间戳, OTS, 证明 -zap 分配, 分配, 收款人, 转发 zap -Tor, Orbot, 代理, 隐私, 匿名 -法律, 条款, 服务条款, 政策, GDPR -徽章, 奖励 -个人资料, 布局 -表情, 点赞, 反应 -表情, 反应, 点赞 -中继, 收件箱, 发件箱, 连接, 服务器 -删除账号, 消失, GDPR -MLS, 群聊, 消息, 重置 -垃圾信息, 屏蔽, 静音, 过滤, 警告 -语言, 翻译, 地区 -X Status w/ Proof -深色模式, 浅色模式, 主题, 字体大小, 语言, 外观 -删除, 删除事件 -视频, 播放器, 播放, 自动播放, 静音 -闪电网络, 聪, 打赏, 钱包, 金额 diff --git a/amethyst/src/main/res/values/strings.xml b/amethyst/src/main/res/values/strings.xml index 50d09e98e0..063fa258e9 100644 --- a/amethyst/src/main/res/values/strings.xml +++ b/amethyst/src/main/res/values/strings.xml @@ -1,169 +1,24 @@ Amethyst - - This post has more than %1$d hashtag - This post has more than %1$d hashtags - - - %1$d asset bundled - %1$d assets bundled - - - +%1$d\nreply - +%1$d\nreplies - - - Reported by %1$d person you follow - Reported by %1$d people you follow - - Spam - The number of spamming events coming from this relay - Impersonation - Illegal Behavior - Request Deletion - You are using a public key and public keys are read-only. Login with a Private key to be able to reply - You are using a public key and public keys are read-only. Login with a Private key to be able to boost posts - You are using a public key and public keys are read-only. Login with a Private key to like posts - No Zap Amount Setup. Long Press to change - You are using a public key and public keys are read-only. Login with a Private key to be able to send zaps - You are using a public key and public keys are read-only. Login with a Private key to be able to follow - You are using a public key and public keys are read-only. Login with a Private key to be able to unfollow - You are using a public key and public keys are read-only. Login with a Private key to be able to hide a word or sentence - You are using a public key and public keys are read-only. Login with a Private key to be able to show a word or sentence - You are using a public key and public keys are read-only. Login with a Private key to be able to upload - You are using a public key and public keys are read-only. Login with a Private key to be able to sign for events - Unauthorized Decryption - The signer did not authorize a decryption that is required to make this operation. Activate NIP-44 decryptions in your signer app and try again - Signer not found - Was the Signer app uninstalled? Check if the signer is installed and has this account. Log off and Log in again of the signer app has changed. - External signer returned a payload that is strange for the request. There might be a bug on either Amethyst or the Signer. - Zaps - Boost boosted edit #%1$s - Propose an Edit - Add - Error parsing error message - - Profile - Security Filters - Show Less - Requesting invoice… - The debit service did not complete the payment. - Pay %1$s via %2$s? - Pay this invoice via %1$s? - Enter a valid amount for this offer. - One-time - Daily - Weekly - Monthly - Pay - - Paying via %1$s… - Payment failed - Spendable for this recipient: %1$s sats - Transaction: %1$s - "Preview Card Image for %1$s" - Description - What\'s on your mind? - Write a message… - Post + + Save - Send - Create Rename - Cancel - Error - Errors - Percentage of successful connections to the relay - Save to Phone - Image saved to the phone\'s photo gallery - Video download has started… - Media download has started… - Pin to top - Unpin - Failed to save the image - Video saved to the phone\'s video gallery - Failed to save the video - PDF saved to Downloads/Amethyst - Failed to save the PDF - No camera app found on this device - Click and hold to record a message - Upload Error - Failed to upload voice message - NIP-95 is not supported for voice messages yet - Voice upload failed: %1$s - None - Deep - High - Neutral - User does not have a lightning address set up to receive sats - "reply here… " - Known - New Requests - Blocked Users - New Threads - Conversations - More Options - Show private key QR code - Show encrypted private key QR code - Follow - Follow back - Hide Password - Invalid key - Amethyst for Android can\'t sign in with a bunker:// address. It hands these out so other apps can ask it to sign, but it cannot sign in with one. Use an external signer app, or Amethyst Desktop. - That\'s an app asking to connect to your signer, not a way to sign in. Sign in first, then open it from the NIP-46 signer screen. - Invalid key: %1$s - Password is required - Key is required - A name is required - Could not fetch this invite. The link may be expired or its relays unreachable. - This invite link is invalid or can\'t be opened with this account. - This invite link can\'t be opened. It may be outdated or already replaced by a newer one, or created with a newer version of the app. Ask for a fresh invite link. - This invite link has been revoked and can no longer be used. Ask for a new one. - This community has removed you. The link still works, but its member list does not admit you. - Invite links - Invite links… - Invite link revoked. - The link couldn\'t be revoked. Check your connection and try again. - This invite link has expired and can no longer be used. Ask for a fresh link. - Concord Channels - No channels yet. - Send image - New channel - Rename channel - Rename - Channel name - Delete channel - Delete channel? - Delete #%1$s? This can\'t be undone and the channel can\'t be recreated with the same id. - Delete - Leave community - Leave community? - Leave %1$s? It is removed from this account\'s list and stops syncing on your devices. The community is not notified and you are not removed from its member roster. Messages you can no longer decrypt may be unrecoverable, and you can only return with a new invite. - You created this community. Leaving does not delete it or hand it to anyone else, but it discards the owner key stored on your list — you would not be able to manage it again. - %1$s is typing… - %1$s and %2$s are typing… - Several people are typing… - New Concord Channel - Relays Icon URL (optional) - - %1$d channel - %1$d channels - %1$d workspace %1$d workspaces @@ -172,333 +27,47 @@ %1$d channel %1$d channels - - %1$d member - %1$d members - - - %1$d new message - %1$d new messages - - No messages yet - Create - Invite people - Invite link - Make admin - Remove admin - Relays that store this community\'s encrypted messages. Leave empty to use your own. - Edit community - Members - Make admin - Remove admin - Ban - Unban - Assign roles - Could not update this member\'s roles. - Concord - In chat - In thread - - %1$d reply - %1$d replies - New chat profile: - Leave - Remove from Messages - Add to Messages - Unfollow - - Disappearing Chat - Relay Chat - Relay Chats - Relay chats are chat groups controlled by their home relay. - They are visible to everyone on Nostr and anyone can participate on them. - They are great for open communities around specific topics. Some of these groups are ephemeral - and thus chat messages disappear over time - - Public Chat - Marmot Group - Public Chat Metadata - Public chats are visible to everyone on Nostr and anyone - can participate on them. They are great for open communities around specific topics. - Moderation can be controlled by deleting posts on its relays - - Relays - Insert between 1–3 relays that host this group. - Nostr clients use this setting to know where to download messages from and send your messages to. - Remove - sats - never - now - h - m - d - Nudity - Profanity / Hateful speech - Backup Keys - Failed to encrypt your private key - Secret key (nsec) copied to clipboard - Copy my secret key - Authentication failed - Biometrics failed to authenticate the owner of this phone - Biometrics failed to authenticate the owner of this phone. Error: %1$s - Copied note text to clipboard - Copied author’s @npub to clipboard - Copied note ID (@note1) to clipboard - Github Gist w/ Proof - Telegram - Mastodon Post ID w/ Proof - X Status w/ Proof - "<Unable to decrypt private message>\n\nYou were cited in a private/encrypted conversation between %1$s and %2$s." - Accounts - Navigate - You - Feeds - Create - System - Back - Share Browser Link - Share - Share as Image - Share as Image Url - Note ID - Delete - Mute thread - Unmute thread - Mute notifications - Unmute notifications - - Block - Bookmarks - Bookmarks migrated successfully - Drafts - Scheduled posts - Schedule post - Cancel scheduling - Scheduled posts may not publish until you next reopen the app. Enable always-on in Settings → UI Preferences for reliable background scheduling. - Scheduled posts may not publish until you reopen the app. Other accounts\' scheduled posts won\'t fire while this account is active. Enable always-on in Settings → UI Preferences for reliable background scheduling. - %1$s · in %2$s - %1$s · %2$s ago - Tomorrow - Logged out - - Logged out · %d scheduled post deleted - Logged out · %d scheduled posts deleted - - Scheduled post published - Scheduled post failed - ScheduledPostsID - Scheduled posts - Notifications when a scheduled post is published or fails to publish. - Send now - Error: %1$s - Scheduled - Sending… - Failed - Sent - Cancelled - - You have %d scheduled post that hasn\'t been published yet. Logging out will permanently delete it. - You have %d scheduled posts that haven\'t been published yet. Logging out will permanently delete them. - - - %d queued - %d queued - - - · %d due in 1h - · %d due in 1h - - - to %d relay - to %d relays - - Note ID copied - Polls - Open - Closed - Badges - Communities - New Community - Edit Community - Moderators - Relays - Verifiable rules (optional) - Allowed event kinds - Short text (1) - Long-form article (30023) - Picture post (20) - Video post (21) - Short video (22) - Community comment (1111) - Banned users - Web-of-trust gate (optional) - Global max event size (optional) - New Badge - Award Badge - Profile badges - Pictures - Workouts - New Workout - - %1$d activity - %1$d activities - - Running - Walking - Cycling - Hiking - Swimming - Rowing - Strength - Yoga - Meditation - Diet - Fasting - Circuit - EMOM - AMRAP - App Store + + + App Store - nApplets - nSites - Browser - Loading over Tor. Tap to use the open web. - Loading over the open web. Tap to use Tor. - Favorites - Discover web apps - Web apps - Add to favorites - Remove from favorites - Loads over Tor. - Loads over the open web. - Published to relays - Uploaded a file - Made a payment - That app isn\'t loaded yet. Try again in a moment. - Recent nApplet permissions No nApplet permissions yet Permissions you grant to nApplets will appear here. Forget this nApplet Requires per-use approval Revoke - nApplet %1$s… Shell - Identity - Keyboard actions - Relays - Encryption - Storage - Payments - Network - Uploads Ask which capabilities are available - Read your public key - Bind keyboard shortcuts - Read, and sign & publish your events - Encrypt and decrypt private messages with your key - Its own private storage - Pay Lightning invoices - Fetch web and Blossom resources - Upload files to your media server - Theme - Notifications - Messaging - Match your app\'s colors - Show you notifications - Exchange messages with other napplets Capability: %1$s - This nApplet wants to read your public key. - This nApplet wants to read your profile and account data. - This nApplet wants to sign and publish a kind %1$d event as you. - This nApplet wants to sign and publish a kind %1$d event as you: - This nApplet wants to send an encrypted event as you. - This site wants to encrypt a message to %1$s with your Nostr key. - This site wants to decrypt a message from %1$s with your Nostr key. - This nApplet wants to read events from your relays. - This nApplet wants to use its private storage. This nApplet wants to pay a Lightning invoice. - ⚠ This nApplet wants to pay a Lightning invoice that specifies NO amount — the payee decides how much is taken. Only allow this if you trust it. - This nApplet wants to fetch a web resource. - This nApplet wants to upload a file to your media server. - This nApplet wants to show you notifications. - This site wants to sign a kind %1$d event with your Nostr key. - - This nApplet wants to pay a Lightning invoice for %1$d sat. - This nApplet wants to pay a Lightning invoice for %1$d sats. - - - follows %1$d new account - follows %1$d new accounts - - - UNFOLLOWS %1$d account - UNFOLLOWS %1$d accounts - - - adds %1$d relay - adds %1$d relays - - - REMOVES %1$d relay - REMOVES %1$d relays - - - mutes %1$d more person - mutes %1$d more people - - - UNMUTES %1$d person - UNMUTES %1$d people - - ⚠ This follows %1$s. - ⚠ This UNFOLLOWS %1$s. - ⚠ This mutes %1$s. - ⚠ This UNMUTES %1$s. - ⚠ This rewrites your follow list: %1$s. - ⚠ This rewrites your relay list: %1$s. Your posts and reads move with it. - ⚠ This rewrites your mute list: %1$s. Muted words and hashtags are not shown here — tap “Show Event” for the full list. - %1$s and %2$s - This republishes your existing list unchanged. - - ⚠ This writes a list of %1$d entry. Amethyst has no cached copy to compare against. - ⚠ This writes a list of %1$d entries. Amethyst has no cached copy to compare against. - - - ⚠ This requests deletion of %1$d of your events. - ⚠ This requests deletion of %1$d of your events. - - - Carries %1$d tag. Tap “Show Event” to see exactly what would be signed. - Carries %1$d tags. Tap “Show Event” to see exactly what would be signed. - Connect to Nostr @@ -510,318 +79,59 @@ Expires - sign for %1$s (kind: %2$d) - encrypt a message - read your private messages - read your private messages with %1$s - Always allow for %1$s - Amethyst could not decrypt this message. It may not be addressed to this account. - Connected Apps Revoke all permissions Operation overrides No apps have connected yet. - apps permissions signer napplet nsite webapp trust connected - Remote Signer signer bunker nip46 nostr connect remote sign Act as a remote signer Listening on %1$d relay Listening on %1$d relays - - Listening on %1$d relay - Listening on %1$d relays, all connected - Your bunker address Paste this into another app to connect it to your key. - Bunker address copied - Generated a new bunker address - Connected - Offline - Reconnecting to relays… - - %1$d relay - %1$d relays - - App connected. Amethyst now signs for it in the background. - Connected %1$s. Amethyst now signs for it in the background. - Not a valid nostrconnect:// link - That link carries no relay to connect on - Could not connect: %1$s - Connection declined - This is a read-only account and cannot sign. - Remote signer app - - %1$d signing request - %1$d signing requests - - Select all - Select none No requests serviced yet. - Signing requests - Full-screen prompts asking you to approve an app that wants Amethyst to sign, encrypt, or decrypt with your key. - Approve a signing request? - An app wants to connect - Tap to review - - %1$d connected app - %1$d connected apps - - Relay login - auth authentication login relay sign verify nip-42 identity - Always log in - Every relay that asks. - Never log in - Some relays will refuse to serve you. - Decide per relay - Allow the cases below, ask about the rest. - \u2026it\'s my relay, or a room I joined or follow - \u2026I\'m reading someone I follow - \u2026I\'m messaging someone I follow - \u2026I\'m messaging anyone else - - %1$s and %2$d other - %1$s and %2$d others - - - It\'s also holding back %1$d other thing. - It\'s also holding back %1$d other things. - - Always log in - Never - Always, all relays - Never, all relays - Log in to every relay? - Amethyst will log in as %1$s to every relay that asks, and stop asking. Relays you blocked, and the ones you set to never log in, stay that way. You can change this under Relay login. - Never log in to any relay? - Amethyst will stop telling relays that you are %1$s, and stop asking. Some relays will refuse to serve you: messages, replies and notifications may not go through. Relays you set to always log in stay that way. You can change this under Relay login. - Always, set by you - Never, set by you - your messages - your replies - people you read - a room you post in - a room you read - your inbox - a conversation - your own relay - this relay - Shorts - Public Chats - Location Channels - Follow Packs - Live Streams - Nests - Raise hand - Lower hand - Mute - Unmute - Couldn\'t send message - Mute mic - Unmute mic - Nests - Keeps audio playing while a room is open. - Nest connected - Nest — Live - Tap to return. - Stop - raised their hand - stepped on stage - is speaking - joined as audience - left the nest - Leave - Couldn\'t mark room as closed. Leaving anyway — room will auto-close. - - %1$d listener - %1$d listeners - - Hush this speaker - Restore this speaker - Follow - Unfollow - Mute - Unmute - Couldn\'t save your nest server list. Try again. Agent console - Nest servers - Your servers - Saved as a kind-10112 replaceable event so other clients can read your preference. - Recommended servers - Built-in suggestions you can add to your list with one tap. - Videos - Music - Playlists - Episodes - Podcasts Premium - - %1$d chapter - %1$d chapters - - Value-for-Value error - This podcast has no payable value recipients. - Connect a Nostr Wallet Connect wallet to send to keysend (node) recipients. - Connect a Nostr Wallet Connect or debit wallet to stream sats while listening. - New episode - Edit episode - Publishing… - Add cover art - Square image shown for the episode - Video URL - Transcript URL - Chapters URL - Add audio file - MP3, M4A, or other audio - Your podcast - Add cover art - Square artwork for your show - Show title - My Podcast - Author - Contact email - Website - Categories - Technology, News - Funding links - https://… - Language - en - Copyright - New trailer - Add trailer clip - Short audio or video preview - - %1$d trailer - %1$d trailers - Add recipient - This user has no Lightning address - - %1$d episode - %1$d episodes - - New music track - New playlist - - %1$d track - %1$d tracks - - Add to Public Bookmarks - Remove from Public Bookmarks - Pin to Profile - Unpin from Profile - New Bookmark List - Bookmark List Metadata - Hashtag Sets - New Interest Set - Rename - Private Note - This note was delivered privately and is not signed. Only the tagged participants can see it, and nobody can prove to outsiders who wrote it. - Make private: gift-wrap the note to the notified users only - Make public - Replies to a private note always stay private - Visible to No receivers yet: only you will be able to see this note. Add people to share it with. - Only you \u2014 choose who else can see this - Add people to notify - Send privately - Already added - Muted - Private member - - %1$s, %2$s and %3$d other - %1$s, %2$s and %3$d others - - - This note will be encrypted and delivered %1$d separate time, once per person. With an external signer that is one approval each. - This note will be encrypted and delivered %1$d separate times, once per person. With an external signer that is one approval each. - - - %1$d person will get a notification for this post. - %1$d people will get a notification for this post. - - - That would be %1$d person. Amethyst adds at most %2$d at a time \u2014 deselect a few. - That would be %1$d people. Amethyst adds at most %2$d at a time \u2014 deselect a few. - - - Add %1$d person - Add %1$d people - - - Add %1$d person anyway - Add %1$d people anyway - Add Remove user from notifications - Notifying. Tap to mute the notification for this user - Muted. Tap to notify this user again Search and add a user to notify - Bookmark lists metadata can be seen by anyone on Nostr. Only your private members are encrypted. - Move to Public - Move to Private - - Top up & send zap - Send zap - Top up %1$s sats to %2$s and zap %3$s %4$s sats · fee ≈ %5$s sats - - - Option %s - (0–100)% - Single choice - Multiple choice - Unable to vote - Poll is closed to new votes - Only one vote per user is allowed on this type of poll - - - - - Poll authors can\'t vote in their own polls. - - What does this mean? - This content is the same since the post - This content has changed. The author might not have seen or approved the change - - Add Media - Add Image - Add Video - Add Document @@ -833,668 +143,152 @@ - File Server - Choose a server to upload this file to - Media Servers + + + + + + + + + Set your preferred media upload servers. Manage stored files - My Blossom Files - Copying your files across servers… - Cancel - Blossom sync - Shows progress while copying your files across your Blossom servers. - On all servers - Not on all servers Delete from… - This server requires payment to upload: %1$s - - Pay %1$d sat - Pay %1$d sats - - Enable all - Disable all - A file sync is already running. Try importing again once it finishes. - - %1$d file - %1$d files - - - Found %1$d file to import into your servers. - Found %1$d files to import into your servers. - - - Import %1$d file - Import %1$d files - Recommended Media Servers Amethyst\'s default list. You can add them individually or add the list. - Online - Slow - Offline Checking… - Payment Targets - Add payment addresses for different networks (e.g. bitcoin, lightning, ethereum). - No app found to handle this payment. Please install a compatible wallet. - No app installed to handle %1$s payments. Please install a compatible wallet. - Pay in %1$s — you choose the amount there - Pay-to hand-off - When the author publishes a payment method an app on this phone can open (Venmo, Monero, an IBAN…), the zap picker can offer it. Tapping opens that app, which asks for the amount — nothing is published to relays, so the note\'s zap count does not change. - Offer the author\'s payment methods - Unable to open payment - - BOLT12 Offers - Add one or more BOLT12 offers (lno1…). They are shared publicly so anyone can pay you. - BOLT12 payment sent - BOLT12 payment failed: %1$s - BOLT12 zap error - Paid over BOLT12, but the wallet returned no proof, so no zap receipt was published. - Paid over BOLT12, but the payment proof did not validate, so no zap receipt was published. - - - - Privacy Options - All Follows - All User Follows - Default Follow List - Around Me - Teleport to a place… - Follow this location - Unfollow this location - Global - Curated - Mine - Mute List - - New Follow List - New Follow Pack - Edit List - Default port is 9050 - Orbot Socks Port - Active Tor Engine - Use the internal version or Orbot - Tor/Privacy Presets - Quickly modify all settings below - Onion Url/Relays - Use Tor for any .onion url - DM Relays - Force Tor to send and receive DMs - Untrusted Relays - Force Tor on outbox/inbox relays - Trusted Relays - Force Tor on all relays in your lists - Profile Pictures - Force Tor when loading profile pictures - URL Previews - Force Tor when loading url previews - Images - Force Tor when loading images - Videos - Force Tor when loading videos - Money Operations - Force Tor on zaps, lightning and cashu transfers - Nostr Address Verification - Force Tor when verifying NIP-05 addresses - Media Uploads - Force Tor when uploading content - Internal - Orbot - Off - Basic - Default - All but Media - Full Privacy - Custom - Use Tor when it\'s required by the server - Hide your IP from random relays - Hide your IP from everything, but images and videos - Hide your IP in all connections - Make your own + + + + + DefaultChannelID - New notification arrived - PrivateMessagesID - Private Messages - Notifies you when a private message arrives - ZapsID - Zaps Received - Notifies you when somebody zaps you - %1$s sats - From %1$s - for %1$s - PaymentsReceivedID - Payments Received - Notifies you when your connected wallet receives a payment that is not a Nostr zap - Received %1$s sats - New payments - Reply - Mark Read - Sending… - Still sending… - Not sent - Retry - This account was removed from Amethyst. - Me - New message - You\'ve been added to %1$s - New messages - New zaps - ReactionsID - Reactions - Notifies you when somebody reacts to your post - %1$s reacted to your post - for %1$s - New reactions - ChessID - Chess - Notifies you about chess game events - %1$s accepted your chess challenge - %1$s moved — your turn - Chess updates - RepliesID - Replies - Notifies you when somebody replies to your post %1$s replied on: %1$s - New replies - MentionsID - Mentions - Notifies you when somebody mentions or cites you in a post - %1$s mentioned you - New mentions - Messages - Social - Payments - Content - Developer - Games - RepostsID - Reposts - Notifies you when somebody reposts your post - %1$s reposted your post - New reposts - MediaID - Media - Notifies you when somebody mentions you in a photo or video - %1$s shared a photo - %1$s shared a video - New media - ArticlesID - Articles & Highlights - Notifies you when somebody mentions or highlights you in an article - %1$s mentioned you in an article - %1$s highlighted your article - New articles - CodeID - Code & Git - Notifies you about issues, patches, pull requests, comments, merges, and closes - %1$s opened an issue - %1$s sent a patch - %1$s opened a pull request - %1$s updated a pull request - %1$s commented - %1$s reopened a thread - %1$s merged a pull request - %1$s applied a patch - %1$s resolved an issue - %1$s merged/resolved a thread - %1$s closed a pull request - %1$s closed a patch - %1$s closed an issue - %1$s closed a thread - %1$s marked a thread as draft - New code activity - BadgesID - Badges - Notifies you when you earn a badge - You earned a badge - Awarded by %1$s - New badges - Nutzap from %1$s - Onchain zap from %1$s - %1$s asked a question - Incoming calls - Notifications for incoming voice and video calls - Incoming call - Incoming voice call\u2026 - Incoming video call\u2026 - Call with %1$s - Calls - Ongoing call notification - Hang up - Accept - Reject - Mute - Unmute - Camera on - Camera off - Share screen - Stop sharing screen - Sharing screen - Speaker - Earpiece - Bluetooth - Amethyst needs microphone access to start a voice call. Please enable it in the app settings. - Amethyst needs camera and microphone access to start a video call. Please enable them in the app settings. - Call Settings - Relay Connection Service - Keeps connections to your inbox relays active for real-time notifications - Amethyst Notifications Active - - Connected to %1$d inbox relay - Connected to %1$d inbox relays - - - Connected to %1$d relay - Connected to %1$d relays - - Show details - Hide details - - %1$s \u00b7 %2$d relay - %1$s \u00b7 %2$d relays - - Browsing - Media - Hashtags - Topics - Conversation - Search - Finding Missing Events - Observing Events - Fetches events by id that something on your screen refers to but you don\'t have yet — a quote, a reply\'s parent, a thread root. - Watches the events currently rendered for new replies, reactions, reposts, zaps and reports, so counts update while you read. - Add-ons - Relay info - Other - Relay List Finder - Observing Profiles - Account\'s data - Home Feed - Relay Groups - - %1$d group - %1$d groups - - Ephemeral Chats - Location Chats - Live Stream Chat - NIP-29 groups you joined. Each group lives on one host relay, so the app connects to every relay that hosts a group of yours. - Chat rooms that keep no history — messages exist only while you are connected, so these stay subscribed to receive anything at all. - Location-based rooms for the areas you follow, asked of the relays that carry them. - Chat and zap goals attached to live streams you have open or follow. - DM Inbox - Wallet - Nutzap Inbox - Mint Directory - Wallet Connect - Community Chats - Community Feeds - Your inbox relays, plus a small rotating sample of the relays your follows post to, in case a mention was delivered somewhere else. - Your DM inbox relays, where gift-wrapped messages are delivered. - The home relay of each chat you have open or joined. - The relays each community publishes its planes to. - Group messages and key packages, on each group\'s relays. - The room\'s relays, while it is open. - Your own profile, settings and drafts, on your home relays. - Profiles of the people currently on screen. - Finds which relays each person publishes to, so their posts can be fetched from the right place. - Follow lists, used to build your feed and your web of trust. - Reports your follows wrote about the profiles currently on your screen, asked of each relay those follows post to. - Reports from Follows - Your own wallet events, read back from the relays you published them to. - Listens on your nutzap relays plus your inbox and DM relays, so a payment cannot slip past. - Looks across relays for which mints exist and which ones people recommend. - Notifications from your connected wallet. - Active Relay Subscriptions - - %1$d filter - %1$d filters - - - %1$d relay - %1$d relays - - - %1$d filter is not attributed yet - %1$d filters are not attributed yet - %1$s \u00b7 %2$s - %1$d%% of all - subscriptions filters relays requests reqs connections why diagnostics - Posts by people you follow, read from the relays each of them publishes to. - Connecting to inbox relays\u2026 Always-on notification service Keeps a persistent connection to your inbox relays for instant notification delivery. Shows an ongoing notification. Uses more battery but ensures you never miss a message. Notification service - On - Off - Background notification service - Master switch for real-time background notifications. Turn off to save battery — like an airplane mode. When off, no account stays connected in the background, and it stays off (across restarts) until you turn it back on. - Accounts active in the background Keep this account active in the background - Split notifications by Follows - Show two notification tabs — Following (people you follow) and Everyone. The unread indicator glows only for activity from people you follow. - Show Messages - Include direct and group messages on the Notification tab. Turn off to keep messages only in the Messages tab. - - - Notify: - - - Today - - - Hide - Show - Warn - - - Filter spam - Hides posts from strangers that were exactly the same for 5 or more times - Add client tag to my events - When enabled, Amethyst appends a NIP-89 client tag to events you publish. - Warn on reports - Shows a warning message when posts or profiles have reports from your follows - Hide posts that violate community rules - Drops posts from community feeds when the community publishes a NIP-9B rules document and an event would fail it. No effect when a community has no structured rules. - - Filtering preferences - Blocked content - You haven\'t blocked any users yet. - No accounts have been flagged as spam in this session. - No hidden words. Add a word below to hide posts containing it. - - No reaction types pre-selected for this user. Long press on the heart button to change - - - Read from Relay - Write to Relay - The amount in bytes that was sent to this relay, including filters and events - The amount in bytes that was received from this relay, including filters and events - Privacy Policy - Child Safety Standards - About & Legal - Cashu Token - - - No Lightning Address set - Relays - - Follow Packs - Reads - Feed Algorithms - Marketplace - Live Streams - Communities - Chats - Sensitive Content - Adds sensitive content warning before showing this content - UI Preferences + + + + + + + + + + + + + + + App Preferences - Translations - Reactions - Settings - Account Settings - App Settings - relays, inbox, outbox, connections, servers - tor, orbot, proxy, privacy, anonymous - dark mode, light mode, theme, font size, language, appearance - push, alerts, sounds, vibration - spam, block, mute, filter, warnings - lightning, sats, tips, wallet, amount, payto, pay-to, venmo, paypal, cash app, monero, iban, hand-off - blossom, uploads, images, photos, files, cdn, storage - negentropy, sync, reconcile, backfill - contacts, follows, follow list, import - audio rooms, live, spaces, rooms buzz, agents, personas, cost, tokens, fleet, ai, turn metrics - badges, awards - dvm, data vending machine, algo, algorithm, feeds - emoji, like, reaction - video, player, playback, autoplay, mute - audio, visualizer, spectrum, bars, waves, radial, aurora, animation - zap split, split, recipients, forward zaps - bolt12, bolt 12, offer, lno, lightning, zap, reusable invoice - webrtc, video call, voice call, calls - language, translate, locale - opentimestamps, timestamp, ots, proof - namecoin, dns, identity, name - calendar, events, reminders, rsvp - draft, posting, editor, auto-save, signature, proof of work, pow, mining, nip-13 - emoji, reactions, like - navigation, tabs, nav bar - side menu, drawer, hamburger, sections, hide, show - tabs, feeds, threads, conversations - profile, layout - nsec, private key, seed, mnemonic, export - delete account, vanish, gdpr - deletion, delete events - mls, group chat, messaging, reset - legal, terms, tos, policy, gdpr - legal, safety, abuse, csae, child protection - Danger Zone - Reset Marmot State - Marmot state reset. - Failed to reset Marmot state: %1$s - Always - Unmetered WiFi - Never - Wi-Fi - Complete - Simplified - Performance - Full - Simple - Fast - Classic - Modern - System - Light - Dark - Appearance - Media & Data - General - Connection - Route through Tor - Sections & feeds - Visible tabs - Content in the feed - Text notes - Reposts - Comments & replies - Pictures - Videos - Shorts - Articles - Wiki pages - Highlights - Polls - Classifieds - Torrents - Voice messages - Live activities - Ephemeral chats - Interactive stories - Chess games - Bird sightings - Attestations - NIP drafts - Music & audio - Podcasts - Fundraisers - Ratings and reviews - Rated %1$s out of 5 - Learning resource - Directory - File record - - %1$d item - %1$d items - - - %1$d more item - %1$d more items - - Reminders - Wallet Connect - Theme - Purple - Blue - Green - Orange - Red - Pink - Font - Typeface used throughout the app - System Default - Sans Serif - Serif - Monospace - System - Sans - Serif - Mono - Font Size - Scale the text size across the app - Small - Normal - Large - Huge - Image Preview - Video Playback - Autoplay Videos - URL Preview - Immersive Scrolling - Hide Nav Bars when Scrolling - - UI Mode - Choose the post style - - Profile Gallery Style - Choose the gallery style - - - Spammers - - Muted. Click to unmute - Sound on. Click to mute - Skip back %d seconds - Skip forward %d seconds - - - - Pick a place on the map - Change place on the map - - Location-exclusive Post - Only followers of the location will see it. Your general followers won\'t see it. - - %1$d track - %1$d tracks - - - +%1$d more track - +%1$d more tracks - - Upload a cover image - Pick a square image to be the artwork for this track. - Upload an audio file - Pick an MP3, WAV, or FLAC. It will be uploaded to your media server on Save. - Uploading cover + audio and publishing. This will keep going even if you leave the screen. - Edit playlist - Upload a cover image - Pick a square image to be the artwork for this playlist. - Uploading cover and publishing. This will keep going even if you leave the screen. + + + + + + + + + @@ -1505,91 +299,13 @@ - Private - Encrypted groups - Relay-aware - Private Message - Direct messages, end-to-end encrypted - 1:1–5 rooms - One-on-one and small group chats with people you know. - New message - 1-on-1 & small groups - End-to-end encrypted - Can\'t add users later - Marmot Group - Bigger private groups - Device-bound - Larger private groups that outgrow small-group DMs. - Create group - Scales past small DMs - Encrypted group chat - Device-bound — won\'t appear if you sign in elsewhere - Concord Community - Communities split by channel - Workspaces - Massive communities, organized by channels or workstreams. - Create community - Scales to huge communities - Split by channel / workstream - More to set up - Public Chat - Public messages on a relay - Unmoderated - Open public rooms where anyone can post. - Create public chat - Anyone can join - Simple & discoverable - Public only - No moderation - Relay Group - Relay-run, public or private - Moderated - Groups moderated by the relay that hosts them. - Browse relay groups - Moderated by the relay - Public or private - Tied to that one relay - Disappearing Chat - Whoever\'s online, right now - Live now - In-the-moment chat with whoever is online right now. - Start chat - Talk to who\'s online now - Nothing is saved - No history - Relay-scoped - Relay Groups - Relay groups - Messages - messages, chats, groups, nip-29, relay, inline, dm, nip-04, nip-17, nip-28, concord, marmot, geohash, ephemeral, load - Private messages - End-to-end encrypted, gift-wrapped direct messages (NIP-17). - Legacy DMs - Older, less-private encrypted direct messages (NIP-04). - Public channels - Open, public chat rooms anyone can read and join (NIP-28). - Relay groups - Relay-managed group chats with rosters and moderation (NIP-29). - Encrypted groups - MLS end-to-end encrypted group chats (Marmot). - Concord communities - Encrypted communities with multiple channels (Concord). - Location chats - Public geohash-scoped chat for a place (Geolocation). - Ephemeral chats - Lightweight, relay-scoped rooms that don\'t persist history. - Create a group - New channel - New forum - Private channel - Hidden from the channel list and invite-only. Off means anyone on this relay can find and join it. Forum channel Threaded posts instead of a chat timeline. This cannot be changed later. Group name @@ -1599,33 +315,19 @@ Create Creating an invite… Invite code copied - Edit group Group name Topic (optional) Private (members-only read) Invite only Save - Delete group - Delete \"%1$s\"? This removes the group and its history for everyone, and cannot be undone. - Delete channel - Delete \"%1$s\"? This removes the channel and its messages for everyone, and cannot be undone. - Archive channel - Unarchive channel Change location - Private - Only members can read messages. Looking for groups across your relays… No groups found for this filter yet. - Title Write something… Post Added to %1$s - - %1$d member - %1$d members - %1$d message %1$d messages @@ -1638,40 +340,15 @@ %1$d person you follow %1$d people you follow - - %1$d group - %1$d groups - Private - Subject - - Can\'t Upload - Insert the destination of the message first - Wallet not found - Amethyst couldn\'t find any wallet apps that support Nostr Wallet Connect (NWC). -\n\nWhat you can do: -\n\t1. Verify NWC Support: Double-check that your preferred wallet app is compatible with Nostr Wallet Connect. -\n\t2. Create Connection: Go to your wallet app and create a new NWC connection. -\n\t3. Link to Amethyst: Your wallet will usually give you three options: -\n\t\t3.1 Automatic Link: A button to automatically open and connect to Amethyst. If so, click that button, open Amethyst and hit save on the new screen. -\n\t\t3.2 Manual Link: A Connection URI you can copy and click the paste icon on this screen to directly input it. -\n\t\t3.3 QR Code: The wallet creates a QR code which you can read from the QR code button in this screen. - - - Dark, Light or System theme - Automatically load images and GIFs - Automatically load videos and GIFs - Automatically play videos when visible on screen - Show URL previews - Copy to clipboard - Copied to clipboard - Share or Save + + Send as DM New Highlight New Picture @@ -1680,91 +357,7 @@ Scan QR code Scan QR Scan a QR code - New Highlight Highlighted text - Add your thoughts… - Media added - Media added to your Profile Gallery - - - - - - - Unable to send zap - - - - - - Missing lightning setup - User %1$s does not have a lightning address set up to receive sats - - Error opening signer app - The signer app could not be found. Check if the app hasn\'t been uninstalled - - Can\'t play this video - The codec or format isn\'t supported on this device (%1$s). Try opening it in your browser. - Open in browser - Sign request rejected - Make sure the signer application has authorized this transaction - - No Wallets found to pay a lightning invoice (Error: %1$s). Please install a Lightning wallet to use zaps - No Wallets found to pay a lightning invoice. Please install a Lightning wallet to use zaps - - Can\'t open Blossom links - Blossom apps were not found. Please install a local Blossom app to see this file - - Hidden Words - Muted threads - No muted threads - Profile Picture - Show Profile pictures - - - Could not pay invoice - Could not withdraw - - - Could not redeem Cashu - Mint provided the following error message: %1$s - Unsafe Cashu mint address - Amethyst did not contact this token\'s mint. %1$s - - Cashu Received - %1$s sats were sent to your wallet. (Fees: %2$s sats) - No compatible Cashu wallet found on system - - Unable to fetch invoice from receiver\'s servers - - Your wallet connect provider returned the following error: %1$s - Your wallet connect provider sent a reply Amethyst could not read. - - Could not assemble LNUrl from Lightning Address \"%1$s\". Check the user\'s setup - Could not fetch invoice from %1$s: %2$s - Error Parsing JSON from %1$s. Check the user\'s lightning setup - - Callback URL not found from %1$s\'s response - - - Incorrect invoice amount (%1$s sats) from %2$s. It should have been %3$s - Unable to create a lightning invoice before sending the zap. The receiver\'s lightning wallet sent the following error: %1$s - - - - Read-only user - No reactions setup - - Notifications - Delivery - In-app display - Categories - - - - Message from %1$s - Block Relay - Hi %1$s, is this still available? @@ -1772,237 +365,74 @@ - Clothing - Accessories - Electronics - Furniture - Collectibles - Books - Pets - Sports - Fitness - Art - Crafts - Home - Office - Food - Miscellaneous - Other - - Failed to upload media - Could not open the compressed file - Uploading error: %1$s - Server did not provide a URL after uploading - Could not download uploaded media from the server - Could not check downloaded file after upload: %1$s - Failed to upload to %1$s: %2$s - Failed to delete: %1$s - Media is too big for NIP-95 - Encrypt files - Encrypt files before uploading for privacy. Some servers may not accept encrypted files on free accounts. - Encrypted upload failed - Many servers do not accept encrypted files on free accounts. You can retry without encryption. - - Use H.265/HEVC Codec - Better quality at smaller file sizes but not all devices support H.265 playback. - Convert GIF to MP4 - Converts animated GIF to MP4 video for smaller file size and better playback compatibility. - Remove private metadata - Attempts to strip private metadata from supported media files before uploading - - Metadata could not be removed - Failed to strip private metadata from media. Upload cancelled. - Upload cancelled - Cannot strip metadata from AVIF: %1$s - Home - Discover - Messages - Notifications + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - Media - Calendars - Geocaches - Cache hunts - Cache - Hunt - Log a find - Hide a cache - Edit cache - New hunt - Edit hunt - Calendar lists - Chess - Wallet - Could not load transactions - Could not load more transactions - Could not load your balance - Could not create the invoice - Your wallet did not return an invoice - Wallet request timed out - Could not reach your wallet: %1$s - Your wallet replied with something Amethyst does not recognise (%1$s) - Amethyst could not decrypt your wallet\'s reply — the wallet may be using a different key - Cashu wallet (NIP-60) Nutzap key (advanced) A separate private key used only to receive NIP-61 nutzaps. Not your Nostr identity key. Generate a new key P2PK private key (hex) - Edit mints Save changes - - +%1$d more - +%1$d more - - - Recommended by %1$d other - Recommended by %1$d others - - Popular mints - Matching mints - Received - Sent - Publish a delete request for your kind:38000 recommendation of %1$s. Relays that honor NIP-09 will drop it. - Recovered %1$s sats across %2$s proofs. - Pay %1$s sat + up to %2$s sat in fees? - Nutzap failed - No recipient pubkey on the note - Nutzaps are public and would reveal this private note. Use a Lightning zap instead. - Cannot build event reference - Waiting for the invoice to be paid… - Checking the mint… - Slow - Normal - Fast - ~1 hr - ~30 min - ~10 min - %1$s · %2$s sat/vB · %3$s - - Send %1$s sats, %2$d way - Send %1$s sats, %2$d ways - - - Use this note\'s %1$d-way zap split - Use this note\'s %1$d-way zap split - - - Splits among %1$d recipient - Splits among %1$d recipients - - - Skipping %1$d Lightning-address-only recipient — on-chain needs a Nostr pubkey to derive the address. - Skipping %1$d Lightning-address-only recipients — on-chain needs a Nostr pubkey to derive the address. - - loading balance - building the transaction - signing - broadcasting - publishing the receipt - Bitcoin chain backend is not configured - Could not load your Bitcoin balance - Could not build the transaction - A recipient share is below dust - Could not sign the transaction - Could not broadcast the transaction - Payment sent, but the zap receipt could not be published - - Payment sent (%1$d of %2$d receipt published), but the next receipt could not be published - Payment sent (%1$d of %2$d receipts published), but the next receipt could not be published - - - Import Follows - - New Product - New Article - New Calendar Event - Edit Calendar Event - New Calendar - Edit Calendar - - Feed - Month - Week - Day - - %1$s, %2$d event - %1$s, %2$d events - - Happening now - %1$s · ends %2$s - Share calendar event - calendar_reminders - Calendar reminders - Heads-up when an event you\'re attending is about to start. - Calendar event - - Starts in %1$d minute - Starts in %1$d minutes - - Image upload failed - The picked image couldn\'t be uploaded. Try again or paste a URL. - Calendar reminders - Send reminders - A notification fires when an event you\'re attending is about to start. - - %1$d min - %1$d min - - Open in maps - Open link - Open all reactions to this post - Close all reactions to this post - - Zap - Bottom Navigation Bar + + + + Drag the pinned items to reorder. Open a category below and toggle an item to add or remove it. Open Browser or a chat type to pin a favorite or a specific group. With zero items the bottom bar is hidden. Reorder - No favorites yet. Star an app in the Browser to add it here. - No joined groups yet. - Add - Added - Main - Chats & Groups - You - Feeds - Apps & Web - Other - Side Menu - - %1$d hidden - %1$d hidden - - Visible - Hidden - Always on Pick which tabs appear on the Home screen. When only one tab is active the tab bar is hidden. - Everything - Profile UI Pick which sections and feeds appear on user profile screens. All options are enabled by default. - Profile Badges - App Recommendations - Zap Received Feed - Followers Feed - Bitcoin (on-chain) Wallet - Reaction Row - Video Player Buttons - Audio Visualizer @@ -2019,10 +449,6 @@ - Edit - Edit - Editing message - %1$s and %2$s are typing… Buzz Workspaces Where humans and agents build together Leave workspace @@ -2039,84 +465,25 @@ No channels found You don\'t seem to be a member of any channels on this relay yet. Accept the workspace invite in the browser first, then try again. - Pin channel - Unpin channel - - %1$d hidden conversation - %1$d hidden conversations - - - See %1$d more conversation - See all %1$d conversations - - Waiting for a relay to accept this message - No relay information for this message - Accepted by at least one relay - Delivered to all recipients\' relays - - Expiration Date - The author asked relays to delete this note after %1$s. It will disappear from feeds once it expires. - - Invalid address - Amethyst received a URI to open but that uri was invalid: %1$s - - DM Inbox Relays - - Search Relays - Good options are:\n%1$s - - Outbox Relays - - Inbox Relays - - Relay Settings - Public Outbox/Home Relays - User is posting his content to these relays - This relay type stores all your content. Amethyst will send your posts here and others will use these relays to find your content. Insert between 1–3 relays. They can be personal relays, paid relays or public relays. - Public Inbox Relays - User is receiving notifications on these relays - This relay type receives all replies, comments, likes and zaps to your posts. They can be paid or free relays. Limits set by the relay operator can limit the notifications you receive for the good and for the bad. For example, if you are being attacked by comment spam, paid relays can filter the spam out. Insert between 1–3 relays. - DM Inbox Relays - User receives DMs on these relays - Insert between 1–3 relays to serve as your private inbox. Others will use these relays to send DMs to you. DM Inbox relays should accept any message from anyone, but only allow you to download them. Good options are:\n - inbox.nostr.wine (paid)\n - auth.nostr1.com (free)\n - you.nostr1.com (personal relays - paid) - KeyPackages - KeyPackage Relays - Relays where your MLS KeyPackages are published (MIP-00). Other users fetch these KeyPackages to invite you into Marmot group chats. Insert between 1–3 relays that accept KeyPackage events from you and allow public reads. - Private Home Relays - Insert between 1–3 relays to store events no one else can see, like your Drafts and/or app settings. Ideally, these relays are either local or require authentication before downloading each user\'s content. - Connected Relays - Current list of relays being used - Search Relays - List of relays to use when searching content or users. Tagging and search will not work if no options are available. Make sure they implement NIP-50. - Local Relays - List of relays that are running in this device. - Forward profiles to local relay - Send all received profile (kind 0) events to your local relay - Trusted Relays - Relays you trust to not need a Tor connection for - Favorite Relay Feeds - Relays you frequently go to see their Global feed - Proxy Relays - Aggregator relays the app must use to download your feeds from, like filter.nostr.wine. This replaces the outbox model and will make the app connect to only the relays in your lists. - Broadcast Relays - Relays that specialize in pushing your notes to all of the other relays, like sendit.nosflare.com. Amethyst will add this relay to all new events made by you - Indexer Relays - Relays that specialize in hosting everyone\'s metadata and relay lists, like purplepag.es. Amethyst will use these relays to find users that are not in your lists. - Blocked Relays - Amethyst will never connect to these relays - Export relay settings + + + + + + + Web: Overview @@ -2126,448 +493,56 @@ Maintainers Topics Readme - - %1$d item - %1$d items - Close issue Reopen - Git Repositories - Highlights - Filter repositories - Close filter - - Timestamp Proof - There\'s proof this post was signed sometime before %1$s. The proof was stamped in the Bitcoin blockchain at that date and time. - A timestamp proof for this post has been requested and is waiting to be stamped in the Bitcoin blockchain. It usually completes within a few hours. - - Edit Post - It\'s not possible to reply a draft note - It\'s not possible to quote a draft note - It\'s not possible to react a draft note - It\'s not possible to zap a draft note - Draft Note - Bad Request - The server can’t or won’t process the request. - Unauthorized - The user doesn’t have valid authentication credentials - Payment Required - The server requires payment to complete the request - Forbidden - The user doesn’t have access rights to make the request - Not Found - The server can’t find the requested address - Method Not Allowed - The server supports the request method, but not the target resource - Not Acceptable - The server doesn’t find any content that satisfies the request. - Proxy Authentication Required - The user doesn’t have valid authentication credentials - Request Timeout - The server timed out waiting for somebody else - Conflict - The server can’t fulfill the request because there’s a conflict with the resource - Gone - The content requested has been permanently deleted from the server and will not be reinstated - Length Required - The server rejects the request because it requires a defined - Precondition Failed - The request\'s preconditions in the header fields that the server fails to meet - Payload Too Large - The request is larger than the server’s defined limits, and the server refuses to process it - URI Too Long - The url requested by the client is too long for the server to process. - Unsupported Media Type - The request uses a media format the server does not support - Range Not Satisfiable - The server can’t fulfill the value indicated in the request’s Range header field. - Expectation Failed - The server can’t meet the requirements indicated by the Expect request header field - Upgrade Required - The server refuses to process the request using the current protocol unless the client upgrades to a different protocol. - Internal Server Error - The server has encountered an unexpected error and cannot complete the request - Not Implemented - The server can’t fulfill the request or doesn’t recognize the request method - Bad Gateway - The server acts as a gateway and got an invalid response from the host - Service Unavailable - This often occurs when a server is overloaded or down for maintenance - Gateway Timeout - The server was acting as a gateway or proxy and timed out, waiting for a response - HTTP Version Not Supported - The server doesn’t support the HTTP version in the request - Variant Also Negotiates - The server has an internal configuration error - Insufficient Storage - The server doesn’t have enough storage to process the request successfully - Loop Detected - The server detects an infinite loop while processing the request - Network Authentication Required - The client must be authenticated to access the network + + Blossom Servers Add as many servers as you want. You can choose which one to use later when uploading your picture - Add a NIP-96 Server - Add a Blossom Server Download - Failed to open file - No torrent apps installed to open and download the file. - Event doesn\'t have enough information to build a magnet link - My Lists - Feeds - Hashtags - Interest Sets - Locations - Communities - Lists - Feed Algorithms - All favorite feed algorithms - Relays - Favorite Feed Algorithms - Private Message - Public Message - - Unable to share image, please try again later… - Unable to share video, please try again later… - Downloading video… - Don\'t Translate From - Languages shown here will not be translated. Select a language to remove it and have it translated again. - Translate To - Choose the language to translate content into. - Language Display Preferences - For each translated language pair, choose which language to show first. - Pause - Play - App resource usage - battery data usage consumption power network diagnostics ledger + Today Last 7 days - Cellular today - Wi-Fi today - Relay time today - In app today - Data per day - Cellular (MB) - Wi-Fi (MB) - Activity (7 days) Cellular data (background) Cellular data (in app) Wi-Fi data - Relay connection time - \u2026 backgrounded on cellular - Notification processing (CPU awake) - Background jobs run - Relay reconnections (failed) - Web requests - Radio wake-ups for downloads (est.) - Active transfer time - Media playback time - Signatures verified - Processor time used Time in app - App process starts - Messages decrypted - Remote signatures - Proof-of-work mining - Tor uptime - Time in calls - Time in audio rooms - Location listening - Battery used (in app / background) - Background notification service - Running time - - %1$d start - %1$d starts - - Relay connections held while closed - Battery drained meanwhile (whole device) - Battery / hour in app - Data / hour in app - Avg. relay connections - Cellular data by feature (7 days) - Time by screen (7 days) - Built-in Tor - Data by feature (7 days) - Relay sync - Images - Video & audio - Uploads - Wallet & zaps - Address verification - Link previews - Push registration - Other - Memory right now - App memory (heap) - Native memory - Image cache (RAM) - Image cache (disk) - Notes in memory - Profiles in memory - Addressable events in memory - Chatroom lists in memory - Device memory class - Share with the developers - Share - Amethyst consumed more than expected recently: %1$s. Would you like to send a usage report to the developers in an encrypted DM? You will see the full report before anything is sent. - %1$s of cellular data in the background in one day - %1$s of relay connections while backgrounded on cellular in one day - the CPU was held awake for %1$s processing notifications in one day - - the app process restarted %1$d time in one day - the app process restarted %1$d times in one day - - - the app reconnected to relays %1$d time in one day - the app reconnected to relays %1$d times in one day - - This message will disappear in %1$s - Follow List Metadata - Follow lists metadata can be seen by anyone on Nostr. Only your private members are encrypted. - - Follow Pack Metadata - Follow pack metadata can be seen by anyone on Nostr and is frequently published in many websites as startup kits for new users. - - Edit Follow Pack - Expand - Retry - Reaction - Voice Post - Voice Reply - - · %1$d selection - · %1$d selections - - %1$d of %2$d responses loaded from %3$d relays. - %1$d of about %2$d responses loaded from %3$d relays. - - %1$d vote › - %1$d votes › - - - %1$d voter - %1$d voters - - - %1$d vote arrived after the poll closed and is excluded. - %1$d votes arrived after the poll closed and are excluded. - - - %1$d vote is dated before the poll was published and is excluded. - %1$d votes are dated before the poll was published and are excluded. - - - %1$d response did not pick a valid option and is excluded. - %1$d responses did not pick a valid option and are excluded. - - - %1$d voter is hidden by your mute list. - %1$d voters are hidden by your mute list. - + + - Outbox Relays - Apps - App Recommendations - User Settings - Audio Header - Audio Track - Music Track - Music Playlist - Podcast Episode - Podcast Show - Authored Podcasts - Favorite Podcasts - Badge Awards - Badge Definitions - Accepted Badge Set - Profile Badges - Blocked Relays - Blossom Servers - Nests Servers - Blossom Auth - Broadcast Relays - Bookmark List - Old Bookmark List - Day Appointment - Calendar - Appointment - Appt RSVP - Chess Games - Chess Auth - Favorite Relays - Chess Challenges - Chess Game Accept - Chess Move - Chess Game End - Chess Draw Offer - Channel Definition - Channel Hide Msg - Channel List - Channel Message - Channel Metadata - Channel Mute User - DM File - DM Message - DM Relays - Classifieds - Comments - Community Def - Community List - Community Post - Follow List - Deletions - Drafts - Emoji Packs - Emoji Pack List - Ephemeral Chat - Ephemeral Chatrooms - File Headers - Profile Gallery - File Servers - Blob Data - Blob Headers - Medical Data - Follow Packs - Reposts (16) - Geohash Follows - GiftWraps - Git Issue - Git Patch - Git Repo - Git Reply - Pull Request - PR Update - Git Status: Open - Git Status: Applied - Git Status: Closed - Git Status: Draft - Zap Goals - Hashtag Follows - Highlights - Http Auth - Index Relay List - Adventure Prologue - Adventure Scene - Adventure Reading - Named Bookmarks - Live Chats - Live Streams - Zaps - NWC Request - NWC Response - Private Zaps - Zap Req - Blogs - Meeting Room - Room Presence - Meeting Space - Profile - Mute List - NNS - NIP - Nostr Connect - DVM Status - DVM Content Req - DVM Content Resp - DVM User Req - DVM User Resp - OTS - PayTo - People Lists - Pictures - Workouts - Pins - Zap Poll - Poll - Poll Response - NIP-04 DMs - Private Relays - Proxy Relays - Public Message - Reactions - Contact Card - Relay Auth - Relay Discovery - Relay Monitor Announcement - Relay Set - Reports - Reposts - User Delete - Seals - Search Relays - User Status - Notes - Edits - Torrents - Torrent Comments - Trusted Relays - Trusted Providers - Video (Repl) - Shorts (Repl) - Video - Shorts - Voice Msg - Voice Reply - WakeUp - Web Bookmark - Wiki - %1$d%% uptime - Namecoin Settings - %dms - Relay Sync - Bitcoin Explorer (OTS) - events from you - events to you - searchable events - DMs - profiles - outbox lists - Last seen %1$s ago - Last seen on %1$s (%2$s ago) - Last seen just now - Never seen - - %1$d minute - %1$d minutes - - - %1$d hour - %1$d hours - - - %1$d day - %1$d days - - - %1$d week - %1$d weeks - - - %1$d month - %1$d months - - - %1$d year - %1$d years - - - %1$d mint - %1$d mints - - - %1$d pending invoice - %1$d pending invoices - - - Funds held at %1$d mint you don\'t use - Funds held at %1$d mints you don\'t use - - Moved %1$s sat to %2$s. @@ -2575,182 +550,23 @@ - Cast to device - Stop casting - HLS Upload - Uploading %1$s (%2$d of %3$d) - Attestation - Attestation Request - Attestor Recommendation - Attestor Proficiency - Web Bookmarks - Add Web Bookmark - Edit Web Bookmark - %1$s funded of %2$s sats goal - New Goal - Request to Vanish - Vanish request sent - Vanish History - Users - Events - Kinds - IPs - Settings - Propose text improvements - Uses an on-device AI model to propose text corrections and tone changes. - Tracked broadcasts - Use the tracked broadcaster when sending events. Shows live progress and per-relay status while broadcasting. - Suggest workouts to share - Reads finished workouts from Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) and suggests sharing them as a post. Permission is requested only when you connect. - Compose Settings - Automatically create drafts - Saves a draft event automatically when you type or leave a composer with unsent text and sends to your private outbox relays. - Proof of Work - The author spent computing power to mine this note to difficulty %1$s — a proof-of-work stamp that makes spamming expensive. - Short notes & replies - The primary public spam surface - Comments - Replies to articles, files and other content - Reports - Relays weigh reports by their cost - Long-form & highlights - Articles and highlights; infrequent, cost is negligible - Voice messages - Public voice posts and replies - Reposts - High volume for active users - Reactions - Highest-volume kind; mining every like costs battery - Public & live chat - Mining delays hurt conversation flow - Private message wraps - Lets DM relays filter inbox spam; only the outer wrap is mined, never your message - Other public content - Polls, live statuses, classifieds and everything else public - Mining proof of work - - Mining proof of work… (%1$d post in queue) - Mining proof of work… (%1$d posts in queue) - - - %1$s • mining at %2$d bit - %1$s • mining at %2$d bits - - - %1$s • waiting to mine at %2$d bit - %1$s • waiting to mine at %2$d bits - - - Default (%1$d bit) - Default (%1$d bits) - - - %1$d bit - %1$d bits - - Proof of work mining - Shows posts that are still mining their NIP-13 proof of work so they can finish after you leave the app. - Cancel - Send now - <1 s - - %1$d second - %1$d seconds - - - %1$d minute - %1$d minutes - - - %1$d hour - %1$d hours - - - %1$d day - %1$d days - - ≈ %1$s left - any moment now - Your %1$s finished mining but could not be published: %2$s - Your %1$s finished mining but could not be published. It will be retried the next time the app starts. - Chat message - Report - New emoji pack - Edit emoji pack - My Emoji Packs - Emojis - Public emojis are visible to everyone and appear in your reaction menu and \":\" autocomplete picker when this pack is in your emoji list. - Private emojis are stored encrypted on relays and visible only to you. They appear in your reaction menu and \":\" autocomplete just like public ones. - Draft is %1$d bytes; this community caps this kind at %2$d bytes. - Draft is %1$d bytes; this community caps events at %2$d bytes. - You have already posted %1$d events of this kind today (limit %2$d). - Nowhere site - Nowhere Event - Nowhere Fundraiser - Nowhere Store - Nowhere Petition - Nowhere Message - Nowhere Drop - Nowhere Art - Nowhere Forum - - %1$d msg - %1$d msgs - - - %1$d member - %1$d members - - - Your wallet did not respond within %1$d second. The payment may or may not have gone through — check your wallet before retrying. - Your wallet did not respond within %1$d seconds. The payment may or may not have gone through — check your wallet before retrying. - - - Wallet request timed out — %1$d reply was rejected because it was signed by an unexpected key. Your relay may be untrusted. - Wallet request timed out — %1$d replies were rejected because they were signed by an unexpected key. Your relay may be untrusted. - - Add photo - Change photo - Group info updated - Failed to update: %1$s - Failed to create group: %1$s - Failed to leave group: %1$s - Add a Blossom media server in Settings first — the group needs somewhere to upload attachments to. - This group now uses encrypted attachments - Could not switch this group to encrypted attachments: %1$s - Group disbanded - Ending the group. It finishes once the group agrees. - This group is being ended. You can still read it. - You are leaving this group. - You are no longer a member of this group. - Could not disband the group: %1$s - Adding %1$s… - Failed to add %1$s: %2$s - unknown error - Member removed - Failed to remove member: %1$s - Admin privileges granted - Failed to grant admin: %1$s - Admin privileges revoked - Failed to revoke admin: %1$s - Not a member of this group The receiver\'s lightning service at %1$s is not available. It was calculated from the lightning address \"%2$s\". Error: %3$s. Check if the server is up and if the lightning address is correct Could not resolve %1$s. Check if you are connected, if the server is up and if the lightning address %2$s is correct.\n\nException was: %3$s @@ -2759,32 +575,14 @@ Unable to create a lightning invoice from %1$s: Element pr not found in the resulting JSON. Amy Debug Amy Benchmark - Location chat - Location channel - Chat with whoever\'s near a place, by geohash. - Local - Best for talking to people physically around a location — your block, city, or region. - Pick a location - Anonymous — a throwaway identity per area, never your npub. - Bitchat-compatible; reaches nearby users on the same relays. - Public and ephemeral — no history, anyone in the cell can read it. - Queued - Working - Needs approval - Approved - Shipped - Failed - Cancelled - Denied - Value-for-Value - My Fitness - Off - Captions - Turn on captions - Turn off captions - Video List - Video Collaboration - Video Subtitles - Inspired by - Featuring - References - Audio from - Credit accepted - Accepted a collaboration credit - Declined a collaboration credit - Private list - This list has private members only its author can see - Git authors - Media follows - Trusted wiki authors - Trusted wiki relays - Muted for kind %1$s - Media starter pack - Bookmark set - Article list - Picture list - App list - Git repositories - Favorite feeds - Interests - Groups - - %1$d video - %1$d videos - diff --git a/amethyst/src/play/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/LegalSettingsSection.kt b/amethyst/src/play/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/LegalSettingsSection.kt index 8c9bf6f5d9..03ffe47da7 100644 --- a/amethyst/src/play/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/LegalSettingsSection.kt +++ b/amethyst/src/play/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/LegalSettingsSection.kt @@ -21,19 +21,24 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn.settings import androidx.compose.ui.platform.UriHandler -import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.about_legal +import com.vitorpamplona.amethyst.commons.resources.child_safety_search_keywords +import com.vitorpamplona.amethyst.commons.resources.child_safety_standards +import com.vitorpamplona.amethyst.commons.resources.privacy_policy +import com.vitorpamplona.amethyst.commons.resources.privacy_policy_search_keywords /** Play build surfaces the GitHub-hosted legal policy links. */ fun legalSettingsCategory(uriHandler: UriHandler): SettingsCategory? = SettingsCategory( - titleRes = R.string.about_legal, + titleRes = Res.string.about_legal, entries = listOf( SettingsEntry( - titleRes = R.string.privacy_policy, + titleRes = Res.string.privacy_policy, icon = SettingsIcon.Symbol(MaterialSymbols.Lock), - keywordsRes = R.string.privacy_policy_search_keywords, + keywordsRes = Res.string.privacy_policy_search_keywords, onClick = { runCatching { uriHandler.openUri( @@ -43,9 +48,9 @@ fun legalSettingsCategory(uriHandler: UriHandler): SettingsCategory? = }, ), SettingsEntry( - titleRes = R.string.child_safety_standards, + titleRes = Res.string.child_safety_standards, icon = SettingsIcon.Symbol(MaterialSymbols.Shield), - keywordsRes = R.string.child_safety_search_keywords, + keywordsRes = Res.string.child_safety_search_keywords, onClick = { runCatching { uriHandler.openUri( diff --git a/amethyst/src/test/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/LoginViewModelKeyKindTest.kt b/amethyst/src/test/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/LoginViewModelKeyKindTest.kt index 839d80dc38..814a5b1ba2 100644 --- a/amethyst/src/test/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/LoginViewModelKeyKindTest.kt +++ b/amethyst/src/test/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/login/LoginViewModelKeyKindTest.kt @@ -21,7 +21,9 @@ package com.vitorpamplona.amethyst.ui.screen.loggedOff.login import androidx.compose.ui.text.input.TextFieldValue -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.login_bunker_not_supported +import com.vitorpamplona.amethyst.commons.resources.login_nostrconnect_not_supported import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse import org.junit.Test @@ -50,7 +52,7 @@ class LoginViewModelKeyKindTest { val model = viewModelWithKey("bunker://${"a".repeat(64)}?relay=wss%3A%2F%2Fr.example&secret=s1") assertFalse(model.checkCanLogin()) - assertEquals(R.string.login_bunker_not_supported, errorResIdOf(model)) + assertEquals(Res.string.login_bunker_not_supported, errorResIdOf(model)) } /** Same defect, same field: a connect offer is not a sign-in method either. */ @@ -59,7 +61,7 @@ class LoginViewModelKeyKindTest { val model = viewModelWithKey("nostrconnect://${"b".repeat(64)}?relay=wss%3A%2F%2Fr.example&secret=s1") assertFalse(model.checkCanLogin()) - assertEquals(R.string.login_nostrconnect_not_supported, errorResIdOf(model)) + assertEquals(Res.string.login_nostrconnect_not_supported, errorResIdOf(model)) } /** Pasted from a chat app, which loves to add a trailing space. */ @@ -68,7 +70,7 @@ class LoginViewModelKeyKindTest { val model = viewModelWithKey(" bunker://${"a".repeat(64)}?secret=s1 ") assertFalse(model.checkCanLogin()) - assertEquals(R.string.login_bunker_not_supported, errorResIdOf(model)) + assertEquals(Res.string.login_bunker_not_supported, errorResIdOf(model)) } /** An npub is still a key, so the guard must not swallow the ordinary path. */ diff --git a/commons/plans/2026-09-22-strings-to-compose-resources.md b/commons/plans/2026-09-22-strings-to-compose-resources.md new file mode 100644 index 0000000000..a007ea7b08 --- /dev/null +++ b/commons/plans/2026-09-22-strings-to-compose-resources.md @@ -0,0 +1,157 @@ +# Wave 1: Android string resources → commons Compose resources + +**Date:** 2026-09-22 +**Scope:** every `R.string` / `R.plurals` reference in the `amethyst` module, +and the string catalog behind them. + +This is the first wave of the "build the Android app for JVM/desktop" plan. It +is a precondition for every later wave: a screen cannot move to `commonsUI` +while its labels come from `amethyst/src/main/res`. + +## Why this wave is not a search-and-replace + +The obvious framing — "swap `R.string.x` for `Res.string.x`" — is wrong, and +the reason is worth writing down because it is what sets the wave's size. + +Compose resources has exactly two accessors: + +| | Android `R` | Compose resources | +|---|---|---| +| in composition | `stringResource(id)` | `stringResource(res)` | +| outside composition | `ctx.getString(id)` | `suspend getString(res)` — **no blocking form** | + +The app had **458 call sites** shaped `stringRes(context, R.string.x)`, spread +across ViewModels, notification builders, foreground services, intent helpers +and Android callbacks. None of them can keep working after the key moves, +because there is no non-suspend Context-free way to read a Compose resource. + +Deferring those keys does not help: only **167 of 1,912** keys are used +*exclusively* at composable call sites. `cancel`, `save`, `error` and friends +appear on both sides, and a key can only live in one resource system. So the +Context call sites had to be dealt with before any key could move. + +**Decision (maintainer, 2026-09-22): no `runBlocking` bridge.** A +`stringResBlocking(id) = runBlocking { getString(id) }` shim would have made +all 458 sites a mechanical rename, but it puts a blocking resource read on +paths that can run on the main thread. Every site was converted properly +instead. + +## What "converted properly" meant, by scope + +| scope | count | conversion | +|---|---|---| +| `@Composable` | 264 | drop the `context` argument — `stringRes(id)` | +| already inside `launch { }` / `withContext { }` | 46 | `loadStringRes(id)` (the existing suspend bridge in `commonsUI/.../ui/StringRes.kt`) | +| plain function, caller already in a coroutine | ~80 | function becomes `suspend` | +| plain function, no coroutine in reach | ~68 | label hoisted into composition and passed as a `String` | + +The interesting cases: + +- **`TimeAgoFormatter`** — every caller handed it `LocalContext.current`, so the + formatters became `@Composable` and lost the parameter entirely. `context` + survives only in `timeAbsolute`, where `DateFormat.getTimeFormat` needs it. + `RelayCompose` had one inside `derivedStateOf { }`, which a composable cannot + enter; it now formats directly in composition (it is a cheap formatter). +- **The notification stack** is one connected component — `NotificationCategory`, + `NotificationUtils`, `CallNotifier`, `SignerConsentNotifier`, + `CalendarReminderNotifier`, `ZapNotification`, `InlineReplyFeedback`, + `ConversationShortcuts`, `RelayPurposeSummary` — so it went `suspend` as a + unit. Its two public entry points (`postStandard`, `postConversation`) already + were. The ripple reached `NotificationChannels.Entry`, whose `channelId`/ + `ensure` lambdas are now `suspend`, and the notification settings screen, + which drives them from `repeatOnLifecycle` + `produceState` instead of + `LifecycleResumeEffect`. +- **`ScheduledPostNotifier`** (a `commons` interface) went `suspend` on both + implementations; its only driver is `CoroutineWorker.doWork`. +- **`FlowProgressForegroundService.render`** is now `suspend`, which is what the + POW-mining and Blossom-sync services needed. +- **`PowDuration`** is read from three composables *and* from the mining + service, so it has a `@Composable` pair and a `suspend` pair + (`loadApproxDuration` / `loadTimeLeft`) rather than forcing either caller into + the wrong shape. +- **Biometric prompts** (`authenticate` in `UpdateZapAmountDialog`) run from + `onClick` and from Android's own callbacks. Their four labels are resolved in + composition into an `@Immutable AuthPromptLabels` and passed down. +- **Share sheets** (`shareIcs`, `startShareUrlIntent`, `shareRelayGroup`) take + their chooser title as a `String` parameter now. +- **`ToastManager`** already carried resource *ids* and resolved them where the + toast is drawn — so the two `ReusableZapButton` sites needed no lookup at all, + just the id overload. The toast message classes now carry `StringResource`. +- **`Name.name(context)`** became `suspend nameOrDefault()`, and + `FeedFilterSpinner` reads it through a `rememberDisplayName` helper that shows + the plain `name()` for the frame the resource takes to arrive. + +## The XML move + +`tools/strings-migrate/migrate.py` moves elements verbatim so Crowdin sees a +pure move (both trees are Crowdin-managed with the same android layout). Two +changes were needed for a move this size: + +- **`%%` was read as a bare conversion.** The old `BARE_FORMAT` scanned for a + `%` not followed by `%`, but the *second* `%` of `%1$d%% of all` then started + a fresh match, and the space flag in `[-#+ 0,(]*` let `% o` look like a + conversion. Two keys (`active_subs_share`, `uptime`) were rejected for a + format bug they did not have. The scanner now consumes `%%` as a unit and + callers test `is_bare()` rather than `.search()`. +- **A bulk `@keyfile` mode.** The per-key path re-read and rewrote each locale + file once per key: 1,900 keys × 58 files is ~110k rewrites of a 300 KB file. + `extract_many()` does one pass per file. Verified byte-identical to the old + path on a 40-key sample across all 57 locale dirs. + +Nine keys used non-positional format specifiers (`%d`, `%s`), which +compose-resources cannot format. They were rewritten to `%1$d` / `%1$s` across +all 58 locale files (480 elements) — positional form is valid for Android too, +so behaviour is unchanged on both sides. + +Result: **1,906 keys moved**, 67,275 elements across 57 locale dirs. +`amethyst/src/main/res/values/strings.xml` went 2,051 → 143 keys; +`commonsUI/.../composeResources/values/strings.xml` went 3,016 → 4,926. + +Six keys did not move: + +- `app_name`, `block_hide_user`, `rename`, `save` are referenced from + `AndroidManifest.xml` / `res/xml`, so the Android copy stays and a copy was + added to the Compose catalog for the Kotlin side. +- `podcast_value_for_value`, `show_less` already existed in commons; the + duplicate app-side copies were dropped. + +## Guard against silent key loss + +A first attempt at the call-site rewrite ate the key in +`stringRes(Res.string.x, arg)` — the Context-detector matched *any* two-argument +call, so the first argument was consumed as if it were a `context`. 344 +references disappeared with no error. Two things came out of that: + +- The detector uses an **allowlist** of expressions that really are a Context in + this tree (`context`, `ctx`, `appContext`, `applicationContext`, `actContext`, + `localContext`, `targetContext`, `this`, and the two + `Amethyst.instance.appContext` spellings), not "anything before the comma". +- `check_refs.py` (in the migration scratch, worth keeping alongside the tool) + diffs the per-key, per-file multiset of `R.*` + `Res.*` references against + HEAD. A rewrite may move a key between namespaces; it may not change the + multiset. Every rewrite pass after that was run through it. + +## Status + +- `R.string` / `R.plurals` references left in Kotlin: **0** +- `.claude/hooks/orphan_strings_check.py`: passes +- All 58 default + locale XML files parse +- `check_refs.py`: no key lost (the only deltas are the intentional + `PowDuration` suspend twins and the hoisted labels) + +**Not yet verified: this has never compiled.** The container's shared egress IP +is rate-limited by Maven Central (~50% of requests answer 429) and Gradle +disables a repository on the first failure, so `:amethyst:compileFdroidDebugKotlin` +could not be driven to completion in the session that wrote this. The changes +that need a compiler to confirm are: + +1. Every scope classification. A `stringRes(id)` inside a non-composable lambda + (`onClick = { }`) and a `loadStringRes(id)` outside a coroutine are both + compile errors, which is exactly the check that has not run. +2. The `Int` → `StringResource` retyping (98 declarations across 39 files). + Carriers reached only through a positional argument were not found + statically and will surface as type errors. +3. Unused imports and vals left behind by the hoisting (ktlint errors). + +Next step is a compile-fix loop, then `./gradlew spotlessApply`, then +`:amethyst:lintFdroidBenchmark` for `ExtraTranslation`. diff --git a/commons/src/jvmAndroid/kotlin/com/vitorpamplona/amethyst/commons/scheduledposts/ScheduledPostNotifier.kt b/commons/src/jvmAndroid/kotlin/com/vitorpamplona/amethyst/commons/scheduledposts/ScheduledPostNotifier.kt index b4ce97a9f7..d27a1ef4c2 100644 --- a/commons/src/jvmAndroid/kotlin/com/vitorpamplona/amethyst/commons/scheduledposts/ScheduledPostNotifier.kt +++ b/commons/src/jvmAndroid/kotlin/com/vitorpamplona/amethyst/commons/scheduledposts/ScheduledPostNotifier.kt @@ -30,9 +30,9 @@ package com.vitorpamplona.amethyst.commons.scheduledposts * The `commons` module ships a log-only JVM/desktop implementation for now. */ interface ScheduledPostNotifier { - fun notifySent(post: ScheduledPost) + suspend fun notifySent(post: ScheduledPost) - fun notifyFailed( + suspend fun notifyFailed( post: ScheduledPost, error: String?, ) diff --git a/commons/src/jvmMain/kotlin/com/vitorpamplona/amethyst/commons/scheduledposts/LoggingScheduledPostNotifier.kt b/commons/src/jvmMain/kotlin/com/vitorpamplona/amethyst/commons/scheduledposts/LoggingScheduledPostNotifier.kt index 31d7f0d19b..5fee2eb04b 100644 --- a/commons/src/jvmMain/kotlin/com/vitorpamplona/amethyst/commons/scheduledposts/LoggingScheduledPostNotifier.kt +++ b/commons/src/jvmMain/kotlin/com/vitorpamplona/amethyst/commons/scheduledposts/LoggingScheduledPostNotifier.kt @@ -28,11 +28,11 @@ import com.vitorpamplona.quartz.utils.Log * loop functional and observable until one is added. */ class LoggingScheduledPostNotifier : ScheduledPostNotifier { - override fun notifySent(post: ScheduledPost) { + override suspend fun notifySent(post: ScheduledPost) { Log.i(TAG) { "Scheduled post ${post.id} sent" } } - override fun notifyFailed( + override suspend fun notifyFailed( post: ScheduledPost, error: String?, ) { diff --git a/commonsUI/src/commonMain/composeResources/values-ar-rSA/strings.xml b/commonsUI/src/commonMain/composeResources/values-ar-rSA/strings.xml index 26a62096ee..9919523f13 100644 --- a/commonsUI/src/commonMain/composeResources/values-ar-rSA/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-ar-rSA/strings.xml @@ -1804,4 +1804,1315 @@ رابط الـ URL الأساسي لـ Explorer API دفع الفاتورة من DVM دفع %1$s sats إلى DVM + حول & القانونية + إعدادات الحساب + إضافة + إضافة خادم Blossom + إضافة خادم NIP-96 + عند التفعيل، يُضيف Amethyst وسم عميل NIP-89 إلى الأحداث التي تنشرها. + إضافة وسم العميل إلى أحداثي + يُضيف تحذير محتوى حساس قبل عرض هذا المحتوى + محتوى حساس + إضافة إلى المفضلات العامة + يستخدم نموذج ذكاء اصطناعي على الجهاز لاقتراح تصحيحات نصية وتغييرات في النبرة. + اقتراح تحسينات النص + يحافظ على الاتصال بـ relay صندوق الوارد الخاص بك لتلقّي الإشعارات في الوقت الفعلي + + متصل بـ %1$d relay للصندوق الوارد + متصل بـ %1$d relay للصندوق الوارد + متصل بـ %1$d relay للصندوق الوارد + متصل بـ %1$d relay للصندوق الوارد + متصل بـ %1$d relay للصندوق الوارد + متصل بـ %1$d relay للصندوق الوارد + + + متصل بـ %1$d relay + متصل بـ %1$d relay + متصل بـ %1$d relay + متصل بـ %1$d relay + متصل بـ %1$d relay + متصل بـ %1$d relay + + جارٍ الاتصال بـ relay صندوق الوارد… + إشعارات Amethyst نشطة + إشعارات للمكالمات الصوتية والمرئية الواردة + المكالمات الواردة + قبِل %1$s تحديك في الشطرنج + يُعلمك بأحداث لعبة الشطرنج + الشطرنج + تحديثات الشطرنج + تحرّك %1$s — دورك + التنبيه عند وصول رسالة خاصة + الرسائل الخاصة + رسائل جديدة + تحديد كمقروء + يُعلمك عندما يذكرك شخص ما أو يستشهد بك في منشور + أشار إليك %1$s + الإشارات + إشارات جديدة + يُعلمك عندما يتفاعل شخص ما مع منشورك + تفاعل %1$s مع منشورك + لـ %1$s + التفاعلات + تفاعلات جديدة + يُعلمك عندما يرد شخص ما على منشورك + الردود + ردود جديدة + رد + إشعارات عند نشر منشور مجدول أو فشل نشره. + المنشورات المجدولة + تنبيهك عند أستقبالك زاب + ساتوشي %1$s + ل %1$s + من طرف %1$s + تم استلام الزاب + Zaps جديدة + إعدادات التطبيق + شهادة + طلب الشهادة + كفاءة المُصدِّق + توصية المُصدِّق + مرئيات الصوت + يحفظ حدثاً كمسودة تلقائياً عند الكتابة أو مغادرة محرر النص بنص غير مُرسل، ويرسله إلى relay صناديق الصادر الخاصة. + إنشاء مسودات تلقائياً + التمرير الغامر + إخفاء أشرطة التنقل عند التمرير + معاينة الصورة + تحميل الصور و الصور المتحركة تلقائياً + تشغيل الفيديو + تشغيل الفيديوهات و الصور المتحركة تلقائياً + صورة الملف الشخصي + إظهار الصور الشخصية + معاينة الرابط + إظهار معاينات الروابط + تشغيل الفيديو تلقائيًا + تشغيل مقاطع الفيديو تلقائيًا عند ظهورها على الشاشة + تعذّر إزالة البيانات الوصفية من AVIF: %1$s + منح الشارة + رجوع + نسخ المفاتيح + الشارات + فشلت المصادقة + فشل التحقق البيومتري في مصادقة مالك هذا الهاتف + فشل التحقق البيومتري في مصادقة مالك هذا الهاتف. الخطأ: %1$s + حظر + لن يتصل Amethyst أبدًا بهذه الـ relays + المستخدمين المحظورين + قائمة إشارات مرجعية جديدة + بيانات تعريف قائمة الإشارات المرجعية + يمكن لأي شخص على Nostr رؤية بيانات تعريف قوائم الإشارات المرجعية. الأعضاء الخاصون فقط مشفَّرون. + المفضلة + تعزيز + شريط التنقل السفلي + الـ relays المتخصصة في دفع ملاحظاتك إلى جميع الـ relays الأخرى، مثل sendit.nosflare.com. سيضيف Amethyst هذا الـ relay إلى جميع الأحداث الجديدة التي تصدر منك + المتصفح + المفضلة + يتم التحميل عبر الإنترنت المفتوح. اضغط للاستخدام عبر Tor. + يتم التحميل عبر Tor. اضغط للاستخدام عبر الإنترنت المفتوح. + + %1$s، لا أحداث + %1$s، %2$d حدث + %1$s، %2$d حدثان + %1$s، %2$d أحداث + %1$s، %2$d حدثًا + %1$s، %2$d حدث + + فشل رفع الصورة + تعذّر رفع الصورة المختارة. حاول مرة أخرى أو الصق رابطًا. + مشاركة حدث التقويم + فتح في الخرائط + فتح الرابط + يجري الآن + %1$s · ينتهي %2$s + + يبدأ خلال %1$d دقائق + يبدأ خلال %1$d دقيقة + يبدأ خلال %1$d دقيقتين + يبدأ خلال %1$d دقائق + يبدأ خلال %1$d دقيقة + يبدأ خلال %1$d دقيقة + + تنبيه عندما يوشك حدث تحضره على البدء. + تذكيرات التقويم + حدث تقويم + يُطلق إشعار عندما يوشك حدث تحضره على البدء. + إرسال تذكيرات + + %1$d دقيقة + %1$d دقيقة + %1$d دقيقتان + %1$d دقائق + %1$d دقيقة + %1$d دقيقة + + تذكيرات التقويم + يوم + موجز + شهر + أسبوع + قبول + الكاميرا معطّلة + الكاميرا مفعّلة + السماعة + إنهاء المكالمة + مكالمة واردة + مكالمة مرئية واردة… + مكالمة صوتية واردة… + كتم الصوت + المكالمات + إشعار المكالمة الجارية + يحتاج Amethyst إلى إذن الوصول إلى الكاميرا والميكروفون لبدء مكالمة مرئية. يُرجى تفعيلهما من إعدادات التطبيق. + يحتاج Amethyst إلى إذن الوصول إلى الميكروفون لبدء مكالمة صوتية. يُرجى تفعيله من إعدادات التطبيق. + رفض + إعدادات المكالمات + مكبّر الصوت + إلغاء كتم الصوت + مكالمة مع %1$s + لم يتم العثور على عنوان URL للاستجابة في رد %1$s + إلغاء + رمز Cashu + جارٍ فحص mint… + تعذّر استرداد Cashu + أرسل mint رسالة الخطأ التالية: %1$s + مستلم + مُرسَل + Mints مطابقة + + +%1$d أخرى + +%1$d أخرى + +%1$d أخريان + +%1$d أخريات + +%1$d أخرى + +%1$d أخرى + + Mints الشائعة + + موصى به من قِبَل %1$d آخرين + موصى به من قِبَل %1$d آخر + موصى به من قِبَل %1$d آخرين + موصى به من قِبَل %1$d آخرين + موصى به من قِبَل %1$d آخرين + موصى به من قِبَل %1$d آخرين + + تم نقل %1$s sat إلى %2$s. + لم يتم العثور على محفظة Cashu متوافقة على النظام + + لا فواتير معلقة + فاتورة معلقة واحدة + فاتورتان معلقتان + %1$d فواتير معلقة + %1$d فاتورة معلقة + %1$d فاتورة معلقة + + دفع %1$s sat + ما يصل إلى %2$s sat كرسوم؟ + نشر طلب حذف لتوصية kind:38000 الخاصة بك لـ %1$s. ستحذفها الـ relays التي تحترم NIP-09. + تم استرداد %1$s sats عبر %2$s أدلة. + تم استلام Cashu + %1$s sats أرسلت الى محفظتك +(الرسوم: sats %2$s ) + + لا أموال محتجزة في mint غير مستخدم + أموال محتجزة في %1$d mint لا تستخدمه + أموال محتجزة في %1$d mint لا تستخدمهما + أموال محتجزة في %1$d mints لا تستخدمها + أموال محتجزة في %1$d mint لا تستخدمها + أموال محتجزة في %1$d mint لا تستخدمها + + في انتظار دفع الفاتورة… + إيقاف البث + البث إلى جهاز + معايير سلامة الأطفال + اكسسوارات + فن + كتب + ملابس + مقتنيات + الحرف + إلكترونيات + اللياقة البدنية + طعام + أثاث + الصفحة الرئيسية + متنوع + المكتب + أخرى + حيوانات أليفة + الرياضة + يوميًا + شهريًا + مرة واحدة + أسبوعيًا + دفع %1$s عبر %2$s؟ + دفع هذه الفاتورة عبر %1$s؟ + لم تُكمل خدمة الخصم عملية الدفع. + أدخل مبلغًا صحيحًا لهذا العرض. + جارٍ طلب الفاتورة… + إغلاق جميع ردود الفعل على هذا المنشور + مغلق + المجتمعات + حجم المسودة %1$d بايت؛ يحدد هذا المجتمع الحد الأقصى لهذا النوع بـ %2$d بايت. + حجم المسودة %1$d بايت؛ يحدد هذا المجتمع الحد الأقصى للأحداث بـ %2$d بايت. + لقد نشرت بالفعل %1$d أحداث من هذا النوع اليوم (الحد الأقصى %2$d). + إعدادات الكتابة + المنفذ الافتراضي هو 9050 + القائمة الحالية للـ relays المستخدمة + نسبة الاتصالات الناجحة بالـ relay + دائماً + ابداً + WiFi غير المحدودة + أضف مستند + أضف صورة + إضافة وسائط + اضف فيديو + إخفاء + تحذير + إظهار + المحادثات + يحوّل ملفات GIF المتحركة إلى فيديو MP4 لحجم ملف أصغر وتوافق تشغيل أفضل. + تحويل GIF إلى MP4 + تم نسخ رمز الملاحظة/المنشور (note ID) إلى الحافظة + تم نسخ نص الملاحظة/المنشور إلى الحافظة + تم النسخ إلى الحافظة + تم نسخ عنوان @npub المؤلف إلى الحافظة + إنسخ مفتاحي السري + نسخ إلى الحافظة + تعذّر إنشاء LNUrl من عنوان Lightning "%1$s". تحقق من إعداد المستخدم + تعذّر التحقق من الملف المنزّل بعد الرفع: %1$s + تعذّر تنزيل الوسائط المرفوعة من الخادم + تعذّر جلب الفاتورة من %1$s: %2$s + تعذّر فتح الملف المضغوط + لم يتم العثور على المحفظة + لم يتمكن Amethyst من العثور على أي تطبيقات محافظ تدعم Nostr Wallet Connect (NWC). +\n\nما يمكنك فعله: +\n\t1. التحقق من دعم NWC: تأكد من أن تطبيق محفظتك المفضل متوافق مع Nostr Wallet Connect. +\n\t2. إنشاء اتصال: انتقل إلى تطبيق محفظتك وأنشئ اتصال NWC جديدًا. +\n\t3. الربط بـ Amethyst: عادةً ما تتيح محفظتك ثلاثة خيارات: +\n\t\t3.1 ربط تلقائي: زر لفتح Amethyst والاتصال به تلقائيًا. إذا كان الأمر كذلك، اضغط على الزر، وافتح Amethyst واضغط على حفظ في الشاشة الجديدة. +\n\t\t3.2 ربط يدوي: عنوان URI للاتصال يمكنك نسخه والضغط على أيقونة اللصق في هذه الشاشة لإدخاله مباشرةً. +\n\t\t3.3 رمز QR: تنشئ المحفظة رمز QR يمكنك قراءته من زر رمز QR في هذه الشاشة. + + إنشاء + يوم + منطقة الخطر + غامق + الوصف + جعل عاماً + االدردشات + المجتمعات + خوارزميات الخلاصة + حزم المتابعة + البثوث المباشرة + السوق + القراءات + مرحلات الرسائل الخاصة + عدم الترجمة من + اللغات المعروضة هنا لن تُترجم. اختر لغة لإزالتها وإعادة ترجمتها. + حفظ في الهاتف + جارٍ تنزيل الفيديو… + ملاحظة مسودة + المسودات + الحسابات + إنشاء + الخلاصات + التنقل + النظام + أنت + + لا أيام + يوم واحد + يومان + %1$d أيام + %1$d يوم + %1$d يوم + + + لا ساعات + ساعة واحدة + ساعتان + %1$d ساعات + %1$d ساعة + %1$d ساعة + + + لا دقائق + دقيقة واحدة + دقيقتان + %1$d دقائق + %1$d دقيقة + %1$d دقيقة + + + لا أشهر + شهر واحد + شهران + %1$d أشهر + %1$d شهر + %1$d شهر + + + لا أسابيع + أسبوع واحد + أسبوعان + %1$d أسابيع + %1$d أسبوع + %1$d أسبوع + + + لا سنوات + سنة واحدة + سنتان + %1$d سنوات + %1$d سنة + %1$d سنة + + تعديل التقويم + تعديل حدث التقويم + تعديل المجتمع + تعديل حزمة الإيموجي + تعديل قائمة التشغيل + تعديل المنشور + الإيموجي الخاصة مخزنة بشكل مشفر على relay ولا تراها إلا أنت. تظهر في قائمة ردود أفعالك ومنتقي ":" تماماً مثل الإيموجي العامة. + الإيموجي العامة مرئية للجميع وتظهر في قائمة ردود أفعالك ومنتقي الإكمال التلقائي ":" عندما تكون هذه الحزمة في قائمة الإيموجي الخاصة بك. + الإيموجي + تشفير الملفات قبل الرفع للحفاظ على الخصوصية. قد لا تقبل بعض الخوادم الملفات المشفرة في الحسابات المجانية. + تشفير الملفات + محادثة تختفي + خطأ + تعذر دفع الفاتورة + لا يمكن السحب + تعذّر فتح الدفع + تعذّر إرسال الـ zap + خطأ في فتح تطبيق الموقِّع (signer app) + لم يتم العثور على الموقّع، تأكد مما إذا لم يتم إلغاء تثبيت تثبيته + خطأ أثناء تحليل رسالة الخطأ + خطأ في تحليل JSON من %1$s. تحقق من إعداد Lightning للمستخدم + تعذر جلب الinvoice من خوادم المستلم + فتح في المتصفح + تعذّر تشغيل هذا الفيديو + الترميز أو التنسيق غير مدعوم على هذا الجهاز (%1$s). حاول فتحه في متصفحك. + الأخطاء + مزامنة المرحّل + أحداث منك + أحداث إليك + التمرين الدائري + ركوب الدراجة + الحمية الغذائية + الصيام + التنزه + التأمل + التجديف + الجري + تمارين القوة + السباحة + المشي + اليوغا + توسيع + تاريخ انتهاء الصلاحية + تصدير إعدادات الـ relay + فشل الحذف: %1$s + فشل في تشفير مفتاحك الخاص + فشل حفظ الصورة + فشل حفظ ملف PDF + فشل حفظ الفيديو + كثير من الخوادم لا تقبل الملفات المشفرة في الحسابات المجانية. يمكنك إعادة المحاولة بدون تشفير. + فشل الرفع المشفر + خطأ في التحميل: %1$s + فشل في تحميل الوسائط + فشل الرفع إلى %1$s: %2$s + إضافة إلى المفضلة + يتم التحميل عبر الإنترنت المفتوح. + يتم التحميل عبر Tor. + الأخيرة + إزالة من المفضلة + هذا التطبيق غير محمّل بعد. حاول مجدداً بعد لحظة. + التطبيقات المفضلة + خوارزميات الخلاصة المفضلة + تم إجراء دفعة + تم النشر على relays + تم رفع ملف + الـ relays التي تزورها كثيرًا لمشاهدة تغذيتها العالمية + المجتمعات + خوارزميات الخلاصة + الخلاصات + الوسوم + مجموعات الاهتمامات + القوائم + المواقع + خادم الملفات + اختر خادم لرفع الملف به + تُخفي المنشورات من الغرباء التي تكررت بنفس المحتوى 5 مرات أو أكثر + تصفية الرسائل المزعجة + متابعة + إرجاع المتابعة + جميع خوارزميات الخلاصة المفضلة + حولي + منسَّق + العالمي + قائمة المتابَعين الافتراضية + جميع المتابعات + جميع المتابَعين + قائمتي + قائمة الكتم + حزمة متابَعين جديدة + تعديل حزمة المتابعة + يمكن لأي شخص على Nostr رؤية البيانات التعريفية لحزمة المتابعة، وكثيرًا ما تُنشر في مواقع عديدة كأطقم بدء تشغيل للمستخدمين الجدد. + بيانات تعريفية لحزمة المتابعة + حزم المتابعة + قائمة متابَعين جديدة + تعديل القائمة + نمط معرض الملف الشخصي + اختر نمط المعرض + كلاسيكي + حديث + منشور حصري للموقع + سيراه فقط متابعو الموقع. لن يراه متابعوك العامون. + %1$s ممولة من هدف %2$s sat + س + لقد تغير هذا المحتوى. ربما لم يشاهد مؤلفه التغيير أو يوافق عليه بعد. + ماذا يعني هذا؟ + هذا المحتوى هو نفسه منذ النشر + مرحبًا %1$s، هل هذا لا يزال متاحًا؟ + الكلمات المخفية + تُسقط المنشورات من خلاصات المجتمع عندما ينشر المجتمع وثيقة قواعد NIP-9B وتخفق فيها الحدث. لا تأثير عندما لا تملك المجتمع قواعد منظّمة. + إخفاء المنشورات التي تنتهك قواعد المجتمع + اخفاء كلمة السر + جارٍ رفع %1$s (%2$d من %3$d) + الكل + طلب غير صالح - لا يستطيع الخادم معالجة الطلب أو يرفض ذلك. + غير مصرح به - لا يمتلك المستخدم بيانات اعتماد مصادقة صالحة + الدفع مطلوب - يشترط الخادم الدفع لإتمام الطلب + محظور - لا يمتلك المستخدم صلاحيات الوصول اللازمة لتنفيذ الطلب + غير موجود - لا يستطيع الخادم العثور على العنوان المطلوب + الطريقة غير مسموح بها - يدعم الخادم طريقة الطلب لكن ليس المورد المستهدف + غير مقبول - لا يجد الخادم أي محتوى يلبّي متطلبات الطلب. + مصادقة الوكيل مطلوبة - لا يمتلك المستخدم بيانات اعتماد مصادقة صالحة + انتهت مهلة الطلب - انتهت مهلة الخادم أثناء انتظاره لطرف آخر + تعارض - لا يستطيع الخادم تلبية الطلب بسبب تعارض مع المورد + غير متاح - تم حذف المحتوى المطلوب نهائيًا من الخادم ولن يُستعاد + الطول مطلوب - يرفض الخادم الطلب لأنه يستلزم تحديد طول محدد + فشل الشرط المسبق - لا يستوفي الخادم الشروط المسبقة للطلب المحددة في حقول الترويسة + الحمولة كبيرة جدًا - الطلب أكبر من الحدود المحددة للخادم ويرفض معالجته + URI طويل جدًا - عنوان URL الذي طلبه العميل طويل جدًا لمعالجته من قِبل الخادم. + نوع وسائط غير مدعوم - يستخدم الطلب تنسيق وسائط لا يدعمه الخادم + النطاق غير قابل للتحقيق - لا يستطيع الخادم تلبية القيمة المحددة في حقل ترويسة Range للطلب. + فشل التوقع - لا يستطيع الخادم تلبية المتطلبات المحددة في حقل ترويسة Expect للطلب + الترقية مطلوبة - يرفض الخادم معالجة الطلب باستخدام البروتوكول الحالي ما لم يرقّ العميل إلى بروتوكول مختلف. + خطأ داخلي في الخادم - واجه الخادم خطأً غير متوقع ولا يستطيع إتمام الطلب + غير منفّذ - لا يستطيع الخادم تلبية الطلب أو لا يتعرّف على طريقة الطلب + بوابة خاطئة - يعمل الخادم كبوابة وتلقّى استجابة غير صالحة من المضيف + الخدمة غير متاحة - يحدث هذا عادةً عندما يكون الخادم مثقلًا بالأحمال أو متوقفًا للصيانة + انتهاء مهلة البوابة - كان الخادم يعمل كبوابة أو وكيل وانتهت مهلته أثناء انتظار استجابة + إصدار HTTP غير مدعوم - لا يدعم الخادم إصدار HTTP المستخدم في الطلب + المتغير يتفاوض أيضًا - يعاني الخادم من خطأ في الإعداد الداخلي + مساحة تخزين غير كافية - لا يمتلك الخادم مساحة تخزين كافية لمعالجة الطلب بنجاح + تم اكتشاف حلقة - اكتشف الخادم حلقة لا نهاية لها أثناء معالجة الطلب + مصادقة الشبكة مطلوبة - يجب على العميل المصادقة للوصول إلى الشبكة + تصرف غير قانوني + تم حفظ الصورة في المعرض + أنتحال + مبلغ الinvoice غير صحيح (sats %1$s ) من %2$s. كان يجب أن يكون %3$s + الـ relays المتخصصة في استضافة بيانات وصفية الجميع وقوائم الـ relays، مثل purplepag.es. سيستخدم Amethyst هذه الـ relays للعثور على المستخدمين الغير موجودين في قوائمك. + مجموعة اهتمامات جديدة + إعادة التسمية + مجموعات الوسوم + مفتاح غير صحيح + مفتاح غير صالح: %1$s + عنوان غير صالح + تلقّى Amethyst رابطًا لفتحه لكن الرابط غير صالح: %1$s + لا يمكن اقتباس ملاحظة مسودة + لا يمكن التفاعل مع ملاحظة مسودة + لا يمكن الرد على ملاحظة مسودة + لا يمكن إرسال Zap لملاحظة مسودة + المفتاح مطلوب + الـ relays التي تُنشر عليها MLS KeyPackages الخاصة بك (MIP-00). يجلب المستخدمون الآخرون هذه الـ KeyPackages لدعوتك إلى محادثات مجموعة Marmot. أدخل ما بين 1 و3 relays تقبل أحداث KeyPackage منك وتسمح بالقراءة العامة. + مجموعة الشارات المقبولة + مقدمة المغامرة + قراءة المغامرة + مشهد المغامرة + توصيات التطبيقات + موعد + التطبيقات + تأكيد الموعد + رأس ملف الصوت + مسار صوتي + البودكاستات المؤلَّفة + جوائز الشارات + تعريفات الشارات + بيانات Blob + رؤوس Blob + Relays المحظورة + المدونات + مصادقة Blossom + خوادم Blossom + قائمة الإشارات المرجعية + Relays البثّ + التقويم + تعريف القناة + إخفاء رسالة القناة + قائمة القنوات + رسالة القناة + بيانات القناة الوصفية + كتم مستخدم في القناة + مصادقة الشطرنج + تحديات الشطرنج + عرض تعادل الشطرنج + قبول لعبة الشطرنج + نهاية لعبة الشطرنج + ألعاب الشطرنج + حركة الشطرنج + إعلانات مبوبة + التعليقات + تعريف المجتمع + قائمة المجتمعات + منشور المجتمع + بطاقة جهة الاتصال + موعد يومي + الحذوفات + ملف DM + رسالة DM + مرحّلات DM + المسودات + طلب محتوى DVM + استجابة محتوى DVM + حالة DVM + طلب مستخدم DVM + استجابة مستخدم DVM + التعديلات + قائمة حزم الرموز التعبيرية + حزم الرموز التعبيرية + دردشة مؤقتة + غرف دردشة مؤقتة + البودكاستات المفضلة + المرحّلات المفضلة + رؤوس الملفات + خوادم الملفات + قائمة المتابَعين + حزم المتابعة + متابعات Geohash + مشكلة Git + تصحيح Git + رد Git + مستودع Git + متابعات الوسوم + المقتطفات المميزة + مصادقة Http + قائمة مرحّلات الفهرس + الدردشات المباشرة + البث المباشر + البيانات الطبية + غرفة الاجتماع + فضاء الاجتماع + قائمة تشغيل موسيقية + مسار موسيقي + قائمة الكتم + إشارات مرجعية مسماة + خوادم Nests + الملاحظات + طلب NWC + استجابة NWC + قائمة الإشارات المرجعية القديمة + Relays الصادرة + قوائم الأشخاص + الصور + الدبابيس + حلقة بودكاست + برنامج بودكاست + استطلاع + رد الاستطلاع + مرحّلات خاصة + Zaps الخاصة + الملف الشخصي + شارات الملف الشخصي + معرض الملف الشخصي + مرحّلات وكيلة + رسالة عامة + ردود الفعل + مصادقة المرحّل + اكتشاف المرحّل + إعلان مراقب المرحّل + مجموعة المرحّلات + التقارير + إعادة النشر + إعادة نشر (16) + تواجد في الغرفة + الأختام + مرحّلات البحث + مقاطع قصيرة + مقاطع قصيرة (Repl) + تعليقات التورنت + الملفات التورنت + المزودون الموثوقون + المرحّلات الموثوقة + حذف المستخدم + إعدادات المستخدم + حالة المستخدم + فيديو + فيديو (Repl) + رسالة صوتية + رد صوتي + إشارة مرجعية للويب + التمارين الرياضية + أهداف Zap + استطلاع Zap + طلب Zap + معروف + تفضيلات عرض اللغة + لكل زوج لغوي مُترجم، اختر اللغة التي تريد عرضها أولًا. + آخر ظهور منذ %1$s + آخر ظهور للتو + لم يُرَ قط + آخر ظهور في %1$s ‏(منذ %2$s) + مغادرة + فاتح + البث المباشر + قائمة الـ relays التي تعمل على هذا الجهاز. + قم بتسجيل الدخول باستخدام مفتاح خاص لتتمكن من تعزيز المشاركات + قم بتسجيل الدخول باستخدام مفتاح خاص لتتمكن من متابعة المستخدمين + قم بتسجيل الدخول باستخدام مفتاحك السري لتتمكن من إخفاء الكلمة أو الجملة + قم بتسجيل الدخول باستخدام مفتاح خاص لتتمكن من الرد + قم بتسجيل الدخول باستخدام مفتاح خاص لتتمكن من إرسال Zaps + قم بتسجيل الدخول باستخدام مفتاحك السري لتتمكن من إظهار الكلمة أو الجملة + أنت تستخدم مفتاحًا عامًا وهو للقراءة فقط. سجّل الدخول بمفتاح خاص لتتمكن من توقيع الأحداث + قم بتسجيل الدخول بمفتاحك الخاص للتتمكن من إلغاء متابعة المستخدمين + أنت تستخدم مفتاحًا عامًا وهو للقراءة فقط. سجّل الدخول بمفتاح خاص لتتمكن من الرفع + تسجيل الدخول باستخدام مفتاح خاص لإبداء الإعجاب بالمنشورات + مقاطع فيديو + د + حزم الإيموجي الخاصة بي + جارٍ إضافة %1$s… + تم منح صلاحيات المسؤول + تم سحب صلاحيات المسؤول + فشل إضافة %1$s: %2$s + فشل إنشاء المجموعة: %1$s + فشل منح صلاحيات المسؤول: %1$s + فشل مغادرة المجموعة: %1$s + فشل إزالة العضو: %1$s + فشل سحب صلاحيات المسؤول: %1$s + فشل التحديث: %1$s + مجموعة MLS + تم تحديث معلومات المجموعة + + لا أعضاء + %1$d عضو + %1$d عضوان + %1$d أعضاء + %1$d عضواً + %1$d عضو + + تمت إزالة العضو + + لا رسائل + %1$d رسالة + %1$d رسالتان + %1$d رسائل + %1$d رسالة + %1$d رسالة + + لست عضواً في هذه المجموعة + خطأ غير معروف + تمت إضافة الوسائط + تمت إضافة الوسائط إلى معرض ملفك الشخصي + بدأ تنزيل الوسائط… + خوادم الوسائط + الوسائط أكبر من اللازم لـ NIP-95 + أدخل وجهة الرسالة أولًا + تعذّر الرفع + الموضوع + تعذّر إزالة البيانات الوصفية + فشل إزالة البيانات الوصفية الخاصة من الوسائط. تم إلغاء الرفع. + تم نقل الإشارات المرجعية بنجاح + إعداد Lightning مفقود + المزيد من الخيارات + نقل إلى الخاص + نقل إلى العام + تحميل صورة غلاف + اختر صورة مربعة لتكون غلاف قائمة التشغيل هذه. + + +%1$d مقاطع إضافية + +%1$d مقطع إضافي + +%1$d مقطعان إضافيان + +%1$d مقاطع إضافية + +%1$d مقطعًا إضافيًا + +%1$d مقاطع إضافية + + + %1$d مقطع + %1$d مقطع + %1$d مقطع + %1$d مقاطع + %1$d مقطعًا + %1$d مقطع + + + %1$d مقطع + %1$d مقطع + %1$d مقطعان + %1$d مقاطع + %1$d مقطعًا + %1$d مقطع + + جارٍ رفع الغلاف والنشر. سيستمر هذا حتى لو غادرت الشاشة. + تحميل ملف صوتي + اختر ملف MP3 أو WAV أو FLAC. سيتم تحميله إلى خادم الوسائط الخاص بك عند الحفظ. + تحميل صورة غلاف + اختر صورة مربعة لتكون غلاف هذا المقطع. + جارٍ تحميل الغلاف والصوت ونشرهما. سيستمر هذا حتى لو غادرت الشاشة. + الصوت مفعل. انقر لكتم الصوت + الصوت مكتوم. انقر لإلغاء كتم الصوت + قوائمي + يجب ادخال اسم + إعدادات Namecoin + الهوية + قراءة مفتاحك العام + المراسلة + تبادل الرسائل مع nApplets الأخرى + إجراءات لوحة المفاتيح + ربط اختصارات لوحة المفاتيح + الإشعارات + عرض الإشعارات لك + قراءة أحداثك والتوقيع عليها ونشرها + الشبكة + جلب موارد الويب وموارد Blossom + التخزين + تخزين خاص به + المظهر + مطابقة ألوان تطبيقك + الرفع + رفع الملفات إلى خادم الوسائط الخاص بك + المدفوعات + دفع فواتير Lightning + يريد هذا nApplet قراءة مفتاحك العام. + يريد هذا nApplet قراءة ملفك الشخصي وبيانات حسابك. + يريد هذا nApplet عرض إشعارات لك. + + يريد هذا nApplet دفع فاتورة Lightning بقيمة %1$d sat. + يريد هذا nApplet دفع فاتورة Lightning بقيمة %1$d sat. + يريد هذا nApplet دفع فاتورة Lightning بقيمة %1$d sats. + يريد هذا nApplet دفع فاتورة Lightning بقيمة %1$d sats. + يريد هذا nApplet دفع فاتورة Lightning بقيمة %1$d sats. + يريد هذا nApplet دفع فاتورة Lightning بقيمة %1$d sats. + + يريد هذا nApplet توقيع ونشر حدث من النوع %1$d نيابةً عنك. + يريد هذا nApplet إرسال حدث مشفَّر نيابةً عنك. + يريد هذا nApplet توقيع ونشر حدث من النوع %1$d نيابةً عنك: + يريد هذا nApplet قراءة الأحداث من relay الخاصة بك. + يريد هذا nApplet جلب مورد ويب. + يريد هذا الموقع توقيع حدث من النوع %1$d باستخدام مفتاح Nostr الخاص بك. + يريد هذا nApplet استخدام مساحة التخزين الخاصة به. + يريد هذا nApplet تحميل ملف إلى خادم الوسائط الخاص بك. + تعذّر إرسال الرسالة + كتم هذا المتحدث محليًا + استعادة هذا المتحدث + مغادرة + تعذّر تحديد الغرفة كمغلقة. جارٍ المغادرة على أي حال — ستُغلق الغرفة تلقائيًا. + + %1$d مستمع + %1$d مستمع + %1$d مستمعان + %1$d مستمعين + %1$d مستمعًا + %1$d مستمع + + خفض اليد + كتم الميكروفون + إلغاء كتم الميكروفون + كتم الصوت + تعذّر حفظ قائمة خوادم nest. حاول مجددًا. + Nest — مباشر + يبقي الصوت قيد التشغيل أثناء فتح الغرفة. + Nest متصل + إيقاف + اضغط للعودة. + متابعة + كتم + إلغاء المتابعة + إلغاء الكتم + غادر nest + انضم كمستمع + صعد إلى المنصة + رفع يده + يتحدث + رفع اليد + إلغاء كتم الصوت + محفوظ كحدث قابل للاستبدال من النوع kind-10112 حتى يتمكن العملاء الآخرون من قراءة تفضيلاتك. + خوادمك + اقتراحات مدمجة يمكنك إضافتها إلى قائمتك بنقرة واحدة. + الخوادم الموصى بها + خوادم Nest + ابداً + شارة جديدة + تقويم جديد + حدث تقويم جديد + مجتمع جديد + المشرفون + المستخدمون المحظورون + تعليق مجتمعي (1111) + مقالة طويلة (30023) + منشور صورة (20) + نص قصير (1) + فيديو قصير (22) + منشور فيديو (21) + أنواع الأحداث المسموح بها + الحجم الأقصى العالمي للحدث (اختياري) + قواعد قابلة للتحقق (اختياري) + بوابة شبكة الثقة (اختياري) + حزمة إيموجي جديدة + هدف جديد + مقال جديد + قائمة تشغيل جديدة + مقطع موسيقي جديد + منتج جديد + طلبات جديدة + المنشورات + تمرين جديد + + %1$d أصل مجمَّع + %1$d أصل مجمَّع + %1$d أصلَان مجمَّعان + %1$d أصول مجمَّعة + %1$d أصلًا مجمَّعًا + %1$d أصل مجمَّع + + لم يتم العثور على تطبيقات Blossom. يرجى تثبيت تطبيق Blossom محلي لعرض هذا الملف + تعذّر فتح روابط Blossom + لم يتم العثور على تطبيق كاميرا في هذا الجهاز + لم يتم تعيين عنوان Lightning + لم يتم العثور على تطبيق للتعامل مع هذه المدفوعات. يرجى تثبيت محفظة متوافقة. + لم يتم العثور على تطبيق مثبت للتعامل مع مدفوعات %1$s. يرجى تثبيت محفظة متوافقة. + لم يتم تحديد أي نوع من ردود الفعل. اضغط مطولاً للتغيير + لا توجد اعدادات لردود الفعل + لم يتم العثور على محافظ لدفع فاتورة Lightning. يرجى تثبيت محفظة Lightning لاستخدام الـ zaps + لم يتم العثور على محافظ لدفع فاتورة Lightning (الخطأ: %1$s). يرجى تثبيت محفظة Lightning لاستخدام الـ zaps + لا يوجد إعداد لمبلغ Zap. اضغط لفترة طويلة للتغيير + الإشعارات + الفئات + التسليم + العرض داخل التطبيق + الان + فن Nowhere + إسقاط Nowhere + حدث Nowhere + منتدى Nowhere + حملة تمويل Nowhere + موقع Nowhere + رسالة Nowhere + عريضة Nowhere + متجر Nowhere + عُري + تعذّر بناء مرجع الحدث + لا توجد مفتاح عمومي للمستلم في الملاحظة + Nutzaps عامة وستكشف هذه الملاحظة الخاصة. استخدم Lightning zap بدلًا من ذلك. + فشل Nutzap + + إرسال %1$s sats، بدون تقسيم + إرسال %1$s sats، بطريقة %2$d + إرسال %1$s sats، بطريقتين %2$d + إرسال %1$s sats، %2$d طرق + إرسال %1$s sats، %2$d طريقة + إرسال %1$s sats، %2$d طريقة + + لم يتم تكوين واجهة خلفية لسلسلة Bitcoin + تعذّر بث المعاملة + تعذّر بناء المعاملة + تعذّر تحميل رصيد Bitcoin الخاص بك + تم إرسال الدفع، ولكن تعذّر نشر إيصال zap + + تم إرسال الدفع (%1$d من %2$d إيصال منشور)، ولكن تعذّر نشر الإيصال التالي + تم إرسال الدفع (%1$d من %2$d إيصال منشور)، ولكن تعذّر نشر الإيصال التالي + تم إرسال الدفع (%1$d من %2$d إيصالين منشورين)، ولكن تعذّر نشر الإيصال التالي + تم إرسال الدفع (%1$d من %2$d إيصالات منشورة)، ولكن تعذّر نشر الإيصال التالي + تم إرسال الدفع (%1$d من %2$d إيصالًا منشورًا)، ولكن تعذّر نشر الإيصال التالي + تم إرسال الدفع (%1$d من %2$d إيصال منشور)، ولكن تعذّر نشر الإيصال التالي + + حصة أحد المستلمين أقل من الحد الأدنى + تعذّر توقيع المعاملة + ~10 دقائق + ~30 دقيقة + ~ساعة واحدة + سريع + عادي + بطيء + + تقسيم بين %1$d مستلمين + تقسيم بين %1$d مستلم + تقسيم بين %1$d مستلمين + تقسيم بين %1$d مستلمين + تقسيم بين %1$d مستلمًا + تقسيم بين %1$d مستلم + + + تخطي %1$d مستلمين لديهم عنوان Lightning فقط — تحتاج المعاملات على السلسلة إلى مفتاح عام Nostr لاشتقاق العنوان. + تخطي %1$d مستلم لديه عنوان Lightning فقط — تحتاج المعاملات على السلسلة إلى مفتاح عام Nostr لاشتقاق العنوان. + تخطي %1$d مستلمين لديهم عنوان Lightning فقط — تحتاج المعاملات على السلسلة إلى مفتاح عام Nostr لاشتقاق العنوان. + تخطي %1$d مستلمين لديهم عنوان Lightning فقط — تحتاج المعاملات على السلسلة إلى مفتاح عام Nostr لاشتقاق العنوان. + تخطي %1$d مستلمًا لديهم عنوان Lightning فقط — تحتاج المعاملات على السلسلة إلى مفتاح عام Nostr لاشتقاق العنوان. + تخطي %1$d مستلم لديهم عنوان Lightning فقط — تحتاج المعاملات على السلسلة إلى مفتاح عام Nostr لاشتقاق العنوان. + + + استخدام تقسيم zap الخاص بهذه الملاحظة بـ %1$d طرق + استخدام تقسيم zap الخاص بهذه الملاحظة بطريقة %1$d + استخدام تقسيم zap الخاص بهذه الملاحظة بطريقتين %1$d + استخدام تقسيم zap الخاص بهذه الملاحظة بـ %1$d طرق + استخدام تقسيم zap الخاص بهذه الملاحظة بـ %1$d طريقة + استخدام تقسيم zap الخاص بهذه الملاحظة بـ %1$d طريقة + + جارٍ البث + جارٍ بناء المعاملة + جارٍ تحميل الرصيد + جارٍ نشر الإيصال + جارٍ التوقيع + يسمح بصوت واحد فقط لكل مستخدم في هذا النوع من الاستطلاع + فتح جميع ردود الفعل على هذا المنشور + مفتوح + منفذ Orbot Socks + مستكشف Bitcoin ‏(OTS) + يوجد دليل على أن هذا المنشور تم توقيعه في وقت ما قبل %1$s. تم ختم الإثبات في بلوكتشين Bitcoin في ذلك التاريخ والوقت. + إثبات الطابع الزمني + كلمة السر مطلوبة + إيقاف مؤقت + اإدفع + رسالة من %1$s + أهداف الدفع + أضف عناوين دفع لشبكات مختلفة (مثل bitcoin، lightning، ethereum). + تم حفظ ملف PDF في Downloads/Amethyst + يمكن لأي شخص على Nostr رؤية البيانات التعريفية لقوائم المتابعة. الأعضاء الخاصون فقط مشفّرون. + بيانات تعريفية لقائمة المتابعة + الصور + تثبيت في الأعلى + تثبيت في الملف الشخصي + تشغيل + + %1$d حلقة + %1$d حلقة + %1$d حلقتان + %1$d حلقات + %1$d حلقة + %1$d حلقة + + لا يستطيع مؤلف الاستطلاع التصويت في استطلاعه. + تم إغلاق الاستطلاع لأي تصويت جديد + اختيار متعدد + الخيار %1$s + اختيار واحد + تعذر التصويت + استطلاعات + نشر + + تم إخفاء هذا المنشور لأنه يحتوي على أكثر من %1$d وسم + تم إخفاء هذا المنشور لأنه يحتوي على أكثر من %1$d وسم + تم إخفاء هذا المنشور لأنه يحتوي على أكثر من %1$d وسمَين + تم إخفاء هذا المنشور لأنه يحتوي على أكثر من %1$d وسوم + تم إخفاء هذا المنشور لأنه يحتوي على أكثر من %1$d وسمًا + تم إخفاء هذا المنشور لأنه يحتوي على أكثر من %1$d وسم + + معاينة صورة البطاقة لـ %1$s + خيارات الخصوصية + سياسة الخصوصية + <استحالة فك تشفير الرسالة الخاصة> +\n\n أنت الآن في محادثة خاصة/مشفرة بين %1$s و %2$s . + أدخل ما بين 1 و3 relays لتكون صندوقًا واردًا خاصًا. سيستخدم الآخرون هذه الـ relays لإرسال رسائل مباشرة إليك. يجب أن تقبل DM Inbox relays أي رسالة من أي شخص، لكن تسمح لك وحدك بتنزيلها. خيارات جيدة:\n - inbox.nostr.wine (مدفوع)\n - auth.nostr1.com (مجاني)\n - you.nostr1.com (relays شخصية - مدفوعة) + المستخدم يستقبل الرسائل المباشرة على هذه الـ relays + رسالة خاصة + جعل خاصاً: تغليف الملاحظة هدية للمستخدمين المُخطَرين فقط + الردود على الملاحظة الخاصة تبقى خاصة دائماً + مرئي لـ + أدخل ما بين 1 و3 relays لتخزين الأحداث التي لا يستطيع أحد رؤيتها، كالمسودات و/أو إعدادات التطبيق. من الأفضل أن تكون هذه الـ relays محلية أو تتطلب مصادقة قبل تنزيل محتوى كل مستخدم. + الألفاظ النابية / خطاب كراهية + الملف الشخصي + شارات الملف الشخصي + توصيات التطبيقات + شارات الملف الشخصي + تغذية المتابعين + تغذية Zap المستلم + واجهة الملف الشخصي + الملفات الشخصية + اقتراح تعديل + الـ relays التجميعية التي يجب أن يستخدمها التطبيق لتنزيل تغذياتك منها، مثل filter.nostr.wine. هذا يستبدل نموذج outbox وسيجعل التطبيق يتصل فقط بالـ relays الموجودة في قوائمك. + الدردشة العامة + المحادثات العامة مرئية للجميع على Nostr ويمكن لأي شخص + المشاركة فيها. إنها مناسبة للمجتمعات المفتوحة حول مواضيع محددة. + يمكن التحكم في الإشراف عبر حذف المنشورات على relay المجموعة + أدخل من 1 إلى 3 relay تستضيف هذه المجموعة. + تستخدم تطبيقات Nostr هذا الإعداد لمعرفة مكان تنزيل الرسائل وإرسالها. + بيانات المحادثة العامة + المحادثات العامة + يخزّن هذا النوع من الـ relay جميع محتواك. سيرسل Amethyst منشوراتك إليها وسيستخدم الآخرون هذه الـ relays للعثور على محتواك. أدخل ما بين 1 و3 relays. يمكن أن تكون relays شخصية أو مدفوعة أو عامة. + المستخدم ينشر محتواه إلى هذه الـ relays + رسالة عامة + يستقبل هذا النوع من الـ relay جميع الردود والتعليقات والإعجابات والـ zaps على منشوراتك. يمكن أن تكون مدفوعة أو مجانية. القيود التي يضعها مشغّل الـ relay يمكن أن تحدّ من الإشعارات التي تستقبلها بشكل جيد أو سيء. على سبيل المثال، إذا كنت تتعرض لهجوم بريد مزعج في التعليقات، يمكن للـ relays المدفوعة تصفية البريد المزعج. أدخل ما بين 1 و3 relays. + المستخدم يستقبل الإشعارات على هذه الـ relays + معرف الملاحظة + حذف + كتم المحادثة + مشاركة + شارك رابط المتصفح + إلغاء كتم المحادثة + تفاعل + التفاعلات + صف التفاعلات + القراءة من الخادم (Relay) + عدد البايتات الذي تم أستقباله من هذا المرحل + مستخدم في وضع القراءة فقط + اضغط مطوّلًا لتسجيل رسالة + محادثة relay + محادثات relay هي مجموعات دردشة يتحكم فيها الـ relay المضيف. + إنها مرئية للجميع على Nostr ويمكن لأي شخص المشاركة فيها. + إنها مناسبة للمجتمعات المفتوحة حول مواضيع محددة. بعض هذه المجموعات مؤقتة + وبالتالي تختفي رسائل الدردشة بمرور الوقت + محادثات relay + الأحداث + عناوين IP + الأنواع + المستخدمون + الإعدادات + إعدادات المرحل + قوائم صندوق الصادر + مرحلات + تعبئة وإرسال Zap + إرسال Zap + تعبئة %1$s sats إلى %2$s وإرسال Zap %3$s %4$s sats · الرسوم ≈ %5$s sats + ازالة + إزالة من المفضلات العامة + الرد هنا… + تنبيه: + + طلب حذفها + طلب الاختفاء + فشلت إعادة تعيين حالة Marmot: %1$s + إعادة تعيين حالة Marmot + تمت إعادة تعيين حالة Marmot. + إعادة المحاولة + قوائم التقاويم + التقاويم + الشطرنج + اكتشاف + الصفحة الرئيسية + استيراد المتابَعين + الرسائل + قوائم التشغيل + موسيقى + الإشعارات + الحلقات + البودكاست + جدولة منشور + إلغاء الجدولة + قد لا تُنشر المنشورات المجدولة حتى تعيد فتح التطبيق. لن تُطلق منشورات الحسابات الأخرى المجدولة أثناء نشاط هذا الحساب. فعّل الوضع الدائم في الإعدادات ← تفضيلات واجهة المستخدم لجدولة موثوقة في الخلفية. + قد لا تُنشر المنشورات المجدولة حتى تعيد فتح التطبيق. فعّل الوضع الدائم في الإعدادات ← تفضيلات واجهة المستخدم لجدولة موثوقة في الخلفية. + المنشورات المجدولة + إرسال الآن + %1$s · خلال %2$s + %1$s · منذ %2$s + غدًا + خطأ: %1$s + تم نسخ معرّف الملاحظة + + تم تسجيل الخروج + تم تسجيل الخروج · تم حذف منشور مجدول واحد + تم تسجيل الخروج · تم حذف منشورَين مجدولَين + تم تسجيل الخروج · تم حذف %1$d منشورات مجدولة + تم تسجيل الخروج · تم حذف %1$d منشورًا مجدولًا + تم تسجيل الخروج · تم حذف %1$d منشور مجدول + + تم تسجيل الخروج + + لديك %1$d منشورات مجدولة لم تُنشر بعد. سيؤدي تسجيل الخروج إلى حذفها نهائيًا. + لديك %1$d منشور مجدول لم يُنشر بعد. سيؤدي تسجيل الخروج إلى حذفه نهائيًا. + لديك %1$d منشورَان مجدولان لم يُنشرا بعد. سيؤدي تسجيل الخروج إلى حذفهما نهائيًا. + لديك %1$d منشورات مجدولة لم تُنشر بعد. سيؤدي تسجيل الخروج إلى حذفها نهائيًا. + لديك %1$d منشورًا مجدولًا لم يُنشر بعد. سيؤدي تسجيل الخروج إلى حذفها نهائيًا. + لديك %1$d منشور مجدول لم يُنشر بعد. سيؤدي تسجيل الخروج إلى حذفها نهائيًا. + + فشل المنشور المجدول + تم نشر المنشور المجدول + + إلى %1$d relay + إلى %1$d relay + إلى %1$d relays + إلى %1$d relays + إلى %1$d relays + إلى %1$d relays + + ملغى + فشل + مجدول + جارٍ الإرسال… + أُرسل + + · %1$d مستحق خلال ساعة + · %1$d مستحق خلال ساعة + · %1$d مستحقان خلال ساعة + · %1$d مستحقة خلال ساعة + · %1$d مستحقاً خلال ساعة + · %1$d مستحق خلال ساعة + + + %1$d في الطابور + %1$d في الطابور + %1$d في الطابور + %1$d في الطابور + %1$d في الطابور + %1$d في الطابور + + بعض المرحلات الجيدة:\n%1$s + مرحلات البحث + قائمة الـ relays المستخدمة عند البحث عن المحتوى أو المستخدمين. لن يعمل وضع الوسوم والبحث إذا لم تكن هناك خيارات متاحة. تأكد من أنها تطبّق NIP-50. + أحداث قابلة للبحث + مفتاحك السري (nsec) قد تم نسخه في الحافظة + لم تحجب أي مستخدمين بعد. + مرشحات الأمان + لا توجد كلمات مخفية. أضف كلمة أدناه لإخفاء المنشورات التي تحتويها. + المحتوى المحجوب + تفضيلات التصفية + لم يُصنَّف أي حساب كرسائل مزعجة في هذه الجلسة. + إرسال + إرسال جميع أحداث الملف الشخصي المستلمة (kind 0) إلى الـ relay المحلي + إعادة توجيه الملفات الشخصية إلى الـ relay المحلي + القابل للإنفاق لهذا المستلم: %1$s sat + فشل الدفع + المعاملة: %1$s + جارٍ الدفع عبر %1$s… + لم يوفر الخادم عنوان URL بعد الرفع + الإعدادات + لا توجد خيوط مكتومة + الخيوط المكتومة + مشاركة كصورة + مشاركة كرابط صورة + رفع HLS + مشاركة أو حفظ + مقاطع قصيرة + إظهار رمز QR المفتاح الخاص المشفر + تضمين الرسائل المباشرة والجماعية في تبويب الإشعارات. أوقف التشغيل للاحتفاظ بالرسائل في تبويب الرسائل فقط. + إظهار الرسائل + إظهار رمز QR المفتاح الخاص + تم رفض طلب التوقيع + تأكد من أن تطبيق الموقِّع قد أذن بهذه المعاملة + أعاد الموقِّع الخارجي بيانات غير متوقعة للطلب. قد يكون هناك خطأ في Amethyst أو في تطبيق الموقِّع. + الموقِّع غير موجود + هل تم إلغاء تثبيت تطبيق الموقِّع؟ تحقق من تثبيته وأنه يحتوي على هذا الحساب. سجّل الخروج وأعد تسجيل الدخول إن تغيّر تطبيق الموقِّع. + التخطي للخلف %1$d ثانية + التخطي للأمام %1$d ثانية + التطبيقات + محتوى عشوائي + عدد الأحداث المزعجة من هذا المرحل + المستخدمون المزعجون + عرض تبويبين للإشعارات — المتابَعون (الأشخاص الذين تتابعهم) والجميع. يضيء مؤشر غير المقروء فقط لنشاط الأشخاص الذين تتابعهم. + تقسيم الإشعارات حسب المتابَعين + يحاول إزالة البيانات الوصفية الخاصة من ملفات الوسائط المدعومة قبل الرفع + إزالة البيانات الوصفية الخاصة + يقرأ التمارين المنتهية من Health Connect (Samsung Health، Google Fit، Fitbit، Garmin…) ويقترح مشاركتها كمنشور. يُطلب الإذن فقط عند الاتصال. + اقتراح تمارين للمشاركة + النظام + المظهر + مظهر غامق أو فاتح أو اوتوماتيكي + ستختفي هذه الرسالة خلال %1$s + + +%1$d\nردود + +%1$d\nرد + +%1$d\nردَّان + +%1$d\nردود + +%1$d\nردًّا + +%1$d\nردود + + اليوم + مخصص + خصصه بنفسك + الافتراضي + إخفاء عنوان الـIP من المرحلات العشوائية + الخصوصية الكاملة + إخفاء عنوان الـIP من جميع الإتصالات + مضمن + إيقاف + إعدادات Tor/الخصوصية المسبقة + تعديل جميع الإعدادات أدناه بسرعة + الكل ما عدا الوسائط + إخفاء عنوان الـIP من الكل ماعدا الصور و الفيديوهات + مرحلات DM + استخدام Tor لإرسال و أستقبال الرسائل الخاصة + الصور + أستخدام Tor عند تنزيل الصور + رفع الوسائط + أستخدام Tor عند رفع الوسائط + المعاملات المالية + فرض Tor على عمليات Zap وتحويلات Lightning وCashu + مرحلات غير موثوقة + أستخدام Tor لمرحلات الأحداث الواردة و المرسلة + التحقق من عنوان Nostr + أستخدام Tor عند التحقق من عناوين NIP-05 + رابط/مرحل بصلي + استخدام Tor لأي رابط .onion + الصور الشخصية + أستخدام Tor عند تنزيل الصور الشخصية + مرحلات موثوقة + أستخدام Tor للإتصال بالمرحلات + معاينة الروابط + أستخدام Tor لطلب معاينة الروابط + الفيديوهات + أستخدام Tor عند تنزيل الفديوهات + أساسي + أستخدام Tor عندما يكون مطلوباً من الخادم + فشل فتح الملف + لا توجد تطبيقات torrent مثبّتة لفتح الملف وتنزيله. + لا تحتوي الحدث على معلومات كافية لبناء رابط magnet + استخدم المذيع المتتبَّع عند إرسال الأحداث. يعرض تقدمًا مباشرًا وحالة كل relay أثناء البث. + البث المتتبَّع + الترجمة إلى + اختر اللغة التي تريد ترجمة المحتوى إليها. + الترجمات + الـ relays التي تثق بها ولا تحتاج إلى اتصال Tor + كامل + أداء + مبسّط + تفضيلات الواجهة + وضع الواجهة + اختر نمط المنشور + تعذّر إنشاء فاتورة Lightning قبل إرسال الـ zap. أرسلت محفظة Lightning للمستقبل الخطأ التالي: %1$s + تعذّرت مشاركة الصورة، يرجى المحاولة مرة أخرى لاحقًا… + تعذّرت مشاركة الفيديو، يرجى المحاولة مرة أخرى لاحقًا… + فك تشفير غير مصرح به + لم يأذن الموقِّع بعملية فك التشفير المطلوبة لإتمام هذه العملية. قم بتفعيل فك تشفير NIP-44 في تطبيق الموقِّع وحاول مرة أخرى + الغاء المتابعة + إلغاء التثبيت + إلغاء التثبيت من الملف الشخصي + تم إلغاء الرفع + خطأ في الرفع + فشل رفع الصوت: %1$s + فشل رفع الرسالة الصوتية + NIP-95 غير مدعوم للرسائل الصوتية بعد + %1$d%% وقت التشغيل + محرك Tor النشط + استخدم الإصدار الداخلي أو Orbot + لا يمتلك المستخدم عنوان (Lightning Address) لاستقبال sats + المستخدم %1$s ليس لديه عنوان Lightning مُعدّ لاستقبال sats + سجل الاختفاء + تم إرسال طلب الاختفاء + جودة أفضل بأحجام ملفات أصغر لكن ليس كل الأجهزة تدعم تشغيل H.265. + استخدام ترميز H.265/HEVC + بدأ تنزيل الفيديو… + أزرار مشغّل الفيديو + تم حفظ الفيديو في الجهاز + منشور صوتي + عميق + مرتفع + محايد + لا شيء + رد صوتي + المحفظة + محفظة Cashu (NIP-60) + ربط المحفظة + موفر wallet connect الخاص بك أعاد الخطأ التالي: %1$s + تعديل الـ mints + يعرض رسالة تحذير عندما تحتوي المنشورات أو الملفات الشخصية على بلاغات من أشخاص تتابعهم + التحذير عند وجود بلاغات + إضافة إشارة ويب مرجعية + تعديل إشارة الويب المرجعية + إشارات الويب المرجعية + ما الذي يدور في ذهنك؟ + التمارين + اكتب رسالة… + الكتابة للخادم + عدد البايتات الذي تم إرساله إلى هذا المرحل + زاب + + إعادة تسمية + حفظ diff --git a/commonsUI/src/commonMain/composeResources/values-bn-rBD/strings.xml b/commonsUI/src/commonMain/composeResources/values-bn-rBD/strings.xml index 158b2047ca..2578f09d67 100644 --- a/commonsUI/src/commonMain/composeResources/values-bn-rBD/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-bn-rBD/strings.xml @@ -1788,4 +1788,1193 @@ এক্সপ্লোরার API বেস URL DVM থেকে ইনভয়েস পরিশোধ করুন DVM-কে %1$s sats পরিশোধ করুন + সম্পর্কে & আইনি + অ্যাকাউন্ট সেটিংস + যুক্ত করুন + একটি Blossom সার্ভার যোগ করুন + একটি NIP-96 সার্ভার যোগ করুন + সক্ষম করলে, Amethyst আপনার প্রকাশিত ইভেন্টে একটি NIP-89 ক্লায়েন্ট ট্যাগ যোগ করে। + আমার ইভেন্টে ক্লায়েন্ট ট্যাগ যোগ করুন + সংবেদনশীল আধেয় দেখানোর আগে এ সম্পর্কিত সতর্কতা প্রদর্শন করে + সংবেদনশীল আধেয় + সর্বজনীন বুকমার্কে যুক্ত করুন + পাঠ্য সংশোধন এবং সুরের পরিবর্তন প্রস্তাব করতে ডিভাইসে AI মডেল ব্যবহার করে। + পাঠ্য উন্নতির প্রস্তাব দিন + রিয়েল-টাইম বিজ্ঞপ্তির জন্য আপনার ইনবক্স relays-এর সাথে সংযোগ সক্রিয় রাখে + + %1$d টি ইনবক্স relay-তে সংযুক্ত + %1$d টি ইনবক্স relay-তে সংযুক্ত + + + %1$d টি relay-তে সংযুক্ত + %1$d টি relay-তে সংযুক্ত + + ইনবক্স relays-এ সংযুক্ত হচ্ছে… + Amethyst বিজ্ঞপ্তি সক্রিয় + ইনকামিং ভয়েস ও ভিডিও কলের বিজ্ঞপ্তি + আসা কল + %1$s আপনার দাবা চ্যালেঞ্জ গ্রহণ করেছে + দাবা খেলার ঘটনা সম্পর্কে আপনাকে জানায় + দাবা + দাবার আপডেট + %1$s চাল দিয়েছে — আপনার পালা + যখন একটি ব্যক্তিগত বার্তা আসে তখন আপনাকে অবহিত করে + ব্যক্তিগত বার্তাসমূহ + নতুন বার্তা + পঠিত চিহ্নিত করুন + কেউ পোস্টে আপনাকে উল্লেখ বা উদ্ধৃত করলে আপনাকে জানায় + %1$s আপনাকে উল্লেখ করেছে + উল্লেখ + নতুন উল্লেখ + কেউ আপনার পোস্টে প্রতিক্রিয়া জানালে আপনাকে জানায় + %1$s আপনার পোস্টে প্রতিক্রিয়া জানিয়েছে + %1$s-এর জন্য + প্রতিক্রিয়া + নতুন প্রতিক্রিয়া + কেউ আপনার পোস্টে উত্তর দিলে আপনাকে জানায় + উত্তরসমূহ + নতুন উত্তর + উত্তর দিন + একটি নির্ধারিত পোস্ট প্রকাশিত হলে বা প্রকাশ করতে ব্যর্থ হলে বিজ্ঞপ্তি। + নির্ধারিত পোস্ট + কেউ জ্যাপ পাঠালে আপনাকে অবহিত করে + %1$s স্যাট + %1$s এর জন্য + %1$s থেকে + জ্যাপ গৃহীত হয়েছে + নতুন Zap + অ্যাপ সেটিংস + সত্যায়ন + সত্যায়ন অনুরোধ + সত্যায়নকারীর দক্ষতা + সত্যায়নকারীর সুপারিশ + অডিও ভিজ্যুয়ালাইজার + আপনি টাইপ করলে বা না-পাঠানো পাঠ্য সহ কম্পোজার ছেড়ে গেলে স্বয়ংক্রিয়ভাবে একটি খসড়া ইভেন্ট সংরক্ষণ করে এবং আপনার ব্যক্তিগত আউটবক্স relay-গুলোতে পাঠায়। + স্বয়ংক্রিয়ভাবে খসড়া তৈরি করুন + ইমারসিভ স্ক্রোলিং + স্ক্রোল করার সময় নেভিগেশন বার লুকান + ছবির পূর্বরূপ + স্বয়ংক্রিয়ভাবে ছবি এবং GIF লোড করুন + ভিডিও প্লেব্যাক + স্বয়ংক্রিয়ভাবে ভিডিও এবং GIF চালু করুন + প্রোফাইল ছবি + প্রোফাইল ছবি দেখান + URL-এর পূর্বরূপ + URL এর পূর্বরূপ দেখান + ভিডিও স্বয়ংক্রিয়ভাবে চালান + স্ক্রিনে দৃশ্যমান হলে স্বয়ংক্রিয়ভাবে ভিডিও চালান + AVIF থেকে মেটাডেটা সরানো যায়নি: %1$s + ব্যাজ প্রদান করুন + পিছে যান + ব্যাকআপ চাবিগুলি + ব্যাজ + প্রমাণীকরণ ব্যর্থ হয়েছে। + বায়োমেট্রিক্স এই ফোনের মালিককে প্রমাণ করতে ব্যর্থ হয়েছে৷ + বায়োমেট্রিক্স এই ফোনের মালিককে প্রমাণীকরণ করতে ব্যর্থ হয়েছে। ত্রুটি: %1$s + ব্লক করুন + ব্লক করা Relay + Amethyst কখনও এই relay গুলোতে সংযুক্ত হবে না + ব্লক করে রাখা ব্যবহারকারীরা + নতুন বুকমার্ক তালিকা + বুকমার্ক তালিকার মেটাডেটা + বুকমার্ক তালিকার মেটাডেটা Nostr-এ যে কেউ দেখতে পারে। শুধুমাত্র আপনার প্রাইভেট সদস্যরা এনক্রিপ্টেড। + বুকমার্ক করুন + বুস্ট + নিচের নেভিগেশন বার + ব্রডকাস্ট Relay + Relay যেগুলো আপনার নোটগুলো অন্য সব relay-এ পুশ করতে বিশেষজ্ঞ, যেমন sendit.nosflare.com। Amethyst আপনার তৈরি সব নতুন ইভেন্টে এই relay যোগ করবে + ব্রাউজার + প্রিয় + উন্মুক্ত ওয়েবের মাধ্যমে লোড হচ্ছে। Tor ব্যবহার করতে ট্যাপ করুন। + Tor-এর মাধ্যমে লোড হচ্ছে। উন্মুক্ত ওয়েব ব্যবহার করতে ট্যাপ করুন। + + %1$s, %2$d টি ইভেন্ট + %1$s, %2$d টি ইভেন্ট + + ছবি আপলোড ব্যর্থ হয়েছে + বেছে নেওয়া ছবিটি আপলোড করা যায়নি। আবার চেষ্টা করুন অথবা একটি URL পেস্ট করুন। + ক্যালেন্ডার ইভেন্ট শেয়ার করুন + ম্যাপে খুলুন + লিঙ্ক খুলুন + এখন চলছে + %1$s · শেষ হবে %2$s + + %1$d মিনিটের মধ্যে শুরু হবে + %1$d মিনিটের মধ্যে শুরু হবে + + আপনি যে ইভেন্টে যোগ দিচ্ছেন সেটি শুরু হওয়ার আগে সতর্কতা। + ক্যালেন্ডার রিমাইন্ডার + ক্যালেন্ডার ইভেন্ট + আপনি যে ইভেন্টে যোগ দিচ্ছেন সেটি শুরু হওয়ার আগে একটি বিজ্ঞপ্তি আসে। + রিমাইন্ডার পাঠান + + %1$d মিনিট + %1$d মিনিট + + ক্যালেন্ডার রিমাইন্ডার + দিন + ফিড + মাস + সপ্তাহ + গ্রহণ করুন + ক্যামেরা বন্ধ + ক্যামেরা চালু + ইয়ারপিস + রাখুন + ইনকামিং কল + ইনকামিং ভিডিও কল… + ইনকামিং ভয়েস কল… + মিউট করুন + কলসমূহ + চলমান কলের বিজ্ঞপ্তি + ভিডিও কল শুরু করতে Amethyst-এর ক্যামেরা ও মাইক্রোফোনের অ্যাক্সেস প্রয়োজন। অ্যাপ সেটিংসে এগুলো সক্ষম করুন। + ভয়েস কল শুরু করতে Amethyst-এর মাইক্রোফোনের অ্যাক্সেস প্রয়োজন। অ্যাপ সেটিংসে এটি সক্ষম করুন। + প্রত্যাখ্যান করুন + কল সেটিংস + স্পিকার + আনমিউট করুন + %1$s-এর সাথে কল + %1$s এর প্রতিক্রিয়া থেকে Callback URL পাওয়া যায়নি + বাতিল করুন + ক্যাশু টোকেন + mint পরীক্ষা করা হচ্ছে… + Cashu রিডিম করা যায়নি + Mint নিম্নলিখিত ত্রুটি বার্তা প্রদান করেছে: %1$s + প্রাপ্ত + পাঠানো + মিলে যাওয়া mints + + +%1$d টি আরও + +%1$d টি আরও + + জনপ্রিয় mints + + %1$d জন অন্য ব্যক্তি সুপারিশ করেছেন + %1$d জন অন্য ব্যক্তি সুপারিশ করেছেন + + %1$s sat %2$s-এ সরানো হয়েছে। + সিস্টেমে কোনো সামঞ্জস্যপূর্ণ Cashu ওয়ালেট পাওয়া যায়নি + + %1$d টি অপেক্ষমাণ ইনভয়েস + %1$d টি অপেক্ষমাণ ইনভয়েস + + %1$s sat + সর্বোচ্চ %2$s sat ফি দেবেন? + %1$s-এর আপনার kind:38000 সুপারিশের জন্য একটি ডিলিট অনুরোধ প্রকাশ করুন। NIP-09 মেনে চলা relay গুলো এটি সরিয়ে দেবে। + %2$s প্রমাণ জুড়ে %1$s sats পুনরুদ্ধার করা হয়েছে। + Cashu প্রাপ্ত হয়েছে + %1$s sats আপনার ওয়ালেটে পাঠানো হয়েছে। (ফি: %2$s sats) + + %1$d টি মিন্টে অর্থ রয়েছে যা আপনি ব্যবহার করেন না + %1$d টি মিন্টে অর্থ রয়েছে যা আপনি ব্যবহার করেন না + + ইনভয়েস পরিশোধের জন্য অপেক্ষা করা হচ্ছে… + + %1$d টি মিন্ট + %1$d টি মিন্ট + + কাস্টিং বন্ধ করুন + ডিভাইসে কাস্ট করুন + শিশু সুরক্ষা মান + আনুষাঙ্গিক + শিল্পকলা + বই + পোশাক + সংগ্রহযোগ্য বস্তু + কারুশিল্প + ইলেকট্রনিক্স + ফিটনেস + খাদ্য + আসবাবপত্র + নীড় + বিবিধ + দপ্তর + অন্যান্য + পোষা প্রাণী + খেলাধুলা + দৈনিক + মাসিক + একবার + সাপ্তাহিক + %2$s-এর মাধ্যমে %1$s পরিশোধ করবেন? + %1$s-এর মাধ্যমে এই ইনভয়েস পরিশোধ করবেন? + ডেবিট সেবা পেমেন্ট সম্পন্ন করেনি। + এই অফারের জন্য একটি বৈধ পরিমাণ লিখুন। + ইনভয়েস অনুরোধ করা হচ্ছে… + এই পোস্টের সব প্রতিক্রিয়া বন্ধ করুন + বন্ধ + কমিউনিটি + খসড়াটি %1$d বাইট; এই কমিউনিটি এই ধরনটি %2$d বাইটে সীমাবদ্ধ করেছে। + খসড়াটি %1$d বাইট; এই কমিউনিটি ইভেন্টকে %2$d বাইটে সীমাবদ্ধ করেছে। + আপনি আজ এই ধরনের %1$d টি ইভেন্ট ইতিমধ্যে পোস্ট করেছেন (সীমা %2$d)। + কম্পোজ সেটিংস + ডিফল্ট পোর্ট হলো 9050 + সংযুক্ত Relay + বর্তমানে ব্যবহৃত relay-এর তালিকা + relay-এ সফল সংযোগের শতাংশ + সবসময় + কখনো না + আনমিটার্ড WiFi + নথি যোগ করুন + ছবি যোগ করুন + মিডিয়া যোগ করুন + ভিডিও যোগ করুন + লুকান + সতর্ক করুন + দেখান + কথোপকথন + ছোট ফাইল সাইজ এবং ভালো প্লেব্যাক সামঞ্জস্যের জন্য অ্যানিমেটেড GIF কে MP4 ভিডিওতে রূপান্তর করে। + GIF কে MP4 তে রূপান্তর করুন + নোট আইডিটি (@note1) ক্লিপবোর্ডে কপি করা হয়েছে + নোটের রচনাটি ক্লিপবোর্ডে কপি করা হয়েছে + ক্লিপবোর্ডে কপি হয়েছে + রচয়িতার @npub ক্লিপবোর্ডে কপি করুন + আমার ব্যক্তিগত চাবিটি কপি করুন + ক্লিপবোর্ডে কপি করুন + Lightning Address "%1$s" থেকে LNUrl তৈরি করা যায়নি। ব্যবহারকারীর সেটআপ পরীক্ষা করুন + আপলোডের পরে ডাউনলোড করা ফাইল পরীক্ষা করা যায়নি: %1$s + সার্ভার থেকে আপলোড করা মিডিয়া ডাউনলোড করা যায়নি + %1$s থেকে ইনভয়েস আনতে পারেনি: %2$s + সংকুচিত ফাইলটি খোলা যায়নি + ওয়ালেট পাওয়া যায়নি + Amethyst কোনো ওয়ালেট অ্যাপ খুঁজে পায়নি যা Nostr Wallet Connect (NWC) সমর্থন করে। +\n\nআপনি যা করতে পারেন: +\n\t১. NWC সমর্থন যাচাই করুন: নিশ্চিত করুন যে আপনার পছন্দের ওয়ালেট অ্যাপ Nostr Wallet Connect-এর সাথে সামঞ্জস্যপূর্ণ। +\n\t২. সংযোগ তৈরি করুন: আপনার ওয়ালেট অ্যাপে যান এবং একটি নতুন NWC সংযোগ তৈরি করুন। +\n\t৩. Amethyst-এ লিঙ্ক করুন: আপনার ওয়ালেট সাধারণত তিনটি বিকল্প দেবে: +\n\t\t৩.১ স্বয়ংক্রিয় লিঙ্ক: একটি বোতাম যা স্বয়ংক্রিয়ভাবে Amethyst খুলে সংযুক্ত করবে। যদি তাই হয়, সেই বোতামে ক্লিক করুন, Amethyst খুলুন এবং নতুন স্ক্রিনে সেভ চাপুন। +\n\t\t৩.২ ম্যানুয়াল লিঙ্ক: একটি Connection URI যা কপি করে এই স্ক্রিনের পেস্ট আইকনে ক্লিক করে সরাসরি ইনপুট করতে পারবেন। +\n\t\t৩.৩ QR কোড: ওয়ালেট একটি QR কোড তৈরি করে যা আপনি এই স্ক্রিনের QR কোড বোতাম থেকে পড়তে পারবেন। + + তৈরি করুন + d + বিপদজনক এলাকা + আঁধারি + বিবরণ + পাবলিক করুন + বার্তালাপগুলি + কমিউনিটি + ফিড অ্যালগরিদম + ফলো প্যাক + লাইভ স্ট্রিম + মার্কেটপ্লেস + পড়ার তালিকা + DM ইনবক্স Relay + যে ভাষা থেকে অনুবাদ করবেন না + এখানে দেখানো ভাষাগুলি অনুবাদ করা হবে না। একটি ভাষা সরাতে এবং আবার অনুবাদ করতে এটি নির্বাচন করুন। + ফোনে সেভ করুন + ভিডিও ডাউনলোড করা হচ্ছে… + ড্রাফট নোট + খসড়া + অ্যাকাউন্টগুলি + তৈরি করুন + ফিড + নেভিগেট + সিস্টেম + আপনি + + %1$d দিন + %1$d দিন + + + %1$d ঘণ্টা + %1$d ঘণ্টা + + + %1$d মিনিট + %1$d মিনিট + + + %1$d মাস + %1$d মাস + + + %1$d সপ্তাহ + %1$d সপ্তাহ + + + %1$d বছর + %1$d বছর + + ক্যালেন্ডার সম্পাদনা করুন + ক্যালেন্ডার ইভেন্ট সম্পাদনা করুন + কমিউনিটি সম্পাদনা করুন + ইমোজি প্যাক সম্পাদনা করুন + প্লেলিস্ট সম্পাদনা করুন + পোস্ট সম্পাদনা করুন + ব্যক্তিগত ইমোজি relay-গুলোতে এনক্রিপ্টেড অবস্থায় সংরক্ষিত এবং শুধুমাত্র আপনার কাছে দৃশ্যমান। এগুলো পাবলিক ইমোজির মতোই আপনার রিঅ্যাকশন মেনু এবং ":" অটোকমপ্লিটে দেখা যায়। + পাবলিক ইমোজি সবার কাছে দৃশ্যমান এবং এই প্যাকটি আপনার ইমোজি তালিকায় থাকলে আপনার রিঅ্যাকশন মেনু এবং ":" অটোকমপ্লিট পিকারে প্রদর্শিত হয়। + ইমোজি + গোপনীয়তার জন্য আপলোডের আগে ফাইল এনক্রিপ্ট করুন। কিছু সার্ভার বিনামূল্যের অ্যাকাউন্টে এনক্রিপ্টেড ফাইল গ্রহণ নাও করতে পারে। + ফাইল এনক্রিপ্ট করুন + অদৃশ্য হওয়া চ্যাট + ত্রুটি + ইনভয়েস পরিশোধ করা যায়নি + উইথড্র করা যায়নি + পেমেন্ট খুলতে অক্ষম + জ্যাপ পাঠানো যায় নি + স্বাক্ষরের অ্যাপ খোলা যাচ্ছে না + সাইনার অ্যাপটি পাওয়া যায়নি। অ্যাপটি আনইনস্টল হয়নি কিনা পরীক্ষা করুন + ত্রুটি বার্তা পার্স করতে ব্যর্থ + %1$s থেকে JSON পার্স করতে ত্রুটি। ব্যবহারকারীর lightning সেটআপ পরীক্ষা করুন + প্রাপকের সার্ভার থেকে ইনভয়েস আনতে পারছে না + ব্রাউজারে খুলুন + এই ভিডিওটি চালানো যাচ্ছে না + কোডেক বা ফরম্যাটটি এই ডিভাইসে সমর্থিত নয় (%1$s)। আপনার ব্রাউজারে খুলে দেখুন। + ত্রুটিসমূহ + Relay সিঙ্ক + আপনার থেকে ইভেন্ট + আপনার কাছে ইভেন্ট + সার্কিট + সাইক্লিং + ডায়েট + উপবাস + হাইকিং + ধ্যান + রোয়িং + দৌড়ানো + শক্তি প্রশিক্ষণ + সাঁতার + হাঁটা + যোগব্যায়াম + প্রসারিত করুন + মেয়াদ শেষের তারিখ + relay সেটিংস এক্সপোর্ট করুন + মুছে দিতে ব্যর্থ: %1$s + আপনার ব্যক্তিগত কী এনক্রিপ্ট করতে ব্যর্থ হয়েছে৷ + ছবিটি সফলভাবে সংরক্ষণ করা যায় নি + PDF সেভ করতে ব্যর্থ হয়েছে + ভিডিও সেভ করতে ব্যর্থ হয়েছে + অনেক সার্ভার বিনামূল্যের অ্যাকাউন্টে এনক্রিপ্টেড ফাইল গ্রহণ করে না। আপনি এনক্রিপশন ছাড়া আবার চেষ্টা করতে পারেন। + এনক্রিপ্টেড আপলোড ব্যর্থ হয়েছে + আপলোড ত্রুটি: %1$s + মিডিয়া আপলোড করতে ব্যর্থ + %1$s তে আপলোড করতে ব্যর্থ: %2$s + প্রিয়তে যোগ করুন + উন্মুক্ত ওয়েবের মাধ্যমে লোড হয়। + Tor-এর মাধ্যমে লোড হয়। + সাম্প্রতিক + প্রিয় থেকে সরিয়ে দিন + সেই অ্যাপটি এখনো লোড হয়নি। একটু পরে আবার চেষ্টা করুন। + প্রিয় অ্যাপ + পছন্দের ফিড অ্যালগরিদম + একটি পেমেন্ট করা হয়েছে + relay-তে প্রকাশিত হয়েছে + একটি ফাইল আপলোড করা হয়েছে + প্রিয় Relay ফিড + Relay যেগুলোতে আপনি প্রায়ই তাদের গ্লোবাল ফিড দেখতে যান + কমিউনিটি + ফিড অ্যালগরিদম + ফিড + হ্যাশট্যাগ + আগ্রহের সেট + তালিকা + অবস্থান + Relay + ফাইল সার্ভার + এই ফাইল আপলোড করতে একটি সার্ভার বেছে নিন + অপরিচিতদের পোস্ট লুকায় যা ৫ বা তার বেশি বার হুবহু একই ছিল + স্প্যাম ফিল্টার করুন + অনুসরণ করুন + প্রতি-অনুসরণ করুন + সমস্ত পছন্দের ফিড অ্যালগরিদম + আমার আশেপাশে + কিউরেটেড + বৈশ্বিক + ডিফল্ট ফলো তালিকা + অনুসৃত সকলেরা + সকল ব্যবহারকারী ফলোস + আমার + নিঃশব্দ তালিকা + নতুন ফলো প্যাক + ফলো প্যাক সম্পাদনা করুন + ফলো প্যাকের মেটাডেটা Nostr-এ যে কেউ দেখতে পারে এবং নতুন ব্যবহারকারীদের জন্য স্টার্টআপ কিট হিসেবে প্রায়ই অনেক ওয়েবসাইটে প্রকাশিত হয়। + ফলো প্যাকের মেটাডেটা + ফলো প্যাক + নতুন ফলো তালিকা + তালিকা সম্পাদনা করুন + প্রোফাইল গ্যালারি স্টাইল + গ্যালারি স্টাইল বেছে নিন + ক্লাসিক + আধুনিক + লোকেশন-এক্সক্লুসিভ পোস্ট + শুধুমাত্র লোকেশনের ফলোয়াররা এটি দেখতে পাবেন। আপনার সাধারণ ফলোয়াররা এটি দেখতে পাবেন না। + %2$s sats লক্ষ্যমাত্রার মধ্যে %1$s সংগ্রহ হয়েছে + h + এই আধেয়র বিষয়বস্তু পরিবর্তিত হয়েছে। লেখক হয়তো পরিবর্তনটি দেখেন নি বা অনুমোদন করেন নি + এটি কী বোঝায়? + ঐ পোস্ট এবং এই আধেয়র বিষয়বস্তু অভিন্ন + হাই %1$s, এটা কি এখনও পাওয়া যায়? + লুকানো শব্দ + কমিউনিটি NIP-9B নিয়ম দলিল প্রকাশ করলে এবং কোনো ইভেন্ট তা লঙ্ঘন করলে কমিউনিটি ফিড থেকে সেই পোস্ট বাদ দেয়। কমিউনিটির কোনো কাঠামোবদ্ধ নিয়ম না থাকলে কোনো প্রভাব নেই। + কমিউনিটি নিয়ম লঙ্ঘনকারী পোস্ট লুকান + পাসওয়ার্ড লুকান + %1$s আপলোড হচ্ছে (%3$d এর মধ্যে %2$d) + সবকিছু + ব্যাড রিকোয়েস্ট - সার্ভার অনুরোধটি প্রক্রিয়া করতে পারছে না বা করবে না। + অননুমোদিত - ব্যবহারকারীর কাছে বৈধ প্রমাণীকরণ শংসাপত্র নেই + পেমেন্ট প্রয়োজন - অনুরোধ সম্পন্ন করতে সার্ভারের পেমেন্ট প্রয়োজন + নিষিদ্ধ - ব্যবহারকারীর অনুরোধ করার অ্যাক্সেস অধিকার নেই + পাওয়া যায়নি - সার্ভার অনুরোধ করা ঠিকানা খুঁজে পাচ্ছে না + পদ্ধতি অনুমোদিত নয় - সার্ভার অনুরোধ পদ্ধতি সমর্থন করে, কিন্তু লক্ষ্য রিসোর্স সমর্থন করে না + গ্রহণযোগ্য নয় - সার্ভার অনুরোধ পূরণ করে এমন কোনো কন্টেন্ট খুঁজে পাচ্ছে না। + প্রক্সি প্রমাণীকরণ প্রয়োজন - ব্যবহারকারীর কাছে বৈধ প্রমাণীকরণ শংসাপত্র নেই + রিকোয়েস্ট টাইমআউট - অন্য কারো জন্য অপেক্ষায় সার্ভারের সময় শেষ হয়েছে + দ্বন্দ্ব - রিসোর্সের সাথে দ্বন্দ্বের কারণে সার্ভার অনুরোধ পূরণ করতে পারছে না + চলে গেছে - অনুরোধ করা কন্টেন্ট সার্ভার থেকে স্থায়ীভাবে মুছে ফেলা হয়েছে এবং পুনরুদ্ধার করা হবে না + দৈর্ঘ্য প্রয়োজন - একটি নির্ধারিত প্রয়োজন করে বলে সার্ভার অনুরোধ প্রত্যাখ্যান করছে + প্রি-কন্ডিশন ব্যর্থ - হেডার ফিল্ডে অনুরোধের পূর্বশর্ত যা সার্ভার পূরণ করতে ব্যর্থ হয় + পেলোড অনেক বড় - অনুরোধটি সার্ভারের নির্ধারিত সীমার চেয়ে বড়, এবং সার্ভার এটি প্রক্রিয়া করতে অস্বীকার করছে + URI অনেক দীর্ঘ - ক্লায়েন্ট কর্তৃক অনুরোধ করা url সার্ভারের প্রক্রিয়া করার জন্য অনেক দীর্ঘ। + অসমর্থিত মিডিয়া টাইপ - অনুরোধটি এমন একটি মিডিয়া ফরম্যাট ব্যবহার করে যা সার্ভার সমর্থন করে না + রেঞ্জ পূরণ করা যায়নি - অনুরোধের Range হেডার ফিল্ডে নির্দেশিত মান সার্ভার পূরণ করতে পারছে না। + প্রত্যাশা ব্যর্থ - Expect রিকোয়েস্ট হেডার ফিল্ড দ্বারা নির্দেশিত প্রয়োজনীয়তা সার্ভার পূরণ করতে পারছে না + আপগ্রেড প্রয়োজন - ক্লায়েন্ট ভিন্ন প্রোটোকলে আপগ্রেড না করলে সার্ভার বর্তমান প্রোটোকল ব্যবহার করে অনুরোধ প্রক্রিয়া করতে অস্বীকার করছে। + অভ্যন্তরীণ সার্ভার ত্রুটি - সার্ভার একটি অপ্রত্যাশিত ত্রুটির সম্মুখীন হয়েছে এবং অনুরোধ সম্পন্ন করতে পারছে না + সমর্থিত নয় - সার্ভার অনুরোধ পূরণ করতে পারছে না বা অনুরোধের পদ্ধতি চিনতে পারছে না + ব্যাড গেটওয়ে - সার্ভার একটি গেটওয়ে হিসেবে কাজ করছে এবং হোস্ট থেকে অবৈধ প্রতিক্রিয়া পেয়েছে + সেবা অনুপলব্ধ - এটি প্রায়ই ঘটে যখন একটি সার্ভার অতিরিক্ত লোডে থাকে বা রক্ষণাবেক্ষণের জন্য বন্ধ থাকে + গেটওয়ে টাইমআউট - সার্ভার একটি গেটওয়ে বা প্রক্সি হিসেবে কাজ করছিল এবং প্রতিক্রিয়ার জন্য অপেক্ষায় সময় শেষ হয়ে গেছে + HTTP সংস্করণ সমর্থিত নয় - সার্ভার অনুরোধে HTTP সংস্করণ সমর্থন করে না + Variant Also Negotiates - সার্ভারে একটি অভ্যন্তরীণ কনফিগারেশন ত্রুটি রয়েছে + অপর্যাপ্ত স্টোরেজ - সার্ভারে অনুরোধটি সফলভাবে প্রক্রিয়া করার জন্য পর্যাপ্ত স্টোরেজ নেই + লুপ শনাক্ত হয়েছে - সার্ভার অনুরোধ প্রক্রিয়া করার সময় একটি অসীম লুপ শনাক্ত করেছে + নেটওয়ার্ক প্রমাণীকরণ প্রয়োজন - নেটওয়ার্কে অ্যাক্সেস করতে ক্লায়েন্টকে অবশ্যই প্রমাণীকৃত হতে হবে + বেআইনী আচরণ + ছবিটি গ্যালারিতে সংরক্ষণ করা হয়েছে + ছদ্মবেশ + ইনবক্স Relay + %2$s থেকে ইনভয়েসের পরিমাণ ভুল (%1$s sats)। এটি %3$s হওয়া উচিত ছিল + ইন্ডেক্সার Relay + Relay যেগুলো সবার মেটাডেটা এবং relay তালিকা হোস্ট করতে বিশেষজ্ঞ, যেমন purplepag.es। Amethyst আপনার তালিকায় নেই এমন ব্যবহারকারীদের খুঁজে পেতে এই relay গুলো ব্যবহার করবে। + নতুন আগ্রহ সেট + নাম পরিবর্তন করুন + হ্যাশট্যাগ সেট + অকেজো চাবি + ভুল চাবি: %1$s + ঠিকানা সঠিক নয় + Amethyst একটি URI খোলার জন্য পেয়েছে কিন্তু সেই URI টি অবৈধ ছিল: %1$s + একটি ড্রাফট নোট উদ্ধৃত করা সম্ভব নয় + একটি ড্রাফট নোটে প্রতিক্রিয়া জানানো সম্ভব নয় + একটি ড্রাফট নোটে উত্তর দেওয়া সম্ভব নয় + একটি ড্রাফট নোট Zap করা সম্ভব নয় + চাবি প্রয়োজন + KeyPackage Relay + Relay যেখানে আপনার MLS KeyPackages প্রকাশিত হয় (MIP-00)। অন্য ব্যবহারকারীরা আপনাকে Marmot গ্রুপ চ্যাটে আমন্ত্রণ জানাতে এই KeyPackages আনে। ১–৩টি relay ঢোকান যা আপনার কাছ থেকে KeyPackage ইভেন্ট গ্রহণ করে এবং পাবলিক রিড অনুমতি দেয়। + গৃহীত ব্যাজ সেট + অ্যাডভেঞ্চার প্রলোগ + অ্যাডভেঞ্চার পাঠ + অ্যাডভেঞ্চার দৃশ্য + অ্যাপ সুপারিশ + অ্যাপয়েন্টমেন্ট + অ্যাপ + অ্যাপয়েন্টমেন্ট RSVP + অডিও হেডার + অডিও ট্র্যাক + নির্মিত পডকাস্ট + ব্যাজ পুরস্কার + ব্যাজ সংজ্ঞা + ব্লব ডেটা + ব্লব হেডার + ব্লক করা Relay + ব্লগ + Blossom সার্ভার + বুকমার্ক তালিকা + প্রচার Relay + ক্যালেন্ডার + চ্যানেল সংজ্ঞা + চ্যানেল বার্তা লুকান + চ্যানেল তালিকা + চ্যানেল বার্তা + চ্যানেল মেটাডেটা + চ্যানেল ব্যবহারকারী মিউট + দাবা Auth + দাবা চ্যালেঞ্জ + দাবা ড্র প্রস্তাব + দাবা খেলা গ্রহণ + দাবা খেলার সমাপ্তি + দাবা খেলা + দাবা চাল + বিজ্ঞাপন + মন্তব্য + কমিউনিটি সংজ্ঞা + কমিউনিটি তালিকা + কমিউনিটি পোস্ট + যোগাযোগ কার্ড + দৈনিক অ্যাপয়েন্টমেন্ট + মুছে ফেলা + DM ফাইল + DM বার্তা + DM Relay + ড্রাফট + DVM কন্টেন্ট অনুরোধ + DVM কন্টেন্ট সাড়া + DVM স্ট্যাটাস + DVM ব্যবহারকারী অনুরোধ + DVM ব্যবহারকারী সাড়া + সম্পাদনা + ইমোজি প্যাক তালিকা + ইমোজি প্যাক + ক্ষণস্থায়ী চ্যাট + ক্ষণস্থায়ী চ্যাটরুম + পছন্দের পডকাস্ট + পছন্দের Relay + ফাইল হেডার + ফাইল সার্ভার + ফলো তালিকা + ফলো প্যাক + জিওহ্যাশ ফলো + গিফটর‍্যাপ + গিট ইস্যু + গিট প্যাচ + গিট রিপ্লাই + গিট রেপো + হ্যাশট্যাগ ফলো + হাইলাইট + ইনডেক্স Relay তালিকা + লাইভ চ্যাট + লাইভ স্ট্রিম + চিকিৎসা ডেটা + মিটিং রুম + মিটিং স্পেস + মিউজিক প্লেলিস্ট + মিউজিক ট্র্যাক + মিউট তালিকা + নামযুক্ত বুকমার্ক + Nests সার্ভার + নোট + NWC অনুরোধ + NWC প্রতিক্রিয়া + পুরনো বুকমার্ক তালিকা + আউটবক্স Relay + পরিশোধ করুন + মানুষের তালিকা + ছবি + পিন + পডকাস্ট এপিসোড + পডকাস্ট শো + পোল + পোল সাড়া + প্রাইভেট relay + ব্যক্তিগত Zap + প্রোফাইল + প্রোফাইল ব্যাজ + প্রোফাইল গ্যালারি + প্রক্সি relay + পাবলিক বার্তা + প্রতিক্রিয়া + Relay আবিষ্কার + Relay মনিটর ঘোষণা + Relay সেট + রিপোর্ট + রিপোস্ট + রিপোস্ট (16) + রুম উপস্থিতি + সিল + সার্চ relay + শর্টস + শর্টস (Repl) + টরেন্ট মন্তব্য + টরেন্ট + বিশ্বস্ত প্রদানকারী + বিশ্বস্ত relay + ব্যবহারকারী মুছুন + ব্যবহারকারীর সেটিংস + ব্যবহারকারীর স্ট্যাটাস + ভিডিও + ভিডিও (Repl) + ভয়েস বার্তা + ভয়েস উত্তর + জেগে উঠুন + ওয়েব বুকমার্ক + উইকি + ওয়ার্কআউট + Zap লক্ষ্যমাত্রা + Zap পোল + Zap অনুরোধ + Zap + জ্ঞাত + ভাষা প্রদর্শন পছন্দ + প্রতিটি অনুবাদিত ভাষা জোড়ার জন্য, কোন ভাষাটি প্রথমে দেখাবেন তা বেছে নিন। + %1$s আগে শেষ দেখা গেছে + এইমাত্র দেখা গেছে + কখনো দেখা যায়নি + %1$s তারিখে শেষ দেখা গেছে (%2$s আগে) + ছেড়ে দিন + উজ্জ্বল + লাইভ স্ট্রিম + স্থানীয় Relay + এই ডিভাইসে চলছে এমন relay-এর তালিকা। + পোস্টগুলি বুস্ট করতে ব্যক্তিগত চাবি দিয়ে লগ ইন করুন + কাউকে অনুসরণ করতে ব্যক্তিগত চাবি দিয়ে লগইন করুন + পোস্টগুলি বুস্ট করতে ব্যক্তিগত চাবি দিয়ে লগ ইন করুন + প্রতিউত্তর দিতে ব্যক্তিগত চাবি দিয়ে লগ ইন করুন + কাউকে জ্যাপ পাঠাতে ব্যক্তিগত চাবি দিয়ে লগ ইন করুন + পোস্টগুলি বুস্ট করতে ব্যক্তিগত চাবি দিয়ে লগ ইন করুন + আপনি একটি পাবলিক কী ব্যবহার করছেন এবং পাবলিক কীগুলি শুধুমাত্র পড়ার জন্য। ইভেন্টে সাইন করতে সক্ষম হতে একটি প্রাইভেট কী দিয়ে লগইন করুন + কাউকে আনফলো করতে ব্যক্তিগত চাবি দিয়ে লগ ইন করুন + আপনি একটি পাবলিক কী ব্যবহার করছেন এবং পাবলিক কীগুলি শুধুমাত্র পড়ার জন্য। আপলোড করতে সক্ষম হতে একটি প্রাইভেট কী দিয়ে লগইন করুন + পোস্টগুলি লাইক করতে ব্যক্তিগত চাবি দিয়ে লগ ইন করুন + ভিডিও + m + আমার ইমোজি প্যাক + %1$s যোগ করা হচ্ছে… + অ্যাডমিন সুবিধা প্রদান করা হয়েছে + অ্যাডমিন সুবিধা প্রত্যাহার করা হয়েছে + %1$s যোগ করতে ব্যর্থ: %2$s + গ্রুপ তৈরি করতে ব্যর্থ: %1$s + অ্যাডমিন প্রদান করতে ব্যর্থ: %1$s + গ্রুপ ছেড়ে যেতে ব্যর্থ: %1$s + সদস্য সরাতে ব্যর্থ: %1$s + অ্যাডমিন প্রত্যাহার করতে ব্যর্থ: %1$s + আপডেট করতে ব্যর্থ: %1$s + MLS গ্রুপ + গ্রুপের তথ্য আপডেট হয়েছে + + %1$d জন সদস্য + %1$d জন সদস্য + + সদস্য সরানো হয়েছে + + %1$d টি বার্তা + %1$d টি বার্তা + + এই গ্রুপের সদস্য নন + অজানা ত্রুটি + মিডিয়া যোগ হয়েছে + আপনার প্রোফাইল গ্যালারিতে মিডিয়া যোগ হয়েছে + মিডিয়া ডাউনলোড শুরু হয়েছে… + মিডিয়া সার্ভার + NIP-95 এর জন্য মিডিয়া অনেক বড় + প্রথমে বার্তার গন্তব্য লিখুন + আপলোড করা যাচ্ছে না + বিষয় + মেটাডেটা সরানো যায়নি + মিডিয়া থেকে ব্যক্তিগত মেটাডেটা সরাতে ব্যর্থ। আপলোড বাতিল করা হয়েছে। + বুকমার্ক সফলভাবে মাইগ্রেট করা হয়েছে + Lightning সেটআপ নেই + আরও বিকল্প + প্রাইভেটে সরান + পাবলিকে সরান + একটি কভার ছবি আপলোড করুন + এই প্লেলিস্টের আর্টওয়ার্কের জন্য একটি বর্গাকার ছবি বেছে নিন। + + +%1$d টি আরও ট্র্যাক + +%1$d টি আরও ট্র্যাক + + + %1$d টি ট্র্যাক + %1$d টি ট্র্যাক + + + %1$d টি ট্র্যাক + %1$d টি ট্র্যাক + + কভার আপলোড করা হচ্ছে এবং প্রকাশিত হচ্ছে। আপনি স্ক্রিন ছেড়ে গেলেও এটি চলতে থাকবে। + একটি অডিও ফাইল আপলোড করুন + একটি MP3, WAV, বা FLAC বেছে নিন। সেভ করলে এটি আপনার মিডিয়া সার্ভারে আপলোড হবে। + একটি কভার ছবি আপলোড করুন + এই ট্র্যাকের আর্টওয়ার্কের জন্য একটি বর্গাকার ছবি বেছে নিন। + কভার + অডিও আপলোড করা হচ্ছে এবং প্রকাশিত হচ্ছে। আপনি স্ক্রিন ছেড়ে গেলেও এটি চলতে থাকবে। + শব্দ চালু আছে। মৌন করতে ক্লিক করুন + মৌন করে রাখা। এটি তুলে নিতে ক্লিক করুন + আমার তালিকা + নাম প্রদান আবশ্যক + Namecoin সেটিংস + পরিচয় + আপনার পাবলিক কী পড়ুন + মেসেজিং + অন্য napplet-গুলোর সাথে বার্তা বিনিময় করুন + কীবোর্ড অ্যাকশন + কীবোর্ড শর্টকাট বাঁধুন + বিজ্ঞপ্তি + আপনাকে বিজ্ঞপ্তি দেখান + Relay + আপনার ইভেন্ট পড়ুন, সাইন করুন এবং প্রকাশ করুন + নেটওয়ার্ক + ওয়েব এবং Blossom রিসোর্স আনুন + স্টোরেজ + এর নিজস্ব প্রাইভেট স্টোরেজ + থিম + আপনার অ্যাপের রঙের সাথে মেলান + আপলোড + আপনার মিডিয়া সার্ভারে ফাইল আপলোড করুন + পেমেন্ট + Lightning ইনভয়েস পরিশোধ করুন + এই nApplet আপনার পাবলিক কী পড়তে চায়। + এই nApplet আপনার প্রোফাইল এবং অ্যাকাউন্ট ডেটা পড়তে চায়। + এই nApplet আপনাকে বিজ্ঞপ্তি দেখাতে চায়। + + এই nApplet %1$d sat-এর জন্য একটি Lightning ইনভয়েস পরিশোধ করতে চায়। + এই nApplet %1$d sats-এর জন্য একটি Lightning ইনভয়েস পরিশোধ করতে চায়। + + এই nApplet আপনার হয়ে একটি কাইন্ড %1$d ইভেন্ট সাইন এবং প্রকাশ করতে চায়। + এই nApplet আপনার হয়ে একটি এনক্রিপ্টেড ইভেন্ট পাঠাতে চায়। + এই nApplet আপনার হয়ে একটি কাইন্ড %1$d ইভেন্ট সাইন এবং প্রকাশ করতে চায়: + এই nApplet আপনার relay-গুলো থেকে ইভেন্ট পড়তে চায়। + এই nApplet একটি ওয়েব রিসোর্স আনতে চায়। + এই সাইটটি আপনার Nostr কী দিয়ে একটি কাইন্ড %1$d ইভেন্ট সাইন করতে চায়। + এই nApplet তার প্রাইভেট স্টোরেজ ব্যবহার করতে চায়। + এই nApplet আপনার মিডিয়া সার্ভারে একটি ফাইল আপলোড করতে চায়। + বার্তা পাঠানো যায়নি + এই বক্তাকে চুপ করান + এই বক্তাকে পুনরুদ্ধার করুন + ছেড়ে যান + রুম বন্ধ হিসেবে চিহ্নিত করা যায়নি। যাইহোক ছেড়ে যাচ্ছি — রুম স্বয়ংক্রিয়ভাবে বন্ধ হবে। + + %1$d জন শ্রোতা + %1$d জন শ্রোতা + + হাত নামান + মাইক মিউট করুন + মাইক আনমিউট করুন + মিউট করুন + নেস্ট সার্ভার তালিকা সংরক্ষণ করা যায়নি। আবার চেষ্টা করুন। + Nest — লাইভ + একটি রুম খোলা থাকলে অডিও চালু রাখে। + Nest সংযুক্ত + থামুন + ফিরে যেতে ট্যাপ করুন। + অনুসরণ করুন + মিউট করুন + অনুসরণ বন্ধ করুন + মিউট বাতিল করুন + নেস্ট ছেড়ে গেছেন + দর্শক হিসেবে যোগ দিয়েছেন + স্টেজে উঠেছে + হাত তুলেছে + কথা বলছে + হাত তুলুন + আনমিউট করুন + kind-10112 রিপ্লেসযোগ্য ইভেন্ট হিসেবে সংরক্ষিত যাতে অন্য ক্লায়েন্টরা আপনার পছন্দ পড়তে পারে। + আপনার সার্ভার + বিল্ট-ইন পরামর্শ যা এক ট্যাপে আপনার তালিকায় যোগ করা যাবে। + প্রস্তাবিত সার্ভার + নেস্ট সার্ভার + কখনো না + নতুন ব্যাজ + নতুন ক্যালেন্ডার + নতুন ক্যালেন্ডার ইভেন্ট + নতুন কমিউনিটি + মডারেটর + Relay-গুলি + নিষিদ্ধ ব্যবহারকারী + কমিউনিটি মন্তব্য (1111) + দীর্ঘ-ফর্ম নিবন্ধ (30023) + ছবি পোস্ট (20) + সংক্ষিপ্ত টেক্সট (1) + সংক্ষিপ্ত ভিডিও (22) + ভিডিও পোস্ট (21) + অনুমোদিত ইভেন্টের ধরন + গ্লোবাল সর্বোচ্চ ইভেন্ট আকার (ঐচ্ছিক) + যাচাইযোগ্য নিয়ম (ঐচ্ছিক) + ওয়েব-অব-ট্রাস্ট গেট (ঐচ্ছিক) + নতুন ইমোজি প্যাক + নতুন লক্ষ্য + নতুন নিবন্ধ + নতুন প্লেলিস্ট + নতুন মিউজিক ট্র্যাক + নতুন পণ্য + নয়া অনুরোধসমূহ + নতুন থ্রেড + নতুন ওয়ার্কআউট + + %1$d টি সম্পদ একত্রিত + %1$d টি সম্পদ একত্রিত + + Blossom অ্যাপ পাওয়া যায়নি। এই ফাইলটি দেখতে একটি স্থানীয় Blossom অ্যাপ ইনস্টল করুন + Blossom লিংক খোলা যাচ্ছে না + এই ডিভাইসে কোনো ক্যামেরা অ্যাপ পাওয়া যায়নি + কোনো বিজলি-ঠিকানা সেট করা নেই + এই পেমেন্ট পরিচালনার জন্য কোনো অ্যাপ পাওয়া যায়নি। একটি সামঞ্জস্যপূর্ণ ওয়ালেট ইনস্টল করুন। + %1$s পেমেন্ট পরিচালনার জন্য কোনো অ্যাপ ইনস্টল নেই। একটি সামঞ্জস্যপূর্ণ ওয়ালেট ইনস্টল করুন। + প্রতিক্রিয়ার কোনো ধরন বেছে নেওয়া হয়নি। পরিবর্তন করতে দীর্ঘক্ষণ চাপুন + কোন প্রতিক্রিয়া সেটআপ + Lightning ইনভয়েস পরিশোধ করার জন্য কোনো ওয়ালেট পাওয়া যায়নি। Zap ব্যবহার করতে একটি Lightning ওয়ালেট ইনস্টল করুন + Lightning ইনভয়েস পরিশোধ করার জন্য কোনো ওয়ালেট পাওয়া যায়নি (ত্রুটি: %1$s)। Zap ব্যবহার করতে একটি Lightning ওয়ালেট ইনস্টল করুন + জ্যাপের কোনো পরিমাণ নির্দিষ্ট করা নেই। এটি পরিবর্তন করতে চাইলে দীর্ঘক্ষণ চাপুন + বিজ্ঞপ্তি + বিভাগ + ডেলিভারি + অ্যাপে প্রদর্শন + এখন + Nowhere আর্ট + Nowhere ড্রপ + Nowhere ইভেন্ট + Nowhere ফোরাম + Nowhere ফান্ডরেইজার + Nowhere সাইট + Nowhere বার্তা + Nowhere পিটিশন + Nowhere স্টোর + নগ্নতা + ইভেন্ট রেফারেন্স তৈরি করা যাচ্ছে না + নোটে কোনো প্রাপক pubkey নেই + Nutzap পাবলিক এবং এই প্রাইভেট নোটটি প্রকাশ করে দেবে। পরিবর্তে একটি Lightning zap ব্যবহার করুন। + Nutzap ব্যর্থ হয়েছে + + %1$s sats পাঠান, %2$d ভাগে + %1$s sats পাঠান, %2$d ভাগে + + Bitcoin চেইন ব্যাকএন্ড কনফিগার করা নেই + লেনদেন সম্প্রচার করা যায়নি + লেনদেন তৈরি করা যায়নি + আপনার Bitcoin ব্যালেন্স লোড করা যায়নি + পেমেন্ট পাঠানো হয়েছে, কিন্তু zap রসিদ প্রকাশিত হয়নি + + পেমেন্ট পাঠানো হয়েছে (%2$d এর মধ্যে %1$d রসিদ প্রকাশিত), কিন্তু পরবর্তী রসিদ প্রকাশ করা সম্ভব হয়নি + পেমেন্ট পাঠানো হয়েছে (%2$d এর মধ্যে %1$d রসিদ প্রকাশিত), কিন্তু পরবর্তী রসিদ প্রকাশ করা সম্ভব হয়নি + + একটি প্রাপকের অংশ ডাস্টের নিচে + লেনদেনে সই করা যায়নি + ~১০ মিনিট + ~৩০ মিনিট + ~১ ঘণ্টা + দ্রুত + স্বাভাবিক + ধীর + + %1$d প্রাপকের মধ্যে বিভাজন + %1$d প্রাপকের মধ্যে বিভাজন + + + %1$d জন Lightning-ঠিকানা-শুধুমাত্র প্রাপককে বাদ দেওয়া হচ্ছে — অন-চেইনের জন্য ঠিকানা তৈরি করতে Nostr pubkey প্রয়োজন। + %1$d জন Lightning-ঠিকানা-শুধুমাত্র প্রাপককে বাদ দেওয়া হচ্ছে — অন-চেইনের জন্য ঠিকানা তৈরি করতে Nostr pubkey প্রয়োজন। + + + এই নোটের %1$d-ভাগ Zap স্প্লিট ব্যবহার করুন + এই নোটের %1$d-ভাগ Zap স্প্লিট ব্যবহার করুন + + সম্প্রচার করা হচ্ছে + লেনদেন তৈরি হচ্ছে + ব্যালেন্স লোড হচ্ছে + রসিদ প্রকাশিত হচ্ছে + সই করা হচ্ছে + এই জাতীয় পোলে একজন ব্যবহারকারী শুধুমাত্র একটি করেই ভোট দিতে পারবেন + এই পোস্টের সব প্রতিক্রিয়া খুলুন + খোলা + Orbot এর Socks পোর্ট + বিটকয়েন এক্সপ্লোরার (OTS) + এই পোস্টটি %1$s-এর আগে কোনো এক সময়ে সাইন করা হয়েছিল তার প্রমাণ আছে। প্রমাণটি সেই তারিখ ও সময়ে Bitcoin ব্লকচেইনে স্ট্যাম্প করা হয়েছিল। + টাইমস্ট্যাম্প প্রমাণ + আউটবক্স Relay + একটি পাসওয়ার্ড প্রয়োজন. + বিরতি + পরিশোধ করুন + %1$s এর বার্তা + পেমেন্ট লক্ষ্যমাত্রা + বিভিন্ন নেটওয়ার্কের জন্য পেমেন্ট ঠিকানা যোগ করুন (যেমন bitcoin, lightning, ethereum)। + Downloads/Amethyst-এ PDF সেভ করা হয়েছে + ফলো তালিকার মেটাডেটা Nostr-এ যে কেউ দেখতে পারে। শুধুমাত্র আপনার ব্যক্তিগত সদস্যরা এনক্রিপ্টেড। + ফলো তালিকার মেটাডেটা + ছবি + শীর্ষে পিন করুন + প্রোফাইলে পিন করুন + চালান + + %1$d টি এপিসোড + %1$d টি এপিসোড + + পোল-রচয়িতারা নিজেদের পোলে ভোট দিতে পারবেন না। + (০–১০০)% + পোল নতুন ভোটের জন্য বন্ধ + একাধিক পছন্দ + বিকল্প %1$s + একক পছন্দ + ভোট দিতে অক্ষম + পোল + পেশ করুন + + এই পোস্টে %1$d টির বেশি হ্যাশট্যাগ আছে + এই পোস্টে %1$d টির বেশি হ্যাশট্যাগ আছে + + %1$s এর জন্য কার্ড ইমেজের পূর্বরূপ দেখুন + গোপনীয়তার বিকল্প + গোপনীয়তা নীতি + <Unable to decrypt private message>\n\nআপনাকে %1$s এবং %2$s এর মধ্যে একটি ব্যক্তিগত/এনক্রিপ্টেড কথোপকথনে উদ্ধৃত করা হয়েছে৷ + DM ইনবক্স Relay + আপনার প্রাইভেট ইনবক্স হিসেবে ১–৩টি relay ঢোকান। অন্যরা আপনাকে DM পাঠাতে এই relay গুলো ব্যবহার করবে। DM ইনবক্স relay যেকোনো বার্তা যেকারো কাছ থেকে গ্রহণ করা উচিত, কিন্তু শুধু আপনাকে ডাউনলোড করার অনুমতি দেওয়া উচিত। ভালো বিকল্পগুলো হলো:\n - inbox.nostr.wine (পেইড)\n - auth.nostr1.com (বিনামূল্যে)\n - you.nostr1.com (ব্যক্তিগত relay - পেইড) + ব্যবহারকারী এই relay গুলোতে DM পাচ্ছেন + ব্যক্তিগত বার্তা + ব্যক্তিগত করুন: শুধুমাত্র বিজ্ঞাপিত ব্যবহারকারীদের কাছে নোট গিফট-র‍্যাপ করুন + ব্যক্তিগত নোটের উত্তর সবসময় ব্যক্তিগত থাকে + দৃশ্যমান + প্রাইভেট হোম Relay + এমন ১–৩টি relay ঢোকান যেখানে কেউ দেখতে পাবে না এমন ইভেন্ট সংরক্ষণ করা হবে, যেমন আপনার ড্রাফট এবং/অথবা অ্যাপ সেটিংস। আদর্শভাবে, এই relay গুলো হয় স্থানীয় অথবা প্রতিটি ব্যবহারকারীর কন্টেন্ট ডাউনলোড করার আগে প্রমাণীকরণের প্রয়োজন করে। + অশ্লীলতা / বিদ্বেষপূর্ণ বক্তব্য + প্রোফাইল + প্রোফাইল ব্যাজ + অ্যাপ সুপারিশ + প্রোফাইল ব্যাজ + অনুসরণকারীদের ফিড + Zap প্রাপ্তি ফিড + প্রোফাইল UI + প্রোফাইল + একটি সম্পাদনা প্রস্তাব করুন + প্রক্সি Relay + অ্যাগ্রিগেটর relay যা অ্যাপটিকে আপনার ফিড ডাউনলোড করতে অবশ্যই ব্যবহার করতে হবে, যেমন filter.nostr.wine। এটি আউটবক্স মডেলকে প্রতিস্থাপন করে এবং অ্যাপটিকে শুধুমাত্র আপনার তালিকার relay গুলোতে সংযুক্ত করবে। + সার্বজনীন আলাপ + পাবলিক চ্যাটগুলো Nostr-এর সবার কাছে দৃশ্যমান এবং যে কেউ + এতে অংশগ্রহণ করতে পারে। নির্দিষ্ট বিষয়ের চারপাশে উন্মুক্ত সম্প্রদায়ের জন্য এগুলো দুর্দান্ত। + এর relay-তে পোস্ট মুছে পরিচালনা নিয়ন্ত্রণ করা যায় + এই গ্রুপটি হোস্ট করে এমন ১-৩ টি relay যোগ করুন। + Nostr ক্লায়েন্টগুলো এই সেটিং ব্যবহার করে জানে যে কোথা থেকে বার্তা ডাউনলোড করতে হবে এবং আপনার বার্তা কোথায় পাঠাতে হবে। + Relay-গুলি + পাবলিক চ্যাট মেটাডেটা + পাবলিক চ্যাট + পাবলিক আউটবক্স/হোম Relay + এই relay ধরনটি আপনার সমস্ত কন্টেন্ট সংরক্ষণ করে। Amethyst এখানে আপনার পোস্ট পাঠাবে এবং অন্যরা আপনার কন্টেন্ট খুঁজে পেতে এই relay গুলো ব্যবহার করবে। ১–৩টি relay ঢোকান। সেগুলো ব্যক্তিগত relay, পেইড relay বা পাবলিক relay হতে পারে। + ব্যবহারকারী এই relay গুলোতে তার কন্টেন্ট পোস্ট করছেন + পাবলিক বার্তা + পাবলিক ইনবক্স Relay + এই relay ধরনটি আপনার পোস্টে সব উত্তর, মন্তব্য, পছন্দ এবং Zap গ্রহণ করে। সেগুলো পেইড বা বিনামূল্যে relay হতে পারে। relay অপারেটর কর্তৃক নির্ধারিত সীমা আপনি যে বিজ্ঞপ্তি পান তা ভালো এবং খারাপ উভয়ের জন্য সীমিত করতে পারে। উদাহরণস্বরূপ, যদি আপনি মন্তব্য স্প্যামের আক্রমণের শিকার হন, পেইড relay স্প্যাম ফিল্টার করতে পারে। ১–৩টি relay ঢোকান। + ব্যবহারকারী এই relay গুলোতে বিজ্ঞপ্তি পাচ্ছেন + নোটের আইডি + মুছে ফেলুন + থ্রেড মিউট করুন + শেয়ার + ব্রাউজারের লিংক শেয়ার করুন + থ্রেড আনমিউট করুন + প্রতিক্রিয়া + প্রতিক্রিয়া + প্রতিক্রিয়া সারি + রিলে থেকে পড়ুন + এই relay থেকে প্রাপ্ত বাইটের পরিমাণ, ফিল্টার ও ইভেন্ট সহ + শুধু-পড়ার ব্যবহারকারী + একটি বার্তা রেকর্ড করতে ক্লিক করুন এবং ধরে রাখুন + Relay চ্যাট + Relay চ্যাটগুলো হলো চ্যাট গ্রুপ যা তাদের হোম relay দ্বারা নিয়ন্ত্রিত হয়। + এগুলো Nostr-এর সবার কাছে দৃশ্যমান এবং যে কেউ এতে অংশগ্রহণ করতে পারে। + নির্দিষ্ট বিষয়ের চারপাশে উন্মুক্ত সম্প্রদায়ের জন্য এগুলো দুর্দান্ত। এই গ্রুপগুলোর কিছু ক্ষণস্থায়ী + এবং সেজন্য চ্যাট বার্তাগুলো সময়ের সাথে মুছে যায় + Relay চ্যাট + ইভেন্ট + আইপি + ধরন + ব্যবহারকারীরা + সেটিংস + Relay সেটিংস + আউটবক্স তালিকা + রিলেগুলি + টপ আপ & Zap পাঠান + Zap পাঠান + %2$s-এ %1$s sats টপ আপ করুন এবং %3$s-কে %4$s sats zap করুন · ফি ≈ %5$s sats + সরিয়ে ফেলুন + সর্বজনীন বুকমার্ক থেকে সরিয়ে দিন + এখানে প্রতিউত্তর দিন.. + অবহিত করুন: + + নোটটি মুছে ফেলার অনুরোধ করুন + মুছে ফেলার অনুরোধ + Marmot স্টেট রিসেট করতে ব্যর্থ: %1$s + Marmot স্টেট রিসেট করুন + Marmot স্টেট রিসেট হয়েছে। + পুনরায় চেষ্টা করুন + ক্যালেন্ডার তালিকা + ক্যালেন্ডার + দাবা + আবিস্কার + নীড় + ফলো আমদানি করুন + বার্তা + প্লেলিস্ট + সংগীত + অবহিতকরন + এপিসোড + পডকাস্ট + পোস্ট নির্ধারণ করুন + নির্ধারণ বাতিল করুন + আপনি অ্যাপটি পুনরায় না খোলা পর্যন্ত নির্ধারিত পোস্টগুলি প্রকাশিত নাও হতে পারে। এই অ্যাকাউন্ট সক্রিয় থাকাকালীন অন্য অ্যাকাউন্টের নির্ধারিত পোস্টগুলি কাজ করবে না। নির্ভরযোগ্য ব্যাকগ্রাউন্ড নির্ধারণের জন্য সেটিংস → UI পছন্দে সর্বদা-চালু সক্রিয় করুন। + আপনি পরের বার অ্যাপটি পুনরায় খোলার আগ পর্যন্ত নির্ধারিত পোস্টগুলি প্রকাশিত নাও হতে পারে। নির্ভরযোগ্য ব্যাকগ্রাউন্ড নির্ধারণের জন্য সেটিংস → UI পছন্দে সর্বদা-চালু সক্রিয় করুন। + নির্ধারিত পোস্ট + এখনই পাঠান + %1$s · %2$s-এর মধ্যে + %1$s · %2$s আগে + আগামীকাল + ত্রুটি: %1$s + নোট ID কপি করা হয়েছে + + লগ আউট হয়েছে · %1$d টি নির্ধারিত পোস্ট মুছে ফেলা হয়েছে + লগ আউট হয়েছে · %1$d টি নির্ধারিত পোস্ট মুছে ফেলা হয়েছে + + লগ আউট হয়েছে + + আপনার %1$d টি নির্ধারিত পোস্ট এখনো প্রকাশিত হয়নি। লগ আউট করলে এটি স্থায়ীভাবে মুছে যাবে। + আপনার %1$d টি নির্ধারিত পোস্ট এখনো প্রকাশিত হয়নি। লগ আউট করলে সেগুলো স্থায়ীভাবে মুছে যাবে। + + নির্ধারিত পোস্ট ব্যর্থ হয়েছে + নির্ধারিত পোস্ট প্রকাশিত হয়েছে + + %1$d টি relay-তে + %1$d টি relay-তে + + বাতিল + ব্যর্থ + নির্ধারিত + পাঠানো হচ্ছে… + পাঠানো হয়েছে + + · %1$d টি ১ ঘণ্টায় নির্ধারিত + · %1$d টি ১ ঘণ্টায় নির্ধারিত + + + %1$d টি কিউতে + %1$d টি কিউতে + + ভালো বিকল্পগুলো হলো:\n%1$s + সার্চ Relay + সার্চ Relay + কন্টেন্ট বা ব্যবহারকারী সার্চ করার সময় ব্যবহার করার জন্য relay-এর তালিকা। কোনো বিকল্প না থাকলে ট্যাগিং ও সার্চ কাজ করবে না। নিশ্চিত করুন যে তারা NIP-50 সমর্থন করে। + অনুসন্ধানযোগ্য ইভেন্ট + ব্যক্তিগত চাবি (nsec) ক্লিপবোর্ডে কপি করা হয়েছে + আপনি এখনো কোনো ব্যবহারকারীকে ব্লক করেননি। + নিরাপত্তা-ফিল্টার + কোনো লুকানো শব্দ নেই। এটি ধারণকারী পোস্ট লুকাতে নিচে একটি শব্দ যোগ করুন। + ব্লক করা কন্টেন্ট + ফিল্টারিং পছন্দ + এই সেশনে কোনো অ্যাকাউন্টকে স্প্যাম হিসেবে চিহ্নিত করা হয়নি। + পাঠান + সব প্রাপ্ত প্রোফাইল (kind 0) ইভেন্ট আপনার স্থানীয় relay-এ পাঠান + স্থানীয় relay-এ প্রোফাইল ফরওয়ার্ড করুন + এই প্রাপকের জন্য ব্যয়যোগ্য: %1$s sats + পেমেন্ট ব্যর্থ হয়েছে + লেনদেন: %1$s + %1$s-এর মাধ্যমে পরিশোধ করা হচ্ছে… + আপলোডের পরে সার্ভার কোনো URL প্রদান করেনি + সেটিংস + কোনো মিউট করা থ্রেড নেই + মিউট করা থ্রেড + ছবি হিসেবে শেয়ার করুন + ছবির URL হিসেবে শেয়ার করুন + HLS আপলোড + শেয়ার বা সেভ করুন + শর্টস + এনক্রিপ্টেড প্রাইভেট কী QR কোড দেখান + বিজ্ঞপ্তি ট্যাবে সরাসরি ও গ্রুপ বার্তা অন্তর্ভুক্ত করুন। বার্তাগুলো শুধুমাত্র বার্তা ট্যাবে রাখতে বন্ধ করুন। + বার্তা দেখান + প্রাইভেট কী QR কোড দেখান + সাইন অনুরোধ প্রত্যাখ্যাত + নিশ্চিত করুন যে সাইনার অ্যাপ্লিকেশনটি এই লেনদেন অনুমোদন করেছে + এক্সটার্নাল সাইনার অনুরোধের জন্য একটি অপরিচিত পেলোড ফেরত দিয়েছে। Amethyst বা সাইনারে একটি বাগ থাকতে পারে। + সাইনার পাওয়া যায়নি + সাইনার অ্যাপটি কি আনইনস্টল করা হয়েছে? সাইনারটি ইনস্টল আছে এবং এই অ্যাকাউন্টটি আছে কিনা পরীক্ষা করুন। সাইনার অ্যাপ পরিবর্তন হলে লগ আউট করুন এবং আবার লগইন করুন। + %1$d সেকেন্ড পিছিয়ে যান + %1$d সেকেন্ড এগিয়ে যান + অ্যাপ + স্প্যাম + এই রিলে থেকে আসা স্প্যামিং ইভেন্টের সংখ্যা + স্প্যামাররা + দুটি বিজ্ঞপ্তি ট্যাব দেখান — Following (যাদের আপনি ফলো করেন) এবং Everyone। অপঠিত সূচক শুধুমাত্র আপনি যাদের ফলো করেন তাদের কার্যকলাপের জন্য জ্বলে। + ফলো অনুযায়ী বিজ্ঞপ্তি ভাগ করুন + আপলোডের আগে সমর্থিত মিডিয়া ফাইল থেকে ব্যক্তিগত মেটাডেটা সরানোর চেষ্টা করে + ব্যক্তিগত মেটাডেটা সরান + Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) থেকে সম্পন্ন ওয়ার্কআউট পড়ে এবং সেগুলো পোস্ট হিসেবে শেয়ার করার পরামর্শ দেয়। সংযোগ করার সময়ই অনুমতি চাওয়া হয়। + শেয়ার করার জন্য ওয়ার্কআউট সুপারিশ করুন + সিস্টেম + থিম + আঁধারি, উজ্জ্বল কিংবা সিস্টেমের থিম + এই বার্তাটি %1$s-এ অদৃশ্য হয়ে যাবে + + +%1$d\nউত্তর + +%1$d\nউত্তর + + আজ + পছন্দমতন + নিজেই তৈরি করুন + ডিফল্ট + এলোমেলো relays থেকে আপনার IP লুকান + সম্পূর্ণ গোপনীয়তা + সকল সংযোগে আপনার IP লুকান + অভ্যন্তরীণ + বন্ধ + Tor/গোপনীয়তা প্রিসেট + নিচের সকল সেটিংস দ্রুত পরিবর্তন করুন + মিডিয়া ছাড়া সব + ছবি ও ভিডিও ছাড়া সব কিছু থেকে আপনার IP লুকান + DM পাঠাতে ও গ্রহণ করতে Tor বাধ্যতামূলক করুন + ছবি + ছবি লোড করার সময় Tor বাধ্যতামূলক করুন + মিডিয়া আপলোড + কন্টেন্ট আপলোড করার সময় Tor বাধ্যতামূলক করুন + অর্থ পরিচালনা + Zap, Lightning এবং Cashu ট্রান্সফারে Tor বাধ্যতামূলক করুন + অবিশ্বস্ত Relays + আউটবক্স/ইনবক্স relays-এ Tor বাধ্যতামূলক করুন + Nostr ঠিকানা যাচাই + NIP-05 ঠিকানা যাচাই করার সময় Tor বাধ্যতামূলক করুন + যেকোনো .onion url-এর জন্য Tor ব্যবহার করুন + প্রোফাইল ছবি + প্রোফাইল ছবি লোড করার সময় Tor বাধ্যতামূলক করুন + বিশ্বস্ত Relays + আপনার তালিকার সকল relays-এ Tor বাধ্যতামূলক করুন + URL প্রিভিউ + URL প্রিভিউ লোড করার সময় Tor বাধ্যতামূলক করুন + ভিডিও + ভিডিও লোড করার সময় Tor বাধ্যতামূলক করুন + বেসিক + সার্ভারের প্রয়োজন হলে Tor ব্যবহার করুন + ফাইল খুলতে ব্যর্থ হয়েছে + ফাইলটি খুলতে এবং ডাউনলোড করতে কোনো টরেন্ট অ্যাপ ইনস্টল নেই। + ইভেন্টে একটি ম্যাগনেট লিংক তৈরি করার জন্য পর্যাপ্ত তথ্য নেই + ইভেন্ট পাঠানোর সময় ট্র্যাকড ব্রডকাস্টার ব্যবহার করুন। সম্প্রচার করার সময় লাইভ অগ্রগতি এবং প্রতি-relay অবস্থা দেখায়। + ট্র্যাকড সম্প্রচার + অনুবাদ করুন + বিষয়বস্তু কোন ভাষায় অনুবাদ করবেন তা বেছে নিন। + অনুবাদ + বিশ্বস্ত Relay + Relay যেগুলোর জন্য Tor সংযোগের প্রয়োজন নেই বলে আপনি বিশ্বাস করেন + সম্পূর্ণ + পারফরম্যান্স + সরলীকৃত + UI পছন্দ + UI মোড + পোস্ট শৈলী চয়ন করুন + Zap পাঠানোর আগে Lightning ইনভয়েস তৈরি করতে অক্ষম। প্রাপকের lightning ওয়ালেট নিম্নলিখিত ত্রুটি পাঠিয়েছে: %1$s + ছবি শেয়ার করা যাচ্ছে না, পরে আবার চেষ্টা করুন… + ভিডিও শেয়ার করা যাচ্ছে না, পরে আবার চেষ্টা করুন… + অননুমোদিত ডিক্রিপশন + সাইনার এই অপারেশন সম্পন্ন করতে প্রয়োজনীয় একটি ডিক্রিপশন অনুমোদন করেনি। আপনার সাইনার অ্যাপে NIP-44 ডিক্রিপশন সক্রিয় করুন এবং আবার চেষ্টা করুন + আনফলো করুন + পিন সরান + প্রোফাইল থেকে আনপিন করুন + আপলোড বাতিল + আপলোড ত্রুটি + ভয়েস আপলোড ব্যর্থ হয়েছে: %1$s + ভয়েস বার্তা আপলোড করতে ব্যর্থ হয়েছে + NIP-95 এখনও ভয়েস বার্তার জন্য সমর্থিত নয় + %1$d%% আপটাইম + সক্রিয় Tor ইঞ্জিন + অভ্যন্তরীণ সংস্করণ বা Orbot ব্যবহার করুন + স্যাট গ্রহণের জন্য ব্যবহারকারীর কোনো বিজলি-ঠিকানা দেওয়া নেই + %1$s ব্যবহারকারীর স্যাট গ্রহণের উপযোগী কোনো বিজলি ঠিকানা সেট করা নেই + মুছে ফেলার ইতিহাস + মুছে ফেলার অনুরোধ পাঠানো হয়েছে + ছোট ফাইলে ভালো মান, কিন্তু সব ডিভাইস H.265 প্লেব্যাক সমর্থন করে না। + H.265/HEVC কোডেক ব্যবহার করুন + ভিডিও ডাউনলোড শুরু হয়েছে… + ভিডিও প্লেয়ার বোতাম + ফোনের ভিডিও গ্যালারিতে ভিডিও সেভ করা হয়েছে + ভয়েস পোস্ট + গভীর + উচ্চ + নিরপেক্ষ + কোনোটি নয় + ভয়েস রিপ্লাই + ওয়ালেট + Cashu ওয়ালেট (NIP-60) + আপনার wallet connect প্রোভাইডার নিম্নলিখিত ত্রুটি ফিরিয়ে দিয়েছে: %1$s + Mints সম্পাদনা করুন + পোস্ট বা প্রোফাইলে আপনার ফলো করা লোকদের রিপোর্ট থাকলে সতর্কবার্তা দেখায় + রিপোর্টে সতর্ক করুন + ওয়েব বুকমার্ক যোগ করুন + ওয়েব বুকমার্ক সম্পাদনা করুন + ওয়েব বুকমার্ক + নিজের কোনো ভাবনা প্রকাশ করতে চান? + ওয়ার্কআউট + একটি বার্তা লিখুন… + রিলেতে লিখুন + এই relay-তে পাঠানো বাইটের পরিমাণ, ফিল্টার ও ইভেন্ট সহ + জ্যাপস + + নাম পরিবর্তন করুন + সংরক্ষণ করুন diff --git a/commonsUI/src/commonMain/composeResources/values-cs/strings.xml b/commonsUI/src/commonMain/composeResources/values-cs/strings.xml index d75ad3b7f3..ed9f44a763 100644 --- a/commonsUI/src/commonMain/composeResources/values-cs/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-cs/strings.xml @@ -2832,4 +2832,2343 @@ Publikovat personu Sleduje vás Bot + O aplikaci a právní informace + Modrá + Zelená + Oranžová + Růžová + Fialová + Červená + Nastavení účtu + + %1$d filtr + %1$d filtry + %1$d filtru + %1$d filtrů + + + %1$d skupina + %1$d skupiny + %1$d skupiny + %1$d skupin + + + %1$d relay + %1$d relaye + %1$d relaye + %1$d relayů + + odběry subscriptions filtry relaye relay požadavky reqs připojení proč diagnostika + %1$d %% ze všech + Aktivní odběry relayů + + %1$d filtr zatím není přiřazen + %1$d filtry zatím nejsou přiřazeny + %1$d filtru zatím není přiřazeno + %1$d filtrů zatím není přiřazeno + + Přidat + Přidat Blossom Server + Přidat NIP-96 server + Když je tato možnost zapnutá, Amethyst připojuje k událostem, které publikuješ, klientský tag podle NIP-89. + Přidávat klientský tag do mých událostí + Před zobrazením tohoto obsahu přidá upozornění na citlivý obsah. + Citlivý obsah + Přidat do Zpráv + Přidat do veřejných záložek + Používá AI model běžící v zařízení k navrhování oprav textu a změn tónu. + Navrhovat vylepšení textu + Udržuje připojení k vašim inbox relayím aktivní pro oznámení v reálném čase + + Připojeno k %1$d příchozímu relay + Připojeno k %1$d příchozím relays + Připojeno k %1$d příchozímu relay + Připojeno k %1$d příchozím relays + + + Připojeno k %1$d relay + Připojeno k %1$d relays + Připojeno k %1$d relay + Připojeno k %1$d relays + + Připojování k inbox relayím\u2026 + Skrýt podrobnosti + Zobrazit podrobnosti + Vypnuto + Zapnuto + Amethyst oznámení aktivní + Byli jste přidáni do %1$s + Upozorní vás, když vás někdo zmíní nebo zvýrazní v článku + %1$s vás zmínil v článku + %1$s zvýraznil váš článek + Články a zvýraznění + Nové články + Upozorní vás, když získáte odznak + Získali jste odznak + Uděleno od %1$s + Odznaky + Nové odznaky + Oznámení pro příchozí hlasové a videohovory + Příchozí hovory + %1$s přijal/a vaši šachovou výzvu + Upozorní vás na události šachových her + Šachy + Aktualizace šachů + %1$s táhl/a — jste na tahu + Upozorní vás na issues, patche a pull requesty + %1$s otevřel issue + %1$s odeslal patch + %1$s otevřel pull request + %1$s aktualizoval pull request + %1$s přidal komentář + %1$s sloučil/vyřešil vlákno + %1$s vyřešil issue + %1$s aplikoval patch + %1$s sloučil pull request + %1$s uzavřel vlákno + %1$s uzavřel issue + %1$s uzavřel patch + %1$s uzavřel pull request + %1$s označil vlákno jako koncept + %1$s znovu otevřel vlákno + Kód a Git + Nová aktivita v kódu + Upozorní vás, když dorazí soukromá zpráva + Soukromé zprávy + Nové zprávy + Obsah + Vývojář + Hry + Zprávy + Platby + Sociální + Označit jako přečtené + Já + Upozorní vás, když vás někdo zmíní ve fotce nebo videu + %1$s sdílel fotku + %1$s sdílel video + Média + Nová média + Upozorní vás, když vás někdo zmíní nebo cituje v příspěvku + %1$s vás zmínil(a) + Zmínky + Nové zmínky + Nová zpráva + Nutzap od %1$s + Onchain zap od %1$s + Upozorní vás, když vaše připojená peněženka obdrží platbu, která není Nostr zapem + Přijato %1$s sats + Přijaté platby + Nové platby + %1$s položil otázku + Upozorní vás, když někdo reaguje na váš příspěvek + %1$s reagoval/a na váš příspěvek + na %1$s + Reakce + Nové reakce + Upozorní vás, když někdo odpoví na váš příspěvek + Odpovědi + Nové odpovědi + Odpovědět + Upozorní vás, když někdo přepošle váš příspěvek + %1$s přeposlal váš příspěvek + Přeposlání + Nová přeposlání + Oznámení, když je naplánovaný příspěvek publikován nebo selže při publikaci. + Naplánované příspěvky + Upozorní vás, když vás někdo zapsne + %1$s satů + pro %1$s + Od %1$s + Přijaté zapsy + Nové zapsy + Nastavení aplikace + Atestace + Žádost o atestaci + Odbornost atestátora + Doporučení atestátora + + Přesto přidat %1$d osobu + Přesto přidat %1$d osoby + Přesto přidat %1$d osoby + Přesto přidat %1$d osob + + + Přidat %1$d osobu + Přidat %1$d osoby + Přidat %1$d osoby + Přidat %1$d osob + + Již přidáno + Ztlumeno + Soukromý člen + Jen vy — vyberte, kdo další to uvidí + Přidejte lidi, kterým přijde upozornění + + To by byla %1$d osoba. Amethyst přidá najednou nejvýše %2$d — několik jich odznačte. + To by byly %1$d osoby. Amethyst přidá najednou nejvýše %2$d — několik jich odznačte. + To by bylo %1$d osoby. Amethyst přidá najednou nejvýše %2$d — několik jich odznačte. + To by bylo %1$d osob. Amethyst přidá najednou nejvýše %2$d — několik jich odznačte. + + Poslat soukromě + + Tato poznámka bude zašifrována a doručena jako %1$d samostatná zpráva, jedna pro každou osobu. S externím podepisovačem to znamená jedno schválení za každou. + Tato poznámka bude zašifrována a doručena jako %1$d samostatné zprávy, jedna pro každou osobu. S externím podepisovačem to znamená jedno schválení za každou. + Tato poznámka bude zašifrována a doručena jako %1$d samostatné zprávy, jedna pro každou osobu. S externím podepisovačem to znamená jedno schválení za každou. + Tato poznámka bude zašifrována a doručena jako %1$d samostatných zpráv, jedna pro každou osobu. S externím podepisovačem to znamená jedno schválení za každou. + + + Upozornění na tento příspěvek dostane %1$d osoba. + Upozornění na tento příspěvek dostanou %1$d osoby. + Upozornění na tento příspěvek dostane %1$d osoby. + Upozornění na tento příspěvek dostane %1$d osob. + + + %1$s, %2$s a %3$d další + %1$s, %2$s a %3$d další + %1$s, %2$s a %3$d dalšího + %1$s, %2$s a %3$d dalších + + Vizualizér zvuku + Automaticky uloží koncept události, když píšeš nebo opouštíš editor s neodeslaným textem, a odešle ho na tvé soukromé odchozí relaye. + Automaticky vytvářet koncepty + Imersivní rolování + Skrýt navigační panely při rolování + Automaticky načítat obrázky/gif + Automaticky načítat obrázky a GIFy + Automaticky přehrávat videa + Automaticky přehrávat videa a GIFy + Profilový obrázek + Zobrazit profilové obrázky + Náhled URL + Zobrazit náhledy URL + Automatické přehrávání videí + Automaticky přehrávat videa, když jsou viditelná na obrazovce + Nelze odstranit metadata z AVIF: %1$s + Udělit odznak + Zpět + Zálohovat klíče + Odznaky + Autentizace se nezdařila + Biometrické údaje se nepodařilo ověřit vlastníka tohoto telefonu + Biometrické údaje se nepodařilo ověřit vlastníka tohoto telefonu. Chyba: %1$s + Blokovat + Blokované Relé + Amethyst se k těmto relé nikdy nepřipojí + Blokovaní uživatelé + Synchronizace souborů už probíhá. Zkuste import znovu, až skončí. + Vypnout vše + Zapnout vše + + %1$d soubor + %1$d soubory + %1$d souboru + %1$d souborů + + + Nalezen %1$d soubor k importu na vaše servery. + Nalezeny %1$d soubory k importu na vaše servery. + Nalezeno %1$d souboru k importu na vaše servery. + Nalezeno %1$d souborů k importu na vaše servery. + + + Importovat %1$d soubor + Importovat %1$d soubory + Importovat %1$d souboru + Importovat %1$d souborů + + Není na všech serverech + Na všech serverech + + Zaplatit %1$d sat + Zaplatit %1$d saty + Zaplatit %1$d satu + Zaplatit %1$d satů + + Tento server vyžaduje za nahrání platbu: %1$s + Zrušit + Zobrazuje průběh kopírování vašich souborů mezi servery Blossom. + Synchronizace Blossom + Kopírování vašich souborů mezi servery… + Nabídky BOLT12 + Přidejte jednu nebo více nabídek BOLT12 (lno1…). Jsou sdíleny veřejně, takže vám může kdokoli zaplatit. + Platba BOLT12 selhala: %1$s + Platba BOLT12 odeslána + Chyba zapu BOLT12 + Zaplaceno přes BOLT12, ale důkaz o platbě se nepodařilo ověřit, takže nebyla zveřejněna žádná zap účtenka. + Zaplaceno přes BOLT12, ale peněženka nevrátila žádný důkaz, takže nebyla zveřejněna žádná zap účtenka. + Nový seznam záložek + Metadata seznamu záložek + Metadata seznamů záložek může na Nostr vidět kdokoli. Šifrovaní jsou pouze vaši soukromí členové. + Záložky + Zvýšení + Aplikace a web + Chaty a skupiny + Kanály + Hlavní + Ostatní + Vy + Spodní navigační lišta + Přidat + Přidáno + Zatím žádné oblíbené. Označte aplikaci hvězdičkou v prohlížeči a přidejte ji sem. + Zatím žádné připojené skupiny. + Vysílací Relé + Relé, které šíří vaše poznámky do ostatních přenašečů, jako např. sendit.nosflare.com + Prohlížeč + Oblíbené + Objevujte webové aplikace + Načítání přes otevřený web. Klepnutím použijete Tor. + Načítání přes Tor. Klepnutím použijete otevřený web. + Archivovat kanál + Nový kanál + Smazat kanál + Smazat „%1$s“? Odstraní to kanál a jeho zprávy pro všechny a nelze to vrátit zpět. + Soukromý kanál + Skrytý ze seznamu kanálů a jen na pozvání. Vypnuto znamená, že ho může najít a připojit se k němu kdokoli na tomto relayi. + Zrušit archivaci kanálu + + %1$d skrytá konverzace + %1$d skryté konverzace + %1$d skryté konverzace + %1$d skrytých konverzací + + + Zobrazit další %1$d konverzaci + Zobrazit všechny %1$d konverzace + Zobrazit všech %1$d konverzace + Zobrazit všech %1$d konverzací + + Upravit + Nové fórum + Připnout kanál + %1$s a %2$s píší… + Odepnout kanál + Schváleno + Zrušeno + Zamítnuto + Selhalo + Potřebuje schválení + Ve frontě + Vydáno + Pracuje + + %1$s, %2$d událost + %1$s, %2$d události + %1$s, %2$d událostí + %1$s, %2$d událostí + + Nahrání obrázku selhalo + Vybraný obrázek se nepodařilo nahrát. Zkuste to znovu nebo vložte URL. + Sdílet událost kalendáře + Otevřít v mapách + Otevřít odkaz + Probíhá nyní + %1$s · končí %2$s + + Začíná za %1$d minutu + Začíná za %1$d minuty + Začíná za %1$d minut + Začíná za %1$d minut + + Upozornění, když je událost, které se účastníte, blízko začátku. + calendar_reminders + Připomenutí kalendáře + Událost kalendáře + Oznámení se spustí, když je událost, které se účastníte, blízko začátku. + Posílat připomenutí + + %1$d min + %1$d min + %1$d min + %1$d min + + Připomenutí kalendáře + Den + Kanál + Měsíc + Týden + Přijmout + Bluetooth + Kamera vypnuta + Kamera zapnuta + Sluchátko + Zavěsit + Příchozí hovor + Příchozí videohovor\u2026 + Příchozí hlasový hovor\u2026 + Ztlumit + Hovory + Oznámení o probíhajícím hovoru + Amethyst potřebuje přístup ke kameře a mikrofonu, aby mohl zahájit videohovor. Povolte je v nastavení aplikace. + Amethyst potřebuje přístup k mikrofonu, aby mohl zahájit hlasový hovor. Povolte jej v nastavení aplikace. + Odmítnout + Sdílet obrazovku + Ukončit sdílení obrazovky + Sdílení obrazovky + Nastavení hovorů + Reproduktor + Zrušit ztlumení + Hovor s %1$s + Adresa URL zpětného volání nebyla nalezena v odpovědi %1$s + Zrušit + Cashu Token + Kontroluji mint… + Nepodařilo se použít Cashu + Mint poskytl následující chybovou zprávu: %1$s + Přijato + Odesláno + Odpovídající minty + + +%1$d další + +%1$d další + +%1$d dalšího + +%1$d dalších + + Oblíbené minty + + Doporučuje %1$d další + Doporučují %1$d další + Doporučuje %1$d dalšího + Doporučuje %1$d dalších + + Přesunuto %1$s sat do %2$s. + V systému nebyla nalezena žádná kompatibilní peněženka Cashu + + %1$d čekající faktura + %1$d čekající faktury + %1$d čekající faktury + %1$d čekajících faktur + + Zaplatit %1$s sat + až %2$s sat na poplatcích? + Publikovat žádost o smazání vašeho doporučení kind:38000 pro %1$s. Relaye, které dodržují NIP-09, jej odstraní. + Obnoveno %1$s sats z %2$s proofů. + Obdrženo Cashu + %1$s sats bylo odesláno do vaší peněženky. (Poplatek: %2$s sats) + Nebezpečná adresa Cashu mintu + Amethyst nekontaktoval mint tohoto tokenu. %1$s + + Prostředky uloženy v %1$d mintu, který nepoužíváte + Prostředky uloženy v %1$d mintech, které nepoužíváte + Prostředky uloženy v %1$d mintu, který nepoužíváte + Prostředky uloženy v %1$d mintech, které nepoužíváte + + Čekám na zaplacení faktury… + + %1$d mint + %1$d minty + %1$d mintů + %1$d mintů + + Ukončit odesílání + Odeslat do zařízení + Přijato alespoň jedním relayem + Doručeno na relaye všech příjemců + Žádné informace o relayi pro tuto zprávu + Čekání, až relay přijme tuto zprávu + + %1$d odpověď + %1$d odpovědi + %1$d odpovědi + %1$d odpovědí + + V chatu + Ve vlákně + Šifrované komunity s více kanály (Concord). + Komunity Concord + Odlehčené místnosti vázané na relay, které neuchovávají historii. + Dočasné chaty + Veřejný chat vázaný na geohash pro dané místo (Geolokace). + Chaty podle místa + Skupinové chaty s koncovým šifrováním MLS (Marmot). + Šifrované skupiny + Starší, méně soukromé šifrované přímé zprávy (NIP-04). + Starší přímé zprávy + Přímé zprávy s koncovým šifrováním a gift-wrap obálkou (NIP-17). + Soukromé zprávy + Otevřené veřejné chatovací místnosti, které si může kdokoli přečíst a připojit se k nim (NIP-28). + Veřejné kanály + Skupinové chaty spravované relayem se seznamy členů a moderací (NIP-29). + Skupiny na relayi + Standardy ochrany dětí + Příslušenství + Umění + Knihy + Oblečení + Sběratelské předměty + Vyrobí + Elektronika + Fitness + Potraviny + Nábytek + Domovský + Různé + Kancelář + Ostatní + Domácí zvířata + Sportovní + Denně + Měsíčně + Jednorázově + Týdně + Zaplatit %1$s přes %2$s? + Zaplatit tuto fakturu přes %1$s? + Debetní služba platbu nedokončila. + Zadejte platnou částku pro tuto nabídku. + Vyžaduje se faktura… + Zavřít všechny reakce na tento příspěvek + Uzavřené + Komunity + Návrh má %1$d bajtů; tato komunita pro tento typ omezuje velikost na %2$d bajtů. + Návrh má %1$d bajtů; tato komunita omezuje velikost událostí na %2$d bajtů. + Dnes jsi již zveřejnil %1$d událostí tohoto typu (limit %2$d). + Nastavení editoru + + %1$d kanál + %1$d kanály + %1$d kanálu + %1$d kanálů + + Nový kanál + Smazat kanál + Smazat + Smazat #%1$s? Tuto akci nelze vrátit zpět a kanál nelze znovu vytvořit se stejným id. + Smazat kanál? + Název kanálu + Zatím žádné zprávy + Přejmenovat kanál + Přejmenovat + Zatím žádné kanály. + Vytvořit + Relaye + Relaye, které uchovávají šifrované zprávy této komunity. Nechte prázdné pro použití vlastních. + Nový kanál Concord + Upravit komunitu + Úprava zprávy + Kanály Concord + Pozvat lidi + Tuto pozvánku se nepodařilo načíst. Odkaz může být prošlý nebo jsou jeho relaye nedostupné. + Tato komunita vás odebrala. Odkaz stále funguje, ale její seznam členů vás nevpustí. + Platnost tohoto pozvánkového odkazu vypršela a nelze jej již použít. Vyžádejte si nový odkaz. + Tento zvací odkaz nelze otevřít. Může být zastaralý nebo již nahrazený novějším, případně vytvořený novější verzí aplikace. Vyžádejte si nový zvací odkaz. + Tento zvací odkaz je neplatný nebo jej nelze otevřít tímto účtem. + Tento zvací odkaz byl zrušen a již jej nelze použít. Vyžádejte si nový. + Odkazy pro pozvání… + Odkazy pro pozvání + Odkaz se nepodařilo zrušit. Zkontrolujte připojení a zkuste to znovu. + Odkaz pro pozvání byl zrušen. + Odkaz pozvánky + Opustit komunitu + Opustit %1$s? Bude odebrána ze seznamu tohoto účtu a přestane se synchronizovat na vašich zařízeních. Komunita o tom nedostane oznámení a nebudete odebráni z jejího seznamu členů. Zprávy, které již nedokážete dešifrovat, mohou být neobnovitelné, a vrátit se můžete pouze s novou pozvánkou. + Tuto komunitu jste vytvořili vy. Opuštěním ji nesmažete ani ji nepředáte nikomu jinému, ale zahodíte klíč vlastníka uložený ve vašem seznamu — už byste ji nemohli spravovat. + Opustit komunitu? + Nastavit správcem + + %1$d člen + %1$d členové + %1$d člena + %1$d členů + + Zablokovat + Nastavit správcem + Odebrat práva správce + Role tohoto člena se nepodařilo aktualizovat. + Přiřadit role + Členové + Odblokovat + Odebrat práva správce + Odeslat obrázek + Concord + Píše několik lidí… + %1$s píše… + %1$s a %2$s píší… + + %1$d nová zpráva + %1$d nové zprávy + %1$d nové zprávy + %1$d nových zpráv + + Výchozí port je 9050 + Připojené přenašeče + Aktuální seznam používaných přenašečů + Procento úspěšných připojení k relé + Vždy + Nikdy + Neomezená WiFi + Wi-Fi + Přidat dokument + Přidat obrázek + Přidat média + Přidat video + Skrýt + Varovat + Ukázat + Konverzace + Převede animovaný GIF na video MP4 pro menší velikost souboru a lepší kompatibilitu přehrávání. + Převést GIF na MP4 + ID poznámky (@note1) zkopírováno do schránky + Text poznámky zkopírován do schránky + Zkopírováno do schránky + Uživatelovo ID (@npub) zkopírováno do schránky + Zkopírovat můj tajný klíč + Kopírovat do schránky + Nepodařilo se sestavit LNUrl z Lightning adresy "%1$s". Zkontrolujte nastavení uživatele + Nelze zkontrolovat stažený soubor po nahrání: %1$s + Nepodařilo se stáhnout nahraná média ze serveru + Nelze získat fakturu z %1$s: %2$s + Nepodařilo se otevřít komprimovaný soubor + Peněženka nebyla nalezená + Amethyst nenašel žádné aplikace peněženek, které podporují Nostr Wallet Connect (NWC). +\n\nCo můžete udělat: +\n\t1. Ověřte podporu NWC: Zkontrolujte, že vaše oblíbená peněženka podporuje Nostr Wallet Connect. +\n\t2. Vytvořte připojení: Otevřete svou peněženku a vytvořte nové NWC připojení. +\n\t3. Propojte s Amethyst: Vaše peněženka obvykle nabídne tři možnosti: +\n\t\t3.1 Automatické propojení: Tlačítko pro automatické otevření a připojení k Amethyst. Klikněte na něj, otevřete Amethyst a uložte na nové obrazovce. +\n\t\t3.2 Ruční propojení: URI připojení, které můžete zkopírovat a vložit přes ikonu vložení na této obrazovce. +\n\t\t3.3 QR kód: Peněženka vytvoří QR kód, který můžete naskenovat pomocí tlačítka QR kódu na této obrazovce. + Vytvořit + d + Nebezpečná zóna + Tmavý + Popis + Zveřejnit + Chaty + Komunity + Algoritmy kanálu + Balíčky Sledování + Živé vysílání + Trh + Přečtené + Relé DM Schránky + + Nahlásil %1$d člověk, kterého sledujete + Nahlásili %1$d lidé, které sledujete + Nahlásilo %1$d lidí, které sledujete + Nahlásilo %1$d lidí, které sledujete + + DMs + Nepřekládat z + Zde zobrazené jazyky nebudou přeloženy. Vyberte jazyk, který chcete odstranit a nechat je znovu přeložit. + Uložit do telefonu + Stahování videa… + Koncept + Koncepty + Účty + Vytvořit + Kanály + Navigace + Systém + Vy + Boční nabídka + Vždy zapnuto + Skryté + + %1$d skrytá + %1$d skryté + %1$d skrytých + %1$d skrytých + + Viditelné + + %1$d den + %1$d dny + %1$d dnů + %1$d dnů + + + %1$d hodina + %1$d hodiny + %1$d hodin + %1$d hodin + + + %1$d minuta + %1$d minuty + %1$d minut + %1$d minut + + + %1$d měsíc + %1$d měsíce + %1$d měsíců + %1$d měsíců + + + %1$d týden + %1$d týdny + %1$d týdnů + %1$d týdnů + + + %1$d rok + %1$d roky + %1$d let + %1$d let + + Upravit kalendář + Upravit událost kalendáře + Upravit komunitu + Upravit emoji balíček + Upravit + Upravit playlist + Upravit příspěvek + Soukromá emoji jsou šifrovaně uložena na relayích a viditelná pouze pro vás. Objeví se ve vaší nabídce reakcí a v automatickém doplňování ":" stejně jako veřejná. + Veřejná emoji jsou viditelná pro všechny a objeví se ve vaší nabídce reakcí a v automatickém doplňování ":", když je tento balíček ve vašem seznamu emoji. + Emoji + Šifrovat soubory před nahráním pro ochranu soukromí. Některé servery nemusí přijímat šifrované soubory na bezplatných účtech. + Šifrovat soubory + Mizící chat + Chyba + Nelze zaplatit fakturu + Nepodařilo se vybrat + Nelze otevřít platbu + Nelze odeslat zap + Chyba při otevírání aplikace pro podpis + Signner aplikace nebyla nalezena. Zkontrolujte, zda aplikace nebyla odinstalována + Chyba při zpracování chybové zprávy + Chyba při analýze JSON z %1$s. Zkontrolujte uživatelské bleskové nastavení + Nebylo možné načíst fakturu ze serverů příjemce + Otevřít v prohlížeči + Toto video nelze přehrát + Tento kodek nebo formát není na tomto zařízení podporován (%1$s). Zkuste jej otevřít v prohlížeči. + Chyby + Synchronizace relé + události od vás + události pro vás + AMRAP + Okruh + Cyklistika + Dieta + EMOM + Půst + Turistika + Meditace + Veslování + Běh + Silový trénink + Plavání + Chůze + Jóga + Rozbalit + Datum vypršení + Autor požádal relaye, aby tuto poznámku po %1$s smazaly. Po vypršení zmizí z kanálů. + Exportovat nastavení relé + Smazání selhalo: %1$s + Nepodařilo se zašifrovat váš privátní klíč + Chyba při ukládání obrázku + Nepodařilo se uložit PDF + Nepodařilo se uložit video + Mnoho serverů nepřijímá šifrované soubory na bezplatných účtech. Můžete to zkusit znovu bez šifrování. + Šifrované nahrávání selhalo + Chyba při nahrávání: %1$s + Nepodařilo se nahrát média + Nepodařilo se dosáhnout %1$s: %2$s + Přidat do oblíbených + Načítá přes otevřený web. + Načítá přes Tor. + Nedávné + Odebrat z oblíbených + Tato aplikace ještě není načtena. Zkuste to za chvíli. + Oblíbené aplikace + Oblíbené algoritmy zdrojů + Provedena platba + Zveřejněno na relays + Soubor nahrán + Oblíbené feedy relayí + Relaye, které často navštěvujete pro zobrazení jejich globálního feedu + Komunity + Algoritmy zdrojů + Kanály + Hashtagy + Sady zájmů + Seznamy + Lokace + Relé + Souborový server + Zvolte server pro nahrání tohoto souboru + Skryje příspěvky od cizinců, které byly přesně stejné 5 a více krát + Filtrovat spam + Sledovat + Následovat zpět + Sledovat toto místo + Všechny oblíbené algoritmy zdrojů + Kolem mě + Kurátorováno + Globální + Výchozí seznam sledování + Všechna sledování + Všech Uživatelů Sledování + Moje + Seznam ztlumení + Teleportovat na místo… + Nová sada doporučení + Upravit sadu doporučení + Metadata sad doporučení mohou vidět všichni na Nostr a často jsou zveřejňována na různých webech jako startovací sady pro nové uživatele. + Metadata sady doporučení + Seznamy sledování + Nový seznam sledování + Upravit seznam + Písmo + Typ písma používaný v celé aplikaci + Neproporcionální + Mono + Bezpatkové + Sans + Patkové + Serif + Výchozí systémové + Systém + Velikost písma + Změna velikosti textu v celé aplikaci + Obrovská + Velká + Normální + Malá + Styl galerie profilu + Zvolte styl galerie + Klasický + Moderní + Chat podle polohy + Lokace-Exkluzívní příspěvek + Uvidí to pouze následovníci umístění. Tvoji obecní následovníci to neuvidí. + + %1$d položka + %1$d položky + %1$d položky + %1$d položek + + Git repozitáře + Zavřít filtr + Filtrovat repozitáře + %1$s financováno z %2$s sats cíle + h + Obrázek se změnil. Autor možná změnu nezaznamenal + Co to znamená? + Obrázek je stejný jako v původním příspěvku + Ahoj %1$s, je to stále k dispozici? + Skrytá slova + Skryje příspěvky z komunitních feedů, když komunita zveřejní dokument s pravidly NIP-9B a událost by jím neprošla. Bez efektu, pokud komunita nemá strukturovaná pravidla. + Skrývat příspěvky porušující pravidla komunity + Skrýt heslo + Zvýraznění + Nahrávání %1$s (%2$d z %3$d) + Články + Atestace + Pozorování ptáků + Šachové partie + Inzeráty + Komentáře a odpovědi + Dočasné chaty + Sbírky + Zvýraznění + Interaktivní příběhy + Živé aktivity + Hudba a zvuk + Návrhy NIP + Obrázky + Podcasty + Ankety + Hodnocení a recenze + Sdílení + Krátká videa + Textové poznámky + Torrenty + Videa + Hlasové zprávy + Wiki stránky + Vše + Špatný požadavek - Server nemůže nebo nechce zpracovat požadavek. + Neautorizovaný - Uživatel nemá platné přihlašovací údaje + Požadována platba - Server vyžaduje platbu pro dokončení požadavku + Zakázáno - Uživatel nemá přístupová práva k provedení požadavku + Nenalezeno - Server nemůže najít požadovanou adresu + Metoda není povolena - Server podporuje metodu požadavku, ale ne cílový zdroj + Nepřijatelné - Server nenachází žádný obsah, který by vyhovoval požadavku. + Vyžadováno ověření proxy - Uživatel nemá platné přihlašovací údaje + Časový limit požadavku - Server čekal na někoho jiného příliš dlouho + Konflikt - Server nemůže splnit požadavek, protože existuje konflikt se zdrojem + Pryč - Požadovaný obsah byl trvale odstraněn ze serveru a nebude obnoven + Požadována délka - Server odmítá požadavek, protože vyžaduje definovanou délku + Předpoklad selhal - Předpoklady požadavku v hlavičkách, které server nesplňuje + Příliš velký obsah - Požadavek je větší než definované limity serveru a server odmítá jej zpracovat + Příliš dlouhá URI - URL požadovaná klientem je příliš dlouhá na to, aby ji server zpracoval. + Nepodporovaný typ média - Požadavek používá formát média, který server nepodporuje + Rozsah nesplnitelný - Server nemůže splnit hodnotu uvedenou v hlavičce rozsahu požadavku. + Očekávání selhalo - Server nemůže splnit požadavky uvedené v hlavičce očekávání požadavku + Vyžadována aktualizace - Server odmítá zpracovat požadavek s aktuálním protokolem, pokud klient neaktualizuje na jiný protokol. + Interní chyba serveru - Server narazil na neočekávanou chybu a nemůže dokončit požadavek + Nerealizováno - Server nemůže splnit požadavek nebo nerozpoznává metodu požadavku + Špatná brána - Server funguje jako brána a obdržel neplatnou odpověď od hostitele + Služba nedostupná - K tomu často dochází, když je server přetížený nebo je v údržbě + Časový limit brány - Server fungoval jako brána nebo proxy a čekal na odpověď příliš dlouho + Verze HTTP není podporována - Server nepodporuje verzi HTTP v požadavku + Varianta také vyjednává - Server má interní konfigurační chybu + Nedostatečné úložiště - Server nemá dostatek úložiště, aby úspěšně zpracoval požadavek + Detekována smyčka - Server detekuje nekonečnou smyčku při zpracování požadavku + Vyžadováno ověření sítě - Klient musí být autentizován, aby získal přístup k síti + Nezákonné jednání + Obrázek uložen do galerie + Zneužívání identity + Relaye pro přijímání + Nesprávná částka faktury(%1$s sats) od %2$s. Měla by být %3$s + Indexační Relé + Relé, které uchovávají metadata a seznamy přenašečů, např. purplepag.es + Nová sada zájmů + Přejmenovat + Sady zájmů + Neplatný klíč + Neplatný klíč: %1$s + Neplatná adresa + Amethyst obdržel URI k otevření, ale tento URI byl neplatný: %1$s + Není možné citovat koncept + Není možné reagovat na koncept + Není možné odpovědět na koncept + Není možné poslat zap konceptu + Klíč je povinný + KeyPackage relays + Relays, kde jsou publikovány vaše MLS KeyPackages (MIP-00). Ostatní uživatelé je stahují, aby vás mohli pozvat do Marmot skupinových chatů. Vložte 1–3 relays, které přijímají KeyPackage události od vás a umožňují veřejné čtení. + KeyPackages + Přijatá sada odznaků + Prolog dobrodružství + Čtení dobrodružství + Scéna dobrodružství + Doporučení aplikací + Schůzka + Aplikace + RSVP na schůzku + Audio hlavička + Audio stopa + Vytvořené podcasty + Ocenění odznaků + Definice odznaků + Blob data + Blob hlavičky + Blokované relaye + Blogy + Blossom ověření + Blossom servery + Seznam záložek + Broadcast relaye + Kalendář + Definice kanálu + Skrýt zprávu kanálu + Seznam kanálů + Zpráva kanálu + Metadata kanálu + Ztlumit uživatele v kanálu + Šachové ověření + Šachové výzvy + Nabídka remízy + Přijetí šachové hry + Konec šachové hry + Šachové hry + Šachový tah + Inzeráty + Komentáře + Definice komunity + Seznam komunit + Příspěvek komunity + Kontaktní karta + Denní schůzka + Smazání + Soubor DM + Zpráva DM + DM relaye + Koncepty + Požadavek na obsah DVM + Odpověď obsahu DVM + Stav DVM + Požadavek uživatele DVM + Odpověď uživatele DVM + Úpravy + Seznam balíčků emoji + Balíčky emoji + Dočasný chat + Dočasné chatovací místnosti + Oblíbené podcasty + Oblíbené relaye + Hlavičky souborů + Souborové servery + Seznam sledovaných + Balíčky sledování + Sledování geohashe + Dárkové balíčky + Git problém + Git záplata + Pull request + Aktualizace PR + Git odpověď + Git repozitář + Git stav: Aplikováno + Git stav: Uzavřeno + Git stav: Koncept + Git stav: Otevřeno + Sledované hashtagy + Zvýraznění + HTTP ověření + Seznam indexovacích relayů + Živé chaty + Živé přenosy + Lékařská data + Místnost schůzky + Prostor schůzky + Hudební playlist + Hudební stopa + Seznam ztlumených + Pojmenované záložky + Servery Nests + NIP + NIP-04 soukromé zprávy + NNS + Nostr Connect + Poznámky + NWC požadavek + NWC odpověď + Starý seznam záložek + OTS + Outbox relaye + Platba na + Seznamy lidí + Obrázky + Připnuté + Epizoda podcastu + Podcast + Anketa + Odpověď na anketu + Soukromé relaye + Soukromé zapy + Profil + Profilové odznaky + Galerie profilu + Proxy relaye + Veřejná zpráva + Reakce + Ověření relay + Objevování relayí + Oznámení monitoru relayí + Sada relayů + Nahlášení + Sdílení + Reposty (16) + Přítomnost v místnosti + Pečetě + Vyhledávací relaye + Krátká videa + Krátká videa (odpověď) + Komentáře k torrentu + Torrenty + Důvěryhodní poskytovatelé + Důvěryhodné relaye + Smazání uživatele + Uživatelská nastavení + Stav uživatele + Video + Video (odpověď) + Hlasová zpráva + Hlasová odpověď + Probuzení + Webová záložka + Wiki + Tréninky + Cíle zapů + Zap anketa + Požadavek zapu + Zapy + Známé + Předvolby zobrazení jazyka + Pro každý přeložený jazykový pár zvolte, který jazyk zobrazit jako první. + Naposledy viděn před %1$s + Naposledy viděn právě teď + Nikdy neviděn + Naposledy viděn %1$s (před %2$s) + Opustit + Záznam souboru + Adresář + + %1$d položka + %1$d položky + %1$d položky + %1$d položek + + + %1$d další položka + %1$d další položky + %1$d další položky + %1$d dalších položek + + Výukový materiál + Světlý + Živé vysílání + Lokální relé + Seznam relací, které jsou v tomto zařízení spuštěny. + Změnit místo na mapě + Kanály podle polohy + Vyberte místo na mapě + Pro zvýšení příspěvků se přihlaste s privátním klíčem + Přihlaste se pomocí soukromého klíče, abyste mohli následovat + Používáte veřejný klíč a veřejné klíče jsou pouze pro čtení. Přihlaste se pomocí soukromého klíče, abyste mohli skrýt slovo nebo větu + Pro odpověď se přihlaste s privátním klíčem + Přihlaste se pomocí soukromého klíče, abyste mohli odesílat Zapy + Používáte veřejný klíč a veřejné klíče jsou pouze pro čtení. Přihlaste se pomocí soukromého klíče, abyste mohli zobrazit slovo nebo větu + Používáte veřejný klíč, který je pouze pro čtení. Přihlaste se pomocí soukromého klíče, abyste mohli podepisovat události + Přihlaste se pomocí soukromého klíče, abyste mohli zrušit sledování + Používáte veřejný klíč, který je pouze pro čtení. Přihlaste se pomocí soukromého klíče, abyste mohli nahrávat + Přihlásit se pomocí soukromého klíče pro označení příspěvků jako líbivé + Videa + m + Moje emoji balíčky + Přidat fotku + Přidávám %1$s… + Administrátorská práva udělena + Administrátorská práva odebrána + Změnit fotku + Nejprve přidejte v Nastavení mediální server Blossom — skupina potřebuje místo, kam nahrávat přílohy. + Tato skupina nyní používá šifrované přílohy + Nepodařilo se přidat %1$s: %2$s + Nepodařilo se vytvořit skupinu: %1$s + Skupinu se nepodařilo rozpustit: %1$s + Tuto skupinu se nepodařilo přepnout na šifrované přílohy: %1$s + Nepodařilo se udělit administrátorská práva: %1$s + Nepodařilo se opustit skupinu: %1$s + Nepodařilo se odebrat člena: %1$s + Nepodařilo se odebrat administrátorská práva: %1$s + Nepodařilo se aktualizovat: %1$s + MLS skupina + Tato skupina se ukončuje. Stále ji můžete číst. + Opouštíte tuto skupinu. + Již nejste členem této skupiny. + Skupina rozpuštěna + Ukončuji skupinu. Dokončí se, jakmile to skupina odsouhlasí. + Informace o skupině aktualizovány + + %1$d člen + %1$d členové + %1$d člena + %1$d členů + + Člen odebrán + + %1$d zpráva + %1$d zprávy + %1$d zprávy + %1$d zpráv + + Nejste členem této skupiny + neznámá chyba + Média přidána + Média přidána do vaší profilové galerie + Stahování médií bylo zahájeno… + Offline + Online + Pomalé + Media Servery + Média je příliš velká pro NIP-95 + Nejdříve vložte cíl zprávy + Nelze nahrát + Předmět + Zprávy + Metadata nelze odstranit + Nepodařilo se odstranit soukromá metadata z média. Nahrávání zrušeno. + Záložky úspěšně přesunuty + Chybí nastavení blesku + Více možností + Přesunout mezi soukromé + Přesunout mezi veřejné + Nahrát obrázek obalu + Vyberte čtvercový obrázek jako artwork pro tento playlist. + + +%1$d další stopa + +%1$d další stopy + +%1$d další stopy + +%1$d dalších stop + + + %1$d stopa + %1$d stopy + %1$d stopy + %1$d stop + + + %1$d stopa + %1$d stopy + %1$d stopy + %1$d stop + + Nahrávám obal a zveřejňuji. Bude pokračovat, i když opustíte obrazovku. + Nahrát zvukový soubor + Vyberte MP3, WAV nebo FLAC. Při uložení bude nahrán na váš mediální server. + Nahrát obrázek obalu + Vyberte čtvercový obrázek, který bude obalem této stopy. + Nahrávání obalu a zvuku a publikování. Bude pokračovat, i když opustíte obrazovku. + Zvuk zapnutý. Klikněte pro ztlumení + Ztlumit oznámení + Ztlumené. Klikněte pro odztlumení + Mé soubory Blossom + Moje seznamy + Jméno je povinné + %1$dms + Nastavení Namecoin + Identita + Číst váš veřejný klíč + Zasílání zpráv + Vyměňovat zprávy s ostatními nApplets + Akce klávesnice + Přiřadit klávesové zkratky + Oznámení + Zobrazovat vám oznámení + Relaye + Číst, podepisovat & zveřejňovat vaše eventy + Síť + Načítat webové a Blossom zdroje + Šifrování + Šifrovat a dešifrovat soukromé zprávy vaším klíčem + Úložiště + Vlastní soukromé úložiště + Téma + Přizpůsobit barvy vaší aplikace + Nahrávání + Nahrávat soubory na váš mediální server + Platby + Platit Lightning faktury + aplikace oprávnění podepisovač napplet nsite webová aplikace důvěra připojené + + začne sledovat %1$d nový účet + začne sledovat %1$d nové účty + začne sledovat %1$d nového účtu + začne sledovat %1$d nových účtů + + ⚠ Tímto začnete sledovat %1$s. + + PŘESTANE SLEDOVAT %1$d účet + PŘESTANE SLEDOVAT %1$d účty + PŘESTANE SLEDOVAT %1$d účtu + PŘESTANE SLEDOVAT %1$d účtů + + ⚠ Tímto se přepíše váš seznam sledovaných: %1$s. + %1$s a %2$s + + ztlumí %1$d další osobu + ztlumí %1$d další osoby + ztlumí %1$d další osoby + ztlumí %1$d dalších osob + + ⚠ Tímto ztlumíte %1$s. + + ZRUŠÍ ZTLUMENÍ %1$d osoby + ZRUŠÍ ZTLUMENÍ %1$d osob + ZRUŠÍ ZTLUMENÍ %1$d osoby + ZRUŠÍ ZTLUMENÍ %1$d osob + + ⚠ Tímto se přepíše váš seznam ztlumených: %1$s. Ztlumená slova a hashtagy se zde nezobrazují — celý seznam zobrazíte klepnutím na “Zobrazit událost”. + + ⚠ Tímto se zapíše seznam s %1$d položkou. Amethyst nemá uloženou kopii k porovnání. + ⚠ Tímto se zapíše seznam s %1$d položkami. Amethyst nemá uloženou kopii k porovnání. + ⚠ Tímto se zapíše seznam s %1$d položkami. Amethyst nemá uloženou kopii k porovnání. + ⚠ Tímto se zapíše seznam s %1$d položkami. Amethyst nemá uloženou kopii k porovnání. + + Tímto se váš stávající seznam znovu zveřejní beze změny. + + přidá %1$d relay + přidá %1$d relaye + přidá %1$d relaye + přidá %1$d relayů + + + ODEBERE %1$d relay + ODEBERE %1$d relaye + ODEBERE %1$d relaye + ODEBERE %1$d relayů + + ⚠ Tímto se přepíše váš seznam relayů: %1$s. Vaše příspěvky a čtení se přesunou spolu s ním. + ⚠ Tímto PŘESTANETE SLEDOVAT %1$s. + ⚠ Tímto ZRUŠÍTE ZTLUMENÍ %1$s. + + ⚠ Tímto se požaduje smazání %1$d vaší události. + ⚠ Tímto se požaduje smazání %1$d vašich událostí. + ⚠ Tímto se požaduje smazání %1$d vaší události. + ⚠ Tímto se požaduje smazání %1$d vašich událostí. + + + Nese %1$d značku. Klepnutím na “Zobrazit událost” uvidíte přesně, co by bylo podepsáno. + Nese %1$d značky. Klepnutím na “Zobrazit událost” uvidíte přesně, co by bylo podepsáno. + Nese %1$d značky. Klepnutím na “Zobrazit událost” uvidíte přesně, co by bylo podepsáno. + Nese %1$d značek. Klepnutím na “Zobrazit událost” uvidíte přesně, co by bylo podepsáno. + + Tento nApplet chce číst váš veřejný klíč. + Tento nApplet chce číst váš profil a data účtu. + Tento web chce dešifrovat zprávu od %1$s vaším Nostr klíčem. + Tento web chce zašifrovat zprávu pro %1$s vaším Nostr klíčem. + Tento nApplet vám chce zobrazovat oznámení. + + Tento nApplet chce zaplatit Lightning fakturu za %1$d sat. + Tento nApplet chce zaplatit Lightning fakturu za %1$d sats. + Tento nApplet chce zaplatit Lightning fakturu za %1$d sats. + Tento nApplet chce zaplatit Lightning fakturu za %1$d sats. + + ⚠ Tento nApplet chce zaplatit Lightning fakturu, která neuvádí ŽÁDNOU částku — o výši odebrané platby rozhoduje příjemce. Povolte to jen tehdy, pokud mu důvěřujete. + Tento nApplet chce podepsat a zveřejnit event kind %1$d vaším jménem. + Tento nApplet chce odeslat šifrovaný event vaším jménem. + Tento nApplet chce podepsat a zveřejnit event kind %1$d vaším jménem: + Tento nApplet chce číst eventy z vašich relays. + Tento nApplet chce načíst webový zdroj. + Tento web chce podepsat event kind %1$d vaším Nostr klíčem. + Tento nApplet chce používat své soukromé úložiště. + Tento nApplet chce nahrát soubor na váš mediální server. + nApplet %1$s… + číst vaše soukromé zprávy + číst vaše soukromé zprávy s %1$s + zašifrovat zprávu + podepsat pro %1$s (druh: %2$d) + Připojené aplikace + nApplety + Zprávu se nepodařilo odeslat + Místně ztlumit řečníka + Obnovit řečníka + Opustit + Místnost se nepodařilo označit jako zavřenou. Odcházíte i tak — místnost se zavře automaticky. + + %1$d posluchač + %1$d posluchači + %1$d posluchačů + %1$d posluchačů + + Dát ruku dolů + Ztlumit mikrofon + Zapnout mikrofon + Ztlumit + Seznam nest serverů se nepodařilo uložit. Zkuste to znovu. + Nest — Živě + Nests + Přehrává zvuk, dokud je místnost otevřená. + Nest připojen + Zastavit + Klepnutím se vrátíte. + Sledovat + Ztlumit + Přestat sledovat + Zrušit ztlumení + opustil(a) nest + připojil(a) se jako publikum + vystoupil(a) na pódium + zvedl(a) ruku + mluví + Přihlásit se + Zrušit ztlumení + Audio místnosti + Uloženo jako nahraditelná událost typu kind-10112, aby ostatní klienti mohli číst vaše preference. + Vaše servery + Vestavěné návrhy, které můžete jedním klepnutím přidat do svého seznamu. + Doporučené servery + Nest servery + nikdy + Nový odznak + Nový kalendář + Nová událost kalendáře + Nová komunita + Moderátoři + Relaye + Zablokovaní uživatelé + Komentář komunity (1111) + Dlouhý článek (30023) + Obrázek (20) + Krátký text (1) + Krátké video (22) + Video (21) + Povolené typy událostí + Globální maximální velikost události (volitelné) + Ověřitelná pravidla (volitelné) + Brána sítě důvěry (volitelné) + Rozsáhlé komunity organizované podle kanálů nebo pracovních toků. + Pracovní prostory + Více nastavování + Vytvořit komunitu + Škáluje na obrovské komunity + Rozděleno podle kanálu / pracovního toku + Komunity rozdělené podle kanálů + Komunita Concord + Chaty jeden na jednoho a malé skupiny s lidmi, které znáte. + Místnosti 1:1–5 + Později nelze přidat uživatele + Nová zpráva + Jeden na jednoho a malé skupiny + Šifrováno end-to-end + Přímé zprávy, šifrované end-to-end + Soukromá zpráva + Chat v daném okamžiku s kýmkoli, kdo je právě online. + Živě teď + Žádná historie + Omezeno na relay + Zahájit chat + Mluvte s tím, kdo je právě online + Nic se neukládá + Kdokoli je právě online + Mizející chat + Nejlepší pro komunikaci s lidmi fyzicky poblíž nějakého místa — vaší čtvrti, města nebo regionu. + Místní + Veřejné a dočasné — žádná historie, může to číst kdokoli v buňce. + Vyberte místo + Anonymní — jednorázová identita pro každou oblast, nikdy váš npub. + Kompatibilní s Bitchatem; zasáhne blízké uživatele na stejných relayích. + Chatujte s kýmkoli poblíž místa, podle geohashe. + Kanál podle polohy + Větší soukromé skupiny, které přerostou malé skupinové DM. + Vázáno na zařízení + Vázáno na zařízení — nezobrazí se, pokud se přihlásíte jinde + Vytvořit skupinu + Škáluje za hranice malých DM + Šifrovaný skupinový chat + Větší soukromé skupiny + Skupina Marmot + Otevřené veřejné místnosti, kde může přispívat kdokoli. + Bez moderování + Pouze veřejné + Žádné moderování + Vytvořit veřejný chat + Kdokoli se může připojit + Jednoduché a snadno objevitelné + Veřejné zprávy na relayi + Veřejný chat + Skupiny moderované relayem, který je hostuje. + Moderováno + Vázáno na jeden konkrétní relay + Procházet relay skupiny + Moderováno relayem + Veřejné nebo soukromé + Provozováno relayem, veřejné nebo soukromé + Relay skupina + Soukromé + Šifrované skupiny + S podporou relayů + Nový emoji balíček + Nový cíl + Přidejte své myšlenky… + Nové zvýraznění + Nový článek + Nový playlist + Nová hudební stopa + Nový produkt + Nové žádosti + Nové vlákna + Nový trénink + Vždy povolit pro %1$s + Offline + Připojeno + + %1$d relé + %1$d relaye + %1$d relaye + %1$d relayů + + Vybrat vše + Zrušit výběr + + %1$d požadavek na podepsání + %1$d požadavky na podepsání + %1$d požadavku na podepsání + %1$d požadavků na podepsání + + Připojení odmítnuto + Nepodařilo se připojit: %1$s + Neplatný odkaz nostrconnect:// + Tento odkaz neobsahuje žádný relay pro připojení + + %1$d připojená aplikace + %1$d připojené aplikace + %1$d připojené aplikace + %1$d připojených aplikací + + %1$s připojeno. Amethyst za ni nyní podepisuje na pozadí. + Aplikace připojena. Amethyst za ni nyní podepisuje na pozadí. + Bunker adresa zkopírována + Amethyst nemohl tuto zprávu dešifrovat. Možná není určena pro tento účet. + Celoobrazovkové výzvy žádající o schválení aplikace, která chce, aby Amethyst podepsal, zašifroval nebo dešifroval vaším klíčem. + Požadavky na podepsání + Aplikace se chce připojit + Schválit požadavek na podepsání? + Klepnutím zkontrolujete + Toto je účet pouze pro čtení a nemůže podepisovat. + Opětovné připojování k relayím… + Vygenerována nová bunker adresa + + Naslouchá na %1$d relay + Naslouchá na %1$d relaye, vše připojeno + Naslouchá na %1$d relaye, vše připojeno + Naslouchá na %1$d relayů, vše připojeno + + Aplikace vzdáleného podepisovatele + Vzdálený podepisovatel + + %1$d majetek je zbalený + %1$d majetky jsou zbalený + %1$d majetků jsou zbalený + %1$d majetků jsou zbalený + + Nebyly nalezeny žádné aplikace Blossom. Nainstalujte prosím lokální aplikaci Blossom pro zobrazení tohoto souboru + Nelze otevřít Blossom odkazy + Na tomto zařízení nebyla nalezena žádná aplikace pro fotoaparát + Není nastavena žádná Lightning adresa + Nebyla nalezena žádná aplikace pro zpracování této platby. Nainstalujte prosím kompatibilní peněženku. + Není nainstalována žádná aplikace pro platby typu %1$s. Nainstalujte prosím kompatibilní peněženku. + Nebyly vybrány žádné typy reakcí. Dlouhým stiskem změňte + Žádné nastavení reakcí + Nebyly nalezeny žádné peněženky pro platbu bleskové faktury. Prosím, nainstalujte si bleskovou peněženku pro použití Zapů + Nebyly nalezeny žádné peněženky pro platbu bleskové faktury (Chyba: %1$s). Prosím, nainstalujte si bleskovou peněženku pro použití Zapů + Není nastaveno množství Zap. Dlouhým stisknutím změňte + Účty aktivní na pozadí + Hlavní vypínač pro oznámení na pozadí v reálném čase. Vypnutím ušetříte baterii — jako režim letadlo. Když je vypnutý, žádný účet nezůstává připojený na pozadí a zůstane vypnutý (i po restartech), dokud jej znovu nezapnete. + Služba oznámení na pozadí + Oznámení + Kategorie + Doručování + Zobrazení v aplikaci + Zablokovat relay + Upozorňování zapnuto. Klepnutím ztlumíte upozornění pro tohoto uživatele + Ztlumeno. Klepnutím znovu povolíte upozornění pro tohoto uživatele + nyní + Nowhere Umění + Nowhere Drop + Nowhere Událost + Nowhere Fórum + Nowhere Sbírka + Stránka Nowhere + Nowhere Zpráva + Nowhere Petice + Nowhere Obchod + nSites + Nahota + Nelze sestavit odkaz na událost + V poznámce chybí veřejný klíč příjemce + Nutzapy jsou veřejné a odhalily by tuto soukromou poznámku. Použij raději Lightning zap. + Nutzap selhal + + Odeslat %1$s sats, %2$d cestou + Odeslat %1$s sats, %2$d cestami + Odeslat %1$s sats, %2$d cesty + Odeslat %1$s sats, %2$d cestami + + Backend bitcoinového řetězce není nakonfigurován + Transakci se nepodařilo odeslat + Transakci se nepodařilo sestavit + Nepodařilo se načíst tvůj bitcoinový zůstatek + Platba byla odeslána, ale potvrzení zapu se nepodařilo zveřejnit + + Platba odeslána (zveřejněno %1$d z %2$d potvrzení), ale další potvrzení se nepodařilo zveřejnit + Platba odeslána (zveřejněna %1$d z %2$d potvrzení), ale další potvrzení se nepodařilo zveřejnit + Platba odeslána (zveřejněno %1$d z %2$d potvrzení), ale další potvrzení se nepodařilo zveřejnit + Platba odeslána (zveřejněno %1$d z %2$d potvrzení), ale další potvrzení se nepodařilo zveřejnit + + Podíl jednoho z příjemců je pod hranicí prachu + Transakci se nepodařilo podepsat + ~10 minut + ~30 minut + ~1 hod + Rychlé + Normální + Pomalé + %1$s · %2$s sat/vB · %3$s + + Rozdělí mezi %1$d příjemce + Rozdělí mezi %1$d příjemce + Rozdělí mezi %1$d příjemce + Rozdělí mezi %1$d příjemců + + + Přeskakuje se %1$d příjemce pouze s Lightning adresou — on-chain potřebuje Nostr veřejný klíč k odvození adresy. + Přeskakují se %1$d příjemci pouze s Lightning adresou — on-chain potřebuje Nostr veřejný klíč k odvození adresy. + Přeskakuje se %1$d příjemce pouze s Lightning adresou — on-chain potřebuje Nostr veřejný klíč k odvození adresy. + Přeskakuje se %1$d příjemců pouze s Lightning adresou — on-chain potřebuje Nostr veřejný klíč k odvození adresy. + + + Použít %1$d-cestné rozdělení zapu z této poznámky + Použít %1$d-cestné rozdělení zapu z této poznámky + Použít %1$d-cestné rozdělení zapu z této poznámky + Použít %1$d-cestné rozdělení zapu z této poznámky + + odesílání + sestavování transakce + načítání zůstatku + zveřejňování potvrzení + podepisování + U tohoto typu hlasování je povolen pouze jeden hlas na uživatele + Otevřít všechny reakce pro tento příspěvek + Otevřené + Port Orbot Socks + Průzkumník Bitcoin (OTS) + Existuje důkaz, že tento příspěvek byl podepsán někdy před %1$s. Důkaz byl označen v Bitcoin blockchainu v tomto datu a čase. + Byl vyžádán důkaz časového razítka pro tento příspěvek a čeká na zaznamenání do blockchainu Bitcoinu. Obvykle to trvá několik hodin. + Důkaz časového razítka + Relaye pro odesílání + Heslo je vyžadováno + Pozastavit + Zaplatit + Zpráva od %1$s + Platební cíle + Přidejte platební adresy pro různé sítě (např. bitcoin, lightning, ethereum). + Zaplatit v %1$s — částku zvolíte tam + PDF uloženo do Downloads/Amethyst + Metadata seznamů sledování mohou vidět všichni na Nostr. Pouze vaši soukromí členové jsou šifrovaní. + Metadata seznamu sledování + Obrázky + Připnout nahoru + Připnout na profil + Hrát + + %1$d kapitola + %1$d kapitoly + %1$d kapitoly + %1$d kapitol + + Přidat obal + Čtvercový obrázek zobrazený u epizody + Upravit epizodu + Váš podcast + Přidat zvukový soubor + MP3, M4A nebo jiný zvuk + URL kapitol + + %1$d epizoda + %1$d epizody + %1$d epizody + %1$d epizod + + URL přepisu + URL videa + Nová epizoda + Nová upoutávka + Publikování… + Autor + Kategorie + Technologie, Zprávy + Autorská práva + Přidat obal + Čtvercový obal vašeho pořadu + Kontaktní e-mail + Odkazy na financování + https://… + Jazyk + cs + Název pořadu + Můj podcast + Web + + %1$d upoutávka + %1$d upoutávky + %1$d upoutávky + %1$d upoutávek + + Přidat klip upoutávky + Krátký zvukový nebo video náhled + Chyba Value-for-Value + Připojte peněženku Nostr Wallet Connect pro odesílání příjemcům keysend (uzel). + Tento podcast nemá žádné platitelné příjemce hodnoty. + Připojte peněženku Nostr Wallet Connect nebo debetní peněženku pro streamování sats během poslechu. + Tento uživatel nemá Lightning adresu + Autoři hlasování nemohou hlasovat ve vlastních hlasováních. + (0–100)% + Hlasování je uzavřeno pro nové hlasy + Více možností + Možnost %1$s + + %1$d hlas má datum před zveřejněním ankety a je vyloučen. + %1$d hlasy mají datum před zveřejněním ankety a jsou vyloučeny. + %1$d hlasu má datum před zveřejněním ankety a je vyloučeno. + %1$d hlasů má datum před zveřejněním ankety a je vyloučeno. + + + %1$d hlasující je skryt vaším seznamem ztlumených. + %1$d hlasující jsou skryti vaším seznamem ztlumených. + %1$d hlasujícího je skryto vaším seznamem ztlumených. + %1$d hlasujících je skryto vaším seznamem ztlumených. + + + %1$d odpověď nevybrala platnou možnost a je vyloučena. + %1$d odpovědi nevybraly platnou možnost a jsou vyloučeny. + %1$d odpovědi nevybralo platnou možnost a je vyloučeno. + %1$d odpovědí nevybralo platnou možnost a je vyloučeno. + + + %1$d hlas dorazil po uzavření ankety a je vyloučen. + %1$d hlasy dorazily po uzavření ankety a jsou vyloučeny. + %1$d hlasu dorazilo po uzavření ankety a je vyloučeno. + %1$d hlasů dorazilo po uzavření ankety a je vyloučeno. + + + %1$d hlasující + %1$d hlasující + %1$d hlasujícího + %1$d hlasujících + + Načteno %1$d z %2$d odpovědí z %3$d relé. + Načteno %1$d z přibližně %2$d odpovědí z %3$d relé. + + · %1$d výběr + · %1$d výběry + · %1$d výběru + · %1$d výběrů + + + %1$d hlas › + %1$d hlasy › + %1$d hlasu › + %1$d hlasů › + + Jedna možnost + Nebylo možné hlasovat + Ankety + Publikovat + + Tento příspěvek má více než %1$d hashtag + Tento příspěvek má více než %1$d hashtagy + Tento příspěvek má více než %1$d hashtagů + Tento příspěvek má více než %1$d hashtagů + + Komentáře + Odpovědi na články, soubory a jiný obsah + Obálky soukromých zpráv + Umožňuje DM relayům filtrovat spam ve schránce; těží se pouze vnější obálka, nikdy vaše zpráva + Dlouhé texty a zvýraznění + Články a zvýraznění; zřídkavé, náklady jsou zanedbatelné + Jiný veřejný obsah + Ankety, živé statusy, inzeráty a vše ostatní veřejné + Veřejný a živý chat + Prodlevy při těžení narušují plynulost konverzace + Reakce + Nejobjemnější druh; těžení každého lajku stojí baterii + Nahlášení + Relaye váží nahlášení podle jejich nákladů + Přeposlání + Vysoký objem pro aktivní uživatele + Krátké poznámky a odpovědi + Hlavní veřejná plocha pro spam + Hlasové zprávy + Veřejné hlasové příspěvky a odpovědi + + %1$d den + %1$d dny + %1$d dne + %1$d dní + + + %1$d hodina + %1$d hodiny + %1$d hodiny + %1$d hodin + + <1 s + + %1$d minuta + %1$d minuty + %1$d minuty + %1$d minut + + + %1$d sekunda + %1$d sekundy + %1$d sekundy + %1$d sekund + + Autor vynaložil výpočetní výkon na vytěžení této poznámky na obtížnost %1$s — proof-of-work razítko, které zdražuje spamování. + Chatová zpráva + Nahlášení + + %1$s • těžení na %2$d bitu + %1$s • těžení na %2$d bitech + %1$s • těžení na %2$d bitu + %1$s • těžení na %2$d bitech + + + Těžení proof of work… (%1$d příspěvek ve frontě) + Těžení proof of work… (%1$d příspěvky ve frontě) + Těžení proof of work… (%1$d příspěvku ve frontě) + Těžení proof of work… (%1$d příspěvků ve frontě) + + Těžení proof of work + Zrušit + Zobrazuje příspěvky, které stále těží svůj NIP-13 proof of work, aby mohly dokončit těžbu i po opuštění aplikace. + Těžení proof of work + Odeslat nyní + + %1$d bit + %1$d bity + %1$d bitu + %1$d bitů + + + Výchozí (%1$d bit) + Výchozí (%1$d bity) + Výchozí (%1$d bitu) + Výchozí (%1$d bitů) + + Váš %1$s dokončil těžbu, ale nepodařilo se jej publikovat: %2$s + Váš %1$s dokončil těžbu, ale nepodařilo se jej publikovat. Bude to zkuseno znovu při příštím spuštění aplikace. + + %1$s • čeká na těžbu na %2$d bitu + %1$s • čeká na těžbu na %2$d bitech + %1$s • čeká na těžbu na %2$d bitu + %1$s • čeká na těžbu na %2$d bitech + + Proof of Work + ≈ %1$s zbývá + každou chvíli + Náhled obrázku karty pro %1$s + Nastavení ochrany soukromí + Zásady ochrany soukromí + <Nelze dešifrovat soukromou zprávu>\n\nByl jste zmíněn v soukromé/zašifrované konverzaci mezi %1$s a %2$s. + DM schránka relé + Vložte mezi 1–3 relé, která budou sloužit jako vaše soukromá schránka. Ostatní použijí tato relé k posílání DM zpráv vám. DM schránka relé by měla přijímat jakékoli zprávy od kohokoli, ale pouze vám umožnit jejich stahování. Dobré možnosti jsou:\n - inbox.nostr.wine (placené)\n - you.nostr1.com (osobní relé - placené) + Uživatel přijímá soukromé zprávy na těchto přenašečích + Soukromá zpráva + Učinit soukromým: zabalit poznámku jako gift-wrap pouze pro oznámené uživatele + Odpovědi na soukromou poznámku zůstávají vždy soukromé + Viditelné pro + Soukromá relé + Vložte mezi 1–3 relé pro ukládání událostí nikoho jiného, jako jsou koncepty a/nebo nastavení aplikace. V ideálním případě jsou tato relé buď lokální, nebo vyžadují autentizaci před stažením obsahu každého uživatele. + Tato poznámka byla doručena soukromě a není podepsaná. Vidět ji mohou pouze označení účastníci a nikdo nemůže cizím lidem dokázat, kdo ji napsal. + Soukromá poznámka + Neslušnost / Nenávistná řeč + Profil + Profilové odznaky + Doporučení aplikací + Profilové odznaky + Kanál sledujících + Bitcoin (on-chain) peněženka + Kanál přijatých zapů + Vzhled profilu + profily + Navrhnout úpravu + Proxy přenašeče + Agregační přenašeče, které aplikace používá ke stahování vašich zdrojů, jako např. filter.nostr.wine + Veřejný chat + Veřejné konverzace jsou viditelné pro všechny na Nostru a kdokoli + se na nich může podílet. Jsou skvělé pro otevřené komunity kolem konkrétních témat. + Moderaci lze ovládat smazáním příspěvků na relé + Vložte mezi 1–3 relé, které hostí tuto skupinu. + Klienti Nostr používají toto nastavení, aby věděli, kam stahovat zprávy a odesílat zprávy. + Rele + Metadata veřejného chatu + Veřejné chaty + Veřejná domácí relé + Tento typ relé ukládá veškerý váš obsah. Amethyst sem pošle vaše příspěvky a ostatní použijí tato relé, aby našli váš obsah. Vložte mezi 1–3 relé. Mohou to být osobní relé, placená relé nebo veřejná relé. + Uživatel zveřejňuje svůj obsah na těchto přenašečích + Veřejná zpráva + Veřejná schránka relé + Tento typ relé přijímá všechny odpovědi, komentáře, lajky a zaps k vašim příspěvkům. Vložte mezi 1–3 relé a ujistěte se, že přijímají příspěvky od kohokoli. + Uživatel přijímá oznámení na těchto přenašečích + ID poznámky + Smazat + Ztlumit vlákno + Sdílet + Sdílet odkaz prohlížeče + Zrušit ztlumení vlákna + Hodnoceno %1$s z 5 + Reakce + Reakce + Nastavení reakcí + Číst z Relay + Množství bajtů, které bylo přijato z tohoto relé, včetně filtrů a událostí + Uživatel pouze pro čtení + Stiskněte a podržte pro nahrání zprávy + + Zadržuje také %1$d další věc. + Zadržuje také %1$d další věci. + Zadržuje také %1$d další věci. + Zadržuje také %1$d dalších věcí. + + Vždy, všechny relaye + Amethyst se bude přihlašovat jako %1$s ke každému relayi, který o to požádá, a přestane se ptát. Relaye, které jste zablokovali, a ty, u kterých jste nastavili, že se nikdy nepřihlašovat, zůstanou beze změny. Změnit to můžete v nastavení Autentizace relay. + Přihlašovat se ke všem relayům? + Vždy se přihlašovat + …píšu někomu, koho sleduji + …píšu komukoli jinému + …je to moje relé nebo místnost, do které jsem se přidal nebo kterou sleduji + …čtu někoho, koho sleduji + Vždy, nastaveno vámi + Nikdy, nastaveno vámi + + %1$s a %2$d další + %1$s a %2$d další + %1$s a %2$d dalšího + %1$s a %2$d dalších + + Nikdy + Nikdy, všechny relaye + Amethyst přestane relayům sdělovat, že jste %1$s, a přestane se ptát. Některé relaye vás odmítnou obsloužit: zprávy, odpovědi a oznámení nemusí projít. Relaye, u kterých jste nastavili, že se vždy přihlašovat, zůstanou beze změny. Změnit to můžete v nastavení Autentizace relay. + Nikdy se nepřihlašovat k žádnému relayi? + Vždy se ověřovat + Podepisovat autentizační výzvy pro každý relay, který o to požádá + Vlastní + Vyberte přesně, ke kterým relayům se přihlásit. Na cokoli, co jste níže nepovolili, budete dotázáni. + Nikdy se neověřovat + Ignorovat autentizační výzvy ze všech relayů + vaše doručená pošta + vaše vlastní relé + vaše odpovědi + toto relé + místnost, do které přispíváte + lidé, které čtete + místnost, kterou čtete + vaše zprávy + konverzace + auth autentizace relay podepsat ověřit nip-42 identita + Autentizace relay + Relé chat + Relay chaty jsou chatové skupiny ovládané jejich domácí relé. + Jsou viditelné pro všechny na Nostru a každý se jich může zúčastnit. + Jsou skvělé pro otevřené komunity kolem konkrétních témat. Některé z těchto skupin jsou efemérní + a proto zprávy časem mizí + Relé chaty + Váš vlastní profil, nastavení a koncepty na vašich domovských relayích. + Relaye, na které každá komunita publikuje své roviny. + Vaše relaye pro schránku DM, kam se doručují zprávy zabalené v gift-wrapu. + Skupinové zprávy a balíčky klíčů na relayích každé skupiny. + Sleduje právě zobrazené události kvůli novým odpovědím, reakcím, sdílením, zapům a nahlášením, takže se počty aktualizují během čtení. + Chatovací místnosti bez historie — zprávy existují jen po dobu vašeho připojení, proto zůstávají odebírané, aby vůbec něco přišlo. + Seznamy sledovaných, ze kterých se sestavuje váš zdroj a vaše síť důvěry. + Místnosti podle polohy pro oblasti, které sledujete, dotazované na relayích, které je nesou. + Příspěvky lidí, které sledujete, čtené z relayů, na které každý z nich publikuje. + Chat a zapovací cíle připojené k živým vysíláním, která máte otevřená nebo sledujete. + Relaye místnosti, dokud je otevřená. + Prohledává relaye, které minty existují a které lidé doporučují. + Nahlášení, která vaši sledovaní napsali o profilech právě na obrazovce, dotazovaná na každém relayi, kam tito sledovaní publikují. + Vaše relaye pro příjem a k tomu malý rotující vzorek relayů, kam publikují vaši sledovaní, pro případ, že by zmínka byla doručena jinam. + Naslouchá na vašich nutzap relayích a také na relayích pro příjem a DM, aby vám neunikla žádná platba. + Upozornění z vaší připojené peněženky. + Profily lidí právě na obrazovce. + Domovský relay každého chatu, který máte otevřený nebo do kterého jste se připojili. + Načítá podle ID události, na které se něco na obrazovce odkazuje, ale zatím je nemáte — citaci, rodiče odpovědi, kořen vlákna. + Skupiny NIP-29, do kterých jste vstoupili. Každá skupina žije na jednom hostitelském relayi, takže se aplikace připojí ke každému relayi, který hostí některou vaši skupinu. + Zjišťuje, na které relaye každý člověk publikuje, aby se jeho příspěvky daly načíst na správném místě. + Události vaší vlastní peněženky, čtené zpět z relayů, na které jste je publikovali. + Vytvořit skupinu + Smazat skupinu + Smazat „%1$s“? Odstraní to skupinu a její historii pro všechny a nelze to vrátit zpět. + Upravit skupinu + Soukromá + Zprávy mohou číst pouze členové. + + %1$d člen + %1$d členové + %1$d člena + %1$d členů + + + %1$d skupina + %1$d skupiny + %1$d skupiny + %1$d skupin + + Skupiny relay + Název + Skupiny relay + Události + IP adresy + Druhy + Uživatelé + Nastavení + Doplňky + Procházení + Chaty komunit + Zdroje komunit + Schránka DM + Sledování událostí + Mizící chaty + Chaty podle místa + Domovský zdroj + + %1$s \u00b7 %2$d relay + %1$s \u00b7 %2$d relaye + %1$s \u00b7 %2$d relaye + %1$s \u00b7 %2$d relayů + + Chat živého vysílání + Média + Adresář mintů + Schránka nutzapů + Wallet Connect + Sledování profilů + Ostatní + Hledání chybějících událostí + Relay skupiny + Informace o relayi + Vyhledávač seznamů relayů + Nahlášení od sledovaných + Hledání + Hashtagy + Konverzace + Témata + Data účtu + Peněženka + Nastavení relé + odchozí seznamy + Rele + Dobít a poslat zap + Poslat zap + Dobít %1$s sats do %2$s a poslat %3$s zap %4$s sats · poplatek ≈ %5$s sats + Odebrat + Odebrat ze Zpráv + Odebrat z veřejných záložek + Odpověď zde… + Upozornit: + + Požadovat smazání + Žádost o zmizení + Nepodařilo se resetovat stav Marmot: %1$s + Resetovat stav Marmot + Stav Marmot byl resetován. + Aktivita (7 dní) + Amethyst nedávno spotřeboval více, než se očekávalo: %1$s. Chcete vývojářům odeslat report o využití v šifrované DM? Před odesláním čehokoli uvidíte celý report. + Baterie mezitím vybita (celé zařízení) + Spojení s relayi držená při zavřené aplikaci + Služba upozornění na pozadí + + %1$d spuštění + %1$d spuštění + %1$d spuštění + %1$d spuštění + + Doba běhu + Spuštění procesu aplikace + Spotřeba baterie (v aplikaci / na pozadí) + Data podle funkce (7 dní) + Mobilní data podle funkce (7 dní) + Čas v hovorech + Využitý čas procesoru + Dešifrované zprávy + Čas aktivního přenosu + Webové požadavky + Mobilní (MB) + Wi-Fi (MB) + Naslouchání poloze + Čas přehrávání médií + Adresovatelné události v paměti + Seznamy chatů v paměti + Paměťová třída zařízení + Paměť aplikace (halda) + Mezipaměť obrázků (RAM) + Mezipaměť obrázků (disk) + Nativní paměť + Poznámky v paměti + Paměť právě teď + Profily v paměti + Čas v audio místnostech + Těžba proof-of-work + Probuzení rádia kvůli stahování (odhad) + %1$s mobilních dat na pozadí za jeden den + + proces aplikace se za jeden den restartoval %1$dkrát + proces aplikace se za jeden den restartoval %1$dkrát + proces aplikace se za jeden den restartoval %1$dkrát + proces aplikace se za jeden den restartoval %1$dkrát + + %1$s spojení s relayi na pozadí přes mobilní data za jeden den + + aplikace se za jeden den znovu připojila k relayům %1$dkrát + aplikace se za jeden den znovu připojila k relayům %1$dkrát + aplikace se za jeden den znovu připojila k relayům %1$dkrát + aplikace se za jeden den znovu připojila k relayům %1$dkrát + + procesor byl udržován v bdělém stavu %1$s zpracováváním upozornění za jeden den + Opětovná připojení k relayi (neúspěšná) + Čas připojení k relayi + … na pozadí přes mobilní data + Vzdálené podpisy + Čas podle obrazovky (7 dní) + baterie data využití spotřeba energie síť diagnostika záznam + Sdílet s vývojáři + Sdílet + Obrázky + Peněženka a zapy + Ověření adresy + Ostatní + Náhledy odkazů + Registrace push + Synchronizace relaye + Nahrávání + Video a audio + Prům. spojení s relayi + Baterie / hodinu v aplikaci + Mobilní data dnes + Data / hodinu v aplikaci + V aplikaci dnes + Čas relaye dnes + Wi-Fi dnes + Využití prostředků aplikací + Doba běhu Tor + Vestavěný Tor + Data za den + Ověřené podpisy + Zpracování upozornění (procesor bdělý) + Spuštěné úlohy na pozadí + Opakovat + Seznamy kalendářů + Kalendáře + Šachy + Objevit + Domů + Importovat sledované + Média + Zprávy + Playlisty + Hudba + Upozornění + Epizody + Podcasty + Naplánovat příspěvek + Zrušit plánování + Naplánované příspěvky se nemusí publikovat, dokud aplikaci znovu neotevřete. Naplánované příspěvky jiných účtů se nespustí, dokud je aktivní tento účet. Pro spolehlivé plánování na pozadí povolte trvalá oznámení v Nastavení → Předvolby UI. + Naplánované příspěvky se nemusí publikovat, dokud aplikaci znovu neotevřete. Pro spolehlivé plánování na pozadí povolte trvalá oznámení v Nastavení → Předvolby UI. + Naplánované příspěvky + Odeslat hned + %1$s · za %2$s + %1$s · před %2$s + Zítra + Chyba: %1$s + ID příspěvku zkopírováno + + Odhlášeno · smazán %1$d naplánovaný příspěvek + Odhlášeno · smazány %1$d naplánované příspěvky + Odhlášeno · smazáno %1$d naplánovaných příspěvků + Odhlášeno · smazáno %1$d naplánovaných příspěvků + + Odhlášeno + + Máte %1$d naplánovaný příspěvek, který ještě nebyl publikován. Odhlášením bude trvale smazán. + Máte %1$d naplánované příspěvky, které ještě nebyly publikovány. Odhlášením budou trvale smazány. + Máte %1$d naplánovaných příspěvků, které ještě nebyly publikovány. Odhlášením budou trvale smazány. + Máte %1$d naplánovaných příspěvků, které ještě nebyly publikovány. Odhlášením budou trvale smazány. + + Naplánovaný příspěvek selhal + Naplánovaný příspěvek publikován + + na %1$d relay + na %1$d relaye + na %1$d relayů + na %1$d relayů + + Zrušeno + Selhalo + Naplánováno + Odesílá se… + Odesláno + + · %1$d do 1 h + · %1$d do 1 h + · %1$d do 1 h + · %1$d do 1 h + + + %1$d ve frontě + %1$d ve frontě + %1$d ve frontě + %1$d ve frontě + + Dobré možnosti jsou:\n%1$s + Vyhledávací relé + Vyhledávací relé + Seznam relé, která se používají k vyhledávání a označování uživatelů. Označování a vyhledávání nebude fungovat, pokud nejsou k dispozici žádné možnosti. + vyhledatelné události + Tajný klíč (nsec) zkopírován do schránky + Zatím jsi nezablokoval/a žádné uživatele. + Bezpečnostní filtry + Žádná skrytá slova. Přidej slovo níže pro skrytí příspěvků, které ho obsahují. + Blokovaný obsah + Předvolby filtrování + V této relaci nebyly žádné účty označeny jako spam. + Odeslat + Odeslat všechny přijaté profilové události (kind 0) do místního relé + Přeposílat profily do místního relé + K útratě pro tohoto příjemce: %1$s sats + Platba se nezdařila + Transakce: %1$s + Platba přes %1$s… + Server po nahrání neposkytl URL + Nastavení + Žádná ztlumená vlákna + Ztlumená vlákna + Vzhled + Obecné + Obsah v kanálu + Viditelné karty + Média a data + Sekce a kanály + Připomenutí + Připojení + Směrovat přes Tor + Sdílet jako obrázek + Sdílet jako URL obrázku + HLS nahrávání + Sdílet nebo Uložit + Krátká videa + Zobrazit šifrovaný QR kód soukromého klíče + Zahrnout přímé a skupinové zprávy na kartě Oznámení. Vypněte, aby zprávy zůstaly pouze na kartě Zprávy. + Zobrazit zprávy + Zobrazit QR kód privátního klíče + Požadavek na podpis byl zamítnut + Ujistěte se, že podepisující aplikace autorizovala tuto transakci + Externí podepisovatel vrátil data, která jsou pro daný požadavek neobvyklá. Může se jednat o chybu v Amethystu nebo v podepisovateli. + Podepisovatel nenalezen + Byla aplikace pro podepisování odinstalována? Zkontrolujte, zda je aplikace nainstalována a obsahuje tento účet. Odhlaste se a přihlaste znovu, pokud se aplikace změnila. + Přeskočit zpět o %1$d sekund + Přeskočit vpřed o %1$d sekund + Aplikace + Nevyžádaná pošta + Počet spamových událostí z tohoto relé + Spamovací uživatelé + Zobrazit dvě karty oznámení — Sledovaní (lidé, které sledujete) a Všichni. Indikátor nepřečtených svítí pouze pro aktivitu od lidí, které sledujete. + Rozdělit oznámení podle sledovaných + Pokusí se odstranit soukromá metadata z podporovaných mediálních souborů před nahráním + Odstranit soukromá metadata + Načítá dokončené tréninky z Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) a navrhuje jejich sdílení jako příspěvek. O oprávnění se žádá pouze při připojení. + Navrhovat tréninky ke sdílení + Systém + Motiv + Tmavé, světlé nebo systémové téma + Tato zpráva zmizí za %1$s + + +%1$d\nodpověď + +%1$d\nodpovědi + +%1$d\nodpovědi + +%1$d\nodpovědí + + Dnes + Vlastní + Vytvořte si vlastní + Výchozí + Skryjte svou IP před náhodnými relé + Orbot + Plná anonymita + Skryjte svou IP ve všech připojeních + Interní + Vypnuto + Tor/Privacy předvolby + Rychle upravte všechna nastavení níže + Vše kromě médií + Skryjte svou IP před vším kromě obrázků a videí + Relé pro DM + Vynutit Tor pro odesílání a přijímání DMs + Obrázky + Vynutit Tor při načítání obrázků + Nahrávání médií + Vynutit Tor při nahrávání obsahu + Finanční operace + Vynutit Tor na zaps, lightning a cashu převody + Nedůvěryhodné relé + Vynutit Tor na odchozí/příchozí relé + Ověření Nostr adresy + Vynutit Tor při ověřování NIP-05 adres + Onion URL/Relays + Používat Tor pro jakoukoli .onion adresu + Profilové obrázky + Vynutit Tor při načítání profilových obrázků + Důvěryhodné relé + Vynutit Tor na všech relé ve vašich seznamech + URL náhledy + Vynutit Tor při načítání náhledů URL + Videa + Vynutit Tor při načítání videí + Základní + Používejte Tor, když je to vyžadováno serverem + Nepodařilo se otevřít soubor + Pro otevření a stažení souboru nejsou nainstalovány žádné torrent aplikace. + Událost nemá dostatek informací pro vytvoření magnet odkazu + Použít sledovaného vysílače při odesílání událostí. Zobrazuje živý průběh a stav jednotlivých relayů během vysílání. + Sledovaná vysílání + Přeložit do + Vyberte jazyk, do kterého chcete obsah přeložit. + Překlady + Důvěryhodné přenašeče + Přenašeče, kterým důvěřujete a nepotřebujete Tor + Kompletní + Plná + Výkonost + Rychlá + Zjednodušené + Jednoduchá + Nastavení rozhraní + Režim UI + Zvolte styl příspěvku + Nepodařilo se vytvořit bleskovou fakturu před odesláním zap. Blesková peněženka příjemce odeslala následující chybu: %1$s + Nelze sdílet obrázek, zkuste to prosím později… + Video nelze sdílet, zkuste to prosím později… + Neautorizované dešifrování + Podepisovatel neautorizoval dešifrování potřebné k provedení této operace. Aktivujte dešifrování NIP-44 ve své aplikaci pro podepisování a zkuste to znovu + Přestat sledovat + Přestat sledovat toto místo + Zrušit ztlumení oznámení + Odepnout + Odepnout z profilu + Nahrávání zrušeno + Chyba nahrávání + Nahrávání hlasu selhalo: %1$s + Nepodařilo se nahrát hlasovou zprávu + NIP-95 zatím není pro hlasové zprávy podporován + %1$d%% dostupnost + Aktivní Tor Engine + Použijte interní verzi nebo Orbot + Uživatel nemá nastavenou LN adresu pro přijímání sats + Uživatel %1$s nemá nastavenou bleskovou adresu pro přijímání satoshi + Historie zmizení + Žádost o zmizení odeslána + Lepší kvalita při menší velikosti souboru, ale ne všechna zařízení podporují přehrávání H.265. + Použít kodek H.265/HEVC + Stahování videa bylo zahájeno… + Tlačítka přehrávače videa + Video uloženo do video galerie telefonu + Hlasový příspěvek + Hluboký + Vysoký + Neutrální + Žádný + Hlasová odpověď + Peněženka + Peněženka Cashu (NIP-60) + Nepodařilo se načíst váš zůstatek + Připojení peněženky + Amethyst nedokázal dešifrovat odpověď vaší peněženky — peněženka možná používá jiný klíč + + Vaše peněženka neodpověděla do %1$d sekundy. Platba mohla, ale nemusela proběhnout — před opakováním zkontrolujte svou peněženku. + Vaše peněženka neodpověděla do %1$d sekund. Platba mohla, ale nemusela proběhnout — před opakováním zkontrolujte svou peněženku. + Vaše peněženka neodpověděla do %1$d sekund. Platba mohla, ale nemusela proběhnout — před opakováním zkontrolujte svou peněženku. + Vaše peněženka neodpověděla do %1$d sekund. Platba mohla, ale nemusela proběhnout — před opakováním zkontrolujte svou peněženku. + + Poskytovatel připojení vaší peněženky vrátil následující chybu: %1$s + Váš poskytovatel Wallet Connect odeslal odpověď, kterou Amethyst nedokázal přečíst. + Vaše peněženka odpověděla něčím, co Amethyst nezná (%1$s) + Upravit peněženku Cashu + Nepodařilo se vytvořit fakturu + Vaše peněženka nevrátila fakturu + Nepodařilo se spojit s vaší peněženkou: %1$s + Vypršel časový limit požadavku na peněženku + + Vypršel časový limit požadavku na peněženku — %1$d odpověď byla odmítnuta, protože ji podepsal neočekávaný klíč. Vaše relé nemusí být důvěryhodné. + Vypršel časový limit požadavku na peněženku — %1$d odpovědi byly odmítnuty, protože je podepsal neočekávaný klíč. Vaše relé nemusí být důvěryhodné. + Vypršel časový limit požadavku na peněženku — %1$d odpovědí bylo odmítnuto, protože je podepsal neočekávaný klíč. Vaše relé nemusí být důvěryhodné. + Vypršel časový limit požadavku na peněženku — %1$d odpovědí bylo odmítnuto, protože je podepsal neočekávaný klíč. Vaše relé nemusí být důvěryhodné. + + Nepodařilo se načíst transakce + Nepodařilo se načíst další transakce + Zobrazí varovnou zprávu, když příspěvky mají 5 nebo více hlášení od vašich sledovaných + Upozornit na hlášení + Přidat webovou záložku + Upravit webovou záložku + Webové záložky + Co vás napadá? + + %1$d aktivita + %1$d aktivity + %1$d aktivity + %1$d aktivit + + Tréninky + Napište zprávu… + Zapisovat do Relay + Množství bajtů, které bylo odesláno na toto relé, včetně filtrů a událostí + Zap + Předání platby jiné aplikaci + Když autor zveřejní platební metodu, kterou dokáže otevřít aplikace v tomto telefonu (Venmo, Monero, IBAN…), výběr zapu ji může nabídnout. Klepnutím se otevře daná aplikace, která se zeptá na částku — na relaye se nic nezveřejní, takže počet zapů u poznámky se nezmění. + Nabízet platební metody autora + Zapy + + Přejmenovat + Uložit diff --git a/commonsUI/src/commonMain/composeResources/values-de-rDE/strings.xml b/commonsUI/src/commonMain/composeResources/values-de-rDE/strings.xml index d699de9154..15a2b2ea23 100644 --- a/commonsUI/src/commonMain/composeResources/values-de-rDE/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-de-rDE/strings.xml @@ -2818,4 +2818,2137 @@ Persona veröffentlichen Folgt dir Bot + Über & Rechtliches + Blau + Grün + Orange + Rosa + Lila + Rot + Kontoeinstellungen + + %1$d Filter + %1$d Filter + + + %1$d Gruppe + %1$d Gruppen + + + %1$d Relay + %1$d Relays + + abonnements subscriptions filter relays anfragen reqs verbindungen warum diagnose + %1$d %% von allen + Aktive Relay-Abonnements + + %1$d Filter ist noch nicht zugeordnet + %1$d Filter sind noch nicht zugeordnet + + Hinzufügen + Blossom Server hinzufügen + NIP-96 Server hinzufügen + Wenn aktiviert, fügt Amethyst Ereignissen, die du veröffentlichst, einen NIP-89-Client-Tag hinzu. + Client-Tag zu meinen Ereignissen hinzufügen + Fügt eine Warnung für sensiblen Inhalt hinzu, bevor dieser Inhalt angezeigt wird. + Sensibler Inhalt + Zu Nachrichten hinzufügen + Zu den öffentlichen Lesezeichen hinzufügen + Verwendet ein KI-Modell auf dem Gerät, um Textkorrekturen und Tonänderungen vorzuschlagen. + Textverbesserungen vorschlagen + Hält Verbindungen zu deinen Inbox-Relays aktiv für Echtzeit-Benachrichtigungen + + Mit %1$d Posteingangs-Relay verbunden + Mit %1$d Posteingangs-Relays verbunden + + + Mit %1$d Relay verbunden + Mit %1$d Relays verbunden + + Verbinde mit Inbox-Relays\u2026 + Details ausblenden + Details anzeigen + Aus + Ein + Amethyst-Benachrichtigungen aktiv + Du wurdest zu %1$s hinzugefügt + Benachrichtigt dich, wenn dich jemand in einem Artikel erwähnt oder hervorhebt + %1$s hat dich in einem Artikel erwähnt + %1$s hat deinen Artikel hervorgehoben + Artikel & Hervorhebungen + Neue Artikel + Benachrichtigt dich, wenn du ein Abzeichen erhältst + Du hast ein Abzeichen erhalten + Verliehen von %1$s + Abzeichen + Neue Abzeichen + Benachrichtigungen für eingehende Sprach- und Videoanrufe + Eingehende Anrufe + %1$s hat deine Schachherausforderung angenommen + Benachrichtigt dich über Schachspiel-Ereignisse + Schach + Schach-Updates + %1$s hat gezogen — du bist dran + Benachrichtigt dich über Issues, Patches und Pull Requests + %1$s hat ein Issue eröffnet + %1$s hat einen Patch gesendet + %1$s hat einen Pull Request eröffnet + %1$s hat einen Pull Request aktualisiert + %1$s hat kommentiert + %1$s hat einen Thread gemergt/gelöst + %1$s hat ein Issue gelöst + %1$s hat einen Patch angewendet + %1$s hat einen Pull Request gemergt + %1$s hat einen Thread geschlossen + %1$s hat ein Issue geschlossen + %1$s hat einen Patch geschlossen + %1$s hat einen Pull Request geschlossen + %1$s hat einen Thread als Entwurf markiert + %1$s hat einen Thread wieder geöffnet + Code & Git + Neue Code-Aktivität + Benachrichtigt dich, wenn eine private Nachricht eingeht + Private Nachrichten + Neue Nachrichten + Inhalt + Entwickler + Spiele + Nachrichten + Zahlungen + Soziales + Als gelesen markieren + Ich + Benachrichtigt dich, wenn dich jemand in einem Foto oder Video erwähnt + %1$s hat ein Foto geteilt + %1$s hat ein Video geteilt + Medien + Neue Medien + Benachrichtigt dich, wenn dich jemand in einem Beitrag erwähnt oder zitiert + %1$s hat dich erwähnt + Erwähnungen + Neue Erwähnungen + Neue Nachricht + Nutzap von %1$s + Onchain-Zap von %1$s + Benachrichtigt dich, wenn deine verbundene Wallet eine Zahlung erhält, die kein Nostr-Zap ist + %1$s sats erhalten + Erhaltene Zahlungen + Neue Zahlungen + %1$s hat eine Frage gestellt + Benachrichtigt dich, wenn jemand auf deinen Beitrag reagiert + %1$s hat auf deinen Beitrag reagiert + für %1$s + Reaktionen + Neue Reaktionen + Benachrichtigt dich, wenn jemand auf deinen Beitrag antwortet + Antworten + Neue Antworten + Antworten + Benachrichtigt dich, wenn jemand deinen Beitrag repostet + %1$s hat deinen Beitrag repostet + Reposts + Neue Reposts + Benachrichtigungen, wenn ein geplanter Beitrag veröffentlicht wird oder die Veröffentlichung fehlschlägt. + Geplante Beiträge + Benachrichtigt dich, wenn dich jemand zappt + %1$s Sats + für %1$s + Von %1$s + Erhaltene Zaps + Neue Zaps + App-Einstellungen + Attestierung + Attestierungsanfrage + Kompetenz des Attestierers + Empfehlung des Attestierers + + Trotzdem %1$d Person hinzufügen + Trotzdem %1$d Personen hinzufügen + + + %1$d Person hinzufügen + %1$d Personen hinzufügen + + Bereits hinzugefügt + Stummgeschaltet + Privates Mitglied + Nur du — wähle, wer das sonst noch sehen darf + Personen hinzufügen, die benachrichtigt werden + + Das wäre %1$d Person. Amethyst fügt höchstens %2$d auf einmal hinzu — wähle ein paar ab. + Das wären %1$d Personen. Amethyst fügt höchstens %2$d auf einmal hinzu — wähle ein paar ab. + + Privat senden + + Diese Notiz wird verschlüsselt und %1$d Mal einzeln zugestellt, einmal pro Person. Mit einem externen Signierer ist das je eine Freigabe. + Diese Notiz wird verschlüsselt und %1$d Mal einzeln zugestellt, einmal pro Person. Mit einem externen Signierer ist das je eine Freigabe. + + + %1$d Person erhält eine Benachrichtigung zu diesem Beitrag. + %1$d Personen erhalten eine Benachrichtigung zu diesem Beitrag. + + + %1$s, %2$s und %3$d weitere Person + %1$s, %2$s und %3$d weitere Personen + + Audio-Visualisierer + Speichert automatisch ein Entwurfsereignis, wenn du tippst oder den Editor mit ungesendetem Text verlässt, und sendet es an deine privaten ausgehenden Relays. + Entwürfe automatisch erstellen + Immersives Scrollen + Navigationsleisten beim Scrollen ausblenden + Bilder/GIFs automatisch laden + Bilder und GIFs automatisch laden + Videos automatisch abspielen + Videos und GIFs automatisch abspielen + Profilbild + Profilbilder anzeigen + URL-Vorschau anzeigen + URL-Vorschauen anzeigen + Videos automatisch abspielen + Videos automatisch abspielen, wenn sie auf dem Bildschirm sichtbar sind + Metadaten können nicht aus AVIF entfernt werden: %1$s + Abzeichen verleihen + Zurück + Schlüssel sichern + Abzeichen + Authentifizierung fehlgeschlagen + Biometrie konnte den Inhaber dieses Smartphones nicht authentifizieren + Biometrie konnte den Inhaber dieses Smartphones nicht authentifizieren. Fehler: %1$s + Blockieren + Blockierte Relays + Amethyst wird sich niemals mit diesen Relays verbinden + Blockierte Benutzer + Eine Dateisynchronisierung läuft bereits. Versuche den Import erneut, sobald sie abgeschlossen ist. + Alle deaktivieren + Alle aktivieren + + %1$d Datei + %1$d Dateien + + + %1$d Datei zum Import auf deine Server gefunden. + %1$d Dateien zum Import auf deine Server gefunden. + + + %1$d Datei importieren + %1$d Dateien importieren + + Nicht auf allen Servern + Auf allen Servern + + %1$d Sat bezahlen + %1$d Sats bezahlen + + Dieser Server verlangt eine Zahlung zum Hochladen: %1$s + Abbrechen + Zeigt den Fortschritt beim Kopieren deiner Dateien über deine Blossom-Server hinweg. + Blossom-Synchronisierung + Deine Dateien werden über die Server kopiert… + BOLT12-Angebote + Füge ein oder mehrere BOLT12-Angebote (lno1…) hinzu. Sie werden öffentlich geteilt, sodass dich jeder bezahlen kann. + BOLT12-Zahlung fehlgeschlagen: %1$s + BOLT12-Zahlung gesendet + BOLT12-Zap-Fehler + Über BOLT12 bezahlt, aber der Zahlungsnachweis konnte nicht validiert werden, daher wurde keine Zap-Quittung veröffentlicht. + Über BOLT12 bezahlt, aber die Wallet hat keinen Nachweis zurückgegeben, daher wurde keine Zap-Quittung veröffentlicht. + Neue Lesezeichenliste + Metadaten der Lesezeichenliste + Metadaten von Lesezeichenlisten können von allen auf Nostr gesehen werden. Nur deine privaten Mitglieder sind verschlüsselt. + Lesezeichen + Boost + Apps & Web + Chats & Gruppen + Feeds + Start + Sonstiges + Du + Untere Navigationsleiste + Hinzufügen + Hinzugefügt + Noch keine Favoriten. Markiere eine App im Browser mit einem Stern, um sie hier hinzuzufügen. + Noch keinen Gruppen beigetreten. + Broadcast-Relays + Relays, die deine Beiträge an andere Relays weiterleiten, z.B. sendit.nosflare.com. Amethyst fügt diesen Relay zu allen neuen Ereignissen hinzu + Browser + Favoriten + Web-Apps entdecken + Laden über Clearnet. Tippe, um Tor zu verwenden. + Laden über Tor. Tippe, um Clearnet zu verwenden. + Kanal archivieren + Neuer Kanal + Kanal löschen + „%1$s“ löschen? Damit werden der Kanal und seine Nachrichten für alle entfernt, und das lässt sich nicht rückgängig machen. + Privater Kanal + Aus der Kanalliste ausgeblendet und nur mit Einladung. Aus bedeutet, dass jeder auf diesem Relay ihn finden und beitreten kann. + Kanal aus dem Archiv nehmen + + %1$d ausgeblendete Unterhaltung + %1$d ausgeblendete Unterhaltungen + + + %1$d weitere Unterhaltung anzeigen + Alle %1$d Unterhaltungen anzeigen + + Bearbeiten + Neues Forum + Kanal anheften + %1$s und %2$s tippen… + Kanal nicht mehr anheften + Genehmigt + Abgebrochen + Abgelehnt + Fehlgeschlagen + Genehmigung nötig + In Warteschlange + Ausgeliefert + Arbeitet + + %1$s, %2$d Termin + %1$s, %2$d Termine + + Bild-Upload fehlgeschlagen + Das gewählte Bild konnte nicht hochgeladen werden. Versuche es erneut oder füge eine URL ein. + Kalendertermin teilen + In Karten öffnen + Link öffnen + Findet jetzt statt + %1$s · endet %2$s + + Beginnt in %1$d Minute + Beginnt in %1$d Minuten + + Hinweis, wenn ein Termin, an dem du teilnimmst, bald beginnt. + calendar_reminders + Kalendererinnerungen + Kalendertermin + Eine Benachrichtigung wird angezeigt, wenn ein Termin, an dem du teilnimmst, bald beginnt. + Erinnerungen senden + + %1$d Min. + %1$d Min. + + Kalendererinnerungen + Tag + Feed + Monat + Woche + Annehmen + Bluetooth + Kamera aus + Kamera an + Ohrhörer + Auflegen + Eingehender Anruf + Eingehender Videoanruf\u2026 + Eingehender Sprachanruf\u2026 + Stummschalten + Anrufe + Benachrichtigung über laufenden Anruf + Amethyst benötigt Zugriff auf Kamera und Mikrofon, um einen Videoanruf zu starten. Bitte aktiviere sie in den App-Einstellungen. + Amethyst benötigt Zugriff auf das Mikrofon, um einen Sprachanruf zu starten. Bitte aktiviere ihn in den App-Einstellungen. + Ablehnen + Bildschirm teilen + Bildschirmfreigabe beenden + Bildschirm wird geteilt + Anrufeinstellungen + Lautsprecher + Stummschaltung aufheben + Anruf mit %1$s + Callback-URL aus %1$s Antwort nicht gefunden + Abbrechen + Cashu-Token + Mint wird geprüft… + Cashu konnte nicht eingelöst werden + Mint hat folgende Fehlermeldung geliefert: %1$s + Empfangen + Gesendet + Passende Mints + + +%1$d weiterer + +%1$d weitere + + Beliebte Mints + + Von %1$d weiterem empfohlen + Von %1$d weiteren empfohlen + + %1$s sat nach %2$s verschoben. + Keine kompatible Cashu-Brieftasche im System gefunden + + %1$d ausstehende Rechnung + %1$d ausstehende Rechnungen + + %1$s Sat + bis zu %2$s Sat Gebühren bezahlen? + Eine Löschanfrage für deine kind:38000-Empfehlung von %1$s veröffentlichen. Relays, die NIP-09 beachten, entfernen sie. + %1$s Sats über %2$s Proofs wiederhergestellt. + Cashu erhalten + %1$s Sats wurden an Ihre Wallet gesendet. (Gebühren: %2$s Sats) + Unsichere Cashu-Mint-Adresse + Amethyst hat die Mint dieses Tokens nicht kontaktiert. %1$s + + Guthaben bei %1$d Mint, den Sie nicht verwenden + Guthaben bei %1$d Mints, die Sie nicht verwenden + + Warte auf die Bezahlung der Rechnung… + + %1$d Mint + %1$d Mints + + Streaming beenden + An Gerät streamen + Von mindestens einem Relay akzeptiert + An die Relays aller Empfänger zugestellt + Keine Relay-Informationen für diese Nachricht + Warte darauf, dass ein Relay diese Nachricht akzeptiert + + %1$d Antwort + %1$d Antworten + + Im Chat + Im Thread + Verschlüsselte Communitys mit mehreren Kanälen (Concord). + Concord-Communitys + Leichtgewichtige, relay-gebundene Räume, die keinen Verlauf speichern. + Flüchtige Chats + Öffentlicher, geohash-gebundener Chat für einen Ort (Geolokalisierung). + Standort-Chats + MLS-Ende-zu-Ende-verschlüsselte Gruppenchats (Marmot). + Verschlüsselte Gruppen + Ältere, weniger private verschlüsselte Direktnachrichten (NIP-04). + Legacy-DMs + Ende-zu-Ende-verschlüsselte, gift-wrapped Direktnachrichten (NIP-17). + Private Nachrichten + Offene, öffentliche Chaträume, die jeder lesen und denen jeder beitreten kann (NIP-28). + Öffentliche Kanäle + Relay-verwaltete Gruppenchats mit Mitgliederlisten und Moderation (NIP-29). + Relay-Gruppen + Kinderschutzstandards + Accessoires + Kunst + Bücher + Kleidung + Sammlerstücke + Handwerk + Elektronik + Fitness + Lebensmittel + Möbel + Zuhause + Verschiedenes + Büro + Sonstiges + Haustiere + Sport + Täglich + Monatlich + Einmalig + Wöchentlich + %1$s über %2$s bezahlen? + Diese Rechnung über %1$s bezahlen? + Der Debit-Dienst hat die Zahlung nicht abgeschlossen. + Gib einen gültigen Betrag für dieses Angebot ein. + Rechnung wird angefordert… + Alle Reaktionen auf diesen Beitrag schließen + Geschlossen + Communitys + Entwurf hat %1$d Bytes; diese Community begrenzt diesen Typ auf %2$d Bytes. + Entwurf hat %1$d Bytes; diese Community begrenzt Ereignisse auf %2$d Bytes. + Du hast heute bereits %1$d Ereignisse dieses Typs veröffentlicht (Limit %2$d). + Editor-Einstellungen + + %1$d Kanal + %1$d Kanäle + + Neuer Kanal + Kanal löschen + Löschen + #%1$s löschen? Dies kann nicht rückgängig gemacht werden und der Kanal kann nicht mit derselben ID neu erstellt werden. + Kanal löschen? + Kanalname + Noch keine Nachrichten + Kanal umbenennen + Umbenennen + Noch keine Kanäle. + Erstellen + Relais + Relays, die die verschlüsselten Nachrichten dieser Community speichern. Leer lassen, um deine eigenen zu verwenden. + Neuer Concord-Kanal + Community bearbeiten + Nachricht bearbeiten + Concord-Kanäle + Personen einladen + Diese Einladung konnte nicht abgerufen werden. Der Link ist möglicherweise abgelaufen oder seine Relays sind nicht erreichbar. + Diese Community hat dich entfernt. Der Link funktioniert noch, aber ihre Mitgliederliste lässt dich nicht zu. + Dieser Einladungslink ist abgelaufen und kann nicht mehr verwendet werden. Bitte um einen neuen Link. + Dieser Einladungslink kann nicht geöffnet werden. Er ist möglicherweise veraltet, wurde bereits durch einen neueren ersetzt oder mit einer neueren Version der App erstellt. Bitte um einen neuen Einladungslink. + Dieser Einladungslink ist ungültig oder kann mit diesem Konto nicht geöffnet werden. + Dieser Einladungslink wurde widerrufen und kann nicht mehr verwendet werden. Bitte um einen neuen. + Einladungslinks… + Einladungslinks + Der Link konnte nicht widerrufen werden. Prüfe deine Verbindung und versuche es erneut. + Einladungslink widerrufen. + Einladungslink + Community verlassen + %1$s verlassen? Sie wird aus der Liste dieses Kontos entfernt und hört auf, sich auf deinen Geräten zu synchronisieren. Die Community wird nicht benachrichtigt und du wirst nicht aus ihrer Mitgliederliste entfernt. Nachrichten, die du nicht mehr entschlüsseln kannst, sind möglicherweise nicht wiederherstellbar, und du kannst nur mit einer neuen Einladung zurückkehren. + Du hast diese Community erstellt. Beim Verlassen wird sie weder gelöscht noch an jemand anderen übergeben, aber der auf deiner Liste gespeicherte Eigentümerschlüssel wird verworfen — du könntest sie nicht mehr verwalten. + Community verlassen? + Zum Admin machen + + %1$d Mitglied + %1$d Mitglieder + + Sperren + Zum Admin machen + Admin entfernen + Die Rollen dieses Mitglieds konnten nicht aktualisiert werden. + Rollen zuweisen + Mitglieder + Entsperren + Admin entfernen + Bild senden + Concord + Mehrere Personen schreiben… + %1$s schreibt… + %1$s und %2$s schreiben… + + %1$d neue Nachricht + %1$d neue Nachrichten + + Standard-Port ist 9050 + Verbundene Relays + Aktuelle Liste der verwendeten Relays + Prozentsatz erfolgreicher Verbindungen zum Relay + Immer + Nie + Unbegrenztes WLAN + WLAN + Dokument hinzufügen + Bild hinzufügen + Medien hinzufügen + Video hinzufügen + Ausblenden + Warnen + Anzeigen + Unterhaltungen + Konvertiert animierte GIFs in MP4-Videos für kleinere Dateigrößen und bessere Wiedergabekompatibilität. + GIF in MP4 umwandeln + Notiz-ID in die Zwischenablage kopiert + Notiztext in die Zwischenablage kopiert + In die Zwischenablage kopiert + Autor-ID in die Zwischenablage kopiert + Meinen geheimen Schlüssel kopieren + In Zwischenablage kopieren + Konnte keine LNUrl aus der Lightning-Adresse "%1$s" zusammenstellen. Überprüfe die Konfiguration des Benutzers + Die heruntergeladene Datei konnte nach dem Hochladen nicht überprüft werden: %1$s + Hochgeladene Medien konnten nicht vom Server heruntergeladen werden + Rechnung konnte nicht von %1$s abgerufen werden: %2$s + Konnte die komprimierte Datei nicht öffnen + Wallet nicht gefunden + Amethyst konnte keine Wallet-Apps finden, die Nostr Wallet Connect (NWC) unterstützen. +\n\nWas du tun kannst: +\n\t1. NWC-Unterstützung überprüfen: Stelle sicher, dass deine bevorzugte Wallet-App mit Nostr Wallet Connect kompatibel ist. +\n\t2. Verbindung erstellen: Öffne deine Wallet-App und erstelle eine neue NWC-Verbindung. +\n\t3. Mit Amethyst verknüpfen: Deine Wallet bietet normalerweise drei Optionen: +\n\t\t3.1 Automatische Verknüpfung: Eine Schaltfläche zum automatischen Öffnen und Verbinden mit Amethyst. Klicke darauf, öffne Amethyst und speichere auf dem neuen Bildschirm. +\n\t\t3.2 Manuelle Verknüpfung: Eine Verbindungs-URI, die du kopieren und über das Einfügesymbol auf diesem Bildschirm einfügen kannst. +\n\t\t3.3 QR-Code: Die Wallet erstellt einen QR-Code, den du über die QR-Schaltfläche auf diesem Bildschirm scannen kannst. + Erstellen + t + Gefahrenzone + Dunkel + Beschreibung + Öffentlich machen + Plaudern + Gemeinschaften + Feedalgorithmen + Folge Paketen + Live-Streams + Marktplatz + Lesungen + DM-Posteingangs-Relays + + Von %1$d Person gemeldet, der du folgst + Von %1$d Personen gemeldet, denen du folgst + + DMs + Nicht übersetzen von + Die hier angezeigten Sprachen werden nicht übersetzt. Wählen Sie eine Sprache, um sie zu entfernen und lassen Sie sie erneut übersetzen. + Auf dem Smartphone speichern + Video wird heruntergeladen… + Entwurf + Entwürfe + Konten + Erstellen + Feeds + Navigieren + System + Du + Seitenmenü + Immer an + Ausgeblendet + + %1$d ausgeblendet + %1$d ausgeblendet + + Sichtbar + + %1$d Tag + %1$d Tage + + + %1$d Stunde + %1$d Stunden + + + %1$d Minute + %1$d Minuten + + + %1$d Monat + %1$d Monate + + + %1$d Woche + %1$d Wochen + + + %1$d Jahr + %1$d Jahre + + Kalender bearbeiten + Kalendertermin bearbeiten + Community bearbeiten + Emoji-Paket bearbeiten + Bearbeiten + Playlist bearbeiten + Beitrag bearbeiten + Private Emojis werden verschlüsselt auf Relays gespeichert und sind nur für dich sichtbar. Sie erscheinen in deinem Reaktionsmenü und in der ":"-Autovervollständigung wie öffentliche. + Öffentliche Emojis sind für alle sichtbar und erscheinen in deinem Reaktionsmenü und in der ":"-Autovervollständigungsauswahl, wenn dieses Paket in deiner Emoji-Liste ist. + Emojis + Dateien vor dem Hochladen verschlüsseln, um die Privatsphäre zu schützen. Einige Server akzeptieren möglicherweise keine verschlüsselten Dateien bei kostenlosen Konten. + Dateien verschlüsseln + Verschwindender Chat + Fehler + Konnte Rechnung nicht bezahlen + Konnte nicht abheben + Zahlung konnte nicht geöffnet werden + Zap konnte nicht gesendet werden + Fehler beim Öffnen der Signer-App + Die Signer-App konnte nicht gefunden werden. Prüfe, ob die App noch installiert ist + Fehler beim Parsen der Fehlermeldung + Fehler beim Parsen von JSON von %1$s. Überprüfe die Lightning-Einstellungen des Benutzers + Konnte Rechnung nicht vom Server des Empfängers abrufen + Im Browser öffnen + Dieses Video kann nicht abgespielt werden + Der Codec oder das Format wird auf diesem Gerät nicht unterstützt (%1$s). Versuche, es im Browser zu öffnen. + Fehler + Relay-Synchronisierung + Ereignisse von dir + Ereignisse an dich + AMRAP + Zirkel + Radfahren + Diät + EMOM + Fasten + Wandern + Meditation + Rudern + Laufen + Krafttraining + Schwimmen + Gehen + Yoga + Ausklappen + Ablaufdatum + Der Autor hat die Relays gebeten, diese Notiz nach %1$s zu löschen. Sie verschwindet aus den Feeds, sobald sie abläuft. + Relay-Einstellungen exportieren + Löschen fehlgeschlagen: %1$s + Fehler beim Verschlüsseln Ihres privaten Schlüssels + Fehler beim Speichern des Bildes + PDF konnte nicht gespeichert werden + Video konnte nicht gespeichert werden + Viele Server akzeptieren keine verschlüsselten Dateien bei kostenlosen Konten. Du kannst es ohne Verschlüsselung erneut versuchen. + Verschlüsselter Upload fehlgeschlagen + Fehler beim Hochladen: %1$s + Fehler beim Laden der Medien + Konnte %1$s nicht erreichen: %2$s + Zu Favoriten hinzufügen + Lädt über das offene Web. + Lädt über Tor. + Zuletzt verwendet + Aus Favoriten entfernen + Diese App ist noch nicht geladen. Versuche es gleich nochmal. + Lieblings-Apps + Bevorzugte Feed-Algorithmen + Eine Zahlung durchgeführt + An Relays veröffentlicht + Eine Datei hochgeladen + Favorisierte Relay-Feeds + Relays, die du häufig besuchst, um ihren globalen Feed zu sehen + Gemeinschaften + Feed-Algorithmen + Feeds + Hash-Tags + Interessensets + Listen + Standorte + Relays + Dateiserver + Wähle einen Server zum Hochladen dieser Datei + Versteckt Beiträge von Fremden, die 5 oder mehr Male genau die gleichen waren + Spam filtern + Folgen + Folge zurück + Diesem Ort folgen + Alle bevorzugten Feed-Algorithmen + In der Nähe + Kuratiert + Weltweit + Standard-Folgenliste + Alle Folgen + Alle Benutzer Folgen + Meine + Stummliste + Zu einem Ort teleportieren… + Neues Empfehlungspaket + Empfehlungspaket bearbeiten + Metadaten von Empfehlungspaketen können von allen auf Nostr gesehen werden und werden häufig auf Websites als Starterkits für neue Nutzer veröffentlicht. + Metadaten des Empfehlungspakets + Follow-Pakete + Neue Follower-Liste + Liste bearbeiten + Schriftart + Schrift, die in der gesamten App verwendet wird + Monospace + Monochrom + Serifenlos + Sans + Serif + Serif + Systemstandard + System + Schriftgröße + Skaliert die Textgröße in der gesamten App + Riesig + Groß + Normal + Klein + Profilgalerie-Stil + Galeriestil auswählen + Klassisch + Modern + Standort-Chat + Standort-exklusiver Beitrag + Nur Follower des Ortes werden es sehen. Deine allgemeinen Follower werden es nicht sehen. + + %1$d Element + %1$d Elemente + + Git Repositories + Filter schließen + Repositories filtern + %1$s finanziert von %2$s Sats Ziel + s + Das Bild hat sich geändert. Der Autor hat die Änderung möglicherweise nicht bemerkt. + Was bedeutet das? + Das Bild ist seitdem Beitrag dasselbe + Hallo %1$s, ist das noch verfügbar? + Versteckte Wörter + Verwirft Beiträge aus Community-Feeds, wenn die Community ein NIP-9B-Regeldokument veröffentlicht und ein Ereignis daran scheitern würde. Keine Wirkung, wenn eine Community keine strukturierten Regeln hat. + Beiträge ausblenden, die gegen Community-Regeln verstoßen + Passwort ausblenden + Highlights + Lade %1$s hoch (%2$d von %3$d) + Artikel + Attestierungen + Vogelbeobachtungen + Schachpartien + Kleinanzeigen + Kommentare & Antworten + Ephemere Chats + Spendenaktionen + Highlights + Interaktive Geschichten + Live-Aktivitäten + Musik & Audio + NIP-Entwürfe + Bilder + Podcasts + Umfragen + Bewertungen & Rezensionen + Reposts + Kurzvideos + Textnotizen + Torrents + Videos + Sprachnachrichten + Wiki-Seiten + Alles + Fehlerhafte Anfrage - Der Server kann oder will die Anfrage nicht verarbeiten. + Nicht autorisiert - Der Benutzer hat keine gültigen Authentifizierungsdaten + Zahlung erforderlich - Der Server verlangt eine Zahlung, um die Anfrage abzuschließen + Verboten - Der Benutzer hat keine Zugriffsrechte, um die Anfrage zu stellen + Nicht gefunden - Der Server kann die angeforderte Adresse nicht finden + Methode nicht erlaubt - Der Server unterstützt die Anfragemethode, aber nicht die Zielressource + Nicht akzeptabel - Der Server findet keinen Inhalt, der die Anfrage erfüllt. + Proxy-Authentifizierung erforderlich - Der Benutzer hat keine gültigen Authentifizierungsdaten + Anfrage-Timeout - Der Server hat zu lange auf jemanden anderen gewartet + Konflikt - Der Server kann die Anfrage nicht erfüllen, da ein Konflikt mit der Ressource besteht + Verschwunden - Der angeforderte Inhalt wurde dauerhaft vom Server gelöscht und wird nicht wiederhergestellt + Länge erforderlich - Der Server lehnt die Anfrage ab, da er eine definierte Länge erfordert + Vorbedingung fehlgeschlagen - Die Vorbedingungen der Anfrage in den Kopfzeilenfeldern, die der Server nicht erfüllt + Nutzlast zu groß - Die Anfrage ist größer als die vom Server definierten Grenzen und der Server weigert sich, sie zu verarbeiten + URI zu lang - Die vom Client angeforderte URL ist zu lang, um vom Server verarbeitet zu werden. + Medientyp nicht unterstützt - Die Anfrage verwendet ein Medienformat, das der Server nicht unterstützt + Bereich nicht erfüllbar - Der Server kann den im Range-Header-Feld der Anfrage angegebenen Wert nicht erfüllen. + Erwartung fehlgeschlagen - Der Server kann die Anforderungen, die durch den Expect-Request-Header-Feld angegeben sind, nicht erfüllen + Upgrade erforderlich - Der Server weigert sich, die Anfrage mit dem aktuellen Protokoll zu verarbeiten, es sei denn, der Client wechselt zu einem anderen Protokoll. + Interner Serverfehler - Der Server hat einen unerwarteten Fehler festgestellt und kann die Anfrage nicht abschließen + Nicht implementiert - Der Server kann die Anfrage nicht erfüllen oder erkennt die Anfragemethode nicht + Schlechtes Gateway - Der Server agiert als Gateway und erhielt eine ungültige Antwort vom Host + Dienst nicht verfügbar - Dies tritt häufig auf, wenn ein Server überlastet ist oder gewartet wird + Gateway-Timeout - Der Server agierte als Gateway oder Proxy und hat zu lange auf eine Antwort gewartet + HTTP-Version nicht unterstützt - Der Server unterstützt die HTTP-Version der Anfrage nicht + Variante verhandelt auch - Der Server hat einen internen Konfigurationsfehler + Unzureichender Speicher - Der Server hat nicht genug Speicher, um die Anfrage erfolgreich zu verarbeiten + Schleife erkannt - Der Server erkennt eine Endlosschleife, während er die Anfrage bearbeitet + Netzwerk-Authentifizierung erforderlich - Der Client muss authentifiziert werden, um auf das Netzwerk zuzugreifen + Illegales Verhalten + Bild in der Galerie gespeichert + Identitätsbetrug + Eingehende Relays + Falscher Rechnungsbetrag (%1$s Sats) von %2$s. Er hätte %3$s sein sollen + Indexer-Relays + Relays, die Metadaten und Relay-Listen hosten, z.B. purplepag.es. Amethyst verwendet sie, um Benutzer zu finden, die nicht in deinen Listen sind. + Neues Interessenset + Umbenennen + Interessensets + Ungültiger Schlüssel + Ungültiger Schlüssel: %1$s + Ungültige Adresse + Amethyst hat eine URI zum Öffnen erhalten, aber diese URI war ungültig: %1$s + Es ist nicht möglich, einen Entwurf zu zitieren + Es ist nicht möglich, auf einen Entwurf zu reagieren + Es ist nicht möglich, auf einen Entwurf zu antworten + Es ist nicht möglich, zap Zahlung an einen Entwurf senden + Schlüssel ist erforderlich + KeyPackage-Relays + Relays, auf denen deine MLS KeyPackages veröffentlicht werden (MIP-00). Andere Nutzer rufen diese KeyPackages ab, um dich zu Marmot-Gruppenchats einzuladen. Füge 1–3 Relays hinzu, die KeyPackage-Ereignisse von dir akzeptieren und öffentliches Lesen erlauben. + KeyPackages + Akzeptiertes Abzeichen-Set + Abenteuer-Prolog + Abenteuer-Lesung + Abenteuer-Szene + App-Empfehlungen + Termin + Apps + RSVP für Termin + Audio-Header + Audiospur + Erstellte Podcasts + Abzeichen-Auszeichnungen + Abzeichen-Definitionen + Blob-Daten + Blob-Header + Blockierte Relays + Blogs + Blossom-Authentifizierung + Blossom-Server + Lesezeichenliste + Broadcast-Relays + Kalender + Kanaldefinition + Kanalnachricht ausblenden + Kanalliste + Kanalnachricht + Kanal-Metadaten + Benutzer im Kanal stummschalten + Schach-Authentifizierung + Schach-Herausforderungen + Remisangebot + Schachspiel annehmen + Ende des Schachspiels + Schachspiele + Schachzug + Kleinanzeigen + Kommentare + Community-Definition + Community-Liste + Community-Beitrag + Kontaktkarte + Tagestermin + Löschungen + DM-Datei + DM-Nachricht + DM-Relays + Entwürfe + DVM-Inhaltsanfrage + DVM-Inhaltsantwort + DVM-Status + DVM-Benutzeranfrage + DVM-Benutzerantwort + Bearbeitungen + Emoji-Paketliste + Emoji-Pakete + Ephemerer Chat + Ephemere Chaträume + Lieblings-Podcasts + Bevorzugte Relays + Datei-Header + Dateiserver + Folgeliste + Follow-Pakete + Geohash-Follows + Geschenkverpackungen + Git-Issue + Git-Patch + Pull Request + PR Update + Git-Antwort + Git-Repository + Git-Status: Angewendet + Git-Status: Geschlossen + Git-Status: Entwurf + Git-Status: Offen + Gefolgte Hashtags + Highlights + HTTP-Authentifizierung + Index-Relay-Liste + Live-Chats + Live-Streams + Medizinische Daten + Besprechungsraum + Besprechungsbereich + Musik-Playlist + Musiktitel + Stummschaltliste + Benannte Lesezeichen + Nests-Server + NIP + NIP-04-DMs + NNS + Nostr Connect + Beiträge + NWC-Anfrage + NWC-Antwort + Alte Lesezeichenliste + OTS + Outbox-Relays + Zahlen an + Personenlisten + Bilder + Angepinnt + Podcast-Folge + Podcast-Sendung + Umfrage + Umfrageantwort + Private Relays + Privaten Zaps + Profil + Profil-Abzeichen + Profilgalerie + Proxy-Relays + Öffentliche Nachricht + Reaktionen + Relay-Authentifizierung + Relay-Entdeckung + Relay-Monitor-Ankündigung + Relay-Set + Meldungen + Reposts + Reposts (16) + Raumpräsenz + Siegel + Such-Relays + Shorts + Shorts (Antwort) + Torrent-Kommentare + Torrents + Vertrauenswürdige Anbieter + Vertrauenswürdige Relays + Benutzer löschen + Benutzereinstellungen + Benutzerstatus + Video + Video (Antwort) + Sprachnachricht + Sprachantwort + Aufwachen + Web-Lesezeichen + Wiki + Workouts + Zap-Ziele + Zap-Umfrage + Zap-Anfrage + Zap + Bekannt + Sprachanzeigeeinstellungen + Wähle für jedes übersetzte Sprachpaar, welche Sprache zuerst angezeigt werden soll. + Zuletzt gesehen vor %1$s + Gerade eben gesehen + Nie gesehen + Zuletzt gesehen am %1$s (vor %2$s) + Verlassen + Dateieintrag + Verzeichnis + + %1$d Element + %1$d Elemente + + + %1$d weiteres Element + %1$d weitere Elemente + + Lernressource + Hell + Live-Streams + Lokale Relays + Liste der Relays, die auf diesem Gerät laufen. + Ort auf der Karte ändern + Standort-Kanäle + Wähle einen Ort auf der Karte + Du verwendest einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um Beiträge boosten zu können + Du verwendest einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um folgen zu können + Du verwendest einen öffentlichen Schlüssel, und öffentliche Schlüssel sind nur lesbar. Melden Sie sich mit einem privaten Schlüssel an, um ein Wort oder einen Satz auszublenden + Du verwendest einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um antworten zu können + Du verwendest einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um Zaps senden zu können + Du verwendest einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um ein Wort oder einen Satz anzeigen zu können + Du verwendest einen öffentlichen Schlüssel, der nur lesbar ist. Melde dich mit einem privaten Schlüssel an, um Ereignisse zu signieren + Du verwendest einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um nicht mehr zu folgen + Du verwendest einen öffentlichen Schlüssel, der nur lesbar ist. Melde dich mit einem privaten Schlüssel an, um hochladen zu können + Du verwendest einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um Beiträge zu liken + Videos + m + Meine Emoji-Pakete + Foto hinzufügen + %1$s wird hinzugefügt… + Administratorrechte erteilt + Administratorrechte widerrufen + Foto ändern + Füge zuerst in den Einstellungen einen Blossom-Medienserver hinzu — die Gruppe braucht einen Ort, an den Anhänge hochgeladen werden. + Diese Gruppe verwendet jetzt verschlüsselte Anhänge + %1$s konnte nicht hinzugefügt werden: %2$s + Gruppe konnte nicht erstellt werden: %1$s + Gruppe konnte nicht aufgelöst werden: %1$s + Diese Gruppe konnte nicht auf verschlüsselte Anhänge umgestellt werden: %1$s + Administratorrechte konnten nicht erteilt werden: %1$s + Gruppe konnte nicht verlassen werden: %1$s + Mitglied konnte nicht entfernt werden: %1$s + Administratorrechte konnten nicht widerrufen werden: %1$s + Aktualisierung fehlgeschlagen: %1$s + MLS-Gruppe + Diese Gruppe wird beendet. Du kannst sie weiterhin lesen. + Du verlässt diese Gruppe. + Du bist kein Mitglied dieser Gruppe mehr. + Gruppe aufgelöst + Gruppe wird beendet. Das ist abgeschlossen, sobald die Gruppe zustimmt. + Gruppeninfo aktualisiert + + %1$d Mitglied + %1$d Mitglieder + + Mitglied entfernt + + %1$d Nachricht + %1$d Nachrichten + + Kein Mitglied dieser Gruppe + unbekannter Fehler + Medien hinzugefügt + Medien wurden zu Ihrer Profilgalerie hinzugefügt + Der Mediendownload wurde gestartet… + Offline + Online + Langsam + Medienserver + Medien sind zu groß für NIP-95 + Füge das Ziel der Nachricht zuerst ein + Kann nicht hochladen + Betreff + Nachrichten + Metadaten konnten nicht entfernt werden + Private Metadaten konnten nicht aus der Mediendatei entfernt werden. Hochladen abgebrochen. + Lesezeichen erfolgreich migriert + Fehlende Lightning-Konfiguration + Weitere Optionen + In privat verschieben + In öffentlich verschieben + Coverbild hochladen + Wähle ein quadratisches Bild als Artwork für diese Playlist. + + +%1$d weiterer Titel + +%1$d weitere Titel + + + %1$d Titel + %1$d Titel + + + %1$d Titel + %1$d Titel + + Cover wird hochgeladen und veröffentlicht. Dies läuft weiter, auch wenn du die Seite verlässt. + Audiodatei hochladen + Wähle eine MP3, WAV oder FLAC. Sie wird beim Speichern auf deinen Medienserver hochgeladen. + Coverbild hochladen + Wähle ein quadratisches Bild als Artwork für diesen Titel. + Cover und Audio werden hochgeladen und veröffentlicht. Der Vorgang läuft weiter, auch wenn du den Bildschirm verlässt. + Ton ein. Zur Stummschaltung drücken + Benachrichtigungen stummschalten + Stummgeschaltet. Drücken, um Ton einzuschalten + Meine Blossom-Dateien + Meine Listen + Ein Name wird benötigt + %1$dms + Namecoin-Einstellungen + Identität + Ihren öffentlichen Schlüssel lesen + Nachrichten + Nachrichten mit anderen nApplets austauschen + Tastaturaktionen + Tastenkürzel belegen + Benachrichtigungen + Ihnen Benachrichtigungen anzeigen + Relays + Ihre Ereignisse lesen, signieren & veröffentlichen + Netzwerk + Web- und Blossom-Ressourcen abrufen + Verschlüsselung + Private Nachrichten mit Ihrem Schlüssel ver- und entschlüsseln + Speicher + Eigener privater Speicher + Design + Farben Ihrer App übernehmen + Uploads + Dateien auf Ihren Medienserver hochladen + Zahlungen + Lightning-Rechnungen bezahlen + apps berechtigungen signierer napplet nsite webapp vertrauen verbunden + + folgt %1$d neuem Konto + folgt %1$d neuen Konten + + ⚠ Dies folgt %1$s. + + ENTFOLGT %1$d Konto + ENTFOLGT %1$d Konten + + ⚠ Dies überschreibt deine Folgeliste: %1$s. + %1$s und %2$s + + schaltet %1$d weitere Person stumm + schaltet %1$d weitere Personen stumm + + ⚠ Dies stummschaltet %1$s. + + HEBT DIE STUMMSCHALTUNG von %1$d Person AUF + HEBT DIE STUMMSCHALTUNG von %1$d Personen AUF + + ⚠ Dies überschreibt deine Stummschaltungsliste: %1$s. Stummgeschaltete Wörter und Hashtags werden hier nicht angezeigt — tippe auf “Ereignis anzeigen” für die vollständige Liste. + + ⚠ Dies schreibt eine Liste mit %1$d Eintrag. Amethyst hat keine zwischengespeicherte Kopie zum Vergleich. + ⚠ Dies schreibt eine Liste mit %1$d Einträgen. Amethyst hat keine zwischengespeicherte Kopie zum Vergleich. + + Dies veröffentlicht deine bestehende Liste unverändert erneut. + + fügt %1$d Relay hinzu + fügt %1$d Relays hinzu + + + ENTFERNT %1$d Relay + ENTFERNT %1$d Relays + + ⚠ Dies überschreibt deine Relay-Liste: %1$s. Deine Beiträge und Lesevorgänge ziehen mit um. + ⚠ Dies ENTFOLGT %1$s. + ⚠ Dies HEBT DIE STUMMSCHALTUNG von %1$s AUF. + + ⚠ Dies fordert die Löschung von %1$d deiner Ereignisse an. + ⚠ Dies fordert die Löschung von %1$d deiner Ereignisse an. + + + Enthält %1$d Tag. Tippe auf “Ereignis anzeigen”, um genau zu sehen, was signiert würde. + Enthält %1$d Tags. Tippe auf “Ereignis anzeigen”, um genau zu sehen, was signiert würde. + + Dieses nApplet möchte Ihren öffentlichen Schlüssel lesen. + Dieses nApplet möchte Ihr Profil und Ihre Kontodaten lesen. + Diese Website möchte eine Nachricht von %1$s mit Ihrem Nostr-Schlüssel entschlüsseln. + Diese Website möchte eine Nachricht an %1$s mit Ihrem Nostr-Schlüssel verschlüsseln. + Dieses nApplet möchte Ihnen Benachrichtigungen anzeigen. + + Dieses nApplet möchte eine Lightning-Rechnung über %1$d sat bezahlen. + Dieses nApplet möchte eine Lightning-Rechnung über %1$d sats bezahlen. + + ⚠ Dieses nApplet möchte eine Lightning-Rechnung bezahlen, die KEINEN Betrag angibt — der Zahlungsempfänger entscheidet, wie viel entnommen wird. Erlaube dies nur, wenn du ihm vertraust. + Dieses nApplet möchte ein kind-%1$d-Ereignis in Ihrem Namen signieren und veröffentlichen. + Dieses nApplet möchte ein verschlüsseltes Ereignis in Ihrem Namen senden. + Dieses nApplet möchte ein kind-%1$d-Ereignis in Ihrem Namen signieren und veröffentlichen: + Dieses nApplet möchte Ereignisse von Ihren Relays lesen. + Dieses nApplet möchte eine Web-Ressource abrufen. + Diese Website möchte ein kind-%1$d-Ereignis mit Ihrem Nostr-Schlüssel signieren. + Dieses nApplet möchte seinen privaten Speicher verwenden. + Dieses nApplet möchte eine Datei auf Ihren Medienserver hochladen. + nApplet %1$s… + deine privaten Nachrichten lesen + deine privaten Nachrichten mit %1$s lesen + eine Nachricht verschlüsseln + für %1$s signieren (Typ: %2$d) + Verbundene Apps + nApplets + Nachricht konnte nicht gesendet werden + Diesen Sprecher still stellen + Diesen Sprecher wiederherstellen + Verlassen + Raum konnte nicht als geschlossen markiert werden. Verlasse trotzdem — Raum wird automatisch geschlossen. + + %1$d Zuhörer + %1$d Zuhörer + + Hand senken + Mikrofon stumm + Mikrofon aktivieren + Stummschalten + Nest-Serverliste konnte nicht gespeichert werden. Versuche es erneut. + Nest — Live + Audioräume + Hält Audio aktiv, solange ein Raum geöffnet ist. + Nest verbunden + Stoppen + Tippen zum Zurückkehren. + Folgen + Stummschalten + Entfolgen + Stummschaltung aufheben + hat das Nest verlassen + ist als Publikum beigetreten + ist auf die Bühne gestiegen + hat die Hand gehoben + spricht + Hand heben + Stummschaltung aufheben + Audioräume + Wird als ersetzbares kind-10112-Ereignis gespeichert, damit andere Clients deine Einstellung lesen können. + Deine Server + Eingebaute Vorschläge, die du mit einem Tippen zu deiner Liste hinzufügen kannst. + Empfohlene Server + Nest-Server + nie + Neues Abzeichen + Neuer Kalender + Neuer Kalendertermin + Neue Community + Moderatoren + Relays + Gesperrte Benutzer + Community-Kommentar (1111) + Langform-Artikel (30023) + Bildbeitrag (20) + Kurzer Text (1) + Kurzvideo (22) + Videobeitrag (21) + Zugelassene Ereignistypen + Globale maximale Ereignisgröße (optional) + Überprüfbare Regeln (optional) + Web-of-Trust-Schranke (optional) + Große Communitys, organisiert nach Kanälen oder Arbeitsbereichen. + Arbeitsbereiche + Mehr Einrichtungsaufwand + Community erstellen + Skaliert für riesige Communitys + Aufgeteilt nach Kanal / Arbeitsbereich + Communitys, aufgeteilt nach Kanal + Concord-Community + Einzel- und Kleingruppen-Chats mit Menschen, die du kennst. + 1:1–5 Räume + Kann später keine Nutzer hinzufügen + Neue Nachricht + 1:1 & kleine Gruppen + Ende-zu-Ende-verschlüsselt + Direktnachrichten, Ende-zu-Ende-verschlüsselt + Private Nachricht + Spontaner Chat mit allen, die gerade online sind. + Jetzt live + Kein Verlauf + Auf Relay beschränkt + Chat starten + Sprich mit allen, die gerade online sind + Nichts wird gespeichert + Wer auch immer gerade online ist + Verschwindender Chat + Am besten, um mit Menschen physisch in der Nähe eines Ortes zu sprechen — deinem Viertel, deiner Stadt oder Region. + Lokal + Öffentlich und flüchtig — kein Verlauf, jeder in der Zelle kann es lesen. + Ort auswählen + Anonym — eine Wegwerf-Identität pro Gebiet, niemals dein npub. + Bitchat-kompatibel; erreicht Nutzer in der Nähe auf denselben Relays. + Chatte mit allen in der Nähe eines Ortes, per Geohash. + Standort-Kanal + Größere private Gruppen, die über Kleingruppen-DMs hinauswachsen. + Gerätegebunden + Gerätegebunden — erscheint nicht, wenn du dich woanders anmeldest + Gruppe erstellen + Skaliert über kleine DMs hinaus + Verschlüsselter Gruppen-Chat + Größere private Gruppen + Marmot-Gruppe + Offene öffentliche Räume, in denen jeder posten kann. + Unmoderiert + Nur öffentlich + Keine Moderation + Öffentlichen Chat erstellen + Jeder kann beitreten + Einfach & auffindbar + Öffentliche Nachrichten auf einem Relay + Öffentlicher Chat + Gruppen, die von dem Relay moderiert werden, das sie hostet. + Moderiert + An dieses eine Relay gebunden + Relay-Gruppen durchsuchen + Vom Relay moderiert + Öffentlich oder privat + Relay-betrieben, öffentlich oder privat + Relay-Gruppe + Privat + Verschlüsselte Gruppen + Relay-fähig + Neues Emoji-Paket + Neues Ziel + Füge deine Gedanken hinzu… + Neues Highlight + Neuer Artikel + Neue Playlist + Neuer Musiktitel + Neues Produkt + Neue Anfragen + Neue Threads + Neues Workout + Immer erlauben für %1$s + Offline + Verbunden + + %1$d Relay + %1$d Relays + + Alle auswählen + Keine auswählen + + %1$d Signaturanfrage + %1$d Signaturanfragen + + Verbindung abgelehnt + Verbindung fehlgeschlagen: %1$s + Kein gültiger nostrconnect://-Link + Dieser Link enthält kein Relay zum Verbinden + + %1$d verbundene App + %1$d verbundene Apps + + %1$s verbunden. Amethyst signiert nun im Hintergrund dafür. + App verbunden. Amethyst signiert nun im Hintergrund dafür. + Bunker-Adresse kopiert + Amethyst konnte diese Nachricht nicht entschlüsseln. Sie ist möglicherweise nicht an dieses Konto adressiert. + Vollbild-Aufforderungen, die dich um Freigabe bitten, wenn eine App möchte, dass Amethyst mit deinem Schlüssel signiert, verschlüsselt oder entschlüsselt. + Signaturanfragen + Eine App möchte sich verbinden + Signaturanfrage genehmigen? + Zum Überprüfen tippen + Dies ist ein schreibgeschütztes Konto und kann nicht signieren. + Verbinde erneut mit Relays… + Neue Bunker-Adresse generiert + + Lauscht auf %1$d Relay + Lauscht auf %1$d Relays, alle verbunden + + Remote-Signer-App + Remote-Signer + + %1$d Asset gebündelt + %1$d Assets bündelt + + Keine Blossom-Apps gefunden. Bitte installiere eine lokale Blossom-App, um diese Datei anzuzeigen + Blossom-Links können nicht geöffnet werden + Keine Kamera-App auf diesem Gerät gefunden + Keine Lightning-Adresse festgelegt + Keine App gefunden, die diese Zahlung verarbeiten kann. Bitte installiere eine kompatible Wallet. + Es ist keine App installiert, die Zahlungen vom Typ %1$s verarbeiten kann. Bitte installiere eine kompatible Wallet. + Keine Reaktionstypen ausgewählt. Lange drücken, um zu ändern + Keine Reaktionen eingerichtet + Keine Wallets gefunden, um eine Lightning-Rechnung zu bezahlen. Installiere eine Lightning-Wallet, um Zaps zu verwenden + Keine Wallets gefunden, um eine Lightning-Rechnung zu bezahlen (Fehler: %1$s). Installiere eine Lightning-Wallet, um Zaps zu verwenden + Kein Zap-Betrag festgelegt. Lang drücken, um dies zu ändern + Im Hintergrund aktive Konten + Hauptschalter für Echtzeit-Benachrichtigungen im Hintergrund. Schalte ihn aus, um Akku zu sparen — wie ein Flugmodus. Wenn ausgeschaltet, bleibt kein Konto im Hintergrund verbunden, und es bleibt ausgeschaltet (auch nach Neustarts), bis du es wieder einschaltest. + Hintergrund-Benachrichtigungsdienst + Benachrichtigungen + Kategorien + Zustellung + Anzeige in der App + Relay blockieren + Benachrichtigungen aktiv. Tippen, um Benachrichtigungen für diesen Nutzer stummzuschalten + Stummgeschaltet. Tippen, um wieder über diesen Nutzer benachrichtigt zu werden + jetzt + Nowhere Kunst + Nowhere Drop + Nowhere Ereignis + Nowhere Forum + Nowhere Spendenaktion + Nowhere-Seite + Nowhere Nachricht + Nowhere Petition + Nowhere Shop + nSites + Nacktheit + Ereignisreferenz kann nicht erstellt werden + Kein Empfänger-Pubkey in der Notiz + Nutzaps sind öffentlich und würden diese private Notiz preisgeben. Nutze stattdessen einen Lightning-Zap. + Nutzap fehlgeschlagen + + %1$s sats senden, auf %2$d Empfänger aufgeteilt + %1$s sats senden, auf %2$d Empfänger aufgeteilt + + Bitcoin-Chain-Backend ist nicht konfiguriert + Transaktion konnte nicht gesendet werden + Transaktion konnte nicht erstellt werden + Dein Bitcoin-Guthaben konnte nicht geladen werden + Zahlung gesendet, aber die Zap-Quittung konnte nicht veröffentlicht werden + + Zahlung gesendet (%1$d von %2$d Quittung veröffentlicht), aber die nächste Quittung konnte nicht veröffentlicht werden + Zahlung gesendet (%1$d von %2$d Quittungen veröffentlicht), aber die nächste Quittung konnte nicht veröffentlicht werden + + Ein Empfängeranteil liegt unter dem Dust-Limit + Transaktion konnte nicht signiert werden + ~10 Min. + ~30 Min. + ~1 Std. + Schnell + Normal + Langsam + %1$s · %2$s sat/vB · %3$s + + Aufgeteilt auf %1$d Empfänger + Aufgeteilt auf %1$d Empfänger + + + %1$d Empfänger mit reiner Lightning-Adresse wird übersprungen — On-Chain benötigt einen Nostr-Pubkey, um die Adresse abzuleiten. + %1$d Empfänger mit reiner Lightning-Adresse werden übersprungen — On-Chain benötigt einen Nostr-Pubkey, um die Adresse abzuleiten. + + + Die %1$d-fache Zap-Aufteilung dieser Notiz verwenden + Die %1$d-fache Zap-Aufteilung dieser Notiz verwenden + + wird gesendet + Transaktion wird erstellt + Guthaben wird geladen + Quittung wird veröffentlicht + wird signiert + Es ist nur eine Stimme pro Benutzer für diesen Umfragetyp erlaubt + Alle Reaktionen auf diesen Beitrag öffnen + Offen + Orbot Socks-Port + Bitcoin Explorer (OTS) + Es gibt einen Beweis, dass dieser Beitrag irgendwann vor %1$s signiert wurde. Der Beweis wurde zu diesem Datum und Uhrzeit in der Bitcoin-Blockchain gestempelt. + Ein Zeitstempel-Nachweis für diesen Beitrag wurde angefordert und wartet darauf, in der Bitcoin-Blockchain gestempelt zu werden. Dies ist in der Regel innerhalb weniger Stunden abgeschlossen. + Zeitstempel Beweis + Ausgehende Relays + Passwort ist erforderlich + Pausen + Bezahlen + Nachricht von %1$s + Zahlungsziele + Füge Zahlungsadressen für verschiedene Netzwerke hinzu (z.B. Bitcoin, Lightning, Ethereum). + In %1$s bezahlen — den Betrag wählst du dort + PDF in Downloads/Amethyst gespeichert + Metadaten von Follow-Listen können von allen auf Nostr gesehen werden. Nur deine privaten Mitglieder sind verschlüsselt. + Metadaten der Follow-Liste + Bilder + Oben anheften + An Profil anheften + Abspielen + + %1$d Kapitel + %1$d Kapitel + + Cover hinzufügen + Quadratisches Bild, das für die Episode angezeigt wird + Episode bearbeiten + Dein Podcast + Audiodatei hinzufügen + MP3, M4A oder anderes Audio + Kapitel-URL + + %1$d Folge + %1$d Folgen + + Transkript-URL + Video-URL + Neue Episode + Neuer Trailer + Wird veröffentlicht… + Autor + Kategorien + Technik, Nachrichten + Copyright + Cover hinzufügen + Quadratisches Cover für deine Show + Kontakt-E-Mail + Finanzierungslinks + https://… + Sprache + de + Show-Titel + Mein Podcast + Webseite + + %1$d Trailer + %1$d Trailer + + Trailer-Clip hinzufügen + Kurze Audio- oder Videovorschau + Value-for-Value-Fehler + Verbinde eine Nostr-Wallet-Connect-Wallet, um an Keysend-(Node-)Empfänger zu senden. + Dieser Podcast hat keine zahlbaren Value-Empfänger. + Verbinde eine Nostr-Wallet-Connect- oder Debit-Wallet, um Sats beim Zuhören zu streamen. + Dieser Nutzer hat keine Lightning-Adresse + Umfragenautoren können nicht in ihren eigenen Umfragen abstimmen. + (0–100)% + Die Umfrage ist für neue Stimmen geschlossen + Mehrfachauswahl + Wahl %1$s + + %1$d Stimme ist auf einen Zeitpunkt vor der Veröffentlichung der Umfrage datiert und wird ausgeschlossen. + %1$d Stimmen sind auf einen Zeitpunkt vor der Veröffentlichung der Umfrage datiert und werden ausgeschlossen. + + + %1$d abstimmende Person wird durch deine Stummschaltliste ausgeblendet. + %1$d abstimmende Personen werden durch deine Stummschaltliste ausgeblendet. + + + %1$d Antwort hat keine gültige Option gewählt und wird ausgeschlossen. + %1$d Antworten haben keine gültige Option gewählt und werden ausgeschlossen. + + + %1$d Stimme ist nach dem Ende der Umfrage eingegangen und wird ausgeschlossen. + %1$d Stimmen sind nach dem Ende der Umfrage eingegangen und werden ausgeschlossen. + + + %1$d abstimmende Person + %1$d abstimmende Personen + + %1$d von %2$d Antworten von %3$d Relays geladen. + %1$d von etwa %2$d Antworten von %3$d Relays geladen. + + · %1$d Auswahl + · %1$d Auswahlen + + + %1$d Stimme › + %1$d Stimmen › + + Einzelauswahl + Konnte nicht abstimmen + Umfragen + Beitrag + + Dieser Beitrag hat mehr als %1$d Hashtag + Dieser Beitrag hat mehr als %1$d Hashtags + + Kommentare + Antworten auf Artikel, Dateien und andere Inhalte + Verpackungen privater Nachrichten + Ermöglicht DM-Relays das Filtern von Posteingangs-Spam; nur die äußere Verpackung wird gemint, nie deine Nachricht + Langform & Highlights + Artikel und Highlights; selten, die Kosten sind vernachlässigbar + Andere öffentliche Inhalte + Umfragen, Live-Status, Kleinanzeigen und alles andere Öffentliche + Öffentlicher & Live-Chat + Schürf-Verzögerungen stören den Gesprächsfluss + Reaktionen + Häufigster Typ; jedes Like zu schürfen kostet Akku + Meldungen + Relays gewichten Meldungen nach ihren Kosten + Reposts + Hohes Volumen bei aktiven Nutzern + Kurze Notizen & Antworten + Die primäre öffentliche Spam-Fläche + Sprachnachrichten + Öffentliche Sprachbeiträge und -antworten + + %1$d Tag + %1$d Tage + + + %1$d Stunde + %1$d Stunden + + <1 s + + %1$d Minute + %1$d Minuten + + + %1$d Sekunde + %1$d Sekunden + + Der Autor hat Rechenleistung aufgewendet, um diese Notiz auf Schwierigkeit %1$s zu minen — ein Proof-of-Work-Stempel, der Spam teuer macht. + Chat-Nachricht + Meldung + + %1$s • schürft bei %2$d Bit + %1$s • schürft bei %2$d Bits + + + Arbeitsnachweis wird geschürft… (%1$d Beitrag in der Warteschlange) + Arbeitsnachweis wird geschürft… (%1$d Beiträge in der Warteschlange) + + Arbeitsnachweis wird geschürft + Abbrechen + Zeigt Beiträge an, die noch ihren NIP-13-Arbeitsnachweis schürfen, damit sie fertig werden können, nachdem du die App verlässt. + Arbeitsnachweis-Schürfen + Jetzt senden + + %1$d Bit + %1$d Bits + + + Standard (%1$d Bit) + Standard (%1$d Bits) + + Dein %1$s wurde fertig geschürft, konnte aber nicht veröffentlicht werden: %2$s + Dein %1$s wurde fertig geschürft, konnte aber nicht veröffentlicht werden. Es wird beim nächsten Start der App erneut versucht. + + %1$s • wartet auf Schürfen bei %2$d Bit + %1$s • wartet auf Schürfen bei %2$d Bits + + Arbeitsnachweis + ≈ %1$s verbleibend + jeden Moment + Vorschaukartenbild für %1$s + Privatsphäre-Optionen + Datenschutzerklärung + <Private Nachricht kann nicht entschlüsselt werden>\n\nDu wurdest in einer privaten/verschlüsselten Unterhaltung zwischen %1$s und %2$s erwähnt. + DM-Posteingangs-Relays + Fügen Sie 1–3 Relays ein, die als Ihr privater Posteingang dienen sollen. Andere werden diese Relays verwenden, um Ihnen DMs zu senden. DM-Posteingangsrelays sollten Nachrichten von jedem akzeptieren, aber nur Ihnen erlauben, sie herunterzuladen. Gute Optionen sind:\n - inbox.nostr.wine (bezahlt)\n - you.nostr1.com (persönliche Relays - bezahlt) + Der Benutzer empfängt Direktnachrichten auf diesen Relays + Private Nachricht + Privat machen: Die Notiz nur für die benachrichtigten Nutzer als Gift-Wrap verpacken + Antworten auf eine private Notiz bleiben immer privat + Sichtbar für + Private Relays + Fügen Sie zwischen 1–3 Relays ein, um Ereignisse zu speichern, die niemand anders sehen kann, wie Ihre Entwürfe und/oder App-Einstellungen. Idealerweise sind diese Relays entweder lokal oder erfordern eine Authentifizierung, bevor Sie die Inhalte eines jeden Benutzers herunterladen. + Diese Notiz wurde privat zugestellt und ist nicht signiert. Nur die markierten Teilnehmer können sie sehen, und niemand kann Außenstehenden beweisen, wer sie geschrieben hat. + Private Notiz + Beleidigungen / Hassrede + Profil + Profilabzeichen + App-Empfehlungen + Profilabzeichen + Follower-Feed + Bitcoin-(On-Chain-)Wallet + Erhaltene-Zaps-Feed + Profil-Oberfläche + profile + Eine Bearbeitung vorschlagen + Proxy-Relays + Aggregator-Relays wie filter.nostr.wine, von denen die App deine Feeds herunterlädt + Öffentlicher Chat + Öffentliche Chats sind für jeden auf Nostr sichtbar und jeder + kann daran teilnehmen. Sie eignen sich hervorragend für offene Gemeinschaften rund um bestimmte Themen. + Moderation kann durch Löschen von Beiträgen auf den Relays gesteuert werden + Füge zwischen 1–3 Relays ein, die diese Gruppe beherbergen. + Nostr Clients verwenden diese Einstellung, um zu wissen, woher sie Nachrichten herunterladen und an welche gesendet werden sollen. + Relays + Öffentliche Chat Metadaten + Öffentliche Chats + Öffentliche Outbox/Home-Relays + Dieser Relay-Typ speichert alle Ihre Inhalte. Amethyst sendet Ihre Beiträge hierher und andere werden diese Relais verwenden, um Ihre Inhalte zu finden. Fügen Sie 1–3 Relais ein. Sie können persönliche Relais, bezahlte Relais oder öffentliche Relais sein. + Der Benutzer veröffentlicht seine Inhalte auf diesen Relays + Öffentliche Nachricht + Öffentliche Posteingangs-Relays + Dieser Relay-Typ empfängt alle Antworten, Kommentare, Likes und Zaps auf Ihre Beiträge. Fügen Sie 1–3 Relays ein und stellen Sie sicher, dass sie Beiträge von jedem akzeptieren. + Der Benutzer erhält Benachrichtigungen auf diesen Relays + Beitrags-ID kopieren + Löschen + Thread stummschalten + Teilen + Browserlink teilen + Thread entdämpfen + Bewertet mit %1$s von 5 + Reaktion + Reaktionen + Reaktions-Einstellungen + Von Relay lesen + Die Menge in Bytes, die von diesem Relay empfangen wurde, einschließlich Filter und Ereignisse + Nur-Lese-Benutzer + Zum Aufnehmen einer Nachricht gedrückt halten + + Es hält außerdem %1$d weitere Sache zurück. + Es hält außerdem %1$d weitere Dinge zurück. + + Immer, alle Relays + Amethyst meldet sich als %1$s bei jedem Relay an, das danach fragt, und fragt dich nicht mehr. Relays, die du blockiert hast, und solche, bei denen du dich nie anmelden willst, bleiben so. Du kannst das unter Relay-Authentifizierung ändern. + Bei jedem Relay anmelden? + Immer anmelden + …ich jemandem schreibe, dem ich folge + …ich jemand anderem schreibe + …es ist mein Relay oder ein Raum, dem ich beigetreten bin oder dem ich folge + …ich jemanden lese, dem ich folge + Immer, von dir festgelegt + Nie, von dir festgelegt + + %1$s und %2$d weitere Person + %1$s und %2$d weitere Personen + + Nie + Nie, alle Relays + Amethyst teilt Relays nicht mehr mit, dass du %1$s bist, und fragt dich nicht mehr. Manche Relays werden dich dann nicht bedienen: Nachrichten, Antworten und Benachrichtigungen kommen womöglich nicht durch. Relays, bei denen du dich immer anmelden willst, bleiben so. Du kannst das unter Relay-Authentifizierung ändern. + Bei keinem Relay anmelden? + Immer authentifizieren + Auth-Challenges für jedes Relay signieren, das sie anfordert + Benutzerdefiniert + Wähle genau, bei welchen Relays du dich anmeldest. Bei allem, was du unten nicht erlaubt hast, wirst du gefragt. + Nie authentifizieren + Auth-Challenges von allen Relays ignorieren + dein Posteingang + dein eigenes Relay + deine Antworten + dieses Relay + ein Raum, in dem du postest + Personen, die du liest + ein Raum, den du liest + deine Nachrichten + eine Unterhaltung + auth authentifizierung relay signieren verifizieren nip-42 identität + Relay-Authentifizierung + Relay-Chat + Relay-Chats sind Chatgruppen, die von ihrem Home-Relay gesteuert werden. + Sie sind für jeden auf Nostr sichtbar und jeder kann an ihnen teilnehmen. + Sie eignen sich hervorragend für offene Communities rund um bestimmte Themen. Einige dieser Gruppen sind kurzsichtig + und daher verschwinden Chat-Nachrichten im Laufe der Zeit + Relay-Chats + Dein eigenes Profil, deine Einstellungen und Entwürfe auf deinen Heim-Relays. + Die Relays, auf denen jede Community ihre Planes veröffentlicht. + Deine DM-Posteingangs-Relays, an die Gift-Wrap-Nachrichten zugestellt werden. + Gruppennachrichten und Schlüsselpakete auf den Relays der jeweiligen Gruppe. + Beobachtet die gerade angezeigten Events auf neue Antworten, Reaktionen, Reposts, Zaps und Meldungen, damit die Zähler beim Lesen aktuell bleiben. + Chaträume ohne Verlauf — Nachrichten existieren nur, solange du verbunden bist, deshalb bleiben sie abonniert, damit überhaupt etwas ankommt. + Folgelisten, aus denen dein Feed und dein Web of Trust aufgebaut werden. + Standortbasierte Räume für die Gebiete, denen du folgst, abgefragt bei den Relays, die sie führen. + Beiträge von Personen, denen du folgst, gelesen von den Relays, auf denen jede von ihnen veröffentlicht. + Chat und Zap-Ziele, die an Live-Streams hängen, die du geöffnet hast oder denen du folgst. + Die Relays des Raums, solange er geöffnet ist. + Sucht über Relays hinweg, welche Mints existieren und welche empfohlen werden. + Meldungen, die deine Gefolgten über die gerade angezeigten Profile geschrieben haben, abgefragt bei jedem Relay, auf dem diese Gefolgten veröffentlichen. + Deine Posteingangs-Relays plus eine kleine, rotierende Stichprobe der Relays, auf denen deine Gefolgten veröffentlichen, falls eine Erwähnung woanders zugestellt wurde. + Lauscht auf deinen Nutzap-Relays sowie deinen Posteingangs- und DM-Relays, damit keine Zahlung durchrutscht. + Benachrichtigungen von deiner verbundenen Wallet. + Profile der gerade angezeigten Personen. + Das Heim-Relay jedes Chats, den du geöffnet hast oder dem du beigetreten bist. + Holt Events per ID, auf die etwas auf deinem Bildschirm verweist, die du aber noch nicht hast — ein Zitat, die übergeordnete Antwort, eine Thread-Wurzel. + NIP-29-Gruppen, denen du beigetreten bist. Jede Gruppe liegt auf einem Host-Relay, daher verbindet sich die App mit jedem Relay, das eine deiner Gruppen beherbergt. + Findet heraus, auf welchen Relays jede Person veröffentlicht, damit ihre Beiträge an der richtigen Stelle abgerufen werden können. + Deine eigenen Wallet-Events, zurückgelesen von den Relays, auf denen du sie veröffentlicht hast. + Eine Gruppe erstellen + Gruppe löschen + „%1$s“ löschen? Damit werden die Gruppe und ihr Verlauf für alle entfernt, und das lässt sich nicht rückgängig machen. + Gruppe bearbeiten + Privat + Nur Mitglieder können Nachrichten lesen. + + %1$d Mitglied + %1$d Mitglieder + + + %1$d Gruppe + %1$d Gruppen + + Relay-Gruppen + Titel + Relay-Gruppen + Ereignisse + IPs + Arten + Benutzer + Einstellungen + Erweiterungen + Stöbern + Community-Chats + Community-Feeds + DM-Posteingang + Events beobachten + Verschwindende Chats + Standort-Chats + Startseiten-Feed + + %1$s \u00b7 %2$d Relay + %1$s \u00b7 %2$d Relays + + Live-Stream-Chat + Medien + Mint-Verzeichnis + Nutzap-Posteingang + Wallet Connect + Profile beobachten + Sonstiges + Fehlende Events finden + Relay-Gruppen + Relay-Info + Relay-Listen-Finder + Meldungen von Gefolgten + Suche + Hashtags + Unterhaltung + Themen + Kontodaten + Wallet + Relay-Einstellungen + Ausgangs-Listen + Relays + Aufladen & Zap senden + Zap senden + Lade %1$s Sats zu %2$s auf und zappe %3$s %4$s Sats · Gebühr ≈ %5$s Sats + Entfernen + Aus Nachrichten entfernen + Aus den öffentlichen Lesezeichen entfernen + Hier antworten… + Benachrichtigen: + + Löschung beantragen + Löschanfrage + Marmot-Status konnte nicht zurückgesetzt werden: %1$s + Marmot-Status zurücksetzen + Marmot-Status zurückgesetzt. + Aktivität (7 Tage) + Amethyst hat in letzter Zeit mehr als erwartet verbraucht: %1$s. Möchtest du einen Nutzungsbericht in einer verschlüsselten DM an die Entwickler senden? Du siehst den vollständigen Bericht, bevor etwas gesendet wird. + Akkuverbrauch in dieser Zeit (ganzes Gerät) + Relay-Verbindungen bei geschlossener App gehalten + Hintergrund-Benachrichtigungsdienst + + %1$d Start + %1$d Starts + + Laufzeit + App-Prozessstarts + Akkuverbrauch (in App / Hintergrund) + Daten nach Funktion (7 Tage) + Mobile Daten nach Funktion (7 Tage) + Zeit in Anrufen + Genutzte Prozessorzeit + Entschlüsselte Nachrichten + Aktive Übertragungszeit + Web-Anfragen + Mobil (MB) + WLAN (MB) + Standortempfang + Medienwiedergabezeit + Adressierbare Events im Speicher + Chatraum-Listen im Speicher + Geräte-Speicherklasse + App-Speicher (Heap) + Bild-Cache (RAM) + Bild-Cache (Festplatte) + Nativer Speicher + Notizen im Speicher + Speicher jetzt + Profile im Speicher + Zeit in Audioräumen + Proof-of-Work-Mining + Funk-Aufwachvorgänge für Downloads (geschätzt) + %1$s mobile Daten im Hintergrund an einem Tag + + der App-Prozess wurde an einem Tag %1$d Mal neu gestartet + der App-Prozess wurde an einem Tag %1$d Mal neu gestartet + + %1$s Relay-Verbindungen im Hintergrund über Mobilfunk an einem Tag + + die App hat sich an einem Tag %1$d Mal erneut mit Relays verbunden + die App hat sich an einem Tag %1$d Mal erneut mit Relays verbunden + + die CPU wurde an einem Tag %1$s lang wachgehalten, um Benachrichtigungen zu verarbeiten + Relay-Neuverbindungen (fehlgeschlagen) + Relay-Verbindungszeit + … im Hintergrund über Mobilfunk + Entfernte Signaturen + Zeit nach Bildschirm (7 Tage) + Akku Daten Nutzung Verbrauch Energie Netzwerk Diagnose Protokoll + Mit den Entwicklern teilen + Teilen + Bilder + Wallet & Zaps + Adressverifizierung + Sonstiges + Link-Vorschauen + Push-Registrierung + Relay-Synchronisierung + Uploads + Video & Audio + Durchschn. Relay-Verbindungen + Akku / Stunde in App + Mobil heute + Daten / Stunde in App + In App heute + Relay-Zeit heute + WLAN heute + App-Ressourcennutzung + Tor-Laufzeit + Integriertes Tor + Daten pro Tag + Verifizierte Signaturen + Benachrichtigungsverarbeitung (CPU wach) + Ausgeführte Hintergrundaufgaben + Erneut versuchen + Kalenderlisten + Kalender + Schach + Entdecken + Startseite + Folgeliste importieren + Medien + Nachrichten + Wiedergabelisten + Musik + Benachrichtigungen + Folgen + Podcasts + Beitrag planen + Planung abbrechen + Geplante Beiträge werden möglicherweise erst veröffentlicht, wenn du die App wieder öffnest. Geplante Beiträge anderer Konten werden nicht ausgelöst, solange dieses Konto aktiv ist. Aktiviere Dauerbenachrichtigungen in Einstellungen → UI-Einstellungen für zuverlässige Hintergrundplanung. + Geplante Beiträge werden möglicherweise erst veröffentlicht, wenn du die App das nächste Mal öffnest. Aktiviere Dauerbenachrichtigungen in Einstellungen → UI-Einstellungen für zuverlässige Hintergrundplanung. + Geplante Beiträge + Jetzt senden + %1$s · in %2$s + %1$s · vor %2$s + Morgen + Fehler: %1$s + Beitrags-ID kopiert + + Abgemeldet · %1$d geplanter Beitrag gelöscht + Abgemeldet · %1$d geplante Beiträge gelöscht + + Abgemeldet + + Du hast %1$d geplanten Beitrag, der noch nicht veröffentlicht wurde. Beim Abmelden wird er dauerhaft gelöscht. + Du hast %1$d geplante Beiträge, die noch nicht veröffentlicht wurden. Beim Abmelden werden sie dauerhaft gelöscht. + + Geplanter Beitrag fehlgeschlagen + Geplanter Beitrag veröffentlicht + + an %1$d Relay + an %1$d Relays + + Abgebrochen + Fehlgeschlagen + Geplant + Wird gesendet… + Gesendet + + · %1$d fällig in 1 Std. + · %1$d fällig in 1 Std. + + + %1$d in Warteschlange + %1$d in Warteschlange + + Gute Optionen sind:\n%1$s + Such-Relays + Such-Relays + Liste der Relays, die für die Suche und das Taggen von Benutzern verwendet werden. Das Taggen und die Suche funktionieren nicht, wenn keine Optionen verfügbar sind. + durchsuchbare Ereignisse + Geheimer Schlüssel (nsec) in die Zwischenablage kopiert + Du hast noch keine Benutzer blockiert. + Sicherheitsfilter + Keine versteckten Wörter. Füge unten ein Wort hinzu, um Beiträge auszublenden, die es enthalten. + Blockierte Inhalte + Filtereinstellungen + In dieser Sitzung wurden keine Konten als Spam markiert. + Senden + Alle empfangenen Profilereignisse (kind 0) an Ihren lokalen Relay senden + Profile an lokalen Relay weiterleiten + Verfügbar für diesen Empfänger: %1$s Sats + Zahlung fehlgeschlagen + Transaktion: %1$s + Zahlung über %1$s… + Der Server hat nach dem Hochladen keine URL angegeben + Einstellungen + Keine stummgeschalteten Threads + Stummgeschaltete Threads + Darstellung + Allgemein + Inhalte im Feed + Sichtbare Tabs + Medien & Daten + Abschnitte & Feeds + Erinnerungen + Verbindung + Über Tor leiten + Als Bild teilen + Als Bild-URL teilen + HLS-Upload + Teilen oder Speichern + Kurzvideos + QR-Code für verschlüsselten privaten Schlüssel anzeigen + Direkt- und Gruppennachrichten im Benachrichtigungs-Tab anzeigen. Deaktivieren, um Nachrichten nur im Nachrichten-Tab zu behalten. + Nachrichten anzeigen + Privaten QR-Code anzeigen + Signaturanfrage abgelehnt + Stell sicher, dass die Signer-App diese Transaktion autorisiert hat + Externer Signer hat Daten zurückgegeben, die für die Anfrage ungewöhnlich sind. Es könnte ein Fehler in Amethyst oder im Signer vorliegen. + Signer nicht gefunden + Wurde die Signer-App deinstalliert? Überprüfe, ob sie installiert ist und dieses Konto enthält. Melde dich ab und wieder an, falls sich die App geändert hat. + Springe %1$d Sekunden zurück + Springe %1$d Sekunden vor + Apps + Spam + Anzahl der Spam-Ereignisse von diesem Relay + Spammer + Zwei Benachrichtigungs-Tabs anzeigen — Gefolgt (Personen, denen du folgst) und Alle. Der Indikator für ungelesene Nachrichten leuchtet nur bei Aktivität von Personen, denen du folgst. + Benachrichtigungen nach Gefolgt aufteilen + Versucht, private Metadaten aus unterstützten Mediendateien vor dem Hochladen zu entfernen + Private Metadaten entfernen + Liest abgeschlossene Workouts aus Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) und schlägt vor, sie als Beitrag zu teilen. Die Berechtigung wird nur beim Verbinden angefragt. + Workouts zum Teilen vorschlagen + System + Design + Dunkles, helles oder Systemdesign + Diese Nachricht verschwindet in %1$s + + +%1$d\nAntwort + +%1$d\nAntworten + + Heute + Benutzerdefiniert + Eigene Einstellungen + Standard + Verbirg deine IP vor zufälligen Relays + Orbot + Volle Privatsphäre + Verbirg deine IP bei allen Verbindungen + Intern + Aus + Tor/Datenschutz-Presets + Ändere schnell alle Einstellungen unten auf einmal + Alles außer Medien + Verbirg deine IP vor allem außer Bildern und Videos + DM-Relays + Tor erzwingen, um DMs zu senden und empfangen + Bilder + Erzwinge Tor beim Laden von Bildern + Medien-Uploads + Erzwinge Tor beim Hochladen von Inhalten + Geldtransaktionen + Erzwinge Tor bei Zaps, Lightning und Cashu-Transfers + Nicht vertrauenswürdige Relays + Erzwinge Tor für ausgehende/eingehende Relays + Nostr Adressverifizierung + Erzwinge Tor bei der Überprüfung von NIP-05-Adressen + Onion URL/Relays + Verwende Tor für jede .onion URL + Profilbilder + Erzwinge Tor beim Laden von Profilbildern + Vertrauenswürdige Relays + Erzwinge Tor für alle Relays in deinen Listen + URL-Vorschauen + Erzwinge Tor beim Laden von URL-Vorschauen + Video + Erzwinge Tor beim Laden von Videos + Grundlegend + Verwende Tor, wenn es vom Server benötigt wird + Fehler beim Öffnen der Datei + Keine Torrent-Apps installiert, um die Datei zu öffnen und herunterzuladen. + Das Ereignis enthält nicht genügend Informationen, um einen Magnetlink zu erstellen + Verwende den verfolgten Broadcaster beim Senden von Ereignissen. Zeigt Live-Fortschritt und Status pro Relay während der Übertragung. + Verfolgte Übertragungen + Übersetzen in + Wähle die Sprache, in die der Inhalt übersetzt werden soll. + Übersetzungen + Vertrauenswürdige Relays + Relays, denen du vertraust und für die keine Tor-Verbindung erforderlich ist + Fertig + Voll + Leistung + Schnell + Vereinfacht + Einfach + UI-Einstellungen + UI-Modus + Wähle den Beitragsstil + Konnte keine Lightning-Rechnung erstellen, bevor der Zap gesendet wurde. Die Lightning-Wallet des Empfängers hat folgenden Fehler gesendet: %1$s + Bild kann nicht geteilt werden, bitte versuchen Sie es später erneut… + Video kann nicht geteilt werden, bitte versuchen Sie es später erneut… + Unbefugte Entschlüsselung + Der Signer hat die erforderliche Entschlüsselung nicht autorisiert. Aktiviere NIP-44-Entschlüsselung in deiner Signer-App und versuche es erneut + Entfolgen + Diesem Ort nicht mehr folgen + Stummschaltung der Benachrichtigungen aufheben + Nicht mehr anheften + Von Profil lösen + Hochladen abgebrochen + Upload-Fehler + Sprach-Upload fehlgeschlagen: %1$s + Sprachnachricht konnte nicht hochgeladen werden + NIP-95 wird für Sprachnachrichten noch nicht unterstützt + %1$d%% Verfügbarkeit + Aktiver Tor-Engine + Verwende die interne Version oder Orbot + Der Benutzer hat keine Lightning-Adresse eingerichtet, um Sats zu empfangen + Benutzer %1$s hat keine Lightning-Adresse eingerichtet, um Sats zu empfangen + Löschverlauf + Löschanfrage gesendet + Bessere Qualität bei kleinerer Dateigröße, aber nicht alle Geräte unterstützen die H.265-Wiedergabe. + H.265/HEVC-Codec verwenden + Der Videodownload wurde gestartet… + Videoplayer-Schaltflächen + Video in der Galerie des Smartphones gespeichert + Sprachbeitrag + Tief + Hoch + Neutral + Keine + Sprachantwort + Wallet + Cashu-Wallet (NIP-60) + Guthaben konnte nicht geladen werden + Wallet Verbindung + Amethyst konnte die Antwort deiner Wallet nicht entschlüsseln — die Wallet verwendet möglicherweise einen anderen Schlüssel + + Deine Wallet hat nicht innerhalb von %1$d Sekunde geantwortet. Die Zahlung ist möglicherweise trotzdem erfolgt — prüfe deine Wallet, bevor du es erneut versuchst. + Deine Wallet hat nicht innerhalb von %1$d Sekunden geantwortet. Die Zahlung ist möglicherweise trotzdem erfolgt — prüfe deine Wallet, bevor du es erneut versuchst. + + Ihr Wallet-Connect-Anbieter hat folgenden Fehler zurückgegeben: %1$s + Dein Wallet-Connect-Anbieter hat eine Antwort gesendet, die Amethyst nicht lesen konnte. + Deine Wallet hat mit etwas geantwortet, das Amethyst nicht kennt (%1$s) + Cashu-Wallet bearbeiten + Rechnung konnte nicht erstellt werden + Deine Wallet hat keine Rechnung zurückgegeben + Deine Wallet konnte nicht erreicht werden: %1$s + Zeitüberschreitung bei der Wallet-Anfrage + + Zeitüberschreitung bei der Wallet-Anfrage — %1$d Antwort wurde abgelehnt, weil sie mit einem unerwarteten Schlüssel signiert war. Dein Relay ist möglicherweise nicht vertrauenswürdig. + Zeitüberschreitung bei der Wallet-Anfrage — %1$d Antworten wurden abgelehnt, weil sie mit einem unerwarteten Schlüssel signiert waren. Dein Relay ist möglicherweise nicht vertrauenswürdig. + + Transaktionen konnten nicht geladen werden + Weitere Transaktionen konnten nicht geladen werden + Zeigt eine Warnmeldung an, wenn die Beiträge 5 oder mehr Berichte von den folgenden Beiträgen enthalten + Bei Berichten warnen + Web-Lesezeichen hinzufügen + Web-Lesezeichen bearbeiten + Web-Lesezeichen + Was beschäftigt dich? + + %1$d Aktivität + %1$d Aktivitäten + + Workouts + Eine Nachricht schreiben… + In Relay schreiben + Die Menge in Bytes, die an dieses Relay gesendet wurde, einschließlich Filter und Ereignisse + Zap + Übergabe an Zahlungs-Apps + Wenn der Autor eine Zahlungsmethode veröffentlicht, die eine App auf diesem Telefon öffnen kann (Venmo, Monero, eine IBAN…), kann die Zap-Auswahl sie anbieten. Tippen öffnet diese App, die nach dem Betrag fragt — es wird nichts an Relays veröffentlicht, daher ändert sich der Zap-Zähler der Notiz nicht. + Zahlungsmethoden des Autors anbieten + Zaps + + Umbenennen + Speichern diff --git a/commonsUI/src/commonMain/composeResources/values-de/strings.xml b/commonsUI/src/commonMain/composeResources/values-de/strings.xml index e349a96d83..b000ca09f2 100644 --- a/commonsUI/src/commonMain/composeResources/values-de/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-de/strings.xml @@ -1820,4 +1820,1259 @@ anz der Bedingungen ist erforderlich Berechtigungen: nApplet: %1$s Öffnen + Über & Rechtliches + Kontoeinstellungen + Hinzufügen + Blossom Server hinzufügen + NIP-96 Server hinzufügen + Wenn aktiviert, fügt Amethyst Ereignissen, die du veröffentlichst, einen NIP-89-Client-Tag hinzu. + Client-Tag zu meinen Ereignissen hinzufügen + Fügt eine Warnung für sensiblen Inhalt hinzu, bevor dieser Inhalt angezeigt wird. + Sensibler Inhalt + Zu den öffentlichen Lesezeichen hinzufügen + Verwendet ein KI-Modell auf dem Gerät, um Textkorrekturen und Tonänderungen vorzuschlagen. + Textverbesserungen vorschlagen + Hält Verbindungen zu deinen Inbox-Relays aktiv für Echtzeit-Benachrichtigungen + Relay-Verbindungsdienst + + Mit %1$d Posteingangs-Relay verbunden + Mit %1$d Posteingangs-Relays verbunden + + + Mit %1$d Relay verbunden + Mit %1$d Relays verbunden + + Verbinde mit Inbox-Relays\u2026 + Amethyst-Benachrichtigungen aktiv + Benachrichtigungen für eingehende Sprach- und Videoanrufe + Eingehende Anrufe + %1$s hat deine Schachherausforderung angenommen + Benachrichtigt dich über Schachspiel-Ereignisse + Schach + Schach-Updates + %1$s hat gezogen — du bist dran + Benachrichtigt dich, wenn eine private Nachricht eingeht + Private Nachrichten + Neue Nachrichten + Als gelesen markieren + Benachrichtigt dich, wenn dich jemand in einem Beitrag erwähnt oder zitiert + %1$s hat dich erwähnt + Erwähnungen + Neue Erwähnungen + Neue Benachrichtigung eingegangen + Benachrichtigt dich, wenn jemand auf deinen Beitrag reagiert + %1$s hat auf deinen Beitrag reagiert + für %1$s + Reaktionen + Neue Reaktionen + Benachrichtigt dich, wenn jemand auf deinen Beitrag antwortet + Antworten + Neue Antworten + Antworten + Benachrichtigungen, wenn ein geplanter Beitrag veröffentlicht wird oder die Veröffentlichung fehlschlägt. + Geplante Beiträge + Benachrichtigt dich, wenn dich jemand zappt + %1$s Sats + für %1$s + Von %1$s + Erhaltene Zaps + Neue Zaps + App-Einstellungen + Attestierung + Attestierungsanfrage + Kompetenz des Attestierers + Empfehlung des Attestierers + Audio, Visualizer, Spektrum, Balken, Wellen, radial, Aurora, Animation + Audio-Visualisierer + Speichert automatisch ein Entwurfsereignis, wenn du tippst oder den Editor mit ungesendetem Text verlässt, und sendet es an deine privaten ausgehenden Relays. + Entwürfe automatisch erstellen + Immersives Scrollen + Navigationsleisten beim Scrollen ausblenden + Bilder/GIFs automatisch laden + Bilder und GIFs automatisch laden + Videos automatisch abspielen + Videos und GIFs automatisch abspielen + Profilbild + Profilbilder anzeigen + URL-Vorschau anzeigen + URL-Vorschauen anzeigen + Videos automatisch abspielen + Videos automatisch abspielen, wenn sie auf dem Bildschirm sichtbar sind + Metadaten können nicht aus AVIF entfernt werden: %1$s + Abzeichen verleihen + Zurück + Schlüssel sichern + nsec, privater Schlüssel, Seed, Mnemonic, Export + Abzeichen + Authentifizierung fehlgeschlagen + Biometrie konnte den Besitzer dieses Telefons nicht authentifizieren + Biometrie konnte den Besitzer dieses Telefons nicht authentifizieren. Fehler: %1$s + Blockieren + Blockierte Relays + Amethyst wird sich niemals mit diesen Relays verbinden + Blockierte Benutzer + Neue Lesezeichenliste + Metadaten der Lesezeichenliste + Metadaten von Lesezeichenlisten können von allen auf Nostr gesehen werden. Nur deine privaten Mitglieder sind verschlüsselt. + Lesezeichen + Boost + Navigation, Tabs, Navigationsleiste + Untere Navigationsleiste + Broadcast-Relays + Relays, die deine Beiträge an andere Relays weiterleiten, z.B. sendit.nosflare.com. Amethyst fügt diesen Relay zu allen neuen Ereignissen hinzu + Browser + Favoriten + Laden über das offene Web. Tippen Sie, um Tor zu verwenden. + Laden über Tor. Tippen Sie, um das offene Web zu verwenden. + + %1$s, %2$d Termin + %1$s, %2$d Termine + + Bild-Upload fehlgeschlagen + Das gewählte Bild konnte nicht hochgeladen werden. Versuche es erneut oder füge eine URL ein. + Kalendertermin teilen + In Karten öffnen + Link öffnen + Findet jetzt statt + %1$s · endet %2$s + + Beginnt in %1$d Minute + Beginnt in %1$d Minuten + + Hinweis, wenn ein Termin, an dem du teilnimmst, bald beginnt. + calendar_reminders + Kalendererinnerungen + Kalendertermin + Kalender, Ereignisse, Erinnerungen, RSVP + Eine Benachrichtigung wird angezeigt, wenn ein Termin, an dem du teilnimmst, bald beginnt. + Erinnerungen senden + + %1$d Min. + %1$d Min. + + Kalendererinnerungen + Tag + Feed + Monat + Woche + Annehmen + Bluetooth + Kamera aus + Kamera an + Ohrhörer + Auflegen + Eingehender Anruf + Eingehender Videoanruf\u2026 + Eingehender Sprachanruf\u2026 + Stummschalten + Anrufe + Benachrichtigung über laufenden Anruf + Amethyst benötigt Zugriff auf Kamera und Mikrofon, um einen Videoanruf zu starten. Bitte aktiviere sie in den App-Einstellungen. + Amethyst benötigt Zugriff auf das Mikrofon, um einen Sprachanruf zu starten. Bitte aktiviere ihn in den App-Einstellungen. + Ablehnen + Anrufeinstellungen + WebRTC, Videoanruf, Sprachanruf, Anrufe + Lautsprecher + Stummschaltung aufheben + Anruf mit %1$s + Callback-URL aus %1$s Antwort nicht gefunden + Abbrechen + Cashu-Token + Mint wird geprüft… + Cashu konnte nicht eingelöst werden + Mint hat folgende Fehlermeldung geliefert: %1$s + Empfangen + Gesendet + Passende Mints + + +%1$d weiterer + +%1$d weitere + + Beliebte Mints + + Von %1$d weiterem empfohlen + Von %1$d weiteren empfohlen + + %1$s sat nach %2$s verschoben. + Keine kompatible Cashu-Brieftasche im System gefunden + + %1$d ausstehende Rechnung + %1$d ausstehende Rechnungen + + %1$s Sat + bis zu %2$s Sat Gebühren bezahlen? + Eine Löschanfrage für deine kind:38000-Empfehlung von %1$s veröffentlichen. Relays, die NIP-09 beachten, entfernen sie. + %1$s Sats über %2$s Proofs wiederhergestellt. + Cashu erhalten + %1$s Sats wurden an Ihre Wallet gesendet. (Gebühren: %2$s Sats) + + Guthaben bei %1$d Mint, den Sie nicht verwenden + Guthaben bei %1$d Mints, die Sie nicht verwenden + + Warte auf die Bezahlung der Rechnung… + + %1$d Mint + %1$d Mints + + Streaming beenden + An Gerät streamen + rechtlich, Sicherheit, Missbrauch, CSAE, Kinderschutz + Kinderschutzstandards + Accessoires + Kunst + Bücher + Kleidung + Sammlerstücke + Handwerk + Elektronik + Fitness + Lebensmittel + Möbel + Zuhause + Verschiedenes + Büro + Sonstiges + Haustiere + Sport + Täglich + Monatlich + Einmalig + Wöchentlich + %1$s über %2$s bezahlen? + Diese Rechnung über %1$s bezahlen? + Der Debit-Dienst hat die Zahlung nicht abgeschlossen. + Geben Sie einen gültigen Betrag für dieses Angebot ein. + Rechnung wird angefordert… + Alle Reaktionen auf diesen Beitrag schließen + Geschlossen + Communitys + Entwurf hat %1$d Bytes; diese Community begrenzt diesen Typ auf %2$d Bytes. + Entwurf hat %1$d Bytes; diese Community begrenzt Ereignisse auf %2$d Bytes. + Du hast heute bereits %1$d Ereignisse dieses Typs veröffentlicht (Limit %2$d). + Entwurf, Beitrag, Editor, automatisches Speichern + Editor-Einstellungen + Standard-Port ist 9050 + Verbundene Relays + Aktuelle Liste der verwendeten Relays + Prozentsatz erfolgreicher Verbindungen zum Relay + Immer + Nie + Unbegrenztes WLAN + Dokument hinzufügen + Bild hinzufügen + Medien hinzufügen + Video hinzufügen + Ausblenden + Warnen + Anzeigen + Unterhaltungen + Konvertiert animierte GIFs in MP4-Videos für kleinere Dateigrößen und bessere Wiedergabekompatibilität. + GIF in MP4 umwandeln + Notiz-ID in die Zwischenablage kopiert + Notiztext in die Zwischenablage kopiert + In die Zwischenablage kopiert + Autor-ID in die Zwischenablage kopiert + Meinen geheimen Schlüssel kopieren + In Zwischenablage kopieren + Konnte keine LNUrl aus der Lightning-Adresse "%1$s" zusammenstellen. Überprüfen Sie die Konfiguration des Benutzers + Die heruntergeladene Datei konnte nach dem Hochladen nicht überprüft werden: %1$s + Hochgeladene Medien konnten nicht vom Server heruntergeladen werden + Rechnung konnte nicht von %1$s abgerufen werden: %2$s + Konnte die komprimierte Datei nicht öffnen + Wallet nicht gefunden + Amethyst konnte keine Wallet-Apps finden, die Nostr Wallet Connect (NWC) unterstützen. +\n\nWas du tun kannst: +\n\t1. NWC-Unterstützung überprüfen: Stelle sicher, dass deine bevorzugte Wallet-App mit Nostr Wallet Connect kompatibel ist. +\n\t2. Verbindung erstellen: Öffne deine Wallet-App und erstelle eine neue NWC-Verbindung. +\n\t3. Mit Amethyst verknüpfen: Deine Wallet bietet normalerweise drei Optionen: +\n\t\t3.1 Automatische Verknüpfung: Eine Schaltfläche zum automatischen Öffnen und Verbinden mit Amethyst. Klicke darauf, öffne Amethyst und speichere auf dem neuen Bildschirm. +\n\t\t3.2 Manuelle Verknüpfung: Eine Verbindungs-URI, die du kopieren und über das Einfügesymbol auf diesem Bildschirm einfügen kannst. +\n\t\t3.3 QR-Code: Die Wallet erstellt einen QR-Code, den du über die QR-Schaltfläche auf diesem Bildschirm scannen kannst. + Erstellen + t + Gefahrenzone + Dunkel + Beschreibung + Öffentlich machen + Plaudern + Gemeinschaften + Feedalgorithmen + Folge Paketen + Live-Streams + Marktplatz + Lesungen + DM Posteingangs-Relais + DMs + Nicht übersetzen von + Die hier angezeigten Sprachen werden nicht übersetzt. Wählen Sie eine Sprache, um sie zu entfernen und lassen Sie sie erneut übersetzen. + Auf dem Telefon speichern + Video wird heruntergeladen… + Entwurf + Entwürfe + Konten + Erstellen + Feeds + Navigieren + System + Du + + %1$d Tag + %1$d Tage + + + %1$d Stunde + %1$d Stunden + + + %1$d Minute + %1$d Minuten + + + %1$d Monat + %1$d Monate + + + %1$d Woche + %1$d Wochen + + + %1$d Jahr + %1$d Jahre + + Kalender bearbeiten + Kalendertermin bearbeiten + Community bearbeiten + Emoji-Paket bearbeiten + Playlist bearbeiten + Beitrag bearbeiten + Private Emojis werden verschlüsselt auf Relays gespeichert und sind nur für dich sichtbar. Sie erscheinen in deinem Reaktionsmenü und in der ":"-Autovervollständigung wie öffentliche. + Öffentliche Emojis sind für alle sichtbar und erscheinen in deinem Reaktionsmenü und in der ":"-Autovervollständigungsauswahl, wenn dieses Paket in deiner Emoji-Liste ist. + Emojis + Dateien vor dem Hochladen verschlüsseln, um die Privatsphäre zu schützen. Einige Server akzeptieren möglicherweise keine verschlüsselten Dateien bei kostenlosen Konten. + Dateien verschlüsseln + Verschwindender Chat + Fehler + Konnte Rechnung nicht bezahlen + Konnte nicht abheben + Zahlung konnte nicht geöffnet werden + Zap konnte nicht gesendet werden + Fehler beim Öffnen der Signatur-App + Die Unterzeichner-App konnte nicht gefunden werden. Prüfen Sie, ob die App nicht deinstalliert wurde + Fehler beim Parsen der Fehlermeldung + Fehler beim Parsen von JSON von %1$s. Überprüfen Sie die Blitzeinrichtung des Benutzers + Konnte Rechnung nicht vom Server des Empfängers abrufen + Im Browser öffnen + Dieses Video kann nicht abgespielt werden + Der Codec oder das Format wird auf diesem Gerät nicht unterstützt (%1$s). Versuche, es im Browser zu öffnen. + Fehler + Negentropy, Synchronisation, Abgleich, Auffüllen + Relay-Synchronisierung + Ereignisse von dir + Ereignisse an dich + AMRAP + Circuit + Radfahren + Diät + EMOM + Fasten + Wandern + Meditation + Rudern + Laufen + Krafttraining + Schwimmen + Gehen + Yoga + Ausklappen + Ablaufdatum + Relay-Einstellungen exportieren + Löschen fehlgeschlagen: %1$s + Fehler beim Verschlüsseln Ihres privaten Schlüssels + Fehler beim Speichern des Bildes + PDF konnte nicht gespeichert werden + Video konnte nicht gespeichert werden + Viele Server akzeptieren keine verschlüsselten Dateien bei kostenlosen Konten. Du kannst es ohne Verschlüsselung erneut versuchen. + Verschlüsselter Upload fehlgeschlagen + Fehler beim Hochladen: %1$s + Fehler beim Laden der Medien + Konnte %1$s nicht erreichen: %2$s + Zu Favoriten hinzufügen + Lädt über das offene Web. + Lädt über Tor. + Zuletzt verwendet + Aus Favoriten entfernen + Diese App ist noch nicht geladen. Versuchen Sie es in einem Moment erneut. + Lieblings-Apps + DVM, Data Vending Machine, Algo, Algorithmus, Feeds + Bevorzugte Feed-Algorithmen + Eine Zahlung durchgeführt + An Relays veröffentlicht + Eine Datei hochgeladen + Favorisierte Relay-Feeds + Relays, die du häufig besuchst, um ihren globalen Feed zu sehen + Gemeinschaften + Feed-Algorithmen + Feeds + Hash-Tags + Interessensets + Listen + Standorte + Relais + Dateiserver + Wählen Sie einen Server zum Hochladen dieser Datei + Versteckt Beiträge von Fremden, die 5 oder mehr Male genau die gleichen waren + Spam filtern + Folgen + Folge zurück + Alle bevorzugten Feed-Algorithmen + In der Nähe + Kuratiert + Weltweit + Standard-Folgenliste + Alle Folgen + Alle Benutzer Folgen + Meine + Stummliste + Neues Empfehlungspaket + Empfehlungspaket bearbeiten + Metadaten von Empfehlungspaketen können von allen auf Nostr gesehen werden und werden häufig auf Websites als Starterkits für neue Nutzer veröffentlicht. + Metadaten des Empfehlungspakets + Follow-Pakete + Neue Folgen-Liste + Liste bearbeiten + Profilgalerie-Stil + Galeriestil auswählen + Klassisch + Modern + Standort-exklusiver Beitrag + Nur Anhänger des Ortes werden es sehen. Deine allgemeinen Anhänger werden es nicht sehen. + Github Gist mit Nachweis + %1$s finanziert von %2$s Sats Ziel + s + Das Bild hat sich geändert. Der Autor hat die Änderung möglicherweise nicht bemerkt. + Was bedeutet das? + Das Bild ist seitdem Beitrag dasselbe + Hallo %1$s, ist das noch verfügbar? + Versteckte Wörter + Verwirft Beiträge aus Community-Feeds, wenn die Community ein NIP-9B-Regeldokument veröffentlicht und ein Ereignis daran scheitern würde. Keine Wirkung, wenn eine Community keine strukturierten Regeln hat. + Beiträge ausblenden, die gegen Community-Regeln verstoßen + Passwort ausblenden + Lade %1$s hoch (%2$d von %3$d) + Alles + Tabs, Feeds, Threads, Unterhaltungen + Fehlerhafte Anfrage - Der Server kann oder will die Anfrage nicht verarbeiten. + Nicht autorisiert - Der Benutzer hat keine gültigen Authentifizierungsdaten + Zahlung erforderlich - Der Server verlangt eine Zahlung, um die Anfrage abzuschließen + Verboten - Der Benutzer hat keine Zugriffsrechte, um die Anfrage zu stellen + Nicht gefunden - Der Server kann die angeforderte Adresse nicht finden + Methode nicht erlaubt - Der Server unterstützt die Anfragemethode, aber nicht die Zielressource + Nicht akzeptabel - Der Server findet keinen Inhalt, der die Anfrage erfüllt. + Proxy-Authentifizierung erforderlich - Der Benutzer hat keine gültigen Authentifizierungsdaten + Anfrage-Timeout - Der Server hat zu lange auf jemanden anderen gewartet + Konflikt - Der Server kann die Anfrage nicht erfüllen, da ein Konflikt mit der Ressource besteht + Verschwunden - Der angeforderte Inhalt wurde dauerhaft vom Server gelöscht und wird nicht wiederhergestellt + Länge erforderlich - Der Server lehnt die Anfrage ab, da er eine definierte Länge erfordert + Vorbedingung fehlgeschlagen - Die Vorbedingungen der Anfrage in den Kopfzeilenfeldern, die der Server nicht erfüllt + Nutzlast zu groß - Die Anfrage ist größer als die vom Server definierten Grenzen und der Server weigert sich, sie zu verarbeiten + URI zu lang - Die vom Client angeforderte URL ist zu lang, um vom Server verarbeitet zu werden. + Medientyp nicht unterstützt - Die Anfrage verwendet ein Medienformat, das der Server nicht unterstützt + Bereich nicht erfüllbar - Der Server kann den im Range-Header-Feld der Anfrage angegebenen Wert nicht erfüllen. + Erwartung fehlgeschlagen - Der Server kann die Anforderungen, die durch den Expect-Request-Header-Feld angegeben sind, nicht erfüllen + Upgrade erforderlich - Der Server weigert sich, die Anfrage mit dem aktuellen Protokoll zu verarbeiten, es sei denn, der Client wechselt zu einem anderen Protokoll. + Interner Serverfehler - Der Server hat einen unerwarteten Fehler festgestellt und kann die Anfrage nicht abschließen + Nicht implementiert - Der Server kann die Anfrage nicht erfüllen oder erkennt die Anfragemethode nicht + Schlechtes Gateway - Der Server agiert als Gateway und erhielt eine ungültige Antwort vom Host + Dienst nicht verfügbar - Dies tritt häufig auf, wenn ein Server überlastet ist oder gewartet wird + Gateway-Timeout - Der Server agierte als Gateway oder Proxy und hat zu lange auf eine Antwort gewartet + HTTP-Version nicht unterstützt - Der Server unterstützt die HTTP-Version der Anfrage nicht + Variante verhandelt auch - Der Server hat einen internen Konfigurationsfehler + Unzureichender Speicher - Der Server hat nicht genug Speicher, um die Anfrage erfolgreich zu verarbeiten + Schleife erkannt - Der Server erkennt eine Endlosschleife, während er die Anfrage bearbeitet + Netzwerk-Authentifizierung erforderlich - Der Client muss authentifiziert werden, um auf das Netzwerk zuzugreifen + Illegales Verhalten + Bild in der Gal + +erie gespeichert + Vortäuschung + Kontakte, folgen, Folgeliste, importieren + Eingehende Relays + Falscher Rechnungsbetrag (%1$s Sats) von %2$s. Er hätte %3$s sein sollen + Indexer-Relays + Relays, die Metadaten und Relay-Listen hosten, z.B. purplepag.es. Amethyst verwendet sie, um Benutzer zu finden, die nicht in deinen Listen sind. + Neues Interessenset + Umbenennen + Interessensets + Ungültiger Schlüssel + Ungültiger Schlüssel: %1$s + Ungültige Adresse + Amethyst hat eine URI zum Öffnen erhalten, aber diese URI war ungültig: %1$s + Es ist nicht möglich, einen Entwurf zu zitieren + Es ist nicht möglich, auf einen Entwurf zu reagieren + Es ist nicht möglich, auf einen Entwurf zu antworten + Es ist nicht möglich, zap Zahlung an einen Entwurf senden + Schlüssel ist erforderlich + KeyPackage-Relays + Relays, auf denen deine MLS KeyPackages veröffentlicht werden (MIP-00). Andere Nutzer rufen diese KeyPackages ab, um dich zu Marmot-Gruppenchats einzuladen. Füge 1–3 Relays hinzu, die KeyPackage-Ereignisse von dir akzeptieren und öffentliches Lesen erlauben. + KeyPackages + Akzeptiertes Abzeichen-Set + Abenteuer-Prolog + Abenteuer-Lesung + Abenteuer-Szene + App-Empfehlungen + Termin + Apps + RSVP für Termin + Audio-Header + Audiospur + Erstellte Podcasts + Abzeichen-Auszeichnungen + Abzeichen-Definitionen + Blob-Daten + Blob-Header + Blockierte Relays + Blogs + Blossom-Authentifizierung + Blossom-Server + Lesezeichenliste + Broadcast-Relays + Kalender + Kanaldefinition + Kanalnachricht ausblenden + Kanalliste + Kanalnachricht + Kanal-Metadaten + Benutzer im Kanal stummschalten + Schach-Authentifizierung + Schach-Herausforderungen + Remisangebot + Schachspiel annehmen + Ende des Schachspiels + Schachspiele + Schachzug + Kleinanzeigen + Kommentare + Community-Definition + Community-Liste + Community-Beitrag + Kontaktkarte + Tagestermin + Löschungen + DM-Datei + DM-Nachricht + DM-Relays + Entwürfe + DVM-Inhaltsanfrage + DVM-Inhaltsantwort + DVM-Status + DVM-Benutzeranfrage + DVM-Benutzerantwort + Bearbeitungen + Emoji-Paketliste + Emoji-Pakete + Ephemerer Chat + Ephemere Chaträume + Lieblings-Podcasts + Bevorzugte Relays + Datei-Header + Dateiserver + Folgeliste + Follow-Pakete + Geohash-Follows + Geschenkverpackungen + Git-Issue + Git-Patch + Git-Antwort + Git-Repository + Gefolgte Hashtags + Highlights + HTTP-Authentifizierung + Index-Relay-Liste + Live-Chats + Live-Streams + Medizinische Daten + Besprechungsraum + Besprechungsbereich + Musik-Playlist + Musiktitel + Stummschaltliste + Benannte Lesezeichen + Nests-Server + NIP + NIP-04-DMs + NNS + Nostr Connect + Notizen + NWC-Anfrage + NWC-Antwort + Alte Lesezeichenliste + OTS + Outbox-Relays + Zahlen an + Personenlisten + Bilder + Angepinnt + Podcast-Folge + Podcast-Sendung + Umfrage + Umfrageantwort + Private Relais + Privaten Zaps + Profil + Profil-Abzeichen + Profilgalerie + Proxy-Relays + Öffentliche Nachricht + Reaktionen + Relay-Authentifizierung + Relay-Entdeckung + Relay-Monitor-Ankündigung + Relay-Set + Meldungen + Reposts + Reposts (16) + Raumpräsenz + Siegel + Such-Relays + Shorts + Shorts (Antwort) + Torrent-Kommentare + Torrents + Vertrauenswürdige Anbieter + Vertrauenswürdige Relays + Benutzer löschen + Benutzereinstellungen + Benutzerstatus + Video + Video (Antwort) + Sprachnachricht + Sprachantwort + Aufwachen + Web-Lesezeichen + Wiki + Workouts + Zap-Ziele + Zap-Umfrage + Zap-Anfrage + Zap + Bekannt + Sprachanzeigeeinstellungen + Wähle für jedes übersetzte Sprachpaar, welche Sprache zuerst angezeigt werden soll. + Zuletzt gesehen vor %1$s + Gerade eben gesehen + Nie gesehen + Zuletzt gesehen am %1$s (vor %2$s) + Verlassen + Hell + Live-Streams + Lokale Relais + Liste der Relays, die auf diesem Gerät laufen. + Sie verwenden einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um Beiträge boosten zu können + Sie verwenden einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um folgen zu können + Sie verwenden einen öffentlichen Schlüssel, und öffentliche Schlüssel sind nur lesbar. Melden Sie sich mit einem privaten Schlüssel an, um ein Wort oder einen Satz auszublenden + Sie verwenden einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um antworten zu können + Sie verwenden einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um Zaps senden zu können + Sie verwenden einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um ein Wort oder einen Satz anzeigen zu können + Du verwendest einen öffentlichen Schlüssel, der nur lesbar ist. Melde dich mit einem privaten Schlüssel an, um Ereignisse zu signieren + Sie verwenden einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um nicht mehr zu folgen + Du verwendest einen öffentlichen Schlüssel, der nur lesbar ist. Melde dich mit einem privaten Schlüssel an, um hochladen zu können + Sie verwenden einen öffentlichen Schlüssel und öffentliche Schlüssel sind schreibgeschützt. Mit einem privaten Schlüssel anmelden, um Beiträge zu liken + Videos + m + Meine Emoji-Pakete + %1$s wird hinzugefügt… + Administratorrechte erteilt + Administratorrechte widerrufen + %1$s konnte nicht hinzugefügt werden: %2$s + Gruppe konnte nicht erstellt werden: %1$s + Administratorrechte konnten nicht erteilt werden: %1$s + Gruppe konnte nicht verlassen werden: %1$s + Mitglied konnte nicht entfernt werden: %1$s + Administratorrechte konnten nicht widerrufen werden: %1$s + Aktualisierung fehlgeschlagen: %1$s + MLS-Gruppe + Gruppeninfo aktualisiert + + %1$d Mitglied + %1$d Mitglieder + + Mitglied entfernt + + %1$d Nachricht + %1$d Nachrichten + + Kein Mitglied dieser Gruppe + unbekannter Fehler + Mastodon-Beitrags-ID mit Nachweis + Medien hinzugefügt + Medien wurden zu Ihrer Profilgalerie hinzugefügt + Der Mediendownload wurde gestartet… + Medienserver + Blossom, Uploads, Bilder, Fotos, Dateien, CDN, Speicher + Medien sind zu groß für NIP-95 + Füge das Ziel der Nachricht zuerst ein + Kann nicht hochladen + Betreff + Metadaten konnten nicht entfernt werden + Private Metadaten konnten nicht aus der Mediendatei entfernt werden. Hochladen abgebrochen. + Lesezeichen erfolgreich migriert + Fehlende Lightning-Konfiguration + Weitere Optionen + In privat verschieben + In öffentlich verschieben + Coverbild hochladen + Wählen Sie ein quadratisches Bild als Artwork für diese Playlist. + + +%1$d weiterer Titel + +%1$d weitere Titel + + + %1$d Titel + %1$d Titel + + + %1$d Titel + %1$d Titel + + Cover wird hochgeladen und veröffentlicht. Dies läuft weiter, auch wenn Sie den Bildschirm verlassen. + Audiodatei hochladen + Wähle eine MP3, WAV oder FLAC. Sie wird beim Speichern auf deinen Medienserver hochgeladen. + Coverbild hochladen + Wähle ein quadratisches Bild als Artwork für diesen Titel. + Cover und Audio werden hochgeladen und veröffentlicht. Der Vorgang läuft weiter, auch wenn du den Bildschirm verlässt. + Ton ein. Zur Stummschaltung drücken + Stummgeschaltet. Drücken, um Ton einzuschalten + Meine Listen + Ein Name wird benötigt + %1$dms + Namecoin, DNS, Identität, Name + Namecoin-Einstellungen + Identität + Ihren öffentlichen Schlüssel lesen + Nachrichten + Nachrichten mit anderen nApplets austauschen + Tastaturaktionen + Tastenkürzel belegen + Benachrichtigungen + Ihnen Benachrichtigungen anzeigen + Relays + Ihre Ereignisse lesen, signieren & veröffentlichen + Netzwerk + Web- und Blossom-Ressourcen abrufen + Speicher + Eigener privater Speicher + Design + Farben Ihrer App übernehmen + Uploads + Dateien auf Ihren Medienserver hochladen + Zahlungen + Lightning-Rechnungen bezahlen + Dieses nApplet möchte Ihren öffentlichen Schlüssel lesen. + Dieses nApplet möchte Ihr Profil und Ihre Kontodaten lesen. + Dieses nApplet möchte Ihnen Benachrichtigungen anzeigen. + + Dieses nApplet möchte eine Lightning-Rechnung über %1$d sat bezahlen. + Dieses nApplet möchte eine Lightning-Rechnung über %1$d sats bezahlen. + + Dieses nApplet möchte ein kind-%1$d-Ereignis in Ihrem Namen signieren und veröffentlichen. + Dieses nApplet möchte ein verschlüsseltes Ereignis in Ihrem Namen senden. + Dieses nApplet möchte ein kind-%1$d-Ereignis in Ihrem Namen signieren und veröffentlichen: + Dieses nApplet möchte Ereignisse von Ihren Relays lesen. + Dieses nApplet möchte eine Web-Ressource abrufen. + Diese Website möchte ein kind-%1$d-Ereignis mit Ihrem Nostr-Schlüssel signieren. + Dieses nApplet möchte seinen privaten Speicher verwenden. + Dieses nApplet möchte eine Datei auf Ihren Medienserver hochladen. + nApplet %1$s… + nApplets + Nachricht konnte nicht gesendet werden + Diesen Sprecher still stellen + Diesen Sprecher wiederherstellen + Verlassen + Raum konnte nicht als geschlossen markiert werden. Verlasse trotzdem — Raum wird automatisch geschlossen. + + %1$d Zuhörer + %1$d Zuhörer + + Hand senken + Mikrofon stumm + Mikrofon aktivieren + Stummschalten + Nest-Serverliste konnte nicht gespeichert werden. Versuche es erneut. + Nest — Live + Audioräume + Hält Audio aktiv, solange ein Raum geöffnet ist. + Nest verbunden + Stoppen + Tippen zum Zurückkehren. + Folgen + Stummschalten + Entfolgen + Stummschaltung aufheben + hat das Nest verlassen + ist als Publikum beigetreten + ist auf die Bühne gestiegen + hat die Hand gehoben + spricht + Hand heben + Stummschaltung aufheben + Audioräume + Wird als ersetzbares kind-10112-Ereignis gespeichert, damit andere Clients deine Einstellung lesen können. + Deine Server + Eingebaute Vorschläge, die du mit einem Tippen zu deiner Liste hinzufügen kannst. + Empfohlene Server + Audioräume, live, Spaces, Räume + Nest-Server + nie + Neues Abzeichen + Neuer Kalender + Neuer Kalendertermin + Neue Community + Moderatoren + Relais + Gesperrte Benutzer + Community-Kommentar (1111) + Langform-Artikel (30023) + Bildbeitrag (20) + Kurzer Text (1) + Kurzvideo (22) + Videobeitrag (21) + Zugelassene Ereignistypen + Globale maximale Ereignisgröße (optional) + Überprüfbare Regeln (optional) + Web-of-Trust-Schranke (optional) + Neues Emoji-Paket + Neues Ziel + Neuer Artikel + Neue Playlist + Neuer Musiktitel + Neues Produkt + Neue Anfragen + Neue Threads + Neues Workout + + %1$d Asset gebündelt + %1$d Assets bündelt + + Keine Blossom-Apps gefunden. Bitte installiere eine lokale Blossom-App, um diese Datei anzuzeigen + Blossom-Links können nicht geöffnet werden + Keine Kamera-App auf diesem Gerät gefunden + Keine Lightning-Adresse festgelegt + Keine App gefunden, die diese Zahlung verarbeiten kann. Bitte installieren Sie eine kompatible Wallet. + Es ist keine App installiert, die Zahlungen vom Typ %1$s verarbeiten kann. Bitte installiere eine kompatible Wallet. + Keine Reaktionstypen ausgewählt. Lange drücken, um zu ändern + Keine Reaktionen eingerichtet + Keine Wallets gefunden, um eine Lightning-Rechnung zu bezahlen. Installieren Sie eine Lightning-Wallet, um Zaps zu verwenden + Keine Wallets gefunden, um eine Lightning-Rechnung zu bezahlen (Fehler: %1$s). Installieren Sie eine Lightning-Wallet, um Zaps zu verwenden + Keinen Zap-Betrag festgelegt. Drücken Sie lange, um dies anzupassen + Benachrichtigungen + Push, Benachrichtigungen, Töne, Vibration + Kategorien + Zustellung + Anzeige in der App + jetzt + Nowhere Kunst + Nowhere Drop + Nowhere Ereignis + Nowhere Forum + Nowhere Spendenaktion + Nowhere-Seite + Nowhere Nachricht + Nowhere Petition + Nowhere Shop + nSites + Nacktheit + Ereignisreferenz kann nicht erstellt werden + Kein Empfänger-Pubkey in der Notiz + Nutzaps sind öffentlich und würden diese private Notiz preisgeben. Nutze stattdessen einen Lightning-Zap. + Nutzap fehlgeschlagen + + %1$s sats senden, auf %2$d Empfänger aufgeteilt + %1$s sats senden, auf %2$d Empfänger aufgeteilt + + Bitcoin-Chain-Backend ist nicht konfiguriert + Transaktion konnte nicht gesendet werden + Transaktion konnte nicht erstellt werden + Dein Bitcoin-Guthaben konnte nicht geladen werden + Zahlung gesendet, aber die Zap-Quittung konnte nicht veröffentlicht werden + + Zahlung gesendet (%1$d von %2$d Quittung veröffentlicht), aber die nächste Quittung konnte nicht veröffentlicht werden + Zahlung gesendet (%1$d von %2$d Quittungen veröffentlicht), aber die nächste Quittung konnte nicht veröffentlicht werden + + Ein Empfängeranteil liegt unter dem Dust-Limit + Transaktion konnte nicht signiert werden + ~10 Min. + ~30 Min. + ~1 Std. + Schnell + Normal + Langsam + %1$s · %2$s sat/vB · %3$s + + Aufgeteilt auf %1$d Empfänger + Aufgeteilt auf %1$d Empfänger + + + %1$d Empfänger mit reiner Lightning-Adresse wird übersprungen — On-Chain benötigt einen Nostr-Pubkey, um die Adresse abzuleiten. + %1$d Empfänger mit reiner Lightning-Adresse werden übersprungen — On-Chain benötigt einen Nostr-Pubkey, um die Adresse abzuleiten. + + + Die %1$d-fache Zap-Aufteilung dieser Notiz verwenden + Die %1$d-fache Zap-Aufteilung dieser Notiz verwenden + + wird gesendet + Transaktion wird erstellt + Guthaben wird geladen + Quittung wird veröffentlicht + wird signiert + Es ist nur eine Stimme pro Benutzer für diesen Umfragetyp erlaubt + Alle Reaktionen auf diesen Beitrag öffnen + Offen + Orbot Socks-Port + OpenTimestamps, Zeitstempel, OTS, Nachweis + Bitcoin Explorer (OTS) + Es gibt einen Beweis, dass dieser Beitrag irgendwann vor %1$s signiert wurde. Der Beweis wurde zu diesem Datum und Uhrzeit in der Bitcoin-Blockchain gestempelt. + Zeitstempel Beweis + Ausgehende Relays + Passwort ist erforderlich + Pausen + Bezahlen + Nachricht von %1$s + Zahlungsziele + Zap-Aufteilung, Aufteilung, Empfänger, Zaps weiterleiten + Fügen Sie Zahlungsadressen für verschiedene Netzwerke hinzu (z.B. Bitcoin, Lightning, Ethereum). + PDF in Downloads/Amethyst gespeichert + Metadaten von Follow-Listen können von allen auf Nostr gesehen werden. Nur deine privaten Mitglieder sind verschlüsselt. + Metadaten der Follow-Liste + Bilder + Oben anheften + An Profil anheften + Abspielen + + %1$d Folge + %1$d Folgen + + Umfragenautoren können nicht in ihren eigenen Umfragen abstimmen. + (0–100)% + Die Umfrage ist für neue Stimmen geschlossen + Mehrfachauswahl + Wahl %1$s + Einzelauswahl + Konnte nicht abstimmen + Umfragen + Beitrag + + Dieser Beitrag hat mehr als %1$d Hashtag + Dieser Beitrag hat mehr als %1$d Hashtags + + Vorschaukartenbild für %1$s + Privatsphäre-Optionen + Tor, Orbot, Proxy, Datenschutz, anonym + Datenschutzerklärung + rechtlich, Bedingungen, Nutzungsbedingungen, Richtlinie, GDPR + <Private Nachricht kann nicht entschlüsselt werden>\n\nSie wurden in einer privaten/verschlüsselten Unterhaltung zwischen %1$s und %2$s erwähnt. + DM-Posteingangsrelais + Fügen Sie 1–3 Relais ein, die als Ihr privater Posteingang dienen sollen. Andere werden diese Relais verwenden, um Ihnen DMs zu senden. DM-Posteingangsrelais sollten Nachrichten von jedem akzeptieren, aber nur Ihnen erlauben, sie herunterzuladen. Gute Optionen sind:\n - inbox.nostr.wine (bezahlt)\n - you.nostr1.com (persönliche Relais - bezahlt) + Der Benutzer empfängt Direktnachrichten auf diesen Relays + Private Nachricht + Privat machen: Die Notiz nur für die benachrichtigten Nutzer als Gift-Wrap verpacken + Antworten auf eine private Notiz bleiben immer privat + Sichtbar für + Private Relais + Fügen Sie zwischen 1–3 Relais ein, um Ereignisse zu speichern, die niemand anders sehen kann, wie Ihre Entwürfe und/oder App-Einstellungen. Idealerweise sind diese Relais entweder lokal oder erfordern eine Authentifizierung, bevor Sie die Inhalte eines jeden Benutzers herunterladen. + Beleidigungen / Hassrede + Profil + Abzeichen, Auszeichnungen + Profilabzeichen + Profil, Layout + App-Empfehlungen + Profilabzeichen + Follower-Feed + Erhaltene-Zaps-Feed + Profil-Oberfläche + profile + Eine Bearbeitung vorschlagen + Proxy-Relays + Aggregator-Relays wie filter.nostr.wine, von denen die App deine Feeds herunterlädt + Öffentlicher Chat + Öffentliche Chats sind für jeden auf Nostr sichtbar und jeder + kann daran teilnehmen. Sie eignen sich hervorragend für offene Gemeinschaften rund um bestimmte Themen. + Moderation kann durch Löschen von Beiträgen auf den Relais gesteuert werden + Fügen Sie zwischen 1–3 Relais ein, die diese Gruppe beherbergen. + Nostr Clients verwenden diese Einstellung, um zu wissen, woher sie Nachrichten herunterladen und an welche gesendet werden sollen. + Relais + Öffentliche Chat Metadaten + Öffentliche Chats + Öffentliche Heimrelais + Dieser Relais-Typ speichert alle Ihre Inhalte. Amethyst sendet Ihre Beiträge hierher und andere werden diese Relais verwenden, um Ihre Inhalte zu finden. Fügen Sie 1–3 Relais ein. Sie können persönliche Relais, bezahlte Relais oder öffentliche Relais sein. + Der Benutzer veröffentlicht seine Inhalte auf diesen Relays + Öffentliche Nachricht + Öffentliche Posteingangsrelais + Dieser Relais-Typ empfängt alle Antworten, Kommentare, Likes und Zaps auf Ihre Beiträge. Fügen Sie 1–3 Relais ein und stellen Sie sicher, dass sie Beiträge von jedem akzeptieren. + Der Benutzer erhält Benachrichtigungen auf diesen Relays + Notiz-ID kopieren + Löschen + Thread stummschalten + Teilen + Browserlink teilen + Thread entdämpfen + Reaktion + Reaktionen + Emoji, gefällt mir, Reaktion + Reaktions-Einstellungen + Emoji, Reaktionen, gefällt mir + Von Relay lesen + Die Menge in Bytes, die von diesem Relais empfangen wurde, einschließlich Filter und Ereignisse + Nur-Lese-Benutzer + Zum Aufnehmen einer Nachricht gedrückt halten + Relay-Chat + Relaischats sind Chatgruppen, die von ihrem Home-Relais gesteuert werden. + Sie sind für jeden auf Nostr sichtbar und jeder kann an ihnen teilnehmen. + Sie eignen sich hervorragend für offene Communities rund um bestimmte Themen. Einige dieser Gruppen sind kurzsichtig + und daher verschwinden Chat-Nachrichten im Laufe der Zeit + Relay-Chats + Ereignisse + IPs + Arten + Benutzer + Einstellungen + Relaiseinstellungen + Ausgangs-Listen + Relais + Relays, Posteingang, Postausgang, Verbindungen, Server + Aufladen & Zap senden + Zap senden + Lade %1$s Sats zu %2$s auf und zappe %3$s %4$s Sats · Gebühr ≈ %5$s Sats + Entfernen + Aus den öffentlichen Lesezeichen entfernen + Hier antworten… + Benachrichtigen: + + Löschung beantragen + Löschanfrage + Konto löschen, verschwinden, GDPR + Marmot-Status konnte nicht zurückgesetzt werden: %1$s + MLS, Gruppenchat, Nachrichten, zurücksetzen + Marmot-Status zurücksetzen + Marmot-Status zurückgesetzt. + Erneut versuchen + Kalenderlisten + Kalender + Schach + Entdecken + Startseite + Folgeliste importieren + Nachrichten + Wiedergabelisten + Musik + Benachrichtigungen + Folgen + Podcasts + Beitrag planen + Planung abbrechen + Geplante Beiträge werden möglicherweise erst veröffentlicht, wenn du die App wieder öffnest. Geplante Beiträge anderer Konten werden nicht ausgelöst, solange dieses Konto aktiv ist. Aktiviere Dauerbenachrichtigungen in Einstellungen → UI-Einstellungen für zuverlässige Hintergrundplanung. + Geplante Beiträge werden möglicherweise erst veröffentlicht, wenn du die App das nächste Mal öffnest. Aktiviere Dauerbenachrichtigungen in Einstellungen → UI-Einstellungen für zuverlässige Hintergrundplanung. + Geplante Beiträge + Jetzt senden + %1$s · in %2$s + %1$s · vor %2$s + Morgen + Fehler: %1$s + Beitrags-ID kopiert + + Abgemeldet · %1$d geplanter Beitrag gelöscht + Abgemeldet · %1$d geplante Beiträge gelöscht + + Abgemeldet + + Du hast %1$d geplanten Beitrag, der noch nicht veröffentlicht wurde. Beim Abmelden wird er dauerhaft gelöscht. + Du hast %1$d geplante Beiträge, die noch nicht veröffentlicht wurden. Beim Abmelden werden sie dauerhaft gelöscht. + + Geplanter Beitrag fehlgeschlagen + Geplanter Beitrag veröffentlicht + + an %1$d Relay + an %1$d Relays + + Abgebrochen + Fehlgeschlagen + Geplant + Wird gesendet… + Gesendet + + · %1$d fällig in 1 Std. + · %1$d fällig in 1 Std. + + + %1$d in Warteschlange + %1$d in Warteschlange + + Gute Optionen sind:\n%1$s + Suchrelais + Suchrelais + Liste der Relais, die für die Suche und das Taggen von Benutzern verwendet werden. Das Taggen und die Suche funktionieren nicht, wenn keine Optionen verfügbar sind. + durchsuchbare Ereignisse + Geheimer Schlüssel (nsec) in die Zwischenablage kopiert + Du hast noch keine Benutzer blockiert. + Sicherheitsfilter + Spam, blockieren, stummschalten, Filter, Warnungen + Keine versteckten Wörter. Füge unten ein Wort hinzu, um Beiträge auszublenden, die es enthalten. + Blockierte Inhalte + Filtereinstellungen + In dieser Sitzung wurden keine Konten als Spam markiert. + Senden + Alle empfangenen Profilereignisse (kind 0) an Ihren lokalen Relay senden + Profile an lokalen Relay weiterleiten + Verfügbar für diesen Empfänger: %1$s Sats + Zahlung fehlgeschlagen + Transaktion: %1$s + Zahlung über %1$s… + Der Server hat nach dem Hochladen keine URL angegeben + Einstellungen + Keine stummgeschalteten Threads + Stummgeschaltete Threads + Als Bild teilen + Als Bild-URL teilen + HLS-Upload + Teilen oder Speichern + Kurzvideos + QR-Code für verschlüsselten privaten Schlüssel anzeigen + Direkt- und Gruppennachrichten im Benachrichtigungs-Tab anzeigen. Deaktivieren, um Nachrichten nur im Nachrichten-Tab zu behalten. + Nachrichten anzeigen + Privaten QR-Code anzeigen + Signaturanfrage abgelehnt + Stellen Sie sicher, dass die Unterzeichner-Anwendung diese Transaktion autorisiert hat + Externer Signierer hat Daten zurückgegeben, die für die Anfrage ungewöhnlich sind. Es könnte ein Fehler in Amethyst oder im Signierer vorliegen. + Signierer nicht gefunden + Wurde die Signierer-App deinstalliert? Überprüfe, ob sie installiert ist und dieses Konto enthält. Melde dich ab und wieder an, falls sich die App geändert hat. + Springe %1$d Sekunden zurück + Springe %1$d Sekunden vor + Apps + Spam + Anzahl der Spam-Ereignisse von diesem Relais + Spammer + Zwei Benachrichtigungs-Tabs anzeigen — Gefolgt (Personen, denen du folgst) und Alle. Der Indikator für ungelesene Nachrichten leuchtet nur bei Aktivität von Personen, denen du folgst. + Benachrichtigungen nach Gefolgt aufteilen + Versucht, private Metadaten aus unterstützten Mediendateien vor dem Hochladen zu entfernen + Private Metadaten entfernen + Liest abgeschlossene Workouts aus Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) und schlägt vor, sie als Beitrag zu teilen. Die Berechtigung wird nur beim Verbinden angefragt. + Workouts zum Teilen vorschlagen + System + Design + Dunkles, helles oder Systemdesign + Diese Nachricht verschwindet in %1$s + + +%1$d\nAntwort + +%1$d\nAntworten + + Heute + Benutzerdefiniert + Erstellen Sie Ihre eigenen + Standard + Verbergen Sie Ihre IP vor zufälligen Relays + Orbot + Volle Privatsphäre + Verbergen Sie Ihre IP bei allen Verbindungen + Intern + Aus + Tor/Datenschutz-Presets + Ändern Sie schnell alle untenstehenden Einstellungen + Alles außer Medien + Verbergen Sie Ihre IP vor allem außer Bildern und Videos + DM-Relays + Tor erzwingen, um DMs zu senden und empfangen + Bilder + Erzwingen Sie Tor beim Laden von Bildern + Medien-Uploads + Erzwingen Sie Tor beim Hochladen von Inhalten + Geldtransaktionen + Erzwingen Sie Tor bei Zaps, Lightning und Cashu-Transfers + Nicht vertrauenswürdige Relays + Erzwingen Sie Tor für ausgehende/eingehende Relays + Nostr Adressverifizierung + Erzwingen Sie Tor bei der Überprüfung von NIP-05-Adressen + Onion URL/Relays + Verwenden Sie Tor für jede .onion URL + Profilbilder + Erzwingen Sie Tor beim Laden von Profilbildern + Vertrauenswürdige Relays + Erzwingen Sie Tor für alle Relays in Ihren Listen + URL-Vorschauen + Erzwingen Sie Tor beim Laden von URL-Vorschauen + Video + Erzwingen Sie Tor beim Laden von Videos + Grundlegend + Verwenden Sie Tor, wenn es vom Server benötigt wird + Fehler beim Öffnen der Datei + Keine Torrent-Apps installiert, um die Datei zu öffnen und herunterzuladen. + Das Ereignis enthält nicht genügend Informationen, um einen Magnetlink zu erstellen + Verwende den verfolgten Broadcaster beim Senden von Ereignissen. Zeigt Live-Fortschritt und Status pro Relay während der Übertragung. + Verfolgte Übertragungen + Übersetzen in + Wähle die Sprache, in die der Inhalt übersetzt werden soll. + Übersetzungen + Sprache, übersetzen, Gebietsschema + Vertrauenswürdige Relays + Relays, denen du vertraust und für die keine Tor-Verbindung erforderlich ist + X-Status mit Nachweis + Fertig + Leistung + Vereinfacht + UI-Einstellungen + Dunkelmodus, Hellmodus, Design, Schriftgröße, Sprache, Erscheinungsbild + UI-Modus + Wählen Sie den Beitragsstil + Konnte keine Lightning-Rechnung erstellen, bevor der Zap gesendet wurde. Die Lightning-Wallet des Empfängers hat folgenden Fehler gesendet: %1$s + Bild kann nicht geteilt werden, bitte versuchen Sie es später erneut… + Video kann nicht geteilt werden, bitte versuchen Sie es später erneut… + Unbefugte Entschlüsselung + Der Signierer hat die erforderliche Entschlüsselung nicht autorisiert. Aktiviere NIP-44-Entschlüsselung in deiner Signierer-App und versuche es erneut + Entfolgen + Nicht mehr anheften + Von Profil lösen + Hochladen abgebrochen + Upload-Fehler + Sprach-Upload fehlgeschlagen: %1$s + Sprachnachricht konnte nicht hochgeladen werden + NIP-95 wird für Sprachnachrichten noch nicht unterstützt + %1$d%% Verfügbarkeit + Aktiver Tor-Engine + Verwenden Sie die interne Version oder Orbot + Der Benutzer hat keine Lightning-Adresse eingerichtet, um Sats zu empfangen + Benutzer %1$s hat keine Lightning-Adresse eingerichtet, um Sats zu empfangen + Löschverlauf + Löschung, Ereignisse löschen + Löschanfrage gesendet + Bessere Qualität bei kleinerer Dateigröße, aber nicht alle Geräte unterstützen die H.265-Wiedergabe. + H.265/HEVC-Codec verwenden + Der Videodownload wurde gestartet… + Video, Player, Wiedergabe, automatische Wiedergabe, stummschalten + Videoplayer-Schaltflächen + Video in der Videogalerie des Telefons gespeichert + Sprachbeitrag + Tief + Hoch + Neutral + Keine + Sprachantwort + Wallet + Cashu-Wallet (NIP-60) + Wallet Verbindung + Ihr Wallet-Connect-Anbieter hat folgenden Fehler zurückgegeben: %1$s + Cashu-Wallet bearbeiten + Zeigt eine Warnmeldung an, wenn die Beiträge 5 oder mehr Berichte von den folgenden Beiträgen enthalten + Bei Berichten warnen + Web-Lesezeichen hinzufügen + Web-Lesezeichen bearbeiten + Web-Lesezeichen + Was beschäftigt dich? + Workouts + Eine Nachricht schreiben… + In Relay schreiben + Die Menge in Bytes, die an dieses Relais gesendet wurde, einschließlich Filter und Ereignisse + Zap + Zaps + Lightning, Sats, Trinkgeld, Wallet, Betrag + + Umbenennen + Speichern diff --git a/commonsUI/src/commonMain/composeResources/values-el-rGR/strings.xml b/commonsUI/src/commonMain/composeResources/values-el-rGR/strings.xml index 0bbd04a76a..f81d2971de 100644 --- a/commonsUI/src/commonMain/composeResources/values-el-rGR/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-el-rGR/strings.xml @@ -1780,4 +1780,1150 @@ Βασική διεύθυνση URL Explorer API Πληρωμή Τιμολογίου από το DVM Πληρωμή %1$s sats στο DVM + Σχετικά & Νομικά + Ρυθμίσεις λογαριασμού + Προσθήκη + Προσθήκη Διακομιστή Blossom + Προσθήκη Διακομιστή NIP-96 + Όταν είναι ενεργοποιημένο, το Amethyst προσαρτά μια ετικέτα πελάτη NIP-89 στα γεγονότα που δημοσιεύετε. + Προσθήκη ετικέτας πελάτη στα γεγονότά μου + Προσθέτει προειδοποίηση ευαίσθητου περιεχομένου πριν εμφανιστεί αυτό το περιεχόμενο + Ευαίσθητο Περιεχόμενο + Προσθήκη στους Δημόσιους Σελιδοδείκτες + Χρησιμοποιεί ένα τοπικό μοντέλο AI για να προτείνει διορθώσεις κειμένου και αλλαγές τόνου. + Πρόταση βελτιώσεων κειμένου + Διατηρεί ενεργές τις συνδέσεις στα relays εισερχομένων για πραγματικού χρόνου ειδοποιήσεις + + Συνδέθηκε σε %1$d relay εισερχομένων + Συνδέθηκε σε %1$d relays εισερχομένων + + + Συνδέθηκε σε %1$d relay + Συνδέθηκε σε %1$d relays + + Σύνδεση στα relays εισερχομένων… + Ειδοποιήσεις Amethyst ενεργές + Ειδοποιήσεις για εισερχόμενες φωνητικές και βιντεοκλήσεις + Εισερχόμενες κλήσεις + Ο %1$s αποδέχθηκε την πρόκλησή σας στο σκάκι + Σας ειδοποιεί για γεγονότα παιχνιδιού σκακιού + Σκάκι + Ενημερώσεις σκακιού + Ο %1$s κινήθηκε — σειρά σας + Σας ειδοποιεί όταν φτάνει ένα ιδιωτικό μήνυμα + Προσωπικά Μηνύματα + Νέα μηνύματα + Σήμανση ως αναγνωσμένο + Σας ειδοποιεί όταν κάποιος σας αναφέρει ή σας παραθέτει σε ανάρτηση + Ο %1$s σας ανέφερε + Αναφορές + Νέες αναφορές + Σας ειδοποιεί όταν κάποιος αντιδρά στην ανάρτησή σας + Ο %1$s αντέδρασε στην ανάρτησή σας + για %1$s + Αντιδράσεις + Νέες αντιδράσεις + Σας ειδοποιεί όταν κάποιος απαντά στην ανάρτησή σας + Απαντήσεις + Νέες απαντήσεις + Απάντηση + Ειδοποιήσεις όταν μια προγραμματισμένη ανάρτηση δημοσιευτεί ή αποτύχει να δημοσιευτεί. + Προγραμματισμένες αναρτήσεις + Σας ειδοποιεί όταν κάποιος σας zapάρει + για %1$s + Από %1$s + Ληφθέντα Zaps + Νέα zaps + Ρυθμίσεις εφαρμογής + Πιστοποίηση + Αίτηση Πιστοποίησης + Επάρκεια Πιστοποιητή + Σύσταση Πιστοποιητή + Οπτικοποίηση Ήχου + Αποθηκεύει αυτόματα ένα προχείρο συμβάν όταν πληκτρολογείτε ή εγκαταλείπετε ένα παράθυρο σύνταξης με μη αποσταλμένο κείμενο και το αποστέλλει στα ιδιωτικά outbox relay σας. + Αυτόματη δημιουργία προχείρων + Κύλιση σε Πλήρη Οθόνη + Απόκρυψη μενού κατά την κύλιση + Προεπισκόπηση Εικόνας + Αυτόματη φόρτωση εικόνων και GIFs + Αναπαραγωγή Βίντεο + Αυτόματη αναπαραγωγή βίντεο και GIFs + Εικόνα Προφίλ + Εμφάνιση εικόνων Προφίλ + Προεπισκόπηση URL + Εμφάνιση προεπισκόπησης συνδέσμων + Αυτόματη αναπαραγωγή βίντεο + Αυτόματη αναπαραγωγή βίντεο όταν εμφανίζονται στην οθόνη + Αδυναμία αφαίρεσης μεταδεδομένων από AVIF: %1$s + Απονομή Σήματος + Επιστροφή + Εφεδρικά κλειδιά + Σήματα + Αποτυχία ταυτοποίησης + Η βιομετρική ταυτοποίηση του ιδιοκτήτη αυτού του τηλεφώνου απέτυχε + Η βιομετρική ταυτοποίηση του ιδιοκτήτη αυτού του τηλεφώνου απέτυχε. Σφάλμα: %1$s + Αποκλεισμός + Αποκλεισμένα Relay + Το Amethyst δεν θα συνδέεται ποτέ σε αυτά τα relay + Αποκλεισμένοι Χρήστες + Νέα λίστα σελιδοδεικτών + Μεταδεδομένα λίστας σελιδοδεικτών + Τα μεταδεδομένα των λιστών σελιδοδεικτών μπορούν να τα δουν όλοι στο Nostr. Μόνο τα ιδιωτικά μέλη σας είναι κρυπτογραφημένα. + Σελιδοδείκτες + Προώθηση + Κάτω Μπάρα Πλοήγησης + Relay Μετάδοσης + Relay που ειδικεύονται στην προώθηση των σημειώσεών σας σε όλα τα άλλα relay, όπως sendit.nosflare.com. Το Amethyst θα προσθέτει αυτό το relay σε όλα τα νέα συμβάντα που δημιουργείτε + Περιηγητής + Αγαπημένα + Φόρτωση μέσω ανοιχτού ιστού. Πατήστε για χρήση Tor. + Φόρτωση μέσω Tor. Πατήστε για χρήση ανοιχτού ιστού. + + %1$s, %2$d συμβάν + %1$s, %2$d συμβάντα + + Η μεταφόρτωση εικόνας απέτυχε + Η επιλεγμένη εικόνα δεν μπόρεσε να μεταφορτωθεί. Δοκιμάστε ξανά ή επικολλήστε ένα URL. + Κοινοποίηση συμβάντος ημερολογίου + Άνοιγμα σε χάρτες + Άνοιγμα συνδέσμου + Γίνεται τώρα + %1$s · λήγει %2$s + + Ξεκινά σε %1$d λεπτό + Ξεκινά σε %1$d λεπτά + + Ειδοποίηση όταν ένα συμβάν στο οποίο συμμετέχετε πρόκειται να ξεκινήσει. + Υπενθυμίσεις ημερολογίου + Συμβάν ημερολογίου + Μια ειδοποίηση ενεργοποιείται όταν ένα συμβάν στο οποίο συμμετέχετε πρόκειται να ξεκινήσει. + Αποστολή υπενθυμίσεων + + %1$d λεπτό + %1$d λεπτά + + Υπενθυμίσεις ημερολογίου + Ημέρα + Ροή + Μήνας + Εβδομάδα + Αποδοχή + Κάμερα ανενεργή + Κάμερα ενεργή + Ακουστικό + Κλείσιμο + Εισερχόμενη κλήση + Εισερχόμενη βιντεοκλήση… + Εισερχόμενη φωνητική κλήση… + Σίγαση + Κλήσεις + Ειδοποίηση ενεργής κλήσης + Το Amethyst χρειάζεται πρόσβαση στην κάμερα και στο μικρόφωνο για να ξεκινήσει βιντεοκλήση. Ενεργοποιήστε τα στις ρυθμίσεις της εφαρμογής. + Το Amethyst χρειάζεται πρόσβαση στο μικρόφωνο για να ξεκινήσει φωνητική κλήση. Ενεργοποιήστε το στις ρυθμίσεις της εφαρμογής. + Απόρριψη + Ρυθμίσεις κλήσεων + Ηχείο + Άρση σίγασης + Κλήση με %1$s + Η διεύθυνση URL επανάκλησης δεν βρέθηκε στην απόκριση του %1$s + Ακύρωση + Έλεγχος του mint… + Αδυναμία εξαργύρωσης Cashu + Το Mint έδωσε το ακόλουθο μήνυμα σφάλματος: %1$s + Ληφθέν + Απεσταλμένο + Αντίστοιχα mint + + +%1$d ακόμα + +%1$d ακόμα + + Δημοφιλή mint + + Συνιστάται από %1$d άλλον + Συνιστάται από %1$d άλλους + + Μεταφέρθηκαν %1$s sat στο %2$s. + Δεν βρέθηκε συμβατό πορτοφόλι Cashu στο σύστημα + + %1$d εκκρεμής τιμολόγιο + %1$d εκκρεμή τιμολόγια + + Πληρωμή %1$s sat + έως %2$s sat σε χρεώσεις; + Δημοσίευση αιτήματος διαγραφής για τη σύστασή σας kind:38000 του %1$s. Τα relay που τιμούν το NIP-09 θα την αφαιρέσουν. + Ανακτήθηκαν %1$s sats σε %2$s αποδείξεις. + Ληφθέντα Cashu + %1$s sats στάλθηκαν στο πορτοφόλι σας. (Κρατήσεις: %2$s sats) + + Κεφάλαια σε %1$d mint που δεν χρησιμοποιείτε + Κεφάλαια σε %1$d mints που δεν χρησιμοποιείτε + + Αναμονή για πληρωμή του τιμολογίου… + Διακοπή μετάδοσης + Μετάδοση σε συσκευή + Πρότυπα ασφάλειας παιδιών + Αξεσουάρ + Τέχνη + Βιβλία + Ρούχα + Συλλεκτικά + Χειροτεχνίες + Ηλεκτρονικά + Γυμναστική + Τρόφιμα + Έπιπλα + Σπίτι + Διάφορα + Γραφείο + Άλλο + Κατοικίδια + Αθλητισμός + Ημερήσιος + Μηνιαίος + Εφάπαξ + Εβδομαδιαίος + Πληρωμή %1$s μέσω %2$s; + Πληρωμή αυτού του τιμολογίου μέσω %1$s; + Η υπηρεσία χρέωσης δεν ολοκλήρωσε την πληρωμή. + Εισάγετε έγκυρο ποσό για αυτήν την προσφορά. + Αίτηση τιμολογίου… + Κλείσιμο όλων των αντιδράσεων σε αυτή την ανάρτηση + Κλειστές + Κοινότητες + Το προχείρο είναι %1$d bytes· αυτή η κοινότητα περιορίζει αυτόν τον τύπο στα %2$d bytes. + Το προχείρο είναι %1$d bytes· αυτή η κοινότητα περιορίζει τα συμβάντα στα %2$d bytes. + Έχετε ήδη δημοσιεύσει %1$d συμβάντα αυτού του τύπου σήμερα (όριο %2$d). + Ρυθμίσεις Σύνταξης + Η προεπιλεγμένη θύρα είναι 9050 + Συνδεδεμένα Relay + Τρέχουσα λίστα relay που χρησιμοποιούνται + Ποσοστό επιτυχημένων συνδέσεων στο relay + Πάντα + Ποτέ + WiFi χωρίς μετρητή + Προσθήκη Εγγράφου + Προσθήκη Εικόνας + Προσθήκη μέσου + Προσθήκη Βίντεο + Απόκρυψη + Προειδοποίηση + Εμφάνιση + Συζητήσεις + Μετατρέπει κινούμενα GIF σε βίντεο MP4 για μικρότερο μέγεθος αρχείου και καλύτερη συμβατότητα αναπαραγωγής. + Μετατροπή GIF σε MP4 + Το ID της δημοσίευσης (@note1) αποθηκεύτηκε στο πρόχειρο + Το κείμενο της δημοσίευσης αποθηκεύτηκε στο πρόχειρο + Αντιγράφηκε στο πρόχειρο + Το "Δημόσιο Κλειδί" του συντάκτη της δημοσίευσης αποθηκεύτηκε στο πρόχειρο + Αντιγραφή του "Μυστικού Κλειδιού" μου + Αντιγραφή στο πρόχειρο + Δεν ήταν δυνατή η δημιουργία του LNUrl από τη διεύθυνση Lightning "%1$s". Ελέγξτε ρυθμίσεις χρήστη + Δεν ήταν δυνατός ο έλεγχος του ληφθέντος αρχείου μετά το ανέβασμα: %1$s + Δεν ήταν δυνατή η λήψη των ανεβασμένων πολυμέσων από τον διακομιστή + Δεν ήταν δυνατή η λήψη τιμολογίου από %1$s: %2$s + Δεν ήταν δυνατό το άνοιγμα του συμπιεσμένου αρχείου + Το πορτοφόλι δεν βρέθηκε + Το Amethyst δεν βρήκε εφαρμογές πορτοφολιού που υποστηρίζουν Nostr Wallet Connect (NWC). +\n\nΤι μπορείτε να κάνετε: +\n\t1. Επαλήθευση υποστήριξης NWC: Βεβαιωθείτε ότι η προτιμώμενη εφαρμογή πορτοφολιού σας είναι συμβατή με Nostr Wallet Connect. +\n\t2. Δημιουργία σύνδεσης: Μεταβείτε στην εφαρμογή πορτοφολιού σας και δημιουργήστε μια νέα σύνδεση NWC. +\n\t3. Σύνδεση με το Amethyst: Το πορτοφόλι σας συνήθως θα σας δώσει τρεις επιλογές: +\n\t\t3.1 Αυτόματη σύνδεση: Ένα κουμπί για αυτόματο άνοιγμα και σύνδεση με το Amethyst. Αν ναι, κάντε κλικ σε αυτό το κουμπί, ανοίξτε το Amethyst και πατήστε αποθήκευση στη νέα οθόνη. +\n\t\t3.2 Χειροκίνητη σύνδεση: Ένα URI σύνδεσης που μπορείτε να αντιγράψετε και να κάνετε κλικ στο εικονίδιο επικόλλησης σε αυτή την οθόνη για απευθείας εισαγωγή. +\n\t\t3.3 Κωδικός QR: Το πορτοφόλι δημιουργεί κωδικό QR τον οποίο μπορείτε να σαρώσετε από το κουμπί κωδικού QR σε αυτή την οθόνη. + + Δημιουργία + η + Επικίνδυνη ζώνη + Σκοτεινό + Περιγραφή + Να γίνει δημόσιο + Συνομιλίες + Κοινότητες + Αλγόριθμοι ροής + Πακέτα ακολούθων + Ζωντανές ροές + Αγορά + Αναγνώσεις + Relay Εισερχόμενων DM + Να μην μεταφραστεί από + Οι γλώσσες που εμφανίζονται εδώ δεν θα μεταφραστούν. Επιλέξτε μια γλώσσα για να την αφαιρέσετε και να μεταφραστεί ξανά. + Αποθήκευση στο τηλέφωνο + Λήψη βίντεο… + Πρόχειρη Σημείωση + Πρόχειρα + Λογαριασμοί + Δημιουργία + Ροές + Πλοήγηση + Σύστημα + Εσύ + + %1$d ημέρα + %1$d ημέρες + + + %1$d ώρα + %1$d ώρες + + + %1$d λεπτό + %1$d λεπτά + + + %1$d μήνας + %1$d μήνες + + + %1$d εβδομάδα + %1$d εβδομάδες + + + %1$d χρόνος + %1$d χρόνια + + Επεξεργασία Ημερολογίου + Επεξεργασία Συμβάντος Ημερολογίου + Επεξεργασία Κοινότητας + Επεξεργασία πακέτου emoji + Επεξεργασία λίστας αναπαραγωγής + Επεξεργασία Ανάρτησης + Τα ιδιωτικά emoji αποθηκεύονται κρυπτογραφημένα στα relay και είναι ορατά μόνο σε εσάς. Εμφανίζονται στο μενού αντιδράσεών σας και στην αυτόματη συμπλήρωση ":" όπως τα δημόσια. + Τα δημόσια emoji είναι ορατά σε όλους και εμφανίζονται στο μενού αντιδράσεών σας και στον επιλογέα αυτόματης συμπλήρωσης ":" όταν αυτό το πακέτο βρίσκεται στη λίστα emoji σας. + Emoji + Κρυπτογράφηση αρχείων πριν το ανέβασμα για απόρρητο. Ορισμένοι διακομιστές ενδέχεται να μην δέχονται κρυπτογραφημένα αρχεία σε δωρεάν λογαριασμούς. + Κρυπτογράφηση αρχείων + Συνομιλία που εξαφανίζεται + Σφάλμα + Αδυναμία πληρωμής τιμολογίου + Αδυναμία ανάληψης + Αδυναμία ανοίγματος πληρωμής + Αδυναμία αποστολής zap + Σφάλμα ανοίγματος εφαρμογής υπογραφής + Η εφαρμογή υπογραφής δεν βρέθηκε. Ελέγξτε αν δεν έχει απεγκατασταθεί + Σφάλμα ανάλυσης σφάλμα μηνύματος + Σφάλμα ανάλυσης JSON από %1$s. Ελέγξτε τις ρυθμίσεις Lightning του χρήστη + Αδυναμία ανάκτησης τιμολογίου από τους διακομιστές του παραλήπτη + Άνοιγμα στο πρόγραμμα περιήγησης + Δεν είναι δυνατή η αναπαραγωγή αυτού του βίντεο + Ο κωδικοποιητής ή η μορφή δεν υποστηρίζεται σε αυτή τη συσκευή (%1$s). Δοκιμάστε να το ανοίξετε στο πρόγραμμα περιήγησής σας. + Σφάλματα + Συγχρονισμός Relay + συμβάντα από εσάς + συμβάντα προς εσάς + Ποδηλασία + Δίαιτα + Νηστεία + Πεζοπορία + Διαλογισμός + Κωπηλασία + Τρέξιμο + Δύναμη + Κολύμβηση + Περπάτημα + Ανάπτυξη + Ημερομηνία Λήξης + Εξαγωγή ρυθμίσεων relay + Αποτυχία διαγραφής: %1$s + Αποτυχία κρυπτογράφησης του ιδιωτικού σου κλειδιού + Αποτυχία αποθήκευσης εικόνας + Αποτυχία αποθήκευσης του PDF + Αποτυχία αποθήκευσης του βίντεο + Πολλοί διακομιστές δεν δέχονται κρυπτογραφημένα αρχεία σε δωρεάν λογαριασμούς. Μπορείτε να δοκιμάσετε ξανά χωρίς κρυπτογράφηση. + Αποτυχία κρυπτογραφημένου ανεβάσματος + Σφάλμα ανεβάσματος: %1$s + Αποτυχία ανεβάσματος πολυμέσων + Αποτυχία ανεβάσματος στο %1$s: %2$s + Προσθήκη στα αγαπημένα + Φορτώνει μέσω του ανοιχτού διαδικτύου. + Φορτώνει μέσω Tor. + Πρόσφατα + Αφαίρεση από αγαπημένα + Αυτή η εφαρμογή δεν έχει φορτωθεί ακόμα. Δοκιμάστε ξανά σε λίγο. + Αγαπημένες εφαρμογές + Αγαπημένοι Αλγόριθμοι Τροφοδοσίας + Πραγματοποιήθηκε πληρωμή + Δημοσιεύτηκε σε relay + Ανέβηκε αρχείο + Αγαπημένες Τροφοδοσίες Relay + Relay που επισκέπτεστε συχνά για να δείτε την Παγκόσμια τροφοδοσία τους + Κοινότητες + Αλγόριθμοι Τροφοδοσίας + Τροφοδοσίες + Σύνολα Ενδιαφερόντων + Λίστες + Τοποθεσίες + Relay + Εξυπηρετητής Αρχείων + Επιλέξτε έναν διακομιστή για αποστολή αυτού του αρχείου + Αποκρύπτει αναρτήσεις από αγνώστους που ήταν ακριβώς ίδιες 5 ή περισσότερες φορές + Φιλτράρισμα spam + Σας ακολουθεί + Ακολουθήστε + Όλοι οι αγαπημένοι αλγόριθμοι τροφοδοσίας + Γύρω μου + Επιμελημένο + Όλοι + Προεπιλεγμένη λίστα παρακολούθησης + Όσοι Ακολουθώ + Όλες οι παρακολουθήσεις χρηστών + Δικό μου + Λίστα σίγασης + Νέο πακέτο παρακολούθησης + Επεξεργασία Follow Pack + Τα μεταδεδομένα του Follow Pack είναι ορατά από οποιονδήποτε στο Nostr και δημοσιεύονται συχνά σε πολλές ιστοσελίδες ως πακέτα εκκίνησης για νέους χρήστες. + Μεταδεδομένα Follow Pack + Πακέτα Ακολούθων + Νέα λίστα παρακολούθησης + Επεξεργασία λίστας + Στυλ γκαλερί προφίλ + Επιλογή στυλ γκαλερί + Κλασική + Σύγχρονη + Ανάρτηση αποκλειστικά τοποθεσίας + Μόνο οι ακόλουθοι της τοποθεσίας θα τη δουν. Οι γενικοί ακόλουθοί σας δεν θα τη δουν. + %1$s χρηματοδοτήθηκαν από στόχο %2$s sats + ω + Το περιεχόμενο έχει αλλάξει. Ο συντάκτης μπορεί να μην έχει δει ή εγκρίνει την αλλαγή + Τι σημαίνει αυτό; + Το περιεχόμενο παραμένει ίδιο από την αρχική του δημοσίευση + Γεια σου %1$s, είναι ακόμα διαθέσιμο; + Κρυφές Λέξεις + Αφαιρεί αναρτήσεις από feeds κοινότητας όταν η κοινότητα δημοσιεύει έγγραφο κανόνων NIP-9B και ένα γεγονός θα απέτυχε. Δεν έχει αποτέλεσμα όταν μια κοινότητα δεν έχει δομημένους κανόνες. + Απόκρυψη αναρτήσεων που παραβιάζουν κανόνες κοινότητας + Απόκρυψη Κωδικού + Μεταφόρτωση %1$s (%2$d από %3$d) + Όλα + Bad Request - Ο διακομιστής δεν μπορεί ή δεν θέλει να επεξεργαστεί το αίτημα. + Unauthorized - Ο χρήστης δεν διαθέτει έγκυρα διαπιστευτήρια πιστοποίησης + Payment Required - Ο διακομιστής απαιτεί πληρωμή για να ολοκληρώσει το αίτημα + Forbidden - Ο χρήστης δεν έχει δικαιώματα πρόσβασης για να κάνει το αίτημα + Not Found - Ο διακομιστής δεν μπορεί να βρει τη ζητούμενη διεύθυνση + Method Not Allowed - Ο διακομιστής υποστηρίζει τη μέθοδο αιτήματος, αλλά όχι για τον συγκεκριμένο πόρο + Not Acceptable - Ο διακομιστής δεν βρίσκει περιεχόμενο που να ικανοποιεί το αίτημα. + Proxy Authentication Required - Ο χρήστης δεν διαθέτει έγκυρα διαπιστευτήρια πιστοποίησης + Request Timeout - Ο διακομιστής έληξε περιμένοντας κάποιον άλλο + Conflict - Ο διακομιστής δεν μπορεί να εκπληρώσει το αίτημα λόγω σύγκρουσης με τον πόρο + Gone - Το ζητούμενο περιεχόμενο έχει διαγραφεί μόνιμα από τον διακομιστή και δεν θα αποκατασταθεί + Length Required - Ο διακομιστής απορρίπτει το αίτημα επειδή απαιτεί ορισμένο μήκος + Precondition Failed - Οι προϋποθέσεις του αιτήματος στα πεδία κεφαλίδας που ο διακομιστής αδυνατεί να εκπληρώσει + Payload Too Large - Το αίτημα είναι μεγαλύτερο από τα καθορισμένα όρια του διακομιστή και ο διακομιστής αρνείται να το επεξεργαστεί + URI Too Long - Η url που ζητά ο πελάτης είναι πολύ μεγάλη για να την επεξεργαστεί ο διακομιστής. + Unsupported Media Type - Το αίτημα χρησιμοποιεί μορφή πολυμέσων που δεν υποστηρίζει ο διακομιστής + Range Not Satisfiable - Ο διακομιστής δεν μπορεί να εκπληρώσει την τιμή που υποδεικνύεται στο πεδίο κεφαλίδας Range του αιτήματος. + Expectation Failed - Ο διακομιστής δεν μπορεί να εκπληρώσει τις απαιτήσεις που υποδεικνύονται από το πεδίο κεφαλίδας Expect + Upgrade Required - Ο διακομιστής αρνείται να επεξεργαστεί το αίτημα χρησιμοποιώντας το τρέχον πρωτόκολλο εκτός εάν ο πελάτης αναβαθμίσει σε διαφορετικό πρωτόκολλο. + Internal Server Error - Ο διακομιστής αντιμετώπισε απροσδόκητο σφάλμα και δεν μπορεί να ολοκληρώσει το αίτημα + Not Implemented - Ο διακομιστής δεν μπορεί να εκπληρώσει το αίτημα ή δεν αναγνωρίζει τη μέθοδο αιτήματος + Bad Gateway - Ο διακομιστής λειτουργεί ως πύλη και έλαβε μη έγκυρη απάντηση από τον κεντρικό υπολογιστή + Service Unavailable - Αυτό συμβαίνει συχνά όταν ένας διακομιστής είναι υπερφορτωμένος ή εκτός λειτουργίας για συντήρηση + Gateway Timeout - Ο διακομιστής λειτουργούσε ως πύλη ή διαμεσολαβητής και έληξε ο χρόνος αναμονής για απάντηση + HTTP Version Not Supported - Ο διακομιστής δεν υποστηρίζει την έκδοση HTTP στο αίτημα + Variant Also Negotiates - Ο διακομιστής έχει εσωτερικό σφάλμα ρύθμισης + Insufficient Storage - Ο διακομιστής δεν έχει αρκετό χώρο αποθήκευσης για να επεξεργαστεί το αίτημα με επιτυχία + Loop Detected - Ο διακομιστής ανιχνεύει άπειρο βρόχο κατά την επεξεργασία του αιτήματος + Network Authentication Required - Ο πελάτης πρέπει να πιστοποιηθεί για πρόσβαση στο δίκτυο + Παράνομη Συμπεριφορά + Η εικόνα αποθηκεύτηκε στη συλλογή + Πλαστοπροσωπία + Relay Εισερχόμενων + Λανθασμένο ποσό πληρωμής (%1$s sats) από %2$s. Θα έπρεπε να είναι %3$s + Relay Ευρετηρίου + Relay που ειδικεύονται στη φιλοξενία μεταδεδομένων και λιστών relay όλων, όπως purplepag.es. Το Amethyst θα χρησιμοποιεί αυτά τα relay για να βρει χρήστες που δεν βρίσκονται στις λίστες σας. + Νέο σύνολο ενδιαφερόντων + Μετονομασία + Σύνολα hashtag + Μη έγκυρο κλειδί + Μη έγκυρο κλειδί: %1$s + Μη έγκυρη διεύθυνση + Το Amethyst έλαβε ένα URI για άνοιγμα, αλλά το uri δεν ήταν έγκυρο: %1$s + Δεν είναι δυνατή η παράθεση πρόχειρης σημείωσης + Δεν είναι δυνατή η αντίδραση σε πρόχειρη σημείωση + Δεν είναι δυνατή η απάντηση σε πρόχειρη σημείωση + Δεν είναι δυνατό το zap σε πρόχειρη σημείωση + Απαιτείται Κλειδί + Relay KeyPackage + Relay όπου δημοσιεύονται τα MLS KeyPackages σας (MIP-00). Άλλοι χρήστες ανακτούν αυτά τα KeyPackages για να σας προσκαλέσουν σε ομαδικές συνομιλίες Marmot. Εισάγετε από 1 έως 3 relay που δέχονται συμβάντα KeyPackage από εσάς και επιτρέπουν δημόσιες αναγνώσεις. + Αποδεκτό σύνολο διακριτικών + Πρόλογος περιπέτειας + Ανάγνωση περιπέτειας + Σκηνή περιπέτειας + Προτάσεις εφαρμογών + Ραντεβού + Εφαρμογές + RSVP ραντεβού + Κεφαλίδα ήχου + Κομμάτι ήχου + Δημιουργημένα podcasts + Απονομές διακριτικών + Ορισμοί διακριτικών + Δεδομένα Blob + Κεφαλίδες Blob + Αποκλεισμένα Relays + Λίστα σελιδοδεικτών + Relays μετάδοσης + Ημερολόγιο + Ορισμός καναλιού + Απόκρυψη μηνύματος καναλιού + Λίστα καναλιών + Μήνυμα καναλιού + Μεταδεδομένα καναλιού + Σίγαση χρήστη καναλιού + Προκλήσεις σκακιού + Προσφορά ισοπαλίας σκακιού + Αποδοχή παιχνιδιού σκακιού + Τέλος παιχνιδιού σκακιού + Παιχνίδια σκακιού + Κίνηση σκακιού + Αγγελίες + Σχόλια + Ορισμός κοινότητας + Λίστα κοινοτήτων + Ανάρτηση κοινότητας + Κάρτα Επαφής + Ημερήσιο ραντεβού + Διαγραφές + Αρχείο DM + Μήνυμα DM + Relays DM + Πρόχειρα + Επεξεργασίες + Λίστα πακέτων emoji + Πακέτα emoji + Εφήμερη συνομιλία + Εφήμερες αίθουσες συνομιλίας + Αγαπημένα podcasts + Αγαπημένα Relays + Κεφαλίδες αρχείων + Διακομιστές αρχείων + Ακολουθίες Geohash + Ακολουθίες Hashtag + Επισημάνσεις + Λίστα Index Relay + Ζωντανές συνομιλίες + Ζωντανές μεταδόσεις + Ιατρικά δεδομένα + Αίθουσα συνεδρίων + Χώρος συνεδρίων + Μουσική λίστα αναπαραγωγής + Μουσικό κομμάτι + Λίστα σίγασης + Ονομαστοί σελιδοδείκτες + Σημειώσεις + Παλαιά λίστα σελιδοδεικτών + Λίστες Ατόμων + Εικόνες + Καρφιτσωμένα + Επεισόδιο podcast + Εκπομπή podcast + Δημοσκόπηση + Απάντηση Δημοσκόπησης + Ιδιωτικά Relays + Ιδιωτικά Zaps + Προφίλ + Διακριτικά προφίλ + Γκαλερί προφίλ + Δημόσιο Μήνυμα + Αντιδράσεις + Ανακάλυψη Relay + Ανακοίνωση Παρακολούθησης Relay + Σύνολο Relay + Αναφορές + Αναδημοσιεύσεις + Αναδημοσιεύσεις (16) + Παρουσία στο δωμάτιο + Σφραγίδες + Relays Αναζήτησης + Σχόλια Torrent + Αξιόπιστοι Πάροχοι + Αξιόπιστα Relays + Διαγραφή Χρήστη + Ρυθμίσεις χρήστη + Κατάσταση Χρήστη + Βίντεο + Βίντεο (Repl) + Φωνητικό Μήνυμα + Φωνητική Απάντηση + Σελιδοδείκτης Ιστού + Προπονήσεις + Στόχοι Zap + Δημοσκόπηση Zap + Αίτημα Zap + Γνωστό + Προτιμήσεις εμφάνισης γλώσσας + Για κάθε ζεύγος μεταφρασμένης γλώσσας, επιλέξτε ποια γλώσσα θα εμφανίζεται πρώτη. + Τελευταία εμφάνιση %1$s πριν + Μόλις τώρα + Δεν εμφανίστηκε ποτέ + Τελευταία εμφάνιση στις %1$s (%2$s πριν) + Αποχώρηση + Φωτεινό + Ζωντανές Μεταδόσεις + Τοπικά Relay + Λίστα relay που εκτελούνται σε αυτήν τη συσκευή. + Συνδεθείτε με το "Μυστικό Κλειδί" σας για να προωθείτε δημοσιεύσεις + Συνδεθείτε με το "Μυστικό Κλειδί" σας για να ακολουθήσετε κάποιον + Συνδεθείτε με το "Μυστικό Κλειδί" σας ώστε να μπορείτε να αποκλείετε ανεπιθύμητες λέξεις ή φράσεις + Συνδεθείτε με το "Μυστικό Κλειδί" σας για να απαντάτε σε δημοσιεύσεις + Συνδεθείτε με το "Μυστικό Κλειδί" σας ώστε να μπορείτε να στέλνετε Zaps. Δηλαδή μικροποσά Bitcoin σε όποιον επιθυμείτε + Συνδεθείτε με το "Μυστικό Κλειδί" σας ώστε να μπορείτε να αναζητάτε συγκεκριμένες λέξεις ή φράσεις + Χρησιμοποιείς δημόσιο κλειδί και τα δημόσια κλειδιά είναι μόνο για ανάγνωση. Συνδέσου με ιδιωτικό κλειδί για να μπορείς να υπογράφεις συμβάντα + Συνδεθείτε με το "Μυστικό Κλειδί" σας για να σταματήσετε να ακολουθείτε κάποιον + Χρησιμοποιείς δημόσιο κλειδί και τα δημόσια κλειδιά είναι μόνο για ανάγνωση. Συνδέσου με ιδιωτικό κλειδί για να μπορείς να ανεβάσεις αρχεία + Συνδεθείτε με το "Μυστικό Κλειδί" σας για να δηλώσετε ότι σας αρέσει μια δημοσίευση + Βίντεο + λ + Τα Πακέτα Emoji Μου + Προσθήκη %1$s… + Τα δικαιώματα διαχειριστή παραχωρήθηκαν + Τα δικαιώματα διαχειριστή ανακλήθηκαν + Αποτυχία προσθήκης %1$s: %2$s + Αποτυχία δημιουργίας ομάδας: %1$s + Αποτυχία παραχώρησης δικαιωμάτων διαχειριστή: %1$s + Αποτυχία αποχώρησης από ομάδα: %1$s + Αποτυχία αφαίρεσης μέλους: %1$s + Αποτυχία ανάκλησης δικαιωμάτων διαχειριστή: %1$s + Αποτυχία ενημέρωσης: %1$s + Ομάδα MLS + Οι πληροφορίες ομάδας ενημερώθηκαν + + %1$d μέλος + %1$d μέλη + + Το μέλος αφαιρέθηκε + + %1$d μήνυμα + %1$d μηνύματα + + Δεν είστε μέλος αυτής της ομάδας + άγνωστο σφάλμα + Τα πολυμέσα προστέθηκαν + Τα πολυμέσα προστέθηκαν στη γκαλερί προφίλ σας + Η λήψη πολυμέσων ξεκίνησε… + Διακομιστές μέσων + Τα πολυμέσα είναι πολύ μεγάλα για NIP-95 + Εισάγετε πρώτα τον προορισμό του μηνύματος + Δεν είναι δυνατό το ανέβασμα + Θέμα + Δεν ήταν δυνατή η αφαίρεση μεταδεδομένων + Αποτυχία αφαίρεσης ιδιωτικών μεταδεδομένων από τα πολυμέσα. Το ανέβασμα ακυρώθηκε. + Οι σελιδοδείκτες μεταφέρθηκαν επιτυχώς + Λείπει η ρύθμιση lightning (LN) + Περισσότερες Επιλογές + Μετακίνηση σε ιδιωτικό + Μετακίνηση σε δημόσιο + Ανέβασμα εικόνας εξωφύλλου + Επιλέξτε τετράγωνη εικόνα ως εξώφυλλο για αυτή τη λίστα αναπαραγωγής. + + +%1$d ακόμα κομμάτι + +%1$d ακόμα κομμάτια + + + %1$d κομμάτι + %1$d κομμάτια + + + %1$d κομμάτι + %1$d κομμάτια + + Ανέβασμα εξωφύλλου και δημοσίευση. Θα συνεχιστεί ακόμα και αν αφήσετε την οθόνη. + Ανέβασμα αρχείου ήχου + Επιλέξτε MP3, WAV ή FLAC. Θα ανεβεί στον διακομιστή πολυμέσων σας κατά την αποθήκευση. + Ανέβασμα εικόνας εξωφύλλου + Επιλέξτε τετράγωνη εικόνα ως εξώφυλλο για αυτό το κομμάτι. + Ανέβασμα εξωφύλλου + ήχου και δημοσίευση. Θα συνεχιστεί ακόμα και αν αφήσετε την οθόνη. + Ήχος ενεργός. Κάντε κλικ για σίγαση + Σε σίγαση. Κάντε κλικ για κατάργηση σίγασης + Οι Λίστες Μου + Απαιτείται όνομα + Ρυθμίσεις Namecoin + Ταυτότητα + Ανάγνωση του δημόσιου κλειδιού σας + Ανταλλαγή μηνυμάτων + Ανταλλαγή μηνυμάτων με άλλα nApplets + Ενέργειες πληκτρολογίου + Σύνδεση συντομεύσεων πληκτρολογίου + Ειδοποιήσεις + Εμφάνιση ειδοποιήσεων + relay + Ανάγνωση, υπογραφή και δημοσίευση των συμβάντων σας + Δίκτυο + Λήψη πόρων από το διαδίκτυο και Blossom + Αποθήκευση + Ιδιωτική αποθήκευση δεδομένων + Θέμα + Αντιστοίχιση των χρωμάτων της εφαρμογής σας + Μεταφορτώσεις + Μεταφόρτωση αρχείων στον διακομιστή πολυμέσων σας + Πληρωμές + Πληρωμή Lightning τιμολογίων + Αυτό το nApplet θέλει να διαβάσει το δημόσιο κλειδί σας. + Αυτό το nApplet θέλει να διαβάσει το προφίλ και τα δεδομένα του λογαριασμού σας. + Αυτό το nApplet θέλει να σας εμφανίσει ειδοποιήσεις. + + Αυτό το nApplet θέλει να πληρώσει ένα Lightning τιμολόγιο αξίας %1$d sat. + Αυτό το nApplet θέλει να πληρώσει ένα Lightning τιμολόγιο αξίας %1$d sats. + + Αυτό το nApplet θέλει να υπογράψει και να δημοσιεύσει ένα συμβάν kind %1$d ως εσάς. + Αυτό το nApplet θέλει να στείλει ένα κρυπτογραφημένο συμβάν ως εσάς. + Αυτό το nApplet θέλει να υπογράψει και να δημοσιεύσει ένα συμβάν kind %1$d ως εσάς: + Αυτό το nApplet θέλει να διαβάσει συμβάντα από τα relay σας. + Αυτό το nApplet θέλει να λάβει έναν πόρο από το διαδίκτυο. + Αυτός ο ιστότοπος θέλει να υπογράψει ένα συμβάν kind %1$d με το Nostr κλειδί σας. + Αυτό το nApplet θέλει να χρησιμοποιήσει την ιδιωτική του αποθήκευση. + Αυτό το nApplet θέλει να μεταφορτώσει ένα αρχείο στον διακομιστή πολυμέσων σας. + Αποτυχία αποστολής μηνύματος + Σίγαση αυτού του ομιλητή + Επαναφορά αυτού του ομιλητή + Αποχώρηση + Αδυναμία σήμανσης δωματίου ως κλειστού. Αποχώρηση ούτως ή άλλως — το δωμάτιο θα κλείσει αυτόματα. + + %1$d ακροατής + %1$d ακροατές + + Κατέβασμα χεριού + Σίγαση μικροφώνου + Άρση σίγασης μικροφώνου + Σίγαση + Αδυναμία αποθήκευσης της λίστας διακομιστών nest. Δοκιμάστε ξανά. + Nest — Ζωντανά + Διατηρεί τον ήχο σε αναπαραγωγή ενώ το δωμάτιο είναι ανοιχτό. + Nest συνδεδεμένο + Διακοπή + Πατήστε για επιστροφή. + Ακολουθία + Σίγαση + Διακοπή ακολουθίας + Άρση σίγασης + αποχώρησε από το nest + συνδέθηκε ως ακροατής + ανέβηκε στη σκηνή + σήκωσε το χέρι + μιλά + Σήκωμα χεριού + Άρση σίγασης + Αποθηκεύεται ως αντικαταστάσιμο συμβάν kind-10112 ώστε άλλοι πελάτες να μπορούν να διαβάσουν την προτίμησή σας. + Οι διακομιστές σας + Ενσωματωμένες προτάσεις που μπορείτε να προσθέσετε στη λίστα σας με ένα άγγιγμα. + Προτεινόμενοι διακομιστές + Διακομιστές Nest + ποτέ + Νέο Σήμα + Νέο Ημερολόγιο + Νέο Συμβάν Ημερολογίου + Νέα Κοινότητα + Συντονιστές + Αποκλεισμένοι χρήστες + Σχόλιο κοινότητας (1111) + Μακροσκελές άρθρο (30023) + Ανάρτηση εικόνας (20) + Σύντομο κείμενο (1) + Σύντομο βίντεο (22) + Ανάρτηση βίντεο (21) + Επιτρεπόμενα είδη συμβάντων + Παγκόσμιο μέγιστο μέγεθος συμβάντος (προαιρετικά) + Επαληθεύσιμοι κανόνες (προαιρετικά) + Πύλη εμπιστοσύνης ιστού (προαιρετικά) + Νέο πακέτο emoji + Νέος Στόχος + Νέο Άρθρο + Νέα λίστα αναπαραγωγής + Νέο μουσικό κομμάτι + Νέο Προϊόν + Νέα Αιτήματα + Νέα Νήματα + Νέα Προπόνηση + + %1$d αρχείο συμπεριλήφθηκε + %1$d αρχεία συμπεριλήφθηκαν + + Δεν βρέθηκαν εφαρμογές Blossom. Εγκαταστήστε μια τοπική εφαρμογή Blossom για να δείτε αυτό το αρχείο + Δεν είναι δυνατό το άνοιγμα συνδέσμων Blossom + Δεν βρέθηκε εφαρμογή κάμερας σε αυτή τη συσκευή + Δεν έχει οριστεί διεύθυνση Lightning + Δεν βρέθηκε εφαρμογή για αυτή την πληρωμή. Εγκαταστήστε ένα συμβατό πορτοφόλι. + Δεν είναι εγκατεστημένη εφαρμογή για πληρωμές %1$s. Εγκαταστήστε ένα συμβατό πορτοφόλι. + Δεν έχουν επιλεγεί εικονίδια αντίδρασης. Πατήστε παρατεταμένα το κουμπί της καρδιάς για αλλαγή + Καμία ρύθμιση αντιδράσεων + Δε βρέθηκε ψηφιακό πορτοφόλι για πληρωμή Lightning. Παρακαλώ εγκαταστήστε ένα πορτοφόλι Lightning για να χρησιμοποιήσετε τα zaps + Δε βρέθηκαν πορτοφόλια για να πληρώσετε το τιμολόγιο Lightning (Error: %1$s). Παρακαλώ εγκαταστήστε ένα πορτοφόλι Lightning για να χρησιμοποιήσετε τα zaps + Το ποσό του Zap δεν έχει ρυθμιστεί. Πατήστε παρατεταμένα για να το ρυθμίσετε και να Zapάρετε + Ειδοποιήσεις + Κατηγορίες + Παράδοση + Εμφάνιση εντός εφαρμογής + τώρα + Τέχνη Nowhere + Drop Nowhere + Συμβάν Nowhere + Φόρουμ Nowhere + Εκστρατεία Χρηματοδότησης Nowhere + Ιστότοπος Nowhere + Μήνυμα Nowhere + Αναφορά Nowhere + Κατάστημα Nowhere + Γυμνό + Δεν είναι δυνατή η δημιουργία αναφοράς συμβάντος + Δεν υπάρχει pubkey παραλήπτη στη σημείωση + Τα nutzap είναι δημόσια και θα αποκάλυπταν αυτή την ιδιωτική σημείωση. Χρησιμοποιήστε αντ' αυτού zap μέσω Lightning. + Αποτυχία Nutzap + + Αποστολή %1$s sats, %2$d τρόπος + Αποστολή %1$s sats, %2$d τρόποι + + Το backend της αλυσίδας Bitcoin δεν έχει ρυθμιστεί + Δεν ήταν δυνατή η εκπομπή της συναλλαγής + Δεν ήταν δυνατή η δημιουργία της συναλλαγής + Δεν ήταν δυνατή η φόρτωση του υπολοίπου Bitcoin σας + Η πληρωμή εστάλη, αλλά η απόδειξη zap δεν μπόρεσε να δημοσιευθεί + + Η πληρωμή στάλθηκε (%1$d από %2$d απόδειξη δημοσιεύτηκε), αλλά η επόμενη απόδειξη δεν μπόρεσε να δημοσιευτεί + Η πληρωμή στάλθηκε (%1$d από %2$d αποδείξεις δημοσιεύτηκαν), αλλά η επόμενη απόδειξη δεν μπόρεσε να δημοσιευτεί + + Το μερίδιο ενός παραλήπτη είναι κάτω από το ελάχιστο (dust) + Δεν ήταν δυνατή η υπογραφή της συναλλαγής + ~10 λεπτά + ~30 λεπτά + ~1 ώρα + Γρήγορο + Κανονικό + Αργό + + Διαχωρισμός σε %1$d παραλήπτη + Διαχωρισμός σε %1$d παραλήπτες + + + Παράλειψη %1$d παραλήπτη μόνο με Lightning address — το on-chain χρειάζεται pubkey Nostr για να αντλήσει τη διεύθυνση. + Παράλειψη %1$d παραληπτών μόνο με Lightning address — το on-chain χρειάζεται pubkey Nostr για να αντλήσει τη διεύθυνση. + + + Χρήση διαχωρισμού zap %1$d-τρόπου αυτής της σημείωσης + Χρήση διαχωρισμού zap %1$d-τρόπων αυτής της σημείωσης + + εκπομπή + δημιουργία της συναλλαγής + φόρτωση υπολοίπου + δημοσίευση της απόδειξης + υπογραφή + Μόνο μία ψήφος ανά χρήστη επιτρέπεται σε αυτόν τον τύπο δημοσκόπησης + Άνοιγμα όλων των αντιδράσεων σε αυτή την ανάρτηση + Ανοιχτές + Θύρα Orbot + Εξερευνητής Bitcoin (OTS) + Υπάρχει απόδειξη ότι αυτή η ανάρτηση υπογράφηκε κάποτε πριν από %1$s. Η απόδειξη σφραγίστηκε στο blockchain του Bitcoin σε εκείνη την ημερομηνία και ώρα. + Απόδειξη Χρονοσήμανσης + Relay Εξερχόμενων + Απαιτείται κωδικός πρόσβασης + Παύση + Πληρωμή + Μήνυμα από %1$s + Στόχοι πληρωμής + Προσθέστε διευθύνσεις πληρωμής για διαφορετικά δίκτυα (π.χ. bitcoin, lightning, ethereum). + Το PDF αποθηκεύτηκε στο Downloads/Amethyst + Τα μεταδεδομένα λίστας ακολουθίας είναι ορατά από οποιονδήποτε στο Nostr. Μόνο τα ιδιωτικά σας μέλη είναι κρυπτογραφημένα. + Μεταδεδομένα λίστας ακολουθίας + Εικόνες + Καρφίτσωμα στην κορυφή + Καρφίτσωμα στο προφίλ + Αναπαραγωγή + + %1$d επεισόδιο + %1$d επεισόδια + + Οι συντάκτες των δημοσκοπήσεων δεν μπορούν να ψηφίσουν στις δικές τους δημοσκοπήσεις. + Η δημοσκόπηση έχει λήξει + Πολλαπλές επιλογές + Επιλογή %1$s + Μία επιλογή + Αδυναμία ψηφοφορίας + Δημοσκοπήσεις + Δημοσίευση + + Αυτή η ανάρτηση έχει περισσότερα από %1$d hashtag + Αυτή η ανάρτηση έχει περισσότερα από %1$d hashtags + + Προεπισκόπηση Κάρτα Εικόνας για %1$s + Επιλογές απορρήτου + Πολιτική απορρήτου + <Unable to decrypt private message>\n\nΕιδοποίηση ιδιωτικής συνομιλίας μεταξύ %1$s και %2$s. + Relay Εισερχόμενων DM + Εισάγετε από 1 έως 3 relay ως ιδιωτικό σας εισερχόμενο. Άλλοι θα χρησιμοποιούν αυτά τα relay για να σας στέλνουν DM. Τα relay εισερχόμενων DM θα πρέπει να δέχονται οποιοδήποτε μήνυμα από οποιονδήποτε, αλλά να επιτρέπουν μόνο σε εσάς να τα κατεβάζετε. Καλές επιλογές είναι:\n - inbox.nostr.wine (επί πληρωμή)\n - auth.nostr1.com (δωρεάν)\n - you.nostr1.com (προσωπικά relay - επί πληρωμή) + Ο χρήστης λαμβάνει DM σε αυτά τα relay + Ιδιωτικό Μήνυμα + Να γίνει ιδιωτικό: αποστολή της σημείωσης με gift-wrap μόνο στους ειδοποιούμενους χρήστες + Οι απαντήσεις σε ιδιωτική σημείωση παραμένουν πάντα ιδιωτικές + Ορατό σε + Ιδιωτικά Relay Αρχικής + Εισάγετε από 1 έως 3 relay για αποθήκευση συμβάντων που δεν μπορεί να δει κανείς άλλος, όπως τα Πρόχειρά σας και/ή οι ρυθμίσεις εφαρμογής. Ιδανικά, αυτά τα relay είναι είτε τοπικά είτε απαιτούν πιστοποίηση πριν την λήψη του περιεχομένου κάθε χρήστη. + Ασέβεια / Ρητορική μίσους + Προφίλ + Σήματα προφίλ + Προτάσεις Εφαρμογών + Σήματα Προφίλ + Ροή Ακολούθων + Ροή Ληφθέντων Zap + Διεπαφή Προφίλ + προφίλ + Πρότεινε μια επεξεργασία + Relay Διαμεσολαβητή + Relay συγκεντρωτές που η εφαρμογή πρέπει να χρησιμοποιεί για να κατεβάσει τις τροφοδοσίες σας, όπως filter.nostr.wine. Αυτό αντικαθιστά το μοντέλο outbox και θα κάνει την εφαρμογή να συνδέεται μόνο στα relay στις λίστες σας. + Δημόσια Συζήτηση + Οι δημόσιες συνομιλίες είναι ορατές σε όλους στο Nostr και οποιοσδήποτε + μπορεί να συμμετάσχει σε αυτές. Είναι ιδανικές για ανοιχτές κοινότητες γύρω από συγκεκριμένα θέματα. + Η εποπτεία μπορεί να ελεγχθεί με διαγραφή αναρτήσεων στα relay της + Εισάγετε 1–3 relay που φιλοξενούν αυτή την ομάδα. + Οι πελάτες Nostr χρησιμοποιούν αυτή τη ρύθμιση για να γνωρίζουν πού να κατεβάσουν μηνύματα και πού να στέλνουν τα μηνύματά σου. + Μεταδεδομένα δημόσιας συνομιλίας + Δημόσιες Συνομιλίες + Δημόσια Relay Εξερχόμενων/Αρχικής + Αυτός ο τύπος relay αποθηκεύει όλο το περιεχόμενό σας. Το Amethyst θα στέλνει τις αναρτήσεις σας εδώ και άλλοι θα χρησιμοποιούν αυτά τα relay για να βρουν το περιεχόμενό σας. Εισάγετε από 1 έως 3 relay. Μπορεί να είναι προσωπικά relay, relay με χρέωση ή δημόσια relay. + Ο χρήστης δημοσιεύει το περιεχόμενό του σε αυτά τα relay + Δημόσιο Μήνυμα + Δημόσια Relay Εισερχόμενων + Αυτός ο τύπος relay λαμβάνει όλες τις απαντήσεις, σχόλια, «μου αρέσει» και zaps στις αναρτήσεις σας. Μπορεί να είναι relay με ή χωρίς χρέωση. Τα όρια που ορίζει ο διαχειριστής του relay μπορούν να περιορίσουν τις ειδοποιήσεις που λαμβάνετε, θετικά και αρνητικά. Για παράδειγμα, εάν δέχεστε επίθεση με spam σχολίων, τα relay με χρέωση μπορούν να το φιλτράρουν. Εισάγετε από 1 έως 3 relay. + Ο χρήστης λαμβάνει ειδοποιήσεις σε αυτά τα relay + ID Δημοσίευσης + Διαγραφή + Σίγαση νήματος + Κοινοποίηση + Κοινοποίηση Συνδέσμου Περιηγητή + Αναίρεση σίγασης νήματος + Αντίδραση + Αντιδράσεις + Σειρά Αντιδράσεων + Ανάγνωση από Διαμοιραστή (Relay) + Η ποσότητα σε bytes που ελήφθη από αυτό το relay, συμπεριλαμβανομένων φίλτρων και γεγονότων + Χρήστης μόνο για ανάγνωση + Πάτα παρατεταμένα για να καταγράψεις ένα μήνυμα + Συνομιλία relay + Οι συνομιλίες relay είναι ομάδες συνομιλίας που ελέγχονται από το αρχικό τους relay. + Είναι ορατές σε όλους στο Nostr και οποιοσδήποτε μπορεί να συμμετάσχει σε αυτές. + Είναι ιδανικές για ανοιχτές κοινότητες γύρω από συγκεκριμένα θέματα. Ορισμένες από αυτές τις ομάδες είναι εφήμερες + και έτσι τα μηνύματα συνομιλίας εξαφανίζονται με την πάροδο του χρόνου + Συνομιλίες relay + Συμβάντα + Χρήστες + Ρυθμίσεις + Ρυθμίσεις Relay + λίστες εξερχόμενων + Διαμοιραστές + Ανατροφοδότηση & αποστολή zap + Αποστολή zap + Ανατροφοδότηση %1$s sats σε %2$s και αποστολή zap %3$s %4$s sats · χρέωση ≈ %5$s sats + Αφαίρεση + Αφαίρεση από Δημόσιους Σελιδοδείκτες + απαντήστε εδώ… + Ειδοποίηση: + + Αίτηση Διαγραφής + Αίτηση Εξαφάνισης + Αποτυχία επαναφοράς κατάστασης Marmot: %1$s + Επαναφορά κατάστασης Marmot + Η κατάσταση Marmot επαναφέρθηκε. + Επανάληψη + Λίστες ημερολογίων + Ημερολόγια + Σκάκι + Ανακάλυψη + Αρχική + Εισαγωγή Ακολουθούμενων + Μηνύματα + Λίστες αναπαραγωγής + Μουσική + Ειδοποιήσεις + Επεισόδια + Προγραμματισμός ανάρτησης + Ακύρωση προγραμματισμού + Οι προγραμματισμένες αναρτήσεις ενδέχεται να μην δημοσιευτούν έως ότου ανοίξετε ξανά την εφαρμογή. Οι προγραμματισμένες αναρτήσεις άλλων λογαριασμών δεν θα εκτελεστούν ενώ αυτός ο λογαριασμός είναι ενεργός. Ενεργοποιήστε το «πάντα ενεργό» στις Ρυθμίσεις → Προτιμήσεις UI για αξιόπιστο προγραμματισμό στο παρασκήνιο. + Οι προγραμματισμένες αναρτήσεις ενδέχεται να μην δημοσιευτούν έως ότου ανοίξετε ξανά την εφαρμογή. Ενεργοποιήστε το «πάντα ενεργό» στις Ρυθμίσεις → Προτιμήσεις UI για αξιόπιστο προγραμματισμό στο παρασκήνιο. + Προγραμματισμένες αναρτήσεις + Αποστολή τώρα + %1$s · σε %2$s + %1$s · πριν %2$s + Αύριο + Σφάλμα: %1$s + Αντιγράφηκε το ID σημείωσης + + Αποσυνδέθηκε · %1$d προγραμματισμένη ανάρτηση διαγράφηκε + Αποσυνδέθηκε · %1$d προγραμματισμένες αναρτήσεις διαγράφηκαν + + Αποσυνδέθηκε + + Έχετε %1$d προγραμματισμένη ανάρτηση που δεν έχει δημοσιευτεί ακόμα. Η αποσύνδεση θα τη διαγράψει οριστικά. + Έχετε %1$d προγραμματισμένες αναρτήσεις που δεν έχουν δημοσιευτεί ακόμα. Η αποσύνδεση θα τις διαγράψει οριστικά. + + Η προγραμματισμένη ανάρτηση απέτυχε + Η προγραμματισμένη ανάρτηση δημοσιεύτηκε + + σε %1$d relay + σε %1$d relays + + Ακυρώθηκε + Απέτυχε + Προγραμματισμένο + Αποστολή… + Εστάλη + + · %1$d προς αποστολή σε 1ω + · %1$d προς αποστολή σε 1ω + + + %1$d σε αναμονή + %1$d σε αναμονή + + Καλές επιλογές είναι:\n%1$s + Relay Αναζήτησης + Relay Αναζήτησης + Λίστα relay για χρήση κατά την αναζήτηση περιεχομένου ή χρηστών. Η επισήμανση και η αναζήτηση δεν θα λειτουργούν εάν δεν υπάρχουν διαθέσιμες επιλογές. Βεβαιωθείτε ότι υλοποιούν NIP-50. + αναζητήσιμα συμβάντα + Το "Μυστικό Κλειδί" (nsec) αντιγράφηκε στο πρόχειρο + Δεν έχετε αποκλείσει κανέναν χρήστη ακόμα. + Φίλτρα Ασφαλείας + Δεν υπάρχουν κρυφές λέξεις. Προσθέστε μια λέξη παρακάτω για να αποκρύπτετε αναρτήσεις που την περιέχουν. + Αποκλεισμένο περιεχόμενο + Προτιμήσεις φιλτραρίσματος + Κανένας λογαριασμός δεν έχει επισημανθεί ως spam σε αυτή τη συνεδρία. + Αποστολή + Αποστολή όλων των ληφθέντων συμβάντων προφίλ (kind 0) στο τοπικό σας relay + Προώθηση προφίλ σε τοπικό relay + Διαθέσιμο για αυτόν τον παραλήπτη: %1$s sats + Η πληρωμή απέτυχε + Συναλλαγή: %1$s + Πληρωμή μέσω %1$s… + Ο διακομιστής δεν παρείχε URL μετά το ανέβασμα + Ρυθμίσεις + Δεν υπάρχουν νήματα σε σίγαση + Σίγαση νημάτων + Κοινοποίηση ως εικόνα + Κοινοποίηση ως URL εικόνας + Μεταφόρτωση HLS + Κοινοποίηση ή αποθήκευση + Εμφάνιση QR code κρυπτογραφημένου ιδιωτικού κλειδιού + Συμπερίληψη άμεσων και ομαδικών μηνυμάτων στην καρτέλα ειδοποιήσεων. Απενεργοποιήστε για να διατηρείτε τα μηνύματα μόνο στην καρτέλα μηνυμάτων. + Εμφάνιση μηνυμάτων + Εμφάνιση QR code ιδιωτικού κλειδιού + Αίτημα υπογραφής απορρίφθηκε + Βεβαιωθείτε ότι η εφαρμογή υπογραφής έχει εξουσιοδοτήσει αυτή τη συναλλαγή + Ο εξωτερικός signer επέστρεψε ένα payload που είναι ασυνήθιστο για το αίτημα. Ενδέχεται να υπάρχει σφάλμα στο Amethyst ή στον signer. + Ο signer δεν βρέθηκε + Απεγκαταστάθηκε η εφαρμογή signer; Έλεγξε αν ο signer είναι εγκατεστημένος και έχει αυτόν τον λογαριασμό. Αποσυνδέσου και συνδέσου ξανά αν η εφαρμογή signer έχει αλλάξει. + Μετακίνηση %1$d δευτερόλεπτα πίσω + Μετακίνηση %1$d δευτερόλεπτα μπροστά + Εφαρμογές + Ανεπιθύμητο + Ο αριθμός των spam συμβάντων που προέρχονται από αυτό το relay + Ανεπιθύμητοι + Εμφάνιση δύο καρτελών ειδοποιήσεων — Ακολουθούμενοι (άτομα που ακολουθείτε) και Όλοι. Η ένδειξη αναγνωσμένων ανάβει μόνο για δραστηριότητα από άτομα που ακολουθείτε. + Διαχωρισμός ειδοποιήσεων κατά Ακολουθούμενους + Αποπειράται αφαίρεση ιδιωτικών μεταδεδομένων από υποστηριζόμενα αρχεία πολυμέσων πριν το ανέβασμα + Αφαίρεση ιδιωτικών μεταδεδομένων + Διαβάζει ολοκληρωμένες προπονήσεις από το Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) και προτείνει να τις κοινοποιήσετε ως ανάρτηση. Η άδεια ζητείται μόνο κατά τη σύνδεση. + Πρόταση προπονήσεων για κοινοποίηση + Σύστημα + Θέμα + Σκοτεινό, φωτεινό ή προεπιλογή συστήματος + Αυτό το μήνυμα θα εξαφανιστεί σε %1$s + + +%1$d\nαπάντηση + +%1$d\nαπαντήσεις + + Σήμερα + Προσαρμοσμένο + Φτιάξτε τη δική σας + Προεπιλογή + Απόκρυψη IP σας από τυχαία relays + Πλήρες απόρρητο + Απόκρυψη IP σας σε όλες τις συνδέσεις + Εσωτερικό + Απενεργοποιημένο + Προρυθμίσεις Tor/Απορρήτου + Γρήγορη τροποποίηση όλων των παρακάτω ρυθμίσεων + Όλα εκτός από πολυμέσα + Απόκρυψη IP σας από τα πάντα, εκτός από εικόνες και βίντεο + Εξαναγκασμός Tor για αποστολή και λήψη DMs + Εικόνες + Εξαναγκασμός Tor κατά τη φόρτωση εικόνων + Αποστολή πολυμέσων + Εξαναγκασμός Tor κατά την αποστολή περιεχομένου + Χρηματικές συναλλαγές + Εξαναγκασμός Tor σε zaps, Lightning και μεταφορές Cashu + Αναξιόπιστα Relays + Εξαναγκασμός Tor στα relays εξόδου/εισόδου + Επαλήθευση διεύθυνσης Nostr + Εξαναγκασμός Tor κατά την επαλήθευση διευθύνσεων NIP-05 + Onion URL/Relays + Χρήση Tor για οποιοδήποτε .onion url + Εικόνες προφίλ + Εξαναγκασμός Tor κατά τη φόρτωση εικόνων προφίλ + Αξιόπιστα Relays + Εξαναγκασμός Tor σε όλα τα relays της λίστας σας + Προεπισκοπήσεις URL + Εξαναγκασμός Tor κατά τη φόρτωση προεπισκοπήσεων URL + Βίντεο + Εξαναγκασμός Tor κατά τη φόρτωση βίντεο + Βασικό + Χρήση Tor όταν απαιτείται από τον διακομιστή + Αποτυχία ανοίγματος αρχείου + Δεν υπάρχουν εγκατεστημένες εφαρμογές torrent για άνοιγμα και λήψη του αρχείου. + Το συμβάν δεν έχει αρκετές πληροφορίες για τη δημιουργία συνδέσμου magnet + Χρήση του παρακολουθούμενου αναμεταδότη κατά την αποστολή συμβάντων. Εμφανίζει ζωντανή πρόοδο και κατάσταση ανά relay κατά τη μετάδοση. + Παρακολουθούμενες μεταδόσεις + Μετάφραση σε + Επιλέξτε τη γλώσσα στην οποία θα μεταφράζεται το περιεχόμενο. + Μεταφράσεις + Αξιόπιστα Relay + Relay που εμπιστεύεστε και δεν χρειάζονται σύνδεση Tor + Πλήρης + Απόδοση + Απλοποιημένη + Προτιμήσεις UI + Λειτουργία UI + Επιλογή στυλ ανάρτησης + Αδυναμία δημιουργίας πληρωμής Lightning πριν την αποστολή του zap. Το πορτοφόλι Lightning του δέκτη έστειλε το ακόλουθο σφάλμα: %1$s + Αδυναμία κοινοποίησης εικόνας, δοκιμάστε ξανά αργότερα… + Αδυναμία κοινοποίησης βίντεο, δοκιμάστε ξανά αργότερα… + Μη εξουσιοδοτημένη αποκρυπτογράφηση + Ο signer δεν εξουσιοδότησε μια αποκρυπτογράφηση που απαιτείται για αυτή τη λειτουργία. Ενεργοποίησε τις αποκρυπτογραφήσεις NIP-44 στην εφαρμογή signer σου και δοκίμασε ξανά + Να μην ακολουθώ + Ξεκαρφίτσωμα + Ξεκαρφίτσωμα από το προφίλ + Το ανέβασμα ακυρώθηκε + Σφάλμα ανεβάσματος + Αποτυχία ανεβάσματος φωνητικού: %1$s + Αποτυχία ανεβάσματος φωνητικού μηνύματος + Το NIP-95 δεν υποστηρίζεται ακόμα για φωνητικά μηνύματα + %1$d%% λειτουργία + Ενεργή μηχανή Tor + Χρησιμοποιήστε την εσωτερική έκδοση ή το Orbot + Ο χρήστης δεν έχει ορίσει διεύθυνση LN για να λαμβάνει sats + Ο Χρήστης %1$s δεν έχει ορίσει διεύθυνση LN (lightning) για να λαμβάνει sats + Ιστορικό Εξαφάνισης + Στάλθηκε αίτηση εξαφάνισης + Καλύτερη ποιότητα σε μικρότερα μεγέθη αρχείων, αλλά δεν υποστηρίζουν όλες οι συσκευές αναπαραγωγή H.265. + Χρήση κωδικοποιητή H.265/HEVC + Η λήψη βίντεο ξεκίνησε… + Κουμπιά Αναπαραγωγής Βίντεο + Το βίντεο αποθηκεύτηκε στη γκαλερί βίντεο του τηλεφώνου + Φωνητική ανάρτηση + Βαθύ + Ψηλό + Ουδέτερο + Κανένα + Φωνητική απάντηση + Πορτοφόλι + Πορτοφόλι Cashu (NIP-60) + Ο πάροχος σύνδεσης του πορτοφολιού σας επέστρεψε το ακόλουθο σφάλμα: %1$s + Επεξεργασία mint + Εμφανίζει προειδοποίηση όταν αναρτήσεις ή προφίλ έχουν αναφορές από τους ακολουθούμενους σας + Προειδοποίηση για αναφορές + Προσθήκη Σελιδοδείκτη Ιστού + Επεξεργασία Σελιδοδείκτη Ιστού + Σελιδοδείκτες Ιστού + Τι σκέφτεστε; + Προπονήσεις + Γράψε ένα μήνυμα… + Γράψτε στον Διαμοιραστή + Η ποσότητα σε bytes που εστάλη σε αυτό το relay, συμπεριλαμβανομένων φίλτρων και γεγονότων + + Μετονομασία + Αποθήκευση diff --git a/commonsUI/src/commonMain/composeResources/values-eo-rUY/strings.xml b/commonsUI/src/commonMain/composeResources/values-eo-rUY/strings.xml index a78595eafd..2ea39c716c 100644 --- a/commonsUI/src/commonMain/composeResources/values-eo-rUY/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-eo-rUY/strings.xml @@ -1801,4 +1801,1184 @@ Baza URL de Explorer API Pagi Fakturon de la DVM Pagi %1$s sats al la DVM + Pri & Jura + Kontaj Agordoj + Aldoni + Aldoni Blossom-Servilon + Aldoni NIP-96 Servilon + Kiam ŝaltita, Amethyst aldonas NIP-89 klientan etikedon al eventoj kiujn vi publikigas. + Aldoni klientan etikedon al miaj eventoj + Aldonas averton de delikata enhavo antaŭ montri ĉi tiun enhavon + Delikata Enhavo + Aldoni al Publikaj Legosignoj + Uzas aparatan AI-modelon por proponi tekstajn korektojn kaj tondoŝanĝojn. + Proponi tekstajn plibonigojn + Konservas konektojn al viaj enirkestaj relay-oj aktivaj por realtempaj sciigoj + + Konektita al %1$d enirkest-relay + Konektita al %1$d enirkest-relays + + + Konektita al %1$d relay + Konektita al %1$d relays + + Konektante al enirkestaj relay-oj… + Amethyst-Sciigoj Aktivaj + Sciigoj por alvenantaj voĉaj kaj vidaj alvokoj + Alvenantaj alvokoj + %1$s akceptis vian ŝakinviton + Sciigos vin pri ŝakludaj eventoj + Ŝako + Ŝakaj ĝisdatigoj + %1$s movis — via vico + Sciigas vin kiam privata mesaĝo alvenas + Privataj Mesaĝoj + Novaj mesaĝoj + Marki kiel Legita + Sciigos vin kiam iu menciigas aŭ citas vin en afiŝo + %1$s menciis vin + Mencioj + Novaj mencioj + Sciigos vin kiam iu reagas al via afiŝo + %1$s reagis al via afiŝo + por %1$s + Reagoj + Novaj reagoj + Sciigos vin kiam iu respondas al via afiŝo + Respondoj + Novaj respondoj + Respondi + Sciigoj kiam planita afiŝo estas publikigita aŭ malsukcesas publikiĝi. + Planitaj afiŝoj + Sciigas vin kiam iu zapas vin + %1$s satoj + pro %1$s + El %1$s + Zapojn Ricevitaj + Novaj zap-oj + Aplikaĵaj Agordoj + Atestado + Peto de Atestado + Kompetento de Atestanto + Rekomendo de Atestanto + Sonbildigilo + Konservas skizon aŭtomate kiam vi tajpas aŭ forlasas verkiston kun nesendita teksto kaj sendas al viaj privataj eligaj relay-oj. + Aŭtomate krei skizojn + Mergita Rulumado + Kaŝi Navigilajn Stangojn dum Rulumado + Antaŭrigardo de Bildo + Aŭtomate montri imaĝojn kaj GIFojn + Ludado de Video + Aŭtomate montri videojn kaj GIFojn + Profila Bildo + Montri Profilajn bildojn + Antaŭrigardo de URL + Montri antaŭrigardoj de URL + Aŭtomata Videoludado + Aŭtomate ludi videojn kiam videblaj sur la ekrano + Ne eblas forigi metadatenojn el AVIF: %1$s + Premiumi Insignon + Malantaŭen + Sekurkopii Ŝlosilojn + Insignoj + Aŭtentikigo malsukcesis + Biometriko malsukcesis aŭtentikigi la posedanton de tiu ĉi telefono + Biometriko malsukcesis aŭtentikigi la posedanton de tiu ĉi telefono. Eraro: %1$s + Bloki + Blokitaj Relay-oj + Amethyst neniam konektiĝos al ĉi tiuj relay-oj + Blokitaj Uzantoj + Nova signolibra listo + Metadatenoj de signolibra listo + Metadatenoj de signolibraj listoj povas esti viditaj de ĉiu sur Nostr. Nur viaj privataj membroj estas ĉifritaj. + Legosignoj + Plifortigi + Malsupra Navigada Strio + Elsendaj Relay-oj + Relay-oj, kiuj specialiĝas pri elsendo de viaj notoj al ĉiuj aliaj relay-oj, ekzemple sendit.nosflare.com. Amethyst aldonos ĉi tiun relay-on al ĉiuj novaj eventoj faritaj de vi + Retumilo + Plej ŝatataj + Ŝargante per la malferma reto. Klaku por uzi Tor. + Ŝargante per Tor. Klaku por uzi la malferma reton. + + %1$s, %2$d evento + %1$s, %2$d eventoj + + Alŝuto de bildo malsukcesis + La elektita bildo ne povis esti alŝutita. Provu denove aŭ algluu URL-on. + Dividi kalendaran eventon + Malfermi en mapoj + Malfermi ligon + Okazas nun + %1$s · finiĝas %2$s + + Komenciĝas post %1$d minuto + Komenciĝas post %1$d minutoj + + Averto kiam evento, kiun vi partoprenas, baldaŭ komenciĝos. + Kalendaraj memorigoj + Kalendra evento + Sciigo aperas kiam evento, kiun vi partoprenas, baldaŭ komenciĝos. + Sendi memorigojn + Kalendaraj memorigoj + Tago + Fluo + Monato + Semajno + Akcepti + Fotilo malŝaltita + Fotilo ŝaltita + Aŭskultiloo + Malkonekti + Alvenanta alvoko + Alvenanta vida alvoko… + Alvenanta voĉa alvoko… + Silentigi + Alvokoj + Sciigo pri daŭranta alvoko + Amethyst bezonas aliron al fotilo kaj mikrofono por komenci vidan alvokon. Bonvolu ebligi ilin en la aplikaĵagordoj. + Amethyst bezonas aliron al mikrofono por komenci voĉan alvokon. Bonvolu ebligi ĝin en la aplikaĵagordoj. + Rifuzi + Alvokoagordoj + Laŭtparolisto + Malsilentigi + Alvoko kun %1$s + Atgara URL ne trovita en la respondo de %1$s + Nuligi + Cashu Signo + Kontrolado de monfarejo… + Ne eblis elaĉeti Cashu + La monfarejo provizis la sekvan erarmesaĝon: %1$s + Ricevita + Sendita + Kongruaj monfarejoj + + +%1$d plia + +%1$d pliaj + + Popularaj monfarejoj + + Rekomendita de %1$d alia + Rekomendita de %1$d aliaj + + Movis %1$s sat al %2$s. + Neniu kongrua Cashu-monujo trovita sur sistemo + + %1$d atendata fakturo + %1$d atendataj fakturoj + + Pagi %1$s sat + ĝis %2$s sat en kotizoj? + Publiki forigan peton por via kind:38000-rekomendo de %1$s. Relay-oj kiuj honoras NIP-09 forigos ĝin. + Reakireditaj %1$s sats trans %2$s pruvoj. + Cashu Ricevita + %1$s sats estis senditaj al via monujo. (Kotizoj: %2$s sats) + + Financoj konservitaj ĉe %1$d monfarejo, kiun vi ne uzas + Financoj konservitaj ĉe %1$d monfarioj, kiujn vi ne uzas + + Atendado ke la fakturo estu pagita… + + %1$d monfarejo + %1$d monfarioj + + Ĉesi transiĝon + Transigi al aparato + Infanprotektaj Normoj + Akcesoraĵoj + Arto + Libroj + Vestaĵo + Kolektindaĵoj + Artizanaĵo + Elektroniko + Kondiĉtrejnado + Manĝaĵo + Mebloj + Hejmo + Diversaĵoj + Oficejo + Alia + Hejmbestabloj + Sporto + Ĉiutaga + Ĉiumonata + Unufoja + Ĉiusemajna + Pagi %1$s per %2$s? + Pagi tiun ĉi fakturon per %1$s? + La debita servo ne kompletigis la pagon. + Enigu validan sumon por tiu ĉi oferto. + Petante fakturo… + Fermi ĉiujn reagojn al ĉi tiu afiŝo + Fermitaj + Komunumoj + Skizo havas %1$d bajtojn; ĉi tiu komunumo limigas ĉi tiun tipon al %2$d bajtoj. + Skizo havas %1$d bajtojn; ĉi tiu komunumo limigas eventojn al %2$d bajtoj. + Vi jam afiŝis %1$d eventojn de ĉi tiu tipo hodiaŭ (limo %2$d). + Agordoj de Verkado + Defaŭlta pordo estas 9050 + Konektitaj Relay-oj + Aktuala listo de uzataj relay-oj + Procento de sukcesaj konektoj al la relay + Ĉiam + Neniam + Senmezura WiFi + Aldoni Dokumenton + Aldoni Bildon + Aldoni Amaskomunikilaron + Aldoni Videon + Kaŝi + Averti + Montri + Konversacioj + Konvertas animacian GIF al MP4-video por pli malgranda dosiero kaj pli bona reproduktad-kongrueco. + Konverti GIF al MP4 + Kopiita ID de noto (@note1) al tondujo + Kopiita tekston de noto al tondujo + Kopiita al poŝujo + Kopiita @npub de aŭtoro al tondujo + Kopii mian sekretan ŝlosilon + Kopii al poŝujo + Ne eblis kunmeti LNUrl el Lightning-Adreso "%1$s". Kontrolu la agordon de la uzanto + Ne eblis kontroli la elŝutitan dosieron post alŝuto: %1$s + Ne eblis elŝuti alŝutitan medion de la servilo + Ne eblis preni fakturon de %1$s: %2$s + Ne eblis malfermi la kunpremitan dosieron + Monujo ne trovita + Amethyst ne povis trovi ajnajn monujo-aplikojn, kiuj subtenas Nostr Wallet Connect (NWC). +\n\nKion vi povas fari: +\n\t1. Kontrolu NWC-subtenon: Duoble kontrolu, ĉu via preferata monujo-aplikaĵo estas kongrua kun Nostr Wallet Connect. +\n\t2. Krei Konekton: Iru al via monujo-aplikaĵo kaj kreu novan NWC-konekton. +\n\t3. Ligi al Amethyst: Via monujo kutime donos al vi tri opciojn: +\n\t\t3.1 Aŭtomata Ligo: Butono por aŭtomate malfermi kaj konekti al Amethyst. Se jes, alklaku tiun butonon, malfermu Amethyst kaj alklaku konservi sur la nova ekrano. +\n\t\t3.2 Mana Ligo: Konekta URI, kiun vi povas kopii kaj alklaki la algluu-ikonon sur ĉi tiu ekrano por rekte enigi ĝin. +\n\t\t3.3 QR-Kodo: La monujo kreas QR-kodon, kiun vi povas legi per la QR-koda butono sur ĉi tiu ekrano. + + Krei + t + Danĝera Zono + Malhela + Priskribo + Fari publika + Babilejoj + Komunumoj + Fluo-Algoritmoj + Sekvi-Pakaĵoj + Vivaj Transigoj + Merkato + Legaĵoj + DM Enskatolaj Relay-oj + Ne Traduki El + Lingvoj montritaj ĉi tie ne estos tradukitaj. Elektu lingvon por forigi ĝin kaj havi ĝin tradukita denove. + Konservi al Telefono + Elŝutante videon… + Malneta Noto + Skizoj + Kontoj + Krei + Fluoj + Navigi + Sistemo + Vi + + %1$d tago + %1$d tagoj + + + %1$d horo + %1$d horoj + + + %1$d minuto + %1$d minutoj + + + %1$d monato + %1$d monatoj + + + %1$d semajno + %1$d semajnoj + + + %1$d jaro + %1$d jaroj + + Redakti kalendaron + Redakti kalendaran eventon + Redakti Komunumon + Redakti emodžio-pakon + Redakti ludumon + Redakti Afiŝon + Privataj emodžioj estas stokitaj ĉifrite sur relay-oj kaj videblaj nur al vi. Ili aperas en via reaga menuo kaj „:" aŭtokompleta same kiel publikaj. + Publikaj emodžioj estas videblaj al ĉiuj kaj aperas en via reaga menuo kaj „:" aŭtokompleta elektilo kiam ĉi tiu pako estas en via emodžio-listo. + Emodžioj + Ĉifri dosierojn antaŭ alŝuto por privateco. Kelkaj serviloj eble ne akceptas ĉifritajn dosierojn en senpagaj kontoj. + Ĉifri dosierojn + Malapera Babilejo + Eraro + Ne eblis pagi fakturon + Ne eblis retiri + Ne eblas malfermi pagon + Nekapable sendi zapon + Eraro malfermi subskribistan aplikaĵon + La subskribista aplikaĵo ne povis esti trovita. Kontrolu ĉu la aplikaĵo ne estis malinstalita + Eraro analizante de erara mesaĝo + Eraro Analizante JSON de %1$s. Kontrolu la Lightning-agordon de la uzanto + Ne eblas preni fakturon de la ricevanto's serviloj + Malfermi en retumilo + Ne eblas ludi ĉi tiun videon + La kodeko aŭ formato ne estas subtenata sur ĉi tiu aparato (%1$s). Provu malfermi ĝin en via retumilo. + Eraroj + relay-a Sinkronigo + eventoj de vi + eventoj al vi + Cirkvito + Biciklado + Dieto + Fastado + Tura marŝado + Meditado + Remado + Kurado + Fortekzercado + Naĝado + Promeno + Jogo + Etendi + Limdato + Eksporti relay-agordojn + Malsukcesis forigi: %1$s + Malsukcesis ĉifri vian privatan ŝlosilon + Malsukcesis konservi la bildon + Malsukcesis konservi la PDF + Malsukcesis konservi la videon + Multaj serviloj ne akceptas ĉifritajn dosierojn en senpagaj kontoj. Vi povas reprovi sen ĉifrado. + Ĉifrita alŝuto malsukcesis + Alŝuta eraro: %1$s + Malsukcesis alŝuti amaskomunikilojn + Malsukcesis alŝuti al %1$s: %2$s + Aldoni al plej ŝatataj + Ŝargas per la malferma reto. + Ŝargas per Tor. + Lastaj + Forigi el plej ŝatataj + Tiu aplikaĵo ankoraŭ ne estas ŝargita. Reprovu post momento. + Plej ŝatataj aplikoj + Favorataj Fluo-Algoritmoj + Faris pagon + Publikigita al relay-oj + Alŝutita dosiero + Ŝatataj Relay-fluoj + Relay-oj, kiujn vi ofte vizitas por vidi ilian Tutmondan fluon + Komunumoj + Fluo-Algoritmoj + Fluoj + Hashtag-oj + Interesaroj + Listoj + Lokoj + Relay-oj + Dosiera Servilo + Elektu servilon por alŝuti tiun ĉi dosieron + Kaŝas afiŝojn de fremduloj kiuj estis ekzakte samaj 5 aŭ pli da fojoj + Filtri spamon + Sekvi + Sekvi reen + Ĉiuj favorataj fluo-algoritmoj + Ĉirkaŭ Mi + Kuratita + Ĝenerala + Defaŭlta Sekvlisto + Ĉiuj Sekvoj + Ĉiuj Uzantaj Sekvoj + Mia + Silentigolisto + Nova Sekvpako + Redakti Sekvan Pakon + Sekva pako metadatenoj povas esti viditaj de ĉiu ajn sur Nostr kaj estas ofte publikigataj en multaj retejoj kiel startaj pakoj por novaj uzantoj. + Sekva Pako Metadatenoj + Sekvopakaj + Nova Sekvlisto + Redakti Liston + Profila Galerio-Stilo + Elekti la galerio-stilon + Klasika + Moderna + Loko-ekskluziva Afiŝo + Nur sekvantoj de la loko vidos ĝin. Viaj ĝeneralaj sekvantoj ne vidos ĝin. + %1$s financita el %2$s sats celo + Ĉi tiu enhavo ŝanĝiĝis. La aŭtoro eble ne vidis aŭ jesis la ŝanĝo + Kion tio signifas? + Ĉi tiu enhavo estas la sama ĝis la afiŝo + Saluton %1$s, ĉu ĉi tio ankoraŭ disponeblas? + Kaŝitaj Vortoj + Forigas afiŝojn el komunumaj feedoj kiam la komunumo publikigas NIP-9B-regulan dokumenton kaj evento ne plenumis ĝin. Neniu efiko kiam komunumo havas neniujn strukturitajn regulojn. + Kaŝi afiŝojn kiuj malobservas komunumajn regulojn + Kaŝi Pasvorton + Alŝutado de %1$s (%2$d el %3$d) + Ĉio + Malbona Peto - La servilo ne povas aŭ ne volas trakti la peton. + Neaŭtorizita - La uzanto ne havas validajn aŭtentigajn akreditivojn + Pago Necesa - La servilo postulas pagon por kompletigi la peton + Malpermesita - La uzanto ne havas alirrajtojn por fari la peton + Ne Trovita - La servilo ne povas trovi la petitan adreson + Metodo Ne Permesita - La servilo subtenas la petan metodon, sed ne la celatan rimedo + Ne Akceptebla - La servilo ne trovas enhavon, kiu kontentigas la peton. + Prokura Aŭtentigado Necesa - La uzanto ne havas validajn aŭtentigajn akreditivojn + Pettempolimo - La servilo ekspiris dum atendado de iu alia + Konflikto - La servilo ne povas plenumi la peton ĉar estas konflikto kun la rimedo + Foriris - La petita enhavo estis permanente forigita de la servilo kaj ne estos restarigita + Longo Necesa - La servilo rifuzas la peton ĉar ĝi postulas difinitan + Antaŭkondiĉo Malsukcesis - La antaŭkondiĉoj de la peto en la kapliniaj kampoj, kiujn la servilo ne povas plenumi + Utila Ŝarĝo Tro Granda - La peto estas pli granda ol la difinitaj limoj de la servilo, kaj la servilo rifuzas trakti ĝin + URI Tro Longa - La URL petita de la kliento estas tro longa por la servilo trakti. + Nesubtenata Amaskomunikila Tipo - La peto uzas amaskomunikilan formaton, kiun la servilo ne subtenas + Gamo Ne Kontentebla - La servilo ne povas plenumi la valoron indikitan en la kampo Range de la peto. + Atendo Malsukcesis - La servilo ne povas plenumi la postulojn indikitajn de la kaplinio Expect de la peto + Plibonigo Necesa - La servilo rifuzas trakti la peton per la nuna protokolo krom se la kliento plibonigas al malsama protokolo. + Interna Servila Eraro - La servilo renkontis neatenditan eraron kaj ne povas kompletigi la peton + Ne Efektivigita - La servilo ne povas plenumi la peton aŭ ne rekonas la petan metodon + Malbona Pordego - La servilo agas kiel pordego kaj ricevis nevalidan respondon de la gastiganto + Servo Neatingebla - Ĉi tio ofte okazas kiam servilo estas ŝarĝegita aŭ fermita por prizorgado + Pordega Tempolimo - La servilo agis kiel pordego aŭ prokuro kaj ekspiris, atendante respondon + HTTP-Versio Ne Subtenata - La servilo ne subtenas la HTTP-version en la peto + Varianto Ankaŭ Negocas - La servilo havas internan agorda eraron + Nesufiĉa Stokado - La servilo ne havas sufiĉan stokadon por sukcese trakti la peton + Buklo Detektita - La servilo detektas senfinan buklon dum traktado de la peto + Reta Aŭtentigado Necesa - La kliento devas esti aŭtentigita por aliri la reton + Kontraŭleĝa Konduto + Bildo konservita al la galerio + Personigo + Enskatolaj Relay-oj + Malĝusta faktura sumo (%1$s sats) de %2$s. Ĝi devus esti %3$s + Indeksaj Relay-oj + Relay-oj, kiuj specialiĝas pri gastigo de la metadatenoj kaj relay-listoj de ĉiuj, ekzemple purplepag.es. Amethyst uzos ĉi tiujn relay-ojn por trovi uzantojn, kiuj ne estas en viaj listoj. + Nova interesa aro + Renomi + Kradelvorta aroj + Nevalida ŝlosilo + Nevalida ŝlosilo: %1$s + Nevalida adreso + Amethyst ricevis URI por malfermi, sed tiu uri estis nevalida: %1$s + Ne eblas citi malnetajn noton + Ne eblas reagi al malnetaj noto + Ne eblas respondi al malnetaj noto + Ne eblas zap malnetajn noton + Ŝlosilo estas nepra + KeyPackage Relay-oj + Relay-oj kie viaj MLS KeyPackages estas publikigitaj (MIP-00). Aliaj uzantoj alprenas ĉi tiujn KeyPackages por inviti vin en Marmot-grupajn babiladojn. Enigu inter 1–3 relay-ojn kiuj akceptas KeyPackage-eventojn de vi kaj permesas publikajn legojn. + Akceptita Insigna Aro + Aventura Prologo + Aventura Legado + Aventura Sceno + Aplikaĵaj Rekomendoj + Rendevuo + Aplikaĵoj + Rendevua RSVP + Aŭdia Kaplinjo + Aŭdia Trako + Aŭtoritaj Podkastoj + Insignaj Premioj + Insignaj Difinoj + Blob Datumoj + Blob Kaplinjoj + Blokitaj relay-oj + Blogartikoloj + Blossom Aŭtentigo + Blossom Serviloj + Legosigna Listo + Dissendaj relay-oj + Kalendaro + Kanala Difino + Kanalaj Kaŝitaj Mesaĝoj + Kanala Listo + Kanala Mesaĝo + Kanalaj Metadatumoj + Kanala Silentiga Uzanto + Ŝaka Aŭtentigo + Ŝakaj Defioj + Ŝaka Remizo-Propono + Ŝakajn Ludon Akcepti + Fino de Ŝaka Ludo + Ŝakaj Ludoj + Ŝaka Movo + Klasifikitaj Anonco + Komentoj + Komunuma Difino + Komunuma Listo + Komunuma Afiŝo + Kontakta Karto + Taga Rendevuo + Forviŝoj + DM Dosiero + DM Mesaĝo + DM relay-oj + Skizoj + DVM Enhava Peto + DVM Enhava Respondo + DVM Stato + DVM Uzanta Peto + DVM Uzanta Respondo + Redaktoj + Emoĝia Pakaĵa Listo + Emoĝia Pakaĵoj + Efemera Babilado + Efemeraj Babilĉambroj + Plej ŝatataj Podkastoj + Plej ŝatataj relay-oj + Dosiertestaj Kaplinjoj + Dosierserviloj + Sekva Listo + Sekvataj Pakaĵoj + Geohash Sekvoj + Git Temo + Git Flikaĵo + Git Respondo + Git Deponejo + Kradvorta Sekvoj + Elstaraĵoj + Http Aŭtentigo + Indeksa relay-a Listo + Rekta Babilado + Rekta Elsendo + Medicinaj Datumoj + Kunvenĉambro + Kunvena Spaco + Muzika Ludlisto + Muzika Trako + Silentiga Listo + Nomataj Legosignoj + Nests Serviloj + Nostr Konekto + Notoj + NWC Peto + NWC Respondo + Malnova Legosigna Listo + Eliraj relay-oj + Personaj Listoj + Bildoj + Pingloj + Podkasta Epizodo + Podkasta Programo + Voĉdono + Voĉdona Respondo + Privataj relay-oj + Privataj Zaps + Profilo + Profila Insignoj + Profila Galerio + Prokuraj relay-oj + Publika Mesaĝo + Reagoj + relay-a Aŭtentigo + relay-a Malkovro + relay-a Monitora Anonco + relay-a Aro + Raportoj + Resendoj + Resendoj (16) + Ĉambra Ĉeesto + Sigeloj + Serĉaj relay-oj + Mallongaj videoj + Mallongaj videoj (Repl) + Torrentaj Komentoj + Torrentoj + Fidataj Provizantoj + Fidataj relay-oj + Uzanto Forigi + Uzantaj Agordoj + Uzanta Stato + Voĉa Mesaĝo + Voĉa Respondo + Reta Legosigno + Vikio + Trejnadoj + Zap Celoj + Zap Voĉdono + Zap Peto + Konataj + Lingva Montraj Preferoj + Por ĉiu tradukita lingvoparo, elektu, kiun lingvon montri unue. + Laste vidita antaŭ %1$s + Laste vidita ĵus nun + Neniam vidita + Laste vidita la %1$s (%2$s antaŭe) + Eliri + Hela + Rekta dissendo + Lokaj Relay-oj + Listo de relay-oj kiuj funkcias sur ĉi tiu aparato. + Ensaluti per sekreta ŝlosilo por impulsi afiŝojn + Ensalutu per sekreta ŝlosilo por sekvi + Vi uzas publikan ŝlosilon kaj publikaj ŝlosiloj estas nur-legitaj. Ensalutu per Privata ŝlosilo por povi kaŝi vorton aŭ frazon + Ensaluti per sekreta ŝlosilo por respondi + Ensaluti per sekreta ŝlosilo por sendi zapojn + Vi uzas publikan ŝlosilon kaj publikaj ŝlosiloj estas nur-legitaj. Ensalutu per Privata ŝlosilo por povi montri vorton aŭ frazon + Vi uzas publikan ŝlosilon kaj publikaj ŝlosiloj estas nur-legitaj. Ensalutu per Privata ŝlosilo por povi subskribi eventojn + Ensalutu per sekreta ŝlosilo por malsekvi + Vi uzas publikan ŝlosilon kaj publikaj ŝlosiloj estas nur-legitaj. Ensalutu per Privata ŝlosilo por povi alŝuti + Ensaluti per sekreta ŝlosilo por ŝati afiŝojn + Videoj + Miaj Emodžio-Pakoj + Aldonante %1$s… + Administrantaj privilegioj donitaj + Administrantaj privilegioj revokitaj + Malsukcesis aldoni %1$s: %2$s + Malsukcesis krei grupon: %1$s + Malsukcesis doni administrantajn privilegiojn: %1$s + Malsukcesis forlasi grupon: %1$s + Malsukcesis forigi membron: %1$s + Malsukcesis revoki administrantajn privilegiojn: %1$s + Malsukcesis ĝisdatigi: %1$s + MLS-Grupo + Informoj de grupo ĝisdatigitaj + + %1$d membro + %1$d membroj + + Membro forigita + Ne membro de ĉi tiu grupo + nekonata eraro + Amaskomunikiloj aldonitaj + Amaskomunikiloj aldonitaj al via Profila Galerio + Amaskomunikila elŝuto komenciĝis… + Amaskomunikilaj Serviloj + La medio estas tro granda por NIP-95 + Unue enigu la celon de la mesaĝo + Ne Eblas Alŝuti + Temo + Ne eblis forigi metadatenojn + Malsukcesis forigi privatajn metadatenojn el la medio. Alŝuto nuligita. + Legosignoj sukcese migritaj + Mankas fulma agordo + Pli da Opcioj + Movi al privata + Movi al publika + Alŝuti kovrilbildon + Elektu kvadratan bildon kiel arton por ĉi tiu ludomo. + + +%1$d plia trako + +%1$d pliaj trakoj + + + %1$d trako + %1$d trakoj + + + %1$d trako + %1$d trakoj + + Alŝutante kovrilon kaj eldonante. Ĉi tio daŭros eĉ se vi forlasas la ekranon. + Alŝuti aŭdian dosieron + Elektu MP3, WAV aŭ FLAC. Ĝi estos alŝutita al via amaskomunikilservilo ĉe Konservado. + Alŝuti kovrilbildon + Elektu kvadratan bildon kiel arton por ĉi tiu peco. + Alŝutante kovrilon + aŭdion kaj eldonante. Ĉi tio daŭros eĉ se vi forlasas la ekranon. + Ŝalta sono. Alklaki por silentigi + Silentigita. Alklaki por malsilentigi + Miaj Listoj + Nomo estas necesa + Namecoin Agordoj + Identeco + Legi vian publikan ŝlosilon + Mesaĝado + Interŝanĝi mesaĝojn kun aliaj napplet-oj + Klavarago + Ligi klavarpremaĵojn + Sciigoj + Montri al vi sciigojn + Relay-oj + Legi, subskribi & publikigi viajn eventojn + Reto + Alporti retajn kaj Blossom-rimedojn + Stokado + Sia propra privata stokado + Temo + Kongrui kun la koloroj de via aplikaĵo + Alŝutoj + Alŝuti dosierojn al via amaskomunikilara servilo + Pagoj + Pagi Lightning-fakturojn + Ĉi tiu nApplet volas legi vian publikan ŝlosilon. + Ĉi tiu nApplet volas legi vian profilon kaj kontodatenojn. + Ĉi tiu nApplet volas montri al vi sciigojn. + + Ĉi tiu nApplet volas pagi Lightning-fakturon por %1$d sat. + Ĉi tiu nApplet volas pagi Lightning-fakturon por %1$d sats. + + Ĉi tiu nApplet volas subskribi kaj publikigi specon %1$d eventon kiel vi. + Ĉi tiu nApplet volas sendi ĉifritan eventon kiel vi. + Ĉi tiu nApplet volas subskribi kaj publikigi specon %1$d eventon kiel vi: + Ĉi tiu nApplet volas legi eventojn el viaj relay-oj. + Ĉi tiu nApplet volas alporti retan rimedon. + Ĉi tiu retejo volas subskribi specon %1$d eventon per via Nostr-ŝlosilo. + Ĉi tiu nApplet volas uzi sian privatan stokadan lokon. + Ĉi tiu nApplet volas alŝuti dosieron al via amaskomunikilara servilo. + nApplet-oj + Ne povis sendi mesaĝon + Silentigi ĉi tiun parolanton + Restarigi ĉi tiun parolanton + Forlasi + Ne povis marki ĉambron kiel fermitan. Forlasante tamen — ĉambro aŭtomate fermiĝos. + + %1$d aŭskultanto + %1$d aŭskultantoj + + Malaltigi manon + Silentigi mikrofonon + Masilentigi mikrofonon + Silentigi + Ne povis konservi vian nestan servilan liston. Provu denove. + Nesto — Viva + Nestoj + Konservas aŭdion luданте dum ĉambro estas malfermita. + Nesto konektita + Halti + Tuŝetu por reveni. + Sekvi + Silentigi + Malekvi + Masilentigi + forlasis la neston + aliĝis kiel spektanto + supreniris scenen + levis sian manon + parolas + Levi manon + Malsilentigi + Konservita kiel kind-10112 anstataŭebla evento por ke aliaj klientoj povu legi vian preferon. + Viaj serviloj + Enkonstruitaj sugestoj kiujn vi povas aldoni al via listo per unu tuŝeto. + Rekomenditaj serviloj + Nestaj serviloj + neniam + Nova Insigono + Nova kalendaro + Nova kalendara evento + Nova Komunumo + Moderantoj + Relay-oj + Malpermesitaj uzantoj + Komunuma komento (1111) + Longforma artikolo (30023) + Bildafiŝo (20) + Mallonga teksto (1) + Mallonga video (22) + Videoafiŝo (21) + Permesitaj eventaj specoj + Ĝenerala maksimuma evento-grandeco (laŭvole) + Kontroleblaj reguloj (laŭvole) + Fid-reto pordego (laŭvole) + Nova emodžio-pako + Nova Celo + Nova artikolo + Nova ludlisto + Nova muzika peco + Nova produkto + Novaj Petoj + Novaj Fadenoj + Nova Ekzercado + + %1$d aktivo enkludita + %1$d aktivoj enkluditaj + + Blossom-aplikaĵoj ne trovitaj. Bonvolu instali lokan Blossom-aplikaĵon por vidi ĉi tiun dosieron + Ne eblas malfermi Blossom-ligilojn + Neniu fotila app trovita sur tiu ĉi aparato + Neniu Lightning-Adreso agordita + Neniu aplikaĵo trovis por trakti tiun ĉi pagon. Bonvolu instali kongruan monujon. + Neniu aplikaĵo instalita por trakti %1$s-pagojn. Bonvolu instali kongruan monujon. + Neniaj reagoj selektitaj. Premu longe por ŝanĝi + Neniaj reagoj agordita + Neniuj Monujoj trovitaj por pagi Lightning-fakturon. Bonvolu instali Lightning-monujon por uzi Zaps + Neniuj Monujoj trovitaj por pagi Lightning-fakturon (Eraro: %1$s). Bonvolu instali Lightning-monujon por uzi Zaps + Neniu kvanto da zapoj agordita. Longe premi por ŝanĝigi + Sciigoj + Kategorioj + Liverado + En-aplikaĵa montrado + nun + Nowhere Arto + Nowhere Faleto + Nowhere-evento + Nowhere Forumo + Nowhere-monkolekto + Nowhere-retejo + Nowhere Mesaĝo + Nowhere Peticio + Nowhere Butiko + nSite-oj + Nudeco + Ne eblas konstrui eventreferencon + Neniu ricevant-pubŝlosilo en la noto + Nutzap-oj estas publikaj kaj malkaŝus ĉi tiun privatan noton. Uzu anstataŭe Lightning Zap. + Nutzap malsukcesis + + Sendi %1$s sats, %2$d maniero + Sendi %1$s sats, %2$d manieroj + + Bitcoin-ĉena fondaĵo ne estas agordita + Ne eblis elsendi la transakcion + Ne eblis konstrui la transakcion + Ne eblis ŝargi vian Bitcoin-saldon + Pago sendita, sed la Zap-kvitanco ne povis esti publikigita + + Pago sendita (%1$d el %2$d kvitanco publikigita), sed la sekva kvitanco ne povis esti publikigita + Pago sendita (%1$d el %2$d kvitancoj publikigitaj), sed la sekva kvitanco ne povis esti publikigita + + Ricevant-parto estas sub polvo + Ne eblis subskribi la transakcion + ~1 h + Rapida + Normala + Malrapida + + Disigo inter %1$d ricevanto + Disigo inter %1$d ricevantoj + + + Preterpasante %1$d ricevanton kun nur Lightning-adreso — la ĉenereto bezonas Nostr-publikan ŝlosilon por derivi la adreson. + Preterpasante %1$d ricevantojn kun nur Lightning-adreso — la ĉenereto bezonas Nostr-publikan ŝlosilon por derivi la adreson. + + + Uzi la %1$d-vojan Zap-disigon de ĉi tiu noto + Uzi la %1$d-vojan Zap-disigon de ĉi tiu noto + + elsendado + konstruado de la transakcio + ŝargado de saldo + publikigado de la kvitanco + subskribo + Nur po unu voĉdono por uzanto estas permesita en ĉi tia enketo + Malfermi ĉiujn reagojn al ĉi tiu afiŝo + Malfermitaj + Socks-Konektejo de Orbot + Bitcoin-Esploristo (OTS) + Estas pruvo ke ĉi tiu afiŝo estis subskribita iam antaŭ %1$s. La pruvo estis stampita en la Bitcoin-blokĉeno en tiu dato kaj horo. + Tempomarko-Pruvo + Eligaj Relay-oj + Pasvorto estas necesa + Paŭzi + Pagi + Mesaĝo de %1$s + Pagceloj + Aldonu pagadresojn por malsamaj retoj (ekz. bitcoin, lightning, ethereum). + PDF konservita en Elŝutoj/Amethyst + Sekvolistaj metadatenoj povas esti viditaj de ĉiu ajn sur Nostr. Nur viaj privataj membroj estas ĉifritaj. + Sekvolista Metadatenoj + Bildoj + Alpingli supren + Alpingli al profilo + Ludi + + %1$d epizodo + %1$d epizodoj + + Aŭtoroj de Enketoj ne povas voĉdoni en siajn proprajn enketojn. + (0–100)% + Balotenketo estas fermita al novaj voĉoj + Multobla elekto + Elekto %1$s + Ununura elekto + Ne eblas voĉdoni + Balotadoj + Afiŝi + + Ĉi tiu afiŝo havas pli ol %1$d kromnomon + Ĉi tiu afiŝo havas pli ol %1$d kromnomojn + + Antaŭrigardi Bildon de %1$s + Privatecaj Opcioj + Privateca Politiko + <Privata mesaĝo nemalĉifrebla.>\n\nVi estis citita en privata konversacio inter %1$s kaj %2$s. + DM Enskatolaj Relay-oj + Enigu inter 1–3 relay-ojn por funkci kiel via privata enkomunkilo. Aliaj uzos ĉi tiujn relay-ojn por sendi DM-ojn al vi. DM Enskatolaj relay-oj devus akcepti ajnan mesaĝon de iu ajn, sed nur permesi al vi elŝuti ilin. Bonaj opcioj estas:\n - inbox.nostr.wine (pagenda)\n - auth.nostr1.com (senpaga)\n - you.nostr1.com (personaj relay-oj - pagendaj) + Uzanto ricevas DM-ojn sur ĉi tiuj relay-oj + Privata Mesaĝo + Fari privata: donaci la noton nur al sciigitaj uzantoj + Respondoj al privata noto ĉiam restas privataj + Videbla al + Privataj Hejmaj Relay-oj + Enigu inter 1–3 relay-ojn por konservi eventojn, kiujn neniu alia povas vidi, kiel viaj Skizaĵoj kaj/aŭ aplikaĵagordoj. Ideale, ĉi tiuj relay-oj estas aŭ lokaj aŭ postulas aŭtentikigon antaŭ elŝuti la enhavon de ĉiu uzanto. + Blasfemo / Malama Parolado + Profilo + Profilaj insignoj + Aplikaĵaj Rekomendoj + Profilaj Insignoj + Sekvanta Fluo + Ricevita Zap-fluo + Profila Interfaco + profiloj + Proponi Redakton + Prokuro-Relay-oj + Agregataj relay-oj, kiujn la aplikaĵo devas uzi por elŝuti viajn fluojn, ekzemple filter.nostr.wine. Ĉi tio anstataŭas la sendkesta modelon kaj igos la aplikaĵon konektiĝi nur al la relay-oj en viaj listoj. + Publika Babilado + Publikaj babilejoj estas videblaj al ĉiuj en Nostr kaj ĉiu ajn + povas partopreni en ili. Ili estas bonegaj por malfermitaj komunumoj pri specifaj temoj. + Moderado povas esti kontrolata per forigo de afiŝoj sur siaj relays + Enigu inter 1–3 relays, kiuj gastigas ĉi tiun grupon. + Nostr-klientoj uzas ĉi tiun agordon por scii, kie elŝuti mesaĝojn kaj kien sendi viajn mesaĝojn. + Relay-oj + Publikaj Babilejaj Metadatenoj + Publikaj Babilejoj + Publikaj Eligaj/Hejmaj Relay-oj + Ĉi tiu relay-tipo konservas ĉian vian enhavon. Amethyst sendos viajn afiŝojn ĉi tien kaj aliaj uzos ĉi tiujn relay-ojn por trovi vian enhavon. Enigu inter 1–3 relay-ojn. Ili povas esti personaj relay-oj, pagendaj relay-oj aŭ publikaj relay-oj. + Uzanto afiŝas sian enhavon al ĉi tiuj relay-oj + Publika Mesaĝo + Publikaj Enskatolaj Relay-oj + Ĉi tiu relay-tipo ricevas ĉiujn respondojn, komentojn, ŝatojn kaj zap-ojn al viaj afiŝoj. Ili povas esti pagendaj aŭ senpagaj relay-oj. Limigoj fiksitaj de la relay-operatoro povas limigi la sciigojn, kiujn vi ricevas, kaj por bone kaj por malbone. Ekzemple, se vi estas atakata de komentspamo, pagendaj relay-oj povas filtri la spamon. Enigu inter 1–3 relay-ojn. + Uzanto ricevas sciigojn sur ĉi tiuj relay-oj + ID de Noto + Forigi + Silentigi fadenon + Kunhavigi + Kunhavigi Ligilon + Malsilentigi fadenon + Reago + Reagoj + Reaga Vico + Legi el plusendilo + La kvanto en bajtoj kiuj estis ricevitaj de tiu ĉi relay, inkluzive de filtriloj kaj eventoj + Nur-lega uzanto + Alklaku kaj tenu por registri mesaĝon + Relay-Babilejo + Relay-babilejoj estas babilaj grupoj kontrolataj de sia hejma relay. + Ili estas videblaj al ĉiuj en Nostr kaj ĉiu ajn povas partopreni en ili. + Ili estas bonegaj por malfermitaj komunumoj pri specifaj temoj. Kelkaj el ĉi tiuj grupoj estas efemeraj + kaj tial babilmesaĝoj malaperas kun la tempo + Relay-Babilejaroj + Eventoj + IP-oj + Tipoj + Uzantoj + Agordoj + Relay-agordoj + eliraj listoj + Plusendiloj + Ŝargi & sendi Zap + Sendi Zap + Ŝargi %1$s sats al %2$s kaj Zap-i %3$s %4$s sats · kotizo ≈ %5$s sats + Forigi + Forigi el Publikaj Legosignoj + respondi ĉi tie… + Sciigi: + + Peti Forigon + Peto pri Malapero + Malsukcesis restarigi Marmot-staton: %1$s + Restarigi Marmot-Staton + Marmot-stato restarigita. + Reprovi + Kalendarlistoj + Kalendaroj + Ŝako + Malkovri + Hejmo + Importi sekvantojn + Mesaĝoj + Ludlistoj + Muziko + Sciigoj + Epizodoj + Podkastoj + Plani afiŝon + Nuligi planon + Planitaj afiŝoj eble ne publikiĝos ĝis vi remalfernas la app-on. La planitaj afiŝoj de aliaj kontoj ne ekiĝos dum tiu ĉi konto estas aktiva. Ŝaltu ĉiam-ŝaltitan en Agordoj → Interfacaj Preferoj por fidinda fona planado. + Planitaj afiŝoj eble ne publikiĝos ĝis vi poste remalfernas la app-on. Ŝaltu ĉiam-ŝaltitan en Agordoj → Interfacaj Preferoj por fidinda fona planado. + Planitaj afiŝoj + Sendi nun + %1$s · post %2$s + %1$s · antaŭ %2$s + Morgaŭ + Eraro: %1$s + Noto-ID kopiita + + Elsalutita · %1$d planita afiŝo forigita + Elsalutita · %1$d planitaj afiŝoj forigitaj + + Elsalutita + + Vi havas %1$d planitan afiŝon, kiu ankoraŭ ne estis publikigita. Elsalutado permanente forigos ĝin. + Vi havas %1$d planitajn afiŝojn, kiuj ankoraŭ ne estis publikigitaj. Elsalutado permanente forigos ilin. + + Planita afiŝo malsukcesis + Planita afiŝo publikigita + + al %1$d relay + al %1$d relays + + Nuligita + Malsukcesis + Planita + Sendante… + Sendita + + · %1$d sendenda en 1h + · %1$d sendendan en 1h + + + %1$d en atendovico + %1$d en atendovico + + Bonaj opcioj estas:\n%1$s + Serĉaj Relay-oj + Serĉaj Relay-oj + Listo de relay-oj por uzi kiam serĉante enhavon aŭ uzantojn. Etikedado kaj serĉo ne funkcios se neniuj opcioj estas disponebla. Certigu ke ili implementas NIP-50. + serĉeblaj eventoj + Sekreta ŝlosilo (nsec) kopiita al tondujo + Vi ankoraŭ ne blokis iujn uzantojn. + Sekurecaj Filtriloj + Neniuj kaŝitaj vortoj. Aldonu vorton sube por kaŝi afiŝojn enhavantajn ĝin. + Blokita enhavo + Filtraj preferoj + Neniuj kontoj estis flagitaj kiel spamo en tiu ĉi sesio. + Sendi + Sendi ĉiujn ricevitajn profilajn (tipo 0) eventojn al via loka relay + Plusendi profilojn al loka relay + Elspendebla por tiu ĉi ricevanto: %1$s sats + Pago malsukcesis + Transakcio: %1$s + Pagante per %1$s… + La servilo ne provizis URL post alŝuto + Agordoj + Neniaj silencigitaj fadenoj + Silencigitaj fadenoj + Kunhavigi kiel Bildon + Kunhavigi kiel Bildan URL + HLS Alŝuto + Kunhavigi aŭ Konservi + Mallongaj videoj + Montri ĉifritan privatan ŝlosilon QR-kode + Inkluzivi rektajn kaj grupajn mesaĝojn en la Sciiga langeto. Malŝaltu por konservi mesaĝojn nur en la Mesaĝa langeto. + Montri Mesaĝojn + Montri privatan ŝlosilon QR-kode + Subskrib-peto rifuzita + Certigu ke la subskribista aplikaĵo aŭtoris ĉi tiun transakcion + La ekstera subskribanto resendis utilan ŝarĝon kiu estas stranga por la peto. Povas ekzisti eraro en Amethyst aŭ en la Subskribanto. + Subskribanto ne trovita + Ĉu la Subskribanta app estis malinstalita? Kontrolu ĉu la subskribanto estas instalita kaj havas tiun ĉi konton. Elsalutu kaj ensalutu denove se la subskribanta app ŝanĝiĝis. + Retroiri %1$d sekundojn + Antaŭiri %1$d sekundojn + Aplikoj + Spamo + La nombro da spamaj eventoj venantaj de tiu ĉi relay + Spamistoj + Montri du sciiglangetojn — Sekvataj (personoj kiujn vi sekvas) kaj Ĉiuj. La nelegita indikilo brilas nur por agado de personoj kiujn vi sekvas. + Dividi sciigojn laŭ Sekvoj + Provas forigi privatajn metadatenojn el subtenataj mediodosieroj antaŭ alŝuto + Forigi privatajn metadatenojn + Legas finitajn trejnadojn el Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) kaj sugestas dividi ilin kiel afiŝon. Permeso estas petata nur kiam vi konektas. + Sugesti trejnadojn por dividi + Sistemo + Etoso + Malhela, Hela aŭ Sistema Temo + Ĉi tiu mesaĝo malaperos post %1$s + + +%1$d\nrespondo + +%1$d\nrespondoj + + Hodiaŭ + Persona + Faru la vian + Defaŭlta + Kaŝu vian IP de hazardaj relay-oj + Plena Privateco + Kaŝu vian IP en ĉiuj konektoj + Interna + Malŝaltita + Tor/Privatecaj Antaŭagordoj + Rapide modifi ĉiujn agordojn sube + Ĉio krom Amaskomunikilaro + Kaŝu vian IP de ĉio, krom bildoj kaj videoj + DM Relay-oj + Devigi Tor por sendi kaj ricevi DM-ojn + Bildoj + Devigi Tor dum ŝargado de bildoj + Amaskomunikilaj Alŝutoj + Devigi Tor dum alŝutado de enhavo + Monaj Operacioj + Devigi Tor por zap-, lightning- kaj Cashu-transferoj + Nefidataj Relay-oj + Devigi Tor sur elirejo/enirejaj relay-oj + Nostr-Adresverifikado + Devigi Tor dum verifikado de NIP-05-adresoj + Onion-URL/Relay-oj + Uzu Tor por iu ajn .onion-URL + Profilbildoj + Devigi Tor dum ŝargado de profilbildoj + Fidataj Relay-oj + Devigi Tor sur ĉiuj relay-oj en viaj listoj + URL-Antaŭrigardoj + Devigi Tor dum ŝargado de URL-antaŭrigardoj + Videoj + Devigi Tor dum ŝargado de videoj + Baza + Uzu Tor kiam ĝi estas postulata de la servilo + Malsukcesis malfermi dosieron + Neniu torrent-aplikaĵo instalita por malfermi kaj elŝuti la dosieron. + La evento ne havas sufiĉajn informojn por konstrui magnetan ligilon + Uzu la spuratan dissendanton kiam vi sendas eventojn. Montras vivan progreson kaj relay-specifan staton dum dissendado. + Spurataj dissendoj + Traduki Al + Elektu la lingvon, al kiu traduki enhavon. + Tradukoj + Fidindaj Relay-oj + Relay-oj, kiujn vi fidas sufiĉe por ne bezoni Tor-konekton + Kompleta + Rendimento + Simpligita + Interfaca Preferoj + Interfaca Reĝimo + Elekti la afiŝostilo + Ne eblas krei Lightning-fakturon antaŭ sendi la Zap. La Lightning-monujo de la ricevanto sendis la sekvan eraron: %1$s + Ne eblas dividi bildon, bonvolu reprovi poste… + Ne eblas dividi videon, bonvolu reprovi poste… + Neaŭtorizita Malĉifrado + La subskribanto ne aŭtorizis malĉifradon kiu estas necesa por plenumi tiun ĉi operacion. Aktivigu NIP-44 malĉifradojn en via subskribanta app kaj provu denove + Malsekvi + Malpingli + Malalpingli el profilo + Alŝuto nuligita + Alŝuta Eraro + Voĉa alŝuto malsukcesis: %1$s + Malsukcesis alŝuti voĉan mesaĝon + NIP-95 ankoraŭ ne estas subtenata por voĉaj mesaĝoj + %1$d%% funkcia tempo + Aktiva Tor-Motoro + Uzu la internan version aŭ Orbot + Uzanto ne havas lightning-adreson por ricevi satojn + Uzanto %1$s ne havas Lightning-adreson agordita por ricevi sats + Historio de Malapero + Peto pri malapero sendita + Pli bona kvalito je pli malgrandaj dosieroj, sed ne ĉiuj aparatoj subtenas H.265-reproduktadon. + Uzi H.265/HEVC Kodeken + Videa elŝuto komenciĝis… + Videludilaj Butonoj + Video konservita en la telefona videogalerio + Voĉa Afiŝo + Profunda + Alta + Neŭtrala + Neniu + Voĉa Respondo + Monujo + Cashu-monujo (NIP-60) + Via Wallet Connect-provizanto resendis la sekvan eraron: %1$s + Redakti monfarejojn + Montras avermesaĝon kiam afiŝoj aŭ profiloj havas raportojn de viaj sekvatoj + Averti pri raportoj + Aldoni Retan Legosignon + Redakti Retan Legosignon + Retaj Legosignoj + Kion vi pensas? + Ekzercadoj + Skribi mesaĝon… + Skribi al Plusendilo + La kvanto en bajtoj kiuj estis senditaj al tiu ĉi relay, inkluzive de filtriloj kaj eventoj + Zapoj + + Renomi + Konservi diff --git a/commonsUI/src/commonMain/composeResources/values-eo/strings.xml b/commonsUI/src/commonMain/composeResources/values-eo/strings.xml index 25d402b4f2..2f82086233 100644 --- a/commonsUI/src/commonMain/composeResources/values-eo/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-eo/strings.xml @@ -1822,4 +1822,1219 @@ Fonto: Serviloj: Malfermi + Pri & Jura + Kontaj Agordoj + Aldoni + Aldoni Blossom-Servilon + Aldoni NIP-96 Servilon + Kiam ŝaltita, Amethyst aldonas NIP-89 klientan etikedon al eventoj kiujn vi publikigas. + Aldoni klientan etikedon al miaj eventoj + Aldonas averton de delikata enhavo antaŭ montri ĉi tiun enhavon + Delikata Enhavo + Aldoni al Publikaj Legosignoj + Uzas aparatan AI-modelon por proponi tekstajn korektojn kaj tondoŝanĝojn. + Proponi tekstajn plibonigojn + Konservas konektojn al viaj enirkestaj relay-oj aktivaj por realtempaj sciigoj + + Konektita al %1$d enirkest-relay + Konektita al %1$d enirkest-relays + + + Konektita al %1$d relay + Konektita al %1$d relays + + Konektante al enirkestaj relay-oj… + Amethyst-Sciigoj Aktivaj + Sciigoj por alvenantaj voĉaj kaj vidaj alvokoj + Alvenantaj alvokoj + %1$s akceptis vian ŝakinviton + Sciigos vin pri ŝakludaj eventoj + Ŝako + Ŝakaj ĝisdatigoj + %1$s movis — via vico + Sciigas vin kiam privata mesaĝo alvenas + Privataj Mesaĝoj + Novaj mesaĝoj + Marki kiel Legita + Sciigos vin kiam iu menciigas aŭ citas vin en afiŝo + %1$s menciis vin + Mencioj + Novaj mencioj + Sciigos vin kiam iu reagas al via afiŝo + %1$s reagis al via afiŝo + por %1$s + Reagoj + Novaj reagoj + Sciigos vin kiam iu respondas al via afiŝo + Respondoj + Novaj respondoj + Respondi + Sciigoj kiam planita afiŝo estas publikigita aŭ malsukcesas publikiĝi. + Planitaj afiŝoj + Sciigas vin kiam iu zapas vin + %1$s satoj + pro %1$s + El %1$s + Zapojn Ricevitaj + Novaj zap-oj + Aplikaĵaj Agordoj + Atestado + Peto de Atestado + Kompetento de Atestanto + Rekomendo de Atestanto + Sonbildigilo + Konservas skizon aŭtomate kiam vi tajpas aŭ forlasas verkiston kun nesendita teksto kaj sendas al viaj privataj eligaj relay-oj. + Aŭtomate krei skizojn + Mergita Rulumado + Kaŝi Navigilajn Stangojn dum Rulumado + Antaŭrigardo de Bildo + Aŭtomate montri imaĝojn kaj GIFojn + Ludado de Video + Aŭtomate montri videojn kaj GIFojn + Profila Bildo + Montri Profilajn bildojn + Antaŭrigardo de URL + Montri antaŭrigardoj de URL + Aŭtomata Videoludado + Aŭtomate ludi videojn kiam videblaj sur la ekrano + Ne eblas forigi metadatenojn el AVIF: %1$s + Premiumi Insignon + Malantaŭen + Sekurkopii Ŝlosilojn + Insignoj + Aŭtentikigo malsukcesis + Biometriko malsukcesis aŭtentikigi la posedanton de tiu ĉi telefono + Biometriko malsukcesis aŭtentikigi la posedanton de tiu ĉi telefono. Eraro: %1$s + Bloki + Blokitaj Relay-oj + Amethyst neniam konektiĝos al ĉi tiuj relay-oj + Blokitaj Uzantoj + Nova signolibra listo + Metadatenoj de signolibra listo + Metadatenoj de signolibraj listoj povas esti viditaj de ĉiu sur Nostr. Nur viaj privataj membroj estas ĉifritaj. + Legosignoj + Plifortigi + Malsupra Navigada Strio + Elsendaj Relay-oj + Relay-oj, kiuj specialiĝas pri elsendo de viaj notoj al ĉiuj aliaj relay-oj, ekzemple sendit.nosflare.com. Amethyst aldonos ĉi tiun relay-on al ĉiuj novaj eventoj faritaj de vi + Retumilo + Plej ŝatataj + Ŝargante per la malferma reto. Klaku por uzi Tor. + Ŝargante per Tor. Klaku por uzi la malferma reton. + + %1$s, %2$d evento + %1$s, %2$d eventoj + + Alŝuto de bildo malsukcesis + La elektita bildo ne povis esti alŝutita. Provu denove aŭ algluu URL-on. + Dividi kalendaran eventon + Malfermi en mapoj + Malfermi ligon + Okazas nun + %1$s · finiĝas %2$s + + Komenciĝas post %1$d minuto + Komenciĝas post %1$d minutoj + + Averto kiam evento, kiun vi partoprenas, baldaŭ komenciĝos. + calendar_reminders + Kalendaraj memorigoj + Kalendra evento + Sciigo aperas kiam evento, kiun vi partoprenas, baldaŭ komenciĝos. + Sendi memorigojn + + %1$d min + %1$d min + + Kalendaraj memorigoj + Tago + Fluo + Monato + Semajno + Akcepti + Bluetooth + Fotilo malŝaltita + Fotilo ŝaltita + Aŭskultiloo + Malkonekti + Alvenanta alvoko + Alvenanta vida alvoko… + Alvenanta voĉa alvoko… + Silentigi + Alvokoj + Sciigo pri daŭranta alvoko + Amethyst bezonas aliron al fotilo kaj mikrofono por komenci vidan alvokon. Bonvolu ebligi ilin en la aplikaĵagordoj. + Amethyst bezonas aliron al mikrofono por komenci voĉan alvokon. Bonvolu ebligi ĝin en la aplikaĵagordoj. + Rifuzi + Alvokoagordoj + Laŭtparolisto + Malsilentigi + Alvoko kun %1$s + Atgara URL ne trovita en la respondo de %1$s + Nuligi + Cashu Signo + Kontrolado de monfarejo… + Ne eblis elaĉeti Cashu + La monfarejo provizis la sekvan erarmesaĝon: %1$s + Ricevita + Sendita + Kongruaj monfarejoj + + +%1$d plia + +%1$d pliaj + + Popularaj monfarejoj + + Rekomendita de %1$d alia + Rekomendita de %1$d aliaj + + Movis %1$s sat al %2$s. + Neniu kongrua Cashu-monujo trovita sur sistemo + + %1$d atendata fakturo + %1$d atendataj fakturoj + + Pagi %1$s sat + ĝis %2$s sat en kotizoj? + Publiki forigan peton por via kind:38000-rekomendo de %1$s. Relay-oj kiuj honoras NIP-09 forigos ĝin. + Reakireditaj %1$s sats trans %2$s pruvoj. + Cashu Ricevita + %1$s sats estis senditaj al via monujo. (Kotizoj: %2$s sats) + + Financoj konservitaj ĉe %1$d monfarejo, kiun vi ne uzas + Financoj konservitaj ĉe %1$d monfarioj, kiujn vi ne uzas + + Atendado ke la fakturo estu pagita… + + %1$d monfarejo + %1$d monfarioj + + Ĉesi transiĝon + Transigi al aparato + Infanprotektaj Normoj + Akcesoraĵoj + Arto + Libroj + Vestaĵo + Kolektindaĵoj + Artizanaĵo + Elektroniko + Kondiĉtrejnado + Manĝaĵo + Mebloj + Hejmo + Diversaĵoj + Oficejo + Alia + Hejmbestabloj + Sporto + Ĉiutaga + Ĉiumonata + Unufoja + Ĉiusemajna + Pagi %1$s per %2$s? + Pagi tiun ĉi fakturon per %1$s? + La debita servo ne kompletigis la pagon. + Enigu validan sumon por tiu ĉi oferto. + Petante fakturo… + Fermi ĉiujn reagojn al ĉi tiu afiŝo + Fermitaj + Komunumoj + Skizo havas %1$d bajtojn; ĉi tiu komunumo limigas ĉi tiun tipon al %2$d bajtoj. + Skizo havas %1$d bajtojn; ĉi tiu komunumo limigas eventojn al %2$d bajtoj. + Vi jam afiŝis %1$d eventojn de ĉi tiu tipo hodiaŭ (limo %2$d). + Agordoj de Verkado + Defaŭlta pordo estas 9050 + Konektitaj Relay-oj + Aktuala listo de uzataj relay-oj + Procento de sukcesaj konektoj al la relay + Ĉiam + Neniam + Senmezura WiFi + Aldoni Dokumenton + Aldoni Bildon + Aldoni Amaskomunikilaron + Aldoni Videon + Kaŝi + Averti + Montri + Konversacioj + Konvertas animacian GIF al MP4-video por pli malgranda dosiero kaj pli bona reproduktad-kongrueco. + Konverti GIF al MP4 + Kopiita ID de noto (@note1) al tondujo + Kopiita tekston de noto al tondujo + Kopiita al poŝujo + Kopiita @npub de aŭtoro al tondujo + Kopii mian sekretan ŝlosilon + Kopii al poŝujo + Ne eblis kunmeti LNUrl el Lightning-Adreso "%1$s". Kontrolu la agordon de la uzanto + Ne eblis kontroli la elŝutitan dosieron post alŝuto: %1$s + Ne eblis elŝuti alŝutitan medion de la servilo + Ne eblis preni fakturon de %1$s: %2$s + Ne eblis malfermi la kunpremitan dosieron + Monujo ne trovita + Amethyst ne povis trovi ajnajn monujo-aplikojn, kiuj subtenas Nostr Wallet Connect (NWC). +\n\nKion vi povas fari: +\n\t1. Kontrolu NWC-subtenon: Duoble kontrolu, ĉu via preferata monujo-aplikaĵo estas kongrua kun Nostr Wallet Connect. +\n\t2. Krei Konekton: Iru al via monujo-aplikaĵo kaj kreu novan NWC-konekton. +\n\t3. Ligi al Amethyst: Via monujo kutime donos al vi tri opciojn: +\n\t\t3.1 Aŭtomata Ligo: Butono por aŭtomate malfermi kaj konekti al Amethyst. Se jes, alklaku tiun butonon, malfermu Amethyst kaj alklaku konservi sur la nova ekrano. +\n\t\t3.2 Mana Ligo: Konekta URI, kiun vi povas kopii kaj alklaki la algluu-ikonon sur ĉi tiu ekrano por rekte enigi ĝin. +\n\t\t3.3 QR-Kodo: La monujo kreas QR-kodon, kiun vi povas legi per la QR-koda butono sur ĉi tiu ekrano. + + Krei + t + Danĝera Zono + Malhela + Priskribo + Fari publika + Babilejoj + Komunumoj + Fluo-Algoritmoj + Sekvi-Pakaĵoj + Vivaj Transigoj + Merkato + Legaĵoj + DM Enskatolaj Relay-oj + DMs + Ne Traduki El + Lingvoj montritaj ĉi tie ne estos tradukitaj. Elektu lingvon por forigi ĝin kaj havi ĝin tradukita denove. + Konservi al Telefono + Elŝutante videon… + Malneta Noto + Skizoj + Kontoj + Krei + Fluoj + Navigi + Sistemo + Vi + + %1$d tago + %1$d tagoj + + + %1$d horo + %1$d horoj + + + %1$d minuto + %1$d minutoj + + + %1$d monato + %1$d monatoj + + + %1$d semajno + %1$d semajnoj + + + %1$d jaro + %1$d jaroj + + Redakti kalendaron + Redakti kalendaran eventon + Redakti Komunumon + Redakti emodžio-pakon + Redakti ludumon + Redakti Afiŝon + Privataj emodžioj estas stokitaj ĉifrite sur relay-oj kaj videblaj nur al vi. Ili aperas en via reaga menuo kaj „:" aŭtokompleta same kiel publikaj. + Publikaj emodžioj estas videblaj al ĉiuj kaj aperas en via reaga menuo kaj „:" aŭtokompleta elektilo kiam ĉi tiu pako estas en via emodžio-listo. + Emodžioj + Ĉifri dosierojn antaŭ alŝuto por privateco. Kelkaj serviloj eble ne akceptas ĉifritajn dosierojn en senpagaj kontoj. + Ĉifri dosierojn + Malapera Babilejo + Eraro + Ne eblis pagi fakturon + Ne eblis retiri + Ne eblas malfermi pagon + Nekapable sendi zapon + Eraro malfermi subskribistan aplikaĵon + La subskribista aplikaĵo ne povis esti trovita. Kontrolu ĉu la aplikaĵo ne estis malinstalita + Eraro analizante de erara mesaĝo + Eraro Analizante JSON de %1$s. Kontrolu la Lightning-agordon de la uzanto + Ne eblas preni fakturon de la ricevanto's serviloj + Malfermi en retumilo + Ne eblas ludi ĉi tiun videon + La kodeko aŭ formato ne estas subtenata sur ĉi tiu aparato (%1$s). Provu malfermi ĝin en via retumilo. + Eraroj + relay-a Sinkronigo + eventoj de vi + eventoj al vi + AMRAP + Cirkvito + Biciklado + Dieto + EMOM + Fastado + Tura marŝado + Meditado + Remado + Kurado + Fortekzercado + Naĝado + Promeno + Jogo + Etendi + Limdato + Eksporti relay-agordojn + Malsukcesis forigi: %1$s + Malsukcesis ĉifri vian privatan ŝlosilon + Malsukcesis konservi la bildon + Malsukcesis konservi la PDF + Malsukcesis konservi la videon + Multaj serviloj ne akceptas ĉifritajn dosierojn en senpagaj kontoj. Vi povas reprovi sen ĉifrado. + Ĉifrita alŝuto malsukcesis + Alŝuta eraro: %1$s + Malsukcesis alŝuti amaskomunikilojn + Malsukcesis alŝuti al %1$s: %2$s + Aldoni al plej ŝatataj + Ŝargas per la malferma reto. + Ŝargas per Tor. + Lastaj + Forigi el plej ŝatataj + Tiu aplikaĵo ankoraŭ ne estas ŝargita. Reprovu post momento. + Plej ŝatataj aplikoj + Favorataj Fluo-Algoritmoj + Faris pagon + Publikigita al relay-oj + Alŝutita dosiero + Ŝatataj Relay-fluoj + Relay-oj, kiujn vi ofte vizitas por vidi ilian Tutmondan fluon + Komunumoj + Fluo-Algoritmoj + Fluoj + Hashtag-oj + Interesaroj + Listoj + Lokoj + Relay-oj + Dosiera Servilo + Elektu servilon por alŝuti tiun ĉi dosieron + Kaŝas afiŝojn de fremduloj kiuj estis ekzakte samaj 5 aŭ pli da fojoj + Filtri spamon + Sekvi + Sekvi reen + Ĉiuj favorataj fluo-algoritmoj + Ĉirkaŭ Mi + Kuratita + Ĝenerala + Defaŭlta Sekvlisto + Ĉiuj Sekvoj + Ĉiuj Uzantaj Sekvoj + Mia + Silentigolisto + Nova Sekvpako + Redakti Sekvan Pakon + Sekva pako metadatenoj povas esti viditaj de ĉiu ajn sur Nostr kaj estas ofte publikigataj en multaj retejoj kiel startaj pakoj por novaj uzantoj. + Sekva Pako Metadatenoj + Sekvopakaj + Nova Sekvlisto + Redakti Liston + Profila Galerio-Stilo + Elekti la galerio-stilon + Klasika + Moderna + Loko-ekskluziva Afiŝo + Nur sekvantoj de la loko vidos ĝin. Viaj ĝeneralaj sekvantoj ne vidos ĝin. + %1$s financita el %2$s sats celo + h + Ĉi tiu enhavo ŝanĝiĝis. La aŭtoro eble ne vidis aŭ jesis la ŝanĝo + Kion tio signifas? + Ĉi tiu enhavo estas la sama ĝis la afiŝo + Saluton %1$s, ĉu ĉi tio ankoraŭ disponeblas? + Kaŝitaj Vortoj + Forigas afiŝojn el komunumaj feedoj kiam la komunumo publikigas NIP-9B-regulan dokumenton kaj evento ne plenumis ĝin. Neniu efiko kiam komunumo havas neniujn strukturitajn regulojn. + Kaŝi afiŝojn kiuj malobservas komunumajn regulojn + Kaŝi Pasvorton + Alŝutado de %1$s (%2$d el %3$d) + Ĉio + Malbona Peto - La servilo ne povas aŭ ne volas trakti la peton. + Neaŭtorizita - La uzanto ne havas validajn aŭtentigajn akreditivojn + Pago Necesa - La servilo postulas pagon por kompletigi la peton + Malpermesita - La uzanto ne havas alirrajtojn por fari la peton + Ne Trovita - La servilo ne povas trovi la petitan adreson + Metodo Ne Permesita - La servilo subtenas la petan metodon, sed ne la celatan rimedo + Ne Akceptebla - La servilo ne trovas enhavon, kiu kontentigas la peton. + Prokura Aŭtentigado Necesa - La uzanto ne havas validajn aŭtentigajn akreditivojn + Pettempolimo - La servilo ekspiris dum atendado de iu alia + Konflikto - La servilo ne povas plenumi la peton ĉar estas konflikto kun la rimedo + Foriris - La petita enhavo estis permanente forigita de la servilo kaj ne estos restarigita + Longo Necesa - La servilo rifuzas la peton ĉar ĝi postulas difinitan + Antaŭkondiĉo Malsukcesis - La antaŭkondiĉoj de la peto en la kapliniaj kampoj, kiujn la servilo ne povas plenumi + Utila Ŝarĝo Tro Granda - La peto estas pli granda ol la difinitaj limoj de la servilo, kaj la servilo rifuzas trakti ĝin + URI Tro Longa - La URL petita de la kliento estas tro longa por la servilo trakti. + Nesubtenata Amaskomunikila Tipo - La peto uzas amaskomunikilan formaton, kiun la servilo ne subtenas + Gamo Ne Kontentebla - La servilo ne povas plenumi la valoron indikitan en la kampo Range de la peto. + Atendo Malsukcesis - La servilo ne povas plenumi la postulojn indikitajn de la kaplinio Expect de la peto + Plibonigo Necesa - La servilo rifuzas trakti la peton per la nuna protokolo krom se la kliento plibonigas al malsama protokolo. + Interna Servila Eraro - La servilo renkontis neatenditan eraron kaj ne povas kompletigi la peton + Ne Efektivigita - La servilo ne povas plenumi la peton aŭ ne rekonas la petan metodon + Malbona Pordego - La servilo agas kiel pordego kaj ricevis nevalidan respondon de la gastiganto + Servo Neatingebla - Ĉi tio ofte okazas kiam servilo estas ŝarĝegita aŭ fermita por prizorgado + Pordega Tempolimo - La servilo agis kiel pordego aŭ prokuro kaj ekspiris, atendante respondon + HTTP-Versio Ne Subtenata - La servilo ne subtenas la HTTP-version en la peto + Varianto Ankaŭ Negocas - La servilo havas internan agorda eraron + Nesufiĉa Stokado - La servilo ne havas sufiĉan stokadon por sukcese trakti la peton + Buklo Detektita - La servilo detektas senfinan buklon dum traktado de la peto + Reta Aŭtentigado Necesa - La kliento devas esti aŭtentigita por aliri la reton + Kontraŭleĝa Konduto + Bildo konservita al la galerio + Personigo + Enskatolaj Relay-oj + Malĝusta faktura sumo (%1$s sats) de %2$s. Ĝi devus esti %3$s + Indeksaj Relay-oj + Relay-oj, kiuj specialiĝas pri gastigo de la metadatenoj kaj relay-listoj de ĉiuj, ekzemple purplepag.es. Amethyst uzos ĉi tiujn relay-ojn por trovi uzantojn, kiuj ne estas en viaj listoj. + Nova interesa aro + Renomi + Kradelvorta aroj + Nevalida ŝlosilo + Nevalida ŝlosilo: %1$s + Nevalida adreso + Amethyst ricevis URI por malfermi, sed tiu uri estis nevalida: %1$s + Ne eblas citi malnetajn noton + Ne eblas reagi al malnetaj noto + Ne eblas respondi al malnetaj noto + Ne eblas zap malnetajn noton + Ŝlosilo estas nepra + KeyPackage Relay-oj + Relay-oj kie viaj MLS KeyPackages estas publikigitaj (MIP-00). Aliaj uzantoj alprenas ĉi tiujn KeyPackages por inviti vin en Marmot-grupajn babiladojn. Enigu inter 1–3 relay-ojn kiuj akceptas KeyPackage-eventojn de vi kaj permesas publikajn legojn. + KeyPackages + Akceptita Insigna Aro + Aventura Prologo + Aventura Legado + Aventura Sceno + Aplikaĵaj Rekomendoj + Rendevuo + Aplikaĵoj + Rendevua RSVP + Aŭdia Kaplinjo + Aŭdia Trako + Aŭtoritaj Podkastoj + Insignaj Premioj + Insignaj Difinoj + Blob Datumoj + Blob Kaplinjoj + Blokitaj relay-oj + Blogartikoloj + Blossom Aŭtentigo + Blossom Serviloj + Legosigna Listo + Dissendaj relay-oj + Kalendaro + Kanala Difino + Kanalaj Kaŝitaj Mesaĝoj + Kanala Listo + Kanala Mesaĝo + Kanalaj Metadatumoj + Kanala Silentiga Uzanto + Ŝaka Aŭtentigo + Ŝakaj Defioj + Ŝaka Remizo-Propono + Ŝakajn Ludon Akcepti + Fino de Ŝaka Ludo + Ŝakaj Ludoj + Ŝaka Movo + Klasifikitaj Anonco + Komentoj + Komunuma Difino + Komunuma Listo + Komunuma Afiŝo + Kontakta Karto + Taga Rendevuo + Forviŝoj + DM Dosiero + DM Mesaĝo + DM relay-oj + Skizoj + DVM Enhava Peto + DVM Enhava Respondo + DVM Stato + DVM Uzanta Peto + DVM Uzanta Respondo + Redaktoj + Emoĝia Pakaĵa Listo + Emoĝia Pakaĵoj + Efemera Babilado + Efemeraj Babilĉambroj + Plej ŝatataj Podkastoj + Plej ŝatataj relay-oj + Dosiertestaj Kaplinjoj + Dosierserviloj + Sekva Listo + Sekvataj Pakaĵoj + Geohash Sekvoj + GiftWraps + Git Temo + Git Flikaĵo + Git Respondo + Git Deponejo + Kradvorta Sekvoj + Elstaraĵoj + Http Aŭtentigo + Indeksa relay-a Listo + Rekta Babilado + Rekta Elsendo + Medicinaj Datumoj + Kunvenĉambro + Kunvena Spaco + Muzika Ludlisto + Muzika Trako + Silentiga Listo + Nomataj Legosignoj + Nests Serviloj + NIP + NIP-04 DMs + NNS + Nostr Konekto + Notoj + NWC Peto + NWC Respondo + Malnova Legosigna Listo + OTS + Eliraj relay-oj + PayTo + Personaj Listoj + Bildoj + Pingloj + Podkasta Epizodo + Podkasta Programo + Voĉdono + Voĉdona Respondo + Privataj relay-oj + Privataj Zaps + Profilo + Profila Insignoj + Profila Galerio + Prokuraj relay-oj + Publika Mesaĝo + Reagoj + relay-a Aŭtentigo + relay-a Malkovro + relay-a Monitora Anonco + relay-a Aro + Raportoj + Resendoj + Resendoj (16) + Ĉambra Ĉeesto + Sigeloj + Serĉaj relay-oj + Mallongaj videoj + Mallongaj videoj (Repl) + Torrentaj Komentoj + Torrentoj + Fidataj Provizantoj + Fidataj relay-oj + Uzanto Forigi + Uzantaj Agordoj + Uzanta Stato + Video + Video (Repl) + Voĉa Mesaĝo + Voĉa Respondo + WakeUp + Reta Legosigno + Vikio + Trejnadoj + Zap Celoj + Zap Voĉdono + Zap Peto + Zaps + Konataj + Lingva Montraj Preferoj + Por ĉiu tradukita lingvoparo, elektu, kiun lingvon montri unue. + Laste vidita antaŭ %1$s + Laste vidita ĵus nun + Neniam vidita + Laste vidita la %1$s (%2$s antaŭe) + Eliri + Hela + Rekta dissendo + Lokaj Relay-oj + Listo de relay-oj kiuj funkcias sur ĉi tiu aparato. + Ensaluti per sekreta ŝlosilo por impulsi afiŝojn + Ensalutu per sekreta ŝlosilo por sekvi + Vi uzas publikan ŝlosilon kaj publikaj ŝlosiloj estas nur-legitaj. Ensalutu per Privata ŝlosilo por povi kaŝi vorton aŭ frazon + Ensaluti per sekreta ŝlosilo por respondi + Ensaluti per sekreta ŝlosilo por sendi zapojn + Vi uzas publikan ŝlosilon kaj publikaj ŝlosiloj estas nur-legitaj. Ensalutu per Privata ŝlosilo por povi montri vorton aŭ frazon + Vi uzas publikan ŝlosilon kaj publikaj ŝlosiloj estas nur-legitaj. Ensalutu per Privata ŝlosilo por povi subskribi eventojn + Ensalutu per sekreta ŝlosilo por malsekvi + Vi uzas publikan ŝlosilon kaj publikaj ŝlosiloj estas nur-legitaj. Ensalutu per Privata ŝlosilo por povi alŝuti + Ensaluti per sekreta ŝlosilo por ŝati afiŝojn + Videoj + m + Miaj Emodžio-Pakoj + Aldonante %1$s… + Administrantaj privilegioj donitaj + Administrantaj privilegioj revokitaj + Malsukcesis aldoni %1$s: %2$s + Malsukcesis krei grupon: %1$s + Malsukcesis doni administrantajn privilegiojn: %1$s + Malsukcesis forlasi grupon: %1$s + Malsukcesis forigi membron: %1$s + Malsukcesis revoki administrantajn privilegiojn: %1$s + Malsukcesis ĝisdatigi: %1$s + MLS-Grupo + Informoj de grupo ĝisdatigitaj + + %1$d membro + %1$d membroj + + Membro forigita + + %1$d msg + %1$d msgs + + Ne membro de ĉi tiu grupo + nekonata eraro + Amaskomunikiloj aldonitaj + Amaskomunikiloj aldonitaj al via Profila Galerio + Amaskomunikila elŝuto komenciĝis… + Amaskomunikilaj Serviloj + La medio estas tro granda por NIP-95 + Unue enigu la celon de la mesaĝo + Ne Eblas Alŝuti + Temo + Ne eblis forigi metadatenojn + Malsukcesis forigi privatajn metadatenojn el la medio. Alŝuto nuligita. + Legosignoj sukcese migritaj + Mankas fulma agordo + Pli da Opcioj + Movi al privata + Movi al publika + Alŝuti kovrilbildon + Elektu kvadratan bildon kiel arton por ĉi tiu ludomo. + + +%1$d plia trako + +%1$d pliaj trakoj + + + %1$d trako + %1$d trakoj + + + %1$d trako + %1$d trakoj + + Alŝutante kovrilon kaj eldonante. Ĉi tio daŭros eĉ se vi forlasas la ekranon. + Alŝuti aŭdian dosieron + Elektu MP3, WAV aŭ FLAC. Ĝi estos alŝutita al via amaskomunikilservilo ĉe Konservado. + Alŝuti kovrilbildon + Elektu kvadratan bildon kiel arton por ĉi tiu peco. + Alŝutante kovrilon + aŭdion kaj eldonante. Ĉi tio daŭros eĉ se vi forlasas la ekranon. + Ŝalta sono. Alklaki por silentigi + Silentigita. Alklaki por malsilentigi + Miaj Listoj + Nomo estas necesa + %1$dms + Namecoin Agordoj + Identeco + Legi vian publikan ŝlosilon + Mesaĝado + Interŝanĝi mesaĝojn kun aliaj napplet-oj + Klavarago + Ligi klavarpremaĵojn + Sciigoj + Montri al vi sciigojn + Relay-oj + Legi, subskribi & publikigi viajn eventojn + Reto + Alporti retajn kaj Blossom-rimedojn + Stokado + Sia propra privata stokado + Temo + Kongrui kun la koloroj de via aplikaĵo + Alŝutoj + Alŝuti dosierojn al via amaskomunikilara servilo + Pagoj + Pagi Lightning-fakturojn + Ĉi tiu nApplet volas legi vian publikan ŝlosilon. + Ĉi tiu nApplet volas legi vian profilon kaj kontodatenojn. + Ĉi tiu nApplet volas montri al vi sciigojn. + + Ĉi tiu nApplet volas pagi Lightning-fakturon por %1$d sat. + Ĉi tiu nApplet volas pagi Lightning-fakturon por %1$d sats. + + Ĉi tiu nApplet volas subskribi kaj publikigi specon %1$d eventon kiel vi. + Ĉi tiu nApplet volas sendi ĉifritan eventon kiel vi. + Ĉi tiu nApplet volas subskribi kaj publikigi specon %1$d eventon kiel vi: + Ĉi tiu nApplet volas legi eventojn el viaj relay-oj. + Ĉi tiu nApplet volas alporti retan rimedon. + Ĉi tiu retejo volas subskribi specon %1$d eventon per via Nostr-ŝlosilo. + Ĉi tiu nApplet volas uzi sian privatan stokadan lokon. + Ĉi tiu nApplet volas alŝuti dosieron al via amaskomunikilara servilo. + nApplet %1$s… + nApplet-oj + Ne povis sendi mesaĝon + Silentigi ĉi tiun parolanton + Restarigi ĉi tiun parolanton + Forlasi + Ne povis marki ĉambron kiel fermitan. Forlasante tamen — ĉambro aŭtomate fermiĝos. + + %1$d aŭskultanto + %1$d aŭskultantoj + + Malaltigi manon + Silentigi mikrofonon + Masilentigi mikrofonon + Silentigi + Ne povis konservi vian nestan servilan liston. Provu denove. + Nesto — Viva + Nestoj + Konservas aŭdion luданте dum ĉambro estas malfermita. + Nesto konektita + Halti + Tuŝetu por reveni. + Sekvi + Silentigi + Malekvi + Masilentigi + forlasis la neston + aliĝis kiel spektanto + supreniris scenen + levis sian manon + parolas + Levi manon + Malsilentigi + Nests + Konservita kiel kind-10112 anstataŭebla evento por ke aliaj klientoj povu legi vian preferon. + Viaj serviloj + Enkonstruitaj sugestoj kiujn vi povas aldoni al via listo per unu tuŝeto. + Rekomenditaj serviloj + Nestaj serviloj + neniam + Nova Insigono + Nova kalendaro + Nova kalendara evento + Nova Komunumo + Moderantoj + Relay-oj + Malpermesitaj uzantoj + Komunuma komento (1111) + Longforma artikolo (30023) + Bildafiŝo (20) + Mallonga teksto (1) + Mallonga video (22) + Videoafiŝo (21) + Permesitaj eventaj specoj + Ĝenerala maksimuma evento-grandeco (laŭvole) + Kontroleblaj reguloj (laŭvole) + Fid-reto pordego (laŭvole) + Nova emodžio-pako + Nova Celo + Nova artikolo + Nova ludlisto + Nova muzika peco + Nova produkto + Novaj Petoj + Novaj Fadenoj + Nova Ekzercado + + %1$d aktivo enkludita + %1$d aktivoj enkluditaj + + Blossom-aplikaĵoj ne trovitaj. Bonvolu instali lokan Blossom-aplikaĵon por vidi ĉi tiun dosieron + Ne eblas malfermi Blossom-ligilojn + Neniu fotila app trovita sur tiu ĉi aparato + Neniu Lightning-Adreso agordita + Neniu aplikaĵo trovis por trakti tiun ĉi pagon. Bonvolu instali kongruan monujon. + Neniu aplikaĵo instalita por trakti %1$s-pagojn. Bonvolu instali kongruan monujon. + Neniaj reagoj selektitaj. Premu longe por ŝanĝi + Neniaj reagoj agordita + Neniuj Monujoj trovitaj por pagi Lightning-fakturon. Bonvolu instali Lightning-monujon por uzi Zaps + Neniuj Monujoj trovitaj por pagi Lightning-fakturon (Eraro: %1$s). Bonvolu instali Lightning-monujon por uzi Zaps + Neniu kvanto da zapoj agordita. Longe premi por ŝanĝigi + Sciigoj + Kategorioj + Liverado + En-aplikaĵa montrado + nun + Nowhere Arto + Nowhere Faleto + Nowhere-evento + Nowhere Forumo + Nowhere-monkolekto + Nowhere-retejo + Nowhere Mesaĝo + Nowhere Peticio + Nowhere Butiko + nSite-oj + Nudeco + Ne eblas konstrui eventreferencon + Neniu ricevant-pubŝlosilo en la noto + Nutzap-oj estas publikaj kaj malkaŝus ĉi tiun privatan noton. Uzu anstataŭe Lightning Zap. + Nutzap malsukcesis + + Sendi %1$s sats, %2$d maniero + Sendi %1$s sats, %2$d manieroj + + Bitcoin-ĉena fondaĵo ne estas agordita + Ne eblis elsendi la transakcion + Ne eblis konstrui la transakcion + Ne eblis ŝargi vian Bitcoin-saldon + Pago sendita, sed la Zap-kvitanco ne povis esti publikigita + + Pago sendita (%1$d el %2$d kvitanco publikigita), sed la sekva kvitanco ne povis esti publikigita + Pago sendita (%1$d el %2$d kvitancoj publikigitaj), sed la sekva kvitanco ne povis esti publikigita + + Ricevant-parto estas sub polvo + Ne eblis subskribi la transakcion + ~10 min + ~30 min + ~1 h + Rapida + Normala + Malrapida + %1$s · %2$s sat/vB · %3$s + + Disigo inter %1$d ricevanto + Disigo inter %1$d ricevantoj + + + Preterpasante %1$d ricevanton kun nur Lightning-adreso — la ĉenereto bezonas Nostr-publikan ŝlosilon por derivi la adreson. + Preterpasante %1$d ricevantojn kun nur Lightning-adreso — la ĉenereto bezonas Nostr-publikan ŝlosilon por derivi la adreson. + + + Uzi la %1$d-vojan Zap-disigon de ĉi tiu noto + Uzi la %1$d-vojan Zap-disigon de ĉi tiu noto + + elsendado + konstruado de la transakcio + ŝargado de saldo + publikigado de la kvitanco + subskribo + Nur po unu voĉdono por uzanto estas permesita en ĉi tia enketo + Malfermi ĉiujn reagojn al ĉi tiu afiŝo + Malfermitaj + Socks-Konektejo de Orbot + Bitcoin-Esploristo (OTS) + Estas pruvo ke ĉi tiu afiŝo estis subskribita iam antaŭ %1$s. La pruvo estis stampita en la Bitcoin-blokĉeno en tiu dato kaj horo. + Tempomarko-Pruvo + Eligaj Relay-oj + Pasvorto estas necesa + Paŭzi + Pagi + Mesaĝo de %1$s + Pagceloj + Aldonu pagadresojn por malsamaj retoj (ekz. bitcoin, lightning, ethereum). + PDF konservita en Elŝutoj/Amethyst + Sekvolistaj metadatenoj povas esti viditaj de ĉiu ajn sur Nostr. Nur viaj privataj membroj estas ĉifritaj. + Sekvolista Metadatenoj + Bildoj + Alpingli supren + Alpingli al profilo + Ludi + + %1$d epizodo + %1$d epizodoj + + Aŭtoroj de Enketoj ne povas voĉdoni en siajn proprajn enketojn. + (0–100)% + Balotenketo estas fermita al novaj voĉoj + Multobla elekto + Elekto %1$s + Ununura elekto + Ne eblas voĉdoni + Balotadoj + Afiŝi + + Ĉi tiu afiŝo havas pli ol %1$d kromnomon + Ĉi tiu afiŝo havas pli ol %1$d kromnomojn + + Antaŭrigardi Bildon de %1$s + Privatecaj Opcioj + Privateca Politiko + <Privata mesaĝo nemalĉifrebla.>\n\nVi estis citita en privata konversacio inter %1$s kaj %2$s. + DM Enskatolaj Relay-oj + Enigu inter 1–3 relay-ojn por funkci kiel via privata enkomunkilo. Aliaj uzos ĉi tiujn relay-ojn por sendi DM-ojn al vi. DM Enskatolaj relay-oj devus akcepti ajnan mesaĝon de iu ajn, sed nur permesi al vi elŝuti ilin. Bonaj opcioj estas:\n - inbox.nostr.wine (pagenda)\n - auth.nostr1.com (senpaga)\n - you.nostr1.com (personaj relay-oj - pagendaj) + Uzanto ricevas DM-ojn sur ĉi tiuj relay-oj + Privata Mesaĝo + Fari privata: donaci la noton nur al sciigitaj uzantoj + Respondoj al privata noto ĉiam restas privataj + Videbla al + Privataj Hejmaj Relay-oj + Enigu inter 1–3 relay-ojn por konservi eventojn, kiujn neniu alia povas vidi, kiel viaj Skizaĵoj kaj/aŭ aplikaĵagordoj. Ideale, ĉi tiuj relay-oj estas aŭ lokaj aŭ postulas aŭtentikigon antaŭ elŝuti la enhavon de ĉiu uzanto. + Blasfemo / Malama Parolado + Profilo + Profilaj insignoj + Aplikaĵaj Rekomendoj + Profilaj Insignoj + Sekvanta Fluo + Ricevita Zap-fluo + Profila Interfaco + profiloj + Proponi Redakton + Prokuro-Relay-oj + Agregataj relay-oj, kiujn la aplikaĵo devas uzi por elŝuti viajn fluojn, ekzemple filter.nostr.wine. Ĉi tio anstataŭas la sendkesta modelon kaj igos la aplikaĵon konektiĝi nur al la relay-oj en viaj listoj. + Publika Babilado + Publikaj babilejoj estas videblaj al ĉiuj en Nostr kaj ĉiu ajn + povas partopreni en ili. Ili estas bonegaj por malfermitaj komunumoj pri specifaj temoj. + Moderado povas esti kontrolata per forigo de afiŝoj sur siaj relays + Enigu inter 1–3 relays, kiuj gastigas ĉi tiun grupon. + Nostr-klientoj uzas ĉi tiun agordon por scii, kie elŝuti mesaĝojn kaj kien sendi viajn mesaĝojn. + Relay-oj + Publikaj Babilejaj Metadatenoj + Publikaj Babilejoj + Publikaj Eligaj/Hejmaj Relay-oj + Ĉi tiu relay-tipo konservas ĉian vian enhavon. Amethyst sendos viajn afiŝojn ĉi tien kaj aliaj uzos ĉi tiujn relay-ojn por trovi vian enhavon. Enigu inter 1–3 relay-ojn. Ili povas esti personaj relay-oj, pagendaj relay-oj aŭ publikaj relay-oj. + Uzanto afiŝas sian enhavon al ĉi tiuj relay-oj + Publika Mesaĝo + Publikaj Enskatolaj Relay-oj + Ĉi tiu relay-tipo ricevas ĉiujn respondojn, komentojn, ŝatojn kaj zap-ojn al viaj afiŝoj. Ili povas esti pagendaj aŭ senpagaj relay-oj. Limigoj fiksitaj de la relay-operatoro povas limigi la sciigojn, kiujn vi ricevas, kaj por bone kaj por malbone. Ekzemple, se vi estas atakata de komentspamo, pagendaj relay-oj povas filtri la spamon. Enigu inter 1–3 relay-ojn. + Uzanto ricevas sciigojn sur ĉi tiuj relay-oj + ID de Noto + Forigi + Silentigi fadenon + Kunhavigi + Kunhavigi Ligilon + Malsilentigi fadenon + Reago + Reagoj + Reaga Vico + Legi el plusendilo + La kvanto en bajtoj kiuj estis ricevitaj de tiu ĉi relay, inkluzive de filtriloj kaj eventoj + Nur-lega uzanto + Alklaku kaj tenu por registri mesaĝon + Relay-Babilejo + Relay-babilejoj estas babilaj grupoj kontrolataj de sia hejma relay. + Ili estas videblaj al ĉiuj en Nostr kaj ĉiu ajn povas partopreni en ili. + Ili estas bonegaj por malfermitaj komunumoj pri specifaj temoj. Kelkaj el ĉi tiuj grupoj estas efemeraj + kaj tial babilmesaĝoj malaperas kun la tempo + Relay-Babilejaroj + Eventoj + IP-oj + Tipoj + Uzantoj + Agordoj + Relay-agordoj + eliraj listoj + Plusendiloj + Ŝargi & sendi Zap + Sendi Zap + Ŝargi %1$s sats al %2$s kaj Zap-i %3$s %4$s sats · kotizo ≈ %5$s sats + Forigi + Forigi el Publikaj Legosignoj + respondi ĉi tie… + Sciigi: + + Peti Forigon + Peto pri Malapero + Malsukcesis restarigi Marmot-staton: %1$s + Restarigi Marmot-Staton + Marmot-stato restarigita. + Reprovi + Kalendarlistoj + Kalendaroj + Ŝako + Malkovri + Hejmo + Importi sekvantojn + Mesaĝoj + Ludlistoj + Muziko + Sciigoj + Epizodoj + Podkastoj + Plani afiŝon + Nuligi planon + Planitaj afiŝoj eble ne publikiĝos ĝis vi remalfernas la app-on. La planitaj afiŝoj de aliaj kontoj ne ekiĝos dum tiu ĉi konto estas aktiva. Ŝaltu ĉiam-ŝaltitan en Agordoj → Interfacaj Preferoj por fidinda fona planado. + Planitaj afiŝoj eble ne publikiĝos ĝis vi poste remalfernas la app-on. Ŝaltu ĉiam-ŝaltitan en Agordoj → Interfacaj Preferoj por fidinda fona planado. + Planitaj afiŝoj + Sendi nun + %1$s · post %2$s + %1$s · antaŭ %2$s + Morgaŭ + Eraro: %1$s + Noto-ID kopiita + + Elsalutita · %1$d planita afiŝo forigita + Elsalutita · %1$d planitaj afiŝoj forigitaj + + Elsalutita + + Vi havas %1$d planitan afiŝon, kiu ankoraŭ ne estis publikigita. Elsalutado permanente forigos ĝin. + Vi havas %1$d planitajn afiŝojn, kiuj ankoraŭ ne estis publikigitaj. Elsalutado permanente forigos ilin. + + Planita afiŝo malsukcesis + Planita afiŝo publikigita + + al %1$d relay + al %1$d relays + + Nuligita + Malsukcesis + Planita + Sendante… + Sendita + + · %1$d sendenda en 1h + · %1$d sendendan en 1h + + + %1$d en atendovico + %1$d en atendovico + + Bonaj opcioj estas:\n%1$s + Serĉaj Relay-oj + Serĉaj Relay-oj + Listo de relay-oj por uzi kiam serĉante enhavon aŭ uzantojn. Etikedado kaj serĉo ne funkcios se neniuj opcioj estas disponebla. Certigu ke ili implementas NIP-50. + serĉeblaj eventoj + Sekreta ŝlosilo (nsec) kopiita al tondujo + Vi ankoraŭ ne blokis iujn uzantojn. + Sekurecaj Filtriloj + Neniuj kaŝitaj vortoj. Aldonu vorton sube por kaŝi afiŝojn enhavantajn ĝin. + Blokita enhavo + Filtraj preferoj + Neniuj kontoj estis flagitaj kiel spamo en tiu ĉi sesio. + Sendi + Sendi ĉiujn ricevitajn profilajn (tipo 0) eventojn al via loka relay + Plusendi profilojn al loka relay + Elspendebla por tiu ĉi ricevanto: %1$s sats + Pago malsukcesis + Transakcio: %1$s + Pagante per %1$s… + La servilo ne provizis URL post alŝuto + Agordoj + Neniaj silencigitaj fadenoj + Silencigitaj fadenoj + Kunhavigi kiel Bildon + Kunhavigi kiel Bildan URL + HLS Alŝuto + Kunhavigi aŭ Konservi + Mallongaj videoj + Montri ĉifritan privatan ŝlosilon QR-kode + Inkluzivi rektajn kaj grupajn mesaĝojn en la Sciiga langeto. Malŝaltu por konservi mesaĝojn nur en la Mesaĝa langeto. + Montri Mesaĝojn + Montri privatan ŝlosilon QR-kode + Subskrib-peto rifuzita + Certigu ke la subskribista aplikaĵo aŭtoris ĉi tiun transakcion + La ekstera subskribanto resendis utilan ŝarĝon kiu estas stranga por la peto. Povas ekzisti eraro en Amethyst aŭ en la Subskribanto. + Subskribanto ne trovita + Ĉu la Subskribanta app estis malinstalita? Kontrolu ĉu la subskribanto estas instalita kaj havas tiun ĉi konton. Elsalutu kaj ensalutu denove se la subskribanta app ŝanĝiĝis. + Retroiri %1$d sekundojn + Antaŭiri %1$d sekundojn + Aplikoj + Spamo + La nombro da spamaj eventoj venantaj de tiu ĉi relay + Spamistoj + Montri du sciiglangetojn — Sekvataj (personoj kiujn vi sekvas) kaj Ĉiuj. La nelegita indikilo brilas nur por agado de personoj kiujn vi sekvas. + Dividi sciigojn laŭ Sekvoj + Provas forigi privatajn metadatenojn el subtenataj mediodosieroj antaŭ alŝuto + Forigi privatajn metadatenojn + Legas finitajn trejnadojn el Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) kaj sugestas dividi ilin kiel afiŝon. Permeso estas petata nur kiam vi konektas. + Sugesti trejnadojn por dividi + Sistemo + Etoso + Malhela, Hela aŭ Sistema Temo + Ĉi tiu mesaĝo malaperos post %1$s + + +%1$d\nrespondo + +%1$d\nrespondoj + + Hodiaŭ + Persona + Faru la vian + Defaŭlta + Kaŝu vian IP de hazardaj relay-oj + Orbot + Plena Privateco + Kaŝu vian IP en ĉiuj konektoj + Interna + Malŝaltita + Tor/Privatecaj Antaŭagordoj + Rapide modifi ĉiujn agordojn sube + Ĉio krom Amaskomunikilaro + Kaŝu vian IP de ĉio, krom bildoj kaj videoj + DM Relay-oj + Devigi Tor por sendi kaj ricevi DM-ojn + Bildoj + Devigi Tor dum ŝargado de bildoj + Amaskomunikilaj Alŝutoj + Devigi Tor dum alŝutado de enhavo + Monaj Operacioj + Devigi Tor por zap-, lightning- kaj Cashu-transferoj + Nefidataj Relay-oj + Devigi Tor sur elirejo/enirejaj relay-oj + Nostr-Adresverifikado + Devigi Tor dum verifikado de NIP-05-adresoj + Onion-URL/Relay-oj + Uzu Tor por iu ajn .onion-URL + Profilbildoj + Devigi Tor dum ŝargado de profilbildoj + Fidataj Relay-oj + Devigi Tor sur ĉiuj relay-oj en viaj listoj + URL-Antaŭrigardoj + Devigi Tor dum ŝargado de URL-antaŭrigardoj + Videoj + Devigi Tor dum ŝargado de videoj + Baza + Uzu Tor kiam ĝi estas postulata de la servilo + Malsukcesis malfermi dosieron + Neniu torrent-aplikaĵo instalita por malfermi kaj elŝuti la dosieron. + La evento ne havas sufiĉajn informojn por konstrui magnetan ligilon + Uzu la spuratan dissendanton kiam vi sendas eventojn. Montras vivan progreson kaj relay-specifan staton dum dissendado. + Spurataj dissendoj + Traduki Al + Elektu la lingvon, al kiu traduki enhavon. + Tradukoj + Fidindaj Relay-oj + Relay-oj, kiujn vi fidas sufiĉe por ne bezoni Tor-konekton + Kompleta + Rendimento + Simpligita + Interfaca Preferoj + Interfaca Reĝimo + Elekti la afiŝostilo + Ne eblas krei Lightning-fakturon antaŭ sendi la Zap. La Lightning-monujo de la ricevanto sendis la sekvan eraron: %1$s + Ne eblas dividi bildon, bonvolu reprovi poste… + Ne eblas dividi videon, bonvolu reprovi poste… + Neaŭtorizita Malĉifrado + La subskribanto ne aŭtorizis malĉifradon kiu estas necesa por plenumi tiun ĉi operacion. Aktivigu NIP-44 malĉifradojn en via subskribanta app kaj provu denove + Malsekvi + Malpingli + Malalpingli el profilo + Alŝuto nuligita + Alŝuta Eraro + Voĉa alŝuto malsukcesis: %1$s + Malsukcesis alŝuti voĉan mesaĝon + NIP-95 ankoraŭ ne estas subtenata por voĉaj mesaĝoj + %1$d%% funkcia tempo + Aktiva Tor-Motoro + Uzu la internan version aŭ Orbot + Uzanto ne havas lightning-adreson por ricevi satojn + Uzanto %1$s ne havas Lightning-adreson agordita por ricevi sats + Historio de Malapero + Peto pri malapero sendita + Pli bona kvalito je pli malgrandaj dosieroj, sed ne ĉiuj aparatoj subtenas H.265-reproduktadon. + Uzi H.265/HEVC Kodeken + Videa elŝuto komenciĝis… + Videludilaj Butonoj + Video konservita en la telefona videogalerio + Voĉa Afiŝo + Profunda + Alta + Neŭtrala + Neniu + Voĉa Respondo + Monujo + Cashu-monujo (NIP-60) + Wallet Connect + Via Wallet Connect-provizanto resendis la sekvan eraron: %1$s + Redakti monfarejojn + Montras avermesaĝon kiam afiŝoj aŭ profiloj havas raportojn de viaj sekvatoj + Averti pri raportoj + Aldoni Retan Legosignon + Redakti Retan Legosignon + Retaj Legosignoj + Kion vi pensas? + Ekzercadoj + Skribi mesaĝon… + Skribi al Plusendilo + La kvanto en bajtoj kiuj estis senditaj al tiu ĉi relay, inkluzive de filtriloj kaj eventoj + Zap + Zapoj + + Renomi + Konservi diff --git a/commonsUI/src/commonMain/composeResources/values-es-rES/strings.xml b/commonsUI/src/commonMain/composeResources/values-es-rES/strings.xml index 1ca3a10306..464e4cd821 100644 --- a/commonsUI/src/commonMain/composeResources/values-es-rES/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-es-rES/strings.xml @@ -1795,4 +1795,1206 @@ URL base de la API del explorador Pagar factura del DVM Pagar %1$s sats al DVM + Información y avisos legales + Configuraciones de la cuenta + Añadir + Añadir un servidor Blossom + Agregar servidor NIP-96 + Cuando está activado, Amethyst añade una etiqueta de cliente NIP-89 a los eventos que publicas. + Añadir etiqueta de cliente a mis eventos + Agrega una advertencia de contenido sensible antes de mostrarlo + Contenido delicado + Agregar a marcadores públicos + Usa un modelo de IA en el dispositivo para proponer correcciones de texto y cambios de tono. + Proponer mejoras de texto + Mantiene las conexiones a tus relays de bandeja de entrada activas para notificaciones en tiempo real + + Conectado a %1$d relay de bandeja de entrada + Conectado a %1$d relays de bandeja de entrada + + + Conectado a %1$d relay + Conectado a %1$d relays + + Conectando a los relays de bandeja de entrada… + Notificaciones de Amethyst activas + Notificaciones de llamadas de voz y vídeo entrantes + Llamadas entrantes + %1$s ha aceptado tu desafío de ajedrez + Te notifica sobre eventos de partidas de ajedrez + Ajedrez + Actualizaciones de ajedrez + %1$s ha movido — es tu turno + Te notifica cuando llega un mensaje privado + Mensajes privados + Nuevos mensajes + Marcar como leído + Te notifica cuando alguien te menciona o te cita en una publicación + %1$s te mencionó + Menciones + Nuevas menciones + Te notifica cuando alguien reacciona a tu publicación + %1$s reaccionó a tu publicación + para %1$s + Reacciones + Nuevas reacciones + Te notifica cuando alguien responde a tu publicación + Respuestas + Nuevas respuestas + Responder + Notificaciones cuando una publicación programada se realiza o no. + Publicaciones programadas + Te notifica cuando alguien te zapea + %1$s sats + por %1$s + De %1$s + Zaps recibidos + Nuevos zaps + Ajustes de la app + Atestación + Solicitud de atestación + Competencia del atestador + Recomendación del atestador + Visualizador de audio + Guarda un borrador automáticamente cuando escribes o abandonas el compositor con texto no enviado, y lo envía a tus relays de bandeja de salida privada. + Crear borradores automáticamente + Desplazamiento inmersivo + Ocultar barras de navegación al desplazarse + Vista previa de imagen + Cargar automáticamente imágenes y GIF + Reproducción de vídeo + Reproducir automáticamente videos y GIF + Imagen de perfil + Mostrar imágenes de perfil + Vista previa de URL + Mostrar vistas previas de URL + Reproducción automática de vídeos + Reproduce vídeos automáticamente cuando son visibles en pantalla + No se pueden eliminar los metadatos del AVIF: %1$s + Insignia de premio + Volver + Claves de respaldo + Insignias + Autenticación fallida + El sistema biométrico no pudo autenticar al propietario de este teléfono + El sistema biométrico no pudo autenticar al propietario de este teléfono. Error: %1$s + Bloquear + Relés bloqueados + Amethyst nunca se conectará a estos relés + Usuarios bloqueados + Nueva lista de marcadores + Metadatos de lista de marcadores + Los metadatos de las listas de marcadores son visibles para cualquier usuario de Nostr. Solo los miembros privados están cifrados. + Marcadores + Impulsar + Barra de navegación inferior + Relés de transmisión + Relés que se especializan en enviar tus notas a todos los demás relés, como sendit.nosflare.com. Amethyst agregará este relé a todos los eventos nuevos que crees. + Navegador + Favoritos + Descubre apps web + Cargando a través de la web abierta. Toca para usar Tor. + Cargando a través de Tor. Toca para usar la web abierta. + + %1$s, %2$d evento + %1$s, %2$d eventos + + Error al subir la imagen + No se pudo subir la imagen seleccionada. Inténtalo de nuevo o pega una URL. + Compartir evento de calendario + Abrir en mapas + Abrir enlace + En curso ahora + %1$s · termina %2$s + + Comienza en %1$d minuto + Comienza en %1$d minutos + + Aviso cuando un evento al que asistirás está a punto de comenzar. + recordatorios_calendario + Recordatorios de calendario + Evento de calendario + Se enviará una notificación cuando un evento al que asistirás esté a punto de comenzar. + Enviar recordatorios + + %1$d min + %1$d min + + Recordatorios de calendario + Día + Tablón + Mes + Semana + Aceptar + Bluetooth + Cámara desactivada + Cámara activada + Auricular + Colgar + Llamada entrante + Llamada de vídeo entrante… + Llamada de voz entrante… + Silenciar + Llamadas + Notificación de llamada en curso + Amethyst necesita acceso a la cámara y al micrófono para iniciar una videollamada. Actívalos en los ajustes de la aplicación. + Amethyst necesita acceso al micrófono para iniciar una llamada de voz. Actívalo en los ajustes de la aplicación. + Rechazar + Ajustes de llamada + Altavoz + Reactivar + Llamada con %1$s + No se encontró la URL de devolución de llamada en la respuesta de %1$s. + Cancelar + Token de Cashu + Comprobando el mint… + No se pudo canjear Cashu + La Mint proporcionó el siguiente mensaje de error: %1$s + Recibido + Enviado + Mints coincidentes + + +%1$d más + +%1$d más + + Mints populares + + Recomendado por %1$d persona más + Recomendado por %1$d personas más + + %1$s sat movidos a %2$s. + No se encontró ningún monedero de Cashu compatible en el sistema + + %1$d factura pendiente + %1$d facturas pendientes + + ¿Pagar %1$s sat + hasta %2$s sat en comisiones? + Publicar una solicitud de eliminación para tu recomendación kind:38000 de %1$s. Los relays que respetan NIP-09 la eliminarán. + Se recuperaron %1$s sats en %2$s pruebas. + Cashu recibido + Se enviaron %1$s sats a tu monedero (comisión: %2$s sats). + + Fondos en %1$d mint que no usas + Fondos en %1$d mints que no usas + + Esperando a que se pague la factura… + Detener emisión + Emitir al dispositivo + Estándares de seguridad infantil + Accesorios + Arte + Libros + Ropa + Objetos de colección + Artesanías + Artículos electrónicos + Acondicionamiento físico + Comida + Muebles + Hogar + Varios + Oficina + Otros + Mascotas + Deportes + Diario + Mensual + Único + Semanal + ¿Pagar %1$s por %2$s? + ¿Pagar esta factura por %1$s? + El servicio de débito no completó el pago. + Introduce una cantidad válida para esta oferta. + Solicitando factura… + Cerrar todas las reacciones a esta publicación + Cerradas + Comunidades + El borrador ocupa %1$d bytes; esta comunidad limita este tipo a %2$d bytes. + El borrador ocupa %1$d bytes; esta comunidad limita los eventos a %2$d bytes. + Ya has publicado %1$d eventos de este tipo hoy (límite %2$d). + Ajustes de composición + El puerto predeterminado es 9050 + Relés conectados + Lista actual de relés en uso + Porcentaje de conexiones exitosas al relé + Siempre + Nunca + WiFi sin medición + Añadir documento + Añadir imagen + Añadir contenido multimedia + Añadir vídeo + Ocultar + Advertir + Mostrar + Conversaciones + Convierte GIF animados a vídeo MP4 para reducir el tamaño del archivo y mejorar la compatibilidad de reproducción. + Convertir GIF a MP4 + ID de nota copiada (@note1) al portapapeles + Texto de nota copiado al portapapeles + Copiado al portapapeles + @npub del autor copiado al portapapeles + Copiar mi clave secreta + Copiar al portapapeles + No se pudo ensamblar la LNUrl desde la dirección de Lightning "%1$s". Comprueba la configuración del usuario. + No se pudo comprobar el archivo descargado después de cargar: %1$s + No se pudo descargar el contenido cargado desde el servidor + No se ha podido obtener la factura de %1$s: %2$s + No se pudo abrir el archivo comprimido + Cartera no encontrada + Amethyst no encontró ninguna aplicación de cartera compatible con Nostr Wallet Connect (NWC). +\n\nQué puedes hacer: +\n\t1. Verificar la compatibilidad con NWC: Comprueba que tu aplicación de cartera preferida es compatible con Nostr Wallet Connect. +\n\t2. Crear conexión: Ve a tu aplicación de cartera y crea una nueva conexión NWC. +\n\t3. Vincular con Amethyst: Tu cartera normalmente te ofrecerá tres opciones: +\n\t\t3.1 Enlace automático: Un botón para abrir y conectar automáticamente a Amethyst. Si es así, pulsa ese botón, abre Amethyst y guarda en la nueva pantalla. +\n\t\t3.2 Enlace manual: Un URI de conexión que puedes copiar y pegar usando el icono de pegado en esta pantalla para introducirlo directamente. +\n\t\t3.3 Código QR: La cartera genera un código QR que puedes leer con el botón de código QR en esta pantalla. + + Crear + d + Zona peligrosa + Oscuro + Descripción + Hacer público + Chats + Comunidades + Algoritmos de fuentes + Paquetes de seguimiento + Transmisiones en vivo + Mercado + Lecturas + Relés de entrada DM + No traducir del + Los idiomas que se muestran aquí no se traducirán. Selecciona un idioma para eliminarlo y traducirlo de nuevo. + Guardar en el teléfono + Descargando vídeo… + Borrador de nota + Borradores + Cuentas + Crear + Tablones + Navegar + Sistema + Tú + + %1$d día + %1$d días + + + %1$d hora + %1$d horas + + + %1$d minuto + %1$d minutos + + + %1$d mes + %1$d meses + + + %1$d semana + %1$d semanas + + + %1$d año + %1$d años + + Editar calendario + Editar evento de calendario + Editar comunidad + Editar paquete de emojis + Editar lista de reproducción + Editar publicación + Los emojis privados se almacenan cifrados en los relays y solo son visibles para ti. Aparecen en tu menú de reacciones y en el autocompletado ":" igual que los públicos. + Los emojis públicos son visibles para todos y aparecen en tu menú de reacciones y en el selector de autocompletado ":" cuando este paquete está en tu lista de emojis. + Cifra los archivos antes de subirlos para mayor privacidad. Algunos servidores pueden no aceptar archivos cifrados en cuentas gratuitas. + Cifrar archivos + Chat temporal + Error + No se pudo pagar la factura + No se pudo retirar + No se puede abrir el pago + No se pudo enviar el zap + Error al abrir la aplicación firmante + No se pudo encontrar la aplicación firmante. Comprueba si no se desinstaló la aplicación. + Error al analizar el mensaje de error + Error al analizar JSON desde %1$s. Comprueba la configuración de Lightning del usuario. + No se puede obtener la factura de los servidores del destinatario + Abrir en el navegador + No se puede reproducir este vídeo + El códec o formato no es compatible con este dispositivo (%1$s). Intenta abrirlo en tu navegador. + Errores + Sincronización de relés + eventos tuyos + eventos para ti + AMRAP + Circuito + Ciclismo + Dieta + EMOM + Ayuno + Senderismo + Meditación + Remo + Carrera + Fuerza + Natación + Caminata + Yoga + Expandir + Fecha de expiración + Exportar configuración de relays + Error al eliminar: %1$s + Error al cifrar la clave privada + Error al guardar la imagen + Error al guardar el PDF + Error al guardar el video + Muchos servidores no aceptan archivos cifrados en cuentas gratuitas. Puedes volver a intentarlo sin cifrado. + Error al subir el archivo cifrado + Error de carga: %1$s + Error al subir contenido multimedia + Error al cargar a %1$s: %2$s + Añadir a favoritos + Se carga a través de la web abierta. + Se carga a través de Tor. + Recientes + Eliminar de favoritos + Esa aplicación aún no está cargada. Inténtalo de nuevo en un momento. + Aplicaciones favoritas + Algoritmos de feed favoritos + Se ha realizado un pago + Publicado en los relays + Se ha subido un archivo + Feeds de relays favoritos + Relays a los que sueles ir para ver su feed global + Comunidades + Algoritmos de feed + Tablones + Hashtags + Conjuntos de intereses + Listas + Ubicaciones + Relés + Servidor de archivos + Elegir un servidor para cargar este archivo + Oculta las publicaciones de desconocidos que sean exactamente iguales 5 o más veces. + Filtrar spam + Seguir + Seguir también + Todos los algoritmos de feed favoritos + A mi alrededor + Curada + Global + Lista de seguidos predeterminada + Todos los seguidos + Todos los seguidos + Mía + Lista de silenciados + Nuevo paquete de seguimiento + Editar pack de seguidos + Los metadatos del pack de seguidos pueden verlos todos en Nostr y se publican frecuentemente en muchos sitios web como kits de inicio para nuevos usuarios. + Metadatos del pack de seguidos + Paquetes de seguimiento + Nueva lista de seguimiento + Editar lista + Estilo de galería de perfil + Elige el estilo de galería + Clásico + Moderno + Publicación con ubicación exclusiva + Solo los seguidores de la ubicación la verán. Tus seguidores generales no la verán. + %1$s financiados del objetivo de %2$s sats + h + Este contenido ha cambiado. Es posible que el autor no haya visto o aprobado el cambio. + ¿Qué significa esto? + Este contenido es el mismo desde la publicación + Hola, %1$s, ¿esto todavía está disponible? + Palabras ocultas + Elimina publicaciones de los feeds de comunidades cuando la comunidad publica un documento de normas NIP-9B y un evento no lo cumple. No tiene efecto cuando una comunidad no tiene normas estructuradas. + Ocultar publicaciones que infrinjan las normas de la comunidad + Ocultar contraseña + Subiendo %1$s (%2$d de %3$d) + Todo + Solicitud incorrecta: el servidor no puede procesar o no procesará la solicitud. + No autorizado: el usuario no tiene credenciales de autenticación válidas. + Pago requerido: el servidor requiere pago para completar la solicitud. + Prohibido: el usuario no tiene derechos de acceso para realizar la solicitud. + No se encontró: el servidor no puede encontrar la dirección solicitada. + Método no permitido: el servidor admite el método de solicitud, pero no el recurso de destino. + No aceptable: el servidor no encuentra ningún contenido que satisfaga la solicitud. + Autenticación de proxy requerida: el usuario no tiene credenciales de autenticación válidas. + Tiempo de espera de la solicitud: se agotó el tiempo de espera del servidor. + Conflicto: el servidor no puede satisfacer la solicitud porque hay un conflicto con el recurso. + Borrado: el contenido solicitado se eliminó permanentemente del servidor y no se restablecerá. + Longitud requerida: el servidor rechaza la solicitud porque requiere una longitud definida. + Precondición fallida: las precondiciones de la solicitud en los campos de cabecera que el servidor no cumple. + Carga demasiado grande: la solicitud supera los límites definidos por el servidor, por lo que este se niega a procesarla. + URI demasiado largo: la URL solicitada por el cliente es demasiado larga para que el servidor pueda procesarla. + Tipo de contenido multimedia no admitido: la solicitud usa un formato multimedia que el servidor no admite. + Intervalo no satisfactorio: el servidor no puede satisfacer el valor indicado en el campo de cabecera del intervalo de la solicitud. + Expectativa fallida: el servidor no puede cumplir los requisitos indicados por el campo de cabecera de la solicitud Expect. + Actualización requerida: el servidor se niega a procesar la solicitud utilizando el protocolo actual a menos que el cliente se actualice a un protocolo diferente. + Error interno del servidor: el servidor encontró un error inesperado y no puede completar la solicitud. + No implementado: el servidor no puede completar la solicitud o no reconoce el método de solicitud. + Gateway incorrecto: el servidor actúa como gateway y obtuvo una respuesta no válida del host. + Servicio no disponible: esto ocurre a menudo cuando un servidor está sobrecargado o caído por mantenimiento. + Tiempo de espera del gateway: el servidor estaba actuando como gateway o proxy y se agotó el tiempo de espera de una respuesta. + Versión HTTP no admitida: el servidor no admite la versión HTTP de la solicitud. + La variante también negocia: el servidor tiene un error de configuración interno. + Almacenamiento insuficiente: el servidor no dispone de almacenamiento suficiente para procesar correctamente la solicitud. + Bucle detectado: el servidor detecta un bucle infinito al procesar la solicitud. + Autenticación de red requerida: el cliente debe estar autenticado para acceder a la red. + Comportamiento ilegal + Imagen guardada en la galería + Suplantación de identidad + Relays de entrada + Cantidad de factura incorrecta (%1$s sats) de %2$s. Debería haber sido %3$s. + Relés de indexador + Relés que se especializan en alojar los metadatos y las listas de retransmisión de todos, como purplepag.es. Amethyst usará estos relés para encontrar usuarios que no estén en tus listas. + Nuevo conjunto de intereses + Renombrar + Conjuntos de hashtags + Clave inválida + Clave inválida: %1$s + Dirección inválida + Amethyst recibió un URI para abrir pero era inválido: %1$s + No es posible citar un borrador de nota + No es posible reaccionar a un borrador de nota + No es posible responder a un borrador de nota + No es posible zapear un borrador de nota + Se requiere la clave + Relays de KeyPackage + Relays donde se publican tus MLS KeyPackages (MIP-00). Otros usuarios obtienen estas KeyPackages para invitarte a chats de grupo Marmot. Introduce entre 1 y 3 relays que acepten eventos KeyPackage de tu parte y permitan lecturas públicas. + Paquetes de claves + Conjunto de insignias aceptadas + Prólogo de aventura + Lectura de aventura + Escena de aventura + Recomendaciones de aplicaciones + Cita + Aplicaciones + Confirmación de cita + Cabecera de audio + Pista de audio + Pódcasts creados + Insignias concedidas + Definiciones de insignias + Datos blob + Cabeceras blob + Relés bloqueados + Blogs + Autenticación Blossom + Servidores Blossom + Lista de marcadores + Relés de difusión + Calendario + Definición de canal + Ocultar mensaje del canal + Lista de canales + Mensaje del canal + Metadatos del canal + Silenciar usuario del canal + Autenticación de ajedrez + Desafíos de ajedrez + Oferta de tablas en ajedrez + Aceptación de partida de ajedrez + Fin de partida de ajedrez + Partidas de ajedrez + Movimiento de ajedrez + Clasificados + Comentarios + Definición de comunidad + Lista de comunidades + Publicación de comunidad + Tarjeta de contacto + Cita del día + Eliminaciones + Archivo de mensaje directo + Mensaje directo + Relés DM + Borradores + Solicitud de contenido DVM + Respuesta de contenido DVM + Estado DVM + Solicitud de usuario DVM + Respuesta de usuario DVM + Ediciones + Lista de packs de emojis + Packs de emojis + Chat efímero + Salas de chat efímeras + Pódcasts favoritos + Relés favoritos + Cabeceras de archivo + Servidores de archivos + Lista de seguidos + Packs de seguidos + Seguidos por geohash + GiftWraps + Incidencia de Git + Parche de Git + Solicitud de incorporación + Actualización de solicitud de incorporación + Respuesta de Git + Repositorio de Git + Seguidos por hashtag + Destacados + Autenticación HTTP + Lista de relés de índice + Chats en directo + Transmisiones en directo + Datos médicos + Sala de reuniones + Espacio de reuniones + Lista de reproducción + Pista de música + Lista de silenciados + Marcadores con nombre + Servidores Nests + NIP + Mensajes directos NIP-04 + NNS + Nostr Connect + Notas + Solicitud NWC + Respuesta NWC + Lista de marcadores antigua + OTS + Relés de salida + Pagar a + Listas de personas + Imágenes + Fijados + Episodio de pódcast + Programa de pódcast + Encuesta + Respuesta de encuesta + Relés privados + Zaps privados + Perfil + Insignias del perfil + Galería del perfil + Relés proxy + Mensaje público + Reacciones + Autenticación de relé + Descubrimiento de relés + Anuncio del monitor de relés + Conjunto de relés + Informes + Republicaciones + Republicaciones (16) + Presencia en sala + Sellos + Relés de búsqueda + Comentarios de torrent + Torrents + Proveedores de confianza + Relés de confianza + Eliminación de usuario + Ajustes de usuario + Estado del usuario + Vídeo + Vídeo (Repl) + Mensaje de voz + Respuesta de voz + Marcador web + Entrenamientos + Objetivos de Zap + Encuesta de Zap + Solicitud de Zap + Zaps + Conocidos + Preferencias de visualización de idioma + Para cada par de idiomas traducidos, elige qué idioma mostrar primero. + Visto por última vez hace %1$s + Visto ahora mismo + Nunca visto + Visto por última vez el %1$s (hace %2$s) + Salir + Claro + Transmisiones en vivo + Relés locales + Lista de relés que se utilizan en este dispositivo. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder impulsar publicaciones. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder seguir a otros usuarios. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder ocultar una palabra o frase. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder responder + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder enviar zaps. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder mostrar una palabra o frase. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder firmar eventos. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder dejar de seguir a otros usuarios. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder subir contenido. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para indicar que te gustan las publicaciones. + Videos + m + Mis paquetes de emojis + Añadiendo %1$s… + Privilegios de administrador concedidos + Privilegios de administrador revocados + Error al añadir %1$s: %2$s + Error al crear el grupo: %1$s + Error al conceder administrador: %1$s + Error al salir del grupo: %1$s + Error al eliminar miembro: %1$s + Error al revocar administrador: %1$s + Error al actualizar: %1$s + Grupo MLS + Información del grupo actualizada + + %1$d miembro + %1$d miembros + + Miembro eliminado + No eres miembro de este grupo + error desconocido + Media añadida + Contenido multimedia añadido a la galería del perfil + La descarga del contenido multimedia ha comenzado… + Servidores multimedia + El contenido multimedia es demasiado grande para NIP-95 + Ingresa primero el destino del mensaje + No se puede subir + Asunto + No se pudieron eliminar los metadatos + Error al eliminar los metadatos privados del archivo multimedia. Subida cancelada. + Los marcadores se migraron correctamente + Lightning no está configurado + Más opciones + Mover a privado + Mover a público + Subir una imagen de portada + Elige una imagen cuadrada como portada de esta lista de reproducción. + + +%1$d pista más + +%1$d pistas más + + + %1$d pista + %1$d pistas + + + %1$d pista + %1$d pistas + + Subiendo portada y publicando. Esto continuará aunque salgas de la pantalla. + Subir un archivo de audio + Elige un MP3, WAV o FLAC. Se subirá a tu servidor multimedia al guardar. + Subir una imagen de portada + Elige una imagen cuadrada como portada de esta pista. + Subiendo portada + audio y publicando. Esto continuará aunque salgas de la pantalla. + Sonido activado. Hacer clic para silenciar. + Silenciado. Hacer clic para reactivar el sonido. + Mis listas + Se requiere un nombre + Ajustes de Namecoin + Identidad + Leer tu clave pública + Mensajes + Intercambiar mensajes con otros napplets + Acciones del teclado + Enlazar atajos de teclado + Notificaciones + Mostrar notificaciones + Relés + Leer, firmar y publicar tus eventos + Red + Obtener recursos web y de Blossom + Almacenamiento + Su propio almacenamiento privado + Tema + Combina los colores de la app + Subidas + Subir archivos a tu servidor multimedia + Pagos + Pagar facturas de Lightning + Este nApplet quiere leer tu clave pública. + Esta nApplet quiere leer tu perfil y datos de la cuenta. + Este nApplet quiere mostrarte notificaciones. + + Este nApplet quiere pagar una factura Lightning de %1$d sat. + Este nApplet quiere pagar una factura Lightning de %1$d sats. + + Este nApplet quiere firmar y publicar un evento %1$d como tú. + Este nApplet quiere enviar un evento cifrado como tú. + Este nApplet quiere firmar y publicar un evento %1$d como tú: + Este nApplet quiere leer eventos de tus relés. + Este nApplet quiere obtener un recurso web. + Este sitio quiere firmar un evento kind:%1$d con tu clave Nostr. + Este nApplet quiere utilizar su almacenamiento privado. + Este nApplet quiere subir un archivo a tu servidor de medios. + nApplet %1$s… + nApplets + No se pudo enviar el mensaje + Callar a este orador + Restaurar a este orador + Salir + No se pudo marcar la sala como cerrada. Saliendo de todos modos (la sala se cerrará automáticamente). + + %1$d oyente + %1$d oyentes + + Bajar la mano + Silenciar micrófono + Reactivar micrófono + Silenciar + No se ha podido guardar tu lista de servidores nest. Inténtalo de nuevo. + Nest — En vivo + Nests + Mantiene la reproducción de audio mientras una sala está abierta. + Nest conectado + Detener + Toca para regresar. + Seguir + Silenciar + Dejar de seguir + Reactivar + dejó el nest + se unió al público + entró al escenario + levantó la mano + está hablando + Levantar la mano + Reactivar + Nests + Guardado como un evento reemplazable para que otros clientes puedan leer tus preferencias. + Tus servidores + Sugerencias integradas que puedes añadir a tu lista con un solo toque. + Servidores recomendados + Servidores de nest + nunca + Nueva Insignia + Nuevo calendario + Nuevo evento de calendario + Nueva comunidad + Moderadores + Relés + Usuarios bloqueados + Comentario de la comunidad (1111) + Artículo de formato extenso (30023) + Publicación de imagen (20) + Texto corto (1) + Vídeo corto (22) + Publicación de video (21) + Kinds de eventos permitidos + Tamaño máximo de evento global (opcional) + Reglas verificables (opcional) + Portal de red de confianza (opcional) + Nuevo paquete de emojis + Nuevo objetivo + Nuevo artículo + Nueva lista de reproducción + Nueva pista de música + Nuevo producto + Nuevas solicitudes + Temas nuevos + Nuevo entrenamiento + + %1$d activo incluido + %1$d activos incluidos + + No se encontraron aplicaciones de Blossom. Instala una aplicación local de Blossom para ver este archivo + No se pueden abrir enlaces de Blossom + No se ha encontrado ninguna aplicación de cámara en este dispositivo + La dirección de Lightning no se ha configurado + No se ha encontrado ninguna aplicación para gestionar este pago. Instala un monedero compatible. + No hay ninguna aplicación instalada para gestionar pagos de %1$s. Instala un monedero compatible. + No hay tipos de reacción preseleccionados para este usuario. Deja presionado el botón de corazón para cambiarlos. + No hay reacciones configuradas + No se encontraron monederos para pagar una factura de Lightning. Instala un monedero de Lightning para usar zaps. + No se encontraron monederos para pagar una factura de Lightning (error: %1$s). Instala un monedero de Lightning para usar zaps. + Falta la configuración de zaps por defecto. Mantén pulsado unos segundos para cambiarla + Notificaciones + Categorías + Entrega + Visualización en la aplicación + ahora + Arte Nowhere + Drop Nowhere + Evento Nowhere + Foro Nowhere + Recaudación Nowhere + Sitio Nowhere + Mensaje Nowhere + Petición Nowhere + Tienda Nowhere + nSites + Desnudos + No se puede construir la referencia del evento + No hay clave pública de destinatario en la nota + Los nutzaps son públicos y revelarían esta nota privada. Usa un zap Lightning en su lugar. + Nutzap fallido + + Enviar %1$s sats, %2$d destinatario + Enviar %1$s sats, %2$d destinatarios + + El backend de la cadena Bitcoin no está configurado + No se pudo difundir la transacción + No se pudo construir la transacción + No se pudo cargar tu saldo de Bitcoin + Pago enviado, pero el recibo del zap no se pudo publicar + + Pago enviado (%1$d de %2$d recibo publicado), pero el siguiente recibo no se pudo publicar + Pago enviado (%1$d de %2$d recibos publicados), pero el siguiente recibo no se pudo publicar + + La parte de un destinatario está por debajo del dust + No se pudo firmar la transacción + ~10 min + ~30 min + ~1 h + Rápido + Normal + Lento + %1$s · %2$s sat/vB · %3$s + + Divisiones entre %1$d destinatario + Divisiones entre %1$d destinatarios + + + Se omite %1$d destinatario solo con dirección Lightning — el onchain necesita una clave pública Nostr para derivar la dirección. + Se omiten %1$d destinatarios solo con dirección Lightning — el onchain necesita una clave pública Nostr para derivar la dirección. + + + Usar la división de zap %1$d de esta nota + Usar la división de zap %1$d de esta nota + + difundiendo + construyendo la transacción + cargando saldo + publicando el recibo + firmando + Solo se permite un voto por usuario en este tipo de encuesta + Abrir todas las reacciones a esta publicación + Abiertas + Puerto Socks de Orbot + Explorador de Bitcoin (OTS) + Hay prueba de que esta publicación se firmó en algún momento antes de %1$s. La prueba se marcó en la cadena de bloques de Bitcoin en esa fecha y hora. + Prueba de marca de tiempo + Relays de salida + Se requiere una contraseña + Pausar + Pagar + Mensaje de %1$s + Objetivos de pago + Añadir direcciones de pago para diferentes redes (por ejemplo, Bitcoin, Lightning o Ethereum). + PDF guardado en Descargas/Amethyst + Los metadatos de las listas de seguidos pueden verlos todos en Nostr. Solo tus miembros privados están cifrados. + Metadatos de lista de seguidos + Imágenes + Fijar arriba + Fijar en el perfil + Reproducir + + %1$d episodio + %1$d episodios + + Los autores de encuestas no pueden votar en ellas. + (0–100)% + Encuesta cerrada para votos nuevos + Opción múltiple + Opción %1$s + Opción simple + No se puede votar + Encuestas + Publicar + + Esta publicación tiene más de %1$d hashtag + Esta publicación tiene más de %1$d hashtags + + Imagen de vista previa para %1$s + Opciones de privacidad + Política de privacidad + <Unable to decrypt private message>\n\nTe citaron en una conversación privada o encriptada entre %1$s y %2$s. + Relés de entrada DM + Inserta entre 1 y 3 relés para que te sirvan de buzón de entrada privado. Otros usarán estos relés para enviarte mensajes directos. Los relés del buzón de entrada para mensajes directos deberían aceptar cualquier mensaje de cualquier persona, pero solo te permiten descargarlos. Algunas buenas opciones son:\n - inbox.nostr.wine (de pago)\n - you.nostr1.com (relés personales; de pago) + El usuario recibe mensajes directos en estos relés + Mensaje privado + Hacer privado: envolver la nota como gift-wrap solo a los usuarios notificados + Las respuestas a una nota privada siempre permanecen privadas + Visible para + Relés privados + Inserta entre 1 y 3 relés para almacenar eventos que nadie más pueda ver, como los borradores o la configuración de la app. Lo ideal es que estos relés sean locales o requieran autenticación antes de descargar el contenido de cada usuario. + Blasfemias / Discurso de odio + Perfil + Insignias del perfil + Recomendaciones de aplicaciones + Insignias del perfil + Feed de seguidores + Feed de zaps recibidos + Interfaz del perfil + perfiles + Proponer una edición + Relés de proxy + Relés recopiladores que la app debe usar para descargar tus fuentes, como filter.nostr.wine. Esto reemplaza el modelo de bandeja de salida y hará que la app se conecte solo a los relés de tus listas. + Chat público + Los chats públicos son visibles para todos en Nostr y cualquiera + puede participar en ellos. Son ideales para comunidades abiertas alrededor de temas específicos. + La moderación puede controlarse eliminando publicaciones en sus relés. + Inserta entre 1 y 3 relés que alojan este grupo. + Los clientes de Nostr utilizan esta configuración para saber de dónde descargar y adónde enviar los mensajes. + Relés + Metadatos públicos del chat + Chats públicos + Relés de inicio públicos + Este tipo de relé almacena todo tu contenido. Amethyst enviará tus publicaciones aquí y otros usarán estos relés para encontrar tu contenido. Inserta entre 1 y 3 relés. Pueden ser personales, de pago o públicos. + El usuario está publicando su contenido a estos relés + Mensaje público + Relés de buzón de entrada públicos + Este tipo de relé recibe todas las respuestas, comentarios, me gusta y zaps de tus publicaciones. Inserta entre 1 y 3 relés y asegúrate de que acepten publicaciones de cualquier persona. + El usuario está recibiendo notificaciones en estos relés + ID de la nota + Eliminar + Silenciar hilo + Compartir + Compartir enlace del navegador + Reactivar hilo + Reacción + Reacciones + Fila de reacciones + Relé de lectura + La cantidad en bytes que se recibieron de este relé, incluyendo filtros y eventos + Usuario de solo lectura + Haz clic y mantén pulsado para grabar un mensaje + Chat en relé + Los chats en relé son grupos de chat controlados por su relé de origen. + Son visibles para todos los usuarios de Nostr y cualquiera puede participar en ellos. + Son ideales para comunidades abiertas en torno a temas específicos. Algunos de estos grupos son efímeros + y, por lo tanto, los mensajes del chat desaparecen con el tiempo + Chats en relé + Eventos + Tipos + Usuarios + Ajustes + Configuración de relés + listas de salida + Relés + Recargar y enviar zap + Enviar zap + Recargar %1$s sats en %2$s y enviar zap de %3$s %4$s sats · comisión ≈ %5$s sats + Eliminar + Eliminar de marcadores públicos + responde aquí… + Notificar: + + Solicitar eliminación + Solicitud de desaparición + Error al restablecer el estado de Marmot: %1$s + Restablecer estado de Marmot + Estado de Marmot restablecido. + Reintentar + Listas de calendarios + Calendarios + Ajedrez + Descubrir + Inicio + Importar seguidos + Mensajes + Listas de reproducción + Música + Notificaciones + Episodios + Podcasts + Programar publicación + Cancelar programación + Las publicaciones programadas pueden no realizarse hasta que vuelvas a abrir la aplicación. Las publicaciones programadas de otras cuentas no se activarán mientras esta cuenta esté activa. Habilita la activación en "Configuración → Preferencias de interfaz de usuario" para garantizar una programación en segundo plano fiable. + Las publicaciones programadas pueden no realizarse hasta que vuelvas a abrir la aplicación. Habilita la activación en "Configuración → Preferencias de interfaz de usuario" para garantizar una programación en segundo plano fiable. + Publicaciones programadas + Enviar ahora + %1$s · en %2$s + %1$s · hace %2$s + Mañana + Error: %1$s + ID de nota copiado + + Sesión cerrada · %1$d publicación programada eliminada + Sesión cerrada · %1$d publicaciones programadas eliminadas + + Sesión cerrada + + Tienes %1$d publicación programada que aún no se ha publicado. Cerrar sesión la eliminará permanentemente. + Tienes %1$d publicaciones programadas que aún no se han publicado. Cerrar sesión las eliminará permanentemente. + + Fallo en la publicación programada + Se realizó la publicación programada + + a %1$d relé + a %1$d relés + + Cancelada + Error + Programadas + Enviando… + Enviada + + · %1$d vence en 1h + · %1$d vencen en 1h + + + %1$d en cola + %1$d en cola + + Algunas buenas opciones son: \n%1$s + Relés de búsqueda + Relés de búsqueda + Lista de relés que se usarán al buscar contenido o usuarios. El etiquetado y la búsqueda no funcionarán si no hay opciones disponibles. Asegúrate de que implementen NIP-50. + eventos buscables + Clave secreta (nsec) copiada al portapapeles + Aún no has bloqueado a ningún usuario. + Filtros de seguridad + No hay palabras ocultas. Añade una palabra a continuación para ocultar las publicaciones que la contengan. + Contenido bloqueado + Preferencias de filtrado + Ninguna cuenta ha sido marcada como spam en esta sesión. + Enviar + Enviar todos los eventos de perfil (kind 0) recibidos a tu relay local + Reenviar perfiles al relay local + Disponible para este destinatario: %1$s sats + Pago fallido + Transacción: %1$s + Pagando por %1$s… + El servidor no proporcionó una URL después de la carga + Configuración + No hay hilos silenciados + Hilos silenciados + Compartir como imagen + Compartir como Url de Imagen + Subida HLS + Compartir o guardar + Cortos + Mostrar código QR de clave privada cifrada + Incluye mensajes directos y de grupo en la pestaña de Notificaciones. Desactívalo para mantener los mensajes solo en la pestaña de Mensajes. + Mostrar mensajes + Mostrar código QR de clave privada + Solicitud de firma rechazada + Asegúrate de que la aplicación firmante haya autorizado esta transacción. + El firmante externo devolvió una carga útil que no concuerda con la solicitud. Es posible que haya un error, ya sea en Amethyst o en el firmante. + No se ha encontrado el firmante. + ¿Se ha desinstalado la app del firmante? Comprueba si el firmante está instalado y tiene esta cuenta. Cierra sesión y vuelve a iniciar sesión en la app del firmante si ha cambiado. + Retroceder %1$d segundos + Adelantar %1$d segundos + Apps + Spam + El número de eventos de spam procedentes de este relé + Spammers + Muestra dos pestañas de notificaciones: Siguiendo (personas que sigues) y Todos. El indicador de no leídos se ilumina solo para la actividad de las personas que sigues. + Dividir notificaciones por Seguidos + Intenta eliminar los metadatos privados de los archivos multimedia compatibles antes de subirlos + Eliminar metadatos privados + Lee los entrenamientos finalizados de Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) y sugiere compartirlos como publicación. El permiso se solicita solo cuando te conectas. + Sugerir entrenamientos para compartir + Sistema + Tema + Tema oscuro, claro o del sistema + Este mensaje desaparecerá en %1$s + + +%1$d\nrespuesta + +%1$d\nrespuestas + + Hoy + Personalizado + Crea el tuyo + Predeterminado + Ocultar tu IP de relés aleatorios + Orbot + Privacidad total + Oculta tu IP en todas las conexiones + Interno + Desactivado + Preconfiguración de Tor y privacidad + Modificar rápidamente todos los ajustes a continuación + Todo menos media + Ocultar tu IP de todo, excepto imágenes y videos + Relés DM + Forzar Tor para enviar y recibir mensajes directos + Imágenes + Forzar Tor al cargar imágenes + Subidas multimedia + Forzar Tor al subir contenido + Operaciones monetarias + Forzar Tor en transferencias de zaps, Lightning y Cashu + Relés no confiables + Forzar Tor en la bandeja de salida/entrada + Verificación de dirección de Nostr + Forzar Tor al verificar direcciones NIP-05 + Url/Relés tipo onion + Usar Tor para cualquier URL .onion + Imágenes de perfil + Forzar Tor al cargar imágenes de perfil + Relés de confianza + Forzar Tor en todos los relés de tus listas + Vistas previas de URL + Forzar Tor al cargar vistas previas de URL + Videos + Forzar Tor al cargar videos + Básico + Usar Tor cuando lo requiera el servidor + Error al abrir el archivo + No hay aplicaciones torrent instaladas para abrir y descargar el archivo. + El evento no tiene suficiente información para crear un enlace magnético + Usa el emisor rastreado al enviar eventos. Muestra el progreso en tiempo real y el estado por relay durante la difusión. + Difusiones rastreadas + Traducir a + Elige el idioma al que traducir el contenido. + Traducciones + Relés de confianza + Relés en que confías para no necesitar una conexión Tor para + Completo + Rendimiento + Simplificado + Preferencias de interfaz de usuario + Modo de interfaz + Elegir el estilo de publicación + No se pudo crear una factura de Lightning antes de enviar el zap. El monedero de Lightning del destinatario envió el siguiente error: %1$s. + No se puede compartir la imagen, inténtalo de nuevo más tarde… + No se puede compartir el vídeo, por favor inténtalo de nuevo más tarde… + Descifrado no autorizado + El firmante no autorizó un descifrado necesario para realizar esta operación. Activa el descifrado NIP-44 en tu aplicación de firmante e inténtalo de nuevo + Dejar de seguir + Eliminar fijado + Desfijar del perfil + Subida cancelada + Error de carga + Error al cargar voz: %1$s + Error al cargar el mensaje de voz + NIP-95 aún no es compatible con mensajes de voz + %1$d%% de disponibilidad + Motor de Tor activo + Usar la versión interna u Orbot + El usuario no tiene una configuración de dirección Lightning para recibir sats + El usuario %1$s no tiene una dirección de Lightning configurada para recibir sats. + Historial de desapariciones + Solicitud de desaparición enviada + Mejor calidad en tamaños de archivos más pequeños, pero no todos los dispositivos admiten la reproducción H.265. + Usa H.265/HEVC Codec + La descarga del vídeo ha comenzado… + Botones del reproductor de vídeo + Video guardado en la galería de videos del teléfono + Publicación de voz + Grave + Aguda + Neutra + Ninguna + Respuesta de voz + Cartera + Cartera Cashu (NIP-60) + Wallet Connect + El proveedor de conexión de monedero devolvió el siguiente error: %1$s + Editar mints + Muestra un mensaje de advertencia cuando los mensajes tienen 5 o más reportes de los usuarios que sigues. + Advertir sobre reportes + Añadir marcador web + Editar marcador web + Marcadores web + ¿Qué tienes en mente? + Entrenamientos + Escribir un mensaje… + Relé de escritura + La cantidad en bytes que se enviaron a este relé, incluyendo filtros y eventos + Zap + Zaps + + Cambiar nombre + Guardar diff --git a/commonsUI/src/commonMain/composeResources/values-es-rMX/strings.xml b/commonsUI/src/commonMain/composeResources/values-es-rMX/strings.xml index 1427cb5e4d..3fe84bf97a 100644 --- a/commonsUI/src/commonMain/composeResources/values-es-rMX/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-es-rMX/strings.xml @@ -1794,4 +1794,1200 @@ URL base de la API del explorador Pagar factura del DVM Pagar %1$s sats al DVM + Información y avisos legales + Configuración de cuenta + Agregar + Agregar un servidor Blossom + Agregar servidor NIP-96 + Cuando está activado, Amethyst añade una etiqueta de cliente NIP-89 a los eventos que publicas. + Añadir etiqueta de cliente a mis eventos + Agrega una advertencia de contenido sensible antes de mostrarlo + Contenido delicado + Agregar a marcadores públicos + Usa un modelo de IA en el dispositivo para proponer correcciones de texto y cambios de tono. + Proponer mejoras de texto + Mantiene las conexiones a tus relays de bandeja de entrada activas para notificaciones en tiempo real + + Conectado a %1$d relay de bandeja de entrada + Conectado a %1$d relays de bandeja de entrada + + + Conectado a %1$d relay + Conectado a %1$d relays + + Conectando a los relays de bandeja de entrada… + Notificaciones de Amethyst activas + Notificaciones de llamadas de voz y vídeo entrantes + Llamadas entrantes + %1$s ha aceptado tu desafío de ajedrez + Te notifica sobre eventos de partidas de ajedrez + Ajedrez + Actualizaciones de ajedrez + %1$s ha movido — es tu turno + Te notifica cuando llega un mensaje privado + Mensajes privados + Nuevos mensajes + Marcar como leído + Te notifica cuando alguien te menciona o te cita en una publicación + %1$s te mencionó + Menciones + Nuevas menciones + Te notifica cuando alguien reacciona a tu publicación + %1$s reaccionó a tu publicación + para %1$s + Reacciones + Nuevas reacciones + Te notifica cuando alguien responde a tu publicación + Respuestas + Nuevas respuestas + Responder + Notificaciones cuando una publicación programada se realiza o no. + Publicaciones programadas + Te notifica cuando alguien te zapea + %1$s sats + por %1$s + De %1$s + Zaps recibidos + Nuevos zaps + Ajustes de la app + Atestación + Solicitud de atestación + Competencia del atestador + Recomendación del atestador + Visualizador de audio + Guarda un borrador automáticamente cuando escribes o abandonas el compositor con texto no enviado, y lo envía a tus relays de bandeja de salida privada. + Crear borradores automáticamente + Desplazamiento inmersivo + Ocultar barras de navegación al desplazarse + Vista previa de imagen + Cargar automáticamente imágenes y GIF + Reproducción de video + Reproducir automáticamente videos y GIF + Imagen de perfil + Mostrar imágenes de perfil + Vista previa de URL + Mostrar vistas previas de URL + Reproducción automática de vídeos + Reproduce vídeos automáticamente cuando son visibles en pantalla + No se pueden eliminar los metadatos del AVIF: %1$s + Insignia de premio + Volver + Respaldar claves + Insignias + Error de autenticación + El sistema biométrico no pudo autenticar al propietario de este teléfono + El sistema biométrico no pudo autenticar al propietario de este teléfono. Error: %1$s + Bloquear + Relés bloqueados + Amethyst nunca se conectará a estos relés + Usuarios bloqueados + Nueva lista de marcadores + Metadatos de lista de marcadores + Los metadatos de las listas de marcadores son visibles para cualquier usuario de Nostr. Solo los miembros privados están cifrados. + Marcadores + Impulsar + Barra de navegación inferior + Relés de transmisión + Relés que se especializan en enviar tus notas a todos los demás relés, como sendit.nosflare.com. Amethyst agregará este relé a todos los eventos nuevos que crees. + Navegador + Favoritos + Descubre apps web + Cargando a través de la web abierta. Toca para usar Tor. + Cargando a través de Tor. Toca para usar la web abierta. + + %1$s, %2$d evento + %1$s, %2$d eventos + + Error al subir la imagen + No se pudo subir la imagen seleccionada. Inténtalo de nuevo o pega una URL. + Compartir evento de calendario + Abrir en mapas + Abrir enlace + En curso ahora + %1$s · termina %2$s + + Comienza en %1$d minuto + Comienza en %1$d minutos + + Aviso cuando un evento al que asistirás está a punto de comenzar. + recordatorios_calendario + Recordatorios de calendario + Evento de calendario + Se enviará una notificación cuando un evento al que asistirás esté a punto de comenzar. + Enviar recordatorios + + %1$d min + %1$d min + + Recordatorios de calendario + Día + Tablón + Mes + Semana + Aceptar + Bluetooth + Cámara desactivada + Cámara activada + Auricular + Colgar + Llamada entrante + Llamada de vídeo entrante… + Llamada de voz entrante… + Silenciar + Llamadas + Notificación de llamada en curso + Amethyst necesita acceso a la cámara y al micrófono para iniciar una videollamada. Actívalos en los ajustes de la aplicación. + Amethyst necesita acceso al micrófono para iniciar una llamada de voz. Actívalo en los ajustes de la aplicación. + Rechazar + Ajustes de llamada + Altavoz + Reactivar + Llamada con %1$s + No se encontró la URL de devolución de llamada en la respuesta de %1$s. + Cancelar + Token de Cashu + Comprobando el mint… + No se pudo canjear Cashu + La Mint proporcionó el siguiente mensaje de error: %1$s + Recibido + Enviado + Mints coincidentes + + +%1$d más + +%1$d más + + Mints populares + + Recomendado por %1$d persona más + Recomendado por %1$d personas más + + %1$s sat movidos a %2$s. + No se encontró ninguna billetera de Cashu compatible en el sistema + + %1$d factura pendiente + %1$d facturas pendientes + + ¿Pagar %1$s sat + hasta %2$s sat en comisiones? + Publicar una solicitud de eliminación para tu recomendación kind:38000 de %1$s. Los relays que respetan NIP-09 la eliminarán. + Se recuperaron %1$s sats en %2$s pruebas. + Cashu recibido + Se enviaron %1$s sats a tu billetera (comisión: %2$s sats). + + Fondos en %1$d mint que no usas + Fondos en %1$d mints que no usas + + Esperando a que se pague la factura… + Detener emisión + Emitir al dispositivo + Estándares de seguridad infantil + Accesorios + Arte + Libros + Ropa + Objetos de colección + Artesanías + Artículos electrónicos + Acondicionamiento físico + Comida + Muebles + Hogar + Varios + Oficina + Otros + Mascotas + Deportes + Diario + Mensual + Único + Semanal + ¿Pagar %1$s por %2$s? + ¿Pagar esta factura por %1$s? + El servicio de débito no completó el pago. + Introduce una cantidad válida para esta oferta. + Solicitando factura… + Cerrar todas las reacciones a esta publicación + Cerradas + Comunidades + El borrador ocupa %1$d bytes; esta comunidad limita este tipo a %2$d bytes. + El borrador ocupa %1$d bytes; esta comunidad limita los eventos a %2$d bytes. + Ya has publicado %1$d eventos de este tipo hoy (límite %2$d). + Ajustes de composición + El puerto predeterminado es 9050 + Relés conectados + Lista actual de relés en uso + Porcentaje de conexiones exitosas al relé + Siempre + Nunca + WiFi sin medición + Agregar documento + Agregar imagen + Agregar contenido multimedia + Agregar video + Ocultar + Advertir + Mostrar + Conversaciones + Convierte GIF animados a vídeo MP4 para reducir el tamaño del archivo y mejorar la compatibilidad de reproducción. + Convertir GIF a MP4 + ID de la nota (@note1) copiado al portapapeles + Texto de la nota copiado al portapapeles + Copiado al portapapeles + @npub del autor copiado al portapapeles + Copiar mi clave secreta + Copiar al portapapeles + No se pudo ensamblar la LNUrl desde la dirección de Lightning "%1$s". Comprueba la configuración del usuario. + No se pudo comprobar el archivo descargado después de subir: %1$s + No se pudo descargar el contenido subido desde el servidor + No se pudo obtener la factura de %1$s: %2$s + No se pudo abrir el archivo comprimido + Billetera no encontrada + Amethyst no encontró ninguna aplicación de cartera compatible con Nostr Wallet Connect (NWC). +\n\nQué puedes hacer: +\n\t1. Verificar la compatibilidad con NWC: Comprueba que tu aplicación de cartera preferida es compatible con Nostr Wallet Connect. +\n\t2. Crear conexión: Ve a tu aplicación de cartera y crea una nueva conexión NWC. +\n\t3. Vincular con Amethyst: Tu cartera normalmente te ofrecerá tres opciones: +\n\t\t3.1 Enlace automático: Un botón para abrir y conectar automáticamente a Amethyst. Si es así, pulsa ese botón, abre Amethyst y guarda en la nueva pantalla. +\n\t\t3.2 Enlace manual: Un URI de conexión que puedes copiar y pegar usando el icono de pegado en esta pantalla para introducirlo directamente. +\n\t\t3.3 Código QR: La cartera genera un código QR que puedes leer con el botón de código QR en esta pantalla. + + Crear + d + Zona peligrosa + Oscuro + Descripción + Hacer público + Chats + Comunidades + Algoritmos del feed + Paquetes de seguimiento + Transmisiones en vivo + Mercado + Lecturas + Relés de entrada DM + No traducir del + Los idiomas que se muestran aquí no se traducirán. Selecciona un idioma para eliminarlo y traducirlo de nuevo. + Guardar en el teléfono + Descargando vídeo… + Borrador de nota + Borradores + Cuentas + Crear + Tablones + Navegar + Sistema + Tú + + %1$d día + %1$d días + + + %1$d hora + %1$d horas + + + %1$d minuto + %1$d minutos + + + %1$d mes + %1$d meses + + + %1$d semana + %1$d semanas + + + %1$d año + %1$d años + + Editar calendario + Editar evento de calendario + Editar comunidad + Editar paquete de emojis + Editar lista de reproducción + Editar publicación + Los emojis privados se almacenan cifrados en los relays y solo son visibles para ti. Aparecen en tu menú de reacciones y en el autocompletado ":" igual que los públicos. + Los emojis públicos son visibles para todos y aparecen en tu menú de reacciones y en el selector de autocompletado ":" cuando este paquete está en tu lista de emojis. + Cifra los archivos antes de subirlos para mayor privacidad. Algunos servidores pueden no aceptar archivos cifrados en cuentas gratuitas. + Cifrar archivos + Chat temporal + Error + No se pudo pagar la factura + No se pudo retirar + No se puede abrir el pago + No se pudo enviar el zap + Error al abrir la aplicación firmante + No se pudo encontrar la aplicación firmante. Comprueba si no se desinstaló la aplicación. + Error al analizar el mensaje de error + Error al analizar JSON desde %1$s. Comprueba la configuración de Lightning del usuario. + No se puede obtener la factura de los servidores del destinatario + Abrir en el navegador + No se puede reproducir este vídeo + El códec o formato no es compatible con este dispositivo (%1$s). Intenta abrirlo en tu navegador. + Errores + Sincronización de relés + eventos tuyos + eventos para ti + Circuito + Ciclismo + Dieta + Ayuno + Senderismo + Meditación + Remo + Carrera + Fuerza + Natación + Caminata + Yoga + Expandir + Fecha de expiración + Exportar configuración de relays + Error al eliminar: %1$s + Error al cifrar la clave privada + Error al guardar la imagen + Error al guardar el PDF + Error al guardar el video + Muchos servidores no aceptan archivos cifrados en cuentas gratuitas. Puedes volver a intentarlo sin cifrado. + Error al subir el archivo cifrado + Error de subida: %1$s + Error al subir contenido multimedia + Error al subir a %1$s: %2$s + Añadir a favoritos + Se carga a través de la web abierta. + Se carga a través de Tor. + Recientes + Eliminar de favoritos + Esa aplicación aún no está cargada. Inténtalo de nuevo en un momento. + Aplicaciones favoritas + Algoritmos de feed favoritos + Se ha realizado un pago + Publicado en los relays + Se ha subido un archivo + Feeds de relays favoritos + Relays a los que sueles ir para ver su feed global + Comunidades + Algoritmos de feed + Tablones + Hashtags + Conjuntos de intereses + Listas + Ubicaciones + Relés + Servidor de archivos + Elegir un servidor para subir este archivo + Oculta las publicaciones de desconocidos que sean exactamente iguales 5 o más veces. + Filtrar spam + Seguir + Seguir también + Todos los algoritmos de feed favoritos + A mi alrededor + Curada + Global + Lista de seguidos predeterminada + Todos los seguidos + Todos los seguidos + Mía + Lista de silenciados + Nuevo paquete de seguimiento + Editar pack de seguidos + Los metadatos del pack de seguidos pueden verlos todos en Nostr y se publican frecuentemente en muchos sitios web como kits de inicio para nuevos usuarios. + Metadatos del pack de seguidos + Paquetes de seguimiento + Nueva lista de seguimiento + Editar lista + Estilo de galería de perfil + Elige el estilo de galería + Clásico + Moderno + Publicación con ubicación exclusiva + Solo los seguidores de la ubicación la verán. Tus seguidores generales no la verán. + %1$s financiados del objetivo de %2$s sats + h + Este contenido cambió. Es posible que el autor no haya visto o aprobado el cambio + ¿Qué significa esto? + Este contenido es el mismo desde la publicación + Hola, %1$s, ¿esto todavía está disponible? + Palabras ocultas + Elimina publicaciones de los feeds de comunidades cuando la comunidad publica un documento de normas NIP-9B y un evento no lo cumple. No tiene efecto cuando una comunidad no tiene normas estructuradas. + Ocultar publicaciones que infrinjan las normas de la comunidad + Ocultar contraseña + Subiendo %1$s (%2$d de %3$d) + Todo + Solicitud incorrecta: el servidor no puede procesar o no procesará la solicitud. + No autorizado: el usuario no tiene credenciales de autenticación válidas. + Pago requerido: el servidor requiere pago para completar la solicitud. + Prohibido: el usuario no tiene derechos de acceso para realizar la solicitud. + No se encontró: el servidor no puede encontrar la dirección solicitada. + Método no permitido: el servidor admite el método de solicitud, pero no el recurso de destino. + No aceptable: el servidor no encuentra ningún contenido que satisfaga la solicitud. + Autenticación de proxy requerida: el usuario no tiene credenciales de autenticación válidas. + Tiempo de espera de la solicitud: se agotó el tiempo de espera del servidor. + Conflicto: el servidor no puede satisfacer la solicitud porque hay un conflicto con el recurso. + Borrado: el contenido solicitado se eliminó permanentemente del servidor y no se restablecerá. + Longitud requerida: el servidor rechaza la solicitud porque requiere una longitud definida. + Precondición fallida: las precondiciones de la solicitud en los campos de cabecera que el servidor no cumple. + Carga demasiado grande: la solicitud supera los límites definidos por el servidor, por lo que este se niega a procesarla. + URI demasiado largo: la URL solicitada por el cliente es demasiado larga para que el servidor pueda procesarla. + Tipo de contenido multimedia no admitido: la solicitud usa un formato multimedia que el servidor no admite. + Intervalo no satisfactorio: el servidor no puede satisfacer el valor indicado en el campo de cabecera del intervalo de la solicitud. + Expectativa fallida: el servidor no puede cumplir los requisitos indicados por el campo de cabecera de la solicitud Expect. + Actualización requerida: el servidor se niega a procesar la solicitud utilizando el protocolo actual a menos que el cliente se actualice a un protocolo diferente. + Error interno del servidor: el servidor encontró un error inesperado y no puede completar la solicitud. + No implementado: el servidor no puede completar la solicitud o no reconoce el método de solicitud. + Gateway incorrecto: el servidor actúa como gateway y obtuvo una respuesta no válida del host. + Servicio no disponible: esto ocurre a menudo cuando un servidor está sobrecargado o caído por mantenimiento. + Tiempo de espera del gateway: el servidor estaba actuando como gateway o proxy y se agotó el tiempo de espera de una respuesta. + Versión HTTP no admitida: el servidor no admite la versión HTTP de la solicitud. + La variante también negocia: el servidor tiene un error de configuración interno. + Almacenamiento insuficiente: el servidor no dispone de almacenamiento suficiente para procesar correctamente la solicitud. + Bucle detectado: el servidor detecta un bucle infinito al procesar la solicitud. + Autenticación de red requerida: el cliente debe estar autenticado para acceder a la red. + Comportamiento ilegal + Imagen guardada en la galería + Suplantación de identidad + Relays de entrada + Cantidad de factura incorrecta (%1$s sats) de %2$s. Debería haber sido %3$s. + Relés de indexador + Relés que se especializan en alojar los metadatos y las listas de retransmisión de todos, como purplepag.es. Amethyst usará estos relés para encontrar usuarios que no estén en tus listas. + Nuevo conjunto de intereses + Renombrar + Conjuntos de hashtags + Clave inválida + Clave inválida: %1$s + Dirección inválida + Amethyst recibió un URI para abrir pero era inválido: %1$s + No es posible citar un borrador de nota + No es posible reaccionar a un borrador de nota + No es posible responder a un borrador de nota + No es posible zapear un borrador de nota + Se requiere la clave + Relays de KeyPackage + Relays donde se publican tus MLS KeyPackages (MIP-00). Otros usuarios obtienen estas KeyPackages para invitarte a chats de grupo Marmot. Introduce entre 1 y 3 relays que acepten eventos KeyPackage de tu parte y permitan lecturas públicas. + Paquetes de claves + Conjunto de insignias aceptadas + Prólogo de aventura + Lectura de aventura + Escena de aventura + Recomendaciones de aplicaciones + Cita + Aplicaciones + Confirmación de cita + Cabecera de audio + Pista de audio + Pódcasts creados + Insignias concedidas + Definiciones de insignias + Datos blob + Cabeceras blob + Relés bloqueados + Blogs + Autenticación Blossom + Servidores Blossom + Lista de marcadores + Relés de difusión + Calendario + Definición de canal + Ocultar mensaje del canal + Lista de canales + Mensaje del canal + Metadatos del canal + Silenciar usuario del canal + Autenticación de ajedrez + Desafíos de ajedrez + Oferta de tablas en ajedrez + Aceptación de partida de ajedrez + Fin de partida de ajedrez + Partidas de ajedrez + Movimiento de ajedrez + Clasificados + Comentarios + Definición de comunidad + Lista de comunidades + Publicación de comunidad + Tarjeta de contacto + Cita del día + Eliminaciones + Archivo de mensaje directo + Mensaje directo + Relés DM + Borradores + Solicitud de contenido DVM + Respuesta de contenido DVM + Estado DVM + Solicitud de usuario DVM + Respuesta de usuario DVM + Ediciones + Lista de packs de emojis + Packs de emojis + Chat efímero + Salas de chat efímeras + Pódcasts favoritos + Relés favoritos + Cabeceras de archivo + Servidores de archivos + Lista de seguidos + Packs de seguidos + Seguidos por geohash + GiftWraps + Incidencia de Git + Parche de Git + Solicitud de incorporación + Actualización de solicitud de incorporación + Respuesta de Git + Repositorio de Git + Seguidos por hashtag + Destacados + Autenticación HTTP + Lista de relés de índice + Chats en directo + Transmisiones en directo + Datos médicos + Sala de reuniones + Espacio de reuniones + Lista de reproducción + Pista de música + Lista de silenciados + Marcadores con nombre + Servidores Nests + NIP + Mensajes directos NIP-04 + NNS + Nostr Connect + Notas + Solicitud NWC + Respuesta NWC + Lista de marcadores antigua + OTS + Relés de salida + Pagar a + Listas de personas + Imágenes + Fijados + Episodio de pódcast + Programa de pódcast + Encuesta + Respuesta de encuesta + Relés privados + Zaps privados + Perfil + Insignias del perfil + Galería del perfil + Relés proxy + Mensaje público + Reacciones + Autenticación de relé + Descubrimiento de relés + Anuncio del monitor de relés + Conjunto de relés + Informes + Republicaciones + Republicaciones (16) + Presencia en sala + Sellos + Relés de búsqueda + Comentarios de torrent + Torrents + Proveedores de confianza + Relés de confianza + Eliminación de usuario + Ajustes de usuario + Estado del usuario + Vídeo + Vídeo (Repl) + Mensaje de voz + Respuesta de voz + Marcador web + Entrenamientos + Objetivos de Zap + Encuesta de Zap + Solicitud de Zap + Zaps + Conocidos + Preferencias de visualización de idioma + Para cada par de idiomas traducidos, elige qué idioma mostrar primero. + Visto por última vez hace %1$s + Visto ahora mismo + Nunca visto + Visto por última vez el %1$s (hace %2$s) + Salir + Claro + Transmisiones en vivo + Relés locales + Lista de relés que se utilizan en este dispositivo. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder impulsar publicaciones + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder seguir a otros usuarios. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder ocultar una palabra o frase. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder responder + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder enviar zaps. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder mostrar una palabra o frase. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder firmar eventos. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder dejar de seguir a otros usuarios. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder subir contenido. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para indicar que te gustan las publicaciones. + Videos + m + Mis paquetes de emojis + Añadiendo %1$s… + Privilegios de administrador concedidos + Privilegios de administrador revocados + Error al añadir %1$s: %2$s + Error al crear el grupo: %1$s + Error al conceder administrador: %1$s + Error al salir del grupo: %1$s + Error al eliminar miembro: %1$s + Error al revocar administrador: %1$s + Error al actualizar: %1$s + Grupo MLS + Información del grupo actualizada + + %1$d miembro + %1$d miembros + + Miembro eliminado + No eres miembro de este grupo + error desconocido + Media añadida + Contenido multimedia agregado a la galería del perfil + Comenzó la descarga del contenido multimedia… + Servidores multimedia + El contenido multimedia es demasiado grande para NIP-95 + Ingresa primero el destino del mensaje + No se puede subir + Asunto + No se pudieron eliminar los metadatos + Error al eliminar los metadatos privados del archivo multimedia. Subida cancelada. + Los marcadores se migraron correctamente + Lightning no está configurado + Más opciones + Mover a privado + Mover a público + Subir una imagen de portada + Elige una imagen cuadrada como portada de esta lista de reproducción. + + +%1$d pista más + +%1$d pistas más + + + %1$d pista + %1$d pistas + + + %1$d pista + %1$d pistas + + Subiendo portada y publicando. Esto continuará aunque salgas de la pantalla. + Subir un archivo de audio + Elige un MP3, WAV o FLAC. Se subirá a tu servidor multimedia al guardar. + Subir una imagen de portada + Elige una imagen cuadrada como portada de esta pista. + Subiendo portada + audio y publicando. Esto continuará aunque salgas de la pantalla. + Sonido activado. Hacer clic para silenciar. + Silenciado. Hacer clic para reactivar el sonido. + Mis listas + Se requiere un nombre + Ajustes de Namecoin + Identidad + Leer tu clave pública + Mensajes + Intercambiar mensajes con otros napplets + Acciones del teclado + Enlazar atajos de teclado + Notificaciones + Mostrar notificaciones + Relés + Leer, firmar y publicar tus eventos + Red + Obtener recursos web y de Blossom + Almacenamiento + Su propio almacenamiento privado + Tema + Combina los colores de la app + Subidas + Subir archivos a tu servidor multimedia + Pagos + Pagar facturas de Lightning + Este nApplet quiere leer tu clave pública. + Esta nApplet quiere leer tu perfil y datos de la cuenta. + Este nApplet quiere mostrarte notificaciones. + + Este nApplet quiere pagar una factura Lightning de %1$d sat. + Este nApplet quiere pagar una factura Lightning de %1$d sats. + + Este nApplet quiere firmar y publicar un evento %1$d como tú. + Este nApplet quiere enviar un evento cifrado como tú. + Este nApplet quiere firmar y publicar un evento %1$d como tú: + Este nApplet quiere leer eventos de tus relés. + Este nApplet quiere obtener un recurso web. + Este sitio quiere firmar un evento kind:%1$d con tu clave Nostr. + Este nApplet quiere utilizar su almacenamiento privado. + Este nApplet quiere subir un archivo a tu servidor de medios. + No se pudo enviar el mensaje + Callar a este orador + Restaurar a este orador + Salir + No se pudo marcar la sala como cerrada. Saliendo de todos modos (la sala se cerrará automáticamente). + + %1$d oyente + %1$d oyentes + + Bajar la mano + Silenciar micrófono + Reactivar micrófono + Silenciar + No se ha podido guardar tu lista de servidores nest. Inténtalo de nuevo. + Nest — En vivo + Nests + Mantiene la reproducción de audio mientras una sala está abierta. + Nest conectado + Detener + Toca para regresar. + Seguir + Silenciar + Dejar de seguir + Reactivar + dejó el nest + se unió al público + entró al escenario + levantó la mano + está hablando + Levantar la mano + Reactivar + Guardado como un evento reemplazable para que otros clientes puedan leer tus preferencias. + Tus servidores + Sugerencias integradas que puedes añadir a tu lista con un solo toque. + Servidores recomendados + Servidores de nest + nunca + Nueva Insignia + Nuevo calendario + Nuevo evento de calendario + Nueva comunidad + Moderadores + Relés + Usuarios bloqueados + Comentario de la comunidad (1111) + Artículo de formato extenso (30023) + Publicación de imagen (20) + Texto corto (1) + Vídeo corto (22) + Publicación de video (21) + Kinds de eventos permitidos + Tamaño máximo de evento global (opcional) + Reglas verificables (opcional) + Portal de red de confianza (opcional) + Nuevo paquete de emojis + Nuevo objetivo + Nuevo artículo + Nueva lista de reproducción + Nueva pista de música + Nuevo producto + Nuevas solicitudes + Nuevos hilos + Nuevo entrenamiento + + %1$d activo incluido + %1$d activos incluidos + + No se encontraron aplicaciones de Blossom. Instala una aplicación local de Blossom para ver este archivo + No se pueden abrir enlaces de Blossom + No se ha encontrado ninguna aplicación de cámara en este dispositivo + La dirección de Lightning no está configurada + No se ha encontrado ninguna aplicación para gestionar este pago. Instala un monedero compatible. + No hay ninguna aplicación instalada para gestionar pagos de %1$s. Instala un monedero compatible. + No hay tipos de reacción preseleccionados para este usuario. Deja presionado el botón de corazón para cambiarlos. + No hay reacciones configuradas + No se encontraron billeteras para pagar una factura de Lightning. Instala una billetera de Lightning para usar zaps. + No se encontraron billeteras para pagar una factura de Lightning (error: %1$s). Instala una billetera de Lightning para usar zaps. + No has configurado la cantidad de zaps. Mantén presionado el botón para cambiarla. + Notificaciones + Categorías + Entrega + Visualización en la aplicación + ahora + Arte Nowhere + Drop Nowhere + Evento Nowhere + Foro Nowhere + Recaudación Nowhere + Sitio Nowhere + Mensaje Nowhere + Petición Nowhere + Tienda Nowhere + Desnudez + No se puede construir la referencia del evento + No hay clave pública de destinatario en la nota + Los nutzaps son públicos y revelarían esta nota privada. Usa un zap Lightning en su lugar. + Nutzap fallido + + Enviar %1$s sats, %2$d destinatario + Enviar %1$s sats, %2$d destinatarios + + El backend de la cadena Bitcoin no está configurado + No se pudo difundir la transacción + No se pudo construir la transacción + No se pudo cargar tu saldo de Bitcoin + Pago enviado, pero el recibo del zap no se pudo publicar + + Pago enviado (%1$d de %2$d recibo publicado), pero el siguiente recibo no se pudo publicar + Pago enviado (%1$d de %2$d recibos publicados), pero el siguiente recibo no se pudo publicar + + La parte de un destinatario está por debajo del dust + No se pudo firmar la transacción + ~10 min + ~30 min + ~1 h + Rápido + Normal + Lento + %1$s · %2$s sat/vB · %3$s + + Divisiones entre %1$d destinatario + Divisiones entre %1$d destinatarios + + + Se omite %1$d destinatario solo con dirección Lightning — el onchain necesita una clave pública Nostr para derivar la dirección. + Se omiten %1$d destinatarios solo con dirección Lightning — el onchain necesita una clave pública Nostr para derivar la dirección. + + + Usar la división de zap %1$d de esta nota + Usar la división de zap %1$d de esta nota + + difundiendo + construyendo la transacción + cargando saldo + publicando el recibo + firmando + Solo se permite un voto por usuario en este tipo de encuesta + Abrir todas las reacciones a esta publicación + Abiertas + Puerto Socks de Orbot + Explorador de Bitcoin (OTS) + Hay prueba de que esta publicación se firmó en algún momento antes de %1$s. La prueba se marcó en la cadena de bloques de Bitcoin en esa fecha y hora. + Prueba de marca de tiempo + Relays de salida + Se requiere una contraseña + Pausar + Pagar + Mensaje de %1$s + Objetivos de pago + Añadir direcciones de pago para diferentes redes (por ejemplo, Bitcoin, Lightning o Ethereum). + PDF guardado en Descargas/Amethyst + Los metadatos de las listas de seguidos pueden verlos todos en Nostr. Solo tus miembros privados están cifrados. + Metadatos de lista de seguidos + Imágenes + Fijar arriba + Fijar en el perfil + Reproducir + + %1$d episodio + %1$d episodios + + Los autores de encuestas no pueden votar en ellas. + (0–100)% + Encuesta cerrada para votos nuevos + Opción múltiple + Opción %1$s + Opción simple + No se puede votar + Encuestas + Publicar + + Esta publicación tiene más de %1$d hashtag + Esta publicación tiene más de %1$d hashtags + + Vista previa de imagen de tarjeta para %1$s + Opciones de privacidad + Política de privacidad + <Unable to decrypt private message>\n\nTe citaron en una conversación privada o encriptada entre %1$s y %2$s. + Relés de entrada DM + Inserta entre 1 y 3 relés para que te sirvan de buzón de entrada privado. Otros usarán estos relés para enviarte mensajes directos. Los relés del buzón de entrada para mensajes directos deberían aceptar cualquier mensaje de cualquier persona, pero solo te permiten descargarlos. Algunas buenas opciones son:\n - inbox.nostr.wine (de pago)\n - you.nostr1.com (relés personales; de pago) + El usuario recibe mensajes directos en estos relés + Mensaje privado + Hacer privado: envolver la nota como gift-wrap solo a los usuarios notificados + Las respuestas a una nota privada siempre permanecen privadas + Visible para + Relés privados + Inserta entre 1 y 3 relés para almacenar eventos que nadie más pueda ver, como los borradores o la configuración de la app. Lo ideal es que estos relés sean locales o requieran autenticación antes de descargar el contenido de cada usuario. + Groserías o lenguaje que incita al odio + Perfil + Insignias del perfil + Recomendaciones de aplicaciones + Insignias del perfil + Feed de seguidores + Feed de zaps recibidos + Interfaz del perfil + perfiles + Proponer una edición + Relés de proxy + Relés recopiladores que la app debe usar para descargar tus feeds, como filter.nostr.wine. Esto reemplaza el modelo de bandeja de salida y hará que la app se conecte solo a los relés de tus listas. + Chat público + Los chats públicos son visibles para todos en Nostr y cualquiera + puede participar en ellos. Son ideales para comunidades abiertas alrededor de temas específicos. + La moderación puede controlarse eliminando publicaciones en sus relés. + Inserta entre 1 y 3 relés que alojan este grupo. + Los clientes de Nostr utilizan esta configuración para saber de dónde descargar y adónde enviar los mensajes. + Relés + Metadatos públicos del chat + Chats públicos + Relés de inicio públicos + Este tipo de relé almacena todo tu contenido. Amethyst enviará tus publicaciones aquí y otros usarán estos relés para encontrar tu contenido. Inserta entre 1 y 3 relés. Pueden ser personales, de pago o públicos. + El usuario está publicando su contenido a estos relés + Mensaje público + Relés de buzón de entrada públicos + Este tipo de relé recibe todas las respuestas, comentarios, me gusta y zaps de tus publicaciones. Inserta entre 1 y 3 relés y asegúrate de que acepten publicaciones de cualquier persona. + El usuario está recibiendo notificaciones en estos relés + ID de la nota + Eliminar + Silenciar hilo + Compartir + Compartir enlace del navegador + Reactivar hilo + Reacción + Reacciones + Fila de reacciones + Relé de lectura + La cantidad en bytes que se recibieron de este relé, incluyendo filtros y eventos + Usuario de solo lectura + Haz clic y mantén presionado para grabar un mensaje + Chat en relé + Los chats en relé son grupos de chat controlados por su relé de origen. + Son visibles para todos los usuarios de Nostr y cualquiera puede participar en ellos. + Son ideales para comunidades abiertas en torno a temas específicos. Algunos de estos grupos son efímeros + y, por lo tanto, los mensajes del chat desaparecen con el tiempo + Chats en relé + Eventos + Tipos + Usuarios + Ajustes + Configuración de relés + listas de salida + Relés + Recargar y enviar zap + Enviar zap + Recargar %1$s sats en %2$s y enviar zap de %3$s %4$s sats · comisión ≈ %5$s sats + Eliminar + Eliminar de marcadores públicos + responde aquí… + Notificar: + + Solicitar eliminación + Solicitud de desaparición + Error al restablecer el estado de Marmot: %1$s + Restablecer estado de Marmot + Estado de Marmot restablecido. + Reintentar + Listas de calendarios + Calendarios + Ajedrez + Descubrir + Inicio + Importar seguidos + Mensajes + Listas de reproducción + Música + Notificaciones + Episodios + Podcasts + Programar publicación + Cancelar programación + Las publicaciones programadas pueden no realizarse hasta que vuelvas a abrir la aplicación. Las publicaciones programadas de otras cuentas no se activarán mientras esta cuenta esté activa. Habilita la activación en "Configuración → Preferencias de interfaz de usuario" para garantizar una programación en segundo plano fiable. + Las publicaciones programadas pueden no realizarse hasta que vuelvas a abrir la aplicación. Habilita la activación en "Configuración → Preferencias de interfaz de usuario" para garantizar una programación en segundo plano fiable. + Publicaciones programadas + Enviar ahora + %1$s · en %2$s + %1$s · hace %2$s + Mañana + Error: %1$s + ID de nota copiado + + Sesión cerrada · %1$d publicación programada eliminada + Sesión cerrada · %1$d publicaciones programadas eliminadas + + Sesión cerrada + + Tienes %1$d publicación programada que aún no se ha publicado. Cerrar sesión la eliminará permanentemente. + Tienes %1$d publicaciones programadas que aún no se han publicado. Cerrar sesión las eliminará permanentemente. + + Fallo en la publicación programada + Se realizó la publicación programada + + a %1$d relé + a %1$d relés + + Cancelada + Error + Programadas + Enviando… + Enviada + + · %1$d vence en 1h + · %1$d vencen en 1h + + + %1$d en cola + %1$d en cola + + Algunas buenas opciones son: \n%1$s + Relés de búsqueda + Relés de búsqueda + Lista de relés que se usarán al buscar contenido o usuarios. El etiquetado y la búsqueda no funcionarán si no hay opciones disponibles. Asegúrate de que implementen NIP-50. + eventos buscables + Clave secreta (nsec) copiada al portapapeles + Aún no has bloqueado a ningún usuario. + Filtros de seguridad + No hay palabras ocultas. Añade una palabra a continuación para ocultar las publicaciones que la contengan. + Contenido bloqueado + Preferencias de filtrado + Ninguna cuenta ha sido marcada como spam en esta sesión. + Enviar + Enviar todos los eventos de perfil (kind 0) recibidos a tu relay local + Reenviar perfiles al relay local + Disponible para este destinatario: %1$s sats + Pago fallido + Transacción: %1$s + Pagando por %1$s… + El servidor no proporcionó una URL después de la subida + Configuración + No hay hilos silenciados + Hilos silenciados + Compartir como imagen + Compartir como Url de Imagen + Subida HLS + Compartir o guardar + Cortos + Mostrar código QR de clave privada cifrada + Incluye mensajes directos y de grupo en la pestaña de Notificaciones. Desactívalo para mantener los mensajes solo en la pestaña de Mensajes. + Mostrar mensajes + Mostrar código QR de clave privada + Solicitud de firma rechazada + Asegúrate de que la aplicación firmante haya autorizado esta transacción. + El firmante externo devolvió una carga útil que no concuerda con la solicitud. Es posible que haya un error, ya sea en Amethyst o en el firmante. + No se ha encontrado el firmante. + ¿Se desinstaló la app del firmante? Comprueba si el firmante está instalado y tiene esta cuenta. Cierra sesión y vuelve a iniciar sesión en la app del firmante si cambió. + Retroceder %1$d segundos + Adelantar %1$d segundos + Apps + Spam + El número de eventos de spam procedentes de este relé + Spammers + Muestra dos pestañas de notificaciones: Siguiendo (personas que sigues) y Todos. El indicador de no leídos se ilumina solo para la actividad de las personas que sigues. + Dividir notificaciones por Seguidos + Intenta eliminar los metadatos privados de los archivos multimedia compatibles antes de subirlos + Eliminar metadatos privados + Lee los entrenamientos finalizados de Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) y sugiere compartirlos como publicación. El permiso se solicita solo cuando te conectas. + Sugerir entrenamientos para compartir + Sistema + Tema + Tema oscuro, claro o del sistema + Este mensaje desaparecerá en %1$s + + +%1$d\nrespuesta + +%1$d\nrespuestas + + Hoy + Personalizado + Crea el tuyo + Predeterminado + Ocultar tu IP de relés aleatorios + Orbot + Privacidad total + Ocultar su IP en todas las conexiones + Interno + Desactivado + Preconfiguración de Tor y privacidad + Modificar rápidamente todos los ajustes a continuación + Todo menos media + Ocultar tu IP de todo, excepto imágenes y videos + Relés DM + Forzar Tor para enviar y recibir mensajes directos + Imágenes + Forzar Tor al cargar imágenes + Subidas multimedia + Forzar Tor al subir contenido + Operaciones monetarias + Forzar Tor en transferencias de zaps, Lightning y Cashu + Relés no confiables + Forzar Tor en la bandeja de salida/entrada + Verificación de dirección de Nostr + Forzar Tor al verificar direcciones NIP-05 + Url/Relés tipo onion + Usar Tor para cualquier URL .onion + Imágenes de perfil + Forzar Tor al cargar imágenes de perfil + Relés de confianza + Forzar Tor en todos los relés de tus listas + Vistas previas de URL + Forzar Tor al cargar vistas previas de URL + Videos + Forzar Tor al cargar videos + Básico + Usar Tor cuando lo requiera el servidor + Error al abrir el archivo + No hay aplicaciones torrent instaladas para abrir y descargar el archivo. + El evento no tiene suficiente información para crear un enlace magnético + Usa el emisor rastreado al enviar eventos. Muestra el progreso en tiempo real y el estado por relay durante la difusión. + Difusiones rastreadas + Traducir a + Elige el idioma al que traducir el contenido. + Traducciones + Relés de confianza + Relés en que confías para no necesitar una conexión Tor para + Completo + Rendimiento + Simplificado + Preferencias de interfaz de usuario + Modo de interfaz + Elegir el estilo de publicación + No se pudo crear una factura de Lightning antes de enviar el zap. La billetera de Lightning del destinatario envió el siguiente error: %1$s. + No se puede compartir la imagen, inténtalo de nuevo más tarde… + No se puede compartir el vídeo, por favor inténtalo de nuevo más tarde… + Descifrado no autorizado + El firmante no autorizó un descifrado necesario para realizar esta operación. Activa el descifrado NIP-44 en tu aplicación de firmante e inténtalo de nuevo + Dejar de seguir + Eliminar fijado + Desfijar del perfil + Subida cancelada + Error de carga + Error al cargar voz: %1$s + Error al cargar el mensaje de voz + NIP-95 aún no es compatible con mensajes de voz + %1$d%% de disponibilidad + Motor de Tor activo + Usar la versión interna u Orbot + El usuario no tiene configurada una dirección de Lightning para recibir sats + El usuario %1$s no tiene una dirección de Lightning configurada para recibir sats. + Historial de desapariciones + Solicitud de desaparición enviada + Mejor calidad en tamaños de archivos más pequeños, pero no todos los dispositivos admiten la reproducción H.265. + Usa H.265/HEVC Codec + Comenzó la descarga del video… + Botones del reproductor de vídeo + Video guardado en la galería de videos del teléfono + Publicación de voz + Grave + Aguda + Neutra + Ninguna + Respuesta de voz + Billetera + Cartera Cashu (NIP-60) + Wallet Connect + El proveedor de conexión de billetera devolvió el siguiente error: %1$s + Editar mints + Muestra un mensaje de advertencia cuando los mensajes tienen 5 o más reportes de los usuarios que sigues. + Advertir sobre reportes + Añadir marcador web + Editar marcador web + Marcadores web + ¿Qué estás pensando? + Entrenamientos + Escribir un mensaje… + Relé de escritura + La cantidad en bytes que se enviaron a este relé, incluyendo filtros y eventos + Zap + Zaps + + Cambiar nombre + Guardar diff --git a/commonsUI/src/commonMain/composeResources/values-es-rUS/strings.xml b/commonsUI/src/commonMain/composeResources/values-es-rUS/strings.xml index 04ad8b607b..32724f70e0 100644 --- a/commonsUI/src/commonMain/composeResources/values-es-rUS/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-es-rUS/strings.xml @@ -1794,4 +1794,1200 @@ URL base de la API del explorador Pagar factura del DVM Pagar %1$s sats al DVM + Información y avisos legales + Configuraciones de la cuenta + Agregar + Agregar un servidor Blossom + Agregar servidor NIP-96 + Cuando está activado, Amethyst añade una etiqueta de cliente NIP-89 a los eventos que publicas. + Añadir etiqueta de cliente a mis eventos + Agrega una advertencia de contenido sensible antes de mostrarlo + Contenido delicado + Agregar a marcadores públicos + Usa un modelo de IA en el dispositivo para proponer correcciones de texto y cambios de tono. + Proponer mejoras de texto + Mantiene las conexiones a tus relays de bandeja de entrada activas para notificaciones en tiempo real + + Conectado a %1$d relay de bandeja de entrada + Conectado a %1$d relays de bandeja de entrada + + + Conectado a %1$d relay + Conectado a %1$d relays + + Conectando a los relays de bandeja de entrada… + Notificaciones de Amethyst activas + Notificaciones de llamadas de voz y vídeo entrantes + Llamadas entrantes + %1$s ha aceptado tu desafío de ajedrez + Te notifica sobre eventos de partidas de ajedrez + Ajedrez + Actualizaciones de ajedrez + %1$s ha movido — es tu turno + Te notifica cuando llega un mensaje privado + Mensajes privados + Nuevos mensajes + Marcar como leído + Te notifica cuando alguien te menciona o te cita en una publicación + %1$s te mencionó + Menciones + Nuevas menciones + Te notifica cuando alguien reacciona a tu publicación + %1$s reaccionó a tu publicación + para %1$s + Reacciones + Nuevas reacciones + Te notifica cuando alguien responde a tu publicación + Respuestas + Nuevas respuestas + Responder + Notificaciones cuando una publicación programada se realiza o no. + Publicaciones programadas + Te notifica cuando alguien te zapea + %1$s sats + por %1$s + De %1$s + Zaps recibidos + Nuevos zaps + Ajustes de la app + Atestación + Solicitud de atestación + Competencia del atestador + Recomendación del atestador + Visualizador de audio + Guarda un borrador automáticamente cuando escribes o abandonas el compositor con texto no enviado, y lo envía a tus relays de bandeja de salida privada. + Crear borradores automáticamente + Desplazamiento inmersivo + Ocultar barras de navegación al desplazarse + Vista previa de imagen + Cargar automáticamente imágenes y GIF + Reproducción de vídeo + Reproducir automáticamente videos y GIF + Imagen de perfil + Mostrar imágenes de perfil + Vista previa de URL + Mostrar vistas previas de URL + Reproducción automática de vídeos + Reproduce vídeos automáticamente cuando son visibles en pantalla + No se pueden eliminar los metadatos del AVIF: %1$s + Insignia de premio + Volver + Respaldar claves + Insignias + Error de autenticación + El sistema biométrico no pudo autenticar al propietario de este teléfono + El sistema biométrico no pudo autenticar al propietario de este teléfono. Error: %1$s + Bloquear + Relés bloqueados + Amethyst nunca se conectará a estos relés + Usuarios bloqueados + Nueva lista de marcadores + Metadatos de lista de marcadores + Los metadatos de las listas de marcadores son visibles para cualquier usuario de Nostr. Solo los miembros privados están cifrados. + Marcadores + Impulsar + Barra de navegación inferior + Relés de transmisión + Relés que se especializan en enviar tus notas a todos los demás relés, como sendit.nosflare.com. Amethyst agregará este relé a todos los eventos nuevos que crees. + Navegador + Favoritos + Descubre apps web + Cargando a través de la web abierta. Toca para usar Tor. + Cargando a través de Tor. Toca para usar la web abierta. + + %1$s, %2$d evento + %1$s, %2$d eventos + + Error al subir la imagen + No se pudo subir la imagen seleccionada. Inténtalo de nuevo o pega una URL. + Compartir evento de calendario + Abrir en mapas + Abrir enlace + En curso ahora + %1$s · termina %2$s + + Comienza en %1$d minuto + Comienza en %1$d minutos + + Aviso cuando un evento al que asistirás está a punto de comenzar. + recordatorios_calendario + Recordatorios de calendario + Evento de calendario + Se enviará una notificación cuando un evento al que asistirás esté a punto de comenzar. + Enviar recordatorios + + %1$d min + %1$d min + + Recordatorios de calendario + Día + Tablón + Mes + Semana + Aceptar + Bluetooth + Cámara desactivada + Cámara activada + Auricular + Colgar + Llamada entrante + Llamada de vídeo entrante… + Llamada de voz entrante… + Silenciar + Llamadas + Notificación de llamada en curso + Amethyst necesita acceso a la cámara y al micrófono para iniciar una videollamada. Actívalos en los ajustes de la aplicación. + Amethyst necesita acceso al micrófono para iniciar una llamada de voz. Actívalo en los ajustes de la aplicación. + Rechazar + Ajustes de llamada + Altavoz + Reactivar + Llamada con %1$s + No se encontró la URL de devolución de llamada en la respuesta de %1$s. + Cancelar + Token de Cashu + Comprobando el mint… + No se pudo canjear Cashu + La Mint proporcionó el siguiente mensaje de error: %1$s + Recibido + Enviado + Mints coincidentes + + +%1$d más + +%1$d más + + Mints populares + + Recomendado por %1$d persona más + Recomendado por %1$d personas más + + %1$s sat movidos a %2$s. + No se encontró ninguna billetera de Cashu compatible en el sistema + + %1$d factura pendiente + %1$d facturas pendientes + + ¿Pagar %1$s sat + hasta %2$s sat en comisiones? + Publicar una solicitud de eliminación para tu recomendación kind:38000 de %1$s. Los relays que respetan NIP-09 la eliminarán. + Se recuperaron %1$s sats en %2$s pruebas. + Cashu recibido + Se enviaron %1$s sats a tu billetera (comisión: %2$s sats). + + Fondos en %1$d mint que no usas + Fondos en %1$d mints que no usas + + Esperando a que se pague la factura… + Detener emisión + Emitir al dispositivo + Estándares de seguridad infantil + Accesorios + Arte + Libros + Ropa + Objetos de colección + Artesanías + Artículos electrónicos + Acondicionamiento físico + Comida + Muebles + Hogar + Varios + Oficina + Otros + Mascotas + Deportes + Diario + Mensual + Único + Semanal + ¿Pagar %1$s por %2$s? + ¿Pagar esta factura por %1$s? + El servicio de débito no completó el pago. + Introduce una cantidad válida para esta oferta. + Solicitando factura… + Cerrar todas las reacciones a esta publicación + Cerradas + Comunidades + El borrador ocupa %1$d bytes; esta comunidad limita este tipo a %2$d bytes. + El borrador ocupa %1$d bytes; esta comunidad limita los eventos a %2$d bytes. + Ya has publicado %1$d eventos de este tipo hoy (límite %2$d). + Ajustes de composición + El puerto predeterminado es 9050 + Relés conectados + Lista actual de relés en uso + Porcentaje de conexiones exitosas al relé + Siempre + Nunca + WiFi sin medición + Agregar documento + Agregar imagen + Agregar contenido multimedia + Agregar video + Ocultar + Advertir + Mostrar + Conversaciones + Convierte GIF animados a vídeo MP4 para reducir el tamaño del archivo y mejorar la compatibilidad de reproducción. + Convertir GIF a MP4 + ID de la nota (@note1) copiado al portapapeles + Texto de la nota copiado al portapapeles + Copiado al portapapeles + @npub del autor copiado al portapapeles + Copiar mi clave secreta + Copiar al portapapeles + No se pudo ensamblar la LNUrl desde la dirección de Lightning "%1$s". Comprueba la configuración del usuario. + No se pudo comprobar el archivo descargado después de subir: %1$s + No se pudo descargar el contenido subido desde el servidor + No se pudo obtener la factura de %1$s: %2$s + No se pudo abrir el archivo comprimido + Billetera no encontrada + Amethyst no encontró ninguna aplicación de cartera compatible con Nostr Wallet Connect (NWC). +\n\nQué puedes hacer: +\n\t1. Verificar la compatibilidad con NWC: Comprueba que tu aplicación de cartera preferida es compatible con Nostr Wallet Connect. +\n\t2. Crear conexión: Ve a tu aplicación de cartera y crea una nueva conexión NWC. +\n\t3. Vincular con Amethyst: Tu cartera normalmente te ofrecerá tres opciones: +\n\t\t3.1 Enlace automático: Un botón para abrir y conectar automáticamente a Amethyst. Si es así, pulsa ese botón, abre Amethyst y guarda en la nueva pantalla. +\n\t\t3.2 Enlace manual: Un URI de conexión que puedes copiar y pegar usando el icono de pegado en esta pantalla para introducirlo directamente. +\n\t\t3.3 Código QR: La cartera genera un código QR que puedes leer con el botón de código QR en esta pantalla. + + Crear + d + Zona peligrosa + Oscuro + Descripción + Hacer público + Chats + Comunidades + Algoritmos del feed + Paquetes de seguimiento + Transmisiones en vivo + Mercado + Lecturas + Relés de entrada DM + No traducir del + Los idiomas que se muestran aquí no se traducirán. Selecciona un idioma para eliminarlo y traducirlo de nuevo. + Guardar en el teléfono + Descargando vídeo… + Borrador de nota + Borradores + Cuentas + Crear + Tablones + Navegar + Sistema + Tú + + %1$d día + %1$d días + + + %1$d hora + %1$d horas + + + %1$d minuto + %1$d minutos + + + %1$d mes + %1$d meses + + + %1$d semana + %1$d semanas + + + %1$d año + %1$d años + + Editar calendario + Editar evento de calendario + Editar comunidad + Editar paquete de emojis + Editar lista de reproducción + Editar publicación + Los emojis privados se almacenan cifrados en los relays y solo son visibles para ti. Aparecen en tu menú de reacciones y en el autocompletado ":" igual que los públicos. + Los emojis públicos son visibles para todos y aparecen en tu menú de reacciones y en el selector de autocompletado ":" cuando este paquete está en tu lista de emojis. + Cifra los archivos antes de subirlos para mayor privacidad. Algunos servidores pueden no aceptar archivos cifrados en cuentas gratuitas. + Cifrar archivos + Chat temporal + Error + No se pudo pagar la factura + No se pudo retirar + No se puede abrir el pago + No se pudo enviar el zap + Error al abrir la aplicación firmante + No se pudo encontrar la aplicación firmante. Comprueba si no se desinstaló la aplicación. + Error al analizar el mensaje de error + Error al analizar JSON desde %1$s. Comprueba la configuración de Lightning del usuario. + No se puede obtener la factura de los servidores del destinatario + Abrir en el navegador + No se puede reproducir este vídeo + El códec o formato no es compatible con este dispositivo (%1$s). Intenta abrirlo en tu navegador. + Errores + Sincronización de relés + eventos tuyos + eventos para ti + Circuito + Ciclismo + Dieta + Ayuno + Senderismo + Meditación + Remo + Carrera + Fuerza + Natación + Caminata + Yoga + Expandir + Fecha de expiración + Exportar configuración de relays + Error al eliminar: %1$s + Error al cifrar la clave privada + Error al guardar la imagen + Error al guardar el PDF + Error al guardar el video + Muchos servidores no aceptan archivos cifrados en cuentas gratuitas. Puedes volver a intentarlo sin cifrado. + Error al subir el archivo cifrado + Error de subida: %1$s + Error al subir contenido multimedia + Error al subir a %1$s: %2$s + Añadir a favoritos + Se carga a través de la web abierta. + Se carga a través de Tor. + Recientes + Eliminar de favoritos + Esa aplicación aún no está cargada. Inténtalo de nuevo en un momento. + Aplicaciones favoritas + Algoritmos de feed favoritos + Se ha realizado un pago + Publicado en los relays + Se ha subido un archivo + Feeds de relays favoritos + Relays a los que sueles ir para ver su feed global + Comunidades + Algoritmos de feed + Tablones + Hashtags + Conjuntos de intereses + Listas + Ubicaciones + Relés + Servidor de archivos + Elegir un servidor para subir este archivo + Oculta las publicaciones de desconocidos que sean exactamente iguales 5 o más veces. + Filtrar spam + Seguir + Seguir también + Todos los algoritmos de feed favoritos + A mi alrededor + Curada + Global + Lista de seguidos predeterminada + Todos los seguidos + Todos los seguidos + Mía + Lista de silenciados + Nuevo paquete de seguimiento + Editar pack de seguidos + Los metadatos del pack de seguidos pueden verlos todos en Nostr y se publican frecuentemente en muchos sitios web como kits de inicio para nuevos usuarios. + Metadatos del pack de seguidos + Paquetes de seguimiento + Nueva lista de seguimiento + Editar lista + Estilo de galería de perfil + Elige el estilo de galería + Clásico + Moderno + Publicación con ubicación exclusiva + Solo los seguidores de la ubicación la verán. Tus seguidores generales no la verán. + %1$s financiados del objetivo de %2$s sats + h + Este contenido cambió. Es posible que el autor no haya visto o aprobado el cambio + ¿Qué significa esto? + Este contenido es el mismo desde la publicación + Hola, %1$s, ¿esto todavía está disponible? + Palabras ocultas + Elimina publicaciones de los feeds de comunidades cuando la comunidad publica un documento de normas NIP-9B y un evento no lo cumple. No tiene efecto cuando una comunidad no tiene normas estructuradas. + Ocultar publicaciones que infrinjan las normas de la comunidad + Ocultar contraseña + Subiendo %1$s (%2$d de %3$d) + Todo + Solicitud incorrecta: el servidor no puede procesar o no procesará la solicitud. + No autorizado: el usuario no tiene credenciales de autenticación válidas. + Pago requerido: el servidor requiere pago para completar la solicitud. + Prohibido: el usuario no tiene derechos de acceso para realizar la solicitud. + No se encontró: el servidor no puede encontrar la dirección solicitada. + Método no permitido: el servidor admite el método de solicitud, pero no el recurso de destino. + No aceptable: el servidor no encuentra ningún contenido que satisfaga la solicitud. + Autenticación de proxy requerida: el usuario no tiene credenciales de autenticación válidas. + Tiempo de espera de la solicitud: se agotó el tiempo de espera del servidor. + Conflicto: el servidor no puede satisfacer la solicitud porque hay un conflicto con el recurso. + Borrado: el contenido solicitado se eliminó permanentemente del servidor y no se restablecerá. + Longitud requerida: el servidor rechaza la solicitud porque requiere una longitud definida. + Precondición fallida: las precondiciones de la solicitud en los campos de cabecera que el servidor no cumple. + Carga demasiado grande: la solicitud supera los límites definidos por el servidor, por lo que este se niega a procesarla. + URI demasiado largo: la URL solicitada por el cliente es demasiado larga para que el servidor pueda procesarla. + Tipo de contenido multimedia no admitido: la solicitud usa un formato multimedia que el servidor no admite. + Intervalo no satisfactorio: el servidor no puede satisfacer el valor indicado en el campo de cabecera del intervalo de la solicitud. + Expectativa fallida: el servidor no puede cumplir los requisitos indicados por el campo de cabecera de la solicitud Expect. + Actualización requerida: el servidor se niega a procesar la solicitud utilizando el protocolo actual a menos que el cliente se actualice a un protocolo diferente. + Error interno del servidor: el servidor encontró un error inesperado y no puede completar la solicitud. + No implementado: el servidor no puede completar la solicitud o no reconoce el método de solicitud. + Gateway incorrecto: el servidor actúa como gateway y obtuvo una respuesta no válida del host. + Servicio no disponible: esto ocurre a menudo cuando un servidor está sobrecargado o caído por mantenimiento. + Tiempo de espera del gateway: el servidor estaba actuando como gateway o proxy y se agotó el tiempo de espera de una respuesta. + Versión HTTP no admitida: el servidor no admite la versión HTTP de la solicitud. + La variante también negocia: el servidor tiene un error de configuración interno. + Almacenamiento insuficiente: el servidor no dispone de almacenamiento suficiente para procesar correctamente la solicitud. + Bucle detectado: el servidor detecta un bucle infinito al procesar la solicitud. + Autenticación de red requerida: el cliente debe estar autenticado para acceder a la red. + Comportamiento ilegal + Imagen guardada en la galería + Suplantación de identidad + Relays de entrada + Cantidad de factura incorrecta (%1$s sats) de %2$s. Debería haber sido %3$s. + Relés de indexador + Relés que se especializan en alojar los metadatos y las listas de retransmisión de todos, como purplepag.es. Amethyst usará estos relés para encontrar usuarios que no estén en tus listas. + Nuevo conjunto de intereses + Renombrar + Conjuntos de hashtags + Clave inválida + Clave inválida: %1$s + Dirección inválida + Amethyst recibió un URI para abrir pero era inválido: %1$s + No es posible citar un borrador de nota + No es posible reaccionar a un borrador de nota + No es posible responder a un borrador de nota + No es posible zapear un borrador de nota + Se requiere la clave + Relays de KeyPackage + Relays donde se publican tus MLS KeyPackages (MIP-00). Otros usuarios obtienen estas KeyPackages para invitarte a chats de grupo Marmot. Introduce entre 1 y 3 relays que acepten eventos KeyPackage de tu parte y permitan lecturas públicas. + Paquetes de claves + Conjunto de insignias aceptadas + Prólogo de aventura + Lectura de aventura + Escena de aventura + Recomendaciones de aplicaciones + Cita + Aplicaciones + Confirmación de cita + Cabecera de audio + Pista de audio + Pódcasts creados + Insignias concedidas + Definiciones de insignias + Datos blob + Cabeceras blob + Relés bloqueados + Blogs + Autenticación Blossom + Servidores Blossom + Lista de marcadores + Relés de difusión + Calendario + Definición de canal + Ocultar mensaje del canal + Lista de canales + Mensaje del canal + Metadatos del canal + Silenciar usuario del canal + Autenticación de ajedrez + Desafíos de ajedrez + Oferta de tablas en ajedrez + Aceptación de partida de ajedrez + Fin de partida de ajedrez + Partidas de ajedrez + Movimiento de ajedrez + Clasificados + Comentarios + Definición de comunidad + Lista de comunidades + Publicación de comunidad + Tarjeta de contacto + Cita del día + Eliminaciones + Archivo de mensaje directo + Mensaje directo + Relés DM + Borradores + Solicitud de contenido DVM + Respuesta de contenido DVM + Estado DVM + Solicitud de usuario DVM + Respuesta de usuario DVM + Ediciones + Lista de packs de emojis + Packs de emojis + Chat efímero + Salas de chat efímeras + Pódcasts favoritos + Relés favoritos + Cabeceras de archivo + Servidores de archivos + Lista de seguidos + Packs de seguidos + Seguidos por geohash + GiftWraps + Incidencia de Git + Parche de Git + Solicitud de incorporación + Actualización de solicitud de incorporación + Respuesta de Git + Repositorio de Git + Seguidos por hashtag + Destacados + Autenticación HTTP + Lista de relés de índice + Chats en directo + Transmisiones en directo + Datos médicos + Sala de reuniones + Espacio de reuniones + Lista de reproducción + Pista de música + Lista de silenciados + Marcadores con nombre + Servidores Nests + NIP + Mensajes directos NIP-04 + NNS + Nostr Connect + Notas + Solicitud NWC + Respuesta NWC + Lista de marcadores antigua + OTS + Relés de salida + Pagar a + Listas de personas + Imágenes + Fijados + Episodio de pódcast + Programa de pódcast + Encuesta + Respuesta de encuesta + Relés privados + Zaps privados + Perfil + Insignias del perfil + Galería del perfil + Relés proxy + Mensaje público + Reacciones + Autenticación de relé + Descubrimiento de relés + Anuncio del monitor de relés + Conjunto de relés + Informes + Republicaciones + Republicaciones (16) + Presencia en sala + Sellos + Relés de búsqueda + Comentarios de torrent + Torrents + Proveedores de confianza + Relés de confianza + Eliminación de usuario + Ajustes de usuario + Estado del usuario + Vídeo + Vídeo (Repl) + Mensaje de voz + Respuesta de voz + Marcador web + Entrenamientos + Objetivos de Zap + Encuesta de Zap + Solicitud de Zap + Zaps + Conocidos + Preferencias de visualización de idioma + Para cada par de idiomas traducidos, elige qué idioma mostrar primero. + Visto por última vez hace %1$s + Visto ahora mismo + Nunca visto + Visto por última vez el %1$s (hace %2$s) + Salir + Claro + Transmisiones en vivo + Relés locales + Lista de relés que se utilizan en este dispositivo. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder impulsar publicaciones + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder seguir a otros usuarios. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder ocultar una palabra o frase. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder responder + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder enviar zaps. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder mostrar una palabra o frase. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder firmar eventos. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder dejar de seguir a otros usuarios. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder subir contenido. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para indicar que te gustan las publicaciones. + Videos + m + Mis paquetes de emojis + Añadiendo %1$s… + Privilegios de administrador concedidos + Privilegios de administrador revocados + Error al añadir %1$s: %2$s + Error al crear el grupo: %1$s + Error al conceder administrador: %1$s + Error al salir del grupo: %1$s + Error al eliminar miembro: %1$s + Error al revocar administrador: %1$s + Error al actualizar: %1$s + Grupo MLS + Información del grupo actualizada + + %1$d miembro + %1$d miembros + + Miembro eliminado + No eres miembro de este grupo + error desconocido + Media añadida + Contenido multimedia agregado a la galería del perfil + Comenzó la descarga del contenido multimedia… + Servidores multimedia + El contenido multimedia es demasiado grande para NIP-95 + Ingresa primero el destino del mensaje + No se puede subir + Asunto + No se pudieron eliminar los metadatos + Error al eliminar los metadatos privados del archivo multimedia. Subida cancelada. + Los marcadores se migraron correctamente + Lightning no está configurado + Más opciones + Mover a privado + Mover a público + Subir una imagen de portada + Elige una imagen cuadrada como portada de esta lista de reproducción. + + +%1$d pista más + +%1$d pistas más + + + %1$d pista + %1$d pistas + + + %1$d pista + %1$d pistas + + Subiendo portada y publicando. Esto continuará aunque salgas de la pantalla. + Subir un archivo de audio + Elige un MP3, WAV o FLAC. Se subirá a tu servidor multimedia al guardar. + Subir una imagen de portada + Elige una imagen cuadrada como portada de esta pista. + Subiendo portada + audio y publicando. Esto continuará aunque salgas de la pantalla. + Sonido activado. Hacer clic para silenciar. + Silenciado. Hacer clic para reactivar el sonido. + Mis listas + Se requiere un nombre + Ajustes de Namecoin + Identidad + Leer tu clave pública + Mensajes + Intercambiar mensajes con otros napplets + Acciones del teclado + Enlazar atajos de teclado + Notificaciones + Mostrar notificaciones + Relés + Leer, firmar y publicar tus eventos + Red + Obtener recursos web y de Blossom + Almacenamiento + Su propio almacenamiento privado + Tema + Combina los colores de la app + Subidas + Subir archivos a tu servidor multimedia + Pagos + Pagar facturas de Lightning + Este nApplet quiere leer tu clave pública. + Esta nApplet quiere leer tu perfil y datos de la cuenta. + Este nApplet quiere mostrarte notificaciones. + + Este nApplet quiere pagar una factura Lightning de %1$d sat. + Este nApplet quiere pagar una factura Lightning de %1$d sats. + + Este nApplet quiere firmar y publicar un evento %1$d como tú. + Este nApplet quiere enviar un evento cifrado como tú. + Este nApplet quiere firmar y publicar un evento %1$d como tú: + Este nApplet quiere leer eventos de tus relés. + Este nApplet quiere obtener un recurso web. + Este sitio quiere firmar un evento kind:%1$d con tu clave Nostr. + Este nApplet quiere utilizar su almacenamiento privado. + Este nApplet quiere subir un archivo a tu servidor de medios. + No se pudo enviar el mensaje + Callar a este orador + Restaurar a este orador + Salir + No se pudo marcar la sala como cerrada. Saliendo de todos modos (la sala se cerrará automáticamente). + + %1$d oyente + %1$d oyentes + + Bajar la mano + Silenciar micrófono + Reactivar micrófono + Silenciar + No se ha podido guardar tu lista de servidores nest. Inténtalo de nuevo. + Nest — En vivo + Nests + Mantiene la reproducción de audio mientras una sala está abierta. + Nest conectado + Detener + Toca para regresar. + Seguir + Silenciar + Dejar de seguir + Reactivar + dejó el nest + se unió al público + entró al escenario + levantó la mano + está hablando + Levantar la mano + Reactivar + Guardado como un evento reemplazable para que otros clientes puedan leer tus preferencias. + Tus servidores + Sugerencias integradas que puedes añadir a tu lista con un solo toque. + Servidores recomendados + Servidores de nest + nunca + Nueva Insignia + Nuevo calendario + Nuevo evento de calendario + Nueva comunidad + Moderadores + Relés + Usuarios bloqueados + Comentario de la comunidad (1111) + Artículo de formato extenso (30023) + Publicación de imagen (20) + Texto corto (1) + Vídeo corto (22) + Publicación de video (21) + Kinds de eventos permitidos + Tamaño máximo de evento global (opcional) + Reglas verificables (opcional) + Portal de red de confianza (opcional) + Nuevo paquete de emojis + Nuevo objetivo + Nuevo artículo + Nueva lista de reproducción + Nueva pista de música + Nuevo producto + Nuevas solicitudes + Nuevos hilos + Nuevo entrenamiento + + %1$d activo incluido + %1$d activos incluidos + + No se encontraron aplicaciones de Blossom. Instala una aplicación local de Blossom para ver este archivo + No se pueden abrir enlaces de Blossom + No se ha encontrado ninguna aplicación de cámara en este dispositivo + La dirección de Lightning no está configurada + No se ha encontrado ninguna aplicación para gestionar este pago. Instala un monedero compatible. + No hay ninguna aplicación instalada para gestionar pagos de %1$s. Instala un monedero compatible. + No hay tipos de reacción preseleccionados para este usuario. Deja presionado el botón de corazón para cambiarlos. + No hay reacciones configuradas + No se encontraron billeteras para pagar una factura de Lightning. Instala una billetera de Lightning para usar zaps. + No se encontraron billeteras para pagar una factura de Lightning (error: %1$s). Instala una billetera de Lightning para usar zaps. + No has configurado la cantidad de zaps. Mantén presionado el botón para cambiarla. + Notificaciones + Categorías + Entrega + Visualización en la aplicación + ahora + Arte Nowhere + Drop Nowhere + Evento Nowhere + Foro Nowhere + Recaudación Nowhere + Sitio Nowhere + Mensaje Nowhere + Petición Nowhere + Tienda Nowhere + Desnudez + No se puede construir la referencia del evento + No hay clave pública de destinatario en la nota + Los nutzaps son públicos y revelarían esta nota privada. Usa un zap Lightning en su lugar. + Nutzap fallido + + Enviar %1$s sats, %2$d destinatario + Enviar %1$s sats, %2$d destinatarios + + El backend de la cadena Bitcoin no está configurado + No se pudo difundir la transacción + No se pudo construir la transacción + No se pudo cargar tu saldo de Bitcoin + Pago enviado, pero el recibo del zap no se pudo publicar + + Pago enviado (%1$d de %2$d recibo publicado), pero el siguiente recibo no se pudo publicar + Pago enviado (%1$d de %2$d recibos publicados), pero el siguiente recibo no se pudo publicar + + La parte de un destinatario está por debajo del dust + No se pudo firmar la transacción + ~10 min + ~30 min + ~1 h + Rápido + Normal + Lento + %1$s · %2$s sat/vB · %3$s + + Divisiones entre %1$d destinatario + Divisiones entre %1$d destinatarios + + + Se omite %1$d destinatario solo con dirección Lightning — el onchain necesita una clave pública Nostr para derivar la dirección. + Se omiten %1$d destinatarios solo con dirección Lightning — el onchain necesita una clave pública Nostr para derivar la dirección. + + + Usar la división de zap %1$d de esta nota + Usar la división de zap %1$d de esta nota + + difundiendo + construyendo la transacción + cargando saldo + publicando el recibo + firmando + Solo se permite un voto por usuario en este tipo de encuesta + Abrir todas las reacciones a esta publicación + Abiertas + Puerto Socks de Orbot + Explorador de Bitcoin (OTS) + Hay prueba de que esta publicación se firmó en algún momento antes de %1$s. La prueba se marcó en la cadena de bloques de Bitcoin en esa fecha y hora. + Prueba de marca de tiempo + Relays de salida + Se requiere una contraseña + Pausar + Pagar + Mensaje de %1$s + Objetivos de pago + Añadir direcciones de pago para diferentes redes (por ejemplo, Bitcoin, Lightning o Ethereum). + PDF guardado en Descargas/Amethyst + Los metadatos de las listas de seguidos pueden verlos todos en Nostr. Solo tus miembros privados están cifrados. + Metadatos de lista de seguidos + Imágenes + Fijar arriba + Fijar en el perfil + Reproducir + + %1$d episodio + %1$d episodios + + Los autores de encuestas no pueden votar en ellas. + (0–100)% + Encuesta cerrada para votos nuevos + Opción múltiple + Opción %1$s + Opción simple + No se puede votar + Encuestas + Publicar + + Esta publicación tiene más de %1$d hashtag + Esta publicación tiene más de %1$d hashtags + + Vista previa de imagen de tarjeta para %1$s + Opciones de privacidad + Política de privacidad + <No se pudo desencriptar el mensaje privado>\n\nTe citaron en una conversación privada o encriptada entre %1$s y %2$s. + Relés de entrada DM + Inserta entre 1 y 3 relés para que te sirvan de buzón de entrada privado. Otros usarán estos relés para enviarte mensajes directos. Los relés del buzón de entrada para mensajes directos deberían aceptar cualquier mensaje de cualquier persona, pero solo te permiten descargarlos. Algunas buenas opciones son:\n - inbox.nostr.wine (de pago)\n - you.nostr1.com (relés personales; de pago) + El usuario recibe mensajes directos en estos relés + Mensaje privado + Hacer privado: envolver la nota como gift-wrap solo a los usuarios notificados + Las respuestas a una nota privada siempre permanecen privadas + Visible para + Relés privados + Inserta entre 1 y 3 relés para almacenar eventos que nadie más pueda ver, como los borradores o la configuración de la app. Lo ideal es que estos relés sean locales o requieran autenticación antes de descargar el contenido de cada usuario. + Groserías o lenguaje que incita al odio + Perfil + Insignias del perfil + Recomendaciones de aplicaciones + Insignias del perfil + Feed de seguidores + Feed de zaps recibidos + Interfaz del perfil + perfiles + Proponer una edición + Relés de proxy + Relés recopiladores que la app debe usar para descargar tus feeds, como filter.nostr.wine. Esto reemplaza el modelo de bandeja de salida y hará que la app se conecte solo a los relés de tus listas. + Chat público + Los chats públicos son visibles para todos en Nostr y cualquiera + puede participar en ellos. Son ideales para comunidades abiertas alrededor de temas específicos. + La moderación puede controlarse eliminando mensajes en sus relés. + Inserta entre 1 y 3 relés que alojan este grupo. + Los clientes de Nostr utilizan esta configuración para saber de dónde descargar y adónde enviar los mensajes. + Relés + Metadatos públicos del chat + Chats públicos + Relés de inicio públicos + Este tipo de relé almacena todo tu contenido. Amethyst enviará tus publicaciones aquí y otros usarán estos relés para encontrar tu contenido. Inserta entre 1 y 3 relés. Pueden ser personales, de pago o públicos. + El usuario está publicando su contenido a estos relés + Mensaje público + Relés de buzón de entrada públicos + Este tipo de relé recibe todas las respuestas, comentarios, me gusta y zaps de tus publicaciones. Inserta entre 1 y 3 relés y asegúrate de que acepten publicaciones de cualquier persona. + El usuario está recibiendo notificaciones en estos relés + ID de la nota + Eliminar + Silenciar hilo + Compartir + Compartir enlace del navegador + Reactivar hilo + Reacción + Reacciones + Fila de reacciones + Relé de lectura + La cantidad en bytes que se recibieron de este relé, incluyendo filtros y eventos + Usuario de solo lectura + Haz clic y mantén presionado para grabar un mensaje + Chat en relé + Los chats en relé son grupos de chat controlados por su relé de origen. + Son visibles para todos los usuarios de Nostr y cualquiera puede participar en ellos. + Son ideales para comunidades abiertas en torno a temas específicos. Algunos de estos grupos son efímeros + y, por lo tanto, los mensajes del chat desaparecen con el tiempo + Chats en relé + Eventos + Tipos + Usuarios + Ajustes + Configuración de relés + listas de salida + Relés + Recargar y enviar zap + Enviar zap + Recargar %1$s sats en %2$s y enviar zap de %3$s %4$s sats · comisión ≈ %5$s sats + Eliminar + Eliminar de marcadores públicos + responde aquí… + Notificar: + + Solicitar eliminación + Solicitud de desaparición + Error al restablecer el estado de Marmot: %1$s + Restablecer estado de Marmot + Estado de Marmot restablecido. + Reintentar + Listas de calendarios + Calendarios + Ajedrez + Descubrir + Inicio + Importar seguidos + Mensajes + Listas de reproducción + Música + Notificaciones + Episodios + Podcasts + Programar publicación + Cancelar programación + Las publicaciones programadas pueden no realizarse hasta que vuelvas a abrir la aplicación. Las publicaciones programadas de otras cuentas no se activarán mientras esta cuenta esté activa. Habilita la activación en "Configuración → Preferencias de interfaz de usuario" para garantizar una programación en segundo plano fiable. + Las publicaciones programadas pueden no realizarse hasta que vuelvas a abrir la aplicación. Habilita la activación en "Configuración → Preferencias de interfaz de usuario" para garantizar una programación en segundo plano fiable. + Publicaciones programadas + Enviar ahora + %1$s · en %2$s + %1$s · hace %2$s + Mañana + Error: %1$s + ID de nota copiado + + Sesión cerrada · %1$d publicación programada eliminada + Sesión cerrada · %1$d publicaciones programadas eliminadas + + Sesión cerrada + + Tienes %1$d publicación programada que aún no se ha publicado. Cerrar sesión la eliminará permanentemente. + Tienes %1$d publicaciones programadas que aún no se han publicado. Cerrar sesión las eliminará permanentemente. + + Fallo en la publicación programada + Se realizó la publicación programada + + a %1$d relé + a %1$d relés + + Cancelada + Error + Programadas + Enviando… + Enviada + + · %1$d vencen en 1h + · %1$d vencen en 1h + + + %1$d en cola + %1$d en cola + + Algunas buenas opciones son: \n%1$s + Relés de búsqueda + Relés de búsqueda + Lista de relés que se usarán al buscar contenido o usuarios. El etiquetado y la búsqueda no funcionarán si no hay opciones disponibles. Asegúrate de que implementen NIP-50. + eventos buscables + Clave secreta (nsec) copiada al portapapeles + Aún no has bloqueado a ningún usuario. + Filtros de seguridad + No hay palabras ocultas. Añade una palabra a continuación para ocultar las publicaciones que la contengan. + Contenido bloqueado + Preferencias de filtrado + Ninguna cuenta ha sido marcada como spam en esta sesión. + Enviar + Enviar todos los eventos de perfil (kind 0) recibidos a tu relay local + Reenviar perfiles al relay local + Disponible para este destinatario: %1$s sats + Pago fallido + Transacción: %1$s + Pagando por %1$s… + El servidor no proporcionó una URL después de la subida + Configuración + No hay hilos silenciados + Hilos silenciados + Compartir como imagen + Compartir como Url de Imagen + Subida HLS + Compartir o guardar + Cortos + Mostrar código QR de clave privada cifrada + Incluye mensajes directos y de grupo en la pestaña de Notificaciones. Desactívalo para mantener los mensajes solo en la pestaña de Mensajes. + Mostrar mensajes + Mostrar código QR de clave privada + Solicitud de firma rechazada + Asegúrate de que la aplicación firmante haya autorizado esta transacción. + El firmante externo devolvió una carga útil que no concuerda con la solicitud. Es posible que haya un error, ya sea en Amethyst o en el firmante. + No se ha encontrado el firmante. + ¿Se desinstaló la app del firmante? Comprueba si el firmante está instalado y tiene esta cuenta. Cierra sesión y vuelve a iniciar sesión en la app del firmante si cambió. + Retroceder %1$d segundos + Adelantar %1$d segundos + Apps + Spam + El número de eventos de spam procedentes de este relé + Spammers + Muestra dos pestañas de notificaciones: Siguiendo (personas que sigues) y Todos. El indicador de no leídos se ilumina solo para la actividad de las personas que sigues. + Dividir notificaciones por Seguidos + Intenta eliminar los metadatos privados de los archivos multimedia compatibles antes de subirlos + Eliminar metadatos privados + Lee los entrenamientos finalizados de Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) y sugiere compartirlos como publicación. El permiso se solicita solo cuando te conectas. + Sugerir entrenamientos para compartir + Sistema + Tema + Tema oscuro, claro o del sistema + Este mensaje desaparecerá en %1$s + + +%1$d\nrespuesta + +%1$d\nrespuestas + + Hoy + Personalizado + Crea el tuyo + Predeterminado + Ocultar tu IP de relés aleatorios + Orbot + Privacidad total + Oculta tu IP en todas las conexiones + Interno + Desactivado + Preconfiguración de Tor y privacidad + Modificar rápidamente todos los ajustes a continuación + Todo menos media + Ocultar tu IP de todo, excepto imágenes y videos + Relés DM + Forzar Tor para enviar y recibir mensajes directos + Imágenes + Forzar Tor al cargar imágenes + Subidas multimedia + Forzar Tor al subir contenido + Operaciones monetarias + Forzar Tor en transferencias de zaps, Lightning y Cashu + Relés no confiables + Forzar Tor en la bandeja de salida/entrada + Verificación de dirección de Nostr + Forzar Tor al verificar direcciones NIP-05 + Url/Relés tipo onion + Usar Tor para cualquier URL .onion + Imágenes de perfil + Forzar Tor al cargar imágenes de perfil + Relés de confianza + Forzar Tor en todos los relés de tus listas + Vistas previas de URL + Forzar Tor al cargar vistas previas de URL + Videos + Forzar Tor al cargar videos + Básico + Usar Tor cuando lo requiera el servidor + Error al abrir el archivo + No hay aplicaciones torrent instaladas para abrir y descargar el archivo. + El evento no tiene suficiente información para crear un enlace magnético + Usa el emisor rastreado al enviar eventos. Muestra el progreso en tiempo real y el estado por relay durante la difusión. + Difusiones rastreadas + Traducir a + Elige el idioma al que traducir el contenido. + Traducciones + Relés de confianza + Relés en que confías para no necesitar una conexión Tor para + Completo + Rendimiento + Simplificado + Preferencias de interfaz de usuario + Modo de interfaz + Elegir el estilo de publicación + No se pudo crear una factura de Lightning antes de enviar el zap. La billetera de Lightning del destinatario envió el siguiente error: %1$s. + No se puede compartir la imagen, inténtalo de nuevo más tarde… + No se puede compartir el vídeo, por favor inténtalo de nuevo más tarde… + Descifrado no autorizado + El firmante no autorizó un descifrado necesario para realizar esta operación. Activa el descifrado NIP-44 en tu aplicación de firmante e inténtalo de nuevo + Dejar de seguir + Eliminar fijado + Desfijar del perfil + Subida cancelada + Error de carga + Error al cargar voz: %1$s + Error al cargar el mensaje de voz + NIP-95 aún no es compatible con mensajes de voz + %1$d%% de disponibilidad + Motor de Tor activo + Usar la versión interna u Orbot + El usuario no tiene configurada una dirección de Lightning para recibir sats + El usuario %1$s no tiene una dirección de Lightning configurada para recibir sats. + Historial de desapariciones + Solicitud de desaparición enviada + Mejor calidad en tamaños de archivos más pequeños, pero no todos los dispositivos admiten la reproducción H.265. + Usa H.265/HEVC Codec + Comenzó la descarga del video… + Botones del reproductor de vídeo + Video guardado en la galería de videos del teléfono + Publicación de voz + Grave + Aguda + Neutra + Ninguna + Respuesta de voz + Billetera + Cartera Cashu (NIP-60) + Wallet Connect + El proveedor de conexión de billetera devolvió el siguiente error: %1$s + Editar mints + Muestra un mensaje de advertencia cuando los mensajes tienen 5 o más reportes de los usuarios que sigues. + Advertir sobre reportes + Añadir marcador web + Editar marcador web + Marcadores web + ¿Qué estás pensando? + Entrenamientos + Escribir un mensaje… + Relé de escritura + La cantidad en bytes que se enviaron a este relé, incluyendo filtros y eventos + Zap + Zaps + + Cambiar nombre + Guardar diff --git a/commonsUI/src/commonMain/composeResources/values-es/strings.xml b/commonsUI/src/commonMain/composeResources/values-es/strings.xml index 1d8a2e50e7..2515774b95 100644 --- a/commonsUI/src/commonMain/composeResources/values-es/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-es/strings.xml @@ -1819,4 +1819,1219 @@ Fuente: Servidores: Abrir + Información y avisos legales + Configuraciones de la cuenta + Añadir + Añadir un servidor Blossom + Agregar servidor NIP-96 + Cuando está activado, Amethyst añade una etiqueta de cliente NIP-89 a los eventos que publicas. + Añadir etiqueta de cliente a mis eventos + Agrega una advertencia de contenido sensible antes de mostrarlo + Contenido delicado + Agregar a marcadores públicos + Usa un modelo de IA en el dispositivo para proponer correcciones de texto y cambios de tono. + Proponer mejoras de texto + Mantiene las conexiones a tus relays de bandeja de entrada activas para notificaciones en tiempo real + + Conectado a %1$d relay de bandeja de entrada + Conectado a %1$d relays de bandeja de entrada + + + Conectado a %1$d relay + Conectado a %1$d relays + + Conectando a los relays de bandeja de entrada… + Notificaciones de Amethyst activas + Notificaciones de llamadas de voz y vídeo entrantes + Llamadas entrantes + %1$s ha aceptado tu desafío de ajedrez + Te notifica sobre eventos de partidas de ajedrez + Ajedrez + Actualizaciones de ajedrez + %1$s ha movido — es tu turno + Te notifica cuando llega un mensaje privado + Mensajes privados + Nuevos mensajes + Marcar como leído + Te notifica cuando alguien te menciona o te cita en una publicación + %1$s te mencionó + Menciones + Nuevas menciones + Te notifica cuando alguien reacciona a tu publicación + %1$s reaccionó a tu publicación + para %1$s + Reacciones + Nuevas reacciones + Te notifica cuando alguien responde a tu publicación + Respuestas + Nuevas respuestas + Responder + Notificaciones cuando una publicación programada se realiza o no. + Publicaciones programadas + Te notifica cuando alguien te zapea + %1$s sats + por %1$s + De %1$s + Zaps recibidos + Nuevos zaps + Ajustes de la app + Atestación + Solicitud de atestación + Competencia del atestador + Recomendación del atestador + Visualizador de audio + Guarda un borrador automáticamente cuando escribes o abandonas el compositor con texto no enviado, y lo envía a tus relays de bandeja de salida privada. + Crear borradores automáticamente + Desplazamiento inmersivo + Ocultar barras de navegación al desplazarse + Vista previa de imagen + Cargar automáticamente imágenes y GIF + Reproducción de vídeo + Reproducir automáticamente videos y GIF + Imagen de perfil + Mostrar imágenes de perfil + Vista previa de URL + Mostrar vistas previas de URL + Reproducción automática de vídeos + Reproduce vídeos automáticamente cuando son visibles en pantalla + No se pueden eliminar los metadatos del AVIF: %1$s + Insignia de premio + Volver + Claves de respaldo + Insignias + Autenticación fallida + El sistema biométrico no pudo autenticar al propietario de este teléfono + El sistema biométrico no pudo autenticar al propietario de este teléfono. Error: %1$s + Bloquear + Relés bloqueados + Amethyst nunca se conectará a estos relés + Usuarios bloqueados + Nueva lista de marcadores + Metadatos de lista de marcadores + Los metadatos de las listas de marcadores son visibles para cualquier usuario de Nostr. Solo los miembros privados están cifrados. + Marcadores + Impulsar + Barra de navegación inferior + Relés de transmisión + Relés que se especializan en enviar tus notas a todos los demás relés, como sendit.nosflare.com. Amethyst agregará este relé a todos los eventos nuevos que crees. + Navegador + Favoritos + Cargando a través de la web abierta. Toca para usar Tor. + Cargando a través de Tor. Toca para usar la web abierta. + + %1$s, %2$d evento + %1$s, %2$d eventos + + Error al subir la imagen + No se pudo subir la imagen seleccionada. Inténtalo de nuevo o pega una URL. + Compartir evento de calendario + Abrir en mapas + Abrir enlace + En curso ahora + %1$s · termina %2$s + + Comienza en %1$d minuto + Comienza en %1$d minutos + + Aviso cuando un evento al que asistirás está a punto de comenzar. + calendar_reminders + Recordatorios de calendario + Evento de calendario + Se enviará una notificación cuando un evento al que asistirás esté a punto de comenzar. + Enviar recordatorios + + %1$d min + %1$d min + + Recordatorios de calendario + Día + Feed + Mes + Semana + Aceptar + Bluetooth + Cámara desactivada + Cámara activada + Auricular + Colgar + Llamada entrante + Llamada de vídeo entrante… + Llamada de voz entrante… + Silenciar + Llamadas + Notificación de llamada en curso + Amethyst necesita acceso a la cámara y al micrófono para iniciar una videollamada. Actívalos en los ajustes de la aplicación. + Amethyst necesita acceso al micrófono para iniciar una llamada de voz. Actívalo en los ajustes de la aplicación. + Rechazar + Ajustes de llamada + Altavoz + Reactivar + Llamada con %1$s + No se encontró la URL de devolución de llamada en la respuesta de %1$s. + Cancelar + Token de Cashu + Comprobando el mint… + No se pudo canjear Cashu + La Mint proporcionó el siguiente mensaje de error: %1$s + Recibido + Enviado + Mints coincidentes + + +%1$d más + +%1$d más + + Mints populares + + Recomendado por %1$d persona más + Recomendado por %1$d personas más + + %1$s sat movidos a %2$s. + No se encontró ningún monedero de Cashu compatible en el sistema + + %1$d factura pendiente + %1$d facturas pendientes + + ¿Pagar %1$s sat + hasta %2$s sat en comisiones? + Publicar una solicitud de eliminación para tu recomendación kind:38000 de %1$s. Los relays que respetan NIP-09 la eliminarán. + Se recuperaron %1$s sats en %2$s pruebas. + Cashu recibido + Se enviaron %1$s sats a tu monedero (comisión: %2$s sats). + + Fondos en %1$d mint que no usas + Fondos en %1$d mints que no usas + + Esperando a que se pague la factura… + + %1$d mint + %1$d mints + + Detener emisión + Emitir al dispositivo + Estándares de seguridad infantil + Accesorios + Arte + Libros + Ropa + Objetos de colección + Artesanías + Artículos electrónicos + Acondicionamiento físico + Comida + Muebles + Hogar + Varios + Oficina + Otros + Mascotas + Deportes + Diario + Mensual + Único + Semanal + ¿Pagar %1$s por %2$s? + ¿Pagar esta factura por %1$s? + El servicio de débito no completó el pago. + Introduce una cantidad válida para esta oferta. + Solicitando factura… + Cerrar todas las reacciones a esta publicación + Cerradas + Comunidades + El borrador ocupa %1$d bytes; esta comunidad limita este tipo a %2$d bytes. + El borrador ocupa %1$d bytes; esta comunidad limita los eventos a %2$d bytes. + Ya has publicado %1$d eventos de este tipo hoy (límite %2$d). + Ajustes de composición + El puerto predeterminado es 9050 + Relés conectados + Lista actual de relés en uso + Porcentaje de conexiones exitosas al relé + Siempre + Nunca + WiFi sin medición + Añadir documento + Añadir imagen + Añadir contenido multimedia + Añadir vídeo + Ocultar + Advertir + Mostrar + Conversaciones + Convierte GIF animados a vídeo MP4 para reducir el tamaño del archivo y mejorar la compatibilidad de reproducción. + Convertir GIF a MP4 + ID de nota copiada (@note1) al portapapeles + Texto de nota copiado al portapapeles + Copiado al portapapeles + @npub del autor copiado al portapapeles + Copiar mi clave secreta + Copiar al portapapeles + No se pudo ensamblar la LNUrl desde la dirección de Lightning "%1$s". Comprueba la configuración del usuario. + No se pudo comprobar el archivo descargado después de cargar: %1$s + No se pudo descargar el contenido cargado desde el servidor + No se ha podido obtener la factura de %1$s: %2$s + No se pudo abrir el archivo comprimido + Cartera no encontrada + Amethyst no encontró ninguna aplicación de cartera compatible con Nostr Wallet Connect (NWC). +\n\nQué puedes hacer: +\n\t1. Verificar la compatibilidad con NWC: Comprueba que tu aplicación de cartera preferida es compatible con Nostr Wallet Connect. +\n\t2. Crear conexión: Ve a tu aplicación de cartera y crea una nueva conexión NWC. +\n\t3. Vincular con Amethyst: Tu cartera normalmente te ofrecerá tres opciones: +\n\t\t3.1 Enlace automático: Un botón para abrir y conectar automáticamente a Amethyst. Si es así, pulsa ese botón, abre Amethyst y guarda en la nueva pantalla. +\n\t\t3.2 Enlace manual: Un URI de conexión que puedes copiar y pegar usando el icono de pegado en esta pantalla para introducirlo directamente. +\n\t\t3.3 Código QR: La cartera genera un código QR que puedes leer con el botón de código QR en esta pantalla. + + Crear + d + Zona peligrosa + Oscuro + Descripción + Hacer público + Chats + Comunidades + Algoritmos de fuentes + Paquetes de seguimiento + Transmisiones en vivo + Mercado + Lecturas + Relés de entrada DM + DMs + No traducir del + Los idiomas que se muestran aquí no se traducirán. Selecciona un idioma para eliminarlo y traducirlo de nuevo. + Guardar en el teléfono + Descargando vídeo… + Borrador de nota + Borradores + Cuentas + Crear + Tablones + Navegar + Sistema + Tú + + %1$d día + %1$d días + + + %1$d hora + %1$d horas + + + %1$d minuto + %1$d minutos + + + %1$d mes + %1$d meses + + + %1$d semana + %1$d semanas + + + %1$d año + %1$d años + + Editar calendario + Editar evento de calendario + Editar comunidad + Editar paquete de emojis + Editar lista de reproducción + Editar publicación + Los emojis privados se almacenan cifrados en los relays y solo son visibles para ti. Aparecen en tu menú de reacciones y en el autocompletado ":" igual que los públicos. + Los emojis públicos son visibles para todos y aparecen en tu menú de reacciones y en el selector de autocompletado ":" cuando este paquete está en tu lista de emojis. + Emojis + Cifra los archivos antes de subirlos para mayor privacidad. Algunos servidores pueden no aceptar archivos cifrados en cuentas gratuitas. + Cifrar archivos + Chat temporal + Error + No se pudo pagar la factura + No se pudo retirar + No se puede abrir el pago + No se pudo enviar el zap + Error al abrir la aplicación firmante + No se pudo encontrar la aplicación firmante. Comprueba si no se desinstaló la aplicación. + Error al analizar el mensaje de error + Error al analizar JSON desde %1$s. Comprueba la configuración de Lightning del usuario. + No se puede obtener la factura de los servidores del destinatario + Abrir en el navegador + No se puede reproducir este vídeo + El códec o formato no es compatible con este dispositivo (%1$s). Intenta abrirlo en tu navegador. + Errores + Sincronización de relés + eventos tuyos + eventos para ti + AMRAP + Circuito + Ciclismo + Dieta + EMOM + Ayuno + Senderismo + Meditación + Remo + Carrera + Fuerza + Natación + Caminata + Yoga + Expandir + Fecha de expiración + Exportar configuración de relays + Error al eliminar: %1$s + Error al cifrar la clave privada + Error al guardar la imagen + Error al guardar el PDF + Error al guardar el video + Muchos servidores no aceptan archivos cifrados en cuentas gratuitas. Puedes volver a intentarlo sin cifrado. + Error al subir el archivo cifrado + Error de carga: %1$s + Error al subir contenido multimedia + Error al cargar a %1$s: %2$s + Añadir a favoritos + Se carga a través de la web abierta. + Se carga a través de Tor. + Recientes + Eliminar de favoritos + Esa aplicación aún no está cargada. Inténtalo de nuevo en un momento. + Aplicaciones favoritas + Algoritmos de feed favoritos + Se ha realizado un pago + Publicado en los relays + Se ha subido un archivo + Feeds de relays favoritos + Relays a los que sueles ir para ver su feed global + Comunidades + Algoritmos de feed + Feeds + Hashtags + Conjuntos de intereses + Listas + Ubicaciones + Relays + Servidor de archivos + Elegir un servidor para cargar este archivo + Oculta las publicaciones de desconocidos que sean exactamente iguales 5 o más veces. + Filtrar spam + Seguir + Seguir también + Todos los algoritmos de feed favoritos + A mi alrededor + Curada + Global + Lista de seguidos predeterminada + Todos los seguidos + Todos los seguidos + Mía + Lista de silenciados + Nuevo paquete de seguimiento + Editar pack de seguidos + Los metadatos del pack de seguidos pueden verlos todos en Nostr y se publican frecuentemente en muchos sitios web como kits de inicio para nuevos usuarios. + Metadatos del pack de seguidos + Paquetes de seguimiento + Nueva lista de seguimiento + Editar lista + Estilo de galería de perfil + Elige el estilo de galería + Clásico + Moderno + Publicación con ubicación exclusiva + Solo los seguidores de la ubicación la verán. Tus seguidores generales no la verán. + %1$s financiados del objetivo de %2$s sats + h + Este contenido ha cambiado. Es posible que el autor no haya visto o aprobado el cambio. + ¿Qué significa esto? + Este contenido es el mismo desde la publicación + Hola, %1$s, ¿esto todavía está disponible? + Palabras ocultas + Elimina publicaciones de los feeds de comunidades cuando la comunidad publica un documento de normas NIP-9B y un evento no lo cumple. No tiene efecto cuando una comunidad no tiene normas estructuradas. + Ocultar publicaciones que infrinjan las normas de la comunidad + Ocultar contraseña + Subiendo %1$s (%2$d de %3$d) + Todo + Solicitud incorrecta: el servidor no puede procesar o no procesará la solicitud. + No autorizado: el usuario no tiene credenciales de autenticación válidas. + Pago requerido: el servidor requiere pago para completar la solicitud. + Prohibido: el usuario no tiene derechos de acceso para realizar la solicitud. + No se encontró: el servidor no puede encontrar la dirección solicitada. + Método no permitido: el servidor admite el método de solicitud, pero no el recurso de destino. + No aceptable: el servidor no encuentra ningún contenido que satisfaga la solicitud. + Autenticación de proxy requerida: el usuario no tiene credenciales de autenticación válidas. + Tiempo de espera de la solicitud: se agotó el tiempo de espera del servidor. + Conflicto: el servidor no puede satisfacer la solicitud porque hay un conflicto con el recurso. + Borrado: el contenido solicitado se eliminó permanentemente del servidor y no se restablecerá. + Longitud requerida: el servidor rechaza la solicitud porque requiere una longitud definida. + Precondición fallida: las precondiciones de la solicitud en los campos de cabecera que el servidor no cumple. + Carga demasiado grande: la solicitud supera los límites definidos por el servidor, por lo que este se niega a procesarla. + URI demasiado largo: la URL solicitada por el cliente es demasiado larga para que el servidor pueda procesarla. + Tipo de contenido multimedia no admitido: la solicitud usa un formato multimedia que el servidor no admite. + Intervalo no satisfactorio: el servidor no puede satisfacer el valor indicado en el campo de cabecera del intervalo de la solicitud. + Expectativa fallida: el servidor no puede cumplir los requisitos indicados por el campo de cabecera de la solicitud Expect. + Actualización requerida: el servidor se niega a procesar la solicitud utilizando el protocolo actual a menos que el cliente se actualice a un protocolo diferente. + Error interno del servidor: el servidor encontró un error inesperado y no puede completar la solicitud. + No implementado: el servidor no puede completar la solicitud o no reconoce el método de solicitud. + Gateway incorrecto: el servidor actúa como gateway y obtuvo una respuesta no válida del host. + Servicio no disponible: esto ocurre a menudo cuando un servidor está sobrecargado o caído por mantenimiento. + Tiempo de espera del gateway: el servidor estaba actuando como gateway o proxy y se agotó el tiempo de espera de una respuesta. + Versión HTTP no admitida: el servidor no admite la versión HTTP de la solicitud. + La variante también negocia: el servidor tiene un error de configuración interno. + Almacenamiento insuficiente: el servidor no dispone de almacenamiento suficiente para procesar correctamente la solicitud. + Bucle detectado: el servidor detecta un bucle infinito al procesar la solicitud. + Autenticación de red requerida: el cliente debe estar autenticado para acceder a la red. + Comportamiento ilegal + Imagen guardada en la galería + Suplantación de identidad + Relays de entrada + Cantidad de factura incorrecta (%1$s sats) de %2$s. Debería haber sido %3$s. + Relés de indexador + Relés que se especializan en alojar los metadatos y las listas de retransmisión de todos, como purplepag.es. Amethyst usará estos relés para encontrar usuarios que no estén en tus listas. + Nuevo conjunto de intereses + Renombrar + Conjuntos de hashtags + Clave invalida + Clave inválida: %1$s + Dirección inválida + Amethyst recibió un URI para abrir pero era inválido: %1$s + No es posible citar un borrador de nota + No es posible reaccionar a un borrador de nota + No es posible responder a un borrador de nota + No es posible zapear un borrador de nota + Se requiere la clave + Relays de KeyPackage + Relays donde se publican tus MLS KeyPackages (MIP-00). Otros usuarios obtienen estas KeyPackages para invitarte a chats de grupo Marmot. Introduce entre 1 y 3 relays que acepten eventos KeyPackage de tu parte y permitan lecturas públicas. + KeyPackages + Conjunto de insignias aceptadas + Prólogo de aventura + Lectura de aventura + Escena de aventura + Recomendaciones de aplicaciones + Cita + Aplicaciones + Confirmación de cita + Cabecera de audio + Pista de audio + Pódcasts creados + Insignias concedidas + Definiciones de insignias + Datos blob + Cabeceras blob + Relés bloqueados + Blogs + Autenticación Blossom + Servidores Blossom + Lista de marcadores + Relés de difusión + Calendario + Definición de canal + Ocultar mensaje del canal + Lista de canales + Mensaje del canal + Metadatos del canal + Silenciar usuario del canal + Autenticación de ajedrez + Desafíos de ajedrez + Oferta de tablas en ajedrez + Aceptación de partida de ajedrez + Fin de partida de ajedrez + Partidas de ajedrez + Movimiento de ajedrez + Clasificados + Comentarios + Definición de comunidad + Lista de comunidades + Publicación de comunidad + Tarjeta de contacto + Cita del día + Eliminaciones + Archivo de mensaje directo + Mensaje directo + Relés DM + Borradores + Solicitud de contenido DVM + Respuesta de contenido DVM + Estado DVM + Solicitud de usuario DVM + Respuesta de usuario DVM + Ediciones + Lista de packs de emojis + Packs de emojis + Chat efímero + Salas de chat efímeras + Pódcasts favoritos + Relés favoritos + Cabeceras de archivo + Servidores de archivos + Lista de seguidos + Packs de seguidos + Seguidos por geohash + GiftWraps + Incidencia de Git + Parche de Git + Respuesta de Git + Repositorio de Git + Seguidos por hashtag + Destacados + Autenticación HTTP + Lista de relés de índice + Chats en directo + Transmisiones en directo + Datos médicos + Sala de reuniones + Espacio de reuniones + Lista de reproducción + Pista de música + Lista de silenciados + Marcadores con nombre + Servidores Nests + NIP + NIP-04 DMs + NNS + Nostr Connect + Notas + Solicitud NWC + Respuesta NWC + Lista de marcadores antigua + OTS + Relés de salida + PayTo + Listas de personas + Imágenes + Fijados + Episodio de pódcast + Programa de pódcast + Encuesta + Respuesta de encuesta + Relés privados + Zaps privados + Perfil + Insignias del perfil + Galería del perfil + Relés proxy + Mensaje público + Reacciones + Autenticación de relé + Descubrimiento de relés + Anuncio del monitor de relés + Conjunto de relés + Informes + Republicaciones + Republicaciones (16) + Presencia en sala + Sellos + Relés de búsqueda + Shorts + Shorts (Repl) + Comentarios de torrent + Torrents + Proveedores de confianza + Relés de confianza + Eliminación de usuario + Ajustes de usuario + Estado del usuario + Vídeo + Vídeo (Repl) + Mensaje de voz + Respuesta de voz + WakeUp + Marcador web + Wiki + Entrenamientos + Objetivos de Zap + Encuesta de Zap + Solicitud de Zap + Zaps + Conocidos + Preferencias de visualización de idioma + Para cada par de idiomas traducidos, elige qué idioma mostrar primero. + Visto por última vez hace %1$s + Visto ahora mismo + Nunca visto + Visto por última vez el %1$s (hace %2$s) + Dejar + Claro + Transmisiones en vivo + Relés locales + Lista de relés que se utilizan en este dispositivo. + Inicie sesión con una clave privada para poder publicar posts + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder seguir a otros usuarios. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder ocultar una palabra o frase. + Inicie sesión con una clave privada para poder responder + Inicie sesión con una clave privada para poder enviar Zaps + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder mostrar una palabra o frase. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder firmar eventos. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder dejar de seguir a otros usuarios. + Estás usando una clave pública, que es solo de lectura. Inicia sesión con una clave privada para poder subir contenido. + Inicie sesión con una clave privada para dar me gusta a los posts + Videos + m + Mis paquetes de emojis + Añadiendo %1$s… + Privilegios de administrador concedidos + Privilegios de administrador revocados + Error al añadir %1$s: %2$s + Error al crear el grupo: %1$s + Error al conceder administrador: %1$s + Error al salir del grupo: %1$s + Error al eliminar miembro: %1$s + Error al revocar administrador: %1$s + Error al actualizar: %1$s + Grupo MLS + Información del grupo actualizada + + %1$d miembro + %1$d miembros + + Miembro eliminado + + %1$d msg + %1$d msgs + + No eres miembro de este grupo + error desconocido + Media añadida + Contenido multimedia añadido a la galería del perfil + La descarga del contenido multimedia ha comenzado… + Servidores multimedia + El contenido multimedia es demasiado grande para NIP-95 + Ingresa primero el destino del mensaje + No se puede subir + Asunto + No se pudieron eliminar los metadatos + Error al eliminar los metadatos privados del archivo multimedia. Subida cancelada. + Los marcadores se migraron correctamente + Lightning no está configurado + Más opciones + Mover a privado + Mover a público + Subir una imagen de portada + Elige una imagen cuadrada como portada de esta lista de reproducción. + + +%1$d pista más + +%1$d pistas más + + + %1$d pista + %1$d pistas + + + %1$d pista + %1$d pistas + + Subiendo portada y publicando. Esto continuará aunque salgas de la pantalla. + Subir un archivo de audio + Elige un MP3, WAV o FLAC. Se subirá a tu servidor multimedia al guardar. + Subir una imagen de portada + Elige una imagen cuadrada como portada de esta pista. + Subiendo portada + audio y publicando. Esto continuará aunque salgas de la pantalla. + Sonido activado. Hacer clic para silenciar. + Silenciado. Hacer clic para reactivar el sonido. + Mis listas + Se requiere un nombre + %1$dms + Ajustes de Namecoin + Identidad + Leer tu clave pública + Mensajes + Intercambiar mensajes con otros napplets + Acciones del teclado + Enlazar atajos de teclado + Notificaciones + Mostrar notificaciones + Relés + Leer, firmar y publicar tus eventos + Red + Obtener recursos web y de Blossom + Almacenamiento + Su propio almacenamiento privado + Tema + Combina los colores de la app + Subidas + Subir archivos a tu servidor multimedia + Pagos + Pagar facturas de Lightning + Este nApplet quiere leer tu clave pública. + Esta nApplet quiere leer tu perfil y datos de la cuenta. + Este nApplet quiere mostrarte notificaciones. + + Este nApplet quiere pagar una factura Lightning de %1$d sat. + Este nApplet quiere pagar una factura Lightning de %1$d sats. + + Este nApplet quiere firmar y publicar un evento %1$d como tú. + Este nApplet quiere enviar un evento cifrado como tú. + Este nApplet quiere firmar y publicar un evento %1$d como tú: + Este nApplet quiere leer eventos de tus relés. + Este nApplet quiere obtener un recurso web. + Este sitio quiere firmar un evento kind:%1$d con tu clave Nostr. + Este nApplet quiere utilizar su almacenamiento privado. + Este nApplet quiere subir un archivo a tu servidor de medios. + nApplet %1$s… + nApplets + No se pudo enviar el mensaje + Callar a este orador + Restaurar a este orador + Salir + No se pudo marcar la sala como cerrada. Saliendo de todos modos (la sala se cerrará automáticamente). + + %1$d oyente + %1$d oyentes + + Bajar la mano + Silenciar micrófono + Reactivar micrófono + Silenciar + No se ha podido guardar tu lista de servidores nest. Inténtalo de nuevo. + Nest — En vivo + Nests + Mantiene la reproducción de audio mientras una sala está abierta. + Nest conectado + Detener + Toca para regresar. + Seguir + Silenciar + Dejar de seguir + Reactivar + dejó el nest + se unió al público + entró al escenario + levantó la mano + está hablando + Levantar la mano + Reactivar + Nests + Guardado como un evento reemplazable para que otros clientes puedan leer tus preferencias. + Tus servidores + Sugerencias integradas que puedes añadir a tu lista con un solo toque. + Servidores recomendados + Servidores de nest + nunca + Nueva Insignia + Nuevo calendario + Nuevo evento de calendario + Nueva comunidad + Moderadores + Relés + Usuarios bloqueados + Comentario de la comunidad (1111) + Artículo de formato extenso (30023) + Publicación de imagen (20) + Texto corto (1) + Vídeo corto (22) + Publicación de video (21) + Kinds de eventos permitidos + Tamaño máximo de evento global (opcional) + Reglas verificables (opcional) + Portal de red de confianza (opcional) + Nuevo paquete de emojis + Nuevo objetivo + Nuevo artículo + Nueva lista de reproducción + Nueva pista de música + Nuevo producto + Nuevas solicitudes + Temas nuevos + Nuevo entrenamiento + + %1$d activo incluido + %1$d activos incluidos + + No se encontraron aplicaciones de Blossom. Instala una aplicación local de Blossom para ver este archivo + No se pueden abrir enlaces de Blossom + No se ha encontrado ninguna aplicación de cámara en este dispositivo + La dirección de Lightning no se ha configurado + No se ha encontrado ninguna aplicación para gestionar este pago. Instala un monedero compatible. + No hay ninguna aplicación instalada para gestionar pagos de %1$s. Instala un monedero compatible. + No hay tipos de reacción preseleccionados para este usuario. Deja presionado el botón de corazón para cambiarlos. + No hay reacciones configuradas + No se encontraron monederos para pagar una factura de Lightning. Instala un monedero de Lightning para usar zaps. + No se encontraron monederos para pagar una factura de Lightning (error: %1$s). Instala un monedero de Lightning para usar zaps. + Falta la configuración de Zaps por defecto. Mantén pulsado unos segundos para cambiarla + Notificaciones + Categorías + Entrega + Visualización en la aplicación + ahora + Arte Nowhere + Drop Nowhere + Evento Nowhere + Foro Nowhere + Recaudación Nowhere + Sitio Nowhere + Mensaje Nowhere + Petición Nowhere + Tienda Nowhere + nSites + Desnudos + No se puede construir la referencia del evento + No hay clave pública de destinatario en la nota + Los nutzaps son públicos y revelarían esta nota privada. Usa un zap Lightning en su lugar. + Nutzap fallido + + Enviar %1$s sats, %2$d destinatario + Enviar %1$s sats, %2$d destinatarios + + El backend de la cadena Bitcoin no está configurado + No se pudo difundir la transacción + No se pudo construir la transacción + No se pudo cargar tu saldo de Bitcoin + Pago enviado, pero el recibo del zap no se pudo publicar + + Pago enviado (%1$d de %2$d recibo publicado), pero el siguiente recibo no se pudo publicar + Pago enviado (%1$d de %2$d recibos publicados), pero el siguiente recibo no se pudo publicar + + La parte de un destinatario está por debajo del dust + No se pudo firmar la transacción + ~10 min + ~30 min + ~1 h + Rápido + Normal + Lento + %1$s · %2$s sat/vB · %3$s + + Divisiones entre %1$d destinatario + Divisiones entre %1$d destinatarios + + + Se omite %1$d destinatario solo con dirección Lightning — el onchain necesita una clave pública Nostr para derivar la dirección. + Se omiten %1$d destinatarios solo con dirección Lightning — el onchain necesita una clave pública Nostr para derivar la dirección. + + + Usar la división de zap %1$d de esta nota + Usar la división de zap %1$d de esta nota + + difundiendo + construyendo la transacción + cargando saldo + publicando el recibo + firmando + Solo se permite un voto por usuario en este tipo de encuesta + Abrir todas las reacciones a esta publicación + Abiertas + Puerto Socks de Orbot + Explorador de Bitcoin (OTS) + Hay prueba de que esta publicación se firmó en algún momento antes de %1$s. La prueba se marcó en la cadena de bloques de Bitcoin en esa fecha y hora. + Prueba de marca de tiempo + Relays de salida + Se requiere una contraseña + Pausar + Pagar + Mensaje de %1$s + Objetivos de pago + Añadir direcciones de pago para diferentes redes (por ejemplo, Bitcoin, Lightning o Ethereum). + PDF guardado en Descargas/Amethyst + Los metadatos de las listas de seguidos pueden verlos todos en Nostr. Solo tus miembros privados están cifrados. + Metadatos de lista de seguidos + Imágenes + Fijar arriba + Fijar en el perfil + Reproducir + + %1$d episodio + %1$d episodios + + Los autores de encuestas no pueden votar en ellas. + (0–100)% + Encuesta cerrada para votos nuevos + Opción múltiple + Opción %1$s + Opción simple + No se puede votar + Encuestas + Enviar + + Esta publicación tiene más de %1$d hashtag + Esta publicación tiene más de %1$d hashtags + + Imagen de vista previa para %1$s + Opciones de privacidad + Política de privacidad + <Unable to decrypt private message>\n\nTe citaron en una conversación privada o encriptada entre %1$s y %2$s. + Relés de entrada DM + Inserta entre 1 y 3 relés para que te sirvan de buzón de entrada privado. Otros usarán estos relés para enviarte mensajes directos. Los relés del buzón de entrada para mensajes directos deberían aceptar cualquier mensaje de cualquier persona, pero solo te permiten descargarlos. Algunas buenas opciones son:\n - inbox.nostr.wine (de pago)\n - you.nostr1.com (relés personales; de pago) + El usuario recibe mensajes directos en estos relés + Mensaje privado + Hacer privado: envolver la nota como gift-wrap solo a los usuarios notificados + Las respuestas a una nota privada siempre permanecen privadas + Visible para + Relés privados + Inserta entre 1 y 3 relés para almacenar eventos que nadie más pueda ver, como los borradores o la configuración de la app. Lo ideal es que estos relés sean locales o requieran autenticación antes de descargar el contenido de cada usuario. + Blasfemias / Discurso de odio + Perfil + Insignias del perfil + Recomendaciones de aplicaciones + Insignias del perfil + Feed de seguidores + Feed de zaps recibidos + Interfaz del perfil + perfiles + Proponer una edición + Relés de proxy + Relés recopiladores que la app debe usar para descargar tus fuentes, como filter.nostr.wine. Esto reemplaza el modelo de bandeja de salida y hará que la app se conecte solo a los relés de tus listas. + Chat público + Los chats públicos son visibles para todos en Nostr y cualquiera + puede participar en ellos. Son ideales para comunidades abiertas alrededor de temas específicos. + La moderación puede controlarse eliminando publicaciones en sus relés. + Inserta entre 1 y 3 relés que alojan este grupo. + Los clientes de Nostr utilizan esta configuración para saber de dónde descargar y adónde enviar los mensajes. + Relés + Metadatos públicos del chat + Chats públicos + Relés de inicio públicos + Este tipo de relé almacena todo tu contenido. Amethyst enviará tus publicaciones aquí y otros usarán estos relés para encontrar tu contenido. Inserta entre 1 y 3 relés. Pueden ser personales, de pago o públicos. + El usuario está publicando su contenido a estos relés + Mensaje público + Relés de buzón de entrada públicos + Este tipo de relé recibe todas las respuestas, comentarios, me gusta y zaps de tus publicaciones. Inserta entre 1 y 3 relés y asegúrate de que acepten publicaciones de cualquier persona. + El usuario está recibiendo notificaciones en estos relés + ID de la nota + Eliminar + Silenciar hilo + Compartir + Compartir enlace del navegador + Reactivar hilo + Reacción + Reacciones + Fila de reacciones + Relé de lectura + La cantidad en bytes que se recibieron de este relé, incluyendo filtros y eventos + Usuario de solo lectura + Haz clic y mantén pulsado para grabar un mensaje + Chat en relé + Los chats en relé son grupos de chat controlados por su relé de origen. + Son visibles para todos los usuarios de Nostr y cualquiera puede participar en ellos. + Son ideales para comunidades abiertas en torno a temas específicos. Algunos de estos grupos son efímeros + y, por lo tanto, los mensajes del chat desaparecen con el tiempo + Chats en relé + Eventos + IPs + Tipos + Usuarios + Ajustes + Configuración de relés + listas de salida + Relés + Recargar y enviar zap + Enviar zap + Recargar %1$s sats en %2$s y enviar zap de %3$s %4$s sats · comisión ≈ %5$s sats + Eliminar + Eliminar de marcadores públicos + responde aquí… + Notificar: + Bloquear y ocultar usuario + Solicitar eliminación + Solicitud de desaparición + Error al restablecer el estado de Marmot: %1$s + Restablecer estado de Marmot + Estado de Marmot restablecido. + Reintentar + Listas de calendarios + Calendarios + Ajedrez + Descubrir + Inicio + Importar seguidos + Mensajes + Listas de reproducción + Música + Notificaciones + Episodios + Podcasts + Programar publicación + Cancelar programación + Las publicaciones programadas pueden no realizarse hasta que vuelvas a abrir la aplicación. Las publicaciones programadas de otras cuentas no se activarán mientras esta cuenta esté activa. Habilita la activación en "Configuración → Preferencias de interfaz de usuario" para garantizar una programación en segundo plano fiable. + Las publicaciones programadas pueden no realizarse hasta que vuelvas a abrir la aplicación. Habilita la activación en "Configuración → Preferencias de interfaz de usuario" para garantizar una programación en segundo plano fiable. + Publicaciones programadas + Enviar ahora + %1$s · en %2$s + %1$s · hace %2$s + Mañana + Error: %1$s + ID de nota copiado + + Sesión cerrada · %1$d publicación programada eliminada + Sesión cerrada · %1$d publicaciones programadas eliminadas + + Sesión cerrada + + Tienes %1$d publicación programada que aún no se ha publicado. Cerrar sesión la eliminará permanentemente. + Tienes %1$d publicaciones programadas que aún no se han publicado. Cerrar sesión las eliminará permanentemente. + + Fallo en la publicación programada + Se realizó la publicación programada + + a %1$d relé + a %1$d relés + + Cancelada + Error + Programadas + Enviando… + Enviada + + · %1$d vence en 1h + · %1$d vencen en 1h + + + %1$d en cola + %1$d en cola + + Algunas buenas opciones son: \n%1$s + Relés de búsqueda + Relés de búsqueda + Lista de relés que se usarán al buscar contenido o usuarios. El etiquetado y la búsqueda no funcionarán si no hay opciones disponibles. Asegúrate de que implementen NIP-50. + eventos buscables + Clave secreta (nsec) copiada al portapapeles + Aún no has bloqueado a ningún usuario. + Filtros de seguridad + No hay palabras ocultas. Añade una palabra a continuación para ocultar las publicaciones que la contengan. + Contenido bloqueado + Preferencias de filtrado + Ninguna cuenta ha sido marcada como spam en esta sesión. + Enviar + Enviar todos los eventos de perfil (kind 0) recibidos a tu relay local + Reenviar perfiles al relay local + Disponible para este destinatario: %1$s sats + Pago fallido + Transacción: %1$s + Pagando por %1$s… + El servidor no proporcionó una URL después de la carga + Configuración + No hay hilos silenciados + Hilos silenciados + Compartir como imagen + Compartir como Url de Imagen + Subida HLS + Compartir o guardar + Cortos + Mostrar código QR de clave privada cifrada + Incluye mensajes directos y de grupo en la pestaña de Notificaciones. Desactívalo para mantener los mensajes solo en la pestaña de Mensajes. + Mostrar mensajes + Mostrar código QR de clave privada + Solicitud de firma rechazada + Asegúrate de que la aplicación firmante haya autorizado esta transacción. + El firmante externo devolvió una carga útil que no concuerda con la solicitud. Es posible que haya un error, ya sea en Amethyst o en el firmante. + No se ha encontrado el firmante. + ¿Se ha desinstalado la app del firmante? Comprueba si el firmante está instalado y tiene esta cuenta. Cierra sesión y vuelve a iniciar sesión en la app del firmante si ha cambiado. + Retroceder %1$d segundos + Adelantar %1$d segundos + Apps + Spam + El número de eventos de spam procedentes de este relé + Spammers + Muestra dos pestañas de notificaciones: Siguiendo (personas que sigues) y Todos. El indicador de no leídos se ilumina solo para la actividad de las personas que sigues. + Dividir notificaciones por Seguidos + Intenta eliminar los metadatos privados de los archivos multimedia compatibles antes de subirlos + Eliminar metadatos privados + Lee los entrenamientos finalizados de Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) y sugiere compartirlos como publicación. El permiso se solicita solo cuando te conectas. + Sugerir entrenamientos para compartir + Sistema + Tema + Tema oscuro, claro o del sistema + Este mensaje desaparecerá en %1$s + + +%1$d\nrespuesta + +%1$d\nrespuestas + + Hoy + Personalizado + Crea el tuyo + Predeterminado + Ocultar tu IP de relés aleatorios + Orbot + Privacidad total + Oculta tu IP en todas las conexiones + Interno + Desactivado + Preconfiguración de Tor y privacidad + Modificar rápidamente todos los ajustes a continuación + Todo menos media + Ocultar tu IP de todo, excepto imágenes y videos + Relés DM + Forzar Tor para enviar y recibir mensajes directos + Imágenes + Forzar Tor al cargar imágenes + Subidas multimedia + Forzar Tor al subir contenido + Operaciones monetarias + Forzar Tor en transferencias de zaps, Lightning y Cashu + Relés no confiables + Forzar Tor en la bandeja de salida/entrada + Verificación de dirección de Nostr + Forzar Tor al verificar direcciones NIP-05 + Url/Relés tipo onion + Usar Tor para cualquier URL .onion + Imágenes de perfil + Forzar Tor al cargar imágenes de perfil + Relés de confianza + Forzar Tor en todos los relés de tus listas + Vistas previas de URL + Forzar Tor al cargar vistas previas de URL + Videos + Forzar Tor al cargar videos + Básico + Usar Tor cuando lo requiera el servidor + Error al abrir el archivo + No hay aplicaciones torrent instaladas para abrir y descargar el archivo. + El evento no tiene suficiente información para crear un enlace magnético + Usa el emisor rastreado al enviar eventos. Muestra el progreso en tiempo real y el estado por relay durante la difusión. + Difusiones rastreadas + Traducir a + Elige el idioma al que traducir el contenido. + Traducciones + Relés de confianza + Relés en que confías para no necesitar una conexión Tor para + Completo + Rendimiento + Simplificado + Preferencias de UI + Modo de interfaz + Elegir el estilo de publicación + No se pudo crear una factura de Lightning antes de enviar el zap. El monedero de Lightning del destinatario envió el siguiente error: %1$s. + No se puede compartir la imagen, inténtalo de nuevo más tarde… + No se puede compartir el vídeo, por favor inténtalo de nuevo más tarde… + Descifrado no autorizado + El firmante no autorizó un descifrado necesario para realizar esta operación. Activa el descifrado NIP-44 en tu aplicación de firmante e inténtalo de nuevo + Dejar de seguir + Eliminar fijado + Desfijar del perfil + Subida cancelada + Error de carga + Error al cargar voz: %1$s + Error al cargar el mensaje de voz + NIP-95 aún no es compatible con mensajes de voz + %1$d%% de disponibilidad + Motor de Tor activo + Usar la versión interna u Orbot + El usuario no tiene una configuración de dirección Lightning para recibir sats + El usuario %1$s no tiene una dirección de Lightning configurada para recibir sats. + Historial de desapariciones + Solicitud de desaparición enviada + Mejor calidad en tamaños de archivos más pequeños, pero no todos los dispositivos admiten la reproducción H.265. + Usa H.265/HEVC Codec + La descarga del vídeo ha comenzado… + Botones del reproductor de vídeo + Video guardado en la galería de videos del teléfono + Publicación de voz + Grave + Aguda + Neutra + Ninguna + Respuesta de voz + Cartera + Cartera Cashu (NIP-60) + Wallet Connect + El proveedor de conexión de monedero devolvió el siguiente error: %1$s + Editar mints + Muestra un mensaje de advertencia cuando los mensajes tienen 5 o más reportes de los usuarios que sigues. + Advertir sobre reportes + Añadir marcador web + Editar marcador web + Marcadores web + ¿Qué tienes en mente? + Entrenamientos + Escribir un mensaje… + Relé de escritura + La cantidad en bytes que se enviaron a este relé, incluyendo filtros y eventos + Zap + Zaps + Bloquear y ocultar usuario + Cambiar nombre + Guardar diff --git a/commonsUI/src/commonMain/composeResources/values-fa-rIR/strings.xml b/commonsUI/src/commonMain/composeResources/values-fa-rIR/strings.xml index 1e4b6665aa..652a17aa1d 100644 --- a/commonsUI/src/commonMain/composeResources/values-fa-rIR/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-fa-rIR/strings.xml @@ -1804,4 +1804,1196 @@ آدرس پایه API کاوشگر پرداخت فاکتور از DVM پرداخت %1$s sat به DVM + درباره & قانونی + تنظیمات حساب + افزودن + یک سرور Blossom بیافزایید + یک سرور NIP-96 بیافزایید + وقتی فعال باشد، Amethyst یک برچسب کلاینت NIP-89 به رویدادهایی که منتشر می‌کنید اضافه می‌کند. + افزودن برچسب کلاینت به رویدادهایم + هشدار محتوای حساس پیش از نمایش محتوا اضافه می کند + محتوای حساس + افزودن به علامت گذاشته های عمومی + از یک مدل هوش مصنوعی روی دستگاه برای پیشنهاد اصلاحات متن و تغییر لحن استفاده می‌کند. + پیشنهاد بهبود متن + اتصالات به relay های صندوق ورودی شما را برای اعلان‌های بلادرنگ فعال نگه می‌دارد + + متصل به %1$d relay صندوق ورودی + متصل به %1$d relay صندوق ورودی + + + متصل به %1$d relay + متصل به %1$d relay + + در حال اتصال به relay های صندوق ورودی… + اعلان‌های Amethyst فعال است + اعلان‌های تماس‌های صوتی و تصویری ورودی + تماس‌های ورودی + %1$s چالش شطرنج شما را پذیرفت + درباره رویدادهای بازی شطرنج اطلاع می‌دهد + شطرنج + به‌روزرسانی‌های شطرنج + %1$s حرکت کرد — نوبت شماست + وقتی پیام خصوصی دریافت شود اعلان می کند + پیام خصوصی + پیام‌های جدید + علامت‌گذاری خوانده‌شده + وقتی کسی شما را در پستی اشاره یا نقل‌قول می‌کند اطلاع می‌دهد + %1$s شما را اشاره کرد + اشاره‌ها + اشاره‌های جدید + وقتی کسی به پست شما واکنش نشان می‌دهد اطلاع می‌دهد + %1$s به پست شما واکنش نشان داد + برای %1$s + واکنش‌ها + واکنش‌های جدید + وقتی کسی به پست شما پاسخ می‌دهد اطلاع می‌دهد + پاسخ‌ها + پاسخ‌های جدید + پاسخ + اعلان‌ها هنگام انتشار یا عدم انتشار یک پست زمان‌بندی‌شده. + پست‌های زمان‌بندی‌شده + وقتی کسی زپ کند اعلام می کند + %1$s ساتوشی + برای %1$s + از %1$s + زپ دریافت شده + zap های جدید + تنظیمات برنامه + تأییدیه + درخواست تأییدیه + مهارت تأییدکننده + توصیه تأییدکننده + ویژوالایزر صدا + هنگام تایپ یا خروج از یک ناحیه نوشتن با متن ارسال‌نشده، به‌طور خودکار یک رویداد پیش‌نویس ذخیره می‌کند و آن را به relay‌های صندوق خروجی خصوصی شما ارسال می‌کند. + ایجاد خودکار پیش‌نویس + مرور ژرف + پنهان کردن نوار پیمایش هنگام مرور + پیش نمایش تصویر + بارگیری خودکار تصاویر و جیف ها + پخش ویدئو + پخش خودکار ویدئوها و جیف ها + تصویر نمایه + نمایش تصاویر نمایه + پیش نمایش URL + نشان دادن پیش نمایش URL + پخش خودکار ویدیو + پخش خودکار ویدیوها هنگامی که روی صفحه نمایش داده می‌شوند + حذف متادیتا از AVIF ممکن نیست: %1$s + اعطای نشان + بازگشت + بازیابی کلیدها + نشان‌ها + احراز هویت انجام نشد + مشخصات بیومتریک نتوانست مالک این تلفن را احراز هویت کند + مشخصات بیومتریک نتوانست مالک این تلفن را احراز هویت کند. خطا: %1$s + بلاک + relay‌های مسدود شده + Amethyst هرگز به این relay‌ها متصل نخواهد شد + کاربران بلاک شده + لیست نشانک جدید + متادیتای لیست نشانک + متادیتای فهرست‌های نشانک برای هر کسی در Nostr قابل مشاهده است. فقط اعضای خصوصی شما رمزگذاری می‌شوند. + علامت گذاشته ها + بازنشر + نوار ناوبری پایین + relay های پخش + relay هایی که در ارسال یادداشت‌های شما به سایر relay ها تخصص دارند، مانند sendit.nosflare.com. Amethyst این relay را به همه رویدادهای جدید ساخته شده توسط شما اضافه می‌کند + مرورگر + موردعلاقه‌ها + بارگذاری از طریق وب باز. برای استفاده از Tor ضربه بزنید. + بارگذاری از طریق Tor. برای استفاده از وب باز ضربه بزنید. + + %1$s، %2$d رویداد + %1$s، %2$d رویداد + + آپلود تصویر ناموفق بود + تصویر انتخاب شده آپلود نشد. دوباره امتحان کنید یا یک آدرس URL وارد کنید. + اشتراک‌گذاری رویداد تقویم + باز کردن در نقشه + باز کردن لینک + در حال وقوع + %1$s · پایان %2$s + + تا %1$d دقیقه دیگر شروع می‌شود + تا %1$d دقیقه دیگر شروع می‌شود + + هشدار هنگامی که رویدادی که در آن شرکت می‌کنید در شرف شروع است. + یادآوری‌های تقویم + رویداد تقویم + یک اعلان هنگامی که رویدادی که در آن شرکت می‌کنید در شرف شروع است ارسال می‌شود. + ارسال یادآوری‌ها + + %1$d دقیقه + %1$d دقیقه + + یادآوری‌های تقویم + روز + فید + ماه + هفته + پذیرفتن + دوربین خاموش + دوربین روشن + گوشی + قطع تماس + تماس ورودی + تماس تصویری ورودی… + تماس صوتی ورودی… + بی‌صدا + تماس‌ها + اعلان تماس در جریان + Amethyst برای شروع تماس تصویری به دسترسی دوربین و میکروفون نیاز دارد. لطفاً آن‌ها را در تنظیمات برنامه فعال کنید. + Amethyst برای شروع تماس صوتی به دسترسی میکروفون نیاز دارد. لطفاً آن را در تنظیمات برنامه فعال کنید. + رد کردن + تنظیمات تماس + بلندگو + با صدا + تماس با %1$s + فراخوانی URL از پاسخ %1$s یافت نشد + لغو + توکن Cashu + در حال بررسی mint… + Cashu بازپرداخت نشد + Mint پیام خطای روبرو را داد: %1$s + دریافت‌شده + ارسال‌شده + Mint های مطابق + + +%1$d بیشتر + +%1$d بیشتر + + Mint های محبوب + + توصیه‌شده توسط %1$d نفر دیگر + توصیه‌شده توسط %1$d نفر دیگر + + %1$s sat به %2$s منتقل شد. + هیچ کیف پول Cashu سازگاری در سیستم یافت نشد + + %1$d فاکتور در انتظار + %1$d فاکتور در انتظار + + %1$s sat + تا %2$s sat کارمزد پرداخت شود؟ + یک درخواست حذف برای توصیه kind:38000 شما از %1$s منتشر کنید. relay هایی که NIP-09 را رعایت می‌کنند آن را حذف خواهند کرد. + %1$s sats در %2$s اثبات بازیابی شد. + Cashu دریافت شد + %1$s ساتوشی به کیف پول شما ارسال شد. (کارمزد: %2$s ساتوشی) + + وجوه نگهداری‌شده در %1$d mint که استفاده نمی‌کنید + وجوه نگهداری‌شده در %1$d mint که استفاده نمی‌کنید + + در انتظار پرداخت فاکتور… + توقف پخش + پخش روی دستگاه + استانداردهای ایمنی کودکان + لوازم جانبی + هنر + کتاب + پوشاک + یادگاری + دست سازه + الکترونیکی + تناسب اندام + خوراکی + مبلمان + خانه + گوناگون + اداره + سایر + حیوانات خانگی + ورزش + روزانه + ماهانه + یک‌بار + هفتگی + پرداخت %1$s از طریق %2$s؟ + پرداخت این صورتحساب از طریق %1$s؟ + سرویس بدهکاری پرداخت را تکمیل نکرد. + یک مقدار معتبر برای این پیشنهاد وارد کنید. + در حال درخواست صورتحساب… + بستن تمام واکنش ها به این پست + بسته + جوامع + پیش‌نویس %1$d بایت است؛ این انجمن این نوع را تا %2$d بایت محدود می‌کند. + پیش‌نویس %1$d بایت است؛ این انجمن رویدادها را تا %2$d بایت محدود می‌کند. + امروز %1$d رویداد از این نوع ارسال کرده‌اید (حد مجاز %2$d). + تنظیمات نوشتن + درگاه پیش فرض 9050 است + relay های متصل + لیست فعلی relay های در حال استفاده + درصد اتصال‌های موفق به relay + همیشه + هرگز + وای فای بی اندازه + افزودن مدارک + افزودن تصویر + افزودن رسانه + افزودن فیلم + پنهان + هشدار + نمایش + گفتگوها + GIF متحرک را به ویدیوی MP4 تبدیل می‌کند تا حجم فایل کمتر و سازگاری پخش بهتری داشته باشید. + تبدیل GIF به MP4 + (@note1)شناسه یادداشت در کلیپبورد کپی شد + یادداشت در کلیپبورد کپی شد + در کلیپ‌بورد کپی شد + @npubنویسنده در کلیپبورد کپی شد + کلید خصوصیم را کپی کن + کپی به کلیپ‌بورد + LNUrl از آدرس لایتنینگ "%1$s" بدست نیامد. تنظیمات کاربر را بررسی کنید. + فایل بارگیری شده پس از بارگذاری بررسی نشد: %1$s + فایل بارگذاری شده از سرور بارگیری نشد + صورتحساب از %1$s گرفته نشد: %2$s + فایل فشرده باز نشد + کیف پول یافت نشد + Amethyst هیچ برنامه کیف پولی که از Nostr Wallet Connect (NWC) پشتیبانی کند پیدا نکرد. +\n\nکارهایی که می‌توانید انجام دهید: +\n\t1. بررسی پشتیبانی NWC: مطمئن شوید که برنامه کیف پول مورد نظر شما با Nostr Wallet Connect سازگار است. +\n\t2. ایجاد اتصال: به برنامه کیف پول خود بروید و یک اتصال NWC جدید ایجاد کنید. +\n\t3. اتصال به Amethyst: کیف پول شما معمولاً سه گزینه ارائه می‌دهد: +\n\t\t3.1 اتصال خودکار: دکمه‌ای برای باز کردن و اتصال خودکار به Amethyst. اگر این گزینه وجود دارد، آن دکمه را بزنید، Amethyst را باز کنید و روی صفحه جدید ذخیره کنید. +\n\t\t3.2 اتصال دستی: یک URI اتصال که می‌توانید کپی کنید و با کلیک روی آیکون paste در این صفحه مستقیماً وارد کنید. +\n\t\t3.3 کد QR: کیف پول یک کد QR ایجاد می‌کند که می‌توانید با دکمه کد QR در این صفحه آن را بخوانید. + + ساختن + روز + منطقه خطر + تاریک + توصیف + عمومی کردن + گپ + جوامع + الگوریتم‌های فید + بسته‌های دنبال‌کردن + پخش زنده + بازار + خواندنی‌ها + رله های صندوق دریافت پیام خصوصی + پیام‌های خصوصی + ترجمه نکن از + زبان‌های نمایش داده شده اینجا ترجمه نخواهند شد. برای حذف یک زبان و ترجمه مجدد آن، روی آن ضربه بزنید. + ذخیره در گوشی + در حال دانلود ویدئو… + پیش نویس یادداشت + پیش‌نویس‌ + حساب های کاربری + ایجاد + فیدها + ناوبری + سیستم + شما + + %1$d روز + %1$d روز + + + %1$d ساعت + %1$d ساعت + + + %1$d دقیقه + %1$d دقیقه + + + %1$d ماه + %1$d ماه + + + %1$d هفته + %1$d هفته + + + %1$d سال + %1$d سال + + ویرایش تقویم + ویرایش رویداد تقویمی + ویرایش جامعه + ویرایش بسته ایموجی + ویرایش پلی‌لیست + ویرایش نوشته + ایموجی‌های خصوصی به صورت رمزنگاری‌شده روی relay‌ها ذخیره می‌شوند و فقط برای شما قابل مشاهده‌اند. درست مانند ایموجی‌های عمومی در منوی واکنش و تکمیل خودکار «:» نمایش داده می‌شوند. + ایموجی‌های عمومی برای همه قابل مشاهده‌اند و در منوی واکنش و انتخابگر «:» تکمیل خودکار ظاهر می‌شوند، البته اگر این بسته در فهرست ایموجی شما باشد. + ایموجی‌ها + فایل‌ها را قبل از آپلود برای حفظ حریم خصوصی رمزگذاری کنید. برخی سرورها ممکن است فایل‌های رمزگذاری شده را در حساب‌های رایگان قبول نکنند. + رمزگذاری فایل‌ها + گفتگوی ناپایدار + خطا + صورتحساب پرداخت نشد + برداشت نشد + باز کردن پرداخت ممکن نیست + زپ فرستاده نمی شود + خطا در بازکردن اپلیکیشن امضا کننده + اپ امضا کننده یافت نشد. بررسی کنید که اپ حذف نشده باشد. + خطا در تفسیر پیغام خطا + خطا در تفسیر JSON از %1$s. تنظیمات لایتنینگ کاربر را بررسی کنید + صورتحساب از سرور گیرنده دریافت نشد + باز کردن در مرورگر + پخش این ویدیو ممکن نیست + کدک یا فرمت روی این دستگاه پشتیبانی نمی‌شود (%1$s). سعی کنید آن را در مرورگر خود باز کنید. + خطاها + همگام‌سازی relay + رویدادهای شما + رویدادهای ارسال‌شده به شما + سرکیت + دوچرخه‌سواری + رژیم غذایی + روزه‌داری + کوه‌نوردی + مدیتیشن + قایقرانی + دویدن + قدرتی + شنا + پیاده‌روی + یوگا + گسترش دادن + تاریخ انقضا + خروجی تنظیمات relay + حذف نشد: %1$s + کلید خصوصی شما رمزنگاری نشد + تصویر ذخیره نشد + ذخیره PDF ناموفق بود + ویدئو ذخیره نشد + بسیاری از سرورها فایل‌های رمزگذاری شده را در حساب‌های رایگان قبول نمی‌کنند. می‌توانید بدون رمزگذاری مجدداً امتحان کنید. + آپلود رمزگذاری شده ناموفق بود + خطای بارگیری: %1$s + رسانه بارگذاری نشد + بارگذاری نشد %1$s: %2$s + افزودن به موردعلاقه‌ها + از طریق وب باز بارگذاری می‌شود. + از طریق Tor بارگذاری می‌شود. + اخیر + حذف از موردعلاقه‌ها + آن برنامه هنوز بارگذاری نشده. لحظه‌ای دیگر دوباره امتحان کنید. + برنامه‌های موردعلاقه + الگوریتم‌های فید موردعلاقه + پرداختی انجام شد + در relay‌ها منتشر شد + یک فایل بارگذاری شد + فیدهای relay مورد علاقه + relay هایی که اغلب به آن‌ها می‌روید تا فید جهانی‌شان را ببینید + انجمن‌ها + الگوریتم‌های فید + فیدها + هشتگ‌ها + مجموعه‌های علاقه + لیست‌ها + مکان‌ها + relay‌ها + سرور فایل + یک سرور برای بارگذاری این فایل انتخاب کنید + پست‌هایی از غریبه‌ها که دقیقاً ۵ بار یا بیشتر تکرار شده‌اند را پنهان می‌کند + فیلتر اسپم + دنبال کردن + دنبال کردن متقابل + همه الگوریتم‌های فید موردعلاقه + اطراف من + گردآوری‌شده + همگانی + فهرست دنبال‌کردن پیش‌فرض + همه دنبال ها + همه دنبال‌شده‌های کاربر + مال من + لیست خموش + بسته دنبال‌کردن جدید + ویرایش بسته دنبال‌کردن + متادیتای بسته دنبال‌کردن برای همه در Nostr قابل مشاهده است و اغلب در بسیاری از وب‌سایت‌ها به عنوان کیت راه‌اندازی برای کاربران جدید منتشر می‌شود. + متادیتای بسته دنبال‌کردن + بسته‌های دنبال‌کردن + فهرست دنبال‌کردن جدید + ویرایش فهرست + سبک گالری نمایه + انتخاب سبک گالری + کلاسیک + مدرن + پست اختصاصی مکان + فقط دنبال کنندگان این مکان می توانند آن را ببینند. دنبال کنندگان معمولی شما آن را نمی بینند. + %1$s از هدف %2$s sat تأمین شده + ساعت + تصویر تغییر کرده است. ممکن است نویسنده تغییر را ندیده باشد. + این به چه معناست؟ + تصویر از زمان ارسال یکسان است + سلام %1$s، هنوز موجوده؟ + کلمات پنهان + وقتی جامعه یک سند قوانین NIP-9B منتشر می‌کند و یک رویداد آن را نقض کند، آن پست‌ها را از فیدهای جامعه حذف می‌کند. وقتی جامعه‌ای قوانین ساختاریافته ندارد تأثیری ندارد. + پنهان‌کردن پست‌هایی که قوانین جامعه را نقض می‌کنند + پنهان کردن گذرواژه + در حال آپلود %1$s (%2$d از %3$d) + همه چیز + درخواست بد - سرور نمی تواند یا نمی خواهد این درخواست را پردازش کند. + غیرمجاز - کاربر دارای مشخصات معتبر احراز هویت شده نیست + پرداخت الزامی - سرور برای تکمیل درخواست به پرداخت دارد. + ممنوع - کاربر مجاز به انجام این درخواست نیست. + یافت نشد - سرور نتوانست آدرس درخواست شده را بیابد. + این روش مجاز نیست - سرور روش درخواست را پیشتیبانی می کند ولی مرجع هدف را نه. + غیرقابل قبول - سرور نتوانست محتوایی مناسب درخواست بیابد. + احراز هویت الزامی پروکسی - کاربر اعتبارات احراز هویت معتبر ندارد + زمان درخواست سپری شد - زمان درخواست در انتظار شخصی دیگر تمام شد + تعارض - سرور نتوانست درخواست را انجام دهد چون در مرجع تعارض وجود دارد + نیست - محتوای درخواست شده برای همیشه از سرور پاک شده و بازیابی نخواهد شد + الزام طول - سرور درخواست را رد کرد چون نیاز به اندازه تعریف شده دارد + پیش شرط انجام نشد - پیش شرطی در سربرگ وجود دارد که سرور نمی تواند براورده کند + حجم زیادی - درخواست از محدودیت های تعریف شده سرور بزرگتر است و سرور آن را پردازش نمی کند + آدرس زیادی بلند - آدرس درخواست شده توسط کاربر زیادی برای پردازش سرور بلند است. + نوع رسانه پشتیبانی نشده - درخواست از نوعی رسانه استفاده می کند که توسط سرور پشتیبانی نمی شود + بازه براورده نشد - سرور نتوانست مقدار مورد نظر در سربرگ بازه را براورده کند. + انتظارات براورده نشد - سرور نتوانست انتظارات تعیین شده در سربرگ توقع درخواست را براورده کند + ارتقاء الزامی - سرور درخواست را با پروتکل فعلی پردازش نمی کند تا کلاینت پروتکل را ارتقاء دهد. + خطای سرور داخلی - سرور به خطایی غیرمنتظره برخورد و نمی تواند درخواست را کامل کند + انجام نشد - سرور نمی تواند درخواست را انجام دهد یا روش درخواست را تشخیص نمی دهد + درگاه غیرمجاز - سرور به عنوان یک درگاه پاسخی نامعتبر از هاست دریافت کرد + خدمت در دسترس نیست - این اغلب هنگامی که یک سرور بیش از حد شلوغ است یا برای تعمیرات تعطیل است پیش می آید + مهلت درگاه تمام شد - مهلت سرور در نقش یک درگاه یا پراکسی تمام شد، در انتظار پاسخ + نسخه HTTP پشتیبانی نمی شود - سرور ورژن HTTP درخواست را پشتیبانی نمی کند + Variant Also Negotiates - سرور یک مشکل پیکربندی داخلی دارد + فضای ذخیره ناکافی - سرور فضای کافی برای پردازش موفق درخواست ندارد + حلقه دیده شد - سرور یک حلقه بینهایت در پردازش این درخواست شناسایی کرد + احراز هویت الزامی - کلاینت برای دسترسی به شبکه می بایست احراز هویت شده باشد + رفتار ناهنجار + تصویر در گالری ذخیره شد + جعل هویت + relay های صندوق ورودی + مبلغ نادرست صورتحساب (%1$s ساتوشی)از %2$s. می بایست %3$s ساتوشی باشد. + relay های ایندکسر + relay هایی که در میزبانی متادیتا و لیست relay های همه تخصص دارند، مانند purplepag.es. Amethyst از این relay ها برای یافتن کاربرانی که در لیست‌های شما نیستند استفاده می‌کند. + مجموعه علایق جدید + تغییر نام + مجموعه‌های هشتگ + کلید نامعتبر + کلید نامعتبر: %1$s + آدرس نامعتبر + امتیست آدرسی برای باز کردن دریافت کرد ولی آدرس نامعتبر بود: %1$s + نقل قول از پیش نویس یادداشت ممکن نیست. + واکنش به پیش نویس یادداشت ممکن نیست. + پاسخ به پیش نویس یادداشت ممکن نیست. + زپ زدن به پیش نویس یادداشت ممکن نیست. + کلید الزامیست + relay های KeyPackage + relay هایی که KeyPackage های MLS شما در آن‌ها منتشر می‌شوند (MIP-00). سایر کاربران این KeyPackage ها را برای دعوت شما به گروه‌های چت Marmot واکشی می‌کنند. بین ۱ تا ۳ relay که رویدادهای KeyPackage را از شما قبول می‌کنند و امکان خواندن عمومی را دارند وارد کنید. + مجموعه نشان‌های پذیرفته شده + مقدمه ماجرا + مطالعه ماجرا + صحنه ماجرا + پیشنهادات برنامه + قرار ملاقات + برنامه‌ها + RSVP قرار ملاقات + هدر صوتی + آهنگ صوتی + پادکست‌های تألیف شده + جوایز نشان + تعاریف نشان + داده Blob + سرآیندهای Blob + relay‌های مسدود شده + وبلاگ‌ها + احراز هویت Blossom + سرورهای Blossom + لیست نشانک + relay‌های پخش + تقویم + تعریف کانال + مخفی کردن پیام کانال + لیست کانال + پیام کانال + فراداده کانال + بی‌صدا کردن کاربر در کانال + احراز هویت شطرنج + چالش‌های شطرنج + پیشنهاد مساوی شطرنج + پذیرش بازی شطرنج + پایان بازی شطرنج + بازی‌های شطرنج + حرکت شطرنج + آگهی‌های طبقه‌بندی‌شده + نظرات + تعریف جامعه + فهرست جوامع + پست جامعه + کارت تماس + قرار ملاقات روزانه + حذف‌ها + فایل پیام خصوصی + پیام خصوصی + relay های پیام خصوصی + پیش‌نویس‌ها + درخواست محتوای DVM + پاسخ محتوای DVM + وضعیت DVM + درخواست کاربر DVM + پاسخ کاربر DVM + ویرایش‌ها + فهرست بسته‌های ایموجی + بسته‌های ایموجی + چت موقت + اتاق‌های چت موقت + پادکست‌های موردعلاقه + relay‌های موردعلاقه + سرآیندهای فایل + سرورهای فایل + فهرست دنبال‌شدگان + بسته‌های دنبال‌کردن + دنبال‌کردن‌های Geohash + مشکل Git + وصله Git + پاسخ Git + مخزن Git + دنبال‌کردن‌های هشتگ + برجسته‌ها + احراز هویت HTTP + فهرست relay های فهرست‌ساز + چت‌های زنده + پخش‌های زنده + داده پزشکی + اتاق جلسه + فضای جلسه + پلی‌لیست موسیقی + آهنگ موسیقی + فهرست بی‌صداشدگان + نشانک‌های نام‌گذاری‌شده + سرورهای Nests + پیام‌های خصوصی NIP-04 + یادداشت‌ها + درخواست NWC + پاسخ NWC + لیست نشانک قدیمی + relay‌های خروجی + پرداخت به + فهرست‌های افراد + تصاویر + پین‌ها + قسمت پادکست + برنامه پادکست + نظرسنجی + پاسخ نظرسنجی + relay های خصوصی + Zap های خصوصی + پروفایل + نشان‌های پروفایل + گالری پروفایل + relay های پروکسی + پیام عمومی + واکنش‌ها + احراز هویت relay + کشف relay + اطلاعیه ناظر relay + مجموعه relay + گزارش‌ها + بازنشرها + بازنشرها (16) + حضور در اتاق + مهرها + relay های جستجو + نظرات تورنت + تورنت‌ها + ارائه‌دهندگان مورد اعتماد + relay های مورد اعتماد + حذف کاربر + تنظیمات کاربر + وضعیت کاربر + ویدیو + ویدیو (Repl) + پیام صوتی + پاسخ صوتی + نشانک وب + تمرینات ورزشی + اهداف Zap + نظرسنجی Zap + درخواست Zap + شناس + تنظیمات نمایش زبان + برای هر جفت زبان ترجمه شده، انتخاب کنید کدام زبان اول نمایش داده شود. + آخرین بازدید %1$s پیش + همین الان بازدید شد + هرگز دیده نشده + آخرین بازدید در %1$s ‏(%2$s پیش) + ترک کردن + روشن + پخش زنده + رله های محلی + لیست رله هایی که در این دستگاه کار می کنند. + با کلید خصوصی وارد شوید تا بتوانید یادداشت را بازنشر کنید + با یک کلید خصوصی وارد شوید تا بتوانید دنبال کنید + دارید از کلید عمومی استفاده می کنید و با کلید عمومی فقط می توان خواند. با کلید خصوصی وارد شوید تا بتوانید کلمه یا جمله ای را پنهان کنید. + با کلید خصوصی وارد شوید تا بتوانید پاسخ دهید + با کلید خصوصی وارد شوید تا بتوانید زپ کنید + دارید از کلید عمومی استفاده می کنید و با کلید عمومی فقط می توان خواند. با کلید خصوصی وارد شوید تا بتوانید کلمه یا جمله ای را آشکار کنید + شما از یک کلید عمومی استفاده می‌کنید و کلیدهای عمومی فقط خواندنی هستند. برای امضا کردن رویدادها با یک کلید خصوصی وارد شوید + با یک کلید خصوصی وارد شوید تا بتوانید دنبال کردن را لغو کنید + شما از یک کلید عمومی استفاده می‌کنید و کلیدهای عمومی فقط خواندنی هستند. برای آپلود کردن با یک کلید خصوصی وارد شوید + با کلید خصوصی وارد شوید تا بتوانید یادداشت را لایک کنید + ویدیوها + دقیقه + بسته‌های ایموجی من + در حال افزودن %1$s… + دسترسی مدیریت اعطا شد + دسترسی مدیریت لغو شد + افزودن %1$s ناموفق بود: %2$s + ایجاد گروه ناموفق بود: %1$s + اعطای دسترسی مدیریت ناموفق بود: %1$s + خروج از گروه ناموفق بود: %1$s + حذف عضو ناموفق بود: %1$s + لغو دسترسی مدیریت ناموفق بود: %1$s + به‌روزرسانی ناموفق بود: %1$s + گروه MLS + اطلاعات گروه به‌روزرسانی شد + + %1$d عضو + %1$d عضو + + عضو حذف شد + + %1$d پیام + %1$d پیام + + عضو این گروه نیستید + خطای ناشناخته + رسانه افزوده شد + رسانه به گالری نمایه شما افزوده شد + بارگیری رسانه آغاز شد… + سرورهای رسانه + رسانه برای NIP-95 بسیار بزرگ است + مقصد پیام را وارد کنید + نمی توان بارگذاری کرد + موضوع + متادیتا حذف نشد + حذف متادیتای خصوصی از رسانه ناموفق بود. آپلود لغو شد. + نشانک‌ها با موفقیت منتقل شدند + تنظیمات لایتنینگ موجود نیست + انتخاب های بیشتر + انتقال به خصوصی + انتقال به عمومی + آپلود تصویر کاور + یک تصویر مربعی برای استفاده به عنوان آرت‌ورک این پلی‌لیست انتخاب کنید. + + +%1$d آهنگ دیگر + +%1$d آهنگ دیگر + + + %1$d آهنگ + %1$d آهنگ + + + %1$d آهنگ + %1$d آهنگ + + در حال آپلود کاور و انتشار. این فرآیند حتی اگر صفحه را ترک کنید ادامه خواهد داشت. + آپلود فایل صوتی + یک MP3، WAV، یا FLAC انتخاب کنید. هنگام ذخیره روی سرور رسانه‌ای شما آپلود خواهد شد. + آپلود تصویر کاور + یک تصویر مربعی برای استفاده به عنوان آرت‌ورک این آهنگ انتخاب کنید. + در حال آپلود کاور + صدا و انتشار. این فرآیند حتی اگر صفحه را ترک کنید ادامه خواهد داشت. + باصدا. برای بیصدا کردن کلیک کنید + بیصدا شده. برای لغو کلیک کنید + لیست‌های من + نام الزامی است + تنظیمات Namecoin + هویت + خواندن کلید عمومی شما + پیام‌رسانی + تبادل پیام با سایر nApplet ها + اقدامات صفحه‌کلید + اتصال میانبرهای صفحه‌کلید + اعلان‌ها + نمایش اعلان‌ها به شما + relay‌ها + خواندن، امضا و انتشار رویدادهای شما + شبکه + دریافت منابع وب و Blossom + ذخیره‌سازی + ذخیره‌سازی خصوصی اختصاصی + تم + تطبیق رنگ‌های برنامه شما + بارگذاری‌ها + بارگذاری فایل‌ها به سرور رسانه‌ای شما + پرداخت‌ها + پرداخت فاکتورهای Lightning + این nApplet می‌خواهد کلید عمومی شما را بخواند. + این nApplet می‌خواهد پروفایل و داده‌های حساب شما را بخواند. + این nApplet می‌خواهد به شما اعلان نشان دهد. + + این nApplet می‌خواهد یک فاکتور Lightning به مبلغ %1$d sat پرداخت کند. + این nApplet می‌خواهد یک فاکتور Lightning به مبلغ %1$d sat پرداخت کند. + + این nApplet می‌خواهد یک رویداد kind %1$d را به عنوان شما امضا و منتشر کند. + این nApplet می‌خواهد یک رویداد رمزگذاری شده را به عنوان شما ارسال کند. + این nApplet می‌خواهد یک رویداد kind %1$d را به عنوان شما امضا و منتشر کند: + این nApplet می‌خواهد رویدادها را از relay‌های شما بخواند. + این nApplet می‌خواهد یک منبع وب دریافت کند. + این سایت می‌خواهد یک رویداد kind %1$d را با کلید Nostr شما امضا کند. + این nApplet می‌خواهد از ذخیره‌سازی خصوصی خود استفاده کند. + این nApplet می‌خواهد یک فایل به سرور رسانه‌ای شما بارگذاری کند. + ارسال پیام انجام نشد + ساکت کردن این سخنران + بازگرداندن این سخنران + ترک کردن + اتاق به عنوان بسته علامت‌گذاری نشد. در حال خروج — اتاق به صورت خودکار بسته خواهد شد. + + %1$d شنونده + %1$d شنونده + + پایین آوردن دست + قطع میکروفون + باصدا کردن میکروفون + بی‌صدا + ذخیره لیست سرور nest انجام نشد. دوباره امتحان کنید. + Nest — زنده + پخش صدا را هنگام باز بودن اتاق ادامه می‌دهد. + Nest متصل شد + توقف + ضربه بزنید تا بازگردید. + دنبال کردن + بی‌صدا + لغو دنبال کردن + باصدا + nest را ترک کرد + به عنوان مخاطب پیوست + به صحنه آمد + دست بلند کرد + در حال صحبت است + دست بلند کردن + باصدا + به عنوان یک رویداد قابل جایگزینی kind-10112 ذخیره می‌شود تا کلاینت‌های دیگر بتوانند ترجیح شما را بخوانند. + سرورهای شما + پیشنهادات داخلی که می‌توانید با یک ضربه به لیستتان اضافه کنید. + سرورهای پیشنهادی + سرورهای Nest + هرگز + نشان جدید + تقویم جدید + رویداد تقویمی جدید + جامعه جدید + مدیران + relay‌ها + کاربران مسدود شده + نظر جامعه (1111) + مقاله طولانی (30023) + پست تصویری (20) + متن کوتاه (1) + ویدیوی کوتاه (22) + پست ویدیویی (21) + نوع رویدادهای مجاز + حداکثر اندازه رویداد کلی (اختیاری) + قوانین قابل تأیید (اختیاری) + دروازه شبکه اعتماد (اختیاری) + بسته ایموجی جدید + هدف جدید + مقاله جدید + پلی‌لیست جدید + آهنگ موسیقی جدید + محصول جدید + در خواست جدید + رشته جدید + تمرین جدید + + %1$d فایل پیوست شده + %1$d فایل پیوست شده + + برنامه‌های Blossom یافت نشدند. لطفاً یک برنامه Blossom محلی نصب کنید تا این فایل را ببینید + باز کردن لینک‌های Blossom ممکن نیست + هیچ اپلیکیشن دوربینی در این دستگاه پیدا نشد + آدرس لایتنینگ تنظیم نشده است + هیچ اپلیکیشنی برای پردازش این پرداخت پیدا نشد. لطفاً یک کیف پول سازگار نصب کنید. + هیچ اپلیکیشنی برای پردازش پرداخت‌های %1$s نصب نشده. لطفاً یک کیف پول سازگار نصب کنید. + هیچ نوع واکنشی انتخاب نشده. نگه دارید تا تغییر دهید + هیچ واکنشی تنظیم نشده است + هیچ کیف پولی برای پرداخت صورتحساب لایتنینگ یافت نشد. لطفا یک کیف پول لایتنینگی برای استفاده از زپ نصب کنید + هیچ کیف پولی برای پرداخت صورتحساب لایتنینگ یافت نشد (خطا: %1$s). لطفا کیف پول لایتنینگی برای استفاده از زپ نصب کنید + مقداری برای زپ تعیین نشده. نگه دارید تا تغییر دهید + اعلان‌ها + دسته‌بندی‌ها + ارسال + نمایش درون‌برنامه‌ای + اکنون + هنر Nowhere + رهاسازی Nowhere + رویداد Nowhere + انجمن Nowhere + جمع‌آوری کمک مالی Nowhere + سایت Nowhere + پیام Nowhere + درخواست‌نامه Nowhere + فروشگاه Nowhere + برهنگی + نمی‌توان مرجع رویداد ساخت + هیچ کلید عمومی گیرنده‌ای در یادداشت وجود ندارد + Nutzap ها عمومی هستند و این یادداشت خصوصی را فاش می‌کنند. به جای آن از Lightning zap استفاده کنید. + Nutzap ناموفق بود + + ارسال %1$s sats، %2$d طرفه + ارسال %1$s sats، %2$d طرفه + + پشتوانه زنجیره بیتکوین پیکربندی نشده است + نمی‌توان تراکنش را منتشر کرد + نمی‌توان تراکنش را ساخت + نمی‌توان موجودی بیتکوین شما را بارگذاری کرد + پرداخت ارسال شد، اما رسید zap قابل انتشار نبود + + پرداخت ارسال شد (%1$d از %2$d رسید منتشر شد)، اما رسید بعدی قابل انتشار نبود + پرداخت ارسال شد (%1$d از %2$d رسید منتشر شد)، اما رسید بعدی قابل انتشار نبود + + سهم یک گیرنده زیر مقدار dust است + نمی‌توان تراکنش را امضا کرد + ~۱۰ دقیقه + ~۳۰ دقیقه + ~۱ ساعت + سریع + معمولی + آهسته + + تقسیم بین %1$d گیرنده + تقسیم بین %1$d گیرنده + + + %1$d گیرنده‌ای که فقط آدرس Lightning دارد نادیده گرفته می‌شود — on-chain به کلید عمومی Nostr برای استخراج آدرس نیاز دارد. + %1$d گیرنده‌ای که فقط آدرس Lightning دارند نادیده گرفته می‌شوند — on-chain به کلید عمومی Nostr برای استخراج آدرس نیاز دارد. + + + از تقسیم‌بندی %1$d طرفه این یادداشت استفاده کن + از تقسیم‌بندی %1$d طرفه این یادداشت استفاده کن + + انتشار + ساخت تراکنش + بارگذاری موجودی + انتشار رسید + امضا + فقط یک رای به ازای هر کاربر در این نوع نظرسنجی مجاز است + باز کردن تمام واکنش ها به این پست + باز + درگاه Orbot Socks + مرورگر Bitcoin ‏(OTS) + مدرکی وجود دارد که ثابت کند این پست پیش از %1$s امضا شده است. این مدرک در بلاکچین بیتکوین در آن تاریخ و زمان ثبت شده است. + اثبات مهر زمان + relay های صادره + رمز عبور لازم است + مکث + پرداخت + پیغام از طرف %1$s + آدرس‌های پرداخت + آدرس‌های پرداخت برای شبکه‌های مختلف اضافه کنید (مثلاً bitcoin، lightning، ethereum). + PDF در Downloads/Amethyst ذخیره شد + متادیتای لیست‌های دنبال‌کردن برای همه در Nostr قابل مشاهده است. فقط اعضای خصوصی شما رمزگذاری شده‌اند. + متادیتای لیست دنبال‌کردن + تصاویر + سنجاق به بالا + سنجاق کردن به پروفایل + پخش + + %1$d قسمت + %1$d قسمت + + سازندگان نظرسنجی نمی توانند در نظر سنجی خود رای دهند. + (0–100)% + این نظرسنجی برای رای جدید بسته شده است + چندانتخابی + گزینه ها %1$s + تک‌انتخابی + نمی توان رای داد + نظرسنجی‌ها + ارسال + + این پست بیش از %1$d هشتگ دارد + این پست بیش از %1$d هشتگ دارد + + %1$s پیش نمایش تصویر کارت برای + گزینه های حریم خصوصی + سیاست حریم خصوصی + <پیام خصوصی رمزگشایی نشد>\\n\nدر یک پیام خصوصی/رمزنگاری شده بین %1$s و %2$s نام شما آمده بود. + رله های صندوق دریافت پیام خصوصی + بین ۱-۳ رله به عنوان رله صندوق ورودی خصوصی وارد کنید. دیگران از این رله ها برای ارسال پیام خصوصی به شما استفاده خواهند کرد. رله های صندوق دریافت پیام خصوصی می بایست هر پیامی از هر کسی را بپذیرند، اما فقط بگذارند شما آن ها را بارگیری کنید. انتخاب های خوب شامل: + - inbox.nostr.wine (پولی) +- auth.nostr1.com (رایگان) +- you.nostr1.com (رله پولی یا شخصی) + کاربر DM ها را روی این relay ها دریافت می‌کند + پیام خصوصی + خصوصی کردن: یادداشت را به صورت gift-wrap فقط برای کاربران مطلع‌شده ارسال کن + پاسخ‌ها به یادداشت خصوصی همیشه خصوصی می‌مانند + قابل مشاهده برای + رله های خصوصی خانه + بین ۱-۳ رله وارد کنید برای ذخیره رویدادهایی که هیچ کس دیگر نمی بیند ، به عنوان مثال پیش نویس های شما و یا تنظیمات اپلیکیشن. در حالت ایده آل، این رله ها یا محلی هستند یا پیش از بارگیری محتوای کاربر به احراز هویت نیاز دارند. + ناسزا / نفرت پراکنی + پروفایل + نشان‌های پروفایل + پیشنهادات برنامه + نشان‌های پروفایل + فید دنبال‌کنندگان + فید دریافت Zap + رابط کاربری پروفایل + پروفایل‌ها + پیشنهاد ویرایش + relay های پراکسی + relay های تجمیع‌کننده که برنامه باید برای دانلود فیدهای شما از آن‌ها استفاده کند، مانند filter.nostr.wine. این جایگزین مدل outbox می‌شود و باعث می‌شود برنامه فقط به relay های موجود در لیست‌هایتان متصل شود. + گفتگوی عمومی + گفتگوهای عمومی در ناستر برای همه نمایان هستند + می توانند در آن شرکت کنند. آنها برای انجمن های باز درباره موضوعات به‌خصوص عالی هستند. + نظارت می تواند توسط حذف پست ها از رله ها انجام گیرد + برای میزبانی این گروه ۱تا ۳ رله وارد کنید. + کلاینت های ناستر از این تنظیمات استفاده می کنند تا بدانند پیام ها را از کجا بارگیری کنند و به کجا بفرستند. + رله ها + فراداده گفتگوی عمومی + گفتگوهای عمومی + رله های خانه/ صندوق خروجی عمومی + این نوع از رله تمام محتوای شما را ذخریه می کند. امتیست پست های شما را اینجا می فرستد و دیگران از این رله ها برای یافتن محتوای شما استفاده می کنند. بین ۱-۳ رله وارد کنید. این رله ها ممکن است رله های شخصی، پولی، یا عمومی باشند. + کاربر محتوای خود را به این relay ها ارسال می‌کند + پیام عمومی + رله های صندوق دریافت عمومی + این نوع رله تمام پاسخ ها، نظرات، پسندها، و زپ های یادداشت های شما را دریافت می کند. این ها می توانند رله های پولی یا رایگان باشند. محدودیتی که گرداننده رله تعیین می کند ممکن است اعلان هایی را که دریافت می کنید محدود کند. این می تواند اثر خوب یا بد داشته باشد. مثلا اگر تحت حمله کامنت اسپم باشید، رله پولی می تواند این اسپم را فیلتر کند. بین ۱-۳ رله وارد کنید. + کاربر اعلان‌ها را روی این relay ها دریافت می‌کند + شناسه یادداشت + حذف + بی‌صدا کردن رشته + اشتراک گذاری + اشتراک گذاری لینک مرورگر + فعال کردن رشته + واکنش + واکنش‌ها + ردیف واکنش + خواندن از رله + مقدار بایتی که از این رله فرستاده شده، شامل فیلترها و رویدادها + کاربر با امکان خواندن فقط + برای ضبط پیام کلیک کنید و نگه دارید + گفتگوی relay + گفتگوهای relay گروه‌های چت هستند که توسط relay خانگی خود کنترل می‌شوند. + آن‌ها برای همه در Nostr قابل مشاهده هستند و هر کسی می‌تواند در آن‌ها شرکت کند. + آن‌ها برای جوامع باز حول موضوعات خاص عالی هستند. برخی از این گروه‌ها ناپایدار + هستند و بنابراین پیام‌های چت با گذشت زمان ناپدید می‌شوند + گفتگوهای relay + رویدادها + آدرس‌های IP + نوع‌ها + کاربران + تنظیمات + تنظیمات رله + فهرست‌های outbox + رله ها + شارژ & ارسال zap + ارسال zap + شارژ %1$s sats به %2$s و zap کردن %3$s %4$s sats · کارمزد ≈ %5$s sats + بیرون کردن + برداشتن از علامت گذاشته های خصوصی + …اینجا پاسخ دهید + اعلان: + + درخواست حذف/string> + درخواست ناپدید شدن + بازنشانی وضعیت Marmot ناموفق بود: %1$s + بازنشانی وضعیت Marmot + وضعیت Marmot بازنشانی شد. + تلاش مجدد + لیست‌های تقویم + تقویم‌ها + شطرنج + کاوش + خانه + وارد کردن دنبال‌شوندگان + پیغام‌ها + پلی‌لیست‌ها + موسیقی + اعلان‌ها + قسمت‌ها + پادکست‌ها + زمان‌بندی پست + لغو زمان‌بندی + پست‌های زمان‌بندی‌شده ممکن است تا دفعه بعد که اپلیکیشن را باز کنید منتشر نشوند. پست‌های زمان‌بندی‌شده حساب‌های دیگر در حالی که این حساب فعال است اجرا نمی‌شوند. برای زمان‌بندی پس‌زمینه مطمئن، همیشه‌روشن را در تنظیمات → تنظیمات رابط کاربری فعال کنید. + پست‌های زمان‌بندی‌شده ممکن است تا دفعه بعد که اپلیکیشن را باز کنید منتشر نشوند. برای زمان‌بندی پس‌زمینه مطمئن، همیشه‌روشن را در تنظیمات → تنظیمات رابط کاربری فعال کنید. + پست‌های زمان‌بندی‌شده + همین الان ارسال کن + %1$s · در %2$s + %1$s · %2$s پیش + فردا + خطا: %1$s + شناسه یادداشت کپی شد + + خروج شد · %1$d پست زمان‌بندی‌شده حذف شد + خروج شد · %1$d پست زمان‌بندی‌شده حذف شد + + خروج شد + + شما %1$d پست زمان‌بندی‌شده دارید که هنوز منتشر نشده. خروج آن را به طور دائمی حذف خواهد کرد. + شما %1$d پست زمان‌بندی‌شده دارید که هنوز منتشر نشده‌اند. خروج آن‌ها را به طور دائمی حذف خواهد کرد. + + پست زمان‌بندی‌شده ناموفق بود + پست زمان‌بندی‌شده منتشر شد + + به %1$d relay + به %1$d relay + + لغو شد + ناموفق + زمان‌بندی‌شده + در حال ارسال… + ارسال شد + + · %1$d موعد در ۱ ساعت + · %1$d موعد در ۱ ساعت + + + %1$d در صف + %1$d در صف + + انتخاب های مناسب: \n%1$s + رله های جستجو + رله های جستجو + لیست رله هایی که هنگام جستجوی محتوا یا کاربران مورد استفاده قرار می گیرند. اگر انتخابی در موجود نباشد، تگ کردن یا جستجو کار نخواهد کرد. حتما مطمئن شوید این رله ها را NIP-50 پیاده‌سازی کرده باشند. + رویدادهای قابل جستجو + کلید خصوصی در کلیپبورد کپی شد + هنوز هیچ کاربری را مسدود نکرده‌اید. + فیلترهای ایمنی + کلمه پنهانی وجود ندارد. یک کلمه را در زیر اضافه کنید تا پست‌های حاوی آن پنهان شوند. + محتوای مسدود شده + تنظیمات فیلتر + هیچ حسابی در این جلسه به عنوان اسپم علامت‌گذاری نشده است. + ارسال + ارسال همه رویدادهای پروفایل دریافت شده (kind 0) به relay محلی شما + ارسال پروفایل‌ها به relay محلی + قابل هزینه‌کرد برای این دریافت‌کننده: %1$s sats + پرداخت ناموفق بود + تراکنش: %1$s + در حال پرداخت از طریق %1$s… + سرور پس از بارگذاری URL نداد + تنظیمات + هیچ موضوع بی‌صدا شده‌ای وجود ندارد + موضوعات بی‌صدا شده + اشتراک‌گذاری به عنوان تصویر + اشتراک‌گذاری به عنوان آدرس تصویر + آپلود HLS + اشتراک گذاری یا ذخیره‌سازی + ویدیوهای کوتاه + نمایش کد QR کلید خصوصی رمزنگاری شده + پیام‌های مستقیم و گروهی را در تب اعلان‌ها نمایش دهید. غیرفعال کنید تا پیام‌ها فقط در تب پیام‌ها باشند. + نمایش پیام‌ها + نمایش کد QR کلید خصوصی + درخواست امضا رد شد + مطمئن شوید که اپ امضا کننده این تراکنش را تایید کرده است + signer خارجی یک پاسخ عجیب برای درخواست بازگرداند. ممکن است باگی در Amethyst یا در signer وجود داشته باشد. + signer پیدا نشد + آیا اپلیکیشن signer حذف شده؟ بررسی کنید که signer نصب شده و این حساب را دارد. از اپلیکیشن signer خارج شوید و دوباره وارد شوید اگر signer تغییر کرده است. + %1$d ثانیه به عقب برگرد + %1$d ثانیه جلو برو + برنامه‌ها + اسپم + تعداد رویدادهای اسپم که از این رله می آید + اسپمر + دو تب اعلان نمایش می‌دهد — دنبال‌شده‌ها (افرادی که دنبال می‌کنید) و همه. نشانگر پیام‌خوانده‌نشده فقط برای فعالیت افرادی که دنبال می‌کنید روشن می‌شود. + تقسیم اعلان‌ها بر اساس دنبال‌شده‌ها + تلاش می‌کند متادیتای خصوصی را از فایل‌های رسانه‌ای پشتیبانی شده قبل از آپلود حذف کند + حذف متادیتای خصوصی + تمرینات تمام‌شده را از Health Connect (Samsung Health، Google Fit، Fitbit، Garmin…) می‌خواند و پیشنهاد اشتراک‌گذاری آن‌ها به‌عنوان پست می‌دهد. دسترسی فقط هنگام اتصال درخواست می‌شود. + پیشنهاد اشتراک‌گذاری تمرینات + سیستم + پوسته + پوسته مطابق سیستم، روشن، یا تاریک + این پیام در %1$s ناپدید می‌شود + + +%1$d\nپاسخ + +%1$d\nپاسخ + + امروز + سفارشی + خودت را بساز + پیش‌فرض + IP خود را از رله های غریبه پنهان کن + Orbot + حریم خصوصی کامل + IP خود را در تمام ارتباطات پنهان کن + داخلی + خاموش + تنظیمات پیش فرض حریم خصوصی/ تور + تغییر سریع تمام تنظیمات زیر + همه بجز رسانه + IP خود را از همه چیز بجز تصاویر و ویدئوها پنهان کن + رله های پیام خصوصی + تور را برای ارسال و دریافت پیام خصوصی الزامی کن + تصاویر + تور را برای بارگیری تصاویر الزامی کن + بارگذاری رسانه + تور را برای بارگذاری محتوا الزامی کن + عملیات پولی + تور را برای زپ، لایتنینگ و انتقال کَشو الزامی کن + رله های غیر معتمد + تور را برای رله های ارسال/دریافت الزامی کن + تایید آدرس ناستر + تور را برای تایید آدرس های NIP-05 الزامی کن + رله ها / آدرس های Onion + از تور برای هر آدرس اونیون استفاده کن + تصاویر نمایه + تور را برای بارگیری تصاویر نمایه اجباری کن + رله های معتمد + تور را برای تمام رله های لیست الزامی کن + پیش نمایش URL + تور را برای بارگیری پیش نمایش آدرس الزامی کن + ویدئوها + تور را برای بارگیری ویدئوها الزامی کن + مقدماتی + وقتی توسط سرور الزام شده از تور استفاده کن + فایل باز نشد + هیچ اپ تورنتی برای باز کردن و بارگیری فایل نصب نیست. + رویداد اطلاعات کافی برای ساخت لینک مگنت ندارد + هنگام ارسال رویدادها از پخش‌کننده ردیابی‌شده استفاده کنید. پیشرفت زنده و وضعیت هر relay را در حین پخش نشان می‌دهد. + پخش‌های ردیابی‌شده + ترجمه به + زبانی را که می‌خواهید محتوا به آن ترجمه شود انتخاب کنید. + ترجمه‌ها + relay های مورد اعتماد + relay هایی که به آن‌ها اعتماد دارید و نیازی به اتصال Tor ندارند + کامل + عملکرد + ساده + تنظیمات رابط کاربری + حالت رابط کاربر + قیافه پست را انتخاب کن + نمی توان صورتحساب لایتنینگ را پیش از زپ زدن ارسال کرد. کیف پول لایتنینگی گیرنده خطای روبرو را داد: %1$s + اشتراک‌گذاری تصویر ممکن نیست، لطفاً بعداً دوباره امتحان کنید… + اشتراک‌گذاری ویدئو ممکن نیست، لطفاً بعداً دوباره امتحان کنید… + رمزگشایی غیرمجاز + signer یک رمزگشایی که برای انجام این عملیات لازم است را مجاز ندانست. رمزگشایی‌های NIP-44 را در اپلیکیشن signer خود فعال کنید و دوباره امتحان کنید + دنبال نکردن + برداشتن سنجاق + برداشتن سنجاق از پروفایل + آپلود لغو شد + خطای آپلود + آپلود صوتی ناموفق بود: %1$s + آپلود پیام صوتی ناموفق بود + NIP-95 هنوز برای پیام‌های صوتی پشتیبانی نمی‌شود + %1$d%% زمان فعالیت + موتور فعال تور + استفاده از نسخه درونی یا Orbot + این کاربر آدرس لایتنینگ برای دریافت ساتوشی تنظیم نکرده است + کاربر %1$s آدرس لایتنینگ برای دریافت ساتوشی تنظیم نکرده است + تاریخچه ناپدید شدن + درخواست ناپدید شدن ارسال شد + کیفیت بهتر با حجم فایل کمتر، اما همه دستگاه‌ها از پخش H.265 پشتیبانی نمی‌کنند. + استفاده از کدک H.265/HEVC + بارگیری ویدئو آغاز شد… + دکمه‌های پخش‌کننده ویدیو + ویدئو در گالری گوشی ذخیره شد + پست صوتی + عمیق + بالا + خنثی + هیچ‌کدام + پاسخ صوتی + کیف پول + کیف پول Cashu (NIP-60) + اتصال کیف پول + ارائه دهنده اتصال کیف پول شما خطای روبرو را داد: %1$s + ویرایش mint ها + یک پیام هشدار نمایش می‌دهد وقتی پست‌ها یا پروفایل‌ها گزارش‌هایی از افرادی که دنبال می‌کنید دارند + هشدار درباره گزارش‌ها + افزودن نشانک وب + ویرایش نشانک وب + نشانک‌های وب + به چی فکر میکنی؟ + تمرینات + نوشتن یک پیام… + نوشتن به رله + مقدار بایتی که به این رله فرستاده شده، شامل فیلترها و رویدادها + زَپ + زپ + + تغییر نام + ذخیره diff --git a/commonsUI/src/commonMain/composeResources/values-fa/strings.xml b/commonsUI/src/commonMain/composeResources/values-fa/strings.xml index 5ede34fb9a..5275c75bf7 100644 --- a/commonsUI/src/commonMain/composeResources/values-fa/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-fa/strings.xml @@ -1821,4 +1821,1219 @@ منبع: سرورها: باز کردن + درباره & قانونی + تنظیمات حساب + افزودن + یک سرور Blossom بیافزایید + یک سرور NIP-96 بیافزایید + وقتی فعال باشد، Amethyst یک برچسب کلاینت NIP-89 به رویدادهایی که منتشر می‌کنید اضافه می‌کند. + افزودن برچسب کلاینت به رویدادهایم + هشدار محتوای حساس پیش از نمایش محتوا اضافه می کند + محتوای حساس + افزودن به علامت گذاشته های عمومی + از یک مدل هوش مصنوعی روی دستگاه برای پیشنهاد اصلاحات متن و تغییر لحن استفاده می‌کند. + پیشنهاد بهبود متن + اتصالات به relay های صندوق ورودی شما را برای اعلان‌های بلادرنگ فعال نگه می‌دارد + + متصل به %1$d relay صندوق ورودی + متصل به %1$d relay صندوق ورودی + + + متصل به %1$d relay + متصل به %1$d relay + + در حال اتصال به relay های صندوق ورودی… + اعلان‌های Amethyst فعال است + اعلان‌های تماس‌های صوتی و تصویری ورودی + تماس‌های ورودی + %1$s چالش شطرنج شما را پذیرفت + درباره رویدادهای بازی شطرنج اطلاع می‌دهد + شطرنج + به‌روزرسانی‌های شطرنج + %1$s حرکت کرد — نوبت شماست + وقتی پیام خصوصی دریافت شود اعلان می کند + پیام خصوصی + پیام‌های جدید + علامت‌گذاری خوانده‌شده + وقتی کسی شما را در پستی اشاره یا نقل‌قول می‌کند اطلاع می‌دهد + %1$s شما را اشاره کرد + اشاره‌ها + اشاره‌های جدید + وقتی کسی به پست شما واکنش نشان می‌دهد اطلاع می‌دهد + %1$s به پست شما واکنش نشان داد + برای %1$s + واکنش‌ها + واکنش‌های جدید + وقتی کسی به پست شما پاسخ می‌دهد اطلاع می‌دهد + پاسخ‌ها + پاسخ‌های جدید + پاسخ + اعلان‌ها هنگام انتشار یا عدم انتشار یک پست زمان‌بندی‌شده. + پست‌های زمان‌بندی‌شده + وقتی کسی زپ کند اعلام می کند + %1$s ساتوشی + برای %1$s + از %1$s + زپ دریافت شده + zap های جدید + تنظیمات برنامه + تأییدیه + درخواست تأییدیه + مهارت تأییدکننده + توصیه تأییدکننده + ویژوالایزر صدا + هنگام تایپ یا خروج از یک ناحیه نوشتن با متن ارسال‌نشده، به‌طور خودکار یک رویداد پیش‌نویس ذخیره می‌کند و آن را به relay‌های صندوق خروجی خصوصی شما ارسال می‌کند. + ایجاد خودکار پیش‌نویس + مرور ژرف + پنهان کردن نوار پیمایش هنگام مرور + پیش نمایش تصویر + بارگیری خودکار تصاویر و جیف ها + پخش ویدئو + پخش خودکار ویدئوها و جیف ها + تصویر نمایه + نمایش تصاویر نمایه + پیش نمایش URL + نشان دادن پیش نمایش URL + پخش خودکار ویدیو + پخش خودکار ویدیوها هنگامی که روی صفحه نمایش داده می‌شوند + حذف متادیتا از AVIF ممکن نیست: %1$s + اعطای نشان + بازگشت + بازیابی کلیدها + نشان‌ها + احراز هویت انجام نشد + مشخصات بیومتریک نتوانست مالک این تلفن را احراز هویت کند + مشخصات بیومتریک نتوانست مالک این تلفن را احراز هویت کند. خطا: %1$s + بلاک + relay‌های مسدود شده + Amethyst هرگز به این relay‌ها متصل نخواهد شد + کاربران بلاک شده + لیست نشانک جدید + متادیتای لیست نشانک + متادیتای فهرست‌های نشانک برای هر کسی در Nostr قابل مشاهده است. فقط اعضای خصوصی شما رمزگذاری می‌شوند. + علامت گذاشته ها + بازنشر + نوار ناوبری پایین + relay های پخش + relay هایی که در ارسال یادداشت‌های شما به سایر relay ها تخصص دارند، مانند sendit.nosflare.com. Amethyst این relay را به همه رویدادهای جدید ساخته شده توسط شما اضافه می‌کند + مرورگر + موردعلاقه‌ها + بارگذاری از طریق وب باز. برای استفاده از Tor ضربه بزنید. + بارگذاری از طریق Tor. برای استفاده از وب باز ضربه بزنید. + + %1$s، %2$d رویداد + %1$s، %2$d رویداد + + آپلود تصویر ناموفق بود + تصویر انتخاب شده آپلود نشد. دوباره امتحان کنید یا یک آدرس URL وارد کنید. + اشتراک‌گذاری رویداد تقویم + باز کردن در نقشه + باز کردن لینک + در حال وقوع + %1$s · پایان %2$s + + تا %1$d دقیقه دیگر شروع می‌شود + تا %1$d دقیقه دیگر شروع می‌شود + + هشدار هنگامی که رویدادی که در آن شرکت می‌کنید در شرف شروع است. + calendar_reminders + یادآوری‌های تقویم + رویداد تقویم + یک اعلان هنگامی که رویدادی که در آن شرکت می‌کنید در شرف شروع است ارسال می‌شود. + ارسال یادآوری‌ها + + %1$d دقیقه + %1$d دقیقه + + یادآوری‌های تقویم + روز + فید + ماه + هفته + پذیرفتن + Bluetooth + دوربین خاموش + دوربین روشن + گوشی + قطع تماس + تماس ورودی + تماس تصویری ورودی… + تماس صوتی ورودی… + بی‌صدا + تماس‌ها + اعلان تماس در جریان + Amethyst برای شروع تماس تصویری به دسترسی دوربین و میکروفون نیاز دارد. لطفاً آن‌ها را در تنظیمات برنامه فعال کنید. + Amethyst برای شروع تماس صوتی به دسترسی میکروفون نیاز دارد. لطفاً آن را در تنظیمات برنامه فعال کنید. + رد کردن + تنظیمات تماس + بلندگو + با صدا + تماس با %1$s + فراخوانی URL از پاسخ %1$s یافت نشد + لغو + توکن Cashu + در حال بررسی mint… + Cashu بازپرداخت نشد + Mint پیام خطای روبرو را داد: %1$s + دریافت‌شده + ارسال‌شده + Mint های مطابق + + +%1$d بیشتر + +%1$d بیشتر + + Mint های محبوب + + توصیه‌شده توسط %1$d نفر دیگر + توصیه‌شده توسط %1$d نفر دیگر + + %1$s sat به %2$s منتقل شد. + هیچ کیف پول Cashu سازگاری در سیستم یافت نشد + + %1$d فاکتور در انتظار + %1$d فاکتور در انتظار + + %1$s sat + تا %2$s sat کارمزد پرداخت شود؟ + یک درخواست حذف برای توصیه kind:38000 شما از %1$s منتشر کنید. relay هایی که NIP-09 را رعایت می‌کنند آن را حذف خواهند کرد. + %1$s sats در %2$s اثبات بازیابی شد. + Cashu دریافت شد + %1$s ساتوشی به کیف پول شما ارسال شد. (کارمزد: %2$s ساتوشی) + + وجوه نگهداری‌شده در %1$d mint که استفاده نمی‌کنید + وجوه نگهداری‌شده در %1$d mint که استفاده نمی‌کنید + + در انتظار پرداخت فاکتور… + + %1$d mint + %1$d mint + + توقف پخش + پخش روی دستگاه + استانداردهای ایمنی کودکان + لوازم جانبی + هنر + کتاب + پوشاک + یادگاری + دست سازه + الکترونیکی + تناسب اندام + خوراکی + مبلمان + خانه + گوناگون + اداره + سایر + حیوانات خانگی + ورزش + روزانه + ماهانه + یک‌بار + هفتگی + پرداخت %1$s از طریق %2$s؟ + پرداخت این صورتحساب از طریق %1$s؟ + سرویس بدهکاری پرداخت را تکمیل نکرد. + یک مقدار معتبر برای این پیشنهاد وارد کنید. + در حال درخواست صورتحساب… + بستن تمام واکنش ها به این پست + بسته + جوامع + پیش‌نویس %1$d بایت است؛ این انجمن این نوع را تا %2$d بایت محدود می‌کند. + پیش‌نویس %1$d بایت است؛ این انجمن رویدادها را تا %2$d بایت محدود می‌کند. + امروز %1$d رویداد از این نوع ارسال کرده‌اید (حد مجاز %2$d). + تنظیمات نوشتن + درگاه پیش فرض 9050 است + relay های متصل + لیست فعلی relay های در حال استفاده + درصد اتصال‌های موفق به relay + همیشه + هرگز + وای فای بی اندازه + افزودن مدارک + افزودن تصویر + افزودن رسانه + افزودن فیلم + پنهان + هشدار + نمایش + گفتگوها + GIF متحرک را به ویدیوی MP4 تبدیل می‌کند تا حجم فایل کمتر و سازگاری پخش بهتری داشته باشید. + تبدیل GIF به MP4 + (@note1)شناسه یادداشت در کلیپبورد کپی شد + یادداشت در کلیپبورد کپی شد + در کلیپ‌بورد کپی شد + @npubنویسنده در کلیپبورد کپی شد + کلید خصوصیم را کپی کن + کپی به کلیپ‌بورد + LNUrl از آدرس لایتنینگ "%1$s" بدست نیامد. تنظیمات کاربر را بررسی کنید. + فایل بارگیری شده پس از بارگذاری بررسی نشد: %1$s + فایل بارگذاری شده از سرور بارگیری نشد + صورتحساب از %1$s گرفته نشد: %2$s + فایل فشرده باز نشد + کیف پول یافت نشد + Amethyst هیچ برنامه کیف پولی که از Nostr Wallet Connect (NWC) پشتیبانی کند پیدا نکرد. +\n\nکارهایی که می‌توانید انجام دهید: +\n\t1. بررسی پشتیبانی NWC: مطمئن شوید که برنامه کیف پول مورد نظر شما با Nostr Wallet Connect سازگار است. +\n\t2. ایجاد اتصال: به برنامه کیف پول خود بروید و یک اتصال NWC جدید ایجاد کنید. +\n\t3. اتصال به Amethyst: کیف پول شما معمولاً سه گزینه ارائه می‌دهد: +\n\t\t3.1 اتصال خودکار: دکمه‌ای برای باز کردن و اتصال خودکار به Amethyst. اگر این گزینه وجود دارد، آن دکمه را بزنید، Amethyst را باز کنید و روی صفحه جدید ذخیره کنید. +\n\t\t3.2 اتصال دستی: یک URI اتصال که می‌توانید کپی کنید و با کلیک روی آیکون paste در این صفحه مستقیماً وارد کنید. +\n\t\t3.3 کد QR: کیف پول یک کد QR ایجاد می‌کند که می‌توانید با دکمه کد QR در این صفحه آن را بخوانید. + + ساختن + روز + منطقه خطر + تاریک + توصیف + عمومی کردن + گپ + جوامع + الگوریتم‌های فید + بسته‌های دنبال‌کردن + پخش زنده + بازار + خواندنی‌ها + رله های صندوق دریافت پیام خصوصی + پیام‌های خصوصی + ترجمه نکن از + زبان‌های نمایش داده شده اینجا ترجمه نخواهند شد. برای حذف یک زبان و ترجمه مجدد آن، روی آن ضربه بزنید. + ذخیره در گوشی + در حال دانلود ویدئو… + پیش نویس یادداشت + پیش‌نویس‌ + حساب های کاربری + ایجاد + فیدها + ناوبری + سیستم + شما + + %1$d روز + %1$d روز + + + %1$d ساعت + %1$d ساعت + + + %1$d دقیقه + %1$d دقیقه + + + %1$d ماه + %1$d ماه + + + %1$d هفته + %1$d هفته + + + %1$d سال + %1$d سال + + ویرایش تقویم + ویرایش رویداد تقویمی + ویرایش جامعه + ویرایش بسته ایموجی + ویرایش پلی‌لیست + ویرایش نوشته + ایموجی‌های خصوصی به صورت رمزنگاری‌شده روی relay‌ها ذخیره می‌شوند و فقط برای شما قابل مشاهده‌اند. درست مانند ایموجی‌های عمومی در منوی واکنش و تکمیل خودکار «:» نمایش داده می‌شوند. + ایموجی‌های عمومی برای همه قابل مشاهده‌اند و در منوی واکنش و انتخابگر «:» تکمیل خودکار ظاهر می‌شوند، البته اگر این بسته در فهرست ایموجی شما باشد. + ایموجی‌ها + فایل‌ها را قبل از آپلود برای حفظ حریم خصوصی رمزگذاری کنید. برخی سرورها ممکن است فایل‌های رمزگذاری شده را در حساب‌های رایگان قبول نکنند. + رمزگذاری فایل‌ها + گفتگوی ناپایدار + خطا + صورتحساب پرداخت نشد + برداشت نشد + باز کردن پرداخت ممکن نیست + زپ فرستاده نمی شود + خطا در بازکردن اپلیکیشن امضا کننده + اپ امضا کننده یافت نشد. بررسی کنید که اپ حذف نشده باشد. + خطا در تفسیر پیغام خطا + خطا در تفسیر JSON از %1$s. تنظیمات لایتنینگ کاربر را بررسی کنید + صورتحساب از سرور گیرنده دریافت نشد + باز کردن در مرورگر + پخش این ویدیو ممکن نیست + کدک یا فرمت روی این دستگاه پشتیبانی نمی‌شود (%1$s). سعی کنید آن را در مرورگر خود باز کنید. + خطاها + همگام‌سازی relay + رویدادهای شما + رویدادهای ارسال‌شده به شما + AMRAP + سرکیت + دوچرخه‌سواری + رژیم غذایی + EMOM + روزه‌داری + کوه‌نوردی + مدیتیشن + قایقرانی + دویدن + قدرتی + شنا + پیاده‌روی + یوگا + گسترش دادن + تاریخ انقضا + خروجی تنظیمات relay + حذف نشد: %1$s + کلید خصوصی شما رمزنگاری نشد + تصویر ذخیره نشد + ذخیره PDF ناموفق بود + ویدئو ذخیره نشد + بسیاری از سرورها فایل‌های رمزگذاری شده را در حساب‌های رایگان قبول نمی‌کنند. می‌توانید بدون رمزگذاری مجدداً امتحان کنید. + آپلود رمزگذاری شده ناموفق بود + خطای بارگیری: %1$s + رسانه بارگذاری نشد + بارگذاری نشد %1$s: %2$s + افزودن به موردعلاقه‌ها + از طریق وب باز بارگذاری می‌شود. + از طریق Tor بارگذاری می‌شود. + اخیر + حذف از موردعلاقه‌ها + آن برنامه هنوز بارگذاری نشده. لحظه‌ای دیگر دوباره امتحان کنید. + برنامه‌های موردعلاقه + الگوریتم‌های فید موردعلاقه + پرداختی انجام شد + در relay‌ها منتشر شد + یک فایل بارگذاری شد + فیدهای relay مورد علاقه + relay هایی که اغلب به آن‌ها می‌روید تا فید جهانی‌شان را ببینید + انجمن‌ها + الگوریتم‌های فید + فیدها + هشتگ‌ها + مجموعه‌های علاقه + لیست‌ها + مکان‌ها + relay‌ها + سرور فایل + یک سرور برای بارگذاری این فایل انتخاب کنید + پست‌هایی از غریبه‌ها که دقیقاً ۵ بار یا بیشتر تکرار شده‌اند را پنهان می‌کند + فیلتر اسپم + دنبال کردن + دنبال کردن متقابل + همه الگوریتم‌های فید موردعلاقه + اطراف من + گردآوری‌شده + همگانی + فهرست دنبال‌کردن پیش‌فرض + همه دنبال ها + همه دنبال‌شده‌های کاربر + مال من + لیست خموش + بسته دنبال‌کردن جدید + ویرایش بسته دنبال‌کردن + متادیتای بسته دنبال‌کردن برای همه در Nostr قابل مشاهده است و اغلب در بسیاری از وب‌سایت‌ها به عنوان کیت راه‌اندازی برای کاربران جدید منتشر می‌شود. + متادیتای بسته دنبال‌کردن + بسته‌های دنبال‌کردن + فهرست دنبال‌کردن جدید + ویرایش فهرست + سبک گالری نمایه + انتخاب سبک گالری + کلاسیک + مدرن + پست اختصاصی مکان + فقط دنبال کنندگان این مکان می توانند آن را ببینند. دنبال کنندگان معمولی شما آن را نمی بینند. + %1$s از هدف %2$s sat تأمین شده + ساعت + تصویر تغییر کرده است. ممکن است نویسنده تغییر را ندیده باشد. + این به چه معناست؟ + تصویر از زمان ارسال یکسان است + سلام %1$s، هنوز موجوده؟ + کلمات پنهان + وقتی جامعه یک سند قوانین NIP-9B منتشر می‌کند و یک رویداد آن را نقض کند، آن پست‌ها را از فیدهای جامعه حذف می‌کند. وقتی جامعه‌ای قوانین ساختاریافته ندارد تأثیری ندارد. + پنهان‌کردن پست‌هایی که قوانین جامعه را نقض می‌کنند + پنهان کردن گذرواژه + در حال آپلود %1$s (%2$d از %3$d) + همه چیز + درخواست بد - سرور نمی تواند یا نمی خواهد این درخواست را پردازش کند. + غیرمجاز - کاربر دارای مشخصات معتبر احراز هویت شده نیست + پرداخت الزامی - سرور برای تکمیل درخواست به پرداخت دارد. + ممنوع - کاربر مجاز به انجام این درخواست نیست. + یافت نشد - سرور نتوانست آدرس درخواست شده را بیابد. + این روش مجاز نیست - سرور روش درخواست را پیشتیبانی می کند ولی مرجع هدف را نه. + غیرقابل قبول - سرور نتوانست محتوایی مناسب درخواست بیابد. + احراز هویت الزامی پروکسی - کاربر اعتبارات احراز هویت معتبر ندارد + زمان درخواست سپری شد - زمان درخواست در انتظار شخصی دیگر تمام شد + تعارض - سرور نتوانست درخواست را انجام دهد چون در مرجع تعارض وجود دارد + نیست - محتوای درخواست شده برای همیشه از سرور پاک شده و بازیابی نخواهد شد + الزام طول - سرور درخواست را رد کرد چون نیاز به اندازه تعریف شده دارد + پیش شرط انجام نشد - پیش شرطی در سربرگ وجود دارد که سرور نمی تواند براورده کند + حجم زیادی - درخواست از محدودیت های تعریف شده سرور بزرگتر است و سرور آن را پردازش نمی کند + آدرس زیادی بلند - آدرس درخواست شده توسط کاربر زیادی برای پردازش سرور بلند است. + نوع رسانه پشتیبانی نشده - درخواست از نوعی رسانه استفاده می کند که توسط سرور پشتیبانی نمی شود + بازه براورده نشد - سرور نتوانست مقدار مورد نظر در سربرگ بازه را براورده کند. + انتظارات براورده نشد - سرور نتوانست انتظارات تعیین شده در سربرگ توقع درخواست را براورده کند + ارتقاء الزامی - سرور درخواست را با پروتکل فعلی پردازش نمی کند تا کلاینت پروتکل را ارتقاء دهد. + خطای سرور داخلی - سرور به خطایی غیرمنتظره برخورد و نمی تواند درخواست را کامل کند + انجام نشد - سرور نمی تواند درخواست را انجام دهد یا روش درخواست را تشخیص نمی دهد + درگاه غیرمجاز - سرور به عنوان یک درگاه پاسخی نامعتبر از هاست دریافت کرد + خدمت در دسترس نیست - این اغلب هنگامی که یک سرور بیش از حد شلوغ است یا برای تعمیرات تعطیل است پیش می آید + مهلت درگاه تمام شد - مهلت سرور در نقش یک درگاه یا پراکسی تمام شد، در انتظار پاسخ + نسخه HTTP پشتیبانی نمی شود - سرور ورژن HTTP درخواست را پشتیبانی نمی کند + Variant Also Negotiates - سرور یک مشکل پیکربندی داخلی دارد + فضای ذخیره ناکافی - سرور فضای کافی برای پردازش موفق درخواست ندارد + حلقه دیده شد - سرور یک حلقه بینهایت در پردازش این درخواست شناسایی کرد + احراز هویت الزامی - کلاینت برای دسترسی به شبکه می بایست احراز هویت شده باشد + رفتار ناهنجار + تصویر در گالری ذخیره شد + جعل هویت + relay های صندوق ورودی + مبلغ نادرست صورتحساب (%1$s ساتوشی)از %2$s. می بایست %3$s ساتوشی باشد. + relay های ایندکسر + relay هایی که در میزبانی متادیتا و لیست relay های همه تخصص دارند، مانند purplepag.es. Amethyst از این relay ها برای یافتن کاربرانی که در لیست‌های شما نیستند استفاده می‌کند. + مجموعه علایق جدید + تغییر نام + مجموعه‌های هشتگ + کلید نامعتبر + کلید نامعتبر: %1$s + آدرس نامعتبر + امتیست آدرسی برای باز کردن دریافت کرد ولی آدرس نامعتبر بود: %1$s + نقل قول از پیش نویس یادداشت ممکن نیست. + واکنش به پیش نویس یادداشت ممکن نیست. + پاسخ به پیش نویس یادداشت ممکن نیست. + زپ زدن به پیش نویس یادداشت ممکن نیست. + کلید الزامیست + relay های KeyPackage + relay هایی که KeyPackage های MLS شما در آن‌ها منتشر می‌شوند (MIP-00). سایر کاربران این KeyPackage ها را برای دعوت شما به گروه‌های چت Marmot واکشی می‌کنند. بین ۱ تا ۳ relay که رویدادهای KeyPackage را از شما قبول می‌کنند و امکان خواندن عمومی را دارند وارد کنید. + KeyPackages + مجموعه نشان‌های پذیرفته شده + مقدمه ماجرا + مطالعه ماجرا + صحنه ماجرا + پیشنهادات برنامه + قرار ملاقات + برنامه‌ها + RSVP قرار ملاقات + هدر صوتی + آهنگ صوتی + پادکست‌های تألیف شده + جوایز نشان + تعاریف نشان + داده Blob + سرآیندهای Blob + relay‌های مسدود شده + وبلاگ‌ها + احراز هویت Blossom + سرورهای Blossom + لیست نشانک + relay‌های پخش + تقویم + تعریف کانال + مخفی کردن پیام کانال + لیست کانال + پیام کانال + فراداده کانال + بی‌صدا کردن کاربر در کانال + احراز هویت شطرنج + چالش‌های شطرنج + پیشنهاد مساوی شطرنج + پذیرش بازی شطرنج + پایان بازی شطرنج + بازی‌های شطرنج + حرکت شطرنج + آگهی‌های طبقه‌بندی‌شده + نظرات + تعریف جامعه + فهرست جوامع + پست جامعه + کارت تماس + قرار ملاقات روزانه + حذف‌ها + فایل پیام خصوصی + پیام خصوصی + relay های پیام خصوصی + پیش‌نویس‌ها + درخواست محتوای DVM + پاسخ محتوای DVM + وضعیت DVM + درخواست کاربر DVM + پاسخ کاربر DVM + ویرایش‌ها + فهرست بسته‌های ایموجی + بسته‌های ایموجی + چت موقت + اتاق‌های چت موقت + پادکست‌های موردعلاقه + relay‌های موردعلاقه + سرآیندهای فایل + سرورهای فایل + فهرست دنبال‌شدگان + بسته‌های دنبال‌کردن + دنبال‌کردن‌های Geohash + GiftWraps + مشکل Git + وصله Git + پاسخ Git + مخزن Git + دنبال‌کردن‌های هشتگ + برجسته‌ها + احراز هویت HTTP + فهرست relay های فهرست‌ساز + چت‌های زنده + پخش‌های زنده + داده پزشکی + اتاق جلسه + فضای جلسه + پلی‌لیست موسیقی + آهنگ موسیقی + فهرست بی‌صداشدگان + نشانک‌های نام‌گذاری‌شده + سرورهای Nests + NIP + پیام‌های خصوصی NIP-04 + NNS + Nostr Connect + یادداشت‌ها + درخواست NWC + پاسخ NWC + لیست نشانک قدیمی + OTS + relay‌های خروجی + پرداخت به + فهرست‌های افراد + تصاویر + پین‌ها + قسمت پادکست + برنامه پادکست + نظرسنجی + پاسخ نظرسنجی + relay های خصوصی + Zap های خصوصی + پروفایل + نشان‌های پروفایل + گالری پروفایل + relay های پروکسی + پیام عمومی + واکنش‌ها + احراز هویت relay + کشف relay + اطلاعیه ناظر relay + مجموعه relay + گزارش‌ها + بازنشرها + بازنشرها (16) + حضور در اتاق + مهرها + relay های جستجو + Shorts + Shorts (Repl) + نظرات تورنت + تورنت‌ها + ارائه‌دهندگان مورد اعتماد + relay های مورد اعتماد + حذف کاربر + تنظیمات کاربر + وضعیت کاربر + ویدیو + ویدیو (Repl) + پیام صوتی + پاسخ صوتی + WakeUp + نشانک وب + Wiki + تمرینات ورزشی + اهداف Zap + نظرسنجی Zap + درخواست Zap + Zaps + شناس + تنظیمات نمایش زبان + برای هر جفت زبان ترجمه شده، انتخاب کنید کدام زبان اول نمایش داده شود. + آخرین بازدید %1$s پیش + همین الان بازدید شد + هرگز دیده نشده + آخرین بازدید در %1$s ‏(%2$s پیش) + ترک کردن + روشن + پخش زنده + رله های محلی + لیست رله هایی که در این دستگاه کار می کنند. + با کلید خصوصی وارد شوید تا بتوانید یادداشت را بازنشر کنید + با یک کلید خصوصی وارد شوید تا بتوانید دنبال کنید + دارید از کلید عمومی استفاده می کنید و با کلید عمومی فقط می توان خواند. با کلید خصوصی وارد شوید تا بتوانید کلمه یا جمله ای را پنهان کنید. + با کلید خصوصی وارد شوید تا بتوانید پاسخ دهید + با کلید خصوصی وارد شوید تا بتوانید زپ کنید + دارید از کلید عمومی استفاده می کنید و با کلید عمومی فقط می توان خواند. با کلید خصوصی وارد شوید تا بتوانید کلمه یا جمله ای را آشکار کنید + شما از یک کلید عمومی استفاده می‌کنید و کلیدهای عمومی فقط خواندنی هستند. برای امضا کردن رویدادها با یک کلید خصوصی وارد شوید + با یک کلید خصوصی وارد شوید تا بتوانید دنبال کردن را لغو کنید + شما از یک کلید عمومی استفاده می‌کنید و کلیدهای عمومی فقط خواندنی هستند. برای آپلود کردن با یک کلید خصوصی وارد شوید + با کلید خصوصی وارد شوید تا بتوانید یادداشت را لایک کنید + ویدیوها + دقیقه + بسته‌های ایموجی من + در حال افزودن %1$s… + دسترسی مدیریت اعطا شد + دسترسی مدیریت لغو شد + افزودن %1$s ناموفق بود: %2$s + ایجاد گروه ناموفق بود: %1$s + اعطای دسترسی مدیریت ناموفق بود: %1$s + خروج از گروه ناموفق بود: %1$s + حذف عضو ناموفق بود: %1$s + لغو دسترسی مدیریت ناموفق بود: %1$s + به‌روزرسانی ناموفق بود: %1$s + گروه MLS + اطلاعات گروه به‌روزرسانی شد + + %1$d عضو + %1$d عضو + + عضو حذف شد + + %1$d پیام + %1$d پیام + + عضو این گروه نیستید + خطای ناشناخته + رسانه افزوده شد + رسانه به گالری نمایه شما افزوده شد + بارگیری رسانه آغاز شد… + سرورهای رسانه + رسانه برای NIP-95 بسیار بزرگ است + ابتدا مقصد پیام را وارد کنید + آپلود ممکن نیست + موضوع + متادیتا حذف نشد + حذف متادیتای خصوصی از رسانه ناموفق بود. آپلود لغو شد. + نشانک‌ها با موفقیت منتقل شدند + تنظیمات لایتنینگ موجود نیست + انتخاب های بیشتر + انتقال به خصوصی + انتقال به عمومی + آپلود تصویر کاور + یک تصویر مربعی برای استفاده به عنوان آرت‌ورک این پلی‌لیست انتخاب کنید. + + +%1$d آهنگ دیگر + +%1$d آهنگ دیگر + + + %1$d آهنگ + %1$d آهنگ + + + %1$d آهنگ + %1$d آهنگ + + در حال آپلود کاور و انتشار. این فرآیند حتی اگر صفحه را ترک کنید ادامه خواهد داشت. + آپلود فایل صوتی + یک MP3، WAV، یا FLAC انتخاب کنید. هنگام ذخیره روی سرور رسانه‌ای شما آپلود خواهد شد. + آپلود تصویر کاور + یک تصویر مربعی برای استفاده به عنوان آرت‌ورک این آهنگ انتخاب کنید. + در حال آپلود کاور + صدا و انتشار. این فرآیند حتی اگر صفحه را ترک کنید ادامه خواهد داشت. + باصدا. برای بیصدا کردن کلیک کنید + بیصدا شده. برای لغو کلیک کنید + لیست‌های من + نام الزامی است + %1$dms + تنظیمات Namecoin + هویت + خواندن کلید عمومی شما + پیام‌رسانی + تبادل پیام با سایر nApplet ها + اقدامات صفحه‌کلید + اتصال میانبرهای صفحه‌کلید + اعلان‌ها + نمایش اعلان‌ها به شما + relay‌ها + خواندن، امضا و انتشار رویدادهای شما + شبکه + دریافت منابع وب و Blossom + ذخیره‌سازی + ذخیره‌سازی خصوصی اختصاصی + تم + تطبیق رنگ‌های برنامه شما + بارگذاری‌ها + بارگذاری فایل‌ها به سرور رسانه‌ای شما + پرداخت‌ها + پرداخت فاکتورهای Lightning + این nApplet می‌خواهد کلید عمومی شما را بخواند. + این nApplet می‌خواهد پروفایل و داده‌های حساب شما را بخواند. + این nApplet می‌خواهد به شما اعلان نشان دهد. + + این nApplet می‌خواهد یک فاکتور Lightning به مبلغ %1$d sat پرداخت کند. + این nApplet می‌خواهد یک فاکتور Lightning به مبلغ %1$d sat پرداخت کند. + + این nApplet می‌خواهد یک رویداد kind %1$d را به عنوان شما امضا و منتشر کند. + این nApplet می‌خواهد یک رویداد رمزگذاری شده را به عنوان شما ارسال کند. + این nApplet می‌خواهد یک رویداد kind %1$d را به عنوان شما امضا و منتشر کند: + این nApplet می‌خواهد رویدادها را از relay‌های شما بخواند. + این nApplet می‌خواهد یک منبع وب دریافت کند. + این سایت می‌خواهد یک رویداد kind %1$d را با کلید Nostr شما امضا کند. + این nApplet می‌خواهد از ذخیره‌سازی خصوصی خود استفاده کند. + این nApplet می‌خواهد یک فایل به سرور رسانه‌ای شما بارگذاری کند. + nApplet %1$s… + nApplets + ارسال پیام انجام نشد + ساکت کردن این سخنران + بازگرداندن این سخنران + ترک کردن + اتاق به عنوان بسته علامت‌گذاری نشد. در حال خروج — اتاق به صورت خودکار بسته خواهد شد. + + %1$d شنونده + %1$d شنونده + + پایین آوردن دست + قطع میکروفون + باصدا کردن میکروفون + بی‌صدا + ذخیره لیست سرور nest انجام نشد. دوباره امتحان کنید. + Nest — زنده + Nests + پخش صدا را هنگام باز بودن اتاق ادامه می‌دهد. + Nest متصل شد + توقف + ضربه بزنید تا بازگردید. + دنبال کردن + بی‌صدا + لغو دنبال کردن + باصدا + nest را ترک کرد + به عنوان مخاطب پیوست + به صحنه آمد + دست بلند کرد + در حال صحبت است + دست بلند کردن + باصدا + Nests + به عنوان یک رویداد قابل جایگزینی kind-10112 ذخیره می‌شود تا کلاینت‌های دیگر بتوانند ترجیح شما را بخوانند. + سرورهای شما + پیشنهادات داخلی که می‌توانید با یک ضربه به لیستتان اضافه کنید. + سرورهای پیشنهادی + سرورهای Nest + هرگز + نشان جدید + تقویم جدید + رویداد تقویمی جدید + جامعه جدید + مدیران + relay‌ها + کاربران مسدود شده + نظر جامعه (1111) + مقاله طولانی (30023) + پست تصویری (20) + متن کوتاه (1) + ویدیوی کوتاه (22) + پست ویدیویی (21) + نوع رویدادهای مجاز + حداکثر اندازه رویداد کلی (اختیاری) + قوانین قابل تأیید (اختیاری) + دروازه شبکه اعتماد (اختیاری) + بسته ایموجی جدید + هدف جدید + مقاله جدید + پلی‌لیست جدید + آهنگ موسیقی جدید + محصول جدید + در خواست جدید + رشته جدید + تمرین جدید + + %1$d فایل پیوست شده + %1$d فایل پیوست شده + + برنامه‌های Blossom یافت نشدند. لطفاً یک برنامه Blossom محلی نصب کنید تا این فایل را ببینید + باز کردن لینک‌های Blossom ممکن نیست + هیچ اپلیکیشن دوربینی در این دستگاه پیدا نشد + آدرس لایتنینگ تنظیم نشده است + هیچ اپلیکیشنی برای پردازش این پرداخت پیدا نشد. لطفاً یک کیف پول سازگار نصب کنید. + هیچ اپلیکیشنی برای پردازش پرداخت‌های %1$s نصب نشده. لطفاً یک کیف پول سازگار نصب کنید. + هیچ نوع واکنشی انتخاب نشده. نگه دارید تا تغییر دهید + هیچ واکنشی تنظیم نشده است + هیچ کیف پولی برای پرداخت صورتحساب لایتنینگ یافت نشد. لطفا یک کیف پول لایتنینگی برای استفاده از زپ نصب کنید + هیچ کیف پولی برای پرداخت صورتحساب لایتنینگ یافت نشد (خطا: %1$s). لطفا کیف پول لایتنینگی برای استفاده از زپ نصب کنید + مقداری برای زپ تعیین نشده. نگه دارید تا تغییر دهید + اعلان‌ها + دسته‌بندی‌ها + ارسال + نمایش درون‌برنامه‌ای + اکنون + هنر Nowhere + رهاسازی Nowhere + رویداد Nowhere + انجمن Nowhere + جمع‌آوری کمک مالی Nowhere + سایت Nowhere + پیام Nowhere + درخواست‌نامه Nowhere + فروشگاه Nowhere + nSites + برهنگی + نمی‌توان مرجع رویداد ساخت + هیچ کلید عمومی گیرنده‌ای در یادداشت وجود ندارد + Nutzap ها عمومی هستند و این یادداشت خصوصی را فاش می‌کنند. به جای آن از Lightning zap استفاده کنید. + Nutzap ناموفق بود + + ارسال %1$s sats، %2$d طرفه + ارسال %1$s sats، %2$d طرفه + + پشتوانه زنجیره بیتکوین پیکربندی نشده است + نمی‌توان تراکنش را منتشر کرد + نمی‌توان تراکنش را ساخت + نمی‌توان موجودی بیتکوین شما را بارگذاری کرد + پرداخت ارسال شد، اما رسید zap قابل انتشار نبود + + پرداخت ارسال شد (%1$d از %2$d رسید منتشر شد)، اما رسید بعدی قابل انتشار نبود + پرداخت ارسال شد (%1$d از %2$d رسید منتشر شد)، اما رسید بعدی قابل انتشار نبود + + سهم یک گیرنده زیر مقدار dust است + نمی‌توان تراکنش را امضا کرد + ~۱۰ دقیقه + ~۳۰ دقیقه + ~۱ ساعت + سریع + معمولی + آهسته + %1$s · %2$s sat/vB · %3$s + + تقسیم بین %1$d گیرنده + تقسیم بین %1$d گیرنده + + + %1$d گیرنده‌ای که فقط آدرس Lightning دارد نادیده گرفته می‌شود — on-chain به کلید عمومی Nostr برای استخراج آدرس نیاز دارد. + %1$d گیرنده‌ای که فقط آدرس Lightning دارند نادیده گرفته می‌شوند — on-chain به کلید عمومی Nostr برای استخراج آدرس نیاز دارد. + + + از تقسیم‌بندی %1$d طرفه این یادداشت استفاده کن + از تقسیم‌بندی %1$d طرفه این یادداشت استفاده کن + + انتشار + ساخت تراکنش + بارگذاری موجودی + انتشار رسید + امضا + فقط یک رای به ازای هر کاربر در این نوع نظرسنجی مجاز است + باز کردن تمام واکنش ها به این پست + باز + درگاه Orbot Socks + مرورگر Bitcoin ‏(OTS) + مدرکی وجود دارد که ثابت کند این پست پیش از %1$s امضا شده است. این مدرک در بلاکچین بیتکوین در آن تاریخ و زمان ثبت شده است. + اثبات مهر زمان + relay های صادره + رمز عبور لازم است + مکث + پرداخت + پیغام از طرف %1$s + آدرس‌های پرداخت + آدرس‌های پرداخت برای شبکه‌های مختلف اضافه کنید (مثلاً bitcoin، lightning، ethereum). + PDF در Downloads/Amethyst ذخیره شد + متادیتای لیست‌های دنبال‌کردن برای همه در Nostr قابل مشاهده است. فقط اعضای خصوصی شما رمزگذاری شده‌اند. + متادیتای لیست دنبال‌کردن + تصاویر + سنجاق به بالا + سنجاق کردن به پروفایل + پخش + + %1$d قسمت + %1$d قسمت + + سازندگان نظرسنجی نمی توانند در نظر سنجی خود رای دهند. + (0–100)% + این نظرسنجی برای رای جدید بسته شده است + چندانتخابی + گزینه ها %1$s + تک‌انتخابی + نمی توان رای داد + نظرسنجی‌ها + ارسال + + این پست بیش از %1$d هشتگ دارد + این پست بیش از %1$d هشتگ دارد + + %1$s پیش نمایش تصویر کارت برای + گزینه های حریم خصوصی + سیاست حریم خصوصی + <پیام خصوصی رمزگشایی نشد>\\n\nدر یک پیام خصوصی/رمزنگاری شده بین %1$s و %2$s نام شما آمده بود. + رله های صندوق دریافت پیام خصوصی + بین ۱-۳ رله به عنوان رله صندوق ورودی خصوصی وارد کنید. دیگران از این رله ها برای ارسال پیام خصوصی به شما استفاده خواهند کرد. رله های صندوق دریافت پیام خصوصی می بایست هر پیامی از هر کسی را بپذیرند، اما فقط بگذارند شما آن ها را بارگیری کنید. انتخاب های خوب شامل: + - inbox.nostr.wine (پولی) +- auth.nostr1.com (رایگان) +- you.nostr1.com (رله پولی یا شخصی) + کاربر DM ها را روی این relay ها دریافت می‌کند + پیام خصوصی + خصوصی کردن: یادداشت را به صورت gift-wrap فقط برای کاربران مطلع‌شده ارسال کن + پاسخ‌ها به یادداشت خصوصی همیشه خصوصی می‌مانند + قابل مشاهده برای + رله های خصوصی خانه + بین ۱-۳ رله وارد کنید برای ذخیره رویدادهایی که هیچ کس دیگر نمی بیند ، به عنوان مثال پیش نویس های شما و یا تنظیمات اپلیکیشن. در حالت ایده آل، این رله ها یا محلی هستند یا پیش از بارگیری محتوای کاربر به احراز هویت نیاز دارند. + ناسزا / نفرت پراکنی + پروفایل + نشان‌های پروفایل + پیشنهادات برنامه + نشان‌های پروفایل + فید دنبال‌کنندگان + فید دریافت Zap + رابط کاربری پروفایل + پروفایل‌ها + پیشنهاد ویرایش + relay های پراکسی + relay های تجمیع‌کننده که برنامه باید برای دانلود فیدهای شما از آن‌ها استفاده کند، مانند filter.nostr.wine. این جایگزین مدل outbox می‌شود و باعث می‌شود برنامه فقط به relay های موجود در لیست‌هایتان متصل شود. + گفتگوی عمومی + چت‌های عمومی برای همه در Nostr قابل مشاهده هستند و هر کسی می‌تواند در آن‌ها شرکت کند. آن‌ها برای جوامع باز حول موضوعات خاص عالی هستند. مدیریت می‌تواند با حذف پست‌ها در relay های مربوطه کنترل شود + بین ۱ تا ۳ relay که این گروه را میزبانی می‌کنند وارد کنید. کلاینت‌های Nostr از این تنظیم برای دانلود پیام‌ها و ارسال پیام‌های شما استفاده می‌کنند. + Relay ها + متادیتای چت عمومی + گفتگوهای عمومی + رله های خانه/ صندوق خروجی عمومی + این نوع از رله تمام محتوای شما را ذخریه می کند. امتیست پست های شما را اینجا می فرستد و دیگران از این رله ها برای یافتن محتوای شما استفاده می کنند. بین ۱-۳ رله وارد کنید. این رله ها ممکن است رله های شخصی، پولی، یا عمومی باشند. + کاربر محتوای خود را به این relay ها ارسال می‌کند + پیام عمومی + رله های صندوق دریافت عمومی + این نوع رله تمام پاسخ ها، نظرات، پسندها، و زپ های یادداشت های شما را دریافت می کند. این ها می توانند رله های پولی یا رایگان باشند. محدودیتی که گرداننده رله تعیین می کند ممکن است اعلان هایی را که دریافت می کنید محدود کند. این می تواند اثر خوب یا بد داشته باشد. مثلا اگر تحت حمله کامنت اسپم باشید، رله پولی می تواند این اسپم را فیلتر کند. بین ۱-۳ رله وارد کنید. + کاربر اعلان‌ها را روی این relay ها دریافت می‌کند + شناسه یادداشت + حذف + بی‌صدا کردن رشته + اشتراک گذاری + اشتراک گذاری لینک مرورگر + فعال کردن رشته + واکنش + واکنش‌ها + ردیف واکنش + خواندن از رله + مقدار بایتی که از این رله فرستاده شده، شامل فیلترها و رویدادها + کاربر با امکان خواندن فقط + برای ضبط پیام کلیک کنید و نگه دارید + گفتگوی relay + گفتگوهای relay گروه‌های چت هستند که توسط relay خانگی خود کنترل می‌شوند. + آن‌ها برای همه در Nostr قابل مشاهده هستند و هر کسی می‌تواند در آن‌ها شرکت کند. + آن‌ها برای جوامع باز حول موضوعات خاص عالی هستند. برخی از این گروه‌ها ناپایدار + هستند و بنابراین پیام‌های چت با گذشت زمان ناپدید می‌شوند + گفتگوهای relay + رویدادها + آدرس‌های IP + نوع‌ها + کاربران + تنظیمات + تنظیمات رله + فهرست‌های outbox + رله ها + شارژ & ارسال zap + ارسال zap + شارژ %1$s sats به %2$s و zap کردن %3$s %4$s sats · کارمزد ≈ %5$s sats + بیرون کردن + برداشتن از علامت گذاشته های خصوصی + …اینجا پاسخ دهید + اعلان: + + درخواست حذف/string> + درخواست ناپدید شدن + بازنشانی وضعیت Marmot ناموفق بود: %1$s + بازنشانی وضعیت Marmot + وضعیت Marmot بازنشانی شد. + تلاش مجدد + لیست‌های تقویم + تقویم‌ها + شطرنج + کاوش + خانه + وارد کردن دنبال‌شوندگان + پیغام‌ها + پلی‌لیست‌ها + موسیقی + اعلان‌ها + قسمت‌ها + پادکست‌ها + زمان‌بندی پست + لغو زمان‌بندی + پست‌های زمان‌بندی‌شده ممکن است تا دفعه بعد که اپلیکیشن را باز کنید منتشر نشوند. پست‌های زمان‌بندی‌شده حساب‌های دیگر در حالی که این حساب فعال است اجرا نمی‌شوند. برای زمان‌بندی پس‌زمینه مطمئن، همیشه‌روشن را در تنظیمات → تنظیمات رابط کاربری فعال کنید. + پست‌های زمان‌بندی‌شده ممکن است تا دفعه بعد که اپلیکیشن را باز کنید منتشر نشوند. برای زمان‌بندی پس‌زمینه مطمئن، همیشه‌روشن را در تنظیمات → تنظیمات رابط کاربری فعال کنید. + پست‌های زمان‌بندی‌شده + همین الان ارسال کن + %1$s · در %2$s + %1$s · %2$s پیش + فردا + خطا: %1$s + شناسه یادداشت کپی شد + + خروج شد · %1$d پست زمان‌بندی‌شده حذف شد + خروج شد · %1$d پست زمان‌بندی‌شده حذف شد + + خروج شد + + شما %1$d پست زمان‌بندی‌شده دارید که هنوز منتشر نشده. خروج آن را به طور دائمی حذف خواهد کرد. + شما %1$d پست زمان‌بندی‌شده دارید که هنوز منتشر نشده‌اند. خروج آن‌ها را به طور دائمی حذف خواهد کرد. + + پست زمان‌بندی‌شده ناموفق بود + پست زمان‌بندی‌شده منتشر شد + + به %1$d relay + به %1$d relay + + لغو شد + ناموفق + زمان‌بندی‌شده + در حال ارسال… + ارسال شد + + · %1$d موعد در ۱ ساعت + · %1$d موعد در ۱ ساعت + + + %1$d در صف + %1$d در صف + + انتخاب های مناسب: \n%1$s + رله های جستجو + رله های جستجو + لیست رله هایی که هنگام جستجوی محتوا یا کاربران مورد استفاده قرار می گیرند. اگر انتخابی در موجود نباشد، تگ کردن یا جستجو کار نخواهد کرد. حتما مطمئن شوید این رله ها را NIP-50 پیاده‌سازی کرده باشند. + رویدادهای قابل جستجو + کلید خصوصی در کلیپبورد کپی شد + هنوز هیچ کاربری را مسدود نکرده‌اید. + فیلترهای ایمنی + کلمه پنهانی وجود ندارد. یک کلمه را در زیر اضافه کنید تا پست‌های حاوی آن پنهان شوند. + محتوای مسدود شده + تنظیمات فیلتر + هیچ حسابی در این جلسه به عنوان اسپم علامت‌گذاری نشده است. + ارسال + ارسال همه رویدادهای پروفایل دریافت شده (kind 0) به relay محلی شما + ارسال پروفایل‌ها به relay محلی + قابل هزینه‌کرد برای این دریافت‌کننده: %1$s sats + پرداخت ناموفق بود + تراکنش: %1$s + در حال پرداخت از طریق %1$s… + سرور پس از بارگذاری URL نداد + تنظیمات + هیچ موضوع بی‌صدا شده‌ای وجود ندارد + موضوعات بی‌صدا شده + اشتراک‌گذاری به عنوان تصویر + اشتراک‌گذاری به عنوان آدرس تصویر + آپلود HLS + اشتراک گذاری یا ذخیره‌سازی + ویدیوهای کوتاه + نمایش کد QR کلید خصوصی رمزنگاری شده + پیام‌های مستقیم و گروهی را در تب اعلان‌ها نمایش دهید. غیرفعال کنید تا پیام‌ها فقط در تب پیام‌ها باشند. + نمایش پیام‌ها + نمایش کد QR کلید خصوصی + درخواست امضا رد شد + مطمئن شوید که اپ امضا کننده این تراکنش را تایید کرده است + signer خارجی یک پاسخ عجیب برای درخواست بازگرداند. ممکن است باگی در Amethyst یا در signer وجود داشته باشد. + signer پیدا نشد + آیا اپلیکیشن signer حذف شده؟ بررسی کنید که signer نصب شده و این حساب را دارد. از اپلیکیشن signer خارج شوید و دوباره وارد شوید اگر signer تغییر کرده است. + %1$d ثانیه به عقب برگرد + %1$d ثانیه جلو برو + برنامه‌ها + اسپم + تعداد رویدادهای اسپم که از این رله می آید + اسپمر + دو تب اعلان نمایش می‌دهد — دنبال‌شده‌ها (افرادی که دنبال می‌کنید) و همه. نشانگر پیام‌خوانده‌نشده فقط برای فعالیت افرادی که دنبال می‌کنید روشن می‌شود. + تقسیم اعلان‌ها بر اساس دنبال‌شده‌ها + تلاش می‌کند متادیتای خصوصی را از فایل‌های رسانه‌ای پشتیبانی شده قبل از آپلود حذف کند + حذف متادیتای خصوصی + تمرینات تمام‌شده را از Health Connect (Samsung Health، Google Fit، Fitbit، Garmin…) می‌خواند و پیشنهاد اشتراک‌گذاری آن‌ها به‌عنوان پست می‌دهد. دسترسی فقط هنگام اتصال درخواست می‌شود. + پیشنهاد اشتراک‌گذاری تمرینات + سیستم + پوسته + پوسته مطابق سیستم، روشن، یا تاریک + این پیام در %1$s ناپدید می‌شود + + +%1$d\nپاسخ + +%1$d\nپاسخ + + امروز + سفارشی + خودت را بساز + پیش‌فرض + IP خود را از رله های غریبه پنهان کن + Orbot + حریم خصوصی کامل + IP خود را در تمام ارتباطات پنهان کن + داخلی + خاموش + تنظیمات پیش فرض حریم خصوصی/ تور + تغییر سریع تمام تنظیمات زیر + همه بجز رسانه + IP خود را از همه چیز بجز تصاویر و ویدئوها پنهان کن + رله های پیام خصوصی + تور را برای ارسال و دریافت پیام خصوصی الزامی کن + تصاویر + تور را برای بارگیری تصاویر الزامی کن + بارگذاری رسانه + تور را برای بارگذاری محتوا الزامی کن + عملیات پولی + تور را برای زپ، لایتنینگ و انتقال کَشو الزامی کن + رله های غیر معتمد + تور را برای رله های ارسال/دریافت الزامی کن + تایید آدرس ناستر + تور را برای تایید آدرس های NIP-05 الزامی کن + رله ها / آدرس های Onion + از تور برای هر آدرس اونیون استفاده کن + تصاویر نمایه + تور را برای بارگیری تصاویر نمایه اجباری کن + رله های معتمد + تور را برای تمام رله های لیست الزامی کن + پیش نمایش URL + تور را برای بارگیری پیش نمایش آدرس الزامی کن + ویدئوها + تور را برای بارگیری ویدئوها الزامی کن + مقدماتی + وقتی توسط سرور الزام شده از تور استفاده کن + فایل باز نشد + هیچ اپ تورنتی برای باز کردن و بارگیری فایل نصب نیست. + رویداد اطلاعات کافی برای ساخت لینک مگنت ندارد + هنگام ارسال رویدادها از پخش‌کننده ردیابی‌شده استفاده کنید. پیشرفت زنده و وضعیت هر relay را در حین پخش نشان می‌دهد. + پخش‌های ردیابی‌شده + ترجمه به + زبانی را که می‌خواهید محتوا به آن ترجمه شود انتخاب کنید. + ترجمه‌ها + relay های مورد اعتماد + relay هایی که به آن‌ها اعتماد دارید و نیازی به اتصال Tor ندارند + کامل + عملکرد + ساده + تنظیمات رابط کاربری + حالت رابط کاربر + قیافه پست را انتخاب کن + نمی توان صورتحساب لایتنینگ را پیش از زپ زدن ارسال کرد. کیف پول لایتنینگی گیرنده خطای روبرو را داد: %1$s + اشتراک‌گذاری تصویر ممکن نیست، لطفاً بعداً دوباره امتحان کنید… + اشتراک‌گذاری ویدئو ممکن نیست، لطفاً بعداً دوباره امتحان کنید… + رمزگشایی غیرمجاز + signer یک رمزگشایی که برای انجام این عملیات لازم است را مجاز ندانست. رمزگشایی‌های NIP-44 را در اپلیکیشن signer خود فعال کنید و دوباره امتحان کنید + دنبال نکردن + برداشتن سنجاق + برداشتن سنجاق از پروفایل + آپلود لغو شد + خطای آپلود + آپلود صوتی ناموفق بود: %1$s + آپلود پیام صوتی ناموفق بود + NIP-95 هنوز برای پیام‌های صوتی پشتیبانی نمی‌شود + %1$d%% زمان فعالیت + موتور فعال تور + استفاده از نسخه درونی یا Orbot + این کاربر آدرس لایتنینگ برای دریافت ساتوشی تنظیم نکرده است + کاربر %1$s آدرس لایتنینگ برای دریافت ساتوشی تنظیم نکرده است + تاریخچه ناپدید شدن + درخواست ناپدید شدن ارسال شد + کیفیت بهتر با حجم فایل کمتر، اما همه دستگاه‌ها از پخش H.265 پشتیبانی نمی‌کنند. + استفاده از کدک H.265/HEVC + بارگیری ویدئو آغاز شد… + دکمه‌های پخش‌کننده ویدیو + ویدئو در گالری گوشی ذخیره شد + پست صوتی + عمیق + بالا + خنثی + هیچ‌کدام + پاسخ صوتی + کیف پول + کیف پول Cashu (NIP-60) + اتصال کیف پول + ارائه دهنده اتصال کیف پول شما خطای روبرو را داد: %1$s + ویرایش mint ها + یک پیام هشدار نمایش می‌دهد وقتی پست‌ها یا پروفایل‌ها گزارش‌هایی از افرادی که دنبال می‌کنید دارند + هشدار درباره گزارش‌ها + افزودن نشانک وب + ویرایش نشانک وب + نشانک‌های وب + به چی فکر میکنی؟ + تمرینات + یک پیام بنویسید… + نوشتن به رله + مقدار بایتی که به این رله فرستاده شده، شامل فیلترها و رویدادها + زَپ + زپ + + تغییر نام + ذخیره diff --git a/commonsUI/src/commonMain/composeResources/values-fi-rFI/strings.xml b/commonsUI/src/commonMain/composeResources/values-fi-rFI/strings.xml index 40a59380d9..10292ff090 100644 --- a/commonsUI/src/commonMain/composeResources/values-fi-rFI/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-fi-rFI/strings.xml @@ -1786,4 +1786,1174 @@ Explorer API -perus-URL Maksa lasku DVM:ltä Maksa %1$s sats DVM:lle + Tietoja & oikeudelliset + Tiliasetukset + Lisää + Lisää Blossom-palvelin + Lisää NIP-96-palvelin + Kun käytössä, Amethyst lisää NIP-89-asiakastunnisteen julkaisemiisi tapahtumiin. + Lisää asiakastunniste tapahtumiin + Lisää herkän sisällön varoitus ennen tämän sisällön näyttämistä + Herkkä sisältö + Lisää julkisiin kirjanmerkkeihin + Käyttää laitteen tekoälymallia ehdottamaan tekstikorjauksia ja sävymuutoksia. + Ehdota tekstiparannuksia + Pitää yhteydet inbox-relayihisi aktiivisina reaaliaikaisia ilmoituksia varten + + Yhdistetty %1$d inbox-relayhin + Yhdistetty %1$d inbox-relayhin + + + Yhdistetty %1$d relayhin + Yhdistetty %1$d relayhin + + Yhdistetään inbox-relayihin… + Amethyst-ilmoitukset aktiiviset + Ilmoitukset saapuvista ääni- ja videopuheluista + Saapuvat puhelut + %1$s hyväksyi shakkihaasteesi + Ilmoittaa shakkilapelitapahtumista + Shakki + Shakkipäivitykset + %1$s siirsi — sinun vuorosi + Ilmoittaa sinulle, kun yksityinen viesti saapuu + Yksityisviestit + Uusia viestejä + Merkitse luetuksi + Ilmoittaa kun joku mainitsee tai siteeraa sinua julkaisussa + %1$s mainitsi sinut + Maininnat + Uusia mainintoja + Ilmoittaa kun joku reagoi julkaisuusi + %1$s reagoi julkaisuusi + kohteelle %1$s + Reaktiot + Uusia reaktioita + Ilmoittaa kun joku vastaa julkaisuusi + Vastaukset + Uusia vastauksia + Vastaa + Ilmoitukset, kun ajastettu julkaisu lähetetään tai epäonnistuu. + Ajastetut julkaisut + Ilmoittaa sinulle, kun joku zappaa sinua + saaja: %1$s + Lähettäjä: %1$s + Saapuneet Zapit + Uusia zappeja + Sovelluksen asetukset + Todistus + Todistuspyyntö + Todistajan osaaminen + Todistajan suositus + Äänivisualisoija + Tallentaa luonnoksen automaattisesti, kun kirjoitat tai poistut kirjoitusnäkymästä lähettämättömällä tekstillä, ja lähettää sen yksityisiin lähteviin relayihisi. + Luo luonnokset automaattisesti + Immersiivinen vieritys + Piilota navigointipalkit vieritettäessä + Kuvan esikatselu + Lataa kuvat ja GIF-animaatiot automaattisesti + Videon toisto + Toista videot ja GIF-animaatiot automaattisesti + Profiilikuva + Näytä profiilikuvat + URL-esikatselu + Näytä URL-esikatselut + Toista videot automaattisesti + Toista videot automaattisesti, kun ne näkyvät ruudulla + Metatietoja ei voi poistaa AVIF-tiedostosta: %1$s + Myönnä merkki + Takaisin + Varmuuskopioi Avaimet + Merkit + Tunnistautuminen epäonnistui + Biometriikka ei pystynyt tunnistamaan tämän puhelimen omistajaa + Biometriikka ei pystynyt tunnistamaan tämän puhelimen omistajaa. Virhe: %1$s + Estä + Estetyt relait + Amethyst ei koskaan yhdistä näihin relaihin + Estetyt käyttäjät + Uusi kirjanmerkkilistat + Kirjanmerkkilistaston metatiedot + Kirjanmerkkilistaston metatiedot ovat kaikkien Nostr-käyttäjien nähtävissä. Vain yksityiset jäsenesi on salattu. + Kirjanmerkit + Tehosta + Alapalkin navigointi + Lähetysrelait + Relait, jotka erikoistuvat muistiinpanojesi välittämiseen kaikille muille relaiden, kuten sendit.nosflare.com. Amethyst lisää tämän relayn kaikkiin tekemiisi uusiin tapahtumiin + Selain + Suosikit + Ladataan avoimen verkon kautta. Napauta käyttääksesi Toria. + Ladataan Torin kautta. Napauta käyttääksesi avointa verkkoa. + + %1$s, %2$d tapahtuma + %1$s, %2$d tapahtumaa + + Kuvan lataus epäonnistui + Valittua kuvaa ei voitu ladata palvelimelle. Yritä uudelleen tai liitä URL-osoite. + Jaa kalenteritapahtuma + Avaa kartalla + Avaa linkki + Käynnissä nyt + %1$s · päättyy %2$s + + Alkaa %1$d minuutin kuluttua + Alkaa %1$d minuutin kuluttua + + Ilmoitus, kun tapahtuma jossa olet mukana alkaa pian. + Kalenterimuistutukset + Kalenteritapahtuma + Ilmoitus lähetetään, kun osallistumasi tapahtuma alkaa pian. + Lähetä muistutuksia + Kalenterimuistutukset + Päivä + Syöte + Kuukausi + Viikko + Hyväksy + Kamera pois + Kamera päällä + Kuuloke + Lopeta puhelu + Saapuva puhelu + Saapuva videopuhelu… + Saapuva äänipuhelu… + Mykistä + Puhelut + Käynnissä olevan puhelun ilmoitus + Amethyst tarvitsee kameran ja mikrofonin käyttöoikeuden videopuhelun aloittamiseksi. Ota ne käyttöön sovelluksen asetuksissa. + Amethyst tarvitsee mikrofonin käyttöoikeuden äänipuhelun aloittamiseksi. Ota se käyttöön sovelluksen asetuksissa. + Hylkää + Puheluasetukset + Kaiutin + Poista mykistys + Puhelu: %1$s + Takaisinkutsun URL:ää ei löydy kohteen %1$s vastauksesta + Peruuta + Cashu-tunnus + Tarkistetaan minttiä… + Cashu epäonnistui lunastuksessa + Paja (mint) antoi seuraavan virheilmoituksen: %1$s + Vastaanotettu + Lähetetty + Vastaavat mintit + + +%1$d lisää + +%1$d lisää + + Suositut mintit + + %1$d muu suosittelee + %1$d muuta suosittelee + + Siirretty %1$s sat kohteeseen %2$s. + Yhteensopivaa Cashu-lompakkoa ei löytynyt järjestelmästä + + %1$d odottava lasku + %1$d odottavaa laskua + + Maksetaanko %1$s sat + enintään %2$s sat maksuina? + Julkaise poistopyyntö kind:38000-suosituksellesi kohteesta %1$s. Relat, jotka noudattavat NIP-09:ää, poistavat sen. + Palautettiin %1$s sats %2$s todisteen verran. + Cashu vastaanotettu + %1$s sats lähetettiin lompakkoosi. (Maksut: %2$s sats) + + Varoja %1$d mintissä, jota et käytä + Varoja %1$d mintissä, joita et käytä + + Odotetaan laskun maksamista… + Lopeta suoratoisto + Suoratoista laitteeseen + Lasten turvallisuusstandardit + Asusteet + Taide + Kirjat + Vaatetus + Keräilyesineet + Käsityöt + Elektroniikka + Kuntoilu + Ruoka + Huonekalut + Koti + Sekalaiset + Toimisto + Muu + Lemmikit + Urheilu + Päivittäinen + Kuukausittainen + Kertaluonteinen + Viikoittainen + Maksetaanko %1$s kohteella %2$s? + Maksetaanko tämä lasku kohteella %1$s? + Veloituspalvelu ei suorittanut maksua loppuun. + Anna kelvollinen summa tälle tarjoukselle. + Pyydetään laskua… + Sulje kaikki reaktiot tähän julkaisuun + Suljetut + Yhteisöt + Luonnos on %1$d tavua; tämä yhteisö rajoittaa tämän tyypin %2$d tavuun. + Luonnos on %1$d tavua; tämä yhteisö rajoittaa tapahtumat %2$d tavuun. + Olet jo julkaissut %1$d tämän tyypin tapahtumaa tänään (raja %2$d). + Kirjoitusasetukset + Oletusportti on 9050 + Yhdistetyt relayit + Tällä hetkellä käytössä olevien relayiden lista + Prosenttiosuus onnistuneista yhteyksistä relay-palvelimelle + Aina + Ei koskaan + Ei-mitattu WiFi + Lisää dokumentti + Lisää kuva + Lisää mediaa + Lisää video + Piilota + Varoita + Näytä + Keskustelut + Muuntaa animoidun GIF:n MP4-videoksi pienemmän tiedostokoon ja paremman toistettavuuden saavuttamiseksi. + Muunna GIF MP4:ksi + Viestin tunniste (@note1) kopioitu leikepöydälle + Viestin teksti kopioitu leikepöydälle + Kopioitu leikepöydälle + Käyttäjän @npub kopioitu leikepöydälle + Kopioi salainen avain + Kopioi leikepöydälle + Ei voitu koota LNUrlia Lightning-osoitteesta "%1$s". Tarkista käyttäjän asetukset + Ladatun tiedoston tarkistus epäonnistui latauksen jälkeen: %1$s + Mediaa ei voitu ladata palvelimelta + Laskun hakeminen epäonnistui kohteesta %1$s: %2$s + Pakattua tiedostoa ei voitu avata + Lompakkoa ei löydy + Amethyst ei löytänyt yhtään lompakkosovellusta, joka tukee Nostr Wallet Connect (NWC) -toimintoa. +\n\nMitä voit tehdä: +\n\t1. Tarkista NWC-tuki: Varmista, että haluamasi lompakkosovellus on yhteensopiva Nostr Wallet Connectin kanssa. +\n\t2. Luo yhteys: Siirry lompakkosovellukseesi ja luo uusi NWC-yhteys. +\n\t3. Linkitä Amethystiin: Lompakkosi tarjoaa yleensä kolme vaihtoehtoa: +\n\t\t3.1 Automaattinen linkitys: Painike, joka avaa Amethystin ja yhdistää automaattisesti. Jos näet sen, paina painiketta, avaa Amethyst ja tallenna uudella näytöllä. +\n\t\t3.2 Manuaalinen linkitys: YhteysURI, jonka voit kopioida ja liittää tämän näytön liitä-kuvakkeella. +\n\t\t3.3 QR-koodi: Lompakko luo QR-koodin, jonka voit lukea tämän näytön QR-koodipainikkeella. + + Luo + pv + Vaara-alue + Tumma + Kuvaus + Tee julkiseksi + Keskustelut + Yhteisöt + Syötealgoritmit + Seuraajapaketit + Livestreemit + Markkinapaikka + Luettavaa + DM-saapuneiden relayit + DM:t + Älä käännä kielestä + Täällä näkyviä kieliä ei käännetä. Valitse kieli poistaaksesi se tästä ja kääntääksesi sen jälleen. + Tallenna puhelimeen + Ladataan videota… + Luonnosviesti + Luonnokset + Tilit + Luo + Syötteet + Navigoi + Järjestelmä + Sinä + + %1$d päivä + %1$d päivää + + + %1$d tunti + %1$d tuntia + + + %1$d minuutti + %1$d minuuttia + + + %1$d kuukausi + %1$d kuukautta + + + %1$d viikko + %1$d viikkoa + + + %1$d vuosi + %1$d vuotta + + Muokkaa kalenteria + Muokkaa kalenteritapahtumaa + Muokkaa yhteisöä + Muokkaa emoji-pakettia + Muokkaa soittolistaa + Muokkaa julkaisua + Yksityiset emojit tallennetaan salattuina relayihin ja ovat vain sinun nähtävissäsi. Ne näkyvät reaktiovalikossasi ja ":"-automaattitäydennyksessä aivan kuten julkisetkin. + Julkiset emojit näkyvät kaikille ja näkyvät reaktiovalikossasi sekä ":"-automaattitäydennyksessä, kun tämä paketti on emoji-listassasi. + Emojit + Salaa tiedostot ennen lataamista yksityisyyden suojaamiseksi. Jotkin palvelimet eivät välttämättä hyväksy salattuja tiedostoja ilmaisilla tileillä. + Salaa tiedostot + Katoava chat + Virhe + Laskua ei voitu maksaa + Ei voitu perua + Maksun avaaminen epäonnistui + Zapin lähettäminen ei onnistunut + Virhe avattaessa allekirjoitussovellusta + Allekirjoittajasovellusta ei löytynyt. Tarkista, että sovellusta ei ole poistettu + Virhe virhesanomaa tulkittaessa + Virhe JSON:n jäsentämisessä kohteesta %1$s. Tarkista käyttäjän lightning-asetukset + Laskua ei voi noutaa vastaanottimen palvelimilta + Avaa selaimessa + Videota ei voi toistaa + Koodekkia tai muotoa ei tueta tällä laitteella (%1$s). Yritä avata se selaimessa. + Virheet + Relay-synkronointi + tapahtumat sinulta + tapahtumat sinulle + Kiertoharjoittelu + Pyöräily + Ruokavalio + Paasto + Vaellus + Meditaatio + Soutu + Juoksu + Voimaharjoittelu + Uinti + Kävely + Jooga + Laajenna + Vanhentumispäivä + Vie relay-asetukset + Poistaminen epäonnistui: %1$s + Yksityisen avaimen salaaminen epäonnistui + Kuvan tallennus epäonnistui + PDF:n tallentaminen epäonnistui + Videon tallentaminen epäonnistui + Monet palvelimet eivät hyväksy salattuja tiedostoja ilmaisilla tileillä. Voit yrittää uudelleen ilman salausta. + Salattu lataus epäonnistui + Lähetysvirhe: %1$s + Median lataus epäonnistui + Lataaminen palvelimelle %1$s epäonnistui: %2$s + Lisää suosikkeihin + Latautuu avoimen verkon kautta. + Latautuu Torin kautta. + Viimeisimmät + Poista suosikeista + Sovellusta ei ole vielä ladattu. Yritä hetken kuluttua uudelleen. + Suosikkisovellukset + Suosikkifeedialgoritimit + Maksu suoritettu + Julkaistu relayhin + Tiedosto ladattu + Suosikkirelayfeedit + Relait, joiden globaalia feediä käyt usein katsomassa + Yhteisöt + Feedialgoritimit + Feedit + Aihetunnisteet + Kiinnostuksen kohteet + Listat + Sijainnit + Relait + Tiedostopalvelin + Valitse palvelin, jolle tiedosto ladataan + Piilottaa tuntemattomilta tulleet julkaisut, jotka ovat olleet täsmälleen samat 5 kertaa tai useammin + Suodata roskaposti + Seuraa + Seuraa takaisin + Kaikki suosikkifeedialgoritimit + Ympärilläni + Kuratoitu + Maailmanlaajuinen + Oletus seurauslista + Kaikki seuraajat + Kaikki seurattavat käyttäjät + Omani + Mykistä lista + Uusi seurauslista-paketti + Muokkaa seurantapakettia + Seurantapaketin metatiedot ovat kaikkien nähtävillä Nostrissa ja julkaistaan usein monilla verkkosivuilla uusien käyttäjien aloituspakettina. + Seurantapaketin metatiedot + Seuraajapaketit + Uusi seurauslista + Muokkaa listaa + Profiilegalleriatyyli + Valitse galleriatyyli + Klassinen + Moderni + Sijaintiin rajattu julkaisu + Vain sijainnin seuraajat näkevät sen. Yleiset seuraajasi eivät näe sitä. + %1$s rahoitettu tavoitteesta %2$s sat + t + Tämä sisältö on muuttunut. Kirjoittaja ei ehkä ole nähnyt tai hyväksynyt muutosta + Mitä tämä tarkoittaa? + Tämä sisältö on sama kuin viestin julkaisuhetkellä + Hei %1$s, onko tämä vielä saatavilla? + Piilotetut sanat + Poistaa julkaisut yhteisön syötteistä, kun yhteisö julkaisee NIP-9B-sääntöasiakirjan ja tapahtuma ei läpäise sitä. Ei vaikutusta yhteisöissä, joilla ei ole rakenteellisia sääntöjä. + Piilota yhteisön sääntöjä rikkovat julkaisut + Piilota salasana + Ladataan %1$s (%2$d / %3$d) + Kaikki + Virheellinen pyyntö – palvelin ei voi tai halua käsitellä pyyntöä. + Luvaton – käyttäjällä ei ole kelvollisia tunnistautumistietoja + Maksu vaaditaan – palvelin vaatii maksua pyynnön suorittamiseksi + Kielletty – käyttäjällä ei ole oikeuksia tehdä pyyntöä + Ei löydy – palvelin ei löydä pyydettyä osoitetta + Menetelmä ei sallittu – palvelin tukee pyyntömenetelmää, mutta ei kohdetta + Ei hyväksyttävissä – palvelin ei löydä pyyntöä vastaavaa sisältöä. + Välityspalvelimen tunnistautuminen vaaditaan – käyttäjällä ei ole kelvollisia tunnistautumistietoja + Pyyntö aikakatkaistiin – palvelin odotti liian kauan toisen osapuolen vastausta + Ristiriita – palvelin ei voi täyttää pyyntöä, koska resurssin kanssa on ristiriita + Poistettu – pyydetty sisältö on poistettu pysyvästi palvelimelta eikä sitä palauteta + Pituus vaaditaan – palvelin hylkää pyynnön, koska se vaatii määritellyn + Esiehto epäonnistui – pyynnön otsikkojen esiehdot eivät täyty palvelimella + Hyötykuorma liian suuri – pyyntö ylittää palvelimen määrittämät rajat, eikä palvelin käsittele sitä + URI liian pitkä – asiakkaan pyytämä URL on liian pitkä palvelimen käsiteltäväksi. + Mediatyyppiä ei tueta – pyyntö käyttää mediamuotoa, jota palvelin ei tue + Alue ei ole tyydytettävissä – palvelin ei voi täyttää pyynnön Range-otsikkokentässä ilmoitettua arvoa. + Odotus epäonnistui – palvelin ei täytä Expect-otsikkokentässä ilmoitettuja vaatimuksia + Päivitys vaaditaan – palvelin kieltäytyy käsittelemästä pyyntöä nykyisellä protokollalla, ellei asiakas päivitä eri protokollaan. + Sisäinen palvelinvirhe – palvelin on kohdannut odottamattoman virheen eikä voi suorittaa pyyntöä + Ei toteutettu – palvelin ei voi täyttää pyyntöä tai ei tunnista pyyntömenetelmää + Virheellinen yhdyskäytävä – palvelin toimii yhdyskäytävänä ja sai virheellisen vastauksen isäntäpalvelimelta + Palvelu ei käytettävissä – tämä johtuu usein palvelimen ylikuormituksesta tai huoltokatkosta + Yhdyskäytävän aikakatkaisu – palvelin toimi yhdyskäytävänä tai välityspalvelimena ja aikakatkaistiin vastauksen odottamisen aikana + HTTP-versio ei tuettu – palvelin ei tue pyynnön HTTP-versiota + Variantti neuvottelee myös – palvelimella on sisäinen konfiguraatiovirhe + Tallennustila ei riitä – palvelimella ei ole riittävästi tallennustilaa pyynnön onnistuneeseen käsittelyyn + Silmukka havaittu – palvelin havaitsee äärettömän silmukan käsitellessään pyyntöä + Verkon tunnistautuminen vaaditaan – asiakkaan on tunnistauduttava päästäkseen verkkoon + Laiton toiminta + Kuva tallennettu galleriaan + Väärennös + Saapuvien relayit + Virheellinen laskun määrä (%1$s satsia) kohteesta %2$s. Sen olisi pitänyt olla %3$s + Hakemistorelait + Relait, jotka erikoistuvat kaikkien käyttäjien metatietojen ja relaylistojen isännöintiin, kuten purplepag.es. Amethyst käyttää näitä relaita löytääkseen käyttäjiä, jotka eivät ole listoissasi. + Uusi mielenkiintokokoelma + Nimeä uudelleen + Hashtag-kokoelmat + Virheellinen avain + Virheellinen avain: %1$s + Virheellinen osoite + Amethyst vastaanotti avattavan URI:n, mutta se oli virheellinen: %1$s + Luonnosviestiä ei voi lainata + Luonnosviestiin ei voi reagoida + Luonnosviestiin ei voi vastata + Luonnosviestiä ei voi zapata + Avain on pakollinen + KeyPackage-relayit + Relayit, joille MLS KeyPackage -paketit julkaistaan (MIP-00). Muut käyttäjät hakevat nämä KeyPackage-paketit kutsuakseen sinut Marmot-ryhmäkeskusteluihin. Lisää 1–3 relayia, jotka hyväksyvät KeyPackage-tapahtumat sinulta ja sallivat julkiset lukuoikeudet. + Hyväksyttyjen merkkien kokoelma + Seikkailun johdanto + Seikkailulukeminen + Seikkailukohtaus + Sovellussuositukset + Aika + Sovellukset + Ajan RSVP + Äänitiedoston otsikko + Ääniraita + Omat podcastit + Merkkien myöntämiset + Merkkimäärittelyt + Blob-data + Blob-otsikot + Estetyt relay-palvelimet + Blogit + Blossom-palvelimet + Kirjanmerkkilista + Lähetys-relay-palvelimet + Kalenteri + Kanavan määrittely + Kanavan viestien piilotus + Kanavaluettelo + Kanavanviesti + Kanavan metatiedot + Kanavan käyttäjän vaimennus + Shakki Auth + Shakkihaasteet + Shakki tasapelitarjous + Shakkipelin hyväksyntä + Shakkipelin lopetus + Shakkipelit + Shakkisiirto + Ilmoitukset + Kommentit + Yhteisön määrittely + Yhteisöluettelo + Yhteisöjulkaisu + Yhteystietokortti + Päiväaika + Poistot + DM-tiedosto + DM-viesti + DM-relay-palvelimet + Luonnokset + DVM-sisältöpyyntö + DVM-sisältövastaus + DVM-tila + DVM-käyttäjäpyyntö + DVM-käyttäjävastaus + Muokkaukset + Emoji-pakettilista + Emoji-paketit + Lyhytaikainen chat + Lyhytaikaiset chathuoneet + Suosikkipodcastit + Suosikki-relay-palvelimet + Tiedosto-otsikot + Tiedostopalvelimet + Seurantalista + Seurauspaketit + Geohash-seurannat + GiftWrap-viestit + Git-ongelma + Git-korjaustiedosto + Git-vastaus + Git-varasto + Hashtag-seurannat + Korostukset + Hakemisto-relay-lista + Live-chatit + Suoratoistot + Lääketieteelliset tiedot + Kokoushuone + Kokouspaikka + Musiikkisoittolista + Musiikkiraita + Vaimennuslista + Nimetyt kirjanmerkit + Nests-palvelimet + NIP-04 DM-viestit + Muistiinpanot + NWC-pyyntö + NWC-vastaus + Vanha kirjanmerkkilista + Lähtevien relay-palvelimet + Henkilölistat + Kuvat + Kiinnitykset + Podcast-jakso + Podcast-ohjelma + Äänestys + Äänestysvastauss + Yksityiset relay-palvelimet + Yksityiset zapit + Profiili + Profiilin merkit + Profiiligalleria + Välitys-relay-palvelimet + Julkinen viesti + Reaktiot + Relay-löytäminen + Relay-monitorin ilmoitus + Relay-kokoelma + Raportit + Jaot + Jaot (16) + Huoneläsnäolo + Sinetit + Haku-relay-palvelimet + Torrent-kommentit + Torrentit + Luotetut tarjoajat + Luotetut relay-palvelimet + Käyttäjän poisto + Käyttäjäasetukset + Käyttäjän tila + Ääniviesti + Äänivastaus + Verkkokirjanmerkki + Harjoitukset + Zap-tavoitteet + Zap-äänestys + Zap-pyyntö + Zapit + Tunnetut + Kielen näyttöasetukset + Valitse kullekin käännetylle kieliparille, kumpi kieli näytetään ensin. + Nähty viimeksi %1$s sitten + Nähty juuri äsken + Ei koskaan nähty + Nähty viimeksi %1$s (%2$s sitten) + Poistu + Vaalea + Suoralähetykset + Paikalliset relait + Luettelo tällä laitteella toimivista relaista. + Kirjaudu sisään yksityisellä avaimella tehostaaksesi viestejä + Kirjaudu sisään yksityisellä avaimella voidaksesi seurata + Käytät julkista avainta ja julkiset avaimet ovat vain luku -tilassa. Kirjaudu yksityisellä avaimella, jotta voit piilottaa sanan tai lauseen + Kirjaudu sisään yksityisellä avaimella viestehin vastaamiseksi + Kirjaudu sisään yksityisellä avaimella Zapien lähettämiseksi + Käytät julkista avainta ja julkiset avaimet ovat vain luettavissa. Kirjaudu yksityisellä avaimella, jotta voit näyttää sanan tai lauseen + Käytät julkista avainta, ja julkiset avaimet ovat vain luku -tilassa. Kirjaudu sisään yksityisellä avaimella voidaksesi allekirjoittaa tapahtumia + Kirjaudu sisään yksityisellä avaimella seuraamisen lopettamiseksi + Käytät julkista avainta, ja julkiset avaimet ovat vain luku -tilassa. Kirjaudu sisään yksityisellä avaimella voidaksesi ladata tiedostoja + Kirjaudu sisään yksityisellä avaimella tykätäksesi viesteistä + Videot + Omat emoji-paketit + Lisätään %1$s… + Ylläpitäjäoikeudet myönnetty + Ylläpitäjäoikeudet peruutettu + Käyttäjän %1$s lisääminen epäonnistui: %2$s + Ryhmän luominen epäonnistui: %1$s + Ylläpitäjäoikeuksien myöntäminen epäonnistui: %1$s + Ryhmästä poistuminen epäonnistui: %1$s + Jäsenen poistaminen epäonnistui: %1$s + Ylläpitäjäoikeuksien peruuttaminen epäonnistui: %1$s + Päivitys epäonnistui: %1$s + MLS-ryhmä + Ryhmän tiedot päivitetty + + %1$d jäsen + %1$d jäsentä + + Jäsen poistettu + + %1$d viesti + %1$d viestiä + + Et ole tämän ryhmän jäsen + tuntematon virhe + Media lisätty + Media lisätty profiilegalleriaasi + Median lataus on aloitettu… + Mediapalvelimet + Media on liian suuri NIP-95:lle + Lisää ensin viestin kohde + Ei voi ladata + Aihe + Metatietoja ei voitu poistaa + Yksityisten metatietojen poistaminen mediasta epäonnistui. Lataus peruutettu. + Kirjanmerkit siirretty onnistuneesti + Lightning asetukset puuttuvat + Lisää vaihtoehtoja + Siirrä yksityiseksi + Siirrä julkiseksi + Lataa kansikuva + Valitse neliönmuotoinen kuva tämän soittolistan kansitaiteeksi. + + +%1$d kappale lisää + +%1$d kappaletta lisää + + + %1$d kappale + %1$d kappaletta + + + %1$d kappale + %1$d kappaletta + + Ladataan kansikuvaa ja julkaistaan. Tämä jatkuu, vaikka poistuisit näytöltä. + Lataa äänitiedosto + Valitse MP3, WAV tai FLAC. Se ladataan mediapalvelimellesi tallennuksen yhteydessä. + Lataa kansikuva + Valitse neliönmuotoinen kuva tämän kappaleen kansitaiteeksi. + Ladataan kansikuvaa ja ääntä sekä julkaistaan. Tämä jatkuu, vaikka poistuisit näytöltä. + Ääni päällä. Napsauta vaimentaaksesi + Ääni pois päältä. Napsauta palauttaaksesi äänet + Omat listani + Nimi vaaditaan + Namecoin-asetukset + Henkilöllisyys + Lue julkinen avaimesi + Viestintä + Vaihda viestejä muiden napplet-sovellusten kanssa + Näppäimistötoiminnot + Sido näppäimistöoikotiet + Ilmoitukset + Näytä sinulle ilmoituksia + Relayt + Lue, allekirjoita ja julkaise tapahtumiasi + Verkko + Hae web- ja Blossom-resursseja + Tallennus + Oma yksityinen tallennus + Teema + Sovita sovelluksesi värit + Lataukset + Lataa tiedostoja mediapalvelimellesi + Maksut + Maksa Lightning-laskuja + Tämä nApplet haluaa lukea julkisen avaimesi. + Tämä nApplet haluaa lukea profiilisi ja tilitietosi. + Tämä nApplet haluaa näyttää sinulle ilmoituksia. + + Tämä nApplet haluaa maksaa Lightning-laskun, jonka arvo on %1$d sat. + Tämä nApplet haluaa maksaa Lightning-laskun, jonka arvo on %1$d sats. + + Tämä nApplet haluaa allekirjoittaa ja julkaista kind %1$d -tapahtuman puolestasi. + Tämä nApplet haluaa lähettää salatun tapahtuman puolestasi. + Tämä nApplet haluaa allekirjoittaa ja julkaista kind %1$d -tapahtuman puolestasi: + Tämä nApplet haluaa lukea tapahtumia relayistasi. + Tämä nApplet haluaa hakea verkkoresurssin. + Tämä sivusto haluaa allekirjoittaa kind %1$d -tapahtuman Nostr-avaimellasi. + Tämä nApplet haluaa käyttää yksityistä tallennustaan. + Tämä nApplet haluaa ladata tiedoston mediapalvelimellesi. + Viestin lähetys epäonnistui + Hiljennä tämä puhuja + Palauta tämä puhuja + Poistu + Huonetta ei voitu merkitä suljetuksi. Poistutaan silti — huone sulkeutuu automaattisesti. + + %1$d kuuntelija + %1$d kuuntelijaa + + Laske käsi + Mykistä mikrofoni + Poista mykistys + Mykistä + Nest-palvelinluettelon tallennus epäonnistui. Yritä uudelleen. + Pitää äänen toistossa huoneen ollessa auki. + Nest yhdistetty + Lopeta + Palaa napauttamalla. + Seuraa + Mykistä + Lopeta seuraaminen + Poista mykistys + poistui nestistä + liittyi yleisönä + astui lavalle + nosti kätensä + puhuu + Nosta käsi + Poista mykistys + Tallennetaan kind-10112-korvattavana tapahtumana, jotta muut asiakkaat voivat lukea asetuksesi. + Omat palvelimesi + Sisäänrakennettuja ehdotuksia, jotka voit lisätä listaasi yhdellä napautuksella. + Suositellut palvelimet + Nest-palvelimet + ei koskaan + Uusi merkki + Uusi kalenteri + Uusi kalenteritapahtuma + Uusi yhteisö + Moderaattorit + Relayt + Estetyt käyttäjät + Yhteisökommentti (1111) + Pitkä artikkeli (30023) + Kuvajulkaisu (20) + Lyhyt teksti (1) + Lyhyt video (22) + Videojulkaisu (21) + Sallitut tapahtumatyypit + Tapahtuman yleinen enimmäiskoko (valinnainen) + Todennettavat säännöt (valinnainen) + Luottamusverkon portti (valinnainen) + Uusi emoji-paketti + Uusi tavoite + Uusi artikkeli + Uusi soittolista + Uusi musiikkikappale + Uusi tuote + Uudet pyynnöt + Uudet keskustelut + Uusi harjoitus + + %1$d resurssi paketoitu + %1$d resurssia paketoitu + + Blossom-sovelluksia ei löydetty. Asenna paikallinen Blossom-sovellus nähdäksesi tämän tiedoston + Blossom-linkkejä ei voi avata + Tässä laitteessa ei ole kamerasovellusta + Ei Lightning-osoitetta asetettuna + Sovellusta, joka käsittelee tämän maksun, ei löydy. Asenna yhteensopiva lompakko. + Sovellusta, joka käsittelee %1$s-maksuja, ei ole asennettu. Asenna yhteensopiva lompakko. + Ei valittu reaktiotyyppejä. Pidä pitkään painettuna vaihtaaksesi. + Ei reaktioita asetettu + Ei löytynyt lompakkoja Lightning-laskun maksamiseksi. Asenna Lightning-lompakko zapatäksesi + Ei löytynyt lompakkoja Lightning-laskun maksamiseksi (käyttäjä: %1$s). Asenna Lightning-lompakko zapatäksesi + Zap-määrää ei ole asetettu. Pidä painiketta pohjassa vaihtaaksesi sitä + Ilmoitukset + Kategoriat + Toimitus + Sovelluksen sisäinen näyttö + nyt + Nowhere-taide + Nowhere-tapahtuma + Nowhere-foorumi + Nowhere-varainkeruu + Nowhere-sivusto + Nowhere-viesti + Nowhere-vetoomus + Nowhere-kauppa + Alastomuus + Tapahtuman viittausta ei voi rakentaa + Viestillä ei ole vastaanottajan julkista avainta + Nutzapit ovat julkisia ja paljastaisivat tämän yksityisen viestin. Käytä Lightning-zapia. + Nutzap epäonnistui + + Lähetä %1$s sats, %2$d jako + Lähetä %1$s sats, %2$d jakoa + + Bitcoin-ketjun taustapalvelua ei ole määritetty + Transaktiota ei voitu lähettää + Transaktiota ei voitu rakentaa + Bitcoin-saldoa ei voitu ladata + Maksu lähetetty, mutta zap-kuittia ei voitu julkaista + + Maksu lähetetty (%1$d / %2$d kuitti julkaistu), mutta seuraavaa kuittia ei voitu julkaista + Maksu lähetetty (%1$d / %2$d kuittia julkaistu), mutta seuraavaa kuittia ei voitu julkaista + + Vastaanottajan osuus on alle pölyrajan + Transaktiota ei voitu allekirjoittaa + ~1 t + Nopea + Normaali + Hidas + + Jako %1$d vastaanottajalle + Jako %1$d vastaanottajalle + + + Ohitetaan %1$d pelkän Lightning-osoitteen vastaanottaja — ketjulähetys vaatii Nostr-julkisen avaimen osoitteen johtamiseksi. + Ohitetaan %1$d pelkän Lightning-osoitteen vastaanottajaa — ketjulähetys vaatii Nostr-julkisen avaimen osoitteen johtamiseksi. + + + Käytä tämän viestin %1$d-suuntaista zap-jakoa + Käytä tämän viestin %1$d-suuntaista zap-jakoa + + lähetetään + rakennetaan transaktiota + ladataan saldoa + julkaistaan kuitti + allekirjoitetaan + Vain yksi ääni käyttäjää kohti tällä äänestystyypillä + Avaa kaikki reaktiot tähän julkaisuun + Avoimet + Orbot Socks-portti + Bitcoin-selain (OTS) + On olemassa todiste, että tämä viesti allekirjoitettiin ennen %1$s. Todiste on leimattu Bitcoin-lohkoketjuun kyseisellä päivämäärällä ja kellonajalla. + Aikaleiman todiste + Lähtevien relayit + Salasana vaaditaan + Keskeytä + Maksa + Viesti käyttäjältä %1$s + Maksukohteet + Lisää maksuosoitteet eri verkkoihin (esim. bitcoin, lightning, ethereum). + PDF tallennettu kansioon Lataukset/Amethyst + Seurantalistojen metatiedot ovat kaikkien nähtävillä Nostrissa. Vain yksityiset jäsenesi ovat salattuja. + Seurantalistan metatiedot + Kuvat + Kiinnitä ylös + Kiinnitä profiiliin + Toista + + %1$d jakso + %1$d jaksoa + + Äänestyksen luojat eivät voi äänestää omissa äänestyksissään. + Äänestys on suljettu uusilta ääniltä + Useita valintoja + Vaihtoehto %1$s + Yksi valinta + Ei voi äänestää + Äänestykset + Lähetä + + Tässä julkaisussa on enemmän kuin %1$d aihetunniste + Tässä julkaisussa on enemmän kuin %1$d aihetunnistetta + + Esikatsele kortin kuvaa kohteelle %1$s + Tietosuoja-asetukset + Tietosuojakäytäntö + <Ei voitu purkaa yksityisviestiä>\n\nSinut mainittiin yksityisessä/salatussa keskustelussa kohteiden %1$s ja %2$s välillä. + DM-saapuneiden relayit + Lisää 1–3 relayia yksityiseksi postilaatikoksesi. Muut käyttävät näitä relayita lähettääkseen sinulle DM:t. DM-saapuneiden relayiden tulisi hyväksyä viestejä keneltä tahansa, mutta sallia vain sinun ladata ne. Hyviä vaihtoehtoja ovat:\n - inbox.nostr.wine (maksullinen)\n - auth.nostr1.com (ilmainen)\n - you.nostr1.com (henkilökohtaiset relayit – maksullinen) + Käyttäjä vastaanottaa DM:t näillä relayilla + Yksityinen viesti + Tee yksityiseksi: kääri muistiinpano lahjapaketiksi vain ilmoitetuille käyttäjille + Vastaukset yksityiseen muistiinpanoon pysyvät aina yksityisinä + Näkyvissä käyttäjälle + Yksityiset kodin relayit + Lisää 1–3 relayia tallentamaan tapahtumia, joita kukaan muu ei näe, kuten luonnoksesi ja/tai sovelluksen asetukset. Ihanteellisesti nämä relayit ovat joko paikallisia tai vaativat todennuksen ennen kunkin käyttäjän sisällön lataamista. + Loukkaava kielenkäyttö / vihapuhe + Profiili + Profiilin merkit + Sovellussuositukset + Profiilin merkit + Seuraajien syöte + Vastaanotettujen zapien syöte + Profiilin käyttöliittymä + profiilit + Ehdota muokkausta + Proxy-relait + Aggregaattorirelait, joita sovelluksen täytyy käyttää feedien lataamiseen, kuten filter.nostr.wine. Tämä korvaa outbox-mallin ja saa sovelluksen yhdistämään vain listoissasi oleviin relaihin. + Julkinen keskustelu + Julkiset chatit ovat näkyvissä kaikille Nostrissa ja kuka tahansa + voi osallistua niihin. Ne sopivat hyvin avoimiin yhteisöihin tiettyjen aiheiden ympärille. + Moderointia voidaan hallita poistamalla julkaisuja sen relay-palvelimilta + Syötä 1–3 relay-palvelinta, jotka isännöivät tätä ryhmää. + Nostr-asiakkaat käyttävät tätä asetusta tietääkseen, mistä ladata viestejä ja mihin lähettää viestisi. + relay-palvelimet + Julkisen chatin metatiedot + Julkiset keskustelut + Julkiset lähtevien/kodin relayit + Tämä relay-tyyppi tallentaa kaiken sisältösi. Amethyst lähettää julkaisusi tänne ja muut käyttävät näitä relayita löytääkseen sisältösi. Lisää 1–3 relayia. Ne voivat olla henkilökohtaisia, maksullisia tai julkisia relayita. + Käyttäjä julkaisee sisältönsä näille relayille + Julkinen viesti + Julkiset saapuvien relayit + Tämä relay-tyyppi vastaanottaa kaikki vastaukset, kommentit, tykkäykset ja zapit julkaisuihisi. Ne voivat olla maksullisia tai ilmaisia relayita. Relay-operaattorin asettamat rajoitukset voivat rajoittaa vastaanottamiasi ilmoituksia hyvässä ja pahassa. Esimerkiksi jos sinua häiritään kommenttiroskapostilla, maksulliset relayit voivat suodattaa roskapostin pois. Lisää 1–3 relayia. + Käyttäjä vastaanottaa ilmoituksia näillä relayilla + Viestin tunniste + Poista + Vaimenna ketju + Jaa + Jaa selaimen linkki + Poista ketjun vaimennus + Reaktio + Reaktiot + Reaktiorivi + Lue releestä + Tästä relaysta vastaanotettujen tavujen määrä, mukaan lukien suodattimet ja tapahtumat + Vain luku -käyttäjä + Paina ja pidä pohjassa tallentaaksesi ääniviesti + relay-chat + relay-chatit ovat chat-ryhmiä, joita hallinnoi niiden kotipalvelin. + Ne ovat näkyvissä kaikille Nostrissa ja kuka tahansa voi osallistua niihin. + Ne sopivat hyvin avoimiin yhteisöihin tiettyjen aiheiden ympärille. Osa näistä ryhmistä on katoavia, + joten chat-viestit häviävät ajan myötä + relay-chatit + Tapahtumat + IP-osoitteet + Tyypit + Käyttäjät + Asetukset + Relay-asetukset + outbox-listat + Releet + Lataa & lähetä zap + Lähetä zap + Lataa %1$s sat kohteeseen %2$s ja zappaa %3$s %4$s sat · maksu ≈ %5$s sat + Poista + Poista julkisista kirjanmerkeistä + vastaa tähän.. + Ilmoitus: + + Pyydä poistoa + Katoamispyyntö + Marmot-tilan nollaus epäonnistui: %1$s + Nollaa Marmot-tila + Marmot-tila nollattu. + Yritä uudelleen + Kalenteriluettelot + Kalenterit + Shakki + Tutustu + Etusivu + Tuo seurannat + Viestit + Soittolistat + Musiikki + Ilmoitukset + Jaksot + Podcastit + Ajasta julkaisu + Peruuta ajastus + Ajastetut julkaisut eivät välttämättä lähetä ennen kuin avaat sovelluksen uudelleen. Muiden tilien ajastetut julkaisut eivät lähde tämän tilin ollessa aktiivinen. Ota jatkuvat ilmoitukset käyttöön Asetukset → Käyttöliittymäasetukset -kohdasta luotettavaa taustajulkaisua varten. + Ajastetut julkaisut eivät välttämättä lähetä ennen kuin avaat sovelluksen uudelleen. Ota jatkuvat ilmoitukset käyttöön Asetukset → Käyttöliittymäasetukset -kohdasta luotettavaa taustajulkaisua varten. + Ajastetut julkaisut + Lähetä nyt + %1$s · %2$s kuluttua + %1$s · %2$s sitten + Huomenna + Virhe: %1$s + Muistiinpanon tunniste kopioitu + + Kirjauduttu ulos · %1$d ajastettu julkaisu poistettu + Kirjauduttu ulos · %1$d ajastettua julkaisua poistettu + + Kirjauduttu ulos + + Sinulla on %1$d ajastettu julkaisu, jota ei ole vielä lähetetty. Uloskirjautuminen poistaa sen pysyvästi. + Sinulla on %1$d ajastettua julkaisua, joita ei ole vielä lähetetty. Uloskirjautuminen poistaa ne pysyvästi. + + Ajastettu julkaisu epäonnistui + Ajastettu julkaisu lähetetty + + %1$d relaylle + %1$d relaylle + + Peruutettu + Epäonnistui + Ajastettu + Lähetetään… + Lähetetty + + · %1$d erääntyvä tunnissa + · %1$d erääntyvää tunnissa + + + %1$d jonossa + %1$d jonossa + + Hyviä vaihtoehtoja ovat:\n%1$s + Hakurelayit + Hakurelayit + Lista relayista, joita käytetään sisällön tai käyttäjien haussa. Merkitseminen ja haku eivät toimi, jos vaihtoehtoja ei ole saatavilla. Varmista, että ne toteuttavat NIP-50:n. + haettavat tapahtumat + Salainen avain (nsec) kopioitu leikepöydälle + Et ole estänyt yhtään käyttäjää. + Turvallisuussuodattimet + Ei piilotettuja sanoja. Lisää sana alla piilottaaksesi sen sisältävät julkaisut. + Estetty sisältö + Suodatusasetukset + Yhtään tiliä ei ole merkitty roskapostiksi tässä istunnossa. + Lähetä + Lähetä kaikki vastaanotetut profiilitapahtumat (kind 0) paikalliselle relaylle + Välitä profiilit paikalliselle relaylle + Käytettävissä tälle vastaanottajalle: %1$s sats + Maksu epäonnistui + Tapahtuma: %1$s + Maksetaan kohteella %1$s… + Palvelin ei antanut URL-osoitetta latauksen jälkeen + Asetukset + Ei mykistettyjä ketjuja + Mykistetyt ketjut + Jaa kuvana + Jaa kuvan URL:na + HLS-lataus + Jaa tai tallenna + Lyhytvideot + Näytä salatun yksityisen avaimen QR-koodi + Sisällytä suorat viestit ja ryhmäviestit Ilmoitukset-välilehdelle. Poista käytöstä, jos haluat pitää viestit vain Viestit-välilehdellä. + Näytä viestit + Näytä yksityisen avaimen QR-koodi + Allekirjoituspyyntö hylätty + Varmista, että allekirjoittajasovellus on valtuuttanut tämän tapahtuman + Ulkoinen allekirjoittaja palautti pyyntöön nähden odottamattoman tietopaketin. Kyseessä voi olla vika Amethystissä tai allekirjoittajassa. + Allekirjoittajaa ei löydy + Onko allekirjoittajasovellus poistettu? Tarkista, että allekirjoittaja on asennettu ja sillä on tämä tili. Kirjaudu ulos ja uudelleen sisään, jos allekirjoittajasovellus on vaihtunut. + Siirry %1$d sekuntia taaksepäin + Siirry %1$d sekuntia eteenpäin + Sovellukset + Roskaposti + Tältä relay-palvelimelta tulevien roskapostitustapahtumien määrä + Roskapostittajat + Näyttää kaksi ilmoitusvälilehteä — Seuratut (seuraamasi henkilöt) ja Kaikki. Lukemattomien indikaattori hehkuu vain seuraamiesi henkilöiden toiminnasta. + Jaa ilmoitukset seurattavien mukaan + Yrittää poistaa yksityiset metatiedot tuetuista mediatiedostoista ennen lataamista + Poista yksityiset metatiedot + Lukee valmiit treenit Health Connectista (Samsung Health, Google Fit, Fitbit, Garmin…) ja ehdottaa niiden jakamista julkaisuna. Lupa pyydetään vain yhdistäessäsi. + Ehdota treenejä jaettavaksi + Järjestelmä + Teema + Tumma, vaalea tai järjestelmäteema + Tämä viesti katoaa %1$s kuluttua + + +%1$d\nvastaus + +%1$d\nvastausta + + Tänään + Mukautettu + Tee omasi + Oletus + Piilota IP-osoitteesi satunnaisilta relayilta + Täysi yksityisyys + Piilota IP-osoitteesi kaikissa yhteyksissä + Sisäinen + Pois + Tor/Yksityisyysasetukset + Muokkaa kaikkia alla olevia asetuksia nopeasti + Kaikki paitsi media + Piilota IP-osoitteesi kaikkialta paitsi kuvilta ja videoilta + Pakota Tor lähettämään ja vastaanottamaan DM-viestejä + Kuvat + Pakota Tor kuvia ladattaessa + Median lataukset + Pakota Tor sisältöä ladattaessa palvelimelle + Rahansiirrot + Pakota Tor zap-, Lightning- ja Cashu-siirroissa + Epäluotetut Relays + Pakota Tor outbox/inbox-relayille + Nostr-osoitteen vahvistus + Pakota Tor NIP-05-osoitteita vahvistettaessa + Onion-URL/Relays + Käytä Toria kaikille .onion-osoitteille + Profiilikuvat + Pakota Tor profiilikuvia ladattaessa + Luotetut Relays + Pakota Tor kaikille listoissasi oleville relayille + URL-esikatselut + Pakota Tor URL-esikatseluja ladattaessa + Videot + Pakota Tor videoita ladattaessa + Perus + Käytä Toria kun palvelin sitä vaatii + Tiedoston avaaminen epäonnistui + Ei torrent-sovelluksia asennettuna tiedoston avaamiseen ja lataamiseen. + Tapahtumassa ei ole riittävästi tietoja magneettilinkityksen rakentamiseen + Käytä seurattua lähetintä tapahtumien lähettämiseen. Näyttää reaaliaikaiset edistymistiedot ja relay-kohtaisen tilan lähetyksen aikana. + Seuratut lähetykset + Käännä kielelle + Valitse kieli, jolle sisältö käännetään. + Käännökset + Luotetut relait + Relait, joihin luotat ilman Tor-yhteyttä + Täydellinen + Suorituskyky + Yksinkertaistettu + Käyttöliittymäasetukset + Käyttöliittymätila + Valitse julkaisun tyyli + Ei voitu luoda Lightning-laskua ennen zapin lähettämistä. Vastaanottajan Lightning-lompakko lähetti seuraavan virheen: %1$s + Kuvan jakaminen epäonnistui, yritä myöhemmin uudelleen… + Videon jakaminen epäonnistui, yritä myöhemmin uudelleen… + Luvaton salauksen purku + Allekirjoittaja ei sallinut salauksen purkua, joka vaaditaan tämän toiminnon suorittamiseen. Ota NIP-44-salauksen purku käyttöön allekirjoittajasovelluksessasi ja yritä uudelleen + Lopeta seuraaminen + Irrota kiinnitys + Irrota profiilista + Lataus peruutettu + Latausvirhe + Ääniviesti epäonnistui: %1$s + Ääniviesti epäonnistui ladata + NIP-95 ei tue ääniviestiä vielä + %1$d%% käytettävyys + Aktiivinen Tor-moottori + Käytä sisäistä versiota tai Orbotia + Käyttäjällä ei ole asetettuna Lightning-osoitetta satsien vastaanottamiseksi + Käyttäjällä %1$s ei ole Lightning-osoitetta määritettynä vastaanottamaan satseja + Katoamishistoria + Katoamispyyntö lähetetty + Parempi laatu pienemmillä tiedostokooilla, mutta kaikki laitteet eivät tue H.265-toistoa. + Käytä H.265/HEVC-koodekkia + Videon lataus on aloitettu… + Videosoittimen painikkeet + Video tallennettu puhelimen videogalleriaan + Äänijulkaisu + Syvä + Korkea + Neutraali + Ei mitään + Äänivastaus + Lompakko + Cashu-lompakko (NIP-60) + Lompakkosi yhteyden tarjoaja palautti seuraavan virheen: %1$s + Muokkaa minttejä + Näyttää varoitusviestin kun julkaisuilla tai profiileilla on ilmoituksia seuraamiltasi henkilöiltä + Varoita ilmoituksista + Lisää verkkokirjanmerkki + Muokkaa verkkokirjanmerkkiä + Verkkokirjanmerkit + Mitä mielessä? + Harjoitukset + Kirjoita viesti… + Kirjoita releeseen + Tähän relayhin lähetettyjen tavujen määrä, mukaan lukien suodattimet ja tapahtumat + Zapit + + Nimeä uudelleen + Tallenna diff --git a/commonsUI/src/commonMain/composeResources/values-fr-rCA/strings.xml b/commonsUI/src/commonMain/composeResources/values-fr-rCA/strings.xml index 29fab369ae..a4026bdf0f 100644 --- a/commonsUI/src/commonMain/composeResources/values-fr-rCA/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-fr-rCA/strings.xml @@ -1749,4 +1749,1128 @@ URL de base de l'API Explorer Payer la facture depuis le DVM Payer %1$s sats au DVM + À propos & Légal + Paramètres du compte + Ajouter + Ajouter un serveur Blossom + Ajouter un serveur NIP-96 + Lorsqu'activé, Amethyst ajoute un tag client NIP-89 aux événements que vous publiez. + Ajouter un tag client à mes événements + Ajouter un avertissement de contenu sensible avant de montrer ce contenu + Contenu sensible + Ajouter aux Favoris Publics + Utilise un modèle IA embarqué pour proposer des corrections de texte et des changements de ton. + Proposer des améliorations de texte + Maintient les connexions à vos relais de boîte de réception actives pour les notifications en temps réel + + Connecté à %1$d relais de boîte de réception + Connecté à %1$d relais de boîte de réception + + + Connecté à %1$d relais + Connecté à %1$d relais + + Connexion aux relais de boîte de réception… + Notifications Amethyst actives + Notifications pour les appels vocaux et vidéos entrants + Appels entrants + %1$s a accepté votre défi aux échecs + Vous avertit des événements liés aux parties d'échecs + Échecs + Mises à jour d'échecs + %1$s déplacé — votre tour + Vous notifie lorsqu'un message privé est reçu + Messages privés + Nouveaux messages + Marquer comme lu + Vous notifie lorsque quelqu'un vous mentionne ou vous cite dans une publication + %1$s vous a mentionné + Nouvelles mentions + Vous notifie lorsque quelqu'un réagit à votre publication + %1$s a réagi à votre publication + pour %1$s + Réactions + Nouvelles réactions + Vous notifie lorsque quelqu'un répond à votre publication + Réponses + Nouvelles réponses + Répondre + Notifications lorsqu'une publication planifiée est publiée ou échoue. + Publications planifiées + Vous notifie lorsque quelqu'un vous zap + pour %1$s + De %1$s + Zaps reçus + Nouveaux zaps + Paramètres de l'application + Demande d'attestation + Compétence de l'attesteur + Recommandation de l'attesteur + Visualiseur audio + Enregistre automatiquement un brouillon lorsque vous tapez ou quittez un compositeur avec du texte non envoyé, et l'envoie à vos relais de boîte d'envoi privée. + Créer automatiquement des brouillons + Défilement immersif + Masquer les barres de navigation lors du défilement + Prévisualisation des images + Charger automatiquement les images et les GIFs + Lecture vidéo + Lire automatiquement les vidéos et les GIFs + Photo de profil + Afficher les photos de profil + Prévisualisation des URLs + Afficher la prévisualisation d'URL + Lecture automatique des vidéos + Lire automatiquement les vidéos lorsqu'elles sont visibles à l'écran + Impossible de supprimer les métadonnées de l'AVIF : %1$s + Badge de récompense + Retour + Clés de sauvegarde + Échec de l'authentification + La biométrie n'a pas pu authentifier le propriétaire de ce téléphone + La biométrie n'a pas pu authentifier le propriétaire de ce téléphone. Erreur : %1$s + Bloquer + Relais bloqués + Amethyst ne se connectera jamais à ces relais + Utilisateurs bloqués + Nouvelle liste de favoris + Métadonnées de la liste de favoris + Les métadonnées des listes de favoris peuvent être vues par n'importe qui sur Nostr. Seuls vos membres privés sont chiffrés. + Favoris + Barre de navigation inférieure + Relais de diffusion + Relais qui se spécialisent dans la publication de vos notes à tous les autres relais, comme sendit.nosflare.com. Amethyst ajoutera ce relais à tous vos nouveaux événements + Navigateur + Favoris + Chargement via le web ouvert. Appuyer pour utiliser Tor. + Chargement via Tor. Appuyer pour utiliser le web ouvert. + + %1$s, %2$d événement + %1$s, %2$d événements + + Le téléversement de l'image a échoué + L'image sélectionnée n'a pas pu être téléversée. Réessayez ou collez une URL. + Partager l'événement de calendrier + Ouvrir dans la carte + Ouvrir le lien + En cours + %1$s · se termine %2$s + + Commence dans %1$d minute + Commence dans %1$d minutes + + Avertissement lorsqu'un événement auquel vous participez est sur le point de commencer. + Rappels de calendrier + Événement de calendrier + Une notification se déclenche lorsqu'un événement auquel vous participez est sur le point de commencer. + Envoyer des rappels + Rappels du calendrier + Jour + Fil + Mois + Semaine + Accepter + Caméra désactivée + Caméra activée + Écouteurs + Raccrocher + Appel entrant + Appel vidéo entrant\u2026 + Appel vocal entrant\u2026 + Couper le son + Appels + Notification d'appel en cours + Amethyst a besoin d'un accès à la caméra et au microphone pour démarrer un appel vidéo. Veuillez les activer dans les paramètres de l'application. + Amethyst a besoin d'un accès à la caméra et au microphone pour démarrer un appel vidéo. Veuillez les activer dans les paramètres de l'application. + Rejeter + Paramètres d'appel + Haut-parleur + Réactiver le son + Appel avec %1$s + URL de callback introuvable dans la réponse de %1$s + Annuler + Jeton Cashu + Vérification du mint… + Impossible d'utiliser ce Cashu + Le Mint a fourni le message d'erreur suivant : %1$s + Reçu + Envoyé + Mints correspondants + + +%1$d de plus + +%1$d de plus + + Mints populaires + + Recommandé par %1$d autre + Recommandé par %1$d autres + + %1$s sat déplacés vers %2$s. + Aucun portefeuille Cashu compatible trouvé dans le système + + %1$d facture en attente + %1$d factures en attente + + Payer %1$s sat + jusqu'à %2$s sat de frais ? + Publier une demande de suppression pour votre recommandation kind:38000 de %1$s. Les relais qui respectent NIP-09 la supprimeront. + %1$s sats récupérés sur %2$s preuves. + Cashu reçu + %1$s sats ont été envoyés à votre portefeuille. (Frais : %2$s sats) + + Fonds détenus chez %1$d mint que vous n'utilisez pas + Fonds détenus chez %1$d mints que vous n'utilisez pas + + En attente du paiement de la facture… + Arrêter la diffusion + Diffuser sur l'appareil + Normes de protection de l'enfance + Accessoires + Livres + Vêtements + Articles de collection + Artisanat + Électronique + Nourriture + Mobilier + Accueil + Divers + Bureau + Autres + Animaux de compagnie + Quotidien + Mensuel + Unique + Hebdomadaire + Payer %1$s via %2$s? + Payer cette facture via %1$s? + Le service de débit n'a pas finalisé le paiement. + Saisissez un montant valide pour cette offre. + Demande de facture… + Fermer toutes les réactions à ce message + Fermé + Communautés + Le brouillon fait %1$d octets ; cette communauté limite ce kind à %2$d octets. + Le brouillon fait %1$d octets ; cette communauté limite les événements à %2$d octets. + Vous avez déjà publié %1$d événements de ce kind aujourd'hui (limite %2$d). + Paramètres de composition + Le port par défaut est 9050 + Relais connectés + Liste actuelle des relais utilisés + Pourcentage de connexions réussies vers le relais + Toujours + Jamais + WiFi illimité + Ajouter un Document + Ajouter une Image + Ajouter un média + Ajouter une Vidéo + Masquer + Avertir + Afficher + Convertit les GIF animés en vidéo MP4 pour une taille de fichier réduite et une meilleure compatibilité de lecture. + Convertir GIF en MP4 + Copie de l'ID de la note (@note1) dans le presse-papiers + Copie du contenu de la note dans le presse-papiers + Copié dans le presse-papiers + Copie du @npub utilisateur dans le presse-papiers + Copier ma clé secrète + Copier dans le presse-papiers + Impossible d'assembler LNUrl à partir de l'adresse Lightning "%1$s". Vérifiez la configuration de l'utilisateur + Impossible de vérifier le fichier téléchargé après le téléversement : %1$s + Impossible de télécharger le média depuis le serveur + Impossible de récupérer la facture à partir de %1$s: %2$s + Impossible d'ouvrir le fichier compressé + Portefeuille introuvable + Amethyst n'a trouvé aucune application de portefeuille prenant en charge Nostr Wallet Connect (NWC).\n\nVoici ce que vous pouvez faire :\n\n1. Vérifier la prise en charge NWC : Vérifiez que votre application de portefeuille préférée est compatible avec Nostr Wallet Connect.\n\n2. Créer une connexion : Accédez à votre application de portefeuille et créez une nouvelle connexion NWC.\n\n3. Lier à Amethyst : Votre portefeuille vous proposera généralement trois options :\n\n3.1 Lien automatique : Un bouton pour ouvrir et connecter automatiquement Amethyst. Si c'est le cas, cliquez sur ce bouton, ouvrez Amethyst et appuyez sur enregistrer sur le nouvel écran.\n\n3.2 Lien manuel : Un URI de connexion que vous pouvez copier et coller via l'icône de collage sur cet écran.\n\n3.3 Code QR : Le portefeuille crée un code QR que vous pouvez lire depuis le bouton code QR de cet écran. + Créer + Zone de danger + Sombre + Rendre public + Salons + Communautés + Algorithmes de flux + Packs à suivre + Diffusions en direct + Place de Marché + Lectures + Relais de boîte de réception MP + Ne pas traduire depuis + Les langues affichées ici ne seront pas traduites. Sélectionnez une langue pour la supprimer et l'avoir traduite à nouveau. + Enregistrer sur le téléphone + Téléchargement de la vidéo… + Brouillon + Brouillons + Comptes + Créer + Fils + Navigation + Système + Vous + + %1$d jour + %1$d jours + + + %1$d heure + %1$d heures + + + %1$d mois + %1$d mois + + + %1$d semaine + %1$d semaines + + + %1$d an + %1$d ans + + Modifier le calendrier + Modifier l'événement de calendrier + Modifier la communauté + Modifier le pack d'emojis + Modifier la liste de lecture + Modifier le Message + Les emojis privés sont stockés chiffrés sur les relais et visibles uniquement par vous. Ils apparaissent dans votre menu de réactions et la saisie automatique ":" comme les emojis publics. + Les emojis publics sont visibles par tous et apparaissent dans votre menu de réactions et le sélecteur de saisie automatique ":" lorsque ce pack est dans votre liste d'emojis. + Chiffrer les fichiers avant le téléversement pour la confidentialité. Certains serveurs peuvent ne pas accepter les fichiers chiffrés sur les comptes gratuits. + Chiffrer les fichiers + Discussion éphémère + Erreur + Impossible de payer la facture + Impossible de retirer + Impossible d'ouvrir le paiement + Impossible d'envoyer un zap + Erreur lors de l'ouverture de l'application de signature + L'application signataire est introuvable. Vérifiez que l'application n'a pas été désinstallée + Erreur d'analyse du message d'erreur + Erreur lors de l'analyse du JSON de %1$s. Vérifiez la configuration lightning de l'utilisateur + Impossible de récupérer la facture depuis les serveurs du destinataire + Ouvrir dans le navigateur + Impossible de lire cette vidéo + Le codec ou le format n'est pas pris en charge sur cet appareil (%1$s). Essayez de l'ouvrir dans votre navigateur. + Erreurs + Sync relay + événements de vous + événements pour vous + Cyclisme + Alimentation + Jeûne + Randonnée + Méditation + Aviron + Course à pied + Musculation + Natation + Marche + Agrandir + Date d'expiration + Exporter les paramètres de relais + Échec de la suppression : %1$s + Échec du chiffrement de votre clé privée + Échec de l'enregistrement de l'image + Échec de l'enregistrement du PDF + Impossible d'enregistrer la vidéo + De nombreux serveurs n'acceptent pas les fichiers chiffrés sur les comptes gratuits. Vous pouvez réessayer sans chiffrement. + Échec du téléversement chiffré + Erreur de téléversement : %1$s + Échec du téléversement du fichier + Impossible de téléverser vers %1$s: %2$s + Ajouter aux favoris + Se charge via le web ouvert. + Se charge via Tor. + Récent + Supprimer des favoris + Cette application n'est pas encore chargée. Réessayez dans un instant. + Applications favorites + Algorithmes de flux favoris + Paiement effectué + Publié sur les relais + Fichier téléversé + Flux de relais favoris + Relais que vous visitez fréquemment pour voir leur flux global + Communautés + Algorithmes de flux + Flux + Centres d'intérêt + Listes + Lieux + Relais + Serveur fichier + Choisissez un serveur vers lequel téléverser ce fichier + Masque les messages d'inconnus qui étaient exactement les mêmes depuis 5 fois ou plus + Filtrer les spams + Suivre + Suivre en retour + Tous les algorithmes de flux favoris + Autour de moi + Sélectionné + Général + Liste de suivi par défaut + Tous les abonnements + Tous les abonnements de l'utilisateur + Le mien + Liste en Sourdine + Nouveau pack de suivi + Modifier le Pack de Suivi + Les métadonnées du pack de suivi sont visibles par tous sur Nostr et sont fréquemment publiées sur de nombreux sites Web comme kits de démarrage pour les nouveaux utilisateurs. + Pack de suivi metadata + Packs d'abonnements + Nouvelle liste de suivi + Modifier la liste + Style de la galerie de profil + Choisissez le style de la galerie + Classique + Moderne + Post exclusif à la localisation + Seuls les abonnés à cette localisation le verront. Vos abonnés généraux ne le verront pas. + %1$s financés sur un objectif de %2$s sats + Ce contenu a changé. L'auteur n'a peut-être pas vu ou approuvé le changement + Qu'est-ce que cela signifie ? + Ce contenu est le même depuis le message + Bonjour %1$s, est-ce toujours disponible ? + Mots Masqués + Supprime les publications des fils de la communauté lorsque la communauté publie un document de règles NIP-9B et qu'un événement ne le respecterait pas. Aucun effet lorsqu'une communauté n'a pas de règles structurées. + Masquer les publications qui enfreignent les règles de la communauté + Cacher le mot de passe + Mise en ligne de %1$s (%2$d sur %3$d) + Tout + Mauvaise requête - Le serveur ne peut pas ou ne veut pas traiter la requête. + Non autorisé - L'utilisateur n'a pas d'identifiants d'authentification valides + Paiement requis - Le serveur requiert un paiement pour compléter la requête + Interdit - L'utilisateur n'a pas les droits d'accès pour effectuer la requête + Non Trouvé - Le serveur ne peut pas trouver l'adresse demandée + Méthode non autorisée - Le serveur supporte la méthode de requête, mais pas la ressource cible + Non Acceptable - Le serveur ne trouve aucun contenu qui satisfasse la requête. + Authentification du proxy requise - L'utilisateur n'a pas d'identifiants d'authentification valides + Expiration de la requête - Le serveur a expiré en attente de quelqu'un d'autre + Conflit - Le serveur ne peut pas répondre à la requête car il y a un conflit avec la ressource + Parti - Le contenu demandé a été définitivement supprimé du serveur et ne sera pas rétabli + Longueur requise - Le serveur rejette la requête car elle nécessite une définition + La précondition a échoué - Conditions préalables de la demande dans les champs de l'entête que le serveur ne respecte pas + Données trop grandes - La requête est supérieure aux limites définies par le serveur, et le serveur refuse de la traiter + URI trop longue - L'URL demandée par le client est trop longue pour que le serveur puisse la traiter. + Type de média non pris en charge - La requête utilise un format média que le serveur ne prend pas en charge + Plage non satisfaisante - Le serveur ne peut pas remplir la valeur indiquée dans le champ d'entête Range de requête. + Attente échouée - Le serveur ne peut pas répondre aux exigences indiquées par le champ d'entête Expect de la requête + Mise à jour requise - Le serveur refuse de traiter la requête en utilisant le protocole courant, à moins que le client ne passe à un autre protocole. + Erreur interne du serveur - Le serveur a rencontré une erreur inattendue et ne peut pas compléter la requête + Non implémenté - Le serveur ne peut pas répondre à la requête ou ne reconnaît pas la méthode de requête + Mauvaise passerelle - Le serveur agit comme passerelle et a reçu une réponse invalide de l'hôte + Service indisponible - Ceci se produit souvent lorsqu'un serveur est surchargé ou stoppé pour maintenance + Délai d'attente de la passerelle - Le serveur agissait comme une passerelle ou un proxy et a expiré, en attente d'une réponse + Version HTTP non prise en charge - Le serveur ne prend pas en charge la version HTTP de la requête + Variant Also Negotiates - Le serveur a une erreur de configuration interne + Stockage insuffisant - Le serveur n'a pas assez d'espace pour traiter la demande avec succès + Boucle détectée - Le serveur détecte une boucle infinie lors du traitement de la requête + Authentification réseau requise - Le client doit être authentifié pour accéder au réseau + Comportement illégal + Image enregistrée dans la galerie + Falsification d'identité + Relais de réception + Montant de la facture (%1$s sats) incorrect de %2$s. Il aurait dû être %3$s + Relais indexeur + Relais qui se spécialisent dans l'hébergement des métadonnées et des listes de relais de chacun, comme purplepag.es. Amethyst utilisera ces relais pour trouver des utilisateurs qui ne sont pas dans vos listes. + Nouvel ensemble d'intérêts + Renommer + Ensembles de hashtags + Clé non valide + Clé invalide : %1$s + Adresse invalide + Amethyst a reçu une URI à ouvrir mais cette URI était invalide : %1$s + Il n'est pas possible de citer un brouillon + Il n'est pas possible de réagir à un brouillon + Il n'est pas possible de répondre à un brouillon + Il n'est pas possible de zapper un brouillon + La clé est requise + Relais KeyPackage + Relais où vos MLS KeyPackages sont publiés (MIP-00). Les autres utilisateurs récupèrent ces KeyPackages pour vous inviter dans des discussions de groupe Marmot. Insérez entre 1 et 3 relais qui acceptent les événements KeyPackage de votre part et autorisent les lectures publiques. + Ensemble de badges acceptés + Prologue d'aventure + Lecture d'aventure + Scène d'aventure + Recommandations d'applications + Rendez-vous + Applications + RSVP rendez-vous + En-tête audio + Piste audio + Podcasts créés + Récompenses de badge + Définitions de badges + Données blob + En-têtes blob + Relais bloqués + Auth Blossom + Serveurs Blossom + Liste de signets + Relais de diffusion + Calendrier + Définition de canal + Masquer message du canal + Liste de canaux + Message de canal + Métadonnées du canal + Utilisateur muet du canal + Auth échecs + Défis aux échecs + Offre de nulle aux échecs + Acceptation de partie d'échecs + Fin de partie d'échecs + Jeux d'échecs + Coup aux échecs + Petites annonces + Commentaires + Déf. communauté + Liste de communautés + Publication communautaire + Carte de contact + Rendez-vous journalier + Suppressions + Fichier DM + Message DM + Relais DM + Brouillons + Demande de contenu DVM + Réponse contenu DVM + Statut DVM + Demande utilisateur DVM + Réponse utilisateur DVM + Modifications + Liste des packs d'émoji + Packs d'émojis + Chat éphémère + Salles de discussion éphémères + Podcasts favoris + Relais favoris + En-têtes de fichier + Serveurs de fichiers + Liste de suivi + Packs de suivi + Suivis géohash + Problème Git + Correctif Git + Réponse Git + Dépôt Git + Suivis de hashtag + Surlignages + Auth Http + Liste de relais index + Discussions en direct + Diffusions en direct + Données médicales + Salle de réunion + Espace de réunion + Playlist musicale + Piste musicale + Liste en sourdine + Signets nommés + Serveurs Nests + Requête NWC + Réponse NWC + Ancienne liste de signets + Relais de sortie + Listes de personnes + Photos + Épingles + Épisode de podcast + Émission de podcast + Sondage + Réponse au sondage + Relais privés + Zaps privés + Profil + Badges de profil + Galerie de profil + Relais proxy + Message public + Réactions + Auth relais + Découverte de relais + Annonce de surveillance de relais + Ensemble de relais + Signalements + Présence en salle + Sceaux + Relais de recherche + Vidéos courtes + Commentaires torrent + Fournisseurs de confiance + Relais de confiance + Suppression d'utilisateur + Paramètres utilisateur + Statut utilisateur + Vidéos + Vidéo (Repl) + Message vocal + Réponse vocale + Signet web + Entraînements + Objectifs Zap + Sondage Zap + Demande Zap + Connus + Préférences d'affichage de la langue + Pour chaque paire de langues traduites, choisissez quelle langue afficher en premier. + Vu il y a %1$s + Vu à l'instant + Jamais vu + Vu le %1$s (il y a %2$s) + Partir + Clair + Diffusions en direct + Relais locaux + Liste des relais qui sont en cours d'exécution sur cet appareil. + Connectez vous avec une clé privée pour pouvoir booster des posts + Connectez-vous avec une clé privée pour Suivre + Vous utilisez une clé publique et les clés publiques sont en lecture seule. Connectez-vous avec une clé privée pour pouvoir masquer un mot ou une phrase + Connectez vous avec une clé privée pour pouvoir répondre + Connectez vous avec une clé privée pour pouvoir envoyer des zaps + Vous utilisez une clé publique et les clés publiques sont en lecture seule. Connectez-vous avec une clé privée pour pouvoir afficher un mot ou une phrase + Vous utilisez une clé publique et les clés publiques sont en lecture seule. Connectez-vous avec une clé privée pour pouvoir signer des événements + Connectez-vous avec une clé privée pour ne plus Suivre + Vous utilisez une clé publique et les clés publiques sont en lecture seule. Connectez-vous avec une clé privée pour pouvoir téléverser + Connectez vous avec une clé privée pour pouvoir aimer des posts + Vidéos + Mes packs d'emojis + Ajout de %1$s… + Privilèges d'administrateur accordés + Privilèges d'administrateur révoqués + Échec de l'ajout de %1$s : %2$s + Échec de la création du groupe : %1$s + Échec de l'octroi des droits d'administrateur : %1$s + Échec du départ du groupe : %1$s + Échec de la suppression du membre : %1$s + Échec de la révocation des droits d'administrateur : %1$s + Échec de la mise à jour : %1$s + Groupe MLS + Informations du groupe mises à jour + + %1$d membre + %1$d membres + + Membre retiré + Pas membre de ce groupe + erreur inconnue + Média ajouté + Média ajouté à votre galerie de profil + Le téléchargement du média a démarré… + Serveurs média + Le média est trop volumineux pour NIP-95 + Insérer d'abord la destination du message + Impossible d'uploader + Sujet + Les métadonnées n'ont pas pu être supprimées + Échec de la suppression des métadonnées privées du média. Téléversement annulé. + Signets migrés avec succès + Configuration lightning manquante + Plus d'options + Déplacer en privé + Déplacer en public + Téléverser une image de couverture + Choisissez une image carrée comme illustration pour cette liste de lecture. + + +%1$d piste supplémentaire + +%1$d pistes supplémentaires + + + %1$d piste + %1$d pistes + + + %1$d piste + %1$d pistes + + Téléversement de la couverture et publication. Cela continuera même si vous quittez l'écran. + Téléverser un fichier audio + Choisissez un MP3, WAV ou FLAC. Il sera téléversé sur votre serveur multimédia lors de l'enregistrement. + Téléverser une image de couverture + Choisissez une image carrée comme illustration pour cette piste. + Téléversement de la couverture + audio et publication. Cela continuera même si vous quittez l'écran. + Son activé. Cliquer pour mettre en silencieux + Silencieux. Cliquer pour réactiver le son + Mes listes + Un nom est requis + Paramètres Namecoin + Identité + Lire votre clé publique + Messagerie + Échanger des messages avec d'autres napplets + Actions clavier + Associer des raccourcis clavier + Vous afficher des notifications + Relais + Lire, signer & publier vos événements + Réseau + Récupérer des ressources web et Blossom + Stockage + Son propre stockage privé + Thème + Correspondre aux couleurs de votre application + Téléversements + Téléverser des fichiers sur votre serveur multimédia + Paiements + Payer des factures Lightning + Ce nApplet veut lire votre clé publique. + Ce nApplet veut lire votre profil et les données de votre compte. + Ce nApplet veut vous afficher des notifications. + + Ce nApplet veut payer une facture Lightning de %1$d sat. + Ce nApplet veut payer une facture Lightning de %1$d sats. + + Ce nApplet veut signer et publier un événement de type %1$d en votre nom. + Ce nApplet veut envoyer un événement chiffré en votre nom. + Ce nApplet veut signer et publier un événement de type %1$d en votre nom : + Ce nApplet veut lire des événements depuis vos relais. + Ce nApplet veut récupérer une ressource web. + Ce site veut signer un événement de type %1$d avec votre clé Nostr. + Ce nApplet veut utiliser son stockage privé. + Ce nApplet veut téléverser un fichier sur votre serveur multimédia. + Impossible d'envoyer le message + Sourdine locale + Rétablir cet intervenant + Quitter + Impossible de marquer la salle comme fermée. Départ en cours — la salle se fermera automatiquement. + + %1$d auditeur + %1$d auditeurs + + Baisser la main + Couper le micro + Réactiver le micro + Couper le son + Impossible d'enregistrer votre liste de serveurs nest. Réessayez. + Nest — En direct + Maintient l'audio actif pendant qu'une salle est ouverte. + Nest connecté + Arrêter + Appuyer pour revenir. + Suivre + Mettre en sourdine + Ne plus suivre + Réactiver le son + a quitté le nest + a rejoint en tant qu'auditeur + est monté sur scène + a levé la main + parle actuellement + Lever la main + Activer le son + Enregistré en tant qu'événement remplaçable de type kind-10112 pour que d'autres clients puissent lire votre préférence. + Vos serveurs + Suggestions intégrées que vous pouvez ajouter à votre liste en un seul appui. + Serveurs recommandés + Serveurs nest + jamais + Nouveau badge + Nouveau calendrier + Nouvel événement de calendrier + Nouvelle communauté + Modérateurs + Relais + Utilisateurs bannis + Commentaire communautaire (1111) + Article long format (30023) + Publication d'image (20) + Texte court (1) + Vidéo courte (22) + Publication vidéo (21) + Types d'événements autorisés + Taille maximale globale d'événement (facultatif) + Règles vérifiables (facultatif) + Filtre Web-of-trust (facultatif) + Nouveau pack d'emojis + Nouvel objectif + Nouvel Article + Nouvelle liste de lecture + Nouvelle piste musicale + Nouveau produit + Nouvelles demandes + Nouveaux sujets + Nouvel entraînement + + %1$d asset inclus + %1$d assets inclus + + Les applications Blossom n'ont pas été trouvées. Veuillez installer une application Blossom locale pour voir ce fichier + Impossible d'ouvrir les liens Blossom + Aucune application de caméra trouvée sur cet appareil + Adresse Lightning non définie + Aucune application trouvée pour traiter ce paiement. Veuillez installer un portefeuille compatible. + Aucune application installée pour traiter les paiements %1$s. Veuillez installer un portefeuille compatible. + Aucun type de réaction sélectionné. Appuyer longuement pour changer + Aucune réaction configurée + Aucun portefeuille trouvé pour payer une facture lightning. Veuillez installer un portefeuille Lightning pour utiliser les zaps + Aucun portefeuille trouvé pour payer une facture lightning (Erreur : %1$s). Veuillez installer un portefeuille Lightning pour utiliser les zaps + Aucun montant sélectionné pour le zap. Appui long pour modifier + Catégories + Livraison + Affichage dans l'application + maintenant + Art Nowhere + Drop Nowhere + Événement Nowhere + Forum Nowhere + Collecte de fonds Nowhere + Site Nowhere + Message Nowhere + Pétition Nowhere + Boutique Nowhere + Nudité + Impossible de construire la référence d'événement + Aucune clé publique de destinataire sur la note + Les nutzaps sont publics et révéleraient cette note privée. Utilisez un zap Lightning à la place. + Nutzap échoué + + Envoyer %1$s sats, %2$d voie + Envoyer %1$s sats, %2$d voies + + Le backend de la chaîne Bitcoin n'est pas configuré + Impossible de diffuser la transaction + Impossible de construire la transaction + Impossible de charger votre solde Bitcoin + Paiement envoyé, mais le reçu de zap n'a pas pu être publié + + Paiement envoyé (%1$d reçu sur %2$d publié), mais le reçu suivant n'a pas pu être publié + Paiement envoyé (%1$d reçus sur %2$d publiés), mais le reçu suivant n'a pas pu être publié + + La part d'un destinataire est inférieure au dust + Impossible de signer la transaction + ~1 h + Rapide + Lent + + Répartition entre %1$d destinataire + Répartition entre %1$d destinataires + + + Ignorer %1$d destinataire avec uniquement une adresse Lightning — le on-chain nécessite une clé publique Nostr pour dériver l'adresse. + Ignorer %1$d destinataires avec uniquement une adresse Lightning — le on-chain nécessite une clé publique Nostr pour dériver l'adresse. + + + Utiliser la répartition à %1$d voie de cette note + Utiliser la répartition à %1$d voies de cette note + + diffusion + construction de la transaction + chargement du solde + publication du reçu + signature + Un seul vote par utilisateur est autorisé sur ce type de sondage + Ouvrir toutes les réactions à ce message + Ouvrir + Port Socks Orbot + Explorateur Bitcoin (OTS) + Il y a une preuve que ce message a été signé avant %1$s. La preuve a été estampillée dans la blockchain Bitcoin à cette date et à cette heure. + Preuve d'horodatage + Relais d'envoi + Mot de passe requis + Payer + Message de %1$s + Cibles de paiement + Ajoutez des adresses de paiement pour différents réseaux (ex. bitcoin, lightning, ethereum). + PDF enregistré dans Téléchargements/Amethyst + Les métadonnées des listes de suivi sont visibles par tous sur Nostr. Seuls vos membres privés sont chiffrés. + Métadonnées de la liste de suivi + Images + Épingler en haut + Épingler sur le profil + Lecture + + %1$d épisode + %1$d épisodes + + Les auteurs du sondage ne peuvent pas voter dans leurs propres sondages. + Le Sondage est fermé aux nouveaux votes + Choix multiples + Choix unique + Impossible de voter + Sondages + Envoyer + + Ce message a plus de %1$d hashtag + Ce message a plus de %1$d hashtags + + Aperçu de l'image pour %1$s + Options de confidentialité + Politique de confidentialité + <Impossible de déchiffrer le message privé>\n\nVous avez été cité dans une conversation privée/cryptée entre %1$s et %2$s. + Relais de la boîte de réception MP + Insérez de 1 à 3 relais pour servir de boîte de réception privée. Les autres utilisateurs utiliseront ces relais pour vous envoyer des MPs. Les relais de la boîte de réception MP doivent accepter tout message de tout le monde, mais ne vous permet que de les télécharger. De bonnes options sont:\n - inbox.nostr.wine (payant)\n - auth.nostr1.com (gratuit)\n - you.nostr1.com (relais personnels - payant) + L'utilisateur reçoit les MPs sur ces relais + Message privé + Rendre privé : envoyer la note en gift-wrap uniquement aux utilisateurs notifiés + Les réponses à une note privée restent toujours privées + Visible par + Relais privés + Insérez entre 1 et 3 relais pour stocker des événements que personne d'autre ne peut voir, comme vos Brouillons et/ou paramètres d'application. Idéalement, ces relais sont soit locaux soit nécessitent une authentification avant de télécharger le contenu de chaque utilisateur. + Blasphème / Discours haineux + Profil + Badges de profil + Recommandations d'applications + Badges du profil + Fil des abonnés + Fil des zaps reçus + Interface du profil + profils + Proposer une Modification + Relais Proxy + Relais agrégateurs que l'application doit utiliser pour télécharger vos flux, tels que filter.nostr.wine. Cela remplace le modèle de boîte d'envoi et permettra à l'application de se connecter uniquement aux relais de vos listes. + Chat public + Les conversations publiques sont visibles pour tout le monde sur Nostr et n'importe qui + peut y participer. Elles sont idéales pour les communautés ouvertes autour de sujets spécifiques. + La modération peut être contrôlée en supprimant les messages sur ses relais + Insérez entre 1 et 3 relais qui hébergent ce groupe. + Les clients Nostr utilisent ce paramètre pour savoir où télécharger les messages et où les envoyer. + Relais + Métadonnées de tchat public + Chats publics + Relais publics d'accueil + Ce type de relais stocke tout votre contenu. Amethyst enverra vos messages ici et d'autres utiliseront ces relais pour trouver votre contenu. Insérez entre 1 et 3 relais : il peut s'agir de relais personnels, de relais payants ou de relais publics. + L'utilisateur publie son contenu sur ces relais + Message public + Relais de messagerie publique + Ce type de relais reçoit toutes les réponses, commentaires, likes et zaps de vos messages. Insérez de 1 à 3 relais et assurez-vous qu'ils acceptent les messages de n'importe qui. + L'utilisateur reçoit les notifications sur ces relais + ID Note + Supprimer + Muet le fil + Partager + Partager le Lien Navigateur + Rétablir le fil de discussion + Réaction + Réactions + Ligne de réactions + Lire depuis le Relay + Le nombre d'octets qui ont été reçus depuis ce relais, y compris les filtres et les événements + Utilisateur en lecture seule + Cliquez et maintenez pour enregistrer un message + Relais de discussion + Les relais de discussions sont des groupes de discussion contrôlés par leur relais d'origine. + Ils sont visibles par tous les utilisateurs de Nostr et tout le monde peut y participer. + Ils sont idéaux pour les communautés ouvertes autour de sujets spécifiques. Certains de ces groupes sont éphémères + et, par conséquent, les messages de discussion disparaissent avec le temps + Relais de discussions + Événements + Utilisateurs + Paramètres + Paramètres du relais + listes de sortie + Relais + Recharger & envoyer le zap + Envoyer le zap + Recharger %1$s sats sur %2$s et zapper %3$s %4$s sats · frais ≈ %5$s sats + Retirer + Supprimer des Favoris Publics + répondre ici + Notifier: + + Demande de suppression + Demande de suppression + Échec de la réinitialisation de l'état Marmot : %1$s + Réinitialiser l'état Marmot + État Marmot réinitialisé. + Réessayer + Listes de calendriers + Calendriers + Échecs + Découvrir + Accueil + Importer des abonnements + Listes de lecture + Musique + Épisodes + Planifier la publication + Annuler la planification + Les publications planifiées peuvent ne pas être publiées avant la prochaine ouverture de l'application. Les publications planifiées des autres comptes ne se déclencheront pas pendant que ce compte est actif. Activez le mode permanent dans Paramètres → Préférences d'interface pour une planification fiable en arrière-plan. + Les publications planifiées peuvent ne pas être publiées avant la prochaine ouverture de l'application. Activez le mode permanent dans Paramètres → Préférences d'interface pour une planification fiable en arrière-plan. + Publications planifiées + Envoyer maintenant + %1$s · dans %2$s + %1$s · il y a %2$s + Demain + Erreur : %1$s + ID de note copié + + Déconnecté · %1$d publication planifiée supprimée + Déconnecté · %1$d publications planifiées supprimées + + Déconnecté + + Vous avez %1$d message planifié qui n'a pas encore été publié. La déconnexion le supprimera définitivement. + Vous avez %1$d messages planifiés qui n'ont pas encore été publiés. La déconnexion les supprimera définitivement. + + Échec de la publication planifiée + Publication planifiée publiée + + vers %1$d relais + vers %1$d relais + + Annulé + Échoué + Planifié + Envoi en cours… + Envoyé + + · %1$d due dans 1h + · %1$d dues dans 1h + + + %1$d en file d'attente + %1$d en file d'attente + + De bonnes options sont:\n%1$s + Relais de recherche + Relais de recherche + Liste des relais à utiliser pour la recherche et l'étiquetage des utilisateurs. L'étiquetage et la recherche ne fonctionneront pas si aucune option n'est disponible. + événements recherchables + Clé secrète (nsec) copiée dans le presse-papiers + Vous n'avez pas encore bloqué d'utilisateurs. + Filtres de sécurité + Aucun mot masqué. Ajoutez un mot ci-dessous pour masquer les publications le contenant. + Contenu bloqué + Préférences de filtrage + Aucun compte n'a été signalé comme spam lors de cette session. + Envoyer + Envoyer tous les événements de profil (kind 0) reçus vers votre relais local + Transférer les profils vers le relais local + Dépensable pour ce destinataire : %1$s sats + Paiement échoué + Transaction : %1$s + Payement via %1$s… + Le serveur n'a pas fourni d'URL après le téléversement + Paramètres + Aucun fil mis en sourdine + Fils en sourdine + Partager en tant qu'image + Partager en tant qu'URL de l'image + Mise en ligne HLS + Partager ou Enregistrer + Afficher le QR code de la clé privée chiffrée + Inclure les messages directs et de groupe dans l'onglet Notifications. Désactivez pour conserver les messages uniquement dans l'onglet Messages. + Voir les messages + Afficher le QR code de la clé privée + Requête de signature rejetée + Assurez-vous que l'application signataire a autorisé cette transaction + Le signataire externe a renvoyé des données qui sont étranges pour la requête. Il peut y avoir un bug sur Amethyst ou le signataire. + Signataire introuvable + L'application de signature a-t-elle été désinstallée ? Vérifiez si le signataire est installé et a ce compte. Déconnectez-vous et reconnectez-vous de l'application signataire a changé. + Revenir %1$d secondes en arrière + Avancer de %1$d secondes + Applications + Le nombre d'événements spam provenant de ce relais + Spammeurs + Afficher deux onglets de notifications — Abonnements (personnes que vous suivez) et Tout le monde. L'indicateur de non-lu s'allume uniquement pour l'activité des personnes que vous suivez. + Séparer les notifications par abonnements + Tente de supprimer les métadonnées privées des fichiers multimédias pris en charge avant le téléversement + Supprimer les métadonnées privées + Lit les entraînements terminés depuis Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) et suggère de les partager en tant que publication. La permission n'est demandée qu'à la connexion. + Suggérer des entraînements à partager + Système + Thème + Sombre, Clair ou thème Système + Ce message disparaîtra dans %1$s + + +%1$d\nréponse + +%1$d\nréponses + + Aujourd'hui + Personnalisé + Faites votre choix manuellement + Par défaut + Masque votre IP des relais aléatoires + Confidentialité complète + Masque votre IP pour toutes les connexions + Interne + Désactivé + Tor/Préréglages de confidentialité + Modifier rapidement tous les paramètres ci-dessous + Tous sauf les médias + Masque votre adresse IP pour tout, sauf les images et les vidéos + Relais MP + Forcer Tor à envoyer et recevoir des MPs + Forcer Tor lors du chargement des images + Téléversements de média + Forcer Tor lors du téléversement de contenu + Opérations financières + Forcer Tor pour les transferts en zaps, lightning ou cashu + Relais non approuvés + Forcer Tor pour les relais de boîte de réception + Vérification de l'adresse Nostr + Forcer Tor lors de la vérification des adresses NIP-05 + Url/Relais en oignon + Utiliser Tor pour n'importe quelle url .onion + Photos de profil + Forcer Tor lors du chargement des photos de profil + Relais de confiance + Forcer Tor sur tous les relais de vos listes + Aperçu des URL + Forcer Tor lors du chargement des aperçus d'url + Vidéos + Forcer Tor lors du chargement des vidéos + Basique + Utiliser Tor lorsque le serveur le demande + Échec de l'ouverture du fichier + Aucune application torrent installée pour ouvrir et télécharger le fichier. + L'événement ne possède pas assez d'informations pour construire un lien magnet + Utilise le diffuseur suivi lors de l'envoi d'événements. Affiche la progression en direct et l'état par relais pendant la diffusion. + Diffusions suivies + Traduire vers + Choisir la langue dans laquelle traduire le contenu. + Traductions + Relais de confiance + Relais de confiance ne nécessitant pas une connexion Tor pour + Complet + Simplifié + Préférences de l'UI + Mode UI + Choisir le style du message + Impossible de créer une facture lightning avant d'envoyer le zap. Le portefeuille lightning du destinataire a envoyé l'erreur suivante : %1$s + Impossible de partager l'image, veuillez réessayer plus tard… + Impossible de partager l'image, veuillez réessayer plus tard… + Déchiffrement non autorisé + Le signataire n'a pas autorisé le décryptage nécessaire pour effectuer cette opération. Activez les décryptions NIP-44 dans votre application signataire et réessayez + Ne plus suivre + Détacher + Retirer du profil + Téléversement annulé + Erreur d'envoi + Échec de l'envoi de la voix : %1$s + Échec de l'envoi du message vocal + NIP-95 n'est pas encore supporté pour les messages vocaux + %1$d%% de disponibilité + Activer le moteur Tor + Utiliser la version interne ou Orbot + L'utilisateur n'a pas configuré d'adresse Lightning pour recevoir des sats + L'utilisateur %1$s n'a pas configuré d'adresse Lightning pour recevoir des sats + Historique des suppressions + Demande de suppression envoyée + Une meilleure qualité avec des tailles de fichier plus petites, mais tous les appareils ne supportent pas la lecture H.265. + Utiliser le codec H.265/HEVC + Le téléchargement de la vidéo a démarré… + Boutons du lecteur vidéo + Vidéo enregistrée dans la galerie vidéo du téléphone + Message vocal + Profond + Haute + Neutre + Aucun + Réponse vocale + Portefeuille + Portefeuille Cashu (NIP-60) + Le fournisseur de connexion de votre portefeuille a retourné l'erreur suivante : %1$s + Modifier les mints + Affiche un message d'avertissement lorsque des messages ont été rapportés 5 fois ou plus par vos abonnements + Avertir sur les rapports + Ajouter un signet web + Modifier le signet web + Signets web + Quoi de neuf ? + Entraînements + Rédiger un message… + Écrire sur le Relay + Le nombre d'octets qui ont été envoyés à ce relais, y compris les filtres et les événements + + Renommer + Sauvegarder diff --git a/commonsUI/src/commonMain/composeResources/values-fr-rFR/strings.xml b/commonsUI/src/commonMain/composeResources/values-fr-rFR/strings.xml index 41fbcd9203..0eb7ce4d0c 100644 --- a/commonsUI/src/commonMain/composeResources/values-fr-rFR/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-fr-rFR/strings.xml @@ -1917,4 +1917,1253 @@ URL de base de l'API Explorer Payer la facture depuis le DVM Payer %1$s sats au DVM + À propos & Légal + Bleu + Vert + Orange + Rose + Violet + Rouge + Paramètres du compte + Ajouter + Ajouter un serveur Blossom + Ajouter un serveur NIP-96 + Lorsqu'activé, Amethyst ajoute un tag client NIP-89 aux événements que vous publiez. + Ajouter un tag client à mes événements + Ajouter un avertissement de contenu sensible avant de montrer ce contenu + Contenu sensible + Ajouter aux Favoris Publics + Utilise un modèle IA embarqué pour proposer des corrections de texte et des changements de ton. + Proposer des améliorations de texte + Maintient les connexions à vos relais de boîte de réception actives pour les notifications en temps réel + + Connecté à %1$d relais de boîte de réception + Connecté à %1$d relais de boîte de réception + + + Connecté à %1$d relais + Connecté à %1$d relais + + Connexion aux relais de boîte de réception… + Notifications Amethyst actives + Notifications pour les appels vocaux et vidéos entrants + Appels entrants + %1$s a accepté votre défi aux échecs + Vous avertit des événements liés aux parties d'échecs + Échecs + Mises à jour d'échecs + %1$s déplacé — votre tour + Vous notifie lorsqu'un message privé est reçu + Messages privés + Nouveaux messages + Marquer comme lu + Vous notifie lorsque quelqu'un vous mentionne ou vous cite dans une publication + %1$s vous a mentionné + Mentions + Nouvelles mentions + Vous notifie lorsque quelqu'un réagit à votre publication + %1$s a réagi à votre publication + pour %1$s + Réactions + Nouvelles réactions + Vous notifie lorsque quelqu'un répond à votre publication + Réponses + Nouvelles réponses + Répondre + Notifications lorsqu'une publication planifiée est publiée ou échoue. + Publications planifiées + Vous notifie lorsque quelqu'un vous zap + %1$s sats + pour %1$s + De %1$s + Zaps reçus + Nouveaux zaps + Paramètres de l'application + Attestation + Demande d'attestation + Compétence de l'attesteur + Recommandation de l'attesteur + Visualiseur audio + Enregistre automatiquement un brouillon lorsque vous tapez ou quittez un compositeur avec du texte non envoyé, et l'envoie à vos relais de boîte d'envoi privée. + Créer automatiquement des brouillons + Défilement immersif + Masquer les barres de navigation lors du défilement + Prévisualisation des images + Charger automatiquement les images et les GIFs + Lecture vidéo + Lire automatiquement les vidéos et les GIFs + Photo de profil + Afficher les photos de profil + Prévisualisation des URLs + Afficher la prévisualisation d'URL + Lecture automatique des vidéos + Lire automatiquement les vidéos lorsqu'elles sont visibles à l'écran + Impossible de supprimer les métadonnées de l'AVIF : %1$s + Badge de récompense + Retour + Clés de sauvegarde + Badges + Échec de l'authentification + La biométrie n'a pas pu authentifier le propriétaire de ce téléphone + La biométrie n'a pas pu authentifier le propriétaire de ce téléphone. Erreur : %1$s + Bloquer + Relais bloqués + Amethyst ne se connectera jamais à ces relais + Utilisateurs bloqués + Nouvelle liste de favoris + Métadonnées de la liste de favoris + Les métadonnées des listes de favoris peuvent être vues par n'importe qui sur Nostr. Seuls vos membres privés sont chiffrés. + Favoris + Boost + Barre de navigation inférieure + Relais de diffusion + Relais qui se spécialisent dans la publication de vos notes à tous les autres relais, comme sendit.nosflare.com. Amethyst ajoutera ce relais à tous vos nouveaux événements + Navigateur + Favoris + Découvrir des applications web + Chargement via le web ouvert. Appuyer pour utiliser Tor. + Chargement via Tor. Appuyer pour utiliser le web ouvert. + + %1$s, %2$d événement + %1$s, %2$d événements + + Le téléversement de l'image a échoué + L'image sélectionnée n'a pas pu être téléversée. Réessayez ou collez une URL. + Partager l'événement de calendrier + Ouvrir dans la carte + Ouvrir le lien + En cours + %1$s · se termine %2$s + + Commence dans %1$d minute + Commence dans %1$d minutes + + Avertissement lorsqu'un événement auquel vous participez est sur le point de commencer. + Rappels de calendrier + Événement de calendrier + Une notification se déclenche lorsqu'un événement auquel vous participez est sur le point de commencer. + Envoyer des rappels + + %1$d min + %1$d min + + Rappels du calendrier + Jour + Fil + Mois + Semaine + Accepter + Bluetooth + Caméra désactivée + Caméra activée + Écouteurs + Raccrocher + Appel entrant + Appel vidéo entrant\u2026 + Appel vocal entrant\u2026 + Couper le son + Appels + Notification d'appel en cours + Amethyst a besoin d'un accès à la caméra et au microphone pour démarrer un appel vidéo. Veuillez les activer dans les paramètres de l'application. + Amethyst a besoin d'un accès à la caméra et au microphone pour démarrer un appel vidéo. Veuillez les activer dans les paramètres de l'application. + Rejeter + Paramètres d'appel + Haut-parleur + Réactiver le son + Appel avec %1$s + URL de callback introuvable dans la réponse de %1$s + Annuler + Jeton Cashu + Vérification du mint… + Impossible d'utiliser ce Cashu + Le Mint a fourni le message d'erreur suivant : %1$s + Reçu + Envoyé + Mints correspondants + + +%1$d de plus + +%1$d de plus + + Mints populaires + + Recommandé par %1$d autre + Recommandé par %1$d autres + + %1$s sat déplacés vers %2$s. + Aucun portefeuille Cashu compatible trouvé dans le système + + %1$d facture en attente + %1$d factures en attente + + Payer %1$s sat + jusqu'à %2$s sat de frais ? + Publier une demande de suppression pour votre recommandation kind:38000 de %1$s. Les relais qui respectent NIP-09 la supprimeront. + %1$s sats récupérés sur %2$s preuves. + Cashu reçu + %1$s sats ont été envoyés à votre portefeuille. (Frais : %2$s sats) + + Fonds détenus chez %1$d mint que vous n'utilisez pas + Fonds détenus chez %1$d mints que vous n'utilisez pas + + En attente du paiement de la facture… + Arrêter la diffusion + Diffuser sur l'appareil + Normes de protection de l'enfance + Accessoires + Art + Livres + Vêtements + Articles de collection + Artisanat + Électronique + Fitness + Nourriture + Mobilier + Accueil + Divers + Bureau + Autres + Animaux de compagnie + Sports + Quotidien + Mensuel + Unique + Hebdomadaire + Payer %1$s via %2$s? + Payer cette facture via %1$s? + Le service de débit n'a pas finalisé le paiement. + Saisissez un montant valide pour cette offre. + Demande de facture… + Fermer toutes les réactions à ce message + Fermé + Communautés + Le brouillon fait %1$d octets ; cette communauté limite ce kind à %2$d octets. + Le brouillon fait %1$d octets ; cette communauté limite les événements à %2$d octets. + Vous avez déjà publié %1$d événements de ce kind aujourd'hui (limite %2$d). + Paramètres de composition + Le port par défaut est 9050 + Relais connectés + Liste actuelle des relais utilisés + Pourcentage de connexions réussies vers le relais + Toujours + Jamais + WiFi illimité + Ajouter un Document + Ajouter une Image + Ajouter un média + Ajouter une Vidéo + Masquer + Avertir + Afficher + Conversations + Convertit les GIF animés en vidéo MP4 pour une taille de fichier réduite et une meilleure compatibilité de lecture. + Convertir GIF en MP4 + Copie de l'ID de la note (@note1) dans le presse-papiers + Copie du contenu de la note dans le presse-papiers + Copié dans le presse-papiers + Copie du @npub utilisateur dans le presse-papiers + Copier ma clé secrète + Copier dans le presse-papiers + Impossible d'assembler LNUrl à partir de l'adresse Lightning "%1$s". Vérifiez la configuration de l'utilisateur + Impossible de vérifier le fichier téléchargé après le téléversement : %1$s + Impossible de télécharger le média depuis le serveur + Impossible de récupérer la facture à partir de %1$s: %2$s + Impossible d'ouvrir le fichier compressé + Portefeuille introuvable + Amethyst n'a trouvé aucune application de portefeuille prenant en charge Nostr Wallet Connect (NWC).\n\nVoici ce que vous pouvez faire :\n\n1. Vérifier la prise en charge NWC : Vérifiez que votre application de portefeuille préférée est compatible avec Nostr Wallet Connect.\n\n2. Créer une connexion : Accédez à votre application de portefeuille et créez une nouvelle connexion NWC.\n\n3. Lier à Amethyst : Votre portefeuille vous proposera généralement trois options :\n\n3.1 Lien automatique : Un bouton pour ouvrir et connecter automatiquement Amethyst. Si c'est le cas, cliquez sur ce bouton, ouvrez Amethyst et appuyez sur enregistrer sur le nouvel écran.\n\n3.2 Lien manuel : Un URI de connexion que vous pouvez copier et coller via l'icône de collage sur cet écran.\n\n3.3 Code QR : Le portefeuille crée un code QR que vous pouvez lire depuis le bouton code QR de cet écran. + Créer + d + Zone de danger + Sombre + Description + Rendre public + Salons + Communautés + Algorithmes de flux + Packs à suivre + Diffusions en direct + Place de Marché + Lectures + Relais de boîte de réception MP + MPs + Ne pas traduire depuis + Les langues affichées ici ne seront pas traduites. Sélectionnez une langue pour la supprimer et l'avoir traduite à nouveau. + Enregistrer sur le téléphone + Téléchargement de la vidéo… + Brouillon + Brouillons + Comptes + Créer + Fils + Navigation + Système + Vous + + %1$d jour + %1$d jours + + + %1$d heure + %1$d heures + + + %1$d minute + %1$d minutes + + + %1$d mois + %1$d mois + + + %1$d semaine + %1$d semaines + + + %1$d an + %1$d ans + + Modifier le calendrier + Modifier l'événement de calendrier + Modifier la communauté + Modifier le pack d'emojis + Modifier la liste de lecture + Modifier le Message + Les emojis privés sont stockés chiffrés sur les relais et visibles uniquement par vous. Ils apparaissent dans votre menu de réactions et la saisie automatique ":" comme les emojis publics. + Les emojis publics sont visibles par tous et apparaissent dans votre menu de réactions et le sélecteur de saisie automatique ":" lorsque ce pack est dans votre liste d'emojis. + Émojis + Chiffrer les fichiers avant le téléversement pour la confidentialité. Certains serveurs peuvent ne pas accepter les fichiers chiffrés sur les comptes gratuits. + Chiffrer les fichiers + Discussion éphémère + Erreur + Impossible de payer la facture + Impossible de retirer + Impossible d'ouvrir le paiement + Impossible d'envoyer un zap + Erreur lors de l'ouverture de l'application de signature + L'application signataire est introuvable. Vérifiez que l'application n'a pas été désinstallée + Erreur d'analyse du message d'erreur + Erreur lors de l'analyse du JSON de %1$s. Vérifiez la configuration lightning de l'utilisateur + Impossible de récupérer la facture depuis les serveurs du destinataire + Ouvrir dans le navigateur + Impossible de lire cette vidéo + Le codec ou le format n'est pas pris en charge sur cet appareil (%1$s). Essayez de l'ouvrir dans votre navigateur. + Erreurs + Sync relay + événements de vous + événements pour vous + AMRAP + Circuit + Cyclisme + Alimentation + EMOM + Jeûne + Randonnée + Méditation + Aviron + Course à pied + Musculation + Natation + Marche + Yoga + Agrandir + Date d'expiration + Exporter les paramètres de relais + Échec de la suppression : %1$s + Échec du chiffrement de votre clé privée + Échec de l'enregistrement de l'image + Échec de l'enregistrement du PDF + Impossible d'enregistrer la vidéo + De nombreux serveurs n'acceptent pas les fichiers chiffrés sur les comptes gratuits. Vous pouvez réessayer sans chiffrement. + Échec du téléversement chiffré + Erreur de téléversement : %1$s + Échec du téléversement du fichier + Impossible de téléverser vers %1$s: %2$s + Ajouter aux favoris + Se charge via le web ouvert. + Se charge via Tor. + Récent + Supprimer des favoris + Cette application n'est pas encore chargée. Réessayez dans un instant. + Applications favorites + Algorithmes de flux favoris + Paiement effectué + Publié sur les relais + Fichier téléversé + Flux de relais favoris + Relais que vous visitez fréquemment pour voir leur flux global + Communautés + Algorithmes de flux + Flux + Hashtags + Centres d'intérêt + Listes + Lieux + Relais + Serveur fichier + Choisissez un serveur vers lequel téléverser ce fichier + Masque les messages d'inconnus qui étaient exactement les mêmes depuis 5 fois ou plus + Filtrer les spams + Suivre + Suivre en retour + Tous les algorithmes de flux favoris + Autour de moi + Sélectionné + Général + Liste de suivi par défaut + Tous les abonnements + Tous les abonnements de l'utilisateur + Le mien + Liste en Sourdine + Nouveau pack de suivi + Modifier le Pack de Suivi + Les métadonnées du pack de suivi sont visibles par tous sur Nostr et sont fréquemment publiées sur de nombreux sites Web comme kits de démarrage pour les nouveaux utilisateurs. + Pack de suivi metadata + Packs d'abonnements + Nouvelle liste de suivi + Modifier la liste + Police + Police utilisée dans l'application + Monospace + Sans serif + Serif + Défaut du système + Taille de police + Mettre à l'échelle la taille du texte dans l'application + Très grand + Grand + Normal + Petit + Style de la galerie de profil + Choisissez le style de la galerie + Classique + Moderne + Post exclusif à la localisation + Seuls les abonnés à cette localisation le verront. Vos abonnés généraux ne le verront pas. + Dépôts Git + %1$s financés sur un objectif de %2$s sats + h + Ce contenu a changé. L'auteur n'a peut-être pas vu ou approuvé le changement + Qu'est-ce que cela signifie ? + Ce contenu est le même depuis le message + Bonjour %1$s, est-ce toujours disponible ? + Mots Masqués + Supprime les publications des fils de la communauté lorsque la communauté publie un document de règles NIP-9B et qu'un événement ne le respecterait pas. Aucun effet lorsqu'une communauté n'a pas de règles structurées. + Masquer les publications qui enfreignent les règles de la communauté + Cacher le mot de passe + Mise en ligne de %1$s (%2$d sur %3$d) + Tout + Mauvaise requête - Le serveur ne peut pas ou ne veut pas traiter la requête. + Non autorisé - L'utilisateur n'a pas d'identifiants d'authentification valides + Paiement requis - Le serveur requiert un paiement pour compléter la requête + Interdit - L'utilisateur n'a pas les droits d'accès pour effectuer la requête + Non Trouvé - Le serveur ne peut pas trouver l'adresse demandée + Méthode non autorisée - Le serveur supporte la méthode de requête, mais pas la ressource cible + Non Acceptable - Le serveur ne trouve aucun contenu qui satisfasse la requête. + Authentification du proxy requise - L'utilisateur n'a pas d'identifiants d'authentification valides + Expiration de la requête - Le serveur a expiré en attente de quelqu'un d'autre + Conflit - Le serveur ne peut pas répondre à la requête car il y a un conflit avec la ressource + Parti - Le contenu demandé a été définitivement supprimé du serveur et ne sera pas rétabli + Longueur requise - Le serveur rejette la requête car elle nécessite une définition + La précondition a échoué - Conditions préalables de la demande dans les champs de l'entête que le serveur ne respecte pas + Données trop grandes - La requête est supérieure aux limites définies par le serveur, et le serveur refuse de la traiter + URI trop longue - L'URL demandée par le client est trop longue pour que le serveur puisse la traiter. + Type de média non pris en charge - La requête utilise un format média que le serveur ne prend pas en charge + Plage non satisfaisante - Le serveur ne peut pas remplir la valeur indiquée dans le champ d'entête Range de requête. + Attente échouée - Le serveur ne peut pas répondre aux exigences indiquées par le champ d'entête Expect de la requête + Mise à jour requise - Le serveur refuse de traiter la requête en utilisant le protocole courant, à moins que le client ne passe à un autre protocole. + Erreur interne du serveur - Le serveur a rencontré une erreur inattendue et ne peut pas compléter la requête + Non implémenté - Le serveur ne peut pas répondre à la requête ou ne reconnaît pas la méthode de requête + Mauvaise passerelle - Le serveur agit comme passerelle et a reçu une réponse invalide de l'hôte + Service indisponible - Ceci se produit souvent lorsqu'un serveur est surchargé ou stoppé pour maintenance + Délai d'attente de la passerelle - Le serveur agissait comme une passerelle ou un proxy et a expiré, en attente d'une réponse + Version HTTP non prise en charge - Le serveur ne prend pas en charge la version HTTP de la requête + Variant Also Negotiates - Le serveur a une erreur de configuration interne + Stockage insuffisant - Le serveur n'a pas assez d'espace pour traiter la demande avec succès + Boucle détectée - Le serveur détecte une boucle infinie lors du traitement de la requête + Authentification réseau requise - Le client doit être authentifié pour accéder au réseau + Comportement illégal + Image enregistrée dans la galerie + Falsification d'identité + Relais de réception + Montant de la facture (%1$s sats) incorrect de %2$s. Il aurait dû être %3$s + Relais indexeur + Relais qui se spécialisent dans l'hébergement des métadonnées et des listes de relais de chacun, comme purplepag.es. Amethyst utilisera ces relais pour trouver des utilisateurs qui ne sont pas dans vos listes. + Nouvel ensemble d'intérêts + Renommer + Ensembles de hashtags + Clé non valide + Clé invalide : %1$s + Adresse invalide + Amethyst a reçu une URI à ouvrir mais cette URI était invalide : %1$s + Il n'est pas possible de citer un brouillon + Il n'est pas possible de réagir à un brouillon + Il n'est pas possible de répondre à un brouillon + Il n'est pas possible de zapper un brouillon + La clé est requise + Relais KeyPackage + Relais où vos MLS KeyPackages sont publiés (MIP-00). Les autres utilisateurs récupèrent ces KeyPackages pour vous inviter dans des discussions de groupe Marmot. Insérez entre 1 et 3 relais qui acceptent les événements KeyPackage de votre part et autorisent les lectures publiques. + Ensemble de badges acceptés + Prologue d'aventure + Lecture d'aventure + Scène d'aventure + Recommandations d'applications + Rendez-vous + Applications + RSVP rendez-vous + En-tête audio + Piste audio + Podcasts créés + Récompenses de badge + Définitions de badges + Données blob + En-têtes blob + Relais bloqués + Blogs + Auth Blossom + Serveurs Blossom + Liste de signets + Relais de diffusion + Calendrier + Définition de canal + Masquer message du canal + Liste de canaux + Message de canal + Métadonnées du canal + Utilisateur muet du canal + Auth échecs + Défis aux échecs + Offre de nulle aux échecs + Acceptation de partie d'échecs + Fin de partie d'échecs + Jeux d'échecs + Coup aux échecs + Petites annonces + Commentaires + Déf. communauté + Liste de communautés + Publication communautaire + Carte de contact + Rendez-vous journalier + Suppressions + Fichier DM + Message DM + Relais DM + Brouillons + Demande de contenu DVM + Réponse contenu DVM + Statut DVM + Demande utilisateur DVM + Réponse utilisateur DVM + Modifications + Liste des packs d'émoji + Packs d'émojis + Chat éphémère + Salles de discussion éphémères + Podcasts favoris + Relais favoris + En-têtes de fichier + Serveurs de fichiers + Liste de suivi + Packs de suivi + Suivis géohash + Problème Git + Correctif Git + Réponse Git + Dépôt Git + Suivis de hashtag + Surlignages + Auth Http + Liste de relais index + Discussions en direct + Diffusions en direct + Données médicales + Salle de réunion + Espace de réunion + Playlist musicale + Piste musicale + Liste en sourdine + Signets nommés + Serveurs Nests + NIP + NIP-04 MPs + Nostr Connect + Notes + Requête NWC + Réponse NWC + Ancienne liste de signets + Relais de sortie + Listes de personnes + Photos + Épingles + Épisode de podcast + Émission de podcast + Sondage + Réponse au sondage + Relais privés + Zaps privés + Profil + Badges de profil + Galerie de profil + Relais proxy + Message public + Réactions + Auth relais + Découverte de relais + Annonce de surveillance de relais + Ensemble de relais + Signalements + Republications + Présence en salle + Sceaux + Relais de recherche + Vidéos courtes + Commentaires torrent + Torrents + Fournisseurs de confiance + Relais de confiance + Suppression d'utilisateur + Paramètres utilisateur + Statut utilisateur + Vidéos + Vidéo (Repl) + Message vocal + Réponse vocale + Signet web + Wiki + Entraînements + Objectifs Zap + Sondage Zap + Demande Zap + Zaps + Connus + Préférences d'affichage de la langue + Pour chaque paire de langues traduites, choisissez quelle langue afficher en premier. + Vu il y a %1$s + Vu à l'instant + Jamais vu + Vu le %1$s (il y a %2$s) + Partir + Clair + Diffusions en direct + Relais locaux + Liste des relais qui sont en cours d'exécution sur cet appareil. + Connectez vous avec une clé privée pour pouvoir booster des posts + Connectez-vous avec une clé privée pour Suivre + Vous utilisez une clé publique et les clés publiques sont en lecture seule. Connectez-vous avec une clé privée pour pouvoir masquer un mot ou une phrase + Connectez vous avec une clé privée pour pouvoir répondre + Connectez vous avec une clé privée pour pouvoir envoyer des zaps + Vous utilisez une clé publique et les clés publiques sont en lecture seule. Connectez-vous avec une clé privée pour pouvoir afficher un mot ou une phrase + Vous utilisez une clé publique et les clés publiques sont en lecture seule. Connectez-vous avec une clé privée pour pouvoir signer des événements + Connectez-vous avec une clé privée pour ne plus Suivre + Vous utilisez une clé publique et les clés publiques sont en lecture seule. Connectez-vous avec une clé privée pour pouvoir téléverser + Connectez vous avec une clé privée pour pouvoir aimer des posts + Vidéos + m + Mes packs d'emojis + Ajout de %1$s… + Privilèges d'administrateur accordés + Privilèges d'administrateur révoqués + Échec de l'ajout de %1$s : %2$s + Échec de la création du groupe : %1$s + Échec de l'octroi des droits d'administrateur : %1$s + Échec du départ du groupe : %1$s + Échec de la suppression du membre : %1$s + Échec de la révocation des droits d'administrateur : %1$s + Échec de la mise à jour : %1$s + Groupe MLS + Informations du groupe mises à jour + + %1$d membre + %1$d membres + + Membre retiré + + %1$d message + %1$d messages + + Pas membre de ce groupe + erreur inconnue + Média ajouté + Média ajouté à votre galerie de profil + Le téléchargement du média a démarré… + Serveurs média + Le média est trop volumineux pour NIP-95 + Insérer d'abord la destination du message + Impossible d'uploader + Sujet + Les métadonnées n'ont pas pu être supprimées + Échec de la suppression des métadonnées privées du média. Téléversement annulé. + Signets migrés avec succès + Configuration lightning manquante + Plus d'options + Déplacer en privé + Déplacer en public + Téléverser une image de couverture + Choisissez une image carrée comme illustration pour cette liste de lecture. + + +%1$d piste supplémentaire + +%1$d pistes supplémentaires + + + %1$d piste + %1$d pistes + + + %1$d piste + %1$d pistes + + Téléversement de la couverture et publication. Cela continuera même si vous quittez l'écran. + Téléverser un fichier audio + Choisissez un MP3, WAV ou FLAC. Il sera téléversé sur votre serveur multimédia lors de l'enregistrement. + Téléverser une image de couverture + Choisissez une image carrée comme illustration pour cette piste. + Téléversement de la couverture + audio et publication. Cela continuera même si vous quittez l'écran. + Son activé. Cliquer pour mettre en silencieux + Silencieux. Cliquer pour réactiver le son + Mes listes + Un nom est requis + %1$d ms + Paramètres Namecoin + Identité + Lire votre clé publique + Messagerie + Échanger des messages avec d'autres napplets + Actions clavier + Associer des raccourcis clavier + Notifications + Vous afficher des notifications + Relais + Lire, signer & publier vos événements + Réseau + Récupérer des ressources web et Blossom + Stockage + Son propre stockage privé + Thème + Correspondre aux couleurs de votre application + Téléversements + Téléverser des fichiers sur votre serveur multimédia + Paiements + Payer des factures Lightning + Ce nApplet veut lire votre clé publique. + Ce nApplet veut lire votre profil et les données de votre compte. + Ce nApplet veut vous afficher des notifications. + + Ce nApplet veut payer une facture Lightning de %1$d sat. + Ce nApplet veut payer une facture Lightning de %1$d sats. + + Ce nApplet veut signer et publier un événement de type %1$d en votre nom. + Ce nApplet veut envoyer un événement chiffré en votre nom. + Ce nApplet veut signer et publier un événement de type %1$d en votre nom : + Ce nApplet veut lire des événements depuis vos relais. + Ce nApplet veut récupérer une ressource web. + Ce site veut signer un événement de type %1$d avec votre clé Nostr. + Ce nApplet veut utiliser son stockage privé. + Ce nApplet veut téléverser un fichier sur votre serveur multimédia. + lire vos messages privés + chiffrer un message + signer pour %1$s (type : %2$d) + Applications connectées + Impossible d'envoyer le message + Sourdine locale + Rétablir cet intervenant + Quitter + Impossible de marquer la salle comme fermée. Départ en cours — la salle se fermera automatiquement. + + %1$d auditeur + %1$d auditeurs + + Baisser la main + Couper le micro + Réactiver le micro + Couper le son + Impossible d'enregistrer votre liste de serveurs nest. Réessayez. + Nest — En direct + Maintient l'audio actif pendant qu'une salle est ouverte. + Nest connecté + Arrêter + Appuyer pour revenir. + Suivre + Mettre en sourdine + Ne plus suivre + Réactiver le son + a quitté le nest + a rejoint en tant qu'auditeur + est monté sur scène + a levé la main + parle actuellement + Lever la main + Activer le son + Enregistré en tant qu'événement remplaçable de type kind-10112 pour que d'autres clients puissent lire votre préférence. + Vos serveurs + Suggestions intégrées que vous pouvez ajouter à votre liste en un seul appui. + Serveurs recommandés + Serveurs nest + jamais + Nouveau badge + Nouveau calendrier + Nouvel événement de calendrier + Nouvelle communauté + Modérateurs + Relais + Utilisateurs bannis + Commentaire communautaire (1111) + Article long format (30023) + Publication d'image (20) + Texte court (1) + Vidéo courte (22) + Publication vidéo (21) + Types d'événements autorisés + Taille maximale globale d'événement (facultatif) + Règles vérifiables (facultatif) + Filtre Web-of-trust (facultatif) + Nouveau pack d'emojis + Nouvel objectif + Nouvel Article + Nouvelle liste de lecture + Nouvelle piste musicale + Nouveau produit + Nouvelles demandes + Nouveaux sujets + Nouvel entraînement + + %1$d asset inclus + %1$d assets inclus + + Les applications Blossom n'ont pas été trouvées. Veuillez installer une application Blossom locale pour voir ce fichier + Impossible d'ouvrir les liens Blossom + Aucune application de caméra trouvée sur cet appareil + Adresse Lightning non définie + Aucune application trouvée pour traiter ce paiement. Veuillez installer un portefeuille compatible. + Aucune application installée pour traiter les paiements %1$s. Veuillez installer un portefeuille compatible. + Aucun type de réaction sélectionné. Appuyer longuement pour changer + Aucune réaction configurée + Aucun portefeuille trouvé pour payer une facture lightning. Veuillez installer un portefeuille Lightning pour utiliser les zaps + Aucun portefeuille trouvé pour payer une facture lightning (Erreur : %1$s). Veuillez installer un portefeuille Lightning pour utiliser les zaps + Aucun montant sélectionné pour le zap. Appui long pour modifier + Notifications + Catégories + Livraison + Affichage dans l'application + maintenant + Art Nowhere + Drop Nowhere + Événement Nowhere + Forum Nowhere + Collecte de fonds Nowhere + Site Nowhere + Message Nowhere + Pétition Nowhere + Boutique Nowhere + nSites + Nudité + Impossible de construire la référence d'événement + Aucune clé publique de destinataire sur la note + Les nutzaps sont publics et révéleraient cette note privée. Utilisez un zap Lightning à la place. + Nutzap échoué + + Envoyer %1$s sats, %2$d voie + Envoyer %1$s sats, %2$d voies + + Le backend de la chaîne Bitcoin n'est pas configuré + Impossible de diffuser la transaction + Impossible de construire la transaction + Impossible de charger votre solde Bitcoin + Paiement envoyé, mais le reçu de zap n'a pas pu être publié + + Paiement envoyé (%1$d reçu sur %2$d publié), mais le reçu suivant n'a pas pu être publié + Paiement envoyé (%1$d reçus sur %2$d publiés), mais le reçu suivant n'a pas pu être publié + + La part d'un destinataire est inférieure au dust + Impossible de signer la transaction + ~10 min + ~30 min + ~1 h + Rapide + Normal + Lent + + Répartition entre %1$d destinataire + Répartition entre %1$d destinataires + + + Ignorer %1$d destinataire avec uniquement une adresse Lightning — le on-chain nécessite une clé publique Nostr pour dériver l'adresse. + Ignorer %1$d destinataires avec uniquement une adresse Lightning — le on-chain nécessite une clé publique Nostr pour dériver l'adresse. + + + Utiliser la répartition à %1$d voie de cette note + Utiliser la répartition à %1$d voies de cette note + + diffusion + construction de la transaction + chargement du solde + publication du reçu + signature + Un seul vote par utilisateur est autorisé sur ce type de sondage + Ouvrir toutes les réactions à ce message + Ouvrir + Port Socks Orbot + Explorateur Bitcoin (OTS) + Il y a une preuve que ce message a été signé avant %1$s. La preuve a été estampillée dans la blockchain Bitcoin à cette date et à cette heure. + Preuve d'horodatage + Relais d'envoi + Mot de passe requis + Pause + Payer + Message de %1$s + Cibles de paiement + Ajoutez des adresses de paiement pour différents réseaux (ex. bitcoin, lightning, ethereum). + PDF enregistré dans Téléchargements/Amethyst + Les métadonnées des listes de suivi sont visibles par tous sur Nostr. Seuls vos membres privés sont chiffrés. + Métadonnées de la liste de suivi + Images + Épingler en haut + Épingler sur le profil + Lecture + + %1$d chapitre + %1$d chapitres + + Modifier l'épisode + Votre podcast + Ajouter un fichier audio + MP3, M4A, ou autre audio + URL des chapitres + + %1$d épisode + %1$d épisodes + + URL de la transcription + URL de la vidéo + Nouvel épisode + Auteur + Catégories + Technologie, Actualités + Droit d'auteur + Ajouter une pochette + Email de contact + https://… + Langue + en + Afficher le titre + Mon podcast + Site internet + Cet utilisateur n'a pas d'adresse Lightning + Les auteurs du sondage ne peuvent pas voter dans leurs propres sondages. + (0–100)% + Le Sondage est fermé aux nouveaux votes + Choix multiples + Option %1$s + Choix unique + Impossible de voter + Sondages + Envoyer + + Ce message a plus de %1$d hashtag + Ce message a plus de %1$d hashtags + + + %1$d jour + %1$d jours + + + %1$d heure + %1$d heures + + Signaler + Votre %1$s a fini de miner mais n'a pas pu être publié : %2$s + à tout moment maintenant + Aperçu de l'image pour %1$s + Options de confidentialité + Politique de confidentialité + <Impossible de déchiffrer le message privé>\n\nVous avez été cité dans une conversation privée/cryptée entre %1$s et %2$s. + Relais de la boîte de réception MP + Insérez de 1 à 3 relais pour servir de boîte de réception privée. Les autres utilisateurs utiliseront ces relais pour vous envoyer des MPs. Les relais de la boîte de réception MP doivent accepter tout message de tout le monde, mais ne vous permet que de les télécharger. De bonnes options sont:\n - inbox.nostr.wine (payant)\n - auth.nostr1.com (gratuit)\n - you.nostr1.com (relais personnels - payant) + L'utilisateur reçoit les MPs sur ces relais + Message privé + Rendre privé : envoyer la note en gift-wrap uniquement aux utilisateurs notifiés + Les réponses à une note privée restent toujours privées + Visible par + Relais privés + Insérez entre 1 et 3 relais pour stocker des événements que personne d'autre ne peut voir, comme vos Brouillons et/ou paramètres d'application. Idéalement, ces relais sont soit locaux soit nécessitent une authentification avant de télécharger le contenu de chaque utilisateur. + Blasphème / Discours haineux + Profil + Badges de profil + Recommandations d'applications + Badges du profil + Fil des abonnés + Fil des zaps reçus + Interface du profil + profils + Proposer une Modification + Relais Proxy + Relais agrégateurs que l'application doit utiliser pour télécharger vos flux, tels que filter.nostr.wine. Cela remplace le modèle de boîte d'envoi et permettra à l'application de se connecter uniquement aux relais de vos listes. + Chat public + Les conversations publiques sont visibles pour tout le monde sur Nostr et n'importe qui + peut y participer. Elles sont idéales pour les communautés ouvertes autour de sujets spécifiques. + La modération peut être contrôlée en supprimant les messages sur ses relais + Insérez entre 1 et 3 relais qui hébergent ce groupe. + Les clients Nostr utilisent ce paramètre pour savoir où télécharger les messages et où les envoyer. + Relais + Métadonnées de tchat public + Chats publics + Relais publics d'accueil + Ce type de relais stocke tout votre contenu. Amethyst enverra vos messages ici et d'autres utiliseront ces relais pour trouver votre contenu. Insérez entre 1 et 3 relais : il peut s'agir de relais personnels, de relais payants ou de relais publics. + L'utilisateur publie son contenu sur ces relais + Message public + Relais de messagerie publique + Ce type de relais reçoit toutes les réponses, commentaires, likes et zaps de vos messages. Insérez de 1 à 3 relais et assurez-vous qu'ils acceptent les messages de n'importe qui. + L'utilisateur reçoit les notifications sur ces relais + ID Note + Supprimer + Muet le fil + Partager + Partager le Lien Navigateur + Rétablir le fil de discussion + Réaction + Réactions + Ligne de réactions + Lire depuis le Relay + Le nombre d'octets qui ont été reçus depuis ce relais, y compris les filtres et les événements + Utilisateur en lecture seule + Cliquez et maintenez pour enregistrer un message + Relais de discussion + Les relais de discussions sont des groupes de discussion contrôlés par leur relais d'origine. + Ils sont visibles par tous les utilisateurs de Nostr et tout le monde peut y participer. + Ils sont idéaux pour les communautés ouvertes autour de sujets spécifiques. Certains de ces groupes sont éphémères + et, par conséquent, les messages de discussion disparaissent avec le temps + Relais de discussions + Privé + Événements + IPs + Utilisateurs + Paramètres + Paramètres du relais + listes de sortie + Relais + Recharger & envoyer le zap + Envoyer le zap + Recharger %1$s sats sur %2$s et zapper %3$s %4$s sats · frais ≈ %5$s sats + Retirer + Supprimer des Favoris Publics + répondre ici + Notifier: + + Demande de suppression + Demande de suppression + Échec de la réinitialisation de l'état Marmot : %1$s + Réinitialiser l'état Marmot + État Marmot réinitialisé. + Réessayer + Listes de calendriers + Calendriers + Échecs + Découvrir + Accueil + Importer des abonnements + Messages + Listes de lecture + Musique + Notifications + Épisodes + Podcasts + Planifier la publication + Annuler la planification + Les publications planifiées peuvent ne pas être publiées avant la prochaine ouverture de l'application. Les publications planifiées des autres comptes ne se déclencheront pas pendant que ce compte est actif. Activez le mode permanent dans Paramètres → Préférences d'interface pour une planification fiable en arrière-plan. + Les publications planifiées peuvent ne pas être publiées avant la prochaine ouverture de l'application. Activez le mode permanent dans Paramètres → Préférences d'interface pour une planification fiable en arrière-plan. + Publications planifiées + Envoyer maintenant + %1$s · dans %2$s + %1$s · il y a %2$s + Demain + Erreur : %1$s + ID de note copié + + Déconnecté · %1$d publication planifiée supprimée + Déconnecté · %1$d publications planifiées supprimées + + Déconnecté + + Vous avez %1$d message planifié qui n'a pas encore été publié. La déconnexion le supprimera définitivement. + Vous avez %1$d messages planifiés qui n'ont pas encore été publiés. La déconnexion les supprimera définitivement. + + Échec de la publication planifiée + Publication planifiée publiée + + vers %1$d relais + vers %1$d relais + + Annulé + Échoué + Planifié + Envoi en cours… + Envoyé + + · %1$d due dans 1h + · %1$d dues dans 1h + + + %1$d en file d'attente + %1$d en file d'attente + + De bonnes options sont:\n%1$s + Relais de recherche + Relais de recherche + Liste des relais à utiliser pour la recherche et l'étiquetage des utilisateurs. L'étiquetage et la recherche ne fonctionneront pas si aucune option n'est disponible. + événements recherchables + Clé secrète (nsec) copiée dans le presse-papiers + Vous n'avez pas encore bloqué d'utilisateurs. + Filtres de sécurité + Aucun mot masqué. Ajoutez un mot ci-dessous pour masquer les publications le contenant. + Contenu bloqué + Préférences de filtrage + Aucun compte n'a été signalé comme spam lors de cette session. + Envoyer + Envoyer tous les événements de profil (kind 0) reçus vers votre relais local + Transférer les profils vers le relais local + Dépensable pour ce destinataire : %1$s sats + Paiement échoué + Transaction : %1$s + Payement via %1$s… + Le serveur n'a pas fourni d'URL après le téléversement + Paramètres + Aucun fil mis en sourdine + Fils en sourdine + Partager en tant qu'image + Partager en tant qu'URL de l'image + Mise en ligne HLS + Partager ou Enregistrer + Shorts + Afficher le QR code de la clé privée chiffrée + Inclure les messages directs et de groupe dans l'onglet Notifications. Désactivez pour conserver les messages uniquement dans l'onglet Messages. + Voir les messages + Afficher le QR code de la clé privée + Requête de signature rejetée + Assurez-vous que l'application signataire a autorisé cette transaction + Le signataire externe a renvoyé des données qui sont étranges pour la requête. Il peut y avoir un bug sur Amethyst ou le signataire. + Signataire introuvable + L'application de signature a-t-elle été désinstallée ? Vérifiez si le signataire est installé et a ce compte. Déconnectez-vous et reconnectez-vous de l'application signataire a changé. + Revenir %1$d secondes en arrière + Avancer de %1$d secondes + Applications + Spam + Le nombre d'événements spam provenant de ce relais + Spammeurs + Afficher deux onglets de notifications — Abonnements (personnes que vous suivez) et Tout le monde. L'indicateur de non-lu s'allume uniquement pour l'activité des personnes que vous suivez. + Séparer les notifications par abonnements + Tente de supprimer les métadonnées privées des fichiers multimédias pris en charge avant le téléversement + Supprimer les métadonnées privées + Lit les entraînements terminés depuis Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) et suggère de les partager en tant que publication. La permission n'est demandée qu'à la connexion. + Suggérer des entraînements à partager + Système + Thème + Sombre, Clair ou thème Système + Ce message disparaîtra dans %1$s + + +%1$d\nréponse + +%1$d\nréponses + + Aujourd'hui + Personnalisé + Faites votre choix manuellement + Par défaut + Masque votre IP des relais aléatoires + Orbot + Confidentialité complète + Masque votre IP pour toutes les connexions + Interne + Désactivé + Tor/Préréglages de confidentialité + Modifier rapidement tous les paramètres ci-dessous + Tous sauf les médias + Masque votre adresse IP pour tout, sauf les images et les vidéos + Relais MP + Forcer Tor à envoyer et recevoir des MPs + Images + Forcer Tor lors du chargement des images + Téléversements de média + Forcer Tor lors du téléversement de contenu + Opérations financières + Forcer Tor pour les transferts en zaps, lightning ou cashu + Relais non approuvés + Forcer Tor pour les relais de boîte de réception + Vérification de l'adresse Nostr + Forcer Tor lors de la vérification des adresses NIP-05 + Url/Relais en oignon + Utiliser Tor pour n'importe quelle url .onion + Photos de profil + Forcer Tor lors du chargement des photos de profil + Relais de confiance + Forcer Tor sur tous les relais de vos listes + Aperçu des URL + Forcer Tor lors du chargement des aperçus d'url + Vidéos + Forcer Tor lors du chargement des vidéos + Basique + Utiliser Tor lorsque le serveur le demande + Échec de l'ouverture du fichier + Aucune application torrent installée pour ouvrir et télécharger le fichier. + L'événement ne possède pas assez d'informations pour construire un lien magnet + Utilise le diffuseur suivi lors de l'envoi d'événements. Affiche la progression en direct et l'état par relais pendant la diffusion. + Diffusions suivies + Traduire vers + Choisir la langue dans laquelle traduire le contenu. + Traductions + Relais de confiance + Relais de confiance ne nécessitant pas une connexion Tor pour + Complet + Performance + Simplifié + Préférences de l'UI + Mode UI + Choisir le style du message + Impossible de créer une facture lightning avant d'envoyer le zap. Le portefeuille lightning du destinataire a envoyé l'erreur suivante : %1$s + Impossible de partager l'image, veuillez réessayer plus tard… + Impossible de partager l'image, veuillez réessayer plus tard… + Déchiffrement non autorisé + Le signataire n'a pas autorisé le décryptage nécessaire pour effectuer cette opération. Activez les décryptions NIP-44 dans votre application signataire et réessayez + Ne plus suivre + Détacher + Retirer du profil + Téléversement annulé + Erreur d'envoi + Échec de l'envoi de la voix : %1$s + Échec de l'envoi du message vocal + NIP-95 n'est pas encore supporté pour les messages vocaux + %1$d%% de disponibilité + Activer le moteur Tor + Utiliser la version interne ou Orbot + L'utilisateur n'a pas configuré d'adresse Lightning pour recevoir des sats + L'utilisateur %1$s n'a pas configuré d'adresse Lightning pour recevoir des sats + Historique des suppressions + Demande de suppression envoyée + Une meilleure qualité avec des tailles de fichier plus petites, mais tous les appareils ne supportent pas la lecture H.265. + Utiliser le codec H.265/HEVC + Le téléchargement de la vidéo a démarré… + Boutons du lecteur vidéo + Vidéo enregistrée dans la galerie vidéo du téléphone + Message vocal + Profond + Haute + Neutre + Aucun + Réponse vocale + Portefeuille + Portefeuille Cashu (NIP-60) + Wallet Connect + Le fournisseur de connexion de votre portefeuille a retourné l'erreur suivante : %1$s + Modifier les mints + Affiche un message d'avertissement lorsque des messages ont été rapportés 5 fois ou plus par vos abonnements + Avertir sur les rapports + Ajouter un signet web + Modifier le signet web + Signets web + Quoi de neuf ? + Entraînements + Rédiger un message… + Écrire sur le Relay + Le nombre d'octets qui ont été envoyés à ce relais, y compris les filtres et les événements + Zap + Zaps + + Renommer + Sauvegarder diff --git a/commonsUI/src/commonMain/composeResources/values-fr/strings.xml b/commonsUI/src/commonMain/composeResources/values-fr/strings.xml index 4726e96cdc..19103cd771 100644 --- a/commonsUI/src/commonMain/composeResources/values-fr/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-fr/strings.xml @@ -1819,4 +1819,1211 @@ Source : Serveurs : Ouvrir + À propos & Légal + Paramètres du compte + Ajouter + Ajouter un serveur Blossom + Ajouter un serveur NIP-96 + Lorsqu'activé, Amethyst ajoute un tag client NIP-89 aux événements que vous publiez. + Ajouter un tag client à mes événements + Ajouter un avertissement de contenu sensible avant de montrer ce contenu + Contenu sensible + Ajouter aux Favoris Publics + Utilise un modèle IA embarqué pour proposer des corrections de texte et des changements de ton. + Proposer des améliorations de texte + Maintient les connexions à vos relais de boîte de réception actives pour les notifications en temps réel + + Connecté à %1$d relais de boîte de réception + Connecté à %1$d relais de boîte de réception + + + Connecté à %1$d relais + Connecté à %1$d relais + + Connexion aux relais de boîte de réception… + Notifications Amethyst actives + Notifications pour les appels vocaux et vidéos entrants + Appels entrants + %1$s a accepté votre défi aux échecs + Vous avertit des événements liés aux parties d'échecs + Échecs + Mises à jour d'échecs + %1$s déplacé — votre tour + Vous notifie lorsqu'un message privé est reçu + Messages privés + Nouveaux messages + Marquer comme lu + Vous notifie lorsque quelqu'un vous mentionne ou vous cite dans une publication + %1$s vous a mentionné + Mentions + Nouvelles mentions + Vous notifie lorsque quelqu'un réagit à votre publication + %1$s a réagi à votre publication + pour %1$s + Réactions + Nouvelles réactions + Vous notifie lorsque quelqu'un répond à votre publication + Réponses + Nouvelles réponses + Répondre + Notifications lorsqu'une publication planifiée est publiée ou échoue. + Publications planifiées + Vous notifie lorsque quelqu'un vous zap + %1$s sats + pour %1$s + De %1$s + Zaps reçus + Nouveaux zaps + Paramètres de l'application + Attestation + Demande d'attestation + Compétence de l'attesteur + Recommandation de l'attesteur + Visualiseur audio + Enregistre automatiquement un brouillon lorsque vous tapez ou quittez un compositeur avec du texte non envoyé, et l'envoie à vos relais de boîte d'envoi privée. + Créer automatiquement des brouillons + Défilement immersif + Masquer les barres de navigation lors du défilement + Prévisualisation des images + Charger automatiquement les images et les GIFs + Lecture vidéo + Lire automatiquement les vidéos et les GIFs + Photo de profil + Afficher les photos de profil + Prévisualisation des URLs + Afficher la prévisualisation d'URL + Lecture automatique des vidéos + Lire automatiquement les vidéos lorsqu'elles sont visibles à l'écran + Impossible de supprimer les métadonnées de l'AVIF : %1$s + Badge de récompense + Retour + Clés de sauvegarde + Badges + Échec de l'authentification + La biométrie n'a pas pu authentifier le propriétaire de ce téléphone + La biométrie n'a pas pu authentifier le propriétaire de ce téléphone. Erreur : %1$s + Bloquer + Relais bloqués + Amethyst ne se connectera jamais à ces relais + Utilisateurs bloqués + Nouvelle liste de favoris + Métadonnées de la liste de favoris + Les métadonnées des listes de favoris peuvent être vues par n'importe qui sur Nostr. Seuls vos membres privés sont chiffrés. + Favoris + Boost + Barre de navigation inférieure + Relais de diffusion + Relais qui se spécialisent dans la publication de vos notes à tous les autres relais, comme sendit.nosflare.com. Amethyst ajoutera ce relais à tous vos nouveaux événements + Navigateur + Favoris + Chargement via le web ouvert. Appuyer pour utiliser Tor. + Chargement via Tor. Appuyer pour utiliser le web ouvert. + + %1$s, %2$d événement + %1$s, %2$d événements + + Le téléversement de l'image a échoué + L'image sélectionnée n'a pas pu être téléversée. Réessayez ou collez une URL. + Partager l'événement de calendrier + Ouvrir dans la carte + Ouvrir le lien + En cours + %1$s · se termine %2$s + + Commence dans %1$d minute + Commence dans %1$d minutes + + Avertissement lorsqu'un événement auquel vous participez est sur le point de commencer. + calendar_reminders + Rappels de calendrier + Événement de calendrier + Une notification se déclenche lorsqu'un événement auquel vous participez est sur le point de commencer. + Envoyer des rappels + + %1$d min + %1$d min + + Rappels du calendrier + Jour + Fil + Mois + Semaine + Accepter + Bluetooth + Caméra désactivée + Caméra activée + Écouteurs + Raccrocher + Appel entrant + Appel vidéo entrant\u2026 + Appel vocal entrant\u2026 + Couper le son + Appels + Notification d'appel en cours + Amethyst a besoin d'un accès à la caméra et au microphone pour démarrer un appel vidéo. Veuillez les activer dans les paramètres de l'application. + Amethyst a besoin d'un accès à la caméra et au microphone pour démarrer un appel vidéo. Veuillez les activer dans les paramètres de l'application. + Rejeter + Paramètres d'appel + Haut-parleur + Réactiver le son + Appel avec %1$s + URL de callback introuvable dans la réponse de %1$s + Annuler + Jeton Cashu + Vérification du mint… + Impossible d'utiliser ce Cashu + Le Mint a fourni le message d'erreur suivant : %1$s + Reçu + Envoyé + Mints correspondants + + +%1$d de plus + +%1$d de plus + + Mints populaires + + Recommandé par %1$d autre + Recommandé par %1$d autres + + %1$s sat déplacés vers %2$s. + Aucun portefeuille Cashu compatible trouvé dans le système + + %1$d facture en attente + %1$d factures en attente + + Payer %1$s sat + jusqu'à %2$s sat de frais ? + Publier une demande de suppression pour votre recommandation kind:38000 de %1$s. Les relais qui respectent NIP-09 la supprimeront. + %1$s sats récupérés sur %2$s preuves. + Cashu reçu + %1$s sats ont été envoyés à votre portefeuille. (Frais : %2$s sats) + + Fonds détenus chez %1$d mint que vous n'utilisez pas + Fonds détenus chez %1$d mints que vous n'utilisez pas + + En attente du paiement de la facture… + + %1$d mint + %1$d mints + + Arrêter la diffusion + Diffuser sur l'appareil + Normes de protection de l'enfance + Accessoires + Art + Livres + Vêtements + Articles de collection + Artisanat + Électronique + Fitness + Nourriture + Mobilier + Accueil + Divers + Bureau + Autres + Animaux de compagnie + Sports + Quotidien + Mensuel + Unique + Hebdomadaire + Payer %1$s via %2$s? + Payer cette facture via %1$s? + Le service de débit n'a pas finalisé le paiement. + Saisissez un montant valide pour cette offre. + Demande de facture… + Fermer toutes les réactions à ce message + Fermé + Communautés + Le brouillon fait %1$d octets ; cette communauté limite ce kind à %2$d octets. + Le brouillon fait %1$d octets ; cette communauté limite les événements à %2$d octets. + Vous avez déjà publié %1$d événements de ce kind aujourd'hui (limite %2$d). + Paramètres de composition + Le port par défaut est 9050 + Relais connectés + Liste actuelle des relais utilisés + Pourcentage de connexions réussies vers le relais + Toujours + Jamais + WiFi illimité + Ajouter un Document + Ajouter une Image + Ajouter un média + Ajouter une Vidéo + Masquer + Avertir + Afficher + Conversations + Convertit les GIF animés en vidéo MP4 pour une taille de fichier réduite et une meilleure compatibilité de lecture. + Convertir GIF en MP4 + Copie de l'ID de la note (@note1) dans le presse-papiers + Copie du contenu de la note dans le presse-papiers + Copié dans le presse-papiers + Copie du @npub utilisateur dans le presse-papiers + Copier ma clé secrète + Copier dans le presse-papiers + Impossible d'assembler LNUrl à partir de l'adresse Lightning "%1$s". Vérifiez la configuration de l'utilisateur + Impossible de vérifier le fichier téléchargé après le téléversement : %1$s + Impossible de télécharger le média depuis le serveur + Impossible de récupérer la facture à partir de %1$s: %2$s + Impossible d'ouvrir le fichier compressé + Portefeuille introuvable + Amethyst n'a trouvé aucune application de portefeuille prenant en charge Nostr Wallet Connect (NWC).\n\nVoici ce que vous pouvez faire :\n\n1. Vérifier la prise en charge NWC : Vérifiez que votre application de portefeuille préférée est compatible avec Nostr Wallet Connect.\n\n2. Créer une connexion : Accédez à votre application de portefeuille et créez une nouvelle connexion NWC.\n\n3. Lier à Amethyst : Votre portefeuille vous proposera généralement trois options :\n\n3.1 Lien automatique : Un bouton pour ouvrir et connecter automatiquement Amethyst. Si c'est le cas, cliquez sur ce bouton, ouvrez Amethyst et appuyez sur enregistrer sur le nouvel écran.\n\n3.2 Lien manuel : Un URI de connexion que vous pouvez copier et coller via l'icône de collage sur cet écran.\n\n3.3 Code QR : Le portefeuille crée un code QR que vous pouvez lire depuis le bouton code QR de cet écran. + Créer + d + Zone de danger + Sombre + Description + Rendre public + Salons + Communautés + Algorithmes de flux + Packs à suivre + Diffusions en direct + Place de Marché + Lectures + Relais de boîte de réception MP + DMs + Ne pas traduire depuis + Les langues affichées ici ne seront pas traduites. Sélectionnez une langue pour la supprimer et l'avoir traduite à nouveau. + Enregistrer sur le téléphone + Téléchargement de la vidéo… + Brouillon + Brouillons + Comptes + Créer + Fils + Navigation + Système + Vous + + %1$d jour + %1$d jours + + + %1$d heure + %1$d heures + + + %1$d minute + %1$d minutes + + + %1$d mois + %1$d mois + + + %1$d semaine + %1$d semaines + + + %1$d an + %1$d ans + + Modifier le calendrier + Modifier l'événement de calendrier + Modifier la communauté + Modifier le pack d'emojis + Modifier la liste de lecture + Modifier le Message + Les emojis privés sont stockés chiffrés sur les relais et visibles uniquement par vous. Ils apparaissent dans votre menu de réactions et la saisie automatique ":" comme les emojis publics. + Les emojis publics sont visibles par tous et apparaissent dans votre menu de réactions et le sélecteur de saisie automatique ":" lorsque ce pack est dans votre liste d'emojis. + Emojis + Chiffrer les fichiers avant le téléversement pour la confidentialité. Certains serveurs peuvent ne pas accepter les fichiers chiffrés sur les comptes gratuits. + Chiffrer les fichiers + Discussion éphémère + Erreur + Impossible de payer la facture + Impossible de retirer + Impossible d'ouvrir le paiement + Impossible d'envoyer un zap + Erreur lors de l'ouverture de l'application de signature + L'application signataire est introuvable. Vérifiez que l'application n'a pas été désinstallée + Erreur d'analyse du message d'erreur + Erreur lors de l'analyse du JSON de %1$s. Vérifiez la configuration lightning de l'utilisateur + Impossible de récupérer la facture depuis les serveurs du destinataire + Ouvrir dans le navigateur + Impossible de lire cette vidéo + Le codec ou le format n'est pas pris en charge sur cet appareil (%1$s). Essayez de l'ouvrir dans votre navigateur. + Erreurs + Sync relay + événements de vous + événements pour vous + AMRAP + Circuit + Cyclisme + Alimentation + EMOM + Jeûne + Randonnée + Méditation + Aviron + Course à pied + Musculation + Natation + Marche + Yoga + Agrandir + Date d'expiration + Exporter les paramètres de relais + Échec de la suppression : %1$s + Échec du chiffrement de votre clé privée + Échec de l'enregistrement de l'image + Échec de l'enregistrement du PDF + Impossible d'enregistrer la vidéo + De nombreux serveurs n'acceptent pas les fichiers chiffrés sur les comptes gratuits. Vous pouvez réessayer sans chiffrement. + Échec du téléversement chiffré + Erreur de téléversement : %1$s + Échec du téléversement du fichier + Impossible de téléverser vers %1$s: %2$s + Ajouter aux favoris + Se charge via le web ouvert. + Se charge via Tor. + Récent + Supprimer des favoris + Cette application n'est pas encore chargée. Réessayez dans un instant. + Applications favorites + Algorithmes de flux favoris + Paiement effectué + Publié sur les relais + Fichier téléversé + Flux de relais favoris + Relais que vous visitez fréquemment pour voir leur flux global + Communautés + Algorithmes de flux + Flux + Hashtags + Centres d'intérêt + Listes + Lieux + Relais + Serveur fichier + Choisissez un serveur vers lequel téléverser ce fichier + Masque les messages d'inconnus qui étaient exactement les mêmes depuis 5 fois ou plus + Filtrer les spams + Suivre + Suivre en retour + Tous les algorithmes de flux favoris + Autour de moi + Sélectionné + Général + Liste de suivi par défaut + Tous les abonnements + Tous les abonnements de l'utilisateur + Le mien + Liste en Sourdine + Nouveau pack de suivi + Modifier le Pack de Suivi + Les métadonnées du pack de suivi sont visibles par tous sur Nostr et sont fréquemment publiées sur de nombreux sites Web comme kits de démarrage pour les nouveaux utilisateurs. + Pack de suivi metadata + Packs d'abonnements + Nouvelle liste de suivi + Modifier la liste + Style de la galerie de profil + Choisissez le style de la galerie + Classique + Moderne + Post exclusif à la localisation + Seuls les abonnés à cette localisation le verront. Vos abonnés généraux ne le verront pas. + %1$s financés sur un objectif de %2$s sats + h + Ce contenu a changé. L'auteur n'a peut-être pas vu ou approuvé le changement + Qu'est-ce que cela signifie ? + Ce contenu est le même depuis le message + Bonjour %1$s, est-ce toujours disponible ? + Mots Masqués + Supprime les publications des fils de la communauté lorsque la communauté publie un document de règles NIP-9B et qu'un événement ne le respecterait pas. Aucun effet lorsqu'une communauté n'a pas de règles structurées. + Masquer les publications qui enfreignent les règles de la communauté + Cacher le mot de passe + Mise en ligne de %1$s (%2$d sur %3$d) + Tout + Mauvaise requête - Le serveur ne peut pas ou ne veut pas traiter la requête. + Non autorisé - L'utilisateur n'a pas d'identifiants d'authentification valides + Paiement requis - Le serveur requiert un paiement pour compléter la requête + Interdit - L'utilisateur n'a pas les droits d'accès pour effectuer la requête + Non Trouvé - Le serveur ne peut pas trouver l'adresse demandée + Méthode non autorisée - Le serveur supporte la méthode de requête, mais pas la ressource cible + Non Acceptable - Le serveur ne trouve aucun contenu qui satisfasse la requête. + Authentification du proxy requise - L'utilisateur n'a pas d'identifiants d'authentification valides + Expiration de la requête - Le serveur a expiré en attente de quelqu'un d'autre + Conflit - Le serveur ne peut pas répondre à la requête car il y a un conflit avec la ressource + Parti - Le contenu demandé a été définitivement supprimé du serveur et ne sera pas rétabli + Longueur requise - Le serveur rejette la requête car elle nécessite une définition + La précondition a échoué - Conditions préalables de la demande dans les champs de l'entête que le serveur ne respecte pas + Données trop grandes - La requête est supérieure aux limites définies par le serveur, et le serveur refuse de la traiter + URI trop longue - L'URL demandée par le client est trop longue pour que le serveur puisse la traiter. + Type de média non pris en charge - La requête utilise un format média que le serveur ne prend pas en charge + Plage non satisfaisante - Le serveur ne peut pas remplir la valeur indiquée dans le champ d'entête Range de requête. + Attente échouée - Le serveur ne peut pas répondre aux exigences indiquées par le champ d'entête Expect de la requête + Mise à jour requise - Le serveur refuse de traiter la requête en utilisant le protocole courant, à moins que le client ne passe à un autre protocole. + Erreur interne du serveur - Le serveur a rencontré une erreur inattendue et ne peut pas compléter la requête + Non implémenté - Le serveur ne peut pas répondre à la requête ou ne reconnaît pas la méthode de requête + Mauvaise passerelle - Le serveur agit comme passerelle et a reçu une réponse invalide de l'hôte + Service indisponible - Ceci se produit souvent lorsqu'un serveur est surchargé ou stoppé pour maintenance + Délai d'attente de la passerelle - Le serveur agissait comme une passerelle ou un proxy et a expiré, en attente d'une réponse + Version HTTP non prise en charge - Le serveur ne prend pas en charge la version HTTP de la requête + Variant Also Negotiates - Le serveur a une erreur de configuration interne + Stockage insuffisant - Le serveur n'a pas assez d'espace pour traiter la demande avec succès + Boucle détectée - Le serveur détecte une boucle infinie lors du traitement de la requête + Authentification réseau requise - Le client doit être authentifié pour accéder au réseau + Comportement illégal + Image enregistrée dans la galerie + Falsification d'identité + Relais de réception + Montant de la facture (%1$s sats) incorrect de %2$s. Il aurait dû être %3$s + Relais indexeur + Relais qui se spécialisent dans l'hébergement des métadonnées et des listes de relais de chacun, comme purplepag.es. Amethyst utilisera ces relais pour trouver des utilisateurs qui ne sont pas dans vos listes. + Nouvel ensemble d'intérêts + Renommer + Ensembles de hashtags + Clé non valide + Clé invalide : %1$s + Adresse invalide + Amethyst a reçu une URI à ouvrir mais cette URI était invalide : %1$s + Il n'est pas possible de citer un brouillon + Il n'est pas possible de réagir à un brouillon + Il n'est pas possible de répondre à un brouillon + Il n'est pas possible de zapper un brouillon + La clé est requise + Relais KeyPackage + Relais où vos MLS KeyPackages sont publiés (MIP-00). Les autres utilisateurs récupèrent ces KeyPackages pour vous inviter dans des discussions de groupe Marmot. Insérez entre 1 et 3 relais qui acceptent les événements KeyPackage de votre part et autorisent les lectures publiques. + KeyPackages + Ensemble de badges acceptés + Prologue d'aventure + Lecture d'aventure + Scène d'aventure + Recommandations d'applications + Rendez-vous + Applications + RSVP rendez-vous + En-tête audio + Piste audio + Podcasts créés + Récompenses de badge + Définitions de badges + Données blob + En-têtes blob + Relais bloqués + Blogs + Auth Blossom + Serveurs Blossom + Liste de signets + Relais de diffusion + Calendrier + Définition de canal + Masquer message du canal + Liste de canaux + Message de canal + Métadonnées du canal + Utilisateur muet du canal + Auth échecs + Défis aux échecs + Offre de nulle aux échecs + Acceptation de partie d'échecs + Fin de partie d'échecs + Jeux d'échecs + Coup aux échecs + Petites annonces + Commentaires + Déf. communauté + Liste de communautés + Publication communautaire + Carte de contact + Rendez-vous journalier + Suppressions + Fichier DM + Message DM + Relais DM + Brouillons + Demande de contenu DVM + Réponse contenu DVM + Statut DVM + Demande utilisateur DVM + Réponse utilisateur DVM + Modifications + Liste des packs d'émoji + Packs d'émojis + Chat éphémère + Salles de discussion éphémères + Podcasts favoris + Relais favoris + En-têtes de fichier + Serveurs de fichiers + Liste de suivi + Packs de suivi + Suivis géohash + GiftWraps + Problème Git + Correctif Git + Réponse Git + Dépôt Git + Suivis de hashtag + Surlignages + Auth Http + Liste de relais index + Discussions en direct + Diffusions en direct + Données médicales + Salle de réunion + Espace de réunion + Playlist musicale + Piste musicale + Liste en sourdine + Signets nommés + Serveurs Nests + NIP + NIP-04 DMs + NNS + Nostr Connect + Notes + Requête NWC + Réponse NWC + Ancienne liste de signets + OTS + Relais de sortie + PayTo + Listes de personnes + Photos + Épingles + Épisode de podcast + Émission de podcast + Sondage + Réponse au sondage + Relais privés + Zaps privés + Profil + Badges de profil + Galerie de profil + Relais proxy + Message public + Réactions + Auth relais + Découverte de relais + Annonce de surveillance de relais + Ensemble de relais + Signalements + Reposts + Reposts (16) + Présence en salle + Sceaux + Relais de recherche + Vidéos courtes + Shorts (Repl) + Commentaires torrent + Torrents + Fournisseurs de confiance + Relais de confiance + Suppression d'utilisateur + Paramètres utilisateur + Statut utilisateur + Vidéos + Vidéo (Repl) + Message vocal + Réponse vocale + WakeUp + Signet web + Wiki + Entraînements + Objectifs Zap + Sondage Zap + Demande Zap + Zaps + Connus + Préférences d'affichage de la langue + Pour chaque paire de langues traduites, choisissez quelle langue afficher en premier. + Vu il y a %1$s + Vu à l'instant + Jamais vu + Vu le %1$s (il y a %2$s) + Partir + Clair + Diffusions en direct + Relais locaux + Liste des relais qui sont en cours d'exécution sur cet appareil. + Connectez vous avec une clé privée pour pouvoir booster des posts + Connectez-vous avec une clé privée pour Suivre + Vous utilisez une clé publique et les clés publiques sont en lecture seule. Connectez-vous avec une clé privée pour pouvoir masquer un mot ou une phrase + Connectez vous avec une clé privée pour pouvoir répondre + Connectez vous avec une clé privée pour pouvoir envoyer des zaps + Vous utilisez une clé publique et les clés publiques sont en lecture seule. Connectez-vous avec une clé privée pour pouvoir afficher un mot ou une phrase + Vous utilisez une clé publique et les clés publiques sont en lecture seule. Connectez-vous avec une clé privée pour pouvoir signer des événements + Connectez-vous avec une clé privée pour ne plus Suivre + Vous utilisez une clé publique et les clés publiques sont en lecture seule. Connectez-vous avec une clé privée pour pouvoir téléverser + Connectez vous avec une clé privée pour pouvoir aimer des posts + Vidéos + m + Mes packs d'emojis + Ajout de %1$s… + Privilèges d'administrateur accordés + Privilèges d'administrateur révoqués + Échec de l'ajout de %1$s : %2$s + Échec de la création du groupe : %1$s + Échec de l'octroi des droits d'administrateur : %1$s + Échec du départ du groupe : %1$s + Échec de la suppression du membre : %1$s + Échec de la révocation des droits d'administrateur : %1$s + Échec de la mise à jour : %1$s + Groupe MLS + Informations du groupe mises à jour + + %1$d membre + %1$d membres + + Membre retiré + + %1$d msg + %1$d msgs + + Pas membre de ce groupe + erreur inconnue + Média ajouté + Média ajouté à votre galerie de profil + Le téléchargement du média a démarré… + Serveurs média + Le média est trop volumineux pour NIP-95 + Insérer d'abord la destination du message + Impossible d'uploader + Sujet + Les métadonnées n'ont pas pu être supprimées + Échec de la suppression des métadonnées privées du média. Téléversement annulé. + Signets migrés avec succès + Configuration lightning manquante + Plus d'options + Déplacer en privé + Déplacer en public + Téléverser une image de couverture + Choisissez une image carrée comme illustration pour cette liste de lecture. + + +%1$d piste supplémentaire + +%1$d pistes supplémentaires + + + %1$d piste + %1$d pistes + + + %1$d piste + %1$d pistes + + Téléversement de la couverture et publication. Cela continuera même si vous quittez l'écran. + Téléverser un fichier audio + Choisissez un MP3, WAV ou FLAC. Il sera téléversé sur votre serveur multimédia lors de l'enregistrement. + Téléverser une image de couverture + Choisissez une image carrée comme illustration pour cette piste. + Téléversement de la couverture + audio et publication. Cela continuera même si vous quittez l'écran. + Son activé. Cliquer pour mettre en silencieux + Silencieux. Cliquer pour réactiver le son + Mes listes + Un nom est requis + %1$dms + Paramètres Namecoin + Identité + Lire votre clé publique + Messagerie + Échanger des messages avec d'autres napplets + Actions clavier + Associer des raccourcis clavier + Notifications + Vous afficher des notifications + Relais + Lire, signer & publier vos événements + Réseau + Récupérer des ressources web et Blossom + Stockage + Son propre stockage privé + Thème + Correspondre aux couleurs de votre application + Téléversements + Téléverser des fichiers sur votre serveur multimédia + Paiements + Payer des factures Lightning + Ce nApplet veut lire votre clé publique. + Ce nApplet veut lire votre profil et les données de votre compte. + Ce nApplet veut vous afficher des notifications. + + Ce nApplet veut payer une facture Lightning de %1$d sat. + Ce nApplet veut payer une facture Lightning de %1$d sats. + + Ce nApplet veut signer et publier un événement de type %1$d en votre nom. + Ce nApplet veut envoyer un événement chiffré en votre nom. + Ce nApplet veut signer et publier un événement de type %1$d en votre nom : + Ce nApplet veut lire des événements depuis vos relais. + Ce nApplet veut récupérer une ressource web. + Ce site veut signer un événement de type %1$d avec votre clé Nostr. + Ce nApplet veut utiliser son stockage privé. + Ce nApplet veut téléverser un fichier sur votre serveur multimédia. + nApplet %1$s… + nApplets + Impossible d'envoyer le message + Sourdine locale + Rétablir cet intervenant + Quitter + Impossible de marquer la salle comme fermée. Départ en cours — la salle se fermera automatiquement. + + %1$d auditeur + %1$d auditeurs + + Baisser la main + Couper le micro + Réactiver le micro + Couper le son + Impossible d'enregistrer votre liste de serveurs nest. Réessayez. + Nest — En direct + Nests + Maintient l'audio actif pendant qu'une salle est ouverte. + Nest connecté + Arrêter + Appuyer pour revenir. + Suivre + Mettre en sourdine + Ne plus suivre + Réactiver le son + a quitté le nest + a rejoint en tant qu'auditeur + est monté sur scène + a levé la main + parle actuellement + Lever la main + Activer le son + Nests + Enregistré en tant qu'événement remplaçable de type kind-10112 pour que d'autres clients puissent lire votre préférence. + Vos serveurs + Suggestions intégrées que vous pouvez ajouter à votre liste en un seul appui. + Serveurs recommandés + Serveurs nest + jamais + Nouveau badge + Nouveau calendrier + Nouvel événement de calendrier + Nouvelle communauté + Modérateurs + Relais + Utilisateurs bannis + Commentaire communautaire (1111) + Article long format (30023) + Publication d'image (20) + Texte court (1) + Vidéo courte (22) + Publication vidéo (21) + Types d'événements autorisés + Taille maximale globale d'événement (facultatif) + Règles vérifiables (facultatif) + Filtre Web-of-trust (facultatif) + Nouveau pack d'emojis + Nouvel objectif + Nouvel Article + Nouvelle liste de lecture + Nouvelle piste musicale + Nouveau produit + Nouvelles demandes + Nouveaux sujets + Nouvel entraînement + + %1$d asset inclus + %1$d assets inclus + + Les applications Blossom n'ont pas été trouvées. Veuillez installer une application Blossom locale pour voir ce fichier + Impossible d'ouvrir les liens Blossom + Aucune application de caméra trouvée sur cet appareil + Adresse Lightning non définie + Aucune application trouvée pour traiter ce paiement. Veuillez installer un portefeuille compatible. + Aucune application installée pour traiter les paiements %1$s. Veuillez installer un portefeuille compatible. + Aucun type de réaction sélectionné. Appuyer longuement pour changer + Aucune réaction configurée + Aucun portefeuille trouvé pour payer une facture lightning. Veuillez installer un portefeuille Lightning pour utiliser les zaps + Aucun portefeuille trouvé pour payer une facture lightning (Erreur : %1$s). Veuillez installer un portefeuille Lightning pour utiliser les zaps + Aucun montant sélectionné pour le zap. Appui long pour modifier + Notifications + Catégories + Livraison + Affichage dans l'application + maintenant + Art Nowhere + Drop Nowhere + Événement Nowhere + Forum Nowhere + Collecte de fonds Nowhere + Site Nowhere + Message Nowhere + Pétition Nowhere + Boutique Nowhere + nSites + Nudité + Impossible de construire la référence d'événement + Aucune clé publique de destinataire sur la note + Les nutzaps sont publics et révéleraient cette note privée. Utilisez un zap Lightning à la place. + Nutzap échoué + + Envoyer %1$s sats, %2$d voie + Envoyer %1$s sats, %2$d voies + + Le backend de la chaîne Bitcoin n'est pas configuré + Impossible de diffuser la transaction + Impossible de construire la transaction + Impossible de charger votre solde Bitcoin + Paiement envoyé, mais le reçu de zap n'a pas pu être publié + + Paiement envoyé (%1$d reçu sur %2$d publié), mais le reçu suivant n'a pas pu être publié + Paiement envoyé (%1$d reçus sur %2$d publiés), mais le reçu suivant n'a pas pu être publié + + La part d'un destinataire est inférieure au dust + Impossible de signer la transaction + ~10 min + ~30 min + ~1 h + Rapide + Normal + Lent + %1$s · %2$s sat/vB · %3$s + + Répartition entre %1$d destinataire + Répartition entre %1$d destinataires + + + Ignorer %1$d destinataire avec uniquement une adresse Lightning — le on-chain nécessite une clé publique Nostr pour dériver l'adresse. + Ignorer %1$d destinataires avec uniquement une adresse Lightning — le on-chain nécessite une clé publique Nostr pour dériver l'adresse. + + + Utiliser la répartition à %1$d voie de cette note + Utiliser la répartition à %1$d voies de cette note + + diffusion + construction de la transaction + chargement du solde + publication du reçu + signature + Un seul vote par utilisateur est autorisé sur ce type de sondage + Ouvrir toutes les réactions à ce message + Ouvrir + Port Socks Orbot + Explorateur Bitcoin (OTS) + Il y a une preuve que ce message a été signé avant %1$s. La preuve a été estampillée dans la blockchain Bitcoin à cette date et à cette heure. + Preuve d'horodatage + Relais d'envoi + Mot de passe requis + Pause + Payer + Message de %1$s + Cibles de paiement + Ajoutez des adresses de paiement pour différents réseaux (ex. bitcoin, lightning, ethereum). + PDF enregistré dans Téléchargements/Amethyst + Les métadonnées des listes de suivi sont visibles par tous sur Nostr. Seuls vos membres privés sont chiffrés. + Métadonnées de la liste de suivi + Images + Épingler en haut + Épingler sur le profil + Lecture + + %1$d épisode + %1$d épisodes + + Les auteurs du sondage ne peuvent pas voter dans leurs propres sondages. + (0–100)% + Le Sondage est fermé aux nouveaux votes + Choix multiples + Option %1$s + Choix unique + Impossible de voter + Sondages + Envoyer + + Ce message a plus de %1$d hashtag + Ce message a plus de %1$d hashtags + + Aperçu de l'image pour %1$s + Options de confidentialité + Politique de confidentialité + <Impossible de déchiffrer le message privé>\n\nVous avez été cité dans une conversation privée/cryptée entre %1$s et %2$s. + Relais de la boîte de réception MP + Insérez de 1 à 3 relais pour servir de boîte de réception privée. Les autres utilisateurs utiliseront ces relais pour vous envoyer des MPs. Les relais de la boîte de réception MP doivent accepter tout message de tout le monde, mais ne vous permet que de les télécharger. De bonnes options sont:\n - inbox.nostr.wine (payant)\n - auth.nostr1.com (gratuit)\n - you.nostr1.com (relais personnels - payant) + L'utilisateur reçoit les MPs sur ces relais + Message privé + Rendre privé : envoyer la note en gift-wrap uniquement aux utilisateurs notifiés + Les réponses à une note privée restent toujours privées + Visible par + Relais privés + Insérez entre 1 et 3 relais pour stocker des événements que personne d'autre ne peut voir, comme vos Brouillons et/ou paramètres d'application. Idéalement, ces relais sont soit locaux soit nécessitent une authentification avant de télécharger le contenu de chaque utilisateur. + Blasphème / Discours haineux + Profil + Badges de profil + Recommandations d'applications + Badges du profil + Fil des abonnés + Fil des zaps reçus + Interface du profil + profils + Proposer une Modification + Relais Proxy + Relais agrégateurs que l'application doit utiliser pour télécharger vos flux, tels que filter.nostr.wine. Cela remplace le modèle de boîte d'envoi et permettra à l'application de se connecter uniquement aux relais de vos listes. + Chat public + Les conversations publiques sont visibles pour tout le monde sur Nostr et n'importe qui + peut y participer. Elles sont idéales pour les communautés ouvertes autour de sujets spécifiques. + La modération peut être contrôlée en supprimant les messages sur ses relais + Insérez entre 1 et 3 relais qui hébergent ce groupe. + Les clients Nostr utilisent ce paramètre pour savoir où télécharger les messages et où les envoyer. + Relais + Métadonnées de tchat public + Chats publics + Relais publics d'accueil + Ce type de relais stocke tout votre contenu. Amethyst enverra vos messages ici et d'autres utiliseront ces relais pour trouver votre contenu. Insérez entre 1 et 3 relais : il peut s'agir de relais personnels, de relais payants ou de relais publics. + L'utilisateur publie son contenu sur ces relais + Message public + Relais de messagerie publique + Ce type de relais reçoit toutes les réponses, commentaires, likes et zaps de vos messages. Insérez de 1 à 3 relais et assurez-vous qu'ils acceptent les messages de n'importe qui. + L'utilisateur reçoit les notifications sur ces relais + ID Note + Supprimer + Muet le fil + Partager + Partager le Lien Navigateur + Rétablir le fil de discussion + Réaction + Réactions + Ligne de réactions + Lire depuis le Relay + Le nombre d'octets qui ont été reçus depuis ce relais, y compris les filtres et les événements + Utilisateur en lecture seule + Cliquez et maintenez pour enregistrer un message + Relais de discussion + Les relais de discussions sont des groupes de discussion contrôlés par leur relais d'origine. + Ils sont visibles par tous les utilisateurs de Nostr et tout le monde peut y participer. + Ils sont idéaux pour les communautés ouvertes autour de sujets spécifiques. Certains de ces groupes sont éphémères + et, par conséquent, les messages de discussion disparaissent avec le temps + Relais de discussions + Événements + IPs + Kinds + Utilisateurs + Paramètres + Paramètres du relais + listes de sortie + Relais + Recharger & envoyer le zap + Envoyer le zap + Recharger %1$s sats sur %2$s et zapper %3$s %4$s sats · frais ≈ %5$s sats + Retirer + Supprimer des Favoris Publics + répondre ici + Notifier: + + Demande de suppression + Demande de suppression + Échec de la réinitialisation de l'état Marmot : %1$s + Réinitialiser l'état Marmot + État Marmot réinitialisé. + Réessayer + Listes de calendriers + Calendriers + Échecs + Découvrir + Accueil + Importer des abonnements + Messages + Listes de lecture + Musique + Notifications + Épisodes + Podcasts + Planifier la publication + Annuler la planification + Les publications planifiées peuvent ne pas être publiées avant la prochaine ouverture de l'application. Les publications planifiées des autres comptes ne se déclencheront pas pendant que ce compte est actif. Activez le mode permanent dans Paramètres → Préférences d'interface pour une planification fiable en arrière-plan. + Les publications planifiées peuvent ne pas être publiées avant la prochaine ouverture de l'application. Activez le mode permanent dans Paramètres → Préférences d'interface pour une planification fiable en arrière-plan. + Publications planifiées + Envoyer maintenant + %1$s · dans %2$s + %1$s · il y a %2$s + Demain + Erreur : %1$s + ID de note copié + + Déconnecté · %1$d publication planifiée supprimée + Déconnecté · %1$d publications planifiées supprimées + + Déconnecté + + Vous avez %1$d message planifié qui n'a pas encore été publié. La déconnexion le supprimera définitivement. + Vous avez %1$d messages planifiés qui n'ont pas encore été publiés. La déconnexion les supprimera définitivement. + + Échec de la publication planifiée + Publication planifiée publiée + + vers %1$d relais + vers %1$d relais + + Annulé + Échoué + Planifié + Envoi en cours… + Envoyé + + · %1$d due dans 1h + · %1$d dues dans 1h + + + %1$d en file d'attente + %1$d en file d'attente + + De bonnes options sont:\n%1$s + Relais de recherche + Relais de recherche + Liste des relais à utiliser pour la recherche et l'étiquetage des utilisateurs. L'étiquetage et la recherche ne fonctionneront pas si aucune option n'est disponible. + événements recherchables + Clé secrète (nsec) copiée dans le presse-papiers + Vous n'avez pas encore bloqué d'utilisateurs. + Filtres de sécurité + Aucun mot masqué. Ajoutez un mot ci-dessous pour masquer les publications le contenant. + Contenu bloqué + Préférences de filtrage + Aucun compte n'a été signalé comme spam lors de cette session. + Envoyer + Envoyer tous les événements de profil (kind 0) reçus vers votre relais local + Transférer les profils vers le relais local + Dépensable pour ce destinataire : %1$s sats + Paiement échoué + Transaction : %1$s + Payement via %1$s… + Le serveur n'a pas fourni d'URL après le téléversement + Paramètres + Aucun fil mis en sourdine + Fils en sourdine + Partager en tant qu'image + Partager en tant qu'URL de l'image + Mise en ligne HLS + Partager ou Enregistrer + Shorts + Afficher le QR code de la clé privée chiffrée + Inclure les messages directs et de groupe dans l'onglet Notifications. Désactivez pour conserver les messages uniquement dans l'onglet Messages. + Voir les messages + Afficher le QR code de la clé privée + Requête de signature rejetée + Assurez-vous que l'application signataire a autorisé cette transaction + Le signataire externe a renvoyé des données qui sont étranges pour la requête. Il peut y avoir un bug sur Amethyst ou le signataire. + Signataire introuvable + L'application de signature a-t-elle été désinstallée ? Vérifiez si le signataire est installé et a ce compte. Déconnectez-vous et reconnectez-vous de l'application signataire a changé. + Revenir %1$d secondes en arrière + Avancer de %1$d secondes + Applications + Spam + Le nombre d'événements spam provenant de ce relais + Spammeurs + Afficher deux onglets de notifications — Abonnements (personnes que vous suivez) et Tout le monde. L'indicateur de non-lu s'allume uniquement pour l'activité des personnes que vous suivez. + Séparer les notifications par abonnements + Tente de supprimer les métadonnées privées des fichiers multimédias pris en charge avant le téléversement + Supprimer les métadonnées privées + Lit les entraînements terminés depuis Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) et suggère de les partager en tant que publication. La permission n'est demandée qu'à la connexion. + Suggérer des entraînements à partager + Système + Thème + Sombre, Clair ou thème Système + Ce message disparaîtra dans %1$s + + +%1$d\nréponse + +%1$d\nréponses + + Aujourd'hui + Personnalisé + Faites votre choix manuellement + Par défaut + Masque votre IP des relais aléatoires + Orbot + Confidentialité complète + Masque votre IP pour toutes les connexions + Interne + Désactivé + Tor/Préréglages de confidentialité + Modifier rapidement tous les paramètres ci-dessous + Tous sauf les médias + Masque votre adresse IP pour tout, sauf les images et les vidéos + Relais MP + Forcer Tor à envoyer et recevoir des MPs + Images + Forcer Tor lors du chargement des images + Téléversements de média + Forcer Tor lors du téléversement de contenu + Opérations financières + Forcer Tor pour les transferts en zaps, lightning ou cashu + Relais non approuvés + Forcer Tor pour les relais de boîte de réception + Vérification de l'adresse Nostr + Forcer Tor lors de la vérification des adresses NIP-05 + Url/Relais en oignon + Utiliser Tor pour n'importe quelle url .onion + Photos de profil + Forcer Tor lors du chargement des photos de profil + Relais de confiance + Forcer Tor sur tous les relais de vos listes + Aperçu des URL + Forcer Tor lors du chargement des aperçus d'url + Vidéos + Forcer Tor lors du chargement des vidéos + Basique + Utiliser Tor lorsque le serveur le demande + Échec de l'ouverture du fichier + Aucune application torrent installée pour ouvrir et télécharger le fichier. + L'événement ne possède pas assez d'informations pour construire un lien magnet + Utilise le diffuseur suivi lors de l'envoi d'événements. Affiche la progression en direct et l'état par relais pendant la diffusion. + Diffusions suivies + Traduire vers + Choisir la langue dans laquelle traduire le contenu. + Traductions + Relais de confiance + Relais de confiance ne nécessitant pas une connexion Tor pour + Complet + Performance + Simplifié + Préférences de l'UI + Mode UI + Choisir le style du message + Impossible de créer une facture lightning avant d'envoyer le zap. Le portefeuille lightning du destinataire a envoyé l'erreur suivante : %1$s + Impossible de partager l'image, veuillez réessayer plus tard… + Impossible de partager l'image, veuillez réessayer plus tard… + Déchiffrement non autorisé + Le signataire n'a pas autorisé le décryptage nécessaire pour effectuer cette opération. Activez les décryptions NIP-44 dans votre application signataire et réessayez + Ne plus suivre + Détacher + Retirer du profil + Téléversement annulé + Erreur d'envoi + Échec de l'envoi de la voix : %1$s + Échec de l'envoi du message vocal + NIP-95 n'est pas encore supporté pour les messages vocaux + %1$d%% de disponibilité + Activer le moteur Tor + Utiliser la version interne ou Orbot + L'utilisateur n'a pas configuré d'adresse Lightning pour recevoir des sats + L'utilisateur %1$s n'a pas configuré d'adresse Lightning pour recevoir des sats + Historique des suppressions + Demande de suppression envoyée + Une meilleure qualité avec des tailles de fichier plus petites, mais tous les appareils ne supportent pas la lecture H.265. + Utiliser le codec H.265/HEVC + Le téléchargement de la vidéo a démarré… + Boutons du lecteur vidéo + Vidéo enregistrée dans la galerie vidéo du téléphone + Message vocal + Profond + Haute + Neutre + Aucun + Réponse vocale + Portefeuille + Portefeuille Cashu (NIP-60) + Wallet Connect + Le fournisseur de connexion de votre portefeuille a retourné l'erreur suivante : %1$s + Modifier les mints + Affiche un message d'avertissement lorsque des messages ont été rapportés 5 fois ou plus par vos abonnements + Avertir sur les rapports + Ajouter un signet web + Modifier le signet web + Signets web + Quoi de neuf ? + Entraînements + Rédiger un message… + Écrire sur le Relay + Le nombre d'octets qui ont été envoyés à ce relais, y compris les filtres et les événements + Zap + Zaps + + Renommer + Sauvegarder diff --git a/commonsUI/src/commonMain/composeResources/values-hi-rIN/strings.xml b/commonsUI/src/commonMain/composeResources/values-hi-rIN/strings.xml index 66ca9e0fce..ec0cd8dd54 100644 --- a/commonsUI/src/commonMain/composeResources/values-hi-rIN/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-hi-rIN/strings.xml @@ -2893,4 +2893,2137 @@ व्यक्तिशैली प्रकाशन आपका अनुचर क्रमचर + जानकारी तथा न्यायिक + नीलवर्ण + हरितवर्ण + नारंगवर्ण + श्वेतरक्तवर्ण + नीललोहितवर्ण + रक्तवर्ण + लेखा स्थापना विकल्प + + %1$d छलनी + %1$d छलनियाँ + + + %1$d समूह + %1$d समूह + + + %1$d पुनःप्रसारक + %1$d पुनःप्रसारक + + ग्राहकताएँ छलनियाँ पुनःप्रसारक अनुरोध अनु॰ संयोजन क्यों निदानतन्त्र + %1$dप्रतिशतप्रतिशत सब में से + सक्रिय पुनःप्रसारक ग्राहकताएँ + + %1$d छलनी आरोपित नहीं अब तक + %1$d छलनियाँ आरोपित नहीं अब तक + + जोडें + ब्लोस्सम॰ प्रसारसंगणक जोडें + निप॰-९६ सेवासंगणक जोडें + जब सक्षम अमेथिस्ट निप॰८९ ग्राहक सूचक जोडेगा आपके द्वारा प्रकाशित घटनाओं में। + मेरे घटनाओं में ग्राहक सूचक जोडें + इसे दिखाने से पूर्व संवेदनशील विषयवस्तु चेतावनी जोडता है + संवेदनशील विषयवस्तु + सन्देशों में जोडें + सार्वजनिक स्मर्तव्य सूची में जोडें + यन्त्र स्थित एआई॰ प्रतिरूप का प्रयोग करता है लेख सुधार तथा स्वर परिवर्तन प्रस्तावों के लिए। + लेख शोधन प्रस्ताव करें + आपके आगतपेटिका पुनःप्रसारकों के साथ संयोजन सक्रिय रखता है तत्काल सूचनाओं के लिए + + संयोजित %1$d आगतपेटिका पुनःप्रसारक के साथ + संयोजित %1$d आगतपेटिका पुनःप्रसारकों के साथ + + + संयोजित %1$d पुनःप्रसारक के साथ + संयोजित %1$d पुनःप्रसारकों के साथ + + आगतपेटिका पुनःप्रसारकों के साथ संयोजन किया जा रहा है \u2026 + विवरण छिपाएँ + विवरण दिखाएँ + निष्क्रिय + सक्रिय + अमेथिस्ट सूचनाएँ सक्रिय + आप %1$s में जोडे गए हैं + आपको सूचित करता है जब कोई आपका उल्लेख अथवा आपको उद्दीप्त करते हैं एक निबन्ध में + %1$s ने आपका उल्लेख किया एक निबन्ध में + %1$s ने आपके निबन्ध को उद्दीप्त किया + निबन्ध तथा उद्दीप्तव्य + नए निबन्ध + अपको सूचित करता है जब आप एक नया पदक प्राप्त करते हैं + आपने एक पदक प्राप्त किया + पुरस्कृत %1$s द्वारा + पदक + नए पदक + सूचनाएँ आगामी ध्वनि तथा दृश्य आह्वानों के लिए + आगामी आह्वान + %1$s ने आपकी चतुरंग चुनौती स्वीकारा + आपको सूचित करता है चतुरंग खेल घटनाओं के विषय में + चतुरंग + चतुरंग अद्यतन + %1$s ने खेला - आपकी बारी + आपको सूचित करता है समस्याएँ सुधारलेख कर्षण अनुरोध टिप्पणियाँ विलय तथा आवृतों पर + %1$s ने एक विषय खोला + %1$s ने एक सुधारलेख भेजा + %1$s ने एक कर्षण अनुरोध खोला + %1$s ने एक कर्षण अनुरोध का अद्यतन किया + %1$s ने टिप्पणी की + %1$s ने एक सूत्र का विलय अथवा समाधान किया + %1$s ने एक समस्या का समाधान किया + %1$s ने एक सुधारलेख का प्रयोग किया + %1$s ने एक कर्षण अनुरोध को विलय किया + %1$s ने एक सूत्र को आवृत किया + %1$s ने एक समस्या को आवृत किया + %1$s ने एक सुधारलेख को आवृत किया + %1$s ने एक कर्षण अनुरोध को आवृत किया + %1$s ने एक सूत्र को कच्चा चिह्नित किया + %1$s ने एक सूत्र को पुनः खोला + क्रमलेख तथा गिट॰ + नई क्रमलेख गतिविधि + आपको सूचित करता है जब एक निजी संदेश आएगा + निजी संदेश + नए सन्देश + विषयवस्तु + विकासकर्ता + खेल + सन्देश + भुगतान + सामूहिक + पढा हुआ चिह्नित करें + मैं + आपको सूचित करता है जब कोई आपका उल्लेख करते हैं चित्र अथवा चलचित्र में + %1$s ने चित्र बाँटा + %1$s ने चलचित्र बाँटा + श्रव्यदृश्याभिलेख + नए श्रव्यदृश्याभिलेख + आपको सूचित करता है जब किसी ने आपका उल्लेख अथवा उद्धरण किया हो + %1$s ने आपका उल्लेख किया + उल्लेख + नए उल्लेख + नया सन्देश + नटज्साप॰ %1$s से + खण्डश्रृंखलाबद्ध ज्साप %1$s से + आपको सूचित करता है जब आपके संयोजित धनकोष को एक भुगतान प्राप्त होता है जो एक नोस्टर ज्साप नहीं + %1$s साट्स प्राप्त + भुगतान प्राप्त + नए भुगतान + %1$s ने प्रश्न पूछा + सूचित करता है जब किसी ने आपके पत्र पर प्रतिक्रिया व्यक्त किया हो + %1$s ने आपके पत्र पर प्रतिक्रिया व्यक्त की + %1$s के लिए + प्रतिक्रियाएँ + नए प्रतिक्रियाएँ + आपको सूचित करता है जब किसी ने आपके पत्र को उत्तर लिखा हो + प्रतिवचन + नए उत्तर + उत्तर + आपको सूचित करता है जब कोई आपके पत्र को पुनःप्रकाशित करते हैं + %1$s ने आपके पत्र को पुनःप्रकाशित किया + पुनःप्रकाशन + नए पुनःप्रकाशन + सूचनाएँ जब एक समयनिर्धारित पत्र का प्रकाशन होता है अथवा प्रकाशन असफल। + प्रकाशन समय निर्धारित पत्र + सूचित करता है जब किसी ने आपको ज्साप किया + %1$s साट्स + %1$s के लिए + %1$s से + ज्साप प्राप्त + नए ज्साप + क्रमक स्थापना विकल्प + साक्ष्यांकन + साक्ष्यांकन अनुरोध + साक्षी निपुणता + साक्षी अनुशंसा + + तो भी %1$d व्यक्ति जोडें + तो भी %1$d व्यक्ति जोडें + + + %1$d व्यक्ति जोडें + %1$d व्यक्ति जोडें + + पहले ही जोडा गया + मौनकृत + निजी सदस्य + केवल आप \u2014 चयन कर सकते हैं कि अन्य कौन इसे देख सकते हैं + लोग जोडें सूचित करने के लिए + + %1$d व्यक्ति होगा। अमेथिस्ट प्रति बार अधिकतम %2$d जोडेगा \u2014 कुछ का अचयन करें। + %1$d व्यक्ति होंगे। अमेथिस्ट प्रति बार अधिकतम %2$d जोडेगा \u2014 कुछ का अचयन करें। + + निजी रूप से भेजें + + इस टीका को रहस्यीकृत किया जाएगा तथा भेजा जाएगा %1$d पृथक बार। एक बार प्रति व्यक्ति। बाहरी हस्ताक्षरकर्ता के साथ यह प्रत्येक के लिए एक अनुमति होगी। + इस टीका को रहस्यीकृत किया जाएगा तथा भेजा जाएगा %1$d पृथक बार। एक बार प्रति व्यक्ति। बाहरी हस्ताक्षरकर्ता के साथ यह प्रत्येक के लिए एक अनुमति होगी। + + + %1$d व्यक्ति इस पत्र के लिए सूचना प्राप्त करेगा। + %1$d व्यक्ति इस पत्र के लिए सूचना प्राप्त करेंगे। + + + %1$s तथा %2$s तथा %3$d अन्य + %1$s तथा %2$s तथा %3$d अन्य + + ध्वनि दृश्यकर्ता + स्वतः पाण्डुलिपि घटना का अभिलेखन करता है जब आप टंकण करते है अथवा सम्पादक छोडते हैं अप्रेषित लेख के साथ तथा आपके निजी निर्गतपेटिका पुनःप्रसारकों को भेजता है। + पाण्डुलिपियाँ स्वतः बनाएँ + निमग्नकारी पृष्ठघुमाव + मार्गदर्शनपट्टियों को छिपाएँ पृष्ठघुमाव करने पर + चित्र पूर्वीक्षण + स्वचालित रूप से चित्र तथा जिफ॰ का अवरोहण करें + चलचित्र का चालन + स्वचालित रूप से चलचित्र तथा जिफ॰ चलाता है + परिचय चित्र + परिचय चित्र दिखाएँ + जालपता पूर्वीक्षण + जालपता के पूर्वीक्षण दिखाएँ + स्वतःचालन चलचित्र + स्वतः चालू करें चलचित्रों को जब पटल पर दिखाई दें + एविफ॰ से परितथ्य नहीं मिटा सके : %1$s + पदक पुरस्कार + पीछे चलें + कुंचिकाएँ सुरक्षित रखें + पदक + प्रमाणीकरण असफल + जैविकमात्राएँ द्वारा इस संचारयन्त्र के स्वत्वधारी का प्रमाणीकरण असफल + जैविकमात्राएँ द्वारा इस संचारयन्त्र के स्वत्वधारी का प्रमाणीकरण असफल। अपक्रम : %1$s + बाधित करें + बाधित पुनःप्रसारक + अमेथिस्ट इन पुनःप्रसारकों से कभी नहीं जुडेगा + बाधित उपयोगकर्ता + एक अभिलेख समचरणीकरण पहले से चल रहा है। समाप्त होने के पश्चात आयात करने का पुनःप्रयास करें। + सभी को अक्षम करें + सभी को सक्षम करें + + %1$d अभिलेख + %1$d अभिलेख + + + %1$d नया अभिलेख प्राप्त आपके सेवासंगणकों में आयात करने के लिए। + %1$d नए अभिलेख प्राप्त आपके सेवासंगणकों में आयात करने के लिए। + + + %1$d अभिलेख का आयात + %1$d अभिलेखों का आयात + + सभी सेवासंगणकों पर नहीं + सभी सेवासंगणकों पर + + %1$d साट् भुगतान + %1$d साट्स भुगतान + + भुगतान आवश्यक इस सेवासंगणक तक आरोहण के लिए : %1$s + निरस्त + प्रगति दर्शाता है आपके अभिलेखों की अनुकृति करते समय आपके ब्लोस्सम सेवासंगणकों में। + ब्लोस्सम॰ समचरणीकरण + आपके अभिलेखों की अनुकृति सभी सेवासंगणकों में… + बोल्ट१२ प्रस्ताव सूची + एक अथवा अनेक बोल्ट१२ प्रस्ताव जोडें (lno1…)। वे सार्वजनिक रूप से बाँटे जाते हैं जिससे कि कोई भी आपको भुगतान कर सके। + बोल्ट१२ भुगतान असफल : %1$s + बोल्ट१२ भुगतान भेजा गया + बोल्ट१२ ज्साप अपक्रम + बोल्ट१२ पर भुगतान किया गया। परन्तु भुगतान प्रमाण की प्रमाणीकरण असफल। इसलिए कोई ज्साप प्राप्तिप्रमाण प्रकाशित नहीं किया गया। + बोल्ट१२ पर भुगतान किया गया। परन्तु धनकोष से कोई प्रमाण प्राप्त नहीं। इसलिए कोई ज्साप प्राप्तिप्रमाण प्रकाशित नहीं किया गया। + नव्य स्मर्त्तव्य सूची + स्मर्त्तव्य सूची उपतथ्य + स्मर्त्तव्य सूची उपतथ्य किसी के भी द्वारा देखे जा सकते हैं नोस्टर पर। केवल आपके निजी सदस्य रहस्यीकृत होते हैं। + स्मर्तव्य + उद्धरण + क्रमक तथा जाल + चर्चाएँ तथा समूह + सूचनावलियाँ + मुख्‍य + अन्य + आप + निचली मार्गदर्शन पट्टी + जोडें + जोडा गया + कोई प्रियचिह्नित नहीं। एक क्रमक को ताराचिह्नित करें जालसंचारक में यहाँ जोडने के लिए। + कोई समूह नहीं जिससे जुडे हुए हैं अब तक। + प्रसारण पुनःप्रसारक + पुनःप्रसारक जो आपके पत्रों को अन्य सभी पुनःप्रसारकों को भेजने का विशेष कार्य करते हैं। जैसे कि sendit.nosflare.com । अमेथिस्ट इस पुनःप्रसारक को जोडेगा आपके द्वारा कृत सभी नए घटनाओं के लिए + जालवीक्षक + इष्टसूची + जाल क्रमक आविष्करण + खुले जाल पर आवहन हो रहा है। टोर॰ का उपयोग करने के लिए दबाएँ। + टोर॰ पर आवहन हो रहा है। खुले जाल का उपयोग करने के लिए दबाएँ। + प्रणाली संग्रहण + नयी प्रणाली + प्रणाली मिटाएँ + क्या %1$s को मिटा दें। यह इस प्रणाली को तथा इसके सन्देशों को हटा देगा सब के लिए। इसे पूर्ववत नहीं किया जा सकता। + निजी प्रणाली + प्रणाली सूची में छिपाया गया तथा आमन्त्रण सीमित। निष्क्रिय अर्थात इस पुनःप्रसारक पर कोई भी इसे खोज सकेगा तथा जुड सकेगा। + प्रणाली संग्रह अवस्था हटाएँ + + %1$d छिपाया गया संवाद + %1$d छिपाए गए संवाद + + + देखें %1$d और संवाद + देखें सभी %1$d संवाद + + सम्पादन + नया मंच + प्रणाली टाँकें + %1$s तथा %2$s टंकण मध्य… + प्रणाली टाँका हटाएँ + स्वीकृत + निरस्त + अस्वीकृत + असफल + अनुमति आवश्यक + पंक्तिबद्ध + संस्करण प्रयोक्ताओं को भेज दिया गया + कार्य मध्य + + %1$s, %2$d घटना + %1$s, %2$d घटनाएँ + + चित्र आरोहण असफल + चयनित चित्र का अरोहण असफल। पुनःप्रयास करें अथवा जालपता चिपकाएँ। + दिनदर्शिका घटना बाँटें + मानचित्र में खोलें + योजक खोलें + हो रहा है अब + %1$s। %2$s समापन + + आरम्भ %1$d मिनट में + आरम्भ %1$d मिनटों में + + सूचना जब एक घटना जिस में आप भाग ले रहे हैं आरम्भ होनेवाला है। + दिनदर्शिका अनुस्मारक + दिनदर्शिका अनुस्मारक + दिनदर्शिका घटना + सूचना भेजी जाती है जब एक घटना जिस में आप भाग ले रहे हैं आरम्भ होनेवाला है। + अनुस्मारक भेजें + + %1$d मि॰ + %1$d मि॰ + + दिनदर्शिका अनुस्मारक + दिन + सूचनावली + मास + सप्ताह + स्वीकार + ब्लूटूथ + चित्रग्राहक निष्क्रिय + चित्रग्राहक चालू + कर्णयन्त्र + समापन + आगामी आह्वान + आगामी दृश्य आह्वान\u2026 + आगामी ध्वनि आह्वान\u2026 + मौन + आह्वान + चालू आह्वान सूचना + अमेथिस्ट को चित्रग्राहक तथा ध्वनिग्राहक अभिगमन आवश्यक है दृश्य आह्वान आरम्भ करने के लिए। कृपया इन्हें क्रमक स्थापना विकल्पों में सक्षम करें। + अमेथिस्ट को ध्वनिग्राहक अभिगमन आवश्यक है ध्वनि आह्वान आरम्भ करने के लिए। कृपया इसे क्रमक स्थापना विकल्पों में सक्षम करें। + अस्वीकार करें + चित्रपटल बाँटें + चित्रपटल बाँटना रोकें + चित्रपटल बाँटा जा रहा है + आह्वान स्थापना विकल्प + वक्ता + मौन हटाएँ + %1$s के साथ आह्वान + प्रत्याह्वान जालपता उपलब्ध नहीं %1$s के उत्तर से + निरस्त करें + काशयू अक्षरराशि + टकसाल का जाँच… + काशयू नहीं चुका पाए + टकसाल ने यह अपक्रम संदेश उपलब्ध किया : %1$s + प्राप्त + भेजा गया + अनुकूल टकसाल + + %1$d अधिक + %1$d अधिक + + लोकप्रिय टकसाल + + %1$d अन्य द्वारा अनुशंसित + %1$d अन्यों द्वारा अनुशंसित + + %1$s साट्स स्थानान्तरित %2$s तक। + कोई अनुकूल काशयू धनकोष उपलब्ध नहीं यन्त्र में + + %1$d लम्बित चालान + %1$d लम्बित चालान + + क्या %1$s साट के साथ %2$s साट तक शुल्क का भुगतान करें। + अपके द्वारा %1$s का प्रकार ३८००० अनुशंसा को मिटाने का अनुरोध प्रकाशित करें। पुनःप्रसारक जो निप॰०९ का सम्मान करते हैं उसे हटा देगा। + %1$s साट्स पुनःप्राप्त %2$s प्रमाणों में से। + काशयू प्राप्त + %1$s साट्स भेजे गये आपके धनकोष में। (शुल्क : %2$s साट्स) + असुरक्षित काशयू टकसाल पता + अमेथिस्ट ने इस अक्षरराशि की टकसाल से सम्पर्क नहीं किया। %1$s + + धन %1$d टकसाल मे रखे गए जिसका उपयोग आप नहीं करते + धन %1$d टकसालों मे रखे गए जिनका उपयोग आप नहीं करते + + चालान चुकाए जाने की प्रतीक्षा में… + + %1$d टकसाल + %1$d टकसाल + + निक्षेपण रोकें + यन्त्र पर निक्षेपण + न्यूनतम एक पुनःप्रसारक द्वारा स्वीकृत + सभी प्राप्तकर्ताओं के पुनःप्रसारकों को भेजा गया + इस सन्देश के लिए कोई पुनःप्रसारक जानकारी नहीं + किसी एक पुनःप्रसारक द्वारा इस सन्देश की स्वीकृति की प्रतीक्षा + + %1$d उत्तर + %1$d उत्तर + + चर्चा में + सूत्र में + रहस्यीकृत समुदाय अनेक प्रणालियाँ युक्त (कोंकोर्ड)। + कोंकोर्ड समुदाय + लघु पुनःप्रसारक सीमित शालाएँ जो स्थायी इतिहास नहीं रखते। + अस्थायी चर्चाएँ + सार्वजनिक भूभागसूचक सीमित चर्चा एक स्थान के लिए (भूभाग पता)। + स्थानीय चर्चाएँ + एमएलएस॰ आरम्भ से अन्त तक रहस्यीकृत समूह चर्चाएँ (मार्मोट॰)। + रहस्यीकृत समूह + पुराने तथा अल्पतर निजी रहस्यीकृत सीधे सन्देश (निप॰०४)। + पुरानी शैली सीधेसन्देश + आरम्भ से अन्त तक रहस्यीकृत तथा उपहारकोषयुक्त सीधे सन्देश (निप॰१७)। + निजी सन्देश + खुले सार्वजनिक चर्चा शालाएँ। कोई भी पढ सकता है तथा जुड सकता है (निप॰२८)। + सार्वजनिक प्रणालियाँ + पुनःप्रसारक प्रबन्धित समूह चर्चाएँ कार्यसूचियाँ तथा नियमन युक्त (निप॰२९)। + पुनःप्रसारक समूह + शिशु सुरक्षा मानक + आभूषण + कला + पुस्तकें + वस्त्र + संग्रहार्थ + क्रिया + विद्युत्कणयन्त्र + स्वास्थ्य + आहार + पीठशय्यादि + घर + विभिन्न + कार्यालय + अन्य + पालतू जीव + खेल + दैनिक + मासिक + एकदा + साप्ताहिक + क्या %1$s भुगतान %2$s द्वारा करें। + क्या चालान का भुगतान %1$s द्वारा करें। + ऋणांकन सेवा ने भुगतान पूरा नहीं किया। + इस प्रस्ताव के लिए मान्य मात्रा प्रविष्ट करें। + चालान अनुरोध… + इस पत्र प्रकाशन के सभी प्रतिक्रियाओं को आवृत करें + आवृत + समुदाय + पाण्डुलिपि %1$d अष्टक है। यह समुदाय इस प्रकार के घटनाओं को %2$d अष्टक पर सीमित करता है। + पाण्डुलिपि %1$d अष्टक है। यह समुदाय घटनाओं को %2$d अष्टक पर सीमित करता है। + आप पहले से ही %1$d इस प्रकार के घटनाओं को प्रकाशित कर चुके है (सीमा %2$d)। + सम्पादन स्थापना विकल्प + + %1$d प्रणाली + %1$d प्रणालियाँ + + नयी प्रणाली + प्रणाली मिटाएँ + मिटाएँ + क्या #%1$s को मिटा दें। इसको पूर्ववत नहीं किया जा सकता। तथा उसी सूचक के साथ प्रणाली का पुनःउत्पादन नहीं किया जा सकता। + क्या प्रणाली मिटा दें। + प्रणाली नाम + कोई सन्देश नहीं अब तक + प्रणाली पुनःनामकरण + पुनःनामकरण + कोई प्रणाली नहीं अब तक। + बनाएँ + पुनःप्रसारक + पुनःप्रसारक जो इस समुदाय के रहस्यीकृत सन्देशों को रखते हैं। रिक्त छोड दें अपने ही पुनःप्रसारकों का उपयोग करने के लिए। + नयी कोंकोर्ड प्रणाली + समुदाय सम्पादन + सन्देश सम्पादन + कोंकोर्ड॰ प्रणाली + लोगों को आमन्त्रण + आमन्त्रण अप्राप्त। सम्भाव्यतः योजक निष्क्रिय है अथवा इसके पुनःप्रसारक अनभिगम्य। + इस समुदाय ने आपको हटा दिया। योजक अब भी कार्य करता है पर इसके सदस्यसूची में आप स्वीकृत नहीं। + यह आमन्त्रण योजक पुराना हो चुका है तथा अनुपयुक्तव्य। नए योजक के लिए पूछें। + इस आमन्त्रण को खोला नहीं जा सकता। सम्भावना है कि यह पुराना हो चुका है अथवा नवीनतर द्वारा प्रतिस्थापित अथवा एक नवीनतर क्रमक संस्करण द्वारा बनाया गया। एक नए आमन्त्रण योजक के लिए पूछें। + यह आमन्त्रण योजक अमान्य है अथवा इस लेखा द्वारा खोला नहीं जा सकता। + यह आमन्त्रण योजक निराकृत है तथा अनुपयुक्तव्य। नए के लिए पूछें। + आमन्त्रण योजक… + आमन्त्रण योजक + योजक निराकरण असफल। आपका संयोजन जाँचें तथा पुनःप्रयास करें। + आमन्त्रण योजक निराकृत। + आमन्त्रण योजक + समुदाय छोडें + क्या %1$s छोडें। इसे हटाया जाएगा इस लेखा की सूची से तथा आपके यन्त्रों पर समचरणीकरण रुक जाएगा। समुदाय को सूचित नहीं किया जाएगा। तथा आपको उसके सदस्य कार्यसूची से हटाया नहीं जाएगा। सन्देश जिनका आप अरहस्यीकरण नहीं कर सकेंगे सम्भाव्यतः पुनःप्राप्तव्य नहीं होंगे। तथा आप केवल नए आमन्त्रण के साथ लौट सकेंगे। + आपने इस समुदाय को बनाया। छोड जाने से यह मिटेगा नहीं। किसी अन्य के हाथ सौंपा नहीं जाएगा। परन्तु स्वत्वधारी कुंचिका जो आपकी सूची में हैं वह हटाया जाएगा। आप आगे से इसका प्रबन्धन नहीं कर पाएँगे। + क्या समुदाय छोडें। + प्रशासक बनाएँ + + %1$d सदस्य + %1$d सदस्य + + प्रतिबन्ध + प्रशासक बनाएँ + प्रशासक हटाएँ + इस सदस्य के भूमिकाओं का अद्यतन करने में असफल। + भूमिकाएँ सौंपें + सदस्य + प्रतिबन्ध हटाएँ + प्रशासक हटाएँ + चित्र भेजें + कोंकोर्ड + अनेक लोग टंकण मध्य… + %1$s टंकण मध्य… + %1$s तथा %2$s टंकण मध्य… + + %1$d नया सन्देश + %1$d नए सन्देश + + मूलविकल्प द्वार ९०५० है + संयोजित पुनःप्रसारक + वर्तमान उपयुक्त पुनःप्रसारकों की सूची + सफल संयोजनों का प्रतिशत पुनःप्रसारक के साथ + सर्वदा + कभी नहीं + मात्रांकन रहित वैफै॰ + वैफै॰ + पत्र जोडें + चित्र जोडें + श्रव्यदृश्याभिलेख जोडें + चलचित्र जोडें + छिपाएँ + चेतावनी दें + दिखाएँ + सम्वाद + चलन्त जिफ॰ से एमपी४॰ में परिवर्तित करता है सूक्ष्मतर अभिलेख आकार तथा अधिक चालन अनुकूलता के लिए। + जिफ॰ से एमपी४॰ में परिवर्तित करें + टीका सूचक (@note1) की अनुकृति की गई टाँकाफलक में + टीका लेख की अनुकृति की गई टाँकाफलक में + टाँकाफलक में अनुकृत + लेखक के @npub की अनुकृति की गई टाँकाफलक में + मेरी गुप्त कुंचिका की अनुकृति करें + टाँकाफलक में अनुकृति करें + लै॰जालपता नहीं बना पाए लै॰पता "%1$s" से। उपयोगकर्ता की स्थापना की जाँच करें + आरोहण पश्चात अवरोहित अभिलेख की जाँच नहीं हो सकी : %1$s + सेवासंगणक से आरोहणकृत श्रव्यदृश्याभिलेख का अवरोहण नहीं कर पाए + चालान नहीं लाया जा सका %1$s से : %2$s + संकुचित अभिलेख को खोल नहीं पाए + धनकोष अप्राप्त + अमेथिस्ट को कोई धनकोष क्रमक प्राप्य नहीं जो नोस्टर धनकोष संयोजन का अवलम्बन करता हो। +\n\nआप यह कर सकते हैं : +\n\t१॰ नोस्टर धनकोष संयोजन अवलम्बन का सत्यापन करें। दुबारा जाँचें की आपका मनचाहा धनकोष क्रमक नोस्टर धनकोष संयोजन के साथ संगत है। +\n\t२॰ संयोजन बनाएँ। आपके धनकोष क्रमक में जाकर एक नया नोस्टर धनकोष संयोजन बनाएँ। +\n\t३॰ अमेथिस्ट के साथ जोडें। आपका धनकोष क्रमक सामान्यतः तीन विकल्प देगा। +\n\t\t३॰१ स्वचालित जोड। एक घुण्डी जिससे स्वचालित रूप से खोलें तथा अमेथिस्ट से जोडें। यदि हो तो उस घुण्डी को टाँकें तथा अमेथिस्ट खोलें तथा नव्य पटल पर अभिलेखन करें। +\n\t\t३॰२ मनुष्यकृत जोड। एक संयोजन वैश्विकसंसाधनपरिचायक जिसकी अनुकृति करके सीधे इस पटल पर प्रविष्ट कर सकते हैं। +\n\t\t३॰३ क्यूआर॰ चित्र अक्षरराशि। धनकोष क्रमक एक क्यूआर॰ चित्र अक्षरराशि बनएगा जिसे आप परख सकते हैं इस पटल पर क्यूआर॰ क्रमचित्र घुण्डी द्वारा। + + बनाएँ + दि॰ + संकट क्षेत्र + अन्धकारमय + विवरण + सार्वजनिक बनाएँ + चर्चाएँ + समुदाय + सूचनावली विधियाँ + अनुचरण पोटलियाँ + वर्तमानप्रवाह + व्यापारक्षेत्र + पठितव्य + सीधा संदेश आगतपेटिका पुनःप्रसारक + + वृत्तान्त आपके द्वारा अनुचरित %1$d व्यक्ति से + वृत्तान्त आपके द्वारा अनुचरित %1$d व्यक्तियों से + + सीधेसन्देश + अनुवाद ना करें + यहाँ प्रस्तुत भाषाओं का अनुवाद नहीं होगा। भाषा चयन करें हटाने के लिए जिससे उसका अनुवाद पुनः होने लगेगा। + संचारयन्त्र में अभिलेखन करें + चलचित्र अवरोहण चालू… + टीका पाण्डुलिपि + पाण्डुलिपियाँ + लेखाएँ + बनाएँ + सूचनावलियाँ + मार्गदर्शन + व्यवस्था + आप + पार्श्व विकल्पसूची + सर्वदा सक्रिय + छिपे हुए + + %1$d छिपा हुआ + %1$d छिपे हुए + + दृश्यमान + + %1$d दिन + %1$d दिन + + + %1$d घण्टा + %1$d घण्टे + + + %1$d मिनुट + %1$d मिनुट + + + %1$d मास + %1$d मास + + + %1$d सप्ताह + %1$d सप्ताह + + + %1$d वर्ष + %1$d वर्ष + + दिनदर्शिका सम्पादन + दिनदर्शिका घटना सम्पादन + समुदाय सम्पादन + भावचिह्न पोटली सम्पादन + सम्पादन + संगीतसूची सम्पादन + पत्र का सम्पादन करें + निजी भावचिह्न रहस्यीकृत रूप में रखे जाते हैं पुनःप्रसारकों में तथा केवल आप के लिए दृश्य हैं। आपके प्रतिक्रिया विकल्पसूची में उपस्थित होते हैं तथा ":" स्वतःसम्पन्न सुविधा में सार्वजनिक भावचिह्नों के जैसे ही। + सार्वजनिक भावचिह्न सब के लिए दृश्य हैं तथा आपके प्रतिक्रिया विकल्पसूची में उपस्थित होते हैं तथा ":" स्वतःसम्पन्न चयनकर्ता में जब यह पोटली आपकी भावचिह्न सूची में है। + भावचिह्न + गोपनीयता के लिए अभिलेखों का रहस्यीकरण करें। कुछ सेवासंगणक रहस्यीकृत अभिलेखों को सम्भाव्यतः अस्वीकार कर सकते हैं निःशुल्क लेखाओं के लिए। + अभिलेख रहस्यीकरण + नश्वर चर्चा + अपक्रम + चालान का भुगतान नहीं कर पाए + निकाल नहीं पाए + भुगतान खोलने में असमर्थ + ज्साप भेजने में असफल + हस्ताक्षर क्रमक खोलने में अपक्रम + हस्ताक्षर क्रमक ढूँढने में असफल। जाँच करें यदि क्रमक को अस्थापित नहीं किया गया हो + अपक्रम संदेश परखने में अपक्रम + %1$s से जेसोन॰ परखनें में अपक्रम। उपयोगकर्ता की लैटनिंग स्थापना की जाँच करें + ग्राहक के सेवा संगणक से चालान नहीं लाया जा सका + जालसंचारक मे खोलें + इस दृश्याभिलेख को चलाया नहीं जा सकता + यह संकुचनविस्तारणविधि अथवा प्रारूप इस यन्त्र पर अवलम्बित नहीं (%1$s)। अपने जालसंचारक में खोलने का प्रयास करें। + अपक्रम + पुनःप्रसारक समचरणीकरण + घटनाएँ आप से + घटनाएँ आप को + जितनी बार हो सके + परिक्रम + द्विचक्रिकाचालन + आहार + प्रति मिनट प्रत्येक मिनट पर + उपवास + पगडण्डी पदयात्रा + ध्यान + खेना + धावन + शक्ति + तरण + पैदल + योग + विस्तृत करें + समापन दिनांक + लेखक ने पुनःप्रसारकों से अनुरोध किया कि इस टीका को मिटा दें %1$s पश्चात। यह सूचनावलियों में अदृश्य हो जाएगा जब यह समाप्त होगा। + पुनःप्रसारक स्थापना विकल्प निर्यात + मिटाने में असफल : %1$s + आपकी निजी कुंचिका का रहस्यीकरण असफल + चित्र का अभिलेखन असफल + पीडीएफ॰ अभिलेखन असफल + चलचित्र को सुरक्षित रखने में असफल + अनेक सेवासंगणक रहस्यीकृत अभिलेखों को स्वीकार नहीं करते निःशुल्क लेखाओं के लिए। आप पुनःप्रयास कर सकते हैं रहस्यीकरण के बिना। + रहस्यीकृत आरोहण असफल + आरोहण अपक्रम : %1$s + श्रव्यदृश्याभिलेख आरोहण असफल + %1$s पर आरोहण असफल : %2$s + इष्टसूची में जोडें + खुले जाल पर आवहन होता है। + टोर॰ पर आवहन होता है। + निकटकाल + इष्टसूची में से हटाएँ + उस क्रमक का आवहन अभी नहीं हुआ है। कुछ क्षण पश्चात पुनःप्रयास करें। + जालक्रमक + इष्ट सूचनावली कलनविधियाँ + भुगतान किया गया + पुनःप्रसारकों पर प्रकाशित किया गया + अभिलेख का आरोहण सम्पन्न + इष्ट पुनःप्रसारक सूचनावलियाँ + पुनःप्रसारक जहाँ आप प्रायः जाते हैं उनके वैश्विक सूचनावली देखने के लिए + समुदाय + सूचनावली कलनविधियाँ + सूचनावली + विषयसूचक + रुचि समुच्चय + सूचियाँ + स्थान + पुनःप्रसारक + अभिलेख सेवासंगणक + इस अभिलेख का आरोहण करने के लिए सेवासंगणक का चयन करें + अज्ञात लोगों से पत्र छिपाएँ जो निरन्तर 5 अथवा अधिक बार यथावत समान थे + कचरालेख छलनी + अनुचरण करें + प्रत्यानुचरण करें + इस स्थान का अनुचरण + सभी इष्ट सूचनावली कलनविधियाँ + मेरे आसपास + आयोजित संग्रह + वैश्विक + मूल अनुचरण सूची + सभी अनुचरित + प्रयोक्ता के सभी अनुगामी + मेरा + मौन सूची + स्थानान्तरण… + नव्य अनुचरण पोटली + अनुचरण पोटली सम्पादन + अनुचरण पोटली उपतथ्य नोस्टर में सब के द्वारा देखा जा सकता है तथा प्रायः अनेक जालस्थानों पर प्रकाशित होते हैं प्रारम्भ सामग्री के रूप में नये प्रयोक्ताओं के लिए। + अनुचरण पोटली उपतथ्य + अनुचरण पोटलियाँ + नयी अनुचरण सूची + सूची सम्पादन + अक्षरशैली + अक्षरशैली क्रमक में सर्वत्र प्रयुक्त + समविस्तार + समविस्तार + रेखारहित + रेखारहित + सरेखा + सरेखा + यन्त्र मूलविकल्प + व्यवस्था + अक्षर आकार + क्रमक में सर्वत्र लेख आकार वर्धन + बहुत बडा + बडा + सामान्य + छोटा + परिचय चित्रालय शैली + चित्रालय शैली चुनें + प्राचीन + आधुनिक + स्थानीय चर्चा + स्थल विशेष पत्र + स्थल के अनुचर ही देखेंगे। आपके सामान्य अनुचर नहीं देखेंगे। + + %1$d वस्तु + %1$d वस्तुएँ + + गिट क्रमलेखकोश + छलनी आवृत + क्रमलेखकोश छलनी + %1$s वित्तपोषित %2$s साट्स उद्देश्य में से + घं॰ + यह विषयवस्तु परिवर्तित हुआ है। हो सकता है लेखक ने परिवर्तन देखा नहीं अथवा अनुमति दिया नहीं। + इसका अर्थ क्या है? + यह विषयवस्तु वैसे ही है जैसे पत्र प्रकाशन पर + नमस्ते %1$s, क्या यह अब भी उपलब्ध है? + छिपाए गये शब्द + समुदाय सूचनावलियों से पत्र हटाया जाता है जब समुदाय द्वारा निप॰९बी नियम अभिलेख प्रकाशित है तथा घटना उसका उल्लंघन करेगा। कोई प्रभाव नहीं जब समुदाय के कोई व्यवस्थित नियम नहीं। + समुदाय नियमों का उल्लंघन करनेवाले पत्रों को छुपाएँ + पारणशब्द छिपाएँ + प्रमुखताएँ + आरोहण चालू %1$s (%3$d में से %2$d) + लेख + साक्ष्यांकन सूची + पक्षी अवलोकन घटनाएँ + चतुरंग खेल + वर्गीकृत विज्ञापन + टिप्पणियाँ तथा प्रत्युत्तर + अस्थायी चर्चाएँ + धनसंग्रहण + प्रमुखताएँ + अन्तरक्रियाशील कहानियाँ + वर्तमान गतिविधियाँ + संगीत तथा ध्वनि + निप॰ पाण्डुलिपियाँ + चित्र + पुटप्रसार + मतदान + मूल्यांकन तथा समीक्षाएँ + पुनःप्रकाशन + लघु चलचित्र + लेखीय टीकाएँ + अनेकत्रावरोहण + चलचित्र + ध्वनि सन्देश + समूहसम्पाद्य पृष्ठ + सभी + बुरा अनुरोध - सेवासंगणक इस अनुरोध पर काम नहीं कर सकता अथवा नहीं करेगा। + अनधिकृत - उपयोगकर्ता के पास प्रमाणीकरण हेतु वैध परिचयपत्र उपलब्ध नहीं + भुगतान अनिवार्य - अनुरोध पूरा करने के लिए सेवासंगणक को भुगतान की आवश्यकता है + वर्जित - उपयोगकर्ता को यह अनुरोध करने का अधिकार नहीं + अप्राप्त - याचित पता ढूँढने में सेवासंगणक असफल + कार्यविधि की अनुमति नहीं - सेवासंगणक याचित कार्यविधि का आलम्बन करता है पर लक्ष्यांकित संसाधन को नहीं + अस्वीकार्य - सेवासंगणक कोई विषयवस्तु नहीं ढूँढ सका जिससे अनुरोध की पूर्ति हो सके। + प्रतिनिधि प्रमाणीकरण आवश्यक - उपयोगकर्ता के पास प्रमाणीकरण हेतु वैध परिचयपत्र उपलब्ध नहीं + अनुरोध समयसीमा समाप्त - सेवासंगणक समयसीमा पार किया किसी अन्य की प्रतीक्षा में। + संघर्ष - सेवासंगणक अनुरोध की पूर्ति नहीं कर सकता क्योंकि संसाधन के साथ संघर्ष है + विगत - याचित विषयवस्तु सेवासंगणक से सर्वदा के लिए मिटाया गया है तथा पुनर्स्थापित नहीं होगा + लम्बाई आवश्यक - सेवासंगणक ने अनुरोध अस्वीकार किया क्योंकि इस के लिए स्पष्ट विषयवस्तु लम्बाई सूचक शीर्षक चाहिए + पूर्वावस्था असफल - अनुरोध के शीर्षक प्रपत्रस्थानों में निर्दिष्ट पूर्वावस्थाओं की पूर्ति में सेवासंगणक असफल + भार अत्याधिक - अनुरोध सेवासंगणक के निरूपित सीमाएँ से बडा है, तथा सेवासंगणक ने इस पर काम करना नकार दिया + जालपता लम्बाई अत्याधिक - ग्राहक द्वारा अनुरोधित जालपता की लम्बाई सेवासंगणक के काम के लिए अत्याधिक है। + अनावलम्बित श्रव्यदृश्याभिलेख प्रकार - अनुरोध में प्रयुक्त श्रव्यदृश्याभिलेख प्रकार सेवासंगणक द्वारा अवलम्बित नहीं + विस्तार असाध्य - अनुरोध के विस्तार शीर्षक प्रपत्रस्थान में सूचित मूल्य की पूर्ति सेवासंगणक द्वारा असाध्य। + अपेक्षा असफल - अनुरोध के अपेक्षा शीर्षक प्रपत्रस्थान में सूचित आवश्यकताओं की पूर्ति सेवासंगणक के लिए असाध्य + नवीकरण आवश्यक - ग्राहक वर्तमान से भिन्न संचारविधि तक नवीकरण नहीं करता तो सेवासंगणक इसके अनुरोध पर काम नहीं करेगा। + भीतरी सेवासंगणक अपक्रम - सेवासंगणक में एक अनपेक्षित अपक्रम हुआ तथा अनुरोध पूरा नहीं कर सकता + कार्यान्वित नहीं - सेवासंगणक अनुरोध को पूरा नहीं कर सकता अथवा अनुरोध की कार्यविधि जानता नहीं + बुरा द्वारपथ - सेवासंगणक द्वारपथ जैसा कार्य करता है तथा आवाससंगणक से अवैध उत्तर प्राप्त हुआ + सेवा अनुपलब्ध - यह बहुशः तब होता है जब सेवासंगणक पर अत्याधिक भार हो अथवा देखरेख के लिए निष्क्रिय हो + द्वारपथ समयान्त - सेवासंगणक द्वारपथ अथवा प्रतिनिधि जैसा कार्य कर रहा था तथा समयान्त हो गया एक उत्तर की प्रतीक्षा में + हटटप॰ संस्करण अनावलम्बित - अनुरोध का हटटप॰ संस्करण सेवासंगणक द्वारा अवलम्बित नहीं + विकार भी संधिवार्ता करता है - सेवासंगणक में भीतरी समाकृति अपक्रम है + स्मृतिस्थान का अभाव - सेवासंगणक में पर्याप्त स्मृतिस्थान उपलब्ध नहीं अनुरोध पर सफलतापूर्वक काम करने के लिए + क्रमचक्र दृष्ट - सेवासंगणक को अनन्त क्रमचक्र का पता चला अनुरोध पर काम करते हुए + जाल प्रमाणीकरण आवश्यक - जाल उपलब्ध होने के लिए ग्राहक का प्रमाणीकरण अनिवार्य + अवैध बरताव + चित्र का अभिलेखन किया गया चित्रालय क्रमक में + पररूपण + आगतपेटिका पुनःप्रसारक सूची + %2$s से चालान की मात्रा (%1$s साट्स) में दोष है। %3$s होना चाहिए था। + अनुक्रमणीकार पुनःप्रसारक + पुनःप्रसारक जो सभी के उपतथ्य तथा पुनःप्रसारक सूचियों की जानकारी रखने का विशेष कार्य करते हैं। जैसे कि purplepag.es । अमेथिस्ट इन पुनःप्रसारकों का उपयोग करेगा उन प्रयोक्ताओं को ढूँढने के लिए जो आपके सूचियों में नहीं हैं। + नव्य रुचि समुच्चय + पुनःनामकरण + विषयसूचक समुच्चय + अमान्य कुंचिका + अमान्य कुंचिका : %1$s + अमान्य पता + अमेथिस्ट को एक वैश्विकवस्तुसूचक प्राप्त हुआ खोलने के लिए परन्तु वह सूचक अमान्य था : %1$s + एक टीका पाण्डुलिपि पर टीका नहीं लिख सकते + एक टीका पाण्डुलिपि पर प्रतिक्रिया नहीं कर सकते + एक टीका पाण्डुलिपि को उत्तर नहीं दे सकते + एक टीका पाण्डुलिपि को ज्साप नहीं कर सकते + कुंचिका अनिवार्य + कुंचिकापोटली पुनःप्रसारक + पुनःप्रसारक जहाँ आपके एमएलएस॰ कुंचिकापोटलियाँ प्रकाशित होंगे (मिप॰००)। अन्य प्रयोक्ता इन कुंचिकापोटलियों को प्राप्त करेंगे आपको आमन्त्रित करने के लिए मार्मोट॰ समूह चर्चाओं में। १ - ३ पुनःप्रसारकों को जोडें जो आप से कुंचिकापोटली घटनाएँ स्वीकारते हों तथा सार्वजनिक पठन की अनुमती देते हों। + कुंचिकापोटलियाँ + स्वीकृत पदक समुच्चय + साहसिक प्रस्तावना + साहसिक पठन + साहसिक दृश्य + क्रमक अनुशंसाएँ + समयनियुक्ति + क्रमक + समयनियुक्ति प्रत्युत्तर अपेक्षित + ध्वनि शीर्षक + ध्वनि अभिलेख + कृत पुटप्रसार + पदक पुरस्कार + पदक परिभाषाएँ + द्व्यंकीय अभिलेख + द्व्यंकीय अभिलेख शीर्षक + बाधित पुनःप्रसारक + जाललेख + ब्लोस्सम॰ प्रमाणीकरण + ब्लोस्सम॰ प्रसारसंगणक + स्मर्त्तव्य सूची + प्रसारण पुनःप्रसारक + दिनदर्शिका + प्रणाली परिभाषा + प्रणाली संदेश छिपाएँ + प्रणाली सूची + प्रणाली संदेश + प्रणाली उपतथ्य + प्रणाली प्रयोक्ता मौन करें + चतुरंग प्रमाणीकरण + चतुरंग प्रत्याह्वान + चतुरंग समस्तर समापन प्रस्ताव + चतुरंग खेल स्वीकार + चतुरंग खेल समाप्त + चतुरंग खेल + चतुरंग चाल + वर्गीकृत विज्ञापन + टिप्पणियाँ + समूह प्रकार + समूह सूची + समूह पत्र + सम्पर्क पत्र + दिवस नियुक्ति + मिटाए गए + सीधा संदेश अभिलेख + सीधा संदेश + सीधा संदेश पुनःप्रसारक + पाण्डुलिपियाँ + डीवीएम॰ विषयवस्तु अनुरोध + डीवीएम॰ विषयवस्तु प्रत्युत्तर + डीवीएम॰ स्थिति + डीवीएम॰ प्रयोक्ता अनुरोध + डीवीएम॰ प्रयोक्ता प्रत्युत्तर + सम्पादन + भावचिह्न पोटली सूची + भावचिह्न पोटलियाँ + अनभिलिखित चर्चा + अस्थायी चर्चाशालाएँ + प्रिय पुटप्रसार + इष्ट पुनःप्रसारक + अभिलेख शीर्षक + अभिलेख सेवासंगणक + अनुचरण सूची + अनुचरण पोटलियाँ + भूभागसूचक अनुचरित + उपहारकोष + गिट समस्या + गिट परिहार + कर्षण अनुरोध + कर्षण अनुरोध अद्यतन + गिट उत्तर + गिट क्रमलेखकोष + गिट स्थिति। प्रयुक्त + गिट स्थिति। आवृत + गिट स्थिति। कच्चा + गिट स्थिति। खुला + विषयसूचक अनुचरित + प्रमुखताएँ + एचटीटीपी॰ प्रमाणीकरण + निर्देशिका पुनःप्रसारक सूची + वर्तमान बातचीत + वर्तमानप्रवाह + चिकित्सा अभिलेख + मेलन शाला + मेलन स्थल + संगीतसूची + संगीत अभिलेख + मौन सूची + नाम युक्त स्मर्त्तव्य सूची + निलय सेवासंगणक + निप॰ + निप॰-०४ सीधासंदेश + एनएनएस॰ + नोस्टर संयोजन + टीकाएँ + नोस्टर धनकोष अनुरोध + नोस्टर धनकोष प्रत्युत्तर + पुरानी स्मर्त्तव्यचिह्न सूची + ओटीएस॰ + निर्गतपेटिका पुनःप्रसारक + के लिए भुगतान + व्यक्ति सूचियाँ + चित्र + टाँके + पुटप्रसार कडी + पुटप्रसार कार्यक्रम + मतदान + मतदान प्रतिक्रिया + निजी पुनःप्रसारक + निजी ज्साप + परिचय + परिचय पदक + परिचय चित्रालय + प्रतिनिधि पुनःप्रसारक + सार्वजनिक संदेश + प्रतिक्रियाएँ + पुनःप्रसारक प्रमाणीकरण + पुनःप्रसारक खोज + पुनःप्रसारक परिवीक्षक घोषणा + पुनःप्रसारक समुच्चय + वृत्तान्त + पुनःप्रकाशन + पुनःप्रकाशन (१६) + शाला उपस्थिति + प्रमाणचिह्न + खोज पुनःप्रसारक + लघु चलचित्र + लघु चलचित्र (अनु) + अनेकत्रावरोहण टिप्पणियाँ + अनेकत्रावरोहण + विश्वसनीय प्रदाता + विश्वसनीय पुनःप्रसारक + प्रयोक्ता मिटाया + प्रयोक्ता स्थापना विकल्प + उपयोगकर्ता स्थिति + चलचित्र + चलचित्र (अनु) + ध्वनि सन्देश + ध्वनि उत्तर + जगाना + जाल स्मर्त्तव्यचिह्न + विकि॰ + व्यायाम + ज्साप उद्देश्य + ज्साप मतदान + ज्साप अनुरोध + ज्साप + ज्ञात + भाषा प्रस्तुति आद्यताएँ + प्रत्येक अनुवाद भाषा युग्म के लिए चयन करें किस भाषा को पहले दिखाना है। + पूर्व दृष्ट %1$s पहले + पिछली बार दृष्ट अभी + कभी दृष्ट नहीं + पिछली बार दृष्ट %1$s पर (%2$s पूर्व) + निर्गमन + अभिलेख + निर्देशिका + + %1$d वस्तु + %1$d वस्तुएँ + + + %1$d वस्तु अधिक + %1$d वस्तुएँ अधिक + + पाठ्य संसाधन + प्रकाशवान + वर्तमानप्रवाह + स्थानीय पुनःप्रसारक + पुनःप्रसारकों की सूची जो इस यन्त्र पर चल रहे हैं। + मानचित्र पर स्थल परिवर्तन करें + स्थानीय प्रणालियाँ + मानचित्र पर एक स्थल चुनें + आप ख्याप्य कुंचिका का प्रयोग कर रहे हैं जिससे केवल पढ सकते हैं। प्रकाशित पत्रों को उद्धृत करने के लिए गुप्त कुंचिका के साथ प्रवेशांकन करें + आप ख्याप्य कुंचिका का प्रयोग कर रहे हैं जिससे केवल पढ सकते हैं। अनुचरण करने के लिए गुप्त कुंचिका के साथ प्रवेशांकन करें + आप ख्याप्य कुंचिका का प्रयोग कर रहे हैं जिससे केवल पढ सकते हैं। शब्द अथवा वाक्य छिपाने के लिए गुप्त कुंचिका के साथ प्रवेशांकन करें + आप ख्याप्य कुंचिका का प्रयोग कर रहे हैं जिससे केवल पढ सकते हैं। उत्तर देने के लिए गुप्त कुंचिका के साथ प्रवेशांकन करें + आप ख्याप्य कुंचिका का प्रयोग कर रहे हैं जिससे केवल पढ सकते हैं। ज्साप भेजने के लिए गुप्त कुंचिका के साथ प्रवेशांकन करें + आप ख्याप्य कुंचिका का प्रयोग कर रहे हैं जिससे केवल पढ सकते हैं। शब्द अथवा वाक्य आच्छादन हटाने के लिए गुप्त कुंचिका के साथ प्रवेशांकन करें + आप ख्याप्य कुंचिका का प्रयोग कर रहे हैं जिससे केवल पढ सकते हैं। घटनाओं पर हस्ताक्षर करने के लिए गुप्त कुंचिका के साथ प्रवेशांकन करें + आप ख्याप्य कुंचिका का प्रयोग कर रहे हैं जिससे केवल पढ सकते हैं। अनुचरण रोकने के लिए गुप्त कुंचिका के साथ प्रवेशांकन करें + आप ख्याप्य कुंचिका का प्रयोग कर रहे हैं जिससे केवल पढ सकते हैं। आरोहण करने के लिए गुप्त कुंचिका के साथ प्रवेशांकन करें + आप ख्याप्य कुंचिका का प्रयोग कर रहे हैं जिससे केवल पढ सकते हैं। प्रकाशित पत्रों को चाहने के लिए गुप्त कुंचिका के साथ प्रवेशांकन करें + चलचित्र + मि॰ + मेरे भावचिह्न पोटलियाँ + चित्र जोडें + जोडा जा रहा है %1$s… + प्रबन्धन अधिकार दिए गए + प्रबन्धन अधिकार हटाए गए + चित्र परिवर्तन + पहले एक ब्लोस्सम श्रव्यदृश्याभिलेख सेवासंगणक जोडें स्थापना विकल्पों में। समूह के लिए कोई स्थान आवश्यक है संलग्न अभिलेखों का आरोहण करने के लिए। + यह समूह अब रहस्यीकृत संलग्न अभिलेखों का उपयोग करता है + %1$s जोडने में असफल : %2$s + समूह बनाने में असफल : %1$s + समूह का विघटन असफल : %1$s + इस समूह में रहस्यीकृत संलग्न अभिलेखों का उपयोग सक्षम करने में असफल : %1$s + प्रबन्धन अधिकार प्रदान असफल : %1$s + समूह छोडनें में असफल : %1$s + सदस्य हटाने में असफल : %1$s + प्रबन्धन अधिकार निराकरण असफल : %1$s + अद्यतन असफल : %1$s + मार्मोट॰ समूह + समूह का अन्त किया जा रहा है। आप इसे अभी भी पढ सकते हैं। + आप इस समूह को छोड रहे हैं। + आप इस समूह के सदस्य अब नहीं रहे। + समूह विघटित + समूह का अन्त किया जा रहा है। इसका अन्त हो जाएगा जब समूह सहमत होगा। + समूह विवरण का अद्यतन किया गया + + %1$d सदस्य + %1$d सदस्य + + सदस्य हटाया गया + + %1$d सन्देश + %1$d सन्देश + + इस समूह का सदस्य नहीं + अज्ञात अपक्रम + श्रव्यदृश्याभिलेख जोडा गया + श्रव्यदृश्याभिलेख जोडा गया आपके परिचय चित्रालय में + श्रव्यदृश्याभिलेख अवरोहण आरम्भ हुआ … + असंयोजित + संयोजित + मन्द + श्रव्यदृश्याभिलेख सेवासंगणक + श्रव्यदृश्याभिलेख निप॰-९५ के लिए बहुत बडा है + पहले सन्देश का गन्तव्य प्रविष्ट करें + आरोहण असफल + विषय + सन्देश + परितथ्य हटाने में असफल + श्रव्यदृश्याभिलेख से निजी परितथ्य हटाने में असफल। आरोहण निरस्त। + स्मर्त्तव्यचिह्न सफलतापूर्वक स्थानान्तरित किए गए + लैटनिंग स्थापना अनुपलब्ध + अधिक विकल्प + निजी बनाएँ + सार्वजनिक करें + बाहरी चित्र आरोहण करें + एक वर्गाकार चित्र का चयन करें इस संगीतसूची की कलाकृती के रूप में। + + %1$d अधिक अभिलेख + %1$d अधिक अभिलेख + + + %1$d अभिलेख + %1$d अभिलेख + + + %1$d अभिलेख + %1$d अभिलेख + + बाहरी चित्र का आरोहण तथा प्रकाशन चालू। यह चलता रहेगा आप पटल से विगमन करें तो भी। + ध्वनि अभिलेख आरोहण + एक एमपीत्री॰ अथवा वेव॰ अथवा फ्लाक॰ का चयन करें। इसका आरोहण किया जाएगा आपके श्रव्यदृश्याभिलेख सेवासंगणक पर अभिलेखन करने पर। + बाहरी चित्र आरोहण करें + एक वर्गाकार चित्र का चयन करें इस अभिलेख की कलाकृती के रूप में। + बाहरी चित्र तथा ध्वनि अभिलेख का आरोहण तथा प्रकाशन चालू। यह चलता रहेगा आप पटल से विगमन करें तो भी। + ध्वनि सक्रिय। मौन करने के लिए टाँकें + सूचनाएँ मौन करें + मौन किया गया। अमौन करने के लिए टाँकें + मेरे ब्लोस्सम॰ अभिलेख + मेरा स्वास्थ्य + मेरे सूचियाँ + नाम अनिवार्य + %1$d सहस्रतमसेकण्ड + नामरूप्य स्थापना विकल्प + परिचय + आपकी ख्याप्यकुंचिका पढें + सन्देश प्रेषण + अन्य नोस्टर संलग्नक्रमकों के साथ सन्देशों का विनिमय + अक्षरफलक कार्य + अक्षरफलक द्रुतपथ बन्धन + सूचनाएँ + सूचनाएँ दिखाएँ + पुनःप्रसारक + पढें हस्ताक्षर करें तथा प्रकाशित करें आपके घटनाओं को + जाल + जाल तथा ब्लोस्सम॰ संसाधन ले आएँ + रहस्यीकरण + निजी सन्देशों का रहस्यीकरण तथा अरहस्यीकरण करें अपनी कुंचिका से + भण्डार + उसका अपना निजी भण्डार + प्रदर्शनशैली + आपके क्रमक के वर्णों के अनुकूल + आरोहण + आपके श्रव्यदृश्याभिलेख सेवासंगणक तक अभिलेखों का आरोहण + भुगतान + लैटनिंग चालान का भुगतान + क्रमक अनुमतियाँ हस्ताक्षरकर्ता नोस्टरसंलग्नक्रमक नोस्टरस्थल जालक्रमक विश्वास संयोजित + + %1$d नए लेखा का अनुचरण करता है + %1$d नए लेखाओं का अनुचरण करता है + + सावधान। यह %1$s का अनुचरण करता है। + + %1$d लेखा का अनुचरण नहीं करता + %1$d लेखाओं का अनुचरण नहीं करता + + सावधान। यह आपकी अनुचरण सूची का पुनःलेखन करता है : %1$s। + %1$s तथा %2$s + + %1$d अधिक व्यक्ति मौन करता है + %1$d अधिक लोगों को मौन करता है + + सावधान। यह %1$s को मौन करता है। + + %1$d व्यक्ति की मौन अवस्था हटाता है + %1$d लोगों की मौन अवस्था हटाता है + + सावधान। यह आपकी मौन सूची का पुनःलेखन करता है : %1$s। मौनकृत शब्द तथा विषयसूचक यहाँ नहीं दिखाया जाता। घटना दिखाओ दबाएँ पूर्ण सूची के लिए। + + सावधान। यह आपकी %1$d प्रविष्ट की सूची का लेखन करता है। अमेथिस्ट में कोई पूर्वस्मृत संस्करण नहीं तुलना करने के लिए। + सावधान। यह आपकी %1$d प्रविष्टों की सूची का लेखन करता है। अमेथिस्ट में कोई पूर्वस्मृत संस्करण नहीं तुलना करने के लिए। + + यह आपकी वर्तमान सूची का पुनःप्रकाशन करता है अपरिवर्तित। + + %1$d पुनःप्रसारक जोडता है + %1$d पुनःप्रसारकों को जोडता है + + + %1$d पुनःप्रसारक हटाता है + %1$d पुनःप्रसारकों को हटाता है + + सावधान। यह आपकी पुनःप्रसारक सूची का पुनःलेखन करता है : %1$s। आपके पत्र तथा पठनसूची इसके साथ विस्थापित होंगे। + सावधान। यह %1$s का अनुचरण नहीं करता। + सावधान। यह %1$s की मौन अवस्था हटाता है। + + सावधान। यह आपके घटनाओं में से %1$d को मिटाने का अनुरोध करता है। + सावधान। यह आपके घटनाओं में से %1$d को मिटाने का अनुरोध करता है। + + + %1$d विषयसूचक धारी। घटना दिखाओ दबाएँ यह देखने के लिए कि वस्तुतः क्या हस्ताक्षरित होगा। + %1$d विषयसूचक धारी। घटना दिखाओ दबाएँ यह देखने के लिए कि वस्तुतः क्या हस्ताक्षरित होगा। + + यह नोस्टर संलग्नक्रमक आपकी ख्याप्यकुंचिका पढना चाहता है। + यह नोस्टर संलग्नक्रमक आपका परिचय तथा लेखा जानकारी पढना चाहता है। + यह स्थान आपके नोस्टर कुंचिका से %1$s को एक सन्देश का अरहस्यीकरण करना चाहता है। + यह स्थान आपके नोस्टर कुंचिका से %1$s को एक सन्देश का रहस्यीकरण करना चाहता है। + यह नोस्टर संलग्नक्रमक आपको सूचनाएँ दिखाना चाहता है। + + यह नोस्टर संलग्नक्रमक %1$d साट् का एक लैटनिंग चालान का भुगतान करना चाहता है। + यह नोस्टर संलग्नक्रमक %1$d साट्स का एक लैटनिंग चालान का भुगतान करना चाहता है। + + सावधान। यह नोस्टरसंलग्नक्रमक एक लैटनिंग चालान का भुगतान करना चाहता है जिसमें कोई मात्रा स्पष्टीकृत नहीं। प्राप्तकर्ता निर्णय करेगा कितना लिया जाएगा। इसे तभी अनुमति दें यदि आप इस पर विश्वास करते हैं। + यह नोस्टर संलग्नक्रमक आपके रूप में एक %1$d प्रकार घटना का हस्ताक्षरण तथा प्रकाशन करना चाहता है। + यह नोस्टर संलग्नक्रमक आपके रूप में एक रहस्यीकृत घटना भेजना चाहता है। + यह नोस्टर संलग्नक्रमक आपके रूप में एक %1$d प्रकार घटना का हस्ताक्षरण तथा प्रकाशन करना चाहता है : + यह नोस्टर संलग्नक्रमक आपके पुनःप्रसारकों से घटनाओं को पढना चाहता है। + यह नोस्टर संलग्नक्रमक एक जाल संसाधन लाना चाहता है। + यह स्थान आपकी नोस्टर कुंचिका के साथ एक %1$d प्रकार घटना का हस्ताक्षर करना चाहता है। + यह नोस्टर संलग्नक्रमक अपना निजी भण्डार का प्रयेग करना चाहता है। + यह नोस्टर संलग्नक्रमक एक अभिलेख को आपके श्रव्यदृश्याभिलेख सेवासंगणक तक आरोहण करना चाहता है। + नोस्टर संलग्नक्रमक %1$s… + आपके निजी सन्देशों का पठन + आपके निजी सन्देशों का पठन %1$s के द्वारा + सन्देश रहस्यीकरण + %1$s के लिए हस्ताक्षरण (प्रकार : %2$d) + संयोजित क्रमक + नोस्टर संलग्नक्रमक + सन्देश प्रेषण असफल + वक्ता को चुप करें + वक्ता को पुनःस्थापित करें + निर्गमन + शाला आवृत चिह्नित करने में असफल। तो भी निर्गमन चालू। शाला स्वतः आवृत हो जाएगी। + + %1$d श्रोता + %1$d श्रोतागण + + हाथ नीचे करें + ध्वनिग्राहक मौन + ध्वनिग्राहक सक्रिय + मौन + आपकी निलय सेवासंगणक सूची का अभिलेखन असफल। पुनःप्रयास करें। + निलय - वर्तमान + निलय + ध्वनि चालू रखता है जब शाला खुला है। + निलय संयोजित + अवरोधन + लौटने के लिए दबाएँ। + अनुचरण + मौन + अनुचरण ना करें + मौन हटाएँ + निलय छोडकर गए + श्रोता के रूप में जुडे + मंच पर पधारे + हाथ उठाया + बात कर रहे हैं + हाथ उठाएँ + मौन हटाएँ + निलय + प्रकार १०११२ प्रतिस्थापनशील घटना के रूप में अभिलेखित जिससे कि अन्य ग्राहक आपके आद्यताओं को पढ सके। + आपके सेवासंगणक + अन्तःनिर्मित सुझाव जिन्हे आप जोड सकते हैं आपकी सूची में झटपट। + अनुशम्सित पुनःप्रसारक + निलय सेवासंगणक + कभी नहीं + नया पदक + नयी दिनदर्शिका + नयी दिनदर्शिका घटना + नया समुदाय + नियामक + पुनःप्रसारक + प्रतिबन्धित प्रयोक्ता + समुदाय टिप्पणी (११११) + दीर्घरूप लेख (३००२३) + चित्र पत्र (२०) + छोटा लेख (१) + छोटा चलचित्र (२२) + चलचित्र पत्र (२१) + अनुमत घटना प्रकार + वैश्विक अधिकतम घटना आकार (विकल्पात्मक) + सत्यापन सम्भव नियम (विकल्पात्मक) + विश्वासजाल द्वार (विकल्पात्मक) + विशाल समुदाय। प्रणालियों अथवा कार्यप्रवाहों अनुसार व्यवस्थित। + कार्यशालाएँ + स्थापनार्थ और अधिक + समुदाय बनाएँ + विशाल समुदायों तक का मापदण्डस्तर + प्रणाली अथवा कार्यप्रवाह अनुसार विभाजित + समुदाय प्रणाली अनुसार विभाजित + कोंकोर्ड समुदाय + एक प्रति एक तथा लघु समूह चर्चाएँ आपके परिचित लोगों के साथ। + एक प्रति एक। पाँच शालाएँ + तत्पश्चात प्रयोक्ताओं को नहीं जोड सकते + नया सन्देश + एक प्रति एक तथा लघु समूह + आरम्भ से अन्त तक रहस्यीकृत + सीधे सन्देश आरम्भ से अन्त तक रहस्यीकृत + निजी सन्देश + सामयिक चर्चा किसी से भी जो अभी संयोजित हो। + वर्तमान अभी + कोई इतिहास नहीं + पुनःप्रसारक सीमित + चर्चा आरम्भ करें + जो भी संयोजित हो अभी उनसे बात करें + कुछ भी अभिलेखित नहीं + जो भी संयोजित हो। अभी इस समय + नश्वर चर्चा + सब से अच्छा लोगों से बात करने के लिए जो एक स्थान के आसपास हैं। आपका विभाग नगर अथवा क्षेत्र। + स्थानीय + सार्वजनिक तथा अस्थायी। इतिहास रहित। प्रसारक्षेत्र में सभी पढ सकेंगे। + स्थान का चयन करें + नामरहित। एक अस्थायी परिचय प्रति क्षेत्र। आपका एनपुब॰ कभी नहीं। + बिटचाट॰ अनुकूल। निकटस्थ प्रयोक्ता अभिगम्य जो समान पुनःप्रसारकों पर हों। + चर्चा करें किसी से भी जो एक स्थल के निकट हो भूभागसूचक अनुसार। + स्थानीय प्रणाली + बृहत्तर निजी समूह जो लघुसमूह सीधेसन्देश से उद्भूत हैं। + यन्त्रबद्ध + यन्त्रबद्ध। अदृश्य यदि आप अन्यत्र प्रवेशांकन करें + समूह बनाएँ + लघु सीधेसन्देश मापदण्डस्तर पार करता है + रहस्यीकृत समूह चर्चा + बृहत्तर निजी समूह + मार्मोट॰ समूह + खुले सार्वजनिक शालाएँ जहाँ कोई भी पत्र प्रकाशित कर सकता है। + नियमनरहित + केवल सार्वजनिक + नियमनरहित + नयी सार्वजनिक चर्चा बनाएँ + कोई भी जुड सकता है + सरल तथा आविष्करणशक्य + सार्वजनिक सन्देश एक पुनःप्रसारक पर + सार्वजनिक चर्चा + अपने निवास पुनःप्रसारक द्वारा नियमनकृत समूह। + नियमनयुक्त + उस एक पुनःप्रसारक से बद्ध + पुनःप्रसारक समूह वीक्षण + पुनःप्रसारक द्वारा नियमनकृत + सार्वजनिक अथवा निजी + पुनःप्रसारक संचालित। सार्वजनिक अथवा निजी + पुनःप्रसारक समूह + निजी + रहस्यीकृत समूह + पुनःप्रसारक अवगत + नव्य भावचिह्न पोटली + नया उद्देश्य + आपके विचार जोडें… + नया उद्दीप्तव्य + नया लेख + नयी संगीतसूची + नया संगीत अभिलेख + नया उत्पाद + नये अनुरोध + नये सूत्र + नया व्यायाम + सर्वदा अनुमत %1$s के लिए + असंयोजित + संयोजित + + %1$d पुनःप्रसारक + %1$d पुनःप्रसारक + + सभी चुनें + कुछ ना चुनें + + %1$d हस्ताक्षरण अनुरोध + %1$d हस्ताक्षरण अनुरोध + + संयोजन अस्वीकृत + संयोजन असफल : %1$s + मान्य nostrconnect:// योजक नहीं + उस योजक पर कोई पुनःप्रसारक नहीं संयोजन करने के लिए + + %1$d संयोजित क्रमक + %1$d संयोजित क्रमक + + %1$s संयोजित। अमेथिस्ट अब इस के लिए हस्ताक्षर करता है पृष्ठभूततः। + क्रमक संयोजित। अमेथिस्ट अब इस के लिए हस्ताक्षर करता है पृष्ठभूततः। + कोष्ठागार पता अनुकृत + अमेथिस्ट द्वारा इस सन्देश का अरहस्यीकरण असफल। सम्भावना है कि यह इस लेखा के प्रति सम्बोधित नहीं। + पूर्णपटल प्रेरण एक क्रमक को अनुमति देने के लिए जो चाहता है अमेथिस्ट हस्ताक्षरण रहस्यीकरण अथवा अरहस्यीकरण करें आपकी कुंचिका के साथ। + हस्ताक्षरण अनुरोध + एक क्रमक संयोजन करना चाहता है + क्या एक हस्ताक्षरण अनुरोध को अनुमति दें। + पुनरीक्षण के लिए दबाएँ + यह एक केवल पठनशक्य लेखा है तथा हस्ताक्षर नहीं कर सकता। + पुनःप्रसारकों के साथ पुनःसंयोजन… + नया कोष्ठागार पता उत्पादित + + %1$d पुनःप्रसारक पर श्रवण + %1$d पुनःप्रसारकों पर श्रवण। सभी संयोजित + + दूरस्थ हस्ताक्षरकर्ता क्रमक + दूरस्थ हस्ताक्षरकर्ता + + %1$d सम्पत्ति समावेशित + %1$d सम्पत्ति समावेशित + + ब्लोस्सम॰ क्रमक प्राप्त नहीं। कृपया एक स्थानीय ब्लोस्सम॰ क्रमक की स्थापना करें इस अभिलेख को देखने के लिए + ब्लोस्सम॰ योजक खोला नहीं जा सकता + कोई चित्रग्राहक क्रमक उपलब्ध नहीं इस यन्त्र में + कोई लैटनिंग पता स्थापित नहीं + कोई क्रमक प्राप्त नहीं जो इस भुगतान को सम्भाल सके। कृपया अनुकूल धनकोष स्थापित करें। + कोई क्रमक स्थापित नहीं जो %1$s भुगतान को सम्भाल सके। कृपया अनुकूल धनकोष स्थापित करें। + इस उपयोगकर्ता के लिए कोई प्रतिक्रिया प्रकार पूर्व चयनित नहीं। हृदयचिह्न घुण्डी पर दीर्घतः दबाएँ परिवर्तन करने के लिए + कोई प्रतिक्रियाएँ स्थापित नहीं + कोई धनकोष प्राप्त नहीं लैटनिंग चालान चुकाने के लिए। कृपया एक लैटनिंग धनकोष की स्थापना करें ज्सापों का प्रयोग करने के लिए + कोई धनकोष प्राप्त नहीं लैटनिंग चालान चुकाने के लिए (अपक्रम : %1$s)। कृपया एक लैटनिंग धनकोष की स्थापना करें ज्सापों का प्रयोग करने के लिए + ज्साप मात्रा स्थापित नहीं किया गया। दीर्घतः दबाएँ परिवर्तन करने के लिए + पृष्ठभूत सक्रिय लेखाएँ + मुख्य विकल्पस्थापक वास्तविकसमय पृष्ठभूत सूचनाओं के लिए। निष्क्रिय करें विद्युतकोष बचाने के लिए। जैसे विमान अवस्था में। जब निष्क्रिय कोई लेखा संयोजित नहीं पृष्ठतल में। तथा निष्क्रिय रहता है (पुनःआरम्भों के पश्चात भी) तब तक कि आप इसे सक्रिय नहीं करते। + पृष्ठभूत सूचना सेवा + सूचनाएँ + श्रेणियाँ + वितरण + क्रमकाभ्यन्तर प्रदर्शन + पुनःप्रसारक अवरोधन + सूचित किया जा रहा है। दबाएँ सूचना को मौन करने के लिए इस प्रयोक्ता के लिए + मौनकृत। दबाएँ इस प्रयोक्ता को पुनःसूचित करने के लिए + अभी + नोव्हेर कला + नोव्हेर अभिलेख + नोव्हेर घटना + नोव्हेर मंच + नोव्हेर धनसंग्रहण + नोव्हेर जालस्थान + नोव्हेर सन्देश + नोव्हेर याचिका + नोव्हेर विपणि + नोस्टरस्थान + नग्नता + घटना उद्धरण बनाने में अक्षम + कोई प्राप्तकर्ता ख्याप्यकुंचिका नहीं टीका में + नटज्साप॰ सार्वजनिक हैं तथा इस निजी टीका को प्रकाशित कर देंगे। लैटनिंग॰ ज्साप का प्रयोग करें इसके स्थान पर। + नटज्साप॰ असफल + + %1$s साट्स भेजें %2$d धा विभक्त + %1$s साट्स भेजें %2$d धा विभक्त + + द्व्यंकरूप्य खण्डश्रृंखला पृष्ठभाग समाकृत नहीं + व्यापार प्रसारण असफल + व्यापार निर्माण असफल + आपका द्व्यंकरूप्य शेष का आवहन असफल + भुगतान भेजा गया पर ज्साप प्राप्तिप्रमाण का प्रकाशन असफल + + भुगतान भेजा गया (%2$d में से %1$d प्राप्तिप्रमाण प्रकाशित) पर अगले प्राप्तिप्रमाण का प्रकाशन असफल + भुगतान भेजा गया (%2$d में से %1$d प्राप्तिप्रमाण प्रकाशित) पर अगले प्राप्तिप्रमाण का प्रकाशन असफल + + एक प्राप्तकर्ता का भाग धूल से नीचे है + व्यापार पर हस्ताक्षरण असफल + लगभग दस मि॰ + लगभग तीस मि॰ + लगभग एक घण्टा + द्रुत + सामान्य + मन्द + %1$s। %2$s साट्स प्रति अष्टकाभास। %3$s + + %1$d प्राप्तकर्ता में विभाजन + %1$d प्राप्तकर्ताओं में विभाजन + + + %1$d केवल लैटनिंग॰ पता प्राप्तकर्ता छोड दिया गया। खण्डश्रृंखलाबद्ध के लिए नोस्टर ख्याप्यकुंचिका आवश्यक है पता की व्युत्पत्ति के लिए। + %1$d केवल लैटनिंग॰ पता प्राप्तकर्ताओं को छोड दिया गया। खण्डश्रृंखलाबद्ध के लिए नोस्टर ख्याप्यकुंचिका आवश्यक है पता की व्युत्पत्ति के लिए। + + + इस टीका का %1$d धा ज्साप विभाजन का प्रयोग करें + इस टीका का %1$d धा ज्साप विभाजन का प्रयोग करें + + प्रसारण + व्यापार का निर्माण + शेष आवहन + प्राप्तिप्रमाण प्रकाशन + हस्ताक्षरण + प्रत्येक उपयोगकर्ता को केवल एक निर्वाचन करने की अनुमति है इस प्रकार के मतदान में। + इस पत्र प्रकाशन के सभी प्रतिक्रियाओं को खोलें + खुला + ओर्बोट सोक्स॰ द्वार + द्व्यंकरूप्य समन्वेषक (ओटीएस॰) + प्रमाण उपलब्ध है कि इस पत्र पर हस्ताक्षर किया गया %1$s के कुछ पहले। प्रमाण अंकित किया गया द्व्यंकरूप्य खण्डश्रृंखला में उस समय उस दिन पर। + इस पत्र के लिए एक समयांकन प्रमाण का अनुरोध किया गया है तथा द्व्यंकरूप्य खण्डश्रृंखला में अंकन की प्रतीक्षा हो रही है। सामान्यतः कुछ घण्टों में सम्पन्न हो जाएगा। + समयांकन प्रमाण + निर्गतपेटिका पुनःप्रसारक सूची + पारणशब्द अनिवार्य + विराम + भुगतान करें + %1$s से संदेश + भुगतान लक्ष्य + भुगतान पताएँ जोडें भिन्न जालों के लिए (उ॰ द्व्यंकरूप्य लैटनिंग एथिरियम)। + भुगतान करें %1$s में। आप वहाँ मात्रा का चयन करेंगे + पीडीएफ॰ का अभिलेखन हुआ डौनलोड्स/अमेथिस्ट में + अनुचरण सूची उपतथ्य नोस्टर में सब के द्वारा देखा जा सकता है। केवल आपके निजी सदस्य रहस्यीकृत हैं। + अनुचरण सूची उपतथ्य + चित्र + ऊपर टाँकें + परिचय के साथ जोडें + चलाएँ + + %1$d अध्याय + %1$d अध्याय + + बाहरी कलाकृति जोडें + वर्गाकार चित्र जो दिखेगा कडी के लिए + कडी सम्पादन + आपका पुटप्रसार + ध्वनि अभिलेख जोडें + एमपी३॰ अथवा एम४ए॰ अथवा अन्य ध्वनि + अध्याय जालपता + + %1$d कडी + %1$d कडियाँ + + प्रतिलिपि जालपता + चलचित्र जालपता + नयी कडी + नया पूर्वावलोकन + प्रकाशन… + कर्ता + श्रेणियाँ + तन्त्रज्ञान समाचार इत्यादि + अनुकृति अधिकार + बाहरी कलाकृति जोडें + वर्गाकार कलाकृति आपके कार्यक्रम के लिए + जालसम्पर्क + वित्तपोषण योजक + https://… + भाषा + आंग्ल + कार्यक्रम शीर्षक + मेरा पुटप्रसार + जालस्थान + + %1$d पूर्वावलोकन + %1$d पूर्वावलोकन + + पूर्वावलोकन अम्श जोडें + लघु ध्वनि अथवा दृश्य पूर्वीक्षण + मूल्य के लिए मूल्य अपक्रम + एक नोस्टर धनकोष संयोजन जोडें कुंचिकाप्रेषण (जालबिन्दु) प्राप्तकर्ताओं को भेजने के लिए। + इस पुटप्रसार का कोई भुगतान सम्भाव्य मूल्य प्राप्तकर्ता नहीं। + एक नोस्टर धनकोष संयोजन अथवा ऋणांकन धनकोष जोडें सुनते समय साट्स प्रवाह चलाने के लिए। + इस प्रयोक्ता का कोई लैटनिंग॰ पता नहीं + मतदानकर्ता अपने ही मतदान में निर्वाचन नहीं कर सकते। + (० से १००) प्रतिशत + मतदान आवृत है नये निर्वाचनों के लिए + अनेक विकल्प + विकल्प %1$s + + %1$d मत समयांकित है मतदान प्रकाशन के पूर्व तथा बहिष्कृत है। + %1$d मत समयांकित हैं मतदान प्रकाशन के पूर्व तथा बहिष्कृत हैं। + + + %1$d मतदाता आपकी मौनसूची द्वारा अदृश्यकृत। + %1$d मतदाता आपकी मौनसूची द्वारा अदृश्यकृत। + + + %1$d प्रत्युत्तर मान्य विकल्प का चयन नहीं किया तथा बहिष्कृत है। + %1$d प्रत्युत्तर मान्य विकल्प का चयन नहीं किए तथा बहिष्कृत हैं। + + + %1$d मत आया मतदान समाप्त होने के पश्चात तथा बहिष्कृत है। + %1$d मत आए मतदान समाप्त होने के पश्चात तथा बहिष्कृत हैं। + + + %1$d मतदाता + %1$d मतदाता + + %2$d में से %1$d प्रत्युत्तरों का आवहन हो गया %3$d पुनःप्रसारकों से। + लगभग %2$d में से %1$d प्रत्युत्तरों का आवहन हो गया %3$d पुनःप्रसारकों से। + + %1$d चयन + %1$d चयन + + + %1$d मत + %1$d मत + + एक विकल्प + निर्वाचन करने में असफल + मतदान + पत्र प्रकाशन + + इस पत्र मे %1$d से अधिक विषयसूचक हैं + इस पत्र मे %1$d से अधिक विषयसूचक हैं + + टिप्पणियाँ + निबन्ध अभिलेख तथा अन्य विषयवस्तुओं के लिए प्रत्युत्तर + निजी सन्देश कोष + सीधासन्देश पुनःप्रसारकों को आगतपेटिका कचरालेख छालन करने में सक्षम करता है। केवल बाहरी कोष का खनन होता है। आपका सन्देश कभी नहीं + दीर्घरूप तथा उद्दीप्तव्य + निबन्ध तथा उद्दीप्तव्य। विरल। लागत नगण्य + अन्य सार्वजनिक विषयवस्तु + मतदान वर्तमानस्थितियाँ वर्गीकृतविज्ञापन तथा अन्य सभी सार्वजनिक + सार्वजनिक तथा वर्तमान चर्चा + खनन विलम्बता से वार्तालाप प्रवाह आहत + प्रतिक्रियाएँ + उच्चतम मात्रा प्रकार। प्रत्येक इष्टसूचक के लिए खनन का परिणाम विद्युत्कोष का व्यय + वृत्तान्त + पुनःप्रसारक वृत्तान्तों का तोलन करते हैं उनके परिव्यय के अनुसार + पुनःप्रकाशन + उच्च मात्रा सक्रिय प्रयोक्ताओं के लिए + लघु टीकाएँ तथा प्रत्युत्तर + प्राथमिक सार्वजनिक कचरालेख रूप + ध्वनि सन्देश + सार्वजनिक ध्वनि पत्र तथा प्रत्युत्तर + + %1$d दिन + %1$d दिन + + + %1$d घण्टा + %1$d घण्टे + + १ से॰ से न्यून + + %1$d मिनुट + %1$d मिनुट + + + %1$d सेकण्ड + %1$d सेकण्ड + + इस पत्र के लेखक ने संगणक बल का व्यय किया कठिनाई %1$s तक खनन करने के लिए। एक श्रमप्रमाण चिह्न जिससे कचरालेख प्रेषण परिव्ययवान हो जाता है। + चर्चा सन्देश + वृत्तान्त + + %1$s। खनन %2$d द्व्यंक पर + %1$s। खनन %2$d द्व्यंक पर + + + श्रमप्रमाण खनन… (%1$d पत्र पंक्ति में) + श्रमप्रमाण खनन… (%1$d पत्र पंक्ति में) + + श्रमप्रमाण खनन + निरस्त + उन पत्रों को दिखाता है जो अपने निप॰१३ श्रमप्रमाण का खनन कर रहे हैं जिससे कि वे सम्पन्न हो सके आप क्रमक छोडने के पश्चात। + श्रमप्रमाण खनन + अभी भेजें + + %1$d द्व्यंक + %1$d द्व्यंक + + + मूलविकल्प (%1$d द्व्यंक) + मूलविकल्प (%1$d द्व्यंक) + + आपका %1$s खनन समाप्त हुआ पर प्रकाशित नहीं हो सका : %2$s + आपका %1$s खनन समाप्त हुआ पर प्रकाशित नहीं हो सका। अगली बार क्रमक आरम्भ होने पर इसका पुनःप्रयास किया जाएगा। + + %1$s। %2$d द्व्यंक पर खनन की प्रतीक्षा + %1$s। %2$d द्व्यंक पर खनन की प्रतीक्षा + + श्रमप्रमाण + लगभग %1$s शेष + अब किसी भी क्षण + %1$s के लिए पूर्वीक्षण पत्ता चित्र + गोपनीयता विकल्प + गोपनीयता नीति + <निजी संदेश का अरहस्यीकरण असफल>\n\nआप का उल्लेख किया गया एक निजी अथवा रहस्यीकृत संवाद में %1$s तथा %2$s के बीच। + सीधा संदेश आगतपेटिका पुनःप्रसारक + आपके निजी आगतपेटिका के रूप में १ - ३ पुनःप्रसारकों को जोडें। अन्य लोग इनका उपयोग करेंगे आपको सी॰सं॰ भेजने के लिए। सी॰सं॰ आगतपेटिका पुनःप्रसारकों को किसी से भी सन्देश स्वीकारना चाहिए पर उनका अवरोहण अनुमति केवल आपको देना चाहिए। ये अच्छे विकल्प हैं :\n - inbox.nostr.wine (सशुल्क)\n - auth.nostr1.com (शुल्करहित)\n - you.nostr1.com (व्यक्तिगत पुनःप्रसारक - सशुल्क) + प्रयोक्ता इन पुनःप्रसारकों पर सीधा सन्देश प्राप्त कर रहा है + निजी सन्देश + निजी बनाएँ। टीका को उपहारकोषयुक्त करें केवल सूचित प्रयोक्ताओं के लिए + निजी टीका के उत्तर सर्वदा निजी रहते हैं + को दृश्य + निजी पुनःप्रसारक + १ - ३ पुनःप्रसारकों को जोडें उन घटनाओं को रखने के लिए जो कोई अन्य नहीं देख सकता जैसे कि पाण्डुलिपियाँ अथवा क्रमक के स्थापना विकल्प। आदर्शतः ये पुनःप्रसारक स्थानीय होने चाहिए अथवा प्रत्येक उपयोगकर्ता के विषयवस्तु अवरोहण के पूर्व परिचय प्रमाणीकरण अनिवार्य होना चाहिए। + इस टीका को निजी रूप से भेजा गया तथा हस्ताक्षरित नहीं। केवल चिह्नित सहभागी देख सकते हैं। तथा बाहर के व्यक्तियों को इसे किसने लिखा इसका प्रामाणीकरण कोई नहीं कर सकता। + निजी टीका + अपशब्द अथवा द्वेषपूर्ण भाषण + परिचय + परिचय पदक + क्रमक अनुशंसाएँ + परिचय पदक + अनुचर सूचनावली + द्व्यंकरूप्य (खण्डश्रृंखलाबद्ध) धनकोष + ज्साप प्राप्त सूचनावली + परिचय प्रयोगमाध्यम + परिचय + सम्पादन सुझाव दें + प्रतिनिधि पुनःप्रसारक + संग्रहकर्ता पुनःप्रसारक जो क्रमक द्वारा उपयुक्त होना चाहिए आपके सूचनावलियों का अवरोहण करने के लिए। जैसे कि filter.nostr.wine । यह निर्गतपेटिका प्रतिरूप को प्रतिस्थापित करेगा तथा क्रमक आपके सूचियों में पुनःप्रसारकों के साथ ही जुडेगा। + सार्वजनिक चर्चा + सार्वजनिक चर्चाएँ सबके लिए दृश्यमान हैं नोस्टर पर तथा सभी + इनमें भाग ले सकते हैं। ये उत्कृष्ट हैं खुले समुदायों के लिए विशिष्ट विषयों के प्रसंग में। + नियमन का नियन्त्रण किया जा सकता है पत्रों को मिटाने से पुनःप्रसारकों में + इस समुदाय के निवास के लिए १ - ३ पुनःप्रसारकों को जोडें। + नोस्टर ग्राहक इस स्थापना विकल्प का प्रयोग करेंगे यह जानने के लिए कि कहाँ से सन्देशों का अवरोहण करना है तथा कहाँ आपके सन्देश भेजने हैं। + पुनःप्रसारक + सार्वजनिक चर्चा उपतथ्य + सार्वजनिक चर्चा + सार्वजनिक निर्गतपेटिका अथवा मुख्य पुनःप्रसारक + यह पुनःप्रसारक प्रकार आपके सभी विषयवस्तु रखता है। अमेथिस्ट आपके पत्रों को प्रकाशित करने के लिए यहाँ भेजेगा तथा अन्य लोग आपके विषयवस्तु ढूँढने के लिए इनका प्रयोग करेंगे। १ - ३ पुनःप्रसारकों को जोडें। ये व्यक्तिगत अथवा सशुल्क अथवा सार्वजनिक पुनःप्रसारक हो सकते हैं। + प्रयोक्ता अपने विषयवस्तुओं को इन पुनःप्रसारकों को भेज रहा है + सार्वजनिक संदेश + सार्वजनिक आगतपेटिका पुनःप्रसारक + यह पुनःप्रसारक प्रकार आपके प्रकाशित पत्रों को भेजे गये सभी प्रतिवचन, टिप्पणियाँ, इष्टसूचक तथा ज्सापों को प्राप्त करता है। १ - ३ पुनःप्रसारकों को जोडें तथा सुनिश्चित करें कि वे किसी से भी पत्र स्वीकारते हैं। + प्रयोक्ता इन पुनःप्रसारकों पर सूचनाएँ प्राप्त कर रहा है + टीका सूचक + मिटाएँ + सूत्र मौन करें + बाँटें + जालसंचारक योजक बाँटें + सूत्र मौन हटाएँ + मूल्यांकित पाँच में से %1$s + प्रतिक्रिया + प्रतिक्रियाएँ + प्रतिक्रिया पंक्ति + पुनःप्रसारक से पढें + अष्टकों में मात्रा जो इस पुनःप्रसारक से प्राप्त हुआ था छलनियाँ तथा घटनाएँ समेत + केवल पढनेवाला उपयोगकर्ता + टाँकें तथा दबाए रखें संदेश का अभिलेखन करने के लिए + + यह %1$d अन्य वस्तु को भी रोक रहा है। + यह %1$d अन्य वस्तुओं को भी रोक रहा है। + + सर्वदा तथा सभी पुनःप्रसारक + अमेथिस्ट %1$s के नाम से प्रवेशांकन करेगा प्रत्येक पुनःप्रसारक में जो पूछता है तथा आपको नहीं पूछेगा। पुनःप्रसारक जिनको आपने बाधित किए अथवा जिनमें कभी भी प्रवेशांकन ना करने का विकल्प आपने स्थापित किए हैं वैसे ही रहेंगे। आप इसका परिवर्तन कर सकते हैं पुनःप्रसारक प्रवेशांकन के नीचे। + क्या सभी पुनःप्रसारकों में प्रवेशांकन करें। + सर्वदा प्रवेशांकन + \u2026मैं सन्देश भेज रहा हूँ किसी को जिसका मैं अनुगमन करता हूँ + \u2026मैं किसी अन्य को सन्देश भेज रहा हूँ + \u2026यह मेरा पुनःप्रसारक है। अथवा एक शाला जिससे मैं जुड चुका अथवा जिसका मैं अनुगामी + \u2026मैं पढ रहा हूँ किसी को जिसका मैं अनुगमन करता हूँ + सर्वदा। आपके द्वारा स्थापित + कभी नहीं। आपके द्वारा स्थापित + + %1$s तथा %2$d अन्य + %1$s तथा %2$d अन्य + + कभी नहीं + कभी नही तथा सभी पुनःप्रसारक + अमेथिस्ट पुनःप्रसारकों को आप %1$s हैं बताना रोकेगा तथा आपको पूछना भी रोकेगा। कुछ पुनःप्रसारक आपकी सेवा करना रोकेंगे। सन्देश प्रत्युत्तर तथा सूचनाएँ सम्भाव्यतः प्राप्त नहीं होंगे। पुनःप्रसारक जिनपर आपने सर्वदा प्रवेशांकन करने का विकल्प स्थापित किए हैं वैसे ही रहेंगे। आप इसका परिवर्तन कर सकते हैं पुनःप्रसारक प्रवेशांकन के नीचे। + क्या किसी भी पुनःप्रसारक में प्रवेशांकन ना करें। + सर्वदा प्रवेशांकन + प्रत्येक पुनःप्रसारक जो पूछता है। + निर्णय लें प्रति पुनःप्रसारक अनुसार + नीचे के प्रकरणों में अनुमत। अन्यों के विषय में पूछें। + प्रवेशांकन कभी ना करें + कुछ पुनःप्रसारक आपकी सेवा करना नहीं स्वीकारेंगे। + आपकी आगतपेटिका + आपका अपना पुनःप्रसारक + आपके प्रत्युत्तर + इस पुनःप्रसारक + एक शाला जिसमें आप पत्र प्रकाशित करते हैं + लोग जिन्हें आप पढते हैं + एक शाला जिसमे से आप पढते हैं + आपके सन्देश + एक वार्तालाप + प्रमाण प्रमाणीकरण प्रवेशांकन पुनःप्रसारक हस्ताक्षरण सत्यापन निप॰४२ परिचय + पुनःप्रसारक प्रमाणीकरण + पुनःप्रसारक चर्चा + पुनःप्रसारक चर्चाएँ आवासी पुनःप्रसारक द्वारा नियन्त्रित चर्चा समुदाएँ हैं। + वे नोस्टर पर सभी के लिए दृश्य हैं तथा उनमें सभी भाग ले सकते हैं। + वे उत्कृष्ट हैं खुले समुदायों के लिए विशिष्ट विषयों पर। इनमें से कुछ समुदाएँ अस्थायी हैं। + तथा इसीलिए समय के साथ चर्चा सन्देश अदृश्य हो जाते हैं + पुनःप्रसारक चर्चाएँ + आपके अपने परिचय तथा स्थापना विकल्प तथा पाण्डुलिपियाँ। आपके मुख्य पुनःप्रसारकों पर। + पुनःप्रसारक जिनपर प्रत्येक समुदाय अपने समतलों को प्रकाशित करते हैं। + आपके सीधासन्देश पुनःप्रसारक। जहाँ उपहारकोषयुक्त सन्देश भेजे जाते हैं। + समूह सन्देश तथा कुंचिकापेटलियाँ। प्रत्येक समूह के पुनःप्रसारकों पर। + घटनाओं का अवलोकन करता है जो वर्तमान में प्रदर्शित हो रहे हैं नए प्रत्युत्तर प्रतिक्रियाएँ उद्धरण ज्साप तथा वृत्तान्तों के लिए जिससे गिनतियों का नवीकरण होता है जब आप पढ रहे हैं। + चर्चाशालाएँ जो कोई इतिहास नहीं रखते। सन्देश केवल तब तक रहते हैं जब तक आप संयोजित हैं। इसलिए ये ग्राहकता बनाए रखते हैं कुछ भी प्राप्त होने के लिए। + अनुचरण सूचियाँ। आपकी सूचनावली तथा आपका विश्वासजाल का निर्माण के लिए उपयुक्त। + स्थान आधारित शालाएँ उन क्षेत्रों के लिए जिनका आप अनुगमन करते हैं। पृष्ट उन पुनःप्रसारको से जो इनके जालावास हैं। + आपके अनुचरितों के पत्र। पठित उन पुनःप्रसारकों से जिनपर उनमें से प्रत्येक प्रकाशन करते हैं। + चर्चा तथा ज्साप उद्देश्य जो वर्तमानप्रवाहों से संलग्न हैं जिन्हें आप खोले हुए हैं अथवा अनुगमन करते हैं। + शाला के पुनःप्रसारक। जब वह खुला हो। + पुनःप्रसारकों का वीक्षण करता है यह देखने के लिए कि कौनसे टकसाल हैं तथा लोग किनकी अनुशम्सा करते हैं। + वृत्तान्त जो आपके अनुचरितों ने लिखा वर्तमानतः आपके पटल पर दिखनेवाले परिचयों के विषय में। पृष्ट प्रत्येक पुनःप्रसारक से जिनपर वे पत्र प्रकाशन करते हैं। + आपके आगतपेटिका पुनःप्रसारक तथा कुछ अल्पमात्रा परिभ्रमणवर्ती दृष्टान्त पुनःप्रसारक जिनपर आपके अनुचरित पत्र प्रकाशित करते हैं। यदि कोई उल्लेख अन्यत्र भेजा गया। + सुनता है आपके नटज्साप पुनःप्रसारकों पर तथा आपके आगतपेटिका तथा सीधासन्देश पुनःप्रसारकों पर। जिससे कि कोई भी भुगतान छूट ना जाए। + आपके संयोजित धनकोष से सूचनाएँ। + वर्तमानतः पटल पर लोगों के परिचय। + मुख्य पुनःप्रसारक प्रत्येक चर्चा का जिन्हें आप खोल रखे हैं अथवा जिनसे आप जुड चुके हैं। + घटनाओं को सूचक अनुसार ले आता है जिसका उल्लेख आपके पटल पर अमुक करता है पर जिसकी प्राप्ती अभी नहीं हुई। एक उद्धरण अथवा एक प्रत्युत्तर का पूर्वपत्र अथवा एक सूत्र का मूल। + निप॰२९ समूह जिनसे आप जुडे हैं। प्रत्येक समूह एक जालावास पुनःप्रसारक में रहता है। इसलिए क्रमक प्रत्येक पुनःप्रसारक से संयोजन करता है जो आपके किसी समूह का जालावास है। + खोजता है किन पुनःप्रसारकों पर प्रत्येक व्यक्ति प्रकाशन करता है। जिससे कि उनके पत्र सम्यक स्थल से प्राप्प हो। + आपके अपने धनकोष घटनाएँ। पुनःपठित उन पुनःप्रसारकों से जिनपर आपने उनके प्रकाशन किए। + समूह बनाएँ + समूह मिटाएँ + क्या %1$s को मिटा दें। यह इस समूह को तथा इसके इतिहास को हटा देगा सब के लिए। इसे पूर्ववत नहीं किया जा सकता। + समूह सम्पादन + निजी + केवल सदस्य सन्देशों को पढ सकते हैं। + + %1$d सदस्य + %1$d सदस्य + + + %1$d समूह + %1$d समूह + + पुनःप्रसारक समूह + शीर्षक + पुनःप्रसारक समूह + घटनाएँ + अंकीय जालपताएँ + प्रकार + प्रयोक्ता सूची + स्थापना विकल्प + संलग्न + जालभ्रमण + समुदाय चर्चाएँ + समुदाय सूचनावलियाँ + सीधासन्देश आगतपेटिका + घटना अवलोकन + अस्थायी चर्चाएँ + स्थानीय चर्चाएँ + मुख्य सूचनावली + + %1$s \u00b7 %2$d पुनःप्रसारक + %1$s \u00b7 %2$d पुनःप्रसारक + + वर्तमानप्रवाह चर्चा + श्रव्यदृश्याभिलेख + टकसाल निर्देशिका + नटज्साप आगतपेटिका + धनकोष संयोजन + परिचय अवलोकन + अन्य + लुप्त घटनाओं को ढूँढें + पुनःप्रसारक समूह + पुनःप्रसारक जानकारी + पुनःप्रसारक सूची खोजकर्ता + अनुचरित से वृत्तान्त + खोज + विषयसूचक + वार्तालाप + विषय सूची + लेखा जानकारी + धनकोष + पुनःप्रसारक स्थापना विकल्प + निर्गतपेटिका सूचियाँ + पुनःप्रसारक + पुनःभरण तथा ज्साप भेजें + ज्साप भेजें + पुनःभरण %1$s साट्स %2$s तक तथा ज्साप %3$s को %4$s साट्स। शुल्क लगभग %5$s साट्स + हटाएँ + सन्देशों से हटाएँ + सार्वजनिक स्मर्तव्य सूची से हटाएँ + उत्तर यहाँ दें.. + सूचित करें : + + हटाने की याचना + अदृश्य होने के लिए अनुरोध + मार्मोट॰ स्थिति पुनःस्थापन असफल : %1$s + मार्मोट॰ स्थिति पुनःस्थापित करें + मार्मोट॰ स्थिति पुनःस्थापन। + गतिविधि (सात दिन) + अमेथिस्ट द्वारा अपेक्षित से अधिक उपभोग हुआ निकटकाल में : %1$s। क्या आप एक उपयोग वृत्तान्त भेजना चाहते क्रमलेखकों को एक रहस्यीकृत सीधासन्देश में। आप सम्पूर्ण वृत्तान्त देखेंगे कुछ भी भेजने के पूर्व। + विद्युतकोश अपवहन कालान्तर (पूर्ण यन्त्र) + पुनःप्रसारक संयोजन जो रखे गए आवृत अवस्था में + पृष्ठभूत सूचना सेवा + + %1$d आरम्भ + %1$d आरम्भ + + धावन समय + क्रमक कार्य आरम्भ + विद्युतकोष उपयुक्त (क्रमकाभ्यन्तर अथवा पृष्ठभूत) + संचारमात्रा सुविधा अनुसार (सात दिन) + चलनशील संचारमात्रा सुविधा अनुसार (सात दिन) + आह्वानाभ्यन्तर समय + क्रमवर्तक समय उपयुक्त + सन्देश अरहस्यीकृत + सक्रिय स्थानान्तरण समय + जाल अनुरोध + चलनशील (दशलक्षाष्टक) + वैफै॰ (दशलक्षाष्टक) + स्थानान्वेषण + श्रव्यदृश्याभिलेख चलन समय + पताप्राप्त घटनाएँ स्मृति में + चर्चाशाला सूचियाँ स्मृति में + यन्त्र स्मृति वर्ग + क्रमक स्मृति (संचय) + चित्र द्रुतस्मृति (अस्थायीस्मृति) + चित्र द्रुतस्मृति (स्थायीस्मृति) + यन्त्र स्मृति + स्मृति में टीकाएँ + स्मृति अभी इस समय + लेखा परिचय स्मृति में + ध्वनिशालाभ्यन्तर समय + श्रमप्रमाण खनन + विकिरणेन्द्रिय जाग उठना अवरोहणों के लिए (अनुमान) + चलनशील संचारमात्रा %1$s पृष्ठभूत एक दिन में + + क्रमक का पुनःप्रारम्भ %1$d बार एक दिन में + क्रमक का पुनःप्रारम्भ %1$d बार एक दिन में + + पुनःप्रसारक संयोजन %1$s पृष्ठभूत चलनशील एक दिन में + + क्रमक द्वारा पुनःप्रसारकों से पुनःसंयोजन %1$d बार एक दिन में + क्रमक द्वारा पुनःप्रसारकों से पुनःसंयोजन %1$d बार एक दिन में + + क्रमवर्तक को जागृत रखा गया %1$s के लिए सूचनाओं पर कार्य करते हुए एक दिन में + पुनःप्रसारक पुनःसंयोजन (असफल) + पुनःप्रसारक संयोजन समय + \u2026 चलनशील पर पृष्ठभूत + दूरस्थ हस्ताक्षर + पटल अनुसार समय (सात दिन) + विद्युत्कोष संचारमात्रा उपयोग उपभोग ऊर्जा जाल निदानतन्त्र लेखापुस्तक + क्रमलेखकों के साथ बाँटें + बाँटें + चित्र + धनकोष तथा ज्साप + नोस्टर पता सत्यापन + अन्य + योजक पूर्वीक्षण + प्रेषण पंजीकरण + पुनःप्रसारक समचरणीकरण + आरोहण + दृश्य तथा ध्वनि + मध्यमान पुनःप्रसारक संयोजन + विद्युतकोश प्रति घण्टा क्रमकाभ्यन्तर + चलनशील आज + संचारमात्रा प्रति घण्टा क्रमकाभ्यन्तर + क्रमकाभ्यन्तर आज + पुनःप्रसारक समय आज + वैफै॰ आज + क्रमक संसाधन उपयोग + टोर॰ उपलब्ध समय + अन्तर्निमित टोर॰ + संचारमात्रा प्रति दिन + हस्ताक्षर सत्यापित + सूचना कार्य (क्रमवर्तक जागृत) + पृष्ठभूत कार्य चलाए गए + पुनःप्रयास करें + दिनदर्शिका सूचियाँ + दिनदर्शिकाएँ + चतुरंग + आविष्करण + घर + अनुचरित आयात करें + श्रव्यदृश्याभिलेख + संदेश + संगीतसूचियाँ + संगीत + सूचनाएँ + कडियाँ + पुटप्रसार + पत्र प्रकाशन समय निर्धारण + समय निर्धारण निरस्त + समय निर्धारित पत्र का प्रकाशन सम्भाव्यतः क्रमक पुनः खोलने तक नहीं होगा। अन्य लेखाओं के समयनिर्धारित पत्र चलेंगे नहीं जब यह लेखा सक्रिय है। सदैव सक्रिय सक्षम करें स्थापना विकल्पों में प्रयोगमाध्यम में विश्वसनीय पृष्ठतल समयनिर्धारण के लिए। + समय निर्धारित पत्र का प्रकाशन सम्भाव्यतः क्रमक पुनः खोलने तक नहीं होगा। सदैव सक्रिय सक्षम करें स्थापना विकल्पों में प्रयोगमाध्यम में विश्वसनीय पृष्ठतल समयनिर्धारण के लिए। + समय निर्धारित पत्र प्रकाशन + अभी भेजें + %1$s । %2$s में + %1$s । %2$s पूर्व + कल + अपक्रम : %1$s + टीका सूचक की अनुकृति की गई + + निर्गमनांकित। %1$d समयनिर्धारित पत्र मिटाया गया + निर्गमनांकित। %1$d समयनिर्धारित पत्र मिटाए गए + + निर्गमनांकित + + आपका %1$d समयनिर्धारित पत्र है जिसका प्रकाशन अभी नहीं हुआ। निर्गमनांकन से वह स्थायी रूप से मिटाया जाएगा। + आपके %1$d समयनिर्धारित पत्र हैं जिनका प्रकाशन अभी नहीं हुआ। निर्गमनांकन से वे स्थायी रूप से मिटाए जाएँगे। + + समय निर्धारित पत्र प्रकाशन असफल + समय निर्धारित पत्र प्रकाशित + + %1$d पुनःप्रसारक तक + %1$d पुनःप्रसारकों तक + + निरस्त + असफल + समयनिर्धारित + भेजा जा रहा है… + भेजा गया + + · %1$d एक घण्टे में होना है + · %1$d एक घण्टे में होने हैं + + + %1$d पंक्तिबद्ध + %1$d पंक्तिबद्ध + + ये अच्छे विकल्प हैं :\n%1$s + खोज पुनःप्रसारक + खोज पुनःप्रसारक + पुनःप्रसारकों की सूची जिनको किसी विषयवस्तु अथवा उपयोगकर्ताओं को खोजने में प्रयोग करना चाहिए। कोई विकल्प नहीं तो उपयोगकर्ता सूचक जोडना तथा खोज निष्क्रिय होंगे। सुनिश्चित करें कि वे निप॰-५० को कार्यान्वित किये हैं। + खोज साध्य घटनाएँ + गुप्त कुंचिका (एनसेक॰) की अनुकृति टाँकाफलक में की गई + आपने किसी प्रयोक्ता को बाधित नहीं किया अब तक। + सुरक्षा छलनियाँ + कोई बाधित शब्द नहीं। नीचे शब्द जोडें उन पत्रों को अदृश्य करने के लिए जिनमें वह है। + बाधित विषयवस्तु + छलनी आद्यताएँ + कोई लेखा चिह्नित नहीं कचरालेख के लिए इस सत्र में। + भेजें + सभी प्राप्त परिचय (प्रकार शून्य) घटनाओं को अपने स्थानीय पुनःप्रसारक तक भेजें + परिचयों को स्थानीय पुनःप्रसारक तक आगे भेजें + व्ययक्षमता इस प्राप्तकर्ता के लिए : %1$s साट्स + भुगतान असफल + व्यापार : %1$s + भुगतान %1$s द्वारा… + सेवासंगणक ने आरोहण पश्चात जालपता नहीं दिया + स्थापना विकल्प + कोई मौनकृत सूत्र नहीं + मौनकृत सूत्र + स्वरूप + सामान्य + सूचनावली में विषयवस्तु + दृश्य पृष्ठसूचक + श्रव्यदृश्याभिलेख तथा जानकारी + विभाग तथा सूचनावलियाँ + अनुस्मारकसूची + संयोजन + टोर॰ के माध्यम से + चित्र के रूप में बाँटें + चित्र योजक के रूप में बाँटें + एचएलएस॰ आरोहण + बाँटें अथवा अभिलेखन करें + लघु चलचित्र + रहस्यीकृत निजी कुंचिका क्यूआर॰ चित्र अक्षरराशि दिखाएँ + सूचनाएँ पृष्ठ पर सीधे तथा समूह सन्देशों को समाविष्ट करें। निष्क्रिय करें यदि सन्देशों को केवल सन्देश पृष्ठ में रखना चाहते हों तो। + सन्देशों को दिखाएँ + निजी कुंचिका क्यूआर॰ चित्र अक्षरराशि दिखाएँ + हस्ताक्षर अनुरोध अस्वीकृत + सुनिश्चित करें हस्ताक्षर क्रमक ने इस व्यापार को अनुमति दिया + बाहरी हस्ताक्षरकर्ता द्वारा दिया गया उत्तर विचित्र है अनुरोध के लिए। अमेथिस्ट अथवा हस्ताक्षरकर्ता में कुछ दोष हो सकता है। + हस्ताक्षरकर्ता अप्राप्त + क्या हस्ताक्षर क्रमक अस्थापित किया गया। जाँच करें कि यदि हस्ताक्षरकर्ता स्थापित है तथा यह लेखा वहाँ है। यदि हस्ताक्षर क्रमक में परिवर्तन है तो निर्गमनांकन तथा प्रवेशांकन पुनः करें। + %1$d सेकण्ड पूर्व जाएँ + %1$d सेकण्ड आगे जाएँ + क्रमक विपणि + कचरालेख + इस पुनःप्रसारक से कचरालेख घटनाओं की संख्या + कचरालेख प्रेषक + दो सूचना पृष्ठसूचक दिखाएँ। अनुचरित (लोग जिनका आप अनुचरण करते हैं) तथा सभी। अपठित संकेतक चमकता है केवल आपके द्वारा अनुचरित लोगों के गतिविधियों के लिए। + सूचनाएँ विभाजित करें अनुचरित के अनुसार + निजी परितथ्य हटाने का प्रयास करता है आलम्बित श्रव्यदृश्याभिलेखों से आरोहण पूर्व + निजी परितथ्य हटाएँ + सम्पन्न व्यायाम पढता है स्वास्थ्य संयोजन से (सामसंग स्वास्थ्य तथा गूगिल फिट तथा फिटबिट तथा गार्मिन इत्यादि) तथा पत्र के रूप में बाँटने का सुझाव देता है। अनुमति अनुरोध केवल संयोजन करने पर। + व्यायामों का सुझाव बाँटनें के लिए + यन्त्रव्यवस्था + प्रदर्शनशैली + अन्धकारमय, प्रकाशवान अथवा यन्त्रव्यवस्थित प्रदर्शनशैली + यह सन्देश %1$s में अदृश्य हो जाएगा + + सं॰%1$d\n उत्तर + सं॰%1$d\n उत्तर + + आज + विशिष्ट + अपना स्वयम का बनाएँ + मूलविकल्प + अपना अंकीय जालपता छिपाएँ अपरिचित पुनःप्रसारकों से + ओर्बोट + सम्पूर्णतः गुप्त + सभी संयोजनों में अपना अंकीय जालपता छिपाएँ + आन्तरीय + निष्क्रिय + टोर अथवा गोपनीयता पूर्वकृत स्थापना विकल्प + शीघ्र से नीचे के सभी स्थापना विकल्पों का परिवर्तन करें + श्रव्यदृश्याभिलेख के अतिरिक्त सभी + चित्र चलचित्र अतिरिक्त अन्य सभी से अपना अंकीय जालपता छिपाएँ + सीधा संदेश पुनःप्रसारक + सीधे संदेश भेजने तथा प्राप्त करने के लिए टोर का प्रयोग अवश्य करें + चित्र + चित्र अवरोहण के लिए टोर का प्रयोग अवश्य करें + श्रव्यदृश्याभिलेख आरोहण + विषयवस्तु आरोहण के लिए टोर का प्रयोग अवश्य करें + व्यापार + ज्साप लैटनिंग तथा काशयू व्यापार के लिए टोर का प्रयोग अवश्य करें + अविश्वसनीय पुनःप्रसारक + निर्गत अथवा आगतपेटिका पुनःप्रसारकों के लिए टोर का प्रयोग अवश्य करें + नोस्ट्र पता सत्यापन + निप॰-०५ पता सत्यापन के लिए टोर का प्रयोग अवश्य करें + बहुरहस्यावृत संचार जालपता अथवा पुनःप्रसारक + टोर का प्रयोग करें किसी भी .onion जालपता के लिए + परिचय चित्र + परिचय चित्र अवरोहण के लिए टोर का प्रयोग अवश्य करें + विश्वसनीय पुनःप्रसारक + आपके सूचियों में सभी पुनःप्रसारकों के लिए टोर का प्रयोग अवश्य करें + जालपता पूर्वीक्षण + जालपता पूर्वीक्षण के लिए टोर का प्रयोग अवश्य करें + चलचित्र + चलचित्र अवरोहण के लिए टोर का प्रयोग अवश्य करें + मूलभूत + सेवासंगणक की आवश्यकता होने पर टोर का प्रयोग करें + अभिलेख खोलने में असफल + कोई अनेकत्रावरोहण क्रमक स्थापित नहीं अभिलेख खोलने तथा अवरोहण करने के लिए। + चुम्बकजाल योजक बनाने के लिए पर्याप्त जानकारी नहीं है घटना में + पदचिह्न युक्त प्रसारक का उपयोग करें घटनाओं को भेजते समय। वर्तमान प्रगति दिखाता है तथा प्रत्येक पुनःप्रसारक की स्थिति प्रसारण करते समय। + पदचिह्न युक्त प्रसारण + अनुवाद इस में + भाषा चयन करें जिसमें विषयवस्तु का अनुवाद करना है। + अनुवाद + विश्वसनीय पुनःप्रसारक + विश्वसनीय पुनःप्रसारक जिनके लिए टोर संयोजन आवश्यक नहीं + सम्पूर्ण + पूर्ण + वेगवान + द्रुत + सरलीकृत + सरल + प्रयोगमाध्यम आद्यताएँ + प्रयोगमाध्यम शैली + पत्र प्रकाशन शैली का चयन करें + ज्साप भेजने से पहले लैटनिंग चालान नहीं बना पाए। ग्राहक के लैटनिंग धनकोष ने यह अपक्रम की सूचना दी : %1$s + चित्र बाँटने में असफल। कृपया कुछ समय पश्चात पुनःप्रयास करें… + चलचित्र बाँटने में असफल। कृपया कुछ समय पश्चात पुनः प्रयास करें… + अनधिकृत अपरहस्यीकरण + हस्ताक्षरकर्ता ने इस कार्य करने के लिए अपरहस्यीकरण का अधिकार नहीं दिया। आपके हस्ताक्षर क्रमक में निप॰-४४ अपरहस्यीकरण सक्रिय करें तथा पुनः प्रयास करें + अनुचरण ना करें + इस स्थान का अनुचरण ना करें + सूचना मौनावस्था हटाएँ + टाँका हटाएँ + परिचय से निकालें + आरोहण निरस्त + आरोहण अपक्रम + ध्वनि आरोहण असफल : %1$s + ध्वनि सन्देश आरोहण असफल + निप॰९५ का आलम्बन अभी नहीं है ध्वनि सन्देशों के लिए + %1$d%% समय निरन्तर उपलब्ध + सक्रिय टोर उपकरण + आन्तरीय संस्करण का प्रयोग करें अथवा ओर्बोट + उपयोगकर्ता का कोई लैटनिंग पता स्थापित नहीं जिसपर साट्स प्राप्त कर सके + उपयोगकर्ता %1$s का कोई लैटनिंग पता स्थापित नही साट्स प्राप्त करने के लिए + अदृश्यीकरण इतिहास + अदृश्यीकरण अनुरोध भेजा गया + अधिक गुणवत्ता के साथ सूक्ष्मतर अभिलेख आकार परन्तु एच॰२६५ चालन सभी यन्त्रों द्वारा अवलम्बित नहीं। + एच॰२६५ अथवा एचईवीसी॰ संकुचनविस्तारणविधि उपयोग करें + चलचित्र अवरोहण आरम्भ हुआ … + चलचित्र चालक घुण्डियाँ + चलचित्र को संचारयन्त्र के चलचित्रालय में सुरक्षित रखा गया + ध्वनि सन्देश + गहन + उच्च + मध्यम + कुछ भी नहीं + ध्वनि उत्तर + धनकोष + काशयू॰ धनकोष (निप॰६०) + आपका लेखाशेष का आवहन असफल + धनकोष संयोजन + अमेथिस्ट द्वारा आपके धनकोष के उत्तर का अरहस्यीकरण असफल। सम्भाव्यतः धनकोष एक अन्य कुंचिका का उपयोग कर रहा है + + आपके धनकोष ने %1$d सेकण्ड के भीतर उत्तर नहीं दिया। भुगतान हो गया अथवा नहीं हुआ दोनो सम्भाव्य। धनकोष जाँचें पुनःप्रयास पूर्व। + आपके धनकोष ने %1$d सेकण्ड के भीतर उत्तर नहीं दिया। भुगतान हो गया अथवा नहीं हुआ दोनो सम्भाव्य। धनकोष जाँचें पुनःप्रयास पूर्व। + + आपका धनकोष संयोजन प्रदाता ने यह अपक्रम लौटाया : %1$s + आपका धनकोष संयोजन प्रदाता ने एक उत्तर भेजा जिसे पढने में अमेथिस्ट असफल। + आपके धनकोष ने जो उत्तर दिया उससे अमेथिस्ट अनभिज्ञ (%1$s) + टकसालों का सम्पादन + चालान बनाने में असफल + आपका धनकोष एक चालान नहीं लौटाया + आपके धनकोष तक अभिगमन असफल : %1$s + धनकोष अनुरोध समयसीमा पार + + धनकोष अनुरोध समयसीमा पार। %1$d उत्तर अस्वीकृत क्योंकि वह अनपेक्षित कुंचिका से हस्ताक्षरित था। आपका पुनःप्रसारक सम्भाव्यतः अविश्वसनीय। + धनकोष अनुरोध समयसीमा पार। %1$d उत्तर अस्वीकृत क्योंकि वे अनपेक्षित कुंचिका से हस्ताक्षरित थे। आपका पुनःप्रसारक सम्भाव्यतः अविश्वसनीय। + + व्यापारों का आवहन असफल + और अधिक व्यापारों का आवहन असफल + चेतावनी सन्देश दिखाता है जब पत्र अथवा परिचय पर वृत्तान्त हों आपके द्वारा अनुचरित लेखाओं से + वृत्तान्त प्राप्त होने पर चेतावनी दें + जाल स्मर्त्तव्यचिह्न जोडें + जाल स्मर्त्तव्यचिह्न सम्पादित करें + जाल स्मर्त्तव्यचिह्न + आपके मन में क्या है? + + %1$d गतिविधि + %1$d गतिविधियाँ + + व्यायाम + सन्देश लिखें … + पुनःप्रसारक को लिखकर भेजें + अष्टकों में मात्रा जो इस पुनःप्रसारक को भेजा गया था छलनियाँ तथा घटनाएँ समेत + ज्साप + भुगतान इनको हस्थान्तरण + जब कर्ता एक भुगतान विधि का प्रकाशन करता है जिसे इस संचारयन्त्र में उपलब्ध एक क्रमक खोल सकता है (वेन्मो मोनेरो अथवा एक आईबान॰…) तब ज्साप चयनकर्ता उसका प्रस्ताव कर सकेगा। दबाने से वह क्रमक खोलेगा तथा मात्रा पूछेगा। पुनःप्रसारकों पर कुछ भी प्रकाशित नहीं होगा। जिससे टीका की ज्साप संख्या में परिवर्तन नहीं होगा। + कर्ता के भुगतान विधियों का प्रस्ताव करें + ज्साप + + पुनःनामकरण + अभिलेखन करें diff --git a/commonsUI/src/commonMain/composeResources/values-hu-rHU/strings.xml b/commonsUI/src/commonMain/composeResources/values-hu-rHU/strings.xml index d9f235f536..c51e869c9d 100644 --- a/commonsUI/src/commonMain/composeResources/values-hu-rHU/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-hu-rHU/strings.xml @@ -2893,4 +2893,2137 @@ Személyiség közzététele Követi Önt Bot + Névjegy és jogi információk + Kék + Zöld + Narancssárga + Rózsaszín + Lila + Piros + Fiókbeállítások + + %1$d szűrő + %1$d szűrő + + + %1$d csoport + %1$d csoport + + + %1$d átjátszó + %1$d átjátszó + + előfizetések, szűrők, átjátszók, kérések, kapcsolatok, miért diagnosztika + %1$d%% az összesből + Aktív átjátszó-előfizetések + + %1$d szűrő még nincs hozzárendelve + %1$d szűrő még nincs hozzárendelve + + Hozzáadás + Egy Blossom-kiszolgáló hozzáadása + Egy NIP-96-kiszolgáló hozzáadása + Ha engedélyezve van, az Amethyst egy NIP-89 klienscímkét fűz hozzá a közzétett eseményekhez. + Klienscímke hozzáadása a saját eseményekhez + Érzékeny tartalom-figyelmeztetés hozzáadása a tartalom megjelenítése előtt + Érzékeny tartalom + Hozzáadás az Üzenetekhez + Hozzáadás a nyilvános könyvjelzőkhöz + Az eszközön futó LLM-modell segítségével szövegjavításokkal és hangnemváltoztatásokkal kapcsolatos javaslatokat kaphat. + Javaslatok a szöveg javítására + Aktív kapcsolatot tart fenn a beérkező üzenetek átjátszóival a valós idejű értesítések érdekében + + Kapcsolódva %1$d beérkező üzenetátjátszóhoz + Kapcsolódva %1$d beérkező üzenetátjátszóhoz + + + Kapcsolódva %1$d átjátszóhoz + Kapcsolódva %1$d átjátszóhoz + + Kapcsolódás a beérkező üzenetátjátszókhoz\u2026 + Részletek elrejtése + Részletek megjelenítése + Ki + Be + Amethyst értesítések aktíválva + Önt hozzáadták ehhez: %1$s + Értesítés említésekről vagy kiemelésekről egy cikkben + %1$s megemlítette Önt egy cikkben + %1$s kiemelte az Ön cikkét + Cikkek és kiemelések + Új cikkek + Értesítés kitűzőről + Ön kapott egy kitűzőt + Kiadta: %1$s + Kitűzők + Új kitűzők + Értesítések a bejövő hang- és videóhívásokhoz + Bejövő hívások + %1$s elfogadta az Ön sakk-kihívását + Értesítés a sakkjátékkal kapcsolatos eseményekre + Sakk + Sakkfrissítések + %1$s lépett - Ön következik + Értesítés a hibajegyekről, foltokról, beolvasztási kérésekről, megjegyzésekről, beolvasztásokról és lezárásokról + %1$s nyitott egy hibajegyet + %1$s küldött egy javítást + %1$s nyitott egy beolvasztási kérést + %1$s frissített egy beolvasztási kérést + %1$s hozzászólt + %1$s beolvasztott/megoldott egy szálat + %1$s megoldott egy hibajegyet + %1$s elfogadott egy foltot + %1$s beolvasztott egy beolvasztási kérést + %1$s lezárt egy szálat + %1$s lezárt egy hibajegyet + %1$s lezárt egy foltot + %1$s lezárt egy beolvasztási kérést + %1$s megjelölt egy szálat piszkozatként + %1$s újranyitott egy szálat + Kód és Git + Új kódtevékenység + Értesítés, ha privát üzenet érkezik + Privát üzenetek + Új üzenetek + Tartalom + Fejlesztő + Játékok + Üzenetek + Fizetések + Közösségi + Megjelölés olvasottként + Én + Értesítés említésekről egy fényképen vagy videón + %1$s megosztott egy fényképet + %1$s megosztott egy videót + Média + Új média + Értesítés, ha valaki megemlíti vagy hivatkozik Önre egy bejegyzésben + %1$s megemlítette Önt + Említések + Új említések + Új üzenet + Nutzap érkezett: %1$s + Láncon belüli zap érkezett: %1$s + Értesíti Önt, ha a kapcsolódó pénztárcájába olyan fizetés érkezik, amely nem Nostr zap + Érkezett %1$s satoshi + Beérkezett fizetések + Új fizetések + %1$s feltett egy kérdést + Értesítés, amikor valaki reagál az egyik bejegyzésre + %1$s reagált az Ön bejegyzésére + neki: %1$s + Reakciók + Új reakciók + Értesítés, amikor valaki válaszol az egyik bejegyzésre + Válaszok + Új válaszok + Válasz + Értesítés ha valaki megosztja az Ön bejegyzését + %1$s megosztotta az Ön bejegyzését + Továbbosztások + Új továbbosztások + Értesítések, amikor egy ütemezett bejegyzés megjelenik vagy nem sikerül közzététenni. + Ütemezett bejegyzések + Értesítés, amikor valaki zapet küld Önnek + %1$s satoshi + neki: %1$s + Tőle: %1$s + Zapet kapott + Új zapek + Alkalmazásbeállítások + Tanúsítás + Tanúsításkérés + Tanúsítói jártasság + Tanúsító ajánlása + + %1$d személy hozzáadása mindenképpen + %1$d személy hozzáadása mindenképpen + + + %1$d személy hozzáadása + %1$d személy hozzáadása + + Már hozzá van adva + Némítva + Privát tag + Csak Ön \u2014 választhat valakit, mindenki más csak láthatja ezt + Adjon hozzá embereket az értesítéshez + + Ez %1$d személy lenne. Az Amethyst egyszerre legfeljebb %2$d személyt ad hozzá \u2014 töröljön néhány kiválasztottat. + Ez %1$d személy lenne. Az Amethyst egyszerre legfeljebb %2$d személyt ad hozzá \u2014 töröljön néhány kiválasztottat. + + Küldés privátban + + Ez a jegyzet titkosítva lesz, és %1$d külön alkalommal lesz kézbesítve, személyenként egyszer. Külső aláíró esetén ez egy-egy jóváhagyást jelent. + Ez a jegyzet titkosítva lesz, és %1$d külön alkalommal lesz kézbesítve, személyenként egyszer. Külső aláíró esetén ez egy-egy jóváhagyást jelent. + + + %1$d személy kap értesítést erről a bejegyzésről. + %1$d személy kap értesítést erről a bejegyzésről. + + + %1$s, %2$s és %3$d további + %1$s, %2$s és %3$d további + + Hangvizualizáló + Automatikusan menti a vázlateseményt, amikor beírja a szöveget, vagy elküldetlen szöveggel hagyja a levelezőlistát, és elküldi a privát kimenő üzenetek mappájába. + Vázlatok automatikus létrehozása + Magával ragadó görgetés + Navigációs sáv elrejtése görgetéskor + Képelőnézet + Képek és GIF-ek automatikus betöltése + Videólejátszás + Videók és GIF-ek automatikus betöltése + Profilkép + Profilképek megjelenítése + Webcím-előnézet + Webcím-előnézetek megjelenítése + Videók automatikus lejátszása + Videók automatikus lejátszása, amint megjelennek a kijelzőn + Nem sikerült eltávolítani az AVIF-fájl metaadatait: %1$s + Kitüntetési kitűző + Vissza + Biztonsági mentési kulcsok + Kitűzők + Nem sikerült hitelesíteni + A biometrika nem tudta hitelesíteni a telefon tulajdonosát + A biometrika nem tudta hitelesíteni a telefon tulajdonosát. Hiba: %1$s + Letiltás + Letiltott átjátszók + Az Amethyst soha nem fog csatlakozni ezekhez az átjátszókhoz + Letiltott felhasználók + Már fut egy fájlszinkronizálás. Próbálja meg újra az importálást, miután befejeződött. + Összes letiltása + Összes engedélyezése + + %1$d fájl + %1$d fájl + + + %1$d importálandó fájlt találtunk az Ön kiszolgálóira. + %1$d importálandó fájlt találtunk az Ön kiszolgálóira. + + + %1$d fájl importálása + %1$d fájl importálása + + Nem minden kiszolgálón + Minden kiszolgálón + + %1$d satoshi fizetése + %1$d satoshi fizetése + + Ez a kiszolgáló fizetést igényel a feltöltéshez: %1$s + Mégsem + Megjeleníti a folyamatot, miközben a fájljait átmásolja a Blossom kiszolgálókra. + Blossom szinkronizálás + Fájlok másolása a kiszolgálók között… + BOLT12 Ajánlatok + Adjon hozzá egy vagy több BOLT12 ajánlatot (lno1…). Ezek nyilvánosan megosztásra kerülnek, így bárki tud Önnek fizetni. + BOLT12 fizetés sikertelen: %1$s + BOLT12 fizetés elküldve + BOLT12 zap hiba + A BOLT12 hálózaton keresztül fizetve lett, de a fizetési igazolás nem érvényes, így nem került közzétételre zap nyugta. + A BOLT12 hálózaton keresztül fizetve lett, de a pénztárca nem küldött vissza igazolást, így nem került közzétételre zap nyugta. + Új könyvjelzőlista + Könyvjelzőlista metaadatai + A könyvjelzőlisták metaadatai a Nostr-on bárki számára láthatók. Csak a privát tagok vannak titkosítva. + Könyvjelző + Megtolás + Alkalmazások és web + Csevegések és csoportok + Hírfolyamok + Fő + Egyéb + Ön + Alsó navigációs sáv + Hozzáadás + Hozzáadva + Még nincsenek kedvencek. Jelöljön meg csillaggal egy alkalmazást a böngészőben, hogy hozzáadja ide. + Még nincsenek csatlakozott csoportok. + Műsorszóró átjátszók + Olyan átjátszók, amelyek arra specializálódtak, hogy továbbítsák a bejegyzéseket az összes többi átjátszónak, mint például a sendit.nosflare.com. Az Amethyst hozzáadja ezt az átjátszót az összes új eseményhez, amelyet Ön készített + Böngésző + Kedvencek + Webalkalmazások felfedezése + Betöltés a nyílt weben keresztül. Koppintson a Tor használatához. + Betöltés Tor hálózaton keresztül. Koppintson a nyílt web használatához. + Csatorna archiválása + Új csatorna + Csatorna törlése + Törli a(z) „%1$s” csatornát? Ez mindenki számára eltávolítja a csatornát és annak üzeneteit, ez a művelet nem vonható vissza. + Privát csatorna + Rejtve van a csatornalistából és csak meghívásos. Kikapcsolva bárki ezen az átjátszón megtalálhatja és csatlakozhat hozzá. + Csatorna visszaállítása az archívumból + + %1$d rejtett beszélgetés + %1$d rejtett beszélgetés + + + %1$d további beszélgetés megtekintése + Mind a %1$d beszélgetés megtekintése + + Szerkesztés + Új fórum + Csatorna rögzítése + %1$s és %2$s írnak… + Csatorna rögzítésének megszüntetése + Jóváhagyva + Megszakítva + Megtagadva + Sikertelen + Jóváhagyásra vár + Sorban + Kiszállítva + Dolgozás + + %1$s, %2$d esemény + %1$s, %2$d esemény + + Nem sikerült feltölteni a képet + A kiválasztott képet nem sikerült feltölteni. Próbálja újra vagy adja meg a kép webcímét. + Naptár-esemény megosztása + Megnyitás a térképekben + Hivatkozás megnyitása + Most zajlik + %1$s · véget ér: %2$s + + %1$d perc múlva kezdődik + %1$d perc múlva kezdődik + + Értesítés, ha egy esemény, amin Ön részt vesz, hamarosan elkezdődik. + naptár_emlékeztetők + Naptár-emlékeztetők + Naptáresemény + Értesítés, ha egy esemény, amin Ön részt vesz, hamarosan elkezdődik. + Emlékeztetők küldés + + %1$d perc + %1$d perc + + Naptár-emlékeztetők + Nap + Hírfolyam + Hónap + Hét + Elfogadás + Bluetooth + Kamera kikapcsolása + Kamera bekapcsolása + Fülhallgató + Hívás befejezése + Bejövő hívás + Bejövő videóhívás\u2026 + Bejövő hanghívás\u2026 + Némítás + Hívások + Értesítés a folyamatban lévő hívásról + Az Amethyst alkalmazásnak hozzáférésre van szüksége a kamerához és a mikrofonhoz a videohívások kezdeményezéséhez. Engedélyezze ezeket az alkalmazás beállításaiban. + Az Amethyst alkalmazásnak hozzáférésre van szüksége a mikrofonhoz a hanghívások kezdeményezéséhez. Engedélyezze ezt az alkalmazás beállításaiban. + Elutasítás + Képernyő megosztása + Képernyő megosztásának leállítása + Képernyő megosztása + Hívásbeállítások + Hangszóró + Némítás megszüntetése + Hívás ezzel: %1$s + Nem található a visszahívási webcím a(z) %1$s válaszából + Mégse + Cashu token + Pénzverde ellenőrzése… + Nem sikerült a Cashut beváltani + A pénzverde a következő hibaüzenetet küldte:%1$s + Fogadott + Elküldött + Egyező pénzverdék + + +%1$d további + +%1$d további + + Népszerű pénzverdék + + %1$d másik felhasználó ajánlotta + %1$d másik felhasználó ajánlotta + + %1$s satoshi áthelyezve ide: %2$s. + A rendszeren nem található kompatibilis Cashu pénztárca + + %1$d függőben lévő számla + %1$d függőben lévő számla + + Kifizetsz %1$s satot + legfeljebb %2$s sat díjat? + Törlési kérés közzététele a(z) %1$s pénzverdéről szóló kind:38000 ajánlásához. Azok az átjátszók, amelyek tiszteletben tartják a NIP-09-et, el fogják távolítani. + %1$s visszaállíttva %2$s bizonyítékon keresztül. + Cashu megkapva + %1$s satoshi érkezett a pénztárcájába. (Költség: %2$s satoshi) + Nem biztonságos Cashu pénzverde-cím + Az Amethyst nem lépett kapcsolatba a token pénzverdéjével. %1$s + + %1$d olyan pénzverdében lévő pénz, amelyet Ön nem használ + %1$d olyan Mintben lévő pénz, amelyet Ön nem használ + + Várakozás a számla kifizetésére… + + %1$d pénzverde + %1$d mint + + Közvetítés leállítása + Közvetítés eszközre + Legalább egy átjátszó elfogadta + Kézbesítve az összes címzett átjátszójára + Nincs átjátszó-információ ehhez az üzenethez + Várakozás egy átjátszóra az üzenet elfogadásához + + %1$d válasz + %1$d válasz + + Csevegésben + Szálban + Titkosított közösségek több csatornával (Concord). + Concord közösségek + Könnyűsúlyú, átjátszóra korlátozott szobák, amelyek nem őrzik meg az előzményeket. + Ideiglenes csevegések + Nyilvános, geohash-alapú csevegés egy helyszínhez (Geolocation). + Helyalapú csevegések + MLS végpontok között titkosított csoportos csevegések (Marmot). + Titkosított csoportok + Régebbi, kevésbé privát titkosított közvetlen üzenetek (NIP-04). + Régi típusú üzenetek + Végpontok között titkosított, becsomagolt közvetlen üzenetek (NIP-17). + Privát üzenetek + Nyílt, nyilvános csevegőszobák, amelyeket bárki olvashat és csatlakozhat hozzájuk (NIP-28). + Nyilvános csatornák + Átjátszó által kezelt csoportos csevegések taglistákkal és moderációval (NIP-29). + Átjátszó csoportok + Gyermekbiztonsági szabványok + Tartozékok + Művészet + Könyvek + Ruházat + Gyűjtemények + Kézműves + Elektronika + Egészség / Fitnesz + Étel + Bútor + Háztartás + Vegyes + Irodaszer + Egyéb + Háziállatok + Sport + Naponta + Havonta + Egyszeri + Hetente + %1$s kifizetése ezzel: %2$s? + Kifizeti ezt a számlát a(z) %1$s használatával? + A terhelési szolgáltató nem teljesítette a fizetést. + Adjon meg egy érvényes összeget ehhez az ajánlathoz. + Számla kérése… + A bejegyzésre adott összes reakció összecsukása + Lezárva + Közösségek + A vázlat %1$d bájt; a közösség ennél a típusnál %2$d bájtban korlátozza a méretet. + A vázlat %1$d bájt; a közösség %2$d bájtban korlátozza az események méretét. + Ön ma már %1$d ilyen típusú eseményt tett közzé (a korlát: %2$d). + Üzenetírási beállítások + + %1$d csatorna + %1$d csatorna + + Új csatorna + Csatorna törlése + Törlés + Biztosan törli a(z) #%1$s csatornát? Ez a művelet nem vonható vissza, és a csatorna nem hozható létre újra ugyanezzel az azonosítóval. + Biztosan törli a csatornát? + Csatorna neve + Még nincsenek üzenetek + Csatorna átnevezése + Átnevezés + Még nincsenek csatornák. + Létrehozás + Átjátszók + A közösség titkosított üzeneteit tároló átjátszók. Hagyja üresen a sajátjai használatához. + Új Concord-csatorna + Közösség szerkesztése + Üzenet szerkesztése + Concord-csatornák + Tagok meghívása + Nem sikerült lekérni ezt a meghívót. Lehet, hogy a hivatkozás lejárt, vagy az átjátszói nem érhetők el. + Ez a közösség kizárta Önt. A hivatkozás továbbra is működik, de a taglistán nem szerepelhet. + Ez a meghívó hivatkozás lejárt és már nem használható. Kérjen egy új hivatkozást. + Ez a meghívó az alkalmazás egy újabb verziójával készült, és itt még nem nyitható meg. Kérjen egy frissített linket, vagy a frissítés után próbálja újra. + Ez a meghívási hivatkozás érvénytelen, vagy nem nyitható meg ezzel a fiókkal. + Ezt a meghívási hivatkozást visszavonták, és már nem használható. Kérjen egy újat. + Meghívási hivatkozások… + Meghívási hivatkozások + Nem sikerült visszavonni a meghívási hivatkozást. Ellenőrizze az internetkapcsolatát, majd próbálja meg újra. + Meghívási hivatkozás visszavonva. + Meghívóhivatkozás + Közösség elhagyása + Elhagyja a következőt: %1$s? Eltávolításra kerül ezen fiók listájáról, és leáll a szinkronizálása az Ön eszközein. A közösség nem kap értesítést, és Ön nem kerül le a tagok listájáról. Azok az üzenetek, amelyeket már nem tud visszafejteni, helyreállíthatatlanná válhatnak, és csak új meghívóval térhet vissza. + Ön hozta létre ezt a közösséget. A kilépés nem törli, és nem is adja át másnak, de eldobja a listáján tárolt tulajdonosi kulcsot — a jövőben nem fogja tudni kezelni. + Elhagyja a közösséget? + Kinevezés adminisztrátornak + + %1$d tag + %1$d tag + + Kitiltás + Kinevezés adminisztrátornak + Adminisztrátori jog megvonása + Nem sikerült frissíteni a tag szerepköreit. + Szerepkörök hozzárendelése + Tagok + Kitiltás feloldása + Adminisztrátori jog megvonása + Kép küldése + Concord + Többen is gépelnek… + %1$s gépel… + %1$s és %2$s gépel… + + %1$d új üzenet + %1$d új üzenet + + Alapértelmezett port: 9050 + Kapcsolódott átjátszók + Jelenlegi használatban lévő átjátszók listája + Az átjátszóhoz való sikeres kapcsolatok százalékos aránya + Mindig + Soha + Korlátlan Wi-Fi + Wi-Fi + Dokumentum hozzáadása + Kép hozzáadása + Média hozzáadása + Videó hozzáadása + Elrejtés + Figyelmeztetés + Megjelenítés + Beszélgetések + Animált GIF-fájlokat MP4-videókká alakít át, így kisebb fájlméretet és jobb lejátszási kompatibilitást biztosít. + GIF átalakítása MP4 formátumra + A bejegyzés-azonosító (@note1) a vágólapra másolva + Bejegyzés szövege a vágólapra másolva + Vágólapra másolva + A szerző @npub-ja a vágólapra másolva + Saját titkos kulcs másolása + Másolás a vágólapra + Nem sikerült az LN-webcímet a(z) „%1$s” Lightning-címről összeállítani. Ellenőrizze a felhasználó beállításait + Nem lehetett ellenőrizni a letöltött fájlt a feltöltés után: %1$s + Nem sikerült letölteni a kiszolgálóról az oda feltöltött médiát + Nem sikerült lekérni a számlát a következőtől: %1$s: %2$s + Nem sikerült megnyitni a tömörített fájlt + Nem található pénztárca + Az Amethyst nem talált olyan pénztárca-alkalmazást, amely támogatja a Nostr Wallet Connect (NWC) szolgáltatást. +\n\nAmit tehet: +\n\t1. NWC-támogatás ellenőrzése: Ellenőrizze, hogy a kívánt pénztárca-alkalmazás kompatibilis-e a Nostr Wallet Connect szolgáltatással. +\n\t2. Kapcsolat létrehozása: Nyissa meg a pénztárcaalkalmazást, és hozzon létre egy új NWC-kapcsolatot. +\n\t3. Kapcsolódás az Amethysthez: A pénztárcája általában három lehetőséget kínál: +\n\t\t3.1 Automatikus kapcsolódás: Egy gomb az Amethyst automatikus megnyitásához és kapcsolódáshoz. Koppintson erre a gombra, nyissa meg az Amethyst alkalmazást, és mentse el az új képernyőn. +\n\t\t3.2 Kézi kapcsolódás: Egy kapcsolódási cím, amelyet kimásolhat, és a képernyőn található beillesztés gombra koppintva közvetlenül beírhatja. +\n\t\t3.3 QR-kód: A pénztárca létrehoz egy QR-kódot, amelyet a képernyőn található QR-kód gombról olvashat be. + + Létrehozás + n + Kritikus beállítások + Sötét + Leírás + Nyilvánossá tevés + Csevegések + Közösségek + Hírfolyam-algoritmus + Követett csomagok + Élő közvetítések + Piac + Olvasmányok + Bejövő átjátszók a privát üzenetekhez + + %1$d Ön által követett személy jelentette + %1$d Ön által követett személy jelentette + + Közvetlen üzenetek + Innentől NE fordítsa le + Az itt látható nyelvek nem lesznek lefordítva. Az eltávolításához és az újbóli fordításhoz válasszon ki egy nyelvet. + Mentés a telefonra + Videó letöltése… + Piszkozat + Piszkozatok + Fiókok + Létrehozás + Hírfolyamok + Navigálás + Rendszer + Ön + Oldalsó menü + Mindig bekapcsolva + Rejtett + + %1$d rejtett + %1$d rejtett + + Látható + + %1$d nappal + %1$d nappal + + + %1$d órával + %1$d órával + + + %1$d perccel + %1$d perccel + + + %1$d hónappal + %1$d hónappal + + + %1$d héttel + %1$d héttel + + + %1$d évvel + %1$d évvel + + Naptár szerkesztése + Naptáresemény szerkesztése + Közösség szerkesztése + Emodzsicsomag szerkesztése + Szerkesztés + Lejátszási lista szerkesztése + Bejegyzés szerkesztése + A privát emodzsik titkosítva kerülnek tárolásra az átjátszókon, és csak Önnek láthatók. Ugyanúgy megjelennek a reakciómenüben és a „:” automatikus kiegészítésben, mint a nyilvánosak. + A nyilvános emodzsik mindenki számára láthatók, és megjelennek a reakciómenüben, valamint a „:” automatikus kiegészítő listájában, ha ez a csomag szerepel az emodzsilistában. + Emodzsik + Az adatok védelme érdekében titkosítsa a fájlokat a feltöltés előtt. Egyes kiszolgálók az ingyenes fiókok esetében nem biztos, hogy elfogadják a titkosított fájlokat. + Fájlok titkosítása + Eltűnő csevegés + Hiba + Nem sikerült kifizetni a számlát + Nem sikerült a pénzkivétel a pénztárcából + Nem sikerült megnyitni a fizetést + Nem sikerült zapet küldeni + Hiba az aláíró-alkalmazás megnyitásakor + Az aláíró alkalmazás nem található. Ellenőrizze, hogy az alkalmazás nincs-e eltávolítva + Hiba a hibaüzenet elemzésekor + Hiba történt a(z) %1$s JSON elemzésekor. Ellenőrizze a felhasználó Lightning-beállítását + Nem sikerült a számlát a kedvezményezett kiszolgálóiról lekérni + Megnyitás böngészőben + Nem lehet lejátszani ezt a videót + Az eszköz nem támogatja a kódolást vagy a formátumot (%1$s). Próbálja meg a böngészőben megnyitni. + Hibák + Átjátszószinkronizálás + Öntől származó események + Önnek szóló események + AMRAP + Kör + Kerékpározás + Étrend + EMOM + Böjt + Túrázás + Meditáció + Evezés + Futás + Erősítés + Úszás + Gyaloglás + Jóga + Kibontás + Lejárati dátum + A szerző arra kérte az átjátszókat, hogy %1$s után töröljék ezt a jegyzetet. A lejárata után el fog tűnni a hírfolyamokból. + Átjátszóbeállítások exportálása + Nem sikerült törölni: %1$s + Nem sikerült a privát kulcsot titkosítani + Nem sikerült menteni a képet + Nem sikerült menteni a PDF-fájlt + Nem sikerült menteni a videót + Sok kiszolgáló nem fogad el titkosított fájlokat ingyenes fiókok esetén. Próbálja újra titkosítás nélkül. + Titkosított feltöltés sikertelen + Feltöltési hiba: %1$s + Nem sikerült feltölteni a médiát + Nem sikerült feltölteni a következőre: %1$s: %2$s + Hozzáadás a kedvencekhez + Betöltés a nyílt weben keresztül. + Betöltés Tor hálózaton keresztül. + Legutóbbi + Eltávolítás a kedvencekből + Az az alkalmazás még nincs betöltve. Próbálja újra egy pillanat múlva. + Webalkalmazások + Kedvenc hírfolyam-algoritmusok + Fizetést hajtott végre + Közzétéve az átjátszókon + Feltöltött egy fájlt + Kedvenc hírfolyam-átjátszók + Átjátszók, amelyeket gyakran felkeres a globális hírfolyamuk megtekintéséhez + Közösségek + Hírfolyam-algoritmusok + Hírfolyamok + Kulcsszavak + Érdeklődési csomagok + Listák + Helyszínek + Átjátszók + Fájlkiszolgáló + Válasszon ki egy kiszolgálót a fájl feltöltéséhez neki: + Elrejti az ismeretlen felhasználók hozzászólásait, amelyek pontosan ugyanazok voltak 5 vagy több alkalommal + Kéretlen tartalomszűrő + Követés + Viszontkövetés + Kövesse ezt a helyet + Kedvenc hírfolyam-algoritmusok + Közelemben + Válogatott + Globális + Alapértelmezett követési lista + Minden ami követett + Minden követett felhasználó + Saját + Némítottak bejegyzései + Teleportálás egy helyre… + Új követési csomag + Követési csomag szerkesztése + A követési csomag metaadatai a Nostr-on bárki számára láthatók, és gyakran megjelennek számos weboldalon, új felhasználók számára készült kezdőcsomagként. + Követési csomag metaadatai + Követési csomagok + Új követési lista + Lista szerkesztése + Betűtípus + Az alkalmazásban használt betűtípus + Monospace + Mono + Sans Serif + Sans + Serif + Serif + Rendszer alapértelmezése + Rendszer + Betűméret + A szövegméret méretezése az alkalmazásban + Hatalmas + Nagy + Normál + Kicsi + Profilgaléria stílusa + Válassza ki a galéria stílusát + Klasszikus + Modern + Helyalapú csevegés + Helyszín-alapú bejegyzés + Csak a helyszín követői láthatják. Az általános követők nem fogják látni. + + %1$d elem + %1$d elem + + Git-tárolók + Szűrő bezárása + Tárolók szűrése + %1$s gyűlt össze a(z) %2$s satoshis célból + ó + Ez a tartalom megváltozott. Lehet, hogy a szerző nem látta vagy nem hagyta jóvá a változtatást + Mit jelent ez? + Ez a tartalom nem változott a közzététel óta + Tisztelt %1$s! Ez még aktuális? + Rejtett szavak + Eltávolítja a bejegyzéseket a közösségi hírfolyamokból, ha a közösség közzétesz egy NIP-9B szabálydokumentumot, és egy esemény nem felel meg annak. Nincs hatása, ha a közösség nem rendelkezik strukturált szabályokkal. + Közösségi szabályokat sértő bejegyzések elrejtése + Jelszó elrejtése + Kiemelések + %1$s feltöltés (%2$d/%3$d) + Cikkek + Igazolások + Madármegfigyelések + Sakkjátszmák + Apróhirdetések + Hozzászólások és válaszok + Ideiglenes csevegések + Gyűjtések + Kiemelések + Interaktív történetek + Élő tevékenységek + Zene és hang + NIP-tervezetek + Képek + Podcastok + Szavazások + Értékelések és megjegyzések + Továbbosztások + Rövid videók + Szöveges jegyzetek + Torrentek + Videók + Hangüzenetek + Wiki-oldalak + Minden + 400 – hibás kérés: A kérés nem végrehajtható, mert rossz szintaxisú, túl hosszú stb. + 401 – nem azonosított: A kliensnek nincs jogosultsága megtekinteni az oldalt. + 402 – fizetés szükséges: Fizetnie kell a kiszolgálónak a kérés teljesítéséhez + 403 – nincs jogosultság: A kliensnek nincs jogosultsága megtekinteni az oldalt. + 404 – nem található: A kért erőforrás nem létezik. + 405 – a metódus nem engedélyezett: A használt HTTP-metódus nem engedélyezett, pl egy PUT kérés egy csak olvasható erőforráson. + 406 – nem elfogadható: Jelzi, hogy a szerver nem tud választ előállítani az Accept, az Accept-Charset, az Accept-Encoding vagy az Accept-Language fejlécben megadott tulajdonságok miatt. + 407 – proxyazonosítás szükséges: A kliensnek azonosítania kell magát a proxykiszolgálón. + 408 – időtúllépés: A kiszolgáló túl sokáig várt a kérésre, így a kapcsolat lezárult. + 409 – konfliktus: Jelzi, hogy az erőforrás nem elérhető, mert ütközne egy másik folyamattal, pl. egy dokumentum egyidejű szerkesztése. + 410 – véglegesen eltűnt: A kért erőforrás nem létezik, és ez így is fog maradni a jövőben is. + 411 – probléma a mérettel: A kérés mérete nem megfelelő. + 412 – a kliens nem megfelelő: A kliens nem felel meg az egyik feltételnek. + 413 – hosszú kérés: A kérés nagyobb a kiszolgáló által maximálisan feldolgozhatónál. + 414 – hosszú URI: Az URI hosszúsága nagyobb a megengedettnél. + 415 – nem támogatott médiatípus: A kérés olyan médiaformátumot használ, amelyet a kiszolgáló nem támogat + 416 – a fájlpozíció nem megfelelő: A kliens egy darabját kérte a fájlnak, de a kiszolgáló ezt nem tudja kézbesíteni. Például a kliens egy olyan részét kérte a fájlnak, ami a fájl vége után található. + 417 – a kiszolgáló nem megfelelő: A kiszolgáló nem felel meg azoknak a követelményeknek, amit a kliens az Expect fejlécben meghatározott. + 426 – frissítés szükséges: A kiszolgáló felszólítja a klienst, hogy váltson protokollt. (Pl. hogy biztonságos legyen a kapcsolat.) + 500 – belső kiszolgálóhiba: Egy általános hibaüzenet kiszolgálóhibák jelzésére. + 501 – nincs megvalósítva: A kiszolgáló nem ismerte fel a HTTP-metódust, vagy nem képes teljesíteni a kérést, de a jövőben ez a helyzet meg fog változni. + 502 – rossz átjáró: Jelzi, hogy a kiszolgáló egy hibás HTTP-választ kapott egy másik kiszolgálótól. + 503 – a szolgáltatás nem elérhető: A kiszolgáló nem képes kezelni a kérést. Általában ez a helyzet csak ideiglenes. + 504 – átjáró időtúllépés: Proxyk használják. Jelzi, hogy a kiszolgáló nem kapott választ időben az eredeti kiszolgálótól. + 505 – nem támogatott HTTP-verzió: A kiszolgáló nem támogatja a kliens által használt HTTP-verziót. + 506 – körkörös hivatkozás: A kiszolgálót rosszul konfigurálták. A kért erőforrás körkörös hivatkozást eredményez. + 507 – kevés tárhely (WebDAV): A kiszolgáló nem képes a kérést tárolni, mert kevés a tárhely. + 508 – végtelen ismétlés (WebDAV): A kiszolgáló végtelen ciklusban ismétlődő kéréseket érzékelt a feldolgozáskor. + 511 – hálózati azonosítás: A hálózat használata előtt azonosítani kell magunkat, pl. egy Wi-Fi-hálózat használata előtt el kell fogadni a használati feltételeket. + Illegális viselkedés + Kép mentve a képgalériába + Profilutánzás + Átjátszók a bejövő üzenetkhez + Helytelen (%1$s satoshi) számlaösszeg a következőtől: %2$s. A következőnek kellett volna lennie: %3$s + Indexelő átjátszók + Olyan átjátszók, amelyek mindenki metaadatainak és átjátszólistáinak tárolására specializálódtak, mint például a purplepag.es. Az Amethyst ezeket az átjátszókat használja arra, hogy megtalálja azokat a felhasználókat, akik nem szerepelnek az Ön listáin. + Új érdeklődési csomag + Átnevezés + Kulcsszócsomagok + Érvénytelen kulcs + Érvénytelen kulcs: %1$s + Érvénytelen cím + Az Amethyst kapott egy URI-t a megnyitáshoz, de az érvénytelen volt: %1$s + A piszkozatokat nem lehet idézni + A piszkozatokra nem lehet reagálni + A piszkozatokra nem lehet válaszolni + A piszkozatokra nem lehet zapet küldeni + Kulcs megadása kötelező + Kulcscsomag-átjátszók + Azok az átjátszók, ahol az Ön MLS-kulcscsomagjai közzétételre kerülnek (MIP-00). Más felhasználók ezeket a kulcscsomagokat lekérve tudják Önt meghívni a Marmot csoportos beszélgetésekbe. Adjon meg 1-3 olyan átjátszót, amely fogadja az Ön kulcscsomag-eseményeit, és lehetővé teszi azok nyilvános olvasását. + Kulcscsomagok + Elfogadott kitűzőlista + Kalandprológus + Kalandos olvasmány + Kalandjelenet + Ajánlott alkalmazások + Találkozó + Alkalmazások + Időpont-visszaigazolás + Audio-fejléc + Hangsáv + Saját készítésű hangműsorok + Kitűződíjak + Kitűzők meghatározása + BLOB-adatok + BLOB-fejlécek + Letiltott átjátszók + Blogok + Blossom-hitelesítés + Blossom kiszolgálók + Könyvjelzőlista + Közvetítési átjátszók + Naptár + Csatorna alapadatai + Üzenet elrejtése a csatornában + Csatornalista + Csatornaüzenet + Csatorna metaadatai + Felhasználó némítása a csatornában + Sakk-hitelesítés + Sakk-kihívások + Döntetlen felajánlása + Sakkjáték elfogadása + Sakkjáték vége + Sakkjátékok + Sakklépés + Apróhirdetések + Megjegyzések + Közösség alapadatai + Közösségi lista + Közösségi bejegyzés + Névjegykártya + Napi időpont + Törlések + Közvetlen üzenetfájl + Közvetlen üzenet + Közvetlen üzenetátjátszók + Piszkozatok + DVM-tartalomkérés + DVM-tartalomválasz + DVM-állapot + DVM-felhasználói kérés + DVM-felhasználói válasz + Szerkesztések + Emodzsicsomag-lista + Emodzsicsomagok + Eltűnő csevegés + Eltűnő csevegőszobák + Kedvenc hangműsorok + Kedvenc átjátszók + Fájl-fejléc + Fájlkiszolgálók + Követési lista + Követési csomagok + Területi követések + Ajándékcsomagolások + Git hibajegy + Git javítófolt + Beolvasztási kérés + Beolvasztási kérés frissítése + Git válasz + Git tároló + Git-állapot: Elfogadva + Git-állapot: Lezárva + Git-állapot: Piszkozat + Git-állapot: Nyitott + Kulcsszókövetések + Kiemelések + Http-hitelesítés + Indexelő átjátszók listája + Élő csevegések + Élő közvetítések + Egészségügyi adatok + Tárgyalószoba + Megbeszélési helyszín + Zenei lejátszási lista + Zeneszám + Lista némítása + Címkézett könyvjelzők + Hangszoba-kiszolgálók + NIP + NIP-04 közvetlen üzenetek + NNS + Nostr-kapcsolódás + Bejegyzések + NWC-kérések + NWC-válasz + Régi könyvjelzőlista + OTS + Kimenő átjátszók + fizetés kedvezményezettje + Személylisták + Képek + Rögzítettek + Hangműsor-rész + Hangműsor + Szavazás + Szavazásválasz + Privát átjátszók + Privát zapek + Profil + Profilkitűzők + Profilgaléria + Proxyzott átjátszók + Nyílvános üzenet + Reakciók + Átjátszóhitelesítés + Átjátszófelfedezés + Átjátszó-figyelő hirdetmény + Átjátszókészlet + Jelentések + Megosztások + Megosztások (16) + Szobajelenlét + Pecsétek + Keresési átjátszók + Rövidek + Rövidek (válasz) + Torrent-megjegyzések + torentek + Megbízható szolgáltatók + Megbízható átjátszók + Felhasználói törlés + Felhasználói beállítások + Felhasználói állapot + Videó + Videó (válasz) + Hangüzenet + Hangos válasz + Ébredés + Webes könyvjelző + Wiki + Edzések + Zapcélok + Zapszavazás + Zap-kérés + Zap-ek + Ismert + Nyelvi megjelenítési beállítások + Minden egyes a fordításhoz szükséges nyelvpár esetében válassza ki, melyik nyelvet szeretné elsőként megjeleníteni. + Utoljára %1$s ezelőtt látták + Utoljára elérhető: épp most + Utoljára elérhető: soha + Utoljára elérhető: %1$s (%2$s ezelőtt) + Elhagyás + Fájlbejegyzés + Könyvtár + + %1$d elem + %1$d elem + + + további %1$d elem + további %1$d elem + + Tanulási forrás + Világos + Élő közvetítések + Helyi átjátszók + A készüléken futó átjátszók listája. + Helyszín módosítása a térképen + Helyszíncsatornák + Válasszon egy helyet a térképen + Ön nyilvános kulcsot használ, és a nyilvános kulccsal csak olvashatóak a bejegyzések. Jelentkezzen be a privát kulcsával, hogy meg tudja tolni a bejegyzéseket + Ön nyilvános kulcsot használ, és a nyilvános kulccsal csak olvashatóak a bejegyzések. Jelentkezzen be a privát kulcsával, hogy követni tudjon embereket + Ön nyilvános kulcsot használ, és a nyilvános kulccsal csak olvashatóak a bejegyzések. Jelentkezzen be a privát kulcsával, hogy egy szót vagy mondat el tudjon rejteni + Ön nyilvános kulcsot használ, és a nyilvános kulccsal csak olvashatóak a bejegyzések. Jelentkezzen be a privát kulcsával, hogy válaszolni tudjon + Ön nyilvános kulcsot használ, és a nyilvános kulccsal csak olvashatók a bejegyzések. Jelentkezzen be a privát kulcsával, hogy zapet tudjon küldeni + Ön nyilvános kulcsot használ, és a nyilvános kulccsal csak olvashatóak a bejegyzések. Jelentkezzen be a privát kulcsával, hogy egy szót vagy mondat meg tudjon jeleníteni + Ön nyilvános kulcsot használ, és a nyilvános kulcsok csak olvashatóak. Jelentkezzen be egy privát kulccsal, hogy aláírhassa az eseményeket + Ön nyilvános kulcsot használ, és a nyilvános kulccsal csak olvashatóak a bejegyzések. Jelentkezzen be a privát kulcsával, hogy ki tudja követni az embereket, akiket követ + Ön nyilvános kulcsot használ, és a nyilvános kulcsok csak olvashatóak. Jelentkezzen be egy privát kulccsal, hogy tudjon tartalmakat feltölteni + Ön nyilvános kulcsot használ, és a nyilvános kulcsok csak olvashatóak. Jelentkezzen be a privát kulccsal a hozzászólások kedveléséhez + Videók + p + Saját emodzsicsomagok + Fotó hozzáadása + %1$s hozzáadása… + Adminisztrátori jogosultságok megadva + Adminisztrátori jogosultságok visszavonva + Fotó módosítása + Először adjon hozzá egy Blossom médiakiszolgálót a beállításokban, mert a csoportnak szüksége van egy helyre, ahová a mellékleteket feltöltheti. + Ez a csoport mostantól titkosított mellékleteket használ + Nem sikerült hozzáadni a következőt: %1$s: %2$s + Nem sikerült létrehozni a csoportot: %1$s + Nem sikerült feloszlatni a csoportot: %1$s + Nem sikerült átállítani ezt a csoportot a titkosított mellékletek használatára: %1$s + Nem sikerült megadni az adminisztrátori jogosultságot: %1$s + Nem sikerült elhagyni a csoportot: %1$s + Nem sikerült eltávolítani a tagot: %1$s + Nem sikerült visszavonni az administrátori jogosultságot: %1$s + Nem sikerült frissíteni: %1$s + Marmot-csoport + Ez a csoport feloszlik, de továbbra is olvasható marad. + Ön elhagyja a csoportot. + Ön már nem tagja ennek a csoportnak. + Csoport feloszlatva + A csoport feloszlatása akkor ér véget, amikor annak tagjai egyezségre jutnak. + Csoportadatok frissítve + + %1$d tag + %1$d tag + + Tag eltávolítva + + %1$d üzenet + %1$d üzenet + + Nem tagja ennek a csoportnak + ismeretlen hiba + Média hozzáadva + Média hozzáadva az Ön profil-galériájába + A média letöltése megkezdődött… + Nem elérhető + Online + Lassú + Médiakiszolgálók + Média túl nagy a NIP-95 számára + Először adja meg az üzenet címzettjét + Nem sikerült feltölteni + Tárgy + Üzenetek + A metaadatok nem távolíthatók el + Nem sikerült eltávolítani a médiafájlokból a privát metaadatokat. Feltöltés megszakítva. + A könyvjelzők átköltöztetése sikeresen befejeződött + Hiányzó lightning-beállítás + További beállítások + Áthelyezés a privát könyvjelzőkbe + Áthelyezés a nyilvános könyvjelzőkbe + Egy borítókép feltöltése + Válasszon egy négyzet alakú képet a lejátszási lista borítóképének. + + +%1$d szám + +%1$d szám + + + %1$d szám + %1$d szám + + + %1$d szám + %1$d szám + + Borítókép feltöltése és közzététele. Ez a folyamat akkor is folytatódik, ha elhagyja ezt a képernyőt. + Egy hangfájl feltöltése + Válasszon ki egy MP3-, WAV- vagy FLAC-fájlt. A „Mentés” gombra koppintva a fájl feltöltődik a médiakiszolgálóra. + Egy borítókép feltöltése + Válasszon ki egy négyzet alakú képet, amely a szám borítójaként fog szolgálni. + Borító és hangfájl feltöltése, majd közzététel. Ez akkor is folytatódik, ha elhagyja a képernyőt. + Hang bekapcsolva. Koppintson a némításhoz + Értesítések némítása + Némítva. Koppintson a némitás megszüntetéséhez + Az én Blossom fájljaim + Fitnesz + Saját listák + Név megadása kötelező + %1$d ms + Namecoin-beállítások + Azonosság + Az Ön nyilvános kulcsának olvasása + Üzenetváltás + Üzenetváltás más nKisalkalmazással + Billentyűzetműveletek + Billentyűkötések hozzárendelése + Értesítések + Értesítések megjelenítése + Átjátszók + Események olvasása, aláírása és közzététele + Hálózat + Webes és Blossom erőforrások lekérése + Titkosítás + A privát üzeneteket a saját kulcsával titkosítja és fejti vissza az alkalmazás + Tárhely + Saját privát tárhely + Téma + Alkalmazkodás az alkalmazás színeihez + Feltöltések + Fájlok feltöltése a saját médiakiszolgálóra + Fizetések + Lightning-számlák kifizetése + alkalmazások, engedélyek, aláíró, napplet, nsite, webalkalmazás, bizalom, kapcsolódott + + %1$d új fiókot követ + %1$d új fiókot követ + + ⚠ Ez elkezdi követni a következőt: %1$s. + + MEGSZÜNTETI %1$d fiók követését + MEGSZÜNTETI %1$d fiók követését + + ⚠ Ez felülírja a követési listáját: %1$s. + %1$s és %2$s + + némít további %1$d személyt + némít további %1$d személyt + + ⚠ Ez némítja a következőt: %1$s. + + VISSZAVONJA %1$d személy némítását + VISSZAVONJA %1$d személy némítását + + ⚠ Ez felülírja a némítási listáját: %1$s. A némított szavak és hashtagek nem jelennek meg itt — koppintson az „Esemény megjelenítése” elemre a teljes listához. + + ⚠ Ez egy %1$d bejegyzésből álló listát ír. Az Amethyst nem rendelkezik gyorsítótárazott másolattal az összehasonlításhoz. + ⚠ Ez egy %1$d bejegyzésből álló listát ír. Az Amethyst nem rendelkezik gyorsítótárazott másolattal az összehasonlításhoz. + + Ez változatlan formában újból közzéteszi az Ön meglévő listáját. + + hozzáad %1$d átjátszót + hozzáad %1$d átjátszót + + + ELTÁVOLÍT %1$d átjátszót + ELTÁVOLÍT %1$d átjátszót + + ⚠ Ez felülírja az átjátszók listáját: %1$s. A bejegyzései és olvasásai vele együtt mozognak. + ⚠ Ez MEGSZÜNTETI %1$s követését. + ⚠ Ez VISSZAVONJA %1$s némítását. + + ⚠ Ez az Ön %1$d eseményének törlését kéri. + ⚠ Ez az Ön %1$d eseményének törlését kéri. + + + %1$d címkét tartalmaz. Koppintson az „Esemény megjelenítése” elemre, hogy pontosan lássa, mi kerülne aláírásra. + %1$d címkét tartalmaz. Koppintson az „Esemény megjelenítése” elemre, hogy pontosan lássa, mi kerülne aláírásra. + + Ez a nKisalkalmazás olvasni szeretné az Ön nyilvános kulcsát. + Ez a nKisalkalmazás olvasni szeretné az Ön profil- és fiókadatait. + Ez az oldal az Ön Nostr-kulcsával vissza szeretne fejteni egy üzenetet, amit %1$s felhasználótol kapott. + Ez az oldal az Ön Nostr-kulcsával titkosítani szeretne egy üzenetet %1$s felhasználó számára. + Ez a nKisalkalmazás értesítéseket szeretne megjeleníteni Önnek. + + Ez a nKisalkalmazás ki szeretne fizetni egy %1$d satoshi értékű Lightning számlát. + Ez a nKisalkalmazás ki szeretne fizetni egy %1$d satoshi értékű Lightning számlát. + + ⚠ Ez a nApplet egy olyan Lightning számlát akar kifizetni, amelyen NINCS összeg megadva — a kedvezményezett dönti el, mennyit von le. Csak akkor engedélyezze, ha megbízik benne. + Ez a nKisalkalmazás alá szeretne írni és közzétenni egy %1$d típusú eseményt az Ön nevében. + Ez a nKisalkalmazás egy titkosított eseményt szeretne küldeni az Ön nevében. + Ez a nKisalkalmazás alá szeretne írni és közzétenni egy %1$d típusú eseményt az Ön nevében: + Ez a nKisalkalmazás eseményeket szeretne olvasni az Ön átjátszóiról. + Ez a nKisalkalmazás le szeretne kérni egy webes erőforrást. + Ez az oldal egy %1$d típusú eseményt szeretne aláírni az Ön Nostr-kulcsával. + Ez a nKisalkalmazás az Ön privát tárhelyét szeretné használni. + Ez a nKisalkalmazás fel szeretne tölteni egy fájlt az Ön médiakiszolgálójára. + nKisalkalmazás: %1$s… + saját privát üzenetek olvasása + elolvashatja a magánüzeneteit vele: %1$s + egy üzenet titkosítása + aláírás a következőhöz: %1$s (típus: %2$d) + Összekapcsolt alkalmazások + nKisalkalmazások + Nem sikerült elküldeni az üzenetet + Előadó elnémítása + Ezen előadó visszaállítása + Elhagyás + Nem sikerült a szobát zártként megjelölni. Távozás ettől függetlenül — a szoba automatikusan bezár. + + %1$d hallgató + %1$d hallgató + + Kéz leengedése + Mikrofon némítása + Mikrofon némításának megszüntetése + Némítás + Nem sikerült menteni a hangszoba kiszolgálólistáját. Próbálja újra. + Hangszoba – Élő + Hangszobák + Hang lejátszása, amíg a szoba meg van nyitva. + Hangszoba kapcsódott + Leállítás + Koppintson ide a visszalépéshez. + Követés + Némítás + Követés megszüntetése + Némítás megszüntetése + elhagyta a hangszobát + hallgatóként csatlakozott + színpadra lépett + felemelték a kezüket + beszél + Kéz felemelése + Némítás megszüntetése + Hangszobák + Kind-10112 típusú cserélhető eseményként mentve, így más kliensek is olvashatják az Ön beállítását. + Saját kiszolgálók + Beépített javaslatok, melyeket egy koppintással hozzáadhat a listájához. + Ajánlott kiszolgálók + Hangszoba-kiszolgálók + soha + Új kitűző + Új naptár + Új naptáresemény + Új közösség + Moderátorok + Átjátszók + Letiltott felhasználók + Közösségi megjegyzés (1111) + Hosszú formátumú cikk (30023) + Képes bejegyzés (20) + Rövid szöveg (1) + Rövid videó (22) + Videós bejegyzés (21) + Engedélyezett eseménytípusok + Globális maximális eseményméret (nem kötelező) + Ellenőrizhető szabályok (nem kötelező) + Bizalmi háló (Web-of-Trust) szűrő (nem kötelező) + Hatalmas közösségek, csatornákba vagy munkafolyamatokba szervezve. + Munkaterületek + Több beállítást igényel + Közösség létrehozása + Hatalmas közösségekre skálázva + Csatornára / munkafolyamatra osztott + Csatornákra bontott közösségek + Concord közösség + Személyes és kiscsoportos beszélgetések olyan emberekkel, akiket ismer. + 1:1-5 szoba + Később nem adhatók hozzá felhasználók + Új üzenet + 1-1 fős és kiscsoportos + Végpontok közötti titkosítás + Közvetlen üzenetek, végpontok közötti titkosítással + Privát üzenet + Pillanatnyi csevegés bárkivel, aki éppen online van. + Most élő + Nincs előzmény + Átjátszóra korlátozott + Csevegés indítása + Beszélgetés azokkal, akik most online vannak + Semmi sem mentődik el + Bárki, aki éppen online van + Eltűnő csevegés + Legjobb, ha fizikailag egy hely környékén – a saját környékén, városában vagy régiójában – lévő emberekkel szeretne beszélgetni. + Helyi + Nyilvános és ideiglenes – nincs előzmény, a cellában bárki olvashatja. + Válasszon egy helyszínt + Névtelen – területenként eldobható identitás, sosem a saját npub. + Bitchat-kompatibilis; eléri a közeli felhasználókat ugyanazokon az átjátszókon. + Csevegjen azokkal, akik egy hely közelében vannak, geohash alapján. + Helyalapú csatorna + Nagyobb privát csoportok, amelyek kinőtték a kiscsoportos közvetlen üzeneteket. + Eszközhöz kötött + Eszközhöz kötött - nem fog megjelenni, ha máshol jelentkezik be + Csoport létrehozása + Túlmutat a kis közvetlen üzeneteken + Titkosított csoportos csevegés + Nagyobb privát csoportok + Marmot csoport + Nyitott, nyilvános szobák, ahová bárki küldhet üzenetet. + Moderálatlan + Csak nyilvános + Nincs moderáció + Nyilvános csevegés létrehozása + Bárki csatlakozhat + Egyszerű és felfedezhető + Nyilvános üzenetek egy átjátszón + Nyilvános csevegés + Az őket kiszolgáló átjátszó által moderált csoportok. + Moderált + Ahhoz az egy átjátszóhoz kötött + Átjátszó-csoportok böngészése + Átjátszó által moderált + Nyilvános vagy privát + Átjátszó által futtatott, nyilvános vagy privát + Átjátszó-csoport + Privát + Titkosított csoportok + Átjátszó-tudatos + Új emodzsicsomag + Új cél + Adja hozzá a gondolatait… + Új kiemelés + Új cikk + Új lejátszási lista + Új zeneszám + Új termék + Új felkérések + Új bejegyzések + Új edzés + Mindig engedélyezze a következőnek: %1$s + Offline + Kapcsolódva + + %1$d átjátszó + %1$d átjátszó + + Összes kijelölése + Kijelölés megszüntetése + + %1$d aláírási kérés + %1$d aláírási kérés + + A kapcsolat elutasítva + Nem sikerült kapcsolódni: %1$s + Nem érvényes nostrconnect:// hivatkozás + Ez a hivatkozás nem tartalmaz átjátszót a kapcsolódáshoz + + %1$d kapcsolódó alkalmazás + %1$d kapcsolódó alkalmazás + + Kapcsolódva: %1$s. Az Amethyst mostantól a háttérben ír alá a számára. + Az alkalmazás kapcsolódott. Az Amethyst mostantól a háttérben ír alá a számára. + Bunker címe másolva + Az Amethyst nem tudta visszafejteni ezt az üzenetet. Lehet, hogy nem ennek a fióknak címezték. + Teljes képernyős figyelmeztetések, amelyek arra kérik Önt, hogy hagyjon jóvá egy alkalmazást, amely az Amethysten keresztül szeretne aláírni, titkosítani vagy visszafejteni az Ön kulcsával. + Aláírási kérések + Egy alkalmazás kapcsolódni szeretne + Jóváhagyja az aláírási kérést? + Koppintson az áttekintéshez + Ez egy csak olvasható fiók, és nem tud aláírni. + Újrakapcsolódás az átjátszókhoz… + Új bunker cím generálva + + Figyelés %1$d átjátszón + Figyelés %1$d átjátszón, mindegyikhez kapcsolódva + + Távoli aláíró alkalmazás + Távoli aláíró + + %1$d összetevő egybecsomagolva + %1$d asset egybecsomagolva + + Nem található Blossom-alkalmazás. Telepítsen egy helyi Blossom-alkalmazást a fájl megtekintéséhez + Nem lehet megnyitni a Blossom-hivatkozásokat + Ezen az eszközön nem található kameraalkalmazás + Nincs beállítva Lightning-cím + Nem található alkalmazás a fizetés kezeléséhez. Telepítsen egy kompatibilis pénztárcát. + Nem található alkalmazás a(z) %1$s fizetések kezeléséhez. Telepítsen egy kompatibilis pénztárcát. + A felhasználó számára nincsenek előre kiválasztott reakciótípusok. Hosszan nyomja meg a szív gombot a módosításhoz + Nincs reakcióbeállítás + Nem található pénztárca a Lighning-számla kifizetéséhez. A Zap-ek használatához telepítsen egy Lightning-pénztárcát + Nem található pénztárca a lighning-számla kifizetéséhez (Hiba: %1$s). A zapek használatához telepítsen egy lightning-pénztárcát + Nincs beállítva zapösszeg. Koppintson hosszan a beállításhoz + Háttérben aktív fiókok + Főkapcsoló a valós idejű háttérértesítésekhez. Kapcsolja ki az akkumulátor kímélése érdekében – olyan, mint a repülőgép-üzemmód. Ha ki van kapcsolva, egyetlen fiók sem marad kapcsolatban a háttérben, és kikapcsolva is marad (újraindítások után is), amíg Ön vissza nem kapcsolja. + Értesítési háttérszolgáltatás + Értesítések + Kategóriák + Kézbesítés + Alkalmazáson belüli megjelenítés + Átjátszó blokkolása + Értesítés küldése folyamatban. Koppintson a felhasználó értesítéseinek némításához + Némítva. Koppintson a felhasználó ismételt értesítéséhez + most + Nowhere alkotás + Nowhere drop + Nowhere esemény + Nowhere fórum + Nowhere adománygyűjtés + Nowhere webhely + Nowhere üzenet + Nowhere petíció + Nowhere bolt + nOldalak + Meztelenség + Az eseményhivatkozás nem hozható létre + Nincs megadva a címzett nyilvános kulcsa a bejegyzésen + A nutzappok nyilvánosak, és felfednék ezt a privát bejegyzést. Használjon helyette Lightning zappet. + Nem sikerült a nutzap + + %1$s sat küldése, %2$d felé osztva + %1$s sat küldése, %2$d felé osztva + + A Bitcoin lánc háttérprogram nincs beállítva + Nem sikerült közvetíteni a tranzakciót + Nem sikerült összeállítani a tranzakciót + Nem sikerült betölteni a Bitcoin egyenleget + Kifizetés elküldve, de a zapnyugtát nem sikerült közzétenni + + Fizetés elküldve (%1$d/%2$d igazolás közzétéve), de a következő igazolást nem sikerült közzétenni + Fizetés elküldve (%1$d/%2$dnyugta közzétéve), de a következő nyugtát nem sikerült közzétenni + + Egy címzett részesedése a dust alatt van + Nem sikerült aláírni a tranzakciót + ~10 p + ~30 p + ~1 ó + Gyors + Normál + Lassú + %1$s · %2$s sat/vB · %3$s + + Felosztás %1$d címzett között + Felosztás %1$d címzett között + + + %1$d címzett kihagyása, akik csak Lightning-címmel rendelkeznek - a láncon belüli fizetéshez egy Nostr publikus kulcsra van szükség a cím származtatásához. + %1$d címzett kihagyása, akik csak Lightning-címmel rendelkeznek - a láncon belüli fizetéshez egy Nostr publikus kulcsra van szükség a cím származtatásához. + + + Ennek a bejegyzésnek a(z) %1$d-felé osztott zapjének használata + Ennek a bejegyzésnek a(z) %1$d-felé osztott zap-jének használata + + közvetítés + tranzakció összeállítása + egyenleg betöltése + igazolás közzététele + aláírás + Az ilyen típusú szavazásokon felhasználónként csak egy szavazat engedélyezett + A bejegyzésre adott összes reakció kibontása + Megnyitás + Orbot Socks-portja + Bitcoin felfedező (OTS) + Bizonyíték van arra, hogy ezt a bejegyzést valamikor %1$s előtt írták alá. A bizonyítékot ezen a napon és időpontban bélyegezték a Bitcoin blokkláncába. + A bejegyzéshez tartozó időbélyeg-igazoláskérése megtörtént, és arra vár, hogy rögzítsék a Bitcoin blokkláncban. Ez általában néhány órán belül befejeződik. + Időbélyeg-igazolás + Átjátszók a kimenő üzenetkhez + Jelszó megadása kötelező + Szüneteltetés + Fizetés + Üzenet tőle: %1$s + Fizetési célok + Adjon meg fizetési címeket a különböző hálózatokhoz (például: bitcoin, lightning, ethereum). + Fizetés ezzel: %1$s, az összeget az alkalmazásban adhatja meg + A PDF-fájl a Letöltések/Amethyst mappába lett mentve + A követési listák metaadatai a Nostr-on bárki számára láthatók. Csak a privát tagok adatai vannak titkosítva. + Követési lista metaadatai + Képek + Kitűzés felülre + Rögzítés a profilhoz + Lejátszás + + %1$d. fejezet + %1$d. fejezet + + Borítókép hozzáadása + A részhez megjelenített négyzet alakú kép + Rész szerkesztése + Saját hangműsor + Hangfájl hozzáadása + MP3, M4A, vagy egyéb hangfájl + Részek webcímei + + %1$d rész + %1$d rész + + Átírási webcím + Videó webcíme + Új rész + Új előzetes + Közzététel… + Szerző + Kategóriák + Technológia, hírek + Szerzői jogok + Borítókép hozzáadása + Négyszögletes grafika a műsorhoz + Kapcsolattartói e-mail-cím + Támogatási hivatkozások + https://… + Nyelv + Angol + Cím megjelenítése + Saját hangműsor + Weboldal + + %1$d előzetes + %1$d előzetes + + Előzetes klip hozzáadása + Rövid hang vagy -videó előnézete + Értéket az értékért hiba + Párosítson egy Nostr Wallet Connect pénztárcát a keysend (csomópont) címzetteknek való küldéshez. + Ez a hangműsor nem rendelkezik fizethető kedvezményezettel. + Párosítson egy Nostr Wallet Connect vagy debit pénztárcát a satok közvetítéséhez hallgatás közben. + Ennek a felhasználónak nincs lightning-címe + A szavazások szerzői nem szavazhatnak a saját szavazásaikon. + (0–100)% + A szavazásra már nem lehet új szavazato(ka)t leadni + Több lehetőség + %1$s. válaszlehetőség + + %1$d szavazat a szavazás közzététele előtti dátummal rendelkezik, így ki lett zárva. + %1$d szavazat a szavazás közzététele előtti dátummal rendelkezik, így ki lettek zárva. + + + %1$d szavazó rejtve van a némítási listán. + %1$d szavazó rejtve van a némítási listán. + + + %1$d érvénytelen válaszlehetőséget választott, így ki lett zárva. + %1$d érvénytelen válaszlehetőséget választott, így ki lett zárva. + + + %1$d szavazat a szavazás lezárása után érkezett, így ki lett zárva. + %1$d szavazat a szavazás lezárása után érkezett, így ki lettek zárva. + + + %1$d szavazó + %1$d szavazó + + %1$d válasz betöltve az %2$d közül, %3$d átjátszóról. + %1$d válasz betöltve a körülbelül %2$d közül, %3$d átjátszóról. + + · %1$d kiválasztva + · %1$d kiválasztva + + + %1$d szavazó + %1$d szavazó + + Egyetlen lehetőség + Nem lehet szavazni + Szavazások + Közzététel + + Ez a bejegyzés több mint %1$d kulcsszót tartalmaz + Ez a bejegyzés több mint %1$d kulcsszót tartalmaz + + Megjegyzések + Válaszok cikkekre, fájlokra és egyéb tartalmakra + Privát üzenet burkolók + Lehetővé teszi a kéretlen tartalmak szűrését a beérkező közvetlen üzenetekben az átjátszók számára; csak a külső réteget bányássza, az üzenetet soha + Hosszú formátum és kiemelések + Cikkek és kiemelések; ritka, a költség elhanyagolható + Egyéb nyilvános tartalom + Szavazások, élő állapotok, apróhirdetések és minden egyéb nyilvános dolog + Nyilvános és élő csevegés + A bányászati késedelmek rontják a beszélgetés menetét + Reakciók + A legnagyobb mennyiségű típus; minden kedvelés bányászata meríti az akkumulátort + Jelentések + Az átjátszók a költségük alapján mérlegelik a jelentéseket + Újraközzétevések + Nagyszámú aktív felhasználónál + Rövid jegyzetek és válaszok + Az elsődleges nyilvános kéretlen tartalmi felület + Hangüzenetek + Nyilvános, hangalapú bejegyzések és válaszok + + %1$d nap + %1$d nap + + + %1$d óra + %1$d óra + + <1 mp + + %1$d perc + %1$d perc + + + %1$d mp + %1$d mp + + A szerző számítási teljesítményt áldozott arra, hogy ezt a bejegyzést %1$s nehézségűre bányássza — ez egy munkabizonyítási bélyeg, amely költségessé teszi a kéretlen tartalmak küldését. + Csevegési üzenet + Jelentés + + %1$s • bányászat %2$d biten + %1$s • bányászat %2$d biten + + + „Munkabizonyítás” bányászata… (%1$d bejegyzés a sorban) + Proof of work bányászata… (%1$d bejegyzés a sorban) + + „Munkabizonyítás” bányászata + Mégse + Azokat a bejegyzéseket jeleníti meg, amelyek még mindig a NIP-13 szerinti munkabizonyítást végzik, így azok befejeződhetnek, miután kilép az alkalmazásból. + „Munkabizonyítás” bányászata + Küldés most + + %1$d bit + %1$d bit + + + Alapértelmezés (%1$d bit) + Alapértelmezés (%1$d bit) + + A(z) %1$s bányászata befejeződött, de nem sikerült közzétenni: %2$s + A(z) %1$s bányászata befejeződött, de nem sikerült közzétenni. A következő indításkor az alkalmazás újra megpróbálja. + + %1$s • várakozás a bányászatra %2$d biten + %1$s • várakozás a bányászatra %2$d biten + + Munkabizonyítás + ≈ %1$s van hátra + mostmár bármelyik pillanatban + Kártyakép előnézete a következőhöz: %1$s + Adatvédelmi beállítások + Adatvédelmi irányelvek + <Nem sikerült a privát üzenetet visszafejteni>\n\nÖnt megemlítették egy privát/titkosított beszélgetésben %1$s és %2$s között. + Bejövő közvetlen üzenet-átjátszók + Adjon hozzá 1–3 átjátszót, hogy privát postafiókként szolgáljon. Mások ezeket az átjátszókat használják, hogy Önnek privát üzeneteket küldjenek. A bejövő privát üzenetek átjátszóinak bárkitől el kell fogadniuk minden üzenetet, de azok letöltését csak Ön engedélyezheti. Jó választási lehetőségek:\n - inbox.nostr.wine (fizetős)\n - auth.nostr1.com (ingyenes)\n - you.nostr1.com (személyes átjátszók - fizetős) + A felhasználó ezeken az átjátszókon keresztül fogadja a közvetlen üzeneteket + Privát üzenet + Priváttá tétel: a jegyzet becsomagolása csak az értesített felhasználóknak + A privát bejegyzésekre adott válaszok mindig privátak maradnak + Látható a számára: + Privát saját átjátszók + Adjon hozzá 1–3 átjátszót, hogy olyan eseményeket tároljanak, amelyeket senki más nem láthat, például a piszkozatait és/vagy az alkalmazásbeállításait. Ideális esetben ezek az átjátszók vagy helyi szintűek, vagy hitelesítést igényelnek az egyes felhasználói tartalmak letöltése előtt. + Ez a jegyzet privát módon lett kézbesítve, és nincs aláírva. Csak a megjelölt résztvevők láthatják, és senki sem tudja bizonyítani kívülállóknak, hogy ki írta. + Privát jegyzet + Trágárság / Gyűlöletbeszéd + Profil + Profilkitűzők + Ajánlott alkalmazások + Profilkitűzők + Követők hírfolyama + Bitcoin (láncon belüli) pénztárca + Beérkezett zapek hírfolyama + Profil felhasználói felülete + profilok + Szerkesztési javaslat + Proxyzott átjátszók + Összesítő átjátszók, amelyeket az alkalmazásnak használnia kell a hírfolyamok letöltéséhez, például filter.nostr.wine. Ez helyettesíti a kimeneti modellt, és az alkalmazás csak a listákban szereplő átjátszókhoz fog csatlakozni. + Nyilvános csevegés + A nyilvános csevegések mindenki számára láthatóak a Nostr-on, és bárki + részt vehet bennük. Ezek kiválóan alkalmasak bizonyos témák köré szerveződő nyílt közösségek számára. + A moderálás az átjátszókon lévő hozzászólások törlésével szabályozható + Adjon hozzá 1–3 olyan átjátszót, amelyek kiszolgálják ezt a csoportot. + A Nostr-kliensek ezt a beállítást használják arra, hogy tudják, honnan töltsék le az üzeneteket, és hová küldjék az üzeneteket. + Átjátszók + Nyilvános csevegés metaadatai + Nyilvános csevegések + Nyilvános kimenő és saját átjátszók + Ez az átjátszótípus tárolja az összes tartalmat. Az Amethyst ide küldi az Ön bejegyzéseit, és mások ezeket az átjátszókat fogják használni, hogy megtalálják az Ön tartalmát. Adjon hozzá 1–3 átjátszót. Ezek lehetnek személyes-, fizetett- vagy nyilvános átjátszók. + A felhasználó a bejegyzéseit ezeken az átjátszókon teszi közzé + Nyílvános üzenet + Nyilvános bejövő átjátszók + Ez az átjátszótípus fogadja az összes választ, hozzászólást, kedvelést és zapet az Ön bejegyzéseire. Ezek lehetnek fizetős vagy ingyenes átjátszók. Az átjátszó üzemeltetője által beállított korlátok korlátozhatják a jó és a rossz értesítések számát. Ha például a hozzászólásokban kéretlen üzenet-támadások érik, a fizetős átjátszók kiszűrhetik a kéretlen tartalmakat. Vegyen fel 1–3 átjátszót. + A felhasználó ezeken az átjátszókon keresztül fogadja az értesítéseket + Bejegyzés-azonosító + Törlés + Szál némítása + Megosztás + Böngésző-hivatkozás megosztása + Szál némításának megszüntetése + Értékelés: %1$s / 5 + Reakció + Reakciók + Reakciósor + Olvasás az átjátszóról + Az átjátszótól kapott bájt-mennyiség, beleértve a szűrőket és eseményeket is + Csak olvasható felhasználó + Hangüzenet rögzítéséhez kattintson és tartsa lenyomva a gombot + + Visszatart továbbá %1$d másik dolgot is. + Visszatart továbbá %1$d másik dolgot is. + + Mindig, összes átjátszó + Az Amethyst %1$s felhasználóként jelentkezik be minden olyan átjátszóra, amely ezt kéri, és a jövőben nem fogja többször megkérdezni. A letiltott átjátszók, valamint azok, amelyeknél beállította, hogy soha ne jelentkezzen be, változatlanok maradnak. Ezt az „Átjátszó bejelentkezés” menüpontban módosíthatja. + Bejelentkezik az összes átjátszóba? + Mindig jelentkezzen be + \u2026olyan valakinek írok, akit követek + \u2026bárki másnak írok + \u2026ez a saját átjátszóm vagy egy szoba, amihez csatlakoztam vagy követek + \u2026olyan valakit olvasok, akit követek + Mindig, Ön által beállítva + Soha, Ön által beállítva + + %1$s és %2$d további + %1$s és %2$d további + + Soha + Soha, összes átjátszó + Az Amethyst többé nem közli az átjátszókkal, hogy Ön %1$s, és a jövőben nem fogja megkérdezni többé. Bizonyos átjátszók meg fogják tagadni a kiszolgálást: előfordulhat, hogy az üzenetek, válaszok és értesítések nem mennek át. Azok az átjátszók, amelyeknél beállította, hogy mindig jelentkezzen be, változatlanok maradnak. Ezt az „Átjátszó bejelentkezés” menüpontban módosíthatja. + Soha nem jelentkezik be egyetlen átjátszóba sem? + Hitelesítés kérése mindig + Minden olyan átjátszó esetében alá kell írni az azonosítási kihívásokat, amely ezt kéri + Egyéni + Válassza ki pontosan, hogy mely átjátszókba jelentkezik be. A lent nem engedélyezett dolgokról kérdést fog kapni. + Soha ne végezzen hitelesítést + Az összes átjátszó hitelesítési kérésének figyelmen kívül hagyása + saját beérkező üzenetek + saját tulajdonú átjátszó + saját válaszok + ez az átjátszó + egy szoba, ahová Ön bejegyzést küldött + emberek, akiket olvasok + egy szoba, amit olvasok + saját üzenetek + egy beszélgetés + hitelesítés, átjátszó, aláírás, ellenőrzés, nip-42, azonosság + Átjátszó-hitelesítés + Átjátszócsevegés + Az átjátszócsevegések olyan csevegőcsoportok, amelyeket az otthoni átjátszó irányít. + Ezek mindenki számára láthatóak a Nostr-on, és bárki részt vehet rajtuk. + Remekül alkalmasak nyitott közösségek kialakítására bizonyos témák körül. Néhány ilyen csoport + rövid élettartamú, ezért a csevegési üzenetek idővel eltűnnek + Átjátszócsevegések + Saját profil, -beállítások és -piszkozatok a gazda-átjátszókon. + Azok az átjátszók, amelyekre az egyes közösségek közzéteszik a terveiket. + A közvetlen üzenetek beérkező átjátszói, ahol a becsomagolt üzenetek kézbesítésre kerülnek. + Csoportüzenetek és kulcscsomagok az egyes csoportok átjátszóin. + Figyeli a jelenleg megjelenített eseményeket új válaszok, reakciók, továbbosztások, zap-ek és jelentések szempontjából, így a számlálók frissülnek olvasás közben. + Csevegőszobák, amelyek nem őriznek előzményeket – az üzenetek csak a kapcsolódás ideje alatt léteznek, ezért ezek folyamatosan előfizetve maradnak, hogy bármit is fogadni tudjanak. + Követési listák, amelyek az Ön hírfolyama és a bizalmi hálójának felépítéséhez használatosak. + Helyalapú szobák azokhoz a területekhez, amelyeket követ, lekérdezve az azokat hordozó átjátszóktól. + Bejegyzések azoktól, akiket követ, beolvasva azokból az átjátszókból, ahová közzéteszik a bejegyzéseiket. + Csevegés és zap-célok, amelyek a megnyitott vagy követett élő közvetítésekhez kapcsolódnak. + A szoba átjátszói, amíg az meg van nyitva. + Átjátszók között keres, hogy mely pénzverdék léteznek és melyeket ajánlják az emberek. + Jelentések, amelyeket a követettjei írtak a képernyőn jelenleg látható profilokról, lekérdezve minden egyes átjátszótól, ahová ezek a követettek teszik közé a bejegyzéseiket. + A beérkező üzenetek átjátszói, plusz egy kis, rotáló minta azokból az átjátszókból, ahová a követettjei posztolnak, arra az esetre, ha egy említés máshová került volna kézbesítésre. + Figyeli a nutzap-átjátszókat, valamint a beérkező- és közvetlen üzenet-átjátszókat, így egy fizetés sem csúszhat el. + Értesítések az összekapcsolt pénztárcáról. + A képernyőn jelenleg látható emberek profiljai. + Az egyes megnyitott vagy csatlakozott csevegések gazda-átjátszója. + Lekéri azokat az eseményeket azonosító alapján, amelyekre a képernyőn látható valami hivatkozik, de még nem rendelkezel velük – például egy idézet, egy válasz szülője vagy egy szál gyökere. + A NIP-29 csoportok, amelyekhez csatlakozott. Minden csoport egy gazda-átjátszón létezik, így az alkalmazás minden olyan átjátszóhoz kapcsolódik, amely egy csoportját üzemelteti. + Megkeresi, hogy az egyes személyek mely átjátszókon teszik közzé a bejegyzéseiket, így azok a megfelelő helyről tölthetők le. + Saját pénztárca-események, visszaolvasva azokból az átjátszókból, ahová közzétette őket. + Csoport létrehozása + Csoport törlése + Törli a(z) „%1$s” csoportot? Ez mindenki számára eltávolítja a csoportot és annak előzményeit, ez a művelet nem vonható vissza. + Csoport szerkesztése + Privát + Csak a tagok olvashatják az üzeneteket. + + %1$d tag + %1$d tag + + + %1$d csoport + %1$d csoport + + Átjátszócsoportok + Cím + Átjátszócsoportok + Események + IP-címek + Típusok + Felhasználók + Beállítások + Kiegészítők + Böngészés + Közösségi csevegések + Közösségi hírfolyamok + Üzenetek + Események figyelése + Ideiglenes csevegések + Helyalapú csevegések + Kezdőoldal hírfolyama + + %1$s \u00b7 %2$d átjátszó + %1$s \u00b7 %2$d átjátszó + + Élő közvetítés csevegés + Média + Pénzverde-jegyzék + Beérkező nutzapek + Pénztárca-kapcsolat + Profilok figyelése + Egyéb + Hiányzó események keresése + Átjátszó csoportok + Átjátszó információ + Átjátszólista-kereső + Jelentések követettektől + Keresés + Kulcsszavak + Beszélgetés + Témák + Fiók adatai + Pénztárca + Átjátszóbeállítások + kimenő átjátszók listája + Átjátszók + Feltöltés és zap küldése + Zap küldése + %1$s sat feltöltése ide: %2$s és %3$s zapelése %4$s satoshival · díj ≈ %5$s satoshi + Eltávolítás + Eltávolítás az Üzenetekből + Törlés a nyilvános könyvjelzőkből + Válasz írása… + Értesítés: + + Törlés kérése + Törlési kérés + Nem sikerült visszaállítani a Marmot-állapotot: %1$s + Marmot-állapot visszaállítása + Marmot-állapot visszaállítva. + Aktivitás (7 nap) + Az Amethyst a közelmúltban a vártnál többet fogyasztott: %1$s. Szeretne használati jelentést küldeni a fejlesztőknek egy titkosított közvetlen üzenetben? A küldés előtt megtekintheti a teljes jelentést. + Időközben felhasznált akkumulátor (teljes eszköz) + Fenntartott átjátszó-kapcsolatok bezárt állapotban + Háttérben futó értesítési szolgáltatás + + %1$d indítás + %1$d indítás + + Futási idő + Alkalmazásfolyamat indulásai + Felhasznált akkumulátor (alkalmazásban / háttérben) + Adatforgalom funkciónként (7 nap) + Mobiladat-forgalom funkciónként (7 nap) + Hívásokban töltött idő + Felhasznált processzoridő + Visszafejtett üzenetek + Aktív átviteli idő + Webes kérések + Mobiladat-forgalom (MB) + Wi-Fi-adatforgalom (MB) + Helyadat-figyelés + Média-lejátszási idő + Címezhető események a memóriában + Csevegőszoba-listák a memóriában + Eszköz memóriájának osztálya + Alkalmazásmemória (heap) + Képgyorsítótár (RAM) + Képgyorsítótár (lemez) + Natív memória + Jegyzetek a memóriában + Jelenlegi memóriahasználat + Profilok a memóriában + Hangszobákban töltött idő + Munkabizonyítás bányászata + Rádióébresztés a letöltésekhez (becsült) + %1$s mobiladat-forgalom a háttérben egyetlen nap alatt + + az alkalmazásfolyamat %1$d alkalommal indult újra egyetlen nap alatt + az alkalmazásfolyamat %1$d alkalommal indult újra egyetlen nap alatt + + %1$s átjátszó-kapcsolattal a háttérben futva, mobiladat-forgalmon egyetlen nap alatt + + az alkalmazás %1$d alkalommal kapcsolódott újra az átjátszókhoz egyetlen nap alatt + az alkalmazás %1$d alkalommal kapcsolódott újra az átjátszókhoz egyetlen nap alatt + + az eszköz processzorát-t %1$s ideig tartotta ébren az értesítések feldolgozása egyetlen nap alatt + Átjátszó-újrakapcsolódások (sikertelen) + Átjátszó-kapcsolódási idő + \u2026 a háttérben, mobiladat-forgalmon + Távoli aláírások + Képernyőnkénti idő (7 nap) + akkumulátor adathasználati energiafogyasztása, hálózatdiagnosztikai napló + Megosztás a fejlesztőkkel + Megosztás + Képek + Pénztárca és zapek + Címellenőrzés + Egyéb + Hivatkozás-előnézetek + Push-regisztráció + Átjátszó-szinkronizálás + Feltöltések + Videó és hang + Átl. átjátszó-kapcsolatok + Akkumulátorhasználat / óra az alkalmazásban + Mobiladat-forgalom ma + Adatforgalom / óra az alkalmazásban + Alkalmazásban töltött idő ma + Átjátszóidő ma + Wi-Fi-adatforgalom ma + Alkalmazás erőforrás-használata + Tor üzemidő + Beépített Tor + Napi adatforgalom-mennyiség + Ellenőrzött aláírások + Értesítések feldolgozása (processzor ébren tartása) + Lefutott háttérfeladatok + Újrapróbálkozás + Naptárlisták + Naptárak + Sakk + Felfedezés + Főoldal + Követettek importálása + Média + Üzenetek + Lejátszási listák + Zene + Értesítések + Részek + Hangműsor + Bejegyzés ütemezése + Ütemezés visszavonása + Az ütemezett bejegyzések csak akkor jelennek meg, ha újra megnyitja az alkalmazást. Más fiókok ütemezett bejegyzései nem jelennek meg, amíg ez a fiók aktív. A megbízható háttérbeli ütemezés érdekében engedélyezze a „Folyamatos értesítési szolgáltatás” beállítását a Beállítások → Felhasználói felület beállítása menüpontban. + Az ütemezett bejegyzések csak akkor jelennek meg, ha legközelebb újra megnyitja az alkalmazást. A megbízható háttérbeli ütemezés érdekében engedélyezze a „Folyamatos értesítési szolgáltatás” beállítását a Beállítások → Felhasználói felület beállítása menüpontban. + Ütemezett bejegyzések + Küldés most + %1$s → %2$s + %1$s · %2$s ezelőtt + Holnap + Hiba: %1$s + Bejegyzés azonosítója másolva + + Ön kijelentkezett · %1$d ütemezett bejegyzés törölve + Ön kijelentkezett · %1$d ütemezett bejegyzés törölve + + Kijelentkezve + + Önnek %1$d ütemezett bejegyzése van, amely még nem lett közzétéve. A kijelentkezéssel véglegesen törli azt. + Önnek %1$d ütemezett bejegyzése van, amelyek még nem lettek közzétéve. A kijelentkezéssel véglegesen törli azokat. + + Nem sikerült közzétenni egy ütemezett bejegyzést + Ütemezett bejegyzés közzétéve + + %1$d átjátszóhoz + %1$d átjátszóhoz + + Megszakítva + Sikertelen + Ütemezve + Küldés… + Elküldve + + · %1$d bejegyzés 1 órán belül + · %1$d bejegyzés 1 órán belül + + + %1$d sorbaállítva + %1$d sorbaállítva + + Jó választási lehetőségek:\n%1$s + Keresési átjátszók + Keresési átjátszók + A tartalom vagy felhasználók keresésekor használandó átjátszók listája. A címkézés és a keresés nem fog működni, ha nem áll rendelkezésre semmilyen beállítás. Győződjön meg arról, hogy alkalmazzák a NIP-50-et. + kereshető események + A titkos kulcs (nsec) a vágólapra másolva + Ön még nem tiltott le egyetlen felhasználót sem. + Biztonsági szűrők + Nincsenek rejtett szavak. Adjon hozzá egy szót alább, hogy elrejtse az azt tartalmazó bejegyzéseket. + Letiltott tartalom + Beállítások szűrése + Ebben a munkamenetben egyetlen fiókot sem jelölt meg kéretlen tartalomként. + Küldés + Minden fogadott profil (0 típus) esemény elküldése a helyi átjátszónak + Profilok továbbítása a helyi átjátszónak + A címzett számára elküldhető összeg: %1$s satoshi + Nem sikerült a fizetés + Tranzakció: %1$s + Kifizetés ezzel: %1$s… + A kiszolgáló a feltöltés után nem szolgáltatott webcímet + Beállítások + Nincsenek némított szálak + Némított szálak + Megjelenés + Általános + Tartalom a hírfolyamban + Látható lapok + Média és adat + Szakaszok és hírfolyamok + Emlékeztetők + Kapcsolat + Útválasztás Tor-on keresztül + Megosztás képként + Kép webcímének megosztása + HLS-feltöltés + Megosztás vagy mentés + Rövidek + Jelszóval védett privát kulcs megjelenítése QR-kódként + Közvetlen és csoportos üzenetek megjelenítése az Értesítések lapon. Kapcsolja ki, ha az üzeneteket csak az Üzenetek lapon szeretné látni. + Üzenetek megjelenítése + Privát kulcs megjelenítése QR-kódként + Aláírási kérés elutasítva + Győződjön meg arról, hogy ezt a tranzakciót az aláíró-alkalmazás hitelesítette-e + A külső aláíró a kéréstől eltérő, szokatlan választ küldött. Lehet, hogy hiba lépett fel az Amethystben vagy az aláíró alkalmazásban. + Nem található az aláíró + Az aláíró alkalmazás el lett távolítva? Ellenőrizze, hogy az aláíró telepítve van-e és rendelkezik-e ezzel a fiókkal. Jelentkezzen ki és jelentkezzen be újra, ha az aláíró alkalmazás megváltozott. + Visszatekerés %1$d másodperccel + Előretekerés %1$d másodperccel + Alkalmazásáruház + Kéretlen tartalom + Az erről az átjátszóról érkező kéretlen tartalmú események száma + Spamelők + Két értesítési fül megjelenítése — Követettek (akiket Ön követ) és Mindenki. Az olvasatlan jelző csak a követett személyek aktivitása esetén világít. + Értesítések szétválasztása követések szerint + Kísérletek a támogatott médiafájlokból a privát metaadatok eltávolítására a feltöltés előtt + Privát metaadatok törlése + Beolvassa a befejezett edzéseit a Health Connectből (Samsung Health, Google Fit, Fitbit, Garmin…), és javasolja azok megosztását egy bejegyzésben. Engedélyt csak az összekapcsoláskor kér. + Megosztandó edzések javaslása + Rendszer + Téma + Sötét, világos vagy a rendszer által használt téma + Ez az üzenet %1$s után eltűnik + + +%1$d\nválasz + +%1$d\nválasz + + Ma + Egyéni + Készítsen sajátot + Alapértelmezett + IP-cím elrejtése a véletlenszerű átjátszók elől + Orbot + Teljes adatvédelem + IP-cím elrejtése az összes kapcsolatnál + Beépített + Kikapcsolva + Tor / Adatvédelmi előbeállítások + Az alábbi beállítások gyors módosítása + Összes kivéve a médiát + IP-cím elrejtése mindentől, kivéve a képeknél és videóknál + Közvetlen üzenetátjátszók + Tor kényszerítése a privát üzenetek küldéséhez és fogadásához + Képek + Tor kényszerítése képek betöltésekor + Médiafeltöltések + Tor kényszerítése tartalomfeltöltéskor + Pénzműveletek + Tor kényszerítése Zap küldésekor, lightning és cashu tranzakciókhoz + Megbízhatatlan átjátszók + Tor kényszerítése a kimenő és bejövő üzenetátjátszókhoz + Nostr-cím hitelesítése + Tor kényszerítése a NIP-05 címek hitelesítésekor + Onion-webcím / Átjátszók + Használja a Tor-t bármely .onion webcímhez + Profilképek + Tor kényszerítése profilképek betöltésekor + Megbízható átjátszók + Tor kényszerítése a listákon szereplő összes átjátszóra + Webcím-előnézetek + Tor kényszerítése webcím előnézetekor + Videók + Tor kényszerítése videók betöltésekor + Alap + Tor használata amikor a kiszolgáló megköveteli + Nem sikerült megnyitni a fájlt + A fájl megnyitásához és letöltéséhez nincsenek torrent-alkalmazások telepítve. + Az esemény nem tartalmaz elegendő információt a mágneshivatkozás létrehozásához + Nyomon követhető közvetítők használata az események küldesékor. Közvetítés közben megjeleníti a jelenlegi előrehaladást és az egyes átjátszók állapotát. + Nyomon követhető közvetítések + Fordítás erre: + Válassza ki a nyelvet, amelyre a tartalmat le szeretné fordítani. + Nyelvi fordítások + Megbízható átjátszók + Az átjátszóknak, amelyekben megbízik, nincs szükségük Tor kapcsolatra a következőhöz: + Teljes + Teljes + Teljesítmény + Gyors + Egyszerűsített + Egyszerű + Felhasználói felület beállításai + Felhasználói felület módja + Bejegyzés stílusának kiválasztása + Nem sikerült a zapösszeg elküldése előtt lightning-számlát készíteni. A címzett lightning-pénztárcája a következő hibát küldte: %1$s + Nem lehetett megosztani a képet, próbálja meg újra később… + Nem sikerült megosztani a videót, próbálja meg újra később… + Jogosulatlan visszafejtés + Az aláíró nem engedélyezte a művelet végrehajtásához szükséges visszafejtést. Aktiválja az NIP-44 visszafejtést az aláíró alkalmazásban, és próbálja meg újra + Követés megszüntetése + Ezen hely követésének megszüntetése + Értesítések némításának megszüntetése + Kitűzés megszüntetése + Rögzítés megszüntetése a profiltól + Feltöltés megszakítva + Feltöltési hiba + Nem sikerült feltölteni a hangüzenetet: %1$s + Nem sikerült feltölteni a hangüzenetet + A NIP-95 még nem támogatja a hangüzeneteket + Üzemidő: %1$d%% + Aktív Tor-motor + Használja a beépített verziót vagy az Orbotot + A felhasználó nem rendelkezik a satoshik fogadásához beállított lightning-címmel + A(z) %1$s nevű felhasználó nem rendelkezik a satoshik fogadására beállított lightning-címmel + Törlési előzmények + Törlési kérés elküldve + Jobb minőség kisebb fájlméret mellett, de nem minden eszköz támogatja a H.265 lejátszást. + H.265/HEVC-kodek használata + A videó letöltése megkezdődött… + Videólejátszó gombjai + Videó mentve a videógalériába + Hangos bejegyzés + Mély + Magas + Semleges + Semmi + Hangos válasz + Pénztárca + Cashu pénztárca (NIP-60) + Nem sikerült betölteni az egyenleget + Kapcsolódás pénztárcához + Az Amethyst nem tudta visszafejteni a pénztárca válaszát, lehet, hogy a pénztárca másik kulcsot használ + + A pénztárca nem válaszolt %1$d másodpercen belül. A fizetés lehet, hogy sikerült, de az is lehet, hogy nem, ellenőrizze a pénztárcát, mielőtt újrapróbálkozna. + A pénztárca nem válaszolt %1$d másodpercen belül. A fizetés lehet, hogy sikerült, de az is lehet, hogy nem, ellenőrizze a pénztárcát, mielőtt újrapróbálkozna. + + A Wallet Connect szolgáltatója a következő hibával tért vissza: %1$s + A Wallet Connect-szolgáltató olyan választ küldött, amelyet az Amethyst nem tudott értelmezni. + A pénztárca olyasmivel válaszolt, amit Amethyst nem ismer fel (%1$s) + Pénzverdék szerkesztése + Nem sikerült létrehozni a számlát + Az Ön pénztárcája nem állított ki egy számlát + Nem sikerült elérni a pénztárcát: %1$s + Időtúllépés tárcakéréskor + + Időtúllépés tárcakéréskor, %1$d válasz vissza lett utasítva, mert nem várt kulccsal lett aláírva. Előfordulhat, hogy az Ön által használt átjátszó nem megbízható. + Időtúllépés tárcakéréskor, %1$d válasz vissza lett utasítva, mert nem várt kulccsal lett aláírva. Előfordulhat, hogy a relé nem megbízható. + + Nem sikerült betölteni a tranzakciót + Nem sikerült betölteni további tranzakciókat + Figyelmeztető üzenetet jelenít meg, ha az Ön követői bejelentést tettek bejegyzésekről vagy profilokról + Figyelmeztetés a jelentésekre + Webes könyvjelző hozzáadása + Webes könyvjelző szerkesztése + Webes könyvjelzők + Mi jár a fejében? + + %1$d tevékenység + %1$d tevékenység + + Edzések + Üzenet írása… + Írás az átjátszóra + Az átjátszónak küldött bájt-mennyiség, beleértve a szűrőket és eseményeket is + Zap + Utánvétes fizetés + Amikor a szerző közzétesz egy fizetési módot, amelyet a telefonján lévő alkalmazás meg tud nyitni (Venmo, Monero, egy IBAN…), a zap-választó ezt felajánlhatja. A megérintésével megnyílik az adott alkalmazás, amely megkérdezi az összeget – semmi sem lesz közzétéve az átjátszókon, így a bejegyzés zap-számlálója nem változik. + Szerző fizetési módjainak felajánlása + Zapek + + Átnevezés + Mentés diff --git a/commonsUI/src/commonMain/composeResources/values-in-rID/strings.xml b/commonsUI/src/commonMain/composeResources/values-in-rID/strings.xml index 5c34995a23..e732c03398 100644 --- a/commonsUI/src/commonMain/composeResources/values-in-rID/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-in-rID/strings.xml @@ -1768,4 +1768,1120 @@ Beri tahu kepada pemilik untuk menambahnya URL dasar Explorer API Bayar Tagihan dari DVM Bayar %1$s sats ke DVM + Tentang & Hukum + Pengaturan Akun + Tambah + Tambah Server Blossom + Tambah Server NIP-96 + Saat diaktifkan, Amethyst menambahkan tag klien NIP-89 ke acara yang Anda publikasikan. + Tambahkan tag klien ke acara saya + Memberi peringatan konten sebelum menampilkan konten ini + Konten Sensitif + Tambahkan ke Markah Publik + Menggunakan model AI di perangkat untuk mengusulkan koreksi teks dan perubahan nada. + Usulkan perbaikan teks + Menjaga koneksi ke relay inbox Anda aktif untuk notifikasi real-time + + Terhubung ke %1$d relay inbox + + + Terhubung ke %1$d relay + + Menghubungkan ke relay inbox… + Notifikasi Amethyst Aktif + Notifikasi untuk panggilan suara dan video masuk + Panggilan masuk + %1$s menerima tantangan catur Anda + Memberi tahu Anda tentang peristiwa permainan catur + Catur + Pembaruan catur + %1$s bergerak — giliran Anda + Memberi tahu Anda ketika pesan pribadi tiba + Pesan Pribadi + Pesan baru + Tandai Sudah Dibaca + Memberi tahu Anda saat seseorang menyebut atau mengutip Anda dalam postingan + %1$s menyebut Anda + Sebutan + Sebutan baru + Memberi tahu Anda saat seseorang bereaksi pada postingan Anda + %1$s bereaksi pada postingan Anda + untuk %1$s + Reaksi + Reaksi baru + Memberi tahu Anda saat seseorang membalas postingan Anda + Balasan + Balasan baru + Balas + Notifikasi saat postingan terjadwal diterbitkan atau gagal diterbitkan. + Postingan terjadwal + Memberi Tahu anda saat seseorang memberi zap + untuk %1$s + Dari %1$s + Zap Diterima + Zap baru + Pengaturan Aplikasi + Atestasi + Permintaan Atestasi + Kemahiran Atestator + Rekomendasi Atestator + Visualisasi Audio + Menyimpan acara draf secara otomatis saat Anda mengetik atau meninggalkan composer dengan teks yang belum dikirim dan mengirimnya ke relay outbox privat Anda. + Buat draf secara otomatis + Pengguliran Mendalam + Sembunyikan Nav Bar saat menggulir + Pratinjau Gambar + Muat gambar dan GIF secara otomatis + Pemutaran Video + Putar video dan GIF secara otomatis + Foto Profil + Tampilkan Foto Profil + Pratinjau URL + Tampilkan Pratinjau URL + Putar Otomatis Video + Putar video secara otomatis saat terlihat di layar + Tidak dapat menghapus metadata dari AVIF: %1$s + Berikan Lencana + Kembali + Kunci Cadangan + Lencana + Autentikasi gagal + Gagal mengautentikasi biometrik pemilik ponsel ini + Gagal mengautentikasi biometrik pemilik ponsel ini. Error: %1$s + Blokir + Relay Diblokir + Amethyst tidak akan pernah terhubung ke relay ini + Pengguna yang diblokir + Daftar Bookmark Baru + Metadata Daftar Bookmark + Metadata daftar bookmark dapat dilihat oleh siapa saja di Nostr. Hanya anggota pribadi Anda yang dienkripsi. + Markah + Sebarkan + Bilah Navigasi Bawah + Relay Siaran + Relay yang berspesialisasi dalam mendorong catatan Anda ke semua relay lainnya, seperti sendit.nosflare.com. Amethyst akan menambahkan relay ini ke semua event baru yang Anda buat + Favorit + Memuat melalui web terbuka. Ketuk untuk menggunakan Tor. + Memuat melalui Tor. Ketuk untuk menggunakan web terbuka. + + %1$s, %2$d acara + + Unggahan gambar gagal + Gambar yang dipilih tidak dapat diunggah. Coba lagi atau tempel URL. + Bagikan acara kalender + Buka di peta + Buka tautan + Sedang berlangsung + %1$s · selesai %2$s + + Mulai dalam %1$d menit + + Pemberitahuan saat acara yang Anda hadiri akan segera dimulai. + Pengingat kalender + Acara kalender + Pemberitahuan akan muncul saat acara yang Anda hadiri akan segera dimulai. + Kirim pengingat + + %1$d mnt + + Pengingat kalender + Hari + Umpan + Bulan + Minggu + Terima + Kamera mati + Kamera aktif + Tutup telepon + Panggilan masuk + Panggilan video masuk… + Panggilan suara masuk… + Bisukan + Panggilan + Notifikasi panggilan berlangsung + Amethyst membutuhkan akses kamera dan mikrofon untuk memulai panggilan video. Mohon aktifkan keduanya di pengaturan aplikasi. + Amethyst membutuhkan akses mikrofon untuk memulai panggilan suara. Mohon aktifkan di pengaturan aplikasi. + Tolak + Pengaturan Panggilan + Pengeras suara + Aktifkan suara + Panggilan dengan %1$s + URL Callback tidak ditemukan dari respons %1$s + Batal + Token Cashu + Memeriksa mint… + Tidak dapat meredeem Cashu + Mint memberikan error: %1$s + Diterima + Terkirim + Mint yang cocok + + +%1$d lainnya + + Mint populer + + Direkomendasikan oleh %1$d orang lain + + Dipindahkan %1$s sat ke %2$s. + Tidak ada dompet Cashu yang kompatibel ditemukan di sistem + + %1$d tagihan tertunda + + Bayar %1$s sat + hingga %2$s sat biaya? + Publikasikan permintaan hapus untuk rekomendasi kind:38000 Anda atas %1$s. Relay yang menghormati NIP-09 akan menghapusnya. + Berhasil memulihkan %1$s sats dari %2$s bukti. + Cashu Diterima + %1$s sat telah dikirim ke dompetmu. (Biaya: %2$s sat) + + Dana disimpan di %1$d mint yang tidak Anda gunakan + + Menunggu invoice dibayar… + + %1$d mint + + Hentikan penayangan + Tampilkan ke perangkat + Standar Keamanan Anak + Aksesori + Seni + Buku + Pakaian + Kolektibel + Kerajinan + Elektronik + Kebugaran + Makanan + Furnitur + Rumah + Lain-lain + Kantor + Lainnya + Hewan Peliharaan + Olahraga + Harian + Bulanan + Sekali pakai + Mingguan + Bayar %1$s melalui %2$s? + Bayar invoice ini melalui %1$s? + Layanan debit tidak menyelesaikan pembayaran. + Masukkan jumlah yang valid untuk penawaran ini. + Meminta invoice… + Tutup semua reaksi pada postingan ini + Ditutup + Komunitas + Draf berukuran %1$d byte; komunitas ini membatasi kind ini sebesar %2$d byte. + Draf berukuran %1$d byte; komunitas ini membatasi acara sebesar %2$d byte. + Anda telah memposting %1$d acara jenis ini hari ini (batas %2$d). + Pengaturan Compose + Port default adalah 9050 + Relay Terhubung + Daftar relay yang sedang digunakan + Persentase koneksi yang berhasil ke relay + Selalu + Jangan pernah + WiFi Tanpa Kuota + Tambahkan Dokumen + Tambahkan Gambar + Tambah Media + Tambahkan Video + Sembunyikan + Peringatkan + Tampilkan + Percakapan + Mengonversi GIF animasi ke video MP4 untuk ukuran file lebih kecil dan kompatibilitas pemutaran yang lebih baik. + Konversi GIF ke MP4 + ID note (@note1) telah disalin ke papan klip + Teks disalin ke papan klip + Disalin ke clipboard + @npub pemilik telah disalin ke papan klip + Salin kunci rahasia saya + Salin ke clipboard + Tidak dapat merakit LNUrl dari Alamat Lightning "%1$s". Periksa pengaturan pengguna + Tidak dapat memeriksa file yang diunduh setelah diunggah: %1$s + Tidak dapat mengunduh media yang diunggah dari server + Tidak dapat mengambil invoice dari %1$s: %2$s + Tidak dapat membuka file terkompresi + Dompet tidak ditemukan + Amethyst tidak dapat menemukan aplikasi dompet apa pun yang mendukung Nostr Wallet Connect (NWC). +\n\nYang dapat Anda lakukan: +\n\t1. Verifikasi Dukungan NWC: Pastikan aplikasi dompet pilihan Anda kompatibel dengan Nostr Wallet Connect. +\n\t2. Buat Koneksi: Buka aplikasi dompet Anda dan buat koneksi NWC baru. +\n\t3. Hubungkan ke Amethyst: Dompet Anda biasanya akan memberikan tiga pilihan: +\n\t\t3.1 Tautan Otomatis: Tombol untuk secara otomatis membuka dan terhubung ke Amethyst. Jika ada, klik tombol tersebut, buka Amethyst dan tekan simpan di layar baru. +\n\t\t3.2 Tautan Manual: URI Koneksi yang dapat Anda salin dan klik ikon tempel di layar ini untuk memasukkannya secara langsung. +\n\t\t3.3 Kode QR: Dompet membuat kode QR yang dapat Anda baca dari tombol kode QR di layar ini. + + Buat + h + Zona Berbahaya + Gelap + Deskripsi + Jadikan publik + Obrolan + Komunitas + Algoritma Feed + Paket Ikuti + Siaran Langsung + Bacaan + Relay Kotak Masuk DM + Jangan Terjemahkan Dari + Bahasa yang ditampilkan di sini tidak akan diterjemahkan. Pilih bahasa untuk menghapusnya dan terjemahkan kembali. + Simpan ke Ponsel + Mengunduh video… + Catatan Draft + Draf + Akun + Buat + Feed + Navigasi + Sistem + Anda + + %1$d hari + + + %1$d jam + + + %1$d menit + + + %1$d bulan + + + %1$d minggu + + + %1$d tahun + + Edit Kalender + Edit Acara Kalender + Edit Komunitas + Edit paket emoji + Edit Postingan + Emoji privat disimpan terenkripsi di relay dan hanya terlihat oleh Anda. Mereka muncul di menu reaksi Anda dan pelengkap otomatis ":" seperti emoji publik. + Emoji publik terlihat oleh semua orang dan muncul di menu reaksi Anda dan pemilih pelengkap otomatis ":" saat paket ini ada di daftar emoji Anda. + Emoji + Enkripsi file sebelum diunggah untuk privasi. Beberapa server mungkin tidak menerima file terenkripsi pada akun gratis. + Enkripsi file + Obrolan Menghilang + Kesalahan + Tidak dapat membayar faktur + Tidak dapat menarik + Tidak dapat membuka pembayaran + Tidak dapat mengirim zap + Terjadi kesalahan saat membuka aplikasi penanda tangan + Aplikasi penandatangan tidak ditemukan. Periksa apakah aplikasi belum dihapus + Salah memilah pesan error + Kesalahan Parsing JSON dari %1$s. Periksa pengaturan Lightning pengguna + Tidak dapat menghubung server faktur penerima + Buka di browser + Tidak dapat memutar video ini + Codec atau format tidak didukung di perangkat ini (%1$s). Coba buka di browser Anda. + Kesalahan + Sinkronisasi Relay + acara dari Anda + acara kepada Anda + Sirkuit + Bersepeda + Puasa + Mendaki + Meditasi + Mendayung + Berlari + Kekuatan + Berenang + Berjalan + Perluas + Tanggal Kedaluwarsa + Ekspor pengaturan relay + Gagal menghapus: %1$s + Gagal mengenkripsi kunci privat Anda + Gagal menyimpan gambar + Gagal menyimpan PDF + Gagal menyimpan video + Banyak server tidak menerima file terenkripsi pada akun gratis. Anda dapat mencoba ulang tanpa enkripsi. + Pengunggahan terenkripsi gagal + Kesalahan pengunggahan: %1$s + Gagal mengunggah media + Gagal mengunggah ke %1$s: %2$s + Tambahkan ke favorit + Memuat melalui web terbuka. + Memuat melalui Tor. + Terbaru + Hapus dari favorit + Aplikasi itu belum dimuat. Coba lagi sebentar lagi. + Aplikasi favorit + Algoritma Feed Favorit + Melakukan pembayaran + Diterbitkan ke relay + Mengunggah file + Feed Relay Favorit + Relay yang sering Anda kunjungi untuk melihat feed Global mereka + Komunitas + Algoritma Feed + Feed + Tagar + Set Minat + Daftar + Lokasi + Relay + Server File + Pilih server untuk mengunggah file ini + Menyembunyikan postingan dari orang asing yang persis sama sebanyak 5 kali atau lebih + Ikuti + Ikuti kembali + Semua algoritma feed favorit + Di Sekitar Saya + Terkurasi + Daftar Ikut Default + Semua Pengikut + Semua Pengikut Pengguna + Milik Saya + Daftar Bisukan + Pack Ikut Baru + Metadata follow pack dapat dilihat oleh siapa saja di Nostr dan sering diterbitkan di banyak situs web sebagai kit awal bagi pengguna baru. + Metadata Follow Pack + Daftar Ikut Baru + Edit Daftar + Gaya Galeri Profil + Pilih gaya galeri + Klasik + Postingan Eksklusif Lokasi + Hanya pengikut lokasi yang akan melihatnya. Pengikut umum Anda tidak akan melihatnya. + %1$s didanai dari target %2$s sats + j + Konten ini telah diubah. Pemilik mungkin tidak melihat atau menyetujui perubahan tersebut + Apa artinya? + Konten ini sama sejak postingan tersebut + Halo %1$s, apakah ini masih tersedia? + Kata-kata tersembunyi + Menghapus postingan dari umpan komunitas saat komunitas menerbitkan dokumen aturan NIP-9B dan sebuah acara tidak memenuhinya. Tidak berpengaruh saat komunitas tidak memiliki aturan terstruktur. + Sembunyikan postingan yang melanggar aturan komunitas + Sembunyikan kata sandi + Mengunggah %1$s (%2$d dari %3$d) + Semua + Bad Request - Server tidak dapat atau tidak mau memproses permintaan. + Unauthorized - Pengguna tidak memiliki kredensial autentikasi yang valid + Payment Required - Server memerlukan pembayaran untuk menyelesaikan permintaan + Forbidden - Pengguna tidak memiliki hak akses untuk membuat permintaan + Not Found - Server tidak dapat menemukan alamat yang diminta + Method Not Allowed - Server mendukung metode permintaan, tetapi tidak untuk sumber daya target + Not Acceptable - Server tidak menemukan konten yang memenuhi permintaan. + Proxy Authentication Required - Pengguna tidak memiliki kredensial autentikasi yang valid + Request Timeout - Server kehabisan waktu menunggu pihak lain + Conflict - Server tidak dapat memenuhi permintaan karena ada konflik dengan sumber daya + Gone - Konten yang diminta telah dihapus permanen dari server dan tidak akan dipulihkan + Length Required - Server menolak permintaan karena memerlukan panjang yang ditentukan + Precondition Failed - Prasyarat permintaan dalam bidang header yang gagal dipenuhi oleh server + Payload Too Large - Permintaan lebih besar dari batas yang ditentukan server, dan server menolak untuk memprosesnya + URI Too Long - URL yang diminta oleh klien terlalu panjang untuk diproses server. + Unsupported Media Type - Permintaan menggunakan format media yang tidak didukung server + Range Not Satisfiable - Server tidak dapat memenuhi nilai yang ditunjukkan dalam bidang header Range permintaan. + Expectation Failed - Server tidak dapat memenuhi persyaratan yang ditunjukkan oleh bidang header permintaan Expect + Upgrade Required - Server menolak memproses permintaan menggunakan protokol saat ini kecuali klien meningkatkan ke protokol yang berbeda. + Internal Server Error - Server mengalami kesalahan tak terduga dan tidak dapat menyelesaikan permintaan + Not Implemented - Server tidak dapat memenuhi permintaan atau tidak mengenali metode permintaan + Bad Gateway - Server bertindak sebagai gateway dan mendapat respons tidak valid dari host + Service Unavailable - Ini sering terjadi ketika server kelebihan beban atau sedang dalam pemeliharaan + Gateway Timeout - Server bertindak sebagai gateway atau proxy dan habis waktu menunggu respons + HTTP Version Not Supported - Server tidak mendukung versi HTTP dalam permintaan + Variant Also Negotiates - Server memiliki kesalahan konfigurasi internal + Insufficient Storage - Server tidak memiliki cukup penyimpanan untuk memproses permintaan dengan sukses + Loop Detected - Server mendeteksi loop tak terbatas saat memproses permintaan + Network Authentication Required - Klien harus diautentikasi untuk mengakses jaringan + Perilaku Ilegal + Gambar disimpan ke galeri + Identitas palsu + Relay Kotak Masuk + Jumlah faktur salah (%1$s sat) dari %2$s. +Seharusnya %3$s + Relay Indeks + Relay yang berspesialisasi dalam menyimpan metadata dan daftar relay semua orang, seperti purplepag.es. Amethyst akan menggunakan relay ini untuk menemukan pengguna yang tidak ada dalam daftar Anda. + Kumpulan Minat Baru + Ganti nama + Kumpulan Hashtag + Kunci tidak valid + Kunci tidak valid: %1$s + Alamat tidak valid + Amethyst menerima URI untuk dibuka tetapi URI tersebut tidak valid: %1$s + Tidak dapat mengutip catatan draft + Tidak dapat bereaksi terhadap catatan draft + Tidak dapat membalas catatan draft + Tidak dapat zap catatan draft + Kunci diperlukan + Relay KeyPackage + Relay tempat KeyPackage MLS Anda dipublikasikan (MIP-00). Pengguna lain mengambil KeyPackage ini untuk mengundang Anda ke obrolan grup Marmot. Masukkan 1–3 relay yang menerima event KeyPackage dari Anda dan mengizinkan pembacaan publik. + Kumpulan Lencana yang Diterima + Prolog Petualangan + Bacaan Petualangan + Adegan Petualangan + Rekomendasi Aplikasi + Janji + Aplikasi + RSVP Janji + Header Audio + Trek Audio + Podcast yang Dibuat + Penghargaan Lencana + Definisi Lencana + Data Blob + Header Blob + Relay yang Diblokir + Blog + Server Blossom + Daftar Bookmark + Relay Siaran + Kalender + Definisi Saluran + Sembunyikan Pesan Saluran + Daftar Saluran + Pesan Saluran + Metadata Saluran + Bisukan Pengguna Saluran + Tantangan Catur + Tawaran Seri Catur + Penerimaan Permainan Catur + Akhir Permainan Catur + Permainan Catur + Gerakan Catur + Iklan Baris + Komentar + Definisi Komunitas + Daftar Komunitas + Postingan Komunitas + Kartu Kontak + Janji Harian + Penghapusan + File DM + Pesan DM + Relay DM + Draf + Permintaan Konten DVM + Respons Konten DVM + Status DVM + Suntingan + Daftar Paket Emoji + Paket Emoji + Obrolan Sementara + Ruang Obrolan Sementara + Podcast Favorit + Relay Favorit + Header File + Server File + Daftar Ikutan + Follow Pack + Ikutan Geohash + GiftWrap + Ikutan Tagar + Sorotan + Daftar Relay Indeks + Obrolan Langsung + Siaran Langsung + Data Medis + Ruang Rapat + Ruang Pertemuan + Daftar Putar Musik + Trek Musik + Daftar Bisukan + Bookmark Bernama + Server Nests + Catatan + Permintaan NWC + Respons NWC + Daftar Bookmark Lama + Outbox Relay + Daftar Orang + Gambar + Pin + Episode Podcast + Acara Podcast + Respons Poll + Relay Privat + Zap Privat + Profil + Lencana Profil + Galeri Profil + Relay Proksi + Pesan Publik + Reaksi + Pengumuman Monitor Relay + Set Relay + Laporan + Repost + Repost (16) + Kehadiran di Ruangan + Segel + Relay Pencarian + Komentar Torrent + Torrent + Penyedia Tepercaya + Relay Tepercaya + Hapus Pengguna + Pengaturan Pengguna + Status Pengguna + Pesan Suara + Balasan Suara + Bookmark Web + Olahraga + Tujuan Zap + Permintaan Zap + Zap + Dikenal + Preferensi Tampilan Bahasa + Untuk setiap pasangan bahasa yang diterjemahkan, pilih bahasa mana yang ditampilkan terlebih dahulu. + Terakhir terlihat %1$s yang lalu + Terakhir terlihat baru saja + Tidak pernah terlihat + Terakhir terlihat pada %1$s (%2$s yang lalu) + Keluar + Terang + Relay Lokal + Daftar relay yang berjalan di perangkat ini. + Anda memakai kunci publik dan kunci publik hanya dapat membaca saja. Silahkan login dengan kunci privat agar dapat mengirim postingan + Anda memakai kunci publik dan kunci publik hanya dapat membaca saja. Silahkan login dengan kunci privat agar dapat mengikuti + Anda memakai kunci publik dan kunci publik hanya dapat membaca saja. Silahkan login dengan kunci privat agar dapat menyembunyikan kata atau kalimat + Anda memakai kunci publik dan kunci publik hanya dapat membaca saja. Silahkan login dengan kunci privat agar dapat membalas + Anda memakai kunci publik dan kunci publik hanya dapat membaca saja. Silahkan login dengan kunci privat agar dapat mengirimkan zap + Anda memakai kunci publik dan kunci publik hanya dapat membaca saja. Silahkan login dengan kunci privat agar dapat menampilkan kata atau kalimat + Anda menggunakan kunci publik dan kunci publik bersifat hanya-baca. Masuk dengan kunci privat untuk dapat menandatangani event + Anda memakai kunci publik dan kunci publik hanya dapat membaca saja. Silahkan login dengan kunci privat agar dapat tidak mengikuti + Anda menggunakan kunci publik dan kunci publik bersifat hanya-baca. Masuk dengan kunci privat untuk dapat mengunggah + Anda memakai kunci publik dan kunci publik hanya dapat membaca saja. Silahkan login dengan kunci privat untuk menyukai postingan + Video + Paket Emoji Saya + Menambahkan %1$s… + Hak admin diberikan + Hak admin dicabut + Gagal menambahkan %1$s: %2$s + Gagal membuat grup: %1$s + Gagal memberikan hak admin: %1$s + Gagal keluar dari grup: %1$s + Gagal menghapus anggota: %1$s + Gagal mencabut hak admin: %1$s + Gagal memperbarui: %1$s + Grup MLS + Info grup diperbarui + + %1$d anggota + + Anggota dihapus + + %1$d pesan + + Bukan anggota grup ini + kesalahan tidak diketahui + Media ditambahkan + Media ditambahkan ke Galeri Profil Anda + Unduhan media telah dimulai… + Server Media + Media terlalu besar untuk NIP-95 + Masukkan tujuan pesan terlebih dahulu + Tidak Dapat Mengunggah + Subjek + Metadata tidak dapat dihapus + Gagal menghapus metadata pribadi dari media. Unggahan dibatalkan. + Markah berhasil dipindahkan + Lightning tidak tersedia + Opsi Lainnya + Pindah ke Pribadi + Pindah ke Publik + Unggah gambar sampul + Pilih gambar persegi sebagai karya seni untuk playlist ini. + + +%1$d lagu lainnya + + + %1$d lagu + + + %1$d trek + + Mengunggah sampul dan menerbitkan. Proses ini akan terus berjalan meskipun Anda meninggalkan layar. + Unggah file audio + Pilih MP3, WAV, atau FLAC. File akan diunggah ke server media Anda saat Simpan. + Unggah gambar sampul + Pilih gambar persegi sebagai karya seni untuk lagu ini. + Mengunggah sampul + audio dan menerbitkan. Proses ini akan terus berjalan meskipun Anda meninggalkan layar. + Suara aktif. Ketuk untuk bisukan + Dibisukan. Ketuk untuk membunyikan + Daftar Saya + Nama diperlukan + Pengaturan Namecoin + Identitas + Baca kunci publik Anda + Pesan + Tukar pesan dengan nApplet lain + Tindakan keyboard + Ikat pintasan keyboard + Notifikasi + Tampilkan notifikasi kepada Anda + Relay + Baca, tandatangani, dan terbitkan event Anda + Jaringan + Ambil sumber daya web dan Blossom + Penyimpanan + Penyimpanan pribadi miliknya sendiri + Tema + Sesuaikan warna aplikasi Anda + Unggahan + Unggah file ke server media Anda + Pembayaran + Bayar invoice Lightning + nApplet ini ingin membaca kunci publik Anda. + nApplet ini ingin membaca profil dan data akun Anda. + nApplet ini ingin menampilkan notifikasi kepada Anda. + + nApplet ini ingin membayar invoice Lightning sebesar %1$d sat. + + nApplet ini ingin menandatangani dan menerbitkan event kind %1$d sebagai Anda. + nApplet ini ingin mengirim event terenkripsi sebagai Anda. + nApplet ini ingin menandatangani dan menerbitkan event kind %1$d sebagai Anda: + nApplet ini ingin membaca event dari relay Anda. + nApplet ini ingin mengambil sumber daya web. + Situs ini ingin menandatangani event kind %1$d dengan kunci Nostr Anda. + nApplet ini ingin menggunakan penyimpanan pribadinya. + nApplet ini ingin mengunggah file ke server media Anda. + Gagal mengirim pesan + Senyapkan pembicara ini + Pulihkan pembicara ini + Tinggalkan + Gagal menandai ruang sebagai ditutup. Meninggalkan tetap — ruang akan ditutup otomatis. + + %1$d pendengar + + Turunkan tangan + Bisukan mikrofon + Aktifkan mikrofon + Bisukan + Gagal menyimpan daftar server nest Anda. Coba lagi. + Menjaga audio tetap berjalan saat ruang terbuka. + Nest terhubung + Berhenti + Ketuk untuk kembali. + Ikuti + Bisukan + Berhenti mengikuti + Aktifkan suara + meninggalkan nest + bergabung sebagai penonton + naik ke panggung + mengangkat tangan + sedang berbicara + Angkat tangan + Aktifkan suara + Disimpan sebagai event yang dapat diganti kind-10112 agar klien lain dapat membaca preferensi Anda. + Server Anda + Saran bawaan yang dapat Anda tambahkan ke daftar dengan satu ketukan. + Server yang Direkomendasikan + Server nest + jangan pernah + Lencana Baru + Kalender Baru + Acara Kalender Baru + Komunitas Baru + Moderator + Relay + Pengguna yang diblokir + Komentar komunitas (1111) + Artikel panjang (30023) + Postingan gambar (20) + Teks singkat (1) + Video pendek (22) + Postingan video (21) + Jenis acara yang diizinkan + Ukuran acara maksimum global (opsional) + Aturan yang dapat diverifikasi (opsional) + Gerbang web-of-trust (opsional) + Paket emoji baru + Tujuan Baru + Artikel Baru + Playlist baru + Trek musik baru + Produk Baru + Permintaan Baru + Utas baru + Latihan Baru + + %1$d aset dibundel + + Aplikasi Blossom tidak ditemukan. Silakan instal aplikasi Blossom lokal untuk melihat file ini + Tidak dapat membuka tautan Blossom + Tidak ada aplikasi kamera yang ditemukan di perangkat ini + Tidak ada Alamat Lightning yang ditetapkan + Tidak ada aplikasi yang ditemukan untuk menangani pembayaran ini. Silakan instal dompet yang kompatibel. + Tidak ada aplikasi yang terinstal untuk menangani pembayaran %1$s. Silakan instal dompet yang kompatibel. + Tidak ada jenis reaksi yang dipilih sebelumnya untuk pengguna ini. Tekan lama tombol hati untuk mengubahnya + Tidak mengatur reaksi + Tidak ada Dompet yang ditemukan untuk membayar faktur Lightning. Silakan instal dompet Lightning untuk menggunakan zap + Tidak ada Dompet yang ditemukan untuk membayar faktur Lightning (Kesalahan: %1$s). Silakan instal dompet Lightning untuk menggunakan zap + Jumlah Zap belum diatur. Tekan lama untuk mengubah + Notifikasi + Kategori + Pengiriman + Tampilan dalam aplikasi + sekarang + Seni Nowhere + Drop Nowhere + Acara Nowhere + Forum Nowhere + Penggalangan Dana Nowhere + Situs Nowhere + Pesan Nowhere + Petisi Nowhere + Toko Nowhere + Ketelanjangan + Tidak dapat membuat referensi event + Tidak ada pubkey penerima pada catatan + Nutzap bersifat publik dan akan mengungkap catatan privat ini. Gunakan zap Lightning sebagai gantinya. + Nutzap gagal + + Kirim %1$s sats, %2$d cara + + Backend chain Bitcoin belum dikonfigurasi + Tidak dapat menyiarkan transaksi + Tidak dapat membangun transaksi + Tidak dapat memuat saldo Bitcoin Anda + Pembayaran terkirim, tetapi tanda terima zap tidak dapat dipublikasikan + + Pembayaran terkirim (%1$d dari %2$d tanda terima dipublikasikan), tetapi tanda terima berikutnya tidak dapat dipublikasikan + + Bagian penerima di bawah batas debu + Tidak dapat menandatangani transaksi + ~10 menit + ~30 menit + ~1 jam + Cepat + Lambat + + Dibagi di antara %1$d penerima + + + Melewati %1$d penerima yang hanya memiliki alamat Lightning — on-chain memerlukan pubkey Nostr untuk menurunkan alamat. + + + Gunakan pembagian zap %1$d-cara dari catatan ini + + menyiarkan + membangun transaksi + memuat saldo + mempublikasikan tanda terima + menandatangani + Hanya satu suara per pengguna yang diperbolehkan pada jenis poll ini + Buka semua reaksi pada postingan ini + Terbuka + Port Socks Orbot + Penjelajah Bitcoin (OTS) + Ada bukti bahwa postingan ini ditandatangani sebelum %1$s. Bukti ini dicap dalam blockchain Bitcoin pada tanggal dan waktu tersebut. + Bukti Stempel Waktu + Relay Outbox + Kata sandi diperlukan + Jeda + Bayar + Pesan dari %1$s + Target Pembayaran + Tambahkan alamat pembayaran untuk jaringan berbeda (mis. bitcoin, lightning, ethereum). + PDF disimpan ke Unduhan/Amethyst + Metadata daftar ikutan dapat dilihat oleh siapa saja di Nostr. Hanya anggota privat Anda yang dienkripsi. + Metadata Daftar Ikutan + Gambar + Sematkan ke atas + Sematkan ke Profil + Putar + + %1$d episode + + Pemilik Poll tidak bisa memilih di poll mereka sendiri. + (0–100)% + Poll ditutup + Pilihan ganda + Opsi %1$s + Pilihan tunggal + Tidak dapat memilih + Polling + Posting + + Postingan ini memiliki lebih dari %1$d hashtag + + Preview gambar untuk %1$s + Opsi Privasi + Kebijakan Privasi + <Gagal mendekripsi pesan rahasia>\n\n Anda dikutip dalam percakapan pribadi/terenkripsi antara %1$s dan %2$s. + Relay Kotak Masuk DM + Masukkan 1–3 relay sebagai kotak masuk pribadi Anda. Orang lain akan menggunakan relay ini untuk mengirim DM kepada Anda. Relay Kotak Masuk DM harus menerima pesan dari siapa saja, tetapi hanya mengizinkan Anda untuk mengunduhnya. Pilihan yang baik:\n - inbox.nostr.wine (berbayar)\n - auth.nostr1.com (gratis)\n - you.nostr1.com (relay pribadi - berbayar) + Pengguna menerima DM di relay ini + Pesan Pribadi + Jadikan pribadi: bungkus catatan sebagai hadiah hanya untuk pengguna yang diberitahu + Balasan ke catatan pribadi selalu tetap pribadi + Terlihat oleh + Relay Beranda Pribadi + Masukkan 1–3 relay untuk menyimpan event yang tidak dapat dilihat orang lain, seperti Draft dan/atau pengaturan aplikasi Anda. Idealnya, relay ini bersifat lokal atau memerlukan autentikasi sebelum mengunduh konten setiap pengguna. + Kata-kata kotor / Ujaran kebencian + Profil + Lencana profil + Rekomendasi Aplikasi + Lencana Profil + Umpan Pengikut + Umpan Zap Diterima + Tampilan Profil + profil + Usulkan Suntingan + Relay Proxy + Relay agregator yang harus digunakan aplikasi untuk mengunduh feed Anda, seperti filter.nostr.wine. Ini menggantikan model outbox dan akan membuat aplikasi hanya terhubung ke relay dalam daftar Anda. + Obrolan Publik + Obrolan publik terlihat oleh semua orang di Nostr dan siapa pun + dapat berpartisipasi. Sangat cocok untuk komunitas terbuka seputar topik tertentu. + Moderasi dapat dilakukan dengan menghapus postingan di relay-nya + Masukkan antara 1–3 relay yang menjadi host grup ini. + Klien Nostr menggunakan pengaturan ini untuk mengetahui tempat mengunduh dan mengirim pesan Anda. + relay + Metadata Obrolan Publik + Obrolan Publik + Relay Outbox/Beranda Publik + Jenis relay ini menyimpan semua konten Anda. Amethyst akan mengirim postingan Anda ke sini dan orang lain akan menggunakan relay ini untuk menemukan konten Anda. Masukkan 1–3 relay. Bisa berupa relay pribadi, relay berbayar, atau relay publik. + Pengguna memposting kontennya ke relay ini + Pesan Publik + Relay Kotak Masuk Publik + Jenis relay ini menerima semua balasan, komentar, suka, dan zap ke postingan Anda. Bisa berupa relay berbayar atau gratis. Batasan yang ditetapkan oleh operator relay dapat membatasi notifikasi yang Anda terima, baik positif maupun negatif. Misalnya, jika Anda diserang spam komentar, relay berbayar dapat menyaring spam tersebut. Masukkan 1–3 relay. + Pengguna menerima notifikasi di relay ini + ID Note + Hapus + Bisukan utas + Bagikan + Bagikan Link Browser + Batalkan bisukan utas + Reaksi + Reaksi + Baris Reaksi + Baca dari Relay + Jumlah dalam byte yang diterima dari relay ini, termasuk filter dan acara + Pengguna hanya-baca + Tekan dan tahan untuk merekam pesan + Obrolan relay + Obrolan relay adalah grup obrolan yang dikendalikan oleh relay induknya. + Obrolan ini terlihat oleh semua orang di Nostr dan siapa pun dapat berpartisipasi. + Sangat cocok untuk komunitas terbuka seputar topik tertentu. Beberapa grup ini bersifat sementara + sehingga pesan obrolan akan menghilang seiring waktu + Obrolan relay + Acara + IP + Kind + Pengguna + Pengaturan + Pengaturan Relay + daftar outbox + Relay + Isi ulang & kirim zap + Kirim zap + Isi ulang %1$s sats ke %2$s dan zap %3$s %4$s sats · biaya ≈ %5$s sats + Hapus + Hapus dari Markah Publik + balas disini.. + Memberitahu: + + Minta Penghapusan + Permintaan untuk Menghapus + Gagal menyetel ulang status Marmot: %1$s + Setel Ulang Status Marmot + Status Marmot berhasil disetel ulang. + Coba ulang + Daftar kalender + Kalender + Catur + Temukan + Beranda + Impor Pengikutan + Pesan + Playlist + Musik + Notifikasi + Episode + Podcast + Jadwalkan postingan + Batalkan penjadwalan + Postingan terjadwal mungkin tidak diterbitkan hingga Anda membuka aplikasi lagi. Postingan terjadwal akun lain tidak akan berjalan saat akun ini aktif. Aktifkan selalu aktif di Pengaturan → Preferensi UI untuk penjadwalan latar belakang yang andal. + Postingan terjadwal mungkin tidak diterbitkan hingga Anda membuka aplikasi lagi. Aktifkan selalu aktif di Pengaturan → Preferensi UI untuk penjadwalan latar belakang yang andal. + Postingan terjadwal + Kirim sekarang + %1$s · dalam %2$s + %1$s · %2$s yang lalu + Besok + Kesalahan: %1$s + ID catatan disalin + + Keluar · %1$d postingan terjadwal dihapus + + Keluar + + Anda memiliki %1$d postingan terjadwal yang belum diterbitkan. Keluar akan menghapusnya secara permanen. + + Postingan terjadwal gagal + Postingan terjadwal diterbitkan + + ke %1$d relay + + Dibatalkan + Gagal + Terjadwal + Mengirim… + Terkirim + + · %1$d jatuh tempo dalam 1 jam + + + %1$d dalam antrean + + Pilihan yang baik:\n%1$s + Relay Pencarian + Relay Pencarian + Daftar relay yang digunakan saat mencari konten atau pengguna. Penandaan dan pencarian tidak akan berfungsi jika tidak ada pilihan yang tersedia. Pastikan mereka mengimplementasikan NIP-50. + acara yang dapat dicari + Kunci rahasia (nsec) telah disalin ke papan klip + Anda belum memblokir pengguna mana pun. + Filter keamanan + Tidak ada kata tersembunyi. Tambahkan kata di bawah untuk menyembunyikan postingan yang mengandungnya. + Konten diblokir + Preferensi filter + Tidak ada akun yang ditandai sebagai spam dalam sesi ini. + Kirim + Kirim semua event profil (kind 0) yang diterima ke relay lokal Anda + Teruskan profil ke relay lokal + Dapat dibelanjakan untuk penerima ini: %1$s sats + Pembayaran gagal + Transaksi: %1$s + Membayar melalui %1$s… + Server tidak memberikan URL setelah pengunggahan + Pengaturan + Tidak ada utas yang dibisukan + Utas yang dibisukan + Bagikan sebagai Gambar + Bagikan sebagai URL Gambar + Unggah HLS + Bagikan atau Simpan + Tampilkan kode QR kunci privat terenkripsi + Sertakan pesan langsung dan grup pada tab Notifikasi. Matikan untuk menyimpan pesan hanya di tab Pesan. + Tampilkan Pesan + Tampilkan kode QR kunci privat + Permintaan tanda tangan ditolak + Pastikan aplikasi penandatangan telah mengizinkan transaksi ini + Penanda tangan eksternal mengembalikan payload yang tidak sesuai dengan permintaan. Mungkin ada bug di Amethyst atau di penanda tangan. + Penanda tangan tidak ditemukan + Apakah aplikasi penanda tangan telah dihapus? Periksa apakah penanda tangan terpasang dan memiliki akun ini. Keluar dan masuk kembali jika aplikasi penanda tangan telah berubah. + Mundur %1$d detik + Maju %1$d detik + Aplikasi + Jumlah event spam yang berasal dari relay ini + Spammer + Tampilkan dua tab notifikasi — Mengikuti (orang yang Anda ikuti) dan Semua Orang. Indikator belum dibaca hanya menyala untuk aktivitas dari orang yang Anda ikuti. + Pisahkan notifikasi berdasarkan Mengikuti + Berusaha menghapus metadata pribadi dari file media yang didukung sebelum diunggah + Hapus metadata pribadi + Membaca latihan yang selesai dari Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) dan menyarankan untuk membagikannya sebagai postingan. Izin hanya diminta saat Anda menghubungkan. + Sarankan latihan untuk dibagikan + Sistem + Tema + Gelap, Terang, atau Tema Sistem + Pesan ini akan hilang dalam %1$s + + +%1$d\nbalasan + + Hari ini + Kustom + Buat sendiri + Sembunyikan IP Anda dari relay acak + Privasi Penuh + Sembunyikan IP Anda di semua koneksi + Mati + Prasetel Tor/Privasi + Ubah semua pengaturan di bawah dengan cepat + Semua kecuali Media + Sembunyikan IP Anda dari segalanya, kecuali gambar dan video + Relay DM + Paksa Tor untuk mengirim dan menerima DM + Gambar + Paksa Tor saat memuat gambar + Unggahan Media + Paksa Tor saat mengunggah konten + Operasi Uang + Paksa Tor pada zap, Lightning, dan transfer Cashu + Relay Tidak Tepercaya + Paksa Tor pada relay outbox/inbox + Verifikasi Alamat Nostr + Paksa Tor saat memverifikasi alamat NIP-05 + Url/Relay Onion + Gunakan Tor untuk url .onion apa pun + Foto Profil + Paksa Tor saat memuat foto profil + Relay Tepercaya + Paksa Tor pada semua relay di daftar Anda + Pratinjau URL + Paksa Tor saat memuat pratinjau url + Video + Paksa Tor saat memuat video + Dasar + Gunakan Tor saat diperlukan oleh server + Gagal membuka file + Tidak ada aplikasi torrent yang terpasang untuk membuka dan mengunduh file. + Event tidak memiliki cukup informasi untuk membangun tautan magnet + Gunakan penyiar terlacak saat mengirim acara. Menampilkan progres langsung dan status per-relay saat menyiarkan. + Siaran terlacak + Terjemahkan Ke + Pilih bahasa untuk menerjemahkan konten. + Terjemahan + Relay Tepercaya + Relay yang Anda percaya sehingga tidak memerlukan koneksi Tor + Lengkap + Performa + Disederhanakan + Preferensi UI + Mode UI + Pilih gaya postingan + Tidak dapat membuat faktur Lightning sebelum mengirim zap. Dompet Lightning penerima mengirimkan kesalahan berikut: %1$s + Tidak dapat berbagi gambar, coba lagi nanti… + Tidak dapat berbagi video, coba lagi nanti… + Dekripsi Tidak Diizinkan + Penanda tangan tidak mengizinkan dekripsi yang diperlukan untuk melakukan operasi ini. Aktifkan dekripsi NIP-44 di aplikasi penanda tangan Anda dan coba lagi + Berhenti mengikuti + Lepas sematan + Lepas Sematan dari Profil + Unggahan dibatalkan + Kesalahan Unggahan + Unggahan suara gagal: %1$s + Gagal mengunggah pesan suara + NIP-95 belum didukung untuk pesan suara + Mesin Tor Aktif + Gunakan versi internal atau Orbot + Pengguna belum mengatur alamat lightning untuk menerima sat + %1$s belum mengatur alamat lightning untuk menerima sat + Riwayat Penghapusan + Permintaan penghapusan terkirim + Kualitas lebih baik dengan ukuran file lebih kecil tetapi tidak semua perangkat mendukung pemutaran H.265. + Gunakan Codec H.265/HEVC + Unduhan video telah dimulai… + Tombol Pemutar Video + Video disimpan ke galeri video ponsel + Postingan Suara + Dalam + Tinggi + Netral + Tidak ada + Balasan Suara + Dompet + Dompet Cashu (NIP-60) + Penyedia Wallet Connect anda memberi error: %1$s + Menampilkan pesan peringatan saat postingan atau profil mendapat laporan dari orang yang Anda ikuti + Peringatkan pada laporan + Tambah Bookmark Web + Edit Bookmark Web + Bookmark Web + Apa yang ada dalam pikiranmu? + Latihan + Tulis pesan… + Tulis ke Relay + Jumlah dalam byte yang dikirim ke relay ini, termasuk filter dan acara + Zap + + Ganti nama + Simpan diff --git a/commonsUI/src/commonMain/composeResources/values-in/strings.xml b/commonsUI/src/commonMain/composeResources/values-in/strings.xml index 11cc7b53f2..1d82e7603f 100644 --- a/commonsUI/src/commonMain/composeResources/values-in/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-in/strings.xml @@ -1820,4 +1820,1182 @@ Sumber: Server: Buka + Tentang & Hukum + Pengaturan Akun + Tambah + Tambah Server Blossom + Tambah Server NIP-96 + Saat diaktifkan, Amethyst menambahkan tag klien NIP-89 ke acara yang Anda publikasikan. + Tambahkan tag klien ke acara saya + Menambahkan peringatan konten sensitif sebelum menampilkan konten ini + Konten Sensitif + Tambahkan Penanda Publik + Menggunakan model AI di perangkat untuk mengusulkan koreksi teks dan perubahan nada. + Usulkan perbaikan teks + Menjaga koneksi ke relay inbox Anda aktif untuk notifikasi real-time + + Terhubung ke %1$d relay inbox + + + Terhubung ke %1$d relay + + Menghubungkan ke relay inbox… + Notifikasi Amethyst Aktif + Notifikasi untuk panggilan suara dan video masuk + Panggilan masuk + %1$s menerima tantangan catur Anda + Memberi tahu Anda tentang peristiwa permainan catur + Catur + Pembaruan catur + %1$s bergerak — giliran Anda + Memberi tahu Anda ketika pesan pribadi tiba + Pesan Pribadi + Pesan baru + Tandai Sudah Dibaca + Memberi tahu Anda saat seseorang menyebut atau mengutip Anda dalam postingan + %1$s menyebut Anda + Sebutan + Sebutan baru + Memberi tahu Anda saat seseorang bereaksi pada postingan Anda + %1$s bereaksi pada postingan Anda + untuk %1$s + Reaksi + Reaksi baru + Memberi tahu Anda saat seseorang membalas postingan Anda + Balasan + Balasan baru + Balas + Notifikasi saat postingan terjadwal diterbitkan atau gagal diterbitkan. + Postingan terjadwal + Memberi tahu Anda ketika seseorang mengirimkan anda zap + %1$s sats + untuk %1$s + Dari %1$s + Zaps diterima + Zap baru + Pengaturan Aplikasi + Atestasi + Permintaan Atestasi + Kemahiran Atestator + Rekomendasi Atestator + Visualisasi Audio + Menyimpan acara draf secara otomatis saat Anda mengetik atau meninggalkan composer dengan teks yang belum dikirim dan mengirimnya ke relay outbox privat Anda. + Buat draf secara otomatis + Pengguliran Mendalam + Sembunyikan Navbar saat Menggulir + Pratinjau Gambar + Memuat gambar dan GIF secara otomatis + Pemutaran Video + Memutar video dan GIF secara otomatis + Gambar Profil + Tampilkan Gambar Profil + Pratinjau URL + Tampilkan pratinjau URL + Putar Otomatis Video + Putar video secara otomatis saat terlihat di layar + Tidak dapat menghapus metadata dari AVIF: %1$s + Berikan Lencana + Kembali + Cadangkan Kunci + Lencana + Autentikasi gagal + Biometrik gagal mengautentikasi pemilik ponsel ini + Biometrik gagal mengautentikasi pemilik ponsel ini. Kesalahan: %1$s + Blokir + Relay Diblokir + Amethyst tidak akan pernah terhubung ke relay ini + Pengguna diblokir + Daftar Bookmark Baru + Metadata Daftar Bookmark + Metadata daftar bookmark dapat dilihat oleh siapa saja di Nostr. Hanya anggota pribadi Anda yang dienkripsi. + Penanda + Promosi + Bilah Navigasi Bawah + Relay Siaran + Relay yang berspesialisasi dalam mendorong catatan Anda ke semua relay lainnya, seperti sendit.nosflare.com. Amethyst akan menambahkan relay ini ke semua event baru yang Anda buat + Browser + Favorit + Memuat melalui web terbuka. Ketuk untuk menggunakan Tor. + Memuat melalui Tor. Ketuk untuk menggunakan web terbuka. + + %1$s, %2$d acara + + Unggahan gambar gagal + Gambar yang dipilih tidak dapat diunggah. Coba lagi atau tempel URL. + Bagikan acara kalender + Buka di peta + Buka tautan + Sedang berlangsung + %1$s · selesai %2$s + + Mulai dalam %1$d menit + + Pemberitahuan saat acara yang Anda hadiri akan segera dimulai. + calendar_reminders + Pengingat kalender + Acara kalender + Pemberitahuan akan muncul saat acara yang Anda hadiri akan segera dimulai. + Kirim pengingat + + %1$d mnt + + Pengingat kalender + Hari + Umpan + Bulan + Minggu + Terima + Bluetooth + Kamera mati + Kamera aktif + Earpiece + Tutup telepon + Panggilan masuk + Panggilan video masuk… + Panggilan suara masuk… + Bisukan + Panggilan + Notifikasi panggilan berlangsung + Amethyst membutuhkan akses kamera dan mikrofon untuk memulai panggilan video. Mohon aktifkan keduanya di pengaturan aplikasi. + Amethyst membutuhkan akses mikrofon untuk memulai panggilan suara. Mohon aktifkan di pengaturan aplikasi. + Tolak + Pengaturan Panggilan + Pengeras suara + Aktifkan suara + Panggilan dengan %1$s + URL Callback tidak ditemukan dari respons %1$s + Batal + Token Cashu + Memeriksa mint… + Tidak dapat menukarkan Cashu + Mint memberikan pesan kesalahan berikut: %1$s + Diterima + Terkirim + Mint yang cocok + + +%1$d lainnya + + Mint populer + + Direkomendasikan oleh %1$d orang lain + + Dipindahkan %1$s sat ke %2$s. + Tidak ada dompet Cashu yang kompatibel ditemukan di sistem + + %1$d tagihan tertunda + + Bayar %1$s sat + hingga %2$s sat biaya? + Publikasikan permintaan hapus untuk rekomendasi kind:38000 Anda atas %1$s. Relay yang menghormati NIP-09 akan menghapusnya. + Berhasil memulihkan %1$s sats dari %2$s bukti. + Cashu diterima + %1$s sat telah dikirim ke dompet Anda. (Biaya: %2$s sat) + + Dana disimpan di %1$d mint yang tidak Anda gunakan + + Menunggu invoice dibayar… + + %1$d mint + + Hentikan penayangan + Tampilkan ke perangkat + Standar Keamanan Anak + Aksesori + Seni + Buku + Pakaian + Kolektibel + Kerajinan + Elektronik + Kebugaran + Makanan + Furnitur + Rumah + Lain-lain + Kantor + Lainnya + Hewan Peliharaan + Olahraga + Harian + Bulanan + Sekali pakai + Mingguan + Bayar %1$s melalui %2$s? + Bayar invoice ini melalui %1$s? + Layanan debit tidak menyelesaikan pembayaran. + Masukkan jumlah yang valid untuk penawaran ini. + Meminta invoice… + Tutup semua reaksi pada postingan ini + Ditutup + Komunitas + Draf berukuran %1$d byte; komunitas ini membatasi kind ini sebesar %2$d byte. + Draf berukuran %1$d byte; komunitas ini membatasi acara sebesar %2$d byte. + Anda telah memposting %1$d acara jenis ini hari ini (batas %2$d). + Pengaturan Compose + Port default adalah 9050 + Relay Terhubung + Daftar relay yang sedang digunakan + Persentase koneksi yang berhasil ke relay + Selalu + Tidak Pernah + WiFi Tanpa Kuota + Tambah Dokumen + Tambah Gambar + Tambah Media + Tambah Video + Sembunyikan + Peringatkan + Tampilkan + Percakapan + Mengonversi GIF animasi ke video MP4 untuk ukuran file lebih kecil dan kompatibilitas pemutaran yang lebih baik. + Konversi GIF ke MP4 + Note ID (@note1) disalin ke papan klip + Teks catatan disalin ke papan klip + Disalin ke clipboard + @npub Penulis disalin ke papan klip + Salin kunci rahasia saya + Salin ke clipboard + Tidak dapat merakit LNUrl dari Alamat Lightning "%1$s". Periksa pengaturan pengguna + Tidak dapat memeriksa file yang diunduh setelah diunggah: %1$s + Tidak dapat mengunduh media yang diunggah dari server + Tidak dapat mengambil invoice dari %1$s: %2$s + Tidak dapat membuka file terkompresi + Dompet tidak ditemukan + Amethyst tidak dapat menemukan aplikasi dompet apa pun yang mendukung Nostr Wallet Connect (NWC). +\n\nYang dapat Anda lakukan: +\n\t1. Verifikasi Dukungan NWC: Pastikan aplikasi dompet pilihan Anda kompatibel dengan Nostr Wallet Connect. +\n\t2. Buat Koneksi: Buka aplikasi dompet Anda dan buat koneksi NWC baru. +\n\t3. Hubungkan ke Amethyst: Dompet Anda biasanya akan memberikan tiga pilihan: +\n\t\t3.1 Tautan Otomatis: Tombol untuk secara otomatis membuka dan terhubung ke Amethyst. Jika ada, klik tombol tersebut, buka Amethyst dan tekan simpan di layar baru. +\n\t\t3.2 Tautan Manual: URI Koneksi yang dapat Anda salin dan klik ikon tempel di layar ini untuk memasukkannya secara langsung. +\n\t\t3.3 Kode QR: Dompet membuat kode QR yang dapat Anda baca dari tombol kode QR di layar ini. + + Buat + hari + Zona Berbahaya + Gelap + Deskripsi + Jadikan publik + Percakapan + Komunitas + Algoritma Feed + Paket Ikuti + Siaran Langsung + Marketplace + Bacaan + Relay Kotak Masuk DM + DMs + Jangan Terjemahkan Dari + Bahasa yang ditampilkan di sini tidak akan diterjemahkan. Pilih bahasa untuk menghapusnya dan terjemahkan kembali. + Simpan ke Ponsel + Mengunduh video… + Catatan Draft + Draf + Akun + Buat + Feed + Navigasi + Sistem + Anda + + %1$d hari + + + %1$d jam + + + %1$d menit + + + %1$d bulan + + + %1$d minggu + + + %1$d tahun + + Edit Kalender + Edit Acara Kalender + Edit Komunitas + Edit paket emoji + Edit playlist + Edit Postingan + Emoji privat disimpan terenkripsi di relay dan hanya terlihat oleh Anda. Mereka muncul di menu reaksi Anda dan pelengkap otomatis ":" seperti emoji publik. + Emoji publik terlihat oleh semua orang dan muncul di menu reaksi Anda dan pemilih pelengkap otomatis ":" saat paket ini ada di daftar emoji Anda. + Emoji + Enkripsi file sebelum diunggah untuk privasi. Beberapa server mungkin tidak menerima file terenkripsi pada akun gratis. + Enkripsi file + Obrolan Menghilang + Kesalahan + Tidak dapat membayar tagihan + Tidak dapat mengambil dana + Tidak dapat membuka pembayaran + Tidak dapat mengirim zap + Kesalahan membuka aplikasi pengesahan + Aplikasi penandatangan tidak ditemukan. Periksa apakah aplikasi belum dihapus + Gagal menguraikan pesan kesalahan + Kesalahan Parsing JSON dari %1$s. Periksa pengaturan Lightning pengguna + Tidak dapat mengambil faktur dari server penerima + Buka di browser + Tidak dapat memutar video ini + Codec atau format tidak didukung di perangkat ini (%1$s). Coba buka di browser Anda. + Errors + Sinkronisasi Relay + acara dari Anda + acara kepada Anda + AMRAP + Sirkuit + Bersepeda + Diet + EMOM + Puasa + Mendaki + Meditasi + Mendayung + Berlari + Kekuatan + Berenang + Berjalan + Yoga + Perluas + Tanggal Kedaluwarsa + Ekspor pengaturan relay + Gagal menghapus: %1$s + Gagal mengenkripsi kunci privat Anda + Gagal menyimpan gambar + Gagal menyimpan PDF + Gagal menyimpan video + Banyak server tidak menerima file terenkripsi pada akun gratis. Anda dapat mencoba ulang tanpa enkripsi. + Pengunggahan terenkripsi gagal + Kesalahan pengunggahan: %1$s + Gagal mengunggah media + Gagal mengunggah ke %1$s: %2$s + Tambahkan ke favorit + Memuat melalui web terbuka. + Memuat melalui Tor. + Terbaru + Hapus dari favorit + Aplikasi itu belum dimuat. Coba lagi sebentar lagi. + Aplikasi favorit + Algoritma Feed Favorit + Melakukan pembayaran + Diterbitkan ke relay + Mengunggah file + Feed Relay Favorit + Relay yang sering Anda kunjungi untuk melihat feed Global mereka + Komunitas + Algoritma Feed + Feed + Tagar + Set Minat + Daftar + Lokasi + Relay + Server Berkas + Pilih server untuk mengunggah file ini + Menyembunyikan postingan dari orang asing yang persis sama sebanyak 5 kali atau lebih + Filter spam + Ikuti + Ikuti balik + Semua algoritma feed favorit + Di Sekitar Saya + Terkurasi + Global + Daftar Ikut Default + Semua yang diikuti + Semua Pengikut Pengguna + Milik Saya + Daftar Bisukan + Pack Ikut Baru + Edit Follow Pack + Metadata follow pack dapat dilihat oleh siapa saja di Nostr dan sering diterbitkan di banyak situs web sebagai kit awal bagi pengguna baru. + Metadata Follow Pack + Follow Packs + Daftar Ikut Baru + Edit Daftar + Gaya Galeri Profil + Pilih gaya galeri + Klasik + Modern + Postingan Eksklusif Lokasi + Hanya pengikut lokasi yang akan melihatnya. Pengikut umum Anda tidak akan melihatnya. + %1$s didanai dari target %2$s sats + jam + Konten ini telah berubah. Penulis mungkin tidak melihat atau menyetujui perubahan tersebut + Apa artinya ini? + Konten ini sama sejak kiriman tersebut dibuat + Halo %1$s, apakah ini masih tersedia? + Kata yg disembunyikan + Menghapus postingan dari umpan komunitas saat komunitas menerbitkan dokumen aturan NIP-9B dan sebuah acara tidak memenuhinya. Tidak berpengaruh saat komunitas tidak memiliki aturan terstruktur. + Sembunyikan postingan yang melanggar aturan komunitas + Sembunyikan Kata Sandi + Mengunggah %1$s (%2$d dari %3$d) + Semua + Bad Request - Server tidak dapat atau tidak mau memproses permintaan. + Unauthorized - Pengguna tidak memiliki kredensial autentikasi yang valid + Payment Required - Server memerlukan pembayaran untuk menyelesaikan permintaan + Forbidden - Pengguna tidak memiliki hak akses untuk membuat permintaan + Not Found - Server tidak dapat menemukan alamat yang diminta + Method Not Allowed - Server mendukung metode permintaan, tetapi tidak untuk sumber daya target + Not Acceptable - Server tidak menemukan konten yang memenuhi permintaan. + Proxy Authentication Required - Pengguna tidak memiliki kredensial autentikasi yang valid + Request Timeout - Server kehabisan waktu menunggu pihak lain + Conflict - Server tidak dapat memenuhi permintaan karena ada konflik dengan sumber daya + Gone - Konten yang diminta telah dihapus permanen dari server dan tidak akan dipulihkan + Length Required - Server menolak permintaan karena memerlukan panjang yang ditentukan + Precondition Failed - Prasyarat permintaan dalam bidang header yang gagal dipenuhi oleh server + Payload Too Large - Permintaan lebih besar dari batas yang ditentukan server, dan server menolak untuk memprosesnya + URI Too Long - URL yang diminta oleh klien terlalu panjang untuk diproses server. + Unsupported Media Type - Permintaan menggunakan format media yang tidak didukung server + Range Not Satisfiable - Server tidak dapat memenuhi nilai yang ditunjukkan dalam bidang header Range permintaan. + Expectation Failed - Server tidak dapat memenuhi persyaratan yang ditunjukkan oleh bidang header permintaan Expect + Upgrade Required - Server menolak memproses permintaan menggunakan protokol saat ini kecuali klien meningkatkan ke protokol yang berbeda. + Internal Server Error - Server mengalami kesalahan tak terduga dan tidak dapat menyelesaikan permintaan + Not Implemented - Server tidak dapat memenuhi permintaan atau tidak mengenali metode permintaan + Bad Gateway - Server bertindak sebagai gateway dan mendapat respons tidak valid dari host + Service Unavailable - Ini sering terjadi ketika server kelebihan beban atau sedang dalam pemeliharaan + Gateway Timeout - Server bertindak sebagai gateway atau proxy dan habis waktu menunggu respons + HTTP Version Not Supported - Server tidak mendukung versi HTTP dalam permintaan + Variant Also Negotiates - Server memiliki kesalahan konfigurasi internal + Insufficient Storage - Server tidak memiliki cukup penyimpanan untuk memproses permintaan dengan sukses + Loop Detected - Server mendeteksi loop tak terbatas saat memproses permintaan + Network Authentication Required - Klien harus diautentikasi untuk mengakses jaringan + Perilaku Ilegal + Gambar disimpan ke galeri + Peniruan/penipuan + Relay Kotak Masuk + Jumlah faktur salah (%1$s sats) dari %2$s. Seharusnya %3$s + Relay Indeks + Relay yang berspesialisasi dalam menyimpan metadata dan daftar relay semua orang, seperti purplepag.es. Amethyst akan menggunakan relay ini untuk menemukan pengguna yang tidak ada dalam daftar Anda. + Kumpulan Minat Baru + Ganti nama + Kumpulan Hashtag + Kunci tidak sah + Kunci tidak valid: %1$s + Alamat tidak valid + Amethyst menerima URI untuk dibuka tetapi URI tersebut tidak valid: %1$s + Tidak dapat mengutip catatan draft + Tidak dapat bereaksi terhadap catatan draft + Tidak dapat membalas catatan draft + Tidak dapat zap catatan draft + Kunci diperlukan + Relay KeyPackage + Relay tempat KeyPackage MLS Anda dipublikasikan (MIP-00). Pengguna lain mengambil KeyPackage ini untuk mengundang Anda ke obrolan grup Marmot. Masukkan 1–3 relay yang menerima event KeyPackage dari Anda dan mengizinkan pembacaan publik. + KeyPackages + Kumpulan Lencana yang Diterima + Prolog Petualangan + Bacaan Petualangan + Adegan Petualangan + Rekomendasi Aplikasi + Janji + Aplikasi + RSVP Janji + Header Audio + Trek Audio + Podcast yang Dibuat + Penghargaan Lencana + Definisi Lencana + Data Blob + Header Blob + Relay yang Diblokir + Blog + Blossom Auth + Server Blossom + Daftar Bookmark + Relay Siaran + Kalender + Definisi Saluran + Sembunyikan Pesan Saluran + Daftar Saluran + Pesan Saluran + Metadata Saluran + Bisukan Pengguna Saluran + Chess Auth + Tantangan Catur + Tawaran Seri Catur + Penerimaan Permainan Catur + Akhir Permainan Catur + Permainan Catur + Gerakan Catur + Iklan Baris + Komentar + Definisi Komunitas + Daftar Komunitas + Postingan Komunitas + Kartu Kontak + Janji Harian + Penghapusan + File DM + Pesan DM + Relay DM + Draf + Permintaan Konten DVM + Respons Konten DVM + Status DVM + DVM User Req + DVM User Resp + Suntingan + Daftar Paket Emoji + Paket Emoji + Obrolan Sementara + Ruang Obrolan Sementara + Podcast Favorit + Relay Favorit + Header File + Server File + Daftar Ikutan + Follow Pack + Ikutan Geohash + GiftWrap + Git Issue + Git Patch + Git Reply + Git Repo + Ikutan Tagar + Sorotan + Http Auth + Daftar Relay Indeks + Obrolan Langsung + Siaran Langsung + Data Medis + Ruang Rapat + Ruang Pertemuan + Daftar Putar Musik + Trek Musik + Daftar Bisukan + Bookmark Bernama + Server Nests + NIP + NIP-04 DMs + NNS + Nostr Connect + Catatan + Permintaan NWC + Respons NWC + Daftar Bookmark Lama + OTS + Outbox Relay + PayTo + Daftar Orang + Gambar + Pin + Episode Podcast + Acara Podcast + Poll + Respons Poll + Relay Privat + Zap Privat + Profil + Lencana Profil + Galeri Profil + Relay Proksi + Pesan Publik + Reaksi + Relay Auth + Relay Discovery + Pengumuman Monitor Relay + Set Relay + Laporan + Repost + Repost (16) + Kehadiran di Ruangan + Segel + Relay Pencarian + Shorts + Shorts (Repl) + Komentar Torrent + Torrent + Penyedia Tepercaya + Relay Tepercaya + Hapus Pengguna + Pengaturan Pengguna + Status Pengguna + Video + Video (Repl) + Pesan Suara + Balasan Suara + WakeUp + Bookmark Web + Wiki + Olahraga + Tujuan Zap + Zap Poll + Permintaan Zap + Zap + Dikenali + Preferensi Tampilan Bahasa + Untuk setiap pasangan bahasa yang diterjemahkan, pilih bahasa mana yang ditampilkan terlebih dahulu. + Terakhir terlihat %1$s yang lalu + Terakhir terlihat baru saja + Tidak pernah terlihat + Terakhir terlihat pada %1$s (%2$s yang lalu) + Tinggalkan + Terang + Live Streams + Relay Lokal + Daftar relay yang berjalan di perangkat ini. + Masuk dengan Kunci pribadi (nsec) untuk dapat mempromosikan tulisan + Masuk dengan Kunci pribadi (nsec) untuk dapat mengikuti + Anda menggunakan kunci publik dan kunci publik bersifat hanya baca. Login dengan kunci pribadi untuk dapat menyembunyikan sebuah kata atau kalimat + Masuk dengan Kunci pribadi (nsec) untuk dapat membalas tulisan + Masuk dengan Kunci pribadi (nsec) untuk dapat mengirim Zaps + Anda menggunakan kunci publik dan kunci publik bersifat hanya baca. Login dengan kunci pribadi untuk dapat menampilkan sebuah kata atau kalimat + Anda menggunakan kunci publik dan kunci publik bersifat hanya-baca. Masuk dengan kunci privat untuk dapat menandatangani event + Masuk dengan Kunci pribadi (nsec) untuk berhenti mengikuti + Anda menggunakan kunci publik dan kunci publik bersifat hanya-baca. Masuk dengan kunci privat untuk dapat mengunggah + Masuk dengan Kunci pribadi (nsec) untuk dapat menyukai tulisan + Video + menit + Paket Emoji Saya + Menambahkan %1$s… + Hak admin diberikan + Hak admin dicabut + Gagal menambahkan %1$s: %2$s + Gagal membuat grup: %1$s + Gagal memberikan hak admin: %1$s + Gagal keluar dari grup: %1$s + Gagal menghapus anggota: %1$s + Gagal mencabut hak admin: %1$s + Gagal memperbarui: %1$s + Grup MLS + Info grup diperbarui + + %1$d anggota + + Anggota dihapus + + %1$d pesan + + Bukan anggota grup ini + kesalahan tidak diketahui + Media ditambahkan + Media ditambahkan ke Galeri Profil Anda + Unduhan media telah dimulai… + Server Media + Media terlalu besar untuk NIP-95 + Masukkan tujuan pesan terlebih dahulu + Tidak Dapat Mengunggah + Subjek + Metadata tidak dapat dihapus + Gagal menghapus metadata pribadi dari media. Unggahan dibatalkan. + Markah berhasil dipindahkan + Tidak ada pengaturan lightning + Lebih banyak pilihan + Pindah ke Pribadi + Pindah ke Publik + Unggah gambar sampul + Pilih gambar persegi sebagai karya seni untuk playlist ini. + + +%1$d lagu lainnya + + + %1$d lagu + + + %1$d trek + + Mengunggah sampul dan menerbitkan. Proses ini akan terus berjalan meskipun Anda meninggalkan layar. + Unggah file audio + Pilih MP3, WAV, atau FLAC. File akan diunggah ke server media Anda saat Simpan. + Unggah gambar sampul + Pilih gambar persegi sebagai karya seni untuk lagu ini. + Mengunggah sampul + audio dan menerbitkan. Proses ini akan terus berjalan meskipun Anda meninggalkan layar. + Bersuara. Kilik untuk meredam + Diredam. Klik untuk bersuara + Daftar Saya + Nama diperlukan + %1$dms + Pengaturan Namecoin + Identitas + Baca kunci publik Anda + Pesan + Tukar pesan dengan nApplet lain + Tindakan keyboard + Ikat pintasan keyboard + Notifikasi + Tampilkan notifikasi kepada Anda + Relay + Baca, tandatangani, dan terbitkan event Anda + Jaringan + Ambil sumber daya web dan Blossom + Penyimpanan + Penyimpanan pribadi miliknya sendiri + Tema + Sesuaikan warna aplikasi Anda + Unggahan + Unggah file ke server media Anda + Pembayaran + Bayar invoice Lightning + nApplet ini ingin membaca kunci publik Anda. + nApplet ini ingin membaca profil dan data akun Anda. + nApplet ini ingin menampilkan notifikasi kepada Anda. + + nApplet ini ingin membayar invoice Lightning sebesar %1$d sat. + + nApplet ini ingin menandatangani dan menerbitkan event kind %1$d sebagai Anda. + nApplet ini ingin mengirim event terenkripsi sebagai Anda. + nApplet ini ingin menandatangani dan menerbitkan event kind %1$d sebagai Anda: + nApplet ini ingin membaca event dari relay Anda. + nApplet ini ingin mengambil sumber daya web. + Situs ini ingin menandatangani event kind %1$d dengan kunci Nostr Anda. + nApplet ini ingin menggunakan penyimpanan pribadinya. + nApplet ini ingin mengunggah file ke server media Anda. + nApplet %1$s… + nApplets + Gagal mengirim pesan + Senyapkan pembicara ini + Pulihkan pembicara ini + Tinggalkan + Gagal menandai ruang sebagai ditutup. Meninggalkan tetap — ruang akan ditutup otomatis. + + %1$d pendengar + + Turunkan tangan + Bisukan mikrofon + Aktifkan mikrofon + Bisukan + Gagal menyimpan daftar server nest Anda. Coba lagi. + Nest — Live + Nests + Menjaga audio tetap berjalan saat ruang terbuka. + Nest terhubung + Berhenti + Ketuk untuk kembali. + Ikuti + Bisukan + Berhenti mengikuti + Aktifkan suara + meninggalkan nest + bergabung sebagai penonton + naik ke panggung + mengangkat tangan + sedang berbicara + Angkat tangan + Aktifkan suara + Nests + Disimpan sebagai event yang dapat diganti kind-10112 agar klien lain dapat membaca preferensi Anda. + Server Anda + Saran bawaan yang dapat Anda tambahkan ke daftar dengan satu ketukan. + Server yang Direkomendasikan + Server nest + tidak pernah + Lencana Baru + Kalender Baru + Acara Kalender Baru + Komunitas Baru + Moderator + Relay + Pengguna yang diblokir + Komentar komunitas (1111) + Artikel panjang (30023) + Postingan gambar (20) + Teks singkat (1) + Video pendek (22) + Postingan video (21) + Jenis acara yang diizinkan + Ukuran acara maksimum global (opsional) + Aturan yang dapat diverifikasi (opsional) + Gerbang web-of-trust (opsional) + Paket emoji baru + Tujuan Baru + Artikel Baru + Playlist baru + Trek musik baru + Produk Baru + Permintaan Baru + Utas Baru + Latihan Baru + + %1$d aset dibundel + + Aplikasi Blossom tidak ditemukan. Silakan instal aplikasi Blossom lokal untuk melihat file ini + Tidak dapat membuka tautan Blossom + Tidak ada aplikasi kamera yang ditemukan di perangkat ini + Tidak ada alamat Lightning yang diatur + Tidak ada aplikasi yang ditemukan untuk menangani pembayaran ini. Silakan instal dompet yang kompatibel. + Tidak ada aplikasi yang terinstal untuk menangani pembayaran %1$s. Silakan instal dompet yang kompatibel. + Tidak ada jenis reaksi yang dipilih. Tekan dan tahan untuk mengubah + Tidak ada pengaturan reaksi + Tidak ditemukan Dompet untuk membayar faktur lightning. Silakan instal dompet Lightning untuk menggunakan zaps + Tidak ditemukan Dompet untuk membayar faktur lightning (Kesalahan: %1$s). Silakan instal dompet Lightning untuk menggunakan zaps + Tidak Ada Pengaturan Jumlah Zap. Tekan dan tahan tombol untuk mengubah + Notifikasi + Kategori + Pengiriman + Tampilan dalam aplikasi + sekarang + Seni Nowhere + Drop Nowhere + Acara Nowhere + Forum Nowhere + Penggalangan Dana Nowhere + Situs Nowhere + Pesan Nowhere + Petisi Nowhere + Toko Nowhere + nSites + Ketelanjangan + Tidak dapat membuat referensi event + Tidak ada pubkey penerima pada catatan + Nutzap bersifat publik dan akan mengungkap catatan privat ini. Gunakan zap Lightning sebagai gantinya. + Nutzap gagal + + Kirim %1$s sats, %2$d cara + + Backend chain Bitcoin belum dikonfigurasi + Tidak dapat menyiarkan transaksi + Tidak dapat membangun transaksi + Tidak dapat memuat saldo Bitcoin Anda + Pembayaran terkirim, tetapi tanda terima zap tidak dapat dipublikasikan + + Pembayaran terkirim (%1$d dari %2$d tanda terima dipublikasikan), tetapi tanda terima berikutnya tidak dapat dipublikasikan + + Bagian penerima di bawah batas debu + Tidak dapat menandatangani transaksi + ~10 menit + ~30 menit + ~1 jam + Cepat + Normal + Lambat + %1$s · %2$s sat/vB · %3$s + + Dibagi di antara %1$d penerima + + + Melewati %1$d penerima yang hanya memiliki alamat Lightning — on-chain memerlukan pubkey Nostr untuk menurunkan alamat. + + + Gunakan pembagian zap %1$d-cara dari catatan ini + + menyiarkan + membangun transaksi + memuat saldo + mempublikasikan tanda terima + menandatangani + Hanya satu suara per pengguna yang diperbolehkan pada jenis pemungutan suara ini + Buka semua reaksi pada postingan ini + Terbuka + Port Orbot Socks + Penjelajah Bitcoin (OTS) + Ada bukti bahwa postingan ini ditandatangani sebelum %1$s. Bukti ini dicap dalam blockchain Bitcoin pada tanggal dan waktu tersebut. + Bukti Stempel Waktu + Relay Outbox + Kata sandi diperlukan + Jeda + Bayar + Pesan dari %1$s + Target Pembayaran + Tambahkan alamat pembayaran untuk jaringan berbeda (mis. bitcoin, lightning, ethereum). + PDF disimpan ke Unduhan/Amethyst + Metadata daftar ikutan dapat dilihat oleh siapa saja di Nostr. Hanya anggota privat Anda yang dienkripsi. + Metadata Daftar Ikutan + Gambar + Sematkan ke atas + Sematkan ke Profil + Putar + + %1$d episode + + Pembuat Pemungutan Suara tidak dapat memberikan suara dalam pemungutan suara sendiri. + (0–100)% + Jajak pendapat ditutup untuk suara baru + Pilihan ganda + Pilihan %1$s + Pilihan tunggal + Tidak dapat mengajukan pilihan + Polling + Kirim + + Postingan ini memiliki lebih dari %1$d hashtag + + Pratinjau Gambar Kartu untuk %1$s + Opsi Privasi + Kebijakan Privasi + <Gagal mendeskripsikan pesan pribadi>\n\nAnda dikutip dalam percakapan pribadi/terenkripsi antara %1$s dan %2$s. + Relay Kotak Masuk DM + Masukkan 1–3 relay sebagai kotak masuk pribadi Anda. Orang lain akan menggunakan relay ini untuk mengirim DM kepada Anda. Relay Kotak Masuk DM harus menerima pesan dari siapa saja, tetapi hanya mengizinkan Anda untuk mengunduhnya. Pilihan yang baik:\n - inbox.nostr.wine (berbayar)\n - auth.nostr1.com (gratis)\n - you.nostr1.com (relay pribadi - berbayar) + Pengguna menerima DM di relay ini + Pesan Pribadi + Jadikan pribadi: bungkus catatan sebagai hadiah hanya untuk pengguna yang diberitahu + Balasan ke catatan pribadi selalu tetap pribadi + Terlihat oleh + Relay Beranda Pribadi + Masukkan 1–3 relay untuk menyimpan event yang tidak dapat dilihat orang lain, seperti Draft dan/atau pengaturan aplikasi Anda. Idealnya, relay ini bersifat lokal atau memerlukan autentikasi sebelum mengunduh konten setiap pengguna. + Ujaran kotor/kebencian + Profil + Lencana profil + Rekomendasi Aplikasi + Lencana Profil + Umpan Pengikut + Umpan Zap Diterima + Tampilan Profil + profil + Usulkan Suntingan + Relay Proxy + Relay agregator yang harus digunakan aplikasi untuk mengunduh feed Anda, seperti filter.nostr.wine. Ini menggantikan model outbox dan akan membuat aplikasi hanya terhubung ke relay dalam daftar Anda. + Percakapan Publik + Obrolan publik terlihat oleh semua orang di Nostr dan siapa pun + dapat berpartisipasi. Sangat cocok untuk komunitas terbuka seputar topik tertentu. + Moderasi dapat dilakukan dengan menghapus postingan di relay-nya + Masukkan antara 1–3 relay yang menjadi host grup ini. + Klien Nostr menggunakan pengaturan ini untuk mengetahui tempat mengunduh dan mengirim pesan Anda. + relay + Metadata Obrolan Publik + Obrolan Publik + Relay Outbox/Beranda Publik + Jenis relay ini menyimpan semua konten Anda. Amethyst akan mengirim postingan Anda ke sini dan orang lain akan menggunakan relay ini untuk menemukan konten Anda. Masukkan 1–3 relay. Bisa berupa relay pribadi, relay berbayar, atau relay publik. + Pengguna memposting kontennya ke relay ini + Pesan Publik + Relay Kotak Masuk Publik + Jenis relay ini menerima semua balasan, komentar, suka, dan zap ke postingan Anda. Bisa berupa relay berbayar atau gratis. Batasan yang ditetapkan oleh operator relay dapat membatasi notifikasi yang Anda terima, baik positif maupun negatif. Misalnya, jika Anda diserang spam komentar, relay berbayar dapat menyaring spam tersebut. Masukkan 1–3 relay. + Pengguna menerima notifikasi di relay ini + ID Catatan + Hapus + Bisukan utas + Bagikan + Bagikan Tauatan ke Peramban + Batalkan bisukan utas + Reaksi + Reaksi + Baris Reaksi + Baca dari Relai + Jumlah dalam byte yang diterima dari relay ini, termasuk filter dan acara + Pengguna hanya-baca + Tekan dan tahan untuk merekam pesan + Obrolan relay + Obrolan relay adalah grup obrolan yang dikendalikan oleh relay induknya. + Obrolan ini terlihat oleh semua orang di Nostr dan siapa pun dapat berpartisipasi. + Sangat cocok untuk komunitas terbuka seputar topik tertentu. Beberapa grup ini bersifat sementara + sehingga pesan obrolan akan menghilang seiring waktu + Obrolan relay + Acara + IP + Kind + Pengguna + Pengaturan + Pengaturan Relay + daftar outbox + Relai + Isi ulang & kirim zap + Kirim zap + Isi ulang %1$s sats ke %2$s dan zap %3$s %4$s sats · biaya ≈ %5$s sats + Hapus + Hapus dari Penanda Publik + balas di sini.. + Beritahu: + + Minta Penghapusan + Permintaan untuk Menghapus + Gagal menyetel ulang status Marmot: %1$s + Setel Ulang Status Marmot + Status Marmot berhasil disetel ulang. + Coba ulang + Daftar kalender + Kalender + Catur + Temukan + Beranda + Impor Pengikutan + Pesan + Playlist + Musik + Notifikasi + Episode + Podcast + Jadwalkan postingan + Batalkan penjadwalan + Postingan terjadwal mungkin tidak diterbitkan hingga Anda membuka aplikasi lagi. Postingan terjadwal akun lain tidak akan berjalan saat akun ini aktif. Aktifkan selalu aktif di Pengaturan → Preferensi UI untuk penjadwalan latar belakang yang andal. + Postingan terjadwal mungkin tidak diterbitkan hingga Anda membuka aplikasi lagi. Aktifkan selalu aktif di Pengaturan → Preferensi UI untuk penjadwalan latar belakang yang andal. + Postingan terjadwal + Kirim sekarang + %1$s · dalam %2$s + %1$s · %2$s yang lalu + Besok + Kesalahan: %1$s + ID catatan disalin + + Keluar · %1$d postingan terjadwal dihapus + + Keluar + + Anda memiliki %1$d postingan terjadwal yang belum diterbitkan. Keluar akan menghapusnya secara permanen. + + Postingan terjadwal gagal + Postingan terjadwal diterbitkan + + ke %1$d relay + + Dibatalkan + Gagal + Terjadwal + Mengirim… + Terkirim + + · %1$d jatuh tempo dalam 1 jam + + + %1$d dalam antrean + + Pilihan yang baik:\n%1$s + Relay Pencarian + Relay Pencarian + Daftar relay yang digunakan saat mencari konten atau pengguna. Penandaan dan pencarian tidak akan berfungsi jika tidak ada pilihan yang tersedia. Pastikan mereka mengimplementasikan NIP-50. + acara yang dapat dicari + Kunci rahasia (nsec) disalin ke clipboard + Anda belum memblokir pengguna mana pun. + Filter Keamanan + Tidak ada kata tersembunyi. Tambahkan kata di bawah untuk menyembunyikan postingan yang mengandungnya. + Konten diblokir + Preferensi filter + Tidak ada akun yang ditandai sebagai spam dalam sesi ini. + Kirim + Kirim semua event profil (kind 0) yang diterima ke relay lokal Anda + Teruskan profil ke relay lokal + Dapat dibelanjakan untuk penerima ini: %1$s sats + Pembayaran gagal + Transaksi: %1$s + Membayar melalui %1$s… + Server tidak memberikan URL setelah pengunggahan + Pengaturan + Tidak ada utas yang dibisukan + Utas yang dibisukan + Bagikan sebagai Gambar + Bagikan sebagai URL Gambar + Unggah HLS + Bagikan atau Simpan + Shorts + Tampilkan kode QR kunci privat terenkripsi + Sertakan pesan langsung dan grup pada tab Notifikasi. Matikan untuk menyimpan pesan hanya di tab Pesan. + Tampilkan Pesan + Tampilkan kode QR kunci privat + Permintaan tanda tangan ditolak + Pastikan aplikasi penandatangan telah mengizinkan transaksi ini + Penanda tangan eksternal mengembalikan payload yang tidak sesuai dengan permintaan. Mungkin ada bug di Amethyst atau di penanda tangan. + Penanda tangan tidak ditemukan + Apakah aplikasi penanda tangan telah dihapus? Periksa apakah penanda tangan terpasang dan memiliki akun ini. Keluar dan masuk kembali jika aplikasi penanda tangan telah berubah. + Mundur %1$d detik + Maju %1$d detik + Aplikasi + Spam + Jumlah event spam yang berasal dari relay ini + Pengirim Spam + Tampilkan dua tab notifikasi — Mengikuti (orang yang Anda ikuti) dan Semua Orang. Indikator belum dibaca hanya menyala untuk aktivitas dari orang yang Anda ikuti. + Pisahkan notifikasi berdasarkan Mengikuti + Berusaha menghapus metadata pribadi dari file media yang didukung sebelum diunggah + Hapus metadata pribadi + Membaca latihan yang selesai dari Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) dan menyarankan untuk membagikannya sebagai postingan. Izin hanya diminta saat Anda menghubungkan. + Sarankan latihan untuk dibagikan + Sistem + Tema + Tema Gelap, Terang, atau Sistem + Pesan ini akan hilang dalam %1$s + + +%1$d\nbalasan + + Hari ini + Kustom + Buat sendiri + Default + Sembunyikan IP Anda dari relay acak + Orbot + Privasi Penuh + Sembunyikan IP Anda di semua koneksi + Internal + Mati + Prasetel Tor/Privasi + Ubah semua pengaturan di bawah dengan cepat + Semua kecuali Media + Sembunyikan IP Anda dari segalanya, kecuali gambar dan video + Relay DM + Paksa Tor untuk mengirim dan menerima DM + Gambar + Paksa Tor saat memuat gambar + Unggahan Media + Paksa Tor saat mengunggah konten + Operasi Uang + Paksa Tor pada zap, Lightning, dan transfer Cashu + Relay Tidak Tepercaya + Paksa Tor pada relay outbox/inbox + Verifikasi Alamat Nostr + Paksa Tor saat memverifikasi alamat NIP-05 + Url/Relay Onion + Gunakan Tor untuk url .onion apa pun + Foto Profil + Paksa Tor saat memuat foto profil + Relay Tepercaya + Paksa Tor pada semua relay di daftar Anda + Pratinjau URL + Paksa Tor saat memuat pratinjau url + Video + Paksa Tor saat memuat video + Dasar + Gunakan Tor saat diperlukan oleh server + Gagal membuka file + Tidak ada aplikasi torrent yang terpasang untuk membuka dan mengunduh file. + Event tidak memiliki cukup informasi untuk membangun tautan magnet + Gunakan penyiar terlacak saat mengirim acara. Menampilkan progres langsung dan status per-relay saat menyiarkan. + Siaran terlacak + Terjemahkan Ke + Pilih bahasa untuk menerjemahkan konten. + Terjemahan + Relay Tepercaya + Relay yang Anda percaya sehingga tidak memerlukan koneksi Tor + Lengkap + Performa + Disederhanakan + Preferensi UI + Mode UI + Pilih gaya postingan + Tidak dapat membuat faktur lightning sebelum mengirim zap. Dompet Lightning penerima mengirimkan kesalahan berikut: %1$s + Tidak dapat berbagi gambar, coba lagi nanti… + Tidak dapat berbagi video, coba lagi nanti… + Dekripsi Tidak Diizinkan + Penanda tangan tidak mengizinkan dekripsi yang diperlukan untuk melakukan operasi ini. Aktifkan dekripsi NIP-44 di aplikasi penanda tangan Anda dan coba lagi + Berhenti mengikuti + Lepas sematan + Lepas Sematan dari Profil + Unggahan dibatalkan + Kesalahan Unggahan + Unggahan suara gagal: %1$s + Gagal mengunggah pesan suara + NIP-95 belum didukung untuk pesan suara + %1$d%% uptime + Mesin Tor Aktif + Gunakan versi internal atau Orbot + Pengguna tidak memiliki alamat lightning (LN) yang diatur untuk menerima sats + Pengguna %1$s tidak memiliki alamat lightning yang diatur untuk menerima sats + Riwayat Penghapusan + Permintaan penghapusan terkirim + Kualitas lebih baik dengan ukuran file lebih kecil tetapi tidak semua perangkat mendukung pemutaran H.265. + Gunakan Codec H.265/HEVC + Unduhan video telah dimulai… + Tombol Pemutar Video + Video disimpan ke galeri video ponsel + Postingan Suara + Dalam + Tinggi + Netral + Tidak ada + Balasan Suara + Dompet + Dompet Cashu (NIP-60) + Wallet Connect + Penyedia koneksi dompet Anda menampilkan kesalahan berikut: %1$s + Edit mints + Menampilkan pesan peringatan saat postingan atau profil mendapat laporan dari orang yang Anda ikuti + Peringatkan pada laporan + Tambah Bookmark Web + Edit Bookmark Web + Bookmark Web + Apa yang anda pikirkan? + Latihan + Tulis pesan… + Tulis ke Relai + Jumlah dalam byte yang dikirim ke relay ini, termasuk filter dan acara + Zap + Zaps + + Ganti nama + Simpan diff --git a/commonsUI/src/commonMain/composeResources/values-it-rIT/strings.xml b/commonsUI/src/commonMain/composeResources/values-it-rIT/strings.xml index 55d2d6b643..0047a4154b 100644 --- a/commonsUI/src/commonMain/composeResources/values-it-rIT/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-it-rIT/strings.xml @@ -1764,4 +1764,1161 @@ URL base API Explorer Paga fattura dal DVM Paga %1$s sats al DVM + Informazioni & Legale + Impostazioni account + Aggiungi + Aggiungi un server Blossom + Aggiungi un server NIP-96 + Quando abilitato, Amethyst aggiunge un tag client NIP-89 agli eventi che pubblichi. + Aggiungi tag client ai miei eventi + Aggiunge un avviso di contenuto sensibile prima di mostrare questo contenuto + Contenuto Sensibile + Aggiungi ai segnalibri pubblici + Utilizza un modello AI sul dispositivo per proporre correzioni al testo e modifiche al tono. + Proponi miglioramenti al testo + Mantiene attive le connessioni ai tuoi relay inbox per notifiche in tempo reale + + Connesso a %1$d relay inbox + Connesso a %1$d relay inbox + + + Connesso a %1$d relay + Connesso a %1$d relay + + Connessione ai relay inbox in corso… + Notifiche Amethyst attive + Notifiche per chiamate vocali e video in arrivo + Chiamate in arrivo + %1$s ha accettato la tua sfida a scacchi + Ti notifica riguardo agli eventi delle partite di scacchi + Scacchi + Aggiornamenti scacchi + %1$s ha mosso — tocca a te + Notifica quando arriva un messaggio privato + Messaggi privati + Nuovi messaggi + Segna come letto + Ti notifica quando qualcuno ti menziona o ti cita in un post + %1$s ti ha menzionato + Menzioni + Nuove menzioni + Ti notifica quando qualcuno reagisce al tuo post + %1$s ha reagito al tuo post + per %1$s + Reazioni + Nuove reazioni + Ti notifica quando qualcuno risponde al tuo post + Risposte + Nuove risposte + Rispondi + Notifiche quando un post programmato viene pubblicato o non riesce a essere pubblicato. + Post programmati + Notifica quando qualcuno ti invia uno zap + per %1$s + Da %1$s + Zaps Ricevuti + Nuovi zap + Impostazioni app + Attestazione + Richiesta di Attestazione + Competenza Attestatore + Raccomandazione Attestatore + Visualizzatore audio + Salva automaticamente una bozza dell'evento quando scrivi o esci da un compositore con testo non inviato, e la invia ai tuoi relay di outbox privati. + Crea bozze automaticamente + Scorrimento immersivo + Nascondi le barre di navigazione durante lo scorrimento + Anteprima dell'immagine + Carica automaticamente immagini e GIF + Riproduzione video + Riproduce automaticamente video e GIF + Foto del profilo + Mostra le foto del profilo + Anteprima URL + Mostra anteprime URL + Riproduzione automatica video + Riproduci automaticamente i video quando sono visibili sullo schermo + Impossibile rimuovere i metadati dall'AVIF: %1$s + Assegna badge + Indietro + Esegui backup delle chiavi + Badge + Autenticazione fallita + L'autenticazione biometrica non ha riconosciuto il proprietario di questo telefono + L'autenticazione biometrica non ha riconosciuto il proprietario di questo telefono. Errore: %1$s + Blocca + Relay bloccati + Amethyst non si connetterà mai a questi relay + Utenti bloccati + Nuova lista segnalibro + Metadati lista segnalibro + I metadati delle liste segnalibro sono visibili a tutti su Nostr. Solo i tuoi membri privati sono cifrati. + Segnalibri + Condividi + Barra di navigazione inferiore + Relay broadcast + Relay specializzati nel diffondere le tue note a tutti gli altri relay, come sendit.nosflare.com. Amethyst aggiungerà questo relay a tutti i nuovi eventi creati da te + Preferiti + Caricamento tramite il web aperto. Tocca per usare Tor. + Caricamento tramite Tor. Tocca per usare il web aperto. + + %1$s, %2$d evento + %1$s, %2$d eventi + + Caricamento immagine fallito + L'immagine selezionata non ha potuto essere caricata. Riprova o incolla un URL. + Condividi evento del calendario + Apri nelle mappe + Apri link + In corso ora + %1$s · termina %2$s + + Inizia tra %1$d minuto + Inizia tra %1$d minuti + + Avviso quando un evento a cui partecipi sta per iniziare. + Promemoria calendario + Evento del calendario + Viene inviata una notifica quando un evento a cui partecipi sta per iniziare. + Invia promemoria + Promemoria calendario + Giorno + Mese + Settimana + Accetta + Fotocamera disattiva + Fotocamera attiva + Auricolare + Riaggancia + Chiamata in arrivo + Videochiamata in arrivo… + Chiamata vocale in arrivo… + Disattiva microfono + Chiamate + Notifica di chiamata in corso + Amethyst ha bisogno dell'accesso alla fotocamera e al microfono per avviare una videochiamata. Attivali nelle impostazioni dell'app. + Amethyst ha bisogno dell'accesso al microfono per avviare una chiamata vocale. Attivalo nelle impostazioni dell'app. + Rifiuta + Impostazioni chiamata + Altoparlante + Attiva microfono + Chiamata con %1$s + URL di callback non trovato dalla risposta di %1$s + Cancella + Token di Cashu + Verifica del mint in corso… + Impossibile riscattare Cashu + Il mint ha fornito il seguente messaggio di errore: %1$s + Ricevuto + Inviato + Mint corrispondenti + + +%1$d altro + +%1$d altri + + Mint popolari + + Raccomandato da %1$d altro + Raccomandato da %1$d altri + + Spostati %1$s sat in %2$s. + Nessun wallet Cashu compatibile trovato nel sistema + + %1$d fattura in sospeso + %1$d fatture in sospeso + + Pagare %1$s sat + fino a %2$s sat di commissioni? + Pubblica una richiesta di eliminazione per la tua raccomandazione kind:38000 di %1$s. I relay che rispettano NIP-09 la rimuoveranno. + Recuperati %1$s sats in %2$s prove. + Cashu ricevuto + %1$s sats sono stati inviati al tuo wallet. (Commissioni: %2$s sats) + + Fondi detenuti presso %1$d mint che non usi + Fondi detenuti presso %1$d mint che non usi + + In attesa del pagamento della fattura… + Interrompi trasmissione + Trasmetti al dispositivo + Standard di sicurezza per i minori + Accessori + Arte + Libri + Abbigliamento + Oggetti da collezione + Artigianato + Elettronica + Cibo + Mobili + Casa + Varie + Ufficio + Altro + Animali domestici + Sport + Giornaliero + Mensile + Una tantum + Settimanale + Pagare %1$s tramite %2$s? + Pagare questa fattura tramite %1$s? + Il servizio di addebito non ha completato il pagamento. + Inserisci un importo valido per questa offerta. + Richiesta fattura in corso… + Chiudi tutte le reazioni a questo post + Chiusi + Comunità + La bozza è di %1$d byte; questa community limita questo kind a %2$d byte. + La bozza è di %1$d byte; questa community limita gli eventi a %2$d byte. + Hai già pubblicato %1$d eventi di questo kind oggi (limite %2$d). + Impostazioni Composizione + La porta predefinita è 9050 + Relay connessi + Lista attuale dei relay in uso + Percentuale di connessioni riuscite al relay + Sempre + Mai + WiFi non a consumo + Aggiungi Documento + Aggiungi Immagine + Aggiungi media + Aggiungi Video + Nascondi + Avvisa + Mostra + Conversazioni + Converte le GIF animate in video MP4 per dimensioni di file inferiori e migliore compatibilità di riproduzione. + Converti GIF in MP4 + ID della nota copiato (@note1) negli appunti + Testo della nota copiato negli appunti + Copiato negli appunti + @npub dell'autore copiata negli appunti + Copia la mia chiave segreta + Copia negli appunti + Impossibile assemblare LNUrl dall'indirizzo Lightning "%1$s". Controlla la configurazione dell'utente + Impossibile verificare il file scaricato dopo il caricamento: %1$s + Impossibile scaricare il media caricato dal server + Impossibile recuperare la fattura da %1$s: %2$s + Impossibile aprire il file compresso + Wallet non trovato + Amethyst non ha trovato app wallet compatibili con Nostr Wallet Connect (NWC). +\n\nCosa puoi fare: +\n\t1. Verifica il supporto NWC: controlla che la tua app wallet preferita sia compatibile con Nostr Wallet Connect. +\n\t2. Crea connessione: vai nella tua app wallet e crea una nuova connessione NWC. +\n\t3. Collega ad Amethyst: la tua app wallet ti offrirà solitamente tre opzioni: +\n\t\t3.1 Collegamento automatico: un pulsante per aprire e connettersi automaticamente ad Amethyst. In tal caso, clicca quel pulsante, apri Amethyst e premi salva nella nuova schermata. +\n\t\t3.2 Collegamento manuale: un URI di connessione che puoi copiare e incollare tramite l'icona di incolla in questa schermata. +\n\t\t3.3 Codice QR: il wallet crea un codice QR che puoi leggere tramite il pulsante QR in questa schermata. + + Crea + g + Zona pericolosa + Scuro + Descrizione + Rendi pubblico + Chat + Comunità + Algoritmi del feed + Pacchetti di follow + Letture + Relay casella DM + DM + Non tradurre da + Le lingue mostrate qui non verranno tradotte. Seleziona una lingua per rimuoverla e farla tradurre di nuovo. + Salva sul telefono + Download video in corso… + Nota in bozza + Bozze + Profili + Crea + Feed + Naviga + Sistema + Tu + + %1$d giorno + %1$d giorni + + + %1$d ora + %1$d ore + + + %1$d minuto + %1$d minuti + + + %1$d mese + %1$d mesi + + + %1$d settimana + %1$d settimane + + + %1$d anno + %1$d anni + + Modifica calendario + Modifica evento del calendario + Modifica comunità + Modifica pacchetto emoji + Modifica playlist + Modifica post + Le emoji private sono archiviate in modo cifrato sui relay e visibili solo a te. Appaiono nel tuo menu reazioni e nel completamento automatico ":" proprio come quelle pubbliche. + Le emoji pubbliche sono visibili a tutti e appaiono nel tuo menu reazioni e nel selettore di completamento automatico ":" quando questo pacchetto è nella tua lista emoji. + Emoji + Crittografa i file prima del caricamento per la privacy. Alcuni server potrebbero non accettare file crittografati con account gratuiti. + Crittografa i file + Chat effimera + Errore + Impossibile pagare la fattura + Impossibile prelevare + Impossibile aprire il pagamento + Impossibile inviare lo zap + Errore nell'apertura dell'app signer + L'app signer non è stata trovata. Verifica che l'app non sia stata disinstallata + Errore analisi messaggio d'errore + Errore nel parsing JSON da %1$s. Controlla la configurazione Lightning dell'utente + Impossibile recuperare la fattura dai server del destinatario + Apri nel browser + Impossibile riprodurre questo video + Il codec o il formato non è supportato su questo dispositivo (%1$s). Prova ad aprirlo nel browser. + Errori + Sincronizzazione relay + eventi da te + eventi per te + Ciclismo + Dieta + Digiuno + Escursionismo + Meditazione + Canottaggio + Corsa + Forza + Nuoto + Camminata + Espandi + Data di scadenza + Esporta impostazioni relay + Eliminazione fallita: %1$s + Impossibile cifrare la tua chiave privata + Salvataggio dell'immagine non riuscito + Impossibile salvare il PDF + Impossibile salvare il video + Molti server non accettano file crittografati con account gratuiti. Puoi riprovare senza crittografia. + Caricamento crittografato fallito + Errore di caricamento: %1$s + Caricamento del media fallito + Caricamento su %1$s fallito: %2$s + Aggiungi ai preferiti + Si carica tramite il web aperto. + Si carica tramite Tor. + Recenti + Rimuovi dai preferiti + Questa app non è ancora caricata. Riprova tra un momento. + App preferite + Algoritmi feed preferiti + Pagamento effettuato + Pubblicato sui relay + File caricato + Feed relay preferiti + Relay che visiti spesso per vedere il loro feed globale + Comunità + Algoritmi feed + Feed + Hashtag + Gruppi di interessi + Liste + Luoghi + Relay + Server file + Scegli un server su cui caricare questo file + Nasconde i post di sconosciuti che sono stati identici per 5 o più volte + Filtra spam + Segui + Segui anche tu + Tutti gli algoritmi feed preferiti + Intorno a me + Curata + Globale + Lista seguiti predefinita + Tutti i seguiti + Tutti i seguiti utenti + La mia + Lista silenziati + Nuovo pacchetto di seguiti + Modifica Follow Pack + I metadati del Follow Pack possono essere visti da chiunque su Nostr e vengono spesso pubblicati su molti siti web come kit di avvio per i nuovi utenti. + Metadati Follow Pack + Nuova lista di seguiti + Modifica lista + Stile galleria del profilo + Scegli lo stile della galleria + Classico + Moderno + Post esclusivo per posizione + Solo i follower della posizione lo vedranno. I tuoi follower generali non lo vedranno. + %1$s finanziati su un obiettivo di %2$s sats + Questo contenuto è cambiato. L'autore potrebbe non aver visto o approvato la modifica + Cosa significa questo? + Questo contenuto è lo stesso da quando è stato pubblicato + Ciao %1$s, è ancora disponibile? + Parole nascoste + Rimuove i post dai feed della community quando la community pubblica un documento di regole NIP-9B e un evento non lo rispetta. Nessun effetto quando una community non ha regole strutturate. + Nascondi post che violano le regole della community + Nascondi password + Caricamento %1$s (%2$d di %3$d) + Tutto + Bad Request - Il server non può o non vuole elaborare la richiesta. + Unauthorized - L'utente non dispone di credenziali di autenticazione valide + Payment Required - Il server richiede un pagamento per completare la richiesta + Forbidden - L'utente non ha i diritti di accesso per effettuare la richiesta + Not Found - Il server non riesce a trovare l'indirizzo richiesto + Method Not Allowed - Il server supporta il metodo di richiesta, ma non la risorsa di destinazione + Not Acceptable - Il server non trova contenuti che soddisfino la richiesta. + Proxy Authentication Required - L'utente non dispone di credenziali di autenticazione valide + Request Timeout - Il server ha esaurito il tempo di attesa per qualcun altro + Conflict - Il server non può soddisfare la richiesta perché c'è un conflitto con la risorsa + Gone - Il contenuto richiesto è stato eliminato definitivamente dal server e non sarà ripristinato + Length Required - Il server rifiuta la richiesta perché richiede un Content-Length definito + Precondition Failed - Le precondizioni della richiesta nei campi dell'intestazione non sono soddisfatte dal server + Payload Too Large - La richiesta è più grande dei limiti definiti dal server, che si rifiuta di elaborarla + URI Too Long - L'URL richiesto dal client è troppo lungo per essere elaborato dal server. + Unsupported Media Type - La richiesta usa un formato multimediale non supportato dal server + Range Not Satisfiable - Il server non può soddisfare il valore indicato nel campo dell'intestazione Range della richiesta. + Expectation Failed - Il server non può soddisfare i requisiti indicati dal campo dell'intestazione della richiesta Expect + Upgrade Required - Il server si rifiuta di elaborare la richiesta con il protocollo corrente a meno che il client non effettui l'upgrade a un protocollo diverso. + Internal Server Error - Il server ha riscontrato un errore imprevisto e non può completare la richiesta + Not Implemented - Il server non può soddisfare la richiesta o non riconosce il metodo di richiesta + Bad Gateway - Il server agisce come gateway e ha ricevuto una risposta non valida dall'host + Servizio non disponibile - Si verifica spesso quando un server è sovraccarico o in manutenzione + Timeout del gateway - Il server stava fungendo da gateway o proxy ed è scaduto in attesa di una risposta + Versione HTTP non supportata - Il server non supporta la versione HTTP nella richiesta + Anche la variante negozia - Il server ha un errore di configurazione interna + Spazio di archiviazione insufficiente - Il server non dispone di spazio sufficiente per elaborare la richiesta con successo + Loop rilevato - Il server rileva un ciclo infinito durante l'elaborazione della richiesta + Autenticazione di rete richiesta - Il client deve essere autenticato per accedere alla rete + Comportamento scorretto + Immagine salvata nella galleria + Impersonificazione + Relay Inbox + Importo fattura errato (%1$s sats) da %2$s. Avrebbe dovuto essere %3$s + Relay indicizzatori + Relay specializzati nell'ospitare i metadati e le liste relay di tutti, come purplepag.es. Amethyst userà questi relay per trovare utenti che non sono nelle tue liste. + Nuovo set di interessi + Rinomina + Set di hashtag + Chiave non valida + Chiave non valida: %1$s + Indirizzo non valido + Amethyst ha ricevuto un URI da aprire ma era non valido: %1$s + Non è possibile citare una nota in bozza + Non è possibile reagire a una nota in bozza + Non è possibile rispondere a una nota in bozza + Non è possibile zappare una nota in bozza + La chiave è obbligatoria + Relay KeyPackage + Relay dove vengono pubblicati i tuoi MLS KeyPackage (MIP-00). Gli altri utenti recuperano questi KeyPackage per invitarti nelle chat di gruppo Marmot. Inserisci tra 1 e 3 relay che accettano eventi KeyPackage da te e consentono letture pubbliche. + Set badge accettati + Prologo avventura + Lettura avventura + Scena avventura + Consigli app + Appuntamento + App + RSVP appuntamento + Intestazione audio + Traccia audio + Podcast creati + Assegnazioni badge + Definizioni badge + Dati blob + Intestazioni blob + Relay bloccati + Blog + Autenticazione Blossom + Server Blossom + Lista segnalibri + Relay di trasmissione + Calendario + Definizione canale + Nascondi messaggio canale + Lista canali + Messaggio canale + Metadati canale + Silenzia utente nel canale + Autenticazione scacchi + Sfide a scacchi + Offerta di patta a scacchi + Accettazione partita a scacchi + Fine partita a scacchi + Partite a scacchi + Mossa a scacchi + Annunci + Commenti + Definizione comunità + Lista community + Post della community + Scheda contatto + Appuntamento giornaliero + Eliminazioni + File DM + Messaggio DM + Relay DM + Bozze + Richiesta contenuto DVM + Risposta contenuto DVM + Stato DVM + Richiesta utente DVM + Risposta utente DVM + Modifiche + Lista pacchetti emoji + Pacchetti emoji + Chat effimera + Stanze chat effimere + Podcast preferiti + Relay preferiti + Intestazioni file + Server file + Lista di follow + Pacchetti di follow + Follow geohash + GiftWrap + Issue Git + Patch Git + Risposta Git + Repository Git + Follow hashtag + Evidenziazioni + Autenticazione HTTP + Lista relay indice + Chat live + Streaming live + Dati medici + Sala riunioni + Spazio riunioni + Playlist musicale + Traccia musicale + Lista silenziati + Segnalibri con nome + Server Nests + NIP-04 DM + Note + Richiesta NWC + Risposta NWC + Vecchia lista segnalibri + Relay in uscita + Liste persone + Immagini + Pin + Episodio podcast + Podcast + Sondaggio + Risposta al sondaggio + Relay privati + Zap privati + Profilo + Badge del profilo + Galleria profilo + Relay proxy + Messaggio pubblico + Reazioni + Autenticazione relay + Scoperta relay + Annuncio monitor relay + Set di relay + Segnalazioni + Repost + Repost (16) + Presenza in stanza + Sigilli + Relay di ricerca + Commenti torrent + Torrent + Provider attendibili + Relay attendibili + Eliminazione utente + Impostazioni utente + Stato utente + Messaggio vocale + Risposta vocale + Segnalibro web + Allenamenti + Obiettivi zap + Sondaggio zap + Richiesta zap + Zap + Conosciuto + Preferenze di visualizzazione della lingua + Per ogni coppia di lingue tradotte, scegli quale lingua mostrare per prima. + Visto l'ultima volta %1$s fa + Visto proprio ora + Mai visto + Visto l'ultima volta il %1$s (%2$s fa) + Esci + Chiaro + Dirette + Relay locali + Lista di relay in esecuzione su questo dispositivo. + Accedi con una chiave privata per poter condividere i post + Accedi con una chiave privata per poter seguire + Stai usando una chiave pubblica che è di sola lettura. Accedi con una chiave privata per poter nascondere una parola o una frase + Accedi con una chiave privata per poter rispondere + Accedi con una chiave privata per poter inviare gli Zap + Stai usando una chiave pubblica che è di sola lettura. Accedi con una chiave privata per poter mostrare una parola o una frase + Stai usando una chiave pubblica che è di sola lettura. Accedi con una chiave privata per poter firmare eventi + Accedi con una chiave privata per poter smettere di seguire + Stai usando una chiave pubblica che è di sola lettura. Accedi con una chiave privata per poter caricare file + Accedi con una chiave privata per mettere mi piace ai post + Video + I miei pacchetti emoji + Aggiunta di %1$s… + Privilegi di amministratore concessi + Privilegi di amministratore revocati + Impossibile aggiungere %1$s: %2$s + Creazione del gruppo non riuscita: %1$s + Impossibile concedere i privilegi di amministratore: %1$s + Impossibile lasciare il gruppo: %1$s + Impossibile rimuovere il membro: %1$s + Impossibile revocare i privilegi di amministratore: %1$s + Aggiornamento non riuscito: %1$s + Gruppo MLS + Informazioni del gruppo aggiornate + + %1$d membro + %1$d membri + + Membro rimosso + Non sei membro di questo gruppo + errore sconosciuto + Media aggiunto + Media aggiunto alla tua galleria del profilo + Download del media avviato… + Server media + Il media è troppo grande per NIP-95 + Inserisci prima la destinazione del messaggio + Impossibile caricare + Soggetto + Impossibile rimuovere i metadati + Impossibile rimuovere i metadati privati dal media. Caricamento annullato. + Segnalibri migrati con successo + Configurazione Lightning mancante + Più Opzioni + Sposta in privato + Sposta in pubblico + Carica un'immagine di copertina + Scegli un'immagine quadrata come artwork per questa playlist. + + +%1$d altra traccia + +%1$d altre tracce + + + %1$d traccia + %1$d tracce + + + %1$d traccia + %1$d tracce + + Caricamento copertina e pubblicazione in corso. Continuerà anche se esci dalla schermata. + Carica un file audio + Scegli un MP3, WAV o FLAC. Verrà caricato sul tuo server multimediale al salvataggio. + Carica un'immagine di copertina + Scegli un'immagine quadrata come artwork per questa traccia. + Caricamento copertina + audio e pubblicazione in corso. Continuerà anche se esci dalla schermata. + Audio acceso. Clicca per disattivarlo + Mutato. Clicca per riattivare l'audio + Le mie liste + Il nome è obbligatorio + Impostazioni Namecoin + Identità + Leggi la tua chiave pubblica + Messaggistica + Scambia messaggi con altre nApplet + Azioni tastiera + Associa scorciatoie da tastiera + Notifiche + Mostrarti notifiche + Relay + Leggi, firma e pubblica i tuoi eventi + Rete + Recupera risorse web e Blossom + Archiviazione + Archiviazione privata dedicata + Tema + Adatta i colori alla tua app + Caricamenti + Carica file sul tuo server multimediale + Pagamenti + Paga le fatture Lightning + Questa nApplet vuole leggere la tua chiave pubblica. + Questa nApplet vuole leggere il tuo profilo e i dati del tuo account. + Questa nApplet vuole mostrarti delle notifiche. + + Questa nApplet vuole pagare una fattura Lightning di %1$d sat. + Questa nApplet vuole pagare una fattura Lightning di %1$d sats. + + Questa nApplet vuole firmare e pubblicare un evento kind:%1$d a tuo nome. + Questa nApplet vuole inviare un evento cifrato a tuo nome. + Questa nApplet vuole firmare e pubblicare un evento kind:%1$d a tuo nome: + Questa nApplet vuole leggere eventi dai tuoi relay. + Questa nApplet vuole recuperare una risorsa web. + Questo sito vuole firmare un evento kind:%1$d con la tua chiave Nostr. + Questa nApplet vuole utilizzare la propria archiviazione privata. + Questa nApplet vuole caricare un file sul tuo server multimediale. + Impossibile inviare il messaggio + Silenzia questo speaker + Ripristina questo speaker + Esci + Impossibile contrassegnare la stanza come chiusa. Uscita comunque — la stanza si chiuderà automaticamente. + + %1$d ascoltatore + %1$d ascoltatori + + Abbassa la mano + Silenzia microfono + Attiva microfono + Silenzia + Impossibile salvare la lista dei server nest. Riprova. + Mantiene l'audio attivo mentre una stanza è aperta. + Nest connesso + Ferma + Tocca per tornare. + Segui + Silenzia + Non seguire più + Attiva audio + ha lasciato il nest + è entrato come ascoltatore + è salito sul palcoscenico + ha alzato la mano + sta parlando + Alza la mano + Attiva audio + Salvato come evento kind-10112 sostituibile così altri client possono leggere le tue preferenze. + I tuoi server + Suggerimenti integrati che puoi aggiungere alla tua lista con un tocco. + Server consigliati + Server nest + mai + Nuovo badge + Nuovo calendario + Nuovo evento del calendario + Nuova comunità + Moderatori + Relay + Utenti bannati + Commento comunità (1111) + Articolo lungo (30023) + Post immagine (20) + Testo breve (1) + Video breve (22) + Post video (21) + Tipi di evento consentiti + Dimensione massima globale degli eventi (opzionale) + Regole verificabili (opzionale) + Filtro web-of-trust (opzionale) + Nuovo pacchetto emoji + Nuovo Obiettivo + Nuovo articolo + Nuova playlist + Nuova traccia musicale + Nuovo prodotto + Nuove richieste + Nuove Discussioni + Nuovo allenamento + + %1$d asset incluso + %1$d asset inclusi + + App Blossom non trovate. Installa un'app Blossom locale per visualizzare questo file + Impossibile aprire i link Blossom + Nessuna app fotocamera trovata su questo dispositivo + Nessun indirizzo Lightning impostato + Nessuna app trovata per gestire questo pagamento. Installa un portafoglio compatibile. + Nessuna app installata per gestire i pagamenti %1$s. Installa un portafoglio compatibile. + Nessun tipo di reazione selezionato. Premi a lungo per cambiare + Nessuna reazione configurata + Nessun wallet trovato per pagare una fattura Lightning. Installa un wallet Lightning per usare gli zap + Nessun wallet trovato per pagare una fattura Lightning (Errore: %1$s). Installa un wallet Lightning per usare gli zap + Nessun ammontare per gli Zap impostato. Tieni premuto per cambiare + Notifiche + Categorie + Consegna + Visualizzazione in-app + adesso + Arte Nowhere + Drop Nowhere + Evento Nowhere + Forum Nowhere + Raccolta fondi Nowhere + Sito Nowhere + Messaggio Nowhere + Petizione Nowhere + Negozio Nowhere + Nuditá + Impossibile costruire il riferimento all'evento + Nessuna chiave pubblica del destinatario nella nota + I nutzap sono pubblici e rivelerebbero questa nota privata. Usa uno zap Lightning invece. + Nutzap fallito + + Invia %1$s sats, %2$d modo + Invia %1$s sats, %2$d modi + + Il backend blockchain Bitcoin non è configurato + Impossibile trasmettere la transazione + Impossibile costruire la transazione + Impossibile caricare il saldo Bitcoin + Pagamento inviato, ma la ricevuta dello zap non ha potuto essere pubblicata + + Pagamento inviato (%1$d di %2$d ricevuta pubblicata), ma la ricevuta successiva non ha potuto essere pubblicata + Pagamento inviato (%1$d di %2$d ricevute pubblicate), ma la ricevuta successiva non ha potuto essere pubblicata + + La quota di un destinatario è inferiore al dust + Impossibile firmare la transazione + ~1 ora + Veloce + Normale + Lenta + + Divisione tra %1$d destinatario + Divisione tra %1$d destinatari + + + %1$d destinatario con solo indirizzo Lightning ignorato — onchain richiede una chiave pubblica Nostr per derivare l'indirizzo. + %1$d destinatari con solo indirizzo Lightning ignorati — onchain richiede una chiave pubblica Nostr per derivare l'indirizzo. + + + Usa la divisione zap %1$d vie di questa nota + Usa la divisione zap %1$d vie di questa nota + + trasmissione + costruzione della transazione + caricamento saldo + pubblicazione della ricevuta + firma + Per questo tipo di sondaggio è consentito solo un voto per utente + Apri tutte le reazioni a questo post + Aperti + Porta Socks di Orbot + Explorer Bitcoin (OTS) + C'è la prova che questo post è stato firmato prima del %1$s. La prova è stata registrata nella blockchain Bitcoin in quella data e ora. + Prova di timestamp + Relay Outbox + La password è obbligatoria + Pausa + Paga + Messaggio da %1$s + Destinatari di pagamento + Aggiungi indirizzi di pagamento per reti diverse (es. bitcoin, lightning, ethereum). + PDF salvato in Download/Amethyst + I metadati delle liste dei seguiti possono essere visti da chiunque su Nostr. Solo i tuoi membri privati sono cifrati. + Metadati lista dei seguiti + Immagini + Fissa in cima + Fissa al profilo + Riproduci + + %1$d episodio + %1$d episodi + + Gli autori del sondaggio non possono votare nei propri sondaggi. + Il sondaggio è chiuso a nuovi voti + Scelta multipla + Opzione %1$s + Scelta singola + Impossibile votare + Sondaggi + + Questo post ha più di %1$d hashtag + Questo post ha più di %1$d hashtag + + Anteprima immagine per %1$s + Opzioni privacy + Informativa sulla privacy + <Incapace di decriptare il messaggio privato>\n\nSei stato citato in una conversazione privata/criptata tra %1$s e %2$s. + Relay casella DM + Inserisci tra 1 e 3 relay come casella di posta privata. Gli altri useranno questi relay per inviarti DM. I relay casella DM dovrebbero accettare qualsiasi messaggio da chiunque, ma permettere solo a te di scaricarli. Buone opzioni sono:\n - inbox.nostr.wine (a pagamento)\n - auth.nostr1.com (gratuito)\n - you.nostr1.com (relay personali - a pagamento) + L'utente riceve DM su questi relay + Messaggio privato + Rendi privato: gift-wrap la nota solo agli utenti notificati + Le risposte a una nota privata rimangono sempre private + Visibile a + Relay Home privati + Inserisci tra 1 e 3 relay per memorizzare eventi che nessun altro può vedere, come le tue bozze e/o le impostazioni dell'app. Idealmente, questi relay sono locali o richiedono autenticazione prima di scaricare i contenuti di ciascun utente. + Volgaritá / Linguaggio forte + Profilo + Badge del profilo + Suggerimenti app + Badge del profilo + Feed follower + Feed zap ricevuti + UI profilo + profili + Proponi una modifica + Relay proxy + Relay aggregatori che l'app deve usare per scaricare i tuoi feed, come filter.nostr.wine. Questo sostituisce il modello outbox e farà connettere l'app solo ai relay nelle tue liste. + Chat Pubblica + Le chat pubbliche sono visibili a tutti su Nostr e chiunque + può parteciparvi. Sono ideali per comunità aperte su argomenti specifici. + La moderazione può essere controllata eliminando i post sui relay associati + Inserisci tra 1 e 3 relay che ospitano questo gruppo. + I client Nostr usano questa impostazione per sapere da dove scaricare i messaggi e dove inviare i tuoi messaggi. + Relay + Metadati chat pubblica + Chat pubbliche + Relay Outbox/Home pubblici + Questo tipo di relay conserva tutti i tuoi contenuti. Amethyst invierà i tuoi post qui e gli altri useranno questi relay per trovare i tuoi contenuti. Inserisci tra 1 e 3 relay. Possono essere relay personali, a pagamento o pubblici. + L'utente sta pubblicando i suoi contenuti su questi relay + Messaggio pubblico + Relay Inbox pubblici + Questo tipo di relay riceve tutte le risposte, i commenti, i mi piace e gli zap ai tuoi post. Possono essere relay a pagamento o gratuiti. I limiti impostati dall'operatore del relay possono limitare le notifiche che ricevi, nel bene e nel male. Ad esempio, se stai subendo spam nei commenti, i relay a pagamento possono filtrarlo. Inserisci tra 1 e 3 relay. + L'utente riceve notifiche su questi relay + ID della nota + Elimina + Silenzia thread + Condividi + Condividi Collegamento Browser + Riattiva thread + Reazione + Reazioni + Riga reazioni + Leggi dal Relè + La quantità in byte ricevuta da questo relay, inclusi filtri ed eventi + Utente in sola lettura + Tieni premuto per registrare un messaggio + Chat relay + Le chat relay sono gruppi di chat controllati dal loro relay di riferimento. + Sono visibili a tutti su Nostr e chiunque può parteciparvi. + Sono ideali per comunità aperte su argomenti specifici. Alcuni di questi gruppi sono effimeri + e quindi i messaggi della chat scompaiono nel tempo + Chat relay + Eventi + IP + Utenti + Impostazioni + Impostazioni relay + liste outbox + Relè + Ricarica & invia zap + Invia zap + Ricarica %1$s sats su %2$s e zappa %3$s %4$s sats · commissione ≈ %5$s sats + Cancella + Rimuovi dai segnalibri pubblici + rispondi qui.. + Notificare: + + Richiedi cancellazione + Richiesta di Cancellazione + Impossibile reimpostare lo stato Marmot: %1$s + Reimposta stato Marmot + Stato Marmot reimpostato. + Riprova + Liste calendari + Calendari + Scacchi + Scopri + Importa seguiti + Messaggi + Playlist + Musica + Notifiche + Episodi + Podcast + Programma post + Annulla programmazione + I post programmati potrebbero non essere pubblicati fino alla riapertura dell'app. I post programmati degli altri account non verranno inviati mentre questo account è attivo. Abilita la modalità sempre attiva in Impostazioni → Preferenze UI per una pianificazione in background affidabile. + I post programmati potrebbero non essere pubblicati fino alla prossima riapertura dell'app. Abilita la modalità sempre attiva in Impostazioni → Preferenze UI per una pianificazione in background affidabile. + Post programmati + Invia ora + %1$s · tra %2$s + %1$s · %2$s fa + Domani + Errore: %1$s + ID nota copiato + + Disconnesso · %1$d post programmato eliminato + Disconnesso · %1$d post programmati eliminati + + Disconnesso + + Hai %1$d post programmato non ancora pubblicato. La disconnessione lo eliminerà definitivamente. + Hai %1$d post programmati non ancora pubblicati. La disconnessione li eliminerà definitivamente. + + Post programmato fallito + Post programmato pubblicato + + a %1$d relay + a %1$d relay + + Annullato + Fallito + Programmato + Invio in corso… + Inviato + + · %1$d in scadenza tra 1h + · %1$d in scadenza tra 1h + + + %1$d in coda + %1$d in coda + + Buone opzioni sono:\n%1$s + Relay di ricerca + Relay di ricerca + Lista di relay da usare nella ricerca di contenuti o utenti. Il tag e la ricerca non funzioneranno se non sono disponibili opzioni. Assicurati che implementino NIP-50. + eventi ricercabili + Chiave segreta (nsec) copiata negli appunti + Non hai ancora bloccato nessun utente. + Filtri di sicurezza + Nessuna parola nascosta. Aggiungi una parola qui sotto per nascondere i post che la contengono. + Contenuto bloccato + Preferenze di filtraggio + Nessun account è stato segnalato come spam in questa sessione. + Invia + Invia tutti gli eventi profilo ricevuti (kind 0) al tuo relay locale + Invia profili al relay locale + Spendibile per questo destinatario: %1$s sats + Pagamento fallito + Transazione: %1$s + Pagamento tramite %1$s… + Il server non ha fornito un URL dopo il caricamento + Impostazioni + Nessun thread silenziato + Thread silenziati + Condividi come immagine + Condividi come URL immagine + Caricamento HLS + Condividi o salva + Mostra QR code della chiave privata cifrata + Includi messaggi diretti e di gruppo nella scheda Notifiche. Disattiva per tenere i messaggi solo nella scheda Messaggi. + Mostra messaggi + Mostra QR code della chiave privata + Richiesta di firma rifiutata + Assicurati che l'applicazione signer abbia autorizzato questa transazione + Il firmatario esterno ha restituito un payload inatteso per la richiesta. Potrebbe esserci un bug in Amethyst o nell'app firmatario. + Firmatario non trovato + L'app firmatario è stata disinstallata? Verifica che il firmatario sia installato e che contenga questo account. Esci e accedi di nuovo se l'app firmatario è cambiata. + Torna indietro di %1$d secondi + Vai avanti di %1$d secondi + App + Il numero di eventi spam provenienti da questo relay + Spammer + Mostra due schede di notifica — Seguiti (persone che segui) e Tutti. L'indicatore non letto si illumina solo per l'attività delle persone che segui. + Dividi notifiche per seguiti + Tenta di rimuovere i metadati privati dai file media supportati prima del caricamento + Rimuovi metadati privati + Legge gli allenamenti completati da Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) e suggerisce di condividerli come post. Il permesso viene richiesto solo al momento della connessione. + Suggerisci allenamenti da condividere + Sistema + Tema + Tema scuro, chiaro o di sistema + Questo messaggio scomparirà tra %1$s + + +%1$d\\nrisposta + +%1$d\\nrisposte + + Oggi + Personalizzato + Crea la tua configurazione + Predefinito + Nascondi il tuo IP dai relay casuali + Privacy completa + Nascondi il tuo IP in tutte le connessioni + Interno + Disattivato + Preimpostazioni Tor/Privacy + Modifica rapidamente tutte le impostazioni seguenti + Tutto tranne i media + Nascondi il tuo IP da tutto, tranne immagini e video + Relay DM + Forza Tor per l'invio e la ricezione di DM + Immagini + Forza Tor durante il caricamento delle immagini + Caricamenti multimediali + Forza Tor durante il caricamento di contenuti + Operazioni finanziarie + Forza Tor per zap, Lightning e trasferimenti Cashu + Relay non attendibili + Forza Tor sui relay outbox/inbox + Verifica indirizzo Nostr + Forza Tor durante la verifica degli indirizzi NIP-05 + URL/Relay onion + Usa Tor per qualsiasi URL .onion + Immagini del profilo + Forza Tor durante il caricamento delle immagini del profilo + Relay attendibili + Forza Tor su tutti i relay nelle tue liste + Anteprime URL + Forza Tor durante il caricamento delle anteprime URL + Video + Forza Tor durante il caricamento dei video + Base + Usa Tor quando è richiesto dal server + Impossibile aprire il file + Nessuna app torrent installata per aprire e scaricare il file. + L'evento non ha informazioni sufficienti per creare un link magnet + Usa il trasmettitore tracciato per l'invio degli eventi. Mostra l'avanzamento in tempo reale e lo stato per ogni relay durante la trasmissione. + Trasmissioni tracciate + Traduci in + Scegli la lingua in cui tradurre il contenuto. + Traduzioni + Relay fidati + Relay di cui ti fidi e che non necessitano di una connessione Tor + Completo + Prestazioni + Semplificato + Preferenze UI + Modalità UI + Scegli lo stile del post + Impossibile creare una fattura Lightning prima di inviare lo zap. Il wallet Lightning del destinatario ha inviato il seguente errore: %1$s + Impossibile condividere l'immagine, riprova più tardi… + Impossibile condividere il video, riprova più tardi… + Decrittazione non autorizzata + Il firmatario non ha autorizzato una decrittazione necessaria per questa operazione. Attiva le decrittazioni NIP-44 nella tua app firmatario e riprova + Non seguire più + Rimuovi dalla cima + Rimuovi il fissaggio dal profilo + Caricamento annullato + Errore di caricamento + Caricamento vocale fallito: %1$s + Impossibile caricare il messaggio vocale + NIP-95 non è ancora supportato per i messaggi vocali + %1$d%% di uptime + Motore Tor attivo + Usa la versione interna o Orbot + L'utente non dispone di un indirizzo Lightning per ricevere sats + L'utente %1$s non ha configurato un indirizzo Lightning per ricevere sats + Cronologia Cancellazioni + Richiesta di cancellazione inviata + Migliore qualità a dimensioni di file inferiori, ma non tutti i dispositivi supportano la riproduzione H.265. + Usa il codec H.265/HEVC + Download del video avviato… + Pulsanti del Video Player + Video salvato nella galleria video del telefono + Post vocale + Profonda + Alta + Neutrale + Nessuno + Risposta vocale + Portafoglio + Portafoglio Cashu (NIP-60) + Il tuo provider wallet connect ha restituito il seguente errore: %1$s + Modifica mint + Mostra un messaggio di avviso quando post o profili hanno segnalazioni dai tuoi seguiti + Avvisa per segnalazioni + Aggiungi Segnalibro Web + Modifica Segnalibro Web + Segnalibri Web + A cosa stai pensando? + Allenamenti + Scrivi un messaggio… + Scrivi su Relè + La quantità in byte inviata a questo relay, inclusi filtri ed eventi + Zap + + Rinomina + Salva diff --git a/commonsUI/src/commonMain/composeResources/values-ja-rJP/strings.xml b/commonsUI/src/commonMain/composeResources/values-ja-rJP/strings.xml index a5319f4973..96ca5c42b9 100644 --- a/commonsUI/src/commonMain/composeResources/values-ja-rJP/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-ja-rJP/strings.xml @@ -1791,4 +1791,1152 @@ エクスプローラー API ベース URL DVM からの請求書を支払う DVM に %1$s sats を支払う + 概要 & 法的情報 + アカウント設定 + 追加 + Blossom サーバーを追加 + NIP-96 サーバーを追加 + 有効にすると、Amethyst は公開するイベントに NIP-89 クライアントタグを付加します。 + イベントにクライアントタグを追加 + コンテンツを表示する前に、センシティブなコンテンツであることを示す警告を表示します + センシティブなコンテンツ + 公開ブックマークに追加 + デバイス上のAIモデルを使用して、テキストの修正やトーンの変更を提案します。 + テキストの改善を提案 + リアルタイム通知のためにインボックス relay への接続を維持します + + %1$d 件のインボックス relay に接続中 + + + %1$d 件の relay に接続中 + + インボックス relay に接続中… + Amethyst 通知有効中 + 音声・ビデオ通話の着信通知 + 着信 + %1$s があなたのチェスの挑戦を受け入れました + チェスゲームのイベントを通知します + チェス + チェスの更新 + %1$s が動かしました — あなたの番です + プライベートメッセージが届いたら通知する + プライベートメッセージ + 新しいメッセージ + 既読にする + 誰かがあなたをメンションまたは引用したときに通知します + %1$s があなたをメンションしました + メンション + 新しいメンション + 誰かがあなたの投稿にリアクションしたときに通知します + %1$s があなたの投稿にリアクションしました + %1$s に対して + リアクション + 新しいリアクション + 誰かがあなたの投稿に返信したときに通知します + 返信 + 新しい返信 + 返信 + 予約投稿が公開または失敗したときの通知。 + 予約投稿 + 誰かがあなたにザップしたら通知する + %1$sに + %1$sから + ザップを受け取りました + 新しい zap + アプリ設定 + 認証 + 認証リクエスト + 認証者の習熟度 + 認証者の推薦 + オーディオビジュアライザー + 入力中または未送信のテキストがある状態でコンポーザーを離れると、下書きイベントを自動的に保存し、プライベートのアウトボックスrelayに送信します。 + 自動的に下書きを作成する + 没入スクロール + スクロール中にナビゲーションバーを非表示 + 自動的に画像/GIFを読み込み + 画像と GIF を自動的に読み込む + 自動的に動画を再生 + 動画と GIF を自動的に読み込む + プロフィール画像 + プロフィール画像を表示 + 自動的にURLプレビューを表示 + URL プレビューを表示 + 動画の自動再生 + 画面に表示されたときに動画を自動再生する + AVIFからメタデータを削除できません:%1$s + バッジを授与 + 戻る + 鍵をバックアップ + バッジ + 認証に失敗しました + 生体認証でこの端末の所有者を確認できませんでした + 生体認証でこの端末の所有者を確認できませんでした。エラー: %1$s + ブロック + ブロック済み Relay + Amethyst はこれらの relay に接続しません + ブロック済みユーザ + 新しいブックマークリスト + ブックマークリストのメタデータ + ブックマークリストのメタデータはNostr上の誰でも見ることができます。プライベートメンバーのみ暗号化されます。 + ブックマーク + ブースト + ボトムナビゲーションバー + Broadcast Relay + sendit.nosflare.com のように、あなたのノートを他のすべての relay にプッシュすることに特化した relay です。Amethyst はあなたが作成するすべての新しいイベントにこの relay を追加します。 + ブラウザ + お気に入り + オープンウェブで読み込み中。タップしてTorを使用します。 + Tor経由で読み込み中。タップしてオープンウェブを使用します。 + + %1$s、%2$dイベント + + 画像のアップロードに失敗しました + 選択した画像をアップロードできませんでした。もう一度試すか、URLを貼り付けてください。 + カレンダーイベントを共有 + マップで開く + リンクを開く + 開催中 + %1$s · 終了:%2$s + + %1$d分後に開始します + + 参加予定のイベントが始まる前に通知します。 + カレンダーリマインダー + カレンダーイベント + 参加予定のイベントが始まる前に通知が送られます。 + リマインダーを送る + + %1$d分 + + カレンダーリマインダー + 日 + フィード + 月 + 週 + 受ける + カメラオフ + カメラオン + イヤピース + 切る + 着信 + ビデオ通話着信中… + 音声通話着信中… + ミュート + 通話 + 通話中の通知 + Amethyst がビデオ通話を開始するにはカメラとマイクのアクセス権が必要です。アプリの設定で有効にしてください。 + Amethyst が音声通話を開始するにはマイクのアクセス権が必要です。アプリの設定で有効にしてください。 + 拒否 + 通話設定 + スピーカー + ミュート解除 + %1$s との通話 + %1$s のレスポンスにコールバック URL が見つかりませんでした + キャンセル + Cashuトークン + mintを確認しています… + Cashu を換金できませんでした + Mint から次のエラーメッセージが返されました: %1$s + 受取済み + 送金済み + 一致するmint + + +%1$d件 + + 人気のmint + + 他%1$d人がおすすめ + + %1$s sat を %2$s に移動しました。 + 対応する Cashu ウォレットがシステムに見つかりません + + %1$d件の保留中の請求書 + + %1$s sat + 最大%2$s satの手数料を支払いますか? + %1$sのkind:38000おすすめの削除リクエストを公開します。NIP-09を承認するrelayはこれを削除します。 + %2$s個のproofから%1$s satsを回復しました。 + Cashu を受け取りました + %1$s sats がウォレットに送られました。(手数料: %2$s sats) + + 使用していない%1$d個のmintに資金があります + + インボイスの支払いを待っています… + + %1$d mint + + キャストを停止 + デバイスにキャスト + 児童安全基準 + アクセサリー + アート + 書籍 + 衣類 + コレクターアイテム + クラフト + 電子機器 + フィットネス + 食品 + 家具 + ホーム + その他雑多 + オフィス + その他 + ペット + スポーツ + 毎日 + 毎月 + 1 回のみ + 毎週 + %2$s 経由で %1$s を支払いますか? + %1$s 経由でこのインボイスを支払いますか? + デビットサービスが支払いを完了しませんでした。 + このオファーに有効な金額を入力してください。 + インボイスを要求中… + この投稿へのすべてのリアクションを閉じる + 終了 + コミュニティ + 下書きは %1$d バイトです。このコミュニティはこの kind を %2$d バイトまでに制限しています。 + 下書きは %1$d バイトです。このコミュニティはイベントを %2$d バイトまでに制限しています。 + 本日、この kind のイベントをすでに %1$d 件投稿しています(上限 %2$d 件)。 + 作成の設定 + デフォルトポートは 9050 + 接続済み Relay + 現在使用中の relay の一覧 + relay への接続成功率 + 常に + なし + 従量制なし WiFi + ドキュメントを追加 + 画像を追加 + メディアを追加 + 動画を追加 + 非表示 + 警告 + 表示 + 会話 + アニメーションGIFをMP4動画に変換してファイルサイズを縮小し、再生互換性を向上させます。 + GIFをMP4に変換 + 投稿ID (@note1) をクリップボードにコピーしました + テキストがクリップボードにコピーされました + クリップボードにコピーしました + @npubをクリップボードにコピーしました + 秘密鍵をコピー + クリップボードにコピー + Lightning アドレス「%1$s」から LNUrl を組み立てられませんでした。ユーザーの設定を確認してください + アップロード後にダウンロードしたファイルを確認できませんでした:%1$s + アップロードされたメディアをサーバーからダウンロードできませんでした + %1$s から請求書を取得できませんでした: %2$s + 圧縮ファイルを開けませんでした + ウォレットが見つかりません + Amethyst は Nostr Wallet Connect(NWC)に対応したウォレットアプリを見つけられませんでした。 +\n\n対処方法: +\n\t1. NWC サポートを確認: お使いのウォレットアプリが Nostr Wallet Connect に対応しているか再確認してください。 +\n\t2. 接続を作成: ウォレットアプリで新しい NWC 接続を作成してください。 +\n\t3. Amethyst にリンク: ウォレットは通常、以下の3つの方法を提供します: +\n\t\t3.1 自動リンク: 自動的に Amethyst を開いて接続するボタン。その場合、ボタンをクリックして Amethyst を開き、新しい画面で保存を押してください。 +\n\t\t3.2 手動リンク: この画面の貼り付けアイコンをクリックして直接入力できる接続 URI。 +\n\t\t3.3 QR コード: ウォレットが作成する QR コード。この画面の QR コードボタンから読み取れます。 + + 作成 + 日 + 危険ゾーン + ダーク + 説明 + 公開にする + チャット + コミュニティ + フィードアルゴリズム + フォローパック + ライブストリーム + マーケットプレイス + 読み物 + DM 受信 Relay + DM + 翻訳しない言語 + ここに表示されている言語は翻訳されません。言語を選択して削除すると、再び翻訳されるようになります。 + 端末に保存 + 動画をダウンロード中… + 下書きノート + 下書き + アカウント + 作成 + フィード + ナビゲート + システム + あなた + + %1$d日 + + + %1$d時間 + + + %1$d分 + + + %1$dヶ月 + + + %1$d週間 + + + %1$d年 + + カレンダーを編集 + カレンダーイベントを編集 + コミュニティを編集 + 絵文字パックを編集する + プレイリストを編集 + 投稿を編集 + プライベート絵文字はrelayに暗号化されて保存され、あなただけに見えます。パブリック絵文字と同様に、リアクションメニューと「:」オートコンプリートに表示されます。 + パブリック絵文字は全員に表示され、このパックが絵文字リストに含まれている場合、リアクションメニューと「:」オートコンプリートピッカーに表示されます。 + 絵文字 + プライバシーのためにアップロード前にファイルを暗号化します。一部のサーバーでは無料アカウントで暗号化ファイルを受け付けない場合があります。 + ファイルを暗号化 + 消えるチャット + エラー + 請求書を支払えませんでした + 引き出しできませんでした + 支払いを開けません + zap を送信できません + 署名アプリを開くエラー + 署名アプリが見つかりませんでした。アプリがアンインストールされていないか確認してください + エラーメッセージの解析に失敗しました + %1$s からの JSON の解析エラー。ユーザーの Lightning 設定を確認してください + 受信者のサーバーから請求書を取得できません + ブラウザで開く + この動画を再生できません + このデバイスではコーデックまたは形式がサポートされていません(%1$s)。ブラウザで開いてみてください。 + エラー + relay同期 + あなたからのイベント + あなた宛てのイベント + サーキット + サイクリング + 食事管理 + 断食 + ハイキング + 瞑想 + ローイング + ランニング + 筋トレ + 水泳 + ウォーキング + ヨガ + 展開する + 有効期限 + Relay 設定をエクスポート + 削除に失敗しました:%1$s + 秘密鍵の暗号化に失敗しました + 画像の保存に失敗しました + PDF の保存に失敗しました + 動画の保存に失敗しました + 多くのサーバーは無料アカウントで暗号化ファイルを受け付けません。暗号化なしで再試行できます。 + 暗号化アップロード失敗 + アップロードエラー:%1$s + メディアのアップロードに失敗しました + %1$sへのアップロードに失敗しました:%2$s + お気に入りに追加 + オープンウェブ経由で読み込みます。 + Tor 経由で読み込みます。 + 最近 + お気に入りから削除 + そのアプリはまだ読み込まれていません。しばらくしてから再試行してください。 + お気に入りアプリ + お気に入りフィードアルゴリズム + 支払いを行いました + relay に公開しました + ファイルをアップロードしました + お気に入り Relay フィード + グローバルフィードを見るためによく訪れる relay + コミュニティ + フィードアルゴリズム + フィード + ハッシュタグ + インタレストセット + リスト + 場所 + ファイルサーバ + このファイルをアップロードするサーバーを選択 + 見知らぬ人の同一投稿が5回以上繰り返された場合に非表示にします + スパムをフィルタリング + フォロー + フォローバック + すべてのお気に入りフィードアルゴリズム + 周辺 + キュレーション + グローバル + デフォルトフォローリスト + すべてのフォロー + すべてのユーザーフォロー + マイリスト + ミュートリスト + 新しいフォローパック + フォローパックを編集 + フォローパックのメタデータは Nostr 上の誰でも見ることができ、新規ユーザー向けのスターターキットとして多くのウェブサイトで頻繁に公開されています。 + フォローパックのメタデータ + フォローパック + 新しいフォローリスト + リストを編集 + プロフィールギャラリースタイル + ギャラリースタイルを選択 + クラシック + モダン + 位置情報限定投稿 + その位置のフォロワーのみに表示されます。一般のフォロワーには表示されません。 + %2$s sats のゴールに対して %1$s を達成 + 時間 + 画像が変更されています。作者は変更に気づいていないかもしれません + これはどういう意味ですか? + 画像は投稿時と同じです + %1$sさん、こちらはまだ入手可能ですか? + 非表示ワード + コミュニティが NIP-9B ルール文書を公開している場合、違反するイベントをコミュニティフィードから除外します。構造化されたルールのないコミュニティには影響しません。 + コミュニティルール違反の投稿を非表示 + パスワードを非表示 + %1$s をアップロード中(%3$d 件中 %2$d 件目) + すべて + 400 Bad Request — サーバーがリクエストを処理できないか、処理しようとしません。 + 401 Unauthorized — ユーザーが有効な認証情報を持っていません + 402 Payment Required — サーバーはリクエストを完了するために支払いを要求しています + 403 Forbidden — ユーザーがリクエストを行うためのアクセス権を持っていません + 404 Not Found — サーバーがリクエストされたアドレスを見つけられません + 405 Method Not Allowed — サーバーはリクエストメソッドをサポートしていますが、対象リソースではサポートしていません + 406 Not Acceptable — サーバーがリクエストを満たすコンテンツを見つけられません。 + 407 Proxy Authentication Required — ユーザーが有効な認証情報を持っていません + 408 Request Timeout — サーバーが応答を待ちタイムアウトしました + 409 Conflict — リソースとの競合があるためサーバーがリクエストを処理できません + 410 Gone — リクエストされたコンテンツはサーバーから完全に削除されており、復元されません + 411 Length Required — サーバーが定義されたContent-Lengthを要求するためリクエストを拒否しました + 412 Precondition Failed — サーバーがヘッダーフィールドのリクエストの事前条件を満たせません + 413 Payload Too Large — リクエストがサーバーの制限を超えているため、サーバーは処理を拒否しています + 414 URI Too Long — クライアントがリクエストしたURLがサーバーの処理できる長さを超えています。 + 415 Unsupported Media Type — リクエストがサーバーのサポートしていないメディア形式を使用しています + 416 Range Not Satisfiable — サーバーがリクエストのRangeヘッダーフィールドに示された値を満たせません。 + 417 Expectation Failed — サーバーがExpectリクエストヘッダーフィールドの要件を満たせません + 426 Upgrade Required — クライアントが別のプロトコルにアップグレードしない限り、サーバーは現在のプロトコルでリクエストを処理しません。 + 500 Internal Server Error — サーバーが予期しないエラーに遭遇し、リクエストを完了できません + 501 Not Implemented — サーバーがリクエストを処理できないか、リクエストメソッドを認識しません + 502 Bad Gateway — サーバーがゲートウェイとして機能し、ホストから無効なレスポンスを受け取りました + 503 Service Unavailable — サーバーが過負荷またはメンテナンス中のためよく発生します + 504 Gateway Timeout — サーバーがゲートウェイまたはプロキシとして機能し、レスポンスを待ちタイムアウトしました + 505 HTTP Version Not Supported — サーバーがリクエストのHTTPバージョンをサポートしていません + 506 Variant Also Negotiates — サーバーの内部設定エラーです + 507 Insufficient Storage — サーバーがリクエストを正常に処理するのに十分なストレージを持っていません + 508 Loop Detected — サーバーがリクエストの処理中に無限ループを検出しました + 511 Network Authentication Required — クライアントはネットワークにアクセスするために認証が必要です + 不法行為 + 画像を保存しました + なりすまし + Inbox Relay + %2$s からの請求書金額が正しくありません(%1$s sats)。正しい金額は %3$s であるべきでした + インデクサー Relay + purplepag.es のように、全ユーザーのメタデータと relay リストのホスティングに特化した relay です。Amethyst はこれらの relay を使用して、あなたのリストにないユーザーを検索します。 + 新しいインタレストセット + 名前を変更 + ハッシュタグセット + 無効な鍵 + 無効な鍵: %1$s + 無効なアドレス + Amethyst が開くための URI を受信しましたが、その URI は無効でした: %1$s + 下書きノートを引用することはできません + 下書きノートにリアクションすることはできません + 下書きノートには返信できません + 下書きノートに zap することはできません + 鍵が必要です + KeyPackage Relay + あなたの MLS KeyPackage が公開されている relay(MIP-00)です。他のユーザーはこれらの KeyPackage を取得して、あなたを Marmot グループチャットに招待します。KeyPackage イベントの書き込みとパブリック読み取りを許可する relay を 1〜3 つ入力してください。 + KeyPackage + 承認済みバッジセット + アドベンチャープロローグ + アドベンチャー読書 + アドベンチャーシーン + アプリのおすすめ + 予定 + アプリ + 予定RSVP + オーディオヘッダー + オーディオトラック + 作成したポッドキャスト + バッジ受賞 + バッジ定義 + Blobデータ + Blobヘッダー + ブロックされた Relays + ブログ + ブックマークリスト + ブロードキャスト Relays + カレンダー + チャンネル定義 + チャンネルメッセージ非表示 + チャンネルリスト + チャンネルメッセージ + チャンネルメタデータ + チャンネルユーザーミュート + チェス認証 + チェスチャレンジ + チェス引き分け提案 + チェスゲーム承認 + チェスゲーム終了 + チェスゲーム + チェスの手 + 分類広告 + コメント + コミュニティ定義 + コミュニティリスト + コミュニティ投稿 + 連絡先カード + 日次予定 + 削除 + DMファイル + DMメッセージ + DM relay + 下書き + DVMコンテンツリクエスト + DVMコンテンツレスポンス + DVMステータス + DVMユーザーリクエスト + DVMユーザーレスポンス + 編集 + 絵文字パックリスト + 絵文字パック + 一時チャット + 一時チャットルーム + お気に入りのポッドキャスト + お気に入りrelay + ファイルヘッダー + ファイルサーバー + フォローリスト + フォローパック + ジオハッシュフォロー + GiftWrap + Git返信 + ハッシュタグフォロー + ハイライト + HTTP認証 + インデックスrelayリスト + ライブチャット + ライブストリーム + 医療データ + ミーティングルーム + ミーティングスペース + 音楽プレイリスト + 音楽トラック + ミュートリスト + 名前付きブックマーク + NIP-04 DM + ノート + NWCリクエスト + NWCレスポンス + 旧ブックマークリスト + ピープルリスト + 画像 + ピン + ポッドキャストエピソード + ポッドキャスト番組 + 投票 + 投票回答 + プライベートrelay + プライベートZap + プロフィール + プロフィールバッジ + プロフィールギャラリー + プロキシrelay + パブリックメッセージ + リアクション + relay認証 + relay検索 + relayモニターアナウンス + relayセット + レポート + リポスト + リポスト(16) + ルームプレゼンス + シール + 検索relay + ショート + ショート(Repl) + トレントコメント + トレント + 信頼済みプロバイダー + 信頼済みrelay + ユーザー削除 + ユーザー設定 + ユーザーステータス + 動画 + 動画(Repl) + ボイスメッセージ + ボイス返信 + Webブックマーク + ワークアウト + Zapゴール + Zapポール + Zapリクエスト + Zap + 知り合い + 言語表示の設定 + 翻訳された言語ペアごとに、どの言語を先に表示するかを選択します。 + 最終確認:%1$s前 + たった今確認 + 未確認 + 最終確認:%1$s(%2$s前) + 退出 + ライト + ライブ配信 + ローカル Relay + このデバイスで動作している relay の一覧です。 + 秘密鍵でログインすると投稿をブーストできます + 秘密鍵でログインするとフォローすることができます + 公開鍵でログインしています。公開鍵は読み取り専用です。ワードやフレーズを非表示にするには、秘密鍵でログインしてください + 秘密鍵でログインするとリプライできます + 秘密鍵でログインするとザップすることができます + 公開鍵でログインしています。公開鍵は読み取り専用です。ワードやフレーズを表示するには、秘密鍵でログインしてください + 公開鍵でログインしています。公開鍵は読み取り専用です。イベントに署名するには、秘密鍵でログインしてください + 秘密鍵でログインするとフォロー解除することができます + 公開鍵でログインしています。公開鍵は読み取り専用です。アップロードするには、秘密鍵でログインしてください + 秘密鍵でログインするといいねができます + 動画 + 分 + マイ絵文字パック + %1$s を追加中… + 管理者権限が付与されました + 管理者権限が取り消されました + %1$s の追加に失敗しました: %2$s + グループの作成に失敗しました: %1$s + 管理者権限の付与に失敗しました: %1$s + グループの退出に失敗しました: %1$s + メンバーの削除に失敗しました: %1$s + 管理者権限の取り消しに失敗しました: %1$s + 更新に失敗しました: %1$s + MLS グループ + グループ情報が更新されました + + %1$d 人のメンバー + + メンバーが削除されました + + %1$d 件のメッセージ + + このグループのメンバーではありません + 不明なエラー + メディアを追加しました + プロフィールギャラリーにメディアを追加しました + メディアのダウンロードを開始しました… + メディアサーバー + メディアがNIP-95には大きすぎます + 先にメッセージの宛先を入力してください + アップロードできません + 件名 + メタデータを削除できませんでした + メディアからプライベートメタデータを削除できませんでした。アップロードをキャンセルしました。 + ブックマークの移行が完了しました + Lightning の設定がありません + 詳細なオプション + プライベートに移動 + 公開に移動 + カバー画像をアップロード + このプレイリストのアートワークとして正方形の画像を選んでください。 + + +%1$d トラック + + + %1$d トラック + + + %1$d トラック + + カバーをアップロードして公開中です。画面を離れても処理は続きます。 + 音声ファイルをアップロード + MP3、WAV、または FLAC を選んでください。保存時にメディアサーバーにアップロードされます。 + カバー画像をアップロード + このトラックのアートワークとして正方形の画像を選んでください。 + カバーと音声をアップロードして公開中です。画面を離れても処理は続きます。 + 音声オン。クリックしてミュート + ミュート中。クリックしてミュート解除 + マイリスト + 名前は必須です + Namecoin設定 + ID + 公開鍵を読み取る + メッセージング + 他の napplet とメッセージをやり取りする + キーボード操作 + キーボードショートカットをバインドする + 通知 + 通知を表示する + relay + イベントを読み取り、署名して公開する + ネットワーク + ウェブおよび Blossom リソースを取得する + ストレージ + 専用のプライベートストレージ + テーマ + アプリの色に合わせる + アップロード + メディアサーバーにファイルをアップロードする + 支払い + Lightning インボイスを支払う + この nApplet はあなたの公開鍵を読み取ろうとしています。 + この nApplet はあなたのプロフィールとアカウントデータを読み取ろうとしています。 + この nApplet はあなたに通知を表示しようとしています。 + + この nApplet は %1$d sats の Lightning インボイスを支払おうとしています。 + + この nApplet はあなたとして kind %1$d イベントに署名して公開しようとしています。 + この nApplet はあなたとして暗号化されたイベントを送信しようとしています。 + この nApplet はあなたとして kind %1$d イベントに署名して公開しようとしています: + この nApplet はあなたの relay からイベントを読み取ろうとしています。 + この nApplet はウェブリソースを取得しようとしています。 + このサイトはあなたの Nostr 鍵で kind %1$d イベントに署名しようとしています。 + この nApplet はプライベートストレージを使用しようとしています。 + この nApplet はメディアサーバーにファイルをアップロードしようとしています。 + メッセージを送信できませんでした + このスピーカーをミュート + このスピーカーを復元 + 退出 + ルームをクローズ済みとしてマークできませんでした。退出します — ルームは自動的に閉じます。 + + %1$d 人のリスナー + + 手を下ろす + マイクをミュート + マイクのミュートを解除 + ミュート + Nest サーバーリストを保存できませんでした。再試行してください。 + Nest — ライブ中 + ルームが開いている間オーディオを再生し続けます。 + Nest に接続しました + 停止 + タップして戻る。 + フォロー + ミュート + フォロー解除 + ミュート解除 + Nest を退出しました + オーディエンスとして参加しました + ステージに上がりました + 手を挙げました + 話しています + 手を挙げる + ミュート解除 + kind-10112 の置き換え可能なイベントとして保存され、他のクライアントがあなたの設定を読み取ることができます。 + あなたのサーバー + ワンタップでリストに追加できる組み込みの候補です。 + おすすめのサーバー + Nest サーバー + なし + 新しいバッジ + 新規カレンダー + 新規カレンダーイベント + 新しいコミュニティ + モデレーター + relay + バンされたユーザー + コミュニティコメント(1111) + 長文記事(30023) + 画像投稿(20) + ショートテキスト(1) + ショート動画(22) + 動画投稿(21) + 許可されたイベントの種類 + グローバル最大イベントサイズ(任意) + 検証可能なルール(任意) + Web-of-trustゲート(任意) + 新しい絵文字パック + 新しいゴール + 新規記事 + 新しいプレイリスト + 新しい音楽トラック + 新規商品 + 新しいリクエスト + 新規スレッド + 新しいワークアウト + + %1$d 件のアセットがバンドルされています + + Blossom アプリが見つかりませんでした。このファイルを表示するにはローカルの Blossom アプリをインストールしてください + Blossom リンクを開けません + この端末にカメラアプリが見つかりません + Lightning アドレスが設定されていません + この支払いを処理できるアプリが見つかりません。対応するウォレットをインストールしてください。 + %1$s の支払いを処理できるアプリがインストールされていません。対応するウォレットをインストールしてください。 + リアクションタイプが選択されていません。長押しして変更 + リアクションが設定されていません + Lightning 請求書を支払うウォレットが見つかりません。zap を使用するには Lightning ウォレットをインストールしてください + Lightning 請求書を支払うウォレットが見つかりません(エラー: %1$s)。zap を使用するには Lightning ウォレットをインストールしてください + ザップ額が未設定です。長押しで変更 + 通知 + カテゴリ + 配信 + アプリ内表示 + 今 + Nowhere アート + Nowhere ドロップ + Nowhere イベント + Nowhere フォーラム + Nowhere 資金調達 + Nowhere サイト + Nowhere メッセージ + Nowhere 請願 + Nowhere ストア + ヌード + イベント参照を構築できません + ノートに受信者の公開鍵がありません + Nutzapは公開されるため、このプライベートノートが公開されてしまいます。代わりにLightning zapを使用してください。 + Nutzapが失敗しました + + %1$s satsを%2$d分割で送る + + Bitcoinチェーンバックエンドが設定されていません + トランザクションをブロードキャストできませんでした + トランザクションを構築できませんでした + Bitcoin残高を読み込めませんでした + 支払いは送信されましたが、zap領収書を公開できませんでした + + 支払いは送信されました(%2$d件中%1$d件の領収書を公開済み)が、次の領収書を公開できませんでした + + 受信者の取り分がダスト以下です + トランザクションに署名できませんでした + 約10分 + 約30分 + 約1時間 + 速い + 普通 + 遅い + + %1$d人の受信者に分割 + + + Lightningアドレスのみの受信者%1$dをスキップしています — オンチェーンにはアドレスを導出するためのNostr公開鍵が必要です。 + + + このノートの%1$d分割zapを使用する + + ブロードキャストしています + トランザクションを構築しています + 残高を読み込んでいます + 領収書を公開しています + 署名しています + このタイプの投票では、1ユーザにつき1回のみ投票可能です + この投稿へのすべてのリアクションを開く + 進行中 + OrbotのSocksポート番号 + Bitcoin Explorer(OTS) + この投稿が %1$s より前に署名されたことの証明があります。この証明はその日時に Bitcoin ブロックチェーンに刻印されています。 + タイムスタンプ証明 + Outbox Relay + パスワードは必須です + 一時停止 + 支払う + %1$sからのメッセージ + 支払い先 + 異なるネットワーク(例:bitcoin、lightning、ethereum)の支払いアドレスを追加してください。 + PDF を Downloads/Amethyst に保存しました + フォローリストのメタデータは Nostr 上の誰でも見ることができます。プライベートメンバーのみ暗号化されています。 + フォローリストのメタデータ + 画像 + トップに固定 + プロフィールにピン留め + 再生 + + %1$d エピソード + + 投票の作成者が投票することはできません。 + (0〜100)% + この投票は新規票を受け付けていません + 複数選択 + 選択肢%1$s + 単一選択 + 投票できません + 投票 + 送信 + + このポストには %1$d 件以上のハッシュタグが含まれています + + %1$sのプレビューカード画像 + プライバシーオプション + プライバシーポリシー + <プライベートメッセージの復号に失敗しました>\n\n%1$s と %2$s のプライベート/暗号化された会話であなたが言及されました。 + DM 受信 Relay + プライベート受信 relay として 1〜3 つの relay を入力してください。他のユーザーはこれらの relay を使ってあなたに DM を送ります。DM 受信 relay は誰からでもメッセージを受け取れますが、ダウンロードはあなた自身のみに許可するものにしてください。おすすめの選択肢:\n - inbox.nostr.wine(有料)\n - auth.nostr1.com(無料)\n - you.nostr1.com(個人用 relay - 有料) + ユーザーはこれらの relay で DM を受け取っています + プライベートメッセージ + プライベートにする:通知ユーザーのみへのgift-wrapノート + プライベートノートへの返信は常にプライベートのままです + 閲覧可能なユーザー + プライベートホーム Relay + 下書きやアプリ設定など、他のユーザーには見えないイベントを保存する relay を 1〜3 つ入力してください。理想的には、ローカル relay か、各ユーザーのコンテンツをダウンロードする前に認証を要求する relay を使用してください。 + 誹謗中傷 / ヘイトスピーチ + プロフィール + プロフィールバッジ + アプリのおすすめ + プロフィールバッジ + フォロワーフィード + 受信した Zap フィード + プロフィール UI + プロフィール + 編集を提案する + Proxy Relay + filter.nostr.wine のように、アプリがフィードをダウンロードするために使用するアグリゲーター relay です。これにより outbox モデルが置き換えられ、アプリはリスト内の relay のみに接続するようになります。 + 公開チャット + パブリックチャットは Nostr 上の全員に公開されており、誰でも + 参加できます。特定のトピックを中心としたオープンなコミュニティに最適です。 + モデレーションは、その relay 上のポストを削除することで管理できます + このグループをホストする relay を 1〜3 件入力してください。 + Nostr クライアントはこの設定を使用して、メッセージのダウンロード先と送信先を決定します。 + Relay + パブリックチャットのメタデータ + パブリックチャット + パブリック Outbox / ホーム Relay + この relay タイプはすべてのコンテンツを保存します。Amethyst はここに投稿を送信し、他のユーザーはこれらの relay を使ってあなたのコンテンツを見つけます。1〜3 つの relay を入力してください。個人用 relay、有料 relay、またはパブリック relay が利用できます。 + ユーザーはこれらの relay にコンテンツを投稿しています + パブリックメッセージ + パブリック Inbox Relay + この relay タイプは、あなたの投稿へのすべての返信、コメント、いいね、zap を受信します。有料・無料いずれの relay も使用できます。relay 運営者が設定する制限により、受け取る通知の量が変わる場合があります。たとえば、コメントスパム攻撃を受けている場合、有料 relay でスパムをフィルタリングできます。1〜3 つの relay を入力してください。 + ユーザーはこれらの relay で通知を受け取っています + 投稿ID + 削除 + スレッドをミュート + 共有 + ブラウザリンクを共有 + スレッドのミュートを解除 + リアクション + リアクション + リアクションバー + リレーから読み込み + フィルターやイベントを含む、この relay から受信したバイト数 + 読み取り専用ユーザー + 長押ししてメッセージを録音 + relay チャット + relay チャットは、ホスト relay によって管理されるチャットグループです。 + Nostr 上の全員に公開されており、誰でも参加できます。 + 特定のトピックを中心としたオープンなコミュニティに最適です。一部のグループは一時的なもので、 + チャットメッセージは時間とともに消えます + relay チャット + イベント + IP + Kind + ユーザー + 設定 + Relay 設定 + アウトボックスリスト + リレー + チャージ & Zapを送信 + Zapを送信 + %2$sに%1$s satsをチャージして%3$sへ%4$s satsをZap · 手数料 ≈ %5$s sats + 削除 + 公開ブックマークから削除 + ここに返信… + 通知: + + 削除をリクエスト + 消去リクエスト + Marmot 状態のリセットに失敗しました: %1$s + Marmot 状態をリセット + Marmot 状態をリセットしました。 + 再試行 + カレンダーリスト + カレンダー + チェス + 発見 + ホーム + フォローをインポート + メッセージ + プレイリスト + 音楽 + 通知 + エピソード + ポッドキャスト + 投稿を予約 + 予約をキャンセル + 予約投稿は次回アプリを開くまで公開されない場合があります。このアカウントがアクティブな間、他のアカウントの予約投稿は実行されません。確実なバックグラウンドスケジューリングのために、設定 → UI設定で常時通知を有効にしてください。 + 予約投稿は次回アプリを開くまで公開されない場合があります。確実なバックグラウンドスケジューリングのために、設定 → UI設定で常時通知を有効にしてください。 + 予約投稿 + 今すぐ送信 + %1$s · %2$s後 + %1$s · %2$s前 + 明日 + エラー: %1$s + ノートIDをコピーしました + + ログアウトしました · %1$d件の予約投稿を削除しました + + ログアウトしました + + %1$d件の予約投稿がまだ公開されていません。ログアウトすると完全に削除されます。 + + 予約投稿に失敗しました + 予約投稿が公開されました + + %1$d個のrelayへ + + キャンセル済み + 失敗 + 予約済み + 送信中… + 送信済み + + · %1$d件が1時間以内に公開 + + + %1$d件キュー中 + + おすすめの選択肢:\n%1$s + 検索 Relay + 検索 Relay + コンテンツやユーザーを検索する際に使用する relay の一覧です。利用可能なオプションがない場合、タグ付けと検索が機能しません。NIP-50 を実装していることを確認してください。 + 検索可能なイベント + 秘密鍵 (nsec) をクリップボードにコピーしました + まだユーザーをブロックしていません。 + セキュリティフィルタ + 非表示の単語はありません。下に単語を追加すると、その単語を含む投稿が非表示になります。 + ブロック済みコンテンツ + フィルタリング設定 + このセッションでスパムとして報告されたアカウントはありません。 + 送信 + 受信したすべてのプロフィール(kind 0)イベントをローカル relay に送信する + プロフィールをローカル relay に転送する + この受取人への支払い可能額: %1$s sats + 支払いに失敗しました + トランザクション: %1$s + %1$s 経由で支払い中… + アップロード後にサーバーがURLを提供しませんでした + 設定 + ミュートしたスレッドはありません + ミュートしたスレッド + 画像として共有 + 画像 URL として共有 + HLS アップロード + 共有または保存 + ショート + 暗号化された秘密鍵の QR コードを表示 + 通知タブにダイレクト・グループメッセージを含めます。オフにするとメッセージはメッセージタブのみに表示されます。 + メッセージを表示 + 秘密鍵の QR コードを表示 + 署名リクエストが拒否されました + 署名アプリがこのトランザクションを承認していることを確認してください + 外部署名アプリがリクエストに対して予期しないペイロードを返しました。Amethyst または署名アプリにバグがある可能性があります。 + 署名アプリが見つかりません + 署名アプリはアンインストールされましたか?署名アプリがインストールされており、このアカウントが登録されているか確認してください。署名アプリが変更された場合は、一度ログアウトしてからログインし直してください。 + %1$d 秒戻る + %1$d 秒進む + アプリ + スパム + この relay から送信されたスパムイベントの数 + スパマー + 「フォロー中」(フォローしている人)と「全員」の2つの通知タブを表示します。未読インジケーターはフォロー中の人のアクティビティのみ光ります。 + フォロー別に通知を分割 + アップロード前に対応するメディアファイルからプライベートメタデータの削除を試みます + プライベートメタデータを削除 + Health Connect(Samsung Health、Google Fit、Fitbit、Garminなど)から完了したワークアウトを読み取り、投稿として共有することを提案します。権限は接続時にのみ要求されます。 + ワークアウトの共有を提案する + システム + テーマ + ダーク、ライト、またはシステムテーマ + このメッセージは %1$s 後に消えます + + +%1$d\n件の返信 + + 今日 + カスタム + 独自の設定を作成 + デフォルト + ランダムな relay からIPアドレスを隠す + 完全プライバシー + すべての接続でIPアドレスを隠す + 内蔵 + オフ + Tor/プライバシープリセット + 以下の設定をすばやく変更 + メディア以外すべて + 画像と動画を除くすべての接続でIPアドレスを隠す + DM relay + DM の送受信に Tor を強制 + 画像 + 画像の読み込みに Tor を強制 + メディアアップロード + コンテンツのアップロードに Tor を強制 + 送金操作 + zap、Lightning、Cashu 送金に Tor を強制 + 信頼されていない relay + アウトボックス/インボックス relay に Tor を強制 + Nostr アドレス認証 + NIP-05 アドレスの検証に Tor を強制 + Onion URL/relay + .onion URL に Tor を使用 + プロフィール画像 + プロフィール画像の読み込みに Tor を強制 + 信頼済み relay + リスト内のすべての relay に Tor を強制 + URL プレビュー + URL プレビューの読み込みに Tor を強制 + 動画 + 動画の読み込みに Tor を強制 + 基本 + サーバーが必要とする場合に Tor を使用 + ファイルを開けませんでした + ファイルを開いてダウンロードするための torrent アプリがインストールされていません。 + マグネットリンクを生成するための情報がイベントに不足しています + イベントの送信時に追跡ブロードキャスターを使用します。ブロードキャスト中にライブの進捗とrelay別のステータスを表示します。 + 追跡ブロードキャスト + 翻訳先 + コンテンツの翻訳先言語を選択してください。 + 翻訳 + 信頼済み Relay + Tor 接続が不要な信頼済み relay + 完全 + パフォーマンス + シンプル + UI設定 + UIモード + 投稿スタイルを選択 + zap 送信前に Lightning 請求書を作成できませんでした。受信者の Lightning ウォレットから次のエラーが送信されました: %1$s + 画像を共有できません。後でもう一度お試しください… + 動画を共有できません。後でもう一度お試しください… + 復号化が許可されていません + この操作に必要な復号化が署名アプリによって許可されませんでした。署名アプリで NIP-44 復号化を有効にして、もう一度お試しください + フォロー解除 + 固定を解除 + プロフィールのピン留めを解除 + アップロードをキャンセルしました + アップロードエラー + ボイスのアップロードに失敗しました: %1$s + ボイスメッセージのアップロードに失敗しました + NIP-95 はボイスメッセージにまだ対応していません + %1$d%%稼働率 + Tor エンジンを有効化 + 内蔵版または Orbot を使用 + satsを受け取るためのLightningアドレスが設定されていません + ユーザー %1$s は sats を受け取るための Lightning アドレスを設定していません + 消去履歴 + 消去リクエストを送信しました + 小さいファイルサイズでより高い品質ですが、すべての端末がH.265の再生をサポートしているわけではありません。 + H.265/HEVCコーデックを使用 + 動画のダウンロードを開始しました… + ビデオプレーヤーボタン + 動画を端末のギャラリーに保存しました + 音声投稿 + 低音 + 高音 + ニュートラル + なし + 音声返信 + ウォレット + Cashu ウォレット(NIP-60) + Wallet Connect プロバイダーから次のエラーが返されました: %1$s + mintを編集 + フォロー中の人から報告された投稿やプロフィールに警告メッセージを表示します + 報告時に警告 + ウェブブックマークを追加 + ウェブブックマークを編集 + ウェブブックマーク + 何か思いついた? + ワークアウト + メッセージを入力… + リレーに書き込み + フィルターやイベントを含む、この relay に送信されたバイト数 + ザップ + + 名前を変更 + 保存 diff --git a/commonsUI/src/commonMain/composeResources/values-ja/strings.xml b/commonsUI/src/commonMain/composeResources/values-ja/strings.xml index adf60539fb..36d687a7c9 100644 --- a/commonsUI/src/commonMain/composeResources/values-ja/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-ja/strings.xml @@ -1820,4 +1820,1182 @@ ソース: サーバー: 開く + 概要 & 法的情報 + アカウント設定 + 追加 + Blossom サーバーを追加 + NIP-96 サーバーを追加 + 有効にすると、Amethyst は公開するイベントに NIP-89 クライアントタグを付加します。 + イベントにクライアントタグを追加 + コンテンツを表示する前に、センシティブなコンテンツであることを示す警告を表示します + センシティブなコンテンツ + 公開ブックマークに追加 + デバイス上のAIモデルを使用して、テキストの修正やトーンの変更を提案します。 + テキストの改善を提案 + リアルタイム通知のためにインボックス relay への接続を維持します + + %1$d 件のインボックス relay に接続中 + + + %1$d 件の relay に接続中 + + インボックス relay に接続中… + Amethyst 通知有効中 + 音声・ビデオ通話の着信通知 + 着信 + %1$s があなたのチェスの挑戦を受け入れました + チェスゲームのイベントを通知します + チェス + チェスの更新 + %1$s が動かしました — あなたの番です + プライベートメッセージが届いたら通知する + プライベートメッセージ + 新しいメッセージ + 既読にする + 誰かがあなたをメンションまたは引用したときに通知します + %1$s があなたをメンションしました + メンション + 新しいメンション + 誰かがあなたの投稿にリアクションしたときに通知します + %1$s があなたの投稿にリアクションしました + %1$s に対して + リアクション + 新しいリアクション + 誰かがあなたの投稿に返信したときに通知します + 返信 + 新しい返信 + 返信 + 予約投稿が公開または失敗したときの通知。 + 予約投稿 + 誰かがあなたにザップしたら通知する + %1$s sats + %1$sに + %1$sから + ザップを受け取りました + 新しい zap + アプリ設定 + 認証 + 認証リクエスト + 認証者の習熟度 + 認証者の推薦 + オーディオビジュアライザー + 入力中または未送信のテキストがある状態でコンポーザーを離れると、下書きイベントを自動的に保存し、プライベートのアウトボックスrelayに送信します。 + 自動的に下書きを作成する + 没入スクロール + スクロール中にナビゲーションバーを非表示 + 自動的に画像/GIFを読み込み + 画像と GIF を自動的に読み込む + 自動的に動画を再生 + 動画と GIF を自動的に読み込む + プロフィール画像 + プロフィール画像を表示 + 自動的にURLプレビューを表示 + URL プレビューを表示 + 動画の自動再生 + 画面に表示されたときに動画を自動再生する + AVIFからメタデータを削除できません:%1$s + バッジを授与 + 戻る + 鍵をバックアップ + バッジ + 認証に失敗しました + 生体認証でこの端末の所有者を確認できませんでした + 生体認証でこの端末の所有者を確認できませんでした。エラー: %1$s + ブロック + ブロック済み Relay + Amethyst はこれらの relay に接続しません + ブロック済みユーザ + 新しいブックマークリスト + ブックマークリストのメタデータ + ブックマークリストのメタデータはNostr上の誰でも見ることができます。プライベートメンバーのみ暗号化されます。 + ブックマーク + ブースト + ボトムナビゲーションバー + Broadcast Relay + sendit.nosflare.com のように、あなたのノートを他のすべての relay にプッシュすることに特化した relay です。Amethyst はあなたが作成するすべての新しいイベントにこの relay を追加します。 + ブラウザ + お気に入り + オープンウェブで読み込み中。タップしてTorを使用します。 + Tor経由で読み込み中。タップしてオープンウェブを使用します。 + + %1$s、%2$dイベント + + 画像のアップロードに失敗しました + 選択した画像をアップロードできませんでした。もう一度試すか、URLを貼り付けてください。 + カレンダーイベントを共有 + マップで開く + リンクを開く + 開催中 + %1$s · 終了:%2$s + + %1$d分後に開始します + + 参加予定のイベントが始まる前に通知します。 + calendar_reminders + カレンダーリマインダー + カレンダーイベント + 参加予定のイベントが始まる前に通知が送られます。 + リマインダーを送る + + %1$d分 + + カレンダーリマインダー + 日 + フィード + 月 + 週 + 受ける + Bluetooth + カメラオフ + カメラオン + イヤピース + 切る + 着信 + ビデオ通話着信中… + 音声通話着信中… + ミュート + 通話 + 通話中の通知 + Amethyst がビデオ通話を開始するにはカメラとマイクのアクセス権が必要です。アプリの設定で有効にしてください。 + Amethyst が音声通話を開始するにはマイクのアクセス権が必要です。アプリの設定で有効にしてください。 + 拒否 + 通話設定 + スピーカー + ミュート解除 + %1$s との通話 + %1$s のレスポンスにコールバック URL が見つかりませんでした + キャンセル + Cashuトークン + mintを確認しています… + Cashu を換金できませんでした + Mint から次のエラーメッセージが返されました: %1$s + 受取済み + 送金済み + 一致するmint + + +%1$d件 + + 人気のmint + + 他%1$d人がおすすめ + + %1$s sat を %2$s に移動しました。 + 対応する Cashu ウォレットがシステムに見つかりません + + %1$d件の保留中の請求書 + + %1$s sat + 最大%2$s satの手数料を支払いますか? + %1$sのkind:38000おすすめの削除リクエストを公開します。NIP-09を承認するrelayはこれを削除します。 + %2$s個のproofから%1$s satsを回復しました。 + Cashu を受け取りました + %1$s sats がウォレットに送られました。(手数料: %2$s sats) + + 使用していない%1$d個のmintに資金があります + + インボイスの支払いを待っています… + + %1$d mint + + キャストを停止 + デバイスにキャスト + 児童安全基準 + アクセサリー + アート + 書籍 + 衣類 + コレクターアイテム + クラフト + 電子機器 + フィットネス + 食品 + 家具 + ホーム + その他雑多 + オフィス + その他 + ペット + スポーツ + 毎日 + 毎月 + 1 回のみ + 毎週 + %2$s 経由で %1$s を支払いますか? + %1$s 経由でこのインボイスを支払いますか? + デビットサービスが支払いを完了しませんでした。 + このオファーに有効な金額を入力してください。 + インボイスを要求中… + この投稿へのすべてのリアクションを閉じる + 終了 + コミュニティ + 下書きは %1$d バイトです。このコミュニティはこの kind を %2$d バイトまでに制限しています。 + 下書きは %1$d バイトです。このコミュニティはイベントを %2$d バイトまでに制限しています。 + 本日、この kind のイベントをすでに %1$d 件投稿しています(上限 %2$d 件)。 + 作成の設定 + デフォルトポートは 9050 + 接続済み Relay + 現在使用中の relay の一覧 + relay への接続成功率 + 常に + なし + 従量制なし WiFi + ドキュメントを追加 + 画像を追加 + メディアを追加 + 動画を追加 + 非表示 + 警告 + 表示 + 会話 + アニメーションGIFをMP4動画に変換してファイルサイズを縮小し、再生互換性を向上させます。 + GIFをMP4に変換 + 投稿ID (@note1) をクリップボードにコピーしました + テキストがクリップボードにコピーされました + クリップボードにコピーしました + @npubをクリップボードにコピーしました + 秘密鍵をコピー + クリップボードにコピー + Lightning アドレス「%1$s」から LNUrl を組み立てられませんでした。ユーザーの設定を確認してください + アップロード後にダウンロードしたファイルを確認できませんでした:%1$s + アップロードされたメディアをサーバーからダウンロードできませんでした + %1$s から請求書を取得できませんでした: %2$s + 圧縮ファイルを開けませんでした + ウォレットが見つかりません + Amethyst は Nostr Wallet Connect(NWC)に対応したウォレットアプリを見つけられませんでした。 +\n\n対処方法: +\n\t1. NWC サポートを確認: お使いのウォレットアプリが Nostr Wallet Connect に対応しているか再確認してください。 +\n\t2. 接続を作成: ウォレットアプリで新しい NWC 接続を作成してください。 +\n\t3. Amethyst にリンク: ウォレットは通常、以下の3つの方法を提供します: +\n\t\t3.1 自動リンク: 自動的に Amethyst を開いて接続するボタン。その場合、ボタンをクリックして Amethyst を開き、新しい画面で保存を押してください。 +\n\t\t3.2 手動リンク: この画面の貼り付けアイコンをクリックして直接入力できる接続 URI。 +\n\t\t3.3 QR コード: ウォレットが作成する QR コード。この画面の QR コードボタンから読み取れます。 + + 作成 + 日 + 危険ゾーン + ダーク + 説明 + 公開にする + チャット + コミュニティ + フィードアルゴリズム + フォローパック + ライブストリーム + マーケットプレイス + 読み物 + DM 受信 Relay + DM + 翻訳しない言語 + ここに表示されている言語は翻訳されません。言語を選択して削除すると、再び翻訳されるようになります。 + 端末に保存 + 動画をダウンロード中… + 下書きノート + 下書き + アカウント + 作成 + フィード + ナビゲート + システム + あなた + + %1$d日 + + + %1$d時間 + + + %1$d分 + + + %1$dヶ月 + + + %1$d週間 + + + %1$d年 + + カレンダーを編集 + カレンダーイベントを編集 + コミュニティを編集 + 絵文字パックを編集する + プレイリストを編集 + 投稿を編集 + プライベート絵文字はrelayに暗号化されて保存され、あなただけに見えます。パブリック絵文字と同様に、リアクションメニューと「:」オートコンプリートに表示されます。 + パブリック絵文字は全員に表示され、このパックが絵文字リストに含まれている場合、リアクションメニューと「:」オートコンプリートピッカーに表示されます。 + 絵文字 + プライバシーのためにアップロード前にファイルを暗号化します。一部のサーバーでは無料アカウントで暗号化ファイルを受け付けない場合があります。 + ファイルを暗号化 + 消えるチャット + エラー + 請求書を支払えませんでした + 引き出しできませんでした + 支払いを開けません + zap を送信できません + 署名アプリを開くエラー + 署名アプリが見つかりませんでした。アプリがアンインストールされていないか確認してください + エラーメッセージの解析に失敗しました + %1$s からの JSON の解析エラー。ユーザーの Lightning 設定を確認してください + 受信者のサーバーから請求書を取得できません + ブラウザで開く + この動画を再生できません + このデバイスではコーデックまたは形式がサポートされていません(%1$s)。ブラウザで開いてみてください。 + エラー + relay同期 + あなたからのイベント + あなた宛てのイベント + AMRAP + サーキット + サイクリング + 食事管理 + EMOM + 断食 + ハイキング + 瞑想 + ローイング + ランニング + 筋トレ + 水泳 + ウォーキング + ヨガ + 展開する + 有効期限 + Relay 設定をエクスポート + 削除に失敗しました:%1$s + 秘密鍵の暗号化に失敗しました + 画像の保存に失敗しました + PDF の保存に失敗しました + 動画の保存に失敗しました + 多くのサーバーは無料アカウントで暗号化ファイルを受け付けません。暗号化なしで再試行できます。 + 暗号化アップロード失敗 + アップロードエラー:%1$s + メディアのアップロードに失敗しました + %1$sへのアップロードに失敗しました:%2$s + お気に入りに追加 + オープンウェブ経由で読み込みます。 + Tor 経由で読み込みます。 + 最近 + お気に入りから削除 + そのアプリはまだ読み込まれていません。しばらくしてから再試行してください。 + お気に入りアプリ + お気に入りフィードアルゴリズム + 支払いを行いました + relay に公開しました + ファイルをアップロードしました + お気に入り Relay フィード + グローバルフィードを見るためによく訪れる relay + コミュニティ + フィードアルゴリズム + フィード + ハッシュタグ + インタレストセット + リスト + 場所 + Relays + ファイルサーバ + このファイルをアップロードするサーバーを選択 + 見知らぬ人の同一投稿が5回以上繰り返された場合に非表示にします + スパムをフィルタリング + フォロー + フォローバック + すべてのお気に入りフィードアルゴリズム + 周辺 + キュレーション + グローバル + デフォルトフォローリスト + すべてのフォロー + すべてのユーザーフォロー + マイリスト + ミュートリスト + 新しいフォローパック + フォローパックを編集 + フォローパックのメタデータは Nostr 上の誰でも見ることができ、新規ユーザー向けのスターターキットとして多くのウェブサイトで頻繁に公開されています。 + フォローパックのメタデータ + フォローパック + 新しいフォローリスト + リストを編集 + プロフィールギャラリースタイル + ギャラリースタイルを選択 + クラシック + モダン + 位置情報限定投稿 + その位置のフォロワーのみに表示されます。一般のフォロワーには表示されません。 + %2$s sats のゴールに対して %1$s を達成 + 時間 + 画像が変更されています。作者は変更に気づいていないかもしれません + これはどういう意味ですか? + 画像は投稿時と同じです + %1$sさん、こちらはまだ入手可能ですか? + 非表示ワード + コミュニティが NIP-9B ルール文書を公開している場合、違反するイベントをコミュニティフィードから除外します。構造化されたルールのないコミュニティには影響しません。 + コミュニティルール違反の投稿を非表示 + パスワードを非表示 + %1$s をアップロード中(%3$d 件中 %2$d 件目) + すべて + 400 Bad Request — サーバーがリクエストを処理できないか、処理しようとしません。 + 401 Unauthorized — ユーザーが有効な認証情報を持っていません + 402 Payment Required — サーバーはリクエストを完了するために支払いを要求しています + 403 Forbidden — ユーザーがリクエストを行うためのアクセス権を持っていません + 404 Not Found — サーバーがリクエストされたアドレスを見つけられません + 405 Method Not Allowed — サーバーはリクエストメソッドをサポートしていますが、対象リソースではサポートしていません + 406 Not Acceptable — サーバーがリクエストを満たすコンテンツを見つけられません。 + 407 Proxy Authentication Required — ユーザーが有効な認証情報を持っていません + 408 Request Timeout — サーバーが応答を待ちタイムアウトしました + 409 Conflict — リソースとの競合があるためサーバーがリクエストを処理できません + 410 Gone — リクエストされたコンテンツはサーバーから完全に削除されており、復元されません + 411 Length Required — サーバーが定義されたContent-Lengthを要求するためリクエストを拒否しました + 412 Precondition Failed — サーバーがヘッダーフィールドのリクエストの事前条件を満たせません + 413 Payload Too Large — リクエストがサーバーの制限を超えているため、サーバーは処理を拒否しています + 414 URI Too Long — クライアントがリクエストしたURLがサーバーの処理できる長さを超えています。 + 415 Unsupported Media Type — リクエストがサーバーのサポートしていないメディア形式を使用しています + 416 Range Not Satisfiable — サーバーがリクエストのRangeヘッダーフィールドに示された値を満たせません。 + 417 Expectation Failed — サーバーがExpectリクエストヘッダーフィールドの要件を満たせません + 426 Upgrade Required — クライアントが別のプロトコルにアップグレードしない限り、サーバーは現在のプロトコルでリクエストを処理しません。 + 500 Internal Server Error — サーバーが予期しないエラーに遭遇し、リクエストを完了できません + 501 Not Implemented — サーバーがリクエストを処理できないか、リクエストメソッドを認識しません + 502 Bad Gateway — サーバーがゲートウェイとして機能し、ホストから無効なレスポンスを受け取りました + 503 Service Unavailable — サーバーが過負荷またはメンテナンス中のためよく発生します + 504 Gateway Timeout — サーバーがゲートウェイまたはプロキシとして機能し、レスポンスを待ちタイムアウトしました + 505 HTTP Version Not Supported — サーバーがリクエストのHTTPバージョンをサポートしていません + 506 Variant Also Negotiates — サーバーの内部設定エラーです + 507 Insufficient Storage — サーバーがリクエストを正常に処理するのに十分なストレージを持っていません + 508 Loop Detected — サーバーがリクエストの処理中に無限ループを検出しました + 511 Network Authentication Required — クライアントはネットワークにアクセスするために認証が必要です + 不法行為 + 画像を保存しました + なりすまし + Inbox Relay + %2$s からの請求書金額が正しくありません(%1$s sats)。正しい金額は %3$s であるべきでした + インデクサー Relay + purplepag.es のように、全ユーザーのメタデータと relay リストのホスティングに特化した relay です。Amethyst はこれらの relay を使用して、あなたのリストにないユーザーを検索します。 + 新しいインタレストセット + 名前を変更 + ハッシュタグセット + 無効な鍵 + 無効な鍵: %1$s + 無効なアドレス + Amethyst が開くための URI を受信しましたが、その URI は無効でした: %1$s + 下書きノートを引用することはできません + 下書きノートにリアクションすることはできません + 下書きノートには返信できません + 下書きノートに zap することはできません + 鍵が必要です + KeyPackage Relay + あなたの MLS KeyPackage が公開されている relay(MIP-00)です。他のユーザーはこれらの KeyPackage を取得して、あなたを Marmot グループチャットに招待します。KeyPackage イベントの書き込みとパブリック読み取りを許可する relay を 1〜3 つ入力してください。 + KeyPackage + 承認済みバッジセット + アドベンチャープロローグ + アドベンチャー読書 + アドベンチャーシーン + アプリのおすすめ + 予定 + アプリ + 予定RSVP + オーディオヘッダー + オーディオトラック + 作成したポッドキャスト + バッジ受賞 + バッジ定義 + Blobデータ + Blobヘッダー + ブロックされた Relays + ブログ + Blossom Auth + Blossom Servers + ブックマークリスト + ブロードキャスト Relays + カレンダー + チャンネル定義 + チャンネルメッセージ非表示 + チャンネルリスト + チャンネルメッセージ + チャンネルメタデータ + チャンネルユーザーミュート + チェス認証 + チェスチャレンジ + チェス引き分け提案 + チェスゲーム承認 + チェスゲーム終了 + チェスゲーム + チェスの手 + 分類広告 + コメント + コミュニティ定義 + コミュニティリスト + コミュニティ投稿 + 連絡先カード + 日次予定 + 削除 + DMファイル + DMメッセージ + DM relay + 下書き + DVMコンテンツリクエスト + DVMコンテンツレスポンス + DVMステータス + DVMユーザーリクエスト + DVMユーザーレスポンス + 編集 + 絵文字パックリスト + 絵文字パック + 一時チャット + 一時チャットルーム + お気に入りのポッドキャスト + お気に入りrelay + ファイルヘッダー + ファイルサーバー + フォローリスト + フォローパック + ジオハッシュフォロー + GiftWrap + Git Issue + Git Patch + Git返信 + Git Repo + ハッシュタグフォロー + ハイライト + HTTP認証 + インデックスrelayリスト + ライブチャット + ライブストリーム + 医療データ + ミーティングルーム + ミーティングスペース + 音楽プレイリスト + 音楽トラック + ミュートリスト + 名前付きブックマーク + Nests Servers + NIP + NIP-04 DM + NNS + Nostr Connect + ノート + NWCリクエスト + NWCレスポンス + 旧ブックマークリスト + OTS + Outbox Relays + PayTo + ピープルリスト + 画像 + ピン + ポッドキャストエピソード + ポッドキャスト番組 + 投票 + 投票回答 + プライベートrelay + プライベートZap + プロフィール + プロフィールバッジ + プロフィールギャラリー + プロキシrelay + パブリックメッセージ + リアクション + relay認証 + relay検索 + relayモニターアナウンス + relayセット + レポート + リポスト + リポスト(16) + ルームプレゼンス + シール + 検索relay + ショート + ショート(Repl) + トレントコメント + トレント + 信頼済みプロバイダー + 信頼済みrelay + ユーザー削除 + ユーザー設定 + ユーザーステータス + 動画 + 動画(Repl) + ボイスメッセージ + ボイス返信 + WakeUp + Webブックマーク + Wiki + ワークアウト + Zapゴール + Zapポール + Zapリクエスト + Zap + 知り合い + 言語表示の設定 + 翻訳された言語ペアごとに、どの言語を先に表示するかを選択します。 + 最終確認:%1$s前 + たった今確認 + 未確認 + 最終確認:%1$s(%2$s前) + 退出 + ライト + ライブ配信 + ローカル Relay + このデバイスで動作している relay の一覧です。 + 秘密鍵でログインすると投稿をブーストできます + 秘密鍵でログインするとフォローすることができます + 公開鍵でログインしています。公開鍵は読み取り専用です。ワードやフレーズを非表示にするには、秘密鍵でログインしてください + 秘密鍵でログインするとリプライできます + 秘密鍵でログインするとザップすることができます + 公開鍵でログインしています。公開鍵は読み取り専用です。ワードやフレーズを表示するには、秘密鍵でログインしてください + 公開鍵でログインしています。公開鍵は読み取り専用です。イベントに署名するには、秘密鍵でログインしてください + 秘密鍵でログインするとフォロー解除することができます + 公開鍵でログインしています。公開鍵は読み取り専用です。アップロードするには、秘密鍵でログインしてください + 秘密鍵でログインするといいねができます + 動画 + 分 + マイ絵文字パック + %1$s を追加中… + 管理者権限が付与されました + 管理者権限が取り消されました + %1$s の追加に失敗しました: %2$s + グループの作成に失敗しました: %1$s + 管理者権限の付与に失敗しました: %1$s + グループの退出に失敗しました: %1$s + メンバーの削除に失敗しました: %1$s + 管理者権限の取り消しに失敗しました: %1$s + 更新に失敗しました: %1$s + MLS グループ + グループ情報が更新されました + + %1$d 人のメンバー + + メンバーが削除されました + + %1$d 件のメッセージ + + このグループのメンバーではありません + 不明なエラー + メディアを追加しました + プロフィールギャラリーにメディアを追加しました + メディアのダウンロードを開始しました… + メディアサーバー + メディアがNIP-95には大きすぎます + 先にメッセージの宛先を入力してください + アップロードできません + 件名 + メタデータを削除できませんでした + メディアからプライベートメタデータを削除できませんでした。アップロードをキャンセルしました。 + ブックマークの移行が完了しました + Lightning の設定がありません + 詳細なオプション + プライベートに移動 + 公開に移動 + カバー画像をアップロード + このプレイリストのアートワークとして正方形の画像を選んでください。 + + +%1$d トラック + + + %1$d トラック + + + %1$d トラック + + カバーをアップロードして公開中です。画面を離れても処理は続きます。 + 音声ファイルをアップロード + MP3、WAV、または FLAC を選んでください。保存時にメディアサーバーにアップロードされます。 + カバー画像をアップロード + このトラックのアートワークとして正方形の画像を選んでください。 + カバーと音声をアップロードして公開中です。画面を離れても処理は続きます。 + 音声オン。クリックしてミュート + ミュート中。クリックしてミュート解除 + マイリスト + 名前は必須です + %1$dms + Namecoin設定 + ID + 公開鍵を読み取る + メッセージング + 他の napplet とメッセージをやり取りする + キーボード操作 + キーボードショートカットをバインドする + 通知 + 通知を表示する + relay + イベントを読み取り、署名して公開する + ネットワーク + ウェブおよび Blossom リソースを取得する + ストレージ + 専用のプライベートストレージ + テーマ + アプリの色に合わせる + アップロード + メディアサーバーにファイルをアップロードする + 支払い + Lightning インボイスを支払う + この nApplet はあなたの公開鍵を読み取ろうとしています。 + この nApplet はあなたのプロフィールとアカウントデータを読み取ろうとしています。 + この nApplet はあなたに通知を表示しようとしています。 + + この nApplet は %1$d sats の Lightning インボイスを支払おうとしています。 + + この nApplet はあなたとして kind %1$d イベントに署名して公開しようとしています。 + この nApplet はあなたとして暗号化されたイベントを送信しようとしています。 + この nApplet はあなたとして kind %1$d イベントに署名して公開しようとしています: + この nApplet はあなたの relay からイベントを読み取ろうとしています。 + この nApplet はウェブリソースを取得しようとしています。 + このサイトはあなたの Nostr 鍵で kind %1$d イベントに署名しようとしています。 + この nApplet はプライベートストレージを使用しようとしています。 + この nApplet はメディアサーバーにファイルをアップロードしようとしています。 + nApplet %1$s… + nApplets + メッセージを送信できませんでした + このスピーカーをミュート + このスピーカーを復元 + 退出 + ルームをクローズ済みとしてマークできませんでした。退出します — ルームは自動的に閉じます。 + + %1$d 人のリスナー + + 手を下ろす + マイクをミュート + マイクのミュートを解除 + ミュート + Nest サーバーリストを保存できませんでした。再試行してください。 + Nest — ライブ中 + Nests + ルームが開いている間オーディオを再生し続けます。 + Nest に接続しました + 停止 + タップして戻る。 + フォロー + ミュート + フォロー解除 + ミュート解除 + Nest を退出しました + オーディエンスとして参加しました + ステージに上がりました + 手を挙げました + 話しています + 手を挙げる + ミュート解除 + Nests + kind-10112 の置き換え可能なイベントとして保存され、他のクライアントがあなたの設定を読み取ることができます。 + あなたのサーバー + ワンタップでリストに追加できる組み込みの候補です。 + おすすめのサーバー + Nest サーバー + なし + 新しいバッジ + 新規カレンダー + 新規カレンダーイベント + 新しいコミュニティ + モデレーター + relay + バンされたユーザー + コミュニティコメント(1111) + 長文記事(30023) + 画像投稿(20) + ショートテキスト(1) + ショート動画(22) + 動画投稿(21) + 許可されたイベントの種類 + グローバル最大イベントサイズ(任意) + 検証可能なルール(任意) + Web-of-trustゲート(任意) + 新しい絵文字パック + 新しいゴール + 新規記事 + 新しいプレイリスト + 新しい音楽トラック + 新規商品 + 新しいリクエスト + 新規スレッド + 新しいワークアウト + + %1$d 件のアセットがバンドルされています + + Blossom アプリが見つかりませんでした。このファイルを表示するにはローカルの Blossom アプリをインストールしてください + Blossom リンクを開けません + この端末にカメラアプリが見つかりません + Lightning アドレスが設定されていません + この支払いを処理できるアプリが見つかりません。対応するウォレットをインストールしてください。 + %1$s の支払いを処理できるアプリがインストールされていません。対応するウォレットをインストールしてください。 + リアクションタイプが選択されていません。長押しして変更 + リアクションが設定されていません + Lightning 請求書を支払うウォレットが見つかりません。zap を使用するには Lightning ウォレットをインストールしてください + Lightning 請求書を支払うウォレットが見つかりません(エラー: %1$s)。zap を使用するには Lightning ウォレットをインストールしてください + ザップ額が未設定です。長押しで変更 + 通知 + カテゴリ + 配信 + アプリ内表示 + 今 + Nowhere アート + Nowhere ドロップ + Nowhere イベント + Nowhere フォーラム + Nowhere 資金調達 + Nowhere サイト + Nowhere メッセージ + Nowhere 請願 + Nowhere ストア + nSites + ヌード + イベント参照を構築できません + ノートに受信者の公開鍵がありません + Nutzapは公開されるため、このプライベートノートが公開されてしまいます。代わりにLightning zapを使用してください。 + Nutzapが失敗しました + + %1$s satsを%2$d分割で送る + + Bitcoinチェーンバックエンドが設定されていません + トランザクションをブロードキャストできませんでした + トランザクションを構築できませんでした + Bitcoin残高を読み込めませんでした + 支払いは送信されましたが、zap領収書を公開できませんでした + + 支払いは送信されました(%2$d件中%1$d件の領収書を公開済み)が、次の領収書を公開できませんでした + + 受信者の取り分がダスト以下です + トランザクションに署名できませんでした + 約10分 + 約30分 + 約1時間 + 速い + 普通 + 遅い + %1$s · %2$s sat/vB · %3$s + + %1$d人の受信者に分割 + + + Lightningアドレスのみの受信者%1$dをスキップしています — オンチェーンにはアドレスを導出するためのNostr公開鍵が必要です。 + + + このノートの%1$d分割zapを使用する + + ブロードキャストしています + トランザクションを構築しています + 残高を読み込んでいます + 領収書を公開しています + 署名しています + このタイプの投票では、1ユーザにつき1回のみ投票可能です + この投稿へのすべてのリアクションを開く + 進行中 + OrbotのSocksポート番号 + Bitcoin Explorer(OTS) + この投稿が %1$s より前に署名されたことの証明があります。この証明はその日時に Bitcoin ブロックチェーンに刻印されています。 + タイムスタンプ証明 + Outbox Relay + パスワードは必須です + 一時停止 + 支払う + %1$sからのメッセージ + 支払い先 + 異なるネットワーク(例:bitcoin、lightning、ethereum)の支払いアドレスを追加してください。 + PDF を Downloads/Amethyst に保存しました + フォローリストのメタデータは Nostr 上の誰でも見ることができます。プライベートメンバーのみ暗号化されています。 + フォローリストのメタデータ + 画像 + トップに固定 + プロフィールにピン留め + 再生 + + %1$d エピソード + + 投票の作成者が投票することはできません。 + (0〜100)% + この投票は新規票を受け付けていません + 複数選択 + 選択肢%1$s + 単一選択 + 投票できません + 投票 + 送信 + + このポストには %1$d 件以上のハッシュタグが含まれています + + %1$sのプレビューカード画像 + プライバシーオプション + プライバシーポリシー + <プライベートメッセージの復号に失敗しました>\n\n%1$s と %2$s のプライベート/暗号化された会話であなたが言及されました。 + DM 受信 Relay + プライベート受信 relay として 1〜3 つの relay を入力してください。他のユーザーはこれらの relay を使ってあなたに DM を送ります。DM 受信 relay は誰からでもメッセージを受け取れますが、ダウンロードはあなた自身のみに許可するものにしてください。おすすめの選択肢:\n - inbox.nostr.wine(有料)\n - auth.nostr1.com(無料)\n - you.nostr1.com(個人用 relay - 有料) + ユーザーはこれらの relay で DM を受け取っています + プライベートメッセージ + プライベートにする:通知ユーザーのみへのgift-wrapノート + プライベートノートへの返信は常にプライベートのままです + 閲覧可能なユーザー + プライベートホーム Relay + 下書きやアプリ設定など、他のユーザーには見えないイベントを保存する relay を 1〜3 つ入力してください。理想的には、ローカル relay か、各ユーザーのコンテンツをダウンロードする前に認証を要求する relay を使用してください。 + 誹謗中傷 / ヘイトスピーチ + プロフィール + プロフィールバッジ + アプリのおすすめ + プロフィールバッジ + フォロワーフィード + 受信した Zap フィード + プロフィール UI + プロフィール + 編集を提案する + Proxy Relay + filter.nostr.wine のように、アプリがフィードをダウンロードするために使用するアグリゲーター relay です。これにより outbox モデルが置き換えられ、アプリはリスト内の relay のみに接続するようになります。 + 公開チャット + パブリックチャットは Nostr 上の全員に公開されており、誰でも + 参加できます。特定のトピックを中心としたオープンなコミュニティに最適です。 + モデレーションは、その relay 上のポストを削除することで管理できます + このグループをホストする relay を 1〜3 件入力してください。 + Nostr クライアントはこの設定を使用して、メッセージのダウンロード先と送信先を決定します。 + Relay + パブリックチャットのメタデータ + パブリックチャット + パブリック Outbox / ホーム Relay + この relay タイプはすべてのコンテンツを保存します。Amethyst はここに投稿を送信し、他のユーザーはこれらの relay を使ってあなたのコンテンツを見つけます。1〜3 つの relay を入力してください。個人用 relay、有料 relay、またはパブリック relay が利用できます。 + ユーザーはこれらの relay にコンテンツを投稿しています + パブリックメッセージ + パブリック Inbox Relay + この relay タイプは、あなたの投稿へのすべての返信、コメント、いいね、zap を受信します。有料・無料いずれの relay も使用できます。relay 運営者が設定する制限により、受け取る通知の量が変わる場合があります。たとえば、コメントスパム攻撃を受けている場合、有料 relay でスパムをフィルタリングできます。1〜3 つの relay を入力してください。 + ユーザーはこれらの relay で通知を受け取っています + 投稿ID + 削除 + スレッドをミュート + 共有 + ブラウザリンクを共有 + スレッドのミュートを解除 + リアクション + リアクション + リアクションバー + リレーから読み込み + フィルターやイベントを含む、この relay から受信したバイト数 + 読み取り専用ユーザー + 長押ししてメッセージを録音 + relay チャット + relay チャットは、ホスト relay によって管理されるチャットグループです。 + Nostr 上の全員に公開されており、誰でも参加できます。 + 特定のトピックを中心としたオープンなコミュニティに最適です。一部のグループは一時的なもので、 + チャットメッセージは時間とともに消えます + relay チャット + イベント + IP + Kind + ユーザー + 設定 + Relay 設定 + アウトボックスリスト + リレー + チャージ & Zapを送信 + Zapを送信 + %2$sに%1$s satsをチャージして%3$sへ%4$s satsをZap · 手数料 ≈ %5$s sats + 削除 + 公開ブックマークから削除 + ここに返信… + 通知: + + 削除をリクエスト + 消去リクエスト + Marmot 状態のリセットに失敗しました: %1$s + Marmot 状態をリセット + Marmot 状態をリセットしました。 + 再試行 + カレンダーリスト + カレンダー + チェス + 発見 + ホーム + フォローをインポート + メッセージ + プレイリスト + 音楽 + 通知 + エピソード + ポッドキャスト + 投稿を予約 + 予約をキャンセル + 予約投稿は次回アプリを開くまで公開されない場合があります。このアカウントがアクティブな間、他のアカウントの予約投稿は実行されません。確実なバックグラウンドスケジューリングのために、設定 → UI設定で常時通知を有効にしてください。 + 予約投稿は次回アプリを開くまで公開されない場合があります。確実なバックグラウンドスケジューリングのために、設定 → UI設定で常時通知を有効にしてください。 + 予約投稿 + 今すぐ送信 + %1$s · %2$s後 + %1$s · %2$s前 + 明日 + エラー: %1$s + ノートIDをコピーしました + + ログアウトしました · %1$d件の予約投稿を削除しました + + ログアウトしました + + %1$d件の予約投稿がまだ公開されていません。ログアウトすると完全に削除されます。 + + 予約投稿に失敗しました + 予約投稿が公開されました + + %1$d個のrelayへ + + キャンセル済み + 失敗 + 予約済み + 送信中… + 送信済み + + · %1$d件が1時間以内に公開 + + + %1$d件キュー中 + + おすすめの選択肢:\n%1$s + 検索 Relay + 検索 Relay + コンテンツやユーザーを検索する際に使用する relay の一覧です。利用可能なオプションがない場合、タグ付けと検索が機能しません。NIP-50 を実装していることを確認してください。 + 検索可能なイベント + 秘密鍵 (nsec) をクリップボードにコピーしました + まだユーザーをブロックしていません。 + セキュリティフィルタ + 非表示の単語はありません。下に単語を追加すると、その単語を含む投稿が非表示になります。 + ブロック済みコンテンツ + フィルタリング設定 + このセッションでスパムとして報告されたアカウントはありません。 + 送信 + 受信したすべてのプロフィール(kind 0)イベントをローカル relay に送信する + プロフィールをローカル relay に転送する + この受取人への支払い可能額: %1$s sats + 支払いに失敗しました + トランザクション: %1$s + %1$s 経由で支払い中… + アップロード後にサーバーがURLを提供しませんでした + 設定 + ミュートしたスレッドはありません + ミュートしたスレッド + 画像として共有 + 画像 URL として共有 + HLS アップロード + 共有または保存 + ショート + 暗号化された秘密鍵の QR コードを表示 + 通知タブにダイレクト・グループメッセージを含めます。オフにするとメッセージはメッセージタブのみに表示されます。 + メッセージを表示 + 秘密鍵の QR コードを表示 + 署名リクエストが拒否されました + 署名アプリがこのトランザクションを承認していることを確認してください + 外部署名アプリがリクエストに対して予期しないペイロードを返しました。Amethyst または署名アプリにバグがある可能性があります。 + 署名アプリが見つかりません + 署名アプリはアンインストールされましたか?署名アプリがインストールされており、このアカウントが登録されているか確認してください。署名アプリが変更された場合は、一度ログアウトしてからログインし直してください。 + %1$d 秒戻る + %1$d 秒進む + アプリ + スパム + この relay から送信されたスパムイベントの数 + スパマー + 「フォロー中」(フォローしている人)と「全員」の2つの通知タブを表示します。未読インジケーターはフォロー中の人のアクティビティのみ光ります。 + フォロー別に通知を分割 + アップロード前に対応するメディアファイルからプライベートメタデータの削除を試みます + プライベートメタデータを削除 + Health Connect(Samsung Health、Google Fit、Fitbit、Garminなど)から完了したワークアウトを読み取り、投稿として共有することを提案します。権限は接続時にのみ要求されます。 + ワークアウトの共有を提案する + システム + テーマ + ダーク、ライト、またはシステムテーマ + このメッセージは %1$s 後に消えます + + +%1$d\n件の返信 + + 今日 + カスタム + 独自の設定を作成 + デフォルト + ランダムな relay からIPアドレスを隠す + Orbot + 完全プライバシー + すべての接続でIPアドレスを隠す + 内蔵 + オフ + Tor/プライバシープリセット + 以下の設定をすばやく変更 + メディア以外すべて + 画像と動画を除くすべての接続でIPアドレスを隠す + DM relay + DM の送受信に Tor を強制 + 画像 + 画像の読み込みに Tor を強制 + メディアアップロード + コンテンツのアップロードに Tor を強制 + 送金操作 + zap、Lightning、Cashu 送金に Tor を強制 + 信頼されていない relay + アウトボックス/インボックス relay に Tor を強制 + Nostr アドレス認証 + NIP-05 アドレスの検証に Tor を強制 + Onion URL/relay + .onion URL に Tor を使用 + プロフィール画像 + プロフィール画像の読み込みに Tor を強制 + 信頼済み relay + リスト内のすべての relay に Tor を強制 + URL プレビュー + URL プレビューの読み込みに Tor を強制 + 動画 + 動画の読み込みに Tor を強制 + 基本 + サーバーが必要とする場合に Tor を使用 + ファイルを開けませんでした + ファイルを開いてダウンロードするための torrent アプリがインストールされていません。 + マグネットリンクを生成するための情報がイベントに不足しています + イベントの送信時に追跡ブロードキャスターを使用します。ブロードキャスト中にライブの進捗とrelay別のステータスを表示します。 + 追跡ブロードキャスト + 翻訳先 + コンテンツの翻訳先言語を選択してください。 + 翻訳 + 信頼済み Relay + Tor 接続が不要な信頼済み relay + 完全 + パフォーマンス + シンプル + UI設定 + UIモード + 投稿スタイルを選択 + zap 送信前に Lightning 請求書を作成できませんでした。受信者の Lightning ウォレットから次のエラーが送信されました: %1$s + 画像を共有できません。後でもう一度お試しください… + 動画を共有できません。後でもう一度お試しください… + 復号化が許可されていません + この操作に必要な復号化が署名アプリによって許可されませんでした。署名アプリで NIP-44 復号化を有効にして、もう一度お試しください + フォロー解除 + 固定を解除 + プロフィールのピン留めを解除 + アップロードをキャンセルしました + アップロードエラー + ボイスのアップロードに失敗しました: %1$s + ボイスメッセージのアップロードに失敗しました + NIP-95 はボイスメッセージにまだ対応していません + %1$d%%稼働率 + Tor エンジンを有効化 + 内蔵版または Orbot を使用 + satsを受け取るためのLightningアドレスが設定されていません + ユーザー %1$s は sats を受け取るための Lightning アドレスを設定していません + 消去履歴 + 消去リクエストを送信しました + 小さいファイルサイズでより高い品質ですが、すべての端末がH.265の再生をサポートしているわけではありません。 + H.265/HEVCコーデックを使用 + 動画のダウンロードを開始しました… + ビデオプレーヤーボタン + 動画を端末のギャラリーに保存しました + 音声投稿 + 低音 + 高音 + ニュートラル + なし + 音声返信 + ウォレット + Cashu ウォレット(NIP-60) + Wallet Connect + Wallet Connect プロバイダーから次のエラーが返されました: %1$s + mintを編集 + フォロー中の人から報告された投稿やプロフィールに警告メッセージを表示します + 報告時に警告 + ウェブブックマークを追加 + ウェブブックマークを編集 + ウェブブックマーク + 何か思いついた? + ワークアウト + メッセージを入力… + リレーに書き込み + フィルターやイベントを含む、この relay に送信されたバイト数 + Zap + ザップ + + 名前を変更 + 保存 diff --git a/commonsUI/src/commonMain/composeResources/values-ko-rKR/strings.xml b/commonsUI/src/commonMain/composeResources/values-ko-rKR/strings.xml index 6c349e7205..c52c780fd0 100644 --- a/commonsUI/src/commonMain/composeResources/values-ko-rKR/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-ko-rKR/strings.xml @@ -1780,4 +1780,1147 @@ Explorer API 기본 URL DVM에서 청구서 결제 DVM에 %1$s sats 결제 + 정보 & 법적 고지 + 계정 설정 + 추가 + Blossom 서버 추가 + NIP-96 서버 추가 + 활성화하면 Amethyst가 게시하는 이벤트에 NIP-89 클라이언트 태그를 추가합니다. + 내 이벤트에 클라이언트 태그 추가 + 이 콘텐츠를 표시하기 전에 민감한 콘텐츠 경고를 추가합니다 + 민감한 콘텐츠 + 공개 북마크에 추가 + 기기 내 AI 모델을 사용하여 텍스트 수정 및 톤 변경을 제안합니다. + 텍스트 개선 제안 + 실시간 알림을 위해 inbox relay에 대한 연결을 유지합니다 + + %1$d개의 inbox relay에 연결됨 + + + %1$d개의 relay에 연결됨 + + inbox relay에 연결 중… + Amethyst 알림 활성화됨 + 수신 음성 및 영상 통화 알림 + 수신 전화 + %1$s님이 체스 도전을 수락했습니다 + 체스 게임 이벤트를 알립니다 + 체스 + 체스 업데이트 + %1$s님이 이동했습니다 — 당신의 차례입니다 + 비공개 메시지가 도착하면 알립니다 + 비공개 메시지 + 새 메시지 + 읽음으로 표시 + 누군가 게시물에서 나를 언급하거나 인용하면 알립니다 + %1$s님이 나를 언급했습니다 + 멘션 + 새 멘션 + 누군가 게시물에 반응하면 알립니다 + %1$s님이 게시물에 반응했습니다 + %1$s에 대해 + 반응 + 새 반응 + 누군가 게시물에 답글을 달면 알립니다 + 답글 + 새 답글 + 답글 + 예약된 게시물이 게시되거나 게시에 실패할 때 알림을 받습니다. + 예약된 게시물 + 누군가 zap을 보내면 알립니다 + %1$s에 대해 + 보낸 사람: %1$s + 받은 Zap + 새 zap + 앱 설정 + 증명 + 증명 요청 + 증명자 숙련도 + 증명자 추천 + 오디오 시각화 + 텍스트를 입력하거나 전송하지 않은 텍스트가 있는 작성 화면을 떠날 때 자동으로 임시 저장 이벤트를 저장하고 개인 outbox relay로 전송합니다. + 자동으로 임시 저장 + 몰입형 스크롤 + 스크롤 시 탐색 바 숨기기 + 이미지 미리보기 + 이미지 및 GIF 자동 로드 + 동영상 재생 + 동영상 및 GIF 자동 로드 + 프로필 사진 + 프로필 사진 표시 + URL 미리보기 + URL 미리보기 표시 + 동영상 자동 재생 + 화면에 표시될 때 동영상 자동 재생 + AVIF에서 메타데이터를 제거할 수 없습니다: %1$s + 배지 수여 + 뒤로 + 키 백업 + 배지 + 인증 실패 + 생체 인증으로 이 기기 소유자 확인에 실패했습니다 + 생체 인증으로 이 기기 소유자 확인에 실패했습니다. 오류: %1$s + 차단 + 차단된 Relay + Amethyst는 이 relay에 절대 연결하지 않습니다. + 차단된 사용자 + 새 북마크 목록 + 북마크 목록 메타데이터 + 북마크 목록의 메타데이터는 Nostr의 누구나 볼 수 있습니다. 비공개 항목만 암호화됩니다. + 북마크 + 부스트 + 하단 탐색 모음 + 브로드캐스트 Relay + sendit.nosflare.com 같이 내 노트를 다른 모든 relay로 전달하는 데 특화된 relay입니다. Amethyst는 내가 작성하는 모든 새 이벤트에 이 relay를 추가합니다. + 브라우저 + 즐겨찾기 + 일반 웹으로 로드 중. 탭하여 Tor로 전환. + Tor를 통해 로드 중. 탭하여 일반 웹으로 전환. + + %1$s, %2$d개 이벤트 + + 이미지 업로드 실패 + 선택한 이미지를 업로드할 수 없습니다. 다시 시도하거나 URL을 붙여넣으세요. + 캘린더 이벤트 공유 + 지도에서 열기 + 링크 열기 + 지금 진행 중 + %1$s · %2$s 종료 + + %1$d분 후 시작 + + 참석하는 이벤트가 곧 시작될 때 미리 알림. + 캘린더 알림 + 캘린더 이벤트 + 참석하는 이벤트가 곧 시작될 때 알림이 발송됩니다. + 알림 보내기 + + %1$d분 + + 캘린더 알림 + 일 + 피드 + 월 + 주 + 수락 + 카메라 끄기 + 카메라 켜기 + 수화기 + 전화 끊기 + 수신 전화 + 수신 영상 통화… + 수신 음성 통화… + 음소거 + 통화 + 진행 중인 통화 알림 + 영상 통화를 시작하려면 Amethyst에 카메라 및 마이크 접근 권한이 필요합니다. 앱 설정에서 활성화해 주세요. + 음성 통화를 시작하려면 Amethyst에 마이크 접근 권한이 필요합니다. 앱 설정에서 활성화해 주세요. + 거절 + 통화 설정 + 스피커 + 음소거 해제 + %1$s와(과) 통화 + %1$s의 응답에서 콜백 URL을 찾을 수 없음 + 취소 + Cashu 토큰 + Mint 확인 중… + Cashu를 환급할 수 없음 + Mint에서 다음 오류 메시지를 반환했습니다: %1$s + 수신 + 송신 + 일치하는 mint + + +%1$d개 더 + + 인기 있는 mint + + %1$d명이 추천함 + + %1$s sat을 %2$s로 이동했습니다. + 시스템에서 호환 가능한 Cashu 지갑을 찾을 수 없음 + + %1$d개의 대기 중인 인보이스 + + %1$s sat + 최대 %2$s sat 수수료를 결제하시겠습니까? + %1$s에 대한 kind:38000 추천의 삭제 요청을 게시합니다. NIP-09를 지원하는 relay에서 삭제됩니다. + %2$s개의 증명에서 %1$s sats를 복구했습니다. + Cashu 수신됨 + %1$s sats가 지갑으로 전송되었습니다. (수수료: %2$s sats) + + 사용하지 않는 %1$d개의 mint에 보관된 자금 + + 인보이스 결제 대기 중… + + %1$d개 mint + + 캐스트 중지 + 기기로 캐스트 + 아동 안전 기준 + 액세서리 + 예술 + 도서 + 의류 + 수집품 + 공예 + 전자제품 + 피트니스 + 식품 + 가구 + 가정용품 + 기타 + 사무용품 + 기타 + 반려동물 + 스포츠 + 일별 + 월별 + 1회 + 주별 + %2$s을(를) 통해 %1$s을(를) 결제하시겠습니까? + %1$s을(를) 통해 이 인보이스를 결제하시겠습니까? + 직불 서비스가 결제를 완료하지 못했습니다. + 이 offer에 유효한 금액을 입력하세요. + 인보이스 요청 중… + 이 게시물의 모든 반응 닫기 + 닫힘 + 커뮤니티 + 임시 저장이 %1$d바이트입니다. 이 커뮤니티는 이 종류를 %2$d바이트로 제한합니다. + 임시 저장이 %1$d바이트입니다. 이 커뮤니티는 이벤트를 %2$d바이트로 제한합니다. + 오늘 이 종류의 이벤트를 이미 %1$d개 게시했습니다 (한도 %2$d개). + 작성 설정 + 기본 포트는 9050입니다 + 연결된 Relay + 현재 사용 중인 relay 목록 + relay 연결 성공률 + 항상 + 사용 안 함 + 무제한 WiFi + 문서 추가 + 이미지 추가 + 미디어 추가 + 동영상 추가 + 숨기기 + 경고 보기 + 표시 + 대화 + 파일 크기 축소 및 재생 호환성 향상을 위해 애니메이션 GIF를 MP4 동영상으로 변환합니다. + GIF를 MP4로 변환 + 노트 ID(@note1)가 클립보드에 복사되었습니다 + 노트 텍스트가 클립보드에 복사되었습니다 + 클립보드에 복사됨 + 작성자의 @npub가 클립보드에 복사되었습니다 + 내 비밀 키 복사 + 클립보드에 복사 + Lightning 주소 "%1$s"에서 LNUrl을 구성할 수 없습니다. 사용자 설정을 확인하세요 + 업로드 후 다운로드된 파일을 확인할 수 없습니다: %1$s + 서버에서 업로드된 미디어를 다운로드할 수 없습니다 + %1$s에서 인보이스를 가져올 수 없습니다: %2$s + 압축 파일을 열 수 없습니다 + 지갑을 찾을 수 없음 + Amethyst에서 Nostr Wallet Connect (NWC)를 지원하는 지갑 앱을 찾을 수 없습니다. +\n\n할 수 있는 작업: +\n\t1. NWC 지원 확인: 사용하려는 지갑 앱이 Nostr Wallet Connect와 호환되는지 다시 확인하세요. +\n\t2. 연결 생성: 지갑 앱에서 새 NWC 연결을 생성하세요. +\n\t3. Amethyst에 연결: 지갑에서 보통 세 가지 옵션을 제공합니다: +\n\t\t3.1 자동 연결: Amethyst를 자동으로 열고 연결하는 버튼. 해당 버튼을 클릭하고 Amethyst를 열어 새 화면에서 저장을 누르세요. +\n\t\t3.2 수동 연결: 연결 URI를 복사하고 이 화면의 붙여넣기 아이콘을 클릭하여 직접 입력하세요. +\n\t\t3.3 QR 코드: 지갑이 QR 코드를 생성하면 이 화면의 QR 코드 버튼으로 읽을 수 있습니다. + + 만들기 + 일 + 위험 구역 + 다크 + 설명 + 공개로 만들기 + 채팅 + 커뮤니티 + 피드 알고리즘 + 팔로우 팩 + 라이브 스트림 + 마켓플레이스 + 읽기 + DM 수신함 Relay + DM + 번역하지 않을 언어 + 여기에 표시된 언어는 번역되지 않습니다. 언어를 선택하면 제거되어 다시 번역됩니다. + 휴대폰에 저장 + 동영상 다운로드 중… + 초안 노트 + 임시 저장 + 계정 + 만들기 + 피드 + 탐색 + 시스템 + 나 + + %1$d일 + + + %1$d시간 + + + %1$d분 + + + %1$d개월 + + + %1$d주 + + + %1$d년 + + 캘린더 편집 + 캘린더 이벤트 편집 + 커뮤니티 편집 + Emoji 팩 편집 + 플레이리스트 편집 + 게시물 편집 + 비공개 emoji는 relay에 암호화되어 저장되며 본인만 볼 수 있습니다. 공개 emoji와 마찬가지로 반응 메뉴와 ":" 자동완성에 나타납니다. + 공개 emoji는 모든 사람에게 표시되며, 이 팩이 emoji 목록에 있을 때 반응 메뉴와 ":" 자동완성 선택기에 나타납니다. + Emoji + 개인정보 보호를 위해 업로드 전 파일을 암호화합니다. 일부 서버는 무료 계정에서 암호화된 파일을 허용하지 않을 수 있습니다. + 파일 암호화 + 임시 채팅 + 오류 + 인보이스를 결제할 수 없음 + 출금할 수 없음 + 결제를 열 수 없습니다 + zap을 보낼 수 없음 + 서명 앱을 열 수 없음 + 서명 앱을 찾을 수 없습니다. 앱이 삭제되지 않았는지 확인하세요 + 오류 메시지 파싱 실패 + %1$s에서 JSON 파싱 오류. 사용자의 lightning 설정을 확인하세요 + 수신자 서버에서 인보이스를 가져올 수 없음 + 브라우저에서 열기 + 이 동영상을 재생할 수 없음 + 이 기기에서는 코덱 또는 형식이 지원되지 않습니다 (%1$s). 브라우저에서 열어보세요. + 오류 목록 + Relay 동기화 + 나의 이벤트 + 나에게 온 이벤트 + 서킷 + 자전거 + 식이요법 + 단식 + 하이킹 + 명상 + 조정 + 달리기 + 근력 운동 + 수영 + 걷기 + 요가 + 펼치기 + 만료 날짜 + relay 설정 내보내기 + 삭제하지 못했습니다: %1$s + 개인 키 암호화에 실패했습니다 + 이미지 저장에 실패했습니다 + PDF 저장에 실패했습니다 + 동영상 저장에 실패했습니다 + 많은 서버에서 무료 계정의 암호화된 파일을 허용하지 않습니다. 암호화 없이 다시 시도할 수 있습니다. + 암호화된 업로드에 실패했습니다 + 업로드 오류: %1$s + 미디어 업로드에 실패했습니다 + %1$s에 업로드하지 못했습니다: %2$s + 즐겨찾기에 추가 + 일반 웹을 통해 로드됩니다. + Tor를 통해 로드됩니다. + 최근 + 즐겨찾기에서 제거 + 해당 앱은 아직 로드되지 않았습니다. 잠시 후 다시 시도하세요. + 즐겨찾는 앱 + 즐겨찾는 피드 알고리즘 + 결제 완료 + relay에 게시됨 + 파일 업로드됨 + 즐겨찾는 Relay 피드 + 자주 방문하여 글로벌 피드를 보는 relay + 커뮤니티 + 피드 알고리즘 + 피드 + 해시태그 + 관심 세트 + 목록 + 위치 + Relay + 파일 서버 + 이 파일을 업로드할 서버를 선택하세요 + 5회 이상 동일한 내용의 낯선 사람 게시물을 숨깁니다 + 스팸 필터링 + 팔로우 + 맞팔로우 + 모든 즐겨찾는 피드 알고리즘 + 내 주변 + 큐레이션 + 전체 + 기본 팔로우 목록 + 모든 팔로우 + 모든 사용자 팔로우 + 내 목록 + 뮤트 목록 + 새 팔로우 팩 + Follow Pack 편집 + Follow pack 메타데이터는 Nostr의 누구나 볼 수 있으며, 새 사용자를 위한 시작 키트로 많은 웹사이트에 자주 게시됩니다. + Follow Pack 메타데이터 + 팔로우 팩 + 새 팔로우 목록 + 목록 편집 + 프로필 갤러리 스타일 + 갤러리 스타일 선택 + 클래식 + 모던 + 위치 전용 게시물 + 해당 위치의 팔로워만 볼 수 있습니다. 일반 팔로워에게는 표시되지 않습니다. + %2$s sats 목표 중 %1$s 달성 + 시간 + 이 콘텐츠가 변경되었습니다. 작성자가 변경 사항을 확인하거나 승인하지 않았을 수 있습니다 + 이것이 무슨 의미인가요? + 이 콘텐츠는 게시 이후 동일합니다 + 안녕하세요 %1$s님, 아직 구매 가능한가요? + 숨김 단어 + 커뮤니티가 NIP-9B 규칙 문서를 게시하고 이벤트가 규칙에 위반될 경우 커뮤니티 피드에서 게시물을 제거합니다. 커뮤니티에 구조화된 규칙이 없으면 효과가 없습니다. + 커뮤니티 규칙을 위반하는 게시물 숨기기 + 비밀번호 숨기기 + %1$s 업로드 중 (%3$d 중 %2$d) + 전체 + 잘못된 요청 - 서버가 요청을 처리할 수 없거나 처리하지 않습니다. + 인증되지 않음 - 사용자에게 유효한 인증 자격 증명이 없습니다. + 결제 필요 - 서버가 요청을 완료하기 위해 결제를 요구합니다. + 접근 금지 - 사용자가 요청을 수행할 접근 권한이 없습니다. + 찾을 수 없음 - 서버가 요청한 주소를 찾을 수 없습니다. + 허용되지 않는 메서드 - 서버는 요청 메서드를 지원하지만 대상 리소스는 지원하지 않습니다. + 허용할 수 없음 - 서버가 요청을 충족하는 콘텐츠를 찾을 수 없습니다. + 프록시 인증 필요 - 사용자에게 유효한 인증 자격 증명이 없습니다. + 요청 시간 초과 - 서버가 응답을 기다리다 시간이 초과되었습니다. + 충돌 - 리소스와 충돌이 발생하여 서버가 요청을 처리할 수 없습니다. + 사라짐 - 요청한 콘텐츠가 서버에서 영구적으로 삭제되었으며 복구되지 않습니다. + 길이 필요 - 서버가 정의된 Content-Length가 없어 요청을 거부합니다. + 사전 조건 실패 - 서버가 요청 헤더 필드의 사전 조건을 충족하지 못했습니다. + 페이로드가 너무 큼 - 요청이 서버의 정의된 한도보다 크며 서버가 처리를 거부합니다. + URI가 너무 긺 - 클라이언트가 요청한 URL이 서버가 처리하기에 너무 깁니다. + 지원되지 않는 미디어 유형 - 서버가 지원하지 않는 미디어 형식을 요청에서 사용합니다. + 범위가 충족되지 않음 - 서버가 요청의 Range 헤더 필드에 표시된 값을 처리할 수 없습니다. + 기대치 실패 - 서버가 Expect 요청 헤더 필드에 표시된 요구 사항을 충족할 수 없습니다. + 업그레이드 필요 - 클라이언트가 다른 프로토콜로 업그레이드하지 않으면 서버가 현재 프로토콜을 사용하여 요청을 처리하지 않습니다. + 내부 서버 오류 - 서버에 예상치 못한 오류가 발생하여 요청을 완료할 수 없습니다. + 구현되지 않음 - 서버가 요청을 처리할 수 없거나 요청 메서드를 인식하지 못합니다. + 잘못된 게이트웨이 - 서버가 게이트웨이 역할을 하며 호스트에서 잘못된 응답을 받았습니다. + 서비스 사용 불가 - 서버가 과부하 상태이거나 유지 관리로 인해 중단된 경우 자주 발생합니다. + 게이트웨이 시간 초과 - 서버가 게이트웨이 또는 프록시 역할을 하며 응답을 기다리다 시간이 초과되었습니다. + HTTP 버전 미지원 - 서버가 요청의 HTTP 버전을 지원하지 않습니다. + 변형도 협상 중 - 서버에 내부 구성 오류가 있습니다. + 저장 공간 부족 - 서버가 요청을 성공적으로 처리할 충분한 저장 공간이 없습니다. + 루프 감지됨 - 서버가 요청을 처리하는 중 무한 루프를 감지했습니다. + 네트워크 인증 필요 - 네트워크에 접근하려면 클라이언트 인증이 필요합니다. + 불법 행위 + 사진 갤러리에 이미지가 저장되었습니다 + 사칭 + Inbox Relay + %2$s의 인보이스 금액이 올바르지 않습니다 (%1$s sats). %3$s여야 했습니다 + 인덱서 Relay + purplepag.es 같이 모든 사람의 메타데이터와 relay 목록을 호스팅하는 데 특화된 relay입니다. Amethyst는 이 relay를 사용하여 목록에 없는 사용자를 찾습니다. + 새 관심 세트 + 이름 변경 + 해시태그 세트 + 유효하지 않은 키 + 유효하지 않은 키: %1$s + 잘못된 주소 + Amethyst가 열기 위한 URI를 수신했지만 해당 URI가 유효하지 않습니다: %1$s + 초안 노트는 인용할 수 없습니다. + 초안 노트에는 반응할 수 없습니다. + 초안 노트에는 답글을 달 수 없습니다. + 초안 노트에는 zap을 보낼 수 없습니다. + 키가 필요합니다 + KeyPackage Relay + MLS KeyPackage가 게시되는 relay (MIP-00). 다른 사용자는 이 KeyPackage를 가져와 Marmot 그룹 채팅에 초대합니다. KeyPackage 이벤트를 허용하고 공개 읽기를 허용하는 relay를 1~3개 입력하세요. + 수락된 배지 세트 + 어드벤처 프롤로그 + 어드벤처 읽기 + 어드벤처 장면 + App 추천 + 일정 + 일정 RSVP + 오디오 헤더 + 오디오 트랙 + 제작한 팟캐스트 + 배지 수여 + 배지 정의 + Blob 데이터 + Blob 헤더 + 차단된 Relays + 블로그 + Blossom 서버 + 북마크 목록 + 브로드캐스트 Relays + 캘린더 + 채널 정의 + 채널 메시지 숨기기 + 채널 목록 + 채널 메시지 + 채널 메타데이터 + 채널 사용자 음소거 + 체스 Auth + 체스 도전 + 체스 무승부 제안 + 체스 게임 수락 + 체스 게임 종료 + 체스 게임 + 체스 수 + 분류 광고 + 댓글 + 커뮤니티 정의 + 커뮤니티 목록 + 커뮤니티 게시물 + 연락처 카드 + 일별 일정 + 삭제 + DM 파일 + DM 메시지 + 초안 + DVM 콘텐츠 요청 + DVM 콘텐츠 응답 + DVM 상태 + DVM 사용자 요청 + DVM 사용자 응답 + 편집 + 이모지 팩 목록 + 이모지 팩 + 임시 채팅 + 임시 채팅방 + 즐겨찾기 팟캐스트 + 즐겨찾기 Relays + 파일 헤더 + 파일 서버 + 팔로우 목록 + 지오해시 팔로우 + Git 이슈 + Git 패치 + Git 답글 + Git 저장소 + 해시태그 팔로우 + 하이라이트 + HTTP Auth + 인덱스 Relay 목록 + 라이브 채팅 + 라이브 스트림 + 의료 데이터 + 회의실 + 회의 공간 + 음악 재생목록 + 음악 트랙 + 음소거 목록 + 이름 있는 북마크 + Nests 서버 + Nostr 연결 + 노트 + NWC 요청 + NWC 응답 + 이전 북마크 목록 + 아웃박스 Relays + 사람 목록 + 사진 + 핀 + 팟캐스트 에피소드 + 팟캐스트 쇼 + 투표 + 투표 응답 + 비공개 Relays + 비공개 Zaps + 프로필 + 프로필 배지 + 프로필 갤러리 + 프록시 Relays + 공개 메시지 + 반응 + Relay 검색 + Relay 모니터 공지 + Relay 세트 + 신고 + 리포스트 + 리포스트 (16) + 방 참석 + 봉인 + 검색 Relays + 토렌트 댓글 + 토렌트 + 신뢰할 수 있는 제공자 + 신뢰할 수 있는 Relays + 사용자 삭제 + 사용자 설정 + 사용자 상태 + 비디오 + 비디오 (Repl) + 음성 메시지 + 음성 답글 + 웹 북마크 + 운동 + Zap 목표 + Zap 투표 + Zap 요청 + 알려진 + 언어 표시 기본 설정 + 번역된 각 언어 쌍에 대해 먼저 표시할 언어를 선택하세요. + %1$s 전에 마지막으로 확인 + 방금 마지막으로 확인 + 확인된 적 없음 + %1$s에 마지막으로 확인 (%2$s 전) + 나가기 + 라이트 + 라이브 스트림 + 로컬 Relay + 이 기기에서 실행 중인 relay 목록입니다. + 공개 키로 로그인 중입니다. 공개 키는 읽기 전용입니다. 게시물을 부스트하려면 개인 키로 로그인하세요 + 공개 키로 로그인 중입니다. 공개 키는 읽기 전용입니다. 팔로우하려면 개인 키로 로그인하세요 + 공개 키로 로그인 중입니다. 공개 키는 읽기 전용입니다. 단어나 문장을 숨기려면 개인 키로 로그인하세요 + 공개 키로 로그인 중입니다. 공개 키는 읽기 전용입니다. 답글을 달려면 개인 키로 로그인하세요 + 공개 키로 로그인 중입니다. 공개 키는 읽기 전용입니다. Zap을 보내려면 개인 키로 로그인하세요 + 공개 키로 로그인 중입니다. 공개 키는 읽기 전용입니다. 단어나 문장을 표시하려면 개인 키로 로그인하세요 + 공개 키로 로그인 중입니다. 공개 키는 읽기 전용입니다. 이벤트에 서명하려면 개인 키로 로그인하세요 + 공개 키로 로그인 중입니다. 공개 키는 읽기 전용입니다. 언팔로우하려면 개인 키로 로그인하세요 + 공개 키로 로그인 중입니다. 공개 키는 읽기 전용입니다. 업로드하려면 개인 키로 로그인하세요 + 공개 키로 로그인 중입니다. 공개 키는 읽기 전용입니다. 좋아요를 누르려면 개인 키로 로그인하세요 + 동영상 + 분 + 내 Emoji 팩 + %1$s 추가 중… + 관리자 권한이 부여되었습니다 + 관리자 권한이 취소되었습니다 + %1$s 추가 실패: %2$s + 그룹 생성 실패: %1$s + 관리자 권한 부여 실패: %1$s + 그룹 나가기 실패: %1$s + 멤버 제거 실패: %1$s + 관리자 권한 취소 실패: %1$s + 업데이트 실패: %1$s + MLS 그룹 + 그룹 정보가 업데이트되었습니다 + + %1$d명의 멤버 + + 멤버가 제거되었습니다 + + %1$d개의 메시지 + + 이 그룹의 멤버가 아닙니다 + 알 수 없는 오류 + 미디어가 추가됨 + 프로필 갤러리에 미디어가 추가됨 + 미디어 다운로드를 시작했습니다… + 미디어 서버 + 미디어가 NIP-95에 비해 너무 큽니다 + 먼저 메시지 대상을 입력하세요 + 업로드 불가 + 제목 + 메타데이터를 제거할 수 없습니다 + 미디어에서 개인 메타데이터를 제거하지 못했습니다. 업로드가 취소되었습니다. + 북마크가 성공적으로 마이그레이션되었습니다 + Lightning 설정 누락 + 더 보기 + 비공개로 이동 + 공개로 이동 + 커버 이미지 업로드 + 이 플레이리스트의 아트워크로 사용할 정사각형 이미지를 선택하세요. + + +%1$d개 더보기 + + + %1$d개 트랙 + + + %1$d개 트랙 + + 커버를 업로드하고 게시하는 중입니다. 화면을 나가도 계속 진행됩니다. + 오디오 파일 업로드 + MP3, WAV 또는 FLAC 파일을 선택하세요. 저장 시 미디어 서버에 업로드됩니다. + 커버 이미지 업로드 + 이 트랙의 아트워크로 사용할 정사각형 이미지를 선택하세요. + 커버 및 오디오를 업로드하고 게시하는 중입니다. 화면을 나가도 계속 진행됩니다. + 소리 켜짐. 클릭하여 음소거 + 음소거됨. 클릭하여 음소거 해제 + 내 목록 + 이름이 필요합니다 + Namecoin 설정 + 신원 + 공개 키 읽기 + 메시징 + 다른 nApplet과 메시지 교환 + 키보드 동작 + 키보드 단축키 바인딩 + 알림 + 알림 표시 + Relay + 이벤트 읽기, 서명 및 게시 + 네트워크 + 웹 및 Blossom 리소스 가져오기 + 저장소 + 자체 개인 저장소 + 테마 + 앱 색상과 일치시키기 + 업로드 + 미디어 서버에 파일 업로드 + 결제 + Lightning 인보이스 결제 + 이 nApplet이 공개 키를 읽으려고 합니다. + 이 nApplet이 프로필 및 계정 데이터를 읽으려고 합니다. + 이 nApplet이 알림을 표시하려고 합니다. + + 이 nApplet이 %1$d sats의 Lightning 인보이스를 결제하려고 합니다. + + 이 nApplet이 귀하를 대신하여 kind %1$d 이벤트를 서명하고 게시하려고 합니다. + 이 nApplet이 귀하를 대신하여 암호화된 이벤트를 전송하려고 합니다. + 이 nApplet이 귀하를 대신하여 kind %1$d 이벤트를 서명하고 게시하려고 합니다: + 이 nApplet이 relay에서 이벤트를 읽으려고 합니다. + 이 nApplet이 웹 리소스를 가져오려고 합니다. + 이 사이트가 귀하의 Nostr 키로 kind %1$d 이벤트를 서명하려고 합니다. + 이 nApplet이 개인 저장소를 사용하려고 합니다. + 이 nApplet이 미디어 서버에 파일을 업로드하려고 합니다. + nApplet + 메시지를 보낼 수 없습니다 + 이 발언자 로컬 음소거 + 이 발언자 복원 + 나가기 + 방을 종료됨으로 표시할 수 없습니다. 어쨌든 나가기 — 방은 자동으로 닫힙니다. + + %1$d명 청취자 + + 손 내리기 + 마이크 음소거 + 마이크 음소거 해제 + 음소거 + Nest 서버 목록을 저장할 수 없습니다. 다시 시도하세요. + Nest — 라이브 + 방이 열려 있는 동안 오디오를 계속 재생합니다. + Nest 연결됨 + 중지 + 탭하여 돌아가기. + 팔로우 + 음소거 + 팔로우 취소 + 음소거 해제 + Nest를 떠났습니다 + 청중으로 참가했습니다 + 스테이지에 올라갔습니다 + 손을 들었습니다 + 발언 중입니다 + 손 들기 + 음소거 해제 + 다른 클라이언트가 설정을 읽을 수 있도록 kind-10112 교체 가능 이벤트로 저장됩니다. + 내 서버 + 한 번의 탭으로 목록에 추가할 수 있는 기본 제안입니다. + 추천 서버 + Nest 서버 + 안 함 + 새 배지 + 새 캘린더 + 새 캘린더 이벤트 + 새 커뮤니티 + 관리자 + Relay + 차단된 사용자 + 커뮤니티 댓글 (1111) + 장문 기사 (30023) + 사진 게시물 (20) + 짧은 텍스트 (1) + 짧은 동영상 (22) + 동영상 게시물 (21) + 허용된 이벤트 kind + 전체 최대 이벤트 크기 (선택 사항) + 검증 가능한 규칙 (선택 사항) + 신뢰 네트워크 게이트 (선택 사항) + 새 emoji 팩 + 새 목표 + 새 글 + 새 재생목록 + 새 음악 트랙 + 새 상품 + 새 요청 + 새 스레드 + 새 운동 + + %1$d개 파일 포함 + + Blossom 앱을 찾을 수 없습니다. 이 파일을 보려면 로컬 Blossom 앱을 설치하세요 + Blossom 링크를 열 수 없음 + 이 기기에서 카메라 앱을 찾을 수 없습니다 + 설정된 Lightning 주소 없음 + 이 결제를 처리할 앱을 찾을 수 없습니다. 호환 가능한 지갑을 설치하세요. + %1$s 결제를 처리할 앱이 설치되어 있지 않습니다. 호환 가능한 지갑을 설치하세요. + 이 사용자에 대해 미리 선택된 반응 유형이 없습니다. 하트 버튼을 길게 눌러 변경하세요 + 반응 설정 없음 + Lightning 인보이스를 결제할 지갑을 찾을 수 없습니다. zap을 사용하려면 Lightning 지갑을 설치하세요 + Lightning 인보이스를 결제할 지갑을 찾을 수 없습니다 (오류: %1$s). zap을 사용하려면 Lightning 지갑을 설치하세요 + Zap 금액이 설정되지 않았습니다. 길게 눌러 변경하세요 + 알림 + 카테고리 + 전달 + 앱 내 표시 + 지금 + Nowhere 아트 + Nowhere 이벤트 + Nowhere 포럼 + Nowhere 모금 + Nowhere 사이트 + Nowhere 메시지 + Nowhere 청원 + Nowhere 스토어 + nSite + 음란물 + 이벤트 참조를 만들 수 없습니다 + 노트에 수신자 pubkey가 없습니다 + Nutzap은 공개적이어서 이 비공개 노트가 노출됩니다. 대신 Lightning zap을 사용하세요. + Nutzap 실패 + + %1$s sats를 %2$d개로 나누어 보내기 + + Bitcoin 체인 백엔드가 구성되지 않았습니다 + 거래를 브로드캐스트할 수 없습니다 + 거래를 빌드할 수 없습니다 + Bitcoin 잔액을 로드할 수 없습니다 + 결제는 전송되었지만 zap 영수증을 게시할 수 없습니다 + + 결제 전송 완료 (%2$d개 중 %1$d개 영수증 게시됨), 다음 영수증을 게시할 수 없습니다 + + 수신자 몫이 먼지 한도 미만입니다 + 거래에 서명할 수 없습니다 + ~10분 + ~30분 + ~1시간 + 빠름 + 보통 + 느림 + + %1$d명의 수신자 간 분할 + + + Lightning 주소 전용 수신자 %1$d명 건너뜀 — 온체인은 주소를 파생하기 위해 Nostr pubkey가 필요합니다. + + + 이 노트의 %1$d방향 zap 분할 사용 + + 브로드캐스트 중 + 거래 빌드 중 + 잔액 로드 중 + 영수증 게시 중 + 서명 중 + 이 유형의 투표에서는 사용자당 한 번만 투표할 수 있습니다 + 이 게시물의 모든 반응 열기 + 열림 + Orbot Socks 포트 + 이 게시물이 %1$s 이전에 서명되었다는 증명이 있습니다. 해당 날짜와 시간에 Bitcoin 블록체인에 증명이 기록되었습니다. + 타임스탬프 증명 + Outbox Relay + 비밀번호가 필요합니다 + 일시 정지 + 결제 + %1$s의 메시지 + 결제 대상 + 다양한 네트워크(예: bitcoin, lightning, ethereum)의 결제 주소를 추가하세요. + Downloads/Amethyst에 PDF가 저장되었습니다 + 팔로우 목록 메타데이터는 Nostr의 누구나 볼 수 있습니다. 비공개 멤버만 암호화됩니다. + 팔로우 목록 메타데이터 + 사진 + 상단에 고정 + 프로필에 고정 + 재생 + + %1$d개 에피소드 + + 투표 작성자는 자신의 투표에 참여할 수 없습니다. + 투표가 새로운 투표를 받지 않습니다 + 복수 선택 + %1$s번 옵션 + 단일 선택 + 투표할 수 없습니다 + 투표 + 게시 + + 이 게시물에 해시태그가 %1$d개를 초과합니다 + + %1$s의 미리보기 카드 이미지 + 개인 정보 옵션 + 개인정보 처리방침 + <개인 메시지를 복호화할 수 없습니다>\n\n%1$s와 %2$s 사이의 개인/암호화된 대화에서 회원님이 언급되었습니다. + DM 수신함 Relay + 개인 수신함으로 사용할 relay를 1~3개 입력하세요. 다른 사람들이 이 relay를 통해 DM을 보냅니다. DM 수신함 relay는 누구의 메시지든 수신해야 하지만, 다운로드는 본인만 가능해야 합니다. 좋은 옵션:\n - inbox.nostr.wine (유료)\n - auth.nostr1.com (무료)\n - you.nostr1.com (개인 relay - 유료) + 사용자가 이 relay에서 DM을 수신합니다 + 비공개 메시지 + 비공개로 만들기: 알림을 받는 사용자에게만 노트를 gift-wrap으로 전송 + 비공개 노트에 대한 답글은 항상 비공개로 유지됩니다 + 볼 수 있는 사람 + 비공개 홈 Relay + 초안 및/또는 앱 설정 등 다른 사람이 볼 수 없는 이벤트를 저장할 relay를 1~3개 입력하세요. 이 relay는 로컬이거나 각 사용자의 콘텐츠를 다운로드하기 전에 인증이 필요한 것이 이상적입니다. + 욕설 / 혐오 발언 + 프로필 + 프로필 배지 + 앱 추천 + 프로필 배지 + 팔로워 피드 + Zap 수신 피드 + 프로필 UI + 프로필 + 수정 제안 + 프록시 Relay + filter.nostr.wine 같이 피드를 다운로드하는 데 앱이 사용해야 하는 집계 relay입니다. 이 설정은 아웃박스 모델을 대체하며 앱이 목록에 있는 relay에만 연결하도록 합니다. + 공개 채팅 + 공개 채팅은 Nostr의 모든 사람에게 공개되며 + 누구나 참여할 수 있습니다. 특정 주제에 관한 열린 커뮤니티에 적합합니다. + relay에서 게시물을 삭제하여 관리할 수 있습니다 + 이 그룹을 호스팅하는 relay를 1~3개 입력하세요. + Nostr 클라이언트는 이 설정을 통해 메시지를 다운로드하고 전송할 위치를 파악합니다. + relay + 공개 채팅 메타데이터 + 공개 채팅 + 공개 Outbox/홈 Relay + 이 relay 유형은 모든 콘텐츠를 저장합니다. Amethyst는 여기에 게시물을 전송하고 다른 사람들은 이 relay를 통해 콘텐츠를 찾습니다. 1~3개의 relay를 입력하세요. 개인 relay, 유료 relay 또는 공개 relay일 수 있습니다. + 사용자가 이 relay에 콘텐츠를 게시하고 있습니다 + 공개 메시지 + 공개 Inbox Relay + 이 relay 유형은 게시물에 대한 모든 답글, 댓글, 좋아요 및 zap을 수신합니다. 유료 또는 무료 relay일 수 있습니다. relay 운영자가 설정한 제한은 알림 수신에 긍정적 또는 부정적 영향을 줄 수 있습니다. 예를 들어, 댓글 스팸 공격을 받는 경우 유료 relay가 스팸을 필터링할 수 있습니다. 1~3개의 relay를 입력하세요. + 사용자가 이 relay에서 알림을 받고 있습니다 + 노트 ID + 삭제 + 스레드 뮤트 + 공유 + 브라우저 링크 공유 + 스레드 뮤트 해제 + 반응 + 반응 + 반응 행 + Relay에서 읽기 + 필터 및 이벤트를 포함하여 이 relay에서 수신된 바이트 수 + 읽기 전용 사용자 + 길게 눌러 메시지를 녹음하세요 + relay 채팅 + relay 채팅은 홈 relay가 관리하는 채팅 그룹입니다. + Nostr의 모든 사람에게 공개되며 누구나 참여할 수 있습니다. + 특정 주제에 관한 열린 커뮤니티에 적합합니다. 일부 그룹은 임시적이라 + 채팅 메시지가 시간이 지나면 사라집니다 + relay 채팅 + 이벤트 + IP + 종류 + 사용자 + 설정 + Relay 설정 + 아웃박스 목록 + Relay + 충전 & zap 전송 + zap 전송 + %2$s에 %1$s sats 충전 후 %4$s sats zap %3$s · 수수료 ≈ %5$s sats + 제거 + 공개 북마크에서 제거 + 여기에 답글을… + 알림: + + 삭제 요청 + 삭제 요청 + Marmot 상태 초기화 실패: %1$s + Marmot 상태 초기화 + Marmot 상태가 초기화되었습니다. + 재시도 + 캘린더 목록 + 캘린더 + 체스 + 탐색 + 홈 + 팔로우 가져오기 + 메시지 + 재생목록 + 음악 + 알림 + 에피소드 + 팟캐스트 + 게시물 예약 + 예약 취소 + 예약된 게시물은 앱을 다시 열 때까지 게시되지 않을 수 있습니다. 이 계정이 활성 상태인 동안에는 다른 계정의 예약된 게시물이 실행되지 않습니다. 안정적인 백그라운드 예약을 위해 설정 → UI 환경설정에서 상시 알림을 활성화하세요. + 예약된 게시물은 앱을 다시 열 때까지 게시되지 않을 수 있습니다. 안정적인 백그라운드 예약을 위해 설정 → UI 환경설정에서 상시 알림을 활성화하세요. + 예약된 게시물 + 지금 보내기 + %1$s · %2$s 후 + %1$s · %2$s 전 + 내일 + 오류: %1$s + 노트 ID가 복사됨 + + 로그아웃됨 · 예약된 게시물 %1$d개가 삭제되었습니다 + + 로그아웃됨 + + 아직 게시되지 않은 예약된 게시물이 %1$d개 있습니다. 로그아웃하면 영구적으로 삭제됩니다. + + 예약된 게시물 실패 + 예약된 게시물이 게시됨 + + relay %1$d개로 + + 취소됨 + 실패 + 예약됨 + 전송 중… + 전송됨 + + · %1$d개 1시간 내 예정 + + + %1$d개 대기 중 + + 좋은 옵션:\n%1$s + 검색 Relay + 검색 Relay + 콘텐츠 또는 사용자를 검색할 때 사용할 relay 목록입니다. 옵션이 없으면 태그 지정 및 검색이 작동하지 않습니다. NIP-50을 구현하는지 확인하세요. + 검색 가능한 이벤트 + 비밀 키(nsec)가 클립보드에 복사되었습니다 + 아직 차단한 사용자가 없습니다. + 보안 필터 + 숨겨진 단어가 없습니다. 아래에 단어를 추가하여 해당 단어가 포함된 게시물을 숨기세요. + 차단된 콘텐츠 + 필터링 환경 설정 + 이 세션에서 스팸으로 신고된 계정이 없습니다. + 전송 + 수신된 모든 프로필(kind 0) 이벤트를 로컬 relay로 전송 + 로컬 relay로 프로필 전달 + 이 수신자에게 사용 가능한 잔액: %1$s sats + 결제 실패 + 트랜잭션: %1$s + %1$s을(를) 통해 결제 중… + 업로드 후 서버에서 URL을 제공하지 않았습니다 + 설정 + 뮤트된 스레드 없음 + 뮤트된 스레드 + 이미지로 공유 + 이미지 URL로 공유 + HLS 업로드 + 공유 또는 저장 + 암호화된 개인 키 QR 코드 표시 + 알림 탭에 다이렉트 및 그룹 메시지를 포함합니다. 메시지를 메시지 탭에만 표시하려면 끄세요. + 메시지 표시 + 개인 키 QR 코드 표시 + 서명 요청이 거부됨 + 서명 앱이 이 트랜잭션을 승인했는지 확인하세요 + 외부 서명 앱이 요청과 맞지 않는 응답을 반환했습니다. Amethyst 또는 서명 앱에 버그가 있을 수 있습니다. + 서명 앱을 찾을 수 없음 + 서명 앱이 삭제되었나요? 서명 앱이 설치되어 있고 이 계정이 등록되어 있는지 확인하세요. 서명 앱이 변경된 경우 로그아웃 후 다시 로그인하세요. + %1$d초 뒤로 건너뛰기 + %1$d초 앞으로 건너뛰기 + 앱 + 스팸 + 이 relay에서 수신된 스팸 이벤트 수 + 스패머 + 팔로잉(팔로우하는 사람들)과 모든 사람 두 개의 알림 탭을 표시합니다. 읽지 않음 표시기는 팔로우하는 사람들의 활동에만 반응합니다. + 팔로우별 알림 분리 + 업로드 전 지원되는 미디어 파일에서 개인 메타데이터를 제거하려고 시도합니다 + 개인 메타데이터 제거 + Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…)에서 완료된 운동을 읽어 게시물로 공유할 것을 제안합니다. 권한은 연결 시에만 요청됩니다. + 운동 공유 제안 + 시스템 + 테마 + 다크, 라이트 또는 시스템 테마 + 이 메시지는 %1$s 후에 사라집니다. + + +%1$d\n개 답글 + + 오늘 + 사용자 지정 + 직접 설정하기 + 기본값 + 무작위 relay에서 IP를 숨깁니다 + 완전한 개인 정보 보호 + 모든 연결에서 IP를 숨깁니다 + 내장 + 끄기 + Tor/개인 정보 보호 프리셋 + 아래의 모든 설정을 빠르게 수정합니다 + 미디어 제외 전체 + 이미지와 동영상을 제외한 모든 곳에서 IP를 숨깁니다 + DM Relay + DM 발신 및 수신에 Tor를 강제 사용합니다 + 이미지 + 이미지 로딩 시 Tor를 강제 사용합니다 + 미디어 업로드 + 콘텐츠 업로드 시 Tor를 강제 사용합니다 + 금전 거래 + zap, Lightning 및 Cashu 전송에 Tor를 강제 사용합니다 + 신뢰되지 않은 Relay + outbox/inbox relay에 Tor를 강제 사용합니다 + Nostr 주소 인증 + NIP-05 주소 인증 시 Tor를 강제 사용합니다 + Onion URL/Relay + .onion URL에 Tor를 사용합니다 + 프로필 사진 + 프로필 사진 로딩 시 Tor를 강제 사용합니다 + 신뢰된 Relay + 목록에 있는 모든 relay에 Tor를 강제 사용합니다 + URL 미리보기 + URL 미리보기 로딩 시 Tor를 강제 사용합니다 + 동영상 + 동영상 로딩 시 Tor를 강제 사용합니다 + 기본 + 서버에서 요구할 때 Tor를 사용합니다 + 파일 열기 실패 + 파일을 열고 다운로드할 토렌트 앱이 설치되어 있지 않습니다. + 이벤트에 마그넷 링크를 만들기 위한 정보가 충분하지 않습니다. + 이벤트를 전송할 때 추적 브로드캐스터를 사용합니다. 방송하는 동안 실시간 진행 상황 및 relay별 상태를 표시합니다. + 추적된 방송 + 번역 대상 언어 + 콘텐츠를 번역할 언어를 선택하세요. + 번역 + 신뢰하는 Relay + Tor 연결이 필요 없다고 신뢰하는 relay + 전체 + 성능 + 간소화 + UI 설정 + UI 모드 + 게시물 스타일 선택 + zap을 보내기 전에 lightning 인보이스를 생성할 수 없습니다. 수신자의 lightning 지갑에서 다음 오류를 보냈습니다: %1$s + 이미지를 공유할 수 없습니다. 나중에 다시 시도하세요… + 동영상을 공유할 수 없습니다. 나중에 다시 시도하세요… + 승인되지 않은 복호화 + 서명 앱이 이 작업에 필요한 복호화를 승인하지 않았습니다. 서명 앱에서 NIP-44 복호화를 활성화한 후 다시 시도하세요 + 팔로우 취소 + 고정 해제 + 프로필에서 고정 해제 + 업로드가 취소되었습니다 + 업로드 오류 + 음성 업로드 실패: %1$s + 음성 메시지 업로드에 실패했습니다 + NIP-95는 아직 음성 메시지를 지원하지 않습니다 + %1$d%% 업타임 + 내장 Tor 엔진 + 내장 버전 또는 Orbot을 사용하세요 + 이 사용자는 sats를 받을 Lightning 주소가 설정되어 있지 않습니다 + 사용자 %1$s는 sats를 받기 위한 lightning 주소가 설정되어 있지 않습니다 + Vanish 기록 + Vanish 요청이 전송되었습니다 + 파일 크기는 작고 품질은 더 우수하지만 모든 기기가 H.265 재생을 지원하지는 않습니다. + H.265/HEVC 코덱 사용 + 동영상 다운로드를 시작했습니다… + 동영상 플레이어 버튼 + 동영상 갤러리에 저장되었습니다 + 음성 게시물 + 낮게 + 높게 + 보통 + 없음 + 음성 답글 + 지갑 + Cashu 지갑 (NIP-60) + 지갑 연결 제공자에서 다음 오류를 반환했습니다: %1$s + Mint 편집 + 게시물이나 프로필이 팔로우하는 사람들로부터 신고를 받으면 경고 메시지를 표시합니다 + 신고 시 경고 + 웹 북마크 추가 + 웹 북마크 편집 + 웹 북마크 + 무슨 생각을 하고 계신가요? + 운동 + 메시지를 입력하세요… + Relay에 쓰기 + 필터 및 이벤트를 포함하여 이 relay에 전송된 바이트 수 + + 이름 바꾸기 + 저장 diff --git a/commonsUI/src/commonMain/composeResources/values-lv-rLV/strings.xml b/commonsUI/src/commonMain/composeResources/values-lv-rLV/strings.xml index 4cb673538e..4b91010fcc 100644 --- a/commonsUI/src/commonMain/composeResources/values-lv-rLV/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-lv-rLV/strings.xml @@ -1800,4 +1800,1215 @@ Explorer API bāzes URL Apmaksāt rēķinu no DVM Samaksāt %1$s sats DVM + Par & juridiski + Konta iestatījumi + Pievienot + Pievienot Blossom serveri + Pievienot NIP-96 serveri + Ja iespējots, Amethyst pievieno NIP-89 klienta atzīmi jūsu publicētajiem notikumiem. + Pievienot klienta atzīmi saviem notikumiem + Pievieno sensitīvā satura brīdinājumu pirms šī satura rādīšanas + Sensitīvs saturs + Pievienot publiskajām grāmatzīmēm + Izmanto ierīcē esošu MI modeli, lai piedāvātu teksta labojumus un toņa izmaiņas. + Piedāvāt teksta uzlabojumus + Uztur aktīvus savienojumus ar jūsu iesūtnes relay reāllaika paziņojumiem + + Savienots ar %1$d iesūtnes relay + Savienots ar %1$d iesūtnes relay + Savienots ar %1$d iesūtnes relay + + + Savienots ar %1$d relay + Savienots ar %1$d relay + Savienots ar %1$d relay + + Savienojas ar iesūtnes relay… + Amethyst paziņojumi aktīvi + Paziņojumi par ienākošajiem balss un video zvaniem + Ienākošie zvani + %1$s pieņēma jūsu šaha izaicinājumu + Paziņo par šaha spēles notikumiem + Šahs + Šaha atjauninājumi + %1$s gāja — jūsu kārta + Paziņo, kad pienāk privāta ziņa + Privātās ziņas + Jaunas ziņas + Atzīmēt kā lasītu + Paziņo, kad kāds jūs piemin vai citē ierakstā + %1$s jūs pieminēja + Pieminēšanas + Jaunas pieminēšanas + Paziņo, kad kāds reaģē uz jūsu ierakstu + %1$s reaģēja uz jūsu ierakstu + par %1$s + Reakcijas + Jaunas reakcijas + Paziņo, kad kāds atbild uz jūsu ierakstu + Atbildes + Jaunas atbildes + Atbildēt + Paziņojumi, kad ieplānotā ziņa tiek publicēta vai publicēšana neizdodas. + Ieplānotās ziņas + Paziņo, kad kāds jums nosūta Zap + par %1$s + No %1$s + Saņemtie Zap + Jauni Zap + Lietotnes iestatījumi + Apliecinājums + Apliecinājuma pieprasījums + Apliecinātāja prasme + Apliecinātāja ieteikums + Audio vizualizētājs + Automātiski saglabā melnrakstu, kad rakstāt vai atstājat redaktoru ar nesūtītu tekstu, un nosūta uz jūsu privātajiem izejas relay serveriem. + Automātiski izveidot melnrakstus + Iegremdēta ritināšana + Slēpt navigācijas joslas ritināšanas laikā + Attēlu priekšskatījums + Automātiski ielādēt attēlus un GIF + Video atskaņošana + Automātiski ielādēt video un GIF + Profila attēls + Rādīt profila attēlus + URL priekšskatījums + Rādīt URL priekšskatījumus + Automātiska video atskaņošana + Automātiski atskaņot video, kad tie ir redzami ekrānā + Nevar noņemt metadatus no AVIF: %1$s + Piešķirt žetonu + Atpakaļ + Dublēt atslēgas + Žetoni + Autentifikācija neizdevās + Biometrijai neizdevās autentificēt šī tālruņa īpašnieku + Biometrijai neizdevās autentificēt šī tālruņa īpašnieku. Kļūda: %1$s + Bloķēt + Bloķētie Relay + Amethyst nekad npieslēgsies šiem relay + Bloķētie lietotāji + Jauns grāmatzīmju saraksts + Grāmatzīmju saraksta metadati + Grāmatzīmju sarakstu metadatus var redzēt ikviens Nostr. Tikai jūsu privātie dalībnieki ir šifrēti. + Grāmatzīmes + Pastiprināt + Apakšējā navigācijas josla + Apraides Relay + Relay, kas specializējas jūsu piezīmju pārsūtīšanā uz visiem pārējiem relay, piemēram, sendit.nosflare.com. Amethyst pievienos šo relay visiem jūsu jaunajiem notikumiem + Pārlūkprogramma + Izlase + Ielāde notiek caur atvērto tīmekli. Pieskarieties, lai izmantotu Tor. + Ielāde notiek caur Tor. Pieskarieties, lai izmantotu atvērto tīmekli. + + %1$s, %2$d notikumu + %1$s, %2$d notikums + %1$s, %2$d notikumi + + Attēla augšupielāde neizdevās + Izvēlēto attēlu nevarēja augšupielādēt. Mēģiniet vēlreiz vai ielīmējiet URL. + Kopīgot kalendāra notikumu + Atvērt kartēs + Atvērt saiti + Notiek tagad + %1$s · beidzas %2$s + + Sākas pēc %1$d minūtēm + Sākas pēc %1$d minūtes + Sākas pēc %1$d minūtēm + + Brīdinājums, kad notikums, kurā piedalāties, drīz sāksies. + Kalendāra atgādinājumi + Kalendāra notikums + Paziņojums tiek izsūtīts, kad notikums, kurā piedalāties, drīz sāksies. + Sūtīt atgādinājumus + Kalendāra atgādinājumi + Diena + Plūsma + Mēnesis + Nedēļa + Pieņemt + Kamera izslēgta + Kamera ieslēgta + Austiņa + Beigt zvanu + Ienākošs zvans + Ienākošs video zvans… + Ienākošs balss zvans… + Izslēgt mikrofonu + Zvani + Notiekošā zvana paziņojums + Amethyst nepieciešama kameras un mikrofona piekļuve, lai sāktu video zvanu. Lūdzu, iespējojiet tos lietotnes iestatījumos. + Amethyst nepieciešama mikrofona piekļuve, lai sāktu balss zvanu. Lūdzu, iespējojiet to lietotnes iestatījumos. + Noraidīt + Zvanu iestatījumi + Skaļrunis + Ieslēgt mikrofonu + Zvans ar %1$s + Atsaukšanas URL nav atrasts %1$s atbildē + Atcelt + Cashu žetons + Pārbauda mint… + Nevarēja izmantot Cashu + Mint sniedza šādu kļūdas ziņojumu: %1$s + Saņemts + Nosūtīts + Atbilstošie mints + + +%1$d vairāk + +%1$d vairāk + +%1$d vairāk + + Populāri mints + + Ieteikuši %1$d citi + Ieteicis %1$d cits + Ieteikuši %1$d citi + + Pārvietoti %1$s sat uz %2$s. + Sistēmā nav atrasts saderīgs Cashu maks + + %1$d gaidošie rēķini + %1$d gaidošais rēķins + %1$d gaidošie rēķini + + Maksāt %1$s sat + līdz %2$s sat komisijā? + Publicēt dzēšanas pieprasījumu jūsu kind:38000 ieteikumam par %1$s. Relay, kas ievēro NIP-09, to noņems. + Atgūti %1$s sats no %2$s pierādījumiem. + Cashu saņemts + %1$s sats tika nosūtīti jūsu makā. (Komisijas: %2$s sats) + + Līdzekļi glabājas %1$d kaltuvēs, kuras neizmantojat + Līdzekļi glabājas %1$d kaltuvē, kuru neizmantojat + Līdzekļi glabājas %1$d kaltuvēs, kuras neizmantojat + + Gaida rēķina apmaksu… + + %1$d kaltuvju + %1$d kaltuves + %1$d kaltuvju + + Pārtraukt apraidi + Apraidīt uz ierīci + Bērnu drošības standarti + Piederumi + Māksla + Grāmatas + Apģērbs + Kolekcionējamie priekšmeti + Rokdarbi + Elektronika + Ēdiens + Mēbeles + Mājai + Dažādi + Birojs + Cits + Mājdzīvnieki + Sports + Ikdienas + Ikmēneša + Vienreizējs + Iknedēļas + Maksāt %1$s, izmantojot %2$s? + Maksāt šo rēķinu, izmantojot %1$s? + Debeta pakalpojums neveica maksājumu. + Ievadiet derīgu summu šim piedāvājumam. + Pieprasa rēķinu… + Aizvērt visas reakcijas uz šo ierakstu + Slēgtas + Kopienas + Melnraksts ir %1$d baiti; šī kopiena ierobežo šo veidu līdz %2$d baitiem. + Melnraksts ir %1$d baiti; šī kopiena ierobežo notikumus līdz %2$d baitiem. + Jūs šodien jau esat publicējis %1$d šā veida notikumus (limits %2$d). + Rakstīšanas iestatījumi + Pārsaukt kanālu + @string/rename + Noklusējuma ports ir 9050 + Pievienotie Relay + Pašreiz izmantoto relay saraksts + Veiksmīgu savienojumu procentuālā daļa ar relay + Vienmēr + Nekad + Nemērīts WiFi + Pievienot dokumentu + Pievienot attēlu + Pievienot mediju + Pievienot video + Slēpt + Brīdināt + Rādīt + Sarunas + Konvertē animēto GIF uz MP4 video mazākam faila izmēram un labākai atskaņošanas saderībai. + Konvertēt GIF uz MP4 + Piezīmes ID (@note1) nokopēts starpliktuvē + Piezīmes teksts nokopēts starpliktuvē + Nokopēts starpliktuvē + Autora @npub nokopēts starpliktuvē + Kopēt manu slepeno atslēgu + Kopēt starpliktuvē + Nevarēja izveidot LNUrl no Lightning adreses "%1$s". Pārbaudiet lietotāja iestatījumus + Nevarēja pārbaudīt lejupielādēto failu pēc augšupielādes: %1$s + Nevarēja lejupielādēt augšupielādēto multivides datni no servera + Nevarēja iegūt rēķinu no %1$s: %2$s + Nevarēja atvērt saspiestu failu + Maks nav atrasts + Amethyst nevarēja atrast nevienu maka lietotni, kas atbalsta Nostr Wallet Connect (NWC). +\n\nKo varat darīt: +\n\t1. Pārbaudiet NWC atbalstu: Pārliecinieties, vai jūsu vēlamā maka lietotne ir saderīga ar Nostr Wallet Connect. +\n\t2. Izveidojiet savienojumu: Atveriet savu maka lietotni un izveidojiet jaunu NWC savienojumu. +\n\t3. Saistiet ar Amethyst: Jūsu maks parasti piedāvās trīs iespējas: +\n\t\t3.1 Automātiska saistīšana: Poga, lai automātiski atvērtu un savienotu ar Amethyst. Ja tā, noklikšķiniet uz šīs pogas, atveriet Amethyst un nospiediet saglabāt jaunajā ekrānā. +\n\t\t3.2 Manuāla saistīšana: Savienojuma URI, ko varat kopēt un noklikšķināt uz ielīmēšanas ikonas šajā ekrānā, lai to ievadītu tieši. +\n\t\t3.3 QR kods: Maks izveido QR kodu, kuru varat nolasīt ar QR koda pogu šajā ekrānā. + + Izveidot + Bīstamā zona + Tumšs + Apraksts + Padarīt publisku + Tērzēšana + Kopienas + Plūsmas algoritmi + Sekošanas pakas + Tiešraides + Tirgus + Lasāmviela + DM iesūtnes Relay + Netulkot no + Šeit rādītās valodas netiks tulkotas. Izvēlieties valodu, lai to noņemtu un atkal tulkotu. + Saglabāt tālrunī + Lejupielādē video… + Melnraksta ziņa + Melnraksti + Konti + Izveidot + Plūsmas + Navigēt + Sistēma + Jūs + + %1$d dienas + %1$d diena + %1$d dienas + + + %1$d stundas + %1$d stunda + %1$d stundas + + + %1$d minūtes + %1$d minūte + %1$d minūtes + + + %1$d mēneši + %1$d mēnesis + %1$d mēneši + + + %1$d nedēļas + %1$d nedēļa + %1$d nedēļas + + + %1$d gadi + %1$d gads + %1$d gadi + + Rediģēt kalendāru + Rediģēt kalendāra notikumu + Rediģēt kopienu + Rediģēt emoji pakotni + Rediģēt atskaņošanas sarakstu + Rediģēt ierakstu + Privātie emoji tiek glabāti šifrēti relay serveros un redzami tikai jums. Tie parādās jūsu reakciju izvēlnē un ":" automātiskajā pabeigšanā tāpat kā publiskie. + Publiskie emoji ir redzami visiem un parādās jūsu reakciju izvēlnē un ":" automātiskās pabeigšanas izvēlnē, ja šī pakotne ir jūsu emoji sarakstā. + Emoji + Šifrēt failus pirms augšupielādes privātumam. Daži serveri var nepieņemt šifrētus failus bezmaksas kontos. + Šifrēt failus + Pazūdoša tērzēšana + Kļūda + Nevarēja samaksāt rēķinu + Nevarēja izņemt + Nevar atvērt maksājumu + Nevar nosūtīt zap + Kļūda, atverot parakstītāja lietotni + Parakstītāja lietotne netika atrasta. Pārbaudiet, vai lietotne nav atinstalēta + Kļūda, parsējot kļūdas ziņojumu + Kļūda parsējot JSON no %1$s. Pārbaudiet lietotāja Lightning iestatījumus + Nevar iegūt rēķinu no saņēmēja serveriem + Atvērt pārlūkprogrammā + Nevar atskaņot šo video + Kodeks vai formāts netiek atbalstīts šajā ierīcē (%1$s). Mēģiniet to atvērt pārlūkprogrammā. + Kļūdas + Relay sinhronizācija + notikumi no jums + notikumi uz jums + Apļa treniņš + Riteņbraukšana + Diēta + Gavēnis + Pārgājiens + Meditācija + Airēšana + Skriešana + Spēka treniņš + Peldēšana + Pastaiga + Joga + Izvērst + Derīguma termiņš + Eksportēt relay iestatījumus + Dzēšana neizdevās: %1$s + Neizdevās šifrēt privāto atslēgu + Neizdevās saglabāt attēlu + Neizdevās saglabāt PDF + Neizdevās saglabāt video + Daudzi serveri nepieņem šifrētus failus bezmaksas kontos. Varat mēģināt vēlreiz bez šifrēšanas. + Šifrētā augšupielāde neizdevās + Augšupielādes kļūda: %1$s + Neizdevās augšupielādēt multivides datni + Neizdevās augšupielādēt %1$s: %2$s + Pievienot izlasei + Ielādē caur atvērto tīmekli. + Ielādē caur Tor. + Nesenās + Noņemt no izlases + Šī lietotne vēl nav ielādēta. Mēģiniet vēlreiz pēc brīža. + Izlases lietotnes + Iecienītie plūsmas algoritmi + Veikts maksājums + Publicēts relays + Augšupielādēts fails + Iecienītās Relay plūsmas + Relay, kurus bieži apmeklējat, lai skatītu to globālo plūsmu + Kopienas + Plūsmas algoritmi + Plūsmas + Hashtagi + Interešu kopas + Saraksti + Atrašanās vietas + Relay + Failu serveris + Izvēlieties serveri, uz kuru augšupielādēt šo failu + Slēpj ierakstus no svešiniekiem, kas bija tieši vienādi 5 vai vairāk reizes + Filtrēt mēstules + Sekot + Sekot atpakaļ + Visi iecienītie plūsmas algoritmi + Ap mani + Kurēts + Globāls + Noklusējuma sekošanas saraksts + Visi sekotāji + Visi lietotāju sekotāji + Mans + Izslēgto saraksts + Jauns sekošanas pakotne + Rediģēt sekošanas pakotni + Sekošanas pakotnes metadatus var redzēt ikviens Nostr, un tie bieži tiek publicēti daudzās vietnēs kā starta komplekti jauniem lietotājiem. + Sekošanas pakotnes metadati + Sekošanas paketes + Jauns sekošanas saraksts + Rediģēt sarakstu + Profila galerijas stils + Izvēlieties galerijas stilu + Klasiskais + Modernais + Atrašanās vietai ekskluzīvs ieraksts + To redzēs tikai atrašanās vietas sekotāji. Jūsu vispārējie sekotāji to neredzēs. + %1$s finansēts no %2$s sats mērķa + Šis saturs ir mainīts. Iespējams, autors nav redzējis vai apstiprinājis izmaiņas + Ko tas nozīmē? + Šis saturs nav mainījies kopš ieraksta + Sveiki, %1$s, vai tas joprojām ir pieejams? + Slēptie vārdi + Noņem ierakstus no kopienas plūsmām, kad kopiena publicē NIP-9B noteikumu dokumentu un notikums to nepildītu. Nav ietekmes, kad kopienai nav strukturētu noteikumu. + Slēpt ierakstus, kas pārkāpj kopienas noteikumus + Slēpt paroli + Augšupielādē %1$s (%2$d no %3$d) + Viss + Nepareizs pieprasījums — serveris nevar vai nevēlas apstrādāt pieprasījumu. + Neatļauts — lietotājam nav derīgu autentifikācijas akreditācijas datu + Nepieciešams maksājums — serveris pieprasa maksājumu, lai izpildītu pieprasījumu + Aizliegts — lietotājam nav piekļuves tiesību veikt pieprasījumu + Nav atrasts — serveris nevar atrast pieprasīto adresi + Metode nav atļauta — serveris atbalsta pieprasījuma metodi, bet ne mērķa resursu + Nav pieņemams — serveris neatrod saturu, kas apmierinātu pieprasījumu. + Nepieciešama starpniekservera autentifikācija — lietotājam nav derīgu autentifikācijas akreditācijas datu + Pieprasījuma taimauts — serveris pārstāja gaidīt kādu citu + Konflikts — serveris nevar izpildīt pieprasījumu, jo pastāv konflikts ar resursu + Pazudis — pieprasītais saturs ir neatgriezeniski dzēsts no servera un netiks atjaunots + Nepieciešams garums — serveris noraida pieprasījumu, jo tas prasa definētu vērtību + Priekšnosacījums neizdevās — pieprasījuma priekšnosacījumi virsraksta laukos, kurus serveris nespēj izpildīt + Pārāk liela krava — pieprasījums ir lielāks par servera definētajiem ierobežojumiem, un serveris atsakās to apstrādāt + URI pārāk garš — klienta pieprasītais URL ir pārāk garš, lai serveris to apstrādātu. + Neatbalstīts multivides tips — pieprasījums izmanto multivides formātu, ko serveris neatbalsta + Diapazons nav apmierināms — serveris nevar izpildīt pieprasījuma Range virsraksta laukā norādīto vērtību. + Cerības neizdevās — serveris nevar izpildīt Expect pieprasījuma virsraksta laukā norādītās prasības + Nepieciešams jauninājums — serveris atsakās apstrādāt pieprasījumu, izmantojot pašreizējo protokolu, ja vien klients nepāriet uz citu protokolu. + Iekšējā servera kļūda — serveris saskārās ar negaidītu kļūdu un nevar izpildīt pieprasījumu + Nav ieviests — serveris nevar izpildīt pieprasījumu vai neatpazīst pieprasījuma metodi + Sliktā vārteja — serveris darbojas kā vārteja un saņēma nederīgu atbildi no resursdatora + Pakalpojums nav pieejams — tas bieži notiek, kad serveris ir pārslogots vai veic apkopi + Vārtejas taimauts — serveris darbojās kā vārteja vai starpnieks un pārtrauca gaidīt atbildi + HTTP versija netiek atbalstīta — serveris neatbalsta pieprasījumā norādīto HTTP versiju + Variants arī apspriežas — serverim ir iekšēja konfigurācijas kļūda + Nepietiekama krātuve — serverim nav pietiekami daudz krātuves, lai veiksmīgi apstrādātu pieprasījumu + Atklāta cilpa — serveris pieprasījuma apstrādē konstatē bezgalīgu cilpu + Nepieciešama tīkla autentifikācija — klients ir jāautentificē, lai piekļūtu tīklam + Nelikumīga rīcība + Attēls saglabāts tālruņa foto galerijā + Uzdošanās par citu personu + Iesūtnes Relay + Nepareiza rēķina summa (%1$s sats) no %2$s. Tai vajadzēja būt %3$s + Indeksētāja Relay + Relay, kas specializējas visu metadatu un relay sarakstu mitināšanā, piemēram, purplepag.es. Amethyst izmantos šos relay, lai atrastu lietotājus, kas nav jūsu sarakstos. + Jauna interešu kopa + @string/rename + Hashtagu kopas + Nederīga atslēga + Nederīga atslēga: %1$s + Nederīga adrese + Amethyst saņēma URI, ko atvērt, bet šis URI bija nederīgs: %1$s + Nav iespējams citēt melnraksta ziņu + Nav iespējams reaģēt uz melnraksta ziņu + Nav iespējams atbildēt uz melnraksta ziņu + Nav iespējams zap melnraksta ziņu + Atslēga ir nepieciešama + KeyPackage Relay + Relay, kur tiek publicēti jūsu MLS KeyPackages (MIP-00). Citi lietotāji ielādē šos KeyPackages, lai uzaicinātu jūs Marmot grupu sarunās. Ievietojiet 1–3 relay, kas pieņem KeyPackage notikumus no jums un atļauj publisko lasīšanu. + Pieņemto nozīmju kopa + Piedzīvojuma priekšvārds + Piedzīvojuma lasījums + Piedzīvojuma aina + Lietotņu ieteikumi + Tikšanās + Lietotnes + Tikšanās RSVP + Audio virsraksts + Audio ieraksts + Autora podkāsti + Nozīmju apbalvojumi + Nozīmju definīcijas + Blob dati + Blob galvenes + Bloķētie relay + Blogi + Blossom autentifikācija + Blossom serveri + Grāmatzīmju saraksts + Pārraides relay + Kalendārs + Kanāla definīcija + Kanāla slēptā ziņa + Kanālu saraksts + Kanāla ziņa + Kanāla metadati + Kanāla lietotāja izslēgšana + Šaha autentifikācija + Šaha izaicinājumi + Šaha neizšķirta piedāvājums + Šaha spēles pieņemšana + Šaha spēles beigas + Šaha spēles + Šaha gājiens + Sludinājumi + Komentāri + Kopienas definīcija + Kopienas saraksts + Kopienas ziņa + Kontakta karte + Dienas tikšanās + Dzēšanas + DM fails + DM ziņa + DM relay + Melnraksti + DVM satura pieprasījums + DVM satura atbilde + DVM statuss + DVM lietotāja pieprasījums + DVM lietotāja atbilde + Rediģējumi + Emoji pakotņu saraksts + Emoji pakotnes + Īslaicīga tērzēšana + Īslaicīgas tērzētavas + Iecienītie podkāsti + Iecienītie relay + Failu galvenes + Failu serveri + Sekojamo saraksts + Sekojamo pakotnes + Ģeohash sekošana + Git problēma + Git ielāps + Git atbilde + Git repozitorijs + Hashtag sekošana + Izcēlumi + Http autentifikācija + Indeksa relay saraksts + Tiešraides tērzēšanas + Tiešraides straumes + Medicīniskie dati + Sapulču telpa + Sapulču vieta + Mūzikas atskaņošanas saraksts + Mūzikas ieraksts + Izslēgto saraksts + Nosauktās grāmatzīmes + Nests serveri + Nostr savienojums + Piezīmes + NWC pieprasījums + NWC atbilde + Vecais grāmatzīmju saraksts + Izejošo relay + Cilvēku saraksti + Attēli + Piespraustas ziņas + Podkāsta epizode + Podkāsta šovs + Aptauja + Aptaujas atbilde + Privāti relay + Privāti Zaps + Profils + Profila nozīmes + Profila galerija + Starpniek relay + Publiska ziņa + Reakcijas + Relay autentifikācija + Relay atklāšana + Relay monitora paziņojums + Relay kopa + Ziņojumi + Pārpublicējumi + Pārpublicējumi (16) + Telpas klātbūtne + Zīmogi + Meklēšanas relay + Īsie video + Īsie video (Repl) + Torrenta komentāri + Torrenti + Uzticamie pakalpojumu sniedzēji + Uzticamie relay + Lietotāja dzēšana + Lietotāja iestatījumi + Lietotāja statuss + Balss ziņa + Balss atbilde + Tīmekļa grāmatzīme + Treniņi + Zap mērķi + Zap aptauja + Zap pieprasījums + Zināms + Valodas attēlošanas preferences + Katram tulkotajam valodu pārim izvēlieties, kuru valodu rādīt pirmajā vietā. + Pēdējo reizi redzēts pirms %1$s + Pēdējo reizi redzēts tikko + Nekad nav redzēts + Pēdējo reizi redzēts %1$s (%2$s atpakaļ) + Atstāt + Gaišs + Tiešraides + Lokālie Relay + Relay saraksts, kas darbojas šajā ierīcē. + Jūs izmantojat publisko atslēgu, un publiskās atslēgas ir tikai lasāmas. Piesakieties ar privāto atslēgu, lai varētu pastiprināt ierakstus + Jūs izmantojat publisko atslēgu, un publiskās atslēgas ir tikai lasāmas. Piesakieties ar privāto atslēgu, lai varētu sekot + Jūs izmantojat publisko atslēgu, un publiskās atslēgas ir tikai lasāmas. Piesakieties ar privāto atslēgu, lai varētu paslēpt vārdu vai teikumu + Jūs izmantojat publisko atslēgu, un publiskās atslēgas ir tikai lasāmas. Piesakieties ar privāto atslēgu, lai varētu atbildēt + Jūs izmantojat publisko atslēgu, un publiskās atslēgas ir tikai lasāmas. Piesakieties ar privāto atslēgu, lai varētu sūtīt zaps + Jūs izmantojat publisko atslēgu, un publiskās atslēgas ir tikai lasāmas. Piesakieties ar privāto atslēgu, lai varētu rādīt vārdu vai teikumu + Jūs izmantojat publisko atslēgu, un publiskās atslēgas ir tikai lasāmas. Piesakieties ar privāto atslēgu, lai varētu parakstīt notikumus + Jūs izmantojat publisko atslēgu, un publiskās atslēgas ir tikai lasāmas. Piesakieties ar privāto atslēgu, lai varētu pārtraukt sekošanu + Jūs izmantojat publisko atslēgu, un publiskās atslēgas ir tikai lasāmas. Piesakieties ar privāto atslēgu, lai varētu augšupielādēt + Jūs izmantojat publisko atslēgu, un publiskās atslēgas ir tikai lasāmas. Piesakieties ar privāto atslēgu, lai patiktu ieraksti + Video + Manas emoji pakotnes + Tiek pievienots %1$s… + Administratora tiesības piešķirtas + Administratora tiesības atsauktas + Neizdevās pievienot %1$s: %2$s + Neizdevās izveidot grupu: %1$s + Neizdevās piešķirt administratora tiesības: %1$s + Neizdevās pamest grupu: %1$s + Neizdevās noņemt dalībnieku: %1$s + Neizdevās atsaukt administratora tiesības: %1$s + Neizdevās atjaunināt: %1$s + MLS grupa + Grupas informācija atjaunināta + + %1$d dalībnieku + %1$d dalībnieks + %1$d dalībnieki + + Dalībnieks noņemts + + %1$d ziņas + %1$d ziņa + %1$d ziņas + + Nav šīs grupas dalībnieks + nezināma kļūda + Multivide pievienota + Multivide pievienota jūsu profila galerijai + Multivides lejupielāde ir sākusies… + Mediju serveri + Multivide ir pārāk liela NIP-95 + Vispirms ievadiet ziņojuma galamērķi + Nevar augšupielādēt + Temats + Metadatus nevarēja noņemt + Neizdevās noņemt privātos metadatus no multivides. Augšupielāde atcelta. + Grāmatzīmes veiksmīgi pārvietotas + Trūkst Lightning iestatījumu + Vairāk opciju + Pārvietot uz privātu + Pārvietot uz publisku + Augšupielādēt vāka attēlu + Izvēlieties kvadrātveida attēlu kā šī atskaņošanas saraksta ilustrāciju. + + +%1$d vairāk ierakstu + +%1$d vairāk ieraksts + +%1$d vairāk ieraksti + + + %1$d ieraksti + %1$d ieraksts + %1$d ieraksti + + + %1$d ieraksti + %1$d ieraksts + %1$d ieraksti + + Augšupielādē vāku un publicē. Tas turpināsies pat tad, ja aiziesiet no šī ekrāna. + Augšupielādēt audio failu + Atlasiet MP3, WAV vai FLAC datni. Tā tiks augšupielādēta jūsu multimediju serverī saglabāšanas brīdī. + Augšupielādēt vāka attēlu + Izvēlieties kvadrātveida attēlu kā šī ieraksta ilustrāciju. + Augšupielādē vāku un audio un publicē. Tas turpināsies pat tad, ja aiziesiet no šī ekrāna. + Skaņa ieslēgta. Noklikšķiniet, lai izslēgtu skaņu + Skaņa izslēgta. Noklikšķiniet, lai ieslēgtu skaņu + Mani saraksti + Vārds ir nepieciešams + Namecoin iestatījumi + Identitāte + Lasīt jūsu publisko atslēgu + Ziņapmaiņa + Apmainīties ziņojumiem ar citiem nApplets + Tastatūras darbības + Piesaistīt tastatūras īsinājumtaustiņus + Paziņojumi + Rādīt jums paziņojumus + Lasīt, parakstīt & publicēt jūsu notikumus + Tīkls + Iegūt tīmekļa un Blossom resursus + Krātuve + Tās pašas privātā krātuve + Motīvs + Saskaņot jūsu lietotnes krāsas + Augšupielādes + Augšupielādēt failus uz jūsu mediju serveri + Maksājumi + Apmaksāt Lightning rēķinus + Šis nApplet vēlas lasīt jūsu publisko atslēgu. + Šis nApplet vēlas lasīt jūsu profilu un konta datus. + Šis nApplet vēlas rādīt jums paziņojumus. + + Šī nApplet vēlas apmaksāt Lightning rēķinu par %1$d sat. + Šī nApplet vēlas apmaksāt Lightning rēķinu par %1$d sat. + Šī nApplet vēlas apmaksāt Lightning rēķinu par %1$d sats. + + Šis nApplet vēlas parakstīt un publicēt %1$d veida notikumu jūsu vārdā. + Šis nApplet vēlas nosūtīt šifrētu notikumu jūsu vārdā. + Šis nApplet vēlas parakstīt un publicēt %1$d veida notikumu jūsu vārdā: + Šis nApplet vēlas lasīt notikumus no jūsu relays. + Šis nApplet vēlas iegūt tīmekļa resursu. + Šī vietne vēlas parakstīt %1$d veida notikumu ar jūsu Nostr atslēgu. + Šis nApplet vēlas izmantot savu privāto krātuvi. + Šis nApplet vēlas augšupielādēt failu uz jūsu mediju serveri. + Neizdevās nosūtīt ziņojumu + Apklusināt šo runātāju + Atjaunot šo runātāju + Atstāt + Neizdevās atzīmēt telpu kā slēgtu. Atstājam tāpat — telpa tiks automātiski aizvērta. + + %1$d klausītāju + %1$d klausītājs + %1$d klausītāji + + Nolaist roku + Izslēgt mikrofonu + Ieslēgt mikrofonu + Izslēgt skaņu + Neizdevās saglabāt nest serveru sarakstu. Mēģiniet vēlreiz. + Nest — Tiešraide + Turpina atskaņot audio, kamēr telpa ir atvērta. + Nest savienots + Apturēt + Pieskarieties, lai atgrieztos. + Sekot + Izslēgt skaņu + Pārtraukt sekot + Ieslēgt skaņu + atstāja nest + pievienojās kā klausītājs + uzkāpa uz skatuves + pacēla roku + runā + Pacelt roku + Ieslēgt skaņu + Saglabāts kā kind-10112 aizstājams notikums, lai citi klienti varētu lasīt jūsu preferenci. + Jūsu serveri + Iebūvētie ieteikumi, ko varat pievienot sarakstam ar vienu pieskārienu. + Ieteiktie serveri + Nest serveri + nekad + Jauns žetons + Jauns kalendārs + Jauns kalendāra notikums + Jauna kopiena + Moderatori + Relay + Aizliegtie lietotāji + Kopienas komentārs (1111) + Garš raksts (30023) + Attēla ziņa (20) + Īss teksts (1) + Īss video (22) + Video ziņa (21) + Atļautie notikumu veidi + Globālais maksimālais notikuma izmērs (pēc izvēles) + Pārbaudāmi noteikumi (pēc izvēles) + Uzticamības tīkla vārti (pēc izvēles) + Jauna emoji pakotne + Jauns mērķis + Jauns raksts + Jauns atskaņošanas saraksts + Jauns mūzikas ieraksts + Jauns produkts + Jauni pieprasījumi + Jaunas diskusijas + Jauns treniņš + + %1$d aktīvi iekļauti + %1$d aktīvs iekļauts + %1$d aktīvi iekļauti + + Blossom lietotnes netika atrastas. Lūdzu, instalējiet lokālu Blossom lietotni, lai skatītu šo failu + Nevar atvērt Blossom saites + Šajā ierīcē nav atrastas kameras lietotnes + Nav iestatīta Lightning adrese + Nav atrasta lietotne šī maksājuma apstrādei. Lūdzu, instalējiet saderīgu maku. + Nav instalētas lietotnes %1$s maksājumu apstrādei. Lūdzu, instalējiet saderīgu maku. + Šim lietotājam nav iepriekš atlasītu reakciju veidu. Ilgi nospiediet sirds pogu, lai mainītu + Nav reakciju iestatījumu + Nav atrasts neviens maks Lightning rēķina apmaksai. Lūdzu, instalējiet Lightning maku, lai izmantotu zaps + Nav atrasts neviens maks Lightning rēķina apmaksai (Kļūda: %1$s). Lūdzu, instalējiet Lightning maku, lai izmantotu zaps + Zap summa nav iestatīta. Turiet nospiestu, lai mainītu + Paziņojumi + Kategorijas + Piegāde + Rādīšana lietotnē + tagad + Nowhere māksla + Nowhere notikums + Nowhere forums + Nowhere ziedojumu akcija + Nowhere vietne + Nowhere ziņojums + Nowhere petīcija + Nowhere veikals + Kailums + Nevar izveidot notikuma atsauci + Piezīmē nav saņēmēja publiskās atslēgas + Nutzap ir publiski un atklātu šo privāto piezīmi. Tā vietā izmantojiet Lightning zap. + Nutzap neizdevās + + Nosūtīt %1$s sats, %2$d veidos + Nosūtīt %1$s sats, %2$d veidā + Nosūtīt %1$s sats, %2$d veidos + + Bitcoin ķēdes aizmugures pakalpojums nav konfigurēts + Nevarēja pārraidīt darījumu + Nevarēja izveidot darījumu + Nevarēja ielādēt jūsu Bitcoin bilanci + Maksājums nosūtīts, bet zap kvīts nevarēja tikt publicēta + + Maksājums nosūtīts (%1$d no %2$d čekiem publicēts), bet nākamo čeku nevarēja publicēt + Maksājums nosūtīts (%1$d no %2$d čeka publicēts), bet nākamo čeku nevarēja publicēt + Maksājums nosūtīts (%1$d no %2$d čekiem publicēts), bet nākamo čeku nevarēja publicēt + + Saņēmēja daļa ir zem putekļu robežas + Nevarēja parakstīt darījumu + ~1 st. + Ātri + Normāli + Lēni + + Sadalījums starp %1$d saņēmējiem + Sadalījums starp %1$d saņēmēju + Sadalījums starp %1$d saņēmējiem + + + Izlaižot %1$d saņēmējus ar tikai Lightning adresi — tiešsaistei nepieciešams Nostr publiskā atslēga adreses atvasināšanai. + Izlaižot %1$d saņēmēju ar tikai Lightning adresi — tiešsaistei nepieciešams Nostr publiskā atslēga adreses atvasināšanai. + Izlaižot %1$d saņēmējus ar tikai Lightning adresi — tiešsaistei nepieciešams Nostr publiskā atslēga adreses atvasināšanai. + + + Izmantot šī ieraksta %1$d-veidu Zap sadalījumu + Izmantot šī ieraksta %1$d-veidu Zap sadalījumu + Izmantot šī ieraksta %1$d-veidu Zap sadalījumu + + pārraida + veido darījumu + ielādē bilanci + publicē kvīti + paraksta + Šāda veida aptaujā katram lietotājam ir atļauta tikai viena balss + Atvērt visas reakcijas uz šo ierakstu + Atvērtas + Orbot Socks ports + Bitcoin pārlūks (OTS) + Ir pierādījums, ka šī ziņa tika parakstīta kādreiz pirms %1$s. Pierādījums tika ierakstīts Bitcoin blokķēdē šajā datumā un laikā. + Laika zīmoga pierādījums + Izejošo ziņojumu Relay + Ir nepieciešama parole + Pauzēt + Maksāt + Ziņojums no %1$s + Maksājumu mērķi + Pievienojiet maksājumu adreses dažādiem tīkliem (piem., bitcoin, lightning, ethereum). + PDF saglabāts Lejupielādes/Amethyst mapē + Sekošanas sarakstu metadatus var redzēt ikviens Nostr. Tikai jūsu privātie dalībnieki ir šifrēti. + Sekošanas saraksta metadati + Attēli + Piespraust augšā + Piespraust profilam + Atskaņot + + %1$d epizodes + %1$d epizode + %1$d epizodes + + Aptaujas autori nevar balsot savās aptaujās. + Aptauja ir slēgta jaunām balsīm + Vairāki varianti + Variants %1$s + Viens variants + Nevar balsot + Aptaujas + Ieraksts + + Šajā ierakstā ir vairāk nekā %1$d hashtagus + Šajā ierakstā ir vairāk nekā %1$d hashtags + Šajā ierakstā ir vairāk nekā %1$d hashtagus + + Priekšskatījuma kartes attēls %1$s + Privātuma opcijas + Privātuma politika + <Nevar atšifrēt privāto ziņojumu>\n\nJūs tiekāt pieminēts privātā/šifrētā sarunā starp %1$s un %2$s. + DM iesūtnes Relay + Ievietojiet 1–3 relay kā jūsu privāto iesūtni. Citi izmantos šos relay, lai jums nosūtītu DM. DM Iesūtnes relay vajadzētu pieņemt jebkuru ziņojumu no jebkura, bet ļaut lejupielādēt tikai jums. Labas iespējas ir:\n - inbox.nostr.wine (maksas)\n - auth.nostr1.com (bezmaksas)\n - you.nostr1.com (personīgi relay - maksas) + Lietotājs saņem DM šajos relay + Privāta ziņa + Padarīt privātu: iesaiņot piezīmi tikai paziņotajiem lietotājiem + Atbildes uz privātu piezīmi vienmēr paliek privātas + Redzams + Privātie sākuma Relay + Ievietojiet 1–3 relay, lai glabātu notikumus, ko neviens cits nevar redzēt, piemēram, jūsu melnrakstus un/vai lietotnes iestatījumus. Ideālā gadījumā šie relay ir vai nu lokāli, vai pieprasa autentifikāciju pirms katra lietotāja satura lejupielādes. + Rupjības / Naida runa + Profils + Profila žetoni + Lietotņu ieteikumi + Profila nozīmītes + Sekotāju plūsma + Saņemto Zap plūsma + Profila lietotāja saskarne + profili + Ieteikt labojumu + Starpniekservera Relay + Agregātori relay, ko lietotnei jāizmanto, lai lejupielādētu jūsu plūsmas, piemēram, filter.nostr.wine. Tas aizstāj izejošo ziņojumu modeli un liks lietotnei pieslēgties tikai jūsu sarakstos esošajiem relay. + Publiskā tērzēšana + Publiskās tērzēšanas ir redzamas visiem Nostr lietotājiem un ikviens + var tajās piedalīties. Tās ir lieliski piemērotas atvērtām kopienām par konkrētām tēmām. + Moderēšanu var kontrolēt, dzēšot ierakstus tās relay + Ievadiet no 1 līdz 3 relay, kas mitina šo grupu. + Nostr klienti izmanto šo iestatījumu, lai zinātu, no kurienes lejupielādēt ziņojumus un kur nosūtīt jūsu ziņojumus. + Relay + Publiskās tērzēšanas metadati + Publiskie čati + Publiskie izejošo ziņojumu/sākuma Relay + Šis relay veids glabā visu jūsu saturu. Amethyst nosūtīs jūsu ierakstus šeit, un citi izmantos šos relay, lai atrastu jūsu saturu. Ievietojiet 1–3 relay. Tie var būt personīgi, maksas vai publiski relay. + Lietotājs publicē savu saturu šajos relay + Publiska ziņa + Publiskie iesūtnes Relay + Šis relay veids saņem visas atbildes, komentārus, patīk un zap uz jūsu ierakstiem. Tie var būt maksas vai bezmaksas relay. Relay operatora noteiktie ierobežojumi var ierobežot jūsu saņemtos paziņojumus gan labā, gan sliktā nozīmē. Piemēram, ja jūs tiekat uzbrukts ar komentāru spamu, maksas relay var filtrēt spamu. Ievietojiet 1–3 relay. + Lietotājs saņem paziņojumus šajos relay + Piezīmes ID + Dzēst + Izslēgt pavedienu + Kopīgot + Kopīgot pārlūka saiti + Ieslēgt pavedienu + Reakcija + Reakcijas + Reakciju rinda + Lasīt no relay + Baitu daudzums, kas saņemts no šī relay, ieskaitot filtrus un notikumus + Tikai lasāms lietotājs + Noklikšķiniet un turiet, lai ierakstītu ziņojumu + Relay tērzēšana + Relay tērzēšanas ir tērzēšanas grupas, kuras kontrolē to mājas relay. + Tās ir redzamas visiem Nostr lietotājiem un ikviens var tajās piedalīties. + Tās ir lieliski piemērotas atvērtām kopienām par konkrētām tēmām. Dažas no šīm grupām ir īslaicīgas + un tāpēc tērzēšanas ziņojumi laika gaitā pazūd + Relay tērzēšanas + Notikumi + IP adreses + Veidi + Lietotāji + Iestatījumi + Maks + Relay iestatījumi + izejošo saraksti + Relay + Papildināt & sūtīt Zap + Sūtīt Zap + Papildināt %1$s sats uz %2$s un Zap %3$s %4$s sats · maksa ≈ %5$s sats + Noņemt + Noņemt no publiskajām grāmatzīmēm + atbildēt šeit… + Paziņot: + + Pieprasīt dzēšanu + Pieprasījums pazust + Neizdevās atiestatīt Marmot stāvokli: %1$s + Atiestatīt Marmot stāvokli + Marmot stāvoklis atiestatīts. + Mēģināt vēlreiz + Kalendāru saraksti + Kalendāri + Šahs + Atklāt + Sākums + Importēt sekotājus + Ziņojumi + Atskaņošanas saraksti + Mūzika + Paziņojumi + Epizodes + Podkāsti + Ieplānot ziņu + Atcelt ieplānošanu + Ieplānotās ziņas var nepublicēties, kamēr neatvērsiet lietotni atkārtoti. Citu kontu ieplānotās ziņas netiks nosūtītas, kamēr šis konts ir aktīvs. Iespējojiet pastāvīgo režīmu Iestatījumos → Lietotāja interfeisa preferences uzticamai fona ieplānošanai. + Ieplānotās ziņas var nepublicēties, kamēr neatvērsiet lietotni atkārtoti. Iespējojiet pastāvīgo režīmu Iestatījumos → Lietotāja interfeisa preferences uzticamai fona ieplānošanai. + Ieplānotās ziņas + Nosūtīt tagad + %1$s · pēc %2$s + %1$s · pirms %2$s + Rīt + Kļūda: %1$s + Piezīmes ID nokopēts + + Izrakstījies · %1$d ieplānoti ieraksti dzēsti + Izrakstījies · %1$d ieplānots ieraksts dzēsts + Izrakstījies · %1$d ieplānoti ieraksti dzēsti + + Izrakstījies + + Jums ir %1$d ieplānoti ieraksti, kas vēl nav publicēti. Izrakstīšanās tos neatgriezeniski dzēsīs. + Jums ir %1$d ieplānots ieraksts, kas vēl nav publicēts. Izrakstīšanās to neatgriezeniski dzēsīs. + Jums ir %1$d ieplānoti ieraksti, kas vēl nav publicēti. Izrakstīšanās tos neatgriezeniski dzēsīs. + + Ieplānotās ziņas publicēšana neizdevās + Ieplānotā ziņa publicēta + + uz %1$d relay + uz %1$d relay + uz %1$d relay + + Atcelta + Neizdevās + Ieplānota + Nosūta… + Nosūtīta + + · %1$d jāveic 1 st. laikā + · %1$d jāveic 1 st. laikā + · %1$d jāveic 1 st. laikā + + + %1$d rindā + %1$d rindā + %1$d rindā + + Labas iespējas ir:\n%1$s + Meklēšanas Relay + Meklēšanas Relay + Relay saraksts, ko izmantot, meklējot saturu vai lietotājus. Atzīmēšana un meklēšana nedarbosies, ja nav pieejamu opciju. Pārliecinieties, ka tie ievieš NIP-50. + meklējamie notikumi + Slepenā atslēga (nsec) nokopēta starpliktuvē + Jūs vēl neesat bloķējis nevienu lietotāju. + Drošības filtri + Nav slēpto vārdu. Pievienojiet vārdu zemāk, lai slēptu ierakstus, kas to satur. + Bloķētais saturs + Filtrēšanas preferences + Šajā sesijā neviens konts nav atzīmēts kā mēstules. + Sūtīt + Nosūtīt visus saņemtos profila (kind 0) notikumus uz jūsu lokālo relay + Pārsūtīt profilus uz lokālo relay + Tērējams šim saņēmējam: %1$s sats + Maksājums neizdevās + Darījums: %1$s + Maksā, izmantojot %1$s… + Serveris nesniedza URL pēc augšupielādes + Iestatījumi + Nav izslēgtu diskusiju + Izslēgtās diskusijas + Kopīgot kā attēlu + Kopīgot kā attēla URL + HLS augšupielāde + Kopīgot vai saglabāt + Šorti + Rādīt šifrētās privātās atslēgas QR kodu + Iekļaut tiešās un grupas ziņas paziņojumu cilnē. Izslēdziet, lai ziņas tiktu rādītas tikai ziņojumu cilnē. + Rādīt ziņas + Rādīt privātās atslēgas QR kodu + Parakstīšanas pieprasījums noraidīts + Pārliecinieties, ka parakstītāja lietotne ir autorizējusi šo darījumu + Ārējais parakstītājs atgrieza neparastu atbildi uz pieprasījumu. Iespējams, ir kļūda Amethyst vai parakstītājā. + Parakstītājs nav atrasts + Vai parakstītāja lietotne tika atinstalēta? Pārbaudiet, vai parakstītājs ir instalēts un vai tam ir šis konts. Izrakstieties un pierakstieties vēlreiz, ja parakstītāja lietotne ir mainīta. + Pārtīt atpakaļ %1$d sekundes + Pārtīt uz priekšu %1$d sekundes + Lietotnes + Surogātpasts + Surogātpasta notikumu skaits no šī relay + Surogātpasta sūtītāji + Rādīt divas paziņojumu cilnes — Sekotie (cilvēki, kuriem sekojat) un Visi. Nelasīto rādītājs mirgo tikai sekoto cilvēku aktivitātei. + Sadalīt paziņojumus pēc sekošanas + Mēģina noņemt privātos metadatus no atbalstītajiem multivides failiem pirms augšupielādes + Noņemt privātos metadatus + Nolasa pabeigtus treniņus no Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) un iesaka kopīgot tos kā ierakstu. Atļauja tiek pieprasīta tikai savienojuma laikā. + Ieteikt kopīgojamas treniņu sesijas + Sistēma + Motīvs + Tumšs, gaišs vai sistēmas dizains + Šī ziņa pazudīs pēc %1$s + + +%1$d\natbildes + +%1$d\natbilde + +%1$d\natbildes + + Šodien + Pielāgots + Izveidojiet savu + Noklusējums + Slēpt savu IP no nejaušiem relay + Pilnīga privātums + Slēpt savu IP visos savienojumos + Iekšējs + Izslēgts + Tor/Privātuma iepriekšējie iestatījumi + Ātri modificēt visus iestatījumus zemāk + Viss, izņemot multividi + Slēpt savu IP no visa, izņemot attēlus un video + Piespiest Tor sūtīt un saņemt DM + Attēli + Piespiest Tor, ielādējot attēlus + Mediju augšupielādes + Piespiest Tor, augšupielādējot saturu + Naudas operācijas + Piespiest Tor uz Zap, Lightning un Cashu pārskaitījumiem + Neuzticami Relays + Piespiest Tor uz izejošajiem/ienākošajiem relays + Nostr adreses verifikācija + Piespiest Tor, verificējot NIP-05 adreses + Onion URL/Relays + Izmantot Tor jebkuram .onion URL + Profila attēli + Piespiest Tor, ielādējot profila attēlus + Uzticami Relays + Piespiest Tor uz visiem relays jūsu sarakstos + URL priekšskatījumi + Piespiest Tor, ielādējot URL priekšskatījumus + Video + Piespiest Tor, ielādējot video + Pamata + Izmantot Tor, kad to pieprasa serveris + Neizdevās atvērt failu + Nav uzstādītas torrent lietotnes, kas atvērtu un lejupielādētu datni. + Notikumam nav pietiekami daudz informācijas, lai izveidotu magnētisko saiti + Izmantot izsekoto raidītāju, sūtot notikumus. Parāda tiešraides progresu un katra relay statusa informāciju pārraides laikā. + Izsekotās pārraides + Tulkot uz + Izvēlieties valodu, kurā tulkot saturu. + Tulkojumi + Uzticamie Relay + Relay, kuriem uzticaties un kuriem nav nepieciešams Tor savienojums + Pilns + Veiktspēja + Vienkāršots + UI preferences + Saskarsnes režīms + Izvēlieties ierakstu stilu + Nevar izveidot Lightning rēķinu pirms zap nosūtīšanas. Saņēmēja Lightning maks nosūtīja šādu kļūdu: %1$s + Nevar kopīgot attēlu, lūdzu, mēģiniet vēlāk… + Nevar kopīgot video, lūdzu, mēģiniet vēlāk… + Neatļauta atšifrēšana + Parakstītājs neautorizēja atšifrēšanu, kas nepieciešama šīs darbības veikšanai. Aktivizējiet NIP-44 atšifrēšanu savā parakstītāja lietotnē un mēģiniet vēlreiz + Pārtraukt sekošanu + Atspraust + Atspraust no profila + Augšupielāde atcelta + Augšupielādes kļūda + Balss augšupielāde neizdevās: %1$s + Neizdevās augšupielādēt balss ziņojumu + NIP-95 balss ziņojumiem vēl netiek atbalstīts + %1$d%% darbalaiks + Aktīvs Tor dzinējs + Izmantot iekšējo versiju vai Orbot + Lietotājs nav iestatījis lightning adresi sats saņemšanai + Lietotājam %1$s nav iestatīta Lightning adrese sats saņemšanai + Pazušanas vēsture + Pazušanas pieprasījums nosūtīts + Labāka kvalitāte mazākos failu izmēros, taču ne visas ierīces atbalsta H.265 atskaņošanu. + Izmantot H.265/HEVC kodeku + Video lejupielāde ir sākusies… + Video atskaņotāja pogas + Video saglabāts tālruņa video galerijā + Balss ziņa + Dziļa + Augsta + Neitrāla + Nav + Balss atbilde + Maks + Cashu maks (NIP-60) + Jūsu wallet connect pakalpojumu sniedzējs atgrieza šādu kļūdu: %1$s + Rediģēt mints + Rāda brīdinājuma ziņojumu, kad ierakstiem vai profiliem ir ziņojumi no jūsu sekotajiem + Brīdināt par ziņojumiem + Pievienot tīmekļa grāmatzīmi + Rediģēt tīmekļa grāmatzīmi + Tīmekļa grāmatzīmes + Ko jūs domājat? + Treniņi + Rakstīt ziņojumu… + Rakstīt uz relay + Baitu daudzums, kas nosūtīts uz šo relay, ieskaitot filtrus un notikumus + + Pārsaukt + Saglabāt diff --git a/commonsUI/src/commonMain/composeResources/values-nl-rBE/strings.xml b/commonsUI/src/commonMain/composeResources/values-nl-rBE/strings.xml index 0eaa219ab1..9284277f1e 100644 --- a/commonsUI/src/commonMain/composeResources/values-nl-rBE/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-nl-rBE/strings.xml @@ -1810,4 +1810,1205 @@ nApplet: %1$s Machtigingen: Openen + Over & Juridisch + Accountinstellingen + Toevoegen + Blossom-server toevoegen + NIP-96-server toevoegen + Wanneer ingeschakeld voegt Amethyst een NIP-89 client-tag toe aan events die je publiceert. + Client-tag toevoegen aan mijn events + Voegt een waarschuwing toe voordat de inhoud wordt getoond + Gevoelige inhoud + Toevoegen aan publieke bladwijzers + Gebruikt een on-device AI-model om tekstcorrecties en toonwijzigingen voor te stellen. + Tekstverbeteringen voorstellen + Houdt verbindingen met je inbox-relays actief voor realtime meldingen + + Verbonden met %1$d inbox-relay + Verbonden met %1$d inbox-relays + + + Verbonden met %1$d relay + Verbonden met %1$d relays + + Verbinden met inbox-relays… + Amethyst-meldingen actief + Meldingen voor inkomende spraak- en video-oproepen + Inkomende oproepen + %1$s heeft je schaakuitdaging geaccepteerd + Meldingen over schaakgebeurtenissen + Schaken + Schaakupdates + %1$s heeft een zet gedaan – jouw beurt + Melding bij nieuw privébericht + Privéberichten + Nieuwe berichten + Markeer als gelezen + Melding wanneer iemand je vermeldt of citeert in een bericht + %1$s heeft je vermeld + Vermeldingen + Nieuwe vermeldingen + Melding wanneer iemand reageert op je bericht + %1$s reageerde op je bericht + voor %1$s + Reacties + Nieuwe reacties + Melding wanneer iemand op je bericht reageert + Reacties + Nieuwe reacties + Beantwoorden + Meldingen wanneer een gepland bericht is gepubliceerd of mislukt. + Geplande berichten + Melding wanneer iemand je zapt + %1$s sats + voor %1$s + Van %1$s + Ontvangen zaps + Nieuwe zaps + App-instellingen + Attestatie + Attestatieverzoek + Attestor-vaardigheid + Attestor-aanbeveling + Audio-visualisatie + Slaat automatisch een concept op wanneer je typt of de opsteller verlaat met onverzonden tekst en stuurt dit naar je privé outbox-relays. + Automatisch concepten aanmaken + Volledig scrollen + Navigatiebalken verbergen tijdens scrollen + Afbeeldingen laden + Afbeeldingen en GIFs automatisch laden + Video's automatisch afspelen + Video's en GIFs automatisch afspelen + Profielfoto + Profielfoto's tonen + URL-voorbeeld + URL-voorbeelden automatisch tonen + Video's automatisch afspelen + Video's automatisch afspelen wanneer zichtbaar op het scherm + Kan metadata niet verwijderen uit AVIF: %1$s + Badge toekennen + Terug + Back-up sleutels + Badges + Biometrische authenticatie mislukt + Biometrie kon de eigenaar van dit toestel niet verifiëren. + Biometrie kon de eigenaar niet verifiëren. Fout: %1$s + Alleen blokkeren + Geblokkeerde relays + Amethyst zal nooit verbinding maken met deze relays. + Geblokkeerde gebruikers + Nieuwe bladwijzerlijst + Bladwijzerlijst-metadata + Bladwijzerlijst-metadata is zichtbaar voor iedereen op Nostr. Alleen privéleden zijn versleuteld. + Bladwijzers + Boost + Onderste navigatiebalk + Uitzend-relays + Relays die gespecialiseerd zijn in het doorsturen van je notities naar andere relays, zoals sendit.nosflare.com. Amethyst voegt deze automatisch toe aan nieuwe berichten. + Browser + Favorieten + Laden via het open web. Tik om Tor te gebruiken. + Laden via Tor. Tik om het open web te gebruiken. + + %1$s, %2$d evenement + %1$s, %2$d evenementen + + Afbeelding uploaden mislukt + De gekozen afbeelding kon niet worden geüpload. Probeer opnieuw of plak een URL. + Agenda-evenement delen + Openen in kaarten + Link openen + Nu aan de gang + %1$s · eindigt %2$s + + Begint over %1$d minuut + Begint over %1$d minuten + + Melding wanneer een evenement waar je naartoe gaat bijna begint. + calendar_reminders + Agenda-herinneringen + Agenda-evenement + Een melding verschijnt wanneer een evenement waar je naartoe gaat bijna begint. + Herinneringen versturen + + %1$d min + %1$d min + + Agenda-herinneringen + Dag + Feed + Maand + Week + Accepteren + Bluetooth + Camera uit + Camera aan + Oortelefoon + Ophangen + Inkomende oproep + Inkomende video-oproep… + Inkomende spraakoproep… + Dempen + Lopende oproep + Lopende oproep + Amethyst heeft toegang tot camera en microfoon nodig om een video-oproep te starten. Schakel dit in bij de app-instellingen. + Amethyst heeft toegang tot de microfoon nodig om een spraakoproep te starten. Schakel dit in bij de app-instellingen. + Weigeren + Gespreksinstellingen + Speaker + Dempen opheffen + Bellen met %1$s + Callback-URL niet gevonden in het antwoord van %1$s. + Annuleren + Cashu-token + Mint controleren… + Cashu-inwisselen mislukt + Mint geeft de volgende foutmelding: %1$s + Ontvangen + Verzonden + Overeenkomende mints + + +%1$d meer + +%1$d meer + + Populaire mints + + Aanbevolen door %1$d andere + Aanbevolen door %1$d anderen + + %1$s sat verplaatst naar %2$s. + Geen compatibele Cashu-wallet gevonden + + %1$d openstaande invoice + %1$d openstaande invoices + + %1$s sat betalen + tot %2$s sat aan kosten? + Publiceer een verwijderverzoek voor je kind:38000-aanbeveling van %1$s. Relays die NIP-09 respecteren zullen deze verwijderen. + %1$s sats hersteld over %2$s proofs. + Cashu ontvangen + %1$s sats zijn naar je wallet gestuurd (kosten: %2$s sats). + + Fondsen bewaard bij %1$d mint die je niet gebruikt + Fondsen bewaard bij %1$d mints die je niet gebruikt + + Wachten tot de factuur betaald is… + + %1$d mint + %1$d mints + + Casten stoppen + Casten naar apparaat + Normen voor kinderveiligheid + Accessoires + Kunst + Boeken + Kleding + Verzamelobjecten + Ambachten + Elektronica + Fitness + Eten + Meubels + Huis & tuin + Overig + Kantoor + Anders + Huisdieren + Sport + Dagelijks + Maandelijks + Eenmalig + Wekelijks + Betaal %1$s via %2$s? + Betaal deze invoice via %1$s? + De debit-service heeft de betaling niet voltooid. + Voer een geldig bedrag in voor dit aanbod. + Invoice aanvragen… + Alle reacties sluiten + Gesloten + Communities + Concept is %1$d bytes; deze community beperkt dit kind tot %2$d bytes. + Concept is %1$d bytes; deze community beperkt events tot %2$d bytes. + Je hebt vandaag al %1$d events van dit kind geplaatst (limiet %2$d). + Opstel-instellingen + Standaardpoort is 9050 + Verbonden relays + Huidig verbonden relays + Percentage succesvolle verbindingen met deze relay + Altijd + Nooit + Alleen onbeperkt wifi + Document toevoegen + Afbeelding toevoegen + Media toevoegen + Video toevoegen + Verbergen + Waarschuwen + Tonen + Discussies + Converteert geanimeerde GIF naar MP4-video voor kleinere bestandsgrootte en betere afspeelcompatibiliteit. + GIF converteren naar MP4 + Note-ID (@note1…) gekopieerd naar klembord + Note-tekst gekopieerd naar klembord + Gekopieerd naar klembord + Gebruikers-ID (@npub…) gekopieerd naar klembord + Mijn privésleutel kopiëren + Kopiëren naar klembord + Kon LNURL niet samenstellen vanuit Lightning-adres "%1$s". Controleer de instellingen van de gebruiker. + Kon gedownload bestand niet controleren na upload: %1$s + Kon geüploade media niet downloaden van server + Kon invoice niet ophalen van %1$s: %2$s + Kon gecomprimeerd bestand niet openen + Geen wallet gevonden + Amethyst kon geen wallet-apps vinden die Nostr Wallet Connect (NWC) ondersteunen.\n\nWat je kunt doen:\n1. Controleer of je wallet NWC ondersteunt.\n2. Maak in je wallet een nieuwe NWC-verbinding aan.\n3. Kopieer de verbinding-URI of scan de QR-code hier. + Aanmaken + d + Gevarenzone + Donker + Omschrijving + Publiek maken + Chats + Communities + Feed-algoritmes + Volgpakketten + Livestreams + Marktplaats + Gelezen + DM-inbox relays + DM's + Niet vertalen van + Talen die hier staan worden niet vertaald. Tik op een taal om deze te verwijderen en weer te laten vertalen. + Opslaan op telefoon + Video downloaden voor delen… + Conceptnotitie + Concepten + Accounts + Aanmaken + Feeds + Navigeren + Systeem + Jij + + %1$d dag + %1$d dagen + + + %1$d uur + %1$d uur + + + %1$d minuut + %1$d minuten + + + %1$d maand + %1$d maanden + + + %1$d week + %1$d weken + + + %1$d jaar + %1$d jaar + + Agenda bewerken + Agenda-evenement bewerken + Community bewerken + Emoji-pakket bewerken + Afspeellijst bewerken + Bericht bewerken + Privé-emoji's worden versleuteld opgeslagen op relays en zijn alleen zichtbaar voor jou. Ze verschijnen in je reactiemenu en ":" autocomplete net als openbare emoji's. + Openbare emoji's zijn zichtbaar voor iedereen en verschijnen in je reactiemenu en ":" autocomplete-picker wanneer dit pakket in je emoji-lijst staat. + Emoji's + Versleutel bestanden voordat ze worden geüpload. Sommige servers accepteren geen versleutelde bestanden op gratis accounts. + Bestanden versleutelen + Tijdelijke chat + Fout + Invoice kon niet betaald worden + Opname mislukt + Kan betaling niet openen + Kan zap niet versturen + Fout bij openen signer-app + De signer-app kon niet worden gevonden. Controleer of deze nog geïnstalleerd is. + Fout bij verwerken foutmelding + Fout bij verwerken JSON van %1$s. Controleer de Lightning-instellingen van de gebruiker. + Kon invoice niet ophalen van de server van de ontvanger + Openen in browser + Dit video kan niet worden afgespeeld + De codec of het formaat wordt niet ondersteund op dit apparaat (%1$s). Probeer het in uw browser te openen. + Fouten + Relay-synchronisatie + berichten van jou + berichten aan jou + AMRAP + Circuit + Fietsen + Dieet + EMOM + Vasten + Wandelen + Meditatie + Roeien + Hardlopen + Krachttraining + Zwemmen + Wandelen + Yoga + Uitklappen + Vervaldatum + Relay-instellingen exporteren + Media verwijderen mislukt: %1$s + Versleutelen van privésleutel mislukt + Afbeelding opslaan mislukt + PDF opslaan mislukt + Video opslaan mislukt + Veel servers accepteren geen versleutelde bestanden op gratis accounts. Probeer opnieuw zonder versleuteling. + Versleutelde upload mislukt + Uploadfout: %1$s + Uploaden van media mislukt + Uploaden naar %1$s mislukt: %2$s + Toevoegen aan favorieten + Wordt geladen via het open web. + Wordt geladen via Tor. + Recent + Verwijderen uit favorieten + Die app is nog niet geladen. Probeer het over een moment opnieuw. + Favoriete apps + Favoriete feed-algoritmes + Een betaling gedaan + Gepubliceerd naar relays + Een bestand geüpload + Favoriete relay-feeds + Relays die je regelmatig bezoekt om hun globale feed te bekijken + Communities + Feed-algoritmes + Feeds + Hashtags + Interest-sets + Lijsten + Locaties + Relays + Bestandsserver + Kies een server om dit bestand naar te uploaden + Verbergt identieke berichten van onbekenden die 5 keer of vaker voorkomen + Spamfilter + Volgen + Terugvolgen + Alle favoriete feed-algoritmes + In de buurt + Gecureerd + Globaal + Standaard volglijst + Iedereen + Volg alle gebruikers + Van mij + Gedempte lijst + Nieuw volgpakket + Volglijst bewerken + Volgpakketten zijn vaak gepubliceerde startlijsten voor nieuwe gebruikers en zichtbaar voor iedereen op Nostr. + Volgpakket-metadata + Volgpakketten + Nieuwe volglijst + Lijst bewerken + Galerijstijl + Kies de stijl van de profielgalerij + Klassiek + Modern + Alleen locatie-exclusief bericht + Alleen volgers van de locatie zien dit bericht. + %1$s gefinancierd van %2$s sats doel + u + De afbeelding is gewijzigd. De auteur heeft de wijziging mogelijk niet gezien. + Wat betekent dit? + De afbeelding is ongewijzigd sinds publicatie + Hallo %1$s, is dit nog beschikbaar? + Verborgen woorden + Verwijdert berichten uit community-feeds wanneer de community een NIP-9B regelsdocument publiceert en een event daartegen zou falen. Heeft geen effect wanneer een community geen gestructureerde regels heeft. + Berichten verbergen die community-regels schenden + Wachtwoord verbergen + Uploaden %1$s (%2$d van %3$d) + Alles + Ongeldig verzoek + Niet geautoriseerd + Betaling vereist + Verboden + Niet gevonden + Methode niet toegestaan + Niet acceptabel + Proxy-authenticatie vereist + Verzoek time-out + Conflict + Verdwenen + Lengte vereist + Voorwaarde mislukt + Payload te groot + URI te lang + Niet-ondersteund mediaformaat + Bereik niet voldaan + Verwachting mislukt + Upgrade vereist + Interne serverfout + Niet geïmplementeerd + Slechte gateway + Dienst niet beschikbaar + Gateway time-out + HTTP-versie niet ondersteund + Variant verhandelt ook + Onvoldoende opslagruimte + Loop gedetecteerd + Netwerk-authenticatie vereist + Illegaal gedrag + Afbeelding opgeslagen in galerij + Impersonatie + Inbox-relays + Onjuist invoice-bedrag (%1$s sats) van %2$s. Het had %3$s moeten zijn. + Indexeer-relays + Relays die metadata en relay-lijsten hosten, zoals purplepag.es. Amethyst gebruikt deze om gebruikers te vinden die niet in je lijsten staan. + Nieuwe interest-set + Hernoemen + Hashtag-sets + Ongeldige sleutel + Ongeldige sleutel: %1$s + Ongeldig adres + Amethyst ontving een ongeldige URI: %1$s + Het is niet mogelijk om een concept te citeren + Het is niet mogelijk om op een concept te reageren + Het is niet mogelijk om op een concept te reageren + Het is niet mogelijk om een concept te zappen + Sleutel is verplicht + KeyPackage-relays + Relays waar je MLS KeyPackages worden gepubliceerd (MIP-00). Andere gebruikers halen deze KeyPackages op om je uit te nodigen voor Marmot-groepchats. Voeg 1–3 relays toe die KeyPackage-events van jou accepteren en openbare leestoegang toestaan. + KeyPackages + Geaccepteerde badge-set + Avontuur-proloog + Avontuur-lezing + Avontuur-scène + App-aanbevelingen + Afspraak + Apps + Afspraak-RSVP + Audio-header + Audiospoor + Gemaakt podcasts + Badge-awards + Badge-definities + Blob-gegevens + Blob-headers + Geblokkeerde relays + Blogs + Blossom-auth + Blossom-servers + Bladwijzerlijst + Uitzend-relays + Kalender + Kanaaldefinitie + Kanaalbericht verbergen + Kanaallijst + Kanaalbericht + Kanaal-metadata + Gebruiker dempen in kanaal + Schaak-auth + Schaakuitdagingen + Schaak-remiseaanbod + Schaakspel accepteren + Einde schaakspel + Schaakspellen + Schaakzet + Verkoopadvertenties + Reacties + Community-definitie + Community-lijst + Community-bericht + Contactkaart + Dagafspraak + Verwijderingen + DM-bestand + DM-bericht + DM-relays + Concepten + DVM-inhoudsverzoek + DVM-inhoudsantwoord + DVM-status + DVM-gebruikersverzoek + DVM-gebruikersantwoord + Bewerkingen + Emoji-pakketlijst + Emoji-pakketten + Tijdelijke chat + Tijdelijke chatrooms + Favoriete podcasts + Favoriete relays + Bestandsheaders + Bestandsservers + Volglijst + Volgpakketten + Geohash-volgers + GiftWraps + Git-issue + Git-patch + Git-reactie + Git-repo + Hashtag-volgers + Highlights + HTTP-auth + Index-relaylijst + Live chats + Livestreams + Medische gegevens + Vergaderruimte + Vergaderruimte + Afspeellijst + Muziekstuk + Gedempte lijst + Genamde bladwijzers + Nests-servers + NIP + NIP-04 DM's + NNS + Nostr Connect + Notities + NWC-verzoek + NWC-antwoord + Oude bladwijzerlijst + OTS + Outbox-relays + PayTo + Gebruikerslijsten + Afbeeldingen + Pins + Podcast-aflevering + Podcast-show + Poll + Poll-antwoord + Privé-relays + Privé-zaps + Profiel + Profielbadges + Profielgalerij + Proxy-relays + Openbaar bericht + Reacties + Relay-auth + Relay-ontdekking + Relay-monitor aankondiging + Relay-set + Rapportages + Reposts + Reposts (16) + Kamer-aanwezigheid + Seals + Zoek-relays + Shorts + Shorts (Repl) + Torrent-reacties + Torrents + Vertrouwde providers + Vertrouwde relays + Gebruikersverwijdering + Gebruikersinstellingen + Gebruikersstatus + Video + Video (Repl) + Spraakbericht + Spraakreactie + WakeUp + Web-bladwijzer + Wiki + Workouts + Zap-doelen + Zap-poll + Zap-verzoek + Zaps + Bekend + Taalweergavevoorkeuren + Kies voor elk taalpaar welke taal je als eerste wilt zien. + Laatst gezien %1$s geleden + Laatst gezien zojuist + Nooit gezien + Laatst gezien op %1$s (%2$s geleden) + Verlaten + Licht + Livestreams + Lokale relays + Relays die op dit apparaat draaien. + Je gebruikt een alleen-lezen account. Log in met een privésleutel om berichten te boosten. + Je gebruikt een alleen-lezen account. Log in met een privésleutel om te volgen. + Je gebruikt een alleen-lezen account. Log in met een privésleutel om woorden of zinnen te verbergen. + Je gebruikt een alleen-lezen account. Log in met een privésleutel om te kunnen reageren. + Je gebruikt een alleen-lezen account. Log in met een privésleutel om zaps te versturen. + Je gebruikt een alleen-lezen account. Log in met een privésleutel om woorden of zinnen te tonen. + Je gebruikt een alleen-lezen account. Log in met een privésleutel om berichten te ondertekenen. + Je gebruikt een alleen-lezen account. Log in met een privésleutel om te ontvolgen. + Je gebruikt een alleen-lezen account. Log in met een privésleutel om te uploaden. + Je gebruikt een alleen-lezen account. Log in met een privésleutel om berichten te liken. + Video's + m + Mijn emoji-pakketten + %1$s toevoegen… + Beheerdersbevoegdheden verleend + Beheerdersbevoegdheden ingetrokken + %1$s toevoegen mislukt: %2$s + Aanmaken van groep mislukt: %1$s + Verlenen van beheerder mislukt: %1$s + Verlaten van groep mislukt: %1$s + Verwijderen van lid mislukt: %1$s + Intrekken van beheerder mislukt: %1$s + Bijwerken mislukt: %1$s + Marmot Group + Groepsinfo bijgewerkt + + %1$d lid + %1$d leden + + Lid verwijderd + + %1$d bericht + %1$d berichten + + Geen lid van deze groep + onbekende fout + Media toegevoegd + Media toegevoegd aan je profielgalerij + Media download gestart… + Mediaservers + Media is te groot voor NIP-95 + Voeg eerst een bestemming toe + Kan niet uploaden + Onderwerp + Metadata verwijderen mislukt + Verwijderen van privé-metadata mislukt. Upload geannuleerd. + Bladwijzers succesvol gemigreerd + Ontbrekende Lightning-configuratie + Meer opties + Verplaatsen naar privé + Verplaatsen naar publiek + Een omslagafbeelding uploaden + Kies een vierkante afbeelding als artwork voor deze afspeellijst. + + +%1$d meer nummer + +%1$d meer nummers + + + %1$d nummer + %1$d nummers + + + %1$d nummer + %1$d nummers + + Omslag uploaden en publiceren. Dit gaat door, ook als u het scherm verlaat. + Een audiobestand uploaden + Kies een MP3, WAV of FLAC. Het wordt bij Opslaan geüpload naar uw mediaserver. + Een omslagafbeelding uploaden + Kies een vierkante afbeelding als artwork voor dit nummer. + Omslag + audio uploaden en publiceren. Dit gaat door, ook als u het scherm verlaat. + Geluid aan. Tik voor dempen + Gedempt. Tik voor geluid + Mijn lijsten + Naam is verplicht + %1$d ms + Namecoin-instellingen + Identiteit + Uw publieke sleutel lezen + Berichten + Berichten uitwisselen met andere napplets + Toetsenbordacties + Sneltoetsen instellen + Meldingen + U meldingen tonen + Relays + Uw events lezen, ondertekenen & publiceren + Netwerk + Web- en Blossom-bronnen ophalen + Opslag + Eigen privéopslag + Thema + De kleuren van uw app overnemen + Uploads + Bestanden uploaden naar uw mediaserver + Betalingen + Lightning-facturen betalen + Deze nApplet wil uw publieke sleutel lezen. + Deze nApplet wil uw profiel- en accountgegevens lezen. + Deze nApplet wil u meldingen tonen. + + Deze nApplet wil een Lightning-factuur van %1$d sat betalen. + Deze nApplet wil een Lightning-factuur van %1$d sats betalen. + + Deze nApplet wil als u een kind:%1$d event ondertekenen en publiceren. + Deze nApplet wil als u een versleuteld event verzenden. + Deze nApplet wil als u een kind:%1$d event ondertekenen en publiceren: + Deze nApplet wil events van uw relays lezen. + Deze nApplet wil een webbron ophalen. + Deze site wil een kind:%1$d event ondertekenen met uw Nostr-sleutel. + Deze nApplet wil gebruikmaken van zijn privéopslag. + Deze nApplet wil een bestand uploaden naar uw mediaserver. + nApplet %1$s… + nApplets + Kon bericht niet versturen + Deze spreker dempen + Deze spreker herstellen + Verlaten + Kon ruimte niet als gesloten markeren. Toch verlaten — ruimte sluit automatisch. + + %1$d luisteraar + %1$d luisteraars + + Hand laten zakken + Microfoon dempen + Microfoon aan + Dempen + Kon je nest-serverlijst niet opslaan. Probeer het opnieuw. + Nest — Live + Nests + Houdt audio afspelen terwijl een ruimte open is. + Nest verbonden + Stoppen + Tik om terug te keren. + Volgen + Dempen + Ontvolgen + Dempen opheffen + heeft de nest verlaten + is toegetreden als publiek + is het podium op gegaan + heeft hand opgestoken + is aan het woord + Hand opsteken + Dempen opheffen + Nests + Opgeslagen als kind-10112 vervangbaar event zodat andere clients je voorkeur kunnen lezen. + Jouw servers + Ingebouwde suggesties die je met één tik aan je lijst kunt toevoegen. + Aanbevolen servers + Nest-servers + nooit + Nieuwe badge + Nieuwe agenda + Nieuw agenda-evenement + Nieuwe community + Moderators + Relays + Geblokkeerde gebruikers + Community-reactie (1111) + Lang artikel (30023) + Afbeelding (20) + Korte tekst (1) + Short video (22) + Video (21) + Toegestane event-kinds + Globale max. event-grootte (optioneel) + Verifieerbare regels (optioneel) + Web-of-trust-poort (optioneel) + Nieuw emoji-pakket + Nieuw doel + Nieuw artikel + Nieuwe afspeellijst + Nieuw muziekstuk + Nieuw product + Nieuwe verzoeken + Nieuwe discussies + Nieuwe workout + + %1$d asset gebundeld + %1$d assets gebundeld + + Geen Blossom-app gevonden. Installeer een lokale Blossom-app om dit bestand te bekijken. + Kan Blossom-link niet openen + Geen camera-app gevonden op dit apparaat + Geen Lightning-adres ingesteld + Geen app gevonden om deze betaling te verwerken. Installeer een compatibele wallet. + Geen app geïnstalleerd om %1$s-betalingen te verwerken. Installeer een compatibele wallet. + Geen reactietypes ingesteld. Houd ingedrukt om te wijzigen. + Geen reacties ingesteld + Geen wallet gevonden om Lightning-invoice te betalen. Installeer een Lightning-wallet om zaps te kunnen gebruiken. + Geen wallet gevonden om Lightning-invoice te betalen (fout: %1$s). Installeer een Lightning-wallet om zaps te kunnen gebruiken. + Geen zap-bedrag ingesteld. Houd ingedrukt om te wijzigen. + Meldingen + Categorieën + Bezorging + In-app weergave + nu + Nowhere-kunst + Nowhere-drop + Nowhere-evenement + Nowhere-forum + Nowhere-donatieactie + Nowhere-site + Nowhere-bericht + Nowhere-petitie + Nowhere-winkel + nSites + Naaktheid + Kan eventverwijzing niet aanmaken + Geen ontvanger-pubkey op de notitie + Nutzaps zijn openbaar en zouden deze privénotitie onthullen. Gebruik in plaats daarvan een Lightning-zap. + Nutzap mislukt + + Verstuur %1$s sats, %2$d-weg + Verstuur %1$s sats, %2$d-wegen + + Bitcoin chain-backend is niet geconfigureerd + Kon de transactie niet uitzenden + Kon de transactie niet bouwen + Kon je Bitcoin-saldo niet laden + Betaling verstuurd, maar het zap-ontvangstbewijs kon niet worden gepubliceerd + + Betaling verstuurd (%1$d van %2$d ontvangstbewijs gepubliceerd), maar het volgende ontvangstbewijs kon niet worden gepubliceerd + Betaling verstuurd (%1$d van %2$d ontvangstbewijzen gepubliceerd), maar het volgende ontvangstbewijs kon niet worden gepubliceerd + + Een aandeel van een ontvanger is onder dust + Kon de transactie niet ondertekenen + ~10 min + ~30 min + ~1 uur + Snel + Normaal + Langzaam + %1$s · %2$s sat/vB · %3$s + + Splits onder %1$d ontvanger + Splits onder %1$d ontvangers + + + %1$d Lightning-adres-alleen-ontvanger overgeslagen — on-chain heeft een Nostr-pubkey nodig om het adres af te leiden. + %1$d Lightning-adres-alleen-ontvangers overgeslagen — on-chain heeft een Nostr-pubkey nodig om het adres af te leiden. + + + Gebruik de %1$d-weg zap-split van dit bericht + Gebruik de %1$d-weg zap-split van dit bericht + + uitzenden + transactie bouwen + saldo laden + ontvangstbewijs publiceren + ondertekenen + Bij dit type poll is slechts één stem per gebruiker toegestaan. + Alle reacties op dit bericht openen + Open + Orbot Socks-poort + Bitcoin Explorer (OTS) + Er is cryptografisch bewijs dat dit bericht vóór %1$s is ondertekend. Dit bewijs is vastgelegd in de Bitcoin-blockchain. + Bewijs van tijdstempel + Outbox-relays + Wachtwoord is verplicht + Pauzeren + Betalen + Bericht van %1$s + Betalingsdoelen + Voeg betalingsadressen toe voor verschillende netwerken (bijv. Bitcoin, Lightning, Ethereum). + PDF opgeslagen in Downloads/Amethyst + Volglijst-metadata is zichtbaar voor iedereen op Nostr. Alleen privéleden zijn versleuteld. + Volglijst-metadata + Afbeeldingen + Vastzetten bovenaan + Vastmaken aan profiel + Afspelen + + %1$d aflevering + %1$d afleveringen + + Poll-auteurs kunnen niet stemmen in hun eigen poll. + (0–100)% + Deze poll is gesloten voor nieuwe stemmen + Meerdere keuzes + Optie %1$s + Enkele keuze + Kan niet stemmen + Polls + Plaatsen + + Dit bericht bevat meer dan %1$d hashtag + Dit bericht bevat meer dan %1$d hashtags + + Preview-afbeelding voor %1$s + Privacyopties + Privacybeleid + <Kan privébericht niet ontsleutelen>\n\nJe werd genoemd in een privégesprek tussen %1$s en %2$s. + DM-inbox relays + Voeg 1 tot 3 relays toe als je privé-inbox. Anderen gebruiken deze om DM's naar je te sturen. + Gebruiker ontvangt DM's via deze relays + Privébericht + Privé maken: gift-wrap de notitie alleen voor de genoemde gebruikers + Reacties op een privénotitie blijven altijd privé + Zichtbaar voor + Privé-relays + Relays voor privé-gegevens zoals concepten en app-instellingen. Idealiter lokaal of met authenticatie. + Godslastering / haatspraak + Profiel + Profielbadges + App-aanbevelingen + Profielbadges + Volgers-feed + Ontvangen zaps-feed + Profiel-weergave + profielen + Bewerking voorstellen + Proxy-relays + Aggregator-relays zoals filter.nostr.wine. Dit vervangt het outbox-model en zorgt dat Amethyst alleen met relays uit je lijsten verbindt. + Publieke chat + Publieke chats zijn zichtbaar voor iedereen op Nostr. Iedereen kan deelnemen. Moderatie gebeurt door berichten te verwijderen op de relays. + Voeg 1–3 relays toe die deze groep hosten. Nostr-clients gebruiken deze om berichten te downloaden en te versturen. + Relays + Publieke chat-metadata + Publieke chats + Openbare thuis-relays + Deze relays slaan al je berichten op. Amethyst stuurt je berichten hiernaartoe en anderen gebruiken ze om je te vinden. Voeg 1 tot 3 relays toe. + Gebruiker plaatst hier zijn berichten + Openbaar bericht + Openbare inbox-relays + Deze relays ontvangen reacties, likes en zaps op je berichten. Voeg 1 tot 3 relays toe. + Gebruiker ontvangt meldingen via deze relays + Note-ID + Verwijderen + Discussie dempen + Delen + Browserlink delen + Discussie dempen opheffen + Reactie + Reacties + Reactierij + Lezen van relay + Aantal bytes ontvangen van deze relay (filters + events) + Alleen-lezen gebruiker + Druk en houd vast om een spraakbericht op te nemen + Relay-chat + Relay-chats zijn groepen die beheerd worden door een relay. Ze zijn zichtbaar voor iedereen op Nostr en iedereen kan deelnemen. Geschikt voor open communities rond een onderwerp. Sommige groepen zijn tijdelijk, waardoor berichten na verloop van tijd verdwijnen. + Relay-chats + Berichten + IP-adressen + Kinds + Gebruikers + Instellingen + Relay-instellingen + outbox-lijsten + Relays + Aanvullen & zap versturen + Zap versturen + Vul %1$s sats aan bij %2$s en zap %3$s %4$s sats · kosten ≈ %5$s sats + Verwijderen + Verwijderen uit publieke bladwijzers + hier reageren… + Melden: + Blokkeer & verberg gebruiker + Verwijdering aanvragen + Verzoek tot verdwijnen + Marmot-status resetten mislukt: %1$s + Marmot-status resetten + Marmot-status gereset. + Opnieuw proberen + Agendaoverzichten + Agenda's + Schaken + Ontdekken + Start + Volgers importeren + Berichten + Afspeellijsten + Muziek + Meldingen + Afleveringen + Podcasts + Bericht inplannen + Inplannen annuleren + Geplande berichten worden mogelijk pas gepubliceerd als je de app opnieuw opent. Geplande berichten van andere accounts worden niet uitgevoerd terwijl dit account actief is. Schakel altijd-aan in via Instellingen → Weergavevoorkeuren voor betrouwbare achtergrondplanning. + Geplande berichten worden mogelijk pas gepubliceerd als je de app opnieuw opent. Schakel altijd-aan in via Instellingen → Weergavevoorkeuren voor betrouwbare achtergrondplanning. + Geplande berichten + Nu versturen + %1$s · over %2$s + %1$s · %2$s geleden + Morgen + Fout: %1$s + Note-ID gekopieerd + + Uitgelogd · %1$d gepland bericht verwijderd + Uitgelogd · %1$d geplande berichten verwijderd + + Uitgelogd + + Je hebt %1$d gepland bericht dat nog niet is gepubliceerd. Uitloggen verwijdert dit permanent. + Je hebt %1$d geplande berichten die nog niet zijn gepubliceerd. Uitloggen verwijdert ze permanent. + + Gepland bericht mislukt + Gepland bericht gepubliceerd + + naar %1$d relay + naar %1$d relays + + Geannuleerd + Mislukt + Ingepland + Verzenden… + Verzonden + + · %1$d moet over 1u + · %1$d moeten over 1u + + + %1$d in wachtrij + %1$d in wachtrij + + Goede opties zijn:\n%1$s + Zoek-relays + Zoek-relays + Relays die gebruikt worden voor zoeken en taggen. Moeten NIP-50 ondersteunen. + doorzoekbare berichten + Privésleutel (nsec) gekopieerd naar klembord + Je hebt nog geen gebruikers geblokkeerd. + Beveiligingsfilters + Geen verborgen woorden. Voeg hieronder een woord toe om berichten met dat woord te verbergen. + Geblokkeerde inhoud + Filtervoorkeuren + Geen accounts zijn in deze sessie als spam gemarkeerd. + Verzenden + Stuur alle ontvangen profielgebeurtenissen (kind 0) door naar je lokale relay + Profielen doorsturen naar lokale relay + Besteedbaar voor deze ontvanger: %1$s sats + Betaling mislukt + Transactie: %1$s + Betalen via %1$s… + Server gaf geen URL terug na upload + Instellingen + Geen gedempte discussies + Gedempte discussies + Delen als afbeelding + Delen als afbeeldings-URL + HLS-upload + Delen of opslaan + Shorts + Toon versleutelde QR-code van privésleutel + Directe berichten en groepsberichten opnemen in het tabblad Meldingen. Uitschakelen om berichten alleen in het tabblad Berichten te houden. + Berichten tonen + Toon QR-code van privésleutel + Ondertekenverzoek afgewezen + Zorg dat de signer-app dit verzoek heeft goedgekeurd. + Externe signer heeft een onjuiste payload geretourneerd voor dit verzoek. Er kan een bug zitten in Amethyst of in de signer. + Signer niet gevonden + Is de signer-app verwijderd? Controleer of de signer geïnstalleerd is en dit account ondersteunt. Log opnieuw in. + %1$d seconden terug + %1$d seconden vooruit + Apps + Spam + Aantal spamberichten afkomstig van deze relay + Spammers + Toon twee meldings-tabbladen — Volgend (mensen die je volgt) en Iedereen. De ongelezen-indicator licht alleen op voor activiteit van mensen die je volgt. + Meldingen splitsen per gevolgden + Probeert privé-metadata te verwijderen uit ondersteunde mediabestanden vóór het uploaden + Privé-metadata verwijderen + Leest voltooide workouts uit Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) en stelt voor om ze als bericht te delen. Toestemming wordt alleen gevraagd wanneer je verbindt. + Workouts voorstellen om te delen + Systeem + Thema + Donker, licht of systeemthema + Dit bericht verdwijnt over %1$s + + +%1$d\nreactie + +%1$d\nreacties + + Vandaag + Aangepast + Maak je eigen configuratie + Standaard + Verberg je IP voor willekeurige relays + Orbot + Volledige privacy + Verberg je IP bij alle verbindingen + Intern + Uit + Tor/Privacy-voorinstellingen + Snel alle onderstaande instellingen aanpassen + Alles behalve media + Verberg je IP voor alles behalve afbeeldingen en video's + DM-relays + Forceer Tor voor verzenden en ontvangen van privéberichten + Afbeeldingen + Forceer Tor bij laden van afbeeldingen + Media-uploads + Forceer Tor bij uploaden van media + Geldtransacties + Forceer Tor voor zaps, lightning en cashu + Onvertrouwde relays + Forceer Tor voor outbox/inbox-relays + Nostr-adresverificatie + Forceer Tor bij NIP-05 verificatie + Onion-URL's / relays + Gebruik Tor voor elke .onion-URL + Profielfoto's + Forceer Tor bij laden profielfoto's + Vertrouwde relays + Forceer Tor voor alle relays in je lijsten + URL-voorbeelden + Forceer Tor bij laden van URL-voorbeelden + Video's + Forceer Tor bij laden van video's + Basis + Gebruik Tor alleen wanneer vereist door de server + Kon bestand niet openen + Geen torrent-apps geïnstalleerd om dit bestand te openen en te downloaden. + Bericht bevat onvoldoende informatie om een magnet-link te maken. + Gebruik de tracked broadcaster bij het verzenden van events. Toont live voortgang en per-relay-status tijdens uitzenden. + Getrackte uitzendingen + Vertaal naar + Kies de taal waarnaar de inhoud vertaald moet worden. + Vertalingen + Vertrouwde relays + Relays waarvoor je geen Tor wilt gebruiken + Volledig + Prestaties + Vereenvoudigd + Weergavevoorkeuren + Weergavestijl + Kies de stijl van berichten + Kon geen Lightning-invoice aanmaken voor het versturen van de zap. De wallet van de ontvanger gaf de volgende fout: %1$s + Kan afbeelding niet delen. Probeer het later opnieuw. + Kan video niet delen. Probeer het later opnieuw. + Ongeautoriseerde decodering + De signer heeft decodering niet toegestaan. Schakel NIP-44-decodering in in je signer-app en probeer het opnieuw. + Ontvolgen + Losmaken + Losmaken van profiel + Upload geannuleerd + Uploadfout + Spraakbericht uploaden mislukt: %1$s + Spraakbericht uploaden mislukt + NIP-95 wordt nog niet ondersteund voor spraakberichten + %1$d%% uptime + Interne Tor-engine gebruiken + Gebruik de ingebouwde versie van Orbot + Deze gebruiker heeft geen Lightning-adres ingesteld om sats te ontvangen + Gebruiker %1$s heeft geen Lightning-adres ingesteld om sats te ontvangen + Verdwijn-geschiedenis + Verzoek tot verdwijnen verstuurd + Betere kwaliteit in kleinere bestanden, maar niet alle apparaten ondersteunen H.265 afspelen. + H.265/HEVC-codec gebruiken + Video download gestart… + Videospeler-knoppen + Video opgeslagen in galerij + Spraakbericht + Diep + Hoog + Neutraal + Geen + Spraakreactie + Wallet + Cashu-portemonnee (NIP-60) + Wallet Connect + Je wallet-connect provider gaf de volgende fout: %1$s + Mints bewerken + Toont waarschuwing wanneer een bericht 5 of meer rapportages van je volgers heeft + Waarschuwen bij rapportages + Web-bladwijzer toevoegen + Web-bladwijzer bewerken + Web-bladwijzers + Waar denk je aan? + Trainingen + Schrijf een bericht… + Schrijven naar relay + Aantal bytes verstuurd naar deze relay (filters + events) + Zap + Zaps + Blokkeer en verberg gebruiker + Hernoemen + Opslaan diff --git a/commonsUI/src/commonMain/composeResources/values-nl-rNL/strings.xml b/commonsUI/src/commonMain/composeResources/values-nl-rNL/strings.xml index c4220a113a..76284b0233 100644 --- a/commonsUI/src/commonMain/composeResources/values-nl-rNL/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-nl-rNL/strings.xml @@ -2597,4 +2597,2045 @@ Avatar-URL (optioneel) Publiceren… Persona publiceren + Over & Juridisch + Blauw + Groen + Oranje + Roze + Paars + Rood + Accountinstellingen + + %1$d filter + %1$d filters + + + %1$d groep + %1$d groepen + + + %1$d relay + %1$d relays + + abonnementen filters relays verzoeken reqs verbindingen waarom diagnostiek + %1$d%% van alles + Actieve relay-abonnementen + + %1$d filter is nog niet toegewezen + %1$d filters zijn nog niet toegewezen + + Toevoegen + Blossom-server toevoegen + NIP-96-server toevoegen + Wanneer ingeschakeld voegt Amethyst een NIP-89 client-tag toe aan events die je publiceert. + Client-tag toevoegen aan mijn events + Voegt een waarschuwing toe voordat de inhoud wordt getoond + Gevoelige inhoud + Aan Berichten toevoegen + Toevoegen aan publieke bladwijzers + Gebruikt een on-device AI-model om tekstcorrecties en toonwijzigingen voor te stellen. + Tekstverbeteringen voorstellen + Houdt verbindingen met je inbox-relays actief voor realtime meldingen + + Verbonden met %1$d inbox-relay + Verbonden met %1$d inbox-relays + + + Verbonden met %1$d relay + Verbonden met %1$d relays + + Verbinden met inbox-relays… + Uit + Aan + Amethyst-meldingen actief + Je bent toegevoegd aan %1$s + Brengt je op de hoogte wanneer iemand je vermeldt of highlight in een artikel + %1$s heeft je vermeld in een artikel + %1$s heeft je artikel gehighlight + Artikelen & Highlights + Nieuwe artikelen + Brengt je op de hoogte wanneer je een badge verdient + Je hebt een badge verdiend + Toegekend door %1$s + Badges + Nieuwe badges + Meldingen voor inkomende spraak- en video-oproepen + Inkomende oproepen + %1$s heeft je schaakuitdaging geaccepteerd + Meldingen over schaakgebeurtenissen + Schaken + Schaakupdates + %1$s heeft een zet gedaan – jouw beurt + Brengt je op de hoogte over issues, patches en pull requests + %1$s heeft een issue geopend + %1$s heeft een patch gestuurd + %1$s heeft een pull request geopend + %1$s heeft een pull request bijgewerkt + Code & Git + Nieuwe code-activiteit + Melding bij nieuw privébericht + Privéberichten + Nieuwe berichten + Inhoud + Ontwikkelaar + Games + Berichten + Betalingen + Sociaal + Markeer als gelezen + Ik + Brengt je op de hoogte wanneer iemand je vermeldt in een foto of video + %1$s heeft een foto gedeeld + %1$s heeft een video gedeeld + Media + Nieuwe media + Melding wanneer iemand je vermeldt of citeert in een bericht + %1$s heeft je vermeld + Vermeldingen + Nieuwe vermeldingen + Nieuw bericht + Nutzap van %1$s + On-chain-zap van %1$s + Brengt je op de hoogte wanneer je verbonden wallet een betaling ontvangt die geen Nostr-zap is + %1$s sats ontvangen + Ontvangen betalingen + Nieuwe betalingen + %1$s heeft een vraag gesteld + Melding wanneer iemand reageert op je bericht + %1$s reageerde op je bericht + voor %1$s + Reacties + Nieuwe reacties + Melding wanneer iemand op je bericht reageert + Reacties + Nieuwe reacties + Beantwoorden + Brengt je op de hoogte wanneer iemand je bericht repost + %1$s heeft je bericht gerepost + Reposts + Nieuwe reposts + Meldingen wanneer een gepland bericht is gepubliceerd of mislukt. + Geplande berichten + Melding wanneer iemand je zapt + %1$s sats + voor %1$s + Van %1$s + Ontvangen zaps + Nieuwe zaps + App-instellingen + Attestatie + Attestatieverzoek + Attestor-vaardigheid + Attestor-aanbeveling + + Toch %1$d persoon toevoegen + Toch %1$d mensen toevoegen + + + %1$d persoon toevoegen + %1$d mensen toevoegen + + Al toegevoegd + Gedempt + Privélid + Alleen jij \u2014 kies wie dit nog meer kan zien + Voeg mensen toe die een melding krijgen + + Dat zou %1$d persoon zijn. Amethyst voegt er maximaal %2$d tegelijk toe \u2014 deselecteer er een paar. + Dat zouden %1$d mensen zijn. Amethyst voegt er maximaal %2$d tegelijk toe \u2014 deselecteer er een paar. + + Privé verzenden + + Deze note wordt %1$d keer apart versleuteld en afgeleverd, één keer per persoon. Met een externe signer is dat elke keer een aparte goedkeuring. + Deze note wordt %1$d keer apart versleuteld en afgeleverd, één keer per persoon. Met een externe signer is dat elke keer een aparte goedkeuring. + + + %1$d persoon krijgt een melding van deze post. + %1$d mensen krijgen een melding van deze post. + + + %1$s, %2$s en %3$d andere + %1$s, %2$s en %3$d anderen + + Audio-visualisatie + Slaat automatisch een concept op wanneer je typt of de opsteller verlaat met onverzonden tekst en stuurt dit naar je privé outbox-relays. + Automatisch concepten aanmaken + Volledig scrollen + Navigatiebalken verbergen tijdens scrollen + Afbeeldingen laden + Afbeeldingen en gif's automatisch laden + Video's automatisch afspelen + Video's en gif's automatisch afspelen + Profielfoto + Profielfoto's tonen + URL-voorbeeld + URL-voorbeelden automatisch tonen + Video's automatisch afspelen + Video's automatisch afspelen wanneer zichtbaar op het scherm + Kan metadata niet verwijderen uit AVIF: %1$s + Badge toekennen + Terug + Back-up sleutels + Badges + Biometrische authenticatie mislukt + Biometrie kon de eigenaar van dit toestel niet verifiëren. + Biometrie kon de eigenaar niet verifiëren. Fout: %1$s + Alleen blokkeren + Geblokkeerde relays + Amethyst zal nooit verbinding maken met deze relays. + Geblokkeerde gebruikers + Er loopt al een bestandssynchronisatie. Probeer opnieuw te importeren zodra deze klaar is. + Alles uitschakelen + Alles inschakelen + + %1$d bestand + %1$d bestanden + + + %1$d bestand gevonden om naar je servers te importeren. + %1$d bestanden gevonden om naar je servers te importeren. + + + %1$d bestand importeren + %1$d bestanden importeren + + Niet op alle servers + Op alle servers + + %1$d sat betalen + %1$d sats betalen + + Deze server vereist betaling om te uploaden: %1$s + Annuleren + Toont de voortgang tijdens het kopiëren van je bestanden tussen je Blossom-servers. + Blossom-synchronisatie + Je bestanden kopiëren tussen servers… + BOLT12-offers + Voeg een of meer BOLT12-offers toe (lno1…). Ze worden openbaar gedeeld zodat iedereen je kan betalen. + BOLT12-betaling mislukt: %1$s + BOLT12-betaling verzonden + BOLT12-zap-fout + Betaald via BOLT12, maar het betaalbewijs kon niet worden gevalideerd, dus er is geen zap-bewijs gepubliceerd. + Betaald via BOLT12, maar de wallet gaf geen bewijs terug, dus er is geen zap-bewijs gepubliceerd. + Nieuwe bladwijzerlijst + Bladwijzerlijst-metadata + Bladwijzerlijst-metadata is zichtbaar voor iedereen op Nostr. Alleen privéleden zijn versleuteld. + Bladwijzers + Boost + Apps & web + Chats & groepen + Feeds + Algemeen + Overig + Jij + Onderste navigatiebalk + Toevoegen + Toegevoegd + Nog geen favorieten. Markeer een app in de Browser met een ster om hem hier toe te voegen. + Nog geen groepen waaraan je deelneemt. + Uitzend-relays + Relays die gespecialiseerd zijn in het doorsturen van je notes naar andere relays, zoals sendit.nosflare.com. Amethyst voegt deze automatisch toe aan nieuwe berichten. + Browser + Favorieten + Web-apps ontdekken + Laden via het open web. Tik om Tor te gebruiken. + Laden via Tor. Tik om het open web te gebruiken. + Kanaal archiveren + Nieuw kanaal + Kanaal verwijderen + "%1$s" verwijderen? Dit verwijdert het kanaal en de berichten ervan voor iedereen, en kan niet ongedaan worden gemaakt. + Privékanaal + Verborgen uit de kanaallijst en alleen op uitnodiging. Uit betekent dat iedereen op deze relay het kan vinden en eraan kan deelnemen. + Kanaal dearchiveren + + %1$d verborgen gesprek + %1$d verborgen gesprekken + + + %1$d gesprek meer bekijken + Alle %1$d gesprekken bekijken + + Bewerken + Nieuw forum + Kanaal vastzetten + %1$s en %2$s zijn aan het typen… + Kanaal losmaken + Goedgekeurd + Geannuleerd + Geweigerd + Mislukt + Vereist goedkeuring + In wachtrij + Opgeleverd + Bezig + + %1$s, %2$d evenement + %1$s, %2$d evenementen + + Afbeelding uploaden mislukt + De gekozen afbeelding kon niet worden geüpload. Probeer opnieuw of plak een URL. + Agenda-evenement delen + Openen in kaarten + Link openen + Nu aan de gang + %1$s · eindigt %2$s + + Begint over %1$d minuut + Begint over %1$d minuten + + Melding wanneer een evenement waar je naartoe gaat bijna begint. + calendar_reminders + Agenda-herinneringen + Agenda-evenement + Een melding verschijnt wanneer een evenement waar je naartoe gaat bijna begint. + Herinneringen versturen + + %1$d min + %1$d min + + Agenda-herinneringen + Dag + Feed + Maand + Week + Accepteren + Bluetooth + Camera uit + Camera aan + Oortelefoon + Ophangen + Inkomende oproep + Inkomende video-oproep… + Inkomende spraakoproep… + Dempen + Lopende oproep + Lopende oproep + Amethyst heeft toegang tot camera en microfoon nodig om een video-oproep te starten. Schakel dit in bij de app-instellingen. + Amethyst heeft toegang tot de microfoon nodig om een spraakoproep te starten. Schakel dit in bij de app-instellingen. + Weigeren + Gespreksinstellingen + Luidspreker + Dempen opheffen + Bellen met %1$s + Callback-URL niet gevonden in het antwoord van %1$s. + Annuleren + Cashu-token + Mint controleren… + Cashu-inwisselen mislukt + Mint geeft de volgende foutmelding: %1$s + Ontvangen + Verzonden + Overeenkomende mints + + +%1$d meer + +%1$d meer + + Populaire mints + + Aanbevolen door %1$d andere + Aanbevolen door %1$d anderen + + %1$s sat verplaatst naar %2$s. + Geen compatibele Cashu-wallet gevonden + + %1$d openstaande invoice + %1$d openstaande invoices + + %1$s sat betalen + tot %2$s sat aan kosten? + Publiceer een verwijderverzoek voor je kind:38000-aanbeveling van %1$s. Relays die NIP-09 respecteren zullen deze verwijderen. + %1$s sats hersteld over %2$s proofs. + Cashu ontvangen + %1$s sats zijn naar je wallet gestuurd (kosten: %2$s sats). + Onveilig Cashu-mint-adres + Amethyst heeft de mint van dit token niet gecontacteerd. %1$s + + Fondsen bewaard bij %1$d mint die je niet gebruikt + Fondsen bewaard bij %1$d mints die je niet gebruikt + + Wachten tot de invoice betaald is… + + %1$d mint + %1$d mints + + Casten stoppen + Casten naar apparaat + Geaccepteerd door minstens één relay + Bezorgd aan de relays van alle ontvangers + Geen relay-informatie voor dit bericht + Wachten tot een relay dit bericht accepteert + + %1$d reactie + %1$d reacties + + In chat + In discussie + Versleutelde communities met meerdere kanalen (Concord). + Concord-communities + Lichtgewicht, relaygebonden ruimtes die geen geschiedenis bewaren. + Vluchtige chats + Publieke geohash-gebonden chat voor een plek (geolocatie). + Locatiechats + MLS eind-tot-eind versleutelde groepschats (Marmot). + Versleutelde groepen + Oudere, minder private versleutelde directe berichten (NIP-04). + Verouderde DM's + Eind-tot-eind versleutelde, gift-wrapped directe berichten (NIP-17). + Privéberichten + Open, publieke chatruimtes die iedereen kan lezen en waaraan iedereen kan deelnemen (NIP-28). + Publieke kanalen + Relaybeheerde groepschats met ledenlijsten en moderatie (NIP-29). + Relay-groepen + Normen voor kinderveiligheid + Accessoires + Kunst + Boeken + Kleding + Verzamelobjecten + Ambachten + Elektronica + Fitness + Eten + Meubels + Huis & tuin + Overig + Kantoor + Anders + Huisdieren + Sport + Dagelijks + Maandelijks + Eenmalig + Wekelijks + Betaal %1$s via %2$s? + Betaal deze invoice via %1$s? + De debit-service heeft de betaling niet voltooid. + Voer een geldig bedrag in voor dit aanbod. + Invoice aanvragen… + Alle reacties sluiten + Gesloten + Communities + Concept is %1$d bytes; deze community beperkt dit kind tot %2$d bytes. + Concept is %1$d bytes; deze community beperkt events tot %2$d bytes. + Je hebt vandaag al %1$d events van dit kind geplaatst (limiet %2$d). + Opstel-instellingen + + %1$d kanaal + %1$d kanalen + + Nieuw kanaal + Kanaal verwijderen + Verwijderen + #%1$s verwijderen? Dit kan niet ongedaan worden gemaakt en het kanaal kan niet opnieuw met dezelfde id worden aangemaakt. + Kanaal verwijderen? + Kanaalnaam + Nog geen berichten + Kanaal hernoemen + Hernoemen + Nog geen kanalen. + Aanmaken + Relays + Relays die de versleutelde berichten van deze community opslaan. Laat leeg om je eigen te gebruiken. + Nieuw Concord-kanaal + Community bewerken + Bericht bewerken + Concord-kanalen + Mensen uitnodigen + Kon deze uitnodiging niet ophalen. De link is mogelijk verlopen of de relays zijn onbereikbaar. + Deze community heeft je verwijderd. De link werkt nog, maar de ledenlijst laat je niet toe. + Deze uitnodigingslink is verlopen en kan niet meer worden gebruikt. Vraag om een nieuwe link. + Deze uitnodigingslink kan niet worden geopend. Hij is mogelijk verouderd of al vervangen door een nieuwere, of gemaakt met een nieuwere versie van de app. Vraag om een nieuwe uitnodigingslink. + Deze uitnodigingslink is ongeldig of kan niet met dit account worden geopend. + Deze uitnodigingslink is ingetrokken en kan niet meer worden gebruikt. Vraag om een nieuwe. + Uitnodigingslinks… + Uitnodigingslinks + De link kon niet ingetrokken worden. Controleer je verbinding en probeer het opnieuw. + Uitnodigingslink ingetrokken. + Uitnodigingslink + Community verlaten + %1$s verlaten? Het wordt verwijderd uit de lijst van dit account en stopt met synchroniseren op je apparaten. De community wordt niet op de hoogte gebracht en je wordt niet uit de ledenlijst verwijderd. Berichten die je niet meer kunt ontsleutelen zijn mogelijk onherstelbaar, en je kunt alleen terugkeren met een nieuwe uitnodiging. + Je hebt deze community aangemaakt. Verlaten verwijdert hem niet en draagt hem niet over aan iemand anders, maar het verwijdert de eigenaarssleutel die in je lijst is opgeslagen — je zou hem daarna niet meer kunnen beheren. + Community verlaten? + Admin maken + + %1$d lid + %1$d leden + + Verbannen + Admin maken + Admin verwijderen + Kon de rollen van dit lid niet bijwerken. + Rollen toewijzen + Leden + Ban opheffen + Admin verwijderen + Afbeelding verzenden + Concord + Meerdere mensen zijn aan het typen… + %1$s is aan het typen… + %1$s en %2$s zijn aan het typen… + + %1$d nieuw bericht + %1$d nieuwe berichten + + Standaardpoort is 9050 + Verbonden relays + Momenteel verbonden relays + Percentage succesvolle verbindingen met deze relay + Altijd + Nooit + Alleen onbeperkt wifi + Wi-Fi + Document toevoegen + Afbeelding toevoegen + Media toevoegen + Video toevoegen + Verbergen + Waarschuwen + Tonen + Discussies + Converteert geanimeerde GIF naar MP4-video voor kleinere bestandsgrootte en betere afspeelcompatibiliteit. + GIF converteren naar MP4 + Note-ID (@note1…) gekopieerd naar klembord + Note-tekst gekopieerd naar klembord + Gekopieerd naar klembord + Gebruikers-ID (@npub…) gekopieerd naar klembord + Mijn privésleutel kopiëren + Kopiëren naar klembord + Kon LNURL niet samenstellen vanuit Lightning-adres "%1$s". Controleer de instellingen van de gebruiker. + Kon gedownload bestand niet controleren na upload: %1$s + Kon geüploade media niet downloaden van server + Kon invoice niet ophalen van %1$s: %2$s + Kon gecomprimeerd bestand niet openen + Geen wallet gevonden + Amethyst kon geen wallet-apps vinden die Nostr Wallet Connect (NWC) ondersteunen.\n\nWat je kunt doen:\n1. Controleer of je wallet NWC ondersteunt.\n2. Maak in je wallet een nieuwe NWC-verbinding aan.\n3. Kopieer de verbinding-URI of scan de QR-code hier. + Aanmaken + d + Gevarenzone + Donker + Omschrijving + Publiek maken + Chats + Communities + Feed-algoritmes + Volgpakketten + Livestreams + Marktplaats + Lezen + DM-inbox relays + + Gemeld door %1$d persoon die je volgt + Gemeld door %1$d personen die je volgt + + DM's + Niet vertalen van + Talen die hier staan worden niet vertaald. Tik op een taal om deze te verwijderen en weer te laten vertalen. + Opslaan op telefoon + Video downloaden voor delen… + Conceptnote + Concepten + Accounts + Aanmaken + Feeds + Navigeren + Systeem + Jij + Zijmenu + Altijd aan + Verborgen + + %1$d verborgen + %1$d verborgen + + Zichtbaar + + %1$d dag + %1$d dagen + + + %1$d uur + %1$d uur + + + %1$d minuut + %1$d minuten + + + %1$d maand + %1$d maanden + + + %1$d week + %1$d weken + + + %1$d jaar + %1$d jaar + + Agenda bewerken + Agenda-evenement bewerken + Community bewerken + Emoji-pakket bewerken + Bewerken + Afspeellijst bewerken + Bericht bewerken + Privé-emoji's worden versleuteld opgeslagen op relays en zijn alleen zichtbaar voor jou. Ze verschijnen in je reactiemenu en ":" autocomplete net als openbare emoji's. + Openbare emoji's zijn zichtbaar voor iedereen en verschijnen in je reactiemenu en ":" autocomplete-picker wanneer dit pakket in je emoji-lijst staat. + Emoji's + Versleutel bestanden voordat ze worden geüpload. Sommige servers accepteren geen versleutelde bestanden op gratis accounts. + Bestanden versleutelen + Tijdelijke chat + Fout + Invoice kon niet betaald worden + Opname mislukt + Kan betaling niet openen + Kan zap niet versturen + Fout bij openen signer-app + De signer-app kon niet worden gevonden. Controleer of deze nog geïnstalleerd is. + Fout bij verwerken foutmelding + Fout bij verwerken JSON van %1$s. Controleer de Lightning-instellingen van de gebruiker. + Kon invoice niet ophalen van de server van de ontvanger + Openen in browser + Deze video kan niet worden afgespeeld + De codec of het formaat wordt niet ondersteund op dit apparaat (%1$s). Probeer het in je browser te openen. + Fouten + Relay-synchronisatie + berichten van jou + berichten aan jou + AMRAP + Circuit + Fietsen + Dieet + EMOM + Vasten + Wandeltocht + Meditatie + Roeien + Hardlopen + Krachttraining + Zwemmen + Wandelen + Yoga + Uitklappen + Vervaldatum + De auteur heeft relays gevraagd deze note na %1$s te verwijderen. Hij verdwijnt uit feeds zodra hij verloopt. + Relay-instellingen exporteren + Media verwijderen mislukt: %1$s + Versleutelen van privésleutel mislukt + Afbeelding opslaan mislukt + PDF opslaan mislukt + Video opslaan mislukt + Veel servers accepteren geen versleutelde bestanden op gratis accounts. Probeer opnieuw zonder versleuteling. + Versleutelde upload mislukt + Uploadfout: %1$s + Uploaden van media mislukt + Uploaden naar %1$s mislukt: %2$s + Toevoegen aan favorieten + Wordt geladen via het open web. + Wordt geladen via Tor. + Recent + Verwijderen uit favorieten + Die app is nog niet geladen. Probeer het over een moment opnieuw. + Favoriete apps + Favoriete feed-algoritmes + Een betaling gedaan + Gepubliceerd naar relays + Een bestand geüpload + Favoriete relay-feeds + Relays die je regelmatig bezoekt om hun globale feed te bekijken + Communities + Feed-algoritmes + Feeds + Hashtags + Interest-sets + Lijsten + Locaties + Relays + Bestandsserver + Kies een server om dit bestand naar te uploaden + Verbergt identieke berichten van onbekenden die 5 keer of vaker voorkomen + Spamfilter + Volgen + Terugvolgen + Deze locatie volgen + Alle favoriete feed-algoritmes + In de buurt + Gecureerd + Globaal + Standaard volglijst + Iedereen + Volg alle gebruikers + Van mij + Dempingslijst + Teleporteer naar een plek… + Nieuw volgpakket + Volglijst bewerken + Volgpakketten zijn vaak gepubliceerde startlijsten voor nieuwe gebruikers en zichtbaar voor iedereen op Nostr. + Volgpakket-metadata + Volgpakketten + Nieuwe volglijst + Lijst bewerken + Lettertype + Lettertype gebruikt in de hele app + Monospace + Mono + Schreefloos + Sans + Met schreef + Serif + Systeemstandaard + System + Tekstgrootte + Schaal de tekstgrootte in de hele app + Zeer groot + Groot + Normaal + Klein + Galerijstijl + Kies de stijl van de profielgalerij + Klassiek + Modern + Locatiechat + Alleen locatie-exclusief bericht + Alleen volgers van de locatie zien dit bericht. + + %1$d item + %1$d items + + Git-repositories + Filter sluiten + Repositories filteren + %1$s gefinancierd van %2$s sats doel + u + De afbeelding is gewijzigd. De auteur heeft de wijziging mogelijk niet gezien. + Wat betekent dit? + De afbeelding is ongewijzigd sinds publicatie + Hallo %1$s, is dit nog beschikbaar? + Verborgen woorden + Verwijdert berichten uit community-feeds wanneer de community een NIP-9B regelsdocument publiceert en een event daartegen zou falen. Heeft geen effect wanneer een community geen gestructureerde regels heeft. + Berichten verbergen die community-regels schenden + Wachtwoord verbergen + Highlights + Uploaden %1$s (%2$d van %3$d) + Artikelen + Attestaties + Vogelwaarnemingen + Schaakpartijen + Advertenties + Opmerkingen & reacties + Vluchtige chats + Inzamelingsacties + Highlights + Interactieve verhalen + Live-activiteiten + Muziek & audio + NIP-concepten + Afbeeldingen + Podcasts + Polls + Reposts + Shorts + Tekst-notes + Torrents + Video's + Spraakberichten + Wikipagina's + Alles + Ongeldig verzoek + Niet geautoriseerd + Betaling vereist + Verboden + Niet gevonden + Methode niet toegestaan + Niet acceptabel + Proxy-authenticatie vereist + Verzoek time-out + Conflict + Verdwenen + Lengte vereist + Voorwaarde mislukt + Payload te groot + URI te lang + Niet-ondersteund mediaformaat + Aan bereik kan niet worden voldaan + Verwachting mislukt + Upgrade vereist + Interne serverfout + Niet geïmplementeerd + Slechte gateway + Dienst niet beschikbaar + Gateway time-out + HTTP-versie niet ondersteund + Variant onderhandelt ook + Onvoldoende opslagruimte + Loop gedetecteerd + Netwerk-authenticatie vereist + Illegaal gedrag + Afbeelding opgeslagen in de galerij + Impersonatie + Inbox-relays + Onjuist invoice-bedrag (%1$s sats) van %2$s. Het had %3$s moeten zijn. + Indexeer-relays + Relays die metadata en relay-lijsten hosten, zoals purplepag.es. Amethyst gebruikt deze om gebruikers te vinden die niet in je lijsten staan. + Nieuwe interest-set + Hernoemen + Hashtag-sets + Ongeldige sleutel + Ongeldige sleutel: %1$s + Ongeldig adres + Amethyst ontving een ongeldige URI: %1$s + Het is niet mogelijk om een concept te citeren + Het is niet mogelijk om op een concept te reageren + Het is niet mogelijk om op een concept te reageren + Het is niet mogelijk om een concept te zappen + Sleutel is verplicht + KeyPackage-relays + Relays waar je MLS KeyPackages worden gepubliceerd (MIP-00). Andere gebruikers halen deze KeyPackages op om je uit te nodigen voor Marmot-groepchats. Voeg 1–3 relays toe die KeyPackage-events van jou accepteren en openbare leestoegang toestaan. + KeyPackages + Geaccepteerde badge-set + Avontuur-proloog + Avontuur-lezing + Avontuur-scène + App-aanbevelingen + Afspraak + Apps + Afspraak-RSVP + Audio-header + Audiospoor + Gemaakte podcasts + Badge-awards + Badge-definities + Blob-gegevens + Blob-headers + Geblokkeerde relays + Blogs + Blossom-auth + Blossom-servers + Bladwijzerlijst + Uitzend-relays + Kalender + Kanaaldefinitie + Kanaalbericht verbergen + Kanaallijst + Kanaalbericht + Kanaal-metadata + Gebruiker dempen in kanaal + Schaak-auth + Schaakuitdagingen + Schaak-remiseaanbod + Schaakspel accepteren + Einde schaakspel + Schaakspellen + Schaakzet + Verkoopadvertenties + Reacties + Community-definitie + Community-lijst + Community-bericht + Contactkaart + Dagafspraak + Verwijderingen + DM-bestand + DM-bericht + DM-relays + Concepten + DVM-inhoudsverzoek + DVM-inhoudsantwoord + DVM-status + DVM-gebruikersverzoek + DVM-gebruikersantwoord + Bewerkingen + Emoji-pakketlijst + Emoji-pakketten + Tijdelijke chat + Tijdelijke chatrooms + Favoriete podcasts + Favoriete relays + Bestandsheaders + Bestandsservers + Volglijst + Volgpakketten + Gevolgde geohashes + GiftWraps + Git-issue + Git-patch + Pull request + PR Update + Git-reactie + Git-repo + Gevolgde hashtags + Highlights + HTTP-auth + Index-relaylijst + Live chats + Livestreams + Medische gegevens + Vergaderruimte + Vergaderruimte + Afspeellijst + Muziekstuk + Dempingslijst + Benoemde bladwijzers + Nests-servers + NIP + NIP-04 DM's + NNS + Nostr Connect + Notes + NWC-verzoek + NWC-antwoord + Oude bladwijzerlijst + OTS + Outbox-relays + PayTo + Gebruikerslijsten + Afbeeldingen + Pins + Podcast-aflevering + Podcast-show + Poll + Poll-antwoord + Privé-relays + Privé-zaps + Profiel + Profielbadges + Profielgalerij + Proxy-relays + Openbaar bericht + Reacties + Relay-auth + Relay-ontdekking + Relay-monitoraankondiging + Relay-set + Rapportages + Reposts + Reposts (16) + Kamer-aanwezigheid + Seals + Zoek-relays + Shorts + Shorts (Repl) + Torrent-reacties + Torrents + Vertrouwde providers + Vertrouwde relays + Gebruikersverwijdering + Gebruikersinstellingen + Gebruikersstatus + Video + Video (Repl) + Spraakbericht + Spraakreactie + WakeUp + Web-bladwijzer + Wiki + Workouts + Zap-doelen + Zap-poll + Zap-verzoek + Zaps + Bekend + Taalweergavevoorkeuren + Kies voor elk taalpaar welke taal je als eerste wilt zien. + Laatst gezien %1$s geleden + Laatst gezien zojuist + Nooit gezien + Laatst gezien op %1$s (%2$s geleden) + Verlaten + Licht + Livestreams + Lokale relays + Relays die op dit apparaat draaien. + Plek op de kaart wijzigen + Locatiekanalen + Kies een plek op de kaart + Je gebruikt een alleen-lezen account. Log in met een privésleutel om berichten te boosten. + Je gebruikt een alleen-lezen account. Log in met een privésleutel om te volgen. + Je gebruikt een alleen-lezen account. Log in met een privésleutel om woorden of zinnen te verbergen. + Je gebruikt een alleen-lezen account. Log in met een privésleutel om te kunnen reageren. + Je gebruikt een alleen-lezen account. Log in met een privésleutel om zaps te versturen. + Je gebruikt een alleen-lezen account. Log in met een privésleutel om woorden of zinnen te tonen. + Je gebruikt een alleen-lezen account. Log in met een privésleutel om berichten te ondertekenen. + Je gebruikt een alleen-lezen account. Log in met een privésleutel om te ontvolgen. + Je gebruikt een alleen-lezen account. Log in met een privésleutel om te uploaden. + Je gebruikt een alleen-lezen account. Log in met een privésleutel om berichten te liken. + Video's + m + Mijn emoji-pakketten + Foto toevoegen + %1$s toevoegen… + Beheerdersbevoegdheden verleend + Beheerdersbevoegdheden ingetrokken + Foto wijzigen + %1$s toevoegen mislukt: %2$s + Aanmaken van groep mislukt: %1$s + Verlenen van beheerder mislukt: %1$s + Verlaten van groep mislukt: %1$s + Verwijderen van lid mislukt: %1$s + Intrekken van beheerder mislukt: %1$s + Bijwerken mislukt: %1$s + MLS-groep + Groepsinfo bijgewerkt + + %1$d lid + %1$d leden + + Lid verwijderd + + %1$d bericht + %1$d berichten + + Geen lid van deze groep + onbekende fout + Media toegevoegd + Media toegevoegd aan je profielgalerij + Mediadownload gestart… + Offline + Online + Traag + Mediaservers + Media is te groot voor NIP-95 + Voeg eerst een bestemming toe + Kan niet uploaden + Onderwerp + Berichten + Metadata verwijderen mislukt + Verwijderen van privé-metadata mislukt. Upload geannuleerd. + Bladwijzers succesvol gemigreerd + Ontbrekende Lightning-configuratie + Meer opties + Verplaatsen naar privé + Verplaatsen naar publiek + Omslag uploaden + Kies een vierkante afbeelding als artwork voor deze afspeellijst. + + +%1$d meer nummer + +%1$d meer nummers + + + %1$d nummer + %1$d nummers + + + %1$d nummer + %1$d nummers + + Omslag uploaden en publiceren. Dit gaat door, ook als je het scherm verlaat. + Audio uploaden + Kies een MP3, WAV of FLAC. Het wordt bij Opslaan geüpload naar je mediaserver. + Omslag uploaden + Kies een vierkante afbeelding als artwork voor dit nummer. + Omslag + audio uploaden en publiceren. Dit gaat door, ook als je het scherm verlaat. + Geluid aan. Tik voor dempen + Meldingen dempen + Gedempt. Tik voor geluid + Mijn Blossom-bestanden + Mijn lijsten + Naam is verplicht + %1$d ms + Namecoin-instellingen + Identiteit + Je publieke sleutel lezen + Berichten + Berichten uitwisselen met andere napplets + Toetsenbordacties + Sneltoetsen instellen + Meldingen + Je meldingen tonen + Relays + Je events lezen, ondertekenen & publiceren + Netwerk + Web- en Blossom-bronnen ophalen + Opslag + Eigen privéopslag + Thema + De kleuren van je app overnemen + Uploads + Bestanden uploaden naar je mediaserver + Betalingen + Lightning-facturen betalen + apps machtigingen signer napplet nsite webapp vertrouwen verbonden + + volgt %1$d nieuw account + volgt %1$d nieuwe accounts + + ⚠ Dit volgt %1$s. + + ONTVOLGT %1$d account + ONTVOLGT %1$d accounts + + ⚠ Dit herschrijft je volglijst: %1$s. + %1$s en %2$s + + dempt %1$d persoon meer + dempt %1$d personen meer + + ⚠ Dit dempt %1$s. + + ONTDEMPT %1$d persoon + ONTDEMPT %1$d personen + + ⚠ Dit herschrijft je demplijst: %1$s. Gedempte woorden en hashtags worden hier niet getoond — tik op “Show Event” voor de volledige lijst. + + ⚠ Dit schrijft een lijst van %1$d item. Amethyst heeft geen gecachte kopie om mee te vergelijken. + ⚠ Dit schrijft een lijst van %1$d items. Amethyst heeft geen gecachte kopie om mee te vergelijken. + + Dit publiceert je bestaande lijst ongewijzigd opnieuw. + + voegt %1$d relay toe + voegt %1$d relays toe + + + VERWIJDERT %1$d relay + VERWIJDERT %1$d relays + + ⚠ Dit herschrijft je relaylijst: %1$s. Je berichten en leesacties verhuizen mee. + ⚠ Dit ONTVOLGT %1$s. + ⚠ Dit ONTDEMPT %1$s. + + ⚠ Dit vraagt om verwijdering van %1$d van je events. + ⚠ Dit vraagt om verwijdering van %1$d van je events. + + + Bevat %1$d tag. Tik op “Show Event” om precies te zien wat er zou worden ondertekend. + Bevat %1$d tags. Tik op “Show Event” om precies te zien wat er zou worden ondertekend. + + Deze nApplet wil je publieke sleutel lezen. + Deze nApplet wil je profiel- en accountgegevens lezen. + Deze nApplet wil je meldingen tonen. + + Deze nApplet wil een Lightning-invoice van %1$d sat betalen. + Deze nApplet wil een Lightning-invoice van %1$d sats betalen. + + ⚠ Deze nApplet wil een Lightning-invoice betalen die GEEN bedrag opgeeft — de ontvanger bepaalt hoeveel er wordt afgeschreven. Sta dit alleen toe als je het vertrouwt. + Deze nApplet wil namens jou een kind:%1$d event ondertekenen en publiceren. + Deze nApplet wil namens jou een versleuteld event verzenden. + Deze nApplet wil namens jou een kind:%1$d event ondertekenen en publiceren: + Deze nApplet wil events van je relays lezen. + Deze nApplet wil een webbron ophalen. + Deze site wil een kind:%1$d event ondertekenen met je Nostr-sleutel. + Deze nApplet wil gebruikmaken van zijn privéopslag. + Deze nApplet wil een bestand uploaden naar je mediaserver. + nApplet %1$s… + je privéberichten lezen + je privéberichten met %1$s lezen + een bericht versleutelen + ondertekenen voor %1$s (kind: %2$d) + Verbonden apps + nApplets + Kon bericht niet versturen + Deze spreker dempen + Deze spreker herstellen + Verlaten + Kon ruimte niet als gesloten markeren. Toch verlaten — ruimte sluit automatisch. + + %1$d luisteraar + %1$d luisteraars + + Hand laten zakken + Microfoon dempen + Microfoon aan + Dempen + Kon je nest-serverlijst niet opslaan. Probeer het opnieuw. + Nest — Live + Nests + Houdt audio afspelen terwijl een ruimte open is. + Nest verbonden + Stoppen + Tik om terug te keren. + Volgen + Dempen + Ontvolgen + Dempen opheffen + heeft de nest verlaten + is toegetreden als publiek + is het podium opgegaan + heeft hand opgestoken + is aan het woord + Hand opsteken + Dempen opheffen + Nests + Opgeslagen als kind-10112 vervangbaar event zodat andere clients je voorkeur kunnen lezen. + Jouw servers + Ingebouwde suggesties die je met één tik aan je lijst kunt toevoegen. + Aanbevolen servers + Nest-servers + nooit + Nieuwe badge + Nieuwe agenda + Nieuw agenda-evenement + Nieuwe community + Moderators + Relays + Geblokkeerde gebruikers + Community-reactie (1111) + Lang artikel (30023) + Afbeelding (20) + Korte tekst (1) + Korte video (22) + Video (21) + Toegestane event-kinds + Globale max. event-grootte (optioneel) + Verifieerbare regels (optioneel) + Web-of-trust-poort (optioneel) + Enorme communities, georganiseerd per kanaal of werkstroom. + Workspaces + Meer om in te stellen + Community aanmaken + Schaalt naar enorme communities + Opgesplitst per kanaal / werkstroom + Communities opgesplitst per kanaal + Concord-community + Eén-op-één en kleine groepschats met mensen die je kent. + 1:1–5 ruimtes + Kan later geen gebruikers toevoegen + Nieuw bericht + 1-op-1 & kleine groepen + Eind-tot-eind versleuteld + Directe berichten, eind-tot-eind versleuteld + Privébericht + In-het-moment-chat met wie er nu online is. + Nu live + Geen geschiedenis + Relaygebonden + Chat starten + Praat met wie er nu online is + Er wordt niets bewaard + Wie er nu ook online is + Verdwijnende chat + Het best om te praten met mensen fysiek rond een locatie — je buurt, stad of regio. + Lokaal + Openbaar en vluchtig — geen geschiedenis, iedereen in de cel kan het lezen. + Kies een locatie + Anoniem — een wegwerpidentiteit per gebied, nooit je npub. + Bitchat-compatibel; bereikt gebruikers in de buurt op dezelfde relays. + Chat met wie er in de buurt van een plek is, via geohash. + Locatiekanaal + Grotere privégroepen die kleine-groep-DM's ontgroeien. + Apparaatgebonden + Apparaatgebonden — verschijnt niet als je elders inlogt + Groep aanmaken + Schaalt voorbij kleine DM's + Versleutelde groepschat + Grotere privégroepen + Marmot-groep + Open publieke ruimtes waar iedereen kan posten. + Niet-gemodereerd + Alleen openbaar + Geen moderatie + Publieke chat aanmaken + Iedereen kan deelnemen + Eenvoudig & vindbaar + Openbare berichten op een relay + Publieke chat + Groepen die worden gemodereerd door de relay die ze host. + Gemodereerd + Gebonden aan die ene relay + Relay-groepen doorbladeren + Gemodereerd door de relay + Openbaar of privé + Relaybeheerd, openbaar of privé + Relay-groep + Privé + Versleutelde groepen + Relaybewust + Nieuw emoji-pakket + Nieuw doel + Voeg je gedachten toe… + Nieuwe Highlight + Nieuw artikel + Nieuwe afspeellijst + Nieuw muziekstuk + Nieuw product + Nieuwe verzoeken + Nieuwe discussies + Nieuwe training + Altijd toestaan voor %1$s + Offline + Verbonden + + %1$d relay + %1$d relays + + Alles selecteren + Niets selecteren + + %1$d ondertekenverzoek + %1$d ondertekenverzoeken + + Verbinding geweigerd + Kon niet verbinden: %1$s + Geen geldige nostrconnect://-link + Die link bevat geen relay om verbinding mee te maken + + %1$d verbonden app + %1$d verbonden apps + + %1$s verbonden. Amethyst ondertekent nu op de achtergrond voor deze app. + App verbonden. Amethyst ondertekent nu op de achtergrond voor deze app. + Bunker-adres gekopieerd + Amethyst kon dit bericht niet ontsleutelen. Het is mogelijk niet aan dit account gericht. + Schermvullende meldingen die je vragen een app goed te keuren die wil dat Amethyst ondertekent, versleutelt of ontsleutelt met jouw sleutel. + Ondertekenverzoeken + Een app wil verbinden + Ondertekenverzoek goedkeuren? + Tik om te beoordelen + Dit is een alleen-lezen account en kan niet ondertekenen. + Opnieuw verbinden met relays… + Nieuw bunker-adres gegenereerd + + Luistert op %1$d relay + Luistert op %1$d relays, allemaal verbonden + + Remote signer-app + Remote Signer + + %1$d asset gebundeld + %1$d assets gebundeld + + Geen Blossom-app gevonden. Installeer een lokale Blossom-app om dit bestand te bekijken. + Kan Blossom-link niet openen + Geen camera-app gevonden op dit apparaat + Geen Lightning-adres ingesteld + Geen app gevonden om deze betaling te verwerken. Installeer een compatibele wallet. + Geen app geïnstalleerd om %1$s-betalingen te verwerken. Installeer een compatibele wallet. + Geen reactietypes ingesteld. Houd ingedrukt om te wijzigen. + Geen reacties ingesteld + Geen wallet gevonden om Lightning-invoice te betalen. Installeer een Lightning-wallet om zaps te kunnen gebruiken. + Geen wallet gevonden om Lightning-invoice te betalen (fout: %1$s). Installeer een Lightning-wallet om zaps te kunnen gebruiken. + Geen zap-bedrag ingesteld. Houd ingedrukt om te wijzigen. + Accounts die op de achtergrond actief zijn + Hoofdschakelaar voor realtime achtergrondmeldingen. Zet uit om batterij te sparen — net als een vliegtuigmodus. Wanneer uit, blijft geen enkel account op de achtergrond verbonden, en het blijft uit (ook na herstart) totdat je het weer aanzet. + Achtergrondmeldingsservice + Meldingen + Categorieën + Bezorging + In-app weergave + Meldingen aan. Tik om de melding voor deze gebruiker te dempen + Gedempt. Tik om deze gebruiker weer te melden + nu + Nowhere-kunst + Nowhere-drop + Nowhere-evenement + Nowhere-forum + Nowhere-donatieactie + Nowhere-site + Nowhere-bericht + Nowhere-petitie + Nowhere-winkel + nStites + Naaktheid + Kan eventverwijzing niet aanmaken + Geen ontvanger-pubkey op de note + Nutzaps zijn openbaar en zouden deze privénote onthullen. Gebruik in plaats daarvan een Lightning-zap. + Nutzap mislukt + + Verstuur %1$s sats, %2$d-voudige split + Verstuur %1$s sats, %2$d-voudige split + + Bitcoin chain-backend is niet geconfigureerd + Kon de transactie niet uitzenden + Kon de transactie niet bouwen + Kon je Bitcoin-saldo niet laden + Betaling verstuurd, maar het zap-ontvangstbewijs kon niet worden gepubliceerd + + Betaling verstuurd (%1$d van %2$d ontvangstbewijs gepubliceerd), maar het volgende ontvangstbewijs kon niet worden gepubliceerd + Betaling verstuurd (%1$d van %2$d ontvangstbewijzen gepubliceerd), maar het volgende ontvangstbewijs kon niet worden gepubliceerd + + Een aandeel van een ontvanger is onder dust + Kon de transactie niet ondertekenen + ~10 min + ~30 min + ~1 uur + Snel + Normaal + Langzaam + %1$s · %2$s zat/vB · %3$s + + Splits onder %1$d ontvanger + Splits onder %1$d ontvangers + + + %1$d ontvanger met alleen een Lightning-adres overgeslagen — on-chain heeft een Nostr-pubkey nodig om het adres af te leiden. + %1$d ontvangers met alleen een Lightning-adres overgeslagen — on-chain heeft een Nostr-pubkey nodig om het adres af te leiden. + + + Gebruik de %1$d-voudige zap-split van dit bericht + Gebruik de %1$d-voudige zap-split van dit bericht + + uitzenden + transactie bouwen + saldo laden + ontvangstbewijs publiceren + ondertekenen + Bij dit type poll is slechts één stem per gebruiker toegestaan. + Alle reacties op dit bericht openen + Open + Orbot Socks-poort + Bitcoin Explorer (OTS) + Er is cryptografisch bewijs dat dit bericht vóór %1$s is ondertekend. Dit bewijs is vastgelegd in de Bitcoin-blockchain. + Er is een tijdstempelbewijs voor dit bericht aangevraagd en het wacht om in de Bitcoin-blockchain te worden gestempeld. Dit is meestal binnen een paar uur voltooid. + Bewijs van tijdstempel + Outbox-relays + Wachtwoord is verplicht + Pauzeren + Betalen + Bericht van %1$s + Betalingsdoelen + Voeg betalingsadressen toe voor verschillende netwerken (bijv. Bitcoin, Lightning, Ethereum). + PDF opgeslagen in Downloads/Amethyst + Volglijst-metadata is zichtbaar voor iedereen op Nostr. Alleen privéleden zijn versleuteld. + Volglijst-metadata + Afbeeldingen + Vastzetten bovenaan + Vastmaken aan profiel + Afspelen + + %1$d hoofdstuk + %1$d hoofdstukken + + Cover toevoegen + Vierkante afbeelding getoond voor de aflevering + Aflevering bewerken + Je podcast + Audio toevoegen + MP3, M4A of andere audio + Hoofdstukken-URL + + %1$d aflevering + %1$d afleveringen + + Transcript-URL + Video-URL + Nieuwe aflevering + Nieuwe trailer + Publiceren… + Auteur + Categorieën + Technologie, Nieuws + Copyright + Cover toevoegen + Vierkante artwork voor je show + Contact-e-mail + Financieringslinks + https://… + Taal + nl + Titel van de show + Mijn podcast + Website + + %1$d trailer + %1$d trailers + + Trailer toevoegen + Kort audio- of videovoorbeeld + Value-for-Value-fout + Verbind een Nostr Wallet Connect-wallet om naar keysend-(node)-ontvangers te sturen. + Deze podcast heeft geen value-ontvangers om aan te betalen. + Verbind een Nostr Wallet Connect- of debit-wallet om sats te streamen tijdens het luisteren. + Deze gebruiker heeft geen Lightning-adres + Poll-auteurs kunnen niet stemmen in hun eigen poll. + (0–100)% + Deze poll is gesloten voor nieuwe stemmen + Meerdere keuzes + Optie %1$s + + %1$d stem is gedateerd vóór de poll werd gepubliceerd en telt niet mee. + %1$d stemmen zijn gedateerd vóór de poll werd gepubliceerd en tellen niet mee. + + + %1$d stemmer is verborgen door je dempingslijst. + %1$d stemmers zijn verborgen door je dempingslijst. + + + %1$d reactie koos geen geldige optie en telt niet mee. + %1$d reacties kozen geen geldige optie en tellen niet mee. + + + %1$d stem kwam binnen nadat de poll gesloten was en telt niet mee. + %1$d stemmen kwamen binnen nadat de poll gesloten was en tellen niet mee. + + + %1$d stemmer + %1$d stemmers + + %1$d van %2$d reacties geladen van %3$d relays. + %1$d van ongeveer %2$d reacties geladen van %3$d relays. + + · %1$d selectie + · %1$d selecties + + + %1$d stem › + %1$d stemmen › + + Enkele keuze + Kan niet stemmen + Polls + Plaatsen + + Dit bericht bevat meer dan %1$d hashtag + Dit bericht bevat meer dan %1$d hashtags + + Opmerkingen + Reacties op artikelen, bestanden en andere inhoud + Privéberichtomhulsels + Laat DM-relays inbox-spam filteren; alleen het buitenste omhulsel wordt gemijnd, nooit je bericht + Lange vorm & highlights + Artikelen en highlights; zelden, kost is verwaarloosbaar + Overige openbare inhoud + Polls, live-statussen, advertenties en al het andere openbare + Publieke & live chat + Mining-vertragingen verstoren het gespreksverloop + Reacties + Hoogste volume; elke like minen kost batterij + Meldingen + Relays wegen meldingen af op hun kost + Reposts + Hoog volume voor actieve gebruikers + Korte notes & reacties + Het primaire openbare spamoppervlak + Spraakberichten + Openbare spraakberichten en reacties + + %1$d dag + %1$d dagen + + + %1$d uur + %1$d uur + + <1 s + + %1$d minuut + %1$d minuten + + + %1$d seconde + %1$d seconden + + De auteur besteedde rekenkracht om deze note te minen tot moeilijkheidsgraad %1$s — een proof-of-work-stempel dat spammen duur maakt. + Chatbericht + Melding + + %1$s • minen op %2$d bit + %1$s • minen op %2$d bits + + + Proof of work minen… (%1$d post in wachtrij) + Proof of work minen… (%1$d posts in wachtrij) + + Proof of work minen + Annuleren + Toont berichten die hun NIP-13-proof-of-work nog aan het mijnen zijn, zodat ze kunnen afronden nadat je de app verlaat. + Proof-of-work-minen + Nu verzenden + + %1$d bit + %1$d bits + + + Standaard (%1$d bit) + Standaard (%1$d bits) + + Je %1$s is klaar met mijnen maar kon niet worden gepubliceerd: %2$s + Je %1$s is klaar met mijnen maar kon niet worden gepubliceerd. Het wordt opnieuw geprobeerd de volgende keer dat de app start. + + %1$s • wacht om te minen op %2$d bit + %1$s • wacht om te minen op %2$d bits + + Proof of Work + ≈ %1$s resterend + elk moment nu + Preview-afbeelding voor %1$s + Privacyopties + Privacybeleid + <Kan privébericht niet ontsleutelen>\n\nJe werd genoemd in een privégesprek tussen %1$s en %2$s. + DM-inbox relays + Voeg 1 tot 3 relays toe als je privé-inbox. Anderen gebruiken deze om DM's naar je te sturen. + Gebruiker ontvangt DM's via deze relays + Privébericht + Privé maken: gift-wrap de note alleen voor de genoemde gebruikers + Reacties op een privénote blijven altijd privé + Zichtbaar voor + Privé-relays + Relays voor privé-gegevens zoals concepten en app-instellingen. Idealiter lokaal of met authenticatie. + Deze note is privé bezorgd en is niet ondertekend. Alleen de getagde deelnemers kunnen hem zien, en niemand kan aan buitenstaanders bewijzen wie hem heeft geschreven. + Privé-note + Godslastering / haatspraak + Profiel + Profielbadges + App-aanbevelingen + Profielbadges + Volgers-feed + Bitcoin (on-chain) wallet + Ontvangen zaps-feed + Profiel-weergave + profielen + Bewerking voorstellen + Proxy-relays + Aggregator-relays zoals filter.nostr.wine. Dit vervangt het outbox-model en zorgt dat Amethyst alleen met relays uit je lijsten verbindt. + Publieke chat + Publieke chats zijn zichtbaar voor iedereen op Nostr. Iedereen kan deelnemen. Moderatie gebeurt door berichten te verwijderen op de relays. + Voeg 1–3 relays toe die deze groep hosten. Nostr-clients gebruiken deze om berichten te downloaden en te versturen. + Relays + Publieke chat-metadata + Publieke chats + Openbare thuis-relays + Deze relays slaan al je berichten op. Amethyst stuurt je berichten hiernaartoe en anderen gebruiken ze om je te vinden. Voeg 1 tot 3 relays toe. + Gebruiker plaatst hier zijn berichten + Openbaar bericht + Openbare inbox-relays + Deze relays ontvangen reacties, likes en zaps op je berichten. Voeg 1 tot 3 relays toe. + Gebruiker ontvangt meldingen via deze relays + Note-ID + Verwijderen + Discussie dempen + Delen + Browserlink delen + Discussie dempen opheffen + Reactie + Reacties + Reactierij + Lezen van relay + Aantal bytes ontvangen van deze relay (filters + events) + Alleen-lezen gebruiker + Druk en houd vast om een spraakbericht op te nemen + + Hij houdt ook nog %1$d ander ding achter. + Hij houdt ook nog %1$d andere dingen achter. + + \u2026ik iemand bericht die ik volg + \u2026ik iemand anders bericht + \u2026het mijn relay is, of een ruimte waar ik lid van ben of die ik volg + \u2026ik iemand lees die ik volg + Altijd, door jou ingesteld + Nooit, door jou ingesteld + + %1$s en %2$d andere + %1$s en %2$d anderen + + Altijd authenticeren + Auth-challenges ondertekenen voor elke relay die erom vraagt + Aangepast + Kies precies bij welke relays je je aanmeldt. Je wordt gevraagd over alles wat je hieronder niet hebt toegestaan. + Nooit authenticeren + Auth-challenges van alle relays negeren + je inbox + je eigen relay + je antwoorden + deze relay + een ruimte waarin je plaatst + mensen die je leest + een ruimte die je leest + je berichten + een gesprek + auth authenticatie relay ondertekenen verifiëren nip-42 identiteit + Relay-authenticatie + Relay-chat + Relay-chats zijn groepen die beheerd worden door een relay. Ze zijn zichtbaar voor iedereen op Nostr en iedereen kan deelnemen. Geschikt voor open communities rond een onderwerp. Sommige groepen zijn tijdelijk, waardoor berichten na verloop van tijd verdwijnen. + Relay-chats + Je eigen profiel, instellingen en concepten, op je eigen relays. + De relays waarop elke community zijn planes publiceert. + Je DM-inbox-relays, waar gift-wrapped berichten worden afgeleverd. + Groepsberichten en sleutelpakketten, op de relays van elke groep. + Houdt de events die nu in beeld staan in de gaten voor nieuwe antwoorden, reacties, reposts, zaps en rapportages, zodat de tellers bijwerken terwijl je leest. + Chatruimtes die geen geschiedenis bewaren — berichten bestaan alleen zolang je verbonden bent, dus deze blijven geabonneerd om überhaupt iets te ontvangen. + Volglijsten, gebruikt om je feed en je web-of-trust op te bouwen. + Locatiegebonden ruimtes voor de gebieden die je volgt, opgevraagd bij de relays die ze aanbieden. + Posts van de mensen die je volgt, gelezen van de relays waarop ieder van hen publiceert. + Chat en zap-doelen die horen bij livestreams die je open hebt staan of volgt. + De relays van de ruimte, zolang die open is. + Kijkt op alle relays welke mints er bestaan en welke door mensen worden aanbevolen. + Rapportages die de mensen die je volgt schreven over de profielen die nu in beeld zijn, opgevraagd bij elke relay waarop die mensen plaatsen. + Je inbox-relays, plus een kleine wisselende steekproef van de relays waarop de mensen die je volgt plaatsen, voor het geval een vermelding ergens anders is afgeleverd. + Luistert op je nutzap-relays plus je inbox- en DM-relays, zodat een betaling er niet langs kan glippen. + Meldingen van je verbonden wallet. + Profielen van de mensen die nu in beeld zijn. + De thuisrelay van elke chat die je open hebt staan of waar je lid van bent. + Haalt events op via hun id waar iets op je scherm naar verwijst maar die je nog niet hebt — een quote, de note waarop een reactie antwoordt, de start van een discussie. + NIP-29-groepen waar je lid van bent. Elke groep staat op één host-relay, dus de app verbindt met elke relay die een groep van jou host. + Zoekt uit naar welke relays iemand publiceert, zodat hun posts van de juiste plek kunnen worden opgehaald. + Je eigen wallet-events, teruggelezen van de relays waarop je ze hebt gepubliceerd. + Een groep aanmaken + Groep verwijderen + "%1$s" verwijderen? Dit verwijdert de groep en de geschiedenis ervan voor iedereen, en kan niet ongedaan worden gemaakt. + Groep bewerken + Privé + Alleen leden kunnen berichten lezen. + + %1$d lid + %1$d leden + + + %1$d groep + %1$d groepen + + Relay-groepen + Titel + Relay-groepen + Berichten + IP-adressen + Kinds + Gebruikers + Instellingen + Add-ons + Bladeren + Community-chats + Community-feeds + DM-inbox + Events observeren + Vluchtige chats + Locatiechats + Startfeed + + %1$s \u00b7 %2$d relay + %1$s \u00b7 %2$d relays + + Livestream-chat + Media + Mintoverzicht + Nutzap-inbox + Wallet Connect + Profielen observeren + Overig + Ontbrekende events zoeken + Relay-groepen + Relay-info + Relaylijsten zoeken + Rapportages van wie je volgt + Zoeken + Hashtags + Gesprek + Onderwerpen + Accountgegevens + Wallet + Relay-instellingen + outbox-lijsten + Relays + Aanvullen & zap versturen + Zap versturen + Vul %1$s sats aan bij %2$s en zap %3$s %4$s sats · kosten ≈ %5$s sats + Verwijderen + Uit Berichten verwijderen + Verwijderen uit publieke bladwijzers + hier reageren… + Melden: + + Verwijdering aanvragen + Verzoek tot verdwijnen + Marmot-status resetten mislukt: %1$s + Marmot-status resetten + Marmot-status gereset. + Activiteit (7 dagen) + Amethyst heeft recentelijk meer verbruikt dan verwacht: %1$s. Wil je een gebruiksrapport in een versleutelde DM naar de ontwikkelaars sturen? Je ziet het volledige rapport voordat er iets wordt verzonden. + Batterij ondertussen verbruikt (hele apparaat) + Relayverbindingen open gehouden terwijl gesloten + Achtergrondmeldingsservice + + %1$d start + %1$d starts + + Draaitijd + App-processtarts + Batterij gebruikt (in app / achtergrond) + Data per functie (7 dagen) + Mobiele data per functie (7 dagen) + Tijd in oproepen + Gebruikte processortijd + Berichten ontsleuteld + Actieve overdrachtstijd + Webverzoeken + Mobiel (MB) + Wi-Fi (MB) + Locatiegebruik + Mediaweergavetijd + Adresseerbare events in geheugen + Chatroomlijsten in geheugen + Geheugenklasse apparaat + App-geheugen (heap) + Afbeeldingscache (RAM) + Afbeeldingscache (schijf) + Native geheugen + Notes in geheugen + Geheugen op dit moment + Profielen in geheugen + Tijd in audioruimtes + Proof-of-work-minen + Radio-activaties voor downloads (schatting) + %1$s aan mobiele data op de achtergrond op één dag + + het app-proces is %1$d keer opnieuw gestart op één dag + het app-proces is %1$d keer opnieuw gestart op één dag + + %1$s aan relayverbindingen terwijl op de achtergrond via mobiel op één dag + + de app heeft %1$d keer opnieuw verbinding gemaakt met relays op één dag + de app heeft %1$d keer opnieuw verbinding gemaakt met relays op één dag + + de CPU werd %1$s wakker gehouden om meldingen te verwerken in één dag + Relay-herverbindingen (mislukt) + Relayverbindingstijd + … op de achtergrond via mobiel + Remote-handtekeningen + Tijd per scherm (7 dagen) + batterij data gebruik verbruik energie stroom netwerk diagnostiek grootboek + Delen met de ontwikkelaars + Delen + Afbeeldingen + Wallet & zaps + Adresverificatie + Overig + Linkvoorbeelden + Pushregistratie + Relaysynchronisatie + Uploads + Video & audio + Gem. relayverbindingen + Batterij / uur in app + Mobiel vandaag + Data / uur in app + In app vandaag + Relaytijd vandaag + Wi-Fi vandaag + App-resourcegebruik + Tor-uptime + Ingebouwde Tor + Data per dag + Handtekeningen geverifieerd + Meldingen verwerken (CPU wakker) + Achtergrondtaken uitgevoerd + Opnieuw proberen + Agendacollecties + Agenda's + Schaken + Ontdekken + Start + Volgers importeren + Berichten + Afspeellijsten + Muziek + Meldingen + Afleveringen + Podcasts + Bericht inplannen + Inplannen annuleren + Geplande berichten worden mogelijk pas gepubliceerd als je de app opnieuw opent. Geplande berichten van andere accounts worden niet uitgevoerd terwijl dit account actief is. Schakel altijd-aan in via Instellingen → Weergavevoorkeuren voor betrouwbare achtergrondplanning. + Geplande berichten worden mogelijk pas gepubliceerd als je de app opnieuw opent. Schakel altijd-aan in via Instellingen → Weergavevoorkeuren voor betrouwbare achtergrondplanning. + Geplande berichten + Nu versturen + %1$s · over %2$s + %1$s · %2$s geleden + Morgen + Fout: %1$s + Note-ID gekopieerd + + Uitgelogd · %1$d gepland bericht verwijderd + Uitgelogd · %1$d geplande berichten verwijderd + + Uitgelogd + + Je hebt %1$d gepland bericht dat nog niet is gepubliceerd. Uitloggen verwijdert dit permanent. + Je hebt %1$d geplande berichten die nog niet zijn gepubliceerd. Uitloggen verwijdert ze permanent. + + Gepland bericht mislukt + Gepland bericht gepubliceerd + + naar %1$d relay + naar %1$d relays + + Geannuleerd + Mislukt + Ingepland + Verzenden… + Verzonden + + · %1$d moet over 1u + · %1$d moeten over 1u + + + %1$d in wachtrij + %1$d in wachtrij + + Goede opties zijn:\n%1$s + Zoek-relays + Zoek-relays + Relays die gebruikt worden voor zoeken en taggen. Moeten NIP-50 ondersteunen. + doorzoekbare berichten + Privésleutel (nsec) gekopieerd naar klembord + Je hebt nog geen gebruikers geblokkeerd. + Beveiligingsfilters + Geen verborgen woorden. Voeg hieronder een woord toe om berichten met dat woord te verbergen. + Geblokkeerde inhoud + Filtervoorkeuren + Geen accounts zijn in deze sessie als spam gemarkeerd. + Verzenden + Stuur alle ontvangen profiel-events (kind 0) door naar je lokale relay + Profielen doorsturen naar lokale relay + Besteedbaar voor deze ontvanger: %1$s sats + Betaling mislukt + Transactie: %1$s + Betalen via %1$s… + Server gaf geen URL terug na upload + Instellingen + Geen gedempte discussies + Gedempte discussies + Weergave + Algemeen + Inhoud in de feed + Zichtbare tabbladen + Media & data + Sections & feeds + Herinneringen + Verbinding + Via Tor routeren + Delen als afbeelding + Delen als afbeeldings-URL + HLS-upload + Delen of opslaan + Shorts + Toon versleutelde QR-code van privésleutel + Directe berichten en groepsberichten opnemen in het tabblad Meldingen. Uitschakelen om berichten alleen in het tabblad Berichten te houden. + Berichten tonen + Toon QR-code van privésleutel + Ondertekenverzoek afgewezen + Zorg dat de signer-app dit verzoek heeft goedgekeurd. + Externe signer heeft een onjuiste payload geretourneerd voor dit verzoek. Er kan een bug zitten in Amethyst of in de signer. + Signer niet gevonden + Is de signer-app verwijderd? Controleer of de signer geïnstalleerd is en dit account ondersteunt. Log opnieuw in. + %1$d seconden terug + %1$d seconden vooruit + Apps + Spam + Aantal spamberichten afkomstig van deze relay + Spammers + Toon twee meldings-tabbladen — Volgend (mensen die je volgt) en Iedereen. De ongelezen-indicator licht alleen op voor activiteit van mensen die je volgt. + Meldingen splitsen op wie je volgt + Probeert privé-metadata te verwijderen uit ondersteunde mediabestanden vóór het uploaden + Privé-metadata verwijderen + Leest voltooide workouts uit Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) en stelt voor om ze als bericht te delen. Toestemming wordt alleen gevraagd wanneer je verbindt. + Workouts voorstellen om te delen + Systeem + Thema + Donker, licht of systeemthema + Dit bericht verdwijnt over %1$s + + +%1$d\nreactie + +%1$d\nreacties + + Vandaag + Aangepast + Maak je eigen configuratie + Standaard + Verberg je IP voor willekeurige relays + Orbot + Volledige privacy + Verberg je IP bij alle verbindingen + Intern + Uit + Tor/Privacy-voorinstellingen + Snel alle onderstaande instellingen aanpassen + Alles behalve media + Verberg je IP voor alles behalve afbeeldingen en video's + DM-relays + Forceer Tor voor verzenden en ontvangen van privéberichten + Afbeeldingen + Forceer Tor bij laden van afbeeldingen + Media-uploads + Forceer Tor bij uploaden van media + Geldtransacties + Forceer Tor voor zaps, lightning en cashu + Onvertrouwde relays + Forceer Tor voor outbox/inbox-relays + Nostr-adresverificatie + Forceer Tor bij NIP-05 verificatie + Onion-URL's / relays + Gebruik Tor voor elke .onion-URL + Profielfoto's + Forceer Tor bij laden profielfoto's + Vertrouwde relays + Forceer Tor voor alle relays in je lijsten + URL-voorbeelden + Forceer Tor bij laden van URL-voorbeelden + Video's + Forceer Tor bij laden van video's + Basis + Gebruik Tor alleen wanneer vereist door de server + Kon bestand niet openen + Geen torrent-apps geïnstalleerd om dit bestand te openen en te downloaden. + Bericht bevat onvoldoende informatie om een magnet-link te maken. + Gebruik de tracked broadcaster bij het verzenden van events. Toont live voortgang en per-relay-status tijdens uitzenden. + Getrackte uitzendingen + Vertaal naar + Kies de taal waarnaar de inhoud vertaald moet worden. + Vertalingen + Vertrouwde relays + Relays waarvoor je geen Tor wilt gebruiken + Volledig + Vol + Prestaties + Snel + Vereenvoudigd + Simpel + Weergavevoorkeuren + Weergavestijl + Kies de stijl van berichten + Kon geen Lightning-invoice aanmaken voor het versturen van de zap. De wallet van de ontvanger gaf de volgende fout: %1$s + Kan afbeelding niet delen. Probeer het later opnieuw. + Kan video niet delen. Probeer het later opnieuw. + Ongeautoriseerde decodering + De signer heeft decodering niet toegestaan. Schakel NIP-44-decodering in in je signer-app en probeer het opnieuw. + Ontvolgen + Deze locatie ontvolgen + Meldingen ontdempen + Losmaken + Losmaken van profiel + Upload geannuleerd + Uploadfout + Spraakbericht uploaden mislukt: %1$s + Spraakbericht uploaden mislukt + NIP-95 wordt nog niet ondersteund voor spraakberichten + %1$d%% uptime + Interne Tor-engine gebruiken + Gebruik de ingebouwde versie van Orbot + Deze gebruiker heeft geen Lightning-adres ingesteld om sats te ontvangen + Gebruiker %1$s heeft geen Lightning-adres ingesteld om sats te ontvangen + Verdwijn-geschiedenis + Verzoek tot verdwijnen verstuurd + Betere kwaliteit in kleinere bestanden, maar niet alle apparaten ondersteunen H.265 afspelen. + H.265/HEVC-codec gebruiken + Videodownload gestart… + Videospeler-knoppen + Video opgeslagen in de galerij + Spraakbericht + Diep + Hoog + Neutraal + Geen + Spraakreactie + Wallet + Cashu-wallet (NIP-60) + Wallet Connect + Je wallet-connect provider gaf de volgende fout: %1$s + Mints bewerken + Toont waarschuwing wanneer een bericht 5 of meer rapportages van je volgers heeft + Waarschuwen bij rapportages + Web-bladwijzer toevoegen + Web-bladwijzer bewerken + Web-bladwijzers + Waar denk je aan? + + %1$d activiteit + %1$d activiteiten + + Trainingen + Schrijf een bericht… + Schrijven naar relay + Aantal bytes verstuurd naar deze relay (filters + events) + Zap + Zaps + Minder tonen + + Hernoemen + Opslaan diff --git a/commonsUI/src/commonMain/composeResources/values-nl/strings.xml b/commonsUI/src/commonMain/composeResources/values-nl/strings.xml index ba5a6067e2..d680a1031c 100644 --- a/commonsUI/src/commonMain/composeResources/values-nl/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-nl/strings.xml @@ -1819,4 +1819,1205 @@ nApplet: %1$s Machtigingen: Openen + Over & Juridisch + Accountinstellingen + Toevoegen + Een Blossom server toevoegen + Voeg een NIP-96 Server toe + Wanneer ingeschakeld voegt Amethyst een NIP-89 client-tag toe aan events die je publiceert. + Client-tag toevoegen aan mijn events + Voegt waarschuwing voor gevoelige content toe voordat deze content wordt weergegeven + Gevoelige content + Toevoegen aan publieke bladwijzers + Gebruikt een on-device AI-model om tekstcorrecties en toonwijzigingen voor te stellen. + Tekstverbeteringen voorstellen + Houdt verbindingen met je inbox-relays actief voor realtime meldingen + + Verbonden met %1$d inbox-relay + Verbonden met %1$d inbox-relays + + + Verbonden met %1$d relay + Verbonden met %1$d relays + + Verbinden met inbox-relays… + Amethyst-meldingen actief + Meldingen voor inkomende spraak- en video-oproepen + Inkomende oproepen + %1$s heeft je schaakuitdaging geaccepteerd + Meldingen over schaakgebeurtenissen + Schaken + Schaakupdates + %1$s heeft een zet gedaan – jouw beurt + Geeft een melding wanneer er een privébericht binnenkomt + Privéberichten + Nieuwe berichten + Markeer als gelezen + Melding wanneer iemand je vermeldt of citeert in een bericht + %1$s heeft je vermeld + Vermeldingen + Nieuwe vermeldingen + Melding wanneer iemand reageert op je bericht + %1$s reageerde op je bericht + voor %1$s + Reacties + Nieuwe reacties + Melding wanneer iemand op je bericht reageert + Reacties + Nieuwe reacties + Beantwoorden + Meldingen wanneer een gepland bericht is gepubliceerd of mislukt. + Geplande berichten + Geeft een melding als iemand je zapt + %1$s sats + voor %1$s + Van %1$s + Zaps ontvangen + Nieuwe zaps + App-instellingen + Attestatie + Attestatieverzoek + Attestor-vaardigheid + Attestor-aanbeveling + Audio-visualisatie + Slaat automatisch een concept op wanneer je typt of de opsteller verlaat met onverzonden tekst en stuurt dit naar je privé outbox-relays. + Automatisch concepten aanmaken + Volledig scrollen + Navigatie verbergen bij scrollen + Afbeeldingen laden + Automatisch afbeeldingen en GIF's laden + Automatisch video's afspelen + Video's en GIF's automatisch afspelen + Profielfoto + Toon profielfoto's + URL-voorbeeld + Toon URL-voorbeelden + Video's automatisch afspelen + Video's automatisch afspelen wanneer zichtbaar op het scherm + Kan metadata niet verwijderen uit AVIF: %1$s + Badge toekennen + Terug + Back-up sleutels + Badges + Authenticatie mislukt + Biometrie kon de eigenaar van deze telefoon niet verifiëren + Biometrie kon de eigenaar van deze telefoon niet verifiëren. Fout: %1$s + Blokkeren + Geblokkeerde relays + Amethyst zal nooit verbinding maken met deze relays. + Geblokkeerde gebruikers + Nieuwe bladwijzerlijst + Bladwijzerlijst-metadata + Bladwijzerlijst-metadata is zichtbaar voor iedereen op Nostr. Alleen privéleden zijn versleuteld. + Bladwijzers + Boost + Onderste navigatiebalk + Uitzend-relays + Relays die gespecialiseerd zijn in het doorsturen van je notities naar andere relays, zoals sendit.nosflare.com. Amethyst voegt deze automatisch toe aan nieuwe berichten. + Browser + Favorieten + Laden via het open web. Tik om Tor te gebruiken. + Laden via Tor. Tik om het open web te gebruiken. + + %1$s, %2$d evenement + %1$s, %2$d evenementen + + Afbeelding uploaden mislukt + De gekozen afbeelding kon niet worden geüpload. Probeer opnieuw of plak een URL. + Agenda-evenement delen + Openen in kaarten + Link openen + Nu aan de gang + %1$s · eindigt %2$s + + Begint over %1$d minuut + Begint over %1$d minuten + + Melding wanneer een evenement waar je naartoe gaat bijna begint. + calendar_reminders + Agenda-herinneringen + Agenda-evenement + Een melding verschijnt wanneer een evenement waar je naartoe gaat bijna begint. + Herinneringen versturen + + %1$d min + %1$d min + + Agenda-herinneringen + Dag + Feed + Maand + Week + Accepteren + Bluetooth + Camera uit + Camera aan + Oortelefoon + Ophangen + Inkomende oproep + Inkomende video-oproep… + Inkomende spraakoproep… + Dempen + Lopende oproep + Lopende oproep + Amethyst heeft toegang tot camera en microfoon nodig om een video-oproep te starten. Schakel dit in bij de app-instellingen. + Amethyst heeft toegang tot de microfoon nodig om een spraakoproep te starten. Schakel dit in bij de app-instellingen. + Weigeren + Gespreksinstellingen + Speaker + Dempen opheffen + Bellen met %1$s + Callback URL niet gevonden uit het antwoord van %1$s + Annuleren + Cashu token + Mint controleren… + Kan Cashu niet verzilveren + Mint geeft de volgende foutmelding: %1$s + Ontvangen + Verzonden + Overeenkomende mints + + +%1$d meer + +%1$d meer + + Populaire mints + + Aanbevolen door %1$d andere + Aanbevolen door %1$d anderen + + %1$s sat verplaatst naar %2$s. + Geen compatibele Cashu wallet gevonden in het systeem + + %1$d openstaande invoice + %1$d openstaande invoices + + %1$s sat betalen + tot %2$s sat aan kosten? + Publiceer een verwijderverzoek voor je kind:38000-aanbeveling van %1$s. Relays die NIP-09 respecteren zullen deze verwijderen. + %1$s sats hersteld over %2$s proofs. + Cashu ontvangen + %1$s sats zijn naar uw wallet gestuurd. (Fees: %2$s sats) + + Fondsen bewaard bij %1$d mint die je niet gebruikt + Fondsen bewaard bij %1$d mints die je niet gebruikt + + Wachten tot de factuur betaald is… + + %1$d mint + %1$d mints + + Casten stoppen + Casten naar apparaat + Normen voor kinderveiligheid + Accessoires + Kunst + Boeken + Kleding + Verzamelobjecten + Ambachten + Electronica + Fitness + Eten + Meubels + Startpagina + Overige + Kantoor + Anders + Huisdieren + Sport + Dagelijks + Maandelijks + Eenmalig + Wekelijks + Betaal %1$s via %2$s? + Betaal deze invoice via %1$s? + De debit-service heeft de betaling niet voltooid. + Voer een geldig bedrag in voor dit aanbod. + Invoice aanvragen… + Sluit alle reacties op dit bericht + Gesloten + Communities + Concept is %1$d bytes; deze community beperkt dit kind tot %2$d bytes. + Concept is %1$d bytes; deze community beperkt events tot %2$d bytes. + Je hebt vandaag al %1$d events van dit kind geplaatst (limiet %2$d). + Opstel-instellingen + Standaard poort is 9050 + Verbonden relays + Huidig verbonden relays + Percentage succesvolle verbindingen met deze relay + Altijd + Nooit + Geen datalimiet + Document toevoegen + Afbeelding toevoegen + Voeg media toe + Video toevoegen + Verbergen + Waarschuwen + Tonen + Discussies + Converteert geanimeerde GIF naar MP4-video voor kleinere bestandsgrootte en betere afspeelcompatibiliteit. + GIF converteren naar MP4 + Note ID (@note1) gekopieerd naar klembord + Note tekst gekopieerd naar klembord + Gekopieerd naar klembord + @npub auteur gekopieerd naar klembord + Kopieer mijn privésleutel + Kopiëren naar klembord + Kon LNUrl niet samenbrengen van Lightning Adress "%1$s". Controleer de instellingen van de gebruiker + Kan het gedownloade bestand niet controleren na upload: %1$s + Kan de geüploade media niet downloaden van de server + Kan invoice niet ophalen van %1$s: %2$s + Kan het gecomprimeerde bestand niet openen + Geen wallet gevonden + Amethyst kon geen wallet-apps vinden die Nostr Wallet Connect (NWC) ondersteunen.\n\nWat je kunt doen:\n1. Controleer of je wallet NWC ondersteunt.\n2. Maak in je wallet een nieuwe NWC-verbinding aan.\n3. Kopieer de verbinding-URI of scan de QR-code hier. + Maken + d + Gevarenzone + Donker + Omschrijving + Publiek maken + Chats + Communities + Feed-algoritmes + Volgpakketten + Livestreams + Marktplaats + Gelezen + DM inbox relays + DM's + Niet vertalen van + Talen die hier staan worden niet vertaald. Tik op een taal om deze te verwijderen en weer te laten vertalen. + Opslaan op telefoon + Video downloaden voor delen… + Concept notitie + Concepten + Accounts + Aanmaken + Feeds + Navigeren + Systeem + Jij + + %1$d dag + %1$d dagen + + + %1$d uur + %1$d uur + + + %1$d minuut + %1$d minuten + + + %1$d maand + %1$d maanden + + + %1$d week + %1$d weken + + + %1$d jaar + %1$d jaar + + Agenda bewerken + Agenda-evenement bewerken + Community bewerken + Emoji-pakket bewerken + Afspeellijst bewerken + Bericht wijzigen + Privé-emoji's worden versleuteld opgeslagen op relays en zijn alleen zichtbaar voor jou. Ze verschijnen in je reactiemenu en ":" autocomplete net als openbare emoji's. + Openbare emoji's zijn zichtbaar voor iedereen en verschijnen in je reactiemenu en ":" autocomplete-picker wanneer dit pakket in je emoji-lijst staat. + Emoji's + Versleutel bestanden voordat ze worden geüpload. Sommige servers accepteren geen versleutelde bestanden op gratis accounts. + Bestanden versleutelen + Tijdelijke chat + Fout + Invoice kon niet worden betaald + Kan niet opnemen + Kan betaling niet openen + Kan zap niet verzenden + Fout bij openen ondertekenapp + De teken-app kan niet worden gevonden. Controleer of de app niet is verwijderd + Fout bij het parsen van foutberichten + Fout bij het verwerken van JSON uit %1$s. Controleer de Lightning set-up van de gebruiker + Kan invoice niet ophalen van de servers van de ontvanger + Openen in browser + Dit video kan niet worden afgespeeld + De codec of het formaat wordt niet ondersteund op dit apparaat (%1$s). Probeer het in uw browser te openen. + Fouten + Relay-synchronisatie + berichten van jou + berichten aan jou + AMRAP + Circuit + Fietsen + Dieet + EMOM + Vasten + Wandelen + Meditatie + Roeien + Hardlopen + Krachttraining + Zwemmen + Wandelen + Yoga + Uitklappen + Vervaldatum + Relay-instellingen exporteren + Verwijderen van media mislukt: %1$s + Versleutelen van uw privésleutel is mislukt + De afbeelding is niet opgeslagen + PDF opslaan mislukt + De video is niet opgeslagen + Veel servers accepteren geen versleutelde bestanden op gratis accounts. Probeer opnieuw zonder versleuteling. + Versleutelde upload mislukt + Upload fout: %1$s + Uploaden van media mislukt + Mislukt om naar %1$s te uploaden: %2$s + Toevoegen aan favorieten + Wordt geladen via het open web. + Wordt geladen via Tor. + Recent + Verwijderen uit favorieten + Die app is nog niet geladen. Probeer het over een moment opnieuw. + Favoriete apps + Favoriete feed-algoritmes + Een betaling gedaan + Gepubliceerd naar relays + Een bestand geüpload + Favoriete relay-feeds + Relays die je regelmatig bezoekt om hun globale feed te bekijken + Communities + Feed-algoritmes + Feeds + Hashtags + Interest-sets + Lijsten + Locaties + Relays + File server + Kies een server om dit bestand naar te uploaden + Verbergt identieke berichten van onbekenden die 5 keer of vaker voorkomen + Spamfilter + Volgen + Terugvolgen + Alle favoriete feed-algoritmes + In de buurt + Gecureerd + Globaal + Standaard volglijst + Iedereen + Volg alle gebruikers + Van mij + Mute-lijst + Nieuw volgpakket + Volglijst bewerken + Volgpakketten zijn vaak gepubliceerde startlijsten voor nieuwe gebruikers en zichtbaar voor iedereen op Nostr. + Volgpakket-metadata + Volgpakketten + Nieuwe volglijst + Lijst bewerken + Profielgalerij stijl + Kies de galerijstijl + Klassiek + Modern + Locatie-exclusief bericht + Alleen volgers van de locatie zien het. Je volgers zien het niet. + %1$s gefinancierd van %2$s sats doel + u + De afbeelding is veranderd. De auteur heeft de wijziging misschien niet gezien + Wat betekent dit? + De afbeelding is onveranderd sinds de post + Hallo %1$s, is dit nog steeds beschikbaar? + Verborgen woorden + Verwijdert berichten uit community-feeds wanneer de community een NIP-9B regelsdocument publiceert en een event daartegen zou falen. Heeft geen effect wanneer een community geen gestructureerde regels heeft. + Berichten verbergen die community-regels schenden + Verberg wachtwoord + Uploaden %1$s (%2$d van %3$d) + Alles + Ongeldig verzoek - De server kan of wil het verzoek niet verwerken. + Niet geautoriseerd - De gebruiker heeft geen geldige authenticatiegegevens + Betaling vereist - De server vereist betaling om het verzoek te voltooien + Verboden - De gebruiker heeft geen toegangsrechten om het verzoek uit te voeren + Niet gevonden - De server kan het opgevraagde adres niet vinden + Methode niet toegestaan - De server ondersteunt de aanvraagmethode, maar niet de doelbron + Niet acceptabel - De server vindt geen inhoud die voldoet aan het verzoek. + Proxy authenticatie vereist - De gebruiker heeft geen geldige authenticatiegegevens + Verzoek time-out - De server heeft de tijdslimiet overschreden tijdens het wachten op iemand anders + Conflict - De server kan het verzoek niet uitvoeren omdat er een conflict is met de bron + Verdwenen - De gevraagde inhoud is permanent verwijderd van de server en zal niet worden hersteld + Lengte vereist - De server weigert het verzoek omdat het een bepaalde lengte vereist + Voorwaarde mislukt - De voorwaarden van het verzoek in de header-velden zijn niet voldaan door de server + Payload te groot - Het verzoek is groter dan de door de server gedefinieerde limieten, en de server weigert het te verwerken + URI Te Lang - De URL die door de client is aangevraagd, is te lang voor de server om te verwerken. + Niet-ondersteund mediaformaat - Het verzoek maakt gebruik van een mediaformaat dat de server niet ondersteunt + Bereik niet voldaan - De server kan de waarde zoals aangegeven in het bereik van het verzoek niet vervullen. + Verwachting mislukt - De server kan niet voldoen aan de vereisten zoals aangegeven door het 'Verwacht' verzoekheader-veld + Upgrade vereist - De server weigert het verzoek te verwerken met het huidige protocol, tenzij de client upgrade naar een ander protocol. + Interne serverfout - De server heeft een onverwachte fout ondervonden en kan het verzoek niet voltooien + Niet geïmplementeerd - De server kan het verzoek niet uitvoeren of herkent de verzoekmethode niet + Slechte Gateway - De server fungeert als een gateway en heeft een ongeldige reactie ontvangen van de host + Dienst niet beschikbaar - Dit gebeurt vaak wanneer een server overbelast is of offline is voor onderhoud + Gateway time-out - De server fungeerde als een gateway of proxy en heeft time-out bereikt tijdens het wachten op een reactie + HTTP-versie niet ondersteund - De server ondersteunt de HTTP-versie in het verzoek niet + Variant verhandelt ook - De server heeft een interne configuratiefout + Onvoldoende opslagruimte - De server heeft niet genoeg opslagruimte om het verzoek succesvol te verwerken + Loop gedetecteerd - De server detecteert een oneindige loop tijdens het verwerken van het verzoek + Netwerk authenticatie vereist - De client moet geauthenticeerd zijn om toegang te krijgen tot het netwerk + Illegaal gedrag + Afbeelding opgeslagen in galerij + Impersonatie + Inbox-relays + Onjuist Invoice-bedrag (%1$s sats) van %2$s. Het had %3$s moeten zijn + Indexeer-relays + Relays die metadata en relay-lijsten hosten, zoals purplepag.es. Amethyst gebruikt deze om gebruikers te vinden die niet in je lijsten staan. + Nieuwe interest-set + Hernoemen + Hashtag-sets + Ongeldige sleutel + Ongeldige sleutel: %1$s + Ongeldig adres + Amethist ontving een URI om te openen, maar die uri was ongeldig: %1$s + Het is niet mogelijk om een concept te citeren + Het is niet mogelijk om op een concept te reageren + Het is niet mogelijk om een concept te beantwoorden + Het is niet mogelijk om een concept op te zappen + Sleutel is vereist + KeyPackage-relays + Relays waar je MLS KeyPackages worden gepubliceerd (MIP-00). Andere gebruikers halen deze KeyPackages op om je uit te nodigen voor Marmot-groepchats. Voeg 1–3 relays toe die KeyPackage-events van jou accepteren en openbare leestoegang toestaan. + KeyPackages + Geaccepteerde badge-set + Avontuur-proloog + Avontuur-lezing + Avontuur-scène + App-aanbevelingen + Afspraak + Apps + Afspraak-RSVP + Audio-header + Audiospoor + Gemaakt podcasts + Badge-awards + Badge-definities + Blob-gegevens + Blob-headers + Geblokkeerde relays + Blogs + Blossom-auth + Blossom-servers + Bladwijzerlijst + Uitzend-relays + Kalender + Kanaaldefinitie + Kanaalbericht verbergen + Kanaallijst + Kanaalbericht + Kanaal-metadata + Gebruiker dempen in kanaal + Schaak-auth + Schaakuitdagingen + Schaak-remiseaanbod + Schaakspel accepteren + Einde schaakspel + Schaakspellen + Schaakzet + Verkoopadvertenties + Reacties + Community-definitie + Community-lijst + Community-bericht + Contactkaart + Dagafspraak + Verwijderingen + DM-bestand + DM-bericht + DM-relays + Concepten + DVM-inhoudsverzoek + DVM-inhoudsantwoord + DVM-status + DVM-gebruikersverzoek + DVM-gebruikersantwoord + Bewerkingen + Emoji-pakketlijst + Emoji-pakketten + Tijdelijke chat + Tijdelijke chatrooms + Favoriete podcasts + Favoriete relays + Bestandsheaders + Bestandsservers + Volglijst + Volgpakketten + Geohash-volgers + GiftWraps + Git-issue + Git-patch + Git-reactie + Git-repo + Hashtag-volgers + Highlights + HTTP-auth + Index-relaylijst + Live chats + Livestreams + Medische gegevens + Vergaderruimte + Vergaderruimte + Afspeellijst + Muziekstuk + Gedempte lijst + Genamde bladwijzers + Nests-servers + NIP + NIP-04 DM's + NNS + Nostr Connect + Notities + NWC-verzoek + NWC-antwoord + Oude bladwijzerlijst + OTS + Outbox-relays + PayTo + Gebruikerslijsten + Afbeeldingen + Pins + Podcast-aflevering + Podcast-show + Poll + Poll-antwoord + Privé-relays + Privé-zaps + Profiel + Profielbadges + Profielgalerij + Proxy-relays + Openbaar bericht + Reacties + Relay-auth + Relay-ontdekking + Relay-monitor aankondiging + Relay-set + Rapportages + Reposts + Reposts (16) + Kamer-aanwezigheid + Seals + Zoek-relays + Shorts + Shorts (Repl) + Torrent-reacties + Torrents + Vertrouwde providers + Vertrouwde relays + Gebruikersverwijdering + Gebruikersinstellingen + Gebruikersstatus + Video + Video (Repl) + Spraakbericht + Spraakreactie + WakeUp + Web-bladwijzer + Wiki + Workouts + Zap-doelen + Zap-poll + Zap-verzoek + Zaps + Bekend + Taalweergavevoorkeuren + Kies voor elk taalpaar welke taal je als eerste wilt zien. + Laatst gezien %1$s geleden + Laatst gezien zojuist + Nooit gezien + Laatst gezien op %1$s (%2$s geleden) + Verlaten + Licht + Livestreams + Lokale relays + Lijst van relays die worden uitgevoerd op dit apparaat. + Je gebruikt een publieke sleutel en publieke sleutels zijn alleen-lezen. Login met een geheime sleutel om berichten te boosten + Je gebruikt een publieke sleutel en publieke sleutels zijn alleen-lezen. Login met een geheime sleutel om te volgen + Je gebruikt een publieke sleutel en publieke sleutels zijn alleen-lezen. Login met een geheime sleutel om woorden en zinnen te verbergen + Je gebruikt een publieke sleutel en publieke sleutels zijn alleen-lezen. Login met een geheime sleutel om te reageren + Je gebruikt een publieke sleutel en publieke sleutels zijn alleen-lezen. Login met een geheime sleutel om zaps te versturen + Je gebruikt een publieke sleutel en publieke sleutels zijn alleen-lezen. Login met een geheime sleutel om woorden of zinnen te tonen + Je gebruikt een alleen-lezen account. Log in met een privésleutel om berichten te ondertekenen. + Je gebruikt een publieke sleutel en publieke sleutels zijn alleen-lezen. Login met een geheime sleutel om te ontvolgen + Je gebruikt een alleen-lezen account. Log in met een privésleutel om te uploaden. + Je gebruikt een publieke sleutel en publieke sleutels zijn alleen-lezen. Login met een geheime sleutel om berichten te liken + Video's + m + Mijn emoji-pakketten + %1$s toevoegen… + Beheerdersbevoegdheden verleend + Beheerdersbevoegdheden ingetrokken + %1$s toevoegen mislukt: %2$s + Aanmaken van groep mislukt: %1$s + Verlenen van beheerder mislukt: %1$s + Verlaten van groep mislukt: %1$s + Verwijderen van lid mislukt: %1$s + Intrekken van beheerder mislukt: %1$s + Bijwerken mislukt: %1$s + Marmot Group + Groepsinfo bijgewerkt + + %1$d lid + %1$d leden + + Lid verwijderd + + %1$d bericht + %1$d berichten + + Geen lid van deze groep + onbekende fout + Media toegevoegd + Media toegevoegd aan je profielgalerij + Media download is gestart… + Mediaservers + Media is te groot voor NIP-95 + Voeg eerst een bestemming toe + Kan niet uploaden + Onderwerp + Metadata verwijderen mislukt + Verwijderen van privé-metadata mislukt. Upload geannuleerd. + Bladwijzers succesvol gemigreerd + Ontbrekende Lightning configuratie + Meer opties + Verplaatsen naar privé + Verplaatsen naar publiek + Een omslagafbeelding uploaden + Kies een vierkante afbeelding als artwork voor deze afspeellijst. + + +%1$d meer nummer + +%1$d meer nummers + + + %1$d nummer + %1$d nummers + + + %1$d nummer + %1$d nummers + + Omslag uploaden en publiceren. Dit gaat door, ook als u het scherm verlaat. + Een audiobestand uploaden + Kies een MP3, WAV of FLAC. Het wordt bij Opslaan geüpload naar uw mediaserver. + Een omslagafbeelding uploaden + Kies een vierkante afbeelding als artwork voor dit nummer. + Omslag + audio uploaden en publiceren. Dit gaat door, ook als u het scherm verlaat. + Geluid. Klik voor geen geluid + Geen geluid. Klik om voor geluid + Mijn lijsten + Een naam is verplicht + %1$d ms + Namecoin-instellingen + Identiteit + Uw publieke sleutel lezen + Berichten + Berichten uitwisselen met andere napplets + Toetsenbordacties + Sneltoetsen instellen + Meldingen + U meldingen tonen + Relays + Uw events lezen, ondertekenen & publiceren + Netwerk + Web- en Blossom-bronnen ophalen + Opslag + Eigen privéopslag + Thema + De kleuren van uw app overnemen + Uploads + Bestanden uploaden naar uw mediaserver + Betalingen + Lightning-facturen betalen + Deze nApplet wil uw publieke sleutel lezen. + Deze nApplet wil uw profiel- en accountgegevens lezen. + Deze nApplet wil u meldingen tonen. + + Deze nApplet wil een Lightning-factuur van %1$d sat betalen. + Deze nApplet wil een Lightning-factuur van %1$d sats betalen. + + Deze nApplet wil als u een kind:%1$d event ondertekenen en publiceren. + Deze nApplet wil als u een versleuteld event verzenden. + Deze nApplet wil als u een kind:%1$d event ondertekenen en publiceren: + Deze nApplet wil events van uw relays lezen. + Deze nApplet wil een webbron ophalen. + Deze site wil een kind:%1$d event ondertekenen met uw Nostr-sleutel. + Deze nApplet wil gebruikmaken van zijn privéopslag. + Deze nApplet wil een bestand uploaden naar uw mediaserver. + nApplet %1$s… + nApplets + Kon bericht niet versturen + Deze spreker dempen + Deze spreker herstellen + Verlaten + Kon ruimte niet als gesloten markeren. Toch verlaten — ruimte sluit automatisch. + + %1$d luisteraar + %1$d luisteraars + + Hand laten zakken + Microfoon dempen + Microfoon aan + Dempen + Kon je nest-serverlijst niet opslaan. Probeer het opnieuw. + Nest — Live + Nests + Houdt audio afspelen terwijl een ruimte open is. + Nest verbonden + Stoppen + Tik om terug te keren. + Volgen + Dempen + Ontvolgen + Dempen opheffen + heeft de nest verlaten + is toegetreden als publiek + is het podium op gegaan + heeft hand opgestoken + is aan het woord + Hand opsteken + Dempen opheffen + Nests + Opgeslagen als kind-10112 vervangbaar event zodat andere clients je voorkeur kunnen lezen. + Jouw servers + Ingebouwde suggesties die je met één tik aan je lijst kunt toevoegen. + Aanbevolen servers + Nest-servers + nooit + Nieuwe badge + Nieuwe agenda + Nieuw agenda-evenement + Nieuwe community + Moderators + Relays + Geblokkeerde gebruikers + Community-reactie (1111) + Lang artikel (30023) + Afbeelding (20) + Korte tekst (1) + Short video (22) + Video (21) + Toegestane event-kinds + Globale max. event-grootte (optioneel) + Verifieerbare regels (optioneel) + Web-of-trust-poort (optioneel) + Nieuw emoji-pakket + Nieuw doel + Nieuw artikel + Nieuwe afspeellijst + Nieuw muziekstuk + Nieuw product + Nieuw verzoek + Nieuwe onderwerpen + Nieuwe workout + + %1$d asset gebundeld + %1$d assets gebundeld + + Geen Blossom-app gevonden. Installeer een lokale Blossom-app om dit bestand te bekijken. + Kan Blossom-link niet openen + Geen camera-app gevonden op dit apparaat + Geen Lightning-adres ingesteld + Geen app gevonden om deze betaling te verwerken. Installeer een compatibele wallet. + Geen app geïnstalleerd om %1$s-betalingen te verwerken. Installeer een compatibele wallet. + Geen reactietypes geselecteerd. Lang indrukken om te wijzigen + Geen reacties setup + Geen wallets gevonden om een Lightning Invoice te betalen. Installeer een Lightning wallet om zaps te gebruiken + Geen wallets gevonden om een Lightning Invoice te betalen (Error: %1$s). Installeer een Lightning wallet om zaps te gebruiken + Geen Zap bedrag. Houdt ingedrukt om te veranderen + Meldingen + Categorieën + Bezorging + In-app weergave + nu + Nowhere-kunst + Nowhere-drop + Nowhere-evenement + Nowhere-forum + Nowhere-donatieactie + Nowhere-site + Nowhere-bericht + Nowhere-petitie + Nowhere-winkel + nSites + Naaktheid + Kan eventverwijzing niet aanmaken + Geen ontvanger-pubkey op de notitie + Nutzaps zijn openbaar en zouden deze privénotitie onthullen. Gebruik in plaats daarvan een Lightning-zap. + Nutzap mislukt + + Verstuur %1$s sats, %2$d-weg + Verstuur %1$s sats, %2$d-wegen + + Bitcoin chain-backend is niet geconfigureerd + Kon de transactie niet uitzenden + Kon de transactie niet bouwen + Kon je Bitcoin-saldo niet laden + Betaling verstuurd, maar het zap-ontvangstbewijs kon niet worden gepubliceerd + + Betaling verstuurd (%1$d van %2$d ontvangstbewijs gepubliceerd), maar het volgende ontvangstbewijs kon niet worden gepubliceerd + Betaling verstuurd (%1$d van %2$d ontvangstbewijzen gepubliceerd), maar het volgende ontvangstbewijs kon niet worden gepubliceerd + + Een aandeel van een ontvanger is onder dust + Kon de transactie niet ondertekenen + ~10 min + ~30 min + ~1 uur + Snel + Normaal + Langzaam + %1$s · %2$s sat/vB · %3$s + + Splits onder %1$d ontvanger + Splits onder %1$d ontvangers + + + %1$d Lightning-adres-alleen-ontvanger overgeslagen — on-chain heeft een Nostr-pubkey nodig om het adres af te leiden. + %1$d Lightning-adres-alleen-ontvangers overgeslagen — on-chain heeft een Nostr-pubkey nodig om het adres af te leiden. + + + Gebruik de %1$d-weg zap-split van dit bericht + Gebruik de %1$d-weg zap-split van dit bericht + + uitzenden + transactie bouwen + saldo laden + ontvangstbewijs publiceren + ondertekenen + Slechts één stem per gebruiker is toegestaan bij dit type peiling. + Open alle reacties op dit bericht + Open + Orbot Socks Poort + Bitcoin Explorer (OTS) + Er is bewijs dat dit bericht enige tijd voor %1$sis getekend. Het bewijs is op dat tijdstip en op dat moment getypeerd in de Bitcoin-blockchain. + Bewijs van tijdstempel + Outbox-relays + Wachtwoord is vereist + Pauzeren + Betalen + Bericht van %1$s + Betalingsdoelen + Voeg betalingsadressen toe voor verschillende netwerken (bijv. Bitcoin, Lightning, Ethereum). + PDF opgeslagen in Downloads/Amethyst + Volglijst-metadata is zichtbaar voor iedereen op Nostr. Alleen privéleden zijn versleuteld. + Volglijst-metadata + Afbeeldingen + Vastzetten bovenaan + Vastmaken aan profiel + Afspelen + + %1$d aflevering + %1$d afleveringen + + Poll auteurs kunnen niet stemmen in hun eigen poll. + (0–100)% + Poll is gesloten voor nieuwe stemmen + Meerdere keuzes + Optie %1$s + Enkele keuze + Kan niet stemmen + Polls + Verzenden + + Dit bericht bevat meer dan %1$d hashtag + Dit bericht bevat meer dan %1$d hashtags + + Voorbeeld kaartafbeelding voor %1$s + Privacyopties + Privacybeleid + <Kan privébericht niet ontsleutelen>\n\nJe werd genoemd in een privégesprek tussen %1$s en %2$s. + DM inbox relays + Voeg tussen de 1 en 3 relays toe om als uw privéinbox te dienen. Anderen gebruiken deze relays om DM's naar u te sturen. DM Inbox relays moeten een bericht van iedereen accepteren, maar alleen om berichten te downloaden. Goede opties zijn:\n - inbox.nostr.wine (betaald)\n - you.nostr1.com (persoonlijke relays - betaald) + Gebruiker ontvangt DM's via deze relays + Privébericht + Privé maken: gift-wrap de notitie alleen voor de genoemde gebruikers + Reacties op een privénotitie blijven altijd privé + Zichtbaar voor + Privé relays + Plaats tussen de 1 tot 3 relays om gebeurtenissen op te slaan die niemand anders kan zien, zoals uw Concepten en/of app instellingen. Idealiter zijn deze relays lokaal of vereist authenticatie voordat de inhoud van elke gebruiker wordt gedownload. + Godslastering / haatdragende taal + Profiel + Profielbadges + App-aanbevelingen + Profielbadges + Volgers-feed + Ontvangen zaps-feed + Profiel-weergave + profielen + Stel een bewerking voor + Proxy-relays + Aggregator-relays zoals filter.nostr.wine. Dit vervangt het outbox-model en zorgt dat Amethyst alleen met relays uit je lijsten verbindt. + Publieke chat + Publieke chats zijn zichtbaar voor iedereen op Nostr. Iedereen kan deelnemen. Moderatie gebeurt door berichten te verwijderen op de relays. + Voeg 1–3 relays toe die deze groep hosten. Nostr-clients gebruiken deze om berichten te downloaden en te versturen. + Relays + Publieke chat-metadata + Publieke chats + Openbare thuis relays + Dit relay type slaat al je inhoud op. Amethyst stuurt je berichten hierheen en anderen gebruiken deze relays om je inhoud te vinden. Voeg tussen de 1 en 3 relays toe. Het gaat om persoonlijke relays, betaalde relays of openbare relays. + Gebruiker plaatst hier zijn berichten + Openbaar bericht + Openbare inbox relays + Dit type relay ontvangt alle relays, reacties, likes en zaps op je berichten. Ze kunnen betaalde of gratis relays zijn. Limieten ingesteld door de relay beheerder kunnen de meldingen die u ontvangt beperken voor het goede en het slechte. Als u bijvoorbeeld wordt aangevallen door spam, kunnen betaalde relays de spam filteren. Invoegen tussen de 1 en 3 relays. + Gebruiker ontvangt meldingen via deze relays + Note ID + Verwijderen + Discussie dempen + Delen + Deel browserlink + Discussie dempen opheffen + Reactie + Reacties + Reactierij + Lees van relay + Het aantal ontvangen bytes van deze relays, inclusief filters en gebeurtenissen + Read-only gebruiker + Druk en houd vast om een spraakbericht op te nemen + Relay-chat + Relay-chats zijn groepen die beheerd worden door een relay. Ze zijn zichtbaar voor iedereen op Nostr en iedereen kan deelnemen. Geschikt voor open communities rond een onderwerp. Sommige groepen zijn tijdelijk, waardoor berichten na verloop van tijd verdwijnen. + Relay-chats + Berichten + IP-adressen + Kinds + Gebruikers + Instellingen + Relay-instellingen + outbox-lijsten + Relays + Aanvullen & zap versturen + Zap versturen + Vul %1$s sats aan bij %2$s en zap %3$s %4$s sats · kosten ≈ %5$s sats + verwijderen + Verwijderen uit publieke bladwijzers + hier reageren.. + Meld: + + Verwijdering aanvragen + Verzoek tot verdwijnen + Marmot-status resetten mislukt: %1$s + Marmot-status resetten + Marmot-status gereset. + Opnieuw proberen + Agendaoverzichten + Agenda's + Schaken + Ontdekken + Beginscherm + Volgers importeren + Berichten + Afspeellijsten + Muziek + Notificaties + Afleveringen + Podcasts + Bericht inplannen + Inplannen annuleren + Geplande berichten worden mogelijk pas gepubliceerd als je de app opnieuw opent. Geplande berichten van andere accounts worden niet uitgevoerd terwijl dit account actief is. Schakel altijd-aan in via Instellingen → Weergavevoorkeuren voor betrouwbare achtergrondplanning. + Geplande berichten worden mogelijk pas gepubliceerd als je de app opnieuw opent. Schakel altijd-aan in via Instellingen → Weergavevoorkeuren voor betrouwbare achtergrondplanning. + Geplande berichten + Nu versturen + %1$s · over %2$s + %1$s · %2$s geleden + Morgen + Fout: %1$s + Note-ID gekopieerd + + Uitgelogd · %1$d gepland bericht verwijderd + Uitgelogd · %1$d geplande berichten verwijderd + + Uitgelogd + + Je hebt %1$d gepland bericht dat nog niet is gepubliceerd. Uitloggen verwijdert dit permanent. + Je hebt %1$d geplande berichten die nog niet zijn gepubliceerd. Uitloggen verwijdert ze permanent. + + Gepland bericht mislukt + Gepland bericht gepubliceerd + + naar %1$d relay + naar %1$d relays + + Geannuleerd + Mislukt + Ingepland + Verzenden… + Verzonden + + · %1$d moet over 1u + · %1$d moeten over 1u + + + %1$d in wachtrij + %1$d in wachtrij + + Goede opties zijn:\n%1$s + Zoek relays + Relays zoeken + Lijst van relays om te gebruiken bij het zoeken naar inhoud of gebruikers. Taggen en zoeken werkt niet als er geen opties beschikbaar zijn. Zorg ervoor dat ze NIP-50 implementeren. + doorzoekbare berichten + Privésleutel (nsec) gekopieerd naar klembord + Je hebt nog geen gebruikers geblokkeerd. + Veiligheidsfilter + Geen verborgen woorden. Voeg hieronder een woord toe om berichten met dat woord te verbergen. + Geblokkeerde inhoud + Filtervoorkeuren + Geen accounts zijn in deze sessie als spam gemarkeerd. + Verzenden + Stuur alle ontvangen profielgebeurtenissen (kind 0) door naar je lokale relay + Profielen doorsturen naar lokale relay + Besteedbaar voor deze ontvanger: %1$s sats + Betaling mislukt + Transactie: %1$s + Betalen via %1$s… + Server heeft geen URL opgegeven na uploaden + Instellingen + Geen gedempte discussies + Gedempte discussies + Delen als afbeelding + Delen als afbeeldings-URL + HLS-upload + Delen of opslaan + Shorts + Toon versleutelde QR-code van privésleutel + Directe berichten en groepsberichten opnemen in het tabblad Meldingen. Uitschakelen om berichten alleen in het tabblad Berichten te houden. + Berichten tonen + Toon QR-code van privésleutel + Ondertekenverzoek afgewezen + Zorg ervoor dat de teken-app deze transactie heeft geautoriseerd + Externe signer heeft een onjuiste payload geretourneerd voor dit verzoek. Er kan een bug zitten in Amethyst of in de signer. + Signer niet gevonden + Is de signer-app verwijderd? Controleer of de signer geïnstalleerd is en dit account ondersteunt. Log opnieuw in. + %1$d seconden terug + %1$d seconden vooruit + Apps + Spam + Het nummer van spammende gebeurtenissen komende van deze relay + Spammers + Toon twee meldings-tabbladen — Volgend (mensen die je volgt) en Iedereen. De ongelezen-indicator licht alleen op voor activiteit van mensen die je volgt. + Meldingen splitsen per gevolgden + Probeert privé-metadata te verwijderen uit ondersteunde mediabestanden vóór het uploaden + Privé-metadata verwijderen + Leest voltooide workouts uit Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) en stelt voor om ze als bericht te delen. Toestemming wordt alleen gevraagd wanneer je verbindt. + Workouts voorstellen om te delen + Systeem + Thema + Donker-, Licht- of Systeemthema + Dit bericht verdwijnt over %1$s + + +%1$d\nreactie + +%1$d\nreacties + + Vandaag + Aangepast + Maak je eigen + Standaard + Verberg uw IP voor willekeurige relay's + Orbot + Volledige privacy + Verberg uw IP in alle verbindingen + Intern + Uit + Tor/Privacy voorinstellingen + Snel alle onderstaande instellingen aanpassen + Alles behalve media + Verberg je IP voor alles, behalve foto's en video's + DM Relays + Forceer Tor om berichten te verzenden en te ontvangen + Afbeeldingen + Forceer Tor bij het laden van afbeeldingen + Mediauploads + Forceer Tor bij het uploaden van content + Geldtransacties + Forceer Tor op zaps, lightning en cashu transfers + Onvertrouwde relays + Tor forceren op outbox/inbox relays + Nostr Adres verificatie + Forceer Tor bij het verifiëren van NIP-05 adressen + Onion Url/Relays + Gebruik Tor voor elke .onion url + Profielfoto + Forceer Tor bij het laden van profielfoto's + Vertrouwde relays + Tor op alle relays in uw lijsten forceren + URL voorbeelden + Forceer Tor bij het laden van url previews + Video's + Forceer Tor bij het laden van video's + Basis + Gebruik Tor wanneer het vereist is door de server + Kon bestand niet openen + Geen torrent apps geïnstalleerd om het bestand te openen en te downloaden. + Bericht bevat onvoldoende informatie om een magnet-link te maken. + Gebruik de tracked broadcaster bij het verzenden van events. Toont live voortgang en per-relay-status tijdens uitzenden. + Getrackte uitzendingen + Vertaal naar + Kies de taal waarnaar de inhoud vertaald moet worden. + Vertalingen + Vertrouwde relays + Relays waarvoor je geen Tor wilt gebruiken + Voltooid + Prestaties + Vereenvoudigd + Weergavevoorkeuren + UI modus + Kies de stijl van het bericht + Kan geen Linghtning invoice aanmaken voor het verzenden van de zap. De Lightning wallet van de ontvanger verstuurde de volgende fout: %1$s + Kan afbeelding niet delen. Probeer het later opnieuw. + Kan video niet delen. Probeer het later opnieuw. + Ongeautoriseerde decodering + De signer heeft decodering niet toegestaan. Schakel NIP-44-decodering in in je signer-app en probeer het opnieuw. + Ontvolgen + Losmaken + Losmaken van profiel + Upload geannuleerd + Uploadfout + Spraakbericht uploaden mislukt: %1$s + Spraakbericht uploaden mislukt + NIP-95 wordt nog niet ondersteund voor spraakberichten + %1$d%% uptime + Actieve Tor Engine + Gebruik de interne versie van Orbot + Gebruiker heeft geen Lightning Adress ingesteld om sats te ontvangen + Gebruiker %1$s heeft geen Lightning Adress ingesteld om sats te ontvangen + Verdwijn-geschiedenis + Verzoek tot verdwijnen verstuurd + Betere kwaliteit in kleinere bestanden, maar niet alle apparaten ondersteunen H.265 afspelen. + H.265/HEVC-codec gebruiken + Video download is gestart… + Videospeler-knoppen + Video's opgeslagen in galerij + Spraakbericht + Diep + Hoog + Neutraal + Geen + Spraakreactie + Wallet + Cashu-portemonnee (NIP-60) + Wallet Connect + De volgende fout is geretourneerd door uw wallet connect provider: %1$s + Mints bewerken + Toont waarschuwing wanneer een bericht 5 of meer rapportages van je volgers heeft + Waarschuwen bij rapportages + Web-bladwijzer toevoegen + Web-bladwijzer bewerken + Web-bladwijzers + Waar denk je aan? + Trainingen + Schrijf een bericht… + Schrijf naar relay + Het aantal bytes dat naar deze relay is gestuurd, inclusief filters en gebeurtenissen + Zap + Zaps + + Hernoemen + Opslaan diff --git a/commonsUI/src/commonMain/composeResources/values-pl-rPL/strings.xml b/commonsUI/src/commonMain/composeResources/values-pl-rPL/strings.xml index f04c944093..cab6ca50ae 100644 --- a/commonsUI/src/commonMain/composeResources/values-pl-rPL/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-pl-rPL/strings.xml @@ -2908,4 +2908,2343 @@ Publikuj persona Obserwuje cię Bot + O Nas & Informacje Prawne + Niebieski + Zielony + Pomarańczowy + Różowy + Fioletowy + Czerwony + Ustawienia konta + + %1$d filtr + %1$d filtrów + %1$d filtrów + %1$d filtry + + + %1$d grupa + %1$d grup + %1$d grup + %1$d grupy + + + %1$d transmiter + %1$d transmiterów + %1$d/ transmiterów + %1$d transmitery + + subskrypcje filtry przekaźniki, żądania (reqs) połączenia dlaczego diagnostyka + %1$d%% z wszystkich + Aktywne subskrypcje transmitera + + %1$d filtr nie został jeszcze przypisany + %1$d filtrów nie zostało jeszcze przypisanych + %1$d filtrów nie zostało jeszcze przypisanych + %1$d filtry nie zostały jeszcze przypisane + + Dodaj + Dodaj Blossom Serwer + Dodaj serwer NIP-96 + Po włączeniu Amethyst dodaje tag klienta NIP-89 do zdarzeń, które publikujesz. + Dodaj tag klienta do moich zdarzeń + Dodaje ostrzeżenie o wrażliwej treści przed wyświetleniem tej zawartości + Treść wrażliwa + Dodaj do wiadomości + Dodaj do publicznych zakładek + Używa modelu sztucznej inteligencji wbudowanego w urządzenie, proponując poprawki tekstu i zmiany tonu wypowiedzi. + Zaproponuj poprawki w tekście + Utrzymuje aktywne połączenia z transmiterami skrzynki odbiorczej, umożliwiając otrzymywanie powiadomień w czasie rzeczywistym + + Połączono z %1$d transmiterem odbiorczym + Połączono z %1$d transmiterami odbiorczymi + Połączono z %1$d transmiterami odbiorczymi + Połączono z %1$d transmiterami odbiorczymi + + + Podłączono do %1$d transmitera + Podłączono do %1$d transmiterów + Podłączono do %1$d transmiterów + Podłączono do %1$d transmiterów + + Łączenie z transmiterami odbiorczymi\u2026 + Ukryj szczegóły + Pokaż szczegóły + Wył. + Wł. + Powiadomienia Ametyst Aktywne + Zostałeś dodany do %1$s + Powiadamia Cię, gdy ktoś wspomni o Tobie lub wyróżni Cię w artykule + %1$s wspomniał o tobie w artykule + %1$s wyróżnił Twój artykuł + Artykuły & Wyróżnienia + Nowe artykuły + Powiadamia Cię, gdy zdobędziesz odznakę + Otrzymałeś odznakę + Przyznana przez %1$s + Odznaki + Nowe odznaki + Powiadomienia o przychodzących połączeniach głosowych i wideo + Połączenia przychodzące + %1$s zaakceptował Twoją ofertę + Powiadamia Cię o wydarzeniach w szachach + Pojedynek szachowy + Aktualizacje szachów + %1$s wykonał ruch — teraz Twoja kolej + Powiadamia Cię o problemach, patchach i pull requestach + %1$s otworzył problem + %1$s wysłał łatkę + %1$s otworzył Pull Request + %1$s zaktualizował Pull Request + %1$s skomentował + %1$s scalił/rozwiązał wątek + %1$s rozwiązał problem + %1$s zainstalował łatkę + %1$s scalił Pull Request + %1$s zamknął wątek + %1$s zamknął zgłoszenie + %1$s zamknął łatkę + %1$s zamknął Pull Request + %1$s oznaczył wątek jako szkic + %1$s otworzył ponownie wątek + Code & Git + Nowa aktywność związana z kodem + Powiadamia Cię, gdy nadejdzie prywatna wiadomość + Prywatne Wiadomości + Nowe wiadomości + Zawartość + Deweloper + Gry + Wiadomości + Płatności + Społecznościowe + Przeczytane + Ja + Powiadamia Cię, gdy ktoś wspomina o tobie w zdjęciu lub wideo + %1$s udostępnił(a) zdjęcie + %1$s udostępnił(a) film + Multimedia + Nowe multimedia + Powiadamia Cię, gdy ktoś wspomni o Tobie lub zacytuje Cię w poście + %1$s wspomniał o Tobie + Wzmianki + Nowe wzmianki + Nowa wiadomość + Nutzap od %1$s + Onchain zap od %1$s + Powiadamia Cię, gdy do podłączonego portfela wpłynie płatność, która nie jest przelewem Nostr zap + Otrzymano %1$s satoszy + Otrzymane płatności + Nowe płatności + %1$s zadał pytanie + Powiadamia Cię, gdy ktoś zareaguje na twój post + %1$s zareagował na Twój post + dla %1$s + Reakcje + Nowe reakcje + Powiadamia Cię, gdy ktoś zareaguje na twój post + Odpowiedzi + Nowe odpowiedzi + Odpowiedz + Powiadamia Cię, gdy ktoś prześle twój post + %1$s ponownie opublikował twój post + Reposty + Nowe reposty + Powiadomienia o opublikowaniu lub braku publikacji zaplanowanego posta. + Zaplanowane posty + Powiadamia Cię, gdy ktoś prześle ci zapy + %1$s Satoszy + dla %1$s + Od %1$s + Otrzymano Zapy + Nowe zapy + Ustawienia aplikacji + Certyfikat + Wniosek o certyfikat + Poziom biegłości certyfikatora + Rekomendacja certyfikatora + + Dodaj i tak %1$d osobę + Dodaj mimo wszystko %1$d osób + Dodaj mimo wszystko %1$d osób + Dodaj mimo to %1$d osoby + + + Dodaj %1$d osobę + Dodaj %1$d osób + Dodaj %1$d osób + Dodaj %1$d osoby + + Już dodany + Wyciszono + Prywatny użytkownik + Tylko Ty \u2014 zdecyduj, kto jeszcze może to zobaczyć + Dodaj osoby, które mają otrzymać powiadomienie + + To byłaby %1$d osoba. Ametyst dodaje maksymalnie %2$d na raz \u2014 odznacz kilka. + To daje %1$d osób. Ametyst dodaje maksymalnie %2$d osób na raz \u2014 odznacz kilka z nich. + To daje %1$d osób. Ametyst dodaje maksymalnie %2$d osób na raz \u2014 odznacz kilka z nich. + To daje %1$d osób. Ametyst dodaje maksymalnie %2$d osób na raz \u2014 odznacz kilka z nich. + + Wyślij prywatnie + + Ta wiadomość zostanie zaszyfrowana i dostarczona %1$d jednorazowo, po jednym razie na osobę. W przypadku zewnętrznego sygnatariusza oznacza to po jednym zatwierdzeniu na osobę. + Ta wiadomość zostanie zaszyfrowana i dostarczona %1$d razy, po jednym egzemplarzu na osobę. W przypadku zewnętrznego sygnatariusza oznacza to po jednym zatwierdzeniu na osobę. + Ta wiadomość zostanie zaszyfrowana i dostarczona %1$d razy, po jednym egzemplarzu na osobę. W przypadku zewnętrznego sygnatariusza oznacza to po jednym zatwierdzeniu na osobę. + Ta wiadomość zostanie zaszyfrowana i dostarczona %1$d razy, po jednym egzemplarzu na osobę. W przypadku zewnętrznego sygnatariusza oznacza to po jednym zatwierdzeniu na osobę. + + + %1$d osoba otrzyma powiadomienie o tym poście. + %1$d osób otrzyma powiadomienie o tym poście. + %1$d osób otrzyma powiadomienie o tym poście. + %1$d osoby otrzymają powiadomienie o tym poście. + + + %1$s, %2$s i %3$d inny + %1$s, %2$s i %3$d innych + %1$s, %2$s i %3$d innych + %1$s, %2$s i %3$d inne + + Wizualizator dźwięku + Automatycznie zapisuje wersję roboczą wiadomości podczas pisania lub po zamknięciu okna edycji z niewysłanym tekstem i umieszcza ją w prywatnej skrzynce wysyłkowej transmiterów. + Automatycznie twórz wersje robocze + Aktywne Przewijanie + Ukrywa pasek przewijania + Podgląd obrazu + Automatycznie załaduj obrazki i Gify + Odtwarzanie filmów + Automatycznie odtwarzaj filmy i pliki GIF + Zdjęcie profilowe + Pokaż zdjęcia profilowe + Podgląd URL + Pokaż podgląd linków + Autoodtwarzanie filmów + Automatycznie odtwarzaj filmy, gdy są widoczne na ekranie + Nie można usunąć metadanych z AVIF: %1$s + Znak wyróżnienia + Wstecz + Klucze kopii zapasowej + Odznaki + Uwierzytelnianie nie udało się + Biometria nie uwierzytelniła właściciela tego telefonu + Biometria nie uwierzytelniła właściciela tego telefonu. Błąd: %1$s + Zablokuj + Zablokowane Transmitery + Amethyst nigdy nie połączy się z tymi transmiterami + Zablokowani użytkownicy + Synchronizacja plików już trwa. Spróbuj ponownie zaimportować dane po jej zakończeniu. + Wyłącz wszystkie + Włącz wszystkie + + %1$d plik + %1$d plików + %1$d plików + %1$d pliki + + + Znaleziono %1$d plik do zaimportowania na Twoje serwery. + Znaleziono %1$d plików do zaimportowania na Twoje serwery. + Znaleziono %1$d plików do zaimportowania na Twoje serwery. + Znaleziono %1$d pliki do zaimportowania do serwerów. + + + Importuj %1$d plik + Importuj %1$d plików + Importuj %1$d plików + Importuj %1$d pliki + + Nie na wszystkich serwerach + Na wszystkich serwerach + + Zapłać %1$d sat + Zapłać %1$d satoszy + Zapłać %1$d satoszy + Zapłać %1$d satoszy + + Ten serwer wymaga płatności do wysłania: %1$s + Anuluj + Wyświetla postęp kopiowania plików między serwerami Blossom. + Synchronizacja Blossom + Kopiowanie plików pomiędzy serwerami… + Oferty BOLT12 + Dodaj jedną lub więcej ofert BOLT12 (lno1…). Są one udostępniane publicznie, aby każdy mógł Ci zapłacić. + Płatność BOLT12 nie powiodła się: %1$s + Wysłano płatność BOLT12 + BOLT12 błąd zap + Płatność została zrealizowana za pośrednictwem BOLT12, ale dowód płatności nie został zweryfikowany, więc nie opublikowano potwierdzenia zapłaty. + Płatność została zrealizowana za pośrednictwem BOLT12, ale portfel nie zwrócił potwierdzenia, więc nie opublikowano potwierdzenia zapa. + Nowa lista zakładek + Metadane listy zakładek + Metadane listy obserwowanych są widoczne dla wszystkich użytkowników w sieci Nostr. Tylko Twoi uczestnicy prywatni są zaszyfrowani. + Zakładki + Powtórz + Aplikacje & Strony + Czaty & Grupy + Kanały + Główny + Inne + Twoje konto + Dolny pasek nawigacji + Dodaj + Dodano + Brak ulubionych. Oznacz aplikację w przeglądarce, aby dodać ją tutaj. + Nie dołączyłeś(aś) jeszcze do żadnej grupy. + Transmitery Nadawania + Transmitery, które specjalizują się w przesyłaniu wpisów do wszystkich innych transmiterów, takich jak sendit.nosflare.com. Amethyst doda ten transmiter do wszystkich nowych wydarzeń utworzonych przez użytkownika + Przeglądarka + Ulubione + Odkryj apki webowe + Pobieranie przez otwartą sieć. Kliknij, aby skorzystać z sieci Tor. + Wczytywanie przez Tor. Kliknij, aby użyć otwartej sieci. + Archiwizuj kanał + Nowy kanał + Usuń kanał + Usunąć "%1$s"? To usuwa kanał i jego wiadomości dla wszystkich i nie może być cofnięte. + Kanał prywatny + Ukryty na liście kanałów i dostępny wyłącznie na zaproszenie. Opcja „Wyłączone” oznacza, że każdy użytkownik tego transmitera może go znaleźć i dołączyć do niego. + Odarchiwizuj kanał + + %1$d ukryta rozmowa + %1$d ukrytych rozmów + %1$d ukrytych rozmów + %1$d ukryte rozmowy + + + Zobacz %1$d rozmowę więcej + Zobacz %1$d rozmów więcej + Zobacz %1$d rozmów więcej + Zobacz wszystkie %1$d rozmowy + + Edytuj + Nowe forum + Przypnij kanał + %1$s i %2$s piszą… + Odepnij kanał + Zatwierdzono + Anulowano + Odmowa + Niepowodzenie + Wymaga zatwierdzenia + W kolejce + Wysłano + Pracuję + + %1$s, %2$d wydarzenie + %1$s, %2$d wydarzeń + %1$s, wydarzeń %2$d + %1$s, %2$d wydarzeń + + Nie udało się wgrać zdjęcia + Nie udało się wgrać wybranego zdjęcia. Spróbuj ponownie lub wklej adres URL. + Udostępnij wydarzenie z kalendarza + Otwórz na mapach + Otwórz link + Właśnie się dzieje + %1$s · kończy się %2$s + + Rozpoczęcie za %1$d min. + Rozpoczęcie za %1$d minut + Rozpoczęcie za %1$d minut + Rozpoczęcie za %1$d minut + + Powiadomienie, gdy wydarzenie, w którym bierzesz udział, ma się właśnie rozpocząć. + kalendarz_przypomnienia + Przypomnienia w kalendarzu + Wydarzenie w kalendarzu + Powiadomienie pojawia się, gdy zbliża się rozpoczęcie wydarzenia, w którym bierzesz udział. + Wyślij przypomnienia + + %1$d min. + %1$d min. + %1$d min. + %1$d min. + + Przypomnienia z kalendarza + Dzień + Notatki + Miesiąc + Tydzień + Akceptuj + Bluetooth + Kamera wyłączona + Kamera włączona + Słuchawka + Rozłącz się + Połączenie przychodzące + Przychodzące połączenie wideo\u2026 + Przychodzące połączenie głosowe\u2026 + Wycisz + Połączenia + Powiadomienie o trwającym połączeniu + Ametysta potrzebuje dostępu do aparatu i mikrofonu, aby rozpocząć rozmowę wideo. Proszę włączyć je w ustawieniach aplikacji. + Ametysta potrzebuje dostępu do mikrofonu, aby rozpocząć rozmowę głosową. Proszę włączyć ją w ustawieniach aplikacji. + Odrzuć + Udostępnij ekran + Przestań udostępniać ekran + Udostępnianie ekranu + Ustawienia połączeń + Głośnik + Włącz dźwięk + Zadzwoń przez %1$s + Nie znaleziono zwrotnego adresu URL z odpowiedzi %1$s + Anuluj + Cashu Token + Sprawdzanie minta… + Nie można wykupić Cashu + Mint dostarczył następujący komunikat błędu: %1$s + Otrzymano + Wysłano + Pasujące Minty + + +%1$d więcej + +%1$d więcej + +%1$d więcej + +%1$d więcej + + Popularne Minty + + Polecany przez %1$d innego + Polecane przez %1$d innych + Polecanych przez %1$d innych + Polecane przez %1$d innych + + Przeniesiono %1$s do %2$s. + W systemie nie znaleziono kompatybilnego portfela Cashu + + %1$d oczekująca faktura + %1$d oczekujących faktur + %1$d oczekujących faktur + %1$d oczekujące faktury + + Zapłać %1$s satoszy + do %2$s satoszy za opłatą? + Opublikuj żądanie usunięcia rekomendacji %1$s dla typu:38000. Transmitery zgodne ze standardem NIP-09 odrzucą je. + Odzyskano %1$s satoszy w ramach %2$s dowodów. + Cashu odebrano + %1$s satsy zostały wysłane do Twojego portfela. (opłata: %2$s satoszy) + Niebezpieczny adres Cashu mint + Amethyst nie skontaktował się z emitentem tego tokena. %1$s + + Środki zgromadzone w %1$d mint, z których nie korzystasz + Środki przechowywane na %1$d mintach, których nie używasz + Środki przechowywane na %1$d mintach, których nie używasz + Środki przechowywane na %1$d mintach, których nie używasz + + Czekam na opłacenie faktury… + + %1$d Mint + %1$d Mintów + %1$d Mintów + %1$d Minty + + Przestań zrzucać + Zrzuć na urządzenie + Akceptowane przez co najmniej jeden transmiter + Dostarczono do transmiterów wszystkich odbiorców + Brak informacji o transmiterze tej wiadomości + Oczekiwanie na akceptację tej wiadomości przez transmiter + + %1$d odpowiedź + %1$d odpowiedzi + %1$d odpowiedzi + %1$d odpowiedzi + + W czacie + W wątku + Zaszyfrowane społeczności z wieloma kanałami (Concord). + Społeczności Concord + Lekkie pokoje, które nie utrzymują się w historii. + Czaty efemeryczne + Publiczny czat dotyczący konkretnego miejsca w ramach geohashu (geolokalizacja). + Czaty z funkcją lokalizacji + MLS zaszyfrowane czaty grupowe (Marmot). + Zaszyfrowane grupy + Starsze, mniej prywatne zaszyfrowane wiadomości bezpośrednie (NIP-04). + Starszy typ wiadomości DM + Wiadomości bezpośrednie zaszyfrowane end-to-end (NIP-17). + Prywatne wiadomości + Otwarte, publiczne pokoje czatu, do których każdy może dołączyć i których treści każdy może czytać (NIP-28). + Kanały publiczne + Czat grupowy zarządzany przez transmiter, z listami uczestników i funkcją moderacji (NIP-29). + Grupy Transmiterów + Normy bezpieczeństwa dzieci + Akcesoria + Sztuka + Książki + Odzież + Kolekcjonerstwo + Rzemiosło + Elektronika + Fitness + Żywność + Meble + AGD + Różne + Biuro + Inne + Zwierzęta domowe + Sporty + Dzienny + Miesięczny + Jednorazowy + Tygodniowy + Zapłacić %1$s przez %2$s? + Zapłać tę fakturę przez %1$s? + Usługa debetowa nie dopełniła płatności. + Wprowadź poprawną kwotę dla tej oferty. + Żądanie faktury… + Zamknij wszystkie odzewy na ten post + Zamknięte + Społeczności + Wersja robocza ma %1$d bajtów; ta społeczność ogranicza ten typ do %2$d bajtów. + Projekt ma %1$d bajtów; ta społeczność ogranicza zdarzenia do %2$d bajtów. + Dzisiaj opublikowałeś/aś %1$d zdarzeń tego typu (limit wynosi %2$d). + Skonfiguruj ustawienia + + %1$d kanał + %1$d kanałów + %1$d kanałów + %1$d kanały + + Nowy kanał + Usuń kanał + Usuń + Usunąć #%1$s? Tej operacji nie można cofnąć i nie będzie można odtworzyć kanału z tym samym identyfikatorem. + Usunąć kanał? + Nazwa kanału + Brak wiadomości + Zmień nazwę kanału + Zmień nazwę + Brak kanałów. + Utwórz + Transmitery + Transmitery, które przechowują zaszyfrowane wiadomości tej społeczności. Pozostaw puste, aby użyć własnych. + Nowy kanał Concord + Edytuj społeczność + Edytowanie wiadomości + Kanały Concord + Zaproś osoby + Nie można pobrać tego zaproszenia. Być może link stracił ważność lub transmitery są niedostępne. + Ta społeczność cię usunęła. Link nadal działa, ale na liście członków nie figurujesz. + Ten link do zaproszenia wygasł i nie może być już używany. Poproś o nowy link. + Nie można otworzyć tego linku do zaproszenia. Być może jest on nieaktualny, został już zastąpiony nowszym lub został utworzony w nowszej wersji aplikacji. Poproś o nowy link do zaproszenia. + Ten link do zaproszenia jest nieprawidłowy lub nie można go otworzyć przy użyciu tego konta. + Ten link do zaproszenia został unieważniony i nie można już z niego korzystać. Poproś o nowy. + Linki z zaproszeniem + Linki z zaproszeniem + Nie udało się unieważnić linku. Sprawdź połączenie i spróbuj ponownie. + Link zaproszenia unieważniony. + Link do zaproszenia + Opuść społeczność + Chcesz opuścić %1$s? Zostaniesz usunięty z listy członków tej społeczności, a synchronizacja z Twoimi urządzeniami zostanie wstrzymana. Społeczność nie zostanie o tym powiadomiona, a Ty nie zostaniesz usunięty z listy jej członków. Wiadomości, których nie będziesz już mógł odszyfrować, mogą okazać się nie do odzyskania, a powrót do społeczności będzie możliwy wyłącznie po otrzymaniu nowego zaproszenia. + To Ty stworzyłeś tę społeczność. Odejście nie powoduje jej usunięcia ani przekazania komukolwiek innemu, ale powoduje usunięcie klucza właściciela przechowywanego na Twojej liście — nie będziesz mógł już nią zarządzać. + Opuścić społeczność? + Stwórz administratora + + %1$d członek + %1$d członków + %1$d członków + %1$d członkowie + + Banuj + Stwórz administratora + Usuń administratora + Nie udało się zaktualizować ról tego członka. + Przypisz rolę + Członkowie + Odbanuj + Usuń administratora + Wyślij zdjęcie + Concord + Kilka osób pisze… + %1$s pisze… + %1$s i %2$s piszą… + + %1$d nowa wiadomość + %1$d nowych wiadomości + %1$d nowych wiadomości + %1$d nowe wiadomości + + Domyślny port to 9050 + Podłączone Transmitery + Aktualna lista używanych transmiterów + Odsetek udanych połączeń z transmiterem + Zawsze + Nigdy + Nielimitowany Wi-Fi + Wi-Fi + Dodaj dokument + Dodaj zdjęcie + Dodaj plik + Dodaj wideo + Ukryj + Ostrzeżenie + Pokaż + Komentarze + Konwertuje animowany GIF na wideo MP4 dla mniejszego rozmiaru pliku i lepszej kompatybilności odtwarzania. + Konwertuj GIF do MP4 + Skopiowane ID wpisu (@note1) do schowka + Skopiowano tekst wpisu do schowka + Skopiowano do schowka + Skopiowano @npub autora do schowka + Kopiuj mój tajny klucz + Kopiuj do schowka + Nie można stworzyć LNUrl z Adresu "%1$s". Sprawdź konfigurację użytkownika + Nie można sprawdzić pobranego pliku po wgraniu: %1$s + Nie można pobrać przesłanych plików z serwera + Nie można pobrać faktury od %1$s: %2$s + Nie można otworzyć skompresowanego pliku + Nie znaleziono portfela + Amethyst nie znalazł żadnej aplikacji portfela obsługującej Nostr Wallet Connect (NWC). +\n\nCo możesz zrobić: +\n\t1. Zweryfikuj wsparcie NWC: Sprawdź, czy preferowana aplikacja portfela jest kompatybilna z Nostr Wallet Connect. +\n\t2. Utwórz połączenie: Przejdź do aplikacji portfela i utwórz nowe połączenie NWC. +\n\t3. Połącz z Amethyst: Twój portfel zazwyczaj oferuje trzy opcje: +\n\t\t3. Automatyczne połączenie: przycisk, który automatycznie otwiera i łączy się z Amethyst. Jeśli tak, kliknij ten przycisk, otwórz Ametyst i naciśnij przycisk "Zapisz" na nowym ekranie. +\n\t\t3. Połączenie ręczne: adres URI połączenia, który można skopiować i wkleić, klikając ikonę wklejania na tym ekranie, aby wprowadzić go bezpośrednio. +\n\t\t3. Kod QR: Portfel tworzy kod QR, który można odczytać z przycisku QR na tym ekranie. + + Utwórz + d + Niebezpieczna strefa + Ciemny + Opis + Upublicznij + Czaty + Społeczności + Wybrane przez algorytm + Pakiety subskrybentów + Na żywo + Market + Popularne + Transmitery Skrzynki Odbiorczej + + Zgłoszone przez %1$d osobę, którą obserwujesz + Zgłoszone przez %1$d osób, które obserwujesz + Zgłoszone przez %1$d osób, które obserwujesz + Zgłoszone przez %1$d osoby, które obserwujesz + + DMs + Nie tłumacz z + Języki wyświetlane tutaj nie będą tłumaczone. Wybierz język, aby usunąć go z listy języków nietłumaczonych. + Zapisz w telefonie + Pobieranie filmu… + Szkic wpisu + Projekty + Konta + Utwórz + Kanały + Nawigacja + System + Ty + Menu boczne + Zawsze włączony + Ukryte + + %1$d ukryta + %1$d ukryte + %1$d ukrytych + %1$d ukrytych + + Widoczne + + %1$d dzień + %1$d dni + %1$d dni + %1$d dni + + + %1$d godzina + %1$d godzin + %1$d godzin + %1$d godziny + + + %1$d minuta + %1$d minut + %1$d minut + %1$d minuty + + + %1$d miesiąc + %1$d miesięcy + %1$d miesięcy + %1$d miesiące + + + %1$d tydzień + %1$d tygodni + %1$d tygodni + %1$d tygodnie + + + %1$d rok + %1$d lat + %1$d lat + %1$d lata + + Edytuj kalendarz + Edytuj wydarzenie z kalendarza + Edytuj społeczność + Edytuj pakiet emotikonów + Edytuj + Edytuj playlistę + Edytuj wpis + Prywatne emotikony są przechowywane zaszyfrowane na transmiterach i widoczne tylko dla Ciebie. Znajdują się w menu odzewów oraz w autouzupełnianiu po wpisaniu znaku „:” – tak samo jak emotikony publiczne. + Publiczne emotikony są widoczne dla wszystkich i pojawiają się w menu odezw oraz w oknie podpowiedzi ":", jeśli ten pakiet znajduje się na liście emotikonów. + Emotikony + W celu zapewnienia prywatności zaszyfruj pliki przed ich przesłaniem. Niektóre serwery mogą nie akceptować zaszyfrowanych plików na bezpłatnych kontach. + Szyfrowanie plików + Czat efemeryczny + Błąd + Nie można zapłacić faktury + Nie można wypłacić + Nie można otworzyć płatności + Nie można wysłać zapa + Błąd podczas otwierania aplikacji logującej + Nie można odnaleźć aplikacji logującej. Sprawdź, czy aplikacja nie została odinstalowana + Błąd podczas analizowania komunikatu o błędzie + Błąd przetwarzania JSON z %1$s. Sprawdź konfigurację lightning użytkownika + Nie można pobrać faktury z serwerów odbiorcy + Otwórz w przeglądarce + Nie można odtworzyć tego filmu + Kodek lub format nie jest obsługiwany na tym urządzeniu (%1$s). Spróbuj go otworzyć w przeglądarce. + Błędy + Sync relays + wydarzenia od Ciebie + wydarzeń dla Ciebie + AMRAP + Układ + Jazda na rowerze + Dieta + EMOM + Post + Piesze wycieczki + Medytacja + Wioślarstwo + Bieganie + Siła + Pływanie + Spacer + Joga + Rozwiń + Data wygaśnięcia + Autor poprosił transmitery o usunięcie tego wpisu po upływie %1$s. Zniknie on z kanałów po upływie tego czasu. + Eksportuj ustawienia transmiterów + Nie udało się usunąć: %1$s + Nie udało się zaszyfrować Twojego klucza prywatnego + Nie udało się zapisać zdjęcia + Nie udało się zapisać pliku PDF + Nie udało się zapisać filmu + Wiele serwerów nie akceptuje plików zaszyfrowanych na kontach bezpłatnych. Możesz spróbować ponownie bez szyfrowania. + Nie udało się przesłać zaszyfrowanego pliku + Błąd wysyłania: %1$s + Nie udało się wgrać załącznika + Nie udało się wgrać pliku do %1$s: %2$s + Dodaj do ulubionych + Wczytuje się z otwartej sieci. + Przesyłanie danych przez Tor. + Najnowsze + Usuń z ulubionych + Ta aplikacja nie została jeszcze załadowana. Spróbuj ponownie za chwilę. + Ulubione aplikacje + Algorytmy ulubionych kanałów + Dokonano płatności + Opublikowane do transmiterów + Wgrano plik + Ulubione kanały transmitera + Transmitery, które często przeglądasz + Społeczności + Algorytmy kanału + Kanały + Hashtagi + Grupy zainteresowań + Listy + Lokalizacje + Transmitery + Serwer Plików + Wybierz serwer, aby przesłać ten plik + Ukrywa posty od nieznajomych, które były dokładnie takie same przez 5 lub więcej razy + Filtr spamu + Obserwuj + Również obserwuj + Obserwuj tę lokalizację + Wszystkie ulubione algorytmy kanału + W pobliżu + Wybrane + Wszystkie + Domyślna lista obserwowanych + Wszystkie obserwacje + Obserwowane osoby + Moje + Zablokowane + Teleportacja do miejsca… + Nowy pakiet subskrybentów + Edytuj pakiet subskrybentów + Metadane pakietu subskrybentów są widoczne dla wszystkich użytkowników serwisu Nostr i często publikowane na wielu stronach internetowych jako zestawy startowe dla nowych użytkowników. + Metadane pakietu subskrybentów + Pakiety subskrybentów + Nowa lista + Edytuj listę + Czcionka + Czcionka używana w całej aplikacji + Monospace + Mono + Sans Serif + Sans + Serif + Serif + Domyślna + Systemowy + Rozmiar czcionki + Dostosuj rozmiar tekstu w całej aplikacji + Wielki + Duży + Normalny + Mały + Styl galerii + Wybierz styl galerii + Klasyczny + Nowoczesny + Lokalizacja czatu + Post ekskluzywny dla lokalizacji + Tylko obserwatorzy z twojej lokalizacji to zobaczą. Twoi ogólni obserwatorzy nie zobaczą tego. + + %1$d element + %1$d elementów + %1$d elementów + %1$d elementy + + Repozytoria Git + Zamknij filtr + Filtruj repozytoria + Sfinansowano %1$s z %2$s satoszów + godz. + Ta zawartość uległa zmianie. Autor mógł nie zobaczyć ani nie zatwierdzić zmiany + Co to oznacza? + Ta zawartość jest taka sama od początku + Witaj %1$s, czy to nadal jest dostępne? + Ukryte słowa + Usuwa posty z kanałów społeczności, gdy społeczność opublikuje dokument zawierający zasady NIP-9B, a dane wydarzenie nie spełnia tych zasad. Nie ma to żadnego wpływu, jeśli społeczność nie posiada strukturyzowanych zasad. + Ukryj posty, które naruszają zasady społeczności + Ukryj hasło + Wyróżnienia + Wgrywanie %1$s (%2$d z %3$d) + Artykuły + Certyfikaty + Obserwacje ptaków + Szachy + Ogłoszenia + Komentarze & odpowiedzi + Czaty efemeryczne + Zbiórki funduszy + Wyróżnienia + Interaktywne opowieści + Bieżąca aktywność + Muzyka & audio + Szkice NIP + Zdjęcia + Podcasty + Ankiety + Oceny i recenzje + Reposty + Filmiki + Notatki tekstowe + Torrenty + Filmy wideo + Wiadomości głosowe + Strony Wiki + Wszystko + Błędne żądanie-Serwer nie może lub nie chce przetworzyć żądania. + Nieautoryzowany - użytkownik nie ma prawidłowych danych uwierzytelniających + Wymagana płatność - serwer wymaga płatności, aby wypełnić żądanie + Zabronione - użytkownik nie ma praw dostępu, aby złożyć żądanie + Nie znaleziono - serwer nie może odnaleźć żądanego adresu + Metoda niedozwolona - serwer obsługuje metodę żądania, ale nie docelowy zasób + Niedopuszczalne - Serwer nie znalazł żadnej zawartości spełniającej żądanie. + Wymagane uwierzytelnianie proxy - użytkownik nie ma prawidłowych danych uwierzytelniania + Limit czasu żądania - serwer przekroczył limit czasu, oczekując na kogoś innego + Konflikt - serwer nie może spełnić żądania, ponieważ istnieje konflikt z zasobem + Przepadło - Żądana zawartość została trwale usunięta z serwera i nie zostanie przywrócona + Wymagana długość - serwer odrzuca żądanie, ponieważ wymaga zdefiniowanej + Warunek wstępny nie powiódł się - warunki wstępne żądania w polu nagłówka, którego serwer nie spełnia + Payload Zbyt duży - Żądanie jest większe niż określone limity serwera i serwer odmawia jego przetwarzania + URI Zbyt długi - URL klienta jest zbyt długi, aby serwer mógł go przetworzyć. + Nieobsługiwany format plików - żądanie używa formatu multimediów, którego serwer nie obsługuje + Zakres niezadowalający — serwer nie może spełnić wartości wskazanej w polu nagłówka zakresu żądania. + Błąd oczekiwania-serwer nie może spełnić wymagań wskazanych w polu nagłówka żądania + Wymagana aktualizacja - serwer odmawia przetwarzania żądania przy użyciu bieżącego protokołu, chyba że klient uaktualni go do innego protokołu. + Wewnętrzny błąd serwera - serwer napotkał nieoczekiwany błąd i nie może zakończyć żądania + Nie zaimplementowano - serwer nie może spełnić żądania lub nie rozpoznaje metody żądania + Bad Bateway - serwer działa jako brama i otrzymał nieprawidłową odpowiedź od hosta + Usługa niedostępna - Często zdarza się, gdy serwer jest przeciążony lub wyłączony w celu konserwacji + Limit czasu bramki - serwer działał jako brama lub serwer proxy i upłynął limit czasu, czekając na odpowiedź + Wersja HTTP nie jest obsługiwana - serwer nie obsługuje wersji HTTP w zapytaniu + Wariant również Negocjacje - serwer ma błąd konfiguracji wewnętrznej + Niewystarczająca pojemność - serwer nie ma wystarczającej pojemność, aby pomyślnie przetworzyć żądanie + Wykryta pętla - serwer wykrywa nieskończoną pętlę podczas przetwarzania żądania + Wymagane uwierzytelnienie sieciowe - Klient musi być uwierzytelniony aby uzyskać dostęp do sieci + Antyspołeczne zachowanie + Zdjęcie zostało zapisane w galerii + Podszywanie się + Transmitery odbiorcze + Nieprawidłowa kwota faktury (%1$s satoszy) od %2$s. Powinieno być %3$s + Transmitery indeksera + Transmitery, które specjalizują się w hostowaniu metadanych i list wszystkich użytkowników, takie jak purplepag.es. Amethyst użyje tych transmiterów do znalezienia użytkowników, którzy nie znajdują się na twoich listach. + Nowa Grupa Zainteresowań + Zmień nazwę + Zestawy hasztagów + Nieprawidłowy klucz + Nieprawidłowy klucz: %1$s + Nieprawidłowy adres + Ametyst otrzymał URI do otwarcia, ale ten adres był nieprawidłowy: %1$s + Nie jest możliwe zacytowanie szkicu wpisu + Nie jest możliwe reagowanie na szkic wpisu + Nie jest możliwa odpowiedź na szkic wpisu + Nie jest możliwy zap dla szkicu wpisu + Klucz jest wymagany + Transmitery pakietu kluczy + Transmitery, na których publikowane są Twoje pakiety kluczy MLS (MIP-00). Inni użytkownicy pobierają te pakiety kluczy, aby zaprosić Cię do czatów grupowych w aplikacji Marmot. Wprowadź od 1 do 3 transmiterów, które akceptują zdarzenia związane z pakietami kluczy od Ciebie i zezwalają na publiczny dostęp do tych danych. + Pakiety kluczy + Zestaw odznak „Przyjęty” + Wstęp do przygody + Lektura przygody + Scena Przygody + Rekomendacje + Spotkanie + Aplikacje + RSVP Spotkania + Nagłówek audio + Ścieżka audio + Podcasty autorskie + Odznaki + Definicje odznak + Dane typu blob + Nagłówki Blob + Zablokowane Transmitery + Blogi + Autentykacja Blossom + Serwery Blossom + Lista zakładek + Transmitery Nadawcze + Kalendarz + Określenie kanału + Ukryta wiadomość kanału + Lista kanałów + Wiadomość kanału + Metadane kanału + Ukryty użytkownik kanału + Autoryzacja szachów + Wyzwania w szachach + Propozycja remisu szachowego + Akceptuj Szachy + Koniec gry + Szachy + Ruch szachów + Ogłoszenia + Komentarze + Def Społeczności + Lista społeczności + Post społeczności + Wizytówka + Data spotkania + Usunięcia + Plik DM + Wiadomość DM + Transmitery DM + Wersje robocze + Żądania treści DVM + Treść odpowiedzi DVM + Status DVM + Żądanie użytkownika DVM + Odpowiedź użytkownika DVM + Edytowane + Lista Pakietów Emoji + Pakiety emotikonów + Czat efemeryczny + Efemeryczne pokoje czatowe + Ulubione Podcasty + Ulubione Transmitery + Nagłówek pliku + Serwery Plików + Lista obserwowanych + Pakiety subskrybentów + Obserwacja geohashów + GiftWraps + Problem z Git + Łatka Git + Wniosek o zmianę + Aktualizacja PR + Odpowiedź Git + Repozytorium Git + Status Git: Zastosowano + Status Git: Zamknięty + Status Git: Szkic + Status Git: Otwarty + Obserwowane hashtagi + Wyróżnienia + Autoryzacja http + Indeks listy transmiterów + Czaty na żywo + Na żywo + Dane medyczne + Pokój spotkań + Strefa spotkań + Playlista muzyczna + Utwór muzyczny + Lista zablokowanych + Opisane zakładki + Serwery Nest + NIP + Wiadomości NIP-04 + NNS + Nostr Connect + Wpisy + Zapytanie NWC + Odpowiedź NWC + Stara lista zakładek + OTS + Transmitery wysyłające + Płatność dla + Listy osób + Zdjęcia + Pineski + Odcinek podcastu + Audycja podcastowa + Sondaż + Odpowiedź w sondażu + Transmitery Prywatne + Prywatne Zapy + Profil + Odznaki profilowe + Galeria profilu + Transmitery Proxy + Wiadomość publiczna + Reakcje + Autoryzacja transmitera + Wyszukiwanie transmiterów + Komunikat monitora transmiterów + Zestaw transmiterów + Zgłoszenia + Powtórzenia + Udostępnienia (16) + Stan pokoju + Pieczęć + Szukaj Transmiterów + Filmiki + Filmiki (odpowiedź) + Komentarze torrentów + Torrenty + Zaufani dostawcy + Zaufane Transmitery + Usuń użytkownika + Ustawienia użytkownika + Status użytkownika + Wideo + Wideo (odpowiedź) + Wiadomość głosowa + Odpowiedź głosowa + Wybudź + Zakładka + Wiki + Treningi + Cele Zap-a + Zap ankiecie + Sugestia zapa + Zapy + Znajomi + Ustawienia językowe + Dla każdej pary językowej wybierz, który język ma być wyświetlany jako pierwszy. + Ostatnio widziano %1$s temu + Ostatnio widziano przed chwilą + Nigdy nie widziano + Ostatnio widziano %1$s (%2$s temu) + Wyjdź + Zapis pliku + Katalog + + %1$d element + %1$d elementów + %1$d elementów + %1$d elementy + + + Jeszcze %1$d pozycja + Jeszcze %1$d pozycji + Jeszcze %1$d pozycji + Jeszcze %1$d pozycje + + Materiały edukacyjne + Jasny + Transmisje na żywo + Lokalne Transmitery + Lista transmiterów działających na tym urządzeniu. + Zmień miejsce na mapie + Kanały lokalizacji + Wybierz miejsce na mapie + Używasz klucza publicznego, a klucze publiczne są tylko do odczytu. Zaloguj się za pomocą klucza prywatnego, aby zwiększyć liczbę postów + Używasz klucza publicznego, a klucze publiczne są tylko do odczytu. Zaloguj się za pomocą klucza prywatnego, aby móc obserwować + Używasz klucza publicznego, a klucze publiczne są tylko do odczytu. Zaloguj się za pomocą klucza prywatnego, aby móc ukryć słowo lub zdanie + Używasz klucza publicznego, a klucze publiczne są tylko do odczytu. Zaloguj się za pomocą klucza prywatnego, aby móc odpowiedzieć + Używasz klucza publicznego, a klucze publiczne są tylko do odczytu. Zaloguj się za pomocą klucza prywatnego, aby móc wysyłać zapy + Używasz klucza publicznego, a klucze publiczne są tylko do odczytu. Zaloguj się za pomocą klucza prywatnego, aby móc pokazać wyraz lub zdanie + Używasz klucza publicznego i kluczy publicznych tylko do odczytu. Zaloguj się za pomocą klucza prywatnego, aby móc zapisać się na udział w wydarzeniu + Używasz klucza publicznego, a klucze publiczne są tylko do odczytu. Zaloguj się za pomocą klucza prywatnego, aby móc przestać obserwować + Używasz klucza publicznego i kluczy publicznych tylko do odczytu. Zaloguj się za pomocą klucza prywatnego, aby móc wgrać + Używasz klucza publicznego, a klucze publiczne są tylko do odczytu. Zaloguj się za pomocą klucza prywatnego, aby polubić posty + Filmy wideo + m + Moje pakiety emotikonów + Dodaj zdjęcie + Dodawanie %1$s… + Przyznane uprawnienia administracyjne + Uprawnienia administratora cofnięte + Zmień zdjęcie + Dodaj w ustawieniach serwer multimediów „Blossom” — grupa potrzebuje miejsca, do którego będzie można przesyłać załączniki. + Ta grupa używa zaszyfrowanych załączników + Nie udało się dodać %1$s: %2$s + Nie udało się utworzyć grupy: %1$s + Nie można rozwiązać grupy: %1$s + Nie udało się przełączyć tej grupy na tryb załączników szyfrowanych: %1$s + Nie udało się przyznać uprawnień admina: %1$s + Nie udało się opuścić grupy: %1$s + Nie udało się usunąć członka: %1$s + Nie udało się cofnąć upragnień admina: %1$s + Nie udało się zaktualizować: %1$s + Grupa MLS + Ta grupa zostanie zamknięta. Nadal można ją przeglądać. + Opuszczasz tę grupę. + Nie jesteś już członkiem tej grupy. + Grupa rozwiązana + Zakończenie działalności grupy. Grupa kończy działalność po osiągnięciu porozumienia. + Informacje o grupie zaktualizowane + + %1$d członek + %1$d członków + %1$d członków + %1$d członków + + Członek usunięty + + %1$d wiadomość + %1$d wiadomości + %1$d wiadomości + %1$d wiadomości + + Nie jest członkiem tej grupy + nieznany błąd + Dodano pliki + Pliki dodane do Twojej galerii profilu + Rozpoczęto pobieranie plików… + Offline + Online + Wolny + Serwery Multimediów + Pliki są zbyt duże dla NIP-95 + Najpierw podaj adresata wiadomości + Nie można wysłać + Temat + Wiadomości + Metadane nie mogą zostać usunięte + Nie udało się usunąć prywatnych metadanych z plików multimedialnych. Przesyłanie anulowane. + Zakładki pomyślnie przeniesione + Brakująca konfiguracja LN + Więcej opcji + Przenieś do Prywatnych + Przenieś do Publicznych + Wgraj miniaturkę + Wybierz kwadratowe zdjęcie, które posłuży jako grafika tej playlisty. + + +%1$d utwór więcej + +%1$d utworów więcej + +%1$d utworów więcej + +%1$d więcej utworów + + + %1$d utwór + %1$d utworów + %1$d utworów + %1$d utwory + + + %1$d utwór + %1$d utworów + %1$d utworów + %1$d utwory + + Wgrywanie okładki i publikacja. Proces ten będzie kontynuowany nawet po opuszczeniu ekranu. + Wgraj plik audio + Wybierz plik w formacie MP3, WAV lub FLAC. Po kliknięciu „Zapisz” zostanie on przesłany na Twój serwer multimediów. + Wgraj miniaturkę + Wybierz kwadratowe zdjęcie, które posłuży jako okładka tego utworu. + Wgraj miniaturę i plik audio, a następnie opublikuj. Proces ten będzie kontynuowany nawet po opuszczeniu ekranu. + Dźwięk włączony. Kliknij, aby wyciszyć + Wycisz powiadomienia + Wyciszone. Kliknij, aby włączyć dźwięk + Moje pliki Blossom + Moja kondycja + Moje listy + Nazwa jest wymagana + %1$dms + Ustawienia Namecoin + Tożsamość + Odczytaj swój klucz publiczny + Wiadomości + Wymieniaj wiadomości z innymi nappletami + Operacje klawiatury + Przypisz skróty klawiszowe + Powiadomienia + Wyświetl powiadomienia + Transmitery + Przeczytaj, podpisz i opublikuj swoje wydarzenia + Sieć + Pobierz zasoby sieci web i blossom + Szyfrowanie + Zaszyfruj i odszyfruj prywatne wiadomości za pomocą klucza + Schowek + Własny prywatny schowek + Motyw + Dopasuj kolory aplikacji + Wgrane + Prześlij pliki na serwer multimediów + Płatności + Opłać faktury Lightning + uprawnienia aplikacji, sygnatariusz, napplet, nsite, aplikacja internetowa, zaufanie, połączone + + obserwuje %1$d nowe konto + obserwuje %1$d nowych kont + obserwuje %1$d nowych kont + obserwuje %1$d nowe konta + + ⚠️ To obserwuje %1$s. + + Przestaje obserwować %1$d konto + Przestaje obserwować %1$d kont + Przestaje obserwować %1$d kont + Przestaje obserwować %1$d konta + + ⚠️ To spowoduje przepisanie Twojej listy obserwowanych: %1$s. + %1$s i %2$s + + wycisza jeszcze %1$d osobę + wycisza jeszcze %1$d osób + wycisza jeszcze %1$d osób + wycisza jeszcze %1$d osoby + + ⚠️ To ucisza %1$s. + + ODBLOKOWUJE %1$d osobę + ODBLOKOWUJE %1$d osób + ODBLOKOWUJE %1$d osób + ODBLOKOWUJE %1$d osoby + + ⚠️ Spowoduje to aktualizację listy wyciszonych: %1$s. Wyciszone słowa i hashtagi nie są tutaj wyświetlane — naciśnij „Pokaż wydarzenie”, aby wyświetlić pełną listę. + + Spowoduje to utworzenie listy zawierającej %1$d pozycję. Amethyst nie posiada kopii w pamięci podręcznej, z którą mógłby dokonać porównania. + Spowoduje to zapisanie listy zawierającej %1$d pozycji. Amethyst nie posiada w pamięci podręcznej kopii, z którą mógłby to porównać. + Spowoduje to zapisanie listy zawierającej %1$d pozycji. Amethyst nie posiada w pamięci podręcznej kopii, z którą mógłby to porównać. + Spowoduje to zapisanie listy zawierającej %1$d pozycje. Amethyst nie posiada w pamięci podręcznej kopii, z którą mógłby to porównać. + + Powoduje to ponowne opublikowanie istniejącej listy bez zmian. + + dodaje %1$d transmiter + dodaje %1$d transmiterów + dodaje %1$d transmiterów + dodaje %1$d transmitery + + + USUWA %1$d transmiter + USUWA %1$d transmiterów + USUWA %1$d transmiterów + USUWA %1$d transmitery + + ⚠️ To przepisuje twoją listę transmiterów: %1$s. Twoje posty i przeczytane wpisy zmieniają się wraz z tym. + ⚠️ To zaprzestaje obserwacji %1$s. + ⚠️ To odblokowuje %1$s. + + To żądanie dotyczy usunięcia %1$d wydarzenia. + To żądanie dotyczy usunięcia %1$d wydarzeń. + To żądanie dotyczy usunięcia %1$d wydarzeń. + To żądanie dotyczy usunięcia %1$d wydarzeń. + + + Zawiera %1$d tag. Naciśnij „Pokaż wydarzenie”, aby sprawdzić, co dokładnie zostanie podpisane. + Zawiera %1$d tagów. Naciśnij „Pokaż wydarzenie”, aby sprawdzić, co dokładnie zostanie podpisane. + Zawiera %1$d tagów. Naciśnij „Pokaż wydarzenie”, aby sprawdzić, co dokładnie zostanie podpisane. + Zawiera %1$d tagi. Naciśnij „Pokaż wydarzenie”, aby sprawdzić, co dokładnie zostanie podpisane. + + Ten nApplet chce odczytać Twój klucz publiczny. + Ten nApplet chce odczytać dane Twojego profilu i konta. + Ta strona chce odszyfrować wiadomość od %1$s za pomocą klucza Nostr. + Ta strona chce zaszyfrować wiadomość do %1$s za pomocą klucza Nostr. + Ten nApplet chce pokazywać Ci powiadomienia. + + Ta aplikacja nApplet chce opłacić fakturę Lightning w wysokości %1$d sat. + Ta aplikacja nApplet chce opłacić fakturę Lightning w wysokości %1$d satoszów. + Ta aplikacja nApplet chce opłacić fakturę Lightning w wysokości %1$d satoszy. + Ta aplikacja nApplet chce opłacić fakturę Lightning w wysokości %1$d satoszów. + + ⚠ Ta aplikacja nApplet ma na celu opłacenie faktury Lightning, w której NIE podano kwoty — to odbiorca płatności decyduje, jaka kwota zostanie pobrana. Zezwól na to tylko wtedy, gdy ufasz tej aplikacji. + Ta aplikacja nApplet chce podpisać i opublikować zdarzenie typu %1$d w Twoim imieniu. + Ten nApplet chce wysłać zaszyfrowane wydarzenie jako Ty. + Ta aplikacja nApplet chce podpisać i opublikować zdarzenie typu %1$d w Twoim imieniu: + Ten nApplet chce odczytywać wydarzenia z twoich transmiterów. + Ten nApplet chce pobrać zasób internetowy. + Ta witryna chce podpisać wydarzenie %1$d za pomocą Twojego klucza Nostr. + Ta aplikacja nApplet chce korzystać ze swojego prywatnego schowka. + Ten nApplet chce przesłać plik na Twój serwer multimedialny. + nApplet %1$s… + odczytaj prywatne wiadomości + przeczytaj swoje prywatne wiadomości za pomocą %1$s + zaszyfruj wiadomość + podpisz dla %1$s (typ: %2$d) + Podłączone aplikacje + nApplets + Nie można wysłać wiadomości + Wycisz tego mówcę + Przywróć mówcę + Wyjdź + Nie udało się oznaczyć pokoju jako zamkniętego. Wychodzę mimo to — pokój zostanie automatycznie zamknięty. + + %1$d słuchacz + %1$d słuchaczy + + %1$d słuchacze + + Opuść rękę + Wycisz mikrofon + Włącz mikrofon + Wycisz + Nie udało się zapisać listy serwerów Nest. Spróbuj ponownie. + Nest — Na żywo + Nests + Kontynuuje odtwarzanie dźwięku, jeżeli pokój jest otwarty. + Nest jest podłączony + Zatrzymaj + Kliknij, aby wrócić. + Obserwuj + Wycisz + Nie obserwuj + Odblokuj + opuścił nest + dołączył(a) do publiczności + wkroczył na scenę + podniosły rękę + mówi + Podnieś rękę + Włącz dźwięk + Pokoje audio + Zapisano jako zdarzenie typ-10112 z możliwością zmiany, aby inne aplikacje klienckie mogły odczytać Twoje preferencje. + Twoje serwery + Wbudowane sugestie można dodać do listy jednym dotknięciem. + Polecane serwery + Serwery Nest + nigdy + Nowa odznaka + Nowy kalendarz + Nowe wydarzenie w kalendarzu + Nowa społeczność + Moderatorzy + Transmitery + Zbanowani użytkownicy + Komentarz Wspólnoty (1111) + Długi artykuł (30023) + Post zdjęciowy (20) + Krótki tekst (1) + Krótki film (22) + Post wideo (21) + Dozwolone rodzaje zdarzeń + Maksymalna wielkość zdarzenia (opcjonalnie) + Zasady weryfikowalne (opcjonalne) + Brama zaufania (opcjonalnie) + Wielkie społeczności, zorganizowane według kanałów lub obszarów działania. + Przestrzeń robocza + Więcej opcji konfiguracji + Utwórz społeczność + Skaluje się do bardzo dużych społeczności + Podział według kanału / obszaru działania + Społeczności podzielone według kanałów + Społeczność Concord + Pojedyncze i małe grupowe czaty z ludźmi, których znasz. + 1:1–5 pomieszczeń + Nie można później dodać użytkowników + Nowa wiadomość + 1-on-1 & małe grupy + Zaszyfrowane end-to-end + Wiadomości bezpośrednie, zaszyfrowane end-to-end + Prywatna Wiadomość + Czat na żywo z każdym, kto jest właśnie online. + Na żywo + Brak historii + W zakresie transmitera + Rozpocznij czat + Porozmawiaj z osobami, które są teraz online + Nic nie zostało zapisane + Ktokolwiek jest teraz online + Czat efemeryczny + Najlepiej nadaje się do nawiązywania kontaktów z osobami przebywającymi fizycznie w danej okolicy — w Twojej dzielnicy, mieście lub regionie. + Lokalnie + Publiczny i efemeryczny – brak historii, każdy uczestnik może go odczytać. + Wybierz lokalizację + Anonimowy — to tymczasowa tożsamość przypisana do danego obszaru, nigdy nie jest to twój npub. + Kompatybilny z Bitchatem; dociera do pobliskich użytkowników na tych samych transmiterach. + Rozmawiaj z każdym, kto znajduje się w pobliżu danego miejsca, na podstawie geohashu. + Lokalizacja kanału + Większe grupy prywatne, które przerosły małe grupy DM. + Ograniczone przez urządzenie + Ograniczone przez urządzenie — nie pojawi się, jeśli zalogujesz się gdzie indziej + Utwórz Grupę + Powiększa małe DMs + Szyfrowany czat grupowy + Większe grupy prywatne + Grupa Marmot + Otwarte fora publiczne, na których każdy może publikować posty. + Niemoderowane + Tylko publiczne + Brak moderacji + Utwórz czat publiczny + Każdy może dołączyć + Prosty & łatwy do znalezienia + Wiadomości publiczne na transmiterze + Czat Publiczny + Grupy moderowane przez transmiter, na którym się znajdują. + Moderowane + Związany z tym jednym transmiterem + Pokaż grupy transmiterów + Moderowane przez transmiter + Publiczne lub prywatne + Obsługiwane przez transmiter, publiczne lub prywatne + Grupa Transmiterów + Prywatna + Zaszyfrowane grupy + Z uwzględnieniem transmitera + Nowy pakiet emotikonów + Nowy cel zbiórki + Dodaj swoje przemyślenia… + Nowe wyróżnienie + Nowy artykuł + Nowa playlista + Nowy utwór + Nowy produkt + Nowe + Nowe wątki + Nowy trening + Zawsze zezwalaj na %1$s + Offline + Podłączony + + %1$d transmiter + %1$d transmiterów + %1$d transmiterów + %1$d transmitery + + Wybierz wszystkie + Odznacz wszystko + + %1$d żądanie podpisania + %1$d żądań podpisu + %1$d żądań podpisu + %1$d żądania podpisu + + Połączenie odrzucone + Nie udało się połączyć: %1$s + Nieprawidłowy link nostrconnect:// + Ten link nie zawiera żadnego transmitera, z którym można by się połączyć + + %1$d połączona aplikacja + %1$d połączonych aplikacji + %1$d połączonych aplikacji + %1$d połączone aplikacje + + Połączono %1$s. Amethyst loguje się teraz do niej w tle. + Aplikacja połączona. Amethyst loguje się teraz do niej w tle. + Adres Bunkra skopiowany + Amethyst nie zdołała odszyfrować tej wiadomości. Być może nie jest ona adresowana do tego konta. + Pełnoekranowe komunikaty z prośbą o zatwierdzenie aplikacji, która chce, aby Amethyst podpisała, zaszyfrowała lub odszyfrowała dane przy użyciu Twojego klucza. + Żądania podpisu + Aplikacja chce się połączyć + Zatwierdzić żądanie podpisania? + Kliknij, aby przejrzeć + To konto jest przeznaczone wyłącznie do odczytu i nie ma uprawnień do logowania + Ponowne łączenie z transmiterami… + Wygenerowano nowy adres bunkra + + Nasłuchuje %1$d transmiter + Nasłuchuje %1$d transmiterów + Nasłuchuje %1$d transmiterów + Nasłuchuje %1$d transmitery + + Aplikacja zdalnego logowania + Zdalne logowanie + + %1$d zestaw aktywów + %1$d zestawów aktywów + %1$d zestawów aktywów + %1$d zestawy aktywów + + Nie znaleziono aplikacji Blossom. Zainstaluj lokalną aplikację Blossom, aby wyświetlić ten plik + Nie można otworzyć linków Blossom + Nie znaleziono aplikacji kamery na tym urządzeniu + Nie ustawiono adresu Lightning + Nie znaleziono aplikacji do obsługi tej płatności. Zainstaluj kompatybilny portfel. + Nie zainstalowano aplikacji do obsługi płatności %1$s . Zainstaluj kompatybilny portfel. + Brak wstępnie wybranych typów reakcji dla tego użytkownika. Przytrzymaj przycisk serce, aby zmienić + Nie ustawiono odzewu + Nie znaleziono portfeli do zapłacenia faktury z Lightning. Proszę zainstalować Lightning wallet, aby używać zapów + Nie znaleziono portfeli do zapłacenia faktury z Lightning (Error: %1$s). Proszę zainstalować Lightning wallet, aby używać zapów + Nie ustawiono kwoty zap-a. Naciśnij i przytrzymaj, aby zmienić + Konta aktywne w tle + Przełącznik główny do powiadomień w tle w czasie rzeczywistym. Wyłącz go, aby oszczędzać baterię — podobnie jak w trybie samolotowym. Gdy jest wyłączony, żadne konto nie pozostaje połączone w tle, a przełącznik pozostaje wyłączony (nawet po ponownym uruchomieniu urządzenia) do momentu ponownego włączenia. + Usługa powiadomień w tle + Powiadomienia + Kategorie + Dostawa + Wyświetlanie w aplikacji + Zablokuj transmiter + Powiadomienie. Kliknij, aby wyciszyć powiadomienie od tego użytkownika + Wyciszone. Kliknij, aby ponownie powiadomić tego użytkownika + teraz + Sztuka na „Nowhere” + Zrzut „Nowhere” + Wydarzenie „Nowhere” + Forum „Nowhere” + Zbiórka funduszy „Nowhere” + Strona „Nowhere” + Komunikat „Nowhere” + Petycja „Nowhere” + Sklep „Nowhere” + nSites + Nagość + Nie można utworzyć odniesienia do wydarzenia + Brak pubkey odbiorcy w notatce + Nutzaps jest publiczny i ujawniłby ten prywatny wpis. Zamiast tego użyj zap-u Lightning. + Nutzap nieudany + + Wyślij %1$s satoszy, %2$d kierunkowo + Wyślij %1$s satoszy, %2$d kierunkowo + Wyślij %1$s satoszy, %2$d kierunkowo + Wyślij %1$s satoszy, %2$d kierunkowo + + Nie skonfigurowano zaplecza łańcucha Bitcoin + Nie można wysłać transakcji + Nie można utworzyć transakcji + Nie udało się załadować Twojego salda Bitcoin + Płatność została wysłana, ale nie udało się opublikować potwierdzenia zapłaty + + Płatność wysłana (%1$d paragonu %2$d opublikowanego), ale następnego paragonu nie można opublikować + Płatności wysłane (%1$d paragonów %2$d opublikowanych), ale następnych paragonów nie można opublikować + Płatności wysłane (%1$d paragonów %2$d opublikowanych), ale następnych paragonów nie można opublikować + Płatności wysłane (%1$d paragony %2$d opublikowane), ale kolejnych paragonów nie udało się opublikować + + Udział odbiorcy jest znikomy + Nie można podpisać transakcji + ~10 min + ~30 min + ~1 godz. + Szybkie + Normalne + Wolne + %1$s · %2$s sat/vB · %3$s + + Podział na %1$d odbiorcę + Podział na %1$d odbiorców + Podział na %1$d odbiorców + Podział na %1$d odbiorców + + + Pominięto %1$d odbiorcę Lightning-address-only - on chain potrzebuje Nostr pubkey, aby uzyskać adres. + Pominięto %1$d odbiorców Lightning-address-only - on chain potrzebuje Nostr pubkey, aby uzyskać adres. + Pominięto %1$d odbiorców Lightning-address-only - on chain potrzebuje Nostr pubkey, aby uzyskać adres. + Pominięto %1$d odbiorców Lightning-address-only - on chain potrzebuje Nostr pubkey, aby uzyskać adres. + + + Użyj %1$d-kierunkowego podziału zapów dla tego wpisu + Użyj %1$d-kierunkowego podziału zapów dla tego wpisu + Użyj %1$d-kierunkowego podziału zapów dla tego wpisu + Użyj %1$d-kierunkowego podziału zapów dla tego wpisu + + transmisja + tworzenie transakcji + ładowanie salda + publikacja pokwitowania + podpisywanie + Tylko jeden głos na użytkownika jest dozwolony dla tego typu ankiety + Otwórz wszystkie odzewy na ten post + Otwarte + Port Socks Orbota + Eksplorator Bitcoin (OTS) + Istnieje dowód na to, że ten post został podpisany przed %1$s. Dowód został opatrzony pieczęcią w łańcuchu bloków Bitcoin w tym dniu i czasie. + Zgłoszono prośbę o potwierdzenie czasu publikacji tego wpisu, które oczekuje na wpisanie do łańcucha bloków Bitcoin. Zazwyczaj proces ten trwa kilka godzin. + Potwierdzenie znacznika czasu + Transmitery wysyłające + Hasło jest wymagane + Pauza + Zapłać + Wiadomość od %1$s + Dane płatności + Dodaj adresy płatności dla różnych sieci (np. bitcoin, lightning, ethereum). + Zapłać %1$s — wybierasz tam kwotę + Plik PDF zapisany w folderze Pobrane/Amethyst + Metadane listy obserwowanych są widoczne dla wszystkich użytkowników w sieci Nostr. Tylko Twoi uczestnicy prywatni są zaszyfrowani. + Metadane listy profili + Zdjęcia + Przypnij na górze + Przypnij do profilu + Odtwórz + + %1$d rozdział + %1$d rozdziałów + %1$d rozdziałów + %1$d rozdziały + + Dodaj okładkę + Kwadratowe zdjęcie dotyczące odcinka + Edytuj odcinek + Twój podcast + Dodaj plik audio + MP3, M4A lub inne audio + URL rozdziałów + + %1$d odcinek + %1$d odcinków + %1$d odcinków + %1$d odcinki + + Adres URL transkrypcji + URL wideo + Nowy odcinek + Nowy zwiastun + Publikowanie… + Autor + Kategorie + Technologia, Aktualności + Prawa autorskie: + Dodaj okładkę + Kwadratowe okładki dla swojego programu + E-mail kontaktowy + Linki do wsparcia finansowego + https://… + Język + pl + Pokaż tytuł + Mój Podcast + Strona www + + %1$d zwiastun + %1$d zwiastunów + %1$d zwiastunów + %1$d zwiastuny + + Dodaj fragment zwiastuna + Krótki fragment audio lub wideo + Błąd typu „wartość za wartość” + Podłącz portfel Nostr Wallet Connect, aby wysyłać wiadomości do odbiorców korzystających z usługi keysend (node). + Ten podcast nie ma odbiorców, płacących za niego. + Podłącz portfel Nostr Wallet Connect lub portfel debetowy, aby przesyłać satosze podczas słuchania. + Ten użytkownik nie posiada adresu Lightning + Autorzy ankiet nie mogą głosować we własnych ankietach. + (0–100)% + Ankieta jest zamknięta dla nowych głosów + Wielokrotny wybór + Opcja %1$s + + %1$d głos został oddany przed opublikowaniem ankiety i jest wykluczony. + %1$d głosów zostało oddanych przed opublikowaniem ankiety i zostało wykluczonych. + %1$d głosów zostało oddanych przed opublikowaniem ankiety i zostało wykluczonych. + %1$d głosy zostały oddane przed opublikowaniem ankiety i zostały wykluczone. + + + %1$d głosujący znajduje się na liście zablokowanych. + %1$d głosujących znajduje się na liście zablokowanych. + %1$d głosujących znajduje się na liście zablokowanych. + %1$d głosujący znajdują się na liście zablokowanych. + + + %1$d odpowiedź nie zawierała poprawnej opcji i została wykluczona. + %1$d odpowiedzi nie zawierało prawidłowej opcji i zostało wykluczonych. + %1$d odpowiedzi nie zawierało prawidłowej opcji i zostało wykluczonych. + %1$d odpowiedzi nie zawierały prawidłowej opcji i zostały wykluczone. + + + %1$d głos wpłynął po zamknięciu głosowania i został wykluczony. + %1$d głosów wpłynęło po zamknięciu głosowania i zostało wykluczonych. + %1$d głosów wpłynęło po zamknięciu głosowania i zostało wykluczonych. + %1$d głosy wpłynęły po zamknięciu głosowania i zostały wykluczone. + + + %1$d głosujący + %1$d głosujących + %1$d głosujących + %1$d głosujący + + %1$d z %2$d odpowiedzi załadowanych z %3$d transmiterów. + %1$d z około %2$d odpowiedzi załadowanych z %3$d transmiterów. + + · %1$d odpowiedź + · %1$d odpowiedzi + · %1$d odpowiedzi + · %1$d odpowiedzi + + + %1$d głos <unk> + %1$d głosów <unk> + %1$d głosów <unk> + %1$d głosy <unk> + + Pojedynczy wybór + Nie można głosować + Ankiety + Wyślij + + Ten post ma więcej niż %1$d hashtag + Ten post ma więcej niż %1$d hashtagów + Ten post ma więcej niż %1$d hashtagów + Ten post zawiera więcej niż %1$d hashtagów + + Komentarze + Odpowiedzi na artykuły, pliki i inne treści + Zawijanie wiadomości prywatnych + Pozwólmy, aby transmitery DM filtrowały spam w skrzynce odbiorczej; wydobywana jest tylko zewnętrzna otoczka, nigdy Twoja wiadomość + Artykuły & główne wydarzenia + Artykuły i główne wydarzenia; pojawiają się sporadycznie, a ich koszt jest znikomy + Inne publiczne treści + Ankiety, statusy na żywo, ogłoszenia i wszystkie inne treści publiczne + Publiczny & czat na żywo + Opóźnienia w wydobyciu zakłócają płynność rozmowy + Reakcje + Wysoki wolumen; każde polubienie zużywa baterię + Zgłoszenia + Transmitery oceniają raporty pod kątem ich kosztów + Powtórzenia + Duża liczba dla aktywnych użytkowników + Krótkie wpisy & odpowiedzi + Główne źródło spamu w sieci + Wiadomości głosowe + Publiczne wiadomości głosowe i odpowiedzi + + %1$d dzień + %1$d dni + %1$d dni + %1$d dni + + + %1$d godzina + %1$d godzin + %1$d godzin + %1$d godzin + + <1 s + + %1$d minutę + %1$d minut + %1$d minut + %1$d minut + + + %1$d sekundę + %1$d sekund + %1$d sekund + %1$d sekund + + Autor wykorzystał moc obliczeniową, aby wygenerować tę notatkę przy poziomie trudności %1$s — jest to pieczęć typu „proof-of-work”, która sprawia, że spamowanie staje się kosztowne. + Wiadomość Czatu + Zgłoś + + %1$s • wydobywanie z szybkością %2$d bitów + %1$s • wydobywanie z szybkością %2$d bitów + %1$s • wydobywanie z szybkością %2$d bitów + %1$s • wydobywanie z szybkością %2$d bitów + + + Wydobycie w systemie proof of work… (%1$d wpis w kolejce) + Wydobywanie w systemie proof of work… (%1$d wpisów w kolejce) + Wydobywanie w systemie proof of work… (%1$d wpisów w kolejce) + Dowód pracy w górnictwie… (%1$d posty w kolejce) + + Wydobywanie dowodu wykonania pracy + Anuluj + Wyświetla posty, które wciąż generują dowód pracy zgodnie ze standardem NIP-13, aby proces ten mógł się zakończyć po zamknięciu aplikacji. + Wydobywanie dowodów wykonania pracy + Wyślij teraz + + %1$d bit + %1$d bitów + %1$d bitów + %1$d bity + + + Domyślnie (%1$d bit) + Domyślnie (%1$d bitów) + Domyślnie (%1$d bitów) + Domyślne (%1$d bity) + + Twój %1$s zakończył wydobycie, ale nie mógł zostać opublikowany: %2$s + Twój %1$s zakończył wydobywanie, ale nie udało się go opublikować. Próba zostanie powtórzona przy następnym uruchomieniu aplikacji. + + %1$s • oczekuje na wydobycie przy %2$d bitach + %1$s • oczekuje na wydobycie przy %2$d bitach + %1$s • oczekuje na wydobycie przy %2$d bitach + %1$s • oczekuje na wydobycie przy %2$d bitach + + Dowód wykonania + ◆ %1$s pozostało + w każdej chwili + Podgląd obrazu karty dla %1$s + Ustawienia prywatności + Polityka Prywatności + <Unable to decrypt private message>\n\nZostałeś wspomniany w prywatnej/zaszyfrowanej rozmowie pomiędzy %1$s i %2$s. + Odbiorcze transmitery DM + Wstaw od 1 do 3 transmiterów, które będą służyć jako Twoja prywatna skrzynka odbiorcza. Inni będą używać tych transmiterów do wysyłania wiadomości DM do Ciebie. Transmitery odbiorcze DM powinny akceptować dowolne wiadomości od każdego, ale pozwalać tylko na ich pobieranie. Dobre opcje to:\n - inbox.nostr.wine (płatny)\n - you.nostr1.com (transmitery osobiste - płatny) + Użytkownik otrzymuje DM na tych transmiterach + Wiadomość prywatna + Ustaw jako prywatny: udostępnij wpis wyłącznie wskazanym użytkownikom + Odpowiedzi na wpis prywatny zawsze pozostają prywatne + Widoczny dla + Transmitery Prywatne + Wstaw od 1 do 3 transmiterów przechowujących dane zdarzeń, których nikt inny nie widzi, takich jak Wersje robocze i/lub ustawienia aplikacji. Idealnie byłoby, gdyby te transmitery były lokalne lub wymagały uwierzytelnienia przed pobraniem treści każdego użytkownika. + Ta notatka została przekazana prywatnie i nie jest podpisana. Widzą ją wyłącznie oznaczeni uczestnicy, a nikt nie może ujawnić osobom postronnym, kto ją napisał. + Notatka prywatna + Wulgaryzmy / Mowa nienawiści + Mój Profil + Odznaki w profilu + Rekomendacje aplikacji + Odznaki w profilu + Kanał Obserwowanych + Portfel Bitcoin (on-chain) + Kanał, który otrzymał Zapa + Interfejs profilu + profile + Zaproponuj zmianę + Transmitery Proxy + Transmitery agregatora, z których aplikacja musi pobierać kanały, takie jak filter.nostr.wine. To zastępuje model skrzynki nadawczej i sprawia, że aplikacja łączy się tylko z transmiterami z Twojej listy. + Czat Publiczny + Czaty publiczne są widoczne dla wszystkich użytkowników Nostr i każdy może w nich uczestniczyć. Są idealne dla otwartych społeczności skupionych wokół konkretnych tematów. Moderację można kontrolować, usuwając posty z transmiterów + Wstaw od 1 do 3 transmiterów, które obsługują tę grupę. Klienci Nostr używają tego ustawienia, aby wiedzieć, skąd pobierać wiadomości i do kogo je wysyłać. + Transmitery + Metadane Czatu Publicznego + Czaty publiczne + Publiczne transmitery domowe + Ten typ transmitera przechowuje całą zawartość. Amethyst będzie wysyłać Twoje posty tutaj, a inni będą korzystać z tych transmiterów, aby znaleźć Twoje treści. Wstaw od 1 do 3 transmiterów. Mogą to być transmitery prywatne, płatne lub publiczne. + Użytkownik publikuje swoje wpisy na tych transmiterach + Publiczna wiadomość + Publiczne transmitery odbiorcze + Ten typ transmitera odbiera wszystkie odpowiedzi, komentarze, polubienia i zapy do Twoich postów. Mogą to być płatne lub bezpłatne transmitery. Limity ustawione przez operatora transmitera mogą ograniczać otrzymywane powiadomienia, zarówno te dobre, jak i złe. Na przykład, jeśli jesteś atakowany przez spam w komentarzach, płatne transmitery mogą odfiltrować spam. Wstaw od 1 do 3 transmiterów. + Użytkownik otrzymuje powiadomienia na tych transmiterach + ID wpisu + Usuń + Zablokuj wątek + Przekaż + Udostępnij link przeglądarki + Odblokuj wątek + Ocena: %1$s na 5 + Reakcję + Reakcje + Ustawienia reakcji + Odczytaj z Transmitera + Ilość w bajtach, która została otrzymana z tego transmitera, w tym filtry i wydarzenia + "Tylko do odczytu" + Kliknij i przytrzymaj aby nagrać wiadomość + + Trzyma również %1$d inną rzecz. + Trzyma również %1$d innych rzeczy. + Trzyma także %1$d innych rzeczy. + Trzyma również %1$d inne rzeczy. + + Zawsze, na wszystkie transmitery + Amethyst będzie logować się jako %1$s na każdy transmiter, który o to poprosi, i przestanie wysyłać takie zapytania. Transmitery, które zablokowałeś, oraz te, dla których ustawiłeś opcję „nigdy nie loguj się”, pozostaną bez zmian. Możesz to zmienić w sekcji „Logowanie do transmiterów”. + Zalogować się do każdego transmitera? + Zawsze się loguj + \u2026wysyłam wiadomość do osoby, którą obserwuję + \u2026piszę do wszystkich pozostałych + \u2026to mój transmiter lub pokój, do którego dołączyłem lub który obserwuję + Czytam wpis osoby, którą obserwuję + Zawsze, ustawione przez Ciebie + Nigdy, ustawione przez Ciebie + + %1$s i %2$d inny + %1$s i %2$d innych + %1$s i %2$d innych + %1$s i %2$d inne + + Nigdy + Nigdy nie loguj się do żadnych transmiterów + Amethyst przestanie informować transmitery, że jesteś %1$s, i przestanie o to pytać. Niektóre transmitery odmówią obsługi: wiadomości, odpowiedzi i powiadomienia mogą nie zostać dostarczone. Transmitery, dla których ustawiono opcję „Zawsze loguj się”, pozostaną w tym trybie. Możesz to zmienić w sekcji „Logowanie do transmiterów”. + Nigdy nie logować się do żadnego transmitera? + Zawsze uwierzytelniaj + Poświadcz autoryzację dla każdego transmitera, który o to poprosi + Niestandardowa + Wybierz dokładnie, do których transmiterów chcesz się zalogować. Zostaniesz zapytany o wszystko, na co nie wyraziłeś zgody poniżej. + Nigdy nie uwierzytelniaj + Ignoruj żądania uwierzytelnienia ze wszystkich transmiterów + twoja skrzynka odbiorcza + twój własny transmiter + twoje odpowiedzi + ten transmiter + pokój, w którym publikujesz posty + osoby, które czytasz + pokój, który czytasz + twoje wiadomości + konwersacja + auth uwierzytelnianie transmiter podpis weryfikacja nip-42 tożsamość + Uwierzytelnianie transmitera + Czat Transmitera + Czaty transmiterów to grupy czatów kontrolowane przez ich macierzyste transmitery. + Są one widoczne dla wszystkich użytkowników Nostr i każdy może w nich uczestniczyć. + Świetnie nadają się do tworzenia otwartych społeczności wokół określonych tematów. Niektóre z tych grup są efemeryczne + i dlatego wiadomości czatu znikają z czasem + Czaty Transmitera + Twój profil, ustawienia i wersje robocze na Twoich domowych transmiterach. + Transmitery, na których każda społeczność publikuje swoje plany. + Transmitery skrzynek odbiorczych DM, gdzie dostarczane są zawijane wiadomości DM. + Wiadomości grupowe i pakiety kluczy na transmiterach poszczególnych grup. + Monitoruje aktualnie wyświetlane wydarzenia pod kątem nowych odpowiedzi, reakcji, udostępnień, zapsów i zgłoszeń, dzięki czemu liczby są aktualizowane na bieżąco podczas czytania. + Czaty, w których nie jest zapisywana historia — wiadomości są dostępne tylko wtedy, gdy użytkownik jest podłączony, więc aby otrzymywać jakiekolwiek wiadomości, należy pozostać subskrybentem. + Listy obserwacji, używane do budowania Twojego kanału i Twojej sieci WoT. + Pokoje powiązane z lokalizacją dla obszarów, które obserwujesz, wymagane od transmiterów, które je obsługują. + Posty osób, które obserwujesz, są pobierane z transmiterów, na których każda z nich publikuje swoje treści. + Czatuj i zap cele powiązane z transmisjami na żywo, które masz otwarte lub które obserwujesz. + Transmitery pokoju, dopóki jest otwarty. + Sprawdza na różnych transmiterach, na których istnieją serwisy typu „mint”, oraz które z nich są polecane przez użytkowników. + Raporty sporządzone przez obserwowanych przez Ciebie użytkowników na temat profili wyświetlanych obecnie na ekranie, uzyskane z poszczególnych transmiterów, na których publikują ci użytkownicy. + Twoje transmitery skrzynek odbiorczych oraz niewielka, zmieniająca się próbka transmiterów, na których publikują osoby, które obserwujesz – na wypadek, gdyby wzmianka została dostarczona gdzie indziej. + Monitoruje transmitery Nutzap, a także transmitery skrzynek odbiorczych i wiadomości prywatnych, dzięki czemu żadna płatność nie umknie. + Powiadomienia z podłączonego portfela. + Profile osób znajdujących się obecnie na ekranie. + Transmiter domowy każdego czatu, który masz otwarty lub do którego dołączyłeś. + Pobiera wydarzenia na podstawie identyfikatora, do których odnosi się jakiś element na ekranie, ale których jeszcze nie masz — cytat, wiadomość nadrzędna odpowiedzi, początek wątku. + Grupy NIP-29, do których dołączyłeś. Każda grupa działa na jednym transmiterze, więc aplikacja łączy się z każdym transmiterem, na którym znajduje się jakaś Twoja grupa. + Ustala, na jakich transmiterach poszczególne osoby publikują swoje treści, dzięki czemu ich posty mogą być pobierane z właściwego miejsca. + Własne zdarzenia z portfela, odczytane z transmiterów, na których zostały opublikowane. + Utwórz grupę + Usuń grupę + Usunąć "%1$s"? To usuwa grupę i jej historię dla wszystkich i nie może być cofnięte. + Edytuj grupę + Prywatna + Tylko członkowie mogą czytać wiadomości. + + %1$d członek + %1$d członków + %1$d członków + %1$d członkowie + + + %1$d grupa + %1$d grup + %1$d grup + %1$d grupy + + Grupy Transmiterów + Tytuł + Grupy Transmiterów + Wydarzenia + Adresy IP + Typy + Użytkownicy + Ustawienia + Dodatki + Przeglądanie + Czaty społecznościowe + Kanały społecznościowe + Skrzynka odbiorcza DM + Obserwowanie wydarzeń + Czaty efemeryczne + Czaty z funkcją lokalizacji + Główny kanał + + %1$s \u00b7 %2$d transmiter + %1$s \u00b7 %2$d transmiterów + %1$s \u00b7 %2$d transmiterów + %1$s \u00b7 %2$d transmitery + + Czat podczas transmisji na żywo + Multimedia + Katalog Mint + Skrzynka odbiorcza Nutzap + Podłącz portfel + Obserwowanie profili + Inne + Wyszukiwanie brakujących wydarzeń + Grupy Transmiterów + Informacje o transmiterze + Wyszukiwarka listy transmiterów + Zgłoszenia od obserwujących + Szukaj + Hashtagi + Rozmowa + Tematy + Dane konta + Portfel + Ustawienia Transmiterów + listy wychodzące + Transmitery + Doładuj & wyślij zapa + Wyślij zapa + Doładuj %1$s satoszy do %2$s i zap %3$s %4$s satoszy · opłata ≈ %5$s satoszy + Usuń + Usuń z wiadomości + Usuń z publicznych zakładek + odpowiedz tutaj.. + Powiadom: + + Poproś o usunięcie + Prośba o usunięcie + Nie można zresetować stanu Marmota: %1$s + Zresetuj stan marmota + Reset stanu Marmota. + Aktywność (7 dni) + W ostatnim czasie Amethyst zużył więcej zasobów, niż oczekiwano: %1$s. Czy chcesz wysłać raport dotyczący zużycia do twórców w zaszyfrowanej wiadomości prywatnej? Przed wysłaniem zobaczysz pełną treść raportu. + W międzyczasie rozładowała się bateria (całe urządzenie) + Połączenia transmiterów utrzymywane po zamknięciu + Usługa powiadomień w tle + + %1$d startuje + %1$d startuje + %1$d startuje + %1$d startują + + Czas pracy + Rozpoczęcie działania aplikacji + Zużycie baterii (w aplikacji/tle) + Dane wg funkcji (7 dni) + Dane komórkowe wg funkcji (7 dni) + Czas rozmów + Czas wykorzystania procesora + Wiadomości odszyfrowane + Aktywny czas transferu + Żądania sieci Web + Internet mobilny (MB) + Wi-Fi (MB) + Wykrywanie lokalizacji + Czas odtwarzania multimediów + Adresowalne wydarzenia w pamięci + Listy czatów w pamięci + Klasa pamięci urządzenia + Pamięć aplikacji (heap) + Pamięć podręczna (RAM) obrazu + Image cache (disk) + Pamięć rodzima + Notatki w pamięci + Pamięć teraz + Profile w pamięci + Czas w pokojach audio + Wydobycie Proof-of work + Wybudzanie radiowe podczas pobierania (szacunkowo) + %1$s danych komórkowych w tle w ciągu jednego dnia + + aplikacja uruchomiła się ponownie %1$d w ciągu jednego dnia + aplikacja uruchomiła się ponownie %1$d razy w ciągu jednego dnia + aplikacja uruchomiła się ponownie %1$d razy w ciągu jednego dnia + aplikacja uruchomiła się ponownie %1$d razy w ciągu jednego dnia + + %1$s połączeń z transmiterem w ciągu jednego dnia, gdy aplikacja działała w tle przy połączeniu komórkowym + + aplikacja ponownie połączyła się z transmiterami %1$d raz w ciągu dnia + aplikacja ponownie połączyła się z transmiterami %1$d razy w ciągu jednego dnia + aplikacja ponownie połączyła się z transmiterami %1$d razy w ciągu jednego dnia + aplikacja ponownie połączyła się z transmiterami %1$d razy w ciągu jednego dnia + + procesor pozostawał w stanie czuwania przez %1$s w celu przetwarzania powiadomień w ciągu jednego dnia + Ponowne połączenia transmiterów (nieudane) + Czas połączenia z transmiterem + \u2026 w tle na komórce + Zdalne podpisy + Czas wg ekranu (7 dni) + bateria, dane, zużycie, moc, diagnostyka sieci, rejestr + Udostępnij deweloperom + Udostępnij + Zdjęcia + Portfel & zaps + Weryfikacja adresu + Inne + Podgląd linku + Rejestracja Push + Synchronizacja Transmiterów + Wgrane + Audio & wideo + Średnia liczba połączeń z transmiterem + Bateria / godz. w aplikacji + Komórka dzisiaj + Dane / godz. w aplikacji + W aplikacji dzisiaj + Czas transmitera dzisiaj + Wi-Fi dzisiaj + Wykorzystanie zasobów aplikacji + Czas działania sieci Tor + Wbudowany Tor + Dane dziennie + Podpisy zweryfikowane + Przetwarzanie powiadomień (procesor w stanie czuwania) + Uruchomione zadania w tle + Ponów + Listy kalendarzy + Kalendarze + Szachy + Eksploracja + Start + Import Obserwowanych + Multimedia + Wiadomości + Playlisty + Muzyka + Powiadomienia + Odcinki + Podcasty + Zaplanuj post + Anuluj planowanie + Wpisy zaplanowane mogą nie zostać opublikowane, dopóki nie uruchomisz ponownie aplikacji. +Zaplanowane posty z innych kont nie zostaną opublikowane, dopóki to konto jest aktywne. Włącz opcję „Zawsze włączone” w menu Ustawienia → Preferencje interfejsu użytkownika, aby zapewnić niezawodne planowanie zadań w tle. + Zaplanowane posty mogą nie zostać opublikowane, dopóki nie uruchomisz ponownie aplikacji. Aby zapewnić niezawodne planowanie zadań w tle, włącz opcję „Zawsze włączone” w Ustawieniach → Preferencje dotyczące niezawodnego planowania zadań w tle. + Zaplanowane posty + Wyślij teraz + %1$s · w %2$s + %1$s · %2$s temu + Jutro + Błąd: %1$s + Identyfikator notatki skopiowany + + Wylogowano · %1$d zaplanowany post został usunięty + Wylogowano · %1$d zaplanowanych postów zostało usuniętych + Wylogowano · %1$d zaplanowanych postów zostało usuniętych + Wylogowano · %1$d zaplanowane posty zostały usunięte + + Wylogowano + + Masz %1$d zaplanowany post, który nie został jeszcze opublikowany. Wylogowanie spowoduje jego usunięcie. + Masz %1$d zaplanowanych postów, które nie zostały jeszcze opublikowane. Wylogowanie spowoduje ich usunięcie. + Masz %1$d zaplanowanych postów, które nie został jeszcze opublikowane. Wylogowanie się spowoduje ich usunięcie. + Masz %1$d zaplanowane posty, które nie zostały jeszcze opublikowane. Wylogowanie spowoduje ich usunięcie. + + Nieudana publikacja zaplanowanego postu + Opublikowano zaplanowany post + + do %1$d transmitera + na %1$d transmiterów + na %1$d transmiterów + na %1$d transmitery + + Anulowano + Nie udało się + Zaplanowane + Wysyłanie… + Wysłano + + · %1$d do wysłania za godzinę + · %1$d do wysłania za godzinę + · %1$d do wysłania za godzinę + · %1$d do wysłania za godzinę + + + %1$d w kolejce + %1$d w kolejce + %1$d w kolejce + %1$d w kolejce + + Dobre opcje to:\n%1$s + Transmitery wyszukujące + Transmitery wyszukujące + Lista transmiterów używanych podczas wyszukiwania treści lub użytkowników. Tagowanie i wyszukiwanie nie będą działać, jeśli nie będą dostępne żadne opcje. Upewnij się, że zaimplementowano NIP-50. + wydarzenia podlegające wyszukiwaniu + Tajny klucz (nsec) skopiowany do schowka + Nie zablokowałeś jeszcze żadnych użytkowników. + Filtry bezpieczeństwa + Brak ukrytych słów. Wpisz poniżej słowo, aby ukryć posty, które je zawierają. + Zablokowane treści + Preferencje filtrowania + W tej sesji żadne konta nie zostały oznaczone jako spam. + Wyślij + Przesyłaj wszystkie otrzymane wydarzenia profilu (typ 0) do lokalnego transmitera + Prześlij profile do lokalnego transmitera + Kwota dla tego odbiorcy: %1$s satoszy + Płatność nieudana + Transakcja: %1$s + Płatność za pomocą %1$s… + Serwer nie podał adresu URL po załadowaniu + Ustawienia + Brak zablokowanych wątków + Zablokowane wątki + Wygląd + Ogólne + Zawartość kanału + Widoczne karty + Media & Dane + Sekcje & Wątki + Przypomnienia + Połączenie + Przejście przez Tor + Udostępnij jako obrazek + Udostępnij jako adres Url obrazu + Wgraj HLS + Udostępnij lub zapisz + Filmiki + Pokaż zaszyfrowany kod QR klucza prywatnego + W zakładce „Powiadomienia” znajdują się zarówno wiadomości bezpośrednie, jak i grupowe. Wyłącz tę opcję, aby wiadomości były wyświetlane wyłącznie w zakładce „Wiadomości”. + Pokaż wiadomości + Pokaż kod QR klucza prywatnego + Prośba o zalogowanie została odrzucona + Upewnij się, że aplikacja logującego autoryzuje tę operację + Sygnatariusz zewnętrzny zwrócił dane, które są niezgodne z żądaniem. Być może wystąpił błąd w Amethyst lub w samym sygnatariuszu. + Nie odnaleziono sygnatariusza + Czy aplikacja sygnatariusza została odinstalowana? Sprawdź, czy aplikacja sygnatariusza jest zainstalowana i czy ma to konto. Wyloguj się i zaloguj ponownie, jeśli aplikacja sygnatariusza uległa zmianie. + Cofnij %1$d sekund + Przewiń %1$d sekund + Aplikacje + Spam + Liczba spamu z tego transmitera + Spamerzy + Wyświetl dwie zakładki powiadomień — „Obserwowani” (osoby, które obserwujesz) oraz „Wszyscy”. Wskaźnik nieprzeczytanych powiadomień świeci się tylko w przypadku aktywności osób, które obserwujesz. + Podział powiadomień według obserwowanych + Próba usunięcia prywatnych metadanych z obsługiwanych plików multimedialnych przed przesłaniem + Usuń prywatne metadane + Odczytuje zakończone treningi z aplikacji Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) i proponuje udostępnienie ich w formie wpisu. O zgodę prosi się wyłącznie podczas nawiązywania połączenia. + Zaproponuj treningi, którymi warto się podzielić + Automatyczny + Motyw + Motyw ciemny, jasny lub automatyczny + Ta wiadomość zniknie za %1$s + + +%1$d\nodpowiedź + +%1$d\nodpowiedzi + +%1$d\nOdpowiedzi + +%1$d\nodpowiedzi + + Dzisiaj + Niestandardowy + Stwórz swój własny + Domyślne + Ukryj swój adres IP przed przypadkowymi transmiterami + Orbot + Pełna prywatność + Ukryj swój adres IP przy wszystkich połączeniach + Wewnętrznie + Wył. + Tor wstępne ustawienia prywatności + Szybka modyfikacja wszystkich ustawień poniżej + Wszystko oprócz mediów + Ukryj swój adres IP wszędzie oprócz zdjęć i filmów + Transmitery DM + Zmuś Tor do wysyłania i odbierania DM + Zdjęcia + Wymuś Tor podczas ładowania zdjęć + Wgrywanie mediów + Wymuś Tor podczas wgrywania zawartości + Operacje finansowe + Wymuś Tor przy zapsach, transferach lightning and cashu + Niewiarygodne Transmitery + Wymuś Tor na transmiterach skrzynki odbiorczej/nadawczej + Weryfikacja adresu Nostr + Wymuś Tor podczas weryfikacji adresów NIP-05 + Adres Onion /Transmitery + Użyj Tor dla dowolnego adresu .onion + Zdjęcia profilu + Wymuś Tor podczas ładowania zdjęć profilu + Zaufane Transmitery + Wymuś Tor na wszystkich transmiterach na listach + Podgląd adresu URL + Wymuś Tor podczas wczytywania podglądu url + Filmy wideo + Wymuś Tor podczas ładowania filmów + Podstawowe + Użyj Tor, gdy jest wymagany przez serwer + Nie udało się otworzyć pliku + Brak zainstalowanych aplikacji torrent do otwarcia i pobrania pliku. + Zdarzenie nie ma wystarczającej ilości informacji, aby zbudować link magnetyczny + Podczas wysyłania zdarzeń korzystaj z monitora transmisji. Pokazuje postęp na żywo i status transmisji podczas nadawania. + Monitorowane transmisje + Przetłumacz na + Wybierz język, na który chcesz przetłumaczyć treść. + Tłumaczenia + Zaufane Transmitery + Transmitery, którym ufasz, nie potrzebujesz połączenia Tor + Kompletny + Pełny + Dynamiczny + Szybki + Uproszczony + Prosty + Ustawienia interfejsu + Tryb interfejsu + Wybierz styl wpisu + Nie można utworzyć faktury przed wysłaniem zapa. Portfel odbiorcy wysłał następujący błąd: %1$s + Nie można udostępnić obrazu, spróbuj ponownie później… + Nie można udostępnić filmu, spróbuj ponownie później… + Nieautoryzowane odszyfrowywanie + Sygnatariusz nie autoryzował deszyfrowania wymaganego do wykonania tej operacji. Aktywuj deszyfrowanie NIP-44 w aplikacji logującej i spróbuj ponownie + Nie obserwuj + Nie obserwuj tej lokalizacji + Wyłącz wyciszenie powiadomień + Odepnij + Odepnij z profilu + Anulowano przesyłanie + Błąd przesyłania + Nie udało się przesłać głosu: %1$s + Nie udało się przesłać wiadomości głosowej + NIP-95 nie jest jeszcze dostępny dla wiadomości głosowych + Czas działania %1$d%% + Aktywny silnik Tor + Użyj wersji wewnętrznej lub Orbota + Użytkownik nie ma skonfigurowanego adresu LN, aby odbierać satosze + Użytkownik %1$s nie ma skonfigurowanego adresu LN, aby odbierać satosze + Wyczyść historię + Wysłano prośbę o usunięcie + Lepsza jakość przy mniejszych rozmiarach plików, lecz nie wszystkie urządzenia obsługują odtwarzanie H.265. + Użyj kodeka H.265/HEVC + Rozpoczęto pobieranie wideo… + Przyciski odtwarzacza wideo + Film zapisany w galerii filmów + Wiadomość głosowa + Niska + Wysoka + Neutralna + Brak + Odpowiedź głosowa + Portfel + Portfel Cashu (NIP-60) + Nie udało się odczytać stanu konta + Podłącz portfel + Amethyst nie mógł odszyfrować odpowiedzi Twojego portfela — portfel może używać innego klucza + + Twój portfel nie odpowiedział w ciągu %1$d sekundy. Płatność mogła lub nie została zrealizowana — sprawdź swój portfel przed ponowną próbą. + Twój portfel nie odpowiedział w ciągu %1$d sekund. Płatność mogła lub nie została zrealizowana — sprawdź swój portfel przed ponowną próbą. + Twój portfel nie odpowiedział w ciągu %1$d sekund. Płatność mogła lub nie została zrealizowana — sprawdź swój portfel przed ponowną próbą. + Twój portfel nie odpowiedział w ciągu %1$d sekund. Płatność mogła lub nie została zrealizowana — sprawdź swój portfel przed ponowną próbą. + + Twój dostawca połączenia z portfelem zwrócił następujący błąd: %1$s + Twój dostawca usługi Wallet Connect wysłał odpowiedź, której Amethyst nie zdołała odczytać. + Twój portfel odpowiedział czymś, czego Ametyst nie rozpoznaje (%1$s) + Edytuj portfel Cashu + Nie udało się utworzyć faktury + Twój portfel nie zwrócił faktury + Nie można dotrzeć do Twojego portfela: %1$s + Upłynął limit czasu żądania portfela + + Przekroczono limit czasu żądania portfela — %1$d odpowiedź została odrzucona, ponieważ została podpisana nieoczekiwanym kluczem. Twój transmiter może być niezaufany. + Przekroczono limit czasu żądania portfela — %1$d odpowiedzi zostały odrzucone, ponieważ zostały podpisane przez nieoczekiwany klucz. Twój transmiter może być niezaufany. + Przekroczono limit czasu żądania portfela — %1$d odpowiedzi zostało odrzuconych, ponieważ zostały podpisane przez nieoczekiwany klucz. Twój transmiter może być niezaufany. + Przekroczono limit czasu żądania portfela — %1$d odpowiedzi zostały odrzucone, ponieważ zostały podpisane przez nieoczekiwany klucz. Twój transmiter może być niezaufany. + + Nie udało się wczytać transakcji + Nie udało się wczytać kolejnych transakcji + Wyświetla komunikat ostrzegawczy, gdy posty zostały zgłoszone przez 5 lub więcej obserwowanych osób + Ostrzeżenie o zgłoszeniach + Dodaj zakładkę + Edytuj zakładkę + Zakładki + Co masz na myśli? + + %1$d aktywność + %1$d aktywności + %1$d aktywności + %1$d aktywności + + Treningi + Napisz wiadomość… + Zapisz do Transmitera + Ilość w bajtach, która została wysłana do tego transmitera, w tym filtry i wydarzenia + Zap + Płatność za przekazanie + Gdy autor opublikuje metodę płatności, którą można otworzyć w aplikacji na tym telefonie (Venmo, Monero, numer IBAN…), selektor zapów może ją zaproponować. Kliknięcie tej opcji otwiera odpowiednią aplikację, która prosi o podanie kwoty — żadne dane nie są przekazywane do transmiterów, więc liczba zapów we wpisie nie ulega zmianie. + Oferowane przez autora metody płatności + Zapy + + Zmień nazwę + Zapisz diff --git a/commonsUI/src/commonMain/composeResources/values-pt-rBR/strings.xml b/commonsUI/src/commonMain/composeResources/values-pt-rBR/strings.xml index f2333508de..adae430c1e 100644 --- a/commonsUI/src/commonMain/composeResources/values-pt-rBR/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-pt-rBR/strings.xml @@ -2818,4 +2818,2135 @@ Publicar persona Segue você Bot + Sobre e Jurídico + Azul + Verde + Laranja + Rosa + Roxo + Vermelho + Configurações da Conta + + %1$d filtro + %1$d filtros + + + %1$d grupo + %1$d grupos + + + %1$d Relé + %1$d Relés + + assinaturas subscriptions filtros relays requisições reqs conexões por que diagnóstico + %1$d%% de todos + Assinaturas de relay ativas + + %1$d filtro ainda não foi atribuído + %1$d filtros ainda não foram atribuídos + + Adicionar + Adicionar um Servidor de Blossom + Adicionar um servidor NIP-96 + Quando ativado, o Amethyst anexa uma tag de cliente NIP-89 aos eventos que você publica. + Adicionar tag de cliente aos meus eventos + Adiciona aviso de conteúdo sensível antes de mostrar este conteúdo + Conteúdo sensível + Adicionar às Mensagens + Adicionar aos Itens Salvos Públicos + Usa um modelo de IA no dispositivo para sugerir correções de texto e mudanças de tom. + Sugerir melhorias de texto + Mantém as conexões com seus relays de caixa de entrada ativas para notificações em tempo real + + Conectado a %1$d relay de entrada + Conectado a %1$d relays de entrada + + + Conectado a %1$d relay + Conectado a %1$d relays + + Conectando aos relays de caixa de entrada\u2026 + Ocultar detalhes + Mostrar detalhes + Desligado + Ligado + Notificações do Amethyst ativas + Você foi adicionado a %1$s + Notifica você quando alguém menciona ou destaca você em um artigo + %1$s mencionou você em um artigo + %1$s destacou seu artigo + Artigos e destaques + Novos artigos + Notifica você quando você ganha um selo + Você ganhou um selo + Concedido por %1$s + Selos + Novos selos + Notificações de chamadas de voz e vídeo recebidas + Chamadas recebidas + %1$s aceitou seu desafio de xadrez + Notifica você sobre eventos de jogos de xadrez + Xadrez + Atualizações de xadrez + %1$s jogou — a sua vez + Notifica você sobre issues, patches e pull requests + %1$s abriu um issue + %1$s enviou um patch + %1$s abriu um pull request + %1$s atualizou um pull request + %1$s comentou + %1$s mesclou/resolveu um tópico + %1$s resolveu um issue + %1$s aplicou um patch + %1$s mesclou um pull request + %1$s fechou um tópico + %1$s fechou um issue + %1$s fechou um patch + %1$s fechou um pull request + %1$s marcou um tópico como rascunho + %1$s reabriu um tópico + Código e Git + Nova atividade de código + Notifica você quando chega uma mensagem privada + Mensagens privadas + Novas mensagens + Conteúdo + Desenvolvedor + Jogos + Mensagens + Pagamentos + Social + Marcar como lida + Eu + Notifica você quando alguém menciona você em uma foto ou vídeo + %1$s compartilhou uma foto + %1$s compartilhou um vídeo + Mídia + Nova mídia + Notifica você quando alguém menciona ou cita você em uma publicação + %1$s mencionou você + Menções + Novas menções + Nova mensagem + Nutzap de %1$s + Zap onchain de %1$s + Notifica você quando sua carteira conectada recebe um pagamento que não é um zap do Nostr + Recebidos %1$s sats + Pagamentos recebidos + Novos pagamentos + %1$s fez uma pergunta + Notifica você quando alguém reage à sua publicação + %1$s reagiu à sua publicação + para %1$s + Reações + Novas reações + Notifica você quando alguém responde à sua publicação + Respostas + Novas respostas + Responder + Notifica você quando alguém reposta sua publicação + %1$s repostou sua publicação + Repostagens + Novos reposts + Notificações quando um post agendado é publicado ou falha ao publicar. + Posts agendados + Notifica quando alguém te manda um zap + %1$s sats + por %1$s + De %1$s + Zaps Recebidos + Novos zaps + Configurações do App + Atestação + Solicitação de atestação + Competência do atestante + Recomendação do atestante + + Adicionar %1$d pessoa mesmo assim + Adicionar %1$d pessoas mesmo assim + + + Adicionar %1$d pessoa + Adicionar %1$d pessoas + + Já adicionado + Silenciado + Membro privado + Somente você — escolha quem mais pode ver isto + Adicione pessoas para notificar + + Isso daria %1$d pessoa. O Amethyst adiciona no máximo %2$d por vez — desmarque algumas. + Isso daria %1$d pessoas. O Amethyst adiciona no máximo %2$d por vez — desmarque algumas. + + Enviar de forma privada + + Esta nota será criptografada e entregue %1$d vez separada, uma por pessoa. Com um assinador externo, isso significa uma aprovação para cada. + Esta nota será criptografada e entregue %1$d vezes separadas, uma por pessoa. Com um assinador externo, isso significa uma aprovação para cada. + + + %1$d pessoa receberá uma notificação sobre esta publicação. + %1$d pessoas receberão uma notificação sobre esta publicação. + + + %1$s, %2$s e mais %3$d + %1$s, %2$s e mais %3$d + + Visualizador de áudio + Salva um evento de rascunho automaticamente quando você digita ou sai do compositor com texto não enviado e envia para seus relays de saída privados. + Criar rascunhos automaticamente + Rolagem Imersiva + Ocultar as barras de navegação ao rolar + Pré-visualizar imagens + Carregar automaticamente imagens e GIFs + Reproduzir vídeos automaticamente + Reproduz automaticamente vídeos e GIFs + Foto de Perfil + Mostrar fotos de perfil + Pré-visualizar URL + Mostrar visualizações de URL + Reprodução automática de vídeos + Reproduzir vídeos automaticamente quando visíveis na tela + Não foi possível remover os metadados do AVIF: %1$s + Conceder selo + Voltar + Backup das chaves + Selos + Autenticação falhou + A autenticação biométrica falhou ao autenticar o proprietário deste telefone + A autenticação biométrica falhou ao autenticar o proprietário deste telefone. Erro: %1$s + Bloquear + Relays bloqueados + O Amethyst nunca se conectará a esses relays + Usuários + Uma sincronização de arquivos já está em andamento. Tente importar novamente quando ela terminar. + Desativar todos + Ativar todos + + %1$d arquivo + %1$d arquivos + + + Encontrado %1$d arquivo para importar para os seus servidores. + Encontrados %1$d arquivos para importar para os seus servidores. + + + Importar %1$d arquivo + Importar %1$d arquivos + + Não está em todos os servidores + Em todos os servidores + + Pagar %1$d sat + Pagar %1$d sats + + Este servidor exige pagamento para enviar: %1$s + Cancelar + Mostra o progresso enquanto seus arquivos são copiados entre seus servidores Blossom. + Sincronização Blossom + Copiando seus arquivos entre servidores… + Ofertas BOLT12 + Adicione uma ou mais ofertas BOLT12 (lno1…). Elas são compartilhadas publicamente, então qualquer pessoa pode pagar você. + Falha no pagamento BOLT12: %1$s + Pagamento BOLT12 enviado + Erro no zap BOLT12 + Pago via BOLT12, mas o comprovante de pagamento não foi validado, então nenhum recibo de zap foi publicado. + Pago via BOLT12, mas a carteira não retornou nenhum comprovante, então nenhum recibo de zap foi publicado. + Nova lista de favoritos + Metadados da lista de favoritos + Os metadados das listas de favoritos podem ser vistos por qualquer pessoa no Nostr. Somente seus membros privados são criptografados. + Itens Salvos + Impulsionar + Apps e Web + Conversas e Grupos + Feeds + Principal + Outros + Você + Barra de navegação inferior + Adicionar + Adicionado + Nenhum favorito ainda. Marque um app com estrela no navegador para adicioná-lo aqui. + Nenhum grupo ingressado ainda. + Relays de broadcast + Relays especializados em enviar suas notas para todos os outros relays, como sendit.nosflare.com. O Amethyst adicionará esse relay a todos os novos eventos criados por você + Navegador + Favoritos + Descobrir web apps + Carregando pela web aberta. Toque para usar o Tor. + Carregando pelo Tor. Toque para usar a web aberta. + Arquivar canal + Novo canal + Excluir canal + Excluir “%1$s”? Isso remove o canal e suas mensagens para todos e não pode ser desfeito. + Canal privado + Oculto da lista de canais e apenas por convite. Desligado significa que qualquer pessoa neste relay pode encontrá-lo e entrar. + Desarquivar canal + + %1$d conversa oculta + %1$d conversas ocultas + + + Ver mais %1$d conversa + Ver todas as %1$d conversas + + Editar + Novo fórum + Fixar canal + %1$s e %2$s estão digitando… + Desafixar canal + Aprovada + Cancelada + Negada + Falhou + Precisa de aprovação + Na fila + Entregue + Trabalhando + + %1$s, %2$d evento + %1$s, %2$d eventos + + Falha no envio da imagem + A imagem escolhida não pôde ser enviada. Tente novamente ou cole uma URL. + Compartilhar evento de calendário + Abrir no mapa + Abrir link + Acontecendo agora + %1$s · termina %2$s + + Começa em %1$d minuto + Começa em %1$d minutos + + Aviso quando um evento do qual você participa está prestes a começar. + calendar_reminders + Lembretes de calendário + Evento de calendário + Uma notificação é disparada quando um evento do qual você participa está prestes a começar. + Enviar lembretes + + %1$d min + %1$d min + + Lembretes de calendário + Dia + Feed + Mês + Semana + Aceitar + Bluetooth + Câmera desligada + Câmera ligada + Auricular + Desligar + Chamada recebida + Chamada de vídeo recebida\u2026 + Chamada de voz recebida\u2026 + Silenciar + Chamadas + Notificação de chamada em andamento + O Amethyst precisa de acesso à câmera e ao microfone para iniciar uma chamada de vídeo. Habilite-os nas configurações do aplicativo. + O Amethyst precisa de acesso ao microfone para iniciar uma chamada de voz. Habilite-o nas configurações do aplicativo. + Rejeitar + Compartilhar tela + Parar de compartilhar tela + Compartilhando tela + Configurações de Chamada + Alto-falante + Ativar som + Chamada com %1$s + URL de retorno de chamada não encontrado da resposta %1$s + Cancelar + Token Cashu + Verificando o mint… + Não foi possível resgatar o Cashu + O Mint forneceu a seguinte mensagem de erro: %1$s + Recebido + Enviado + Mints correspondentes + + +%1$d mais + +%1$d mais + + Mints populares + + Recomendado por %1$d outro + Recomendado por %1$d outros + + %1$s sat movidos para %2$s. + Nenhuma carteira Cashu compatível encontrada no sistema + + %1$d fatura pendente + %1$d faturas pendentes + + Pagar %1$s sat + até %2$s sat em taxas? + Publicar um pedido de exclusão para sua recomendação kind:38000 de %1$s. Relays que respeitam o NIP-09 irão removê-la. + Recuperados %1$s sats em %2$s provas. + Cashu Recebido + %1$s sats foram enviados para a sua carteira. (Taxas: %2$s sats) + Endereço de mint Cashu não seguro + O Amethyst não entrou em contato com o mint deste token. %1$s + + Fundos mantidos em %1$d mint que você não usa + Fundos mantidos em %1$d mints que você não usa + + Aguardando o pagamento da fatura… + + %1$d mint + %1$d mints + + Parar transmissão + Transmitir para dispositivo + Aceita por pelo menos um relay + Entregue aos relays de todos os destinatários + Nenhuma informação de relay para esta mensagem + Aguardando um relay aceitar esta mensagem + + %1$d resposta + %1$d respostas + + No chat + No tópico + Comunidades criptografadas com múltiplos canais (Concord). + Comunidades Concord + Salas leves, restritas a um relay, que não mantêm histórico. + Chats efêmeros + Chat público restrito a um geohash para um lugar (Geolocalização). + Chats de localização + Chats de grupo com criptografia de ponta a ponta MLS (Marmot). + Grupos criptografados + Mensagens diretas criptografadas mais antigas e menos privadas (NIP-04). + DMs legadas + Mensagens diretas com criptografia de ponta a ponta e gift-wrap (NIP-17). + Mensagens privadas + Salas de chat abertas e públicas que qualquer um pode ler e participar (NIP-28). + Canais públicos + Chats de grupo gerenciados por relay com listas de membros e moderação (NIP-29). + Grupos de relay + Padrões de segurança infantil + Acessórios + Arte + Livros + Roupas + Colecionáveis + Artesanato + Eletrônicos + Bem-estar + Alimentos + Móveis + Casa + Diversos + Escritório + Outros + Animais de Estimação + Esportes + Diário + Mensal + Única vez + Semanal + Pagar %1$s via %2$s? + Pagar esta fatura via %1$s? + O serviço de débito não concluiu o pagamento. + Insira um valor válido para esta oferta. + Solicitando fatura… + Fechar todas as reações a esta postagem + Encerradas + Comunidades + O rascunho tem %1$d bytes; esta comunidade limita este tipo a %2$d bytes. + O rascunho tem %1$d bytes; esta comunidade limita eventos a %2$d bytes. + Você já publicou %1$d eventos deste tipo hoje (limite %2$d). + Configurações de composição + + %1$d canal + %1$d canais + + Novo canal + Excluir canal + Excluir + Excluir #%1$s? Isso não pode ser desfeito e o canal não pode ser recriado com o mesmo id. + Excluir canal? + Nome do canal + Nenhuma mensagem ainda + Renomear canal + Renomear + Nenhum canal ainda. + Criar + Relés + Relays que armazenam as mensagens criptografadas desta comunidade. Deixe em branco para usar os seus. + Novo canal Concord + Editar comunidade + Editando mensagem + Canais Concord + Convidar pessoas + Não foi possível buscar este convite. O link pode ter expirado ou seus relays estarem inacessíveis. + Esta comunidade removeu você. O link ainda funciona, mas a lista de membros dela não permite sua entrada. + Este link de convite expirou e não pode mais ser usado. Peça um link novo. + Não é possível abrir este link de convite. Ele pode estar desatualizado ou já ter sido substituído por um mais recente, ou ter sido criado com uma versão mais nova do app. Peça um novo link de convite. + Este link de convite é inválido ou não pode ser aberto com esta conta. + Este link de convite foi revogado e não pode mais ser usado. Peça um novo. + Links de convite… + Links de convite + Não foi possível revogar o link. Verifique sua conexão e tente novamente. + Link de convite revogado. + Link de convite + Sair da comunidade + Sair de %1$s? Ela é removida da lista desta conta e para de sincronizar nos seus dispositivos. A comunidade não é notificada e você não é removido da lista de membros. Mensagens que você não conseguir mais descriptografar podem ser irrecuperáveis, e você só poderá voltar com um novo convite. + Você criou esta comunidade. Sair não a exclui nem a entrega a mais ninguém, mas descarta a chave de proprietário armazenada na sua lista — você não conseguiria gerenciá-la novamente. + Sair da comunidade? + Tornar admin + + %1$d membro + %1$d membros + + Banir + Tornar admin + Remover admin + Não foi possível atualizar as funções deste membro. + Atribuir funções + Membros + Desbanir + Remover admin + Enviar imagem + Concord + Várias pessoas estão digitando… + %1$s está digitando… + %1$s e %2$s estão digitando… + + %1$d nova mensagem + %1$d novas mensagens + + Porta padrão é 9050 + Relays conectados + Lista atual de relays em uso + Porcentagem de conexões bem-sucedidas ao relay + Sempre + Nunca + WiFi não medida + Wi-Fi + Adicionar Documento + Adicionar Imagem + Adicionar Mídia + Adicionar Vídeo + Ocultar + Avisar + Exibir + Conversas + Converte GIF animado em vídeo MP4 para menor tamanho de arquivo e melhor compatibilidade de reprodução. + Converter GIF em MP4 + Copiado ID da nota (@note1) + Texto copiado + Copiado para a área de transferência + Copiado @npub do autor + Copiar minha chave secreta + Copiar para a Área de Transferência + Não foi possível montar o LNUrl a partir do Endereço Lightning "%1$s". Verifique a configuração do usuário + Não foi possível verificar o arquivo baixado após o upload: %1$s + Não foi possível baixar o arquivo de mídia carregado do servidor + Não foi possível obter a fatura de %1$s: %2$s + Não foi possível abrir o arquivo compactado + Carteira não encontrada + O Amethyst não conseguiu encontrar nenhum aplicativo de carteira que suporte Nostr Wallet Connect (NWC). +\n\nO que você pode fazer: +\n\t1. Verifique o suporte NWC: Confirme se o aplicativo da sua carteira é compatível com o Nostr Wallet Connect. +\n\t2. Criar conexão: Vá até o aplicativo da sua carteira e crie uma nova conexão NWC. +\n\t3. Vincular ao Amethyst: Sua carteira geralmente oferece três opções: +\n\t\t3.1 Link Automático: Um botão para abrir e conectar automaticamente ao Amethyst. Clique nele, abra o Amethyst e salve na nova tela. +\n\t\t3.2 Link Manual: Um URI de conexão que você pode copiar e colar usando o ícone de colar nesta tela. +\n\t\t3.3 Código QR: A carteira gera um código QR que você pode ler usando o botão de código QR nesta tela. + Criar + d + Zona de Perigo + Escuro + Descrição + Tornar público + Conversas + Comunidades + Algoritmos de feed + Pacotes Seguir + Transmissões Ao Vivo + Mercado + Leituras + Relés da Caixa de Entrada de DM + + Denunciado por %1$d pessoa que você segue + Denunciado por %1$d pessoas que você segue + + DMs + Não Traduzir de + Os idiomas mostrados aqui não serão traduzidos. Selecione um idioma para removê-lo e traduzi-lo novamente. + Salvar no celular + Baixando vídeo… + Nota de rascunho + Rascunhos + Contas + Criar + Feeds + Navegar + Sistema + Você + Menu lateral + Sempre ativo + Ocultas + + %1$d oculta + %1$d ocultas + + Visíveis + + %1$d dia + %1$d dias + + + %1$d hora + %1$d horas + + + %1$d minuto + %1$d minutos + + + %1$d mês + %1$d meses + + + %1$d semana + %1$d semanas + + + %1$d ano + %1$d anos + + Editar calendário + Editar evento de calendário + Editar comunidade + Editar pacote de emoji + Editar + Editar playlist + Editar postagem + Emojis privados são armazenados criptografados em relays e visíveis apenas para você. Eles aparecem no seu menu de reações e no autocompletar ":" assim como os públicos. + Emojis públicos são visíveis para todos e aparecem no seu menu de reações e no seletor de autocompletar ":" quando este pacote está na sua lista de emojis. + Emojis + Criptografar arquivos antes do upload para privacidade. Alguns servidores podem não aceitar arquivos criptografados em contas gratuitas. + Criptografar arquivos + Chat Desaparecendo + Erro + Não foi possível pagar a fatura + Não foi possível sacar + Não foi possível abrir o pagamento + Não foi possível enviar o Zap + Erro ao abrir o aplicativo para assinar evento + O aplicativo de assinatura não pôde ser encontrado. Verifique se o aplicativo não foi desinstalado + Erro ao analisar mensagem de erro + Erro ao analisar JSON do %1$s. Verifique a configuração lightning do usuário + Não foi possível obter a fatura dos servidores do destinatário + Abrir no navegador + Não é possível reproduzir este vídeo + O codec ou formato não é compatível com este dispositivo (%1$s). Tente abri-lo no seu navegador. + Erros + Sincronização de Relays + eventos de você + eventos para você + AMRAP + Circuito + Ciclismo + Dieta + EMOM + Jejum + Trilha + Meditação + Remo + Corrida + Musculação + Natação + Caminhada + Ioga + Expandir + Data de expiração + O autor pediu aos relays que excluam esta nota após %1$s. Ela desaparecerá dos feeds quando expirar. + Exportar configurações de relay + Falha ao excluir: %1$s + Falha ao criptografar sua chave privada + Falha ao salvar a imagem + Falha ao salvar o PDF + Falha ao salvar o vídeo + Muitos servidores não aceitam arquivos criptografados em contas gratuitas. Você pode tentar novamente sem criptografia. + Falha no upload criptografado + Erro ao carregar: %1$s + Não foi possível carregar a multimídia + Falha ao acessar %1$s: %2$s + Adicionar aos favoritos + Carrega pela web aberta. + Carrega pelo Tor. + Recente + Remover dos favoritos + Este app ainda não carregou. Tente novamente em um momento. + Apps favoritos + Algoritmos de feed favoritos + Realizou um pagamento + Publicado nos relays + Enviou um arquivo + Feeds de Relays Favoritos + Relays que você visita com frequência para ver o feed Global deles + Comunidades + Algoritmos de feed + Feeds + Hashtags + Conjuntos de interesses + Listas + Localizações + Relés + Servidor de arquivos + Escolha um servidor para onde enviar este arquivo + Esconde publicações de desconhecidos que eram exatamente o mesmo por 5 ou mais vezes + Filtrar spam + Seguir + Seguir de volta + Seguir este local + Todos os algoritmos de feed favoritos + Perto de mim + Curada + Global + Lista Padrão de Seguir + Seguindo + Seguindo do Usuários + Meus + Lista Silenciada + Teletransportar para um lugar… + Novo pacote de recomendações + Editar pacote de recomendações + Os metadados dos pacotes de recomendações podem ser vistos por qualquer pessoa no Nostr e são frequentemente publicados em sites como kits iniciais para novos usuários. + Metadados do pacote de recomendações + Pacotes de seguidos + Nova lista de seguidores + Editar lista + Fonte + Tipo de letra usado em todo o app + Monoespaçada + Mono + Sem serifa + Sans + Serifada + Serif + Padrão do sistema + Sistema + Tamanho da fonte + Ajuste o tamanho do texto em todo o app + Enorme + Grande + Normal + Pequeno + Estilo da Galeria de Perfil + Escolha o estilo da galeria + Clássico + Moderno + Chat de localização + Postagem exclusiva de localização + Somente seguidores da localização verão isso. Seus seguidores gerais não verão isso. + + %1$d iten + %1$d itens + + Repositórios Git + Fechar filtro + Filtrar repositórios + %1$s financiado de %2$s sats da meta + h + A imagem mudou. O autor pode não ter visto a mudança + O que isso significa? + A imagem é a mesma desde o post + Oi %1$s, ainda está disponível? + Palavras Ocultas + Remove posts dos feeds da comunidade quando ela publica um documento de regras NIP-9B e o evento não passaria. Sem efeito quando uma comunidade não tem regras estruturadas. + Ocultar posts que violam as regras da comunidade + Esconder senha + Destaques + Enviando %1$s (%2$d de %3$d) + Artigos + Atestações + Observações de aves + Partidas de xadrez + Classificados + Comentários e respostas + Chats efêmeros + Arrecadações + Destaques + Histórias interativas + Atividades ao vivo + Música e áudio + Rascunhos de NIP + Imagens + Podcasts + Enquetes + Avaliações e resenhas + Repostagens + Curtas + Notas de texto + Torrents + Vídeos + Mensagens de voz + Páginas wiki + Tudo + Requisição inválida - O servidor não pode ou não irá processar a requisição. + Não autorizado - O usuário não possui credenciais de autenticação válidas + Pagamento necessário - O servidor requer pagamento para completar a requisição + Proibido - O usuário não tem direitos de acesso para fazer a requisição + Não encontrado - O servidor não consegue encontrar o endereço solicitado + Método não permitido - O servidor suporta o método da requisição, mas não o recurso alvo + Não aceitável - O servidor não encontra nenhum conteúdo que satisfaça a requisição. + Autenticação de Proxy necessária - O usuário não possui credenciais de autenticação válidas + Tempo de requisição esgotado - O servidor esperou muito tempo por outra parte + Conflito - O servidor não pode cumprir a requisição devido a um conflito com o recurso + Indisponível - O conteúdo solicitado foi permanentemente excluído do servidor e não será restaurado + Comprimento necessário - O servidor rejeita a requisição porque requer um comprimento definido + Falha na pré-condição - As pré-condições do cabeçalho da requisição não foram atendidas pelo servidor + Carga muito grande - A requisição é maior que os limites definidos pelo servidor, e o servidor se recusa a processá-la + URI muito longa - A URL solicitada pelo cliente é muito longa para o servidor processar. + Tipo de mídia não suportado - A requisição usa um formato de mídia que o servidor não suporta + Faixa não satisfatória - O servidor não pode atender ao valor indicado no campo de cabeçalho Range da requisição. + Falha na expectativa - O servidor não pode atender aos requisitos indicados pelo campo de cabeçalho Expect da requisição + Atualização necessária - O servidor se recusa a processar a requisição com o protocolo atual, a menos que o cliente faça a atualização para um protocolo diferente. + Erro interno do servidor - O servidor encontrou um erro inesperado e não pode completar a requisição + Não implementado - O servidor não pode cumprir a requisição ou não reconhece o método da requisição + Gateway inválido - O servidor atua como um gateway e recebeu uma resposta inválida do host + Serviço indisponível - Isso geralmente ocorre quando um servidor está sobrecarregado ou em manutenção + Tempo de gateway esgotado - O servidor estava atuando como um gateway ou proxy e esperou muito tempo por uma resposta + Versão HTTP não suportada - O servidor não suporta a versão HTTP na requisição + Variante também negocia - O servidor tem um erro de configuração interna + Armazenamento insuficiente - O servidor não possui armazenamento suficiente para processar a requisição com sucesso + Loop detectado - O servidor detecta um loop infinito enquanto processa a requisição + Autenticação de rede necessária - O cliente deve ser autenticado para acessar a rede + Comportamento ilegal + Imagem salva para a galeria + Representação + Relays de Entrada + Quantidade incorreta na fatura (%1$s sats) de %2$s. Deveria ser %3$s + Relays de indexação + Relays que armazenam metadados e listas de relays, como purplepag.es. O Amethyst usará esses relays para encontrar usuários fora de suas listas. + Novo conjunto de interesses + Renomear + Conjuntos de interesses + Chave inválida + Chave inválida: %1$s + Endereço inválido + O Amethyst recebeu um URI para abrir, mas esse URI era inválido: %1$s + Não é possível citar uma nota em rascunho + Não é possível reagir uma nota em rascunho + Não é possível responder uma nota em rascunho + Não é possível fazer um zap em uma nota em rascunho + Chave é obrigatória + Relays de KeyPackage + Relays onde seus MLS KeyPackages são publicados (MIP-00). Outros usuários os buscam para convidá-lo para chats em grupo Marmot. Insira de 1 a 3 relays que aceitem eventos KeyPackage seus e permitam leitura pública. + KeyPackages + Conjunto de Distintivos Aceito + Prólogo da aventura + Leitura da aventura + Cena da aventura + Recomendações de Apps + Compromisso + Aplicativos + RSVP do Compromisso + Cabeçalho de Áudio + Faixa de Áudio + Podcasts criados + Concessões de Emblemas + Definições de Emblemas + Dados Blob + Cabeçalhos Blob + Relays Bloqueados + Blogs + Autenticação Blossom + Servidores Blossom + Lista de Favoritos + Relays de Broadcast + Calendário + Definição de Canal + Ocultar Mensagem do Canal + Lista de Canais + Mensagem do Canal + Metadados do Canal + Silenciar Usuário no Canal + Autenticação de Xadrez + Desafios de Xadrez + Oferta de Empate + Aceitar Jogo de Xadrez + Fim do Jogo de Xadrez + Jogos de Xadrez + Movimento de Xadrez + Classificados + Comentários + Definição de Comunidade + Lista de Comunidades + Post da Comunidade + Cartão de contato + Compromisso do Dia + Exclusões + Arquivo DM + Mensagem DM + Relays de DM + Rascunhos + Solicitação de conteúdo DVM + Resposta de conteúdo DVM + Status do DVM + Solicitação de usuário DVM + Resposta de usuário DVM + Edições + Lista de Pacotes de Emoji + Pacotes de Emoji + Chat Efêmero + Salas de Chat Efêmeras + Podcasts favoritos + Relays Favoritos + Cabeçalhos de Arquivo + Servidores de Arquivo + Lista de Seguindo + Pacotes de Seguir + Seguindo Geohash + Embrulhos de presente + Issue do Git + Patch do Git + Pull request + Atualização de PR + Resposta do Git + Repositório Git + Status do Git: Aplicado + Status do Git: Fechado + Status do Git: Rascunho + Status do Git: Aberto + Hashtags seguidas + Destaques + Autenticação HTTP + Lista de relays de índice + Chats ao vivo + Transmissões ao vivo + Dados Médicos + Sala de reunião + Espaço de reunião + Playlist de música + Faixa de música + Lista de silenciados + Favoritos nomeados + Servidores Nests + CNPJ + DMs NIP-04 + NNS + Nostr Connect + Notas + Solicitação NWC + Resposta NWC + Lista de Favoritos Antiga + OTS + Relays de Saída + Pagar para + Listas de pessoas + Imagens + Fixados + Episódio de podcast + Programa de podcast + Enquete + Resposta da enquete + Relays privados + Zaps privados + Perfil + Emblemas do Perfil + Galeria do Perfil + Relays proxy + Mensagem pública + Reações + Autenticação de relay + Descoberta de Relays + Anúncio de Monitor de Relay + Conjunto de relays + Denúncias + Repostagens + Repostagens (16) + Presença na sala + Selos + Relays de busca + Shorts + Shorts (resposta) + Comentários de torrent + Torrents + Provedores confiáveis + Relays confiáveis + Excluir usuário + Configurações do Usuário + Status do usuário + Vídeo + Vídeo (resposta) + Mensagem de voz + Resposta de voz + Despertar + Marcador Web + Wiki + Treinos + Metas de Zap + Enquete de Zap + Solicitação de Zap + Zaps + Conhecidos + Preferências de exibição de idioma + Para cada par de idiomas traduzido, escolha qual idioma exibir primeiro. + Visto pela última vez há %1$s + Visto agora mesmo + Nunca visto + Visto pela última vez em %1$s (há %2$s) + Sair + Registro de arquivo + Diretório + + %1$d item + %1$d itens + + + mais %1$d item + mais %1$d itens + + Recurso de aprendizagem + Claro + Transmissões ao vivo + Relés locais + Lista de relés que estão sendo executados neste dispositivo. + Alterar lugar no mapa + Canais de localização + Escolher um lugar no mapa + Faça login com uma chave privada para poder impulsionar postagens + Faça login com uma chave privada para poder seguir + Você está usando uma chave pública e as chaves públicas são somente de leitura. Faça login com uma chave privada para poder ocultar uma palavra ou frase. + Faça login com uma chave privada para poder responder + Faça login com uma chave privada para poder enviar Zaps + Você está usando uma chave pública e as chaves públicas são somente de leitura. Faça login com uma chave privada para poder mostrar uma palavra ou frase. + Você está usando uma chave pública, e chaves públicas são somente leitura. Faça login com uma chave privada para poder assinar eventos + Faça login com uma chave privada para poder remover seguidores + Você está usando uma chave pública, e chaves públicas são somente leitura. Faça login com uma chave privada para poder fazer upload + Faça login com uma chave privada para curtir postagens + Vídeos + m + Meus pacotes de emojis + Adicionar foto + Adicionando %1$s… + Privilégios de administrador concedidos + Privilégios de administrador revogados + Alterar foto + Adicione primeiro um servidor de mídia Blossom nas Configurações — o grupo precisa de um lugar para onde enviar os anexos. + Este grupo agora usa anexos criptografados + Falha ao adicionar %1$s: %2$s + Falha ao criar grupo: %1$s + Não foi possível dissolver o grupo: %1$s + Não foi possível mudar este grupo para anexos criptografados: %1$s + Falha ao conceder admin: %1$s + Falha ao sair do grupo: %1$s + Falha ao remover membro: %1$s + Falha ao revogar admin: %1$s + Falha ao atualizar: %1$s + Grupo MLS + Este grupo está sendo encerrado. Você ainda pode lê-lo. + Você está saindo deste grupo. + Você não é mais membro deste grupo. + Grupo dissolvido + Encerrando o grupo. Isso termina quando o grupo concordar. + Informações do grupo atualizadas + + %1$d membro + %1$d membros + + Membro removido + + %1$d msg + %1$d msgs + + Não é membro deste grupo + erro desconhecido + Mídia adicionada + Mídia adicionada à sua Galeria de Perfil + O download da mídia foi iniciado… + Fora do ar + No ar + Lento + Servidores de Mídia + Mídia muito grande para NIP-95 + Insira o destino da mensagem primeiro + Não pode enviar + Assunto + Mensagens + Não foi possível remover os metadados + Não foi possível remover metadados privados da mídia. Envio cancelado. + Favoritos migrados com sucesso + Configuração Lightning ausente + Mais opções + Mover para privado + Mover para público + Enviar uma imagem de capa + Escolha uma imagem quadrada para ser a arte desta playlist. + + +%1$d faixa a mais + +%1$d faixas a mais + + + %1$d faixa + %1$d faixas + + + %1$d faixa + %1$d faixas + + Enviando capa e publicando. Isso continuará mesmo se você sair da tela. + Enviar um arquivo de áudio + Escolha um MP3, WAV ou FLAC. Ele será enviado ao seu servidor de mídia ao salvar. + Enviar uma imagem de capa + Escolha uma imagem quadrada para ser a arte desta faixa. + Enviando capa + áudio e publicando. Isso continuará mesmo se você sair da tela. + Som ligado. Clique para silenciar + Silenciar notificações + Silenciado. Clique para ativar o som + Meus arquivos Blossom + Minhas listas + Um nome é necessário + %1$dms + Configurações do Namecoin + Identidade + Ler sua chave pública + Mensagens + Trocar mensagens com outros nApplets + Ações de teclado + Vincular atalhos de teclado + Notificações + Mostrar notificações para você + Relés + Ler, assinar & publicar seus eventos + Rede + Buscar recursos da web e do Blossom + Criptografia + Criptografar e descriptografar mensagens privadas com sua chave + Armazenamento + Armazenamento privado próprio + Tema + Combinar as cores do seu app + Envios + Enviar arquivos para o seu servidor de mídia + Pagamentos + Pagar faturas Lightning + apps permissões assinador napplet nsite webapp confiança conectados + + segue %1$d nova conta + segue %1$d novas contas + + ⚠ Isto segue %1$s. + + DEIXA DE SEGUIR %1$d conta + DEIXA DE SEGUIR %1$d contas + + ⚠ Isto reescreve sua lista de quem você segue: %1$s. + %1$s e %2$s + + silencia mais %1$d pessoa + silencia mais %1$d pessoas + + ⚠ Isto silencia %1$s. + + REMOVE O SILÊNCIO de %1$d pessoa + REMOVE O SILÊNCIO de %1$d pessoas + + ⚠ Isto reescreve sua lista de silenciados: %1$s. Palavras e hashtags silenciadas não são mostradas aqui — toque em “Mostrar evento” para ver a lista completa. + + ⚠ Isto grava uma lista de %1$d entrada. O Amethyst não tem cópia em cache para comparar. + ⚠ Isto grava uma lista de %1$d entradas. O Amethyst não tem cópia em cache para comparar. + + Isto republica sua lista existente sem alterações. + + adiciona %1$d relay + adiciona %1$d relays + + + REMOVE %1$d relay + REMOVE %1$d relays + + ⚠ Isto reescreve sua lista de relays: %1$s. Suas publicações e leituras vão junto. + ⚠ Isto DEIXA DE SEGUIR %1$s. + ⚠ Isto REMOVE O SILÊNCIO de %1$s. + + ⚠ Isto solicita a exclusão de %1$d dos seus eventos. + ⚠ Isto solicita a exclusão de %1$d dos seus eventos. + + + Carrega %1$d tag. Toque em “Mostrar evento” para ver exatamente o que seria assinado. + Carrega %1$d tags. Toque em “Mostrar evento” para ver exatamente o que seria assinado. + + Este nApplet quer ler sua chave pública. + Este nApplet quer ler seu perfil e dados da conta. + Este site quer descriptografar uma mensagem de %1$s com sua chave Nostr. + Este site quer criptografar uma mensagem para %1$s com sua chave Nostr. + Este nApplet quer mostrar notificações para você. + + Este nApplet quer pagar uma fatura Lightning de %1$d sat. + Este nApplet quer pagar uma fatura Lightning de %1$d sats. + + ⚠ Este nApplet quer pagar uma fatura Lightning que NÃO especifica um valor — quem recebe decide quanto é retirado. Só permita isto se você confiar nele. + Este nApplet quer assinar e publicar um evento kind %1$d como você. + Este nApplet quer enviar um evento criptografado como você. + Este nApplet quer assinar e publicar um evento kind %1$d como você: + Este nApplet quer ler eventos dos seus relays. + Este nApplet quer buscar um recurso da web. + Este site quer assinar um evento kind %1$d com sua chave Nostr. + Este nApplet quer usar seu armazenamento privado. + Este nApplet quer enviar um arquivo para o seu servidor de mídia. + nApplet %1$s… + ler suas mensagens privadas + ler suas mensagens privadas com %1$s + criptografar uma mensagem + assinar para %1$s (kind: %2$d) + Apps conectados + nApplets + Não foi possível enviar a mensagem + Silenciar este orador + Restaurar este orador + Sair + Não foi possível marcar a sala como fechada. Saindo mesmo assim — a sala será fechada automaticamente. + + %1$d ouvinte + %1$d ouvintes + + Abaixar mão + Silenciar microfone + Ativar microfone + Silenciar + Não foi possível salvar sua lista de servidores. Tente novamente. + Nest — Ao vivo + Salas de áudio + Mantém o áudio tocando enquanto a sala está aberta. + Nest conectado + Parar + Toque para voltar. + Seguir + Silenciar + Deixar de seguir + Ativar som + saiu do nest + entrou como audiência + subiu ao palco + levantou a mão + está falando + Levantar mão + Ativar som + Salas de áudio + Salvo como evento substituível kind-10112 para que outros clientes possam ler sua preferência. + Seus servidores + Sugestões integradas que você pode adicionar à sua lista com um toque. + Servidores recomendados + Servidores de nest + nunca + Novo selo + Novo calendário + Novo evento de calendário + Nova comunidade + Moderadores + Relés + Usuários banidos + Comentário da comunidade (1111) + Artigo longo (30023) + Post de imagem (20) + Texto curto (1) + Vídeo curto (22) + Post de vídeo (21) + Tipos de evento permitidos + Tamanho máximo global do evento (opcional) + Regras verificáveis (opcional) + Regra da rede de confiança (opcional) + Comunidades enormes, organizadas por canais ou fluxos de trabalho. + Espaços de trabalho + Mais coisas para configurar + Criar comunidade + Escala para comunidades enormes + Dividido por canal / fluxo de trabalho + Comunidades divididas por canal + Comunidade Concord + Conversas individuais e em pequenos grupos com pessoas que você conhece. + Salas 1:1–5 + Não é possível adicionar usuários depois + Nova mensagem + Individual e pequenos grupos + Criptografia de ponta a ponta + Mensagens diretas, com criptografia de ponta a ponta + Mensagem privada + Conversa do momento com quem estiver online agora. + Ao vivo agora + Sem histórico + Limitado ao relay + Iniciar conversa + Fale com quem está online agora + Nada é salvo + Quem estiver online, agora mesmo + Conversa que desaparece + Melhor para conversar com pessoas fisicamente próximas de um local — seu quarteirão, cidade ou região. + Local + Público e efêmero — sem histórico, qualquer um na célula pode ler. + Escolher um local + Anônimo — uma identidade descartável por área, nunca seu npub. + Compatível com Bitchat; alcança usuários próximos nos mesmos relays. + Converse com quem estiver perto de um lugar, por geohash. + Canal de localização + Grupos privados maiores que ultrapassam as DMs de pequenos grupos. + Vinculado ao dispositivo + Vinculado ao dispositivo — não aparecerá se você entrar em outro lugar + Criar grupo + Escala além das DMs pequenas + Conversa em grupo criptografada + Grupos privados maiores + Grupo Marmot + Salas públicas abertas onde qualquer um pode publicar. + Sem moderação + Apenas público + Sem moderação + Criar conversa pública + Qualquer um pode entrar + Simples e fácil de descobrir + Mensagens públicas em um relay + Conversa pública + Grupos moderados pelo relay que os hospeda. + Moderado + Vinculado àquele relay específico + Explorar grupos de relay + Moderado pelo relay + Público ou privado + Operado por relay, público ou privado + Grupo de relay + Privado + Grupos criptografados + Ciente de relay + Novo pacote de emoji + Nova Meta + Adicione seus comentários… + Novo destaque + Novo artigo + Nova playlist + Nova faixa de música + Produto Novo + Novas Solicitações + Novos Tópicos + Novo treino + Sempre permitir para %1$s + Offiline + Conectado + + %1$d Relé + %1$d Relés + + Selecionar todos + Desmarcar todos + + %1$d solicitação de assinatura + %1$d solicitações de assinatura + + Conexão recusada + Não foi possível conectar: %1$s + Não é um link nostrconnect:// válido + Esse link não traz nenhum relay para conectar + + %1$d aplicativo conectado + %1$d aplicativos conectados + + Conectado %1$s. O Amethyst agora assina por ele em segundo plano. + Aplicativo conectado. O Amethyst agora assina por ele em segundo plano. + Endereço bunker copiado + O Amethyst não conseguiu descriptografar esta mensagem. Ela pode não ser destinada a esta conta. + Avisos em tela cheia pedindo que você aprove um aplicativo que quer que o Amethyst assine, criptografe ou descriptografe com sua chave. + Solicitações de assinatura + Um aplicativo quer se conectar + Aprovar uma solicitação de assinatura? + Toque para revisar + Esta é uma conta somente leitura e não pode assinar. + Reconectando aos relays… + Gerado um novo endereço bunker + + Ouvindo em %1$d relay + Ouvindo em %1$d relays, todos conectados + + Aplicativo de assinador remoto + Assinador Remoto + + %1$d recurso incluído + %1$d recursos incluídos + + Nenhum aplicativo Blossom foi encontrado. Instale um aplicativo Blossom local para visualizar este arquivo + Não é possível abrir links Blossom + Nenhum app de câmera encontrado neste dispositivo + Nenhum endereço Lightning definido + Nenhum aplicativo encontrado para processar este pagamento. Por favor, instale uma carteira compatível. + Nenhum app instalado para processar pagamentos %1$s. Instale uma carteira compatível. + Nenhum tipo de reação selecionado. Pressione e segure para alterar + Nenhuma configuração de reações + Nenhuma carteira encontrada para pagar uma fatura Lightning. Instale uma carteira Lightning para usar zaps + Nenhuma carteira encontrada para pagar uma fatura Lightning (Erro: %1$s). Instale uma carteira Lightning para usar zaps + Nenhuma configuração de quantidade de Zap. Pressione e segure para alterar + Contas ativas em segundo plano + Interruptor principal para notificações em tempo real em segundo plano. Desligue para economizar bateria — como um modo avião. Quando desligado, nenhuma conta permanece conectada em segundo plano, e ele continua desligado (mesmo após reinicializações) até você ligá-lo novamente. + Serviço de notificação em segundo plano + Notificações + Categorias + Entrega + Exibição no app + Bloquear relay + Notificando. Toque para silenciar a notificação deste usuário + Silenciado. Toque para notificar este usuário novamente + agora + Nowhere Arte + Nowhere Drop + Nowhere Evento + Nowhere Fórum + Nowhere Arrecadação + Site Nowhere + Nowhere Mensagem + Nowhere Petição + Nowhere Loja + nSites + Nudez + Não foi possível construir a referência do evento + Sem chave pública do destinatário na nota + Nutzaps são públicos e revelariam esta nota privada. Use um zap Lightning em vez disso. + Falha no nutzap + + Enviar %1$s sats, dividido em %2$d parte + Enviar %1$s sats, dividido em %2$d partes + + O backend da cadeia Bitcoin não está configurado + Não foi possível transmitir a transação + Não foi possível montar a transação + Não foi possível carregar seu saldo Bitcoin + Pagamento enviado, mas o recibo do zap não pôde ser publicado + + Pagamento enviado (%1$d de %2$d recibo publicado), mas o próximo recibo não pôde ser publicado + Pagamento enviado (%1$d de %2$d recibos publicados), mas o próximo recibo não pôde ser publicado + + A parte de um destinatário está abaixo do limite de poeira + Não foi possível assinar a transação + ~10 min + ~30 min + ~1 h + Rápida + Normal + Lenta + %1$s · %2$s sat/vB · %3$s + + Divide entre %1$d destinatário + Divide entre %1$d destinatários + + + Ignorando %1$d destinatário que só tem endereço Lightning — o on-chain precisa de uma chave pública Nostr para derivar o endereço. + Ignorando %1$d destinatários que só têm endereço Lightning — o on-chain precisa de uma chave pública Nostr para derivar o endereço. + + + Usar a divisão de zap em %1$d partes desta nota + Usar a divisão de zap em %1$d partes desta nota + + transmitindo + montando a transação + carregando saldo + publicando o recibo + assinando + Apenas um voto por usuário é permitido neste tipo de enquete + Abrir todas as reações a esta postagem + Abertas + Porta Socks Orbot + Explorador Bitcoin (OTS) + Há prova de que esta postagem foi assinada antes de %1$s. A prova foi carimbada no blockchain do Bitcoin naquela data e hora. + Uma prova de carimbo de data/hora para esta publicação foi solicitada e está aguardando para ser registrada na blockchain do Bitcoin. Geralmente conclui em algumas horas. + Prova de Carimbo de data/hora + Relays de Saída + Senha é necessária + Pausar + Pagar + Mensagem de %1$s + Destinos de pagamento + Adicione endereços de pagamento para diferentes redes (ex.: bitcoin, lightning, ethereum). + Pague em %1$s — você escolhe o valor lá + PDF salvo em Downloads/Amethyst + Os metadados das listas de seguidores podem ser vistos por qualquer pessoa no Nostr. Apenas os membros privados são criptografados. + Metadados da lista de seguidores + Imagens + Fixar no topo + Fixar no Perfil + Reproduzir + + %1$d capítulo + %1$d capítulos + + Adicionar capa + Imagem quadrada exibida para o episódio + Editar episódio + Seu podcast + Adicionar arquivo de áudio + MP3, M4A ou outro áudio + URL dos capítulos + + %1$d episódio + %1$d episódios + + URL da transcrição + URL do vídeo + Novo episódio + Novo trailer + Publicando… + Autor + Categorias + Tecnologia, Notícias + Direitos autorais + Adicionar capa + Arte quadrada para o seu programa + E-mail de contato + Links de financiamento + https://… + Idioma + pt + Título do programa + Meu Podcast + Site + + %1$d trailer + %1$d trailers + + Adicionar clipe de trailer + Prévia curta de áudio ou vídeo + Erro de Value-for-Value + Conecte uma carteira Nostr Wallet Connect para enviar a destinatários keysend (nó). + Este podcast não tem destinatários de valor pagáveis. + Conecte uma carteira Nostr Wallet Connect ou de débito para transmitir sats enquanto ouve. + Este usuário não tem endereço Lightning + Os autores de enquetes não podem votar em suas próprias enquetes. + (0–100)% + A enquete está fechada para novos votos + Múltipla escolha + Opção %1$s + + %1$d voto tem data anterior à publicação da enquete e foi excluído. + %1$d votos têm data anterior à publicação da enquete e foram excluídos. + + + %1$d votante está oculto pela sua lista de silenciados. + %1$d votantes estão ocultos pela sua lista de silenciados. + + + %1$d resposta não escolheu uma opção válida e foi excluída. + %1$d respostas não escolheram uma opção válida e foram excluídas. + + + %1$d voto chegou depois do encerramento da enquete e foi excluído. + %1$d votos chegaram depois do encerramento da enquete e foram excluídos. + + + %1$d votante + %1$d votantes + + %1$d de %2$d respostas carregadas de %3$d relays. + %1$d de cerca de %2$d respostas carregadas de %3$d relays. + + · %1$d seleção + · %1$d seleções + + + %1$d voto › + %1$d votos › + + Escolha única + Impossibilitado de votar + Enquetes + Salvar + + Esta publicação tem mais de %1$d hashtag + Esta publicação tem mais de %1$d hashtags + + Comentários + Respostas a artigos, arquivos e outros conteúdos + Envelopes de mensagens privadas + Permite que os relays de DM filtrem spam da caixa de entrada; apenas o envelope externo é minerado, nunca sua mensagem + Conteúdo longo & destaques + Artigos e destaques; pouco frequentes, o custo é insignificante + Outro conteúdo público + Enquetes, status ao vivo, classificados e tudo mais que for público + Chat público & ao vivo + Atrasos de mineração prejudicam o fluxo da conversa + Reações + Kind de maior volume; minerar cada curtida gasta bateria + Denúncias + Os relays ponderam as denúncias pelo seu custo + Republicações + Alto volume para usuários ativos + Notas curtas & respostas + A principal superfície de spam público + Mensagens de voz + Publicações e respostas de voz públicas + + %1$d dia + %1$d dias + + + %1$d hora + %1$d horas + + <1 s + + %1$d minuto + %1$d minutos + + + %1$d segundo + %1$d segundos + + O autor gastou poder de computação para minerar esta nota até a dificuldade %1$s — um selo de proof-of-work que torna o spam caro. + Mensagem de chat + Denúncia + + %1$s • minerando em %2$d bit + %1$s • minerando em %2$d bits + + + Minerando prova de trabalho… (%1$d publicação na fila) + Minerando prova de trabalho… (%1$d publicações na fila) + + Minerando prova de trabalho + Cancelar + Mostra publicações que ainda estão minerando sua prova de trabalho NIP-13 para que possam terminar depois que você sair do app. + Mineração de prova de trabalho + Enviar agora + + %1$d bit + %1$d bits + + + Padrão (%1$d bit) + Padrão (%1$d bits) + + Seu %1$s terminou de minerar, mas não pôde ser publicado: %2$s + Seu %1$s terminou de minerar, mas não pôde ser publicado. Uma nova tentativa será feita na próxima vez que o app iniciar. + + %1$s • aguardando para minerar em %2$d bit + %1$s • aguardando para minerar em %2$d bits + + Prova de trabalho + ≈ %1$s restante + a qualquer momento + Visualize a imagem do cartão para %1$s + Opções de Privacidade + Política de privacidade + <Não foi possível descriptografar a mensagem privada>\\n\\nVocê foi citado em uma conversa privada/criptografada entre %1$s and %2$s. + Relés de Caixa de Entrada de DM + Insira entre 1–3 relés para servir como sua caixa de entrada privada. Outros usarão esses relés para enviar DMs para você. Relés de Caixa de Entrada de DM devem aceitar qualquer mensagem de qualquer pessoa, mas permitir apenas você baixá-las. Boas opções são:\n - inbox.nostr.wine (pago)\n - you.nostr1.com (relés pessoais - pago) + O usuário recebe mensagens diretas (DMs) nesses relays + Mensagem Privada + Tornar privado: empacotar a nota (gift-wrap) apenas para os usuários notificados + Respostas a uma nota privada permanecem sempre privadas + Visível para + Relés privados + Insira entre 1–3 retransmissores para armazenar eventos que ninguém mais possa ver, como seus rascunhos e/ou configurações de aplicativo. Idealmente, esses relés são locais ou requerem autenticação antes de baixar o conteúdo de cada usuário. + Esta nota foi entregue de forma privada e não está assinada. Apenas os participantes marcados podem vê-la, e ninguém pode provar a terceiros quem a escreveu. + Nota privada + Palavrões / Discurso de ódio + Perfil + Selos de perfil + Recomendações de Apps + Selos de perfil + Feed de Seguidores + Carteira Bitcoin (on-chain) + Feed de Zaps Recebidos + Interface do perfil + perfils + Propor uma Edição + Relays proxy + Relays agregadores que o app usa para baixar seus feeds, como filter.nostr.wine. Isso substitui o modelo outbox e faz o app se conectar apenas aos relays das suas listas. + Chat público + Os chats públicos são visíveis para todos no Nostr, e qualquer pessoa + pode participar deles. Eles são ótimos para comunidades abertas em torno de tópicos específicos. + A moderação pode ser controlada excluindo postagens em seus relays + Inserir entre 1–3 relés que hospedam esse grupo. + os clientes Nostr usam essa configuração para saber de onde fazer o download de mensagens e enviar suas mensagens. + Relés + Metadados do Chat Público + Chats públicos + Relés Públicos de Casa + Esse tipo de relé armazena todo o seu conteúdo. Amethyst enviará suas postagens aqui e outros usarão esses relés para encontrar seu conteúdo. Insira entre 1–3 relés. Eles podem ser relés pessoais, relés pagos ou relés públicos. + O usuário está publicando seu conteúdo nesses relays + Mensagem pública + Relés Públicos de Caixa de Entrada + Esse tipo de relé recebe todas as respostas, comentários, curtidas e zaps para suas postagens. Insira entre 1–3 relés e certifique-se de que aceitem postagens de qualquer pessoa. + O usuário está recebendo notificações nesses relays + ID da Nota + Excluir + Silenciar tópico + Compartilhar + Compartilhar link do navegador + Reativar tópico + Avaliado com %1$s de 5 + Reação + Reações + Configurações de Reações + Ler do Relay + A quantidade em bytes que foi recebida deste relé, incluindo filtros e eventos + Usuário somente leitura + Clique e segure para gravar uma mensagem + + Ele também está retendo mais %1$d coisa. + Ele também está retendo mais %1$d coisas. + + Sempre, todos os relays + O Amethyst fará login como %1$s em todos os relays que pedirem e deixará de perguntar. Os relays que você bloqueou, e aqueles em que você definiu nunca fazer login, continuam assim. Você pode mudar isso em Autenticação de relay. + Fazer login em todos os relays? + Sempre fazer login + …eu estiver enviando mensagem para alguém que sigo + …eu estiver enviando mensagem para qualquer outra pessoa + …é o meu relay, ou uma sala em que entrei ou que sigo + …eu estiver lendo alguém que sigo + Sempre, definido por você + Nunca, definido por você + + %1$s e mais %2$d + %1$s e mais %2$d + + Nunca + Nunca, todos os relays + O Amethyst deixará de informar aos relays que você é %1$s e deixará de perguntar. Alguns relays vão se recusar a atendê-lo: mensagens, respostas e notificações podem não chegar. Os relays em que você definiu sempre fazer login continuam assim. Você pode mudar isso em Autenticação de relay. + Nunca fazer login em nenhum relay? + Sempre autenticar + Assinar desafios de autenticação de todos os relays que solicitarem + Personalizado + Escolha exatamente em quais relays fazer login. Você será perguntado sobre qualquer um que não tenha permitido abaixo. + Nunca autenticar + Ignorar desafios de autenticação de todos os relays + sua caixa de entrada + seu próprio relay + suas respostas + este relay + uma sala em que você publica + pessoas que você lê + uma sala que você lê + suas mensagens + uma conversa + auth autenticação relay assinar verificar nip-42 identidade + Autenticação de relay + Chat Relé + Chat Relés são grupos de chat controlados por seu relé de origem. + Eles são visíveis para todos no Nostr e qualquer pessoa pode participar. + São ótimos para comunidades abertas em torno de tópicos específicos. Alguns desses grupos são efêmeros, + portanto, as mensagens desaparecem com o tempo + Chat Relés + Seu próprio perfil, configurações e rascunhos, nos seus relays de origem. + Os relays em que cada comunidade publica seus planos. + Os relays da sua caixa de entrada de DM, para onde as mensagens em gift wrap são entregues. + Mensagens de grupo e pacotes de chaves, nos relays de cada grupo. + Observa os eventos exibidos no momento em busca de novas respostas, reações, repostagens, zaps e denúncias, para que as contagens sejam atualizadas enquanto você lê. + Salas de chat que não guardam histórico — as mensagens existem apenas enquanto você está conectado, então elas continuam assinadas para que algo chegue. + Listas de seguindo, usadas para montar seu feed e sua rede de confiança. + Salas baseadas em localização para as áreas que você segue, consultadas nos relays que as hospedam. + Publicações de pessoas que você segue, lidas dos relays em que cada uma delas publica. + Chat e metas de zap ligados às transmissões ao vivo que você tem abertas ou segue. + Os relays da sala, enquanto ela estiver aberta. + Procura pelos relays quais mints existem e quais as pessoas recomendam. + Denúncias que as pessoas que você segue escreveram sobre os perfis atualmente na sua tela, consultadas em cada relay em que essas pessoas publicam. + Os relays da sua caixa de entrada, mais uma pequena amostra rotativa dos relays em que quem você segue publica, caso uma menção tenha sido entregue em outro lugar. + Escuta nos seus relays de nutzap, além dos relays da caixa de entrada e de DM, para que nenhum pagamento passe despercebido. + Notificações da sua carteira conectada. + Perfis das pessoas atualmente na tela. + O relay de origem de cada chat que você abriu ou do qual participa. + Busca por id os eventos a que algo na sua tela se refere, mas que você ainda não tem — uma citação, o pai de uma resposta, a raiz de uma conversa. + Grupos NIP-29 dos quais você participa. Cada grupo vive em um relay hospedeiro, então o app se conecta a todo relay que hospeda um grupo seu. + Descobre em quais relays cada pessoa publica, para que as publicações dela possam ser buscadas no lugar certo. + Os eventos da sua própria carteira, lidos de volta dos relays em que você os publicou. + Criar um grupo + Excluir grupo + Excluir “%1$s”? Isso remove o grupo e seu histórico para todos e não pode ser desfeito. + Editar grupo + Privado + Apenas membros podem ler as mensagens. + + %1$d membro + %1$d membros + + + %1$d grupo + %1$d grupos + + Grupos de relay + Título + Grupos de relay + Eventos + IPs + Tipos + Usuários + Configurações + Complementos + Navegação + Chats de comunidades + Feeds de comunidades + Caixa de entrada de DM + Observando eventos + Chats efêmeros + Chats por localização + Feed inicial + + %1$s \u00b7 %2$d relé + %1$s \u00b7 %2$d relés + + Chat de transmissão ao vivo + Mídia + Diretório de mints + Caixa de entrada de nutzaps + Wallet Connect + Observando perfis + Outros + Encontrando eventos faltantes + Grupos de relay + Informações do relay + Localizador de listas de relays + Denúncias de quem você segue + Pesquisa + Hashtags + Conversa + Tópicos + Dados da conta + Carteira + Configurações de Relay + listas de saída + Relés + Recarregar e enviar zap + Enviar zap + Recarregue %1$s sats para %2$s e envie zap de %3$s %4$s sats · taxa ≈ %5$s sats + Remover + Remover das Mensagens + Remover dos Itens Salvos Públicos + responda aqui.. + Notificar: + + Pedir para excluir + Pedido para Desaparecer + Falha ao redefinir o estado do Marmot: %1$s + Redefinir estado do Marmot + Estado do Marmot redefinido. + Atividade (7 dias) + O Amethyst consumiu mais do que o esperado recentemente: %1$s. Deseja enviar um relatório de uso aos desenvolvedores em uma DM criptografada? Você verá o relatório completo antes de qualquer envio. + Bateria consumida nesse período (todo o dispositivo) + Conexões de relay mantidas enquanto fechado + Serviço de notificações em segundo plano + + %1$d início + %1$d inícios + + Tempo em execução + Inícios do processo do app + Bateria usada (no app / em segundo plano) + Dados por recurso (7 dias) + Dados de celular por recurso (7 dias) + Tempo em chamadas + Tempo de processador usado + Mensagens descriptografadas + Tempo de transferência ativa + Requisições web + Celular (MB) + Wi-Fi (MB) + Escuta de localização + Tempo de reprodução de mídia + Eventos endereçáveis na memória + Listas de salas de chat na memória + Classe de memória do dispositivo + Memória do app (heap) + Cache de imagens (RAM) + Cache de imagens (disco) + Memória nativa + Notas na memória + Memória agora + Perfis na memória + Tempo em salas de áudio + Mineração de proof-of-work + Ativações do rádio para downloads (est.) + %1$s de dados de celular em segundo plano em um dia + + o processo do app reiniciou %1$d vez em um dia + o processo do app reiniciou %1$d vezes em um dia + + %1$s de conexões de relay em segundo plano no celular em um dia + + o app reconectou aos relays %1$d vez em um dia + o app reconectou aos relays %1$d vezes em um dia + + a CPU ficou ativa por %1$s processando notificações em um dia + Reconexões de relay (falhas) + Tempo de conexão com relay + … em segundo plano no celular + Assinaturas remotas + Tempo por tela (7 dias) + bateria dados uso consumo energia rede diagnóstico registro + Compartilhar com os desenvolvedores + Compartilhar + Imagens + Carteira e zaps + Verificação de endereço + Outros + Prévias de links + Registro de push + Sincronização de relay + Envios + Vídeo e áudio + Média de conexões de relay + Bateria / hora no app + Celular hoje + Dados / hora no app + No app hoje + Tempo de relay hoje + Wi-Fi hoje + Uso de recursos do app + Tempo ativo do Tor + Tor integrado + Dados por dia + Assinaturas verificadas + Processamento de notificações (CPU ativa) + Tarefas em segundo plano executadas + Tentar novamente + Listas de calendário + Calendários + Xadrez + Descobrir + Início + Importar Seguidos + Mídia + Mensagens + Listas de reprodução + Música + Notificações + Episódios + Podcasts + Agendar post + Cancelar agendamento + Posts agendados podem não ser publicados até você reabrir o app. Posts agendados de outras contas não serão disparados enquanto esta conta estiver ativa. Ative notificações sempre ativas em Configurações → Preferências de UI para agendamento confiável em segundo plano. + Posts agendados podem não ser publicados até você reabrir o app. Ative notificações sempre ativas em Configurações → Preferências de UI para agendamento confiável em segundo plano. + Posts agendados + Enviar agora + %1$s · em %2$s + %1$s · há %2$s + Amanhã + Erro: %1$s + ID do post copiado + + Desconectado · %1$d post agendado excluído + Desconectado · %1$d posts agendados excluídos + + Desconectado + + Você tem %1$d post agendado que ainda não foi publicado. Sair excluirá esse post permanentemente. + Você tem %1$d posts agendados que ainda não foram publicados. Sair excluirá esses posts permanentemente. + + Post agendado falhou + Post agendado publicado + + para %1$d relay + para %1$d relays + + Cancelado + Falhou + Agendado + Enviando… + Enviado + + · %1$d em 1h + · %1$d em 1h + + + %1$d na fila + %1$d na fila + + Boas opções são:\n%1$s + Relés de Pesquisa + Relés de Pesquisa + Lista de relés para usar em pesquisas e marcação de usuários. A marcação e a pesquisa não funcionarão se não houver opções disponíveis. + eventos pesquisáveis + Chave secreta (nsec) copiada + Você ainda não bloqueou nenhum usuário. + Filtros de segurança + Nenhuma palavra oculta. Adicione uma palavra abaixo para ocultar publicações que a contenham. + Conteúdo bloqueado + Preferências de filtragem + Nenhuma conta foi marcada como spam nesta sessão. + Enviar + Enviar todos os eventos de perfil recebidos (kind 0) para o seu relay local + Encaminhar perfis para relay local + Disponível para este destinatário: %1$s sats + Falha no pagamento + Transação: %1$s + Pagando via %1$s… + O servidor não forneceu uma URL após o upload + Configurações + Nenhum tópico silenciado + Tópicos silenciados + Aparência + Geral + Conteúdo no feed + Abas visíveis + Mídia e Dados + Seções e feeds + Lembretes + Conexão + Rotear pelo Tor + Compartilhar como imagem + Compartilhar como URL de imagem + Upload HLS + Compartilhar ou Salvar + Curtas + Mostrar o código QR da chave privada criptografado + Inclui mensagens diretas e de grupo na aba Notificações. Desative para manter as mensagens apenas na aba Mensagens. + Mostrar mensagens + Mostrar código QR de chave privada + Solicitação de assinatura rejeitada + Certifique-se de que a aplicação assinante autorizou esta transação + O assinador externo retornou dados estranhos para a solicitação. Pode haver um bug no Amethyst ou no assinador. + Assinador não encontrado + O aplicativo de assinatura foi desinstalado? Verifique se ele está instalado e com esta conta. Saia e entre novamente se ele foi alterado. + Voltar %1$d segundos + Avançar %1$d segundos + Aplicativos + Spam + O número de eventos de spam vindo deste relé + Spammers + Mostra duas abas de notificações — Seguindo (pessoas que você segue) e Todos. O indicador de não lidas só acende para atividade de pessoas que você segue. + Dividir notificações por Seguindo + Tenta remover metadados privados de arquivos de mídia compatíveis antes do envio + Remover metadados privados + Lê treinos concluídos do Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) e sugere compartilhá-los como publicação. A permissão é solicitada apenas quando você conecta. + Sugerir treinos para compartilhar + Sistema + Tema + Tema Escuro, Claro ou Padrão + Esta mensagem desaparecerá em %1$s + + +%1$d\nresposta + +%1$d\nrespostas + + Hoje + Personalizado + Faça o seu próprio + Padrão + Oculte seu IP de relés aleatórios + Orbot + Privacidade Completa + Oculte seu IP em todas as conexões + Interno + Desativado + Predefinições Tor/Privacidade + Modifique rapidamente todas as configurações abaixo + Tudo exceto Mídia + Oculte seu IP de tudo, exceto imagens e vídeos + Relés de DM + Forçar Tor para enviar e receber mensagens diretas + Imagens + Forçar Tor ao carregar imagens + Envio de Mídia + Forçar Tor ao enviar conteúdo + Operações Financeiras + Forçar Tor em zaps, transfers relâmpago e cashu + Relés Não Confiáveis + Forçar Tor em relés de entrada/saída + Verificação de Endereço Nostr + Forçar Tor ao verificar endereços NIP-05 + Endereço Onion/Relés + Use Tor para qualquer URL .onion + Fotos de Perfil + Forçar Tor ao carregar fotos de perfil + Relés Confiáveis + Forçar Tor em todos os relés nas suas listas + Pré-visualizações de URL + Forçar Tor ao carregar pré-visualizações de URL + Vídeos + Forçar Tor ao carregar vídeos + Básico + Use Tor quando for necessário pelo servidor + Falha ao abrir o arquivo + Nenhum aplicativo torrent instalado para abrir e baixar o arquivo. + O evento não tem informações suficientes para criar um link magnético + Usar o transmissor rastreado ao enviar eventos. Mostra progresso ao vivo e status por relay durante a transmissão. + Transmissões rastreadas + Traduzir para + Escolha o idioma para o qual o conteúdo será traduzido. + Traduções + Relays confiáveis + Relays em que você confia e que não precisam de conexão via Tor + Concluído + Completo + Desempenho + Rápido + Simplificado + Simples + Preferências da Interface + Modo de interface + Escolha o estilo da publicação + Não foi possível criar uma fatura Lightning antes de enviar o zap. A carteira Lightning do destinatário enviou o seguinte erro: %1$s + Não é possível compartilhar a imagem, por favor tente novamente mais tarde… + Não foi possível compartilhar o vídeo, tente novamente mais tarde… + Descriptografia não autorizada + O assinador não autorizou a descriptografia necessária para realizar esta operação. Ative as descriptografias NIP-44 no seu aplicativo de assinatura e tente novamente + Desseguir + Deixar de seguir este local + Reativar notificações + Desafixar + Desafixar do Perfil + Envio cancelado + Erro de upload + Falha no upload de voz: %1$s + Falha ao enviar mensagem de voz + O NIP-95 ainda não é suportado para mensagens de voz + %1$d%% de disponibilidade + Motor Tor Ativo + Use a versão interna ou o Orbot + Usuário não tem um endereço lightning configurado para receber sats + O usuário %1$s não possui um endereço lightning configurado para receber sats + Histórico de Desaparecimento + Pedido para desaparecer enviado + Melhor qualidade em arquivos menores, mas nem todos os dispositivos suportam reprodução em H.265. + Usar codec H.265/HEVC + O download do vídeo foi iniciado… + Botões do reprodutor de vídeo + Vídeo salvo na galeria de vídeos do telefone + Post de voz + Grave + Agudo + Neutro + Nenhum + Resposta em voz + Carteira + Carteira Cashu (NIP-60) + Não foi possível carregar seu saldo + Conectar Carteira + O Amethyst não conseguiu descriptografar a resposta da sua carteira — a carteira pode estar usando uma chave diferente + + Sua carteira não respondeu em %1$d segundo. O pagamento pode ou não ter sido concluído — verifique sua carteira antes de tentar novamente. + Sua carteira não respondeu em %1$d segundos. O pagamento pode ou não ter sido concluído — verifique sua carteira antes de tentar novamente. + + Seu provedor de Wallet Connect retornou o seguinte erro: %1$s + Seu provedor Wallet Connect enviou uma resposta que o Amethyst não conseguiu ler. + Sua carteira respondeu com algo que o Amethyst não reconhece (%1$s) + Editar carteira Cashu + Não foi possível criar a fatura + Sua carteira não retornou uma fatura + Não foi possível acessar sua carteira: %1$s + Tempo esgotado na solicitação à carteira + + Tempo esgotado na solicitação à carteira — %1$d resposta foi rejeitada porque foi assinada por uma chave inesperada. Seu relay pode não ser confiável. + Tempo esgotado na solicitação à carteira — %1$d respostas foram rejeitadas porque foram assinadas por uma chave inesperada. Seu relay pode não ser confiável. + + Não foi possível carregar as transações + Não foi possível carregar mais transações + Mostra uma mensagem de aviso quando as postagens tiverem 5 ou mais relatórios de suas seguintes + Avisar em relatórios + Adicionar Marcador Web + Editar Marcador Web + Marcadores Web + O que você está pensando? + + %1$d atividade + %1$d atividades + + Treinos + Escreva uma mensagem… + Enviar para o Relay + A quantidade em bytes que foi enviada para este relé, incluindo filtros e eventos + Zap + Encaminhamento para app de pagamento + Quando o autor publica um método de pagamento que um app neste telefone consegue abrir (Venmo, Monero, um IBAN…), o seletor de zap pode oferecê-lo. Tocar abre esse app, que pede o valor — nada é publicado nos relays, então a contagem de zaps da nota não muda. + Oferecer os métodos de pagamento do autor + Zaps + + Renomear + Salvar diff --git a/commonsUI/src/commonMain/composeResources/values-pt-rPT/strings.xml b/commonsUI/src/commonMain/composeResources/values-pt-rPT/strings.xml index bd744eaca9..9b37e87de6 100644 --- a/commonsUI/src/commonMain/composeResources/values-pt-rPT/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-pt-rPT/strings.xml @@ -1779,4 +1779,1163 @@ URL base da API do explorador Pagar fatura do DVM Pagar %1$s sats ao DVM + Sobre e Jurídico + Configurações da Conta + Adicionar + Adicionar um Servidor de Blossom + Adicionar um servidor NIP-96 + Quando ativado, o Amethyst anexa uma tag de cliente NIP-89 aos eventos que você publica. + Adicionar tag de cliente aos meus eventos + Adiciona aviso de conteúdo sensível antes de mostrar este conteúdo + Conteúdo sensível + Adicionar aos Itens Salvos Públicos + Usa um modelo de IA no dispositivo para sugerir correções de texto e mudanças de tom. + Sugerir melhorias de texto + Mantém as conexões com seus relays de caixa de entrada ativas para notificações em tempo real + + Conectado a %1$d relay de entrada + Conectado a %1$d relays de entrada + + + Conectado a %1$d relay + Conectado a %1$d relays + + Conectando aos relays de caixa de entrada\u2026 + Notificações do Amethyst ativas + Notificações de chamadas de voz e vídeo recebidas + Chamadas recebidas + %1$s aceitou seu desafio de xadrez + Notifica você sobre eventos de jogos de xadrez + Xadrez + Atualizações de xadrez + %1$s jogou — a sua vez + Notifica você quando chega uma mensagem privada + Mensagens privadas + Novas mensagens + Marcar como lida + Notifica você quando alguém menciona ou cita você em uma publicação + %1$s mencionou você + Menções + Novas menções + Notifica você quando alguém reage à sua publicação + %1$s reagiu à sua publicação + para %1$s + Reações + Novas reações + Notifica você quando alguém responde à sua publicação + Respostas + Novas respostas + Responder + Notificações quando um post agendado é publicado ou falha ao publicar. + Posts agendados + Notifica quando alguém te manda um zap + por %1$s + De %1$s + Zaps Recebidos + Novos zaps + Configurações do App + Atestação + Solicitação de atestação + Competência do atestante + Recomendação do atestante + Visualizador de áudio + Salva um evento de rascunho automaticamente quando você digita ou sai do compositor com texto não enviado e envia para seus relays de saída privados. + Criar rascunhos automaticamente + Rolagem Imersiva + Ocultar as barras de navegação ao rolar + Pré-visualizar imagens + Carregar automaticamente imagens e GIFs + Reproduzir vídeos automaticamente + Reproduz automaticamente vídeos e GIFs + Foto de Perfil + Mostrar fotos de perfil + Pré-visualizar URL + Mostrar visualizações de URL + Reprodução automática de vídeos + Reproduzir vídeos automaticamente quando visíveis na tela + Não foi possível remover os metadados do AVIF: %1$s + Conceder selo + Voltar + Backup das chaves + Selos + Autenticação falhou + A autenticação biométrica falhou ao autenticar o proprietário deste telefone + A autenticação biométrica falhou ao autenticar o proprietário deste telefone. Erro: %1$s + Bloquear + Relays bloqueados + O Amethyst nunca se conectará a esses relays + Usuários + Nova lista de favoritos + Metadados da lista de favoritos + Os metadados das listas de favoritos podem ser vistos por qualquer pessoa no Nostr. Somente seus membros privados são criptografados. + Itens Salvos + Impulsionar + Barra de navegação inferior + Relays de broadcast + Relays especializados em enviar suas notas para todos os outros relays, como sendit.nosflare.com. O Amethyst adicionará esse relay a todos os novos eventos criados por você + Navegador + Favoritos + Carregando pela web aberta. Toque para usar o Tor. + Carregando pelo Tor. Toque para usar a web aberta. + + %1$s, %2$d evento + %1$s, %2$d eventos + + Falha no envio da imagem + A imagem escolhida não pôde ser enviada. Tente novamente ou cole uma URL. + Compartilhar evento de calendário + Abrir no mapa + Abrir link + Acontecendo agora + %1$s · termina %2$s + + Começa em %1$d minuto + Começa em %1$d minutos + + Aviso quando um evento do qual você participa está prestes a começar. + Lembretes de calendário + Evento de calendário + Uma notificação é disparada quando um evento do qual você participa está prestes a começar. + Enviar lembretes + Lembretes de calendário + Dia + Mês + Semana + Aceitar + Câmera desligada + Câmera ligada + Auricular + Desligar + Chamada recebida + Chamada de vídeo recebida\u2026 + Chamada de voz recebida\u2026 + Silenciar + Chamadas + Notificação de chamada em andamento + O Amethyst precisa de acesso à câmera e ao microfone para iniciar uma chamada de vídeo. Habilite-os nas configurações do aplicativo. + O Amethyst precisa de acesso ao microfone para iniciar uma chamada de voz. Habilite-o nas configurações do aplicativo. + Rejeitar + Configurações de Chamada + Alto-falante + Ativar som + Chamada com %1$s + URL de retorno de chamada não encontrado da resposta %1$s + Cancelar + Token Cashu + Verificando o mint… + Não foi possível resgatar o Cashu + O Mint forneceu a seguinte mensagem de erro: %1$s + Recebido + Enviado + Mints correspondentes + + +%1$d mais + +%1$d mais + + Mints populares + + Recomendado por %1$d outro + Recomendado por %1$d outros + + %1$s sat movidos para %2$s. + Nenhuma carteira Cashu compatível encontrada no sistema + + %1$d fatura pendente + %1$d faturas pendentes + + Pagar %1$s sat + até %2$s sat em taxas? + Publicar um pedido de exclusão para sua recomendação kind:38000 de %1$s. Relays que respeitam o NIP-09 irão removê-la. + Recuperados %1$s sats em %2$s provas. + Cashu Recebido + %1$s sats foram enviados para a sua carteira. (Taxas: %2$s sats) + + Fundos mantidos em %1$d mint que você não usa + Fundos mantidos em %1$d mints que você não usa + + Aguardando o pagamento da fatura… + Parar transmissão + Transmitir para dispositivo + Padrões de segurança infantil + Acessórios + Arte + Livros + Roupas + Colecionáveis + Artesanato + Eletrônicos + Bem-estar + Alimentos + Móveis + Casa + Diversos + Escritório + Outros + Animais de Estimação + Esportes + Diário + Mensal + Única vez + Semanal + Pagar %1$s via %2$s? + Pagar esta fatura via %1$s? + O serviço de débito não concluiu o pagamento. + Insira um valor válido para esta oferta. + Solicitando fatura… + Fechar todas as reações a esta postagem + Encerradas + Comunidades + O rascunho tem %1$d bytes; esta comunidade limita este tipo a %2$d bytes. + O rascunho tem %1$d bytes; esta comunidade limita eventos a %2$d bytes. + Você já publicou %1$d eventos deste tipo hoje (limite %2$d). + Configurações de composição + Porta padrão é 9050 + Relays conectados + Lista atual de relays em uso + Porcentagem de conexões bem-sucedidas ao relay + Sempre + Nunca + WiFi não medida + Adicionar Documento + Adicionar Imagem + Adicionar Mídia + Adicionar Vídeo + Ocultar + Avisar + Exibir + Conversas + Converte GIF animado em vídeo MP4 para menor tamanho de arquivo e melhor compatibilidade de reprodução. + Converter GIF em MP4 + Copiado ID da nota (@note1) + Texto copiado + Copiado para a área de transferência + Copiado @npub do autor + Copiar minha chave secreta + Copiar para a Área de Transferência + Não foi possível montar o LNUrl a partir do Endereço Lightning "%1$s". Verifique a configuração do usuário + Não foi possível verificar o arquivo baixado após o upload: %1$s + Não foi possível baixar o arquivo de mídia carregado do servidor + Não foi possível obter a fatura de %1$s: %2$s + Não foi possível abrir o arquivo compactado + Carteira não encontrada + O Amethyst não conseguiu encontrar nenhum aplicativo de carteira que suporte Nostr Wallet Connect (NWC). +\n\nO que você pode fazer: +\n\t1. Verifique o suporte NWC: Confirme se o aplicativo da sua carteira é compatível com o Nostr Wallet Connect. +\n\t2. Criar conexão: Vá até o aplicativo da sua carteira e crie uma nova conexão NWC. +\n\t3. Vincular ao Amethyst: Sua carteira geralmente oferece três opções: +\n\t\t3.1 Link Automático: Um botão para abrir e conectar automaticamente ao Amethyst. Clique nele, abra o Amethyst e salve na nova tela. +\n\t\t3.2 Link Manual: Um URI de conexão que você pode copiar e colar usando o ícone de colar nesta tela. +\n\t\t3.3 Código QR: A carteira gera um código QR que você pode ler usando o botão de código QR nesta tela. + Criar + Zona de Perigo + Escuro + Descrição + Tornar público + Conversas + Comunidades + Algoritmos de feed + Pacotes Seguir + Transmissões Ao Vivo + Mercado + Leituras + Relés da Caixa de Entrada de DM + Não Traduzir de + Os idiomas mostrados aqui não serão traduzidos. Selecione um idioma para removê-lo e traduzi-lo novamente. + Salvar no celular + Baixando vídeo… + Nota de rascunho + Rascunhos + Contas + Criar + Navegar + Sistema + Você + + %1$d dia + %1$d dias + + + %1$d hora + %1$d horas + + + %1$d minuto + %1$d minutos + + + %1$d mês + %1$d meses + + + %1$d semana + %1$d semanas + + + %1$d ano + %1$d anos + + Editar calendário + Editar evento de calendário + Editar comunidade + Editar pacote de emoji + Editar playlist + Editar postagem + Emojis privados são armazenados criptografados em relays e visíveis apenas para você. Eles aparecem no seu menu de reações e no autocompletar ":" assim como os públicos. + Emojis públicos são visíveis para todos e aparecem no seu menu de reações e no seletor de autocompletar ":" quando este pacote está na sua lista de emojis. + Criptografar arquivos antes do upload para privacidade. Alguns servidores podem não aceitar arquivos criptografados em contas gratuitas. + Criptografar arquivos + Chat Desaparecendo + Erro + Não foi possível pagar a fatura + Não foi possível sacar + Não foi possível abrir o pagamento + Não foi possível enviar o Zap + Erro ao abrir o aplicativo para assinar evento + O aplicativo de assinatura não pôde ser encontrado. Verifique se o aplicativo não foi desinstalado + Erro ao analisar mensagem de erro + Erro ao analisar JSON do %1$s. Verifique a configuração lightning do usuário + Não foi possível obter a fatura dos servidores do destinatário + Abrir no navegador + Não é possível reproduzir este vídeo + O codec ou formato não é compatível com este dispositivo (%1$s). Tente abri-lo no seu navegador. + Erros + Sincronização de Relays + eventos de você + eventos para você + Circuito + Ciclismo + Dieta + Jejum + Trilha + Meditação + Remo + Corrida + Musculação + Natação + Caminhada + Ioga + Expandir + Data de expiração + Exportar configurações de relay + Falha ao excluir: %1$s + Falha ao criptografar sua chave privada + Falha ao salvar a imagem + Falha ao salvar o PDF + Falha ao salvar o vídeo + Muitos servidores não aceitam arquivos criptografados em contas gratuitas. Você pode tentar novamente sem criptografia. + Falha no upload criptografado + Erro ao carregar: %1$s + Não foi possível carregar a multimídia + Falha ao acessar %1$s: %2$s + Adicionar aos favoritos + Carrega pela web aberta. + Carrega pelo Tor. + Recente + Remover dos favoritos + Este app ainda não carregou. Tente novamente em um momento. + Apps favoritos + Algoritmos de feed favoritos + Realizou um pagamento + Publicado nos relays + Enviou um arquivo + Feeds de Relays Favoritos + Relays que você visita com frequência para ver o feed Global deles + Comunidades + Algoritmos de feed + Conjuntos de interesses + Listas + Localizações + Relés + Servidor de arquivos + Escolha um servidor para onde enviar este arquivo + Esconde publicações de desconhecidos que eram exatamente o mesmo por 5 ou mais vezes + Filtrar spam + Seguir + Seguir de volta + Todos os algoritmos de feed favoritos + Perto de mim + Curada + Lista Padrão de Seguir + Seguindo + Seguindo do Usuários + Meus + Lista Silenciada + Novo pacote de recomendações + Editar pacote de recomendações + Os metadados dos pacotes de recomendações podem ser vistos por qualquer pessoa no Nostr e são frequentemente publicados em sites como kits iniciais para novos usuários. + Metadados do pacote de recomendações + Pacotes de seguidos + Nova lista de seguidores + Editar lista + Estilo da Galeria de Perfil + Escolha o estilo da galeria + Clássico + Moderno + Postagem exclusiva de localização + Somente seguidores da localização verão isso. Seus seguidores gerais não verão isso. + %1$s financiado de %2$s sats da meta + A imagem mudou. O autor pode não ter visto a mudança + O que isso significa? + A imagem é a mesma desde o post + Oi %1$s, ainda está disponível? + Palavras Ocultas + Remove posts dos feeds da comunidade quando ela publica um documento de regras NIP-9B e o evento não passaria. Sem efeito quando uma comunidade não tem regras estruturadas. + Ocultar posts que violam as regras da comunidade + Esconder senha + Enviando %1$s (%2$d de %3$d) + Tudo + Requisição inválida - O servidor não pode ou não irá processar a requisição. + Não autorizado - O usuário não possui credenciais de autenticação válidas + Pagamento necessário - O servidor requer pagamento para completar a requisição + Proibido - O usuário não tem direitos de acesso para fazer a requisição + Não encontrado - O servidor não consegue encontrar o endereço solicitado + Método não permitido - O servidor suporta o método da requisição, mas não o recurso alvo + Não aceitável - O servidor não encontra nenhum conteúdo que satisfaça a requisição. + Autenticação de Proxy necessária - O usuário não possui credenciais de autenticação válidas + Tempo de requisição esgotado - O servidor esperou muito tempo por outra parte + Conflito - O servidor não pode cumprir a requisição devido a um conflito com o recurso + Indisponível - O conteúdo solicitado foi permanentemente excluído do servidor e não será restaurado + Comprimento necessário - O servidor rejeita a requisição porque requer um comprimento definido + Falha na pré-condição - As pré-condições do cabeçalho da requisição não foram atendidas pelo servidor + Carga muito grande - A requisição é maior que os limites definidos pelo servidor, e o servidor se recusa a processá-la + URI muito longa - A URL solicitada pelo cliente é muito longa para o servidor processar. + Tipo de mídia não suportado - A requisição usa um formato de mídia que o servidor não suporta + Faixa não satisfatória - O servidor não pode atender ao valor indicado no campo de cabeçalho Range da requisição. + Falha na expectativa - O servidor não pode atender aos requisitos indicados pelo campo de cabeçalho Expect da requisição + Atualização necessária - O servidor se recusa a processar a requisição com o protocolo atual, a menos que o cliente faça a atualização para um protocolo diferente. + Erro interno do servidor - O servidor encontrou um erro inesperado e não pode completar a requisição + Não implementado - O servidor não pode cumprir a requisição ou não reconhece o método da requisição + Gateway inválido - O servidor atua como um gateway e recebeu uma resposta inválida do host + Serviço indisponível - Isso geralmente ocorre quando um servidor está sobrecarregado ou em manutenção + Tempo de gateway esgotado - O servidor estava atuando como um gateway ou proxy e esperou muito tempo por uma resposta + Versão HTTP não suportada - O servidor não suporta a versão HTTP na requisição + Variante também negocia - O servidor tem um erro de configuração interna + Armazenamento insuficiente - O servidor não possui armazenamento suficiente para processar a requisição com sucesso + Loop detectado - O servidor detecta um loop infinito enquanto processa a requisição + Autenticação de rede necessária - O cliente deve ser autenticado para acessar a rede + Comportamento ilegal + Imagem salva para a galeria + Representação + Relays de Entrada + Quantidade incorreta na fatura (%1$s sats) de %2$s. Deveria ser %3$s + Relays de indexação + Relays que armazenam metadados e listas de relays, como purplepag.es. O Amethyst usará esses relays para encontrar usuários fora de suas listas. + Novo conjunto de interesses + Renomear + Conjuntos de interesses + Chave inválida + Chave inválida: %1$s + Endereço inválido + O Amethyst recebeu um URI para abrir, mas esse URI era inválido: %1$s + Não é possível citar uma nota em rascunho + Não é possível reagir uma nota em rascunho + Não é possível responder uma nota em rascunho + Não é possível fazer um zap em uma nota em rascunho + Chave é obrigatória + Relays de KeyPackage + Relays onde seus MLS KeyPackages são publicados (MIP-00). Outros usuários os buscam para convidá-lo para chats em grupo Marmot. Insira de 1 a 3 relays que aceitem eventos KeyPackage seus e permitam leitura pública. + Conjunto de Distintivos Aceito + Prólogo da aventura + Leitura da aventura + Cena da aventura + Recomendações de Apps + Compromisso + Aplicativos + RSVP do Compromisso + Cabeçalho de Áudio + Faixa de Áudio + Podcasts criados + Concessões de Emblemas + Definições de Emblemas + Dados Blob + Cabeçalhos Blob + Relays Bloqueados + Autenticação Blossom + Servidores Blossom + Lista de Favoritos + Relays de Broadcast + Calendário + Definição de Canal + Ocultar Mensagem do Canal + Lista de Canais + Mensagem do Canal + Metadados do Canal + Silenciar Usuário no Canal + Autenticação de Xadrez + Desafios de Xadrez + Oferta de Empate + Aceitar Jogo de Xadrez + Fim do Jogo de Xadrez + Jogos de Xadrez + Movimento de Xadrez + Classificados + Comentários + Definição de Comunidade + Lista de Comunidades + Post da Comunidade + Cartão de contato + Compromisso do Dia + Exclusões + Arquivo DM + Mensagem DM + Relays de DM + Rascunhos + Solicitação de conteúdo DVM + Resposta de conteúdo DVM + Status do DVM + Solicitação de usuário DVM + Resposta de usuário DVM + Edições + Lista de Pacotes de Emoji + Pacotes de Emoji + Chat Efêmero + Salas de Chat Efêmeras + Podcasts favoritos + Relays Favoritos + Cabeçalhos de Arquivo + Servidores de Arquivo + Lista de Seguindo + Pacotes de Seguir + Seguindo Geohash + Embrulhos de presente + Issue do Git + Patch do Git + Resposta do Git + Repositório Git + Hashtags seguidas + Destaques + Autenticação HTTP + Lista de relays de índice + Chats ao vivo + Transmissões ao vivo + Dados Médicos + Sala de reunião + Espaço de reunião + Playlist de música + Faixa de música + Lista de silenciados + Favoritos nomeados + Servidores Nests + CNPJ + DMs NIP-04 + Notas + Solicitação NWC + Resposta NWC + Lista de Favoritos Antiga + Relays de Saída + Pagar para + Listas de pessoas + Imagens + Fixados + Episódio de podcast + Programa de podcast + Enquete + Resposta da enquete + Relays privados + Zaps privados + Perfil + Emblemas do Perfil + Galeria do Perfil + Relays proxy + Mensagem pública + Reações + Autenticação de relay + Descoberta de Relays + Anúncio de Monitor de Relay + Conjunto de relays + Denúncias + Repostagens + Repostagens (16) + Presença na sala + Selos + Relays de busca + Shorts (resposta) + Comentários de torrent + Provedores confiáveis + Relays confiáveis + Excluir usuário + Configurações do Usuário + Status do usuário + Vídeo + Vídeo (resposta) + Mensagem de voz + Resposta de voz + Despertar + Marcador Web + Treinos + Metas de Zap + Enquete de Zap + Solicitação de Zap + Conhecidos + Preferências de exibição de idioma + Para cada par de idiomas traduzido, escolha qual idioma exibir primeiro. + Visto pela última vez há %1$s + Visto agora mesmo + Nunca visto + Visto pela última vez em %1$s (há %2$s) + Sair + Claro + Transmissões ao vivo + Relés locais + Lista de relés que estão sendo executados neste dispositivo. + Faça login com uma chave privada para poder impulsionar postagens + Faça login com uma chave privada para poder seguir + Você está usando uma chave pública e as chaves públicas são somente de leitura. Faça login com uma chave privada para poder ocultar uma palavra ou frase. + Faça login com uma chave privada para poder responder + Faça login com uma chave privada para poder enviar Zaps + Você está usando uma chave pública e as chaves públicas são somente de leitura. Faça login com uma chave privada para poder mostrar uma palavra ou frase. + Você está usando uma chave pública, e chaves públicas são somente leitura. Faça login com uma chave privada para poder assinar eventos + Faça login com uma chave privada para poder remover seguidores + Você está usando uma chave pública, e chaves públicas são somente leitura. Faça login com uma chave privada para poder fazer upload + Faça login com uma chave privada para curtir postagens + Vídeos + Meus pacotes de emojis + Adicionando %1$s… + Privilégios de administrador concedidos + Privilégios de administrador revogados + Falha ao adicionar %1$s: %2$s + Falha ao criar grupo: %1$s + Falha ao conceder admin: %1$s + Falha ao sair do grupo: %1$s + Falha ao remover membro: %1$s + Falha ao revogar admin: %1$s + Falha ao atualizar: %1$s + Grupo MLS + Informações do grupo atualizadas + + %1$d membro + %1$d membros + + Membro removido + Não é membro deste grupo + erro desconhecido + Mídia adicionada + Mídia adicionada à sua Galeria de Perfil + O download da mídia foi iniciado… + Servidores de Mídia + Mídia muito grande para NIP-95 + Insira o destino da mensagem primeiro + Não pode enviar + Assunto + Não foi possível remover os metadados + Não foi possível remover metadados privados da mídia. Envio cancelado. + Favoritos migrados com sucesso + Configuração Lightning ausente + Mais opções + Mover para privado + Mover para público + Enviar uma imagem de capa + Escolha uma imagem quadrada para ser a arte desta playlist. + + +%1$d faixa a mais + +%1$d faixas a mais + + + %1$d faixa + %1$d faixas + + + %1$d faixa + %1$d faixas + + Enviando capa e publicando. Isso continuará mesmo se você sair da tela. + Enviar um arquivo de áudio + Escolha um MP3, WAV ou FLAC. Ele será enviado ao seu servidor de mídia ao salvar. + Enviar uma imagem de capa + Escolha uma imagem quadrada para ser a arte desta faixa. + Enviando capa + áudio e publicando. Isso continuará mesmo se você sair da tela. + Som ligado. Clique para silenciar + Silenciado. Clique para ativar o som + Minhas listas + Um nome é necessário + Configurações do Namecoin + Identidade + Ler sua chave pública + Mensagens + Trocar mensagens com outros nApplets + Ações de teclado + Vincular atalhos de teclado + Notificações + Mostrar notificações para você + Ler, assinar & publicar seus eventos + Rede + Buscar recursos da web e do Blossom + Armazenamento + Armazenamento privado próprio + Tema + Combinar as cores do seu app + Enviar arquivos para o seu servidor de mídia + Pagamentos + Pagar faturas Lightning + Este nApplet quer ler sua chave pública. + Este nApplet quer ler seu perfil e dados da conta. + Este nApplet quer mostrar notificações para você. + + Este nApplet quer pagar uma fatura Lightning de %1$d sat. + Este nApplet quer pagar uma fatura Lightning de %1$d sats. + + Este nApplet quer assinar e publicar um evento kind %1$d como você. + Este nApplet quer enviar um evento criptografado como você. + Este nApplet quer assinar e publicar um evento kind %1$d como você: + Este nApplet quer ler eventos dos seus relays. + Este nApplet quer buscar um recurso da web. + Este site quer assinar um evento kind %1$d com sua chave Nostr. + Este nApplet quer usar seu armazenamento privado. + Este nApplet quer enviar um arquivo para o seu servidor de mídia. + Não foi possível enviar a mensagem + Silenciar este orador + Restaurar este orador + Sair + Não foi possível marcar a sala como fechada. Saindo mesmo assim — a sala será fechada automaticamente. + + %1$d ouvinte + %1$d ouvintes + + Abaixar mão + Silenciar microfone + Ativar microfone + Silenciar + Não foi possível salvar sua lista de servidores. Tente novamente. + Nest — Ao vivo + Salas de áudio + Mantém o áudio tocando enquanto a sala está aberta. + Nest conectado + Parar + Toque para voltar. + Seguir + Silenciar + Deixar de seguir + Ativar som + saiu do nest + entrou como audiência + subiu ao palco + levantou a mão + está falando + Levantar mão + Ativar som + Salas de áudio + Salvo como evento substituível kind-10112 para que outros clientes possam ler sua preferência. + Seus servidores + Sugestões integradas que você pode adicionar à sua lista com um toque. + Servidores recomendados + Servidores de nest + nunca + Novo selo + Novo calendário + Novo evento de calendário + Nova comunidade + Moderadores + Relés + Usuários banidos + Comentário da comunidade (1111) + Artigo longo (30023) + Post de imagem (20) + Texto curto (1) + Vídeo curto (22) + Post de vídeo (21) + Tipos de evento permitidos + Tamanho máximo global do evento (opcional) + Regras verificáveis (opcional) + Regra da rede de confiança (opcional) + Novo pacote de emoji + Nova Meta + Novo artigo + Nova playlist + Nova faixa de música + Produto Novo + Novas Solicitações + Novos Tópicos + Novo treino + + %1$d recurso incluído + %1$d recursos incluídos + + Nenhum aplicativo Blossom foi encontrado. Instale um aplicativo Blossom local para visualizar este arquivo + Não é possível abrir links Blossom + Nenhum app de câmera encontrado neste dispositivo + Nenhum endereço Lightning definido + Nenhum aplicativo encontrado para processar este pagamento. Por favor, instale uma carteira compatível. + Nenhum app instalado para processar pagamentos %1$s. Instale uma carteira compatível. + Nenhum tipo de reação selecionado. Pressione e segure para alterar + Nenhuma configuração de reações + Nenhuma carteira encontrada para pagar uma fatura Lightning. Instale uma carteira Lightning para usar zaps + Nenhuma carteira encontrada para pagar uma fatura Lightning (Erro: %1$s). Instale uma carteira Lightning para usar zaps + Nenhuma configuração de quantidade de Zap. Pressione e segure para alterar + Notificações + Categorias + Entrega + Exibição no app + agora + Nowhere Arte + Nowhere Evento + Nowhere Fórum + Nowhere Arrecadação + Site Nowhere + Nowhere Mensagem + Nowhere Petição + Nowhere Loja + Nudez + Não foi possível construir a referência do evento + Sem chave pública do destinatário na nota + Nutzaps são públicos e revelariam esta nota privada. Use um zap Lightning em vez disso. + Falha no nutzap + + Enviar %1$s sats, dividido em %2$d parte + Enviar %1$s sats, dividido em %2$d partes + + O backend da cadeia Bitcoin não está configurado + Não foi possível transmitir a transação + Não foi possível montar a transação + Não foi possível carregar seu saldo Bitcoin + Pagamento enviado, mas o recibo do zap não pôde ser publicado + + Pagamento enviado (%1$d de %2$d recibo publicado), mas o próximo recibo não pôde ser publicado + Pagamento enviado (%1$d de %2$d recibos publicados), mas o próximo recibo não pôde ser publicado + + A parte de um destinatário está abaixo do limite de poeira + Não foi possível assinar a transação + ~1 h + Rápida + Lenta + + Divide entre %1$d destinatário + Divide entre %1$d destinatários + + + Ignorando %1$d destinatário que só tem endereço Lightning — o on-chain precisa de uma chave pública Nostr para derivar o endereço. + Ignorando %1$d destinatários que só têm endereço Lightning — o on-chain precisa de uma chave pública Nostr para derivar o endereço. + + + Usar a divisão de zap em %1$d partes desta nota + Usar a divisão de zap em %1$d partes desta nota + + transmitindo + montando a transação + carregando saldo + publicando o recibo + assinando + Apenas um voto por usuário é permitido neste tipo de enquete + Abrir todas as reações a esta postagem + Abertas + Porta Socks Orbot + Explorador Bitcoin (OTS) + Há prova de que esta postagem foi assinada antes de %1$s. A prova foi carimbada no blockchain do Bitcoin naquela data e hora. + Prova de Carimbo de data/hora + Relays de Saída + Senha é necessária + Pausar + Pagar + Mensagem de %1$s + Destinos de pagamento + Adicione endereços de pagamento para diferentes redes (ex.: bitcoin, lightning, ethereum). + PDF salvo em Downloads/Amethyst + Os metadados das listas de seguidores podem ser vistos por qualquer pessoa no Nostr. Apenas os membros privados são criptografados. + Metadados da lista de seguidores + Imagens + Fixar no topo + Fixar no Perfil + Reproduzir + + %1$d episódio + %1$d episódios + + Os autores de enquetes não podem votar em suas próprias enquetes. + A enquete está fechada para novos votos + Múltipla escolha + Opção %1$s + Escolha única + Impossibilitado de votar + Enquetes + Salvar + + Esta publicação tem mais de %1$d hashtag + Esta publicação tem mais de %1$d hashtags + + Visualize a imagem do cartão para %1$s + Opções de Privacidade + Política de privacidade + <Não foi possível descriptografar a mensagem privada>\\n\\nVocê foi citado em uma conversa privada/criptografada entre %1$s and %2$s. + Relés de Caixa de Entrada de DM + Insira entre 1–3 relés para servir como sua caixa de entrada privada. Outros usarão esses relés para enviar DMs para você. Relés de Caixa de Entrada de DM devem aceitar qualquer mensagem de qualquer pessoa, mas permitir apenas você baixá-las. Boas opções são:\n - inbox.nostr.wine (pago)\n - you.nostr1.com (relés pessoais - pago) + O usuário recebe mensagens diretas (DMs) nesses relays + Mensagem Privada + Tornar privado: empacotar a nota (gift-wrap) apenas para os usuários notificados + Respostas a uma nota privada permanecem sempre privadas + Visível para + Relés privados + Insira entre 1–3 retransmissores para armazenar eventos que ninguém mais possa ver, como seus rascunhos e/ou configurações de aplicativo. Idealmente, esses relés são locais ou requerem autenticação antes de baixar o conteúdo de cada usuário. + Palavrões / Discurso de ódio + Perfil + Selos de perfil + Recomendações de Apps + Selos de perfil + Feed de Seguidores + Feed de Zaps Recebidos + Interface do perfil + perfils + Propor uma Edição + Relays proxy + Relays agregadores que o app usa para baixar seus feeds, como filter.nostr.wine. Isso substitui o modelo outbox e faz o app se conectar apenas aos relays das suas listas. + Chat público + Os chats públicos são visíveis para todos no Nostr, e qualquer pessoa + pode participar deles. Eles são ótimos para comunidades abertas em torno de tópicos específicos. + A moderação pode ser controlada excluindo postagens em seus relays + Inserir entre 1–3 relés que hospedam esse grupo. + os clientes Nostr usam essa configuração para saber de onde fazer o download de mensagens e enviar suas mensagens. + Relés + Metadados do Chat Público + Chats públicos + Relés Públicos de Casa + Esse tipo de relé armazena todo o seu conteúdo. Amethyst enviará suas postagens aqui e outros usarão esses relés para encontrar seu conteúdo. Insira entre 1–3 relés. Eles podem ser relés pessoais, relés pagos ou relés públicos. + O usuário está publicando seu conteúdo nesses relays + Mensagem pública + Relés Públicos de Caixa de Entrada + Esse tipo de relé recebe todas as respostas, comentários, curtidas e zaps para suas postagens. Insira entre 1–3 relés e certifique-se de que aceitem postagens de qualquer pessoa. + O usuário está recebendo notificações nesses relays + ID da Nota + Excluir + Silenciar tópico + Compartilhar + Compartilhar link do navegador + Reativar tópico + Reação + Reações + Configurações de Reações + Ler do Relay + A quantidade em bytes que foi recebida deste relé, incluindo filtros e eventos + Usuário somente leitura + Clique e segure para gravar uma mensagem + Chat Relé + Chat Relés são grupos de chat controlados por seu relé de origem. + Eles são visíveis para todos no Nostr e qualquer pessoa pode participar. + São ótimos para comunidades abertas em torno de tópicos específicos. Alguns desses grupos são efêmeros, + portanto, as mensagens desaparecem com o tempo + Chat Relés + Eventos + Tipos + Usuários + Configurações + Configurações de Relay + listas de saída + Relés + Recarregar e enviar zap + Enviar zap + Recarregue %1$s sats para %2$s e envie zap de %3$s %4$s sats · taxa ≈ %5$s sats + Remover + Remover dos Itens Salvos Públicos + responda aqui.. + Notificar: + + Pedir para excluir + Pedido para Desaparecer + Falha ao redefinir o estado do Marmot: %1$s + Redefinir estado do Marmot + Estado do Marmot redefinido. + Tentar novamente + Listas de calendário + Calendários + Xadrez + Descobrir + Início + Importar Seguidos + Mensagens + Listas de reprodução + Música + Notificações + Episódios + Agendar post + Cancelar agendamento + Posts agendados podem não ser publicados até você reabrir o app. Posts agendados de outras contas não serão disparados enquanto esta conta estiver ativa. Ative notificações sempre ativas em Configurações → Preferências de UI para agendamento confiável em segundo plano. + Posts agendados podem não ser publicados até você reabrir o app. Ative notificações sempre ativas em Configurações → Preferências de UI para agendamento confiável em segundo plano. + Posts agendados + Enviar agora + %1$s · em %2$s + %1$s · há %2$s + Amanhã + Erro: %1$s + ID do post copiado + + Desconectado · %1$d post agendado excluído + Desconectado · %1$d posts agendados excluídos + + Desconectado + + Você tem %1$d post agendado que ainda não foi publicado. Sair excluirá esse post permanentemente. + Você tem %1$d posts agendados que ainda não foram publicados. Sair excluirá esses posts permanentemente. + + Post agendado falhou + Post agendado publicado + + para %1$d relay + para %1$d relays + + Cancelado + Falhou + Agendado + Enviando… + Enviado + + · %1$d em 1h + · %1$d em 1h + + + %1$d na fila + %1$d na fila + + Boas opções são:\n%1$s + Relés de Pesquisa + Relés de Pesquisa + Lista de relés para usar em pesquisas e marcação de usuários. A marcação e a pesquisa não funcionarão se não houver opções disponíveis. + eventos pesquisáveis + Chave secreta (nsec) copiada + Você ainda não bloqueou nenhum usuário. + Filtros de segurança + Nenhuma palavra oculta. Adicione uma palavra abaixo para ocultar publicações que a contenham. + Conteúdo bloqueado + Preferências de filtragem + Nenhuma conta foi marcada como spam nesta sessão. + Enviar + Enviar todos os eventos de perfil recebidos (kind 0) para o seu relay local + Encaminhar perfis para relay local + Disponível para este destinatário: %1$s sats + Falha no pagamento + Transação: %1$s + Pagando via %1$s… + O servidor não forneceu uma URL após o upload + Configurações + Nenhum tópico silenciado + Tópicos silenciados + Compartilhar como imagem + Compartilhar como URL de imagem + Upload HLS + Compartilhar ou Salvar + Curtas + Mostrar o código QR da chave privada criptografado + Inclui mensagens diretas e de grupo na aba Notificações. Desative para manter as mensagens apenas na aba Mensagens. + Mostrar mensagens + Mostrar código QR de chave privada + Solicitação de assinatura rejeitada + Certifique-se de que a aplicação assinante autorizou esta transação + O assinador externo retornou dados estranhos para a solicitação. Pode haver um bug no Amethyst ou no assinador. + Assinador não encontrado + O aplicativo de assinatura foi desinstalado? Verifique se ele está instalado e com esta conta. Saia e entre novamente se ele foi alterado. + Voltar %1$d segundos + Avançar %1$d segundos + Aplicativos + O número de eventos de spam vindo deste relé + Mostra duas abas de notificações — Seguindo (pessoas que você segue) e Todos. O indicador de não lidas só acende para atividade de pessoas que você segue. + Dividir notificações por Seguindo + Tenta remover metadados privados de arquivos de mídia compatíveis antes do envio + Remover metadados privados + Lê treinos concluídos do Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) e sugere compartilhá-los como publicação. A permissão é solicitada apenas quando você conecta. + Sugerir treinos para compartilhar + Sistema + Tema + Tema Escuro, Claro ou Padrão + Esta mensagem desaparecerá em %1$s + + +%1$d\nresposta + +%1$d\nrespostas + + Hoje + Personalizado + Faça o seu próprio + Padrão + Oculte seu IP de relés aleatórios + Privacidade Completa + Oculte seu IP em todas as conexões + Interno + Desativado + Predefinições Tor/Privacidade + Modifique rapidamente todas as configurações abaixo + Tudo exceto Mídia + Oculte seu IP de tudo, exceto imagens e vídeos + Relés de DM + Forçar Tor para enviar e receber mensagens diretas + Imagens + Forçar Tor ao carregar imagens + Envio de Mídia + Forçar Tor ao enviar conteúdo + Operações Financeiras + Forçar Tor em zaps, transfers relâmpago e cashu + Relés Não Confiáveis + Forçar Tor em relés de entrada/saída + Verificação de Endereço Nostr + Forçar Tor ao verificar endereços NIP-05 + Endereço Onion/Relés + Use Tor para qualquer URL .onion + Fotos de Perfil + Forçar Tor ao carregar fotos de perfil + Relés Confiáveis + Forçar Tor em todos os relés nas suas listas + Pré-visualizações de URL + Forçar Tor ao carregar pré-visualizações de URL + Vídeos + Forçar Tor ao carregar vídeos + Básico + Use Tor quando for necessário pelo servidor + Falha ao abrir o arquivo + Nenhum aplicativo torrent instalado para abrir e baixar o arquivo. + O evento não tem informações suficientes para criar um link magnético + Usar o transmissor rastreado ao enviar eventos. Mostra progresso ao vivo e status por relay durante a transmissão. + Transmissões rastreadas + Traduzir para + Escolha o idioma para o qual o conteúdo será traduzido. + Traduções + Relays confiáveis + Relays em que você confia e que não precisam de conexão via Tor + Concluído + Desempenho + Simplificado + Preferências da Interface + Modo de interface + Escolha o estilo da publicação + Não foi possível criar uma fatura Lightning antes de enviar o zap. A carteira Lightning do destinatário enviou o seguinte erro: %1$s + Não é possível compartilhar a imagem, por favor tente novamente mais tarde… + Não foi possível compartilhar o vídeo, tente novamente mais tarde… + Descriptografia não autorizada + O assinador não autorizou a descriptografia necessária para realizar esta operação. Ative as descriptografias NIP-44 no seu aplicativo de assinatura e tente novamente + Desseguir + Desafixar + Desafixar do Perfil + Envio cancelado + Erro de upload + Falha no upload de voz: %1$s + Falha ao enviar mensagem de voz + O NIP-95 ainda não é suportado para mensagens de voz + %1$d%% de disponibilidade + Motor Tor Ativo + Use a versão interna ou o Orbot + Usuário não tem um endereço lightning configurado para receber sats + O usuário %1$s não possui um endereço lightning configurado para receber sats + Histórico de Desaparecimento + Pedido para desaparecer enviado + Melhor qualidade em arquivos menores, mas nem todos os dispositivos suportam reprodução em H.265. + Usar codec H.265/HEVC + O download do vídeo foi iniciado… + Botões do reprodutor de vídeo + Vídeo salvo na galeria de vídeos do telefone + Post de voz + Grave + Agudo + Neutro + Nenhum + Resposta em voz + Carteira + Carteira Cashu (NIP-60) + Conectar Carteira + Seu provedor de Wallet Connect retornou o seguinte erro: %1$s + Editar carteira Cashu + Mostra uma mensagem de aviso quando as postagens tiverem 5 ou mais relatórios de suas seguintes + Avisar em relatórios + Adicionar Marcador Web + Editar Marcador Web + Marcadores Web + O que você está pensando? + Treinos + Escreva uma mensagem… + Enviar para o Relay + A quantidade em bytes que foi enviada para este relé, incluindo filtros e eventos + + Renomear + Salvar diff --git a/commonsUI/src/commonMain/composeResources/values-ru-rRU/strings.xml b/commonsUI/src/commonMain/composeResources/values-ru-rRU/strings.xml index 1a8c28033f..31b7e2e59a 100644 --- a/commonsUI/src/commonMain/composeResources/values-ru-rRU/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-ru-rRU/strings.xml @@ -1797,4 +1797,1234 @@ Базовый URL API обозревателя Оплатить счёт от DVM Оплатить %1$s sats DVM + О приложении & правовые сведения + Настройки аккаунта + Добавить + Добавить Blossom сервер + Добавить NIP-96 сервер + При включении Amethyst добавляет NIP-89 клиентский тег к публикуемым вами событиям. + Добавлять клиентский тег к моим событиям + Добавляет предупреждение о чувствительном содержимом перед показом + Чувствительный контент + Добавить в Публичные закладки + Использует модель ИИ на устройстве для предложения исправлений текста и изменения тональности. + Предлагать улучшения текста + Поддерживает активные подключения к входящим relay для уведомлений в реальном времени + + Подключено к %1$d входящему relay + Подключено к %1$d входящим relay + Подключено к %1$d входящим relay + Подключено к %1$d входящих relay + + + Подключено к %1$d relay + Подключено к %1$d relay + Подключено к %1$d relay + Подключено к %1$d relay + + Подключение к входящим relay… + Уведомления Amethyst активны + Уведомления о входящих голосовых и видеозвонках + Входящие звонки + %1$s принял(а) ваш вызов на шахматную партию + Уведомляет вас о событиях шахматной партии + Шахматы + Обновления шахмат + %1$s сделал(а) ход — ваш ход + Уведомления о входящих сообщениях + Личные сообщения + Новые сообщения + Отметить прочитанным + Уведомляет вас, когда кто-то упоминает или цитирует вас в посте + %1$s упомянул(а) вас + Упоминания + Новые упоминания + Уведомляет вас, когда кто-то реагирует на ваш пост + %1$s отреагировал(а) на ваш пост + на %1$s + Реакции + Новые реакции + Уведомляет вас, когда кто-то отвечает на ваш пост + Ответы + Новые ответы + Ответить + Уведомления о публикации или ошибке запланированного поста. + Запланированные посты + Уведомления о полученных запах + %1$s sat + за %1$s + От %1$s + Запы + Новые запы + Настройки приложения + Аттестация + Запрос аттестации + Квалификация аттестора + Рекомендация аттестора + Визуализатор звука + Автоматически сохраняет черновик при вводе текста или выходе из редактора с неотправленным текстом и отправляет в ваши приватные outbox relay. + Автоматически создавать черновики + Иммерсивная прокрутка + Скрыть панели навигации при прокрутке + Просмотр изображения + Автоматически загружать изображения и GIF + Проигрывание видео + Автоматически воспроизводить видео и GIF + Картинка профилей + Показывать картинки профилей + Просмотр URL + Показывать предварительный просмотр ссылок + Автовоспроизведение видео + Автоматически воспроизводить видео при появлении на экране + Не удалось удалить метаданные из AVIF: %1$s + Вручить значок + Назад + Резервное копирование + Значки + Ошибка входа + Биометрия не смогла подтвердить личность владельца этого телефона + Биометрия не смогла подтвердить личность владельца этого телефона. Ошибка: %1$s + Блокировать + Заблокированные relay-серверы + Amethyst никогда не будет подключаться к этим relay-серверам. + Заблокированные пользователи + Новый список закладок + Метаданные списка закладок + Метаданные списков закладок могут быть видны любым пользователем Nostr. Только ваши частные участники зашифрованы. + Закладки + Продвинуть + Нижняя панель навигации + Relay-серверы для трансляции + Relay-серверы, специализирующиеся на рассылке ваших заметок на все остальные relay-серверы, например sendit.nosflare.com. Amethyst будет добавлять этот relay ко всем новым событиям, созданным вами. + Браузер + Избранное + Загрузка через открытую сеть. Нажмите, чтобы использовать Tor. + Загрузка через Tor. Нажмите, чтобы использовать открытую сеть. + + %1$s, %2$d событие + %1$s, %2$d события + %1$s, %2$d событий + %1$s, %2$d событий + + Ошибка загрузки изображения + Не удалось загрузить выбранное изображение. Попробуйте ещё раз или вставьте URL. + Поделиться событием календаря + Открыть на карте + Открыть ссылку + Происходит сейчас + %1$s · заканчивается %2$s + + Начнётся через %1$d минуту + Начнётся через %1$d минуты + Начнётся через %1$d минут + Начнётся через %1$d минуты + + Уведомление перед началом события, на которое вы записались. + Напоминания календаря + Событие календаря + Уведомление приходит перед началом события, на которое вы записались. + Отправлять напоминания + + %1$d мин + %1$d мин + %1$d мин + %1$d мин + + Напоминания календаря + День + Лента + Месяц + Неделя + Принять + Камера выключена + Камера включена + Динамик + Завершить + Входящий звонок + Входящий видеозвонок… + Входящий голосовой звонок… + Выключить микрофон + Звонки + Уведомление о текущем звонке + Amethyst требует доступ к камере и микрофону для совершения видеозвонка. Пожалуйста, включите их в настройках приложения. + Amethyst требует доступ к микрофону для совершения голосового звонка. Пожалуйста, включите его в настройках приложения. + Отклонить + Настройки звонков + Громкоговоритель + Включить микрофон + Звонок с %1$s + URL обратного вызова не найден в ответе %1$s + Отменить + Cashu-токен + Проверка mint'а… + Не удалось погасить Cashu + Mint вернул следующее сообщение об ошибке: %1$s + Получено + Отправлено + Подходящие mint'ы + + +%1$d ещё + +%1$d ещё + +%1$d ещё + +%1$d ещё + + Популярные mint'ы + + Рекомендовано %1$d пользователем + Рекомендовано %1$d пользователями + Рекомендовано %1$d пользователями + Рекомендовано %1$d пользователями + + Перемещено %1$s sat в %2$s. + На устройстве не найден совместимый Cashu-кошелёк + + %1$d ожидающий счёт + %1$d ожидающих счёта + %1$d ожидающих счетов + %1$d ожидающих счёта + + Оплатить %1$s sat + до %2$s sat комиссии? + Опубликовать запрос на удаление вашей рекомендации kind:38000 для %1$s. Relay'и, соблюдающие NIP-09, удалят её. + Восстановлено %1$s sats в %2$s доказательствах. + Cashu получен + %1$s sats отправлено в ваш кошелёк. (Комиссия: %2$s sats) + + Средства хранятся в %1$d mint, который вы не используете + Средства хранятся в %1$d mint, которые вы не используете + Средства хранятся в %1$d mint, которые вы не используете + Средства хранятся в %1$d mint, которые вы не используете + + Ожидание оплаты инвойса… + Остановить трансляцию + Трансляция на устройство + Стандарты безопасности детей + Аксессуары + Искусство + Книги + Одежда + Коллекции + Ремесло + Электроника + Фитнес + Еда + Мебель + Дом + Разное + Офис + Другое + Питомцы + Спорт + Ежедневно + Ежемесячно + Однократно + Еженедельно + Оплатить %1$s через %2$s? + Оплатить этот счёт через %1$s? + Сервис списания не завершил платёж. + Введите допустимую сумму для этого предложения. + Запрос счёта… + Закрыть все реакции на эту запись + Закрытые + Сообщества + Черновик занимает %1$d байт; в этом сообществе для данного kind установлено ограничение %2$d байт. + Черновик занимает %1$d байт; в этом сообществе установлено ограничение %2$d байт для событий. + Сегодня вы уже опубликовали %1$d событий этого kind (лимит: %2$d). + Настройки редактора + Порт по умолчанию: 9050 + Подключённые Relays + Текущий список используемых relay + Процент успешных соединений к трансляции + Всегда + Никогда + Безлимитный Wi-Fi + Добавить документ + Добавить фото + Добавить медиа + Добавить видео + Скрыть + Предупреждать + Показать + Обсуждения + Конвертирует анимированный GIF в видео MP4 для уменьшения размера файла и лучшей совместимости воспроизведения. + Конвертировать GIF в MP4 + ID записи (note1) скопирован + Копировать текст + Скопировано в буфер обмена + ID (npub) автора скопирован + Скопировать мой приватный ключ + Копировать в буфер обмена + Не удалось собрать LNUrl из Lightning Address «%1$s». Проверьте настройки пользователя + Не удалось проверить загруженный файл после выгрузки: %1$s + Не удалось скачать загруженные медиа с сервера + Не удалось получить счёт от %1$s: %2$s + Не удалось открыть сжатый файл + Кошелёк не найден + Amethyst не нашёл ни одного приложения кошелька с поддержкой Nostr Wallet Connect (NWC). +\n\nЧто можно сделать: +\n\t1. Проверьте поддержку NWC: убедитесь, что ваш кошелёк совместим с Nostr Wallet Connect. +\n\t2. Создайте подключение: откройте приложение кошелька и создайте новое NWC-подключение. +\n\t3. Привяжите к Amethyst: обычно кошелёк предлагает три варианта: +\n\t\t3.1 Автоматическая привязка: кнопка для автоматического открытия и подключения к Amethyst. Нажмите её, откройте Amethyst и сохраните новый экран. +\n\t\t3.2 Ручная привязка: URI подключения, который можно скопировать и вставить с помощью значка вставки на этом экране. +\n\t\t3.3 QR-код: кошелёк создаёт QR-код, который можно считать кнопкой QR-кода на этом экране. + + Создать + д + Опасная зона + Тёмная + Описание + Сделать публичным + Чаты + Сообщества + Алгоритмы ленты + Пакеты подписок + Прямые трансляции + Рынок + Чтение + Не переводить с + Языки показанные здесь не будут переведены. Выберите язык, чтобы удалить его и снова перевести. + Сохранить в телефон + Скачивание видео… + Черновая заметка + Черновики + Аккаунты + Создать + Ленты + Навигация + Система + Вы + + %1$d день + %1$d дня + %1$d дней + %1$d дня + + + %1$d час + %1$d часа + %1$d часов + %1$d часа + + + %1$d минута + %1$d минуты + %1$d минут + %1$d минуты + + + %1$d месяц + %1$d месяца + %1$d месяцев + %1$d месяца + + + %1$d неделя + %1$d недели + %1$d недель + %1$d недели + + + %1$d год + %1$d года + %1$d лет + %1$d года + + Редактировать календарь + Редактировать событие календаря + Редактировать сообщество + Изменить набор эмодзи + Редактировать плейлист + Редактировать пост + Приватные эмодзи хранятся в зашифрованном виде на relay и видны только вам. Они отображаются в вашем меню реакций и автодополнении «:» так же, как и публичные. + Публичные эмодзи видны всем и отображаются в вашем меню реакций и автодополнении «:», когда этот набор добавлен в ваш список. + Эмодзи + Шифровать файлы перед загрузкой для защиты конфиденциальности. Некоторые серверы могут не принимать зашифрованные файлы на бесплатных аккаунтах. + Шифровать файлы + Исчезающий чат + Ошибка + Не удалось оплатить счёт + Не удалось выполнить вывод + Не удалось открыть платёж + Не удалось отправить зап + Ошибка открытия приложения подписи + Приложение подписи не найдено. Проверьте, не было ли оно удалено + Ошибка при анализе сообщения об ошибке + Ошибка разбора JSON от %1$s. Проверьте настройки Lightning пользователя + Не удалось получить счёт с серверов получателя + Открыть в браузере + Не удаётся воспроизвести видео + Кодек или формат не поддерживается на этом устройстве (%1$s). Попробуйте открыть в браузере. + Ошибки + Синхронизация relay + события от вас + события для вас + Круговая тренировка + Велоспорт + Питание + Голодание + Пешие прогулки + Медитация + Гребля + Бег + Силовые тренировки + Плавание + Ходьба + Йога + Развернуть + Дата истечения + Экспортировать настройки relay + Не удалось удалить: %1$s + Не удалось зашифровать ваш приватный ключ + Не удалось сохранить фото + Не удалось сохранить PDF-файл + Не удалось сохранить видео + Многие серверы не принимают зашифрованные файлы на бесплатных аккаунтах. Вы можете повторить попытку без шифрования. + Зашифрованная загрузка не удалась + Ошибка загрузки: %1$s + Не удалось загрузить медиа + Не удалось загрузить на %1$s: %2$s + Добавить в избранное + Загружается через открытую сеть. + Загружается через Tor. + Недавние + Удалить из избранного + Это приложение ещё не загружено. Повторите попытку через мгновение. + Избранные приложения + Избранные алгоритмы лент + Платёж выполнен + Опубликовано на relay + Файл загружен + Избранные ленты Relay + Relay, которые вы часто посещаете для просмотра их глобальной ленты + Сообщества + Алгоритмы лент + Ленты + Хэштеги + Наборы интересов + Списки + Местоположения + Relay-серверы + Сервер для загрузки + Выберите сервер для загрузки этого файла + Скрывает публикации от незнакомцев, которые встречались 5 или более раз с одинаковым содержимым + Фильтр спама + Подписаться + Подписаться в ответ + Все избранные алгоритмы лент + Вокруг меня + Подборка + Глобально + Список подписок по умолчанию + Все подписки + Все подписки пользователя + Мои + Список игнора + Новый пакет подписок + Редактировать пакет подписок + Метаданные пакета подписок видны всем пользователям Nostr и часто публикуются на многих сайтах как стартовые наборы для новых пользователей. + Метаданные пакета подписок + Пакеты подписок + Новый список подписок + Редактировать список + Стиль галереи профиля + Выберите стиль галереи + Классический + Современный + Публикация только для местоположения + Её увидят только подписчики этого местоположения. Ваши обычные подписчики не увидят её. + %1$s собрано из %2$s sat + ч + Фото изменено. Автор мог не заметить изменение + Что это значит? + Фото не изменилось после публикации + Привет, %1$s, это ещё в наличии? + Скрытые слова + Удаляет публикации из лент сообщества, если сообщество опубликовало документ с правилами NIP-9B и событие им не соответствует. Не применяется, если у сообщества нет структурированных правил. + Скрывать публикации, нарушающие правила сообщества + Скрыть пароль + Загрузка %1$s (%2$d из %3$d) + Всё + Неверный запрос — сервер не может или не хочет обработать запрос. + Не авторизован — у пользователя нет действительных учётных данных для аутентификации. + Требуется оплата — сервер требует оплаты для выполнения запроса. + Запрещено — у пользователя нет прав доступа для выполнения запроса. + Не найдено — сервер не может найти запрошенный адрес. + Метод не разрешён — сервер поддерживает метод запроса, но не для целевого ресурса. + Неприемлемо — сервер не находит содержимого, удовлетворяющего запросу. + Требуется аутентификация прокси — у пользователя нет действительных учётных данных для аутентификации. + Тайм-аут запроса — сервер завершил ожидание ответа от другой стороны. + Конфликт — сервер не может выполнить запрос из-за конфликта с ресурсом. + Удалено — запрошенный контент был безвозвратно удалён с сервера и не будет восстановлен. + Требуется длина — сервер отклоняет запрос, поскольку требует указания длины содержимого. + Предусловие не выполнено — сервер не может выполнить предусловия, указанные в полях заголовка запроса. + Слишком большая нагрузка — запрос превышает установленные ограничения сервера, и сервер отказывается его обрабатывать. + URI слишком длинный — URL, запрошенный клиентом, слишком длинный для обработки сервером. + Неподдерживаемый тип медиа — запрос использует формат медиа, который сервер не поддерживает. + Диапазон не удовлетворён — сервер не может выполнить значение, указанное в поле заголовка Range запроса. + Ожидание не выполнено — сервер не может выполнить требования, указанные в поле заголовка Expect запроса. + Требуется обновление — сервер отказывается обрабатывать запрос с использованием текущего протокола, если клиент не перейдёт на другой протокол. + Внутренняя ошибка сервера — сервер столкнулся с непредвиденной ошибкой и не может выполнить запрос. + Не реализовано — сервер не может выполнить запрос или не распознаёт метод запроса. + Плохой шлюз — сервер выступает в роли шлюза и получил недопустимый ответ от хоста. + Сервис недоступен — это часто происходит, когда сервер перегружен или находится на техническом обслуживании. + Тайм-аут шлюза — сервер выступал в роли шлюза или прокси и превысил время ожидания ответа. + Версия HTTP не поддерживается — сервер не поддерживает версию HTTP, указанную в запросе. + Вариант также проводит переговоры — сервер имеет внутреннюю ошибку конфигурации. + Недостаточно места для хранения — у сервера недостаточно места для успешной обработки запроса. + Обнаружена петля — сервер обнаружил бесконечный цикл при обработке запроса. + Требуется сетевая аутентификация — клиент должен пройти аутентификацию для доступа к сети. + Незаконные действия + Фото сохранено в галерею + Выдача себя за другое лицо + Неверная сумма счёта (%1$s sats) от %2$s. Должно быть %3$s + Relay-серверы-индексаторы + Relay-серверы, специализирующиеся на хранении метаданных и списков relay-серверов всех пользователей, например purplepag.es. Amethyst будет использовать эти relay для поиска пользователей, которых нет в ваших списках. + Новый набор интересов + Переименовать + Наборы хэштегов + Некорректный ключ + Недопустимый ключ: %1$s + Неверный адрес + Amethyst получил URI для открытия, но этот URI недействителен: %1$s + Нельзя процитировать черновую заметку + Нельзя отреагировать на черновую заметку + Нельзя ответить на черновую заметку + Нельзя отправить zap на черновую заметку + Нужно ввести ключ + Relay, на которых публикуются ваши MLS KeyPackage (MIP-00). Другие пользователи загружают эти KeyPackage, чтобы пригласить вас в групповые чаты Marmot. Укажите от 1 до 3 relay, принимающих события KeyPackage от вас и допускающих публичное чтение. + Принятый набор значков + Пролог приключения + Чтение приключения + Сцена приключения + Рекомендации приложений + Запись + Приложения + Подтверждение записи + Аудио-заголовок + Аудиодорожка + Авторские подкасты + Выданные значки + Определения значков + Данные Blob + Заголовки Blob + Заблокированные relay + Блоги + Серверы Blossom + Список закладок + Вещательные relay + Календарь + Определение канала + Скрытое сообщение канала + Список каналов + Сообщение канала + Метаданные канала + Отключение пользователя в канале + Шахматные вызовы + Предложение ничьей + Принятие шахматной партии + Завершение шахматной партии + Шахматные партии + Шахматный ход + Объявления + Комментарии + Определение сообщества + Список сообществ + Пост сообщества + Контактная карточка + Дневная запись + Удаления + Файл в ЛС + Сообщение в ЛС + Relay для ЛС + Черновики + Правки + Список наборов эмодзи + Наборы эмодзи + Эфемерный чат + Эфемерные чат-комнаты + Избранные подкасты + Избранные relay + Заголовки файлов + Файловые серверы + Список подписок + Наборы подписок + Подписки по геохешу + Подписки по хештегу + Выделения + Список индексных relay + Живые чаты + Прямые трансляции + Медицинские данные + Комната встречи + Пространство встречи + Музыкальный плейлист + Музыкальный трек + Список отключённых + Именованные закладки + Серверы Nests + Заметки + Старый список закладок + Исходящие relay + Списки пользователей + Картинки + Закреплённые + Эпизод подкаста + Подкаст-шоу + Опрос + Ответ на опрос + Приватные relay + Приватные Zaps + Профиль + Значки профиля + Галерея профиля + Прокси-relay + Публичное сообщение + Реакции + Обнаружение relay + Объявление монитора relay + Набор relay + Жалобы + Репосты + Репосты (16) + Присутствие в комнате + Печати + Поисковые relay + Комментарии к торрентам + Торренты + Доверенные провайдеры + Доверенные relay + Удаление пользователя + Настройки пользователя + Статус пользователя + Видео + Видео (Repl) + Голосовое сообщение + Голосовой ответ + Веб-закладка + Тренировки + Цели Zap + Известные + Настройки отображения языка + Для каждой языковой пары, выберите язык, который показывать в первую очередь. + Последний раз %1$s назад + Только что был(а) в сети + Никогда не посещал(а) + Последний раз %1$s (%2$s назад) + Выйти + Светлая + Прямые трансляции + Локальные Relays + Список relay, работающих на этом устройстве. + Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы продвигать записи + Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы иметь возможность подписаться + Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы иметь возможность скрыть слово или предложение + Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы ответить + Войдите с приватным ключом чтобы запать + Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы иметь возможность показать слово или предложение + Вы используете публичный ключ. Войдите приватным ключом, чтобы редактировать + Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы иметь возможность отписаться + Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы иметь возможность загружать + Вы используете публичный ключ, они - только для чтения. Войдите с приватным ключом, чтобы лайкать посты + Видео + м + Мои наборы эмодзи + Добавление %1$s… + Права администратора выданы + Права администратора отозваны + Не удалось добавить %1$s: %2$s + Не удалось создать группу: %1$s + Не удалось выдать права администратора: %1$s + Не удалось покинуть группу: %1$s + Не удалось удалить участника: %1$s + Не удалось отозвать права администратора: %1$s + Не удалось обновить: %1$s + Информация о группе обновлена + + %1$d участник + %1$d участника + %1$d участников + %1$d участника + + Участник удалён + + %1$d сообщ. + %1$d сообщ. + %1$d сообщ. + %1$d сообщ. + + Не является участником этой группы + неизвестная ошибка + Медиа добавлено + Медиа добавлено в галерею вашего профиля + Загрузка вложений было запущено… + Медиасерверы + Медиафайл слишком большой для NIP-95 + Сначала укажите получателя сообщения + Невозможно загрузить + Заголовок + Не удалось удалить метаданные + Не удалось удалить личные метаданные из медиа. Загрузка отменена. + Закладки успешно перенесены + Отсутствует настройка Lightning + Больше опций + Переместить в личные + Переместить в публчный + Загрузить обложку + Выберите квадратное изображение в качестве обложки для этого плейлиста. + + +%1$d трек ещё + +%1$d трека ещё + +%1$d треков ещё + +%1$d трека ещё + + + %1$d трек + %1$d трека + %1$d треков + %1$d трека + + + %1$d трек + %1$d трека + %1$d треков + %1$d трека + + Загрузка обложки и публикация. Процесс продолжится, даже если вы покинете экран. + Загрузить аудиофайл + Выберите файл MP3, WAV или FLAC. Он будет загружен на ваш медиасервер при сохранении. + Загрузить обложку + Выберите квадратное изображение в качестве обложки для этого трека. + Загрузка обложки и аудио, публикация. Процесс продолжится, даже если вы покинете экран. + Звук включён. Нажмите для отключения + Без звука. Нажмите для включения + Мои списки + Требуется имя + %1$dмс + Настройки Namecoin + Личность + Читать ваш публичный ключ + Обмен сообщениями + Обмениваться сообщениями с другими nApplets + Действия клавиатуры + Привязывать клавиатурные сочетания + Уведомления + Показывать вам уведомления + relay + Читать, подписывать и публиковать ваши события + Сеть + Загружать веб-ресурсы и ресурсы Blossom + Хранилище + Собственное приватное хранилище + Тема + Соответствовать цветам вашего приложения + Загрузки + Загружать файлы на ваш медиасервер + Платежи + Оплачивать Lightning-инвойсы + Этот nApplet хочет прочитать ваш публичный ключ. + Этот nApplet хочет прочитать ваш профиль и данные аккаунта. + Этот nApplet хочет показывать вам уведомления. + + Этот nApplet хочет оплатить Lightning-инвойс на %1$d sat. + Этот nApplet хочет оплатить Lightning-инвойс на %1$d sats. + Этот nApplet хочет оплатить Lightning-инвойс на %1$d sats. + Этот nApplet хочет оплатить Lightning-инвойс на %1$d sats. + + Этот nApplet хочет подписать и опубликовать событие kind:%1$d от вашего имени. + Этот nApplet хочет отправить зашифрованное событие от вашего имени. + Этот nApplet хочет подписать и опубликовать событие kind:%1$d от вашего имени: + Этот nApplet хочет читать события с ваших relay. + Этот nApplet хочет загрузить веб-ресурс. + Этот сайт хочет подписать событие kind:%1$d вашим ключом Nostr. + Этот nApplet хочет использовать своё приватное хранилище. + Этот nApplet хочет загрузить файл на ваш медиасервер. + Не удалось отправить сообщение + Заглушить этого участника + Восстановить этого участника + Выйти + Не удалось отметить комнату как закрытую. Выходим в любом случае — комната закроется автоматически. + + %1$d слушатель + %1$d слушателя + %1$d слушателей + %1$d слушателя + + Опустить руку + Выключить микрофон + Включить микрофон + Выключить микрофон + Не удалось сохранить список nest-серверов. Повторите попытку. + Nest — в эфире + Позволяет воспроизводить звук, пока комната открыта. + Nest подключён + Стоп + Нажмите, чтобы вернуться. + Подписаться + Заглушить + Отписаться + Включить звук + покинул nest + присоединился как слушатель + вышел на сцену + поднял руку + говорит + Поднять руку + Включить микрофон + Сохраняется как заменяемое событие kind:10112, чтобы другие клиенты могли прочитать ваши настройки. + Ваши серверы + Встроенные предложения, которые можно добавить в список одним касанием. + Рекомендуемые серверы + Nest-серверы + никогда + Новый значок + Новый календарь + Новое событие календаря + Новое сообщество + Модераторы + Relay + Заблокированные пользователи + Комментарий сообщества (1111) + Длинная статья (30023) + Пост с изображением (20) + Короткий текст (1) + Короткое видео (22) + Видеопост (21) + Разрешённые виды событий + Глобальный максимальный размер события (необязательно) + Проверяемые правила (необязательно) + Фильтр сети доверия (необязательно) + Новый набор эмодзи + Новая цель + Новая статья + Новый плейлист + Новый музыкальный трек + Новый товар + Новые запросы + Новые треды + Новая тренировка + + %1$d вложение в комплекте + %1$d вложения в комплекте + %1$d вложений в комплекте + %1$d вложения в комплекте + + Blossom-приложения не найдены. Установите локальное Blossom-приложение для просмотра этого файла + Не удаётся открыть Blossom-ссылки + На этом устройстве не найдено приложение камеры + Lightning-адрес не задан + Не найдено приложение для обработки этого платежа. Пожалуйста, установите совместимый кошелёк. + Не найдено приложение для обработки платежей %1$s. Пожалуйста, установите совместимый кошелёк. + Типы реакций для этого пользователя не выбраны. Удерживайте кнопку сердечка, чтобы изменить + Реакции не настроены + Не найдено кошельков для оплаты Lightning-счёта. Установите Lightning-кошелёк для использования зап + Не найдено кошельков для оплаты Lightning-счёта (Ошибка: %1$s). Установите Lightning-кошелёк для использования зап + Не настроены запы. Нажмите и удерживайте для настройки + Уведомления + Категории + Доставка + Отображение в приложении + сейчас + Арт Nowhere + Дроп Nowhere + Событие Nowhere + Форум Nowhere + Сбор средств Nowhere + Сайт Nowhere + Сообщение Nowhere + Петиция Nowhere + Магазин Nowhere + Нагота + Не удаётся создать ссылку на событие + В заметке нет публичного ключа получателя + Nutzap'ы публичны и раскроют эту приватную заметку. Используйте вместо этого Lightning зап. + Nutzap не удался + + Отправить %1$s sats, %2$d получателю + Отправить %1$s sats, %2$d получателям + Отправить %1$s sats, %2$d получателям + Отправить %1$s sats, %2$d получателям + + Блокчейн-бэкенд Bitcoin не настроен + Не удалось транслировать транзакцию + Не удалось построить транзакцию + Не удалось загрузить баланс Bitcoin + Платёж отправлен, но квитанция о запе не может быть опубликована + + Платёж отправлен (%1$d из %2$d квитанции опубликовано), но следующая квитанция не может быть опубликована + Платёж отправлен (%1$d из %2$d квитанций опубликовано), но следующая квитанция не может быть опубликована + Платёж отправлен (%1$d из %2$d квитанций опубликовано), но следующая квитанция не может быть опубликована + Платёж отправлен (%1$d из %2$d квитанций опубликовано), но следующая квитанция не может быть опубликована + + Доля получателя ниже минимального порога (dust) + Не удалось подписать транзакцию + ~10 мин + ~30 мин + ~1 ч + Быстро + Нормально + Медленно + + Разделение между %1$d получателем + Разделение между %1$d получателями + Разделение между %1$d получателями + Разделение между %1$d получателями + + + Пропуск %1$d получателя с только Lightning-адресом — onchain требует публичный ключ Nostr для получения адреса. + Пропуск %1$d получателей с только Lightning-адресом — onchain требует публичный ключ Nostr для получения адреса. + Пропуск %1$d получателей с только Lightning-адресом — onchain требует публичный ключ Nostr для получения адреса. + Пропуск %1$d получателей с только Lightning-адресом — onchain требует публичный ключ Nostr для получения адреса. + + + Использовать разделение этой заметки на %1$d часть + Использовать разделение этой заметки на %1$d части + Использовать разделение этой заметки на %1$d частей + Использовать разделение этой заметки на %1$d частей + + трансляция + построение транзакции + загрузка баланса + публикация квитанции + подпись + В этом опросе можно голосовать только один раз + Открыть все реакции на эту запись + Открытые + Порт Orbot Socks + Есть доказательство того, что эта публикация была подписана до %1$s. Доказательство зафиксировано в блокчейне Bitcoin в указанную дату и время. + Доказательство временно́й метки + Требуется пароль + Пауза + Оплатить + Сообщение от %1$s + Получатели платежей + Добавьте платёжные адреса для различных сетей (например, bitcoin, lightning, ethereum). + PDF сохранён в Downloads/Amethyst + Метаданные списков подписок могут видеть все пользователи Nostr. Только приватные участники зашифрованы. + Метаданные списка подписок + Изображения + Закрепить наверху + Закрепить в профиле + Воспроизведение + + %1$d эпизод + %1$d эпизода + %1$d эпизодов + %1$d эпизода + + Автор опроса не может голосовать + (0–100)% + Опрос закрыт + Несколько вариантов ответа + Вариант %1$s + Один вариант ответа + Невозможно проголосовать + Опросы + Отправить + + Этот пост имеет более чем %1$d хэштег + Этот пост имеет более чем %1$d хэштегов + Этот пост имеет более чем %1$d хэштегов + Этот пост имеет более чем %1$d хэштегов + + Предпросмотр для %1$s + Настройки конфиденциальности + Политика конфиденциальности + <Не удалось расшифровать сообщение!>\n\nВас упомянули в приватном/зашифрованном чате между %1$s и %2$s. + Укажите от 1 до 3 relay для использования в качестве личного почтового ящика. Другие будут использовать эти relay для отправки вам DM. DM Inbox relay должны принимать любые сообщения от кого угодно, но разрешать скачивание только вам. Хорошие варианты:\n - inbox.nostr.wine (платно)\n - auth.nostr1.com (бесплатно)\n - you.nostr1.com (личные relay — платно) + Пользователь получает DM на этих relay + Личное сообщение + Сделать приватным: gift-wrap заметка только для уведомлённых пользователей + Ответы на приватную заметку всегда остаются приватными + Видно для + Приватные Home Relays + Укажите от 1 до 3 relay для хранения событий, недоступных никому другому, например ваших черновиков и/или настроек приложения. В идеале эти relay являются либо локальными, либо требуют аутентификации перед загрузкой контента каждого пользователя. + Брань / Оскорбления + Профиль + Значки профиля + Рекомендации приложений + Значки профиля + Лента подписчиков + Лента полученных Zap + Интерфейс профиля + профили + Предложить изменение + Агрегирующие relay-серверы, которые приложение использует для загрузки ваших лент, например filter.nostr.wine. Это заменяет модель outbox и позволит приложению подключаться только к relay-серверам из ваших списков. + Публичный чат + Публичные чаты видны всем в Nostr и открыты + для участия любого желающего. Они отлично подходят для открытых сообществ по определённым темам. + Модерация осуществляется путём удаления постов на relay + Укажите от 1 до 3 relay, на которых размещена эта группа. + Клиенты Nostr используют эту настройку, чтобы знать, откуда загружать сообщения и куда их отправлять. + Relay + Метаданные публичного чата + Публичные чаты + Публичные Outbox/Home Relays + Этот тип relay хранит весь ваш контент. Amethyst будет отправлять ваши публикации сюда, а другие будут использовать эти relay для поиска вашего контента. Укажите от 1 до 3 relay. Это могут быть личные, платные или публичные relay. + Пользователь публикует контент на этих relay + Публичное сообщение + Публичные Inbox Relays + Этот тип relay получает все ответы, комментарии, лайки и zap к вашим публикациям. Они могут быть платными или бесплатными. Ограничения, установленные оператором relay, могут влиять на получаемые уведомления как положительно, так и отрицательно. Например, если вас атакуют спам-комментариями, платные relay могут отфильтровать спам. Укажите от 1 до 3 relay. + Пользователь получает уведомления на этих relay + ID записи + Удалить + Заглушить тред + Поделиться + Поделиться ссылкой + Включить звук треда + Реакция + Реакции + Панель реакций + Чтение из relay + Объём данных в байтах, полученных от этого relay, включая фильтры и события + Пользователь только для чтения + Нажмите и удерживайте, чтобы записать сообщение + Чат relay + Чаты relay — это групповые чаты, управляемые их домашним relay. + Они видны всем в Nostr, и любой может в них участвовать. + Они отлично подходят для открытых сообществ по определённым темам. Некоторые группы эфемерны, + поэтому сообщения исчезают со временем + Чаты relay + События + IP-адреса + Виды + Пользователи + Настройки + Настройки Relay + списки исходящих + Relay + Пополнить & отправить зап + Отправить зап + Пополнить %1$s sats на %2$s и запнуть %3$s %4$s sats · комиссия ≈ %5$s sats + Удалить + Убрать из Публичных закладок + ответить.. + Уведомление: + + Запросить удаление + Запрос на удаление + Не удалось сбросить состояние Marmot: %1$s + Сбросить состояние Marmot + Состояние Marmot сброшено. + Повторить + Списки календарей + Календари + Шахматы + Обзор + Главная + Импортировать подписки + Сообщения + Плейлисты + Музыка + Уведомления + Эпизоды + Подкасты + Запланировать пост + Отменить расписание + Запланированные посты могут не опубликоваться до следующего открытия приложения. Запланированные посты других аккаунтов не будут отправлены, пока активен этот аккаунт. Включите постоянный режим в Настройках → Настройки интерфейса для надёжного фонового планирования. + Запланированные посты могут не опубликоваться до следующего открытия приложения. Включите постоянный режим в Настройках → Настройки интерфейса для надёжного фонового планирования. + Запланированные посты + Отправить сейчас + %1$s · через %2$s + %1$s · %2$s назад + Завтра + Ошибка: %1$s + ID заметки скопирован + + Выход выполнен · %1$d запланированный пост удалён + Выход выполнен · %1$d запланированных поста удалено + Выход выполнен · %1$d запланированных постов удалено + Выход выполнен · %1$d запланированных поста удалено + + Выход выполнен + + У вас %1$d запланированный пост, который ещё не опубликован. При выходе он будет удалён навсегда. + У вас %1$d запланированных поста, которые ещё не опубликованы. При выходе они будут удалены навсегда. + У вас %1$d запланированных постов, которые ещё не опубликованы. При выходе они будут удалены навсегда. + У вас %1$d запланированных поста, которые ещё не опубликованы. При выходе они будут удалены навсегда. + + Ошибка запланированного поста + Запланированный пост опубликован + + на %1$d relay + на %1$d relay + на %1$d relay + на %1$d relay + + Отменено + Ошибка + Запланировано + Отправка… + Отправлено + + · %1$d через 1ч + · %1$d через 1ч + · %1$d через 1ч + · %1$d через 1ч + + + %1$d в очереди + %1$d в очереди + %1$d в очереди + %1$d в очереди + + Хорошие варианты:\n%1$s + Поисковые Relays + Поисковые Relays + Список relay для поиска контента или пользователей. Упоминание и поиск не будут работать при отсутствии доступных вариантов. Убедитесь, что они реализуют NIP-50. + события в поиске + Приватный ключ (nsec) скопирован + Вы ещё не заблокировали ни одного пользователя. + Фильтры безопасности + Скрытых слов нет. Добавьте слово ниже, чтобы скрывать публикации с ним. + Заблокированный контент + Настройки фильтрации + В этой сессии ни один аккаунт не был помечен как спам. + Отправить + Отправлять все полученные события профиля (kind 0) на ваш локальный relay + Пересылать профили на локальный relay + Доступно для этого получателя: %1$s sats + Платёж не выполнен + Транзакция: %1$s + Оплата через %1$s… + Сервер не предоставил URL после загрузки + Настройки + Нет заглушённых веток + Заглушённые ветки + Поделиться как изображение + Поделиться URL изображения + Загрузка HLS + Поделиться или сохранить + Показать зашифрованный QR-код приватного ключа + Включить личные и групповые сообщения во вкладку «Уведомления». Отключите, чтобы сообщения отображались только во вкладке «Сообщения». + Показывать сообщения + Показать QR-код приватного ключа + Запрос на подпись отклонён + Убедитесь, что приложение подписи авторизовало эту транзакцию + Внешний подписант вернул неожиданный ответ на запрос. Возможно, ошибка в Amethyst или в приложении подписи. + Подпись не найдена + Приложение подписи удалено? Убедитесь, что оно установлено и содержит этот аккаунт. Выйдите и войдите снова, если приложение подписи изменилось. + Перемотать назад на %1$d сек. + Перемотать вперёд на %1$d сек. + Приложения + Спам + Количество спам-событий, поступающих с этого relay + Спамеры + Показывать две вкладки уведомлений — «Подписки» (люди, на которых вы подписаны) и «Все». Индикатор непрочитанных светится только для активности от людей, на которых вы подписаны. + Разделить уведомления по подпискам + Пытается удалить личные метаданные из поддерживаемых медиафайлов перед загрузкой + Удалить личные метаданные + Читает завершённые тренировки из Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) и предлагает поделиться ими в виде публикации. Разрешение запрашивается только при подключении. + Предлагать публикации тренировок + Как в системе + Тема + Тёмная, светлая или системная тема + Это сообщение исчезнет через %1$s + + +%1$d\\nответ + +%1$d\\nответа + +%1$d\\nответов + +%1$d\\nответа + + Сегодня + Настраиваемый + Настройте по своему усмотрению + По умолчанию + Скрыть ваш IP от случайных relay + Полная конфиденциальность + Скрыть ваш IP во всех соединениях + Встроенный + Выкл + Пресеты Tor/конфиденциальности + Быстро изменить все настройки ниже + Всё кроме медиа + Скрыть ваш IP от всего, кроме изображений и видео + DM relay + Принудительно использовать Tor для отправки и получения личных сообщений + Изображения + Принудительно использовать Tor при загрузке изображений + Загрузка медиа + Принудительно использовать Tor при загрузке контента + Денежные операции + Принудительно использовать Tor для запов, Lightning и переводов cashu + Ненадёжные relay + Принудительно использовать Tor для исходящих/входящих relay + Верификация Nostr-адреса + Принудительно использовать Tor при верификации NIP-05 адресов + Onion-адреса/relay + Использовать Tor для любых .onion-адресов + Фотографии профилей + Принудительно использовать Tor при загрузке фотографий профилей + Доверенные relay + Принудительно использовать Tor для всех relay из ваших списков + Превью URL + Принудительно использовать Tor при загрузке превью ссылок + Видео + Принудительно использовать Tor при загрузке видео + Базовый + Использовать Tor только когда это требуется сервером + Не удалось открыть файл + Нет установленных torrent-приложений для открытия и скачивания файла. + В событии недостаточно информации для создания magnet-ссылки. + Использует отслеживаемый режим при отправке событий. Показывает прогресс в реальном времени и статус по каждому relay. + Отслеживаемые трансляции + Перевести на + Выберите язык для перевода содержимого. + Переводы + Доверенные Relays + Relay, которым вы доверяете настолько, что Tor-соединение не требуется + Полный + Производительный + Упрощённый + Настройки интерфейса + Режим интерфейса + Выберите стиль публикаций + Не удалось создать Lightning-счёт перед отправкой зап. Lightning-кошелёк получателя вернул следующую ошибку: %1$s + Не удается поделиться изображением, повторите попытку позже… + Не удается поделиться видео, повторите попытку позже… + Несанкционированная расшифровка + Подписчик не авторизовал расшифровку, необходимую для выполнения этой операции. Активируйте расшифровки NIP-44 в приложении для подписчика и попробуйте еще раз + Отписаться + Открепить + Открепить от профиля + Загрузка отменена + Ошибка загрузки + Ошибка загрузки голосового сообщения: %1$s + Неудалось загрузить голосовое сообщение + NIP-95 пока не поддерживается для голосовых сообщений + %1$d%% времени работы + Встроенный движок Tor + Использовать встроенную версию или Orbot + Пользователь не установил Lightning адрес для получения чаевых + У пользователя %1$s не настроен Lightning-адрес для получения sats + История запросов на удаление + Запрос на удаление отправлен + Лучшее качество при меньшем размере файла, но не все устройства поддерживают воспроизведение H.265. + Использовать кодек H.265/HEVC + Скачивание видео было запущено… + Кнопки видеоплеера + Видео сохранено в галерею + Голосовая публикация + Глубокий + Высокий + Нейтральный + Отсутствует + Голосовой ответ + Кошелёк + Cashu-кошелёк (NIP-60) + Ваш провайдер wallet connect вернул следующую ошибку: %1$s + Изменить mint'ы + Показывает предупреждение, если на публикацию или профиль пожаловались люди из ваших подписок + Предупреждать о жалобах + Добавить веб-закладку + Редактировать веб-закладку + Веб-закладки + Что нового? + Тренировки + Написать сообщение… + Запись в relay + Объём данных в байтах, отправленных на этот relay, включая фильтры и события + Запы + + Переименовать + Сохранить diff --git a/commonsUI/src/commonMain/composeResources/values-ru-rUA/strings.xml b/commonsUI/src/commonMain/composeResources/values-ru-rUA/strings.xml index 93d9da7558..6c72dece09 100644 --- a/commonsUI/src/commonMain/composeResources/values-ru-rUA/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-ru-rUA/strings.xml @@ -1788,4 +1788,1229 @@ Базовый URL API обозревателя Оплатить счёт от DVM Оплатить %1$s sats DVM + О приложении & правовые сведения + Настройки аккаунта + Добавить + Добавить Blossom сервер + Добавить NIP-96 сервер + При включении Amethyst добавляет NIP-89 клиентский тег к публикуемым вами событиям. + Добавлять клиентский тег к моим событиям + Добавляет предупреждение о чувствительном контенте перед его отображением + Чувствительный контент + Добавить в публичные закладки + Использует модель ИИ на устройстве для предложения исправлений текста и изменения тональности. + Предлагать улучшения текста + Поддерживает активные подключения к входящим relay для уведомлений в реальном времени + + Подключено к %1$d входящему relay + Подключено к %1$d входящим relay + Подключено к %1$d входящим relay + Подключено к %1$d входящих relay + + + Подключено к %1$d relay + Подключено к %1$d relay + Подключено к %1$d relay + Подключено к %1$d relay + + Подключение к входящим relay… + Уведомления Amethyst активны + Уведомления о входящих голосовых и видеозвонках + Входящие звонки + %1$s принял(а) ваш вызов на шахматную партию + Уведомляет вас о событиях шахматной партии + Шахматы + Обновления шахмат + %1$s сделал(а) ход — ваш ход + Уведомляет о получении личного сообщения + Личные сообщения + Новые сообщения + Отметить прочитанным + Уведомляет вас, когда кто-то упоминает или цитирует вас в посте + %1$s упомянул(а) вас + Упоминания + Новые упоминания + Уведомляет вас, когда кто-то реагирует на ваш пост + %1$s отреагировал(а) на ваш пост + на %1$s + Реакции + Новые реакции + Уведомляет вас, когда кто-то отвечает на ваш пост + Ответы + Новые ответы + Ответить + Уведомления о публикации или ошибке запланированного поста. + Запланированные посты + Уведомляет, когда кто-то отправляет вам zap + %1$s sat + за %1$s + От %1$s + Полученные zap + Новые запы + Настройки приложения + Аттестация + Запрос аттестации + Квалификация аттестора + Рекомендация аттестора + Визуализатор звука + Автоматически сохраняет черновик при вводе текста или выходе из редактора с неотправленным текстом и отправляет в ваши приватные outbox relay. + Автоматически создавать черновики + Иммерсивная прокрутка + Скрывать панель навигации при прокрутке + Предпросмотр изображений + Автоматически загружать изображения и GIF + Воспроизведение видео + Автоматически загружать видео и GIF + Фото профиля + Показывать фото профиля + Предпросмотр URL + Показывать предварительный просмотр ссылок + Автовоспроизведение видео + Автоматически воспроизводить видео при появлении на экране + Не удалось удалить метаданные из AVIF: %1$s + Вручить значок + Назад + Резервное копирование ключей + Значки + Аутентификация не удалась + Биометрия не смогла подтвердить личность владельца телефона + Биометрия не смогла подтвердить личность владельца телефона. Ошибка: %1$s + Заблокировать + Заблокированные relay-серверы + Amethyst никогда не будет подключаться к этим relay-серверам. + Заблокированные пользователи + Новый список закладок + Метаданные списка закладок + Метаданные списков закладок видны всем в Nostr. Только личные записи зашифрованы. + Закладки + Репост + Нижняя панель навигации + Relay-серверы для трансляции + Relay-серверы, специализирующиеся на рассылке ваших заметок на все остальные relay-серверы, например sendit.nosflare.com. Amethyst будет добавлять этот relay ко всем новым событиям, созданным вами. + Браузер + Избранное + Загрузка через открытую сеть. Нажмите, чтобы использовать Tor. + Загрузка через Tor. Нажмите, чтобы использовать открытую сеть. + + %1$s, %2$d событие + %1$s, %2$d события + %1$s, %2$d событий + %1$s, %2$d событий + + Ошибка загрузки изображения + Не удалось загрузить выбранное изображение. Попробуйте ещё раз или вставьте URL. + Поделиться событием календаря + Открыть на карте + Открыть ссылку + Происходит сейчас + %1$s · заканчивается %2$s + + Начнётся через %1$d минуту + Начнётся через %1$d минуты + Начнётся через %1$d минут + Начнётся через %1$d минуты + + Уведомление перед началом события, на которое вы записались. + Напоминания календаря + Событие календаря + Уведомление приходит перед началом события, на которое вы записались. + Отправлять напоминания + + %1$d мин + %1$d мин + %1$d мин + %1$d мин + + Напоминания календаря + День + Лента + Месяц + Неделя + Принять + Камера выключена + Камера включена + Динамик + Завершить + Входящий звонок + Входящий видеозвонок… + Входящий голосовой звонок… + Выключить микрофон + Звонки + Уведомление о текущем звонке + Amethyst требует доступ к камере и микрофону для совершения видеозвонка. Пожалуйста, включите их в настройках приложения. + Amethyst требует доступ к микрофону для совершения голосового звонка. Пожалуйста, включите его в настройках приложения. + Отклонить + Настройки звонков + Громкоговоритель + Включить микрофон + Звонок с %1$s + URL обратного вызова не найден в ответе %1$s + Отмена + Cashu-токен + Проверка mint'а… + Не удалось погасить Cashu + Mint вернул следующее сообщение об ошибке: %1$s + Получено + Отправлено + Подходящие mint'ы + + +%1$d ещё + +%1$d ещё + +%1$d ещё + +%1$d ещё + + Популярные mint'ы + + Рекомендовано %1$d пользователем + Рекомендовано %1$d пользователями + Рекомендовано %1$d пользователями + Рекомендовано %1$d пользователями + + Перемещено %1$s sat в %2$s. + На устройстве не найден совместимый Cashu-кошелёк + + %1$d ожидающий счёт + %1$d ожидающих счёта + %1$d ожидающих счетов + %1$d ожидающих счёта + + Оплатить %1$s sat + до %2$s sat комиссии? + Опубликовать запрос на удаление вашей рекомендации kind:38000 для %1$s. Relay'и, соблюдающие NIP-09, удалят её. + Восстановлено %1$s sats в %2$s доказательствах. + Cashu получен + %1$s sats отправлено в ваш кошелёк. (Комиссия: %2$s sats) + + Средства хранятся в %1$d mint, который вы не используете + Средства хранятся в %1$d mint, которые вы не используете + Средства хранятся в %1$d mint, которые вы не используете + Средства хранятся в %1$d mint, которые вы не используете + + Ожидание оплаты инвойса… + Остановить трансляцию + Трансляция на устройство + Стандарты безопасности детей + Аксессуары + Искусство + Книги + Одежда + Коллекционные предметы + Рукоделие + Электроника + Фитнес + Еда + Мебель + Дом + Разное + Офис + Другое + Животные + Спорт + Ежедневно + Ежемесячно + Однократно + Еженедельно + Оплатить %1$s через %2$s? + Оплатить этот счёт через %1$s? + Сервис списания не завершил платёж. + Введите допустимую сумму для этого предложения. + Запрос счёта… + Закрыть все реакции на эту запись + Закрытые + Сообщества + Черновик занимает %1$d байт; в этом сообществе для данного kind установлено ограничение %2$d байт. + Черновик занимает %1$d байт; в этом сообществе установлено ограничение %2$d байт для событий. + Сегодня вы уже опубликовали %1$d событий этого kind (лимит: %2$d). + Настройки редактора + Порт по умолчанию: 9050 + Подключённые Relays + Текущий список используемых relay + Процент успешных подключений к relay + Всегда + Никогда + Безлимитный Wi-Fi + Добавить документ + Добавить изображение + Добавить медиа + Добавить видео + Скрыть + Предупреждать + Показать + Беседы + Конвертирует анимированный GIF в видео MP4 для уменьшения размера файла и лучшей совместимости воспроизведения. + Конвертировать GIF в MP4 + ID записи (@note1) скопирован в буфер обмена + Текст записи скопирован в буфер обмена + Скопировано в буфер обмена + @npub автора скопирован в буфер обмена + Скопировать мой секретный ключ + Скопировать в буфер обмена + Не удалось собрать LNUrl из Lightning Address «%1$s». Проверьте настройки пользователя + Не удалось проверить загруженный файл после выгрузки: %1$s + Не удалось скачать загруженные медиа с сервера + Не удалось получить счёт от %1$s: %2$s + Не удалось открыть сжатый файл + Кошелёк не найден + Amethyst не нашёл ни одного приложения кошелька с поддержкой Nostr Wallet Connect (NWC). +\n\nЧто можно сделать: +\n\t1. Проверьте поддержку NWC: убедитесь, что ваш кошелёк совместим с Nostr Wallet Connect. +\n\t2. Создайте подключение: откройте приложение кошелька и создайте новое NWC-подключение. +\n\t3. Привяжите к Amethyst: обычно кошелёк предлагает три варианта: +\n\t\t3.1 Автоматическая привязка: кнопка для автоматического открытия и подключения к Amethyst. Нажмите её, откройте Amethyst и сохраните новый экран. +\n\t\t3.2 Ручная привязка: URI подключения, который можно скопировать и вставить с помощью значка вставки на этом экране. +\n\t\t3.3 QR-код: кошелёк создаёт QR-код, который можно считать кнопкой QR-кода на этом экране. + + Создать + Опасная зона + Тёмная + Описание + Сделать публичным + Чаты + Сообщества + Алгоритмы ленты + Пакеты подписок + Прямые трансляции + Маркетплейс + Чтение + Не переводить с + Языки, указанные здесь, не будут переводиться. Выберите язык, чтобы убрать его из списка и снова включить перевод. + Сохранить на телефон + Загрузка видео… + Черновая заметка + Черновики + Аккаунты + Создать + Ленты + Навигация + Система + Вы + + %1$d день + %1$d дня + %1$d дней + %1$d дня + + + %1$d час + %1$d часа + %1$d часов + %1$d часа + + + %1$d минута + %1$d минуты + %1$d минут + %1$d минуты + + + %1$d месяц + %1$d месяца + %1$d месяцев + %1$d месяца + + + %1$d неделя + %1$d недели + %1$d недель + %1$d недели + + + %1$d год + %1$d года + %1$d лет + %1$d года + + Редактировать календарь + Редактировать событие календаря + Редактировать сообщество + Изменить набор эмодзи + Редактировать плейлист + Редактировать пост + Приватные эмодзи хранятся в зашифрованном виде на relay и видны только вам. Они отображаются в вашем меню реакций и автодополнении «:» так же, как и публичные. + Публичные эмодзи видны всем и отображаются в вашем меню реакций и автодополнении «:», когда этот набор добавлен в ваш список. + Эмодзи + Шифровать файлы перед загрузкой для защиты конфиденциальности. Некоторые серверы могут не принимать зашифрованные файлы на бесплатных аккаунтах. + Шифровать файлы + Исчезающий чат + Ошибка + Не удалось оплатить счёт + Не удалось выполнить вывод + Не удалось открыть платёж + Не удалось отправить зап + Ошибка открытия приложения подписи + Приложение подписи не найдено. Проверьте, не было ли оно удалено + Ошибка разбора сообщения об ошибке + Ошибка разбора JSON от %1$s. Проверьте настройки Lightning пользователя + Не удалось получить счёт с серверов получателя + Открыть в браузере + Не удаётся воспроизвести видео + Кодек или формат не поддерживается на этом устройстве (%1$s). Попробуйте открыть в браузере. + Ошибки + Синхронизация relay + события от вас + события для вас + Круговая тренировка + Велоспорт + Питание + Голодание + Пешие прогулки + Медитация + Гребля + Бег + Силовые тренировки + Плавание + Ходьба + Йога + Развернуть + Дата истечения + Экспортировать настройки relay + Не удалось удалить: %1$s + Не удалось зашифровать ваш приватный ключ + Не удалось сохранить изображение + Не удалось сохранить PDF + Не удалось сохранить видео + Многие серверы не принимают зашифрованные файлы на бесплатных аккаунтах. Вы можете повторить попытку без шифрования. + Зашифрованная загрузка не удалась + Ошибка загрузки: %1$s + Не удалось загрузить медиа + Не удалось загрузить на %1$s: %2$s + Добавить в избранное + Загружается через открытую сеть. + Загружается через Tor. + Недавние + Удалить из избранного + Это приложение ещё не загружено. Повторите попытку через мгновение. + Избранные приложения + Избранные алгоритмы лент + Платёж выполнен + Опубликовано на relay + Файл загружен + Избранные ленты Relay + Relay, которые вы часто посещаете для просмотра их глобальной ленты + Сообщества + Алгоритмы лент + Ленты + Хэштеги + Наборы интересов + Списки + Местоположения + Relay-серверы + Файловый сервер + Выберите сервер для загрузки этого файла + Скрывает публикации от незнакомцев, которые встречались 5 или более раз с одинаковым содержимым + Фильтр спама + Подписаться + Подписаться в ответ + Все избранные алгоритмы лент + Вокруг меня + Подборка + Глобальная + Список подписок по умолчанию + Все подписки + Все подписки пользователя + Мои + Список игнора + Новый пакет подписок + Редактировать пакет подписок + Метаданные пакета подписок видны всем пользователям Nostr и часто публикуются на многих сайтах как стартовые наборы для новых пользователей. + Метаданные пакета подписок + Пакеты подписок + Новый список подписок + Редактировать список + Стиль галереи профиля + Выберите стиль галереи + Классический + Современный + Публикация только для местоположения + Её увидят только подписчики этого местоположения. Ваши обычные подписчики не увидят её. + %1$s собрано из %2$s sat + Содержимое изменилось. Возможно, автор не видел или не одобрял это изменение + Что это означает? + Содержимое не изменилось с момента публикации + Привет, %1$s, это ещё в наличии? + Скрытые слова + Удаляет публикации из лент сообщества, если сообщество опубликовало документ с правилами NIP-9B и событие им не соответствует. Не применяется, если у сообщества нет структурированных правил. + Скрывать публикации, нарушающие правила сообщества + Скрыть пароль + Загрузка %1$s (%2$d из %3$d) + Всё + Неверный запрос — сервер не может или не хочет обработать запрос. + Не авторизован — у пользователя нет действительных учётных данных для аутентификации. + Требуется оплата — сервер требует оплаты для выполнения запроса. + Запрещено — у пользователя нет прав доступа для выполнения запроса. + Не найдено — сервер не может найти запрошенный адрес. + Метод не разрешён — сервер поддерживает метод запроса, но не для целевого ресурса. + Неприемлемо — сервер не находит содержимого, удовлетворяющего запросу. + Требуется аутентификация прокси — у пользователя нет действительных учётных данных для аутентификации. + Тайм-аут запроса — сервер завершил ожидание ответа от другой стороны. + Конфликт — сервер не может выполнить запрос из-за конфликта с ресурсом. + Удалено — запрошенный контент был безвозвратно удалён с сервера и не будет восстановлен. + Требуется длина — сервер отклоняет запрос, поскольку требует указания длины содержимого. + Предусловие не выполнено — сервер не может выполнить предусловия, указанные в полях заголовка запроса. + Слишком большая нагрузка — запрос превышает установленные ограничения сервера, и сервер отказывается его обрабатывать. + URI слишком длинный — URL, запрошенный клиентом, слишком длинный для обработки сервером. + Неподдерживаемый тип медиа — запрос использует формат медиа, который сервер не поддерживает. + Диапазон не удовлетворён — сервер не может выполнить значение, указанное в поле заголовка Range запроса. + Ожидание не выполнено — сервер не может выполнить требования, указанные в поле заголовка Expect запроса. + Требуется обновление — сервер отказывается обрабатывать запрос с использованием текущего протокола, если клиент не перейдёт на другой протокол. + Внутренняя ошибка сервера — сервер столкнулся с непредвиденной ошибкой и не может выполнить запрос. + Не реализовано — сервер не может выполнить запрос или не распознаёт метод запроса. + Плохой шлюз — сервер выступает в роли шлюза и получил недопустимый ответ от хоста. + Сервис недоступен — это часто происходит, когда сервер перегружен или находится на техническом обслуживании. + Тайм-аут шлюза — сервер выступал в роли шлюза или прокси и превысил время ожидания ответа. + Версия HTTP не поддерживается — сервер не поддерживает версию HTTP, указанную в запросе. + Вариант также проводит переговоры — сервер имеет внутреннюю ошибку конфигурации. + Недостаточно места для хранения — у сервера недостаточно места для успешной обработки запроса. + Обнаружена петля — сервер обнаружил бесконечный цикл при обработке запроса. + Требуется сетевая аутентификация — клиент должен пройти аутентификацию для доступа к сети. + Незаконные действия + Изображение сохранено в фотогалерее телефона + Выдача себя за другого + Неверная сумма счёта (%1$s sats) от %2$s. Должно быть %3$s + Relay-серверы-индексаторы + Relay-серверы, специализирующиеся на хранении метаданных и списков relay-серверов всех пользователей, например purplepag.es. Amethyst будет использовать эти relay для поиска пользователей, которых нет в ваших списках. + Новый набор интересов + Переименовать + Наборы хэштегов + Неверный ключ + Неверный ключ: %1$s + Неверный адрес + Amethyst получил URI для открытия, но этот URI недействителен: %1$s + Нельзя процитировать черновую заметку + Нельзя отреагировать на черновую заметку + Нельзя ответить на черновую заметку + Нельзя отправить zap на черновую заметку + Ключ обязателен + Relay, на которых публикуются ваши MLS KeyPackage (MIP-00). Другие пользователи загружают эти KeyPackage, чтобы пригласить вас в групповые чаты Marmot. Укажите от 1 до 3 relay, принимающих события KeyPackage от вас и допускающих публичное чтение. + Принятый набор значков + Пролог приключения + Чтение приключения + Сцена приключения + Рекомендации приложений + Запись + Приложения + Подтверждение записи + Аудио-заголовок + Аудиодорожка + Авторские подкасты + Выданные значки + Определения значков + Данные Blob + Заголовки Blob + Заблокированные relay + Блоги + Серверы Blossom + Список закладок + Вещательные relay + Календарь + Определение канала + Скрытое сообщение канала + Список каналов + Сообщение канала + Метаданные канала + Отключение пользователя в канале + Шахматные вызовы + Предложение ничьей + Принятие шахматной партии + Завершение шахматной партии + Шахматные партии + Шахматный ход + Объявления + Комментарии + Определение сообщества + Список сообществ + Пост сообщества + Контактная карточка + Дневная запись + Удаления + Файл в ЛС + Сообщение в ЛС + Relay для ЛС + Черновики + Правки + Список наборов эмодзи + Наборы эмодзи + Эфемерный чат + Эфемерные чат-комнаты + Избранные подкасты + Избранные relay + Заголовки файлов + Файловые серверы + Список подписок + Наборы подписок + Подписки по геохешу + Подписки по хештегу + Выделения + Список индексных relay + Живые чаты + Прямые трансляции + Медицинские данные + Комната встречи + Пространство встречи + Музыкальный плейлист + Музыкальный трек + Список отключённых + Именованные закладки + Серверы Nests + Заметки + Старый список закладок + Исходящие relay + Списки пользователей + Картинки + Закреплённые + Эпизод подкаста + Подкаст-шоу + Опрос + Ответ на опрос + Приватные relay + Приватные Zaps + Профиль + Значки профиля + Галерея профиля + Прокси-relay + Публичное сообщение + Реакции + Обнаружение relay + Объявление монитора relay + Набор relay + Жалобы + Репосты + Репосты (16) + Присутствие в комнате + Печати + Поисковые relay + Комментарии к торрентам + Торренты + Доверенные провайдеры + Доверенные relay + Удаление пользователя + Настройки пользователя + Статус пользователя + Видео + Видео (Repl) + Голосовое сообщение + Голосовой ответ + Веб-закладка + Тренировки + Цели Zap + Известные + Настройки отображения языка + Для каждой переведённой языковой пары выберите, какой язык показывать первым. + Последний раз %1$s назад + Только что был(а) в сети + Никогда не посещал(а) + Последний раз %1$s (%2$s назад) + Покинуть + Светлая + Прямые трансляции + Локальные Relays + Список relay, работающих на этом устройстве. + Вы используете публичный ключ, который доступен только для чтения. Войдите с приватным ключом, чтобы делать репосты + Вы используете публичный ключ, который доступен только для чтения. Войдите с приватным ключом, чтобы подписываться + Вы используете публичный ключ, который доступен только для чтения. Войдите с приватным ключом, чтобы скрыть слово или фразу + Вы используете публичный ключ, который доступен только для чтения. Войдите с приватным ключом, чтобы отвечать на записи + Вы используете публичный ключ, который доступен только для чтения. Войдите с приватным ключом, чтобы отправлять zap + Вы используете публичный ключ, который доступен только для чтения. Войдите с приватным ключом, чтобы показывать слово или фразу + Вы используете публичный ключ, который доступен только для чтения. Войдите с приватным ключом, чтобы подписывать события + Вы используете публичный ключ, который доступен только для чтения. Войдите с приватным ключом, чтобы отписываться + Вы используете публичный ключ, который доступен только для чтения. Войдите с приватным ключом, чтобы загружать файлы + Вы используете публичный ключ, который доступен только для чтения. Войдите с приватным ключом, чтобы ставить лайки + Видео + Мои наборы эмодзи + Добавление %1$s… + Права администратора выданы + Права администратора отозваны + Не удалось добавить %1$s: %2$s + Не удалось создать группу: %1$s + Не удалось выдать права администратора: %1$s + Не удалось покинуть группу: %1$s + Не удалось удалить участника: %1$s + Не удалось отозвать права администратора: %1$s + Не удалось обновить: %1$s + Информация о группе обновлена + + %1$d участник + %1$d участника + %1$d участников + %1$d участника + + Участник удалён + + %1$d сообщ. + %1$d сообщ. + %1$d сообщ. + %1$d сообщ. + + Не является участником этой группы + неизвестная ошибка + Медиа добавлено + Медиа добавлено в галерею вашего профиля + Загрузка медиафайла началась… + Медиасерверы + Медиафайл слишком большой для NIP-95 + Сначала укажите получателя сообщения + Невозможно загрузить + Тема + Не удалось удалить метаданные + Не удалось удалить личные метаданные из медиа. Загрузка отменена. + Закладки успешно перенесены + Отсутствует настройка Lightning + Ещё параметры + Переместить в личные + Переместить в публичные + Загрузить обложку + Выберите квадратное изображение в качестве обложки для этого плейлиста. + + +%1$d трек ещё + +%1$d трека ещё + +%1$d треков ещё + +%1$d трека ещё + + + %1$d трек + %1$d трека + %1$d треков + %1$d трека + + + %1$d трек + %1$d трека + %1$d треков + %1$d трека + + Загрузка обложки и публикация. Процесс продолжится, даже если вы покинете экран. + Загрузить аудиофайл + Выберите файл MP3, WAV или FLAC. Он будет загружен на ваш медиасервер при сохранении. + Загрузить обложку + Выберите квадратное изображение в качестве обложки для этого трека. + Загрузка обложки и аудио, публикация. Процесс продолжится, даже если вы покинете экран. + Звук включён. Нажмите для отключения + Без звука. Нажмите для включения + Мои списки + Необходимо указать имя + %1$dмс + Настройки Namecoin + Личность + Читать ваш публичный ключ + Обмен сообщениями + Обмениваться сообщениями с другими nApplets + Действия клавиатуры + Привязывать клавиатурные сочетания + Уведомления + Показывать вам уведомления + relay + Читать, подписывать и публиковать ваши события + Сеть + Загружать веб-ресурсы и ресурсы Blossom + Хранилище + Собственное приватное хранилище + Тема + Соответствовать цветам вашего приложения + Загрузки + Загружать файлы на ваш медиасервер + Платежи + Оплачивать Lightning-инвойсы + Этот nApplet хочет прочитать ваш публичный ключ. + Этот nApplet хочет прочитать ваш профиль и данные аккаунта. + Этот nApplet хочет показывать вам уведомления. + + Этот nApplet хочет оплатить Lightning-инвойс на %1$d sat. + Этот nApplet хочет оплатить Lightning-инвойс на %1$d sats. + Этот nApplet хочет оплатить Lightning-инвойс на %1$d sats. + Этот nApplet хочет оплатить Lightning-инвойс на %1$d sats. + + Этот nApplet хочет подписать и опубликовать событие kind:%1$d от вашего имени. + Этот nApplet хочет отправить зашифрованное событие от вашего имени. + Этот nApplet хочет подписать и опубликовать событие kind:%1$d от вашего имени: + Этот nApplet хочет читать события с ваших relay. + Этот nApplet хочет загрузить веб-ресурс. + Этот сайт хочет подписать событие kind:%1$d вашим ключом Nostr. + Этот nApplet хочет использовать своё приватное хранилище. + Этот nApplet хочет загрузить файл на ваш медиасервер. + Не удалось отправить сообщение + Заглушить этого участника + Восстановить этого участника + Выйти + Не удалось отметить комнату как закрытую. Выходим в любом случае — комната закроется автоматически. + + %1$d слушатель + %1$d слушателя + %1$d слушателей + %1$d слушателя + + Опустить руку + Выключить микрофон + Включить микрофон + Выключить микрофон + Не удалось сохранить список nest-серверов. Повторите попытку. + Nest — в эфире + Позволяет воспроизводить звук, пока комната открыта. + Nest подключён + Стоп + Нажмите, чтобы вернуться. + Подписаться + Заглушить + Отписаться + Включить звук + покинул nest + присоединился как слушатель + вышел на сцену + поднял руку + говорит + Поднять руку + Включить микрофон + Сохраняется как заменяемое событие kind:10112, чтобы другие клиенты могли прочитать ваши настройки. + Ваши серверы + Встроенные предложения, которые можно добавить в список одним касанием. + Рекомендуемые серверы + Nest-серверы + никогда + Новый значок + Новый календарь + Новое событие календаря + Новое сообщество + Модераторы + Relay + Заблокированные пользователи + Комментарий сообщества (1111) + Длинная статья (30023) + Пост с изображением (20) + Короткий текст (1) + Короткое видео (22) + Видеопост (21) + Разрешённые виды событий + Глобальный максимальный размер события (необязательно) + Проверяемые правила (необязательно) + Фильтр сети доверия (необязательно) + Новый набор эмодзи + Новая цель + Новая статья + Новый плейлист + Новый музыкальный трек + Новый товар + Новые запросы + Новые темы + Новая тренировка + + %1$d вложение в комплекте + %1$d вложения в комплекте + %1$d вложений в комплекте + %1$d вложения в комплекте + + Blossom-приложения не найдены. Установите локальное Blossom-приложение для просмотра этого файла + Не удаётся открыть Blossom-ссылки + На этом устройстве не найдено приложение камеры + Lightning-адрес не задан + Не найдено приложение для обработки этого платежа. Пожалуйста, установите совместимый кошелёк. + Не найдено приложение для обработки платежей %1$s. Пожалуйста, установите совместимый кошелёк. + Типы реакций для этого пользователя не выбраны. Удерживайте кнопку сердечка, чтобы изменить + Реакции не настроены + Не найдено кошельков для оплаты Lightning-счёта. Установите Lightning-кошелёк для использования зап + Не найдено кошельков для оплаты Lightning-счёта (Ошибка: %1$s). Установите Lightning-кошелёк для использования зап + Сумма Zap не настроена. Нажмите и удерживайте для изменения + Уведомления + Категории + Доставка + Отображение в приложении + сейчас + Арт Nowhere + Дроп Nowhere + Событие Nowhere + Форум Nowhere + Сбор средств Nowhere + Сайт Nowhere + Сообщение Nowhere + Петиция Nowhere + Магазин Nowhere + Обнажённость + Не удаётся создать ссылку на событие + В заметке нет публичного ключа получателя + Nutzap'ы публичны и раскроют эту приватную заметку. Используйте вместо этого Lightning зап. + Nutzap не удался + + Отправить %1$s sats, %2$d получателю + Отправить %1$s sats, %2$d получателям + Отправить %1$s sats, %2$d получателям + Отправить %1$s sats, %2$d получателям + + Блокчейн-бэкенд Bitcoin не настроен + Не удалось транслировать транзакцию + Не удалось построить транзакцию + Не удалось загрузить баланс Bitcoin + Платёж отправлен, но квитанция о запе не может быть опубликована + + Платёж отправлен (%1$d из %2$d квитанции опубликовано), но следующая квитанция не может быть опубликована + Платёж отправлен (%1$d из %2$d квитанций опубликовано), но следующая квитанция не может быть опубликована + Платёж отправлен (%1$d из %2$d квитанций опубликовано), но следующая квитанция не может быть опубликована + Платёж отправлен (%1$d из %2$d квитанций опубликовано), но следующая квитанция не может быть опубликована + + Доля получателя ниже минимального порога (dust) + Не удалось подписать транзакцию + ~10 мин + ~30 мин + ~1 ч + Быстро + Нормально + Медленно + + Разделение между %1$d получателем + Разделение между %1$d получателями + Разделение между %1$d получателями + Разделение между %1$d получателями + + + Пропуск %1$d получателя с только Lightning-адресом — onchain требует публичный ключ Nostr для получения адреса. + Пропуск %1$d получателей с только Lightning-адресом — onchain требует публичный ключ Nostr для получения адреса. + Пропуск %1$d получателей с только Lightning-адресом — onchain требует публичный ключ Nostr для получения адреса. + Пропуск %1$d получателей с только Lightning-адресом — onchain требует публичный ключ Nostr для получения адреса. + + + Использовать разделение этой заметки на %1$d часть + Использовать разделение этой заметки на %1$d части + Использовать разделение этой заметки на %1$d частей + Использовать разделение этой заметки на %1$d частей + + трансляция + построение транзакции + загрузка баланса + публикация квитанции + подпись + В этом типе опроса разрешён только один голос от пользователя + Открыть все реакции на эту запись + Открытые + Порт Orbot Socks + Есть доказательство того, что эта публикация была подписана до %1$s. Доказательство зафиксировано в блокчейне Bitcoin в указанную дату и время. + Доказательство временно́й метки + Необходимо указать пароль + Пауза + Оплатить + Сообщение от %1$s + Получатели платежей + Добавьте платёжные адреса для различных сетей (например, bitcoin, lightning, ethereum). + PDF сохранён в Downloads/Amethyst + Метаданные списков подписок могут видеть все пользователи Nostr. Только приватные участники зашифрованы. + Метаданные списка подписок + Изображения + Закрепить наверху + Закрепить в профиле + Воспроизвести + + %1$d эпизод + %1$d эпизода + %1$d эпизодов + %1$d эпизода + + Авторы опроса не могут голосовать в собственных опросах. + Опрос закрыт для новых голосов + Множественный выбор + Вариант %1$s + Одиночный выбор + Невозможно проголосовать + Опросы + Опубликовать + + В этой публикации более %1$d хэштега + В этой публикации более %1$d хэштегов + В этой публикации более %1$d хэштегов + В этой публикации более %1$d хэштега + + Изображение карточки предпросмотра для %1$s + Настройки конфиденциальности + Политика конфиденциальности + <Невозможно расшифровать личное сообщение>\n\nВас упомянули в личной/зашифрованной переписке между %1$s и %2$s. + Укажите от 1 до 3 relay для использования в качестве личного почтового ящика. Другие будут использовать эти relay для отправки вам DM. DM Inbox relay должны принимать любые сообщения от кого угодно, но разрешать скачивание только вам. Хорошие варианты:\n - inbox.nostr.wine (платно)\n - auth.nostr1.com (бесплатно)\n - you.nostr1.com (личные relay — платно) + Пользователь получает DM на этих relay + Личное сообщение + Сделать приватным: gift-wrap заметка только для уведомлённых пользователей + Ответы на приватную заметку всегда остаются приватными + Видно для + Приватные Home Relays + Укажите от 1 до 3 relay для хранения событий, недоступных никому другому, например ваших черновиков и/или настроек приложения. В идеале эти relay являются либо локальными, либо требуют аутентификации перед загрузкой контента каждого пользователя. + Ненормативная лексика / Язык ненависти + Профиль + Значки профиля + Рекомендации приложений + Значки профиля + Лента подписчиков + Лента полученных Zap + Интерфейс профиля + профили + Предложить правку + Агрегирующие relay-серверы, которые приложение использует для загрузки ваших лент, например filter.nostr.wine. Это заменяет модель outbox и позволит приложению подключаться только к relay-серверам из ваших списков. + Публичный чат + Публичные чаты видны всем в Nostr и открыты + для участия любого желающего. Они отлично подходят для открытых сообществ по определённым темам. + Модерация осуществляется путём удаления постов на relay + Укажите от 1 до 3 relay, на которых размещена эта группа. + Клиенты Nostr используют эту настройку, чтобы знать, откуда загружать сообщения и куда их отправлять. + Relay + Метаданные публичного чата + Публичные чаты + Публичные Outbox/Home Relays + Этот тип relay хранит весь ваш контент. Amethyst будет отправлять ваши публикации сюда, а другие будут использовать эти relay для поиска вашего контента. Укажите от 1 до 3 relay. Это могут быть личные, платные или публичные relay. + Пользователь публикует контент на этих relay + Публичное сообщение + Публичные Inbox Relays + Этот тип relay получает все ответы, комментарии, лайки и zap к вашим публикациям. Они могут быть платными или бесплатными. Ограничения, установленные оператором relay, могут влиять на получаемые уведомления как положительно, так и отрицательно. Например, если вас атакуют спам-комментариями, платные relay могут отфильтровать спам. Укажите от 1 до 3 relay. + Пользователь получает уведомления на этих relay + ID заметки + Удалить + Заглушить тред + Поделиться + Поделиться ссылкой в браузере + Включить звук треда + Реакция + Реакции + Панель реакций + Чтение из relay + Объём данных в байтах, полученных от этого relay, включая фильтры и события + Пользователь только для чтения + Нажмите и удерживайте для записи сообщения + Чат relay + Чаты relay — это групповые чаты, управляемые их домашним relay. + Они видны всем в Nostr, и любой может в них участвовать. + Они отлично подходят для открытых сообществ по определённым темам. Некоторые группы эфемерны, + поэтому сообщения исчезают со временем + Чаты relay + События + IP-адреса + Виды + Пользователи + Настройки + Настройки Relay + списки исходящих + Relay + Пополнить & отправить зап + Отправить зап + Пополнить %1$s sats на %2$s и запнуть %3$s %4$s sats · комиссия ≈ %5$s sats + Удалить + Удалить из публичных закладок + ответить здесь… + Уведомить: + + Запросить удаление + Запрос на удаление + Не удалось сбросить состояние Marmot: %1$s + Сбросить состояние Marmot + Состояние Marmot сброшено. + Повторить + Списки календарей + Календари + Шахматы + Обзор + Главная + Импортировать подписки + Сообщения + Плейлисты + Музыка + Уведомления + Эпизоды + Подкасты + Запланировать пост + Отменить расписание + Запланированные посты могут не опубликоваться до следующего открытия приложения. Запланированные посты других аккаунтов не будут отправлены, пока активен этот аккаунт. Включите постоянный режим в Настройках → Настройки интерфейса для надёжного фонового планирования. + Запланированные посты могут не опубликоваться до следующего открытия приложения. Включите постоянный режим в Настройках → Настройки интерфейса для надёжного фонового планирования. + Запланированные посты + Отправить сейчас + %1$s · через %2$s + %1$s · %2$s назад + Завтра + Ошибка: %1$s + ID заметки скопирован + + Выход выполнен · %1$d запланированный пост удалён + Выход выполнен · %1$d запланированных поста удалено + Выход выполнен · %1$d запланированных постов удалено + Выход выполнен · %1$d запланированных поста удалено + + Выход выполнен + + У вас %1$d запланированный пост, который ещё не опубликован. При выходе он будет удалён навсегда. + У вас %1$d запланированных поста, которые ещё не опубликованы. При выходе они будут удалены навсегда. + У вас %1$d запланированных постов, которые ещё не опубликованы. При выходе они будут удалены навсегда. + У вас %1$d запланированных поста, которые ещё не опубликованы. При выходе они будут удалены навсегда. + + Ошибка запланированного поста + Запланированный пост опубликован + + на %1$d relay + на %1$d relay + на %1$d relay + на %1$d relay + + Отменено + Ошибка + Запланировано + Отправка… + Отправлено + + · %1$d через 1ч + · %1$d через 1ч + · %1$d через 1ч + · %1$d через 1ч + + + %1$d в очереди + %1$d в очереди + %1$d в очереди + %1$d в очереди + + Хорошие варианты:\n%1$s + Поисковые Relays + Поисковые Relays + Список relay для поиска контента или пользователей. Упоминание и поиск не будут работать при отсутствии доступных вариантов. Убедитесь, что они реализуют NIP-50. + события в поиске + Секретный ключ (nsec) скопирован в буфер обмена + Вы ещё не заблокировали ни одного пользователя. + Фильтры безопасности + Скрытых слов нет. Добавьте слово ниже, чтобы скрывать публикации с ним. + Заблокированный контент + Настройки фильтрации + В этой сессии ни один аккаунт не был помечен как спам. + Отправить + Отправлять все полученные события профиля (kind 0) на ваш локальный relay + Пересылать профили на локальный relay + Доступно для этого получателя: %1$s sats + Платёж не выполнен + Транзакция: %1$s + Оплата через %1$s… + Сервер не предоставил URL после загрузки + Настройки + Нет заглушённых веток + Заглушённые ветки + Поделиться как изображение + Поделиться URL изображения + Загрузка HLS + Поделиться или сохранить + Показать QR-код зашифрованного приватного ключа + Включить личные и групповые сообщения во вкладку «Уведомления». Отключите, чтобы сообщения отображались только во вкладке «Сообщения». + Показывать сообщения + Показать QR-код приватного ключа + Запрос на подпись отклонён + Убедитесь, что приложение подписи авторизовало эту транзакцию + Внешний подписант вернул неожиданный ответ на запрос. Возможно, ошибка в Amethyst или в приложении подписи. + Подписчик не найден + Приложение подписи удалено? Убедитесь, что оно установлено и содержит этот аккаунт. Выйдите и войдите снова, если приложение подписи изменилось. + Перемотать назад на %1$d сек. + Перемотать вперёд на %1$d сек. + Приложения + Спам + Количество спам-событий, поступающих с этого relay + Спамеры + Показывать две вкладки уведомлений — «Подписки» (люди, на которых вы подписаны) и «Все». Индикатор непрочитанных светится только для активности от людей, на которых вы подписаны. + Разделить уведомления по подпискам + Пытается удалить личные метаданные из поддерживаемых медиафайлов перед загрузкой + Удалить личные метаданные + Читает завершённые тренировки из Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) и предлагает поделиться ими в виде публикации. Разрешение запрашивается только при подключении. + Предлагать публикации тренировок + Системная + Тема + Тёмная, светлая или системная тема + Это сообщение исчезнет через %1$s + + +%1$d\\nответ + +%1$d\\nответа + +%1$d\\nответов + +%1$d\\nответа + + Сегодня + Настраиваемый + Настройте по своему усмотрению + По умолчанию + Скрыть ваш IP от случайных relay + Полная конфиденциальность + Скрыть ваш IP во всех соединениях + Встроенный + Выкл + Пресеты Tor/конфиденциальности + Быстро изменить все настройки ниже + Всё кроме медиа + Скрыть ваш IP от всего, кроме изображений и видео + DM relay + Принудительно использовать Tor для отправки и получения личных сообщений + Изображения + Принудительно использовать Tor при загрузке изображений + Загрузка медиа + Принудительно использовать Tor при загрузке контента + Денежные операции + Принудительно использовать Tor для запов, Lightning и переводов cashu + Ненадёжные relay + Принудительно использовать Tor для исходящих/входящих relay + Верификация Nostr-адреса + Принудительно использовать Tor при верификации NIP-05 адресов + Onion-адреса/relay + Использовать Tor для любых .onion-адресов + Фотографии профилей + Принудительно использовать Tor при загрузке фотографий профилей + Доверенные relay + Принудительно использовать Tor для всех relay из ваших списков + Превью URL + Принудительно использовать Tor при загрузке превью ссылок + Видео + Принудительно использовать Tor при загрузке видео + Базовый + Использовать Tor только когда это требуется сервером + Не удалось открыть файл + Нет установленных torrent-приложений для открытия и скачивания файла. + В событии недостаточно информации для создания magnet-ссылки. + Использует отслеживаемый режим при отправке событий. Показывает прогресс в реальном времени и статус по каждому relay. + Отслеживаемые трансляции + Перевести на + Выберите язык, на который переводить контент. + Переводы + Доверенные Relays + Relay, которым вы доверяете настолько, что Tor-соединение не требуется + Полный + Производительный + Упрощённый + Настройки интерфейса + Режим интерфейса + Выберите стиль публикаций + Не удалось создать Lightning-счёт перед отправкой зап. Lightning-кошелёк получателя вернул следующую ошибку: %1$s + Не удалось поделиться изображением, попробуйте позже… + Не удалось поделиться видео, попробуйте позже… + Несанкционированная расшифровка + Подписчик не авторизовал расшифровку, необходимую для выполнения этой операции. Активируйте расшифровку NIP-44 в вашем приложении-подписчике и повторите попытку + Отписаться + Открепить + Открепить от профиля + Загрузка отменена + Ошибка загрузки + Ошибка загрузки голосового сообщения: %1$s + Не удалось загрузить голосовое сообщение + NIP-95 пока не поддерживается для голосовых сообщений + %1$d%% времени работы + Встроенный движок Tor + Использовать встроенную версию или Orbot + У пользователя не настроен Lightning-адрес для получения sats + У пользователя %1$s не настроен Lightning-адрес для получения sats + История запросов на удаление + Запрос на удаление отправлен + Лучшее качество при меньшем размере файла, но не все устройства поддерживают воспроизведение H.265. + Использовать кодек H.265/HEVC + Загрузка видео началась… + Кнопки видеоплеера + Видео сохранено в галерею телефона + Голосовая публикация + Низкий + Высокий + Нейтральный + Нет + Голосовой ответ + Кошелёк + Cashu-кошелёк (NIP-60) + Ваш провайдер wallet connect вернул следующую ошибку: %1$s + Изменить mint'ы + Показывает предупреждение, если на публикацию или профиль пожаловались люди из ваших подписок + Предупреждать о жалобах + Добавить веб-закладку + Редактировать веб-закладку + Веб-закладки + О чём вы думаете? + Тренировки + Написать сообщение… + Запись в relay + Объём данных в байтах, отправленных на этот relay, включая фильтры и события + + Переименовать + Сохранить diff --git a/commonsUI/src/commonMain/composeResources/values-ru/strings.xml b/commonsUI/src/commonMain/composeResources/values-ru/strings.xml index 4a925b3587..e0af4d32c3 100644 --- a/commonsUI/src/commonMain/composeResources/values-ru/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-ru/strings.xml @@ -1825,4 +1825,1293 @@ Серверы: Открыть Использовать прямой URL + О приложении & правовые сведения + Настройки аккаунта + Добавить + Добавить Blossom сервер + Добавить NIP-96 сервер + При включении Amethyst добавляет NIP-89 клиентский тег к публикуемым вами событиям. + Добавлять клиентский тег к моим событиям + Добавляет предупреждение о чувствительном содержимом перед показом + Чувствительный контент + Добавить в Публичные закладки + Использует модель ИИ на устройстве для предложения исправлений текста и изменения тональности. + Предлагать улучшения текста + Поддерживает активные подключения к входящим relay для уведомлений в реальном времени + + Подключено к %1$d входящему relay + Подключено к %1$d входящим relay + Подключено к %1$d входящим relay + Подключено к %1$d входящих relay + + + Подключено к %1$d relay + Подключено к %1$d relay + Подключено к %1$d relay + Подключено к %1$d relay + + Подключение к входящим relay… + Уведомления Amethyst активны + Уведомления о входящих голосовых и видеозвонках + Входящие звонки + %1$s принял(а) ваш вызов на шахматную партию + Уведомляет вас о событиях шахматной партии + Шахматы + Обновления шахмат + %1$s сделал(а) ход — ваш ход + Уведомления о входящих сообщениях + Личные сообщения + Новые сообщения + Отметить прочитанным + Уведомляет вас, когда кто-то упоминает или цитирует вас в посте + %1$s упомянул(а) вас + Упоминания + Новые упоминания + Уведомляет вас, когда кто-то реагирует на ваш пост + %1$s отреагировал(а) на ваш пост + на %1$s + Реакции + Новые реакции + Уведомляет вас, когда кто-то отвечает на ваш пост + Ответы + Новые ответы + Ответить + Уведомления о публикации или ошибке запланированного поста. + Запланированные посты + Уведомления о полученных запах + %1$s sat + за %1$s + От %1$s + Запы + Новые запы + Настройки приложения + Аттестация + Запрос аттестации + Квалификация аттестора + Рекомендация аттестора + Визуализатор звука + Автоматически сохраняет черновик при вводе текста или выходе из редактора с неотправленным текстом и отправляет в ваши приватные outbox relay. + Автоматически создавать черновики + Иммерсивная прокрутка + Скрыть панели навигации при прокрутке + Просмотр изображения + Автоматически загружать изображения и GIF + Проигрывание видео + Автоматически воспроизводить видео и GIF + Картинка профилей + Показывать картинки профилей + Просмотр URL + Показывать предварительный просмотр ссылок + Автовоспроизведение видео + Автоматически воспроизводить видео при появлении на экране + Не удалось удалить метаданные из AVIF: %1$s + Вручить значок + Назад + Резервное копирование + Значки + Ошибка входа + Биометрия не смогла подтвердить личность владельца этого телефона + Биометрия не смогла подтвердить личность владельца этого телефона. Ошибка: %1$s + Блокировать + Заблокированные relay-серверы + Amethyst никогда не будет подключаться к этим relay-серверам. + Заблокированные пользователи + Новый список закладок + Метаданные списка закладок + Метаданные списков закладок видны всем в Nostr. Только ваши приватные элементы зашифрованы. + Закладки + Продвинуть + Нижняя панель навигации + Relay-серверы для трансляции + Relay-серверы, специализирующиеся на рассылке ваших заметок на все остальные relay-серверы, например sendit.nosflare.com. Amethyst будет добавлять этот relay ко всем новым событиям, созданным вами. + Браузер + Избранное + Загрузка через открытую сеть. Нажмите, чтобы использовать Tor. + Загрузка через Tor. Нажмите, чтобы использовать открытую сеть. + + %1$s, %2$d событие + %1$s, %2$d события + %1$s, %2$d событий + %1$s, %2$d событий + + Ошибка загрузки изображения + Не удалось загрузить выбранное изображение. Попробуйте ещё раз или вставьте URL. + Поделиться событием календаря + Открыть на карте + Открыть ссылку + Происходит сейчас + %1$s · заканчивается %2$s + + Начнётся через %1$d минуту + Начнётся через %1$d минуты + Начнётся через %1$d минут + Начнётся через %1$d минуты + + Уведомление перед началом события, на которое вы записались. + calendar_reminders + Напоминания календаря + Событие календаря + Уведомление приходит перед началом события, на которое вы записались. + Отправлять напоминания + + %1$d мин + %1$d мин + %1$d мин + %1$d мин + + Напоминания календаря + День + Лента + Месяц + Неделя + Принять + Bluetooth + Камера выключена + Камера включена + Динамик + Завершить + Входящий звонок + Входящий видеозвонок… + Входящий голосовой звонок… + Выключить микрофон + Звонки + Уведомление о текущем звонке + Amethyst требует доступ к камере и микрофону для совершения видеозвонка. Пожалуйста, включите их в настройках приложения. + Amethyst требует доступ к микрофону для совершения голосового звонка. Пожалуйста, включите его в настройках приложения. + Отклонить + Настройки звонков + Громкоговоритель + Включить микрофон + Звонок с %1$s + URL обратного вызова не найден в ответе %1$s + Отменить + Cashu-токен + Проверка mint'а… + Не удалось погасить Cashu + Mint вернул следующее сообщение об ошибке: %1$s + Получено + Отправлено + Подходящие mint'ы + + +%1$d ещё + +%1$d ещё + +%1$d ещё + +%1$d ещё + + Популярные mint'ы + + Рекомендовано %1$d пользователем + Рекомендовано %1$d пользователями + Рекомендовано %1$d пользователями + Рекомендовано %1$d пользователями + + Перемещено %1$s sat в %2$s. + На устройстве не найден совместимый Cashu-кошелёк + + %1$d ожидающий счёт + %1$d ожидающих счёта + %1$d ожидающих счетов + %1$d ожидающих счёта + + Оплатить %1$s sat + до %2$s sat комиссии? + Опубликовать запрос на удаление вашей рекомендации kind:38000 для %1$s. Relay'и, соблюдающие NIP-09, удалят её. + Восстановлено %1$s sats в %2$s доказательствах. + Cashu получен + %1$s sats отправлено в ваш кошелёк. (Комиссия: %2$s sats) + + Средства хранятся в %1$d mint, который вы не используете + Средства хранятся в %1$d mint, которые вы не используете + Средства хранятся в %1$d mint, которые вы не используете + Средства хранятся в %1$d mint, которые вы не используете + + Ожидание оплаты инвойса… + + %1$d mint + %1$d mint + %1$d mint + %1$d mint + + Остановить трансляцию + Трансляция на устройство + Стандарты безопасности детей + Аксессуары + Искусство + Книги + Одежда + Коллекции + Ремесло + Электроника + Фитнес + Еда + Мебель + Дом + Разное + Офис + Другое + Питомцы + Спорт + Ежедневно + Ежемесячно + Однократно + Еженедельно + Оплатить %1$s через %2$s? + Оплатить этот счёт через %1$s? + Сервис списания не завершил платёж. + Введите допустимую сумму для этого предложения. + Запрос счёта… + Закрыть все реакции на эту запись + Закрытые + Сообщества + Черновик занимает %1$d байт; в этом сообществе для данного kind установлено ограничение %2$d байт. + Черновик занимает %1$d байт; в этом сообществе установлено ограничение %2$d байт для событий. + Сегодня вы уже опубликовали %1$d событий этого kind (лимит: %2$d). + Настройки редактора + Порт по умолчанию: 9050 + Подключённые Relays + Текущий список используемых relay + Процент успешных подключений к relay + Всегда + Никогда + Безлимитный Wi-Fi + Добавить документ + Добавить фото + Добавить медиа + Добавить видео + Скрыть + Предупреждать + Показать + Обсуждения + Конвертирует анимированный GIF в видео MP4 для уменьшения размера файла и лучшей совместимости воспроизведения. + Конвертировать GIF в MP4 + ID записи (note1) скопирован + Копировать текст + Скопировано в буфер обмена + ID (npub) автора скопирован + Скопировать мой приватный ключ + Копировать в буфер обмена + Не удалось собрать LNUrl из Lightning Address «%1$s». Проверьте настройки пользователя + Не удалось проверить загруженный файл после выгрузки: %1$s + Не удалось скачать загруженные медиа с сервера + Не удалось получить счёт от %1$s: %2$s + Не удалось открыть сжатый файл + Кошелёк не найден + Amethyst не нашёл ни одного приложения кошелька с поддержкой Nostr Wallet Connect (NWC). +\n\nЧто можно сделать: +\n\t1. Проверьте поддержку NWC: убедитесь, что ваш кошелёк совместим с Nostr Wallet Connect. +\n\t2. Создайте подключение: откройте приложение кошелька и создайте новое NWC-подключение. +\n\t3. Привяжите к Amethyst: обычно кошелёк предлагает три варианта: +\n\t\t3.1 Автоматическая привязка: кнопка для автоматического открытия и подключения к Amethyst. Нажмите её, откройте Amethyst и сохраните новый экран. +\n\t\t3.2 Ручная привязка: URI подключения, который можно скопировать и вставить с помощью значка вставки на этом экране. +\n\t\t3.3 QR-код: кошелёк создаёт QR-код, который можно считать кнопкой QR-кода на этом экране. + + Создать + д + Опасная зона + Тёмная + Описание + Сделать публичным + Чаты + Сообщества + Алгоритмы ленты + Пакеты подписок + Прямые трансляции + Рынок + Чтение + DM Inbox Relays + DMs + Не переводить с + Языки, указанные здесь, не будут переводиться. Выберите язык, чтобы убрать его из списка и снова получать переводы. + Сохранить на телефон + Загрузка видео… + Черновая заметка + Черновики + Аккаунты + Создать + Ленты + Навигация + Система + Вы + + %1$d день + %1$d дня + %1$d дней + %1$d дня + + + %1$d час + %1$d часа + %1$d часов + %1$d часа + + + %1$d минута + %1$d минуты + %1$d минут + %1$d минуты + + + %1$d месяц + %1$d месяца + %1$d месяцев + %1$d месяца + + + %1$d неделя + %1$d недели + %1$d недель + %1$d недели + + + %1$d год + %1$d года + %1$d лет + %1$d года + + Редактировать календарь + Редактировать событие календаря + Редактировать сообщество + Изменить набор эмодзи + Редактировать плейлист + Редактировать пост + Приватные эмодзи хранятся в зашифрованном виде на relay и видны только вам. Они отображаются в вашем меню реакций и автодополнении «:» так же, как и публичные. + Публичные эмодзи видны всем и отображаются в вашем меню реакций и автодополнении «:», когда этот набор добавлен в ваш список. + Эмодзи + Шифровать файлы перед загрузкой для защиты конфиденциальности. Некоторые серверы могут не принимать зашифрованные файлы на бесплатных аккаунтах. + Шифровать файлы + Исчезающий чат + Ошибка + Не удалось оплатить счёт + Не удалось выполнить вывод + Не удалось открыть платёж + Не удалось отправить зап + Ошибка открытия приложения подписи + Приложение подписи не найдено. Проверьте, не было ли оно удалено + Ошибка при анализе сообщения об ошибке + Ошибка разбора JSON от %1$s. Проверьте настройки Lightning пользователя + Не удалось получить счёт с серверов получателя + Открыть в браузере + Не удаётся воспроизвести видео + Кодек или формат не поддерживается на этом устройстве (%1$s). Попробуйте открыть в браузере. + Ошибки + Синхронизация relay + события от вас + события для вас + AMRAP + Круговая тренировка + Велоспорт + Питание + EMOM + Голодание + Пешие прогулки + Медитация + Гребля + Бег + Силовые тренировки + Плавание + Ходьба + Йога + Развернуть + Дата истечения + Экспортировать настройки relay + Не удалось удалить: %1$s + Не удалось зашифровать ваш приватный ключ + Не удалось сохранить фото + Не удалось сохранить PDF + Не удалось сохранить видео + Многие серверы не принимают зашифрованные файлы на бесплатных аккаунтах. Вы можете повторить попытку без шифрования. + Зашифрованная загрузка не удалась + Ошибка загрузки: %1$s + Не удалось загрузить медиа + Не удалось загрузить на %1$s: %2$s + Добавить в избранное + Загружается через открытую сеть. + Загружается через Tor. + Недавние + Удалить из избранного + Это приложение ещё не загружено. Повторите попытку через мгновение. + Избранные приложения + Избранные алгоритмы лент + Платёж выполнен + Опубликовано на relay + Файл загружен + Избранные ленты Relay + Relay, которые вы часто посещаете для просмотра их глобальной ленты + Сообщества + Алгоритмы лент + Ленты + Хэштеги + Наборы интересов + Списки + Местоположения + Relay-серверы + Сервер для загрузки + Выберите сервер для загрузки файла + Скрывает публикации от незнакомцев, которые встречались 5 или более раз с одинаковым содержимым + Фильтр спама + Подписаться + Подписаться в ответ + Все избранные алгоритмы лент + Вокруг меня + Подборка + Глобально + Список подписок по умолчанию + Все подписки + Все подписки пользователя + Мои + Список игнора + Новый пакет подписок + Редактировать пакет подписок + Метаданные пакета подписок видны всем пользователям Nostr и часто публикуются на многих сайтах как стартовые наборы для новых пользователей. + Метаданные пакета подписок + Пакеты подписок + Новый список подписок + Редактировать список + Стиль галереи профиля + Выберите стиль галереи + Классический + Современный + Публикация только для местоположения + Её увидят только подписчики этого местоположения. Ваши обычные подписчики не увидят её. + %1$s собрано из %2$s sat + ч + Фото изменено. Автор мог не заметить изменение + Что это значит? + Фото не изменилось после публикации + Привет, %1$s, это ещё в наличии? + Скрытые слова + Удаляет публикации из лент сообщества, если сообщество опубликовало документ с правилами NIP-9B и событие им не соответствует. Не применяется, если у сообщества нет структурированных правил. + Скрывать публикации, нарушающие правила сообщества + Скрыть пароль + Загрузка %1$s (%2$d из %3$d) + Всё + Неверный запрос — сервер не может или не хочет обработать запрос. + Не авторизован — у пользователя нет действительных учётных данных для аутентификации. + Требуется оплата — сервер требует оплаты для выполнения запроса. + Запрещено — у пользователя нет прав доступа для выполнения запроса. + Не найдено — сервер не может найти запрошенный адрес. + Метод не разрешён — сервер поддерживает метод запроса, но не для целевого ресурса. + Неприемлемо — сервер не находит содержимого, удовлетворяющего запросу. + Требуется аутентификация прокси — у пользователя нет действительных учётных данных для аутентификации. + Тайм-аут запроса — сервер завершил ожидание ответа от другой стороны. + Конфликт — сервер не может выполнить запрос из-за конфликта с ресурсом. + Удалено — запрошенный контент был безвозвратно удалён с сервера и не будет восстановлен. + Требуется длина — сервер отклоняет запрос, поскольку требует указания длины содержимого. + Предусловие не выполнено — сервер не может выполнить предусловия, указанные в полях заголовка запроса. + Слишком большая нагрузка — запрос превышает установленные ограничения сервера, и сервер отказывается его обрабатывать. + URI слишком длинный — URL, запрошенный клиентом, слишком длинный для обработки сервером. + Неподдерживаемый тип медиа — запрос использует формат медиа, который сервер не поддерживает. + Диапазон не удовлетворён — сервер не может выполнить значение, указанное в поле заголовка Range запроса. + Ожидание не выполнено — сервер не может выполнить требования, указанные в поле заголовка Expect запроса. + Требуется обновление — сервер отказывается обрабатывать запрос с использованием текущего протокола, если клиент не перейдёт на другой протокол. + Внутренняя ошибка сервера — сервер столкнулся с непредвиденной ошибкой и не может выполнить запрос. + Не реализовано — сервер не может выполнить запрос или не распознаёт метод запроса. + Плохой шлюз — сервер выступает в роли шлюза и получил недопустимый ответ от хоста. + Сервис недоступен — это часто происходит, когда сервер перегружен или находится на техническом обслуживании. + Тайм-аут шлюза — сервер выступал в роли шлюза или прокси и превысил время ожидания ответа. + Версия HTTP не поддерживается — сервер не поддерживает версию HTTP, указанную в запросе. + Вариант также проводит переговоры — сервер имеет внутреннюю ошибку конфигурации. + Недостаточно места для хранения — у сервера недостаточно места для успешной обработки запроса. + Обнаружена петля — сервер обнаружил бесконечный цикл при обработке запроса. + Требуется сетевая аутентификация — клиент должен пройти аутентификацию для доступа к сети. + Незаконные действия + Фото сохранено в галерею + Выдача себя за другое лицо + Inbox Relays + Неверная сумма счёта (%1$s sats) от %2$s. Должно быть %3$s + Relay-серверы-индексаторы + Relay-серверы, специализирующиеся на хранении метаданных и списков relay-серверов всех пользователей, например purplepag.es. Amethyst будет использовать эти relay для поиска пользователей, которых нет в ваших списках. + Новый набор интересов + Переименовать + Наборы хэштегов + Некорректный ключ + Неверный ключ: %1$s + Неверный адрес + Amethyst получил URI для открытия, но этот URI недействителен: %1$s + Нельзя процитировать черновую заметку + Нельзя отреагировать на черновую заметку + Нельзя ответить на черновую заметку + Нельзя отправить zap на черновую заметку + Нужно ввести ключ + KeyPackage Relays + Relay, на которых публикуются ваши MLS KeyPackage (MIP-00). Другие пользователи загружают эти KeyPackage, чтобы пригласить вас в групповые чаты Marmot. Укажите от 1 до 3 relay, принимающих события KeyPackage от вас и допускающих публичное чтение. + KeyPackages + Принятый набор значков + Пролог приключения + Чтение приключения + Сцена приключения + Рекомендации приложений + Запись + Приложения + Подтверждение записи + Аудио-заголовок + Аудиодорожка + Авторские подкасты + Выданные значки + Определения значков + Данные Blob + Заголовки Blob + Заблокированные relay + Блоги + Blossom Auth + Серверы Blossom + Список закладок + Вещательные relay + Календарь + Определение канала + Скрытое сообщение канала + Список каналов + Сообщение канала + Метаданные канала + Отключение пользователя в канале + Chess Auth + Шахматные вызовы + Предложение ничьей + Принятие шахматной партии + Завершение шахматной партии + Шахматные партии + Шахматный ход + Объявления + Комментарии + Определение сообщества + Список сообществ + Пост сообщества + Контактная карточка + Дневная запись + Удаления + Файл в ЛС + Сообщение в ЛС + Relay для ЛС + Черновики + DVM Content Req + DVM Content Resp + DVM Status + DVM User Req + DVM User Resp + Правки + Список наборов эмодзи + Наборы эмодзи + Эфемерный чат + Эфемерные чат-комнаты + Избранные подкасты + Избранные relay + Заголовки файлов + Файловые серверы + Список подписок + Наборы подписок + Подписки по геохешу + GiftWraps + Git Issue + Git Patch + Git Reply + Git Repo + Подписки по хештегу + Выделения + Http Auth + Список индексных relay + Живые чаты + Прямые трансляции + Медицинские данные + Комната встречи + Пространство встречи + Музыкальный плейлист + Музыкальный трек + Список отключённых + Именованные закладки + Серверы Nests + NIP + NIP-04 DMs + NNS + Nostr Connect + Заметки + NWC Request + NWC Response + Старый список закладок + OTS + Исходящие relay + PayTo + Списки пользователей + Картинки + Закреплённые + Эпизод подкаста + Подкаст-шоу + Опрос + Ответ на опрос + Приватные relay + Приватные Zaps + Профиль + Значки профиля + Галерея профиля + Прокси-relay + Публичное сообщение + Реакции + Relay Auth + Обнаружение relay + Объявление монитора relay + Набор relay + Жалобы + Репосты + Репосты (16) + Присутствие в комнате + Печати + Поисковые relay + Shorts + Shorts (Repl) + Комментарии к торрентам + Торренты + Доверенные провайдеры + Доверенные relay + Удаление пользователя + Настройки пользователя + Статус пользователя + Видео + Видео (Repl) + Голосовое сообщение + Голосовой ответ + WakeUp + Веб-закладка + Wiki + Тренировки + Цели Zap + Zap Poll + Zap Req + Zaps + Известные + Настройки отображения языка + Для каждой переведённой языковой пары выберите, какой язык показывать первым. + Последний раз %1$s назад + Только что был(а) в сети + Никогда не посещал(а) + Последний раз %1$s (%2$s назад) + Выйти + Светлая + Прямые трансляции + Локальные Relays + Список relay, работающих на этом устройстве. + Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы продвигать записи + Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы иметь возможность подписаться + Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы иметь возможность скрыть слово или предложение + Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы ответить + Войдите с приватным ключом чтобы запать + Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы иметь возможность показать слово или предложение + Вы используете публичный ключ, который доступен только для чтения. Войдите с приватным ключом, чтобы подписывать события + Вы используете публичный ключ, они - только для чтения. Войдите в систему приватным ключом, чтобы иметь возможность отписаться + Вы используете публичный ключ, который доступен только для чтения. Войдите с приватным ключом, чтобы загружать файлы + Вы используете публичный ключ, они - только для чтения. Войдите с приватным ключом, чтобы лайкать посты + Видео + м + Мои наборы эмодзи + Добавление %1$s… + Права администратора выданы + Права администратора отозваны + Не удалось добавить %1$s: %2$s + Не удалось создать группу: %1$s + Не удалось выдать права администратора: %1$s + Не удалось покинуть группу: %1$s + Не удалось удалить участника: %1$s + Не удалось отозвать права администратора: %1$s + Не удалось обновить: %1$s + Marmot Group + Информация о группе обновлена + + %1$d участник + %1$d участника + %1$d участников + %1$d участника + + Участник удалён + + %1$d сообщ. + %1$d сообщ. + %1$d сообщ. + %1$d сообщ. + + Не является участником этой группы + неизвестная ошибка + Медиа добавлено + Медиа добавлено в галерею вашего профиля + Загрузка медиафайла начата… + Медиасерверы + Медиафайл слишком большой для NIP-95 + Сначала укажите получателя сообщения + Невозможно загрузить + Заголовок + Не удалось удалить метаданные + Не удалось удалить личные метаданные из медиа. Загрузка отменена. + Закладки успешно перенесены + Отсутствует настройка Lightning + Больше опций + Переместить в приватные + Переместить в публичные + Загрузить обложку + Выберите квадратное изображение в качестве обложки для этого плейлиста. + + +%1$d трек ещё + +%1$d трека ещё + +%1$d треков ещё + +%1$d трека ещё + + + %1$d трек + %1$d трека + %1$d треков + %1$d трека + + + %1$d трек + %1$d трека + %1$d треков + %1$d трека + + Загрузка обложки и публикация. Процесс продолжится, даже если вы покинете экран. + Загрузить аудиофайл + Выберите файл MP3, WAV или FLAC. Он будет загружен на ваш медиасервер при сохранении. + Загрузить обложку + Выберите квадратное изображение в качестве обложки для этого трека. + Загрузка обложки и аудио, публикация. Процесс продолжится, даже если вы покинете экран. + Звук включён. Нажмите для отключения + Без звука. Нажмите для включения + Мои списки + Необходимо указать имя + %1$dмс + Настройки Namecoin + Личность + Читать ваш публичный ключ + Обмен сообщениями + Обмениваться сообщениями с другими nApplets + Действия клавиатуры + Привязывать клавиатурные сочетания + Уведомления + Показывать вам уведомления + relay + Читать, подписывать и публиковать ваши события + Сеть + Загружать веб-ресурсы и ресурсы Blossom + Хранилище + Собственное приватное хранилище + Тема + Соответствовать цветам вашего приложения + Загрузки + Загружать файлы на ваш медиасервер + Платежи + Оплачивать Lightning-инвойсы + Этот nApplet хочет прочитать ваш публичный ключ. + Этот nApplet хочет прочитать ваш профиль и данные аккаунта. + Этот nApplet хочет показывать вам уведомления. + + Этот nApplet хочет оплатить Lightning-инвойс на %1$d sat. + Этот nApplet хочет оплатить Lightning-инвойс на %1$d sats. + Этот nApplet хочет оплатить Lightning-инвойс на %1$d sats. + Этот nApplet хочет оплатить Lightning-инвойс на %1$d sats. + + Этот nApplet хочет подписать и опубликовать событие kind:%1$d от вашего имени. + Этот nApplet хочет отправить зашифрованное событие от вашего имени. + Этот nApplet хочет подписать и опубликовать событие kind:%1$d от вашего имени: + Этот nApplet хочет читать события с ваших relay. + Этот nApplet хочет загрузить веб-ресурс. + Этот сайт хочет подписать событие kind:%1$d вашим ключом Nostr. + Этот nApplet хочет использовать своё приватное хранилище. + Этот nApplet хочет загрузить файл на ваш медиасервер. + nApplet %1$s… + nApplets + Не удалось отправить сообщение + Заглушить этого участника + Восстановить этого участника + Выйти + Не удалось отметить комнату как закрытую. Выходим в любом случае — комната закроется автоматически. + + %1$d слушатель + %1$d слушателя + %1$d слушателей + %1$d слушателя + + Опустить руку + Выключить микрофон + Включить микрофон + Выключить микрофон + Не удалось сохранить список nest-серверов. Повторите попытку. + Nest — в эфире + Nests + Позволяет воспроизводить звук, пока комната открыта. + Nest подключён + Стоп + Нажмите, чтобы вернуться. + Подписаться + Заглушить + Отписаться + Включить звук + покинул nest + присоединился как слушатель + вышел на сцену + поднял руку + говорит + Поднять руку + Включить микрофон + Nests + Сохраняется как заменяемое событие kind:10112, чтобы другие клиенты могли прочитать ваши настройки. + Ваши серверы + Встроенные предложения, которые можно добавить в список одним касанием. + Рекомендуемые серверы + Nest-серверы + никогда + Новый значок + Новый календарь + Новое событие календаря + Новое сообщество + Модераторы + Relay + Заблокированные пользователи + Комментарий сообщества (1111) + Длинная статья (30023) + Пост с изображением (20) + Короткий текст (1) + Короткое видео (22) + Видеопост (21) + Разрешённые виды событий + Глобальный максимальный размер события (необязательно) + Проверяемые правила (необязательно) + Фильтр сети доверия (необязательно) + Новый набор эмодзи + Новая цель + Новая статья + Новый плейлист + Новый музыкальный трек + Новый товар + Новые запросы + Новые треды + Новая тренировка + + %1$d вложение в комплекте + %1$d вложения в комплекте + %1$d вложений в комплекте + %1$d вложения в комплекте + + Blossom-приложения не найдены. Установите локальное Blossom-приложение для просмотра этого файла + Не удаётся открыть Blossom-ссылки + На этом устройстве не найдено приложение камеры + Lightning-адрес не задан + Не найдено приложение для обработки этого платежа. Пожалуйста, установите совместимый кошелёк. + Не найдено приложение для обработки платежей %1$s. Пожалуйста, установите совместимый кошелёк. + Типы реакций для этого пользователя не выбраны. Удерживайте кнопку сердечка, чтобы изменить + Реакции не настроены + Не найдено кошельков для оплаты Lightning-счёта. Установите Lightning-кошелёк для использования зап + Не найдено кошельков для оплаты Lightning-счёта (Ошибка: %1$s). Установите Lightning-кошелёк для использования зап + Не настроены запы. Нажмите и удерживайте для настройки + Уведомления + Категории + Доставка + Отображение в приложении + сейчас + Арт Nowhere + Дроп Nowhere + Событие Nowhere + Форум Nowhere + Сбор средств Nowhere + Сайт Nowhere + Сообщение Nowhere + Петиция Nowhere + Магазин Nowhere + nSites + Нагота + Не удаётся создать ссылку на событие + В заметке нет публичного ключа получателя + Nutzap'ы публичны и раскроют эту приватную заметку. Используйте вместо этого Lightning зап. + Nutzap не удался + + Отправить %1$s sats, %2$d получателю + Отправить %1$s sats, %2$d получателям + Отправить %1$s sats, %2$d получателям + Отправить %1$s sats, %2$d получателям + + Блокчейн-бэкенд Bitcoin не настроен + Не удалось транслировать транзакцию + Не удалось построить транзакцию + Не удалось загрузить баланс Bitcoin + Платёж отправлен, но квитанция о запе не может быть опубликована + + Платёж отправлен (%1$d из %2$d квитанции опубликовано), но следующая квитанция не может быть опубликована + Платёж отправлен (%1$d из %2$d квитанций опубликовано), но следующая квитанция не может быть опубликована + Платёж отправлен (%1$d из %2$d квитанций опубликовано), но следующая квитанция не может быть опубликована + Платёж отправлен (%1$d из %2$d квитанций опубликовано), но следующая квитанция не может быть опубликована + + Доля получателя ниже минимального порога (dust) + Не удалось подписать транзакцию + ~10 мин + ~30 мин + ~1 ч + Быстро + Нормально + Медленно + %1$s · %2$s sat/vB · %3$s + + Разделение между %1$d получателем + Разделение между %1$d получателями + Разделение между %1$d получателями + Разделение между %1$d получателями + + + Пропуск %1$d получателя с только Lightning-адресом — onchain требует публичный ключ Nostr для получения адреса. + Пропуск %1$d получателей с только Lightning-адресом — onchain требует публичный ключ Nostr для получения адреса. + Пропуск %1$d получателей с только Lightning-адресом — onchain требует публичный ключ Nostr для получения адреса. + Пропуск %1$d получателей с только Lightning-адресом — onchain требует публичный ключ Nostr для получения адреса. + + + Использовать разделение этой заметки на %1$d часть + Использовать разделение этой заметки на %1$d части + Использовать разделение этой заметки на %1$d частей + Использовать разделение этой заметки на %1$d частей + + трансляция + построение транзакции + загрузка баланса + публикация квитанции + подпись + В этом опросе можно голосовать только один раз + Открыть все реакции на эту запись + Открытые + Порт Orbot Socks + Bitcoin Explorer (OTS) + Есть доказательство того, что эта публикация была подписана до %1$s. Доказательство зафиксировано в блокчейне Bitcoin в указанную дату и время. + Доказательство временно́й метки + Outbox Relays + Необходимо указать пароль + Пауза + Оплатить + Сообщение от %1$s + Получатели платежей + Добавьте платёжные адреса для различных сетей (например, bitcoin, lightning, ethereum). + PDF сохранён в Downloads/Amethyst + Метаданные списков подписок могут видеть все пользователи Nostr. Только приватные участники зашифрованы. + Метаданные списка подписок + Фото + Закрепить наверху + Закрепить в профиле + Воспроизвести + + %1$d эпизод + %1$d эпизода + %1$d эпизодов + %1$d эпизода + + Автор опроса не может голосовать + (0–100)% + Опрос закрыт + Множественный выбор + Вариант %1$s + Одиночный выбор + Невозможно проголосовать + Опросы + Отправить + + Этот пост содержит более %1$d хэштега + Этот пост содержит более %1$d хэштегов + Этот пост содержит более %1$d хэштегов + Этот пост содержит более %1$d хэштегов + + Предпросмотр для %1$s + Настройки конфиденциальности + Политика конфиденциальности + <Не удалось расшифровать сообщение!>\n\nВас упомянули в приватном/зашифрованном чате между %1$s и %2$s. + DM Inbox Relays + Укажите от 1 до 3 relay для использования в качестве личного почтового ящика. Другие будут использовать эти relay для отправки вам DM. DM Inbox relay должны принимать любые сообщения от кого угодно, но разрешать скачивание только вам. Хорошие варианты:\n - inbox.nostr.wine (платно)\n - auth.nostr1.com (бесплатно)\n - you.nostr1.com (личные relay — платно) + Пользователь получает DM на этих relay + Личное сообщение + Сделать приватным: gift-wrap заметка только для уведомлённых пользователей + Ответы на приватную заметку всегда остаются приватными + Видно для + Приватные Home Relays + Укажите от 1 до 3 relay для хранения событий, недоступных никому другому, например ваших черновиков и/или настроек приложения. В идеале эти relay являются либо локальными, либо требуют аутентификации перед загрузкой контента каждого пользователя. + Брань / Оскорбления + Профиль + Значки профиля + Рекомендации приложений + Значки профиля + Лента подписчиков + Лента полученных Zap + Интерфейс профиля + профили + Предложить правку + Proxy Relays + Агрегирующие relay-серверы, которые приложение использует для загрузки ваших лент, например filter.nostr.wine. Это заменяет модель outbox и позволит приложению подключаться только к relay-серверам из ваших списков. + Публичный чат + Публичные чаты видны всем в Nostr и открыты + для участия любого желающего. Они отлично подходят для открытых сообществ по определённым темам. + Модерация осуществляется путём удаления постов на relay + Укажите от 1 до 3 relay, на которых размещена эта группа. + Клиенты Nostr используют эту настройку, чтобы знать, откуда загружать сообщения и куда их отправлять. + Relay + Метаданные публичного чата + Публичные чаты + Публичные Outbox/Home Relays + Этот тип relay хранит весь ваш контент. Amethyst будет отправлять ваши публикации сюда, а другие будут использовать эти relay для поиска вашего контента. Укажите от 1 до 3 relay. Это могут быть личные, платные или публичные relay. + Пользователь публикует контент на этих relay + Публичное сообщение + Публичные Inbox Relays + Этот тип relay получает все ответы, комментарии, лайки и zap к вашим публикациям. Они могут быть платными или бесплатными. Ограничения, установленные оператором relay, могут влиять на получаемые уведомления как положительно, так и отрицательно. Например, если вас атакуют спам-комментариями, платные relay могут отфильтровать спам. Укажите от 1 до 3 relay. + Пользователь получает уведомления на этих relay + ID записи + Удалить + Заглушить тред + Поделиться + Поделиться ссылкой + Включить звук треда + Реакция + Реакции + Панель реакций + Чтение из relay + Объём данных в байтах, полученных от этого relay, включая фильтры и события + Пользователь только для чтения + Нажмите и удерживайте для записи сообщения + Чат relay + Чаты relay — это групповые чаты, управляемые их домашним relay. + Они видны всем в Nostr, и любой может в них участвовать. + Они отлично подходят для открытых сообществ по определённым темам. Некоторые группы эфемерны, + поэтому сообщения исчезают со временем + Чаты relay + События + IP-адреса + Виды + Пользователи + Настройки + Настройки Relay + списки исходящих + Relay + Пополнить & отправить зап + Отправить зап + Пополнить %1$s sats на %2$s и запнуть %3$s %4$s sats · комиссия ≈ %5$s sats + Удалить + Убрать из Публичных закладок + ответить.. + Уведомление: + + Запросить удаление + Запрос на удаление + Не удалось сбросить состояние Marmot: %1$s + Сбросить состояние Marmot + Состояние Marmot сброшено. + Повторить + Списки календарей + Календари + Шахматы + Обзор + Главная + Импортировать подписки + Сообщения + Плейлисты + Музыка + Уведомления + Эпизоды + Подкасты + Запланировать пост + Отменить расписание + Запланированные посты могут не опубликоваться до следующего открытия приложения. Запланированные посты других аккаунтов не будут отправлены, пока активен этот аккаунт. Включите постоянный режим в Настройках → Настройки интерфейса для надёжного фонового планирования. + Запланированные посты могут не опубликоваться до следующего открытия приложения. Включите постоянный режим в Настройках → Настройки интерфейса для надёжного фонового планирования. + Запланированные посты + Отправить сейчас + %1$s · через %2$s + %1$s · %2$s назад + Завтра + Ошибка: %1$s + ID заметки скопирован + + Выход выполнен · %1$d запланированный пост удалён + Выход выполнен · %1$d запланированных поста удалено + Выход выполнен · %1$d запланированных постов удалено + Выход выполнен · %1$d запланированных поста удалено + + Выход выполнен + + У вас %1$d запланированный пост, который ещё не опубликован. При выходе он будет удалён навсегда. + У вас %1$d запланированных поста, которые ещё не опубликованы. При выходе они будут удалены навсегда. + У вас %1$d запланированных постов, которые ещё не опубликованы. При выходе они будут удалены навсегда. + У вас %1$d запланированных поста, которые ещё не опубликованы. При выходе они будут удалены навсегда. + + Ошибка запланированного поста + Запланированный пост опубликован + + на %1$d relay + на %1$d relay + на %1$d relay + на %1$d relay + + Отменено + Ошибка + Запланировано + Отправка… + Отправлено + + · %1$d через 1ч + · %1$d через 1ч + · %1$d через 1ч + · %1$d через 1ч + + + %1$d в очереди + %1$d в очереди + %1$d в очереди + %1$d в очереди + + Хорошие варианты:\n%1$s + Поисковые Relays + Поисковые Relays + Список relay для поиска контента или пользователей. Упоминание и поиск не будут работать при отсутствии доступных вариантов. Убедитесь, что они реализуют NIP-50. + события в поиске + Приватный ключ (nsec) скопирован + Вы ещё не заблокировали ни одного пользователя. + Фильтры безопасности + Скрытых слов нет. Добавьте слово ниже, чтобы скрывать публикации с ним. + Заблокированный контент + Настройки фильтрации + В этой сессии ни один аккаунт не был помечен как спам. + Отправить + Отправлять все полученные события профиля (kind 0) на ваш локальный relay + Пересылать профили на локальный relay + Доступно для этого получателя: %1$s sats + Платёж не выполнен + Транзакция: %1$s + Оплата через %1$s… + Сервер не предоставил URL после загрузки + Настройки + Нет заглушённых веток + Заглушённые ветки + Поделиться как изображение + Поделиться URL изображения + Загрузка HLS + Поделиться или сохранить + Shorts + Показать QR-код зашифрованного приватного ключа + Включить личные и групповые сообщения во вкладку «Уведомления». Отключите, чтобы сообщения отображались только во вкладке «Сообщения». + Показывать сообщения + Показать QR-код приватного ключа + Запрос на подпись отклонён + Убедитесь, что приложение подписи авторизовало эту транзакцию + Внешний подписант вернул неожиданный ответ на запрос. Возможно, ошибка в Amethyst или в приложении подписи. + Подписант не найден + Приложение подписи удалено? Убедитесь, что оно установлено и содержит этот аккаунт. Выйдите и войдите снова, если приложение подписи изменилось. + Перемотать назад на %1$d сек. + Перемотать вперёд на %1$d сек. + Приложения + Спам + Количество спам-событий, поступающих с этого relay + Спамеры + Показывать две вкладки уведомлений — «Подписки» (люди, на которых вы подписаны) и «Все». Индикатор непрочитанных светится только для активности от людей, на которых вы подписаны. + Разделить уведомления по подпискам + Пытается удалить личные метаданные из поддерживаемых медиафайлов перед загрузкой + Удалить личные метаданные + Читает завершённые тренировки из Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) и предлагает поделиться ими в виде публикации. Разрешение запрашивается только при подключении. + Предлагать публикации тренировок + Как в системе + Тема + Тёмная, светлая или системная тема + Это сообщение исчезнет через %1$s + + +%1$d\\nответ + +%1$d\\nответа + +%1$d\\nответов + +%1$d\\nответа + + Сегодня + Настраиваемый + Настройте по своему усмотрению + По умолчанию + Скрыть ваш IP от случайных relay + Orbot + Полная конфиденциальность + Скрыть ваш IP во всех соединениях + Встроенный + Выкл + Пресеты Tor/конфиденциальности + Быстро изменить все настройки ниже + Всё кроме медиа + Скрыть ваш IP от всего, кроме изображений и видео + DM relay + Принудительно использовать Tor для отправки и получения личных сообщений + Изображения + Принудительно использовать Tor при загрузке изображений + Загрузка медиа + Принудительно использовать Tor при загрузке контента + Денежные операции + Принудительно использовать Tor для запов, Lightning и переводов cashu + Ненадёжные relay + Принудительно использовать Tor для исходящих/входящих relay + Верификация Nostr-адреса + Принудительно использовать Tor при верификации NIP-05 адресов + Onion-адреса/relay + Использовать Tor для любых .onion-адресов + Фотографии профилей + Принудительно использовать Tor при загрузке фотографий профилей + Доверенные relay + Принудительно использовать Tor для всех relay из ваших списков + Превью URL + Принудительно использовать Tor при загрузке превью ссылок + Видео + Принудительно использовать Tor при загрузке видео + Базовый + Использовать Tor только когда это требуется сервером + Не удалось открыть файл + Нет установленных torrent-приложений для открытия и скачивания файла. + В событии недостаточно информации для создания magnet-ссылки. + Использует отслеживаемый режим при отправке событий. Показывает прогресс в реальном времени и статус по каждому relay. + Отслеживаемые трансляции + Перевести на + Выберите язык, на который переводить контент. + Переводы + Доверенные Relays + Relay, которым вы доверяете настолько, что Tor-соединение не требуется + Полный + Производительный + Упрощённый + Настройки интерфейса + Режим интерфейса + Выберите стиль публикаций + Не удалось создать Lightning-счёт перед отправкой зап. Lightning-кошелёк получателя вернул следующую ошибку: %1$s + Не удалось поделиться изображением, повторите попытку позже… + Не удалось поделиться видео, повторите попытку позже… + Несанкционированная расшифровка + Подписант не разрешил расшифровку, необходимую для выполнения этой операции. Активируйте расшифровки NIP-44 в вашем приложении-подписанте и повторите попытку + Отписаться + Открепить + Открепить от профиля + Загрузка отменена + Ошибка загрузки + Ошибка загрузки голосового сообщения: %1$s + Не удалось загрузить голосовое сообщение + NIP-95 пока не поддерживается для голосовых сообщений + %1$d%% времени работы + Встроенный движок Tor + Использовать встроенную версию или Orbot + Пользователь не установил Lightning адрес для получения чаевых + У пользователя %1$s не настроен Lightning-адрес для получения sats + История запросов на удаление + Запрос на удаление отправлен + Лучшее качество при меньшем размере файла, но не все устройства поддерживают воспроизведение H.265. + Использовать кодек H.265/HEVC + Загрузка видео начата… + Кнопки видеоплеера + Видео сохранено в видеогалерею телефона + Голосовая публикация + Низкий + Высокий + Нейтральный + Нет + Голосовой ответ + Кошелёк + Cashu-кошелёк (NIP-60) + Wallet Connect + Ваш провайдер wallet connect вернул следующую ошибку: %1$s + Изменить mint'ы + Показывает предупреждение, если на публикацию или профиль пожаловались люди из ваших подписок + Предупреждать о жалобах + Добавить веб-закладку + Редактировать веб-закладку + Веб-закладки + Что нового? + Тренировки + Написать сообщение… + Запись в relay + Объём данных в байтах, отправленных на этот relay, включая фильтры и события + Zap + Запы + + Переименовать + Сохранить diff --git a/commonsUI/src/commonMain/composeResources/values-sl-rSI/strings.xml b/commonsUI/src/commonMain/composeResources/values-sl-rSI/strings.xml index 01b1a59bc0..f6469cc0fa 100644 --- a/commonsUI/src/commonMain/composeResources/values-sl-rSI/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-sl-rSI/strings.xml @@ -2790,4 +2790,2268 @@ Ali želite za to uporabiti trenutne releje iz odhodnega predala? Objavi persono Vam sledi Robot + Vizitka in pravna obvestila + Modra + Zelena + Oranžna + Roza + Vijolična + Rdeča + Nastavitve računa + + %1$d filter + %1$d filtra + %1$d filtri + %1$d filtrov + + + %1$d skupina + %1$d skupini + %1$d skupine + %1$d skupin + + + %1$d rele + %1$d releja + %1$d releji + %1$d relejev + + naročnine, filtri, releji, zahteve, povezave, zakaj, diagnostika + %1$d%% od vseh + Aktivne rele naročnine + + %1$d filter še ni dodeljen + %1$d filtra še nista dodeljena + %1$d filtri še niso dodeljeni + %1$d filtrov še ni dodeljenih + + Dodaj + Dodaj Blossom strežnik + Dodaj NIP-96 strežnik + Če je omogočeno, Amethyst vašim objavljenim dogodkom doda NIP-87 oznako Nostr odjemalca. + Vključi oznako Nostr odjemalca v moje dogodke + Doda opozorilo o občutljivi vsebini pred prikazom te vsebine + Občutljiva vsebina + Dodaj med sporočila + Dodaj v javne zaznamke + Uporablja model umetne inteligence v napravi za predloge popravkov besedila in spremembe tona. + Predlagaj tekstovne izboljšave + Ohranja aktivne povezave z vašimi releji za obvestila v realnem času + + Povezano z %1$d vhodnimi releji + Povezano z %1$d vhodnima relejema + Povezano z %1$d vhodnimi releji + Povezano z %1$d vhodnimi releji + + + Povezano z %1$d relejem + Povezano z %1$d relejema + Povezano z %1$d releji + Povezano z %1$d releji + + Povezovanje vhodnih relejev\u2026 + Izklop + Vklop + Amethyst obvestila so aktivna + Dodani ste bili v %1$s + Obvesti vas, ko vas nekdo emeni ali označi v članku + %1$s vas je omenil v članku + %1$s je poudaril vaš članek + Članki in poudarki + Novi članki + Vas obvesti ko si prislužite značko + Prislužili ste si značko + Nagrajeni ste bili od %1$s + Značke + Nove značke + Obvestila o dohodnih glasovnih in video klicih + Dohodni klici + %1$s je sprejel vaš šahovski izziv + Prejemaj obvestila o šahovskih igrah + Šah + Šahovske novosti + Poteza uporabnika %1$s — vi ste na vrsti + Obvesti vas o težavah, popravkih in zahtevkih za poteg (PR) + %1$s je odprl/a težavo + %1$s je poslal/a popravek + %1$s je odprl/a zahtevo za popravek (PR) + %1$s je osvežil/a zahtevo za popravek (PR) + Koda in Git + Nove aktivnosti v kodi + Ob prejemu zasebnega sporočila te obvesti + Zasebna sporočila + Novo sporočilo + Vsebina + Razvijalec + Igre + Sporočila + Plačila + Družabno + Označi kot prebrano + Jaz + Obvesti vas, ko vas nekdo označi na fotografiji ali v videoposnetku + Oseba %1$s je delila fotografijo + Oseba %1$s je delila video + Medijske vsebine + Nova medijska vsebina + Obvesti vas, ko vas nekdo omeni ali citira v objavi + %1$s vas je omenil + Omembe + Nove omembe + Novo sporočilo + Nutzap od %1$s + Onchain zap od %1$s + Obvesti vas, ko vaša povezana denarnica prejme plačilo, ki ni Nostr zap + Prejeto %1$s sat + Plačilo prejeto + Nova plačila + %1$s sprašuje + Prejmi obvestila o odzivih na objave + %1$s se je odzval na vašo objavo + za %1$s + Odzivne ikone + Novi odzivi + Obvesti vas o odgovorih na vašo objavo + Odgovori + Novi odgovori + Odgovori + Obvesti vas, ko nekdo znova objavi vašo objavo + Oseba %1$s je delila vašo objavo + Deljenja + Nove delitve + Obvestila ob uspešni ali neuspešni objavi načrtovane objave. + Načrtovane objave + Vas obvesti, ko vas nekdo Zap-ne + %1$s sat + za %1$s + Od %1$s + Prejeti Zapi + Novi zapi + Nastavitve aplikacije + Overitev + Prošnja za overitev + Usposobljenost potrjevalca + Priporočeni potrjevalci + + Vseeno dodaj %1$d osebo + Vseeno dodaj %1$d osebi + Vseeno dodaj %1$d osebe + Vseeno dodaj %1$d oseb + + + Dodaj %1$d osebo + Dodaj %1$d osebi + Dodaj %1$d osebe + Dodaj %1$d oseb + + Že dodano + Utišano + Zasebni član + Le vi \u2014 izberete kdo to vidi + Dodaj ljudi za opozorila + + To bi bila %1$d oseba. Amethyst doda največ %2$d hkrati – odznačite jih nekaj. + To bi bili %1$d osebi. Amethyst doda največ %2$d hkrati – odznačite jih nekaj. + To bi bile %1$d osebe. Amethyst doda največ %2$d hkrati – odznačite jih nekaj. + To bi bilo %1$d oseb. Amethyst doda največ %2$d hkrati – odznačite jih nekaj. + + Pošlji kot zasebno + + To sporočilo bo šifrirano in dostavljeno %1$d-krat ločeno, enkrat za vsako osebo. Z zunanjim podpisnikom to pomeni po eno potrditev za vsako. + To sporočilo bo šifrirano in dostavljeno %1$d-krat ločeno, enkrat za vsako osebo. Z zunanjim podpisnikom to pomeni po eno potrditev za vsako. + To sporočilo bo šifrirano in dostavljeno %1$d-krat ločeno, enkrat za vsako osebo. Z zunanjim podpisnikom to pomeni po eno potrditev za vsako. + To sporočilo bo šifrirano in dostavljeno %1$d-krat ločeno, enkrat za vsako osebo. Z zunanjim podpisnikom to pomeni po eno potrditev za vsako. + + + %1$d oseba bo prejela obvestilo za to objavo. + %1$d osebi bosta prejeli obvestilo za to objavo. + %1$d osebe bodo prejele obvestilo za to objavo. + %1$d oseb bo prejelo obvestilo za to objavo. + + + %1$s, %2$s in še %3$d drug + %1$s, %2$s in še %3$d druga + %1$s, %2$s in še %3$d drugi + %1$s, %2$s in še %3$d drugih + + Vizualizacija zvoka + Samodejno shrani osnutek, ko tipkaš ali zapustiš urejevalnik z neodposlanim besedilom, in ga pošlje v vaše zasebne odhodne releje. + Samodejno ustvari osnutke + Poglobljeno pomikanje + Skrij navigacijsko vrstico ob pomikanju + Predogled slike + Samodejno naloži slike in GIF-e + Predvajaj Video + Samodejno predvajaj video in GIF-e + Slika profila + Prikaži slike profilov + Predogled URL-ja + Prikaži predogled URL-jev + Video predvajaj samodejno + Video predvajaj samodejno, ko je viden na ekranu + Iz datoteke AVIF ni mogoče odstraniti metapodatkov: %1$s + Podeli značko + Nazaj + Varnostna kopija ključev + Značke + Neuspela overitev + Neuspela overitev lastnika telefona z biometrijo + Neuspela overitev lastnika telefona z biometrijo. Napaka: %1$s + Blokiraj + Blokirani releji + Amethyst se ne bo nikoli povezal na te releje + Blokirani uporabniki + Sinhronizacija datotek že poteka. Poskusite znova, ko se zaključi. + Onemogoči vse + Omogoči vse + + %1$d datoteka + %1$d datoteki + %1$d datoteke + %1$d datotek + + + Najdena %1$d datoteka za uvoz na vaše strežnike. + Najdeni %1$d datoteki za uvoz na vaše strežnike. + Najdene %1$d datoteke za uvoz na vaše strežnike. + Najdenih %1$d datotek za uvoz na vaše strežnike. + + + Uvozi %1$d datoteko + Uvozi %1$d datoteki + Uvozi %1$d datoteke + Uvozi %1$d datotek + + Ni na vseh strežnikih + Na vseh strežnikih + + Plačaj %1$d sat + Plačaj %1$d sata + Plačaj %1$d sate + Plačaj %1$d satov + + Ta strežnik za nalaganje zahteva plačilo: %1$s + Prekliči + Prikazuje napredek med kopiranjem vaših datotek med vašimi strežniki Blossom. + Blossom sinhronizacija + Kopiranje vaših datotek med strežniki… + BOLT12 Ponudbe + Dodajte eno ali več ponudb BOLT12 (lno1…). Objavljene so javno, tako da vam lahko plača kdo koli. + BOLT12 plačilo ni uspelo: %1$s + BOLT12 plačilo poslano + BOLT12 zap napaka + Plačano preko BOLT12, vendar dokazilo o plačilu ni prestalo preverjanja, zato potrdilo o zapu ni bilo objavljeno. + Plačano preko BOLT12, vendar denarnica ni vrnila dokazila, zato potrdilo o zapu ni bilo objavljeno. + Nov seznam zaznamkov + Metapodatki seznama zaznamkov + Metapodatki seznama zaznamkov so vidni vsem na Nostru. Le tvoji zasebni člani so šifrirani. + Zaznamki + Pošlji naprej + Aplikacije in Splet + Klepeti in skupine + Viri vsebin + Glavno + Drugo + Ti + Spodnja navigacijska vrstica + Dodaj + Dodano + Ni priljubljenih. Dodaj jih z zvezdico v brskalniku. + Niste še član nobene skupine. + Oddajni releji + Releji specializirani za posredovanje vaših zapiskov na vse ostale releje kot npr. sendit.nosflare.com. Amethyst bo dodal ta rele k vsem vašim novim dogodkom. + Brskalnik + Priljubljene + Odkrijte spletne aplikacije + Nalaganje prek odprtega spleta. Tapnite za uporabo Tor. + Nalaganje prek Tor. Tapnite za uporabo odprtega spleta. + Arhiviraj kanal + Nov kanal + Izbriši kanal + Želite izbrisati »%1$s«? S tem boste kanal in njegova sporočila odstranili za vse. Dejanja ni mogoče razveljaviti. + Zasebni kanal + Skrito s seznama kanalov in dostopno le z vabilom. Ko je možnost izklopljena, lahko kanal poišče in se mu pridruži vsakdo na tem releju. + Obnovi kanal + + %1$d skrit pogovor + %1$d skrita pogovora + %1$d skriti pogovori + %1$d skritih pogovorov + + + Prikaži še %1$d pogovor + Prikaži še %1$d pogovora + Prikaži še %1$d pogovore + Prikaži vseh %1$d pogovorov + + Uredi + Nov forum + Pripni kanal + %1$s in %2$s tipkata… + Odpni kanal + Odobreno + Preklicano + Zavrnjeno + Neuspešno + Potrebuje odobritev + V čakanju + Poslano + V delu + + %1$s, %2$d dogodek + %1$s, %2$d dogodka + %1$s, %2$d dogodki + %1$s, %2$d dogodkov + + Nalaganje slike ni uspelo + Izbrane slike ni bilo mogoče naložiti. Poskusi znova ali prilepi URL. + Deli koledarske dogodke + Odpri z maps + Odpri povezavo + Pravkar poteka + %1$s · konec ob %2$s + + Začne se čez %1$d minuto + Začne se čez %1$d minuti + Začne se čez %1$d minute + Začne se čez %1$d minut + + Opozorilo pred začetkom dogodka, ki se ga udeležuješ. + opomniki_koledarja + Opomniki koledarja + Koledarski dogodek + Prejmi obvestilo tik pred začetkom dogodka, ki se ga udeležuješ. + Pošlji opomnike + + %1$d min + %1$d min + %1$d min + %1$d min + + Opomniki koledarja + Dan + Vir vsebin + Mesec + Teden + Sprejmi + Bluetooth + Izklopljena kamera + Vklopljena kamera + Slušalka + Prekini + Dohodni klic + Dohodni video klic\u2026 + Dohodni glasovni klic\u2026 + Utišaj + Klici + Obvestilo o aktivnem klicu + Amethyst potrebuje dostop do kamere in mikrofona za začetek video klica. Omogoči ju v nastavitvah aplikacije. + Amethyst potrebuje dostop do mikrofona za začetek glasovnega klica. Omogoči ga v nastavitvah aplikacije. + Zavrni + Klicne nastavitve + Zvočnik + Vklopi zvok + Pokliči z %1$s + Povratni URL ni bil najden v odzivu od %1$s + Prekliči + Cashu žeton + Preverjam kovnico… + Cashu žetona ni bilo mogoče unovčiti + Kovnica je posredovala naslednje sporočilo o napaki: %1$s + Prejeto + Poslano + Ujemajoče kovnice + + + %1$d več + + %1$d več + + %1$d več + + %1$d več + + Popularne kovnice + + %1$d priporoča + %1$d priporočata + %1$d priporočajo + %1$d jih priporoča + + %1$s satov premaknjenih v %2$s + Na sistemu ni najdene združljive Cashu denarnice + + %1$d račun na čakanju + %1$d računa na čakanju + %1$d računi na čakanju + %1$d računi na čakanju + + Želiš plačati %1$s satov in do %2$s satov provizije? + Objavi zahtevek za izbris priporočila vrste kind:38000 za %1$s. Releji, ki podpirajo NIP-09, ga bodo odstranili. + Uspešno obnovljenih %1$s satov skozi %2$s dokazil. + Prejeli ste Cashu žeton + V vašo denarnico je bilo poslanih %1$s satoshi-jev. (Provizija: %2$s sat) + Ta naslov strežnika Cashu kovnice ni varen. + Amethyst se ni povezal z izdajateljem tega žetona. %1$s + + Sredstva v %1$d kovnici, ki je ne uporabljate + Sredstva v %1$d kovnicah, ki ju ne uporabljate + Sredstva v %1$d kovnicah, ki jih ne uporabljate + Sredstva v %1$d kovnicah, ki jih ne uporabljate + + Čakanje na plačilo računa… + + %1$d kovnica + %1$d kovnici + %1$d kovnice + %1$d kovnic + + Prenehaj s prenašanjem + Prenesi v napravo + Sprejeto s strani vsaj enega releja + Dostavljeno relejem vseh prejemnikov + Za to sporočilo ni podatkov o releju + Čakanje, da rele sprejme to sporočilo + + %1$d odgovor + %1$d odgovora + %1$d odgovori + %1$d odgovorov + + V klepetu + V nizu objav + Šifrirane skupnosti z več tematskimi kanali (Concord). + Concord skupnosti + Hitri klepeti na releju, ki ne hranijo zgodovine sporočil + Minljivi klepeti + Javni klepet glede na vašo lokacijo (Geohash) + Lokacijski klepeti + MLS- E2EE šifrirani skupinski klepeti (Marmot) + Šifrirane skupine + Starejša, manj zasebna šifrirana direktna sporočila (NIP-04) + Zastarela direktna sporočila + E2EE, gift-wrapped zasebna sporočila (NIP-17) + Zasebna sporočila + Odprte, javne klepetalnice, ki jih lahko prebere in se jim pridruži vsak (NIP-28) + Javni kanali + Skupinski klepeti z moderiranjem in seznami članov (NIP-29) + Skupine relejev + Standardi za varnost otrok + Pripomočki + Umetnost + Knjige + Oblačila + Zbirateljstvo + Rokodelstvo + Elektronika + Fitnes + Hrana + Pohištvo + Dom + Razno + Pisarna + Drugo + Živali + Šport + Dnevno + Mesečno + Enkratno + Tedensko + Plačaj %1$s preko %2$s? + Plačaj ta račun preko %1$s? + Plačilo prek debetne storitve ni uspelo. + Vnesite veljaven znesek za to ponudbo. + Pridobivanje računa… + Zapri vse reakcije na to objavo + Končani + Skupnosti + Osnutek obsega %1$d bajtov; ta skupnost omejuje te tipe (kind) na %2$d bajtov. + Osnutek obsega %1$d bajtov; ta skupnost omejuje dogodke na %2$d bajtov. + Danes imate že %1$d dogodkov tega tipa (kind) (omejitev je %2$d). + Nastavitve urejevalnika + + %1$d kanal + %1$d kanala + %1$d kanali + %1$d kanalov + + Nov kanal + Izbriši kanal + Izbriši + Želite izbrisati kanal #%1$s? Tega ni mogoče razveljaviti, kanala pa tudi ni mogoče ponovno ustvariti z istim ID-jem. + Izbrišem kanal? + Ime kanala + Še ni sporočil + Preimenuj kanal + Preimenuj + Še ni kanalov. + Ustvari + Releji + Releji, ki shranjujejo šifrirana sporočila te skupnosti. Pustite prazno, če želite uporabiti svoje. + Nov kanal Concord + Uredi skupnost + Urejanje sporočila + Kanali Concord + Povabi ljudi + Povabila ni mogoče pridobiti. Povezava je morda potekla ali pa so njeni releji nedosegljivi. + Ta skupnost vas je odstranila. Povezava še vedno deluje, vendar vas seznam članov več ne sprejme. + Ta povezava do povabila je potekla in je ni več mogoče uporabiti. Zaprosite za novo povezavo. + Te povezave do povabila ni mogoče odpreti. Morda je zastarela, jo je nadomestila nova ali pa je bila ustvarjena z novejšo različico aplikacije. Zaprosite za novo povezavo do povabila. + Ta povezava do povabila ni veljavna ali pa je ni mogoče odpreti s tem računom. + Ta povezava do povabila je bila preklicana in je ni več mogoče uporabiti. Zaprosite za novo. + Povezave do povabil… + Povezave do povabil + Povezave ni bilo mogoče preklicati. Preverite povezavo in poskusite znova. + Povezava do povabila je preklicana. + Povezava za povabilo + Zapusti skupnost + Želite zapustiti skupnost %1$s? Odstranjena bo iz seznama tega računa in sinhronizacija v vaših napravah se bo ustavila. Skupnost o tem ne bo obveščena in ne boste odstranjeni iz seznama njenih članov. Sporočil, ki jih ne boste mogli več dešifrirati, morda ne bo mogoče obnoviti, vrnete pa se lahko le z novim povabilom. + To skupnost ste ustvarili vi. Z izhodom je ne boste izbrisali ali predali komu drugemu, vendar boste zavrgli lastniški ključ, shranjen na vašem seznamu – tako je ne boste mogli več upravljati. + Zapustim skupnost? + Povišaj v administratorja + + %1$d član + %1$d člana + %1$d člani + %1$d članov + + Blokiraj + Povišaj v administratorja + Odstrani skrbnika + Vloge tega člana ni bilo mogoče posodobiti. + Dodeli vloge + Člani + Odstrani blokado + Odstrani administratorja + Pošlji sliko + Concord + Več ljudi tipka… + %1$s tipka… + %1$s in %2$s tipkata… + + %1$d novo sporočilo + %1$d nova sporočila + %1$d nova sporočila + %1$d novih sporočil + + Prevzeta vrata so 9050 + Povezani releji + Trenutni seznam relejev v uporabi + Delež uspešnih povezav z relejem + Vedno + Nikoli + Samo z WiFi + Wi-Fi + Dodaj dokument + Dodaj sliko + Dodaj medij + Dodaj video + Skrij + Opozori + Prikaži + Razprave + Pretvori animirane slike GIF v video MP4 za manjšo datoteko in boljšo združljivost predvajanja. + Pretvori GIF v MP4 + Zapiskov ID (@note1) kopiran v odložišče + Tekst zapiska kopiran v odložišče + Kopirano v odložišče + Avtorjev @npub kopiran v odložišče + Kopiraj moj privatni ključ + Kopiraj v odložišče + Ni bilo mogoče sestaviti LNUrl iz "lightning" naslova '%1$s'. Preverite uporabnikove nastavitve + Ni bilo mogoče preveriti prenesene datoteke po nalaganju: %1$s + Prenos naloženega medija s strežnika ni uspel + Ni bilo mogoče pridobiti fakture od %1$s: %2$s + Stisnjene datoteke ni bilo mogoče odpreti + Ne najdem denarnice + Amethyst ni našel nobene denarnice, ki podpira Nostr Wallet Connect (NWC). +\n\nKaj lahko storiš: +\n\t1. Preverite podporo za NWC: Ponovno\t preverite, ali vaša priljubljena denarnica podpira Nostr Wallet Connect. +\n\t2. Ustvari povezavo: Odprite svojo denarnico in ustvarite novo NWC povezavo. +\n\t3. Povežite z Amethyst: Vaša denarnica vam bo ponavadi ponudila tri možnosti: +\n\t\t3.1 Samodejna povezava: Gumb za samodejno odprtje in povezavo z Amethyst. Če je na voljo, kliknite ta gumb, odprite Amethyst in na novem zaslonu pritisnite shrani. +\n\t\tRočna povezava: Povezovalni URI, ki ga lahko kopirate, nato pa na tem zaslonu kliknite ikono za lepljenje, da ga neposredno vnesete. +\n\t\tQR koda: Denarnica ustvari QR-kodo, ki jo skenirajte z gumbom za QR na tem zaslonu. + + Ustvari + d + Nevarno območje + Temna + Opis + Nastavi kot javno + Pogovori + Skupnosti + Algoritmi vira vsebin + Paketi sledenih + Prenos v živo + Tržnica + Branje + Releji predala zasebnih sporočil + + %1$d oseba, ki ji sledite, je prijavila + %1$d osebi, ki jima sledite, sta se prijavili + %1$d osebe, ki jim sledite, so se prijavile + %1$d oseb, ki ji sledite, so se prijavile + + ZS + Ne prevedi iz + Tu prikazani jeziki ne bodo prevedeni. Izberite jezik, da ga odstranite in ga znova prevedete. + Shrani v telefon + Prenašam video … + Osnutek zapiska + Osnutki + Računi + Ustvari + Viri vsebin + Krmarjenje + Sistem + Vi + Stranski meni + Vedno vklopljeno + Skrito + + %1$d skrit + %1$d skrita + %1$d skriti + %1$d skritih + + Vidno + + %1$d dan + %1$d dni + %1$d dni + %1$d dni + + + %1$d Ura + %1$d uri + %1$d ure + %1$d ur + + + %1$d minuta + %1$dminuti + %1$d minut + %1$d minute + + + %1$d mesec + %1$d meseca + %1$d meseci + %1$d mesecev + + + %1$d teden + %1$d tedna + %1$d tedni + %1$d tednov + + + %1$d leto + %1$d leti + %1$d let + %1$d let + + Uredi koledar + Uredi koledarski dogodek + Uredi Skupnost + Uredi emoji paket + Uredi + Uredi seznam predvajanja + Uredi objavo + Zasebni emojiji so šifrirano shranjeni na relejih in vidni le vam. V meniju za odzive in pri samodejnem dokončanju z »:« se pojavijo enako kot javni. + Javni emojiji so vidni vsem. Ko dodate ta paket, se bodo pojavili v meniju za odzive in v izbirniku ob vpisu dvopičja (":"). + Emojiji + Za večjo zasebnost datoteke pred nalaganjem šifrirajte. Nekateri strežniki pri brezplačnih računih morda ne sprejemajo šifriranih datotek. + Šifriraj datoteke + Izginjajoči klepeti + Napaka + Fakture ni bilo mogoče plačati + Ni bilo mogoče dvigniti + Plačila ni mogoče odpreti + Zap ni uspel + Napaka pri odpiranju aplikacije za podpisovanje + Aplikacije za podpisovanje ni bilo mogoče najti. Preverite, ali aplikacija morda, ni bila odstranjena + Napaka pri razčlembi sporočila o napaki + Napaka pri razčlenjevanju JSON iz %1$s. Preverite uporabnikove nastavitve za "lightning" + Ni mogoče pridobiti fakture s strežnikov prejemnika + Odpri v brskalniku + Tega videa ni mogoče predvajati + Kodek ali format na tej napravi ni podprt (%1$s). Poskusi odpreti v brskalniku. + Napake + Sinhronizacija relejev + vaši dogodki + dogodki za vas + AMRAP + Krožna vadba + Kolesarjenje + Dieta + EMOM + Post + Pohodništvo + Meditacija + Veslanje + Tek + Vaje za moč + Plavanje + Hoja + Joga + Razširi + Datum poteka + Avtor je zahteval, da releji to opombo izbrišejo po %1$s. Ko poteče, bo izginila iz virov. + Izvozi nastavitve releja + Izbris ni uspel: %1$s + Neuspelo dešifriranje tvojega privatnega ključa + Neuspešno shranjevanje slike + PDF ni bil shranjen + Neuspešno shranjevanje videa + Številni strežniki pri brezplačnih računih ne sprejemajo šifriranih datotek. Poskusite lahko znova brez šifriranja. + Šifrirano nalaganje ni uspelo + Napaka pri nalaganju: %1$s + Nalaganje medija ni uspelo + Nalaganje na %1$s ni uspelo: %2$s + dodaj med priljubljene + Nalaganje prek odprtega spleta + Nalaganje prek Tor + Nedavno + Odstrani iz priljubljenih + Ta aplikacija še ni naložena. Poskusite znova kasneje. + Priljubljene aplikacije + Priljubljeni algoritmi vira vsebin + Plačilo izvedeno + Objavljeno na relejih + Datoteka naložena + Najljubši viri vsebin releja + Releji na katerih pogosto spremljaš globalne vire vsebin + Skupnosti + Algoritmi vira vsebin + Viri vsebin + Ključniki + Nabor zanimanj + Seznami + Lokacije + Releji + Datotečni strežnik + Izberi strežnik za nalaganje te datoteke + Skrije objave neznancev, ki so bile popolnoma enake več kot petkrat + Filtriraj spam + Sledi + Sledi nazaj + Sledi tej lokaciji + Vsi priljubljeni algoritmi vira vsebin + V moji okolici + Izbrani + Globalno + Privzeti seznam sledenih + Vsa sledenja + Vsi sledeni sledenih + Moje + Seznam utišanih + Teleportacija na lokacijo… + Nov paket sledenih + Uredi paket sledenih + Metapodatki paketa sledenih so lahko vidno vsem na Nostru in redno objavljeni na ostalih spletnih straneh, kot začetni prikaz za nove uporabnike + Metapodatki paketa sledenih + Paketi sledenih + Nov seznam sledenih + Uredi seznam + Pisava + Pisava v aplikaciji + Monospace + Mono + Sans Serif + Sans + Serif + Serif + Sistemske prednastavitve + Sistem + Velikost pisave + Prilagoditev velikosti besedila v aplikaciji + Ogromno + Veliko + Normalno + Majhno + Slog galerije profila + Izberi slog galerije + Klasično + Moderno + Lokacijski klepet + Lokacijsko-ekskluzivna objava + To bodo videli samo sledilci lokacije. Vaši splošni sledilci tega ne bodo videli. + + %1$d element + %1$d elementa + %1$d elementi + %1$d elementov + + Git repozitoriji + Zapri filter + Filtriraj repozitorij + Zbranih %1$s od ciljnih %2$s satov + h + Ta vsebina je bila spremenjena. Avtor morda ni videl ali dovolil spremembe + Kaj to pomeni? + Ta vsebina je ista od objave + Živjo %1$s, je to še na voljo? + Skrite besede + Iz vira vsebin skupnosti odstrani objave, ki kršijo pravila NIP-9B, če jih je skupnost objavila. Nima učinka, če skupnost nima strukturiranih pravil. + Skrij objave, ki kršijo pravila skupnosti + Skrij geslo + Poudarki + Nalagam %1$s (%2$d of %3$d) + Članki + Overitve + Opazovanja ptic + Šahovske igre + Oglasi + Komentarji in odgovori + Minljivi klepeti + Zbiranje sredstev + Poudarki + Interaktivne zgodbe + Aktivnosti v živo + Video in zvok + NIP osnutki + Fotografije + Podkasti + Ankete + Preposlane objave + Kratki videoposnetki + Besedilni zapiski + Torenti + Video + Glasovna sporočila + Wiki strani + Vse + Neveljavna zahteva - Strežnik ne more ali noče obdelati zahteve. + Nepooblaščeno - Uporabnik nima veljavnih overitvenih podatkov + Potrebno je plačilo - Strežnik zahteva plačilo za dokončanje zahteve + Prepovedano - Uporabnik nima pravic dostopa za izvedbo zahteve + Ni najdeno - Strežnik ne najde zahtevanega naslova + Nedovoljena metoda - Strežnik podpira metodo zahteve, vendar ne ciljnega vira + Ni sprejemljivo – Strežnik ni našel nobene vsebine, ki bi ustrezala zahtevi. + Zahtevana je zastopniška overitev - Uporabnik nima veljavnih overitvenih podatkov + Zahteva je potekla – Strežnik je predolgo čakal na nekoga drugega + Spor – Strežnik ne more izpolniti zahteve zaradi konflikta z virom + Izbris – Zahtevana vsebina je bila trajno izbrisana s strežnika in ne bo obnovljena + Zahtevana dolžina – Strežnik zavrnil zahtevo, ker zahteva določeno dolžino + Predpogoj ni izpolnjen – Zahtevani predpogoji v glavi zahteve niso izpolnjeni s strani strežnika + Tovor je prevelik – Zahteva presega omejitve, določene s strani strežnika, zato jo strežniška obdelava zavrača + URI je predolg – URL, ki ga zahteva odjemalec, je predolg, da bi ga strežnik lahko obdelal. + Nepodprta vrsta medija – Zahteva uporablja medijski format, ki ga strežnik ne podpira + Razpon ni zadovoljiv – Strežnik ne more izpolniti vrednosti, navedene v "request’s Range header" polju. + Neizpolnjeno pričakovanje – Strežnik ne more izpolniti zahtev, navedenih v glavi zahteve "Expect" + Potrebna nadgradnja – Strežnik zavrača obdelavo zahteve z uporabo trenutnega protokola, razen če odjemalec ne preklopi na drug protokol. + Notranja napaka strežnika – Strežnik je naletel na nepričakovano napako in ne more izpolniti zahteve + Ni implementirano – Strežnik ne more izpolniti zahteve ali ne prepozna metode zahteve + Slab prehod – Strežnik deluje kot prehod in je prejel neveljaven odgovor od gostitelja + Storitev ni na voljo – To se pogosto zgodi, ko je strežnik preobremenjen ali nedosegljiv zaradi vzdrževanja + Časovna omejitev prehoda – Strežnik je deloval kot prehod ali posrednik in je prekoračil časovno omejitev med čakanjem na odgovor + HTTP različica ni podprta – Strežnik ne podpira te različice HTTP, navedene v zahtevi + Različica povzroča pogajanja – Strežnik ima notranjo konfiguracijsko napako + Premalo prostora za shranjevanje – Strežnik nima dovolj prostora za uspešno obdelavo zahteve + Zaznana zanka – Strežnik je zaznal neskončno zanko med obdelavo zahteve + Zahtevana overitev omrežja – Odjemalec mora biti overjen za dostop do omrežja + Nedovoljeno vedenje + Slika shranjena v foto galerijo telefona + Oponašanje + Vhodni rele + Napačen znesek fakture (%1$s sat) od %2$s. Moral bi biti %3$s + Indeksni releji + Releji, specializirani za gostovanje metapodatkov in seznamov relejev vseh uporabnikov, na primer purplepag.es. Amethyst bo te releje uporabil za iskanje uporabnikov, ki niso na vaših seznamih. + Nov nabor zanimanj + Preimenuj + Nabor ključnikov + Neveljaven ključ + Neveljaven ključ: %1$s + Neveljaven naslov + Amethyst je prejel zahtevo da odpre URI, vendar je bil ta URI neveljaven: %1$s + Ni mogoče citirati osnutka zapiska + Ni mogoče reagirati na osnutek zapiska + Ni mogoče odgovoriti na osnutek zapiska + Osnutke zapisa ni mogoče Zap-niti + Potreben je ključ + KeyPackage Releji + Releji, kjer so objavljeni vaši MLS KeyPackage-i (MIP-00). Drugi uporabniki jih pridobijo, da vas lahko povabijo v skupinske klepete Marmot. Vstavite od 1 do 3 releje, ki sprejemajo vaše KeyPackage dogodke in omogočajo javno branje. + KeyPackage-i + Sprejet nabor značk + Pustolovski prolog + Pustolovsko branje + Pustolovska scena + Priporočila aplikacij + Sestanek + Aplikacije + Potrditev termina + Zvočna glava + Zvočni zapis + Moji podkasti + Nagradne značke + Definicija značke + Blob podatki + Blob glava + Blokirani releji + Blogi + Blossom avtentikacija + Blossom strežniki + Seznam zaznamkov + Oddajni releji + Koledar + Definicija kanala + Skrij sporočilo v kanalu + Seznam kanalov + Sporočilo v kanalu + Metapodatki kanala + Utišani uporabniki kanala + Šahovska avtentikacija + Šahovski izzivi + Predlagaj remi + Sprejmi partijo + Konec partije + Šahovske igre + Šahovska poteza + Oglasi + Komentarji + Opis skupnosti + Seznam skupnosti + Objava skupnosti + Kartica kontakta + Dnevni termin + Izbrisano + Datoteka ZS + ZS sporočilo + Releji ZS + Osnutki + DVM zahtevek vsebine + DVM odgovor na vsebino + DVM status + DVM zahtevek uporabnika + DVM odgovor uporabnika + Urejeni + Pregled zbirk emojijev + Zbirke emojijev + Minljivi klepet + Minljive klepetalnice + Priljubljeni podkasti + Priljubljeni releji + Glave datotek + Datotečni strežniki + Seznam sledenih + Paketi za sledenje + Sledeni geohash-i + GiftWraps + Git zadeva + Git popravek + Zahtevek za združitev + Posodobitev zahtevka (PR) + Git odgovor + Git repozitorij + Sledeni ključniki + Poudarki + Http Auth + Indeksiraj seznam relejev + Pogovori v živo + Prenosi v živo + Zdravstveni podatki + Sejna soba + Srečevalnica + Seznam predvajanja + Skladba + Seznam utišanih + Poimenovani zaznamki + Strežniki gnezd + NIP + NIP-04 ZS + NNS + Nostr Connect + Zapiski + NWC zahtevek + NWC odgovor + Star seznam zaznamkov + OTS + Izhodni releji + Plačaj + Seznam oseb + Fotografije + Bucike + Epizoda podkasta + Podkast + Anketa + Odziv na anketo + Zasebni releji + Zasebni zapi + Profil + Značke profila + Galerija profila + Proxy releji + Javno sporočilo + Odzivi + Avtorizacija releja + Odkrivanje relejev + Obvestilo nadzornika relejev + Nabor relejev + Prijave + Ponovne objave + Ponovno preposlani (16) + Prisotnost v sobi + Pečat + Iskalni releji + Kratki videoposnetki + Kratki posnetki (odgovor) + Komentarji torentov + Torenti + Zaupanja vredni ponudniki + Zaupanja vredni releji + Brisanje uporabnika + Nastavitve uporabnika + Status uporabnika + Videoposnetki + Videoposnetki (odgovor) + Zvočno sporočilo + Zvočni odgovori + ZbudiSe + Spletni zaznamek + Wiki + Vadbe + Ciljni znesek zapov + Zap sklad + Zap zahtevek + Zapi + Poznani + Nastavitve prikaza jezika + Za vsak preveden jezikovni par izberite, kateri jezik naj bo prikazan prvi. + Nazadnje viden pred %1$s + Nazadnje viden prav zdaj + Nikoli viden + Nazadje viden %1$s (pred %2$s) + Zapusti + Svetla + Posnetki v živo + Lokalni releji + Seznam relejev, ki delujejo na tej napravi. + Spremeni lokacijo na karti + Lokacijski kanali + Izberi lokacijo na karti + Uporabljaš javni ključ in javni ključi omogočajo le branje. +Prijavi se s privatnim ključem za posredovanje sporočila + Uporabljaš javni ključ in javni ključi omogočajo le branje. +Prijavi se s privatnim ključem, za sledenje uporabnika + Uporabljaš javni ključ in javni ključi omogočajo le branje. +Prijavi se s privatnim ključem, za cenzuro besed ali stavkov + Uporabljaš javni ključ in javni ključi omogočajo le branje. +Prijavi se s privatnim ključem, da omogočiš tudi pisanje + Uporabljaš javni ključ in javni ključi omogočajo le branje. +Prijavite se s privatnim ključem, da boste lahko pošiljali Zape + Uporabljaš javni ključ in javni ključi omogočajo le branje. +Prijavi se s privatnim ključem, za prikaz skritih besed in stavkov + Uporabljaš javni ključ in javni ključi omogočajo le branje. +Za podpisovanje se je potrebno prijaviti s privatnim ključem + Uporabljaš javni ključ in javni ključi omogočajo le branje. +Prijavi se s privatnim ključem, za odstranitev iz seznama sledljivih + Uporabljaš javni ključ in javni ključi omogočajo le branje. +Za nalaganje se je potrebno prijaviti s privatnim ključem + Uporabljaš javni ključ in javni ključi omogočajo le branje. +Prijavi se s privatnim ključem za všečkanje sporočila + Videoposnetki + m + Moji emoji paketi + Dodaj fotografijo + Dodajam %1$s… + Administratorske pravice so bile podeljene + Administratorske pravice so bile preklicane + Zamenjaj sliko + Dodajanje ni uspelo "%1$s": %2$s + Skupine ni bilo mogoče ustvariti: %1$s + Administratorskih pravic ni bilo mogoče podeliti: %1$s + Skupine ni bilo mogoče zapustiti: %1$s + Člana ni bilo mogoče odstraniti: %1$s + Administratorskih pravic ni bilo mogoče preklicati: %1$s + Posodobitev ni uspela: %1$s + MLS skupina + Podatki o skupini so posodobljeni + + %1$d član + %1$d člana + %1$d člani + %1$d članov + + Član odstranjen + + %1$d sporočilo + %1$d sporočili + %1$d sporočila + %1$d sporočilo + + Ni član te skupine + neznana napaka + Medij dodan + Medij dodan v galerijo profila + Začenjam prenos medija… + Brez povezave + Povezano + Počasno + Medijski strežniki + Medij je prevelik za NIP-95 + Najprej vnesi cilj sporočila + Nalaganje ni uspelo + Zadeva + Sporočila + Metapodatkov ni možno odstraniti + Zasebnih metapodatkov ni bilo mogoče odstraniti. Nalaganje je preklicano. + Migracija zaznamkov uspešna + Manjka "lightning" nastavitev + Več možnosti + Premakni v zasebno + Premakni v javno + Naloži prikazno sliko + Izberi kvadratno sliko za naslovnico tega seznama predvajanja. + + +%1$d dodatna skladba + +%1$d dodatni skladbi + +%1$d dodatne skladbe + +%1$d dodatnih skladb + + + %1$d skladba + %1$d skladbi + %1$d skladbe + %1$d skladb + + + %1$d skladba + %1$d skladbi + %1$d skladbe + %1$d skladb + + Nalaganje in objava naslovnice. Ta postopek se bo nadaljeval, tudi če zapustite zaslon. + Naloži zvočno datoteko + Izberi MP3, WAV ali FLAC. Ob shranjevanju bo naložen na vaš medijski strežnik. + Dodaj naslovno sliko + Izberi kvadratno sliko za naslovnico te skladbe. + Nalaganje naslovnice in zvoka ter objavljanje. Postopek se bo nadaljeval, tudi če zapustiš ta zaslon. + Zvok je prižgan. Klikni da ga utišaš + Utišaj obvestila + Utišano. Klikni za vklop zvoka + Moje Blossom datoteke + Moji seznami + Potrebno je ime + %1$dms + Namecoin nastavitve + Identiteta + Prebere vaš javni ključ + Sporočanje + Izmenjava sporočil z drugimi nAppleti + Tipkovne bližnjice + Poveži tipkovne bližnjice + Obvestila + Prikaz obvestil + Releji + Branje, podpisovanje in objavljanje dogodkov + Mreža + Pridobi spletne in Blossom vire + Shramba + Lastna zasebna shramba + Tema + Prilagoditev barv aplikaciji + Prenosi + Nalaganje datotek na vaš medijski strežnik + Plačila + Plačaj Lightning račune + Aplikacije, dovoljenja, podpisovalnik, napplet, nsite, spletna aplikacije zaupnik povezan. + + Sledi %1$d novemu računu + Sledi %1$d novima računoma + Sledi %1$d novim računom + Sledi %1$d novim računom + + ⚠ To sledi uporabniku %1$s. + + ODSLEDI %1$d račun + ODSLEDI %1$d računa + ODSLEDI %1$d račune + ODSLEDI %1$d računov + + ⚠ To prepiše vaš seznam sledilcev: %1$s. + %1$s in %2$s + + utiša %1$d dodatno osebo + utiša %1$d dodatni osebi + utiša %1$d dodatne osebe + utiša %1$d dodatnih oseb + + ⚠ To utiša uporabnika %1$s. + + PREKINE UTIŠANJE %1$d osebe + PREKINE UTIŠANJE %1$d oseb + PREKINE UTIŠANJE %1$d oseb + PREKINE UTIŠANJE %1$d oseb + + ⚠ To prepiše vaš seznam utišanih: %1$s. Utišane besede in oznake niso prikazane tukaj — za celoten seznam tapnite »Pokaži dogodek« + + To zapisuje seznam z %1$d vnosom. Amethyst nima zajete kopije za primerjavo. + ⚠ To zapisuje seznam z %1$d vnosoma. Amethyst nima zajete kopije za primerjavo. + ⚠ To zapisuje seznam z %1$d vnosi. Amethyst nima zajete kopije za primerjavo. + ⚠ To zapisuje seznam z %1$d vnosi. Amethyst nima zajete kopije za primerjavo. + + To ponovno objavi vaš obstoječi seznam nespremenjen. + + doda %1$d rele + doda %1$d releja + doda %1$d releje + doda %1$d relejev + + + ODSTRANI %1$d rele + ODSTRANI %1$d releja + ODSTRANI %1$d releje + ODSTRANI %1$d relejev + + ⚠ To prepiše vaš seznam relejev: %1$s. Vaše objave in branja se premaknejo skupaj z njim. + ⚠ To ODSLEDI uporabnika %1$s. + ⚠ To PREKINE UTIŠANJE uporabnika %1$s. + + ⚠ To zahteva izbris %1$d vašega dogodka. + ⚠ To zahteva izbris %1$d vaših dogodkov. + ⚠ To zahteva izbris %1$d vaših dogodkov. + ⚠ To zahteva izbris %1$d vaših dogodkov. + + + Vsebuje %1$d oznako. Tapnite »Pokaži dogodek«, da vidite, kaj bo podpisano. + Vsebuje %1$d oznaki. Tapnite »Pokaži dogodek«, da vidite, kaj bo podpisano. + Vsebuje %1$d oznake. Tapnite »Pokaži dogodek«, da vidite, kaj bo podpisano. + Vsebuje %1$d oznak. Tapnite »Pokaži dogodek«, da vidite, kaj bo podpisano. + + Ta nApplet želi prebrati vaš javni ključ. + Ta nApplet želi prebrati vaše podatke o profilu in računu. + Ta nApplet vam želi prikazati obvestila. + + Ta nApplet želi plačati Lightning račun za %1$d sat. + Ta nApplet želi plačati Lightning račun za %1$d sata. + Ta nApplet želi plačati Lightning račun za %1$d sate. + Ta nApplet želi plačati Lightning račun za %1$d satov. + + ⚠ Ta nApplet želi plačati račun Lightning, ki ne določa zneska — prejemnik plačila določi, koliko se odtrga. To dovolite samo, če mu zaupate. + Ta nApplet želi v vašem imenu podpisati in objaviti dogodek vrste %1$d. + Ta nApplet želi v vašem imenu poslati šifriran dogodek. + Ta nApplet želi v vašem imenu podpisati in objaviti dogodek vrste %1$d: + Ta nApplet želi prebrati dogodke z vaših relejev. + Ta nApplet želi pridobiti spletni vir. + Ta stran želi podpisati dogodek vrste (kind) %1$d, z vašim Nostr ključem. + Ta nApplet želi uporabiti svojo zasebno shrambo. + Ta nApplet želi naložiti datoteko na vaš medijski strežnik. + nApplet%1$s… + bere vaša zasebna sporočila + preberite zasebna sporočila z %1$s + Šifriraj sporočilo + podpiši za %1$s (kind: %2$d) + Povezane aplikacije + nApplets + Sporočila ni bilo mogoče poslati + Utišaj govorca + Omogoči govorca + Zapusti + Sobe ni bilo mogoče zapreti. Vseeno zapuščam – soba se bo zaprla samodejno. + + %1$d poslušalec + %1$d poslušalcev + %1$d poslušalcev + %1$d poslušalci + + Spusti roko + Izklopi mikrofon + Vklopi mikrofon + Utišaj + Seznama strežnikov gnezda ni bilo mogoče shraniti. Poskusite znova. + Gnezdo — V živo + Gnezda + Ohrani predvajanje zvoka, ko je soba odprta. + Gnezdo je povezano + Stop + Dotaknite se za vrnitev + Sledi + Utišaj + Prenehaj slediti + Vklopi zvok + zapusti gnezdo + pridružen kot občinstvo + na odru + so dvignili roko + govori + Dvigni roko + Vklopi zvok + Zvočne sobe + Shranjeno kot zamenljiv dogodek kind-10112, da lahko vaše nastavitve berejo tudi drugi odjemalci. + Vaši strežniki + Vgrajeni predlogi, ki jih lahko na seznam dodate z enim dotikom. + Priporočeni strežniki + Strežnii gnezda (nests) + nikoli + Nova značka + Nov koledar + Nov koledarski dogodek + Nova skupnost + Moderatorji + Releji + Blokirani uporabniki + Komentar skupnosti (1111) + Članek v daljši obliki (30023) + Slikovna objava (20) + Kratko besedilo (1) + Kratki videoposnetki (22) + Video objava (21) + Dovoljeni tipi (kind) dogodka + Največja velikost dogodka (izbirno) + Preverljiva pravila (poljubno) + Web-of-trust vrata (poljubno) + Velike skupnosti, organizirane po kanalih ali potekih dela. + Delovni prostori + Zahteva več nastavitev + Ustvari skupnost + Prilagojeno za ogromne skupnosti + Razdeljeno po kanalih ali potekih dela + Skupnosti, razdeljene po kanalih + Concord skupnost + Klepeti ena na ena in v manjših skupinah z ljudmi, ki jih poznate. + 1:1–5 sob + Uporabnikov ni mogoče dodati pozneje + Novo sporočilo + 1 na 1 in manjše skupine + Šifrirano od konca do konca (E2EE) + Zasebna sporočila, šifrirana od konca do konca (E2EE) + Zasebno sporočilo + Klepet v živo s tistimi, ki so pravkar na spletu. + Trenutno v živo + Brez zgodovine + Omejeno na rele + Zaženi klepet + Pogovor s trenutno prisotnimi + Nič ni shranjeno + Kdor koli je trenutno na spletu + Minljivi klepet + Odlično za klepet z ljudmi v bližini – v soseski, mestu ali regiji. + Lokalno + Javno in minljivo — brez zgodovine sporočil, dostopno vsem v celici. + Izberi lokacijo + Anonimno — enkratna identiteta za posamezno področje, nikoli vaš npub. + Združljivo z Bitchatom — doseže bližnje uporabnike na istih relejih. + Klepetajte z ljudmi v bližini lokacije (geohash) + Lokacijski kanal + Večje zasebne skupine za tiste, ki prerasejo male zasebne klepete. + Vezano na napravo + ezano na napravo — ne bo prikazano, če se prijavite drugje + Ustvari skupino + Presega omejitve malih klepetov + Šifriran skupinski klepet + Večje zasebne skupine + Marmot skupina + Odprte javne sobe, kjer lahko objavlja vsak. + Brez moderiranja + Samo javno + Brez moderacije + Ustvari nov javen klepet + Pridruži se lahko kdorkoli + Preprosto in zlahka dosegljivo + Javna sporočila na releju + Javni klepet + Skupine, ki jih moderira njihov gostiteljski rele + Moderirano + Vezano na tisti posamezni rele + Brskanje po skupinah na relejih + Moderira gostiteljski rele + Javno ali zasebno + Na relejih — javno ali zasebno + Skupina releja + Zasebno + Šifrirane skupine + Zavedanje o relejih + Nov emoji paket + Nov cilj + Dodajte svoje misli… + Nov poudarek + Nov članek + Nov seznam predvajanja + Nova skladba + Nov produkt + Nova prošnja + Novi nizi objav + Nova vadba + Vedno dovoli za %1$s + Brez povezave + Povezano + + %1$d rele + %1$d releja + %1$d releji + %1$d relejev + + Izberi vse + Nič ne izberi + + %1$d zahteva za podpis + %1$d zahtevi za podpis + %1$d zahteve za podpis + %1$d zahtev za podpis + + Povezava je bila zavrnjena + Ni se bilo mogoče povezati: %1$s + Ni veljavna povezava nostrconnect:// + Ta povezava ne vsebuje nobenega releja za povezavo + + %1$d povezana aplikacija + %1$d povezani aplikaciji + %1$d povezane aplikacije + %1$d povezanih aplikacij + + Povezano %1$s. Amethyst zdaj za to podpisuje v ozadju. + Aplikacija je povezana. Amethyst zdaj zanjo podpisuje v ozadju. + Naslov bunkerja kopiran + Amethyst tega sporočila ni mogel dešifrirati. Morda ni naslovljeno na ta račun. + Celozaslonski pozivi, ki vas prosijo za odobritev aplikacije, ki želi, da Amethyst z vašim ključem podpisuje, šifrira ali dešifrira. + Zahteve za podpisovanje + Aplikacija se želi povezati + Želite odobriti zahtevo za podpisovanje? + Tapnite za preveritev + To je račun samo za branje in ne more podpisovati. + Ponovno povezovanje z releji… + Generiran nov bunker naslov + + Poslušanje na %1$d vhodnem releju + Poslušanje na %1$d vhodnih relejih, oba poveza + Poslušanje na %1$d vhodnih relejih, vsi povezani + Poslušanje na %1$d vhodnih relejih, vsi povezani + + Aplikacija oddaljenega podpisnika + Oddaljen podpisnik + + %1$d sredstvo v paketu + %1$d sredstva v paketu + %1$d sredstva v paketu + %1$d sredstev v paketu + + Aplikacije Blossom niso bile najdene. Za ogled te datoteke namestite lokalno aplikacijo Blossom. + Ne morem odpreti Blossom povezav + Na tej napravi ni nameščene nobene aplikacije za kamero + Lightning naslov ni nastavljen + Ni aplikacije za tovrstno plačilo. Namestite združljivo denarnico. + Ni nameščene aplikacije za plačila %1$s. Namesti združljivo denarnico. + Za tega uporabnika niso predhodno izbrane nobene vrste reakcij. Dolgo pritisnite na gumb za srce, da jih spremenite + Ni nastavitev za odzive + Denarnica za plačilo z "lightning" ni najdena. Prosimo, namestite "lightning" denarnico da boste lahko Zap-ali ostale + Denarnica za plačilo z "lightning" ni najdena (Napaka: %1$s). Prosimo, namestite "lightning" denarnico da boste lahko Zap-ali ostale + Nimaš nastavljene Zap vsote. Za spremembo uporabi daljši pritisk + Aktivni računi v ozadju + Glavno stikalo za sprotna obvestila v ozadju. Izklopite za varčevanje z baterijo — podobno kot način letenja. Ko je stikalo izklopljeno, noben račun v ozadju ne ostane povezan, nastavitev pa se ohrani (tudi po ponovnem zagonu), dokler je znova ne vklopite. + Storitev obveščanja v ozadju + Obvestila + Kategorije + Dostava + Prikaz v aplikaciji + Pošiljanje obvestil. Tapnite, da utišate obvestila za tega uporabnika + Pošiljanje obvestil. Tapnite, da utišate obvestila za tega uporabnika + zdaj + Umetnost Nowhere + Nowhere Drop + Nowhere dogodek + Forum Nowhere + Zbiranje sredstev Nowhere + Stran Nowhere + Sporočilo Nowhere + Nowhere peticija + Trgovina Nowhere + nSites + Golota + Ni mogoče zgraditi povezave do dogodka. + V objavi ni javnega ključa prejemnika. + Nutzapi so javni in bi razkrili to zasebno objavo. Namesto tega uporabi Lightning zap. + Nutzap ni uspel + + Pošlji %1$s satov, na %2$d način + Pošlji %1$s satov, na %2$d načina + Pošlji %1$s satov, na %2$d načine + Pošlji %1$s satov, na %2$d načinov + + Povezava z Bitcoin omrežjem ni nastavljena + Oddajanje transakcije je spodletelo + Sestavljanje transakcije je spodletelo + Nalaganje Bitcoin stanja je spodletelo + Plačilo je poslano, vendar potrdila o zapu ni bilo mogoče objaviti. + + Plačilo je poslano (objavljeno %1$d od %2$d potrdilo), vendar naslednjega potrdila ni bilo mogoče objaviti + Plačilo je poslano (objavljena %1$d od %2$d potrdila), vendar naslednjega potrdila ni bilo mogoče objaviti + Plačilo je poslano (objavljenih %1$d od %2$d potrdil), vendar naslednjega potrdila ni bilo mogoče objaviti + Plačilo je poslano (objavljeno %1$d od %2$d potrdil), vendar naslednjega potrdila ni bilo mogoče objaviti + + Znesek za prejemnika je prenizek (pod pragom dust) + Podpisovanje transakcije je spodletelo + ~10 min + ~30 min + ~1 hr + Hitro + Običajno + Počasno + %1$s · %2$s sat/vB · %3$s + + Razdelitev med %1$d prejemnikom + Razdelitev med %1$d prejemnika + Razdelitev med %1$d prejemniki + Razdelitev med %1$d prejemniki + + + Preskok %1$d prejemnika, ki ima le Lightning naslov — onchain plačilo potrebuje Nostr pubkey za izpeljavo naslova. + Preskok %1$d prejemnikov, ki imata le Lightning naslov — onchain plačilo potrebuje Nostr pubkey za izpeljavo naslova. + Preskok %1$d prejemnikov, ki imajo le Lightning naslov — onchain plačilo potrebuje Nostr pubkey za izpeljavo naslova. + Preskok %1$d prejemnikov, ki imajo le Lightning naslov — onchain plačilo potrebuje Nostr pubkey za izpeljavo naslova. + + + Uporabi %1$d-načinsko razdelitev zapa te objave + Uporabi %1$d-načinski razdelitvi zapa te objave + Uporabi %1$d-načinske razdelitve zapa te objave + Uporabi %1$d-načinsko razdelitev zapa te objave + + oddajam + Priprava transakcije… + Nalaganje stanja… + Objavljanje potrdila… + podpisovanje + Dovoljen je le en glas na uporabnika pri tem tipu ankete + Odpri vse reakcije na to objavo + Odpri + Orbot socks vrata + Bitcoin Raziskovalec (OTS) + Obstaja dokaz, da je bil ta zapisek podpisan pred %1$s. Dokaz je bil ožigosan v Bitcoin verigi blokov na ta datum in čas. + Za to objavo je bilo zahtevano dokazilo o časovnem žigu, ki čaka na zapis v verigo blokov Bitcoin. Postopek se običajno zaključi v nekaj urah. + Dokaz časovnega žiga + Izhodni releji + Potrebno je geslo + Premor + Plačaj + Sporočilo od %1$s + Cilji plačil + Dodajte naslove za plačila za različna omrežja (npr. bitcoin, lightning, monero). + PDF shranjen v Prenosi/Amethyst + Sledenje metapodatkom seznama je lahko vidno vsem na Nostru. Le tvoji zasebni člani so šifrirani. + Sledi metapodatkom seznama + Fotografije + Pripni na vrh + Pripni k profilu + Predvajaj + + %1$d poglavje + %1$d poglavji + %1$d poglavja + %1$d poglavij + + Dodaj naslovnico + Kvadratna slika prikazana za epizodo + Uredi epizodo + Vaš podkast + Dodaj zvočni posnetek + MP3, M4A, ali ostali zvočni posnetki + URL poglavja + + %1$d epizoda + %1$d epizodi + %1$d epizode + %1$d epizod + + URL prepisa + URL videa + Nova epizoda + Nov napovednik + Objavljam… + Avtor + Kategorije + Tehnologija, novice + Avtorske pravice + Dodaj naslovnico + Kvadratna slika za vašo oddajo + E-pošta za stik + Povezave za financiranje + https://… + Jezik + en + Prikaži naslov + Moj podcast + Spletna stran + + %1$d napovednik + %1$d napovednika + %1$d napovedniki + %1$d napovednikov + + Dodaj napovednik + Kratek predogled (zvok ali video) + Napaka pri vrednost za vrednost + Povežite denarnico Nostr Wallet Connect za pošiljanje k Keysend (vozlišča) prejemnikom. + Ta podcast nima določenih prejemnikov sredstev. + Povežite denarnico Nostr Wallet Connect ali debetno denarnico za sprotno plačevanje satov med poslušanjem. + Ta uporabnik nima lightning naslova + Avtorji anket ne morejo glasovati v svojih anketah. + (0–100)% + Anketa je zaprta za nove glasove + Več izbire + Izbira %1$s + + %1$d glas je zabeležen pred objavo glasovanja in je zato izključen. + %1$d glasova sta zabeležena pred objavo glasovanja in sta zato izključena. + %1$d glasovi so zabeleženi pred objavo glasovanja in so zato izključeni. + %1$d glasov je zabeleženih pred objavo glasovanja in so zato izključeni. + + + %1$d volivec je skrit na vašem seznamu utišanih uporabnikov. + %1$d volivca sta skrita na vašem seznamu utišanih uporabnikov. + %1$d volivci so skriti na vašem seznamu utišanih uporabnikov. + %1$d volivcev je skritih na vašem seznamu utišanih uporabnikov. + + + %1$d odziv ni izbral veljavne možnosti in bo zato izključen. + %1$d odziva nista izbrala veljavne možnosti in bosta zato izključena. + %1$d odzivi niso izbrali veljavne možnosti in bojo zato izključeni. + %1$d odzivov ni izbralo veljavne možnosti in bojo zato izključeni. + + + %1$d glas je prispel po zaprtju zato ne bo upoštevan. + %1$d glasova sta prispela po zaprtju zato ne bosta upoštevana. + %1$d glasovi so prispeli po zaprtju zato ne bojo upoštevani. + %1$d glasov je prispelo po zaprtju zato ne bojo upoštevani. + + + %1$d volivec + %1$d volivca + %1$d volivci + %1$d volivcev + + Naloženih %1$d od %2$d odzivov iz %3$d relejev. + %1$d od približno %2$d odzivov iz %3$d relejev. + + %1$d izbira + %1$d izbiri + %1$d izbire + %1$d izbir + + + %1$d glas + %1$d glasova + %1$d glasovi + %1$d glasov + + Ena izbira + Nezmožen za glasovanje + Glasovanja + Pošlji + + Ta objava ima več kot %1$d ključnik + Ta objava ima več kot %1$d ključnika + Ta objava ima več kot %1$d ključnike + Ta objava ima več kot %1$d ključnikov + + Komentarji + Odgovori na članke, datoteke in drugo vsebino + Ovoji zasebnih sporočil + Releji za zasebna sporočila filtrirajo vsiljeno vsebino; rudari se le zunanji ovoj, nikoli vaše sporočilo. + Dolg zapis in poudarki + Članki in poudarki; redko, strošek je zanemarljiv + Ostala javna vsebina + Ankete, statusi v živo, mali oglasi in vse ostalo javno + Javni in pogovori v živo + Zamik zaradi rudarjenja, moti tekočemu pogovoru + Odzivi + Tip (kind) z najvišjim obsegom; rudarjenje vsakega všečka porablja baterijo + Prijave + Releji ocenjujejo poročila glede na njihove stroške + Deli dalje + Višja glasnost za aktivne uporabnike + Kratki zapiski in odgovori + Glavno javni vir za vsiljeno vsebino + Glasovna sporočila + Javna glasovna sporočila in odgovori + + %1$d dan + %1$d dneva + %1$d dni + %1$d dni + + + %1$d ura + %1$d uri + %1$d ure + %1$d ur + + <1 s + + %1$d minuta + %1$d minuti + %1$d minut + %1$d minut + + + %1$d sekunda + %1$d sekundi + %1$d sekunde + %1$d sekund + + Avtor je porabil računsko moč za rudarjenje tega zapisa do zahtevnosti %1$s – dokaz o opravljenem delu (PoW), ki otežuje pošiljanje neželene pošte. + Sporočilo klepeta + Prijavi + + %1$s • rudarjenje pri %2$d bitu + %1$s • rudarjenje pri %2$d bitih + %1$s • rudarjenje pri %2$d bitih + %1$s • rudarjenje pri %2$d bitih + + + Rudarjenje dokaza o delu… (%1$d objava v čakalni vrsti) + Rudarjenje dokaza o delu… (%1$d objavi v čakalni vrsti) + Rudarjenje dokaza o delu… (%1$d objave v čakalni vrsti) + Rudarjenje dokaza o delu… (%1$d objav v čakalni vrsti) + + Rudarjenje dokaza o delu (PoW) + Prekliči + Prikazuje objave, ki še rudarijo svoj NIP-13 dokaz o delu, da lahko zaključijo postopek, potem ko zapustite aplikacijo. + Rudarjenje z dokazom o delu (PoW) + Pošlji zdaj + + %1$d bit + %1$d bita + %1$d biti + %1$d bitov + + + Privzeto (%1$d bit) + Privzeto (%1$d bita) + Privzeto (%1$d biti) + Privzeto (%1$d bitov) + + Vaš %1$s je zaključil rudarjenje, vendar ga ni bilo mogoče objaviti: %2$s + Vaš %1$s je končal z rudarjenjem, vendar ga ni bilo mogoče objaviti. Ponovni poskus bo izveden ob naslednjem zagonu aplikacije. + + %1$s • čakanje na rudarjenje pri %2$d bitu + %1$s • čakanje na rudarjenje pri %2$d bitih + %1$s • čakanje na rudarjenje pri %2$d bitih + %1$s • čakanje na rudarjenje pri %2$d bitih + + Dokazilo o delu (PoW) + ≈ %1$s še ostane + Vsak čas bo + Predogled kartne slike za %1$s + Nastavitve zasebnosti + Izjava o zasebnosti + <Unable to decrypt private message>\n\nOmenjeni ste bili v zasebnem/šifriranem pogovoru med %1$s in %2$s. + Releji predala zasebnih sporočil + Vnesite 1–3 releje, ki bodo služili kot vaš predal za zasebna sporočila. Drugi bodo te releje uporabljali za pošiljanje zasebnih sporočil vam. Releji za zasebna sporočila bi morali sprejeti katero koli sporočilo od kogar koli, vendar samo vam dovoliti njihov prenos. Dobre možnosti so:\n - inbox.nostr.wine (plačljiv)\n - auth.nostr1.com (brezplačen)\n - you.nostr1.com (osebni releji - plačljivi) + Uporabnik prejema ZS prek teh relejev + Zasebno sporočilo + Nastavi kot zasebno: šifriraj zapis le za obveščene uporabnike + Odgovori na zasebni zapis so vedno zasebni. + Vidno za: + Zasebni domači releji + Vnesite 1–3 releje za shranjevanje dogodkov, ki jih nihče drug ne more videti, kot so vaši osnutki in/ali nastavitve aplikacije. Idealno je, da so ti releji bodisi lokalni ali zahtevajo preverjanje pristnosti pred prenosom vsebine posameznega uporabnika. + To sporočilo je bilo dostavljeno zasebno in ni podpisano. Vidijo ga lahko le označeni udeleženci, nihče zunaj pa ne more dokazati, kdo ga je napisal. + Zasebni zapisek + Psovke / Sovražni govor + Profil + Značke v profilu + Priporočene aplikacije + profilne zančke + Vir vsebin sledilcev + Bitcoin (on-chain) denarnica + Vir vsebin prejetih zapov + UI profila + profili + Prošnja za urejanje + Proxy releji + Agregatorji, ki jih mora aplikacija uporabljati za prenos vaših vsebin, na primer filter.nostr.wine. To nadomesti model odhodne pošte (outbox model) in bo prisililo aplikacijo k povezovanju prek relejev iz vašega seznama. + Javni pogovor + Javni klepeti so vidni vsem na Nostru in vsakdo + se lahko pridruži. So odlični za odprte skupnosti o specifičnih temah. + Moderiranje je možno z brisanjem objav na njihovih relejih + Vnesi 1–3 releje, ki gostijo to skupino. + Nostr odjemalci uporabljajo to nastavitev, da vedo, od kod prenesti vaša sporočila in kam jih poslati. + Releji + Metapodatki Javnega Klepeta + Javni klepeti + Javni za odhajajočo pošto/domači releji + Ta tip releja shranjuje vse vaše vsebine. Amethyst bo sem pošiljal vaše objave, ostali uporabniki pa bodo te releje uporabljali za iskanje vaših vsebin. Vstavite 1–3 releje. To so lahko osebni releji, plačljivi releji ali javni releji. + Uporabnik pošilja objave na te releje + Javno sporočilo + Javni releji za dospelo pošto + Ta tip releja sprejema vsa odgovore, komentarje, všečke in zap-e na vaše objave. Ti releji so lahko plačljivi ali brezplačni. Omejitve, ki jih nastavi upravljavec releja, lahko omejijo obvestila, ki jih prejemate, tako v dobrem kot v slabem. Na primer, če ste tarča napada s spam komentarji, ki so nezaželeni, lahko plačljivi releji te nezaželene komentarje odstranijo. Vnesite med 1–3 releje. + Uporabnik prejema obvestila na teh relejih + ID zapiska + Izbriši + Utišaj niz objav + Deli + Deli povezavo brskalnika + Vklopi zvok niza objav + Odziv + Odzivi + Vrstica odzivnih ikon + Beri iz releja + Količina bajtov, ki je bila prejeta od tega releja, vključno s filtri in dogodki + Uporabnik samo za branje + Klikni in drži za snemanje sporočila + + Zadržuje pa še %1$d drugo stvar. + Zadržuje pa še %1$d drugi stvari. + Zadržuje pa še %1$d druge stvari. + Zadržuje pa še %1$d drugih stvari. + + …pošiljam sporočilo nekomu, ki mu sledim + …pošiljam sporočilo komur koli drugemu + …gre za moj rele ali sobo, ki sem se ji pridružil ali ji sledim + ...berem objave nekoga, ki mu sledim + Vedno, po vaši izbiri + Nikoli, po vaši izbiri + + %1$s in %2$d ostali + %1$s in %2$d ostala + %1$s in %2$d ostali + %1$s in %2$d ostalih + + Vedno zahtevaj avtentikacijo + Podpiši avtentikacijske izzive za vsak relej, ki to zahteva + Po meri + Izberite natančno, v katere releje se želite prijaviti. Za vse, česar spodaj niste dovolili, boste vprašani naknadno. + Nikoli ne avtenticiraj + Prezri avtentikacijske izzive vseh relejev + vaš nabiralnik + vaš rele + Vaši odgovori + ta rele + soba v katero pošiljate + Ljudje katerih berete + soba iz katere berete + Vaša sporočila + pogovor + Preverjanje pristnosti (Auth), rele (Relay), podpis (Sign), preverjanje (Verify), NIP-42, identiteta + Avtentikacija releja + Rele klepet + Pogovori prek relejev so pogovorne skupine, ki jih nadzoruje njihov domači rele. + Vidne so vsem na Nostru in v njih lahko sodeluje kdorkoli. + So odlične za odprte skupnosti, povezane s specifičnimi temami. Nekatere od teh skupin so kratkotrajne + zato sporočila v klepetu sčasoma izginejo + Rele klepeti + Vaš profil, nastavitve in osnutki na vaših domačih relejih. + Releji, kamor vsaka skupnost objavlja svoje načrte. + Vaši vhodni releji za zasebna sporočila, kamor se dostavljajo šifrirana sporočila. + Skupinska sporočila in ključni paketi na relejih posameznih skupin. + Spremlja trenutno prikazane dogodke za nove odgovore, odzive, ponovne objave, zape in prijave, da se števci posodabljajo med branjem. + Klepetalnice, ki ne hranijo zgodovine — sporočila obstajajo le, dokler ste povezani, zato ostanejo naročene, da sploh prejmejo karkoli. + Seznami sledenj za oblikovanje vira objav in mreže zaupanja. + Sobe glede na lokacijo za območja, ki jim sledite, z zahtevo do relejev, ki jih prenašajo. + Objave oseb, ki jim sledite, prebrane z relejev, na katere objavlja posamezna od njih. + Cilji klepetov in zappov pri odprtih ali sledenih prenosih v živo. + Releji sobe, dokler je ta odprta. + Preverja releje in išče, katere kovnice (mints) obstajajo ter katere ljudje priporočajo. + Prijave vaših sledenih oseb o trenutno prikazanih profilih, poslane relejem, na katere te osebe objavljajo. + Releji vaše pošte vhodnih relejev in manjši spremenljivi vzorec relejev, na katere objavljajo osebe, ki jim sledite — na primer, če je bila omemba dostavljena kam drugam. + Spremlja vaše nutzap releje ter vhodne releje in releje ZS, da nobeno plačilo ne ostane neopaženo. + Opozorila iz povezane denarnice + Profili trenutno prikazanih oseb. + Domači rele vsakega klepeta katerega ste odprli ali pridružili. + Pridobi dogodke po ID-ju, na katere se sklicuje nekaj na vašem zaslonu, a jih še nimate — citat, starševsko sporočilo odgovora ali začetek objav. + Skupine NIP-29, ki ste se jim pridružili. Vsaka skupina gostuje na enem gostiteljskem releju, zato se aplikacija poveže z vsakim relejem, ki gostuje vašo skupino. + Najde releje objav vsake osebe za prenos z ustreznega mesta. + Dogodki vaša denarnice, prebrani z vaših objavitvenih relejev. + Ustvari skupino + Izbriši skupino + Želite izbrisati »%1$s«? S tem boste skupino in njeno zgodovino odstranili za vse. Dejanja ni mogoče razveljaviti. + Uredi skupino + Zasebno + Samo člani lahko berejo sporočila. + + %1$d član + %1$d člana + %1$d člani + %1$d članov + + + %1$d skupina + %1$d skupini + %1$d skupine + %1$d skupin + + Skupine relejev + Naslov + Skupine relejev + Dogodki + IP-ji + Tipi (kind) + Uporabniki + Nastavitve + Dodatki + Brskanje + Klepeti skupnosti + Objave skupnosti + Zasebna sporočila + Opazovani dogodki + Minljivi klepeti + Lokacijski klepeti + Domače vsebine + + %1$s \u00b7 %2$d rele + %1$s \u00b7 %2$d releja + %1$s \u00b7 %2$d releji + %1$s \u00b7 %2$d relejev + + Klepet v živo + Medijske vsebine + Mapa kovnice + Nutzap nabiralnik + Wallet Connect + Opazovani profili + Drugo + Iskanje pogrešanih dogodkov + Skupine relejev + Informacije releja + Iskalnik seznama relejev + Prijave vaših sledenih oseb + Iskanje + Ključniki + Pogovor + Teme + Podatki računa + Denarnica + Nastavitve relejev + izhodni seznami + Releji + Napolni in pošlji zap + Pošlji zap + Napolni %1$s satov v %2$s in pošlji zap za %3$s (%4$s satov) · provizija ≈ %5$s satov + Odstrani + Odstrani iz sporočil + Odstrani iz javnih zaznamkov + odgovori tukaj… + Obvesti: + + Zaprosi za izbris + Zahteva za izbris sledi + Neuspešna ponastavitev stanja Marmot: %1$s + Ponastavi Marmot stanje + Ponastavitev stanja Marmot. + Aktivnost (7 dni) + Aplikacija Amethyst je nedavno porabila več virov kot pričakovano: %1$s. Želite razvijalcem poslati poročilo o uporabi v šifriranem zasebnem sporočilu (ZS)? Preden bo karkoli poslano, boste videli celotno poročilo. + Poraba baterije v tem času (celotna naprava) + Ohranjene povezave z releji med zaprtjem + Storitev obvestil v ozadju + + %1$d zagon + %1$d zagona + %1$d zagoni + %1$d zagonov + + Čas delovanja + Zagoni procesov aplikacije + Poraba baterije (v aplikaciji / v ozadju) + Poraba podatkov po funkcijah (7 dni) + Podatki po funkcijah (7 dni) + Čas trajanja klicev + Porabljen procesorski čas + Dešifrirana sporočila + Aktivni čas prenosa + Spletne zahteve + Mobilni podatki (MB) + Wi-Fi (MB) + Spremljanje lokacije + Čas predvajanja + Dosegljivi dogodki v pomnilniku + Seznami sob v pomnilniku + Kategorija pomnilnika naprave + Pomnilnik aplikacije (heap) + Pomnilnik slik (RAM) + Pomnilnik slik (disk) + Lokalni pomnilnik + Zapiski v pomnilniku + Trenutni pomnilnik + Profili v pomnilniku + Čas v zvočnih sobah + Rudarjenje PoW + Obuditve radijskega modula za prenose (ocena) + %1$s mobilnih podatkov v ozadju v enem dnevu + + Process aplikacije se je v enem dnevu znova zagnal %1$d-krat + Process aplikacije se je v enem dnevu znova zagnal %1$d-krat + Process aplikacije se je v enem dnevu znova zagnal %1$d-krat + Process aplikacije se je v enem dnevu znova zagnal %1$d-krat + + %1$s povezav z releji v ozadju prek mobilnih podatkov v enem dnevu + + Aplikacija se je z releji v enem dnevu znova povezala %1$d-krat + Aplikacija se je z releji v enem dnevu znova povezala %1$d-krat + Aplikacija se je z releji v enem dnevu znova povezala %1$d-krat + Aplikacija se je z releji v enem dnevu znova povezala %1$d-krat + + Procesor je bil zaradi obdelave obvestil v enem dnevu buden %1$s + Neuspele ponovne povezave z relejem + Čas povezave z releji + \u2026 v ozadju na mobilnih podatkih + Oddaljeni podpisi + Čas zaslona (7 dni) + Poraba baterije in podatkov, energija, omrežje, diagnostika ter glavna knjiga + Pošlji razvijalcem + Deli + Slike + Denarnica in zapi + Preverjanje naslova + Drugo + Predogled povezav + Registracija potisnih obvestil + Sinhronizacija relejev + Prenosi + Video in zvok + Povp. povezave z releji + Baterija / ur v aplikaciji + Mobilni podatki danes + Podatki / ur v aplikaciji + Danes v aplikaciji + Uporaba releja danes + Wi-Fi danes + Uporaba virov aplikacije + Čas delovanja Tor + Vgrajen Tor + Količina podatkov na dan + Preverjeni podpisi + Obdelava obvestil (CPU buden) + Izvedena opravila v ozadju + Poskusi ponovno + Seznami koledarjev + Koledarji + Šah + Odkrij + Domov + Uvozi sledilce + Sporočila + Predvajalni seznami + Glasba + Obvestila + Epizode + Podkasti + Načrtovana objava + Prekliči načrtovanje + Načrtovane objave morda ne bodo objavljene, dokler znova ne odprete aplikacije. Načrtovane objave drugih računov se ne bodo sprožile, ko je aktiven ta račun. Za zanesljivo načrtovanje v ozadju vklopite trajna obvestila v Nastavitve → Nastavitve vmesnika. + Načrtovane objave morda ne bodo objavljene, dokler znova ne odprete aplikacije. Za zanesljivo načrtovanje v ozadju vklopite trajna obvestila v Nastavitve → Nastavitve vmesnika. + Načrtovane objave + Pošlji zdaj + %1$s · čez %2$s + %1$s · %2$s nazaj + Jutri + Napaka: %1$s + ID zapiska je kopiran + + Odjavljeni · %1$d načrtovana objava je bila izbrisana + Odjavljeni · %1$d načrtovani objavi sta bili izbrisani + Odjavljeni · %1$d načrtovane objave so bile izbrisane + Odjavljeni · %1$d načrtovanih objav je bilo izbrisanih + + Izpisani + + Imate %1$d načrtovano objavo, ki še ni bila objavljena. Z odjavo jo boste trajno izbrisali. + Imate %1$d načrtovani objavi, ki še nista bili objavljeni. Z odjavo ju boste trajno izbrisali. + Imate %1$d načrtovane objave, ki še niso bile objavljene. Z odjavo jih boste trajno izbrisali. + Imate %1$d načrtovanih objav, ki še niso bile objavljene. Z odjavo jih boste trajno izbrisali. + + Načrtovana objava ni bila objavljena + Načrtovana objava objavljena + + na %1$d rele + na %1$d releja + na %1$d releje + na %1$d relejev + + Preklicano + Neuspešno + Načrtovano + Pošiljam… + Poslano + + %1$d na vrsti čez 1 h + %1$d na vrsti čez 1 h + %1$d na vrsti čez 1 h + %1$d na vrsti čez 1 h + + + %1$d v čakalni vrsti + %1$d v čakalni vrsti + %1$d v čakalni vrsti + %1$d v čakalni vrsti + + Dobre možnosti so\n%1$s + Iskalni releji + Iskalni releji + Seznam relejev za uporabo pri iskanju vsebine ali uporabnikov. Označevanje in iskanje ne bosta delovala, če možnosti niso na voljo. Prepričajte se, da podpirajo NIP-50. + iskalni dogodki + Privatni ključ (nsec) kopiran v odložišče + Zaenkrat še niste blokirali nobenega uporabnika + Varnostni filtri + Ni skritih besed. Spodaj dodaj besedo, da skriješ objave, ki jo vsebujejo. + Blokirana vsebina + Možnosti filtriranja + V tej seji noben račun ni bil označen kot nezaželjen. + Pošlji + Pošiljanje vseh prejetih dogodkov profilov (kind 0) na lokalni rele + Preusmeri profile na lokalni rele + Za tega prejemnika je na voljo: %1$s satov + Plačilo ni uspelo + Transakcija: %1$s + Plačevanje prek %1$s… + Strežnik po nalaganju ni posredoval URL naslova + Nastavitve + Ni utišanih nizov objav + Utišaj nize objav + Prikaz + Splošno + Vsebina v viru vsebin + Vidni zavihki + Medijske vsebine in podatki + Odseki in viri vsebin + Opomniki + Povezava + Usmeri preko Tor + Deli sliko + Deli URL slike + Naloži HLS + Deli ali shrani + Kratki posnetki + Pokaži QR kodo šifriranega zasebnega ključa + V zavihek Obvestila vključite neposredna in skupinska sporočila. Izklopite, če želite sporočila ohraniti samo v zavihku Sporočila. + Prikaži sporočilo + Pokaži QR kodo zasebnega ključa + Zahteva za vpis zavrnjena + Prepričajte se, da je aplikacija za podpisovanje odobrila to transakcijo + Zunanji podpisnik je vrnil neobičajen odgovor. Morda gre za napako v aplikaciji Amethyst ali v podpisniku. + Ne najdem podpisnika + Ali je bila aplikacija za podpisovanje odstranjena? Preverite, ali je aplikacija za podpisovanje nameščena in ima dostop do tega računa. Odjavite se in ponovno prijavite, če se je aplikacija morda spremenila. + Skoči nazaj za %1$d sekund + Skoči nazprej za %1$d sekund + Aplikacije + Nezaželena vsebina + Iz tega releja izvira številna nezaželena vsebina + Spam pošiljatelji + Prikaže dva zavihka z obvestili — Sledim (ljudje, ki jim slediš) in Vsi ostali. Indikator neprebranih obvestil sveti le za aktivnosti ljudi, ki jim slediš. + Razdeli opozorila glede na sledilce + Poskusi odstraniti zasebne metapodatke iz podprtih datotek pred nalaganjem. + Odstrani zasebne metapodatke + Prebere opravljene vadbe iz aplikacije Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) in predlaga objavo. Dovoljenje je zahtevano le ob povezavi. + Predlagaj vadbo za deljenje + Sistemska + Tema + Temna, svetla ali sistemska tema + To sporočilo bo izginilo čez %1$s + + +%1$d\nodgovor + +%1$d\nodgovora + +%1$d\nodgovorov + +%1$d\nodgovorov + + Danes + Lastne nastavitve + Ustvari svojega + Privzeto + Skrij svoj IP pred naključnimi releji + Orbot + Popolna zasebnost + Skrij svoj IP v vseh povezavah + Interno + Izključeno + Prednastavitve zasebnosti + Hitro spremeni vse spodnje nastavitve + Vse razen mediji + Skrij svoj IP pred vsem, razen pred slikami in video vsebini + Rele ZS + Prisili tor za pošiljanje in sprejemanje ZS + Slike + Prisili tor pri nalaganju slik + Nalaganje medijske vsebine + Prisili tor pri nalaganju vsebine + Denarne operacije + Prisili tor pri Zapih, Lightning in Cashu plačilnih prenosih + Nezaupanja vredni releji + Prisili tor pri relejih za odhodno/prejeto pošto + Preveritev Nostr naslova + Prisili tor ob preverjanju NIP-05 naslovov + Onion Url/Releji + Uporabi Tor za katerikoli .onion url + Slike profilov + Prisili tor pri nalaganju profilnih slik + Zaupanja vredni releji + Prisili Tor na vseh relejih v tvojem spisku + URL predogledi + Prisili tor pri nalaganju url predogledov + Videoposnetki + Prisili tor ob nalaganju videoposnetkov + Osnovno + Uporabi Tor, ko je ta potreben za strežnik + Datoteke ni bilo mogoče odpreti + Ni nameščenih torent aplikacij za odpiranje in prenos datoteke. + Dogodek nima dovolj podatkov za sestavo magnetne povezave. + Pri pošiljanju dogodkov uporabi sledilnik oddajanja. V živo prikazuje napredek in stanje posameznih relejev med oddajanjem. + Sledeni prenosi + Prevedi v + Izberi jezik v katerega želite prevesti vsebino. + Prevodi + Zaupanja vredni releji + Releji katerim zaupaš in zanje ne rabiš Tor povezave + Celovit + Polno + Optimiziran + Hitro + Poenostavljen + Preprosto + Možnosti UI + UI način + Izberi stil objave + Ni mogoče ustvariti lightning fakture pred plačilom. Lightning denarnica prejemnika je poslala naslednjo napako: %1$s + Deljenje slike ni uspelo, prosimo poskusite znova… + Videa ni bilo mogoče deliti, prosim poskusite kasneje… + Dešifriranje nima pooblastila + Podpisnik ni odobril dešifriranja, ki je potrebno za to operacijo. V aplikaciji za podpisovanje aktivirajte NIP-44 možnost dešifriranja in poskusite znova + Prenehaj slediti + Prenehaj slediti tej lokaciji + Vklopi zvok + Odpni + Odpni od profila + Nalaganje je preklicano. + Naloži napako + Neuspešno nalaganje zvočnega posnetka: %1$s + Neuspešno nalaganje zvočnega sporočila + NIP-95 še ne podpira zvočnih posnetkov + %1$d%% časa delovanja + Aktivni Tor stroj + Uporabi interno različico ali Orbot + Uporabnik nima nastavljenega "lightning" naslova za sprejem satoshi-jev + Uporabnik %1$s nima nastavljenega "lightning" naslova za prejemanje satoshi-jev + Pregled zahtev za izbris + Zahteva za izbris sledi poslana + Boljša kakovost pri manjših velikostih datotek, vendar predvajanja H.265 ne podpirajo vse naprave. + Uporabi H.265/HEVC Codec + Prenos videa se je začel… + Gumbi video predvajalnika + Video shranjen v video galerijo telefona + Glasovna objava + Globok + Visok + Nevtralen + Nič + Zvočni odgovor + Denarnica + Cashu denarnica (NIP-60) + Wallet Connect + Vaš "Wallet Connect" ponudnik je vrnil naslednjo napako: %1$s + Urejanje denarnice Cashu + Prikaže opozorilo, ko objava preseže 5 ali več prijav od oseb, ki jim slediš + Opozori o prijavah + Dodaj spletni zaznamek + Uredi spletni zaznamek + Spletni zaznamki + O čem razmišljaš? + + %1$d aktivnost + %1$d aktivnosti + %1$d aktivnosti + %1$d aktivnosti + + Vadbe + Napiši sporočilo… + Piši v rele + Količina bajtov, ki je bila poslana temu releju, vključno s filtri in dogodki + Zap + Zapi + + Preimenuj + Shrani diff --git a/commonsUI/src/commonMain/composeResources/values-sr-rSP/strings.xml b/commonsUI/src/commonMain/composeResources/values-sr-rSP/strings.xml index e3a12be31f..73c94a980c 100644 --- a/commonsUI/src/commonMain/composeResources/values-sr-rSP/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-sr-rSP/strings.xml @@ -1785,4 +1785,1207 @@ Osnovni URL Explorer API-ja Plati fakturu od DVM-a Plati %1$s sats DVM-u + O nama & Pravno + Podešavanja naloga + Dodaj + Dodaj Blossom server + Dodaj NIP-96 server + Kada je omogućeno, Amethyst dodaje NIP-89 klijentsku oznaku događajima koje objavljujete. + Dodaj klijentsku oznaku mojim događajima + Dodaje upozorenje o osetljivom sadržaju pre prikazivanja ovog sadržaja + Osetljiv sadržaj + Dodaj u javne oznake + Koristi AI model na uređaju za predlaganje ispravki teksta i promena tona. + Predloži poboljšanja teksta + Održava veze sa vašim inbox relays aktivnim za obaveštenja u realnom vremenu + + Povezan sa %1$d dolaznim relay-om + Povezan sa %1$d dolazna relay-a + Povezan sa %1$d dolaznih relay-a + + + Povezan sa %1$d relay-om + Povezan sa %1$d relay-a + Povezan sa %1$d relay-a + + Povezivanje sa inbox relays… + Amethyst obaveštenja aktivna + Obaveštenja za dolazne glasovne i video pozive + Dolazni pozivi + %1$s je prihvatio vaš šahovski izazov + Obaveštava vas o događajima u šahovskoj partiji + Šah + Ažuriranja šaha + %1$s je odigrao — vaš je red + Obaveštava vas kada stigne privatna poruka + Privatne poruke + Nove poruke + Označi kao pročitano + Obaveštava vas kada vas neko pomene ili citira u objavi + %1$s vas je pomenuo + Pominjanja + Nova pominjanja + Obaveštava vas kada neko reaguje na vašu objavu + %1$s je reagovao na vašu objavu + za %1$s + Reakcije + Nove reakcije + Obaveštava vas kada neko odgovori na vašu objavu + Odgovori + Novi odgovori + Odgovori + Obaveštenja kada se zakazana objava objavi ili ne uspe da se objavi. + Zakazane objave + Obaveštava vas kada vam neko pošalje Zap + za %1$s + Od %1$s + Primljeni Zaps + Novi Zaps + Podešavanja aplikacije + Atestacija + Zahtev za atestaciju + Stručnost atestora + Preporuka atestora + Audio vizualizator + Automatski čuva nacrt kada kucate ili napustite editor sa neposlat im tekstom i šalje na vaše privatne odlazne relay-e. + Automatski kreiraj nacrte + Imerzivno skrolovanje + Sakrij navigacione trake pri skrolovanju + Pregled slika + Automatski učitavaj slike i GIF-ove + Reprodukcija videa + Automatski učitavaj video zapise i GIF-ove + Slika profila + Prikaži slike profila + Pregled URL-a + Prikaži preglede URL-a + Automatska reprodukcija videa + Automatski reprodukuj video zapise kada su vidljivi na ekranu + Metapodaci se ne mogu ukloniti iz AVIF-a: %1$s + Dodeli značku + Nazad + Rezervne kopije ključeva + Značke + Autentifikacija neuspešna + Biometrija nije uspela da autentifikuje vlasnika ovog telefona + Biometrija nije uspela da autentifikuje vlasnika ovog telefona. Greška: %1$s + Blokiraj + Blokirani Relay-i + Amethyst se nikada neće povezati na ove relay-e + Blokirani korisnici + Nova lista oznaka + Metapodaci liste oznaka + Metapodaci liste oznaka mogu biti vidljivi svima na Nostr. Samo vaši privatni članovi su šifrovani. + Obeleživači + Donja navigaciona traka + Broadcast Relay-i + Relay-i specijalizovani za guranje vaših beleški na sve ostale relay-e, poput sendit.nosflare.com. Amethyst će dodati ovaj relay svim novim događajima koje vi napravite + Pregledač + Omiljene + Učitavanje putem otvorenog veba. Dodirnite da koristite Tor. + Učitavanje putem Tor-a. Dodirnite da koristite otvoreni veb. + + %1$s, %2$d događaj + %1$s, %2$d događaja + %1$s, %2$d događaja + + Otpremanje slike nije uspelo + Odabrana slika nije mogla biti otpremljena. Pokušajte ponovo ili nalepite URL. + Podeli kalendarski događaj + Otvori u mapama + Otvori link + Upravo se dešava + %1$s · završava %2$s + + Počinje za %1$d minut + Počinje za %1$d minuta + Počinje za %1$d minuta + + Upozorenje kada će događaj koji pohađate uskoro početi. + Podsetnici kalendara + Kalendarski događaj + Obaveštenje se šalje kada će događaj koji pohađate uskoro početi. + Slanje podsetnika + Podsetnici kalendara + Dan + Mesec + Nedelja + Prihvati + Kamera isključena + Kamera uključena + Slušalica + Prekini poziv + Dolazni poziv + Dolazni video poziv… + Dolazni glasovni poziv… + Isključi mikrofon + Pozivi + Obaveštenje o aktivnom pozivu + Amethyst potreban pristup kameri i mikrofonu za pokretanje video poziva. Omogućite ih u podešavanjima aplikacije. + Amethyst potreban pristup mikrofonu za pokretanje glasovnog poziva. Omogućite ga u podešavanjima aplikacije. + Odbij + Podešavanja poziva + Zvučnik + Uključi mikrofon + Poziv sa %1$s + URL povratnog poziva nije pronađen u odgovoru od %1$s + Otkaži + Cashu token + Proveravanje kovnice… + Nije moguće unovčiti Cashu + Mint je dostavio sledeću poruku o grešci: %1$s + Primljeno + Poslato + Odgovarajuće kovnice + + +%1$d više + +%1$d više + +%1$d više + + Popularne kovnice + + Preporučuje %1$d drugi + Preporučuju %1$d druga + Preporučuje %1$d drugih + + Premešćeno %1$s sat na %2$s. + Na sistemu nije pronađen kompatibilni Cashu novčanik + + %1$d faktura na čekanju + %1$d fakture na čekanju + %1$d faktura na čekanju + + Platiti %1$s sat + do %2$s sat u naknadama? + Objavite zahtev za brisanje vaše kind:38000 preporuke za %1$s. Relay-i koji poštuju NIP-09 će je ukloniti. + Oporavljeno %1$s sats u %2$s dokaza. + Cashu primljen + %1$s sats je poslato u vaš novčanik. (Naknade: %2$s sats) + + Sredstva u %1$d mint-u koji ne koristite + Sredstva u %1$d minta koje ne koristite + Sredstva u %1$d mintova koje ne koristite + + Čekanje na plaćanje fakture… + Zaustavi prikazivanje + Prikaži na uređaju + Standardi bezbednosti dece + Dodaci + Umetnost + Knjige + Odjeća + Kolekcionarski predmeti + Ručni radovi + Elektronika + Fitnes + Hrana + Nameštaj + Dom + Razno + Kancelarija + Ostalo + Kućni ljubimci + Sport + Dnevno + Mesečno + Jednokratno + Nedeljno + Platiti %1$s putem %2$s? + Platiti ovu fakturu putem %1$s? + Debitna usluga nije završila plaćanje. + Unesite važeći iznos za ovu ponudu. + Traženje fakture… + Zatvori sve reakcije na ovu objavu + Zatvorene + Zajednice + Nacrt ima %1$d bajtova; ova zajednica ograničava ovu vrstu na %2$d bajtova. + Nacrt ima %1$d bajtova; ova zajednica ograničava događaje na %2$d bajtova. + Danas ste već objavili %1$d događaja ove vrste (ograničenje %2$d). + Postavke pisanja + Podrazumevani port je 9050 + Povezani Relay-i + Trenutna lista relay-a koji se koriste + Procenat uspešnih veza sa relay-om + Uvek + Nikad + Neograničeni WiFi + Dodaj dokument + Dodaj sliku + Dodaj medije + Dodaj video + Sakrij + Upozori + Prikaži + Razgovori + Konvertuje animirane GIF fajlove u MP4 video za manju veličinu datoteke i bolju kompatibilnost reprodukcije. + Konvertuj GIF u MP4 + ID beleške (@note1) kopiran u clipboard + Tekst beleške kopiran u clipboard + Kopirano u privremenu memoriju + @npub autora kopiran u clipboard + Kopiraj moj tajni ključ + Kopiraj u privremenu memoriju + Nije moguće sastaviti LNUrl iz Lightning adrese "%1$s". Proverite podešavanja korisnika + Preuzeta datoteka se ne može proveriti nakon otpremanja: %1$s + Otpremljeni mediji se ne mogu preuzeti sa servera + Nije moguće dohvatiti fakturu od %1$s: %2$s + Komprimovana datoteka se ne može otvoriti + Novčanik nije pronađen + Amethyst nije mogao da pronađe nijednu aplikaciju novčanika koja podržava Nostr Wallet Connect (NWC). +\n\nŠta možete da uradite: +\n\t1. Proverite NWC podršku: Proverite da li vaša preferovana aplikacija novčanika podržava Nostr Wallet Connect. +\n\t2. Kreirajte vezu: Idite na aplikaciju novčanika i kreirajte novu NWC vezu. +\n\t3. Povežite sa Amethyst: Vaš novčanik će obično ponuditi tri opcije: +\n\t\t3.1 Automatska veza: Dugme za automatsko otvaranje i povezivanje sa Amethyst. Ako postoji, kliknite to dugme, otvorite Amethyst i pritisnite sačuvaj na novom ekranu. +\n\t\t3.2 Ručna veza: URI veze koji možete kopirati i kliknuti ikonu za nalepljivanje na ovom ekranu da ga direktno unesete. +\n\t\t3.3 QR kod: Novčanik kreira QR kod koji možete očitati dugmetom za QR kod na ovom ekranu. + + Napravi + Opasna zona + Tamno + Opis + Učini javnim + Ćaskanje + Zajednice + Algoritmi kanala + Paketi praćenja + Prenosi uživo + Tržište + Čitanje + DM Inbox Relay-i + DM-ovi + Nemoj prevoditi sa + Jezici prikazani ovde neće biti prevedeni. Odaberite jezik da ga uklonite i ponovo ga prevedete. + Sačuvaj na telefon + Preuzimanje videa… + Beleška u nacrtu + Nacrti + Nalozi + Kreiraj + Objave + Navigacija + Sistem + Vi + + %1$d dan + %1$d dana + %1$d dana + + + %1$d sat + %1$d sata + %1$d sati + + + %1$d minut + %1$d minuta + %1$d minuta + + + %1$d mesec + %1$d meseca + %1$d meseci + + + %1$d nedelja + %1$d nedelje + %1$d nedelja + + + %1$d godina + %1$d godine + %1$d godina + + Uredi kalendar + Uredi kalendarski događaj + Uredi zajednicu + Uredi emoji paket + Uredi plejlistu + Uredi objavu + Privatni emojiji čuvaju se šifrovano na relay-ima i vidljivi su samo vama. Pojavljuju se u vašem meniju reakcija i automatskom dovršavanju „:" baš kao i javni. + Javni emojiji vidljivi su svima i pojavljuju se u vašem meniju reakcija i automatskom dovršavanju „:" kada je ovaj paket na vašoj emoji listi. + Emojiji + Enkriptujte datoteke pre otpremanja radi privatnosti. Neki serveri možda neće prihvatiti enkriptovane datoteke na besplatnim nalozima. + Enkriptuj datoteke + Nestajući čet + Greška + Nije moguće platiti fakturu + Nije moguće izvršiti povlačenje + Nije moguće otvoriti plaćanje + Nije moguće poslati Zap + Greška pri otvaranju aplikacije za potpisivanje + Aplikacija za potpisivanje nije pronađena. Proverite da li je možda deinstalirana + Greška pri parsiranju poruke o grešci + Greška pri parsiranju JSON-a sa %1$s. Proverite Lightning podešavanja korisnika + Nije moguće dohvatiti fakturu sa servera primaoca + Otvori u pretraživaču + Nije moguće reprodukovati ovaj video + Kodek ili format nije podržan na ovom uređaju (%1$s). Pokušajte da ga otvorite u pretraživaču. + Greške + Sinhronizacija relay-a + događaji od vas + događaji upućeni vama + Krug + Vožnja bicikla + Dijeta + Post + Planinarenje + Meditacija + Veslanje + Trčanje + Snaga + Plivanje + Hodanje + Joga + Proširi + Datum isteka + Izvezi podešavanja relay-a + Brisanje nije uspelo: %1$s + Neuspelo šifrovanje privatnog ključa + Čuvanje slike nije uspelo + Čuvanje PDF-a nije uspelo + Čuvanje videa nije uspelo + Mnogi serveri ne prihvataju enkriptovane datoteke na besplatnim nalozima. Možete pokušati ponovo bez enkripcije. + Enkriptovano otpremanje nije uspelo + Greška pri otpremanju: %1$s + Otpremanje medija nije uspelo + Otpremanje na %1$s nije uspelo: %2$s + Dodaj u omiljene + Učitava se putem otvorenog veba. + Učitava se putem Tor-a. + Nedavne + Ukloni iz omiljenih + Ta aplikacija još nije učitana. Pokušajte ponovo za trenutak. + Omiljene aplikacije + Omiljeni algoritmi feeda + Izvršeno plaćanje + Objavljeno na relay-ima + Otpremljena datoteka + Omiljeni Feed-ovi Relay-a + Relay-i kojima često odlazite da biste videli njihov globalni feed + Zajednice + Algoritmi feeda + Feedovi + Heštegovi + Skupovi interesovanja + Liste + Lokacije + Relay-i + Server datoteka + Izaberite server na koji ćete otpremiti ovu datoteku + Sakriva objave od stranaca koje su bile potpuno iste 5 ili više puta + Filtriraj neželjene poruke + Prati + Zaprati nazad + Svi omiljeni algoritmi feeda + U mojoj okolini + Odabrano + Globalno + Podrazumevana lista praćenja + Svi pratoci + Svi pratoci korisnika + Moje + Lista isključenih + Novi paket praćenja + Uredi paket praćenja + Metapodaci paketa praćenja vidljivi su svima na Nostr-u i često se objavljuju na mnogim veb-sajtovima kao početni komplet za nove korisnike. + Metapodaci paketa praćenja + Paketi praćenja + Nova lista praćenja + Uredi listu + Stil galerije profila + Izaberite stil galerije + Klasično + Moderno + Objava isključivo za lokaciju + Videće je samo pratioci te lokacije. Vaši opšti pratioci je neće videti. + %1$s prikupljeno od cilja od %2$s sats + č + Ovaj sadržaj se promenio. Autor možda nije video ili odobrio promenu + Šta ovo znači? + Ovaj sadržaj je isti od kada je objavljen + Zdravo %1$s, da li je ovo još uvek dostupno? + Skrivene reči + Uklanja objave iz feedova zajednice kada zajednica objavi NIP-9B dokument pravila i događaj ne ispuni uslove. Nema efekta kada zajednica nema strukturisana pravila. + Sakrij objave koje krše pravila zajednice + Sakrij lozinku + Otpremanje %1$s (%2$d od %3$d) + Sve + Loš zahtev - Server ne može ili neće da obradi zahtev. + Neovlašćeno - Korisnik nema važeće akreditive za autentifikaciju + Plaćanje obavezno - Server zahteva plaćanje za dovršetak zahteva + Zabranjeno - Korisnik nema prava pristupa za izvršavanje zahteva + Nije pronađeno - Server ne može da pronađe traženu adresu + Metod nije dozvoljen - Server podržava metod zahteva, ali ne i ciljni resurs + Neprihvatljivo - Server ne nalazi nikakav sadržaj koji zadovoljava zahtev. + Obavezna autentifikacija proxy-ja - Korisnik nema važeće akreditive za autentifikaciju + Vremensko ograničenje zahteva - Server je prekoračio vremensko ograničenje čekajući nekoga drugog + Konflikt - Server ne može da ispuni zahtev jer postoji konflikt sa resursom + Nestalo - Traženi sadržaj je trajno obrisan sa servera i neće biti vraćen + Dužina obavezna - Server odbija zahtev jer zahteva definisanu vrednost + Preduslov nije ispunjen - Preduslovi zahteva u header poljima koje server nije ispunio + Korisni teret prevelik - Zahtev je veći od definisanih ograničenja servera i server odbija da ga obradi + URI predugačak - URL koji je klijent zatražio je predugačak za server da ga obradi. + Nepodržani tip medija - Zahtev koristi format medija koji server ne podržava + Opseg nije zadovoljivši - Server ne može da ispuni vrednost navedenu u Range header polju zahteva. + Očekivanje nije ispunjeno - Server ne može da ispuni zahteve navedene u Expect header polju zahteva + Nadogradnja obavezna - Server odbija da obradi zahtev koristeći trenutni protokol osim ako klijent ne nadogradi na drugi protokol. + Interna greška servera - Server je naišao na neočekivanu grešku i ne može da dovršiti zahtev + Nije implementovano - Server ne može da ispuni zahtev ili ne prepoznaje metod zahteva + Loš gateway - Server deluje kao gateway i dobio je nevažeći odgovor od hosta + Usluga nedostupna - Ovo se često dešava kada je server preopterećen ili isključen radi održavanja + Vremensko ograničenje gateway-a - Server je delovao kao gateway ili proxy i prekoračio je vremensko ograničenje čekajući odgovor + HTTP verzija nije podržana - Server ne podržava HTTP verziju u zahtevu + Varijanta takođe pregovara - Server ima internu grešku konfiguracije + Nedovoljno prostora za skladištenje - Server nema dovoljno prostora za uspešnu obradu zahteva + Petlja otkrivena - Server je otkrio beskonačnu petlju tokom obrade zahteva + Obavezna mrežna autentifikacija - Klijent mora biti autentifikovan za pristup mreži + Незаконито понашање + Slika je sačuvana u galeriji fotografija telefona + лажно представљање + Inbox Relay-i + Neispravan iznos fakture (%1$s sats) od %2$s. Trebalo je biti %3$s + Indexer Relay-i + Relay-i specijalizovani za hostovanje metapodataka i lista relay-a svih korisnika, poput purplepag.es. Amethyst će koristiti ove relay-e da pronađe korisnike koji nisu u vašim listama. + Novi skup interesovanja + Preimenuj + Skupovi hashtaga + Nevažeći ključ + Nevažeći ključ: %1$s + Nevažeća adresa + Amethyst je primio URI za otvaranje, ali taj URI je bio nevažeći: %1$s + Nije moguće citirati belešku u nacrtu + Nije moguće reagovati na belešku u nacrtu + Nije moguće odgovoriti na belešku u nacrtu + Nije moguće zap-ovati belešku u nacrtu + Ključ je obavezan + KeyPackage Relay-i + Relay-i gde su objavljeni vaši MLS KeyPackages (MIP-00). Drugi korisnici preuzimaju ove KeyPackages da bi vas pozvali u Marmot grupne razgovore. Unesite između 1–3 relay-a koji prihvataju KeyPackage događaje od vas i dozvoljavaju javna čitanja. + Prihvaćeni skup bedževa + Prolog avanture + Čitanje avanture + Scena avanture + Preporuke aplikacija + Termin + Aplikacije + RSVP termina + Audio zaglavlje + Audio zapis + Autorski podkasti + Dodele bedževa + Definicije bedževa + Blob podaci + Blob zaglavlja + Blokirani relay-i + Blogovi + Blossom autentifikacija + Blossom serveri + Lista obeleživača + Relay-i za emitovanje + Kalendar + Definicija kanala + Sakrivanje poruke kanala + Lista kanala + Poruka kanala + Metapodaci kanala + Isključivanje korisnika kanala + Šahovska autentifikacija + Šahovski izazovi + Ponuda remija + Prihvatanje šahovske partije + Kraj šahovske partije + Šahovske partije + Šahovski potez + Oglasi + Komentari + Definicija zajednice + Lista zajednica + Objava zajednice + Kontakt kartica + Dnevni termin + Brisanja + DM datoteka + DM poruka + DM relay-i + Nacrti + DVM zahtev za sadržaj + DVM odgovor na sadržaj + DVM status + DVM korisnički zahtev + DVM korisnički odgovor + Izmene + Lista emoji paketa + Emoji paketi + Efemeralni čet + Efemeralne čet sobe + Omiljeni podkasti + Omiljeni relay-i + Zaglavlja datoteka + Serveri datoteka + Lista praćenja + Paketi praćenja + Geohash praćenja + Git problem + Git zakrpa + Git odgovor + Git repozitorijum + Praćenja heštegova + Istaknuto + HTTP autentifikacija + Lista indeks relay-a + Uživo četovi + Uživo strimovi + Medicinski podaci + Sala za sastanke + Prostor za sastanke + Muzička lista za reprodukciju + Muzički zapis + Lista isključenih + Imenovani obeleživači + Nests serveri + NIP-04 DM-ovi + Beleške + NWC zahtev + NWC odgovor + Stara lista obeleživača + Odlazni relay-i + Liste osoba + Slike + Pinovi + Epizoda podkasta + Podkast emisija + Anketa + Odgovor na anketu + Privatni relay-i + Privatni Zap-ovi + Profil + Bedževi profila + Galerija profila + Proxy relay-i + Javna poruka + Reakcije + Relay autentifikacija + Otkrivanje relay-a + Objava monitora relay-a + Skup relay-a + Prijave + Deljenja + Deljenja (16) + Prisustvo u sobi + Pečati + Relay-i za pretragu + Komentari torrenta + Torrenti + Pouzdani pružaoci usluga + Pouzdani relay-i + Brisanje korisnika + Korisničke postavke + Status korisnika + Glasovna poruka + Glasovni odgovor + Veb obeleživač + Treninzi + Zap ciljevi + Zap anketa + Zap zahtev + Zap-ovi + Poznato + Jezičke preferencije prikaza + Za svaki prevedeni jezički par, odaberite koji jezik da se prikaže prvi. + Poslednji put viđen pre %1$s + Poslednji put viđen upravo sada + Nikad viđen + Poslednji put viđen %1$s (pre %2$s) + Napusti + Svetlo + Uživo prenosi + Lokalni Relay-i + Lista relay-a koji rade na ovom uređaju. + Користите јавни кључ и јавни кључеви су само за читање. Пријавите се са приватним кључем да бисте могли да појачате постове + Koristite javni ključ koji je samo za čitanje. Prijavite se privatnim ključem da biste mogli da pratite korisnike + Koristite javni ključ koji je samo za čitanje. Prijavite se privatnim ključem da biste mogli da sakrijete reč ili rečenicu + Користите јавни кључ и јавни кључеви су само за читање. Пријавите се са приватним кључем да бисте могли да одговорите + Koristite javni ključ koji je samo za čitanje. Prijavite se privatnim ključem da biste mogli da šaljete Zap-ove + Koristite javni ključ koji je samo za čitanje. Prijavite se privatnim ključem da biste mogli da prikažete reč ili rečenicu + Koristite javni ključ koji je samo za čitanje. Prijavite se privatnim ključem da biste mogli da potpisujete događaje + Koristite javni ključ koji je samo za čitanje. Prijavite se privatnim ključem da biste mogli da prestanete da pratite korisnike + Koristite javni ključ koji je samo za čitanje. Prijavite se privatnim ključem da biste mogli da otpremite sadržaj + Користите јавни кључ и јавни кључеви су само за читање. Пријавите се са приватним кључем да бисте лајковали постове + Videi + Moji emoji paketi + Dodavanje %1$s… + Administratorske privilegije dodeljene + Administratorske privilegije opozvane + Dodavanje %1$s nije uspelo: %2$s + Kreiranje grupe nije uspelo: %1$s + Dodeljivanje admin privilegija nije uspelo: %1$s + Napuštanje grupe nije uspelo: %1$s + Uklanjanje člana nije uspelo: %1$s + Opozivanje admin privilegija nije uspelo: %1$s + Ažuriranje nije uspelo: %1$s + MLS grupa + Informacije o grupi ažurirane + + %1$d član + %1$d člana + %1$d članova + + Član uklonjen + + %1$d poruka + %1$d poruke + %1$d poruka + + Niste član ove grupe + nepoznata greška + Medij dodat + Medij dodat u vašu galeriju profila + Preuzimanje medija je počelo… + Medijski serveri + Medij je prevelik za NIP-95 + Najpre unesite odredište poruke + Nije moguće otpremiti + Tema + Metapodaci se ne mogu ukloniti + Uklanjanje privatnih metapodataka iz medija nije uspelo. Otpremanje je otkazano. + Obeleživači uspešno migrirani + Nedostaje Lightning podešavanje + Više opcija + Premesti u privatno + Premesti u javno + Otpremi naslovnu sliku + Izaberite kvadratnu sliku kao umetničko delo za ovu plejlistu. + + +%1$d zapis više + +%1$d zapisa više + +%1$d zapisa više + + + %1$d zapis + %1$d zapisa + %1$d zapisa + + + %1$d zapis + %1$d zapisa + %1$d zapisa + + Otpremanje naslovne slike i objavljivanje. Ovo će se nastaviti čak i ako napustite ekran. + Otpremi audio datoteku + Izaberite MP3, WAV ili FLAC. Biće otpremljeno na vaš medijski server pri čuvanju. + Otpremi naslovnu sliku + Izaberite kvadratnu sliku kao umetničko delo za ovu numeru. + Otpremanje naslovne slike i audio sadržaja i objavljivanje. Ovo će se nastaviti čak i ako napustite ekran. + Zvuk uključen. Kliknite za utišavanje + Utišano. Kliknite za uključivanje zvuka + Moje liste + Ime je obavezno + Namecoin postavke + Identitet + Čita vaš javni ključ + Poruke + Razmenjuje poruke sa drugim napplets-ima + Akcije tastature + Vezuje prečice tastature + Obaveštenja + Prikazuje vam obaveštenja + Relay-i + Čita, potpisuje & objavljuje vaše događaje + Mreža + Preuzima veb i Blossom resurse + Skladište + Sopstveno privatno skladište + Tema + Usklađuje boje vaše aplikacije + Otpremanje + Otprema datoteke na vaš medija server + Plaćanja + Plaća Lightning fakture + Ovaj nApplet želi da pročita vaš javni ključ. + Ovaj nApplet želi da pročita vaš profil i podatke naloga. + Ovaj nApplet želi da vam prikazuje obaveštenja. + + Ovaj nApplet želi da plati Lightning fakturu od %1$d sat. + Ovaj nApplet želi da plati Lightning fakturu od %1$d sata. + Ovaj nApplet želi da plati Lightning fakturu od %1$d sats. + + Ovaj nApplet želi da potpiše i objavi događaj vrste %1$d u vaše ime. + Ovaj nApplet želi da pošalje šifrovani događaj u vaše ime. + Ovaj nApplet želi da potpiše i objavi događaj vrste %1$d u vaše ime: + Ovaj nApplet želi da pročita događaje sa vaših relay-a. + Ovaj nApplet želi da preuzme veb resurs. + Ovaj sajt želi da potpiše događaj vrste %1$d vašim Nostr ključem. + Ovaj nApplet želi da koristi svoje privatno skladište. + Ovaj nApplet želi da otpremi datoteku na vaš medija server. + Nije moguće poslati poruku + Ućutkaj ovog govornika + Vrati ovog govornika + Napusti + Nije moguće označiti sobu kao zatvorenu. Napuštanje u svakom slučaju — soba će se automatski zatvoriti. + + %1$d slušalac + %1$d slušaoca + %1$d slušalaca + + Spusti ruku + Utišaj mikrofon + Uključi mikrofon + Utišaj + Nije moguće sačuvati listu nest servera. Pokušajte ponovo. + Nest — Uživo + Održava zvuk dok je soba otvorena. + Nest povezan + Zaustavi + Dodirnite za povratak. + Prati + Utišaj + Prestani pratiti + Uključi zvuk + napustio nest + pridružio se kao publika + stupio na pozornicu + digao ruku + govori + Digni ruku + Uključi zvuk + Sačuvano kao kind-10112 zamenljivi događaj kako bi drugi klijenti mogli da pročitaju vaše preference. + Vaši serveri + Ugrađeni predlozi koje možete dodati na svoju listu jednim dodirom. + Preporučeni serveri + Nest serveri + nikad + Nova značka + Novi kalendar + Novi kalendarski događaj + Nova zajednica + Moderatori + Relay-i + Zabranjeni korisnici + Komentar zajednice (1111) + Dugački članak (30023) + Objava slike (20) + Kratki tekst (1) + Kratki video (22) + Objava videa (21) + Dozvoljene vrste događaja + Globalna maks. veličina događaja (opciono) + Proverljiva pravila (opciono) + Ulaz putem mreže poverenja (opciono) + Novi emoji paket + Novi cilj + Novi članak + Nova plejlista + Nova muzička numera + Novi proizvod + Novi zahtevi + Nove niti + Novi trening + + %1$d priloženi resurs + %1$d priložena resursa + %1$d priloženih resursa + + Blossom aplikacije nisu pronađene. Instalirajte lokalnu Blossom aplikaciju da biste videli ovu datoteku + Nije moguće otvoriti Blossom veze + Na ovom uređaju nije pronađena aplikacija za kameru + Nije podešena Lightning adresa + Nije pronađena aplikacija za obradu ovog plaćanja. Molimo instalirajte kompatibilni novčanik. + Nije instalirana aplikacija za obradu %1$s plaćanja. Molimo instalirajte kompatibilni novčanik. + Nisu unapred odabrani tipovi reakcija za ovog korisnika. Dugo pritisnite dugme srca za promenu + Reakcije nisu podešene + Nisu pronađeni novčanici za plaćanje Lightning fakture. Instalirajte Lightning novčanik da biste koristili Zap-ove + Nisu pronađeni novčanici za plaćanje Lightning fakture (Greška: %1$s). Instalirajte Lightning novčanik da biste koristili Zap-ove + Нема подешавања износа Зап. Дуго притисните да бисте променили + Obaveštenja + Kategorije + Dostava + Prikaz u aplikaciji + sada + Nowhere umetnost + Nowhere drop + Nowhere događaj + Nowhere forum + Nowhere prikupljanje sredstava + Nowhere sajt + Nowhere poruka + Nowhere peticija + Nowhere prodavnica + Golotinja + Referenca događaja se ne može izgraditi + Nema javnog ključa primaoca na beleški + Nutzaps su javni i bi otkrili ovu privatnu belešku. Umesto toga koristite Lightning zap. + Nutzap nije uspeo + + Pošalji %1$s sats, %2$d način + Pošalji %1$s sats, %2$d načina + Pošalji %1$s sats, %2$d načina + + Bitcoin chain backend nije konfigurisan + Transakcija se ne može emitovati + Transakcija se ne može izgraditi + Vaše Bitcoin stanje se ne može učitati + Uplata poslata, ali potvrda zap-a nije mogla biti objavljena + + Plaćanje poslato (%1$d od %2$d priznanice objavljeno), ali sledeća priznanica nije mogla biti objavljena + Plaćanje poslato (%1$d od %2$d priznanice objavljeno), ali sledeća priznanica nije mogla biti objavljena + Plaćanje poslato (%1$d od %2$d priznanica objavljeno), ali sledeća priznanica nije mogla biti objavljena + + Deo primaoca je ispod praga prašine + Transakcija se ne može potpisati + ~1 sat + Brzo + Normalno + Sporo + + Podela između %1$d primaoca + Podela između %1$d primaoca + Podela između %1$d primalaca + + + Preskakanje %1$d primaoca koji ima samo Lightning adresu — on-chain zahteva Nostr javni ključ za izračunavanje adrese. + Preskakanje %1$d primaoca koji imaju samo Lightning adresu — on-chain zahteva Nostr javni ključ za izračunavanje adrese. + Preskakanje %1$d primaoca koji imaju samo Lightning adresu — on-chain zahteva Nostr javni ključ za izračunavanje adrese. + + + Koristi podelu Zap-a ove beleške na %1$d način + Koristi podelu Zap-a ove beleške na %1$d načina + Koristi podelu Zap-a ove beleške na %1$d načina + + emitovanje + izgradnja transakcije + učitavanje stanja + objavljivanje potvrde + potpisivanje + Na ovoj vrsti ankete dozvoljen je samo jedan glas po korisniku + Otvori sve reakcije na ovu objavu + Otvorene + Orbot Socks port + Postoji dokaz da je ova objava bila potpisana neko vreme pre %1$s. Dokaz je utisnut u Bitcoin blockchain na taj datum i vreme. + Dokaz vremenskog pečata + Outbox Relay-i + Lozinka je obavezna + Pauziraj + Plati + Poruka od %1$s + Odredišta plaćanja + Dodajte adrese za plaćanje za različite mreže (npr. bitcoin, lightning, ethereum). + PDF je sačuvan u Downloads/Amethyst + Metapodaci lista praćenja mogu biti vidljivi svima na Nostr-u. Samo vaši privatni članovi su šifrovani. + Metapodaci liste praćenja + Slike + Zakači na vrh + Zakači na profil + Reprodukuj + + %1$d epizoda + %1$d epizode + %1$d epizoda + + Autori ankete ne mogu glasati u sopstvenim anketama. + Anketa je zatvorena za nove glasove + Višestruki izbor + Opcija %1$s + Jedan izbor + Nije moguće glasati + Ankete + Objavi + + Ova objava ima više od %1$d heštega + Ova objava ima više od %1$d heštega + Ova objava ima više od %1$d heštegova + + Slika kartice pregleda za %1$s + Opcije privatnosti + Politika privatnosti + <Nije moguće dešifrovati privatnu poruku>\n\nPomenuti ste u privatnom/šifrovanom razgovoru između %1$s i %2$s. + DM Inbox Relay-i + Unesite između 1–3 relay-a koji će služiti kao vaš privatni inbox. Drugi će koristiti ove relay-e da vam šalju DM-ove. DM Inbox relay-i trebalo bi da prihvataju poruke od svakoga, ali da dozvoljavaju samo vama da ih preuzimate. Dobre opcije su:\n - inbox.nostr.wine (plaćeno)\n - auth.nostr1.com (besplatno)\n - you.nostr1.com (lični relay-i - plaćeno) + Korisnik prima DM-ove na ovim relay-ima + Privatna poruka + Privatno: gift-wrap beleška samo za obaveštene korisnike + Odgovori na privatnu belešku uvek ostaju privatni + Vidljivo za + Privatni Home Relay-i + Unesite između 1–3 relay-a za čuvanje događaja koje niko drugi ne može videti, poput vaših nacrta i/ili podešavanja aplikacije. Idealno bi bilo da ovi relay-i budu lokalni ili zahtevaju autentifikaciju pre preuzimanja sadržaja svakog korisnika. + Psovke / Govor mržnje + Profil + Značke profila + Preporuke aplikacija + Bedževi profila + Feed pratilaca + Feed primljenih Zap-ova + Korisnički interfejs profila + profili + Predloži izmenu + Proxy Relay-i + Agregatorni relay-i koje aplikacija mora koristiti za preuzimanje vaših feedova, poput filter.nostr.wine. Ovo zamenjuje outbox model i čini da se aplikacija povezuje samo na relay-e u vašim listama. + Javni čet + Javni četovi vidljivi su svima na Nostr-u i svako + može da učestvuje. Odlični su za otvorene zajednice oko specifičnih tema. + Moderacija se može kontrolisati brisanjem objava na relay-ima + Unesite između 1 i 3 relay-a koji hostuju ovu grupu. + Nostr klijenti koriste ovo podešavanje da znaju odakle da preuzmu poruke i kuda da ih šalju. + Relay-i + Metapodaci javnog četa + Javni razgovori + Javni Outbox/Home Relay-i + Ovaj tip relay-a čuva sav vaš sadržaj. Amethyst će ovde slati vaše objave i drugi će koristiti ove relay-e da pronađu vaš sadržaj. Unesite između 1–3 relay-a. Mogu biti lični, plaćeni ili javni relay-i. + Korisnik objavljuje sadržaj na ove relay-e + Javna poruka + Javni Inbox Relay-i + Ovaj tip relay-a prima sve odgovore, komentare, sviđanja i zaps na vaše objave. Mogu biti plaćeni ili besplatni relay-i. Ograničenja postavljena od strane operatora relay-a mogu ograničiti obaveštenja koja primate na bolje i gore. Na primer, ako vas napadaju spam komentarima, plaćeni relay-i mogu filtrirati spam. Unesite između 1–3 relay-a. + Korisnik prima obaveštenja na ovim relay-ima + ID beleške + Obriši + Utišaj nit + Podeli + Podeli vezu pregledača + Poništi utišavanje niti + Reakcija + Reakcije + Red reakcija + Čitanje sa relay-a + Količina u bajtovima koja je primljena sa ovog relay-a, uključujući filtere i događaje + Korisnik samo za čitanje + Kliknite i držite za snimanje poruke + Relay čet + Relay četovi su grupe za razgovor kojima upravlja njihov matični relay. + Vidljivi su svima na Nostr-u i svako može da učestvuje. + Odlični su za otvorene zajednice oko specifičnih tema. Neke od ovih grupa su efemeralne + i stoga poruke nestaju s vremenom + Relay četovi + Događaji + IP adrese + Vrste + Korisnici + Postavke + Podešavanja relay-a + odlazne liste + Relay-i + Napuni & pošalji Zap + Pošalji Zap + Napuni %1$s sats u %2$s i pošalji Zap %3$s %4$s sats · naknada ≈ %5$s sats + Ukloni + Ukloni iz javnih oznaka + odgovorite ovde… + Obavesti: + + Захтевај брисање + Zahtev za nestanak + Neuspešno resetovanje Marmot stanja: %1$s + Resetuj Marmot stanje + Marmot stanje resetovano. + Pokušaj ponovo + Liste kalendara + Kalendari + Šah + Otkrij + Početna + Uvezi praćenja + Poruke + Plejliste + Muzika + Obaveštenja + Epizode + Podkasti + Zakaži objavu + Otkaži zakazivanje + Zakazane objave možda neće biti objavljene dok ponovo ne otvorite aplikaciju. Zakazane objave ostalih naloga neće se izvršiti dok je ovaj nalog aktivan. Omogućite uvek uključeno u Podešavanjima → UI podešavanja za pouzdano zakazivanje u pozadini. + Zakazane objave možda neće biti objavljene dok ponovo ne otvorite aplikaciju. Omogućite uvek uključeno u Podešavanjima → UI podešavanja za pouzdano zakazivanje u pozadini. + Zakazane objave + Pošalji sada + %1$s · za %2$s + %1$s · pre %2$s + Sutra + Greška: %1$s + ID beleške kopiran + + Odjavljeni · %1$d zakazana objava obrisana + Odjavljeni · %1$d zakazane objave obrisane + Odjavljeni · %1$d zakazanih objava obrisano + + Odjavljen + + Imate %1$d zakazanu objavu koja još nije objavljena. Odjavljivanjem će biti trajno obrisana. + Imate %1$d zakazane objave koje još nisu objavljene. Odjavljivanjem će biti trajno obrisane. + Imate %1$d zakazanih objava koje još nisu objavljene. Odjavljivanjem će biti trajno obrisane. + + Zakazana objava neuspešna + Zakazana objava objavljena + + na %1$d relay + na %1$d relay-a + na %1$d relay-a + + Otkazano + Neuspešno + Zakazano + Slanje… + Poslano + + · %1$d za 1h + · %1$d za 1h + · %1$d za 1h + + + %1$d u redu + %1$d u redu + %1$d u redu + + Dobre opcije su:\n%1$s + Relay-i za pretragu + Relay-i za pretragu + Lista relay-a koji se koriste pri pretrazi sadržaja ili korisnika. Označavanje i pretraga neće raditi ako nema dostupnih opcija. Uverite se da implementiraju NIP-50. + pretraživi događaji + Tajni ključ (nsec) kopiran u clipboard + Još niste blokirali nijednog korisnika. + Bezbednosni filteri + Nema skrivenih reči. Dodajte reč ispod da sakrijete objave koje je sadrže. + Blokiran sadržaj + Podešavanja filtriranja + Nijedan nalog nije označen kao neželjeni u ovoj sesiji. + Pošalji + Pošalji sve primljene profile (kind 0) događaje vašem lokalnom relay-u + Prosleđuj profile lokalnom relay-u + Potrošivo za ovog primaoca: %1$s sats + Plaćanje nije uspelo + Transakcija: %1$s + Plaćanje putem %1$s… + Server nije dostavio URL nakon otpremanja + Podešavanja + Nema utišanih niti + Utišane niti + Podeli kao sliku + Podeli kao URL slike + HLS otpremanje + Podeli ili sačuvaj + Kratki snimci + Prikaži QR kod šifrovanog privatnog ključa + Uključi direktne i grupne poruke na kartici Obaveštenja. Isključite da poruke budu samo na kartici Poruke. + Prikaži poruke + Prikaži QR kod privatnog ključa + Zahtev za potpisivanje odbijen + Proverite da li je aplikacija za potpisivanje odobrila ovu transakciju + Spoljni potpisnik je vratio podatke koji su neočekivani za zahtev. Možda postoji greška u Amethyst-u ili aplikaciji za potpisivanje. + Potpisnik nije pronađen + Da li je aplikacija za potpisivanje deinstalirana? Proverite da li je potpisnik instaliran i da li ima ovaj nalog. Odjavite se i ponovo prijavite ako se aplikacija za potpisivanje promenila. + Premotaj unazad %1$d sekundi + Premotaj unapred %1$d sekundi + Aplikacije + Спам + Broj spam događaja koji dolaze sa ovog relay-a + Spameri + Prikaži dve kartice obaveštenja — Praćeni (osobe koje pratite) i Svi. Indikator nepročitanih svetli samo za aktivnost od osoba koje pratite. + Podeli obaveštenja prema praćenima + Pokušava da ukloni privatne metapodatke iz podržanih medijskih datoteka pre otpremanja + Ukloni privatne metapodatke + Čita završene treninge iz Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) i predlaže njihovo deljenje kao objavu. Dozvola se traži samo kada se povežete. + Predloži treninge za deljenje + Sistem + Tema + Tamna, svetla ili sistemska tema + Ova poruka će nestati za %1$s + + +%1$d\nodgovor + +%1$d\nodgovora + +%1$d\nodgovora + + Danas + Prilagođeno + Napravite sopstvena podešavanja + Podrazumevano + Sakrij svoju IP adresu od nasumičnih relays + Potpuna privatnost + Sakrij svoju IP adresu u svim vezama + Interno + Isključeno + Tor/Podešavanja privatnosti + Brzo izmenite sva podešavanja ispod + Sve osim medija + Sakrij svoju IP adresu od svega osim od slika i videa + Prisili Tor za slanje i primanje DM poruka + Slike + Prisili Tor pri učitavanju slika + Otpremanje medija + Prisili Tor pri otpremanju sadržaja + Novčane operacije + Prisili Tor na zaps, Lightning i Cashu transakcije + Nepouzdani Relays + Prisili Tor na outbox/inbox relays + Nostr verifikacija adrese + Prisili Tor pri verifikaciji NIP-05 adresa + Koristi Tor za sve .onion url adrese + Profilne slike + Prisili Tor pri učitavanju profilnih slika + Pouzdani Relays + Prisili Tor na sve relays sa vaših lista + Pregledi URL-ova + Prisili Tor pri učitavanju pregleda URL-ova + Video + Prisili Tor pri učitavanju videa + Osnovno + Koristi Tor kada server to zahteva + Otvaranje fajla nije uspelo + Nema instaliranih torrent aplikacija za otvaranje i preuzimanje fajla. + Događaj nema dovoljno informacija za izgradnju magnet linka + Koristite praćeni emiter pri slanju događaja. Prikazuje uživo napredak i status po relay-u tokom emitovanja. + Praćena emitovanja + Prevedi na + Odaberite jezik na koji će se sadržaj prevoditi. + Prevodi + Pouzdani Relay-i + Relay-i kojima verujete da im nije potrebna Tor veza + Potpuno + Performanse + Pojednostavljeno + UI podešavanja + UI mod + Izaberite stil objave + Nije moguće kreirati Lightning fakturu pre slanja Zap-a. Lightning novčanik primaoca je poslao sledeću grešku: %1$s + Deljenje slike nije moguće, pokušajte ponovo kasnije… + Deljenje videa nije moguće, pokušajte ponovo kasnije… + Neovlašćeno dešifrovanje + Potpisnik nije odobrio dešifrovanje koje je potrebno za ovu operaciju. Aktivirajte NIP-44 dešifrovanja u svojoj aplikaciji za potpisivanje i pokušajte ponovo + Prestani pratiti + Otkači + Otkači sa profila + Otpremanje otkazano + Greška pri otpremanju + Otpremanje glasa nije uspelo: %1$s + Otpremanje glasovne poruke nije uspelo + NIP-95 još nije podržan za glasovne poruke + %1$d%% dostupnost + Aktivan Tor motor + Koristite internu verziju ili Orbot + Korisnik nema podešenu Lightning adresu za primanje sats-a + Korisnik %1$s nema podešenu Lightning adresu za primanje sats-a + Istorija nestanaka + Zahtev za nestanak poslat + Bolji kvalitet uz manje veličine datoteke, ali ne podržavaju svi uređaji reprodukciju H.265. + Koristi H.265/HEVC kodek + Preuzimanje videa je počelo… + Dugmad video plejera + Video je sačuvan u galeriji videa telefona + Glasovna objava + Duboko + Visoko + Neutralno + Bez promene + Glasovni odgovor + Novčanik + Cashu novčanik (NIP-60) + Vaš Wallet Connect provajder je vratio sledeću grešku: %1$s + Uredi kovnice + Prikazuje poruku upozorenja kada objave ili profili imaju prijave od vaših praćenih + Upozori na prijave + Dodaj veb obeleživač + Uredi veb obeleživač + Veb obeleživači + O čemu razmišljate? + Treninzi + Napišite poruku… + Pisanje na relay + Količina u bajtovima koja je poslata na ovaj relay, uključujući filtere i događaje + + Preimenuj + Sačuvaj diff --git a/commonsUI/src/commonMain/composeResources/values-sv-rSE/strings.xml b/commonsUI/src/commonMain/composeResources/values-sv-rSE/strings.xml index 39de6ae278..90d96b1f94 100644 --- a/commonsUI/src/commonMain/composeResources/values-sv-rSE/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-sv-rSE/strings.xml @@ -2818,4 +2818,2135 @@ Publicera persona Följer dig Bot + Om och juridiskt + Blå + Grön + Orange + Rosa + Lila + Röd + Kontoinställningar + + %1$d filter + %1$d filter + + + %1$d grupp + %1$d grupper + + + %1$d relä + %1$d reläer + + prenumerationer subscriptions filter reläer relay förfrågningar reqs anslutningar varför diagnostik + %1$d %% av alla + Aktiva reläprenumerationer + + %1$d filter är inte kopplat ännu + %1$d filter är inte kopplade ännu + + Lägg till + Lägg till en Blossom Server + Lägg till en NIP-96 Server + När det är aktiverat lägger Amethyst till en NIP-89-klient-tagg i händelser du publicerar. + Lägg till klient-tagg i mina händelser + Lägger till varning för känsligt innehåll innan detta innehåll visas. + Känsligt innehåll + Lägg till i Meddelanden + Lägg till i Publika Bokmärken + Använder en AI-modell på enheten för att föreslå textkorrigeringar och tonändringar. + Föreslå textförbättringar + Håller anslutningarna till dina inbox-relän aktiva för realtidsnotifieringar + + Ansluten till %1$d inkorgsrelä + Ansluten till %1$d inkorgsreläer + + + Ansluten till %1$d relä + Ansluten till %1$d reläer + + Ansluter till inbox-relän\u2026 + Dölj detaljer + Visa detaljer + Av + På + Amethyst-notifieringar aktiva + Du har lagts till i %1$s + Meddelar dig när någon nämner eller markerar dig i en artikel + %1$s nämnde dig i en artikel + %1$s markerade din artikel + Artiklar & markeringar + Nya artiklar + Meddelar dig när du får ett märke + Du fick ett märke + Tilldelat av %1$s + Märken + Nya märken + Aviseringar för inkommande röst- och videosamtal + Inkommande samtal + %1$s accepterade din schackutmaning + Meddelar dig om schackspelshändelser + Schack + Schackuppdateringar + %1$s drog — din tur + Meddelar dig om issues, patchar och pull requests + %1$s öppnade ett issue + %1$s skickade en patch + %1$s öppnade en pull request + %1$s uppdaterade en pull request + %1$s kommenterade + %1$s mergade/löste en tråd + %1$s löste ett issue + %1$s tillämpade en patch + %1$s mergade en pull request + %1$s stängde en tråd + %1$s stängde ett issue + %1$s stängde en patch + %1$s stängde en pull request + %1$s markerade en tråd som utkast + %1$s öppnade en tråd igen + Kod & Git + Ny kodaktivitet + Meddelar dig när ett privat meddelande kommer + Privata Meddelade + Nya meddelanden + Innehåll + Utvecklare + Spel + Meddelanden + Betalningar + Socialt + Markera som läst + Jag + Meddelar dig när någon nämner dig i ett foto eller en video + %1$s delade ett foto + %1$s delade en video + Media + Nya media + Meddelar dig när någon nämner eller citerar dig i ett inlägg + %1$s nämnde dig + Omnämnanden + Nya omnämnanden + Nytt meddelande + Nutzap från %1$s + Onchain-zap från %1$s + Meddelar dig när din anslutna plånbok tar emot en betalning som inte är en Nostr-zap + Tog emot %1$s sats + Mottagna betalningar + Nya betalningar + %1$s ställde en fråga + Meddelar dig när någon reagerar på ditt inlägg + %1$s reagerade på ditt inlägg + för %1$s + Reaktioner + Nya reaktioner + Meddelar dig när någon svarar på ditt inlägg + Svar + Nya svar + Svara + Meddelar dig när någon repostar ditt inlägg + %1$s repostade ditt inlägg + Reposter + Nya reposter + Aviseringar när ett schemalagt inlägg publiceras eller misslyckas att publicera. + Schemalagda inlägg + Meddela dig när någon zappar dig + %1$s sats + till %1$s + Från %1$s + Zaps Mottaget + Nya zaps + Appinställningar + Attestering + Attesteringsförfrågan + Attestantens kompetens + Attestantens rekommendation + + Lägg till %1$d person ändå + Lägg till %1$d personer ändå + + + Lägg till %1$d person + Lägg till %1$d personer + + Redan tillagd + Tystad + Privat medlem + Bara du — välj vem mer som får se detta + Lägg till personer att avisera + + Det skulle bli %1$d person. Amethyst lägger till högst %2$d åt gången — avmarkera några. + Det skulle bli %1$d personer. Amethyst lägger till högst %2$d åt gången — avmarkera några. + + Skicka privat + + Den här anteckningen krypteras och levereras %1$d separat gång, en gång per person. Med en extern signerare innebär det ett godkännande var. + Den här anteckningen krypteras och levereras %1$d separata gånger, en gång per person. Med en extern signerare innebär det ett godkännande var. + + + %1$d person får en avisering om det här inlägget. + %1$d personer får en avisering om det här inlägget. + + + %1$s, %2$s och %3$d till + %1$s, %2$s och %3$d till + + Ljudvisualiserare + Sparar ett utkast automatiskt när du skriver eller lämnar redigeraren med osänd text och skickar det till dina privata utgående reläer. + Skapa utkast automatiskt + Omslutande bläddring + Dölj navigeringsfält vid bläddring + Ladda automatiskt bilder/gif + Ladda automatiskt bilder och GIFs + Spela automatiskt videor + Spela upp videor och GIFs automatiskt + Profilbild + Visa profilbilder + URL-förhandsvisning + Visa förhandsgranskning av URL + Automatisk uppspelning av videor + Spela upp videor automatiskt när de syns på skärmen + Kan inte ta bort metadata från AVIF: %1$s + Tilldela märke + Tillbaka + Backup-nycklar + Märken + Autentisering misslyckades + Biometri misslyckades med att autentisera ägaren av denna telefon + Biometri misslyckades med att autentisera ägaren av denna telefon. Fel: %1$s + Blockera + Blockerade reläer + Amethyst kommer aldrig att ansluta till dessa reläer + Blockerade användare + En filsynkronisering pågår redan. Försök importera igen när den är klar. + Inaktivera alla + Aktivera alla + + %1$d fil + %1$d filer + + + Hittade %1$d fil att importera till dina servrar. + Hittade %1$d filer att importera till dina servrar. + + + Importera %1$d fil + Importera %1$d filer + + Inte på alla servrar + På alla servrar + + Betala %1$d sat + Betala %1$d sats + + Den här servern kräver betalning för uppladdning: %1$s + Avbryt + Visar förloppet medan dina filer kopieras mellan dina Blossom-servrar. + Blossom-synk + Kopierar dina filer mellan servrar… + BOLT12-erbjudanden + Lägg till ett eller flera BOLT12-erbjudanden (lno1…). De delas offentligt så att vem som helst kan betala dig. + BOLT12-betalningen misslyckades: %1$s + BOLT12-betalning skickad + BOLT12-zapfel + Betalt via BOLT12, men betalningsbeviset kunde inte valideras, så inget zapkvitto publicerades. + Betalt via BOLT12, men plånboken returnerade inget bevis, så inget zapkvitto publicerades. + Ny bokmärkeslista + Metadata för bokmärkeslista + Metadata för bokmärkeslistor kan ses av alla på Nostr. Endast dina privata medlemmar är krypterade. + Bokmärken + Boosta + Appar & webb + Chattar & grupper + Flöden + Huvud + Övrigt + Du + Nedre navigeringsfält + Lägg till + Tillagd + Inga favoriter än. Stjärnmärk en app i Webbläsaren för att lägga till den här. + Inga anslutna grupper än. + Sändande reläer + Reläer som skickar dina anteckningar till alla andra reläer + Webbläsare + Favoriter + Upptäck webbappar + Laddar via det öppna webben. Tryck för att använda Tor. + Laddar via Tor. Tryck för att använda det öppna webben. + Arkivera kanal + Ny kanal + Radera kanal + Radera ”%1$s”? Det tar bort kanalen och dess meddelanden för alla, och kan inte ångras. + Privat kanal + Dold från kanallistan och endast via inbjudan. Av innebär att vem som helst på det här relät kan hitta och gå med i den. + Avarkivera kanal + + %1$d dold konversation + %1$d dolda konversationer + + + Visa %1$d konversation till + Visa alla %1$d konversationer + + Redigera + Nytt forum + Fäst kanal + %1$s och %2$s skriver… + Lossa kanal + Godkänd + Avbruten + Nekad + Misslyckades + Behöver godkännande + I kö + Levererad + Arbetar + + %1$s, %2$d händelse + %1$s, %2$d händelser + + Bilduppladdning misslyckades + Den valda bilden kunde inte laddas upp. Försök igen eller klistra in en URL. + Dela kalenderhändelse + Öppna i kartor + Öppna länk + Pågår nu + %1$s · slutar %2$s + + Börjar om %1$d minut + Börjar om %1$d minuter + + Påminnelse när en händelse du deltar i snart ska börja. + calendar_reminders + Kalenderpåminnelser + Kalenderhändelse + En notis visas när en händelse du deltar i snart ska börja. + Skicka påminnelser + + %1$d min + %1$d min + + Kalenderpåminnelser + Dag + Flöde + Månad + Vecka + Svara + Bluetooth + Kamera av + Kamera på + Hörlur + Lägg på + Inkommande samtal + Inkommande videosamtal\u2026 + Inkommande röstsamtal\u2026 + Ljud av + Samtal + Avisering om pågående samtal + Amethyst behöver åtkomst till kameran och mikrofonen för att starta ett videosamtal. Aktivera dem i appens inställningar. + Amethyst behöver åtkomst till mikrofonen för att starta ett röstsamtal. Aktivera den i appens inställningar. + Avvisa + Dela skärm + Sluta dela skärm + Delar skärm + Samtalsinställningar + Högtalare + Ljud på + Samtal med %1$s + Callback URL hittades inte från %1$s's svar + Avbryt + Cashu Token + Kontrollerar minten… + Kunde inte lösa in Cashu + Mint gav följande felmeddelande: %1$s + Mottaget + Skickat + Matchande mints + + +%1$d till + +%1$d till + + Populära mints + + Rekommenderad av %1$d annan + Rekommenderad av %1$d andra + + Flyttade %1$s sat till %2$s. + Ingen kompatibel Cashu-plånbok hittades på systemet + + %1$d väntande faktura + %1$d väntande fakturor + + Betala %1$s sat + upp till %2$s sat i avgifter? + Publicera en raderingsbegäran för din kind:38000-rekommendation av %1$s. Relayer som följer NIP-09 tar bort den. + Återställde %1$s sats över %2$s proofs. + Cashu mottagen + %1$s sats skickades till din plånbok. (Avgifter: %2$s sats) + Osäker Cashu-mint-adress + Amethyst kontaktade inte den här tokenens mint. %1$s + + Tillgångar hos %1$d mint du inte använder + Tillgångar hos %1$d mints du inte använder + + Väntar på att fakturan ska betalas… + + %1$d mint + %1$d mints + + Sluta casta + Casta till enhet + Accepterad av minst ett relä + Levererad till alla mottagares reläer + Ingen reläinformation för detta meddelande + Väntar på att ett relä ska acceptera detta meddelande + + %1$d svar + %1$d svar + + I chatten + I tråden + Krypterade gemenskaper med flera kanaler (Concord). + Concord-gemenskaper + Lätta, reläbegränsade rum som inte sparar historik. + Försvinnande chattar + Offentlig geohash-begränsad chatt för en plats (Geolokalisering). + Platschattar + MLS-totalsträckskrypterade gruppchattar (Marmot). + Krypterade grupper + Äldre, mindre privata krypterade direktmeddelanden (NIP-04). + Äldre DM + Totalsträckskrypterade, presentinslagna direktmeddelanden (NIP-17). + Privata meddelanden + Öppna, offentliga chattrum som vem som helst kan läsa och gå med i (NIP-28). + Offentliga kanaler + Relähanterade gruppchattar med medlemslistor och moderering (NIP-29). + Relägrupper + Standarder för barnsäkerhet + Tillbehör + Konst + Böcker + Kläder + Samlarobjekt + Hantverk + Elektronik + Träning + Mat + Möbler + Hem + Diverse + Kontor + Annat + Husdjur + Sport + Dagligen + Månadsvis + En gång + Veckovis + Betala %1$s via %2$s? + Betala denna faktura via %1$s? + Debit-tjänsten slutförde inte betalningen. + Ange ett giltigt belopp för detta erbjudande. + Begär faktura… + Stäng alla reaktioner på detta inlägg + Stängda + Gemenskaper + Utkastet är %1$d byte; den här gemenskapen begränsar den här typen till %2$d byte. + Utkastet är %1$d byte; den här gemenskapen begränsar händelser till %2$d byte. + Du har redan publicerat %1$d händelser av den här typen idag (gräns %2$d). + Skrivinställningar + + %1$d kanal + %1$d kanaler + + Ny kanal + Radera kanal + Radera + Radera #%1$s? Detta kan inte ångras och kanalen kan inte återskapas med samma id. + Radera kanal? + Kanalnamn + Inga meddelanden än + Byt namn på kanal + Byt namn + Inga kanaler än. + Skapa + Reläer + Reläer som lagrar den här gemenskapens krypterade meddelanden. Lämna tomt för att använda dina egna. + Ny Concord-kanal + Redigera gemenskap + Redigerar meddelande + Concord-kanaler + Bjud in personer + Kunde inte hämta den här inbjudan. Länken kan ha upphört att gälla eller så går dess reläer inte att nå. + Den här gemenskapen har tagit bort dig. Länken fungerar fortfarande, men dess medlemslista släpper inte in dig. + Den här inbjudningslänken har upphört att gälla och kan inte längre användas. Be om en ny länk. + Den här inbjudningslänken kan inte öppnas. Den kan vara föråldrad eller redan ersatt av en nyare, eller skapad med en nyare version av appen. Be om en ny inbjudningslänk. + Den här inbjudningslänken är ogiltig eller kan inte öppnas med det här kontot. + Den här inbjudningslänken har återkallats och kan inte längre användas. Be om en ny. + Inbjudningslänkar… + Inbjudningslänkar + Länken kunde inte återkallas. Kontrollera din anslutning och försök igen. + Inbjudningslänken har återkallats. + Inbjudningslänk + Lämna gemenskapen + Lämna %1$s? Den tas bort från det här kontots lista och slutar synkas på dina enheter. Gemenskapen meddelas inte och du tas inte bort från dess medlemslista. Meddelanden som du inte längre kan dekryptera kan gå förlorade, och du kan bara återvända med en ny inbjudan. + Du skapade den här gemenskapen. Att lämna raderar den inte och överlämnar den inte till någon annan, men det kasserar ägarnyckeln som lagras i din lista — du skulle inte kunna hantera den igen. + Lämna gemenskapen? + Gör till admin + + %1$d medlem + %1$d medlemmar + + Bannlys + Gör till admin + Ta bort admin + Kunde inte uppdatera den här medlemmens roller. + Tilldela roller + Medlemmar + Häv bannlysning + Ta bort admin + Skicka bild + Concord + Flera personer skriver… + %1$s skriver… + %1$s och %2$s skriver… + + %1$d nytt meddelande + %1$d nya meddelanden + + Standardporten är 9050 + Anslutna reläer + Aktuell lista över reläer som används + Andel lyckade anslutningar till reläet + Alltid + Aldrig + Obegränsad WiFi + Wi-Fi + Lägg till Dokument + Lägg till Bild + Lägg till media + Lägg till Video + Dölj + Varna + Visa + Konversationer + Konverterar animerad GIF till MP4-video för mindre filstorlek och bättre uppspelningskompatibilitet. + Konvertera GIF till MP4 + Kopierade antecknings-ID (@note1) till urklipp + Kopierade anteckningstext till urklipp + Kopierat till urklipp + Kopierade författarens @npub till urklipp + Kopiera min hemliga nyckel + Kopiera till Urklipp + Kunde inte montera LNUrl från Lightning Address "%1$s". Kontrollera användarens konfiguration + Kunde inte kontrollera nedladdad fil efter uppladdning: %1$s + Kunde inte ladda ner uppladdade medier från servern + Kunde inte hämta faktura från %1$s: %2$s + Kunde inte öppna den komprimerade filen + Plånbok hittades inte + Amethyst kunde inte hitta några plånboksappar som stöder Nostr Wallet Connect (NWC). +\n\nVad du kan göra: +\n\t1. Verifiera NWC-stöd: Kontrollera att din föredragna plånbok stöder Nostr Wallet Connect. +\n\t2. Skapa anslutning: Gå till din plånbok och skapa en ny NWC-anslutning. +\n\t3. Länka till Amethyst: Din plånbok erbjuder vanligtvis tre alternativ: +\n\t\t3.1 Automatisk länk: En knapp för att automatiskt öppna och ansluta till Amethyst. Klicka på den, öppna Amethyst och spara på den nya skärmen. +\n\t\t3.2 Manuell länk: En anslutnings-URI som du kan kopiera och klistra in via klistra-ikonen på den här skärmen. +\n\t\t3.3 QR-kod: Plånboken skapar en QR-kod som du kan skanna med QR-knappens funktion på den här skärmen. + Skapa + d + Riskzon + Mörk + Beskrivning + Gör offentlig + Chattar + Grupper + Feed algoritmer + Följpaket + Live-streams + Marknadsplats + Läsningar + DM Inkorg Reläer + + Anmäld av %1$d person du följer + Anmäld av %1$d personer du följer + + DMs + Översätt inte från + Språk som visas här kommer inte att översättas. Välj ett språk för att ta bort det och få det översatt igen. + Spara till telefon + Laddar ner videon… + Utkast + Utkast + Konton + Skapa + Flöden + Navigera + System + Du + Sidomeny + Alltid på + Dolda + + %1$d dold + %1$d dolda + + Synliga + + %1$d dag + %1$d dagar + + + %1$d timme + %1$d timmar + + + %1$d minut + %1$d minuter + + + %1$d månad + %1$d månader + + + %1$d vecka + %1$d veckor + + + %1$d år + %1$d år + + Redigera kalender + Redigera kalenderhändelse + Redigera gemenskap + Redigera emoji-paket + Redigera + Redigera spellista + Redigera inlägg + Privata emojis lagras krypterade på relän och är endast synliga för dig. De visas i din reaktionsmeny och i autokomplettering med ":" precis som offentliga. + Offentliga emojis är synliga för alla och visas i din reaktionsmeny och i ":"-autokompletteringen när detta paket finns i din emoji-lista. + Emojis + Kryptera filer innan uppladdning för integritet. Vissa servrar kanske inte accepterar krypterade filer på gratiskonton. + Kryptera filer + Försvinnande chatt + Fel + Kunde inte betala fakturan + Kunde inte ta ut + Det gick inte att öppna betalningen + Kunde inte skicka zap + Fel vid öppning av signeringsapp + Signeringsprogrammet kunde inte hittas. Kontrollera att appen inte har avinstallerats + Fel vid tolkning av felmeddelande + Fel vid tolkning av JSON från %1$s. Kontrollera användarens blixtkonfiguration + Kunde inte hämta fakturan från mottagarens servrar + Öppna i webbläsare + Kan inte spela upp den här videon + Codec eller format stöds inte på den här enheten (%1$s). Försök öppna den i din webbläsare. + Fel + Relä-synkronisering + händelser från dig + händelser till dig + AMRAP + Cirkelträning + Cykling + Kost + EMOM + Fasta + Vandring + Meditation + Rodd + Löpning + Styrketräning + Simning + Promenad + Yoga + Fäll ut + Utgångsdatum + Författaren bad reläer att radera den här anteckningen efter %1$s. Den försvinner från flödena när den upphör att gälla. + Exportera relay-inställningar + Radering misslyckades: %1$s + Misslyckades med att kryptera din privata nyckel + Misslyckades att spara bilden + Det gick inte att spara PDF:en + Det gick inte att spara videon + Många servrar accepterar inte krypterade filer på gratiskonton. Du kan försöka igen utan kryptering. + Krypterad uppladdning misslyckades + Fel vid uppladdning: %1$s + Det gick inte att ladda upp media + Det gick inte att nå %1$s: %2$s + Lägg till i favoriter + Laddar via det öppna webben. + Laddar via Tor. + Senaste + Ta bort från favoriter + Den appen är inte laddad ännu. Försök igen om ett ögonblick. + Favoritappar + Favorit-flödesalgoritmer + Genomförde en betalning + Publicerade till reläer + Laddade upp en fil + Favorit-reläflöden + Reläer som du ofta besöker för att se deras globala flöde + Gemenskaper + Flödesalgoritmer + Flöden + Hashtaggar + Intresseuppsättningar + Listor + Platser + Reläer + Fil Server + Välj en server att ladda upp denna fil till + Döljer inlägg från främlingar som var exakt samma för 5 eller fler gånger + Filtrera spam + Följ + Följ tillbaka + Följ den här platsen + Alla favorit-flödesalgoritmer + Runt mig + Kurerad + Global + Standard Följ-Lista + Alla följare + Alla Användare Följare + Mina + Tyst listan + Teleportera till en plats… + Nytt rekommendationspaket + Redigera rekommendationspaket + Metadata för rekommendationspaket kan ses av alla på Nostr och publiceras ofta på webbplatser som startpaket för nya användare. + Metadata för rekommendationspaket + Följpaket + Ny följelista + Redigera lista + Typsnitt + Teckensnitt som används genom hela appen + Monospace + Mono + Sans Serif + Sans + Serif + Serif + Systemstandard + System + Teckenstorlek + Skala textstorleken i hela appen + Enorm + Stor + Normal + Liten + Profilgalleri stil + Välj galleriets stil + Klassisk + Modern + Platschatt + Plats-exklusivt inlägg + Endast anhängare av platsen kommer att se den. Dina allmänna anhängare kommer inte att se den. + + %1$d objekt + %1$d objekt + + Git-repositories + Stäng filter + Filtrera repositories + %1$s finansierat av %2$s sats mål + t + Bilden har ändrats. Användaren kanske inte har sett förändringen + Vad betyder detta? + Bilden är densamma sedan inlägget + Hej %1$s, är detta fortfarande tillgängligt? + Dolda ord + Filtrerar bort inlägg från gemenskapsflöden när gemenskapen publicerar ett NIP-9B-regeldokument och en händelse inte skulle godkännas. Ingen effekt när en gemenskap inte har strukturerade regler. + Dölj inlägg som bryter mot gemenskapens regler + Göm lösenord + Höjdpunkter + Laddar upp %1$s (%2$d av %3$d) + Artiklar + Attesteringar + Fågelobservationer + Schackpartier + Annonser + Kommentarer & svar + Tillfälliga chattar + Insamlingar + Höjdpunkter + Interaktiva berättelser + Liveaktiviteter + Musik & ljud + NIP-utkast + Bilder + Poddar + Omröstningar + Betyg & recensioner + Återinlägg + Kortfilmer + Textanteckningar + Torrenter + Videor + Röstmeddelanden + Wiki-sidor + Allt + Felaktig begäran - Servern kan inte eller vill inte bearbeta begäran. + Obehörig - Användaren har inte giltiga autentiseringsuppgifter + Betalning krävs - Servern kräver betalning för att slutföra begäran + Förbjuden - Användaren har inte rätt att göra begäran + Ej hittad - Servern kan inte hitta den begärda adressen + Metod ej tillåten - Servern stöder begärningsmetoden men inte målresursen + Ej acceptabel - Servern hittar inget innehåll som uppfyller begäran. + Proxyautentisering krävs - Användaren har inte giltiga autentiseringsuppgifter + Begäran timeout - Servern väntade för länge på någon annan + Konflikt - Servern kan inte uppfylla begäran på grund av en konflikt med resursen + Borta - Det begärda innehållet har permanent raderats från servern och kommer inte att återställas + Längd krävs - Servern avvisar begäran eftersom den kräver en definierad längd + Förhandsvillkor misslyckades - Begärningens förhandsvillkor i huvudfält som servern inte uppfyller + För stor last - Begäran är större än serverns definierade gränser och servern vägrar att bearbeta den + URI för lång - URL som begärdes av klienten är för lång för servern att bearbeta. + Osupporterat mediatyp - Begäran använder ett mediaformat som servern inte stöder + Område ej tillfredsställt - Servern kan inte uppfylla värdet som anges i begärans Range-huvudfält. + Förväntning misslyckades - Servern kan inte uppfylla kraven som anges av Expect-begärans huvudfält + Uppgradering krävs - Servern vägrar att bearbeta begäran med det nuvarande protokollet om inte klienten uppgraderar till ett annat protokoll. + Internt serverfel - Servern har stött på ett oväntat fel och kan inte slutföra begäran + Ej implementerad - Servern kan inte uppfylla begäran eller känner inte igen begärningsmetoden + Fel gateway - Servern agerar som en gateway och fick ett ogiltigt svar från värden + Tjänst otillgänglig - Detta sker ofta när en server är överbelastad eller nere för underhåll + Gateway timeout - Servern agerade som en gateway eller proxy och väntade för länge på ett svar + HTTP-version ej stödd - Servern stöder inte HTTP-versionen i begäran + Variant förhandlar också - Servern har ett internt konfigurationsfel + Otillräckligt lagringsutrymme - Servern har inte tillräckligt med lagringsutrymme för att bearbeta begäran framgångsrikt + Loop upptäckt - Servern upptäcker en oändlig loop medan den bearbetar begäran + Nätverksautentisering krävs - Klienten måste autentiseras för att få tillgång till nätverket + Olagligt beteende + Bild sparad till galleriet + Imitation + Inkommande reläer + Felaktig fakturabelopp (%1$s sats) från %2$s. Det borde ha varit %3$s + Indexerande reläer + Reläer som lagrar metadata och listor över reläer, t.ex. purplepag.es + Ny intresseuppsättning + Byt namn + Intresseuppsättningar + Ogiltig nyckel + Ogiltig nyckel: %1$s + Ogiltig adress + Amethyst fick en URI att öppna men den URI var ogiltig: %1$s + Det går inte att citera ett utkast + Det går inte att reagera på ett utkast + Det går inte att svara på ett utkast + Det går inte att zappa ett utkast + Nyckel krävs + KeyPackage-relays + Relays där dina MLS KeyPackages publiceras (MIP-00). Andra användare hämtar dessa KeyPackages för att bjuda in dig till Marmot-gruppchatter. Lägg till mellan 1–3 relays som accepterar KeyPackage-händelser från dig och tillåter offentlig läsning. + KeyPackages + Accepterad emblemuppsättning + Äventyrsprolog + Äventyrsläsning + Äventyrsscen + Apprekommendationer + Möte + Appar + OSA för möte + Ljudhuvud + Ljudspår + Skapade poddar + Utmärkelser + Utmärkelsedefinitioner + Blob-data + Blob-huvuden + Blockerade relayer + Bloggar + Blossom-autentisering + Blossom-servrar + Bokmärkeslista + Broadcast-relayer + Kalender + Kanaldefinition + Dölj kanalmeddelande + Kanallista + Kanalmeddelande + Kanalmetadata + Tysta användare i kanal + Schackautentisering + Schackutmaningar + Remianbud + Acceptera schackparti + Slut på schackparti + Schackpartier + Schackdrag + Annonser + Kommentarer + Community-definition + Communitylista + Communityinlägg + Kontaktkort + Dagsmöte + Raderingar + DM-fil + DM-meddelande + DM-relayer + Utkast + DVM-innehållsförfrågan + DVM-innehållssvar + DVM-status + DVM-användarförfrågan + DVM-användarsvar + Redigeringar + Emoji-paketlista + Emoji-paket + Tillfällig chatt + Tillfälliga chattrum + Favoritpoddar + Favoritrelayer + Filhuvuden + Filservrar + Följerlista + Följ-paket + Geohash-följer + Presentinslagningar + Git-ärende + Git-patch + Pull Request + PR-uppdatering + Git-svar + Git-repository + Git-status: Tillämpad + Git-status: Stängd + Git-status: Utkast + Git-status: Öppen + Följda hashtaggar + Höjdpunkter + HTTP-autentisering + Indexrelälista + Livechattar + Livesändningar + Medicinska data + Mötesrum + Mötesutrymme + Musikspellista + Musikspår + Tystnadslista + Namngivna bokmärken + Nests-servrar + NIP + NIP-04 DM + NNS + Nostr Connect + Anteckningar + NWC-förfrågan + NWC-svar + Gammal bokmärkeslista + OTS + Outbox relayer + Betala till + Personlistor + Bilder + Nålar + Poddavsnitt + Poddprogram + Omröstning + Omröstningssvar + Privata reläer + Privata zaps + Profil + Profilutmärkelser + Profilgalleri + Proxyreläer + Offentligt meddelande + Reaktioner + Reläautentisering + Relay upptäckt + Relay övervakningsmeddelande + Reläuppsättning + Rapporter + Återinlägg + Återinlägg (16) + Närvaro i rum + Sigill + Sökreläer + Shorts + Shorts (svar) + Torrentkommentarer + Torrenter + Betrodda leverantörer + Betrodda reläer + Radera användare + Användarinställningar + Användarstatus + Video + Video (svar) + Röstmeddelande + Röstsvar + Väckning + Webbbokmärke + Wiki + Träningspass + Zap-mål + Zap-omröstning + Zap-förfrågan + Zaps + Känd + Språkvisningsinställningar + Välj för varje översatt språkpar vilket språk som ska visas först. + Senast sedd för %1$s sedan + Senast sedd just nu + Aldrig sedd + Senast sedd %1$s (för %2$s sedan) + Lämna + Filpost + Katalog + + %1$d objekt + %1$d objekt + + + %1$d objekt till + %1$d objekt till + + Läroresurs + Ljus + Livesändningar + Lokala reläer + Lista över reläer som körs i denna enhet. + Ändra plats på kartan + Platskanaler + Välj en plats på kartan + Logga in med en privat nyckel för att kunna boosta inlägg + Logga in med en privat nyckel för att kunna följa + Du använder en offentlig nyckel, och offentliga nycklar är endast läsbara. Logga in med en privat nyckel för att kunna dölja ett ord eller en mening + Logga in med en privat nyckel för att kunna svara + Logga in med en privat nyckel för att kunna skicka Zaps + Du använder en offentlig nyckel, och offentliga nycklar är endast läsbara. Logga in med en privat nyckel för att kunna visa ett ord eller en mening + Du använder en publik nyckel som är skrivskyddad. Logga in med en privat nyckel för att signera händelser + Logga in med en privat nyckel för att kunna sluta följa + Du använder en publik nyckel som är skrivskyddad. Logga in med en privat nyckel för att ladda upp + Logga in med en privat nyckel för att gilla inlägg + Videor + m + Mina emoji-paket + Lägg till foto + Lägger till %1$s… + Administratörsbehörighet beviljad + Administratörsbehörighet återkallad + Byt foto + Lägg först till en Blossom-medieserver i Inställningar — gruppen behöver någonstans att ladda upp bilagor till. + Den här gruppen använder nu krypterade bilagor + Misslyckades med att lägga till %1$s: %2$s + Misslyckades med att skapa grupp: %1$s + Kunde inte upplösa gruppen: %1$s + Kunde inte byta den här gruppen till krypterade bilagor: %1$s + Misslyckades med att bevilja admin: %1$s + Misslyckades med att lämna grupp: %1$s + Misslyckades med att ta bort medlem: %1$s + Misslyckades med att återkalla admin: %1$s + Misslyckades med att uppdatera: %1$s + MLS-grupp + Den här gruppen avslutas. Du kan fortfarande läsa den. + Du lämnar den här gruppen. + Du är inte längre medlem i den här gruppen. + Gruppen upplöst + Avslutar gruppen. Det blir klart när gruppen godkänner. + Gruppinfo uppdaterad + + %1$d medlem + %1$d medlemmar + + Medlem borttagen + + %1$d medd + %1$d medd + + Inte medlem i den här gruppen + okänt fel + Media tillagd + Media har lagts till i ditt profilgalleri + Nedladdning av media har startat… + Offline + Online + Långsam + Mediaservrar + Media är för stort för NIP-95 + Infoga destinationen för meddelandet först + Kan inte ladda upp + Ämne + Meddelanden + Metadata kunde inte tas bort + Kunde inte ta bort privat metadata från media. Uppladdning avbruten. + Bokmärken migrerade + Saknad lightning-konfiguration + Fler alternativ + Flytta till privat + Flytta till offentligt + Ladda upp en omslagsbild + Välj en kvadratisk bild som konstverk för den här spellistan. + + +%1$d spår till + +%1$d spår till + + + %1$d spår + %1$d spår + + + %1$d spår + %1$d spår + + Laddar upp omslag och publicerar. Detta fortsätter även om du lämnar skärmen. + Ladda upp en ljudfil + Välj en MP3, WAV eller FLAC. Den laddas upp till din mediaserver när du sparar. + Ladda upp en omslagsbild + Välj en kvadratisk bild som omslag för det här spåret. + Laddar upp omslag och ljud och publicerar. Detta fortsätter även om du lämnar skärmen. + Ljud på. Klicka för att stänga av ljudet + Tysta aviseringar + Ljud avstängt. Klicka för att ta bort ljudlöst + Mina Blossom-filer + Mina listor + Namn är obligatoriskt + %1$dms + Namecoin-inställningar + Identitet + Läs din offentliga nyckel + Meddelanden + Utbyt meddelanden med andra nApplets + Tangentbordsåtgärder + Bind tangentbordsgenvägar + Aviseringar + Visa dig aviseringar + Reläer + Läs, signera & publicera dina händelser + Nätverk + Hämta webb- och Blossom-resurser + Kryptering + Kryptera och dekryptera privata meddelanden med din nyckel + Lagring + Dess egna privata lagring + Tema + Matcha din apps färger + Uppladdningar + Ladda upp filer till din medieserver + Betalningar + Betala Lightning-fakturor + appar behörigheter signerare napplet nsite webapp förtroende anslutna + + följer %1$d nytt konto + följer %1$d nya konton + + ⚠ Detta följer %1$s. + + SLUTAR FÖLJA %1$d konto + SLUTAR FÖLJA %1$d konton + + ⚠ Detta skriver om din följlista: %1$s. + %1$s och %2$s + + tystar %1$d person till + tystar %1$d personer till + + ⚠ Detta tystar %1$s. + + SLUTAR TYSTA %1$d person + SLUTAR TYSTA %1$d personer + + ⚠ Detta skriver om din tystningslista: %1$s. Tystade ord och hashtaggar visas inte här — tryck på “Visa händelse” för hela listan. + + ⚠ Detta skriver en lista med %1$d post. Amethyst har ingen cachad kopia att jämföra med. + ⚠ Detta skriver en lista med %1$d poster. Amethyst har ingen cachad kopia att jämföra med. + + Detta återpublicerar din befintliga lista oförändrad. + + lägger till %1$d relä + lägger till %1$d reläer + + + TAR BORT %1$d relä + TAR BORT %1$d reläer + + ⚠ Detta skriver om din relälista: %1$s. Dina inlägg och läsningar flyttas med den. + ⚠ Detta SLUTAR FÖLJA %1$s. + ⚠ Detta SLUTAR TYSTA %1$s. + + ⚠ Detta begär radering av %1$d av dina händelser. + ⚠ Detta begär radering av %1$d av dina händelser. + + + Bär %1$d tagg. Tryck på “Visa händelse” för att se exakt vad som skulle signeras. + Bär %1$d taggar. Tryck på “Visa händelse” för att se exakt vad som skulle signeras. + + Det här nApplet vill läsa din offentliga nyckel. + Det här nApplet vill läsa din profil och kontodata. + Den här webbplatsen vill dekryptera ett meddelande från %1$s med din Nostr-nyckel. + Den här webbplatsen vill kryptera ett meddelande till %1$s med din Nostr-nyckel. + Det här nApplet vill visa dig aviseringar. + + Det här nApplet vill betala en Lightning-faktura på %1$d sat. + Det här nApplet vill betala en Lightning-faktura på %1$d sats. + + ⚠ Den här nApplet vill betala en Lightning-faktura som anger INGET belopp — betalningsmottagaren avgör hur mycket som tas. Tillåt detta endast om du litar på den. + Det här nApplet vill signera och publicera en kind %1$d-händelse som dig. + Det här nApplet vill skicka en krypterad händelse som dig. + Det här nApplet vill signera och publicera en kind %1$d-händelse som dig: + Det här nApplet vill läsa händelser från dina reläer. + Det här nApplet vill hämta en webbresurs. + Den här webbplatsen vill signera en kind %1$d-händelse med din Nostr-nyckel. + Det här nApplet vill använda sin privata lagring. + Det här nApplet vill ladda upp en fil till din medieserver. + nApplet %1$s… + läsa dina privata meddelanden + läsa dina privata meddelanden med %1$s + kryptera ett meddelande + signera för %1$s (typ: %2$d) + Anslutna appar + nApplets + Kunde inte skicka meddelandet + Tysta den här talaren + Återställ den här talaren + Lämna + Kunde inte markera rummet som stängt. Lämnar ändå — rummet stängs automatiskt. + + %1$d lyssnare + %1$d lyssnare + + Sänk handen + Stäng av mikrofon + Slå på mikrofon + Tysta + Kunde inte spara din nest-serverlista. Försök igen. + Nest — Live + Ljudrum + Håller ljudet igång medan rummet är öppet. + Nest anslutet + Stoppa + Tryck för att återgå. + Följ + Tysta + Sluta följa + Slå på ljud + lämnade nestet + anslöt sig som publik + klev upp på scen + räckte upp handen + talar + Räck upp handen + Slå på ljud + Ljudrum + Sparas som en utbytbar händelse av typ kind-10112 så andra klienter kan läsa dina inställningar. + Dina servrar + Inbyggda förslag som du kan lägga till i din lista med ett tryck. + Rekommenderade servrar + Nest-servrar + aldrig + Nytt märke + Ny kalender + Ny kalenderhändelse + Ny gemenskap + Moderatorer + Relän + Blockerade användare + Gemenskapskommentar (1111) + Långformat artikel (30023) + Bildinlägg (20) + Kort text (1) + Kort video (22) + Videoinlägg (21) + Tillåtna händelsetyper + Global max händelsestorlek (valfritt) + Verifierbara regler (valfritt) + Förtroendenät-grind (valfritt) + Enorma gemenskaper, organiserade efter kanaler eller arbetsflöden. + Arbetsytor + Mer att konfigurera + Skapa gemenskap + Skalar till enorma gemenskaper + Uppdelat efter kanal / arbetsflöde + Gemenskaper uppdelade efter kanal + Concord-gemenskap + En-till-en och små gruppchattar med personer du känner. + 1:1–5 rum + Kan inte lägga till användare senare + Nytt meddelande + 1-till-1 & små grupper + Totalsträckskrypterad + Direktmeddelanden, totalsträckskrypterade + Privat meddelande + Chatt i stunden med vem som helst som är online just nu. + Live nu + Ingen historik + Relä-avgränsad + Starta chatt + Prata med vem som är online nu + Inget sparas + Vem som helst som är online, just nu + Försvinnande chatt + Bäst för att prata med personer fysiskt kring en plats — ditt kvarter, din stad eller region. + Lokal + Offentlig och flyktig — ingen historik, alla i cellen kan läsa den. + Välj en plats + Anonym — en engångsidentitet per område, aldrig din npub. + Bitchat-kompatibel; når närliggande användare på samma reläer. + Chatta med vem som helst nära en plats, via geohash. + Platskanal + Större privata grupper som växer ur små grupp-DM. + Enhetsbunden + Enhetsbunden — visas inte om du loggar in någon annanstans + Skapa grupp + Skalar bortom små DM + Krypterad gruppchatt + Större privata grupper + Marmot-grupp + Öppna offentliga rum där vem som helst kan posta. + Omodererad + Endast offentlig + Ingen moderering + Skapa offentlig chatt + Vem som helst kan gå med + Enkel & upptäckbar + Offentliga meddelanden på ett relä + Offentlig chatt + Grupper som modereras av reläet som är värd för dem. + Modererad + Bunden till det enda reläet + Bläddra bland relägrupper + Modereras av reläet + Offentlig eller privat + Relädriven, offentlig eller privat + Relägrupp + Privat + Krypterade grupper + Relämedveten + Nytt emoji-paket + Nytt mål + Lägg till dina tankar… + Ny höjdpunkt + Ny artikel + Ny spellista + Nytt musikspår + Ny produkt + Nya förfrågningar + Nya trådar + Nytt träningspass + Tillåt alltid för %1$s + Frånkopplad + Ansluten + + %1$d relä + %1$d reläer + + Markera alla + Avmarkera alla + + %1$d signeringsförfrågan + %1$d signeringsförfrågningar + + Anslutningen nekades + Kunde inte ansluta: %1$s + Inte en giltig nostrconnect://-länk + Den länken innehåller inget relä att ansluta på + + %1$d ansluten app + %1$d anslutna appar + + Anslöt %1$s. Amethyst signerar nu åt den i bakgrunden. + Appen anslöt. Amethyst signerar nu åt den i bakgrunden. + Bunkeradress kopierad + Amethyst kunde inte dekryptera det här meddelandet. Det kanske inte är adresserat till det här kontot. + Helskärmsmeddelanden som ber dig godkänna en app som vill att Amethyst ska signera, kryptera eller dekryptera med din nyckel. + Signeringsförfrågningar + En app vill ansluta + Godkänn en signeringsförfrågan? + Tryck för att granska + Det här är ett skrivskyddat konto som inte kan signera. + Återansluter till reläer… + Genererade en ny bunkeradress + + Lyssnar på %1$d relä + Lyssnar på %1$d reläer, alla anslutna + + Fjärrsignatärapp + Fjärrsignatär + + %1$d tillgång paketerad + %1$d tillgångar buntade + + Inga Blossom-appar hittades. Installera en lokal Blossom-app för att visa den här filen + Kan inte öppna Blossom-länkar + Ingen kameraapp hittades på den här enheten + Ingen Lightning-adress angiven + Ingen app hittades för att hantera denna betalning. Installera en kompatibel plånbok. + Ingen app installerad för att hantera %1$s-betalningar. Installera en kompatibel plånbok. + Inga reaktionstyper valda. Håll ned för att ändra + Inga reaktioner konfigurerade + Inga plånböcker hittades för att betala en blixtfaktura. Installera en blixtpengaplånbok för att använda zaps + Inga plånböcker hittades för att betala en blixtfaktura (Fel: %1$s). Installera en blixtpengaplånbok för att använda zaps + Ingen konfiguration av Zap-belopp. Tryck länge för att ändra + Konton aktiva i bakgrunden + Huvudströmbrytare för realtidsaviseringar i bakgrunden. Stäng av för att spara batteri — som ett flygplansläge. När det är avstängt förblir inget konto anslutet i bakgrunden, och det förblir avstängt (även efter omstart) tills du slår på det igen. + Aviseringstjänst i bakgrunden + Aviseringar + Kategorier + Leverans + Visning i appen + Blockera relä + Aviserar. Tryck för att tysta aviseringen för den här användaren + Tystad. Tryck för att avisera den här användaren igen + nu + Nowhere Konst + Nowhere Drop + Nowhere Evenemang + Nowhere Forum + Nowhere Insamling + Nowhere-webbplats + Nowhere Meddelande + Nowhere Namninsamling + Nowhere Butik + nSites + Naket + Kan inte bygga händelsereferens + Ingen mottagar-pubkey på noten + Nutzaps är offentliga och skulle avslöja den här privata anteckningen. Använd en Lightning-zap istället. + Nutzap misslyckades + + Skicka %1$s sats, %2$d sätt + Skicka %1$s sats, %2$d sätt + + Backend för Bitcoin-kedjan är inte konfigurerad + Kunde inte sända ut transaktionen + Kunde inte bygga transaktionen + Kunde inte ladda ditt Bitcoin-saldo + Betalning skickad, men zap-kvittot kunde inte publiceras + + Betalning skickad (%1$d av %2$d kvitto publicerat), men nästa kvitto kunde inte publiceras + Betalning skickad (%1$d av %2$d kvitton publicerade), men nästa kvitto kunde inte publiceras + + En mottagarandel är under damm + Kunde inte signera transaktionen + ~10 min + ~30 min + ~1 tim + Snabb + Normal + Långsam + %1$s · %2$s sat/vB · %3$s + + Delas mellan %1$d mottagare + Delas mellan %1$d mottagare + + + Hoppar över %1$d mottagare med endast Lightning-adress — on-chain behöver en Nostr-publik nyckel för att härleda adressen. + Hoppar över %1$d mottagare med endast Lightning-adress — on-chain behöver en Nostr-publik nyckel för att härleda adressen. + + + Använd den här anteckningens %1$d-vägs zap-uppdelning + Använd den här anteckningens %1$d-vägs zap-uppdelning + + sänder ut + bygger transaktionen + laddar saldo + publicerar kvittot + signerar + Endast en röst per användare tillåts i denna typ av omröstning + Öppna alla reaktioner på detta inlägg + Öppna + Orbot Socks Port + Bitcoin Explorer (OTS) + Det finns bevis på att detta inlägg signerades någon gång före %1$s. Beviset stämplades i Bitcoin-blockchainen vid det datumet och den tiden. + Ett tidsstämpelbevis för det här inlägget har begärts och väntar på att stämplas i Bitcoin-blockkedjan. Det slutförs vanligtvis inom några timmar. + Tidsstämpel Bevis + Utgående reläer + Lösenord krävs + Pausa + Betala + Meddelande från %1$s + Betalningsmottagare + Lägg till betalningsadresser för olika nätverk (t.ex. bitcoin, lightning, ethereum). + Betala i %1$s — du väljer beloppet där + PDF sparad i Downloads/Amethyst + Metadata för följlistor kan ses av alla på Nostr. Endast privata medlemmar är krypterade. + Metadata för följlista + Bilder + Fäst högst upp + Fäst på profil + Spela + + %1$d kapitel + %1$d kapitel + + Lägg till omslagsbild + Kvadratisk bild som visas för avsnittet + Redigera avsnitt + Din podd + Lägg till ljudfil + MP3, M4A eller annat ljud + Kapitel-URL + + %1$d avsnitt + %1$d avsnitt + + Transkriptions-URL + Video-URL + Nytt avsnitt + Ny trailer + Publicerar… + Författare + Kategorier + Teknik, Nyheter + Upphovsrätt + Lägg till omslagsbild + Kvadratisk bild för din podd + Kontakt-e-post + Finansieringslänkar + https://… + Språk + sv + Poddtitel + Min podd + Webbplats + + %1$d trailer + %1$d trailrar + + Lägg till trailerklipp + Kort ljud- eller videoförhandsvisning + Value-for-Value-fel + Anslut en Nostr Wallet Connect-plånbok för att skicka till keysend-mottagare (noder). + Den här podden har inga betalbara värdemottagare. + Anslut en Nostr Wallet Connect- eller debiteringsplånbok för att streama sats medan du lyssnar. + Den här användaren har ingen Lightning-adress + Omröstningsskapare kan inte rösta i sina egna omröstningar. + (0–100)% + Omröstningen är stängd för nya röster + Flerval + Alternativ %1$s + + %1$d röst är daterad före omröstningen publicerades och utesluts. + %1$d röster är daterade före omröstningen publicerades och utesluts. + + + %1$d röstande döljs av din tystningslista. + %1$d röstande döljs av din tystningslista. + + + %1$d svar valde inget giltigt alternativ och utesluts. + %1$d svar valde inget giltigt alternativ och utesluts. + + + %1$d röst kom in efter att omröstningen stängde och utesluts. + %1$d röster kom in efter att omröstningen stängde och utesluts. + + + %1$d röstande + %1$d röstande + + %1$d av %2$d svar inlästa från %3$d reläer. + %1$d av ungefär %2$d svar inlästa från %3$d reläer. + + · %1$d val + · %1$d val + + + %1$d röst › + %1$d röster › + + Enkelt val + Kunde inte rösta + Omröstningar + Dela + + Det här inlägget har fler än %1$d hashtagg + Det här inlägget har fler än %1$d hashtaggar + + Kommentarer + Svar på artiklar, filer och annat innehåll + Omslag för privata meddelanden + Låter DM-reläer filtrera inkorgsspam; endast det yttre omslaget minas, aldrig ditt meddelande + Långform & höjdpunkter + Artiklar och höjdpunkter; sällsynta, kostnaden är försumbar + Annat offentligt innehåll + Omröstningar, livestatus, radannonser och allt annat offentligt + Offentlig & livechatt + Miningfördröjningar skadar konversationsflödet + Reaktioner + Den mest högvolymiga typen; att mina varje gillning kostar batteri + Rapporter + Reläer väger rapporter efter deras kostnad + Reposter + Hög volym för aktiva användare + Korta notiser & svar + Den primära offentliga spamytan + Röstmeddelanden + Offentliga röstinlägg och svar + + %1$d dag + %1$d dagar + + + %1$d timme + %1$d timmar + + <1 s + + %1$d minut + %1$d minuter + + + %1$d sekund + %1$d sekunder + + Författaren använde beräkningskraft för att bryta den här anteckningen till svårighetsgrad %1$s — en proof-of-work-stämpel som gör skräppost dyrt. + Chattmeddelande + Rapport + + %1$s • minar vid %2$d bit + %1$s • minar vid %2$d bitar + + + Minar bevis på arbete… (%1$d inlägg i kön) + Minar bevis på arbete… (%1$d inlägg i kön) + + Minar bevis på arbete + Avbryt + Visar inlägg som fortfarande minar sitt NIP-13-bevis på arbete så att de kan slutföras efter att du lämnat appen. + Mining av bevis på arbete + Skicka nu + + %1$d bit + %1$d bits + + + Standard (%1$d bit) + Standard (%1$d bitar) + + Ditt %1$s slutförde miningen men kunde inte publiceras: %2$s + Ditt %1$s slutförde miningen men kunde inte publiceras. Det görs ett nytt försök nästa gång appen startar. + + %1$s • väntar på att minas vid %2$d bit + %1$s • väntar på att minas vid %2$d bitar + + Bevis på arbete + ≈ %1$s kvar + när som helst nu + Förhandsgranska kortbild för %1$s + Sekretess Alternativ + Integritetspolicy + <Kan inte dekryptera privat meddelande>\n\nDu citerades i en privat/krypterad konversation mellan %1$s och %2$s. + DM inkorgsreläer + Sätt in mellan 1–3 reläer som ska fungera som din privata inkorg. Andra kommer att använda dessa reläer för att skicka DM till dig. DM inkorgsreläer bör acceptera alla meddelanden från vem som helst, men endast tillåta dig att ladda ner dem. Bra alternativ är:\n - inbox.nostr.wine (betald)\n - you.nostr1.com (personliga reläer - betald) + Användaren tar emot DM:s på dessa reläer + Privat meddelande + Gör privat: paketera anteckningen som gåva endast till de aviserade användarna + Svar på en privat anteckning förblir alltid privata + Synlig för + Privata reläer + Infoga mellan 1–3 reläer för att lagra händelser som ingen annan kan se, som dina Utkast och/eller appinställningar. Helst är dessa reläer antingen lokala eller kräver autentisering innan du laddar ner varje användares innehåll. + Den här anteckningen levererades privat och är inte signerad. Endast de taggade deltagarna kan se den, och ingen kan bevisa för utomstående vem som skrev den. + Privat anteckning + Svordomar / Hatiskt tal + Profil + Profilmärken + App-rekommendationer + Profilmärken + Följarflöde + Bitcoin-plånbok (on-chain) + Mottagna zaps-flöde + Profilgränssnitt + profiler + Föreslå en redigering + Proxyreläer + Aggregeringsreläer som används för att hämta flöden, t.ex. filter.nostr.wine + Publik Chat + Offentliga chattar är synliga för alla på Nostr och alla + kan delta på dem. De är bra för öppna samhällen kring specifika ämnen. + Moderation kan kontrolleras genom att ta bort inlägg på reläerna + Infoga mellan 1–3 reläer som är värd för denna grupp. + Nostr klienter använder denna inställning för att veta var du kan ladda ner meddelanden från och skicka dina meddelanden till. + Reläer + Metadata för offentlig chatt + Offentliga chattar + Offentliga hemreläer + Denna typ av relä lagrar allt ditt innehåll. Amethyst skickar dina inlägg hit och andra kommer att använda dessa reläer för att hitta ditt innehåll. Sätt in mellan 1–3 reläer. De kan vara personliga reläer, betalda reläer eller offentliga reläer. + Användaren publicerar sitt innehåll på dessa reläer + Offentligt meddelande + Offentliga inkorgsreläer + Denna typ av relä tar emot alla svar, kommentarer, gillanden och zaps till dina inlägg. Sätt in mellan 1–3 reläer och se till att de accepterar inlägg från vem som helst. + Användaren tar emot aviseringar på dessa reläer + Antecknings ID + Radera + Tysta tråd + Dela + Dela webbläsarlänk + Avtysta tråd + Betyg %1$s av 5 + Reaktion + Reaktioner + Reaktionsinställningar + Läs från Relay + Mängden data i byte som mottogs från detta relä, inklusive filter och händelser + Skrivskyddad användare + Tryck och håll in för att spela in ett meddelande + + Det håller också inne med %1$d annan sak. + Det håller också inne med %1$d andra saker. + + Alltid, alla reläer + Amethyst loggar in som %1$s på varje relä som frågar och slutar fråga dig. Reläer du har blockerat, och de du har ställt in att aldrig logga in på, förblir som de är. Du kan ändra detta under Reläautentisering. + Logga in på alla reläer? + Logga alltid in + …jag skriver till någon jag följer + …jag skriver till någon annan + …det är mitt relä, eller ett rum jag gått med i eller följer + …jag läser någon jag följer + Alltid, inställt av dig + Aldrig, inställt av dig + + %1$s och %2$d till + %1$s och %2$d till + + Aldrig + Aldrig, alla reläer + Amethyst slutar berätta för reläer att du är %1$s och slutar fråga dig. Vissa reläer kommer att vägra betjäna dig: meddelanden, svar och aviseringar kanske inte går fram. Reläer du har ställt in att alltid logga in på förblir som de är. Du kan ändra detta under Reläautentisering. + Logga aldrig in på något relä? + Autentisera alltid + Signera autentiseringsutmaningar för varje relä som begär det + Anpassad + Välj exakt vilka reläer du vill logga in på. Du tillfrågas om allt du inte har tillåtit nedan. + Autentisera aldrig + Ignorera autentiseringsutmaningar från alla reläer + din inkorg + ditt eget relä + dina svar + det här reläet + ett rum du postar i + personer du läser + ett rum du läser + dina meddelanden + en konversation + auth autentisering relä signera verifiera nip-42 identitet + Reläautentisering + Relä Chatt + Relä chattar är chattgrupper som kontrolleras av deras hem relä. + De är synliga för alla på Nostr och vem som helst kan delta på dem. + De är bra för öppna gemenskaper kring specifika ämnen. Några av dessa grupper är kortlivade + och därmed försvinner chattmeddelanden över tiden + Relä Chattar + Din egen profil, dina inställningar och utkast, på dina hemreläer. + Reläerna som varje gemenskap publicerar sina plan till. + Dina DM-inkorgsreläer, dit gift-wrap-meddelanden levereras. + Gruppmeddelanden och nyckelpaket, på varje grupps reläer. + Bevakar de händelser som visas just nu efter nya svar, reaktioner, återinlägg, zaps och rapporter, så att räknarna uppdateras medan du läser. + Chattrum som inte sparar någon historik — meddelanden finns bara medan du är ansluten, så dessa förblir prenumererade för att något alls ska komma fram. + Följerlistor, som används för att bygga ditt flöde och ditt förtroendenät. + Platsbaserade rum för de områden du följer, efterfrågade från de reläer som bär dem. + Inlägg från personer du följer, lästa från de reläer var och en av dem publicerar till. + Chatt och zap-mål kopplade till livesändningar du har öppna eller följer. + Rummets reläer, medan det är öppet. + Söker över reläer efter vilka mints som finns och vilka folk rekommenderar. + Rapporter som personer du följer har skrivit om profilerna som just nu visas på skärmen, efterfrågade från varje relä dessa personer publicerar till. + Dina inkorgsreläer, plus ett litet roterande urval av de reläer personer du följer publicerar till, ifall ett omnämnande levererades någon annanstans. + Lyssnar på dina nutzap-reläer plus dina inkorgs- och DM-reläer, så att en betalning inte kan slinka förbi. + Aviseringar från din anslutna plånbok. + Profiler för personerna som just nu visas på skärmen. + Hemrelät för varje chatt du har öppen eller har gått med i. + Hämtar händelser via id som något på din skärm hänvisar till men som du inte har ännu — ett citat, ett svars förälder, en trådrot. + NIP-29-grupper du gått med i. Varje grupp bor på ett värdrelä, så appen ansluter till varje relä som är värd för en av dina grupper. + Hittar vilka reläer varje person publicerar till, så att deras inlägg kan hämtas från rätt ställe. + Dina egna plånbokshändelser, lästa tillbaka från de reläer du publicerade dem till. + Skapa en grupp + Radera grupp + Radera ”%1$s”? Det tar bort gruppen och dess historik för alla, och kan inte ångras. + Redigera grupp + Privat + Endast medlemmar kan läsa meddelanden. + + %1$d medlem + %1$d medlemmar + + + %1$d grupp + %1$d grupper + + Relägrupper + Titel + Relägrupper + Händelser + IP-adresser + Typer + Användare + Inställningar + Tillägg + Bläddring + Gemenskapschattar + Gemenskapsflöden + DM-inkorg + Observerar händelser + Försvinnande chattar + Platschattar + Hemflöde + + %1$s \u00b7 %2$d relä + %1$s \u00b7 %2$d reläer + + Livesändningschatt + Media + Mint-katalog + Nutzap-inkorg + Wallet Connect + Observerar profiler + Övrigt + Hittar saknade händelser + Relägrupper + Reläinfo + Relälistsökare + Rapporter från personer du följer + Sök + Hashtaggar + Konversation + Ämnen + Kontots data + Plånbok + Relä inställningar + utgående listor + Reläer + Fyll på & skicka zap + Skicka zap + Fyll på %1$s sats till %2$s och zappa %3$s %4$s sats · avgift ≈ %5$s sats + Ta bort + Ta bort från Meddelanden + Ta bort från Publika Bokmärken + svara här.. + Meddela: + + Begär radering + Begäran om försvinnande + Kunde inte återställa Marmot-tillstånd: %1$s + Återställ Marmot-tillstånd + Marmot-tillstånd återställt. + Aktivitet (7 dagar) + Amethyst förbrukade mer än väntat nyligen: %1$s. Vill du skicka en användningsrapport till utvecklarna i ett krypterat DM? Du får se hela rapporten innan något skickas. + Batteri förbrukat under tiden (hela enheten) + Reläanslutningar hållna medan appen är stängd + Aviseringstjänst i bakgrunden + + %1$d startar + %1$d startar + + Körtid + Starter av appprocessen + Batteri använt (i appen / bakgrund) + Data per funktion (7 dagar) + Mobildata per funktion (7 dagar) + Tid i samtal + Processortid använd + Dekrypterade meddelanden + Aktiv överföringstid + Webbförfrågningar + Mobildata (MB) + Wi-Fi (MB) + Platslyssning + Mediauppspelningstid + Adresserbara händelser i minnet + Chattrumslistor i minnet + Enhetens minnesklass + Appminne (heap) + Bildcache (RAM) + Bildcache (disk) + Nativt minne + Anteckningar i minnet + Minne just nu + Profiler i minnet + Tid i ljudrum + Proof-of-work-brytning + Radiouppvakningar för nedladdningar (uppsk.) + %1$s mobildata i bakgrunden på en dag + + appprocessen startade om %1$d gång på en dag + appprocessen startade om %1$d gånger på en dag + + %1$s reläanslutningar i bakgrunden på mobildata på en dag + + appen återanslöt till reläer %1$d gång på en dag + appen återanslöt till reläer %1$d gånger på en dag + + processorn hölls vaken i %1$s för att bearbeta aviseringar på en dag + Reläåteranslutningar (misslyckade) + Reläanslutningstid + … i bakgrunden på mobildata + Fjärrsignaturer + Tid per skärm (7 dagar) + batteri data användning förbrukning ström nätverk diagnostik liggare + Dela med utvecklarna + Dela + Bilder + Plånbok & zaps + Adressverifiering + Övrigt + Länkförhandsvisningar + Push-registrering + Reläsynkning + Uppladdningar + Video & ljud + Genomsn. reläanslutningar + Batteri / timme i appen + Mobildata idag + Data / timme i appen + I appen idag + Relätid idag + Wi-Fi idag + Appens resursanvändning + Tor-drifttid + Inbyggd Tor + Data per dag + Verifierade signaturer + Aviseringsbearbetning (processor vaken) + Körda bakgrundsjobb + Försök igen + Kalenderlistor + Kalendrar + Schack + Upptäck + Hem + Importera följare + Media + Meddelanden + Spellistor + Musik + Aviseringar + Avsnitt + Poddar + Schemalägg inlägg + Avbryt schemaläggning + Schemalagda inlägg kanske inte publiceras förrän du öppnar appen igen. Andra kontons schemalagda inlägg utlöses inte medan detta konto är aktivt. Aktivera alltid-på i Inställningar → UI-inställningar för pålitlig schemaläggning i bakgrunden. + Schemalagda inlägg kanske inte publiceras förrän du öppnar appen igen. Aktivera alltid-på i Inställningar → UI-inställningar för pålitlig schemaläggning i bakgrunden. + Schemalagda inlägg + Skicka nu + %1$s · om %2$s + %1$s · för %2$s sedan + Imorgon + Fel: %1$s + Inläggs-ID kopierat + + Utloggad · %1$d schemalagt inlägg raderat + Utloggad · %1$d schemalagda inlägg raderade + + Utloggad + + Du har %1$d schemalagt inlägg som inte har publicerats än. Att logga ut raderar det permanent. + Du har %1$d schemalagda inlägg som inte har publicerats än. Att logga ut raderar dem permanent. + + Schemalagt inlägg misslyckades + Schemalagt inlägg publicerat + + till %1$d relä + till %1$d reläer + + Avbrutet + Misslyckades + Schemalagd + Skickar… + Skickat + + · %1$d inom 1 h + · %1$d inom 1 h + + + %1$d i kö + %1$d i kö + + Bra alternativ är:\n%1$s + Sökreläer + Sökreläer + Lista över reläer som används för sökning och taggning av användare. Taggning och sökning kommer inte att fungera om inga alternativ är tillgängliga. + sökbara händelser + Hemlig nyckel (nsec) kopierad till urklipp + Du har inte blockerat några användare än. + Säkerhetsfilter + Inga dolda ord. Lägg till ett ord nedan för att dölja inlägg som innehåller det. + Blockerat innehåll + Filterinställningar + Inga konton har flaggats som spam under denna session. + Skicka + Skicka alla mottagna profilhändelser (kind 0) till ditt lokala relä + Vidarebefordra profiler till lokalt relä + Tillgängligt för denna mottagare: %1$s sats + Betalning misslyckades + Transaktion: %1$s + Betalar via %1$s… + Servern gav inte en URL efter uppladdning + Inställningar + Inga tystade trådar + Tystade trådar + Utseende + Allmänt + Innehåll i flödet + Synliga flikar + Media & data + Sektioner & flöden + Påminnelser + Anslutning + Dirigera via Tor + Dela som bild + Dela som bild-URL + HLS-uppladdning + Dela eller Spara + Kortfilmer + Visa QR-kod för krypterad privat nyckel + Inkludera direktmeddelanden och gruppmeddelanden på fliken Aviseringar. Stäng av för att hålla meddelanden enbart på fliken Meddelanden. + Visa meddelanden + Visa QR-kod för privat nyckel + Signeringsförfrågan avvisad + Kontrollera att signeringsprogrammet har godkänt denna transaktion + Extern signatär returnerade data som är ovanliga för begäran. Det kan finnas en bugg i antingen Amethyst eller signatären. + Signatör saknas + Har signeringsappen avinstallerats? Kontrollera om den är installerad och innehåller det här kontot. Logga ut och in igen om den har ändrats. + Hoppa tillbaka %1$d sekunder + Hoppa framåt %1$d sekunder + Appar + Spam + Antal skräpposthändelser från detta relä + Spammare + Visa två flikar för notiser — Följer (personer du följer) och Alla. Oläst-indikatorn lyser endast för aktivitet från personer du följer. + Dela upp notiser efter Följer + Försöker ta bort privat metadata från mediefiler som stöds innan uppladdning + Ta bort privat metadata + Läser avslutade träningspass från Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) och föreslår att dela dem som ett inlägg. Behörighet begärs endast när du ansluter. + Föreslå träningspass att dela + System + Tema + Mörkt, Ljust eller Systemtema + Detta meddelande försvinner om %1$s + + +%1$d\nsvar + +%1$d\nsvar + + Idag + Anpassad + Skapa din egen + Standard + Dölj din IP från slumpmässiga reläer + Orbot + Full Sekretess + Dölj din IP i alla anslutningar + Intern + Av + Tor/Integritet Förinställningar + Ändra snabbt alla inställningar nedan + Allt utom Media + Dölj din IP från allt utom bilder och videor + DM Reläer + Tvinga Tor att skicka och ta emot DMs + Bilder + Tvinga Tor vid nerladdning av bilder + Mediauppladdningar + Tvinga Tor vid uppladdning av innehåll + Pengatransaktioner + Tvinga Tor på zaps, lightning och cashu överföringar + Ej betrodda Reläer + Tvinga Tor på utgående/inkommande reläer + Nostr Adress Verifiering + Tvinga Tor vid verifiering av NIP-05 adresser + Onion Url/Reläer + Använd Tor för alla .onion adresser + Profilbilder + Tvinga Tor vid inläsning av profilbilder + Betrodda Reläer + Tvinga Tor på alla reläer i dina listor + URL Förhandsvisningar + Tvinga Tor vid inläsning av URL förhandsvisningar + Videor + Tvinga Tor vid nerladdning av videor + Grundläggande + Använd Tor när det krävs av servern + Det gick inte att öppna filen + Inga torrent-appar installerade för att öppna och ladda ner filen. + Händelsen har inte tillräcklig information för att skapa en magnetlänk + Använd den spårade sändaren när du skickar händelser. Visar liveförlopp och status per relä under sändning. + Spårade sändningar + Översätt till + Välj det språk du vill översätta innehållet till. + Översättningar + Betrodda reläer + Reläer du litar på och inte kräver Tor för + Slutförd + Fullständig + Prestanda + Snabb + Förenklad + Enkel + Gränssnittsinställningar + UI läge + Välj stilen för inlägg + Kunde inte skapa en Lightning-faktura innan Zap skickades. Mottagarens Lightning-plånbok skickade följande fel: %1$s + Kunde inte dela bilden, försök igen senare… + Det gick inte att dela videon, försök igen senare… + Otillåten dekryptering + Signatären har inte godkänt den dekryptering som krävs. Aktivera NIP-44-dekryptering i din signeringsapp och försök igen + Sluta följa + Sluta följa den här platsen + Sluta tysta aviseringar + Lossa + Ta bort från profil + Uppladdning avbruten + Uppladdningsfel + Uppladdning av röst misslyckades: %1$s + Misslyckades med att ladda upp röstmeddelandet + NIP-95 stöds ännu inte för röstmeddelanden + %1$d%% drifttid + Aktiv Tor Engine + Använd den interna versionen eller Orbot + Användaren har inte en Lightningadressinställning för att ta emot sats + Användaren %1$s har inte ställt in en blixtfakturaadress för att ta emot satoshis + Försvinnande historik + Begäran om försvinnande skickad + Bättre kvalitet med mindre filstorlek, men inte alla enheter stöder H.265-uppspelning. + Använd H.265/HEVC-codec + Nedladdning av video har startat… + Videospelarens knappar + Videon sparad i telefonens videogalleri + Röstinlägg + Djup + Hög + Neutral + Ingen + Röstsvar + Plånbok + Cashu-plånbok (NIP-60) + Kunde inte läsa in ditt saldo + Plånboksanslut + Amethyst kunde inte dekryptera plånbokens svar — plånboken kanske använder en annan nyckel + + Din plånbok svarade inte inom %1$d sekund. Betalningen kan ha gått igenom ändå — kontrollera din plånbok innan du försöker igen. + Din plånbok svarade inte inom %1$d sekunder. Betalningen kan ha gått igenom ändå — kontrollera din plånbok innan du försöker igen. + + Din Wallet Connect-leverantör returnerade följande fel: %1$s + Din Wallet Connect-leverantör skickade ett svar som Amethyst inte kunde läsa. + Din plånbok svarade med något som Amethyst inte känner igen (%1$s) + Redigera Cashu-plånbok + Kunde inte skapa fakturan + Din plånbok returnerade ingen faktura + Kunde inte nå din plånbok: %1$s + Tidsgränsen för plånboksförfrågan överskreds + + Tidsgränsen för plånboksförfrågan överskreds — %1$d svar avvisades eftersom det signerades med en oväntad nyckel. Ditt relä kanske inte är betrott. + Tidsgränsen för plånboksförfrågan överskreds — %1$d svar avvisades eftersom de signerades med en oväntad nyckel. Ditt relä kanske inte är betrott. + + Kunde inte läsa in transaktioner + Kunde inte läsa in fler transaktioner + Visar ett varningsmeddelande när inlägg har 5 eller fler rapporter från följande + Varna vid rapporter + Lägg till webbbokmärke + Redigera webbbokmärke + Webbbokmärken + Vad tänker du på? + + %1$d aktivitet + %1$d aktiviteter + + Träningspass + Skriv ett meddelande… + Skriv till Relay + Mängden data i byte som skickades till detta relä, inklusive filter och händelser + Zap + Överlämning till betalapp + När författaren publicerar en betalningsmetod som en app på den här telefonen kan öppna (Venmo, Monero, ett IBAN…) kan zap-väljaren erbjuda den. Ett tryck öppnar den appen, som frågar efter beloppet — inget publiceras till reläer, så anteckningens zap-antal ändras inte. + Erbjud författarens betalningsmetoder + Zaps + + Byt namn + Spara diff --git a/commonsUI/src/commonMain/composeResources/values-sw/strings.xml b/commonsUI/src/commonMain/composeResources/values-sw/strings.xml index 9d328c4743..0e85ffab72 100644 --- a/commonsUI/src/commonMain/composeResources/values-sw/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-sw/strings.xml @@ -1783,4 +1783,1182 @@ URL ya msingi ya Explorer API Lipa ankara kutoka kwa DVM Lipa %1$s sats kwa DVM + Kuhusu & Kisheria + Mipangilio ya Akaunti + Ongeza + Ongeza Seva ya Blossom + Ongeza Seva ya NIP-96 + Inapowezesha, Amethyst inaambatanisha lebo ya mteja ya NIP-89 kwenye matukio unayochapisha. + Ongeza lebo ya mteja kwenye matukio yangu + Inaongeza onyo la yaliyomo nyeti kabla ya kuonyesha yaliyomo hii + Yaliyomo Nyeti + Ongeza kwenye Vialamisho vya Umma + Hutumia mfano wa AI uliopo kwenye kifaa kupendekeza marekebisho ya maandishi na mabadiliko ya sauti. + Pendekeza maboresho ya maandishi + Inaweka miunganisho kwenye relays za inbox yako hai kwa arifa za wakati halisi + + Imeunganishwa na relay %1$d ya kikasha + Imeunganishwa na relay %1$d za kikasha + + + Imeunganishwa na relay %1$d + Imeunganishwa na relay %1$d + + Inaunganika kwenye relays za inbox… + Arifa za Amethyst Zinafanya Kazi + Arifa za simu za sauti na video zinazoingia + Simu zinazoingia + %1$s amekubali changamoto yako ya sataranji + Inakuarifu kuhusu matukio ya mchezo wa sataranji + Sataranji + Masasisho ya sataranji + %1$s amesogeza — zamu yako + Inakuarifu wakati ujumbe binafsi unapowasili + Ujumbe Binafsi + Ujumbe mpya + Weka Alama Imesomwa + Inakuarifu mtu anapokutaja au kukununulia kwenye chapisho + %1$s amekutaja + Kutajwa + Kutajwa mapya + Inakuarifu mtu anapojibu chapisho lako + %1$s alijibu chapisho lako + kwa %1$s + Majibu + Majibu mapya + Inakuarifu mtu anapojibu chapisho lako + Majibu + Majibu mapya + Jibu + Arifa wakati chapisho lililopotoka linachapishwa au linashindwa kuchapishwa. + Machapisho yaliyopangwa + Inakuarifu wakati mtu anapokuzap + kwa %1$s + Kutoka kwa %1$s + Zaps Zilizopokelewa + Zaps mpya + Mipangilio ya Programu + Uthibitisho + Ombi la Uthibitisho + Ujuzi wa Mthibitishaji + Mapendekezo ya Mthibitishaji + Kionyeshi cha Sauti + Huhifadhi tukio la rasimu kiotomatiki unapoandika au kuacha kitenzi cha kutunga chenye maandishi ambayo hayajatumwa na kutuma kwa relay zako za kibinafsi za outbox. + Unda rasimu kiotomatiki + Kuogelea kwa Kuzama + Ficha Vipau vya Urambazaji Unapopiga Kitelezi + Onesha Picha + Lisha picha na GIFs kiotomatiki + Cheza Video + Cheza video na GIFs kiotomatiki + Picha ya Wasifu + Onyesha picha za wasifu + Onesha Hakikisho za URL + Onyesha hakikisho za URL kiotomatiki + Cheza Video Kiotomatiki + Cheza video kiotomatiki zinapoonekana kwenye skrini + Haiwezi kuondoa metadata kutoka AVIF: %1$s + Toa Beji + Rudi + Nakili Nakala za Ufunguo + Beji + Uthibitishaji umeshindwa + Biometriki imeshindwa kuthibitisha mmiliki wa simu hii + Biometriki imeshindwa kuthibitisha mmiliki wa simu hii. Hitilafu: %1$s + Zuia + Relay Zilizozuiwa + Amethyst kamwe haitaunganika na relay hizi + Watumiaji Waliozuiwa + Orodha Mpya ya Alama za Kurasa + Metadata ya Orodha ya Alama za Kurasa + Metadata ya orodha za alama za kurasa inaweza kuonekana na mtu yeyote kwenye Nostr. Wanachama wako wa faragha peke yao wanasimbwa. + Vialamisho + Kuongeza + Upau wa Chini wa Urambazaji + Relay za Utangazaji + Relay zinazobobea katika kusukuma dokezo zako kwenye relay zote nyingine, kama sendit.nosflare.com. Amethyst itaongeza relay hii kwenye matukio yote mapya yaliyoundwa nawe + Kivinjari + Vipendwa + Inapakia kupitia wavuti wazi. Gonga kutumia Tor. + Inapakia kupitia Tor. Gonga kutumia wavuti wazi. + + %1$s, tukio %2$d + %1$s, matukio %2$d + + Upakiaji wa picha umeshindwa + Picha iliyochaguliwa haikuweza kupakiwa. Jaribu tena au bandika URL. + Shiriki tukio la kalenda + Fungua kwenye ramani + Fungua kiungo + Inaendelea sasa hivi + %1$s · inaisha %2$s + + Inaanza baada ya dakika %1$d + Inaanza baada ya dakika %1$d + + Onyo wakati tukio unalolishuhudia linakaribia kuanza. + Vikumbusho vya kalenda + Tukio la kalenda + Arifa inatolewa wakati tukio unalolishuhudia linakaribia kuanza. + Tuma vikumbusho + + %1$d dak + %1$d dak + + Vikumbusho vya kalenda + Siku + Mtiririko + Mwezi + Wiki + Pokea + Kamera imezimwa + Kamera imewashwa + Kipaza sauti + Kata simu + Simu inayoingia + Simu ya video inayoingia… + Simu ya sauti inayoingia… + Kimya + Simu + Arifa ya simu inayoendelea + Amethyst inahitaji ufikiaji wa kamera na maikrofoni kuanza simu ya video. Tafadhali zishe katika mipangilio ya programu. + Amethyst inahitaji ufikiaji wa maikrofoni kuanza simu ya sauti. Tafadhali iwezesha katika mipangilio ya programu. + Kataa + Mipangilio ya Simu + Spika + Ondoa kimya + Simu na %1$s + URL ya mrejesho haikupatikana kutoka kwa jibu la %1$s + Ghairi + Tokeni ya Cashu + Inakagua mint… + Haikuweza kukomboa Cashu + Mint ilitoa ujumbe huu wa hitilafu: %1$s + Ilipokelewa + Ilitumwa + Mints zinazofanana + + +%1$d zaidi + +%1$d zaidi + + Mints maarufu + + Inapendekezwa na mtu %1$d mwingine + Inapendekezwa na watu %1$d wengine + + Imehamisha %1$s sat kwenye %2$s. + Hakuna mkoba wa Cashu unaooana uliopatikana kwenye mfumo + + ankara %1$d inayosubiri + ankara %1$d zinazosubiri + + Je, ulipe %1$s sat + hadi %2$s sat kwa ada? + Chapisha ombi la kufuta pendekezo lako la kind:38000 la %1$s. Relay zinazoheshimu NIP-09 zitaondoa. + Imerejesha %1$s sats katika uthibitisho %2$s. + Cashu Imepokelewa + %1$s sats zilitumwa kwenye mkoba wako. (Ada: %2$s sats) + + Fedha zilizohifadhiwa katika mint %1$d ambayo hutumii + Fedha zilizohifadhiwa katika mints %1$d ambazo hutumii + + Inasubiri ankara ilipwe… + + mint %1$d + mints %1$d + + Acha kutuma + Tuma kwenye kifaa + Viwango vya Usalama wa Watoto + Vifaa vya ziada + Sanaa + Vitabu + Mavazi + Vitu vya Kukusanya + Ufundi + Vifaa vya Umeme + Afya na Mazoezi + Chakula + Samani + Nyumbani + Mchanganyiko + Ofisi + Nyingine + Wanyama wa Kipenzi + Michezo + Kila siku + Kila mwezi + Mara moja + Kila wiki + Lipa %1$s kupitia %2$s? + Lipa ankara hii kupitia %1$s? + Huduma ya debit haikukamilisha malipo. + Weka kiasi halali kwa ofa hii. + Inaomba ankara… + Funga majibu yote kwa chapisho hili + Zilizofungwa + Jumuiya + Rasimu ina %1$d baiti; jamii hii inapunguza aina hii hadi baiti %2$d. + Rasimu ina %1$d baiti; jamii hii inapunguza matukio hadi baiti %2$d. + Umeshatuma matukio %1$d ya aina hii leo (kikomo %2$d). + Mipangilio ya Kutunga + Bandari ya kawaida ni 9050 + Relay Zilizounganishwa + Orodha ya sasa ya relay zinazotumika + Asilimia ya miunganiko iliyofaulu kwa relay + Daima + Kamwe + WiFi Isiyo na Kipimo + Ongeza Hati + Ongeza Picha + Ongeza Media + Ongeza Video + Ficha + Onya + Onyesha + Mazungumzo + Inabadilisha GIF inayosogea kuwa video ya MP4 kwa ukubwa mdogo wa faili na uoanifu bora wa kucheza. + Badilisha GIF kuwa MP4 + Imesakinishwa ID ya andiko (@note1) kwa ubao wa kunakili + Maudhui ya dokezo yamenakiliwa kwenye ubao wa kunakili + Imenakiliwa kwenye ubao wa kunakili + Imesakinishwa @npub ya mwandishi kwa ubao wa kunakili + Nakili Ufunguo Wangu wa Siri + Nakili kwenye ubao wa kunakili + Haikuweza kuunda LNUrl kutoka kwa Anwani ya Lightning "%1$s". Angalia mpangilio wa mtumiaji + Haikuweza kukagua faili lililопakuliwa baada ya kupakia: %1$s + Haikuweza kupakua media iliyopakiwa kutoka kwa seva + Haikuweza kupata ankara kutoka kwa %1$s: %2$s + Haikuweza kufungua faili lililosinyazwa + Mkoba haukupatikana + Amethyst haikupata programu yoyote ya mkoba inayounga mkono Nostr Wallet Connect (NWC). +\n\nUnachoweza kufanya: +\n\t1. Thibitisha Usaidizi wa NWC: Hakikisha kuwa programu yako ya mkoba inaoana na Nostr Wallet Connect. +\n\t2. Unda Muunganisho: Nenda kwenye programu yako ya mkoba na unda muunganisho mpya wa NWC. +\n\t3. Unganisha na Amethyst: Mkoba wako kwa kawaida utakupa chaguo tatu: +\n\t\t3.1 Kiungo cha Kiotomatiki: Kitufe cha kufungua na kuunganisha moja kwa moja na Amethyst. Ikiwa ndivyo, bonyeza kitufe hicho, fungua Amethyst na bonyeza hifadhi kwenye skrini mpya. +\n\t\t3.2 Kiungo cha Mkono: URI ya Muunganisho unayoweza kunakili na kubonyeza ikoni ya kubandika kwenye skrini hii kuiingiza moja kwa moja. +\n\t\t3.3 Msimbo wa QR: Mkoba unaunda msimbo wa QR ambao unaweza kuusoma kutoka kwa kitufe cha msimbo wa QR kwenye skrini hii. + + Unda + siku + Eneo Hatari + Giza + Maelezo + Fanya umma + Mazungumzo + Jumuiya + Algoriti za Malisho + Vifurushi vya Kufuata + Mtiririko wa Moja kwa Moja + Soko + Usomaji + Relay za Sanduku la DM + Usitafsiri Kutoka + Lugha zinazoonyeshwa hapa hazitatafsiriwa. Chagua lugha kuiondoa na kuifanya itafsiriwe tena. + Hifadhi kwenye Simu + Inapakua video… + Kumbuka ya Rasimu + Rasimu + Akaunti + Unda + Milisho + Navigeti + Mfumo + Wewe + + siku %1$d + siku %1$d + + + saa %1$d + saa %1$d + + + dakika %1$d + dakika %1$d + + + mwezi %1$d + miezi %1$d + + + wiki %1$d + wiki %1$d + + + mwaka %1$d + miaka %1$d + + Hariri Kalenda + Hariri Tukio la Kalenda + Hariri Jumuiya + Hariri pakiti ya emoji + Hariri orodha ya nyimbo + Hariri Chapisho + Emoji za siri zimehifadhiwa zimesimbwa kwenye relay na zinaonekana kwako peke yako. Zinaonekana kwenye menyu yako ya majibu na kukamilisha ":" kama zile za umma. + Emoji za umma zinaonekana kwa kila mtu na zinaonekana kwenye menyu yako ya majibu na kichaguo cha kukamilisha ":" wakati pakiti hii ipo kwenye orodha yako ya emoji. + Emoji + Simba faili kabla ya kupakia kwa faragha. Seva zingine zinaweza kutokukubali faili zilizosimbwa kwenye akaunti za bure. + Simba faili + Mazungumzo Yanayopotea + Hitilafu + Haikuweza kulipa ankara + Haikuweza kutoa + Imeshindwa kufungua malipo + Haiwezekani kutuma zap + Hitilafu ya kufungua programu ya kusaini + Programu ya kusaini haikupatikana. Angalia kama programu haikufutwa + Hitilafu katika kuchanganua ujumbe wa hitilafu + Hitilafu ya Kuchanganua JSON kutoka kwa %1$s. Angalia mpangilio wa lightning wa mtumiaji + Haiwezi kupata ankara kutoka kwa seva za mpokeaji + Fungua kwenye kivinjari + Haiwezi kucheza video hii + Codec au muundo haukubaliwi kwenye kifaa hiki (%1$s). Jaribu kuifungua kwenye kivinjari chako. + Makosa + Usawazishaji wa Relay + matukio kutoka kwako + matukio kwako + Mzunguko + Kupanda baiskeli + Lishe + Kufunga + Kupanda mlima + Kutafakari + Kupiga makasia + Kukimbia + Nguvu + Kuogelea + Kutembea + Panua + Tarehe ya Kumalizika + Hamisha mipangilio ya relay + Imeshindwa kufuta: %1$s + Imeshindwa kusimba ufunguo wako wa siri + Kushindwa kuhifadhi picha + Imeshindwa kuhifadhi PDF + Imeshindwa kuhifadhi video + Seva nyingi hazikubali faili zilizosimbwa kwenye akaunti za bure. Unaweza kujaribu tena bila usimbaji. + Kupakia kwa usimbaji kumeshindwa + Hitilafu ya kupakia: %1$s + Imeshindwa kupakia media + Imeshindwa kupakia kwa %1$s: %2$s + Ongeza kwenye vipendwa + Inapakia kupitia wavuti wazi. + Inapakia kupitia Tor. + Hivi karibuni + Ondoa kutoka kwenye vipendwa + Programu hiyo bado haijapakiwa. Jaribu tena baada ya muda. + Programu vipendwa + Algoriti za Mlisho Zinazopendwa + Imelipa malipo + Imechapishwa kwenye relay + Imepakia faili + Malisho ya Relay Uipendayo + Relay unazokwenda mara kwa mara kuona Malisho yake ya Kimataifa + Jamii + Algoriti za Mlisho + Milisho + Lebo za Hashi + Vikundi vya Maslahi + Orodha + Maeneo + Seva ya Faili + Chagua seva ya kupakia faili hili + Huficha machapisho kutoka kwa wageni ambayo yalikuwa sawa kabisa mara 5 au zaidi + Chuja spam + Fuata + Fuata tena + Algoriti zote za mlisho zinazopendwa + Karibu Nami + Iliyopangwa + Kote + Orodha ya Ufuatiliaji ya Kawaida + Yafuatayo Yote + Wafuasi Wote wa Mtumiaji + Zangu + Orodha ya Kimya + Kifurushi Kipya cha Ufuatiliaji + Hariri Pakiti ya Kufuata + Metadata ya pakiti ya kufuata inaweza kuonekana na mtu yeyote kwenye Nostr na mara nyingi huchapishwa katika tovuti nyingi kama vifaa vya kuanza kwa watumiaji wapya. + Metadata ya Pakiti ya Kufuata + Vifurushi vya Kufuata + Orodha Mpya ya Ufuatiliaji + Hariri Orodha + Mtindo wa Matunzio ya Wasifu + Chagua mtindo wa matunzio + Klasiki + Ya Kisasa + Chapisho la Mahali Peke Yake + Wafuasi wa mahali hilo tu ndio watakaokiona. Wafuasi wako wa kawaida hawataiona. + %1$s imefadhiliwa kati ya lengo la %2$s sats + s + Yaliyomo haya yamebadilika. Mwandishi huenda hakuyapata au kuyaidhinisha mabadiliko + Hii inamaanisha nini? + Yaliyomo haya ni sawa tangu chapisho + Habari %1$s, je, hii bado inapatikana? + Maneno Yaliyofichwa + Huacha machapisho kutoka kwa malisho ya jamii wakati jamii inachapisha hati ya sheria za NIP-9B na tukio lingeweza kulishindwa. Haina athari wakati jamii haina sheria zilizopangwa. + Ficha machapisho yanayokiuka sheria za jamii + Ficha Nywila + Inapakia %1$s (%2$d kati ya %3$d) + Kila kitu + Ombi Baya - Seva haiwezi au haitaki kushughulikia ombi. + Hauruhusiwi - Mtumiaji hana vitambulisho sahihi vya uthibitishaji + Malipo Yanahitajika - Seva inahitaji malipo kukamilisha ombi + Imekatazwa - Mtumiaji hana haki za ufikiaji za kutoa ombi + Haikupatikana - Seva haiwezi kupata anwani iliyoombwa + Njia Hairuhusiwi - Seva inasaidia njia ya ombi, lakini si rasilimali lengwa + Haikubaliwi - Seva haipati maudhui yoyote yanayokidhi ombi. + Uthibitishaji wa Wakala Unahitajika - Mtumiaji hana vitambulisho sahihi vya uthibitishaji + Muda wa Ombi Umekwisha - Seva ilimalizia wakati ikingoja mtu mwingine + Mgongano - Seva haiwezi kutimiza ombi kwa sababu kuna mgongano na rasilimali + Imeondolewa - Maudhui yaliyoombwa yamefutwa kabisa kwenye seva na hayatarudishwa + Urefu Unahitajika - Seva inakataa ombi kwa sababu inahitaji uainishaji + Sharti Imeshindwa - Masharti ya ombi katika sehemu za kichwa ambazo seva haikidhi + Mzigo Mkubwa Sana - Ombi ni kubwa kuliko mipaka iliyoainishwa na seva, na seva inakataa kulishughulikia + URI Ndefu Sana - Url iliyoombwa na mteja ni ndefu sana kwa seva kushughulikia. + Aina ya Media Haijasaidiwa - Ombi linatumia muundo wa media ambao seva haujasaidia + Kipindi Hakiridhishi - Seva haiwezi kutimiza thamani iliyoonyeshwa katika sehemu ya Range ya ombi. + Matarajio Yameshindwa - Seva haiwezi kukidhi mahitaji yaliyoonyeshwa katika sehemu ya Expect ya kichwa cha ombi + Uboreshaji Unahitajika - Seva inakataa kushughulikia ombi kwa kutumia itifaki ya sasa isipokuwa mteja aboreshe hadi itifaki nyingine. + Hitilafu ya Ndani ya Seva - Seva imekutana na hitilafu isiyotarajiwa na haiwezi kukamilisha ombi + Haijatekelezwa - Seva haiwezi kutimiza ombi au haitambui njia ya ombi + Lango Baya - Seva inafanya kazi kama lango na ilipata jibu lisilo sahihi kutoka kwa mwenyeji + Huduma Haipatikani - Hii mara nyingi hutokea seva inapozidiwa au iko chini kwa matengenezo + Muda wa Lango Umekwisha - Seva ilikuwa ikifanya kama lango au wakala na ilimaliza wakati, ikingoja jibu + Toleo la HTTP Halijasaidiwa - Seva haijasaidia toleo la HTTP katika ombi + Tofauti Inajadiliana Pia - Seva ina hitilafu ya usanidi wa ndani + Hifadhi Haitoshi - Seva haina hifadhi ya kutosha kushughulikia ombi kwa mafanikio + Kitanzi Kimegunduliwa - Seva inagundua kitanzi kisichokwisha wakati wa kushughulikia ombi + Uthibitishaji wa Mtandao Unahitajika - Mteja lazima athibitishwe kupata ufikiaji wa mtandao + Tabia Haramu + Picha imesave kwenye galeria + Uigaji + Relay za Sanduku la Ndani + Kiasi kibaya cha ankara (%1$s sats) kutoka kwa %2$s. Kinapaswa kuwa %3$s + Relay za Kielezo + Relay zinazobobea katika kuhifadhi metadata na orodha za relay za kila mtu, kama purplepag.es. Amethyst itatumia relay hizi kupata watumiaji ambao hawako kwenye orodha zako. + Seti Mpya ya Maslahi + Badilisha jina + Seti za Hashtag + Ufunguo usiofaa + Ufunguo batili: %1$s + Anwani batili + Amethyst ilipokea URI ya kufungua lakini uri hiyo ilikuwa batili: %1$s + Haiwezekani kunukuu kumbuka ya rasimu + Haiwezekani kuitikia kumbuka ya rasimu + Haiwezekani kujibu kumbuka ya rasimu + Haiwezekani ku-zap kumbuka ya rasimu + Ufunguo unahitajika + Relay za KeyPackage + Relay ambapo MLS KeyPackages zako zimechapishwa (MIP-00). Watumiaji wengine wanaletea KeyPackages hizi kukualika kwenye mazungumzo ya kikundi cha Marmot. Ingiza kati ya relay 1–3 zinazokubali matukio ya KeyPackage kutoka kwako na kuruhusu usomaji wa umma. + Seti ya Beji Zilizokubaliwa + Utangulizi wa Safari + Usomaji wa Safari + Tukio la Safari + Mapendekezo ya Programu + Miadi + Programu + RSVP ya Miadi + Kichwa cha Sauti + Wimbo wa Sauti + Podcasts Zilizoandikwa + Tuzo za Beji + Ufafanuzi wa Beji + Data ya Blob + Vichwa vya Blob + Relay Zilizozuiwa + Blogu + Uthibitisho wa Blossom + Seva za Blossom + Orodha ya Alamisho + Relay za Utangazaji + Kalenda + Ufafanuzi wa Chaneli + Ficha Ujumbe wa Chaneli + Orodha ya Chaneli + Ujumbe wa Chaneli + Metadata ya Chaneli + Kimya Mtumiaji wa Chaneli + Uthibitisho wa Sataranji + Changamoto za Sataranji + Ofa ya Sare ya Sataranji + Kukubali Mchezo wa Sataranji + Mwisho wa Mchezo wa Sataranji + Michezo ya Sataranji + Hatua ya Sataranji + Matangazo + Maoni + Ufafanuzi wa Jumuiya + Orodha ya Jumuiya + Chapisho la Jumuiya + Kadi ya Mawasiliano + Miadi ya Siku + Mafutio + Faili la DM + Ujumbe wa DM + Relay za DM + Rasimu + Ombi la Maudhui ya DVM + Jibu la Maudhui ya DVM + Hali ya DVM + Ombi la Mtumiaji wa DVM + Jibu la Mtumiaji wa DVM + Marekebisho + Orodha ya Mifuko ya Emoji + Mifuko ya Emoji + Mazungumzo ya Muda Mfupi + Vyumba vya Mazungumzo vya Muda Mfupi + Podcasts Zinazopendwa + Relay Zinazopendelewa + Vichwa vya Faili + Seva za Faili + Orodha ya Wanaofuatwa + Mifuko ya Kufuata + Ufuatiliaji wa Geohash + Suala la Git + Kiraka cha Git + Jibu la Git + Hazina ya Git + Ufuatiliaji wa Hashtag + Mambo Muhimu + Uthibitisho wa Http + Orodha ya Index Relay + Mazungumzo ya Moja kwa Moja + Mtiririko wa Moja kwa Moja + Data ya Matibabu + Chumba cha Mkutano + Nafasi ya Mkutano + Orodha ya Kucheza Muziki + Wimbo wa Muziki + Orodha ya Kimya + Alamisho Zenye Majina + Seva za Nests + DMs za NIP-04 + Muunganiko wa Nostr + Maelezo + Ombi la NWC + Jibu la NWC + Orodha ya Alamisho ya Zamani + Relays za Sanduku la Kutuma + Lipa Kwa + Orodha za Watu + Picha + Pini + Kipindi cha Podcast + Onyesho la Podcast + Kura + Jibu la Kura + Relay za Kibinafsi + Zaps za Kibinafsi + Wasifu + Beji za Wasifu + Matunzio ya Wasifu + Relay za Wakala + Ujumbe wa Umma + Majibu + Uthibitisho wa Relay + Ugunduzi wa Relay + Tangazo la Mfuatiliaji wa Relay + Seti ya Relay + Ripoti + Machapisho Mapya + Machapisho Mapya (16) + Uwepo wa Chumba + Muhuri + Tafuta Relay + Maoni ya Torrent + Watoa Huduma Wanaoaminiwa + Relay Zinazoaminiwa + Futa Mtumiaji + Mipangilio ya Mtumiaji + Hali ya Mtumiaji + Ujumbe wa Sauti + Jibu la Sauti + Amsha + Alamisho la Wavuti + Mazoezi + Malengo ya Zap + Kura ya Zap + Ombi la Zap + Inajulikana + Mapendeleo ya Kuonyesha Lugha + Kwa kila jozi ya lugha iliyotafsiriwa, chagua ni lugha ipi ya kuonyesha kwanza. + Alionekana mwisho miaka %1$s iliyopita + Alionekana mwisho sasa hivi + Hajaonekana kamwe + Alionekana mwisho tarehe %1$s (miaka %2$s iliyopita) + Ondoka + Mwanga + Mtiririko wa Moja kwa Moja + Relay za Ndani + Orodha ya relay zinazoendesha kwenye kifaa hiki. + Ingia kwa kutumia ufunguo wa Faragha ili uweze kuboresha machapisho + Ingia kwa kutumia Ufunguo wa Faragha ili uweze Kufuata + Unatumia maneno ya umma na funguo za umma ni za kusoma tu. Ingia kwa kutumia ua Faragha ili kuweza kuficha neno au sentensi + Ingia kwa kutumia Ufunguo wa Faragha ili uweze kujibu + Ingia kwa kutumia ufunguo wa Faragha ili uweze kutuma Zaps + Unatumia maneno ya umma na maneno ya umma ni ya kusoma tu. Ingia kwa kutumia maneno ya Faragha ili kuweza kuonyesha neno au sentensi + Unatumia maneno ya umma na maneno ya umma ni ya kusoma tu. Ingia kwa kutumia maneno ya Faragha ili kuweza kujisajili kwa matukio + Ingia kwa kutumia Ufunguo wa Faragha ili uweze Kuacha Kufuata + Unatumia maneno ya umma na maneno ya umma ni ya kusoma tu. Ingia kwa kutumia maneno ya Faragha ili kuweza kupakia + Ingia kwa kutumia ufunguo wa Faragha ili kupenda Machapisho + Video + d + Pakiti Zangu za Emoji + Inaongeza %1$s… + Mamlaka za msimamizi zimetolewa + Mamlaka za msimamizi zimefutwa + Imeshindwa kuongeza %1$s: %2$s + Imeshindwa kuunda kikundi: %1$s + Imeshindwa kutoa mamlaka za msimamizi: %1$s + Imeshindwa kuacha kikundi: %1$s + Imeshindwa kuondoa mwanachama: %1$s + Imeshindwa kufuta mamlaka za msimamizi: %1$s + Imeshindwa kubadilisha: %1$s + Kikundi cha MLS + Maelezo ya kikundi yamebadilishwa + + mwanachama %1$d + wanachama %1$d + + Mwanachama ameondolewa + + ujumbe %1$d + ujumbe %1$d + + Si mwanachama wa kikundi hiki + kosa lisilojulikana + Media imeongezwa + Media imeongezwa kwenye Matunzio yako ya Wasifu + Upakuaji wa maudhui umeanza… + Seva za Media + Media ni kubwa sana kwa NIP-95 + Ingiza marudio ya ujumbe kwanza + Haiwezi Kupakia + Somo + Metadata haikuweza kuondolewa + Imeshindwa kuondoa metadata ya kibinafsi kutoka kwa midia. Upakiaji umeghairiwa. + Alamisho zimehamishwa kwa mafanikio + Mpangilio wa lightning umepotea + Chaguo Zaidi + Hamia kwa Faragha + Hamia kwa Umma + Pakia picha ya jalada + Chagua picha ya mraba kuwa sanaa ya orodha hii ya nyimbo. + + +%1$d wimbo zaidi + +%1$d nyimbo zaidi + + + wimbo %1$d + nyimbo %1$d + + + wimbo %1$d + nyimbo %1$d + + Inapakia jalada na kuchapisha. Hii itaendelea hata ukiacha skrini. + Pakia faili la sauti + Chagua MP3, WAV, au FLAC. Itapakiwa kwenye seva yako ya media ukihifadhi. + Pakia picha ya jalada + Chagua picha ya mraba kuwa sanaa ya wimbo huu. + Inapakia jalada na sauti na kuchapisha. Hii itaendelea hata ukiacha skrini. + Sauti imewashwa. Bonyeza kulegeza + Walemavu. Bonyeza kuwasha sauti + Orodha Zangu + Jina linahitajika + Mipangilio ya Namecoin + Utambulisho + Soma funguo yako ya umma + Ujumbe + Badilishana ujumbe na nApplets nyingine + Vitendo vya kibodi + Funga njia za mkato za kibodi + Arifa + Kukuonyesha arifa + Relay + Soma, na usaini & uchapishe matukio yako + Mtandao + Pata rasilimali za wavuti na Blossom + Hifadhi + Hifadhi yake ya kibinafsi + Mandhari + Linganisha rangi za programu yako + Upakiaji + Pakia faili kwenye seva yako ya media + Malipo + Lipa ankara za Lightning + nApplet hii inataka kusoma funguo yako ya umma. + nApplet hii inataka kusoma wasifu wako na data ya akaunti. + nApplet hii inataka kukuonyesha arifa. + + nApplet hii inataka kulipa ankara ya Lightning ya sat %1$d. + nApplet hii inataka kulipa ankara ya Lightning ya sats %1$d. + + nApplet hii inataka kusaini na kuchapisha tukio la aina %1$d kwa niaba yako. + nApplet hii inataka kutuma tukio lililofichwa kwa niaba yako. + nApplet hii inataka kusaini na kuchapisha tukio la aina %1$d kwa niaba yako: + nApplet hii inataka kusoma matukio kutoka kwa relay zako. + nApplet hii inataka kupata rasilimali ya wavuti. + Tovuti hii inataka kusaini tukio la aina %1$d kwa kutumia funguo yako ya Nostr. + nApplet hii inataka kutumia hifadhi yake ya kibinafsi. + nApplet hii inataka kupakia faili kwenye seva yako ya media. + Haikuweza kutuma ujumbe + Nyamazisha mzungumzaji huyu + Rejesha mzungumzaji huyu + Ondoka + Imeshindwa kuweka alama ya chumba kama kilichofungwa. Inaondoka hata hivyo — chumba kitafungwa kiotomatiki. + + msikilizaji %1$d + wasikilizaji %1$d + + Shukisha mkono + Zima maikrofoni + Washa maikrofoni + Zima sauti + Imeshindwa kuhifadhi orodha yako ya seva za nest. Jaribu tena. + Nest — Moja kwa Moja + Inaweka sauti ikicheza wakati chumba kiko wazi. + Nest imeunganishwa + Simama + Gonga kurudi. + Fuata + Nyamazisha + Acha kufuata + Ondoa unyamazishaji + ameacha nest + amejiunga kama hadhira + amepanda jukwaani + ameinua mkono + anazungumza + Inua mkono + Washa sauti + Imehifadhiwa kama tukio la aina-10112 linaloweza kubadilishwa ili wateja wengine waweze kusoma upendeleo wako. + Seva zako + Mapendekezo yaliyojengwa ndani ambayo unaweza kuongeza kwenye orodha yako kwa kubonyeza mara moja. + Seva zinazopendekezwa + Seva za Nest + kamwe + Beji Mpya + Kalenda Mpya + Tukio Jipya la Kalenda + Jumuiya Mpya + Wasimamizi + Watumiaji waliozuiwa + Maoni ya jamii (1111) + Makala ndefu (30023) + Chapisho la picha (20) + Maandishi mafupi (1) + Video fupi (22) + Chapisho la video (21) + Aina za matukio zinazoruhusiwa + Ukubwa wa juu wa tukio duniani (hiari) + Sheria zinazoweza kuthibitishwa (hiari) + Lango la mtandao wa imani (hiari) + Pakiti mpya ya emoji + Lengo Jipya + Makala Mpya + Orodha mpya ya kucheza + Wimbo mpya wa muziki + Bidhaa Mpya + Maombi Mapya + Nyuzi Mpya + Mazoezi Mapya + + Rasilimali %1$d imefungwa pamoja + Rasilimali %1$d zimefungwa pamoja + + Programu za Blossom hazikupatikana. Tafadhali sakinisha programu ya Blossom ya ndani kuona faili hili + Haiwezi kufungua viungo vya Blossom + Hakuna programu ya kamera iliyopatikana kwenye kifaa hiki + Hakuna Anwani ya Lightning Imewekwa + Hakuna programu iliyopatikana kushughulikia malipo haya. Tafadhali sakinisha mkoba unaooana nayo. + Hakuna programu iliyosakinishwa kushughulikia malipo ya %1$s. Tafadhali sakinisha mkoba unaooana nayo. + Hakuna aina za majibu zilizochaguliwa. Bonyeza kwa muda mrefu kubadilisha + Hakuna mpangilio wa mwitikio + Hakuna Mikoba iliyopatikana kulipa ankara ya lightning. Tafadhali sakinisha mkoba wa Lightning kutumia zap + Hakuna Mikoba iliyopatikana kulipa ankara ya lightning (Hitilafu: %1$s). Tafadhali sakinisha mkoba wa Lightning kutumia zap + Hakuna Usanidi wa Kiasi cha Zap. Bonyeza kwa Muda mrefu ili kubadilisha + Arifa + Makundi + Uwasilishaji + Onyesho ndani ya programu + sasa + Sanaa ya Nowhere + Tone la Nowhere + Tukio la Nowhere + Jukwaa la Nowhere + Ukusanyaji wa Fedha wa Nowhere + Tovuti ya Nowhere + Ujumbe wa Nowhere + Ombi la Nowhere + Duka la Nowhere + Uchi + Haiwezi kuunda rejeleo la tukio + Hakuna pubkey ya mpokeaji kwenye kumbukumbu + Nutzap ni za hadharani na zingefichua kumbukumbu hii ya siri. Tumia zap ya Lightning badala yake. + Nutzap imeshindwa + + Tuma sats %1$s, mgawanyo %2$d + Tuma sats %1$s, migawanyo %2$d + + Mfumo wa msururu wa Bitcoin haujasanidiwa + Haikuweza kutangaza muamala + Haikuweza kujenga muamala + Haikuweza kupakia salio lako la Bitcoin + Malipo yametumwa, lakini risiti ya zap haikuweza kuchapishwa + + Malipo yametumwa (risiti %1$d kati ya %2$d imechapishwa), lakini risiti inayofuata haikuweza kuchapishwa + Malipo yametumwa (risiti %1$d kati ya %2$d zimechapishwa), lakini risiti inayofuata haikuweza kuchapishwa + + Sehemu ya mpokeaji iko chini ya kiwango cha chini + Haikuweza kusaini muamala + ~dakika 10 + ~dakika 30 + ~saa 1 + Haraka + Kawaida + Polepole + + Migawanyo miongoni mwa mpokeaji %1$d + Migawanyo miongoni mwa wapokeaji %1$d + + + Inaruka mpokeaji %1$d wa anwani ya Lightning pekee — on-chain inahitaji funguo ya umma ya Nostr kupata anwani. + Inaruka wapokeaji %1$d wa anwani ya Lightning pekee — on-chain inahitaji funguo ya umma ya Nostr kupata anwani. + + + Tumia mgawanyo wa Zap wa njia %1$d wa kumbuka hii + Tumia mgawanyo wa Zap wa njia %1$d wa kumbuka hii + + inatangaza + inajenga muamala + inapakia salio + inachapisha risiti + inasaini + Kura moja tu kwa mtumiaji inaruhusiwa kwenye aina hii ya kura + Fungua majibu yote kwa chapisho hili + Wazi + Bandari ya Socks ya Orbot + Kichunguzi cha Bitcoin (OTS) + Kuna uthibitisho kwamba chapisho hili lilisainiwa kabla ya %1$s. Uthibitisho uliwekwa muhuri katika blockchain ya Bitcoin tarehe na wakati huo. + Uthibitisho wa Muda + Relay za Sanduku la Nje + Nenosiri linahitajika + Simamisha + Lipa + Ujumbe kutoka kwa %1$s + Malengo ya Malipo + Ongeza anwani za malipo kwa mitandao tofauti (k.m. bitcoin, lightning, ethereum). + PDF imehifadhiwa kwenye Downloads/Amethyst + Metadata ya orodha za kufuata inaweza kuonekana na mtu yeyote kwenye Nostr. Wanachama wako wa siri peke yao wamesimbwa kwa njia ya fiche. + Metadata ya Orodha ya Kufuata + Picha + Piga pini juu + Bandika kwenye Wasifu + Cheza + + kipindi %1$d + vipindi %1$d + + Waandishi wa kura hawawezi kupiga kura kwenye kura zao wenyewe. + Kura imefungwa kwa kura mpya + Chaguzi nyingi + Chaguo %1$s + Chaguo moja + Haiwezekani kupiga kura + Kura + Tuma + + Chapisho hili lina zaidi ya hashtagi %1$d + Chapisho hili lina zaidi ya hashtagi %1$d + + Hakiki Picha ya Kadi ya %1$s + Chaguzi za Faragha + Sera ya Faragha + <Haiwezi kuifanyia utawala ujumbe binafsi uliofichwa>\n\nUlinukuliwa katika mazungumzo ya faragha/yaliyofichwa kati ya %1$s na %2$s. + Relay za Sanduku la DM + Ingiza kati ya relay 1–3 kutumikia kama sanduku lako la kibinafsi. Wengine watatumia relay hizi kutumia DM kwako. Relay za Sanduku la DM zinapaswa kukubali ujumbe wowote kutoka kwa mtu yeyote, lakini kukuruhusu wewe tu kupakua. Chaguo nzuri ni:\n - inbox.nostr.wine (kulipwa)\n - auth.nostr1.com (bure)\n - you.nostr1.com (relay za kibinafsi - kulipwa) + Mtumiaji anapokea DM kwenye relay hizi + Ujumbe wa Siri + Fanya faragha: funga kumbuka kwa watumiaji waliotarajiwa tu + Majibu ya kumbuka ya faragha daima yanabaki faragha + Inaonekana kwa + Relay za Nyumbani za Kibinafsi + Ingiza kati ya relay 1–3 kuhifadhi matukio ambayo hakuna mtu mwingine anaweza kuona, kama Rasimu zako na/au mipangilio ya programu. Kwa kawaida, relay hizi ni za ndani au zinahitaji uthibitisho kabla ya kupakua maudhui ya kila mtumiaji. + Lugha chafu / Maneno yenye chuki + Wasifu + Beji za wasifu + Mapendekezo ya Programu + Beji za Wasifu + Malisho ya Wafuataji + Malisho ya Zap Iliyopokelewa + Mwonekano wa Wasifu + wasifu + Pendekeza Hariri + Relay za Wakala + Relay za mkusanyaji ambazo programu lazima itumie kupakua malisho yako, kama filter.nostr.wine. Hii inabadilisha mfano wa sanduku la nje na itafanya programu iunganike na relay zilizo kwenye orodha zako tu. + Mazungumzo ya Umma + Mazungumzo ya umma yanaweza kuonekana na kila mtu kwenye Nostr na mtu yeyote + anaweza kushiriki. Ni mazuri kwa jamii wazi kuhusu mada maalum. + Udhibiti unaweza kufanywa kwa kufuta machapisho kwenye relay zake + Ingiza kati ya relay 1–3 zinazohifadhi kikundi hiki. + Wateja wa Nostr hutumia mipangilio hii kujua mahali pa kupakua ujumbe na kutuma ujumbe wako. + Metadata ya Mazungumzo ya Umma + Mazungumzo ya Umma + Relay za Sanduku la Nje/Nyumbani za Umma + Aina hii ya relay huhifadhi maudhui yako yote. Amethyst itatuma machapisho yako hapa na wengine watatumia relay hizi kupata maudhui yako. Ingiza kati ya relay 1–3. Zinaweza kuwa relay za kibinafsi, relay za kulipwa au relay za umma. + Mtumiaji anachapisha maudhui yake kwenye relay hizi + Ujumbe wa Umma + Relay za Sanduku la Ndani la Umma + Aina hii ya relay hupokea majibu yote, maoni, mapendo na zaps kwa machapisho yako. Zinaweza kuwa relay za kulipwa au za bure. Mipaka iliyowekwa na opereta wa relay inaweza kupunguza arifa unazopokea kwa wema na ubaya. Kwa mfano, ikiwa unashambuliwa na barua taka za maoni, relay za kulipwa zinaweza kuchuja barua taka. Ingiza kati ya relay 1–3. + Mtumiaji anapokea arifa kwenye relay hizi + ID ya Andiko + Futa + Nyamazisha mada + Shiriki + Shiriki Kiungo cha Kivinjari + Ondoa unyamazishaji wa mada + Mwitikio + Mwitikio + Safu ya Majibu + Soma kutoka kwa Relay + Kiasi kwa baiti kilichopokelewa kutoka kwa relay hii, ikijumuisha vichujio na matukio + Mtumiaji wa kusoma tu + Bonyeza na ushikilie kurekodi ujumbe + Mazungumzo ya Relay + Mazungumzo ya relay ni vikundi vya mazungumzo vinavyodhibitiwa na relay yao ya nyumbani. + Yanaweza kuonekana na kila mtu kwenye Nostr na mtu yeyote anaweza kushiriki. + Ni mazuri kwa jamii wazi kuhusu mada maalum. Baadhi ya vikundi hivi ni vya muda mfupi + na hivyo ujumbe wa mazungumzo huisha baada ya muda + Mazungumzo ya Relay + Matukio + Aina + Watumiaji + Mipangilio + Mipangilio ya Relay + orodha za outbox + Usanidi wa Relays + Jaza & tuma Zap + Tuma Zap + Jaza %1$s sats kwa %2$s na zap %3$s %4$s sats · ada ≈ %5$s sats + Ondoa + Ondoa kutoka kwenye Vialamisho vya Umma + jibu hapa.. + Taarifa: + + Omba Kufutwa + Ombi la Kutoweka + Imeshindwa kuweka upya hali ya Marmot: %1$s + Weka upya Hali ya Marmot + Hali ya Marmot imewekwa upya. + Jaribu tena + Orodha za kalenda + Kalenda + Gundua + Nyumbani + Ingiza Wanaofuatwa + Ujumbe + Orodha za kucheza + Muziki + Arifa + Vipindi + Podikasti + Panga chapisho + Ghairi upangaji + Machapisho yaliyopangwa yanaweza kutochapishwa mpaka ufungue programu tena. Machapisho yaliyopangwa ya akaunti nyingine hayatawaka wakati akaunti hii iko hai. Washa kudumu katika Mipangilio → Mapendeleo ya UI kwa upangaji wa nyuma wa kuaminika. + Machapisho yaliyopangwa yanaweza kutochapishwa mpaka ufungue programu tena. Washa kudumu katika Mipangilio → Mapendeleo ya UI kwa upangaji wa nyuma ya kuaminika. + Machapisho yaliyopangwa + Tuma sasa + %1$s · ndani ya %2$s + %1$s · %2$s iliyopita + Kesho + Hitilafu: %1$s + Kitambulisho cha kumbuka kimenakiliwa + + Umetoka · chapisho %1$d lililopangwa limefutwa + Umetoka · machapisho %1$d yaliyopangwa yamefutwa + + Umetoka + + Una chapisho %1$d lililopangwa ambalo bado halijachapishwa. Kutoka kutafuta kufuta kabisa. + Una machapisho %1$d yaliyopangwa ambayo bado hayajachapishwa. Kutoka kutafuta kufuta kabisa. + + Chapisho lililopotoka limeshindwa + Chapisho lililopotoka limechapishwa + + kwa relay %1$d + kwa relay %1$d + + Imeghairiwa + Imeshindwa + Imepangwa + Inatuma… + Imetumwa + + · %1$d inakuja ndani ya saa 1 + · %1$d zinakuja ndani ya saa 1 + + + %1$d imepangwa foleni + %1$d zimepangwa foleni + + Chaguo nzuri ni:\n%1$s + Relay za Utafutaji + Relay za Utafutaji + Orodha ya relay za kutumia wakati wa kutafuta maudhui au watumiaji. Kuweka alama na utafutaji havitafanya kazi ikiwa hakuna chaguo zinazopatikana. Hakikisha zinatekeleza NIP-50. + matukio yanayoweza kutafutwa + Ufunguo wa siri (nsec) umeinakiliwa kwenye ubao wa kunakili + Bado hujazuia watumiaji wowote. + Vichujio vya Usalama + Hakuna maneno yaliyofichwa. Ongeza neno hapa chini ili kuficha machapisho yanayolihusisha. + Maudhui yaliyozuiwa + Mapendeleo ya uchujaji + Hakuna akaunti zilizobainishwa kama spam katika kipindi hiki. + Tuma + Tuma matukio yote ya wasifu yaliyopokelewa (kind 0) kwenye relay yako ya ndani + Peleka wasifu kwenye relay ya ndani + Inayoweza kutumika kwa mpokeaji huyu: %1$s sats + Malipo yameshindwa + Muamala: %1$s + Inalipa kupitia %1$s… + Seva haikutoa URL baada ya kupakia + Mipangilio + Hakuna nyuzi zilizonyamazishwa + Nyuzi zilizonyamazishwa + Shiriki kama Picha + Shiriki kama URL ya Picha + Pakia HLS + Shiriki au Hifadhi + Mafupi + Onyesha msimbo wa QR wa ufunguo wa siri uliofichwa + Jumuisha ujumbe wa moja kwa moja na wa kikundi kwenye kichupo cha Arifa. Zima ili kuweka ujumbe kwenye kichupo cha Ujumbe pekee. + Onyesha Ujumbe + Onyesha msimbo wa QR wa ufunguo wa siri + Ombi la kusaini limekataliwa + Hakikisha programu ya kusaini imeidhinisha muamala huu + Msimamizi wa nje alirejesha data ya ajabu kwa ombi hili. Huenda kuna hitilafu katika Amethyst au Msimamizi. + Mtuaji sahihi hajaonekana + Je, programu ya Utiaji sahihi iliondolewa? Angalia ikiwa programu ya utiaji sahihi imesakinishwa na ina akaunti hii. Ondoka kisha Uingie tena ikiwa programu ya utiaji sahihi imebadilika. + Ruka nyuma sekunde %1$d + Ruka mbele sekunde %1$d + Programu + Barua taka + Idadi ya matukio ya utumaji taka yanayotoka kwenye usambazaji huu + Wahasibu + Onyesha kichupo kimoja cha arifa — Wanaofuatwa (watu unaowasiliana) na Kila Mtu. Kiashiria cha kusomwa kinawaka tu kwa shughuli kutoka kwa watu unaowasiliana. + Gawanya arifa kwa Wafuatiliaji + Inajaribu kuondoa metadata ya kibinafsi kutoka kwa faili za midia zinazotumika kabla ya kupakia + Ondoa metadata ya kibinafsi + Inasoma mazoezi yaliyokamilika kutoka Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) na inapendekeza kuyashiriki kama chapisho. Ruhusa inaombwa tu unapounganisha. + Pendekeza mazoezi ya kushiriki + Mfumo + Mandhari + Mada ya Giza, Mada ya Mwanga, au Mada ya Mfumo + Ujumbe huu utaondoka katika %1$s + + +%1$d\njibu + +%1$d\nmajibu + + Leo + Maalum + Tengeneza yako mwenyewe + Kawaida + Ficha IP yako kutoka kwa relays za nasibu + Faragha Kamili + Ficha IP yako katika miunganisho yote + Ya Ndani + Imezimwa + Mipangilio ya Awali ya Tor/Faragha + Badilisha haraka mipangilio yote hapa chini + Yote Isipokuwa Midia + Ficha IP yako kutoka kila kitu, isipokuwa picha na video + Lazimisha Tor kutuma na kupokea DM + Picha + Lazimisha Tor wakati wa kupakia picha + Upakiaji wa Midia + Lazimisha Tor wakati wa kupakia maudhui + Shughuli za Pesa + Lazimisha Tor kwenye zaps, lightning na uhamishaji wa cashu + Relays Zisizo na Imani + Lazimisha Tor kwenye relays za outbox/inbox + Uthibitishaji wa Anwani ya Nostr + Lazimisha Tor wakati wa kuthibitisha anwani za NIP-05 + Url/Relays za Onion + Tumia Tor kwa url yoyote ya .onion + Picha za Wasifu + Lazimisha Tor wakati wa kupakia picha za wasifu + Relays Zenye Imani + Lazimisha Tor kwenye relays zote kwenye orodha zako + Maonyesho ya URL + Lazimisha Tor wakati wa kupakia maonyesho ya url + Video + Lazimisha Tor wakati wa kupakia video + Msingi + Tumia Tor inapohitajika na seva + Imeshindwa kufungua faili + Hakuna programu za torrent zilizosanikishwa kufungua na kupakua faili. + Tukio halina taarifa za kutosha kuunda kiungo cha sumaku + Tumia mtangazaji anayefuatiliwa wakati wa kutuma matukio. Inaonyesha maendeleo ya moja kwa moja na hali ya kila relay wakati wa kutangaza. + Matangazo yanayofuatiliwa + Tafsiri Kwenda + Chagua lugha ya kutafsiri maudhui. + Tafsiri + Relay Zinazoaminiwa + Relay unazozaamini ambazo hazihitaji muunganisho wa Tor + Kamili + Utendaji + Iliyorahisishwa + Mapendeleo ya UI + Hali ya UI + Chagua mtindo wa chapisho + Haiwezi kuunda ankara ya lightning kabla ya kutuma zap. Mkoba wa lightning wa mpokeaji ulituma hitilafu ifuatayo: %1$s + Haiwezekani kushiriki picha, tafadhali jaribu tena baadaye… + Haiwezekani kushiriki video, tafadhali jaribu tena baadaye… + Usimbuaji Uisoidhinishwa + Mtuaji sahihi hakuidhinisha usimbuaji unaohitajika ili kutekeleza operesheni hii. Washa usimbuaji NIP-44 kwenye programu yako ya utiaji sahihi kisha ujaribu tena + Acha kufuata + Ondoa pini + Ondoa kubandika kutoka Wasifu + Upakiaji umeghairiwa + Hitilafu ya Upakiaji + Upakiaji wa sauti umeshindwa: %1$s + Imeshindwa kupakia ujumbe wa sauti + NIP-95 haijatarajiwa kwa ujumbe wa sauti bado + %1$d%% wakati wa uendeshaji + Injini ya Tor Inayofanya Kazi + Tumia toleo la ndani au Orbot + Mtumiaji hana anwani ya umeme iliyoandaliwa kupokea sati + Mtumiaji %1$s hana anwani ya lightning iliyowekwa kupokea sats + Historia ya Kutoweka + Ombi la kutoweka limetumwa + Ubora bora kwa ukubwa mdogo wa faili lakini si vifaa vyote vinavyounga mkono uchezaji wa H.265. + Tumia Codec ya H.265/HEVC + Upakuaji wa video umeanza… + Vitufe vya Kichezaji Video + Video imehifadhiwa kwenye gallery ya video ya simu + Chapisho la Sauti + Nzito + Juu + Kawaida + Hakuna + Jibu la Sauti + Mkoba + Mkoba wa Cashu (NIP-60) + Mtoa huduma wako wa wallet connect alirejesha hitilafu ifuatayo: %1$s + Hariri mints + Inaonyesha ujumbe wa onyo wakati machapisho au wasifu vina ripoti kutoka kwa watu unaowasiliana + Onya kuhusu ripoti + Ongeza Alamisho la Wavuti + Hariri Alamisho la Wavuti + Vialamisho vya Wavuti + Unafikiria nini? + Mazoezi + Andika ujumbe… + Andika kwa Relay + Kiasi kwa baiti kilichotumwa kwenye relay hii, ikijumuisha vichujio na matukio + + Badilisha jina + Hifadhi diff --git a/commonsUI/src/commonMain/composeResources/values-ta-rIN/strings.xml b/commonsUI/src/commonMain/composeResources/values-ta-rIN/strings.xml index 86c4aa6fbc..a170fad42b 100644 --- a/commonsUI/src/commonMain/composeResources/values-ta-rIN/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-ta-rIN/strings.xml @@ -1785,4 +1785,1169 @@ Explorer API அடிப்படை URL DVM-இலிருந்து Invoice செலுத்து DVM-க்கு %1$s sats செலுத்து + பற்றி & சட்டம் + கணக்கு அமைப்புகள் + சேர் + Blossom சேவையகம் சேர்க்கவும் + NIP-96 சேவையகம் சேர்க்கவும் + இயக்கப்படும்போது, Amethyst நீங்கள் வெளியிடும் நிகழ்வுகளில் NIP-89 கிளையண்ட் குறிச்சொல்லை இணைக்கிறது. + என் நிகழ்வுகளில் கிளையண்ட் குறிச்சொல் சேர் + இந்த உள்ளடக்கத்தை காட்டுவதற்கு முன் உணர்திறன் உள்ளடக்க எச்சரிக்கை சேர்க்கிறது + உணர்திறன் உள்ளடக்கம் + பொது புக்மார்க்குகளில் சேர்க்கவும் + உரை திருத்தங்கள் மற்றும் தொனி மாற்றங்களை பரிந்துரைக்க சாதனத்திலுள்ள AI மாதிரியை பயன்படுத்துகிறது. + உரை மேம்பாடுகளை பரிந்துரை செய்யவும் + நிகழ்நேர அறிவிப்புகளுக்காக உங்கள் inbox relays உடன் இணைப்புகளை செயலில் வைக்கிறது + + %1$d inbox relay-உடன் இணைக்கப்பட்டது + %1$d inbox relays-உடன் இணைக்கப்பட்டது + + + %1$d relay-உடன் இணைக்கப்பட்டது + %1$d relays-உடன் இணைக்கப்பட்டது + + inbox relays உடன் இணைக்கிறது… + Amethyst அறிவிப்புகள் செயலில் + வரும் குரல் மற்றும் வீடியோ அழைப்புகளுக்கான அறிவிப்புகள் + வரும் அழைப்புகள் + %1$s உங்கள் சதுரங்க சவாலை ஏற்றார் + சதுரங்க விளையாட்டு நிகழ்வுகளை பற்றி அறிவிக்கிறது + சதுரங்கம் + சதுரங்க புதுப்பிப்புகள் + %1$s நகர்ந்தார் — உங்கள் முறை + தனிப்பட்ட செய்தி வருகையில் தெரிவிக்கவும் + தனிப்பட்ட செய்திகள் + புதிய செய்திகள் + படித்ததாக குறி + யாரோ ஒரு இடுகையில் உங்களை குறிப்பிடும்போது அல்லது மேற்கோள் காட்டும்போது அறிவிக்கிறது + %1$s உங்களை குறிப்பிட்டார் + குறிப்பீடுகள் + புதிய குறிப்பீடுகள் + யாரோ உங்கள் இடுகைக்கு எதிர்வினை செய்யும்போது அறிவிக்கிறது + %1$s உங்கள் இடுகைக்கு எதிர்வினை செய்தார் + %1$s க்காக + எதிர்வினைகள் + புதிய எதிர்வினைகள் + யாரோ உங்கள் இடுகைக்கு பதில் செய்யும்போது அறிவிக்கிறது + பதில்கள் + புதிய பதில்கள் + பதில் + திட்டமிட்ட இடுகை வெளியிடப்படும்போது அல்லது வெளியிட தோல்வியடையும்போது அறிவிப்புகள். + திட்டமிட்ட இடுகைகள் + யாரேனும் உங்களுக்கு ஜாப் அனுப்பும்போது தெரிவிக்கவும் + %1$s ஸாட்ஸ் + %1$s -க்கு + %1$s -இடமிருந்து + ஜாப் பெறப்பட்டது + புதிய zaps + செயலி அமைப்புகள் + சான்றிதழ் + சான்றிதழ் கோரிக்கை + சான்றளிப்பவர் திறன் + சான்றளிப்பவர் பரிந்துரை + ஆடியோ காட்சிப்படுத்தி + நீங்கள் தட்டச்சு செய்யும்போது அல்லது அனுப்பப்படாத உரையுடன் ஒரு எழுத்துக் கலைஞரை விட்டு வெளியேறும்போது தானாகவே வரைவு நிகழ்வை சேமித்து உங்கள் தனிப்பட்ட outbox relays-களுக்கு அனுப்புகிறது. + தானாக வரைவுகளை உருவாக்கவும் + மூழ்கிய சுருள் + சுருள்லும்போது நேவிகேஷன் பட்டிகளை மறை + படம் முன்னோட்டம் + படங்களை மற்றும் GIF களை தானாக ஏற்று + வீடியோ இயக்கம் + வீடியோக்களை மற்றும் GIF களை தானாக ஏற்று + சுயவிவர படம் + சுயவிவர படங்களை காட்டு + URL முன்னோட்டம் + URL முன்னோட்டங்களை காட்டு + வீடியோக்களை தானாக இயக்கு + திரையில் தெரியும்போது வீடியோக்களை தானாக இயக்கு + AVIF-இலிருந்து மெட்டாடேட்டாவை நீக்க முடியவில்லை: %1$s + சின்னம் வழங்கு + பின் + காப்புச் சாவிகள் + சின்னங்கள் + அங்கீகரிப்பு தோல்வியுற்றது + இந்த தொலைபேசியின் உரிமையாளரை பயோமெட்ரிக்ஸ் அங்கீகரிக்க தோல்வியடைந்தது + இந்த தொலைபேசியின் உரிமையாளரை பயோமெட்ரிக்ஸ் அங்கீகரிக்க தோல்வியடைந்தது. பிழை: %1$s + தடு + தடுக்கப்பட்ட Relays + Amethyst இந்த relays-க்கு ஒருபோதும் இணைக்காது + முடக்கப்பட்டப் பயனர்கள் + புதிய புக்மார்க் பட்டியல் + புக்மார்க் பட்டியல் மெட்டாடேட்டா + புக்மார்க் பட்டியல் மெட்டாடேட்டா Nostr இல் யாரும் காண முடியும். உங்கள் தனிப்பட்ட உறுப்பினர்கள் மட்டுமே குறியாக்கம் செய்யப்படுவார்கள். + புக்மார்க்குகள் + உயர்த்து + கீழ் வழிசெலுத்தல் பட்டை + ஒளிபரப்பு Relays + sendit.nosflare.com போன்ற, உங்கள் குறிப்புகளை மற்ற அனைத்து relays-க்கும் தள்ளுவதில் நிபுணத்துவம் பெற்ற Relays. Amethyst நீங்கள் செய்யும் அனைத்து புதிய நிகழ்வுகளிலும் இந்த relay-ஐ சேர்க்கும் + உலாவி + விருப்பங்கள் + திறந்த வலை மூலம் ஏற்றுகிறது. Tor ஐ பயன்படுத்த தட்டவும். + Tor மூலம் ஏற்றுகிறது. திறந்த வலையை பயன்படுத்த தட்டவும். + + %1$s, %2$d நிகழ்வு + %1$s, %2$d நிகழ்வுகள் + + படம் பதிவேற்றம் தோல்வியடைந்தது + தேர்ந்தெடுக்கப்பட்ட படத்தை பதிவேற்ற முடியவில்லை. மீண்டும் முயற்சிக்கவும் அல்லது URL ஒட்டவும். + நாட்காட்டி நிகழ்வை பகிர் + வரைபடங்களில் திற + இணைப்பை திற + இப்போது நடக்கிறது + %1$s · %2$s இல் முடிகிறது + + %1$d நிமிடத்தில் தொடங்கும் + %1$d நிமிடங்களில் தொடங்கும் + + நீங்கள் கலந்துகொள்ளும் நிகழ்வு தொடங்கப்போகும்போது முன்னறிவிப்பு. + நாட்காட்டி நினைவூட்டல்கள் + நாட்காட்டி நிகழ்வு + நீங்கள் கலந்துகொள்ளும் நிகழ்வு தொடங்கப்போகும்போது அறிவிப்பு வரும். + நினைவூட்டல்களை அனுப்பு + + %1$d நிமிடம் + %1$d நிமிடம் + + நாட்காட்டி நினைவூட்டல்கள் + நாள் + ஊட்டம் + மாதம் + வாரம் + ஏற்கவும் + புளூடூத் + கேமரா அணை + கேமரா இயக்கு + காதுகேட்கும் கருவி + அழைப்பு துண்டி + வரும் அழைப்பு + வரும் வீடியோ அழைப்பு… + வரும் குரல் அழைப்பு… + முடக்கு + அழைப்புகள் + நடைமுறையில் உள்ள அழைப்பு அறிவிப்பு + வீடியோ அழைப்பை தொடங்க Amethyst க்கு கேமரா மற்றும் மைக்ரோஃபோன் அணுகல் தேவை. பயன்பாட்டு அமைப்புகளில் அவற்றை இயக்கவும். + குரல் அழைப்பை தொடங்க Amethyst க்கு மைக்ரோஃபோன் அணுகல் தேவை. பயன்பாட்டு அமைப்புகளில் அதை இயக்கவும். + நிராகரி + அழைப்பு அமைப்புகள் + ஸ்பீக்கர் + முடக்கு நீக்கு + %1$s உடன் அழைப்பு + %1$s இன் பதிலில் callback URL கிடைக்கவில்லை + ரத்து + Cashu வில்லை + Mint-ஐ சரிபார்க்கிறது… + Cashu ஐ மீட்டெடுக்க முடியவில்லை + Mint பின்வரும் பிழை செய்தியை வழங்கியது: %1$s + பெறப்பட்டது + அனுப்பப்பட்டது + பொருந்தும் mints + + +%1$d மேலும் + +%1$d மேலும் + + பிரபலமான mints + + %1$d பிறரால் பரிந்துரைக்கப்பட்டது + %1$d பிறரால் பரிந்துரைக்கப்பட்டது + + %1$s sat-ஐ %2$s-க்கு நகர்த்தப்பட்டது. + கணினியில் பொருந்தக்கூடிய Cashu வாலட் கிடைக்கவில்லை + + %1$d நிலுவை invoice + %1$d நிலுவை invoices + + %1$s sat + கட்டணமாக %2$s sat வரை செலுத்தவா? + %1$s-க்கான உங்கள் kind:38000 பரிந்துரைக்கு நீக்க கோரிக்கையை வெளியிடவும். NIP-09-ஐ மதிக்கும் relay-கள் அதை நீக்கும். + %2$s ஆதாரங்களில் %1$s sats மீட்டெடுக்கப்பட்டது. + Cashu பெறப்பட்டது + %1$s sats உங்கள் வாலட்டுக்கு அனுப்பப்பட்டது. (கட்டணம்: %2$s sats) + + நீங்கள் பயன்படுத்தாத %1$d mint-ல் நிதி உள்ளது + நீங்கள் பயன்படுத்தாத %1$d mints-ல் நிதி உள்ளது + + இன்வாயிஸ் செலுத்தப்படுவதற்கு காத்திருக்கிறது… + அனுப்புவதை நிறுத்தவும் + சாதனத்திற்கு அனுப்பவும் + குழந்தை பாதுகாப்பு தரநிலைகள் + துணைக்கருவிகள் + கலை + புத்தகங்கள் + ஆடைகள் + சேகரிப்பு பொருட்கள் + கைவினை + மின்னணுவியல் + உடற்பயிற்சி + உணவு + தளபாடங்கள் + வீடு + இதர + அலுவலகம் + மற்றவை + செல்லப்பிராணிகள் + விளையாட்டு + தினசரி + மாதாந்திர + ஒரு முறை + வாராந்திர + %2$s வழியாக %1$s செலுத்தவா? + %1$s வழியாக இந்த விலைப்பட்டியலை செலுத்தவா? + டெபிட் சேவை பணத்தை செலுத்தி முடிக்கவில்லை. + இந்த சலுகைக்கு சரியான தொகையை உள்ளிடவும். + விலைப்பட்டியல் கோரப்படுகிறது… + இந்த இடுகைக்கான அனைத்து எதிர்வினைகளையும் மூடு + மூடப்பட்டவை + சமூகங்கள் + வரைவு %1$d bytes; இந்த சமூகம் இந்த வகைக்கு %2$d bytes வரை அனுமதிக்கிறது. + வரைவு %1$d bytes; இந்த சமூகம் நிகழ்வுகளை %2$d bytes வரை மட்டுமே அனுமதிக்கிறது. + நீங்கள் இன்று இந்த வகையில் %1$d நிகழ்வுகளை ஏற்கனவே இடுகையிட்டுள்ளீர்கள் (வரம்பு %2$d). + எழுதும் அமைப்புகள் + இயல்புநிலை போர்ட் 9050 + இணைந்த Relays + தற்போது பயன்படுத்தப்படும் relays பட்டியல் + relay உடனான வெற்றிகரமான இணைப்புகளின் சதவீதம் + எப்போதும் + ஒருபோதும் இல்லை + அளவிடா WiFi + ஆவணத்தைச் சேர்க்கவும் + படத்தைச் சேர்க்கவும் + மீடியா சேர் + காணொளியைச் சேர்க்கவும் + மறை + எச்சரி + காட்டு + உரையாடல்கள் + சிறிய கோப்பு அளவு மற்றும் சிறந்த இயக்க இணக்கத்திற்காக அனிமேட்டட் GIF-ஐ MP4 வீடியோவாக மாற்றுகிறது. + GIF-ஐ MP4-ஆக மாற்றவும் + கிளிப்போர்டுக்கு குறிப்பு ஐடி (@note1) நகலெடுக்கப் பட்டது + குறிப்பு கிளிப்போர்டுக்கு நகலெடுக்கப் பட்டது + கிளிப்போர்டுக்கு நகலெடுக்கப்பட்டது + கிளிப்போர்டுக்கு எழுத்தாளரின் @npub நகலெடுக்கப் பட்டது + எனது ரகசிய சாவியை நகலெடுக்கவும் + கிளிப்போர்டுக்கு நகலெடு + Lightning முகவரி "%1$s" இலிருந்து LNUrl ஐ உருவாக்க முடியவில்லை. பயனரின் அமைப்பை சரிபார்க்கவும் + பதிவேற்றத்திற்குப் பிறகு பதிவிறக்கிய கோப்பை சரிபார்க்க முடியவில்லை: %1$s + சர்வரிலிருந்து பதிவேற்றிய மீடியாவை பதிவிறக்க முடியவில்லை + %1$s இலிருந்து இன்வாய்ஸை பெற முடியவில்லை: %2$s + சுருக்கப்பட்ட கோப்பை திறக்க முடியவில்லை + வாலட் கிடைக்கவில்லை + Nostr Wallet Connect (NWC)-ஐ ஆதரிக்கும் எந்த பணப்பை பயன்பாடுகளையும் Amethyst கண்டுபிடிக்கவில்லை. +\n\nநீங்கள் செய்யக்கூடியவை: +\n\t1. NWC ஆதரவை சரிபாருங்கள்: உங்கள் விருப்பமான பணப்பை பயன்பாடு Nostr Wallet Connect-உடன் இணக்கமானதா என இரட்டிப்பு சரிபாருங்கள். +\n\t2. இணைப்பை உருவாக்குங்கள்: உங்கள் பணப்பை பயன்பாட்டிற்கு சென்று புதிய NWC இணைப்பை உருவாக்குங்கள். +\n\t3. Amethyst-உடன் இணைக்குங்கள்: உங்கள் பணப்பை பொதுவாக மூன்று விருப்பங்களை வழங்கும்: +\n\t\t3.1 தானியங்கி இணைப்பு: Amethyst-ஐ தானாக திறந்து இணைக்க ஒரு பொத்தான். அவ்வாறிருந்தால், அந்த பொத்தானை அழுத்தி Amethyst-ஐ திறந்து புதிய திரையில் சேமி அழுத்துங்கள். +\n\t\t3.2 கைமுறை இணைப்பு: நீங்கள் நகலெடுக்கக்கூடிய Connection URI, இந்த திரையில் ஒட்டு ஐகானை அழுத்தி நேரடியாக உள்ளிடலாம். +\n\t\t3.3 QR குறியீடு: பணப்பை ஒரு QR குறியீட்டை உருவாக்கும், இந்த திரையில் QR குறியீடு பொத்தானிலிருந்து படிக்கலாம். + + உருவாக்கு + நா + ஆபத்து மண்டலம் + இருள் + தகவல் + பொதுவாக்கு + அரட்டை + சமூகங்கள் + ஊட்ட அல்காரிதங்கள் + பின்தொடர் தொகுப்புகள் + நேரடி ஒளிபரப்புகள் + சந்தை + வாசிப்புகள் + DM இன்பாக்ஸ் Relays + இதிலிருந்து மொழிபெயர்க்காதே + இங்கே காட்டப்படும் மொழிகள் மொழிபெயர்க்கப்படாது. மொழியை தேர்ந்தெடுத்து அகற்று, மீண்டும் மொழிபெயர்க்கப்படும். + தொலைபேசியில் சேமிக்கவும் + வீடியோவை பதிவிறக்குகிறது… + வரைவு குறிப்பு + வரைவுகள் + கணக்குகள் + உருவாக்கு + தொடர்கள் + வழிசெல்க + அமைப்பு + நீங்கள் + + %1$d நாள் + %1$d நாட்கள் + + + %1$d மணி நேரம் + %1$d மணி நேரங்கள் + + + %1$d நிமிடம் + %1$d நிமிடங்கள் + + + %1$d மாதம் + %1$d மாதங்கள் + + + %1$d வாரம் + %1$d வாரங்கள் + + + %1$d ஆண்டு + %1$d ஆண்டுகள் + + நாட்காட்டியை திருத்து + நாட்காட்டி நிகழ்வை திருத்து + சமூகத்தை திருத்து + emoji தொகுப்பை திருத்து + இசை பட்டியலை திருத்து + இடுகையைத் திருத்து + தனிப்பட்ட emojis relays-இல் குறியாக்கப்பட்டு சேமிக்கப்படும் மற்றும் உங்களுக்கு மட்டுமே தெரியும். அவை பொது emojis போலவே உங்கள் எதிர்வினை மெனு மற்றும் ":" தானாக நிரப்பியில் தோன்றும். + பொது emojis அனைவருக்கும் தெரியும் மற்றும் இந்த தொகுப்பு உங்கள் emoji பட்டியலில் இருக்கும்போது உங்கள் எதிர்வினை மெனு மற்றும் ":" தானாக நிரப்பியில் தோன்றும். + தனியுரிமைக்காக பதிவேற்றுவதற்கு முன் கோப்புகளை குறியாக்கவும். சில சர்வர்கள் இலவச கணக்குகளில் குறியாக்கப்பட்ட கோப்புகளை ஏற்காது. + கோப்புகளை குறியாக்கு + மறையும் அரட்டை + பிழை + இன்வாய்ஸை செலுத்த முடியவில்லை + திரும்பப் பெற முடியவில்லை + கட்டணத்தை திறக்க முடியவில்லை + Zap அனுப்ப முடியவில்லை + கையொப்பமிடல் செயலியை திறக்கும்போது பிழை + கையொப்பமிடல் செயலியை கண்டுபிடிக்க முடியவில்லை. செயலி நிறுவல் நீக்கப்படவில்லையா என சரிபார்க்கவும் + பிழை செய்தியை பாகுபடுத்துவதில் பிழை + %1$s இலிருந்து JSON ஐ பாகுபடுத்துவதில் பிழை. பயனரின் lightning அமைப்பை சரிபார்க்கவும் + பெறுநரின் சேவையகங்களிலிருந்து இன்வாய்ஸை பெற முடியவில்லை + உலாவியில் திற + இந்த வீடியோவை இயக்க முடியவில்லை + இந்த சாதனத்தில் codec அல்லது வடிவம் ஆதரிக்கப்படவில்லை (%1$s). உங்கள் உலாவியில் திறக்க முயற்சிக்கவும். + பிழைகள் + Relay ஒத்திசைவு + உங்களிடமிருந்து நிகழ்வுகள் + உங்களுக்கான நிகழ்வுகள் + சுற்று பயிற்சி + சைக்கிள் ஓட்டுதல் + உணவு முறை + உண்ணாவிரதம் + மலையேற்றம் + தியானம் + படகு ஓட்டுதல் + ஓட்டம் + வலிமை பயிற்சி + நீச்சல் + நடைப்பயணம் + யோகா + விரிவாக்கு + காலாவதி தேதி + Relay அமைப்புகளை ஏற்றுமதி செய் + நீக்கம் தோல்வியடைந்தது: %1$s + உங்கள் தனிப்பட்ட விசையை மறைகுறியாக்க தோல்வியடைந்தது + படத்தைச் சேமிக்க இயலவில்லை + PDF ஐ சேமிக்க தோல்வியடைந்தது + வீடியோவை சேமிக்க தோல்வியடைந்தது + பல சர்வர்கள் இலவச கணக்குகளில் குறியாக்கப்பட்ட கோப்புகளை ஏற்காது. குறியாக்கம் இல்லாமல் மீண்டும் முயற்சிக்கலாம். + குறியாக்கப்பட்ட பதிவேற்றம் தோல்வியடைந்தது + பதிவேற்றப் பிழை: %1$s + மீடியா பதிவேற்றம் தோல்வியடைந்தது + %1$s-க்கு பதிவேற்றம் தோல்வியடைந்தது: %2$s + விருப்பங்களில் சேர்க்கவும் + திறந்த வலை மூலம் ஏற்றுகிறது. + Tor மூலம் ஏற்றுகிறது. + சமீபத்தியவை + விருப்பங்களிலிருந்து அகற்று + அந்த பயன்பாடு இன்னும் ஏற்றப்படவில்லை. ஒரு கணம் கழித்து மீண்டும் முயற்சிக்கவும். + விருப்பமான பயன்பாடுகள் + விருப்பமான ஊட்ட அல்காரிதங்கள் + ஒரு கட்டணம் செய்யப்பட்டது + relays இல் வெளியிடப்பட்டது + ஒரு கோப்பு பதிவேற்றப்பட்டது + விருப்பமான Relay ஊட்டங்கள் + உங்கள் பொது ஊட்டத்தை பார்க்க நீங்கள் அடிக்கடி செல்லும் Relays + சமுதாயங்கள் + ஊட்ட அல்காரிதங்கள் + ஊட்டங்கள் + ஆர்வ தொகுப்புகள் + பட்டியல்கள் + இடங்கள் + கோப்புச் சேவையகம் + இந்த கோப்பை பதிவேற்ற ஒரு சேவையகத்தை தேர்வு செய்க + 5 அல்லது அதிகமான முறை சரியாக ஒரே மாதிரியான அந்நியர்களின் இடுகைகளை மறைக்கிறது + ஸ்பாம் வடிகட்டு + பின்தொடர் + பதிலுக்கு பின்தொடரவும் + அனைத்து விருப்பமான ஊட்ட அல்காரிதங்கள் + என்னை சுற்றி + தொகுக்கப்பட்டது + முழுதளாவிய + இயல்புநிலை தொடர் பட்டியல் + எல்லா பின்பற்றப் படுவோர் + அனைத்து பயனர் தொடர்புகளும் + என்னுடையது + முடக்கு பட்டியல் + புதிய தொடர் தொகுப்பு + Follow Pack-ஐ திருத்து + Follow pack மெட்டாடேட்டாவை Nostr-ல் யாரும் பார்க்கலாம் மற்றும் புதிய பயனர்களுக்கான தொடக்க கருவியாக பல இணையதளங்களில் அடிக்கடி வெளியிடப்படுகிறது. + Follow Pack மெட்டாடேட்டா + புதிய தொடர் பட்டியல் + பட்டியலை திருத்து + சுயவிவர கேலரி பாணி + கேலரி பாணியை தேர்ந்தெடுக்கவும் + கிளாசிக் + நவீன + இடம்-மட்டுமான இடுகை + இடத்தை பின்தொடர்பவர்கள் மட்டுமே அதை பார்ப்பார்கள். உங்கள் பொது பின்தொடர்பவர்கள் அதை பார்க்கமாட்டார்கள். + %2$s sats இலக்கில் %1$s நிதியளிக்கப்பட்டது + ம + படம் மாறிவிட்டது. மாற்றத்தை பயனர் பார்த்திருக்க மாட்டார் + இது என்ன அர்த்தம்? + பதிவு பதியப்பட்ட பின்னர் படம் மாற்றப்படவில்லை + வணக்கம் %1$s, இது இன்னும் கிடைக்கிறதா? + மறைக்கப்பட்ட வார்த்தைகள் + சமூகம் NIP-9B விதிகள் ஆவணத்தை வெளியிடும்போது மற்றும் ஒரு நிகழ்வு அதை தவறுகையில் சமூக ஊட்டங்களிலிருந்து இடுகைகளை நீக்குகிறது. சமூகத்திற்கு கட்டமைக்கப்பட்ட விதிகள் இல்லாத போது எந்த விளைவும் இல்லை. + சமூக விதிகளை மீறும் இடுகைகளை மறை + கடவுச்சொல்லை மறைக்கவும் + %1$s பதிவேற்றுகிறது (%3$d-ல் %2$d) + அனைத்தும் + தவறான கோரிக்கை - சேவையகம் கோரிக்கையை செயலாக்க முடியவில்லை அல்லது மறுக்கிறது. + அங்கீகரிக்கப்படவில்லை - பயனருக்கு செல்லுபடியாகும் அங்கீகார சான்றுகள் இல்லை + கட்டணம் தேவை - கோரிக்கையை நிறைவேற்ற சேவையகம் கட்டணம் தேவைப்படுகிறது + தடைசெய்யப்பட்டது - கோரிக்கையை செய்ய பயனருக்கு அணுகல் உரிமைகள் இல்லை + கிடைக்கவில்லை - கோரப்பட்ட முகவரியை சேவையகம் கண்டுபிடிக்கவில்லை + முறை அனுமதிக்கப்படவில்லை - சேவையகம் கோரிக்கை முறையை ஆதரிக்கிறது, ஆனால் இலக்கு வளத்தை இல்லை + ஏற்றுக்கொள்ளத்தக்கதல்ல - கோரிக்கையை திருப்திப்படுத்தும் எந்த உள்ளடக்கத்தையும் சேவையகம் கண்டுபிடிக்கவில்லை. + Proxy அங்கீகரிப்பு தேவை - பயனருக்கு செல்லுபடியாகும் அங்கீகார சான்றுகள் இல்லை + கோரிக்கை காலாவதி - வேறு யாரோ காத்திருக்க சேவையகம் காலாவதியானது + முரண்பாடு - வளத்துடன் முரண்பாடு இருப்பதால் சேவையகம் கோரிக்கையை நிறைவேற்ற முடியவில்லை + நீங்கிவிட்டது - கோரப்பட்ட உள்ளடக்கம் சேவையகத்திலிருந்து நிரந்தரமாக நீக்கப்பட்டது, மீண்டும் வழங்கப்படாது + நீளம் தேவை - வரையறுக்கப்பட்ட Content-Length தேவைப்படுவதால் சேவையகம் கோரிக்கையை நிராகரிக்கிறது + முன்நிபந்தனை தோல்வியடைந்தது - சேவையகம் பூர்த்திசெய்யாத தலைப்பு புலங்களில் கோரிக்கையின் முன்நிபந்தனைகள் + பேலோட் மிகவும் பெரியது - கோரிக்கை சேவையகத்தின் வரையறுக்கப்பட்ட வரம்புகளை விட பெரியது, சேவையகம் அதை செயலாக்க மறுக்கிறது + URI மிகவும் நீண்டது - கிளையன்ட் கோரிய URL சேவையகம் செயலாக்க மிகவும் நீண்டது. + ஆதரிக்கப்படாத மீடியா வகை - கோரிக்கை சேவையகம் ஆதரிக்காத மீடியா வடிவத்தைப் பயன்படுத்துகிறது + வரம்பு திருப்திகரமாக இல்லை - கோரிக்கையின் Range தலைப்பு புலத்தில் குறிப்பிடப்பட்ட மதிப்பை சேவையகம் நிறைவேற்ற முடியவில்லை. + எதிர்பார்ப்பு தோல்வியடைந்தது - Expect கோரிக்கை தலைப்பு புலத்தால் குறிப்பிடப்பட்ட தேவைகளை சேவையகம் பூர்த்திசெய்ய முடியவில்லை + மேம்படுத்துதல் தேவை - கிளையன்ட் வேறு நெறிமுறைக்கு மேம்படுத்தாத வரை தற்போதைய நெறிமுறையைப் பயன்படுத்தி கோரிக்கையை செயலாக்க சேவையகம் மறுக்கிறது. + உள் சேவையக பிழை - சேவையகம் எதிர்பாராத பிழையை சந்தித்தது, கோரிக்கையை நிறைவேற்ற முடியவில்லை + செயல்படுத்தப்படவில்லை - கோரிக்கையை சேவையகம் நிறைவேற்ற முடியவில்லை அல்லது கோரிக்கை முறையை அடையாளம் காணவில்லை + தவறான நுழைவாயில் - சேவையகம் நுழைவாயிலாக செயல்படுகிறது மற்றும் கணினியிலிருந்து தவறான பதில் பெற்றது + சேவை கிடைக்கவில்லை - இது பெரும்பாலும் சேவையகம் அதிக சுமையில் இருக்கும்போது அல்லது பராமரிப்புக்கு கீழே இருக்கும்போது நிகழ்கிறது + நுழைவாயில் காலாவதி - சேவையகம் நுழைவாயில் அல்லது proxy ஆக செயல்பட்டு, பதிலுக்காக காத்திருந்து காலாவதியானது + HTTP பதிப்பு ஆதரிக்கப்படவில்லை - கோரிக்கையில் உள்ள HTTP பதிப்பை சேவையகம் ஆதரிக்கவில்லை + மாறுபாடும் பேச்சுவார்த்தை நடத்துகிறது - சேவையகத்தில் உள் உள்ளமைவு பிழை உள்ளது + போதுமான சேமிப்பிடம் இல்லை - கோரிக்கையை வெற்றிகரமாக செயலாக்க சேவையகத்தில் போதுமான சேமிப்பிடம் இல்லை + சுழல் கண்டறியப்பட்டது - கோரிக்கையை செயலாக்கும்போது சேவையகம் முடிவற்ற சுழலை கண்டறிகிறது + நெட்வொர்க் அங்கீகரிப்பு தேவை - நெட்வொர்க்கை அணுக கிளையன்ட் அங்கீகரிக்கப்பட வேண்டும் + சட்டவிரோத நடத்தை + படம் காட்சியகத்தில் சேமிக்கப்பட்டது + ஆள்மாறாட்டம் + இன்பாக்ஸ் Relays + %2$s இலிருந்து தவறான இன்வாய்ஸ் தொகை (%1$s sats). அது %3$s ஆக இருந்திருக்க வேண்டும் + குறியீட்டாளர் Relays + purplepag.es போன்ற, அனைவரின் மெட்டாடேட்டா மற்றும் relay பட்டியல்களை வழங்குவதில் நிபுணத்துவம் பெற்ற Relays. உங்கள் பட்டியல்களில் இல்லாத பயனர்களை கண்டுபிடிக்க Amethyst இந்த relays பயன்படுத்தும். + புதிய ஆர்வ தொகுப்பு + மறுபெயரிடு + ஹேஷ்டேக் தொகுப்புகள் + தவறான சாவி + தவறான விசை: %1$s + தவறான முகவரி + Amethyst திறக்க ஒரு URI பெற்றது, ஆனால் அந்த URI தவறானது: %1$s + வரைவு குறிப்பை மேற்கோள் காட்ட முடியாது + வரைவு குறிப்பிற்கு எதிர்வினையாற்ற முடியாது + வரைவு குறிப்புக்கு பதில் அளிக்க முடியாது + வரைவு குறிப்பை zap செய்ய முடியாது + சாவி தேவை + உங்கள் MLS KeyPackages வெளியிடப்படும் Relays (MIP-00). மற்ற பயனர்கள் உங்களை Marmot குழு அரட்டைகளில் அழைக்க இந்த KeyPackages பெறுகிறார்கள். KeyPackage நிகழ்வுகளை ஏற்றுக்கொள்ளும் மற்றும் பொது வாசிப்பை அனுமதிக்கும் 1–3 relays சேர்க்கவும். + ஏற்றுக்கொள்ளப்பட்ட பேட்ஜ் தொகுப்பு + சாகச முன்னுரை + சாகச வாசிப்பு + சாகச காட்சி + பயன்பாட்டு பரிந்துரைகள் + சந்திப்பு + பயன்பாடுகள் + சந்திப்பு RSVP + ஆடியோ தலைப்பு + ஆடியோ டிராக் + உருவாக்கிய போட்காஸ்ட்கள் + பேட்ஜ் விருதுகள் + பேட்ஜ் வரையறைகள் + Blob தரவு + Blob தலைப்புகள் + தடுக்கப்பட்ட Relays + வலைப்பதிவுகள் + Blossom சேவையகங்கள் + புக்மார்க் பட்டியல் + நாட்காட்டி + சேனல் வரையறை + சேனல் மறை செய்தி + சேனல் பட்டியல் + சேனல் செய்தி + சேனல் மெட்டாடேட்டா + சேனல் முடக்கு பயனர் + சதுரங்க Auth + சதுரங்க சவால்கள் + சதுரங்க சமன் சலுகை + சதுரங்க விளையாட்டு ஏற்பு + சதுரங்க விளையாட்டு முடிவு + சதுரங்க விளையாட்டுகள் + சதுரங்க நகர்வு + வகைப்படுத்தப்பட்டவை + கருத்துகள் + சமூக வரையறை + சமூக பட்டியல் + சமூக இடுகை + தொடர்பு அட்டை + நாள் சந்திப்பு + நீக்கங்கள் + DM கோப்பு + DM செய்தி + வரைவுகள் + DVM உள்ளடக்க கோரிக்கை + DVM உள்ளடக்க பதில் + DVM நிலை + DVM பயனர் கோரிக்கை + DVM பயனர் பதில் + திருத்தங்கள் + Emoji பேக் பட்டியல் + Emoji பேக்கள் + தற்காலிக அரட்டை + தற்காலிக அரட்டை அறைகள் + விருப்பமான போட்காஸ்ட்கள் + விருப்பமான Relays + கோப்பு தலைப்புகள் + கோப்பு சேவையகங்கள் + Follow பட்டியல் + ஜியோஹாஷ் follows + Git சிக்கல் + Git பேட்ச் + Git பதில் + Git களஞ்சியம் + ஹேஷ்டேக் follows + சிறப்பம்சங்கள் + குறியீட்டு Relay பட்டியல் + நேரடி அரட்டைகள் + நேரடி ஒளிபரப்புகள் + மருத்துவ தரவு + சந்திப்பு அறை + சந்திப்பு இடம் + இசை பட்டியல் + இசை டிராக் + முடக்கு பட்டியல் + பெயரிடப்பட்ட புக்மார்க்குகள் + Nests சேவையகங்கள் + Nostr இணைப்பு + குறிப்புகள் + NWC கோரிக்கை + NWC பதில் + பழைய புக்மார்க் பட்டியல் + மக்கள் பட்டியல்கள் + படங்கள் + பின்கள் + போட்காஸ்ட் எபிசோட் + போட்காஸ்ட் நிகழ்ச்சி + வாக்கெடுப்பு + வாக்கெடுப்பு பதில் + தனிப்பட்ட Relays + தனிப்பட்ட Zaps + சுயவிவரம் + சுயவிவர பேட்ஜ்கள் + சுயவிவர தொகுப்பு + பொது செய்தி + எதிர்வினைகள் + Relay கண்டுபிடிப்பு + Relay கண்காணிப்பு அறிவிப்பு + Relay தொகுப்பு + அறிக்கைகள் + மறுவெளியீடுகள் + மறுவெளியீடுகள் (16) + அறை இருப்பு + முத்திரைகள் + தேடல் Relays + Torrent கருத்துகள் + நம்பகமான வழங்குனர்கள் + நம்பகமான Relays + பயனர் நீக்கம் + பயனர் அமைப்புகள் + பயனர் நிலை + வீடியோ + வீடியோ (Repl) + குரல் செய்தி + குரல் பதில் + வலை புக்மார்க் + விக்கி + உடற்பயிற்சிகள் + Zap இலக்குகள் + Zap வாக்கெடுப்பு + Zap கோரிக்கை + தெரிந்த + மொழி காட்சி விருப்பங்கள் + ஒவ்வொரு மொழிபெயர்க்கப்பட்ட மொழி ஜோடிக்கும், எந்த மொழியை முதலில் காட்ட வேண்டும் என்று தேர்ந்தெடுக்கவும். + கடைசியாக %1$s முன்பு பார்க்கப்பட்டது + இப்போது தான் பார்க்கப்பட்டது + ஒருபோதும் பார்க்கப்படவில்லை + %1$s அன்று கடைசியாக பார்க்கப்பட்டது (%2$s முன்பு) + வெளியேறு + வெளிச்சம் + நேரடி ஒளிபரப்புகள் + உள்ளூர் Relays + இந்த சாதனத்தில் இயங்கும் relays பட்டியல். + குறிப்புகளை உயர்த்த ஒரு தனிப்பட்ட சாவியுடன் உள்நுழைக + நீங்கள் பொது விசையைப் பயன்படுத்துகிறீர்கள், பொது விசைகள் படிக்க மட்டுமே பயன்படும். பின்தொடர முடியுமாறு தனிப்பட்ட விசையுடன் உள்நுழைக + நீங்கள் பொது விசையைப் பயன்படுத்துகிறீர்கள், பொது விசைகள் படிக்க மட்டுமே பயன்படும். ஒரு வார்த்தை அல்லது வாக்கியத்தை மறைக்க தனிப்பட்ட விசையுடன் உள்நுழைக + பதிலளிக்க ஒரு தனிப்பட்ட சாவியுடன் உள்நுழைக + ஜாப்களை அனுப்ப ஒரு தனிப்பட்ட சாவியுடன் உள்நுழைக + நீங்கள் பொது விசையைப் பயன்படுத்துகிறீர்கள், பொது விசைகள் படிக்க மட்டுமே பயன்படும். ஒரு வார்த்தை அல்லது வாக்கியத்தை காட்ட தனிப்பட்ட விசையுடன் உள்நுழைக + நீங்கள் பொது விசையைப் பயன்படுத்துகிறீர்கள், பொது விசைகள் படிக்க மட்டுமே பயன்படும். நிகழ்வுகளில் கையெழுத்திட தனிப்பட்ட விசையுடன் உள்நுழைக + நீங்கள் பொது விசையைப் பயன்படுத்துகிறீர்கள், பொது விசைகள் படிக்க மட்டுமே பயன்படும். பின்தொடர்வதை நிறுத்த தனிப்பட்ட விசையுடன் உள்நுழைக + நீங்கள் பொது விசையைப் பயன்படுத்துகிறீர்கள், பொது விசைகள் படிக்க மட்டுமே பயன்படும். பதிவேற்ற தனிப்பட்ட விசையுடன் உள்நுழைக + குறிப்புகளை விரும்புவதற்கு தனிப்பட்ட சாவியுடன் உள்நுழைக + வீடியோக்கள் + நி + என் Emoji தொகுப்புகள் + %1$s-ஐ சேர்க்கிறோம்… + நிர்வாக உரிமைகள் வழங்கப்பட்டன + நிர்வாக உரிமைகள் திரும்பப்பெறப்பட்டன + %1$s-ஐ சேர்க்க தோல்வி: %2$s + குழு உருவாக்க தோல்வி: %1$s + நிர்வாக உரிமைகள் வழங்க தோல்வி: %1$s + குழுவை விட்டு வெளியேற தோல்வி: %1$s + உறுப்பினரை நீக்க தோல்வி: %1$s + நிர்வாக உரிமைகளை திரும்பப்பெற தோல்வி: %1$s + புதுப்பிக்க தோல்வி: %1$s + MLS குழு + குழு தகவல் புதுப்பிக்கப்பட்டது + + %1$d உறுப்பினர் + %1$d உறுப்பினர்கள் + + உறுப்பினர் நீக்கப்பட்டார் + + %1$d செய்தி + %1$d செய்திகள் + + இந்த குழுவின் உறுப்பினர் இல்லை + அறியாத பிழை + மீடியா சேர்க்கப்பட்டது + உங்கள் சுயவிவர கேலரியில் மீடியா சேர்க்கப்பட்டது + மீடியா பதிவிறக்கம் தொடங்கியது… + மீடியா சேவையகங்கள் + NIP-95-க்கு மீடியா மிகவும் பெரியது + முதலில் செய்தியின் இலக்கை உள்ளிடவும் + பதிவேற்ற முடியவில்லை + பொருள் + மெட்டாடேட்டாவை அகற்ற முடியவில்லை + மீடியாவிலிருந்து தனிப்பட்ட மெட்டாடேட்டாவை நீக்கத் தோல்வியடைந்தது. பதிவேற்றம் ரத்துசெய்யப்பட்டது. + புக்மார்க்குகள் வெற்றிகரமாக இடம்பெயர்க்கப்பட்டன + Lightning அமைப்பு இல்லை + மேலும் + தனிப்பட்டதிற்கு நகர்த்து + பொதுவிற்கு நகர்த்து + அட்டை படத்தை பதிவேற்று + இந்த இசை பட்டியலின் கலை ஓவியமாக இருக்க ஒரு சதுர படத்தை தேர்ந்தெடுக்கவும். + + +%1$d மேலும் பாடல் + +%1$d மேலும் பாடல்கள் + + + %1$d பாடல் + %1$d பாடல்கள் + + + %1$d பாடல் + %1$d பாடல்கள் + + அட்டை பதிவேற்றி வெளியிடுகிறது. திரையை விட்டு சென்றாலும் இது தொடரும். + ஆடியோ கோப்பை பதிவேற்று + MP3, WAV, அல்லது FLAC தேர்ந்தெடுக்கவும். சேமிக்கும்போது உங்கள் மீடியா சேவையகத்தில் பதிவேற்றப்படும். + அட்டை படத்தை பதிவேற்று + இந்த பாடலின் கலை ஓவியமாக இருக்க ஒரு சதுர படத்தை தேர்ந்தெடுக்கவும். + அட்டை + ஆடியோ பதிவேற்றி வெளியிடுகிறது. திரையை விட்டு சென்றாலும் இது தொடரும். + ஒலி இயக்கத்தில். முடக்க கிளிக் செய்யவும் + முடக்கப்பட்டது. முடக்கத்தை நீக்க கிளிக் செய்யவும் + என் பட்டியல்கள் + ஒரு பெயர் தேவை + Namecoin அமைப்புகள் + அடையாளம் + உங்கள் பொது சாவியை படிக்கவும் + செய்தியிடல் + மற்ற napplets உடன் செய்திகளை பரிமாறிக்கொள்ளவும் + விசைப்பலகை செயல்கள் + விசைப்பலகை குறுக்குவழிகளை பிணைக்கவும் + அறிவிப்புகள் + உங்களுக்கு அறிவிப்புகளை காட்டவும் + உங்கள் நிகழ்வுகளை படித்து, கையொப்பமிட்டு & வெளியிடவும் + வலைப்பின்னல் + இணைய மற்றும் Blossom வளங்களை பெறவும் + சேமிப்பு + அதன் சொந்த தனிப்பட்ட சேமிப்பு + தீம் + உங்கள் பயன்பாட்டின் வண்ணங்களுடன் பொருத்தவும் + பதிவேற்றங்கள் + உங்கள் மீடியா சேவையகத்தில் கோப்புகளை பதிவேற்றவும் + கொடுப்பனவுகள் + Lightning இன்வாய்ஸ்களை செலுத்தவும் + இந்த nApplet உங்கள் பொது சாவியை படிக்க விரும்புகிறது. + இந்த nApplet உங்கள் சுயவிவரம் மற்றும் கணக்கு தரவை படிக்க விரும்புகிறது. + இந்த nApplet உங்களுக்கு அறிவிப்புகளை காட்ட விரும்புகிறது. + + இந்த nApplet %1$d sat-க்கான Lightning invoice செலுத்த விரும்புகிறது. + இந்த nApplet %1$d sats-க்கான Lightning invoice செலுத்த விரும்புகிறது. + + இந்த nApplet உங்களாக ஒரு வகை %1$d நிகழ்வை கையொப்பமிட்டு வெளியிட விரும்புகிறது. + இந்த nApplet உங்களாக ஒரு குறியாக்கப்பட்ட நிகழ்வை அனுப்ப விரும்புகிறது. + இந்த nApplet உங்களாக ஒரு வகை %1$d நிகழ்வை கையொப்பமிட்டு வெளியிட விரும்புகிறது: + இந்த nApplet உங்கள் relays இலிருந்து நிகழ்வுகளை படிக்க விரும்புகிறது. + இந்த nApplet ஒரு இணைய வளத்தை பெற விரும்புகிறது. + இந்த தளம் உங்கள் Nostr சாவியுடன் ஒரு வகை %1$d நிகழ்வை கையொப்பமிட விரும்புகிறது. + இந்த nApplet அதன் தனிப்பட்ட சேமிப்பை பயன்படுத்த விரும்புகிறது. + இந்த nApplet உங்கள் மீடியா சேவையகத்தில் ஒரு கோப்பை பதிவேற்ற விரும்புகிறது. + செய்தி அனுப்ப முடியவில்லை + இந்த பேச்சாளரை அமைதிப்படுத்து + இந்த பேச்சாளரை மீட்டமை + வெளியேறு + அறையை மூடியதாக குறிக்க முடியவில்லை. எப்படியும் வெளியேறுகிறது — அறை தானாக மூடும். + + %1$d கேட்பவர் + %1$d கேட்பவர்கள் + + கையை கீழே இறக்கு + மைக்கை ஒலியடக்கு + மைக்கை ஒலி திறக்கு + ஒலியடக்கு + Nest சேவையக பட்டியலை சேமிக்க முடியவில்லை. மீண்டும் முயற்சி செய்யவும். + Nest — நேரலை + அறை திறந்திருக்கும்போது ஆடியோவை இயக்கிக் கொண்டே இருக்கும். + Nest இணைக்கப்பட்டது + நிறுத்து + திரும்ப திரும்ப தட்டவும். + பின்தொடர் + ஒலியடக்கு + பின்தொடர்வதை நிறுத்து + ஒலியை மீட்டமை + nest ஐ விட்டு சென்றார் + பார்வையாளராக சேர்ந்தார் + மேடையில் ஏறினார் + கையை உயர்த்தினார் + பேசுகிறார் + கையை உயர்த்தவும் + ஒலியை மீட்டமை + மற்ற கிளையர்கள் உங்கள் விருப்பத்தை படிக்கும் வகையில் kind-10112 மாற்று நிகழ்வாக சேமிக்கப்படும். + உங்கள் சேவையகங்கள் + ஒரு தட்டுதலில் உங்கள் பட்டியலில் சேர்க்கக்கூடிய உள்ளமைக்கப்பட்ட பரிந்துரைகள். + பரிந்துரைக்கப்பட்ட சேவையகங்கள் + Nest சேவையகங்கள் + ஒருபோதும் இல்லை + புதிய சின்னம் + புதிய நாட்காட்டி + புதிய நாட்காட்டி நிகழ்வு + புதிய சமூகம் + மட்டுப்படுத்துவோர் + தடை செய்யப்பட்ட பயனர்கள் + சமூக கருத்து (1111) + நீண்ட கட்டுரை (30023) + படம் இடுகை (20) + குறுகிய உரை (1) + குறுகிய வீடியோ (22) + வீடியோ இடுகை (21) + அனுமதிக்கப்பட்ட நிகழ்வு வகைகள் + உலகளாவிய அதிகபட்ச நிகழ்வு அளவு (விரும்பினால்) + சரிபார்க்கக்கூடிய விதிகள் (விரும்பினால்) + நம்பிக்கை-வலை வாயில் (விரும்பினால்) + புதிய emoji தொகுப்பு + புதிய இலக்கு + புதிய கட்டுரை + புதிய இயல்பட்டியல் + புதிய இசைத் தடம் + புதிய தயாரிப்பு + புதிய கோரிக்கைகள் + புதிய இழைகள் + புதிய உடற்பயிற்சி + + %1$d சொத்து தொகுக்கப்பட்டது + %1$d சொத்துக்கள் தொகுக்கப்பட்டன + + Blossom செயலிகள் கண்டுபிடிக்கப்படவில்லை. இந்த கோப்பை பார்க்க உள்ளூர் Blossom செயலியை நிறுவுக + Blossom இணைப்புகளை திறக்க முடியவில்லை + இந்த சாதனத்தில் கேமரா செயலி எதுவும் கண்டுபிடிக்கப்படவில்லை + Lightning முகவரி அமைக்கப்படவில்லை + இந்த கட்டணத்தை கையாள எந்த பயன்பாடும் கிடைக்கவில்லை. பொருந்தும் பணப்பை நிறுவவும். + %1$s கட்டணங்களை கையாள எந்த பயன்பாடும் நிறுவப்படவில்லை. பொருந்தும் பணப்பை நிறுவவும். + எந்த ரியாக்ஷனும் தேர்ந்தெடுக்கவில்லை. மாற்ற நீண்ட நேரம் அழுத்தவும் + எந்த எதிர்வினையும் அமைக்கப்படவில்லை + lightning இன்வாய்ஸை செலுத்த வாலட்கள் எதுவும் கிடைக்கவில்லை. Zap களை பயன்படுத்த Lightning வாலட்டை நிறுவுக + lightning இன்வாய்ஸை செலுத்த வாலட்கள் எதுவும் கிடைக்கவில்லை (பிழை: %1$s). Zap களை பயன்படுத்த Lightning வாலட்டை நிறுவுக + ஜாப் தொகை அமைப்பு இல்லை. மாற்ற நீண்ட நேரம் அழுத்தவும் + அறிவிப்புகள் + வகைகள் + வழங்கல் + ஆப்-உள் காட்சி + இப்போது + Nowhere கலை + Nowhere வெளியீடு + Nowhere நிகழ்வு + Nowhere மன்றம் + Nowhere நிதி திரட்டல் + Nowhere தளம் + Nowhere செய்தி + Nowhere மனு + Nowhere கடை + பிறந்தமேனி + நிகழ்வு குறிப்பை உருவாக்க முடியவில்லை + குறிப்பில் பெறுநர் pubkey இல்லை + Nutzap-கள் பொது மற்றும் இந்த தனிப்பட்ட குறிப்பை வெளியிடும். அதற்கு பதில் Lightning zap பயன்படுத்தவும். + Nutzap தோல்வியடைந்தது + + %1$s sats அனுப்பு, %2$d வழி + %1$s sats அனுப்பு, %2$d வழிகள் + + Bitcoin சேயின் பின்தள அமைவு இல்லை + பரிவர்த்தனையை ஒளிபரப்ப முடியவில்லை + பரிவர்த்தனையை உருவாக்க முடியவில்லை + உங்கள் Bitcoin இருப்பை ஏற்ற முடியவில்லை + கட்டணம் அனுப்பப்பட்டது, ஆனால் zap ரசீதை வெளியிட முடியவில்லை + + கட்டணம் அனுப்பப்பட்டது (%2$d-ல் %1$d ரசீது வெளியிடப்பட்டது), ஆனால் அடுத்த ரசீதை வெளியிட முடியவில்லை + கட்டணம் அனுப்பப்பட்டது (%2$d-ல் %1$d ரசீதுகள் வெளியிடப்பட்டன), ஆனால் அடுத்த ரசீதை வெளியிட முடியவில்லை + + ஒரு பெறுநர் பங்கு டஸ்ட் வரம்பிற்கு கீழே உள்ளது + பரிவர்த்தனையில் கையொப்மிட முடியவில்லை + ~10 நிமிடம் + ~30 நிமிடம் + ~1 மணி நேரம் + வேகமாக + சாதாரண + மெதுவாக + + %1$d பெறுநருக்கு இடையே பிரிவு + %1$d பெறுநர்களுக்கு இடையே பிரிவு + + + %1$d Lightning-முகவரி மட்டும் உள்ள பெறுநரை தவிர்க்கிறோம் — on-chain முகவரி பெற Nostr pubkey தேவை. + %1$d Lightning-முகவரி மட்டும் உள்ள பெறுநர்களை தவிர்க்கிறோம் — on-chain முகவரி பெற Nostr pubkey தேவை. + + + இந்த குறிப்பின் %1$d-வழி zap பிரிவை பயன்படுத்து + இந்த குறிப்பின் %1$d-வழி zap பிரிவை பயன்படுத்து + + ஒளிபரப்புகிறது + பரிவர்த்தனையை உருவாக்குகிறது + இருப்பு ஏற்றுகிறது + ரசீதை வெளியிடுகிறது + கையொப்மிடுகிறது + இந்த வகை வாக்கெடுப்பில் ஒரு பயனருக்கு ஒரு வாக்கு மட்டுமே அனுமதிக்கப்படுகிறது + இந்த இடுகைக்கான அனைத்து எதிர்வினைகளையும் திற + திறந்தவை + Orbot Socks போர்ட் + பிட்காயின் எக்ஸ்ப்ளோரர் (OTS) + இந்த இடுகை %1$s-க்கு முன்பு ஒரு நேரத்தில் கையொப்பமிடப்பட்டது என்பதற்கான சான்று உள்ளது. சான்று அந்த தேதியிலும் நேரத்திலும் Bitcoin blockchain-ல் முத்திரையிடப்பட்டது. + நேர முத்திரை சான்று + அவுட்பாக்ஸ் Relays + கடவுச்சொல் தேவை + இடைநிறுத்து + செலுத்து + %1$s இலிருந்து செய்தி + கட்டண இலக்குகள் + வெவ்வேறு நெட்வொர்க்குகளுக்கு (எ.கா. bitcoin, lightning, ethereum) கட்டண முகவரிகளை சேர்க்கவும். + PDF, Downloads/Amethyst இல் சேமிக்கப்பட்டது + Follow பட்டியல் மெட்டாடேட்டாவை Nostr-ல் யாரும் பார்க்கலாம். உங்கள் தனிப்பட்ட உறுப்பினர்கள் மட்டுமே குறியாக்கப்பட்டுள்ளனர். + Follow பட்டியல் மெட்டாடேட்டா + படங்கள் + மேலே பொருத்து + சுயவிவரத்தில் பொருத்து + இயக்கு + + %1$d அத்தியாயம் + %1$d அத்தியாயங்கள் + + வாக்கெடுப்பை உருவாக்கியோர் தங்கள் சொந்த வாக்கெடுப்பில் வாக்களிக்க முடியாது. + வாக்கெடுப்பு புதிய வாக்குகளுக்கு மூடப்பட்டது + பல தேர்வுகள் + விருப்பம் %1$s + ஒற்றை தேர்வு + வாக்களிக்க முடியவில்லை + வாக்கெடுப்புகள் + பதிவு + + இந்த இடுகையில் %1$d hashtag-ஐ விட அதிகம் உள்ளது + இந்த இடுகையில் %1$d hashtags-ஐ விட அதிகம் உள்ளது + + %1$s க்கான முன்னோட்ட அட்டைப் படம் + தனியுரிமை விருப்பங்கள் + தனியுரிமைக் கொள்கை + தனிப்பட்ட செய்தியை மறைக்குறியாக்க இயலவில்லை \n \n %1$s மற்றும் %2$s க்கு இடையே தனிப்பட்ட/ குறியாக்கப்பட்ட உரையாடலில் நீங்கள் மேற்கோள் காட்டப்பட்டீர்கள். + DM இன்பாக்ஸ் Relays + உங்கள் தனிப்பட்ட இன்பாக்ஸாக 1–3 relays சேர்க்கவும். மற்றவர்கள் உங்களுக்கு DMs அனுப்ப இந்த relays பயன்படுத்துவார்கள். DM இன்பாக்ஸ் relays யாரிடமிருந்தும் எந்த செய்தியும் ஏற்றுக்கொள்ள வேண்டும், ஆனால் நீங்கள் மட்டுமே அவற்றை பதிவிறக்க அனுமதிக்க வேண்டும். நல்ல விருப்பங்கள்:\n - inbox.nostr.wine (கட்டணம்)\n - auth.nostr1.com (இலவசம்)\n - you.nostr1.com (தனிப்பட்ட relays - கட்டணம்) + பயனர் இந்த relays-ல் DMs பெறுகிறார் + தனிப்பட்ட செய்தி + தனிப்பட்டதாக்கு: குறிப்பிடப்பட்ட பயனர்களுக்கு மட்டுமே பரிசு-சுற்றில் குறிப்பை வழங்கு + தனிப்பட்ட குறிப்புக்கான பதில்கள் எப்போதும் தனிப்பட்டதாக இருக்கும் + யாருக்கு தெரியும் + தனிப்பட்ட முகப்பு Relays + வேறு யாரும் பார்க்க முடியாத நிகழ்வுகளை சேமிக்க 1–3 relays சேர்க்கவும், உங்கள் வரைவுகள் மற்றும்/அல்லது பயன்பாட்டு அமைப்புகள் போன்றவை. ஆனால், இந்த relays உள்ளூர் அல்லது ஒவ்வொரு பயனரின் உள்ளடக்கத்தையும் பதிவிறக்குவதற்கு முன் அங்கீகரிப்பு தேவைப்படுவது சிறந்தது. + அவதூறு / வெறுப்புப் பேச்சு + தன்விவரம் + சுயவிவர சின்னங்கள் + பயன்பாட்டு பரிந்துரைகள் + சுயவிவர பேட்ஜுகள் + பின்தொடர்பவர்கள் ஊட்டம் + Zap பெற்ற ஊட்டம் + சுயவிவர UI + சுயவிவரங்கள் + திருத்தத்தை முன்மொழிக + filter.nostr.wine போன்ற ஒருங்கிணைப்பு relays, பயன்பாடு உங்கள் ஊட்டங்களை பதிவிறக்க பயன்படுத்த வேண்டும். இது அவுட்பாக்ஸ் மாதிரியை மாற்றுகிறது, பயன்பாட்டை உங்கள் பட்டியல்களில் உள்ள relays மட்டுமே இணைக்கும். + பொது அரட்டை + பொது அரட்டைகள் Nostr-ல் அனைவருக்கும் தெரியும் மற்றும் யாரும் + அவற்றில் பங்கேற்கலாம். அவை குறிப்பிட்ட தலைப்புகளை சுற்றிய திறந்த சமூகங்களுக்கு மிகவும் ஏற்றவை. + அதன் relays-ல் இடுகைகளை நீக்குவதன் மூலம் மிதவாண்மையை கட்டுப்படுத்தலாம் + இந்த குழுவை ஹோஸ்ட் செய்யும் 1–3 relays-ஐ உள்ளிடவும். + Nostr கிளையன்கள் செய்திகளை எங்கிருந்து பதிவிறக்கம் செய்வது மற்றும் உங்கள் செய்திகளை எங்கே அனுப்புவது என்பதை அறிய இந்த அமைப்பை பயன்படுத்துகின்றன. + Relay கள் + பொது அரட்டை மெட்டாடேட்டா + பொது அரட்டைகள் + பொது அவுட்பாக்ஸ்/முகப்பு Relays + இந்த relay வகை உங்கள் அனைத்து உள்ளடக்கத்தையும் சேமிக்கிறது. Amethyst உங்கள் இடுகைகளை இங்கே அனுப்பும், மற்றவர்கள் உங்கள் உள்ளடக்கத்தை கண்டுபிடிக்க இந்த relays பயன்படுத்துவார்கள். 1–3 relays சேர்க்கவும். அவை தனிப்பட்ட relays, கட்டண relays அல்லது பொது relays ஆக இருக்கலாம். + பயனர் இந்த relays-ல் தன் உள்ளடக்கத்தை இடுகையிடுகிறார் + பொது செய்தி + பொது இன்பாக்ஸ் Relays + இந்த relay வகை உங்கள் இடுகைகளுக்கான அனைத்து பதில்கள், கருத்துகள், விருப்பங்கள் மற்றும் zaps பெறுகிறது. அவை கட்டண அல்லது இலவச relays ஆக இருக்கலாம். relay ஆபரேட்டர் அமைக்கும் வரம்புகள் நல்லதற்கும் கெட்டதற்கும் நீங்கள் பெறும் அறிவிப்புகளை கட்டுப்படுத்தலாம். எடுத்துக்காட்டாக, கருத்து ஸ்பாம் தாக்குதலுக்கு உட்பட்டால், கட்டண relays ஸ்பாமை வடிகட்டலாம். 1–3 relays சேர்க்கவும். + பயனர் இந்த relays-ல் அறிவிப்புகளைப் பெறுகிறார் + பதிவின் எண் + அழி + இழையை முடக்கவும் + பகிர் + உலாவி இணைப்பைப் பகிரவும் + இழையின் முடக்கத்தை நீக்கவும் + எதிர்வினை + எதிர்வினைகள் + எதிர்வினை வரிசை + படிப்பதற்கான ரிலே + வடிகட்டிகள் மற்றும் நிகழ்வுகள் உட்பட இந்த relay இலிருந்து பெறப்பட்ட பைட்டுகளின் அளவு + படிக்க மட்டும் பயனர் + செய்தி பதிவு செய்ய கிளிக் செய்து பிடிக்கவும் + Relay அரட்டை + Relay அரட்டைகள் என்பவை அவற்றின் முகப்பு relay-ஆல் கட்டுப்படுத்தப்படும் அரட்டை குழுக்கள். + அவை Nostr-ல் அனைவருக்கும் தெரியும் மற்றும் யாரும் அவற்றில் பங்கேற்கலாம். + அவை குறிப்பிட்ட தலைப்புகளை சுற்றிய திறந்த சமூகங்களுக்கு மிகவும் ஏற்றவை. இந்த குழுக்களில் சில தற்காலிகமானவை + எனவே அரட்டை செய்திகள் காலப்போக்கில் மறைந்துவிடும் + Relay அரட்டைகள் + நிகழ்வுகள் + வகைகள் + பயனர்கள் + அமைப்புகள் + Relay அமைப்புகள் + அஞ்சல் வெளி பட்டியல்கள் + ரிலேகள் + நிரப்பி zap அனுப்பு + Zap அனுப்பு + %2$s க்கு %1$s sats நிரப்பி %3$s க்கு %4$s sats zap அனுப்பு · கட்டணம் ≈ %5$s sats + அகற்று + பொது புக்மார்க்குகளிலிருந்து அகற்று + இங்கு பதிலளிக்கவும்.. + தெரிவிக்க + + நீக்கக் கோரு + மறைவு கோரிக்கை + Marmot நிலையை மீட்டமைக்க முடியவில்லை: %1$s + Marmot நிலையை மீட்டமை + Marmot நிலை மீட்டமைக்கப்பட்டது. + மீண்டும் முயற்சி + காலண்டர் பட்டியல்கள் + காலண்டர்கள் + சதுரங்கம் + கண்டுபிடிக்கவும் + முகப்பு + பின்தொடர்பவர்களை இறக்குமதி செய் + செய்திகள் + இயல்பட்டியல்கள் + இசை + அறிவிப்புகள் + அத்தியாயங்கள் + நிகழ்நேரப் பிரசாரங்கள் + இடுகையை திட்டமிடவும் + திட்டமிடலை ரத்து செய்யவும் + திட்டமிட்ட இடுகைகள் நீங்கள் செயலியை மீண்டும் திறக்கும் வரை வெளியிடப்படாமல் போகலாம். இந்த கணக்கு செயலில் இருக்கும்போது மற்ற கணக்குகளின் திட்டமிட்ட இடுகைகள் செயல்படாது. நம்பகமான பின்னணி திட்டமிடலுக்கு அமைப்புகள் → UI விருப்பங்களில் எப்போதும் இயங்கும் வசதியை இயக்கவும். + திட்டமிட்ட இடுகைகள் நீங்கள் அடுத்த முறை செயலியை திறக்கும் வரை வெளியிடப்படாமல் போகலாம். நம்பகமான பின்னணி திட்டமிடலுக்கு அமைப்புகள் → UI விருப்பங்களில் எப்போதும் இயங்கும் வசதியை இயக்கவும். + திட்டமிட்ட இடுகைகள் + இப்போது அனுப்பவும் + %1$s · %2$s இல் + %1$s · %2$s முன்பு + நாளை + பிழை: %1$s + குறிப்பு ID நகலெடுக்கப்பட்டது + + வெளியேறியது · %1$d திட்டமிட்ட இடுகை நீக்கப்பட்டது + வெளியேறியது · %1$d திட்டமிட்ட இடுகைகள் நீக்கப்பட்டன + + வெளியேறப்பட்டது + + இன்னும் வெளியிடப்படாத %1$d திட்டமிட்ட இடுகை உள்ளது. வெளியேறினால் அது நிரந்தரமாக நீக்கப்படும். + இன்னும் வெளியிடப்படாத %1$d திட்டமிட்ட இடுகைகள் உள்ளன. வெளியேறினால் அவை நிரந்தரமாக நீக்கப்படும். + + திட்டமிட்ட இடுகை தோல்வியடைந்தது + திட்டமிட்ட இடுகை வெளியிடப்பட்டது + + %1$d relay-க்கு + %1$d relays-க்கு + + ரத்து செய்யப்பட்டது + தோல்வியடைந்தது + திட்டமிடப்பட்டது + அனுப்புகிறது… + அனுப்பப்பட்டது + + · %1$d 1 மணி நேரத்தில் காலாவதி + · %1$d 1 மணி நேரத்தில் காலாவதி + + + %1$d காத்திருக்கும் + %1$d காத்திருக்கும் + + நல்ல விருப்பங்கள்:\n%1$s + தேடல் Relays + தேடல் Relays + உள்ளடக்கம் அல்லது பயனர்களை தேடும்போது பயன்படுத்த வேண்டிய relays பட்டியல். எந்த விருப்பங்களும் இல்லையென்றால் குறியிடல் மற்றும் தேடல் வேலை செய்யாது. அவை NIP-50 செயல்படுத்துகிறதா என்று உறுதிப்படுத்தவும். + தேடக்கூடிய நிகழ்வுகள் + ரகசிய சாவி (nsec) கிளிப்போர்டுக்கு நகலெடுக்கப்பட்டது + நீங்கள் இன்னும் எந்த பயனரையும் தடுக்கவில்லை. + பாதுகாப்பு வடிப்பான்கள் + மறைக்கப்பட்ட வார்த்தைகள் இல்லை. அதை கொண்ட இடுகைகளை மறைக்க கீழே ஒரு வார்த்தையை சேர்க்கவும். + தடுக்கப்பட்ட உள்ளடக்கம் + வடிகட்டல் விருப்பங்கள் + இந்த அமர்வில் எந்த கணக்கும் ஸ்பாமாக கொடியிடப்படவில்லை. + அனுப்பு + பெறப்பட்ட அனைத்து சுயவிவர (kind 0) நிகழ்வுகளையும் உங்கள் உள்ளூர் relay-க்கு அனுப்பு + சுயவிவரங்களை உள்ளூர் relay-க்கு அனுப்பு + இந்த பெறுநருக்கு செலவிடக்கூடியது: %1$s sats + பணம் செலுத்துதல் தோல்வியடைந்தது + பரிவர்த்தனை: %1$s + %1$s வழியாக செலுத்துகிறது… + பதிவேற்றிய பிறகு சர்வர் URL வழங்கவில்லை + அமைப்புகள் + முடக்கப்பட்ட நூல்கள் இல்லை + முடக்கப்பட்ட நூல்கள் + படமாக பகிரவும் + படத்தின் URL ஆக பகிரவும் + HLS பதிவேற்றம் + பகிர் அல்லது சேமி + குறுவீடியோக்கள் + மறைகுறியாக்கப்பட்ட தனிப்பட்ட விசை QR குறியீட்டை காட்டு + அறிவிப்பு தாவலில் நேரடி மற்றும் குழு செய்திகளை சேர்க்கவும். செய்திகளை செய்திகள் தாவலில் மட்டும் வைக்க அணைக்கவும். + செய்திகளை காட்டு + தனிப்பட்ட விசை QR குறியீட்டை காட்டு + கையொப்பமிடல் கோரிக்கை நிராகரிக்கப்பட்டது + கையொப்பமிடல் செயலி இந்த பரிவர்த்தனையை அங்கீகரித்திருக்கிறதா என சரிபார்க்கவும் + வெளிப்புற கையெழுத்திட்டவர் கோரிக்கைக்கு அசாதாரணமான தரவை திரும்ப அனுப்பியது. Amethyst அல்லது கையெழுத்திட்டவரில் ஒரு பிழை இருக்கலாம். + கையெழுத்திட்டவர் கண்டுபிடிக்கப்படவில்லை + கையெழுத்திட்டவர் செயலி நிறுவல் நீக்கம் செய்யப்பட்டதா? கையெழுத்திட்டவர் நிறுவப்பட்டு இந்த கணக்கை வைத்திருக்கிறதா என சரிபார்க்கவும். கையெழுத்திட்டவர் செயலி மாறியிருந்தால் வெளியேறி மீண்டும் உள்நுழைக. + %1$d வினாடிகள் பின்னோக்கி தவிர் + %1$d வினாடிகள் முன்னோக்கி தவிர் + பயன்பாடுகள் + எரிதம் (தேவையற்றவை) + இந்த relay இலிருந்து வரும் ஸ்பேம் நிகழ்வுகளின் எண்ணிக்கை + ஸ்பாமர்கள் + இரண்டு அறிவிப்பு தாவல்களை காட்டு — தொடர்பவர்கள் (நீங்கள் தொடரும் நபர்கள்) மற்றும் அனைவரும். படிக்காத குறிகாட்டி நீங்கள் தொடரும் நபர்களின் செயல்பாட்டிற்கு மட்டுமே ஒளிர்கிறது. + தொடர்புகளால் அறிவிப்புகளை பிரி + பதிவேற்றுவதற்கு முன் ஆதரவு மீடியா கோப்புகளிலிருந்து தனிப்பட்ட மெட்டாடேட்டாவை நீக்க முயற்சிக்கிறது + தனிப்பட்ட மெட்டாடேட்டாவை அகற்றவும் + Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) இலிருந்து முடிந்த உடற்பயிற்சிகளை படித்து அவற்றை பதிவாக பகிர பரிந்துரைக்கிறது. நீங்கள் இணைக்கும்போது மட்டும் அனுமதி கேட்கப்படும். + பகிர உடற்பயிற்சிகளை பரிந்துரை செய்யவும் + கணினி + தீம் + இருண்ட, வெளிச்சம் அல்லது கணினி தீம் + இந்த செய்தி %1$s-ல் மறைந்துவிடும் + + +%1$d\nபதில் + +%1$d\nபதில்கள் + + இன்று + தனிப்பயன் + உங்களுடையதை உருவாக்கவும் + இயல்புநிலை + சீரற்ற relays இலிருந்து உங்கள் IP ஐ மறைக்கவும் + முழு தனியுரிமை + அனைத்து இணைப்புகளிலும் உங்கள் IP ஐ மறைக்கவும் + உள்ளமைக்கப்பட்டது + அணைக்கவும் + Tor/தனியுரிமை முன்னமைவுகள் + கீழே உள்ள அனைத்து அமைப்புகளையும் விரைவாக மாற்றவும் + மீடியா தவிர அனைத்தும் + படங்கள் மற்றும் வீடியோக்கள் தவிர அனைத்திலும் உங்கள் IP ஐ மறைக்கவும் + DM அனுப்பவும் பெறவும் Tor கட்டாயமாக்கவும் + படங்கள் + படங்களை ஏற்றும்போது Tor கட்டாயமாக்கவும் + மீடியா பதிவேற்றங்கள் + உள்ளடக்கம் பதிவேற்றும்போது Tor கட்டாயமாக்கவும் + பண பரிவர்த்தனைகள் + zaps, lightning மற்றும் cashu பரிமாற்றங்களில் Tor கட்டாயமாக்கவும் + நம்பப்படாத Relays + outbox/inbox relays இல் Tor கட்டாயமாக்கவும் + Nostr முகவரி சரிபார்ப்பு + NIP-05 முகவரிகளை சரிபார்க்கும்போது Tor கட்டாயமாக்கவும் + எந்த .onion url க்கும் Tor பயன்படுத்தவும் + சுயவிவர படங்கள் + சுயவிவர படங்களை ஏற்றும்போது Tor கட்டாயமாக்கவும் + நம்பகமான Relays + உங்கள் பட்டியல்களில் உள்ள அனைத்து relays இலும் Tor கட்டாயமாக்கவும் + URL முன்னோட்டங்கள் + url முன்னோட்டங்களை ஏற்றும்போது Tor கட்டாயமாக்கவும் + வீடியோக்கள் + வீடியோக்களை ஏற்றும்போது Tor கட்டாயமாக்கவும் + அடிப்படை + சேவையகம் தேவைப்படும்போது Tor பயன்படுத்தவும் + கோப்பை திறக்கத் தவறியது + கோப்பை திறக்க மற்றும் பதிவிறக்க torrent பயன்பாடுகள் எதுவும் நிறுவப்படவில்லை. + magnet இணைப்பை உருவாக்க நிகழ்வில் போதுமான தகவல் இல்லை + நிகழ்வுகளை அனுப்பும்போது கண்காணிக்கப்பட்ட ஒளிபரப்பாளரை பயன்படுத்தவும். ஒளிபரப்பும்போது நேரடி முன்னேற்றம் மற்றும் ஒவ்வொரு relay நிலையையும் காட்டுகிறது. + கண்காணிக்கப்பட்ட ஒளிபரப்புகள் + இதற்கு மொழிபெயர்க்கவும் + உள்ளடக்கத்தை மொழிபெயர்க்க வேண்டிய மொழியை தேர்ந்தெடுக்கவும். + மொழிபெயர்ப்புகள் + நம்பகமான Relays + Tor இணைப்பு தேவையில்லை என்று நீங்கள் நம்பும் Relays + முழுமை + செயல்திறன் + எளிமைப்படுத்தப்பட்ட + UI விருப்பங்கள் + UI பயன்முறை + இடுகை பாணியை தேர்ந்தெடுக்கவும் + Zap அனுப்புவதற்கு முன் lightning இன்வாய்ஸை உருவாக்க முடியவில்லை. பெறுநரின் lightning வாலட் பின்வரும் பிழையை அனுப்பியது: %1$s + படத்தைப் பகிர முடியவில்லை, பின்னர் மீண்டும் முயற்சிக்கவும்… + வீடியோவைப் பகிர முடியவில்லை, பின்னர் மீண்டும் முயற்சிக்கவும்… + அங்கீகரிக்கப்படாத மறைகுறியாக்கம் + இந்த செயல்பாட்டை முடிக்க தேவையான மறைகுறியாக்கத்தை கையெழுத்திட்டவர் அங்கீகரிக்கவில்லை. உங்கள் கையெழுத்திட்டவர் செயலியில் NIP-44 மறைகுறியாக்கங்களை இயக்கி மீண்டும் முயற்சிக்கவும் + நிறுத்து + பொருத்தலை நீக்கு + சுயவிவரத்திலிருந்து நீக்கு + பதிவேற்றம் ரத்துசெய்யப்பட்டது + பதிவேற்ற பிழை + குரல் பதிவேற்றம் தோல்வியடைந்தது: %1$s + குரல் செய்தியை பதிவேற்ற தோல்வியடைந்தது + குரல் செய்திகளுக்கு NIP-95 இன்னும் ஆதரிக்கப்படவில்லை + %1$d%% இயக்க நேரம் + செயலில் Tor எஞ்சின் + உள்ளமைக்கப்பட்ட பதிப்பு அல்லது Orbot பயன்படுத்தவும் + பயனர் ஸாட்கள் பெறுவதற்கு லைட்னிங் முகவரி அமைக்கவில்லை + பயனர் %1$s க்கு sats பெறுவதற்கான lightning முகவரி அமைப்பு இல்லை + மறைவு வரலாறு + மறைவு கோரிக்கை அனுப்பப்பட்டது + சிறிய கோப்பு அளவுகளில் சிறந்த தரம், ஆனால் எல்லா சாதனங்களும் H.265 இயக்கத்தை ஆதரிக்காது. + H.265/HEVC கோடெக் பயன்படுத்தவும் + வீடியோ பதிவிறக்கம் தொடங்கியது… + வீடியோ பிளேயர் பொத்தான்கள் + வீடியோ தொலைபேசியின் வீடியோ தொகுப்பில் சேமிக்கப்பட்டது + குரல் இடுகை + ஆழமான + உயர்ந்த + நடுநிலை + எதுவுமில்லை + குரல் பதில் + பணப்பை + Cashu பணப்பை (NIP-60) + உங்கள் wallet connect வழங்குனர் பின்வரும் பிழையை திருப்பி அனுப்பியது: %1$s + Mint-களை திருத்தவும் + இடுகைகள் அல்லது சுயவிவரங்களுக்கு உங்கள் தொடர்புகளிடமிருந்து அறிக்கைகள் இருக்கும்போது எச்சரிக்கை செய்தி காட்டுகிறது + அறிக்கைகளில் எச்சரி + வலை புக்மார்க் சேர்க்கவும் + வலை புக்மார்க் திருத்தவும் + வலை புக்மார்க்கள் + உங்கள் மனதில் என்ன உள்ளது? + உடற்பயிற்சிகள் + ஒரு செய்தி எழுதவும்… + போஸ்ட் செய்வதற்கான ரிலே + வடிகட்டிகள் மற்றும் நிகழ்வுகள் உட்பட இந்த relay க்கு அனுப்பப்பட்ட பைட்டுகளின் அளவு + ஜாப்கள் + + பெயர் மாற்று + சேமி diff --git a/commonsUI/src/commonMain/composeResources/values-ta/strings.xml b/commonsUI/src/commonMain/composeResources/values-ta/strings.xml index dab326e4a0..7231708e27 100644 --- a/commonsUI/src/commonMain/composeResources/values-ta/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-ta/strings.xml @@ -1822,4 +1822,1219 @@ மூலம்: சேவையகங்கள்: திறக்கவும் + பற்றி & சட்டம் + கணக்கு அமைப்புகள் + சேர் + Blossom சேவையகம் சேர்க்கவும் + NIP-96 சேவையகம் சேர்க்கவும் + இயக்கப்படும்போது, Amethyst நீங்கள் வெளியிடும் நிகழ்வுகளில் NIP-89 கிளையண்ட் குறிச்சொல்லை இணைக்கிறது. + என் நிகழ்வுகளில் கிளையண்ட் குறிச்சொல் சேர் + இந்த உள்ளடக்கத்தை காட்டுவதற்கு முன் உணர்திறன் உள்ளடக்க எச்சரிக்கை சேர்க்கிறது + உணர்திறன் உள்ளடக்கம் + பொது புக்மார்க்குகளில் சேர்க்கவும் + உரை திருத்தங்கள் மற்றும் தொனி மாற்றங்களை பரிந்துரைக்க சாதனத்திலுள்ள AI மாதிரியை பயன்படுத்துகிறது. + உரை மேம்பாடுகளை பரிந்துரை செய்யவும் + நிகழ்நேர அறிவிப்புகளுக்காக உங்கள் inbox relays உடன் இணைப்புகளை செயலில் வைக்கிறது + + %1$d inbox relay-உடன் இணைக்கப்பட்டது + %1$d inbox relays-உடன் இணைக்கப்பட்டது + + + %1$d relay-உடன் இணைக்கப்பட்டது + %1$d relays-உடன் இணைக்கப்பட்டது + + inbox relays உடன் இணைக்கிறது… + Amethyst அறிவிப்புகள் செயலில் + வரும் குரல் மற்றும் வீடியோ அழைப்புகளுக்கான அறிவிப்புகள் + வரும் அழைப்புகள் + %1$s உங்கள் சதுரங்க சவாலை ஏற்றார் + சதுரங்க விளையாட்டு நிகழ்வுகளை பற்றி அறிவிக்கிறது + சதுரங்கம் + சதுரங்க புதுப்பிப்புகள் + %1$s நகர்ந்தார் — உங்கள் முறை + தனிப்பட்ட செய்தி வருகையில் தெரிவிக்கவும் + தனிப்பட்ட செய்திகள் + புதிய செய்திகள் + படித்ததாக குறி + யாரோ ஒரு இடுகையில் உங்களை குறிப்பிடும்போது அல்லது மேற்கோள் காட்டும்போது அறிவிக்கிறது + %1$s உங்களை குறிப்பிட்டார் + குறிப்பீடுகள் + புதிய குறிப்பீடுகள் + யாரோ உங்கள் இடுகைக்கு எதிர்வினை செய்யும்போது அறிவிக்கிறது + %1$s உங்கள் இடுகைக்கு எதிர்வினை செய்தார் + %1$s க்காக + எதிர்வினைகள் + புதிய எதிர்வினைகள் + யாரோ உங்கள் இடுகைக்கு பதில் செய்யும்போது அறிவிக்கிறது + பதில்கள் + புதிய பதில்கள் + பதில் + திட்டமிட்ட இடுகை வெளியிடப்படும்போது அல்லது வெளியிட தோல்வியடையும்போது அறிவிப்புகள். + திட்டமிட்ட இடுகைகள் + யாரேனும் உங்களுக்கு ஜாப் அனுப்பும்போது தெரிவிக்கவும் + %1$s ஸாட்ஸ் + %1$s -க்கு + %1$s -இடமிருந்து + ஜாப் பெறப்பட்டது + புதிய zaps + செயலி அமைப்புகள் + சான்றிதழ் + சான்றிதழ் கோரிக்கை + சான்றளிப்பவர் திறன் + சான்றளிப்பவர் பரிந்துரை + ஆடியோ காட்சிப்படுத்தி + நீங்கள் தட்டச்சு செய்யும்போது அல்லது அனுப்பப்படாத உரையுடன் ஒரு எழுத்துக் கலைஞரை விட்டு வெளியேறும்போது தானாகவே வரைவு நிகழ்வை சேமித்து உங்கள் தனிப்பட்ட outbox relays-களுக்கு அனுப்புகிறது. + தானாக வரைவுகளை உருவாக்கவும் + மூழ்கிய சுருள் + சுருள்லும்போது நேவிகேஷன் பட்டிகளை மறை + படம் முன்னோட்டம் + படங்களை மற்றும் GIF களை தானாக ஏற்று + வீடியோ இயக்கம் + வீடியோக்களை மற்றும் GIF களை தானாக ஏற்று + சுயவிவர படம் + சுயவிவர படங்களை காட்டு + URL முன்னோட்டம் + URL முன்னோட்டங்களை காட்டு + வீடியோக்களை தானாக இயக்கு + திரையில் தெரியும்போது வீடியோக்களை தானாக இயக்கு + AVIF-இலிருந்து மெட்டாடேட்டாவை நீக்க முடியவில்லை: %1$s + சின்னம் வழங்கு + பின் + காப்புச் சாவிகள் + சின்னங்கள் + அங்கீகரிப்பு தோல்வியுற்றது + இந்த தொலைபேசியின் உரிமையாளரை பயோமெட்ரிக்ஸ் அங்கீகரிக்க தோல்வியடைந்தது + இந்த தொலைபேசியின் உரிமையாளரை பயோமெட்ரிக்ஸ் அங்கீகரிக்க தோல்வியடைந்தது. பிழை: %1$s + தடு + தடுக்கப்பட்ட Relays + Amethyst இந்த relays-க்கு ஒருபோதும் இணைக்காது + முடக்கப்பட்டப் பயனர்கள் + புதிய புக்மார்க் பட்டியல் + புக்மார்க் பட்டியல் மெட்டாடேட்டா + புக்மார்க் பட்டியல் மெட்டாடேட்டா Nostr இல் யாரும் காண முடியும். உங்கள் தனிப்பட்ட உறுப்பினர்கள் மட்டுமே குறியாக்கம் செய்யப்படுவார்கள். + புக்மார்க்குகள் + உயர்த்து + கீழ் வழிசெலுத்தல் பட்டை + ஒளிபரப்பு Relays + sendit.nosflare.com போன்ற, உங்கள் குறிப்புகளை மற்ற அனைத்து relays-க்கும் தள்ளுவதில் நிபுணத்துவம் பெற்ற Relays. Amethyst நீங்கள் செய்யும் அனைத்து புதிய நிகழ்வுகளிலும் இந்த relay-ஐ சேர்க்கும் + உலாவி + விருப்பங்கள் + திறந்த வலை மூலம் ஏற்றுகிறது. Tor ஐ பயன்படுத்த தட்டவும். + Tor மூலம் ஏற்றுகிறது. திறந்த வலையை பயன்படுத்த தட்டவும். + + %1$s, %2$d நிகழ்வு + %1$s, %2$d நிகழ்வுகள் + + படம் பதிவேற்றம் தோல்வியடைந்தது + தேர்ந்தெடுக்கப்பட்ட படத்தை பதிவேற்ற முடியவில்லை. மீண்டும் முயற்சிக்கவும் அல்லது URL ஒட்டவும். + நாட்காட்டி நிகழ்வை பகிர் + வரைபடங்களில் திற + இணைப்பை திற + இப்போது நடக்கிறது + %1$s · %2$s இல் முடிகிறது + + %1$d நிமிடத்தில் தொடங்கும் + %1$d நிமிடங்களில் தொடங்கும் + + நீங்கள் கலந்துகொள்ளும் நிகழ்வு தொடங்கப்போகும்போது முன்னறிவிப்பு. + calendar_reminders + நாட்காட்டி நினைவூட்டல்கள் + நாட்காட்டி நிகழ்வு + நீங்கள் கலந்துகொள்ளும் நிகழ்வு தொடங்கப்போகும்போது அறிவிப்பு வரும். + நினைவூட்டல்களை அனுப்பு + + %1$d நிமிடம் + %1$d நிமிடம் + + நாட்காட்டி நினைவூட்டல்கள் + நாள் + ஊட்டம் + மாதம் + வாரம் + ஏற்கவும் + புளூடூத் + கேமரா அணை + கேமரா இயக்கு + காதுகேட்கும் கருவி + அழைப்பு துண்டி + வரும் அழைப்பு + வரும் வீடியோ அழைப்பு… + வரும் குரல் அழைப்பு… + முடக்கு + அழைப்புகள் + நடைமுறையில் உள்ள அழைப்பு அறிவிப்பு + வீடியோ அழைப்பை தொடங்க Amethyst க்கு கேமரா மற்றும் மைக்ரோஃபோன் அணுகல் தேவை. பயன்பாட்டு அமைப்புகளில் அவற்றை இயக்கவும். + குரல் அழைப்பை தொடங்க Amethyst க்கு மைக்ரோஃபோன் அணுகல் தேவை. பயன்பாட்டு அமைப்புகளில் அதை இயக்கவும். + நிராகரி + அழைப்பு அமைப்புகள் + ஸ்பீக்கர் + முடக்கு நீக்கு + %1$s உடன் அழைப்பு + %1$s இன் பதிலில் callback URL கிடைக்கவில்லை + ரத்து + Cashu வில்லை + Mint-ஐ சரிபார்க்கிறது… + Cashu ஐ மீட்டெடுக்க முடியவில்லை + Mint பின்வரும் பிழை செய்தியை வழங்கியது: %1$s + பெறப்பட்டது + அனுப்பப்பட்டது + பொருந்தும் mints + + +%1$d மேலும் + +%1$d மேலும் + + பிரபலமான mints + + %1$d பிறரால் பரிந்துரைக்கப்பட்டது + %1$d பிறரால் பரிந்துரைக்கப்பட்டது + + %1$s sat-ஐ %2$s-க்கு நகர்த்தப்பட்டது. + கணினியில் பொருந்தக்கூடிய Cashu வாலட் கிடைக்கவில்லை + + %1$d நிலுவை invoice + %1$d நிலுவை invoices + + %1$s sat + கட்டணமாக %2$s sat வரை செலுத்தவா? + %1$s-க்கான உங்கள் kind:38000 பரிந்துரைக்கு நீக்க கோரிக்கையை வெளியிடவும். NIP-09-ஐ மதிக்கும் relay-கள் அதை நீக்கும். + %2$s ஆதாரங்களில் %1$s sats மீட்டெடுக்கப்பட்டது. + Cashu பெறப்பட்டது + %1$s sats உங்கள் வாலட்டுக்கு அனுப்பப்பட்டது. (கட்டணம்: %2$s sats) + + நீங்கள் பயன்படுத்தாத %1$d mint-ல் நிதி உள்ளது + நீங்கள் பயன்படுத்தாத %1$d mints-ல் நிதி உள்ளது + + இன்வாயிஸ் செலுத்தப்படுவதற்கு காத்திருக்கிறது… + + %1$d mint + %1$d mints + + அனுப்புவதை நிறுத்தவும் + சாதனத்திற்கு அனுப்பவும் + குழந்தை பாதுகாப்பு தரநிலைகள் + துணைக்கருவிகள் + கலை + புத்தகங்கள் + ஆடைகள் + சேகரிப்பு பொருட்கள் + கைவினை + மின்னணுவியல் + உடற்பயிற்சி + உணவு + தளபாடங்கள் + வீடு + இதர + அலுவலகம் + மற்றவை + செல்லப்பிராணிகள் + விளையாட்டு + தினசரி + மாதாந்திர + ஒரு முறை + வாராந்திர + %2$s வழியாக %1$s செலுத்தவா? + %1$s வழியாக இந்த விலைப்பட்டியலை செலுத்தவா? + டெபிட் சேவை பணத்தை செலுத்தி முடிக்கவில்லை. + இந்த சலுகைக்கு சரியான தொகையை உள்ளிடவும். + விலைப்பட்டியல் கோரப்படுகிறது… + இந்த இடுகைக்கான அனைத்து எதிர்வினைகளையும் மூடு + மூடப்பட்டவை + சமூகங்கள் + வரைவு %1$d bytes; இந்த சமூகம் இந்த வகைக்கு %2$d bytes வரை அனுமதிக்கிறது. + வரைவு %1$d bytes; இந்த சமூகம் நிகழ்வுகளை %2$d bytes வரை மட்டுமே அனுமதிக்கிறது. + நீங்கள் இன்று இந்த வகையில் %1$d நிகழ்வுகளை ஏற்கனவே இடுகையிட்டுள்ளீர்கள் (வரம்பு %2$d). + எழுதும் அமைப்புகள் + இயல்புநிலை போர்ட் 9050 + இணைந்த Relays + தற்போது பயன்படுத்தப்படும் relays பட்டியல் + relay உடனான வெற்றிகரமான இணைப்புகளின் சதவீதம் + எப்போதும் + ஒருபோதும் இல்லை + அளவிடா WiFi + ஆவணத்தைச் சேர்க்கவும் + படத்தைச் சேர்க்கவும் + மீடியா சேர் + காணொளியைச் சேர்க்கவும் + மறை + எச்சரி + காட்டு + உரையாடல்கள் + சிறிய கோப்பு அளவு மற்றும் சிறந்த இயக்க இணக்கத்திற்காக அனிமேட்டட் GIF-ஐ MP4 வீடியோவாக மாற்றுகிறது. + GIF-ஐ MP4-ஆக மாற்றவும் + கிளிப்போர்டுக்கு குறிப்பு ஐடி (@note1) நகலெடுக்கப் பட்டது + குறிப்பு கிளிப்போர்டுக்கு நகலெடுக்கப் பட்டது + கிளிப்போர்டுக்கு நகலெடுக்கப்பட்டது + கிளிப்போர்டுக்கு எழுத்தாளரின் @npub நகலெடுக்கப் பட்டது + எனது ரகசிய சாவியை நகலெடுக்கவும் + கிளிப்போர்டுக்கு நகலெடு + Lightning முகவரி "%1$s" இலிருந்து LNUrl ஐ உருவாக்க முடியவில்லை. பயனரின் அமைப்பை சரிபார்க்கவும் + பதிவேற்றத்திற்குப் பிறகு பதிவிறக்கிய கோப்பை சரிபார்க்க முடியவில்லை: %1$s + சர்வரிலிருந்து பதிவேற்றிய மீடியாவை பதிவிறக்க முடியவில்லை + %1$s இலிருந்து இன்வாய்ஸை பெற முடியவில்லை: %2$s + சுருக்கப்பட்ட கோப்பை திறக்க முடியவில்லை + வாலட் கிடைக்கவில்லை + Nostr Wallet Connect (NWC)-ஐ ஆதரிக்கும் எந்த பணப்பை பயன்பாடுகளையும் Amethyst கண்டுபிடிக்கவில்லை. +\n\nநீங்கள் செய்யக்கூடியவை: +\n\t1. NWC ஆதரவை சரிபாருங்கள்: உங்கள் விருப்பமான பணப்பை பயன்பாடு Nostr Wallet Connect-உடன் இணக்கமானதா என இரட்டிப்பு சரிபாருங்கள். +\n\t2. இணைப்பை உருவாக்குங்கள்: உங்கள் பணப்பை பயன்பாட்டிற்கு சென்று புதிய NWC இணைப்பை உருவாக்குங்கள். +\n\t3. Amethyst-உடன் இணைக்குங்கள்: உங்கள் பணப்பை பொதுவாக மூன்று விருப்பங்களை வழங்கும்: +\n\t\t3.1 தானியங்கி இணைப்பு: Amethyst-ஐ தானாக திறந்து இணைக்க ஒரு பொத்தான். அவ்வாறிருந்தால், அந்த பொத்தானை அழுத்தி Amethyst-ஐ திறந்து புதிய திரையில் சேமி அழுத்துங்கள். +\n\t\t3.2 கைமுறை இணைப்பு: நீங்கள் நகலெடுக்கக்கூடிய Connection URI, இந்த திரையில் ஒட்டு ஐகானை அழுத்தி நேரடியாக உள்ளிடலாம். +\n\t\t3.3 QR குறியீடு: பணப்பை ஒரு QR குறியீட்டை உருவாக்கும், இந்த திரையில் QR குறியீடு பொத்தானிலிருந்து படிக்கலாம். + + உருவாக்கு + நா + ஆபத்து மண்டலம் + இருள் + தகவல் + பொதுவாக்கு + அரட்டை + சமூகங்கள் + ஊட்ட அல்காரிதங்கள் + பின்தொடர் தொகுப்புகள் + நேரடி ஒளிபரப்புகள் + சந்தை + வாசிப்புகள் + DM இன்பாக்ஸ் Relays + DMs + இதிலிருந்து மொழிபெயர்க்காதே + இங்கே காட்டப்படும் மொழிகள் மொழிபெயர்க்கப்படாது. மொழியை தேர்ந்தெடுத்து அகற்று, மீண்டும் மொழிபெயர்க்கப்படும். + தொலைபேசியில் சேமிக்கவும் + வீடியோவை பதிவிறக்குகிறது… + வரைவு குறிப்பு + வரைவுகள் + கணக்குகள் + உருவாக்கு + தொடர்கள் + வழிசெல்க + அமைப்பு + நீங்கள் + + %1$d நாள் + %1$d நாட்கள் + + + %1$d மணி நேரம் + %1$d மணி நேரங்கள் + + + %1$d நிமிடம் + %1$d நிமிடங்கள் + + + %1$d மாதம் + %1$d மாதங்கள் + + + %1$d வாரம் + %1$d வாரங்கள் + + + %1$d ஆண்டு + %1$d ஆண்டுகள் + + நாட்காட்டியை திருத்து + நாட்காட்டி நிகழ்வை திருத்து + சமூகத்தை திருத்து + emoji தொகுப்பை திருத்து + இசை பட்டியலை திருத்து + இடுகையைத் திருத்து + தனிப்பட்ட emojis relays-இல் குறியாக்கப்பட்டு சேமிக்கப்படும் மற்றும் உங்களுக்கு மட்டுமே தெரியும். அவை பொது emojis போலவே உங்கள் எதிர்வினை மெனு மற்றும் ":" தானாக நிரப்பியில் தோன்றும். + பொது emojis அனைவருக்கும் தெரியும் மற்றும் இந்த தொகுப்பு உங்கள் emoji பட்டியலில் இருக்கும்போது உங்கள் எதிர்வினை மெனு மற்றும் ":" தானாக நிரப்பியில் தோன்றும். + Emojis + தனியுரிமைக்காக பதிவேற்றுவதற்கு முன் கோப்புகளை குறியாக்கவும். சில சர்வர்கள் இலவச கணக்குகளில் குறியாக்கப்பட்ட கோப்புகளை ஏற்காது. + கோப்புகளை குறியாக்கு + மறையும் அரட்டை + பிழை + இன்வாய்ஸை செலுத்த முடியவில்லை + திரும்பப் பெற முடியவில்லை + கட்டணத்தை திறக்க முடியவில்லை + Zap அனுப்ப முடியவில்லை + கையொப்பமிடல் செயலியை திறக்கும்போது பிழை + கையொப்பமிடல் செயலியை கண்டுபிடிக்க முடியவில்லை. செயலி நிறுவல் நீக்கப்படவில்லையா என சரிபார்க்கவும் + பிழை செய்தியை பாகுபடுத்துவதில் பிழை + %1$s இலிருந்து JSON ஐ பாகுபடுத்துவதில் பிழை. பயனரின் lightning அமைப்பை சரிபார்க்கவும் + பெறுநரின் சேவையகங்களிலிருந்து இன்வாய்ஸை பெற முடியவில்லை + உலாவியில் திற + இந்த வீடியோவை இயக்க முடியவில்லை + இந்த சாதனத்தில் codec அல்லது வடிவம் ஆதரிக்கப்படவில்லை (%1$s). உங்கள் உலாவியில் திறக்க முயற்சிக்கவும். + பிழைகள் + Relay ஒத்திசைவு + உங்களிடமிருந்து நிகழ்வுகள் + உங்களுக்கான நிகழ்வுகள் + AMRAP + சுற்று பயிற்சி + சைக்கிள் ஓட்டுதல் + உணவு முறை + EMOM + உண்ணாவிரதம் + மலையேற்றம் + தியானம் + படகு ஓட்டுதல் + ஓட்டம் + வலிமை பயிற்சி + நீச்சல் + நடைப்பயணம் + யோகா + விரிவாக்கு + காலாவதி தேதி + Relay அமைப்புகளை ஏற்றுமதி செய் + நீக்கம் தோல்வியடைந்தது: %1$s + உங்கள் தனிப்பட்ட விசையை மறைகுறியாக்க தோல்வியடைந்தது + படத்தைச் சேமிக்க இயலவில்லை + PDF ஐ சேமிக்க தோல்வியடைந்தது + வீடியோவை சேமிக்க தோல்வியடைந்தது + பல சர்வர்கள் இலவச கணக்குகளில் குறியாக்கப்பட்ட கோப்புகளை ஏற்காது. குறியாக்கம் இல்லாமல் மீண்டும் முயற்சிக்கலாம். + குறியாக்கப்பட்ட பதிவேற்றம் தோல்வியடைந்தது + பதிவேற்றப் பிழை: %1$s + மீடியா பதிவேற்றம் தோல்வியடைந்தது + %1$s-க்கு பதிவேற்றம் தோல்வியடைந்தது: %2$s + விருப்பங்களில் சேர்க்கவும் + திறந்த வலை மூலம் ஏற்றுகிறது. + Tor மூலம் ஏற்றுகிறது. + சமீபத்தியவை + விருப்பங்களிலிருந்து அகற்று + அந்த பயன்பாடு இன்னும் ஏற்றப்படவில்லை. ஒரு கணம் கழித்து மீண்டும் முயற்சிக்கவும். + விருப்பமான பயன்பாடுகள் + விருப்பமான ஊட்ட அல்காரிதங்கள் + ஒரு கட்டணம் செய்யப்பட்டது + relays இல் வெளியிடப்பட்டது + ஒரு கோப்பு பதிவேற்றப்பட்டது + விருப்பமான Relay ஊட்டங்கள் + உங்கள் பொது ஊட்டத்தை பார்க்க நீங்கள் அடிக்கடி செல்லும் Relays + சமுதாயங்கள் + ஊட்ட அல்காரிதங்கள் + ஊட்டங்கள் + Hashtags + ஆர்வ தொகுப்புகள் + பட்டியல்கள் + இடங்கள் + Relays + கோப்புச் சேவையகம் + இந்த கோப்பை பதிவேற்ற ஒரு சேவையகத்தை தேர்வு செய்க + 5 அல்லது அதிகமான முறை சரியாக ஒரே மாதிரியான அந்நியர்களின் இடுகைகளை மறைக்கிறது + ஸ்பாம் வடிகட்டு + பின்தொடர் + பதிலுக்கு பின்தொடரவும் + அனைத்து விருப்பமான ஊட்ட அல்காரிதங்கள் + என்னை சுற்றி + தொகுக்கப்பட்டது + முழுதளாவிய + இயல்புநிலை தொடர் பட்டியல் + எல்லா பின்பற்றப் படுவோர் + அனைத்து பயனர் தொடர்புகளும் + என்னுடையது + முடக்கு பட்டியல் + புதிய தொடர் தொகுப்பு + Follow Pack-ஐ திருத்து + Follow pack மெட்டாடேட்டாவை Nostr-ல் யாரும் பார்க்கலாம் மற்றும் புதிய பயனர்களுக்கான தொடக்க கருவியாக பல இணையதளங்களில் அடிக்கடி வெளியிடப்படுகிறது. + Follow Pack மெட்டாடேட்டா + Follow Packs + புதிய தொடர் பட்டியல் + பட்டியலை திருத்து + சுயவிவர கேலரி பாணி + கேலரி பாணியை தேர்ந்தெடுக்கவும் + கிளாசிக் + நவீன + இடம்-மட்டுமான இடுகை + இடத்தை பின்தொடர்பவர்கள் மட்டுமே அதை பார்ப்பார்கள். உங்கள் பொது பின்தொடர்பவர்கள் அதை பார்க்கமாட்டார்கள். + %2$s sats இலக்கில் %1$s நிதியளிக்கப்பட்டது + ம + படம் மாறிவிட்டது. மாற்றத்தை பயனர் பார்த்திருக்க மாட்டார் + இது என்ன அர்த்தம்? + பதிவு பதியப்பட்ட பின்னர் படம் மாற்றப்படவில்லை + வணக்கம் %1$s, இது இன்னும் கிடைக்கிறதா? + மறைக்கப்பட்ட வார்த்தைகள் + சமூகம் NIP-9B விதிகள் ஆவணத்தை வெளியிடும்போது மற்றும் ஒரு நிகழ்வு அதை தவறுகையில் சமூக ஊட்டங்களிலிருந்து இடுகைகளை நீக்குகிறது. சமூகத்திற்கு கட்டமைக்கப்பட்ட விதிகள் இல்லாத போது எந்த விளைவும் இல்லை. + சமூக விதிகளை மீறும் இடுகைகளை மறை + கடவுச்சொல்லை மறைக்கவும் + %1$s பதிவேற்றுகிறது (%3$d-ல் %2$d) + அனைத்தும் + தவறான கோரிக்கை - சேவையகம் கோரிக்கையை செயலாக்க முடியவில்லை அல்லது மறுக்கிறது. + அங்கீகரிக்கப்படவில்லை - பயனருக்கு செல்லுபடியாகும் அங்கீகார சான்றுகள் இல்லை + கட்டணம் தேவை - கோரிக்கையை நிறைவேற்ற சேவையகம் கட்டணம் தேவைப்படுகிறது + தடைசெய்யப்பட்டது - கோரிக்கையை செய்ய பயனருக்கு அணுகல் உரிமைகள் இல்லை + கிடைக்கவில்லை - கோரப்பட்ட முகவரியை சேவையகம் கண்டுபிடிக்கவில்லை + முறை அனுமதிக்கப்படவில்லை - சேவையகம் கோரிக்கை முறையை ஆதரிக்கிறது, ஆனால் இலக்கு வளத்தை இல்லை + ஏற்றுக்கொள்ளத்தக்கதல்ல - கோரிக்கையை திருப்திப்படுத்தும் எந்த உள்ளடக்கத்தையும் சேவையகம் கண்டுபிடிக்கவில்லை. + Proxy அங்கீகரிப்பு தேவை - பயனருக்கு செல்லுபடியாகும் அங்கீகார சான்றுகள் இல்லை + கோரிக்கை காலாவதி - வேறு யாரோ காத்திருக்க சேவையகம் காலாவதியானது + முரண்பாடு - வளத்துடன் முரண்பாடு இருப்பதால் சேவையகம் கோரிக்கையை நிறைவேற்ற முடியவில்லை + நீங்கிவிட்டது - கோரப்பட்ட உள்ளடக்கம் சேவையகத்திலிருந்து நிரந்தரமாக நீக்கப்பட்டது, மீண்டும் வழங்கப்படாது + நீளம் தேவை - வரையறுக்கப்பட்ட Content-Length தேவைப்படுவதால் சேவையகம் கோரிக்கையை நிராகரிக்கிறது + முன்நிபந்தனை தோல்வியடைந்தது - சேவையகம் பூர்த்திசெய்யாத தலைப்பு புலங்களில் கோரிக்கையின் முன்நிபந்தனைகள் + பேலோட் மிகவும் பெரியது - கோரிக்கை சேவையகத்தின் வரையறுக்கப்பட்ட வரம்புகளை விட பெரியது, சேவையகம் அதை செயலாக்க மறுக்கிறது + URI மிகவும் நீண்டது - கிளையன்ட் கோரிய URL சேவையகம் செயலாக்க மிகவும் நீண்டது. + ஆதரிக்கப்படாத மீடியா வகை - கோரிக்கை சேவையகம் ஆதரிக்காத மீடியா வடிவத்தைப் பயன்படுத்துகிறது + வரம்பு திருப்திகரமாக இல்லை - கோரிக்கையின் Range தலைப்பு புலத்தில் குறிப்பிடப்பட்ட மதிப்பை சேவையகம் நிறைவேற்ற முடியவில்லை. + எதிர்பார்ப்பு தோல்வியடைந்தது - Expect கோரிக்கை தலைப்பு புலத்தால் குறிப்பிடப்பட்ட தேவைகளை சேவையகம் பூர்த்திசெய்ய முடியவில்லை + மேம்படுத்துதல் தேவை - கிளையன்ட் வேறு நெறிமுறைக்கு மேம்படுத்தாத வரை தற்போதைய நெறிமுறையைப் பயன்படுத்தி கோரிக்கையை செயலாக்க சேவையகம் மறுக்கிறது. + உள் சேவையக பிழை - சேவையகம் எதிர்பாராத பிழையை சந்தித்தது, கோரிக்கையை நிறைவேற்ற முடியவில்லை + செயல்படுத்தப்படவில்லை - கோரிக்கையை சேவையகம் நிறைவேற்ற முடியவில்லை அல்லது கோரிக்கை முறையை அடையாளம் காணவில்லை + தவறான நுழைவாயில் - சேவையகம் நுழைவாயிலாக செயல்படுகிறது மற்றும் கணினியிலிருந்து தவறான பதில் பெற்றது + சேவை கிடைக்கவில்லை - இது பெரும்பாலும் சேவையகம் அதிக சுமையில் இருக்கும்போது அல்லது பராமரிப்புக்கு கீழே இருக்கும்போது நிகழ்கிறது + நுழைவாயில் காலாவதி - சேவையகம் நுழைவாயில் அல்லது proxy ஆக செயல்பட்டு, பதிலுக்காக காத்திருந்து காலாவதியானது + HTTP பதிப்பு ஆதரிக்கப்படவில்லை - கோரிக்கையில் உள்ள HTTP பதிப்பை சேவையகம் ஆதரிக்கவில்லை + மாறுபாடும் பேச்சுவார்த்தை நடத்துகிறது - சேவையகத்தில் உள் உள்ளமைவு பிழை உள்ளது + போதுமான சேமிப்பிடம் இல்லை - கோரிக்கையை வெற்றிகரமாக செயலாக்க சேவையகத்தில் போதுமான சேமிப்பிடம் இல்லை + சுழல் கண்டறியப்பட்டது - கோரிக்கையை செயலாக்கும்போது சேவையகம் முடிவற்ற சுழலை கண்டறிகிறது + நெட்வொர்க் அங்கீகரிப்பு தேவை - நெட்வொர்க்கை அணுக கிளையன்ட் அங்கீகரிக்கப்பட வேண்டும் + சட்டவிரோத நடத்தை + படம் காட்சியகத்தில் சேமிக்கப்பட்டது + ஆள்மாறாட்டம் + இன்பாக்ஸ் Relays + %2$s இலிருந்து தவறான இன்வாய்ஸ் தொகை (%1$s sats). அது %3$s ஆக இருந்திருக்க வேண்டும் + குறியீட்டாளர் Relays + purplepag.es போன்ற, அனைவரின் மெட்டாடேட்டா மற்றும் relay பட்டியல்களை வழங்குவதில் நிபுணத்துவம் பெற்ற Relays. உங்கள் பட்டியல்களில் இல்லாத பயனர்களை கண்டுபிடிக்க Amethyst இந்த relays பயன்படுத்தும். + புதிய ஆர்வ தொகுப்பு + மறுபெயரிடு + ஹேஷ்டேக் தொகுப்புகள் + தவறான சாவி + தவறான விசை: %1$s + தவறான முகவரி + Amethyst திறக்க ஒரு URI பெற்றது, ஆனால் அந்த URI தவறானது: %1$s + வரைவு குறிப்பை மேற்கோள் காட்ட முடியாது + வரைவு குறிப்பிற்கு எதிர்வினையாற்ற முடியாது + வரைவு குறிப்புக்கு பதில் அளிக்க முடியாது + வரைவு குறிப்பை zap செய்ய முடியாது + சாவி தேவை + KeyPackage Relays + உங்கள் MLS KeyPackages வெளியிடப்படும் Relays (MIP-00). மற்ற பயனர்கள் உங்களை Marmot குழு அரட்டைகளில் அழைக்க இந்த KeyPackages பெறுகிறார்கள். KeyPackage நிகழ்வுகளை ஏற்றுக்கொள்ளும் மற்றும் பொது வாசிப்பை அனுமதிக்கும் 1–3 relays சேர்க்கவும். + KeyPackages + ஏற்றுக்கொள்ளப்பட்ட பேட்ஜ் தொகுப்பு + சாகச முன்னுரை + சாகச வாசிப்பு + சாகச காட்சி + பயன்பாட்டு பரிந்துரைகள் + சந்திப்பு + பயன்பாடுகள் + சந்திப்பு RSVP + ஆடியோ தலைப்பு + ஆடியோ டிராக் + உருவாக்கிய போட்காஸ்ட்கள் + பேட்ஜ் விருதுகள் + பேட்ஜ் வரையறைகள் + Blob தரவு + Blob தலைப்புகள் + தடுக்கப்பட்ட Relays + வலைப்பதிவுகள் + Blossom Auth + Blossom சேவையகங்கள் + புக்மார்க் பட்டியல் + Broadcast Relays + நாட்காட்டி + சேனல் வரையறை + சேனல் மறை செய்தி + சேனல் பட்டியல் + சேனல் செய்தி + சேனல் மெட்டாடேட்டா + சேனல் முடக்கு பயனர் + சதுரங்க Auth + சதுரங்க சவால்கள் + சதுரங்க சமன் சலுகை + சதுரங்க விளையாட்டு ஏற்பு + சதுரங்க விளையாட்டு முடிவு + சதுரங்க விளையாட்டுகள் + சதுரங்க நகர்வு + வகைப்படுத்தப்பட்டவை + கருத்துகள் + சமூக வரையறை + சமூக பட்டியல் + சமூக இடுகை + தொடர்பு அட்டை + நாள் சந்திப்பு + நீக்கங்கள் + DM கோப்பு + DM செய்தி + DM Relays + வரைவுகள் + DVM உள்ளடக்க கோரிக்கை + DVM உள்ளடக்க பதில் + DVM நிலை + DVM பயனர் கோரிக்கை + DVM பயனர் பதில் + திருத்தங்கள் + Emoji பேக் பட்டியல் + Emoji பேக்கள் + தற்காலிக அரட்டை + தற்காலிக அரட்டை அறைகள் + விருப்பமான போட்காஸ்ட்கள் + விருப்பமான Relays + கோப்பு தலைப்புகள் + கோப்பு சேவையகங்கள் + Follow பட்டியல் + Follow Packs + ஜியோஹாஷ் follows + GiftWraps + Git சிக்கல் + Git பேட்ச் + Git பதில் + Git களஞ்சியம் + ஹேஷ்டேக் follows + சிறப்பம்சங்கள் + Http Auth + குறியீட்டு Relay பட்டியல் + நேரடி அரட்டைகள் + நேரடி ஒளிபரப்புகள் + மருத்துவ தரவு + சந்திப்பு அறை + சந்திப்பு இடம் + இசை பட்டியல் + இசை டிராக் + முடக்கு பட்டியல் + பெயரிடப்பட்ட புக்மார்க்குகள் + Nests சேவையகங்கள் + NIP + NIP-04 DMs + NNS + Nostr இணைப்பு + குறிப்புகள் + NWC கோரிக்கை + NWC பதில் + பழைய புக்மார்க் பட்டியல் + OTS + Outbox Relays + PayTo + மக்கள் பட்டியல்கள் + படங்கள் + பின்கள் + போட்காஸ்ட் எபிசோட் + போட்காஸ்ட் நிகழ்ச்சி + வாக்கெடுப்பு + வாக்கெடுப்பு பதில் + தனிப்பட்ட Relays + தனிப்பட்ட Zaps + சுயவிவரம் + சுயவிவர பேட்ஜ்கள் + சுயவிவர தொகுப்பு + Proxy Relays + பொது செய்தி + எதிர்வினைகள் + Relay Auth + Relay கண்டுபிடிப்பு + Relay கண்காணிப்பு அறிவிப்பு + Relay தொகுப்பு + அறிக்கைகள் + மறுவெளியீடுகள் + மறுவெளியீடுகள் (16) + அறை இருப்பு + முத்திரைகள் + தேடல் Relays + Shorts + Shorts (Repl) + Torrent கருத்துகள் + Torrents + நம்பகமான வழங்குனர்கள் + நம்பகமான Relays + பயனர் நீக்கம் + பயனர் அமைப்புகள் + பயனர் நிலை + வீடியோ + வீடியோ (Repl) + குரல் செய்தி + குரல் பதில் + WakeUp + வலை புக்மார்க் + விக்கி + உடற்பயிற்சிகள் + Zap இலக்குகள் + Zap வாக்கெடுப்பு + Zap கோரிக்கை + Zaps + தெரிந்த + மொழி காட்சி விருப்பங்கள் + ஒவ்வொரு மொழிபெயர்க்கப்பட்ட மொழி ஜோடிக்கும், எந்த மொழியை முதலில் காட்ட வேண்டும் என்று தேர்ந்தெடுக்கவும். + கடைசியாக %1$s முன்பு பார்க்கப்பட்டது + இப்போது தான் பார்க்கப்பட்டது + ஒருபோதும் பார்க்கப்படவில்லை + %1$s அன்று கடைசியாக பார்க்கப்பட்டது (%2$s முன்பு) + வெளியேறு + வெளிச்சம் + நேரடி ஒளிபரப்புகள் + உள்ளூர் Relays + இந்த சாதனத்தில் இயங்கும் relays பட்டியல். + குறிப்புகளை உயர்த்த ஒரு தனிப்பட்ட சாவியுடன் உள்நுழைக + நீங்கள் பொது விசையைப் பயன்படுத்துகிறீர்கள், பொது விசைகள் படிக்க மட்டுமே பயன்படும். பின்தொடர முடியுமாறு தனிப்பட்ட விசையுடன் உள்நுழைக + நீங்கள் பொது விசையைப் பயன்படுத்துகிறீர்கள், பொது விசைகள் படிக்க மட்டுமே பயன்படும். ஒரு வார்த்தை அல்லது வாக்கியத்தை மறைக்க தனிப்பட்ட விசையுடன் உள்நுழைக + பதிலளிக்க ஒரு தனிப்பட்ட சாவியுடன் உள்நுழைக + ஜாப்களை அனுப்ப ஒரு தனிப்பட்ட சாவியுடன் உள்நுழைக + நீங்கள் பொது விசையைப் பயன்படுத்துகிறீர்கள், பொது விசைகள் படிக்க மட்டுமே பயன்படும். ஒரு வார்த்தை அல்லது வாக்கியத்தை காட்ட தனிப்பட்ட விசையுடன் உள்நுழைக + நீங்கள் பொது விசையைப் பயன்படுத்துகிறீர்கள், பொது விசைகள் படிக்க மட்டுமே பயன்படும். நிகழ்வுகளில் கையெழுத்திட தனிப்பட்ட விசையுடன் உள்நுழைக + நீங்கள் பொது விசையைப் பயன்படுத்துகிறீர்கள், பொது விசைகள் படிக்க மட்டுமே பயன்படும். பின்தொடர்வதை நிறுத்த தனிப்பட்ட விசையுடன் உள்நுழைக + நீங்கள் பொது விசையைப் பயன்படுத்துகிறீர்கள், பொது விசைகள் படிக்க மட்டுமே பயன்படும். பதிவேற்ற தனிப்பட்ட விசையுடன் உள்நுழைக + குறிப்புகளை விரும்புவதற்கு தனிப்பட்ட சாவியுடன் உள்நுழைக + வீடியோக்கள் + நி + என் Emoji தொகுப்புகள் + %1$s-ஐ சேர்க்கிறோம்… + நிர்வாக உரிமைகள் வழங்கப்பட்டன + நிர்வாக உரிமைகள் திரும்பப்பெறப்பட்டன + %1$s-ஐ சேர்க்க தோல்வி: %2$s + குழு உருவாக்க தோல்வி: %1$s + நிர்வாக உரிமைகள் வழங்க தோல்வி: %1$s + குழுவை விட்டு வெளியேற தோல்வி: %1$s + உறுப்பினரை நீக்க தோல்வி: %1$s + நிர்வாக உரிமைகளை திரும்பப்பெற தோல்வி: %1$s + புதுப்பிக்க தோல்வி: %1$s + MLS குழு + குழு தகவல் புதுப்பிக்கப்பட்டது + + %1$d உறுப்பினர் + %1$d உறுப்பினர்கள் + + உறுப்பினர் நீக்கப்பட்டார் + + %1$d செய்தி + %1$d செய்திகள் + + இந்த குழுவின் உறுப்பினர் இல்லை + அறியாத பிழை + மீடியா சேர்க்கப்பட்டது + உங்கள் சுயவிவர கேலரியில் மீடியா சேர்க்கப்பட்டது + மீடியா பதிவிறக்கம் தொடங்கியது… + மீடியா சேவையகங்கள் + NIP-95-க்கு மீடியா மிகவும் பெரியது + முதலில் செய்தியின் இலக்கை உள்ளிடவும் + பதிவேற்ற முடியவில்லை + பொருள் + மெட்டாடேட்டாவை அகற்ற முடியவில்லை + மீடியாவிலிருந்து தனிப்பட்ட மெட்டாடேட்டாவை நீக்கத் தோல்வியடைந்தது. பதிவேற்றம் ரத்துசெய்யப்பட்டது. + புக்மார்க்குகள் வெற்றிகரமாக இடம்பெயர்க்கப்பட்டன + Lightning அமைப்பு இல்லை + மேலும் + தனிப்பட்டதிற்கு நகர்த்து + பொதுவிற்கு நகர்த்து + அட்டை படத்தை பதிவேற்று + இந்த இசை பட்டியலின் கலை ஓவியமாக இருக்க ஒரு சதுர படத்தை தேர்ந்தெடுக்கவும். + + +%1$d மேலும் பாடல் + +%1$d மேலும் பாடல்கள் + + + %1$d பாடல் + %1$d பாடல்கள் + + + %1$d பாடல் + %1$d பாடல்கள் + + அட்டை பதிவேற்றி வெளியிடுகிறது. திரையை விட்டு சென்றாலும் இது தொடரும். + ஆடியோ கோப்பை பதிவேற்று + MP3, WAV, அல்லது FLAC தேர்ந்தெடுக்கவும். சேமிக்கும்போது உங்கள் மீடியா சேவையகத்தில் பதிவேற்றப்படும். + அட்டை படத்தை பதிவேற்று + இந்த பாடலின் கலை ஓவியமாக இருக்க ஒரு சதுர படத்தை தேர்ந்தெடுக்கவும். + அட்டை + ஆடியோ பதிவேற்றி வெளியிடுகிறது. திரையை விட்டு சென்றாலும் இது தொடரும். + ஒலி இயக்கத்தில். முடக்க கிளிக் செய்யவும் + முடக்கப்பட்டது. முடக்கத்தை நீக்க கிளிக் செய்யவும் + என் பட்டியல்கள் + ஒரு பெயர் தேவை + %1$dms + Namecoin அமைப்புகள் + அடையாளம் + உங்கள் பொது சாவியை படிக்கவும் + செய்தியிடல் + மற்ற napplets உடன் செய்திகளை பரிமாறிக்கொள்ளவும் + விசைப்பலகை செயல்கள் + விசைப்பலகை குறுக்குவழிகளை பிணைக்கவும் + அறிவிப்புகள் + உங்களுக்கு அறிவிப்புகளை காட்டவும் + Relays + உங்கள் நிகழ்வுகளை படித்து, கையொப்பமிட்டு & வெளியிடவும் + வலைப்பின்னல் + இணைய மற்றும் Blossom வளங்களை பெறவும் + சேமிப்பு + அதன் சொந்த தனிப்பட்ட சேமிப்பு + தீம் + உங்கள் பயன்பாட்டின் வண்ணங்களுடன் பொருத்தவும் + பதிவேற்றங்கள் + உங்கள் மீடியா சேவையகத்தில் கோப்புகளை பதிவேற்றவும் + கொடுப்பனவுகள் + Lightning இன்வாய்ஸ்களை செலுத்தவும் + இந்த nApplet உங்கள் பொது சாவியை படிக்க விரும்புகிறது. + இந்த nApplet உங்கள் சுயவிவரம் மற்றும் கணக்கு தரவை படிக்க விரும்புகிறது. + இந்த nApplet உங்களுக்கு அறிவிப்புகளை காட்ட விரும்புகிறது. + + இந்த nApplet %1$d sat-க்கான Lightning invoice செலுத்த விரும்புகிறது. + இந்த nApplet %1$d sats-க்கான Lightning invoice செலுத்த விரும்புகிறது. + + இந்த nApplet உங்களாக ஒரு வகை %1$d நிகழ்வை கையொப்பமிட்டு வெளியிட விரும்புகிறது. + இந்த nApplet உங்களாக ஒரு குறியாக்கப்பட்ட நிகழ்வை அனுப்ப விரும்புகிறது. + இந்த nApplet உங்களாக ஒரு வகை %1$d நிகழ்வை கையொப்பமிட்டு வெளியிட விரும்புகிறது: + இந்த nApplet உங்கள் relays இலிருந்து நிகழ்வுகளை படிக்க விரும்புகிறது. + இந்த nApplet ஒரு இணைய வளத்தை பெற விரும்புகிறது. + இந்த தளம் உங்கள் Nostr சாவியுடன் ஒரு வகை %1$d நிகழ்வை கையொப்பமிட விரும்புகிறது. + இந்த nApplet அதன் தனிப்பட்ட சேமிப்பை பயன்படுத்த விரும்புகிறது. + இந்த nApplet உங்கள் மீடியா சேவையகத்தில் ஒரு கோப்பை பதிவேற்ற விரும்புகிறது. + nApplet %1$s… + nApplets + செய்தி அனுப்ப முடியவில்லை + இந்த பேச்சாளரை அமைதிப்படுத்து + இந்த பேச்சாளரை மீட்டமை + வெளியேறு + அறையை மூடியதாக குறிக்க முடியவில்லை. எப்படியும் வெளியேறுகிறது — அறை தானாக மூடும். + + %1$d கேட்பவர் + %1$d கேட்பவர்கள் + + கையை கீழே இறக்கு + மைக்கை ஒலியடக்கு + மைக்கை ஒலி திறக்கு + ஒலியடக்கு + Nest சேவையக பட்டியலை சேமிக்க முடியவில்லை. மீண்டும் முயற்சி செய்யவும். + Nest — நேரலை + Nests + அறை திறந்திருக்கும்போது ஆடியோவை இயக்கிக் கொண்டே இருக்கும். + Nest இணைக்கப்பட்டது + நிறுத்து + திரும்ப திரும்ப தட்டவும். + பின்தொடர் + ஒலியடக்கு + பின்தொடர்வதை நிறுத்து + ஒலியை மீட்டமை + nest ஐ விட்டு சென்றார் + பார்வையாளராக சேர்ந்தார் + மேடையில் ஏறினார் + கையை உயர்த்தினார் + பேசுகிறார் + கையை உயர்த்தவும் + ஒலியை மீட்டமை + Nests + மற்ற கிளையர்கள் உங்கள் விருப்பத்தை படிக்கும் வகையில் kind-10112 மாற்று நிகழ்வாக சேமிக்கப்படும். + உங்கள் சேவையகங்கள் + ஒரு தட்டுதலில் உங்கள் பட்டியலில் சேர்க்கக்கூடிய உள்ளமைக்கப்பட்ட பரிந்துரைகள். + பரிந்துரைக்கப்பட்ட சேவையகங்கள் + Nest சேவையகங்கள் + ஒருபோதும் இல்லை + புதிய சின்னம் + புதிய நாட்காட்டி + புதிய நாட்காட்டி நிகழ்வு + புதிய சமூகம் + மட்டுப்படுத்துவோர் + Relays + தடை செய்யப்பட்ட பயனர்கள் + சமூக கருத்து (1111) + நீண்ட கட்டுரை (30023) + படம் இடுகை (20) + குறுகிய உரை (1) + குறுகிய வீடியோ (22) + வீடியோ இடுகை (21) + அனுமதிக்கப்பட்ட நிகழ்வு வகைகள் + உலகளாவிய அதிகபட்ச நிகழ்வு அளவு (விரும்பினால்) + சரிபார்க்கக்கூடிய விதிகள் (விரும்பினால்) + நம்பிக்கை-வலை வாயில் (விரும்பினால்) + புதிய emoji தொகுப்பு + புதிய இலக்கு + புதிய கட்டுரை + புதிய இயல்பட்டியல் + புதிய இசைத் தடம் + புதிய தயாரிப்பு + புதிய கோரிக்கைகள் + புதிய இழைகள் + புதிய உடற்பயிற்சி + + %1$d சொத்து தொகுக்கப்பட்டது + %1$d சொத்துக்கள் தொகுக்கப்பட்டன + + Blossom செயலிகள் கண்டுபிடிக்கப்படவில்லை. இந்த கோப்பை பார்க்க உள்ளூர் Blossom செயலியை நிறுவுக + Blossom இணைப்புகளை திறக்க முடியவில்லை + இந்த சாதனத்தில் கேமரா செயலி எதுவும் கண்டுபிடிக்கப்படவில்லை + Lightning முகவரி அமைக்கப்படவில்லை + இந்த கட்டணத்தை கையாள எந்த பயன்பாடும் கிடைக்கவில்லை. பொருந்தும் பணப்பை நிறுவவும். + %1$s கட்டணங்களை கையாள எந்த பயன்பாடும் நிறுவப்படவில்லை. பொருந்தும் பணப்பை நிறுவவும். + எந்த ரியாக்ஷனும் தேர்ந்தெடுக்கவில்லை. மாற்ற நீண்ட நேரம் அழுத்தவும் + எந்த எதிர்வினையும் அமைக்கப்படவில்லை + lightning இன்வாய்ஸை செலுத்த வாலட்கள் எதுவும் கிடைக்கவில்லை. Zap களை பயன்படுத்த Lightning வாலட்டை நிறுவுக + lightning இன்வாய்ஸை செலுத்த வாலட்கள் எதுவும் கிடைக்கவில்லை (பிழை: %1$s). Zap களை பயன்படுத்த Lightning வாலட்டை நிறுவுக + ஜாப் தொகை அமைப்பு இல்லை. மாற்ற நீண்ட நேரம் அழுத்தவும் + அறிவிப்புகள் + வகைகள் + வழங்கல் + ஆப்-உள் காட்சி + இப்போது + Nowhere கலை + Nowhere வெளியீடு + Nowhere நிகழ்வு + Nowhere மன்றம் + Nowhere நிதி திரட்டல் + Nowhere தளம் + Nowhere செய்தி + Nowhere மனு + Nowhere கடை + nSites + பிறந்தமேனி + நிகழ்வு குறிப்பை உருவாக்க முடியவில்லை + குறிப்பில் பெறுநர் pubkey இல்லை + Nutzap-கள் பொது மற்றும் இந்த தனிப்பட்ட குறிப்பை வெளியிடும். அதற்கு பதில் Lightning zap பயன்படுத்தவும். + Nutzap தோல்வியடைந்தது + + %1$s sats அனுப்பு, %2$d வழி + %1$s sats அனுப்பு, %2$d வழிகள் + + Bitcoin சேயின் பின்தள அமைவு இல்லை + பரிவர்த்தனையை ஒளிபரப்ப முடியவில்லை + பரிவர்த்தனையை உருவாக்க முடியவில்லை + உங்கள் Bitcoin இருப்பை ஏற்ற முடியவில்லை + கட்டணம் அனுப்பப்பட்டது, ஆனால் zap ரசீதை வெளியிட முடியவில்லை + + கட்டணம் அனுப்பப்பட்டது (%2$d-ல் %1$d ரசீது வெளியிடப்பட்டது), ஆனால் அடுத்த ரசீதை வெளியிட முடியவில்லை + கட்டணம் அனுப்பப்பட்டது (%2$d-ல் %1$d ரசீதுகள் வெளியிடப்பட்டன), ஆனால் அடுத்த ரசீதை வெளியிட முடியவில்லை + + ஒரு பெறுநர் பங்கு டஸ்ட் வரம்பிற்கு கீழே உள்ளது + பரிவர்த்தனையில் கையொப்மிட முடியவில்லை + ~10 நிமிடம் + ~30 நிமிடம் + ~1 மணி நேரம் + வேகமாக + சாதாரண + மெதுவாக + %1$s · %2$s sat/vB · %3$s + + %1$d பெறுநருக்கு இடையே பிரிவு + %1$d பெறுநர்களுக்கு இடையே பிரிவு + + + %1$d Lightning-முகவரி மட்டும் உள்ள பெறுநரை தவிர்க்கிறோம் — on-chain முகவரி பெற Nostr pubkey தேவை. + %1$d Lightning-முகவரி மட்டும் உள்ள பெறுநர்களை தவிர்க்கிறோம் — on-chain முகவரி பெற Nostr pubkey தேவை. + + + இந்த குறிப்பின் %1$d-வழி zap பிரிவை பயன்படுத்து + இந்த குறிப்பின் %1$d-வழி zap பிரிவை பயன்படுத்து + + ஒளிபரப்புகிறது + பரிவர்த்தனையை உருவாக்குகிறது + இருப்பு ஏற்றுகிறது + ரசீதை வெளியிடுகிறது + கையொப்மிடுகிறது + இந்த வகை வாக்கெடுப்பில் ஒரு பயனருக்கு ஒரு வாக்கு மட்டுமே அனுமதிக்கப்படுகிறது + இந்த இடுகைக்கான அனைத்து எதிர்வினைகளையும் திற + திறந்தவை + Orbot Socks போர்ட் + பிட்காயின் எக்ஸ்ப்ளோரர் (OTS) + இந்த இடுகை %1$s-க்கு முன்பு ஒரு நேரத்தில் கையொப்பமிடப்பட்டது என்பதற்கான சான்று உள்ளது. சான்று அந்த தேதியிலும் நேரத்திலும் Bitcoin blockchain-ல் முத்திரையிடப்பட்டது. + நேர முத்திரை சான்று + அவுட்பாக்ஸ் Relays + கடவுச்சொல் தேவை + இடைநிறுத்து + செலுத்து + %1$s இலிருந்து செய்தி + கட்டண இலக்குகள் + வெவ்வேறு நெட்வொர்க்குகளுக்கு (எ.கா. bitcoin, lightning, ethereum) கட்டண முகவரிகளை சேர்க்கவும். + PDF, Downloads/Amethyst இல் சேமிக்கப்பட்டது + Follow பட்டியல் மெட்டாடேட்டாவை Nostr-ல் யாரும் பார்க்கலாம். உங்கள் தனிப்பட்ட உறுப்பினர்கள் மட்டுமே குறியாக்கப்பட்டுள்ளனர். + Follow பட்டியல் மெட்டாடேட்டா + படங்கள் + மேலே பொருத்து + சுயவிவரத்தில் பொருத்து + இயக்கு + + %1$d அத்தியாயம் + %1$d அத்தியாயங்கள் + + வாக்கெடுப்பை உருவாக்கியோர் தங்கள் சொந்த வாக்கெடுப்பில் வாக்களிக்க முடியாது. + (0–100)% + வாக்கெடுப்பு புதிய வாக்குகளுக்கு மூடப்பட்டது + பல தேர்வுகள் + விருப்பம் %1$s + ஒற்றை தேர்வு + வாக்களிக்க முடியவில்லை + வாக்கெடுப்புகள் + பதிவு + + இந்த இடுகையில் %1$d hashtag-ஐ விட அதிகம் உள்ளது + இந்த இடுகையில் %1$d hashtags-ஐ விட அதிகம் உள்ளது + + %1$s க்கான முன்னோட்ட அட்டைப் படம் + தனியுரிமை விருப்பங்கள் + தனியுரிமைக் கொள்கை + தனிப்பட்ட செய்தியை மறைக்குறியாக்க இயலவில்லை \n \n %1$s மற்றும் %2$s க்கு இடையே தனிப்பட்ட/ குறியாக்கப்பட்ட உரையாடலில் நீங்கள் மேற்கோள் காட்டப்பட்டீர்கள். + DM இன்பாக்ஸ் Relays + உங்கள் தனிப்பட்ட இன்பாக்ஸாக 1–3 relays சேர்க்கவும். மற்றவர்கள் உங்களுக்கு DMs அனுப்ப இந்த relays பயன்படுத்துவார்கள். DM இன்பாக்ஸ் relays யாரிடமிருந்தும் எந்த செய்தியும் ஏற்றுக்கொள்ள வேண்டும், ஆனால் நீங்கள் மட்டுமே அவற்றை பதிவிறக்க அனுமதிக்க வேண்டும். நல்ல விருப்பங்கள்:\n - inbox.nostr.wine (கட்டணம்)\n - auth.nostr1.com (இலவசம்)\n - you.nostr1.com (தனிப்பட்ட relays - கட்டணம்) + பயனர் இந்த relays-ல் DMs பெறுகிறார் + தனிப்பட்ட செய்தி + தனிப்பட்டதாக்கு: குறிப்பிடப்பட்ட பயனர்களுக்கு மட்டுமே பரிசு-சுற்றில் குறிப்பை வழங்கு + தனிப்பட்ட குறிப்புக்கான பதில்கள் எப்போதும் தனிப்பட்டதாக இருக்கும் + யாருக்கு தெரியும் + தனிப்பட்ட முகப்பு Relays + வேறு யாரும் பார்க்க முடியாத நிகழ்வுகளை சேமிக்க 1–3 relays சேர்க்கவும், உங்கள் வரைவுகள் மற்றும்/அல்லது பயன்பாட்டு அமைப்புகள் போன்றவை. ஆனால், இந்த relays உள்ளூர் அல்லது ஒவ்வொரு பயனரின் உள்ளடக்கத்தையும் பதிவிறக்குவதற்கு முன் அங்கீகரிப்பு தேவைப்படுவது சிறந்தது. + அவதூறு / வெறுப்புப் பேச்சு + தன்விவரம் + சுயவிவர சின்னங்கள் + பயன்பாட்டு பரிந்துரைகள் + சுயவிவர பேட்ஜுகள் + பின்தொடர்பவர்கள் ஊட்டம் + Zap பெற்ற ஊட்டம் + சுயவிவர UI + சுயவிவரங்கள் + திருத்தத்தை முன்மொழிக + Proxy Relays + filter.nostr.wine போன்ற ஒருங்கிணைப்பு relays, பயன்பாடு உங்கள் ஊட்டங்களை பதிவிறக்க பயன்படுத்த வேண்டும். இது அவுட்பாக்ஸ் மாதிரியை மாற்றுகிறது, பயன்பாட்டை உங்கள் பட்டியல்களில் உள்ள relays மட்டுமே இணைக்கும். + பொது அரட்டை + பொது அரட்டைகள் Nostr-ல் அனைவருக்கும் தெரியும் மற்றும் யாரும் + அவற்றில் பங்கேற்கலாம். அவை குறிப்பிட்ட தலைப்புகளை சுற்றிய திறந்த சமூகங்களுக்கு மிகவும் ஏற்றவை. + அதன் relays-ல் இடுகைகளை நீக்குவதன் மூலம் மிதவாண்மையை கட்டுப்படுத்தலாம் + இந்த குழுவை ஹோஸ்ட் செய்யும் 1–3 relays-ஐ உள்ளிடவும். + Nostr கிளையன்கள் செய்திகளை எங்கிருந்து பதிவிறக்கம் செய்வது மற்றும் உங்கள் செய்திகளை எங்கே அனுப்புவது என்பதை அறிய இந்த அமைப்பை பயன்படுத்துகின்றன. + Relay கள் + பொது அரட்டை மெட்டாடேட்டா + பொது அரட்டைகள் + பொது அவுட்பாக்ஸ்/முகப்பு Relays + இந்த relay வகை உங்கள் அனைத்து உள்ளடக்கத்தையும் சேமிக்கிறது. Amethyst உங்கள் இடுகைகளை இங்கே அனுப்பும், மற்றவர்கள் உங்கள் உள்ளடக்கத்தை கண்டுபிடிக்க இந்த relays பயன்படுத்துவார்கள். 1–3 relays சேர்க்கவும். அவை தனிப்பட்ட relays, கட்டண relays அல்லது பொது relays ஆக இருக்கலாம். + பயனர் இந்த relays-ல் தன் உள்ளடக்கத்தை இடுகையிடுகிறார் + பொது செய்தி + பொது இன்பாக்ஸ் Relays + இந்த relay வகை உங்கள் இடுகைகளுக்கான அனைத்து பதில்கள், கருத்துகள், விருப்பங்கள் மற்றும் zaps பெறுகிறது. அவை கட்டண அல்லது இலவச relays ஆக இருக்கலாம். relay ஆபரேட்டர் அமைக்கும் வரம்புகள் நல்லதற்கும் கெட்டதற்கும் நீங்கள் பெறும் அறிவிப்புகளை கட்டுப்படுத்தலாம். எடுத்துக்காட்டாக, கருத்து ஸ்பாம் தாக்குதலுக்கு உட்பட்டால், கட்டண relays ஸ்பாமை வடிகட்டலாம். 1–3 relays சேர்க்கவும். + பயனர் இந்த relays-ல் அறிவிப்புகளைப் பெறுகிறார் + பதிவின் எண் + அழி + இழையை முடக்கவும் + பகிர் + உலாவி இணைப்பைப் பகிரவும் + இழையின் முடக்கத்தை நீக்கவும் + எதிர்வினை + எதிர்வினைகள் + எதிர்வினை வரிசை + படிப்பதற்கான ரிலே + வடிகட்டிகள் மற்றும் நிகழ்வுகள் உட்பட இந்த relay இலிருந்து பெறப்பட்ட பைட்டுகளின் அளவு + படிக்க மட்டும் பயனர் + செய்தி பதிவு செய்ய கிளிக் செய்து பிடிக்கவும் + Relay அரட்டை + Relay அரட்டைகள் என்பவை அவற்றின் முகப்பு relay-ஆல் கட்டுப்படுத்தப்படும் அரட்டை குழுக்கள். + அவை Nostr-ல் அனைவருக்கும் தெரியும் மற்றும் யாரும் அவற்றில் பங்கேற்கலாம். + அவை குறிப்பிட்ட தலைப்புகளை சுற்றிய திறந்த சமூகங்களுக்கு மிகவும் ஏற்றவை. இந்த குழுக்களில் சில தற்காலிகமானவை + எனவே அரட்டை செய்திகள் காலப்போக்கில் மறைந்துவிடும் + Relay அரட்டைகள் + நிகழ்வுகள் + IPs + வகைகள் + பயனர்கள் + அமைப்புகள் + Relay அமைப்புகள் + அஞ்சல் வெளி பட்டியல்கள் + ரிலேகள் + நிரப்பி zap அனுப்பு + Zap அனுப்பு + %2$s க்கு %1$s sats நிரப்பி %3$s க்கு %4$s sats zap அனுப்பு · கட்டணம் ≈ %5$s sats + அகற்று + பொது புக்மார்க்குகளிலிருந்து அகற்று + இங்கு பதிலளிக்கவும்.. + தெரிவிக்க + + நீக்கக் கோரு + மறைவு கோரிக்கை + Marmot நிலையை மீட்டமைக்க முடியவில்லை: %1$s + Marmot நிலையை மீட்டமை + Marmot நிலை மீட்டமைக்கப்பட்டது. + மீண்டும் முயற்சி + காலண்டர் பட்டியல்கள் + காலண்டர்கள் + சதுரங்கம் + கண்டுபிடிக்கவும் + முகப்பு + பின்தொடர்பவர்களை இறக்குமதி செய் + செய்திகள் + இயல்பட்டியல்கள் + இசை + அறிவிப்புகள் + அத்தியாயங்கள் + நிகழ்நேரப் பிரசாரங்கள் + இடுகையை திட்டமிடவும் + திட்டமிடலை ரத்து செய்யவும் + திட்டமிட்ட இடுகைகள் நீங்கள் செயலியை மீண்டும் திறக்கும் வரை வெளியிடப்படாமல் போகலாம். இந்த கணக்கு செயலில் இருக்கும்போது மற்ற கணக்குகளின் திட்டமிட்ட இடுகைகள் செயல்படாது. நம்பகமான பின்னணி திட்டமிடலுக்கு அமைப்புகள் → UI விருப்பங்களில் எப்போதும் இயங்கும் வசதியை இயக்கவும். + திட்டமிட்ட இடுகைகள் நீங்கள் அடுத்த முறை செயலியை திறக்கும் வரை வெளியிடப்படாமல் போகலாம். நம்பகமான பின்னணி திட்டமிடலுக்கு அமைப்புகள் → UI விருப்பங்களில் எப்போதும் இயங்கும் வசதியை இயக்கவும். + திட்டமிட்ட இடுகைகள் + இப்போது அனுப்பவும் + %1$s · %2$s இல் + %1$s · %2$s முன்பு + நாளை + பிழை: %1$s + குறிப்பு ID நகலெடுக்கப்பட்டது + + வெளியேறியது · %1$d திட்டமிட்ட இடுகை நீக்கப்பட்டது + வெளியேறியது · %1$d திட்டமிட்ட இடுகைகள் நீக்கப்பட்டன + + வெளியேறப்பட்டது + + இன்னும் வெளியிடப்படாத %1$d திட்டமிட்ட இடுகை உள்ளது. வெளியேறினால் அது நிரந்தரமாக நீக்கப்படும். + இன்னும் வெளியிடப்படாத %1$d திட்டமிட்ட இடுகைகள் உள்ளன. வெளியேறினால் அவை நிரந்தரமாக நீக்கப்படும். + + திட்டமிட்ட இடுகை தோல்வியடைந்தது + திட்டமிட்ட இடுகை வெளியிடப்பட்டது + + %1$d relay-க்கு + %1$d relays-க்கு + + ரத்து செய்யப்பட்டது + தோல்வியடைந்தது + திட்டமிடப்பட்டது + அனுப்புகிறது… + அனுப்பப்பட்டது + + · %1$d 1 மணி நேரத்தில் காலாவதி + · %1$d 1 மணி நேரத்தில் காலாவதி + + + %1$d காத்திருக்கும் + %1$d காத்திருக்கும் + + நல்ல விருப்பங்கள்:\n%1$s + தேடல் Relays + தேடல் Relays + உள்ளடக்கம் அல்லது பயனர்களை தேடும்போது பயன்படுத்த வேண்டிய relays பட்டியல். எந்த விருப்பங்களும் இல்லையென்றால் குறியிடல் மற்றும் தேடல் வேலை செய்யாது. அவை NIP-50 செயல்படுத்துகிறதா என்று உறுதிப்படுத்தவும். + தேடக்கூடிய நிகழ்வுகள் + ரகசிய சாவி (nsec) கிளிப்போர்டுக்கு நகலெடுக்கப்பட்டது + நீங்கள் இன்னும் எந்த பயனரையும் தடுக்கவில்லை. + பாதுகாப்பு வடிப்பான்கள் + மறைக்கப்பட்ட வார்த்தைகள் இல்லை. அதை கொண்ட இடுகைகளை மறைக்க கீழே ஒரு வார்த்தையை சேர்க்கவும். + தடுக்கப்பட்ட உள்ளடக்கம் + வடிகட்டல் விருப்பங்கள் + இந்த அமர்வில் எந்த கணக்கும் ஸ்பாமாக கொடியிடப்படவில்லை. + அனுப்பு + பெறப்பட்ட அனைத்து சுயவிவர (kind 0) நிகழ்வுகளையும் உங்கள் உள்ளூர் relay-க்கு அனுப்பு + சுயவிவரங்களை உள்ளூர் relay-க்கு அனுப்பு + இந்த பெறுநருக்கு செலவிடக்கூடியது: %1$s sats + பணம் செலுத்துதல் தோல்வியடைந்தது + பரிவர்த்தனை: %1$s + %1$s வழியாக செலுத்துகிறது… + பதிவேற்றிய பிறகு சர்வர் URL வழங்கவில்லை + அமைப்புகள் + முடக்கப்பட்ட நூல்கள் இல்லை + முடக்கப்பட்ட நூல்கள் + படமாக பகிரவும் + படத்தின் URL ஆக பகிரவும் + HLS பதிவேற்றம் + பகிர் அல்லது சேமி + குறுவீடியோக்கள் + மறைகுறியாக்கப்பட்ட தனிப்பட்ட விசை QR குறியீட்டை காட்டு + அறிவிப்பு தாவலில் நேரடி மற்றும் குழு செய்திகளை சேர்க்கவும். செய்திகளை செய்திகள் தாவலில் மட்டும் வைக்க அணைக்கவும். + செய்திகளை காட்டு + தனிப்பட்ட விசை QR குறியீட்டை காட்டு + கையொப்பமிடல் கோரிக்கை நிராகரிக்கப்பட்டது + கையொப்பமிடல் செயலி இந்த பரிவர்த்தனையை அங்கீகரித்திருக்கிறதா என சரிபார்க்கவும் + வெளிப்புற கையெழுத்திட்டவர் கோரிக்கைக்கு அசாதாரணமான தரவை திரும்ப அனுப்பியது. Amethyst அல்லது கையெழுத்திட்டவரில் ஒரு பிழை இருக்கலாம். + கையெழுத்திட்டவர் கண்டுபிடிக்கப்படவில்லை + கையெழுத்திட்டவர் செயலி நிறுவல் நீக்கம் செய்யப்பட்டதா? கையெழுத்திட்டவர் நிறுவப்பட்டு இந்த கணக்கை வைத்திருக்கிறதா என சரிபார்க்கவும். கையெழுத்திட்டவர் செயலி மாறியிருந்தால் வெளியேறி மீண்டும் உள்நுழைக. + %1$d வினாடிகள் பின்னோக்கி தவிர் + %1$d வினாடிகள் முன்னோக்கி தவிர் + பயன்பாடுகள் + எரிதம் (தேவையற்றவை) + இந்த relay இலிருந்து வரும் ஸ்பேம் நிகழ்வுகளின் எண்ணிக்கை + ஸ்பாமர்கள் + இரண்டு அறிவிப்பு தாவல்களை காட்டு — தொடர்பவர்கள் (நீங்கள் தொடரும் நபர்கள்) மற்றும் அனைவரும். படிக்காத குறிகாட்டி நீங்கள் தொடரும் நபர்களின் செயல்பாட்டிற்கு மட்டுமே ஒளிர்கிறது. + தொடர்புகளால் அறிவிப்புகளை பிரி + பதிவேற்றுவதற்கு முன் ஆதரவு மீடியா கோப்புகளிலிருந்து தனிப்பட்ட மெட்டாடேட்டாவை நீக்க முயற்சிக்கிறது + தனிப்பட்ட மெட்டாடேட்டாவை அகற்றவும் + Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) இலிருந்து முடிந்த உடற்பயிற்சிகளை படித்து அவற்றை பதிவாக பகிர பரிந்துரைக்கிறது. நீங்கள் இணைக்கும்போது மட்டும் அனுமதி கேட்கப்படும். + பகிர உடற்பயிற்சிகளை பரிந்துரை செய்யவும் + கணினி + தீம் + இருண்ட, வெளிச்சம் அல்லது கணினி தீம் + இந்த செய்தி %1$s-ல் மறைந்துவிடும் + + +%1$d\nபதில் + +%1$d\nபதில்கள் + + இன்று + தனிப்பயன் + உங்களுடையதை உருவாக்கவும் + இயல்புநிலை + சீரற்ற relays இலிருந்து உங்கள் IP ஐ மறைக்கவும் + Orbot + முழு தனியுரிமை + அனைத்து இணைப்புகளிலும் உங்கள் IP ஐ மறைக்கவும் + உள்ளமைக்கப்பட்டது + அணைக்கவும் + Tor/தனியுரிமை முன்னமைவுகள் + கீழே உள்ள அனைத்து அமைப்புகளையும் விரைவாக மாற்றவும் + மீடியா தவிர அனைத்தும் + படங்கள் மற்றும் வீடியோக்கள் தவிர அனைத்திலும் உங்கள் IP ஐ மறைக்கவும் + DM Relays + DM அனுப்பவும் பெறவும் Tor கட்டாயமாக்கவும் + படங்கள் + படங்களை ஏற்றும்போது Tor கட்டாயமாக்கவும் + மீடியா பதிவேற்றங்கள் + உள்ளடக்கம் பதிவேற்றும்போது Tor கட்டாயமாக்கவும் + பண பரிவர்த்தனைகள் + zaps, lightning மற்றும் cashu பரிமாற்றங்களில் Tor கட்டாயமாக்கவும் + நம்பப்படாத Relays + outbox/inbox relays இல் Tor கட்டாயமாக்கவும் + Nostr முகவரி சரிபார்ப்பு + NIP-05 முகவரிகளை சரிபார்க்கும்போது Tor கட்டாயமாக்கவும் + Onion Url/Relays + எந்த .onion url க்கும் Tor பயன்படுத்தவும் + சுயவிவர படங்கள் + சுயவிவர படங்களை ஏற்றும்போது Tor கட்டாயமாக்கவும் + நம்பகமான Relays + உங்கள் பட்டியல்களில் உள்ள அனைத்து relays இலும் Tor கட்டாயமாக்கவும் + URL முன்னோட்டங்கள் + url முன்னோட்டங்களை ஏற்றும்போது Tor கட்டாயமாக்கவும் + வீடியோக்கள் + வீடியோக்களை ஏற்றும்போது Tor கட்டாயமாக்கவும் + அடிப்படை + சேவையகம் தேவைப்படும்போது Tor பயன்படுத்தவும் + கோப்பை திறக்கத் தவறியது + கோப்பை திறக்க மற்றும் பதிவிறக்க torrent பயன்பாடுகள் எதுவும் நிறுவப்படவில்லை. + magnet இணைப்பை உருவாக்க நிகழ்வில் போதுமான தகவல் இல்லை + நிகழ்வுகளை அனுப்பும்போது கண்காணிக்கப்பட்ட ஒளிபரப்பாளரை பயன்படுத்தவும். ஒளிபரப்பும்போது நேரடி முன்னேற்றம் மற்றும் ஒவ்வொரு relay நிலையையும் காட்டுகிறது. + கண்காணிக்கப்பட்ட ஒளிபரப்புகள் + இதற்கு மொழிபெயர்க்கவும் + உள்ளடக்கத்தை மொழிபெயர்க்க வேண்டிய மொழியை தேர்ந்தெடுக்கவும். + மொழிபெயர்ப்புகள் + நம்பகமான Relays + Tor இணைப்பு தேவையில்லை என்று நீங்கள் நம்பும் Relays + முழுமை + செயல்திறன் + எளிமைப்படுத்தப்பட்ட + UI விருப்பங்கள் + UI பயன்முறை + இடுகை பாணியை தேர்ந்தெடுக்கவும் + Zap அனுப்புவதற்கு முன் lightning இன்வாய்ஸை உருவாக்க முடியவில்லை. பெறுநரின் lightning வாலட் பின்வரும் பிழையை அனுப்பியது: %1$s + படத்தைப் பகிர முடியவில்லை, பின்னர் மீண்டும் முயற்சிக்கவும்… + வீடியோவைப் பகிர முடியவில்லை, பின்னர் மீண்டும் முயற்சிக்கவும்… + அங்கீகரிக்கப்படாத மறைகுறியாக்கம் + இந்த செயல்பாட்டை முடிக்க தேவையான மறைகுறியாக்கத்தை கையெழுத்திட்டவர் அங்கீகரிக்கவில்லை. உங்கள் கையெழுத்திட்டவர் செயலியில் NIP-44 மறைகுறியாக்கங்களை இயக்கி மீண்டும் முயற்சிக்கவும் + நிறுத்து + பொருத்தலை நீக்கு + சுயவிவரத்திலிருந்து நீக்கு + பதிவேற்றம் ரத்துசெய்யப்பட்டது + பதிவேற்ற பிழை + குரல் பதிவேற்றம் தோல்வியடைந்தது: %1$s + குரல் செய்தியை பதிவேற்ற தோல்வியடைந்தது + குரல் செய்திகளுக்கு NIP-95 இன்னும் ஆதரிக்கப்படவில்லை + %1$d%% இயக்க நேரம் + செயலில் Tor எஞ்சின் + உள்ளமைக்கப்பட்ட பதிப்பு அல்லது Orbot பயன்படுத்தவும் + பயனர் ஸாட்கள் பெறுவதற்கு லைட்னிங் முகவரி அமைக்கவில்லை + பயனர் %1$s க்கு sats பெறுவதற்கான lightning முகவரி அமைப்பு இல்லை + மறைவு வரலாறு + மறைவு கோரிக்கை அனுப்பப்பட்டது + சிறிய கோப்பு அளவுகளில் சிறந்த தரம், ஆனால் எல்லா சாதனங்களும் H.265 இயக்கத்தை ஆதரிக்காது. + H.265/HEVC கோடெக் பயன்படுத்தவும் + வீடியோ பதிவிறக்கம் தொடங்கியது… + வீடியோ பிளேயர் பொத்தான்கள் + வீடியோ தொலைபேசியின் வீடியோ தொகுப்பில் சேமிக்கப்பட்டது + குரல் இடுகை + ஆழமான + உயர்ந்த + நடுநிலை + எதுவுமில்லை + குரல் பதில் + பணப்பை + Cashu பணப்பை (NIP-60) + Wallet Connect + உங்கள் wallet connect வழங்குனர் பின்வரும் பிழையை திருப்பி அனுப்பியது: %1$s + Mint-களை திருத்தவும் + இடுகைகள் அல்லது சுயவிவரங்களுக்கு உங்கள் தொடர்புகளிடமிருந்து அறிக்கைகள் இருக்கும்போது எச்சரிக்கை செய்தி காட்டுகிறது + அறிக்கைகளில் எச்சரி + வலை புக்மார்க் சேர்க்கவும் + வலை புக்மார்க் திருத்தவும் + வலை புக்மார்க்கள் + உங்கள் மனதில் என்ன உள்ளது? + உடற்பயிற்சிகள் + ஒரு செய்தி எழுதவும்… + போஸ்ட் செய்வதற்கான ரிலே + வடிகட்டிகள் மற்றும் நிகழ்வுகள் உட்பட இந்த relay க்கு அனுப்பப்பட்ட பைட்டுகளின் அளவு + Zap + ஜாப்கள் + + பெயர் மாற்று + சேமி diff --git a/commonsUI/src/commonMain/composeResources/values-th-rTH/strings.xml b/commonsUI/src/commonMain/composeResources/values-th-rTH/strings.xml index 1babee7d74..4571c21e30 100644 --- a/commonsUI/src/commonMain/composeResources/values-th-rTH/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-th-rTH/strings.xml @@ -1762,4 +1762,1022 @@ URL พื้นฐานของ Explorer API ชำระใบแจ้งหนี้จาก DVM ชำระ %1$s sats ให้ DVM + เกี่ยวกับและข้อมูลทางกฎหมาย + การตั้งค่าบัญชี + เพิ่ม + เพิ่ม Blossom Server + เพิ่ม เซิร์ฟเวอร์ NIP-96 + เมื่อเปิดใช้งาน Amethyst จะเพิ่มแท็กไคลเอนต์ NIP-89 ในกิจกรรมที่คุณเผยแพร่ + เพิ่มแท็กไคลเอนต์ในกิจกรรมของฉัน + เพิ่มการแจ้งเตือนเนื้อหาที่ละเอียดอ่อนก่อนโชว์เนื้อหานี้ + เนื้อหาที่ละเอียดอ่อน + เพิ่มไปยังบุ๊คมาร์คสาธรณะ + ใช้โมเดล AI บนอุปกรณ์เพื่อเสนอการแก้ไขข้อความและการเปลี่ยนแปลงโทนเสียง + เสนอการปรับปรุงข้อความ + รักษาการเชื่อมต่อกับ relay กล่องข้อความของคุณให้ใช้งานได้เพื่อรับการแจ้งเตือนแบบเรียลไทม์ + + เชื่อมต่อกับ %1$d inbox relay แล้ว + + + เชื่อมต่อกับ %1$d relay แล้ว + + กำลังเชื่อมต่อกับ inbox relay… + การแจ้งเตือน Amethyst ใช้งานอยู่ + การแจ้งเตือนสำหรับสายโทรด้วยเสียงและวิดีโอที่เข้ามา + สายเรียกเข้า + %1$s ยอมรับการท้าทายหมากรุกของคุณ + แจ้งเตือนเกี่ยวกับเหตุการณ์ในเกมหมากรุก + หมากรุก + อัปเดตหมากรุก + %1$s เดินแล้ว — ถึงตาคุณ + แจ้งเตือนฉันเมื่อข้อความส่วนตัวมาถึง + ข้อความส่วนตัว + ข้อความใหม่ + ทำเครื่องหมายอ่านแล้ว + แจ้งเตือนเมื่อมีคนกล่าวถึงหรืออ้างอิงคุณในโพสต์ + %1$s กล่าวถึงคุณ + การกล่าวถึง + การกล่าวถึงใหม่ + แจ้งเตือนเมื่อมีคนตอบสนองต่อโพสต์ของคุณ + %1$s ตอบสนองต่อโพสต์ของคุณ + สำหรับ %1$s + ปฏิกิริยา + ปฏิกิริยาใหม่ + แจ้งเตือนเมื่อมีคนตอบกลับโพสต์ของคุณ + การตอบกลับ + การตอบกลับใหม่ + ตอบกลับ + การแจ้งเตือนเมื่อโพสต์ที่กำหนดเวลาถูกเผยแพร่หรือล้มเหลวในการเผยแพร่ + โพสต์ที่กำหนดเวลา + แจ้งเตือนเมื่อมีคน zaps + %1$s sats + ถึง %1$s + จาก %1$s + ได้รับ Zaps + Zap ใหม่ + การตั้งค่าแอป + การรับรอง + คำขอการรับรอง + ความเชี่ยวชาญของ Attestor + คำแนะนำจาก Attestor + ตัวแสดงภาพเสียง + บันทึกกิจกรรมร่างโดยอัตโนมัติเมื่อคุณพิมพ์หรือออกจากตัวแต่งที่มีข้อความที่ยังไม่ได้ส่ง และส่งไปยัง relay outbox ส่วนตัวของคุณ + สร้างร่างโดยอัตโนมัติ + การไถฟีดแบบลื่นไหล + ซ่อนแถบเมนูขณะเลื่อนฟีด + ภาพตัวอย่าง + โหลดรูปภาพและ GIFs โดยอัตโนมัติ + การเล่นวิดีโอ + เล่นวีดีโอและ GIFs โดยอัตโนมัติ + รูปโปรไฟล์ + แสดงรูปโปรไฟล์ + การแสดงตัวอย่าง URL + แสดงจัวอย่าง URL + เล่นวิดีโออัตโนมัติ + เล่นวิดีโออัตโนมัติเมื่อมองเห็นบนหน้าจอ + ไม่สามารถลบข้อมูลเมตาจาก AVIF: %1$s + มอบแบดจ์ + ย้อนกลับ + สำรองข้อมูลรหัสลับ + แบดจ์ + เกิดข้อผิดพลาดในการตรวจสอบ + เกิดข้อผิดพลาดจากการยืนยันตนด้วยชีวภาพ + เกิดข้อผิดพลาดจากการยืนยันตนด้วยชีวภาพ: Error: %1$s + บล๊อก + Amethyst จะไม่เชื่อมต่อกับ relay เหล่านี้เด็ดขาด + ผู้ใช้ที่ถูกบล็อก + รายการบุ๊กมาร์กใหม่ + ข้อมูลเมตาของรายการบุ๊กมาร์ก + ข้อมูลเมตาของรายการบุ๊กมาร์กสามารถถูกดูได้โดยทุกคนบน Nostr เฉพาะสมาชิกส่วนตัวของคุณเท่านั้นที่ถูกเข้ารหัส + บุ๊คมาร์ค + แชร์ + แถบนำทางด้านล่าง + Relays ที่เชี่ยวชาญในการส่งโน้ตของคุณไปยัง relay อื่นๆ ทั้งหมด เช่น sendit.nosflare.com Amethyst จะเพิ่ม relay นี้ในเหตุการณ์ใหม่ทั้งหมดที่คุณสร้าง + เบราว์เซอร์ + รายการโปรด + กำลังโหลดผ่านเว็บแบบเปิด แตะเพื่อใช้ Tor + กำลังโหลดผ่าน Tor แตะเพื่อใช้เว็บแบบเปิด + + %1$s, %2$d กิจกรรม + + อัปโหลดรูปภาพล้มเหลว + ไม่สามารถอัปโหลดรูปภาพที่เลือก ลองอีกครั้งหรือวาง URL + แชร์กิจกรรมปฏิทิน + เปิดในแผนที่ + เปิดลิงก์ + กำลังดำเนินอยู่ + %1$s · สิ้นสุด %2$s + + เริ่มในอีก %1$d นาที + + แจ้งเตือนเมื่อกิจกรรมที่คุณเข้าร่วมกำลังจะเริ่ม + การแจ้งเตือนปฏิทิน + กิจกรรมปฏิทิน + การแจ้งเตือนจะถูกส่งเมื่อกิจกรรมที่คุณเข้าร่วมกำลังจะเริ่ม + ส่งการแจ้งเตือน + + %1$d นาที + + การแจ้งเตือนปฏิทิน + วัน + ฟีด + เดือน + สัปดาห์ + รับสาย + ปิดกล้อง + เปิดกล้อง + หูฟัง + วางสาย + สายเรียกเข้า + สายโทรด้วยวิดีโอเข้ามา… + สายโทรด้วยเสียงเข้ามา… + ปิดเสียง + การโทร + การแจ้งเตือนการโทรที่กำลังดำเนินอยู่ + Amethyst ต้องการสิทธิ์เข้าถึงกล้องและไมโครโฟนเพื่อเริ่มการโทรด้วยวิดีโอ โปรดเปิดใช้งานในการตั้งค่าแอป + Amethyst ต้องการสิทธิ์เข้าถึงไมโครโฟนเพื่อเริ่มการโทรด้วยเสียง โปรดเปิดใช้งานในการตั้งค่าแอป + ปฏิเสธ + การตั้งค่าการโทร + ลำโพง + เปิดเสียง + โทรกับ %1$s + ไม่พบที่อยู่ URL จาก %1$s + ยกเลิก + โทเคน Cashu + กำลังตรวจสอบ mint… + ไม่สามารถใช้งาน Cashu + ผู้ให้บริการ Mint เกิดข้อผิดพลาด : %1$s + รับแล้ว + ส่งแล้ว + Mints ที่ตรงกัน + + +%1$d เพิ่มเติม + + Mints ยอดนิยม + + แนะนำโดย %1$d คน + + ย้าย %1$s sat ไปยัง %2$s แล้ว + ไม่พบกระเป๋า Cashu ที่รองรับ + + %1$d ใบแจ้งหนี้ที่รอดำเนินการ + + จ่าย %1$s sat + สูงสุด %2$s sat ในค่าธรรมเนียมใช่หรือไม่? + เผยแพร่คำขอลบคำแนะนำ kind:38000 ของ %1$s ของคุณ relay ที่รองรับ NIP-09 จะลบออก + กู้คืนได้ %1$s sats จาก %2$s proof + ได้รับ Cashu + %1$s sats ถูกส่งไปยังกระเป๋าของคุณ. (ค่าธรรมเนียม: %2$s sats) + + เงินทุนที่ถือครองที่ %1$d mint ที่คุณไม่ได้ใช้ + + รอการชำระใบแจ้งหนี้… + + %1$d mint + + หยุดการแคสต์ + แคสต์ไปยังอุปกรณ์ + มาตรฐานความปลอดภัยของเด็ก + อุปกรณ์เสริม + ศิลปะ + หนังสือ + เสื้อผ้า + ของสะสม + งานฝีมือ + เครื่องใช้ไฟฟ้า + ฟิตเนส + อาหาร + เฟอร์นิเจอร์ + บ้าน + เบ็ดเตล็ด + สำนักงาน + อื่นๆ + สัตว์เลี้ยง + กีฬา + รายวัน + รายเดือน + ครั้งเดียว + รายสัปดาห์ + ชำระ %1$s ผ่าน %2$s? + ชำระใบแจ้งหนี้นี้ผ่าน %1$s? + บริการเดบิตไม่สามารถดำเนินการชำระเงินได้ + กรุณาใส่จำนวนที่ถูกต้องสำหรับข้อเสนอนี้ + กำลังขอใบแจ้งหนี้… + ปิดการสดง Reactions + ปิดแล้ว + ชุมชน + ร่างมีขนาด %1$d ไบต์ ชุมชนนี้จำกัดประเภทนี้ไว้ที่ %2$d ไบต์ + ร่างมีขนาด %1$d ไบต์ ชุมชนนี้จำกัดกิจกรรมไว้ที่ %2$d ไบต์ + คุณโพสต์กิจกรรมประเภทนี้ไปแล้ว %1$d รายการในวันนี้ (จำกัด %2$d) + การตั้งค่าการแต่ง + Port เริ่มต้นคือ 9050 + Relays ที่เชื่อมต่อ + รายการ relay ปัจจุบันที่กำลังใช้งาน + เปอร์เซ็นต์การเชื่อมต่อสำเร็จกับ relay + ตลอดเวลา + ไม่ต้องแสดง + Unmetered WiFi + เพิ่มเอกสาร + เพิ่มรูปภาพ + เพิ่มสื่อ + เพิ่มวีดีโอ + ซ่อน + เตือน + แสดง + การสนทนา + แปลง GIF เคลื่อนไหวเป็นวิดีโอ MP4 เพื่อลดขนาดไฟล์และเพิ่มความเข้ากันได้ในการเล่น + แปลง GIF เป็น MP4 + คัดลอกโน้ต ID (@note1)ลงคลิปบอร์ด + คัดลอกข่้อความในโน้ตลงคลิปบอร์ด + คัดลอกไปยังคลิปบอร์ดแล้ว + คัดลอก @npub ของผู้เขียนลงคลิปบอร์ด + คัดลอก secret key ของฉัน + คัดลอก + ไม่สามารถสร้าง LNUrl จากที่อยู่ Lightning ได้ "%1$s" โปรดตรวจสอบการตั้งค่า + ไม่สามารถตรวจสอบไฟล์ที่ดาวน์โหลดหลังจากอัปโหลด: %1$s + ไม่สามารถโหลดข้อมูลสื่อได้ + ไม่สามารถดึงใบแจ้งหนี้จาก %1$s: %2$s + ไม่สามารถเปิดดูข้อมูลที่ถูกบีบอัดได้ + ไม่พบกระเป๋าเงิน + Amethyst ไม่พบแอปกระเป๋าเงินที่รองรับ Nostr Wallet Connect (NWC) +\n\nสิ่งที่คุณทำได้: +\n\t1. ตรวจสอบการรองรับ NWC: ตรวจสอบอีกครั้งว่าแอปกระเป๋าเงินที่คุณต้องการใช้รองรับ Nostr Wallet Connect หรือไม่ +\n\t2. สร้างการเชื่อมต่อ: ไปที่แอปกระเป๋าเงินของคุณและสร้างการเชื่อมต่อ NWC ใหม่ +\n\t3. เชื่อมกับ Amethyst: กระเป๋าเงินของคุณมักจะให้ตัวเลือกสามแบบ: +\n\t\t3.1 ลิงก์อัตโนมัติ: ปุ่มเพื่อเปิดและเชื่อมต่อกับ Amethyst โดยอัตโนมัติ หากมี ให้กดปุ่มนั้น เปิด Amethyst และกดบันทึกที่หน้าจอใหม่ +\n\t\t3.2 ลิงก์ด้วยตนเอง: URI การเชื่อมต่อที่คุณสามารถคัดลอกและกดไอคอนวางบนหน้าจอนี้เพื่อป้อนโดยตรง +\n\t\t3.3 QR Code: กระเป๋าเงินสร้าง QR Code ที่คุณสามารถอ่านได้จากปุ่ม QR code ในหน้าจอนี้ + + สร้าง + วัน + เขตอันตราย + มืด + รายละเอียด + ทำให้เป็นสาธารณะ + ช่องสนทนา + ชุมชน + อัลกอริทึมฟีด + สตรีมสด + ตลาด + การอ่าน + รีเลย์ขาเข้าของ DM + ไม่แปลจาก + ภาษาที่แสดงที่นี่จะไม่ถูกแปล เลือกภาษาเพื่อลบออกและให้แปลอีกครั้ง + บันทึกลงโทรศัพท์ + กำลังดาวน์โหลดวิดีโอ… + โน๊ตฉบับร่าง + ฉบับร่าง + บัญชี + สร้าง + ฟีด + นำทาง + ระบบ + คุณ + + %1$d วัน + + + %1$d ชั่วโมง + + + %1$d นาที + + + %1$d เดือน + + + %1$d สัปดาห์ + + + %1$d ปี + + แก้ไขปฏิทิน + แก้ไขกิจกรรมปฏิทิน + แก้ไขชุมชน + แก้ไขแพ็ค emoji + แก้ไขเพลย์ลิสต์ + แก้ไขโพสต์ + Emoji ส่วนตัวถูกจัดเก็บแบบเข้ารหัสบน relay และมองเห็นได้เฉพาะคุณเท่านั้น Emoji เหล่านี้ปรากฏในเมนูรีแอคชันและ ":" autocomplete เช่นเดียวกับ emoji สาธารณะ + Emoji สาธารณะมองเห็นได้โดยทุกคนและปรากฏในเมนูรีแอคชันและตัวเลือก ":" autocomplete ของคุณเมื่อแพ็คนี้อยู่ในรายการ emoji ของคุณ + Emoji + เข้ารหัสไฟล์ก่อนอัปโหลดเพื่อความเป็นส่วนตัว บางเซิร์ฟเวอร์อาจไม่รับไฟล์ที่เข้ารหัสในบัญชีฟรี + เข้ารหัสไฟล์ + แชทชั่วคราว + ข้อผิดพลาด + ไม่สามารถชำระได้ + ไม่สามารถถอนได้ + ไม่สามารถเปิดการชำระเงินได้ + แย่จัง ส่ง Zaps ไม่ได้ + เกิดข้อผิดพลาดในการเปิดแอพเข้ารหัส + ไม่พบแอพที่สามารถช่วยเข้ารหัส หรือ signer โปรดตรวจดูอีกครั้งว่าได้ติดตั้งแอพแล้ว + เกิดข้อผิดพลาดในการวิเคราะห์ข้อความแสดงข้อผิดพลาด + เกิดข้อผิดพลาดในการอ่าน JSON จาก %1$s. โปรดตรวจสอบการตั้งค่า Lightning + ไม่สามารถสร้างบิลจากเซอเวอร์ของผู้รับเงินได้ + เปิดในเบราว์เซอร์ + ไม่สามารถเล่นวิดีโอนี้ได้ + codec หรือรูปแบบไม่รองรับบนอุปกรณ์นี้ (%1$s) ลองเปิดในเบราว์เซอร์ของคุณ + ข้อผิดพลาด + การซิงค์ Relay + event จากคุณ + event ถึงคุณ + เซอร์กิต + ปั่นจักรยาน + อาหาร + อดอาหาร + เดินป่า + ทำสมาธิ + พาย + วิ่ง + ฝึกความแข็งแกร่ง + ว่ายน้ำ + เดิน + โยคะ + ขยาย + วันหมดอายุ + ส่งออกการตั้งค่า relay + การลบล้มเหลว: %1$s + การเข้ารหัสคีย์ส่วนตัวของคุณล้มเหลว + เกิดข้อผิดพลาดในการบันทึกรูปภาพ + ไม่สามารถบันทึก PDF ได้ + ไม่สามารถบันทึกวิดีโอได้ + เซิร์ฟเวอร์หลายแห่งไม่รับไฟล์ที่เข้ารหัสในบัญชีฟรี คุณสามารถลองใหม่โดยไม่เข้ารหัส + การอัปโหลดแบบเข้ารหัสล้มเหลว + เกิดข้อผิดพลาดขณะอัพโหลด: %1$s + ไม่สามารถโหลดสื่อได้ + อัปโหลดไปยัง %1$s ล้มเหลว: %2$s + เพิ่มในรายการโปรด + โหลดผ่านเว็บแบบเปิด + โหลดผ่าน Tor + ล่าสุด + ลบออกจากรายการโปรด + แอปนั้นยังไม่ได้โหลด ลองอีกครั้งในอีกสักครู่ + แอปโปรด + อัลกอริทึมฟีดโปรด + ชำระเงินแล้ว + เผยแพร่ไปยัง relay แล้ว + อัปโหลดไฟล์แล้ว + ฟีด Relay โปรด + Relays ที่คุณมักเข้าไปดูฟีดทั่วโลกของพวกเขา + ชุมชน + อัลกอริทึมฟีด + ฟีด + ชุดความสนใจ + รายการ + สถานที่ + เซิร์ฟเวอร์เก็บข้อมูล + เลือกเซิร์ฟเวอร์เพื่ออัปโหลดไฟล์นี้ + ซ่อนโพสต์จากคนแปลกหน้าที่มีเนื้อหาเหมือนกันตั้งแต่ 5 ครั้งขึ้นไป + กรองสแปม + ติดตาม + ติดตามกลับ + อัลกอริทึมฟีดโปรดทั้งหมด + รอบตัวฉัน + คัดสรร + ทั่วโลก + รายการติดตามเริ่มต้น + ติดตามทั้งหมด + การติดตามผู้ใช้ทั้งหมด + ของฉัน + รายการผู้ถูกปิดกั้น + Follow Pack ใหม่ + แก้ไข Follow Pack + ข้อมูลเมตาของ Follow Pack สามารถดูได้โดยทุกคนบน Nostr และมักถูกเผยแพร่บนเว็บไซต์ต่าง ๆ ในฐานะชุดเริ่มต้นสำหรับผู้ใช้ใหม่ + ข้อมูลเมตาของ Follow Pack + รายการติดตามใหม่ + แก้ไขรายการ + สไตล์แกลเลอรีโปรไฟล์ + เลือกสไตล์แกลเลอรี + คลาสสิก + ทันสมัย + โพสต์เฉพาะตำแหน่งที่ตั้ง + เฉพาะผู้ติดตามตำแหน่งนั้นเท่านั้นที่จะเห็น ผู้ติดตามทั่วไปของคุณจะไม่เห็น + ได้รับทุน %1$s จากเป้าหมาย %2$s sats + ชม. + เนื้อหามีการเปลี่ยนแปลง ผู้เขียนอาจไม่เห็นหรืออนุมัติการเปลี่ยนแปลง + หมายถึงอะไร? + เนื้อหานี้เหมือนเดิมตั้งแต่โพสต์ + สวัสดี! ยังมี %1$s อยู่ไหม? + คำต้องห้าม + ลบโพสต์ออกจากฟีดชุมชนเมื่อชุมชนเผยแพร่เอกสารกฎ NIP-9B และกิจกรรมไม่ผ่านกฎนั้น ไม่มีผลเมื่อชุมชนไม่มีกฎที่มีโครงสร้าง + ซ่อนโพสต์ที่ละเมิดกฎของชุมชน + ซ่อนรหัสผ่าน + กำลังอัปโหลด %1$s (%2$d จาก %3$d) + ทั้งหมด + คำขอไม่ถูกต้อง - เซิร์ฟเวอร์ไม่สามารถหรือไม่ยอมดำเนินการตามคำขอ + ไม่ได้รับอนุญาต - ผู้ใช้ไม่มีข้อมูลประจำตัวการตรวจสอบที่ถูกต้อง + ต้องชำระเงิน - เซิร์ฟเวอร์ต้องการการชำระเงินเพื่อดำเนินการตามคำขอ + ไม่สามารถเข้าถึงได้ - ผู้ใช้ไม่มีสิทธิ์การเข้าถึงในการทำคำขอ + ไม่พบที่อยู่ - เซิร์ฟเวอร์ไม่สามารถหาที่อยู่ที่ขอได้ + วิธีการไม่อนุญาต - เซิร์ฟเวอร์รองรับวิธีการขอ แต่ไม่รองรับทรัพยากรเป้าหมาย + ไม่ยอมรับ - เซิร์ฟเวอร์ไม่พบเนื้อหาใดที่ตรงตามคำขอ + ต้องการการตรวจสอบพร็อกซี - ผู้ใช้ไม่มีข้อมูลประจำตัวการตรวจสอบที่ถูกต้อง + คำขอหมดเวลา - เซิร์ฟเวอร์หมดเวลารอคำตอบจากบุคคลอื่น + ความขัดแย้ง - เซิร์ฟเวอร์ไม่สามารถดำเนินการตามคำขอได้เนื่องจากมีความขัดแย้งกับทรัพยากร + ไม่พบ - เนื้อหาที่ร้องขอได้ถูกลบถาวรจากเซิร์ฟเวอร์และจะไม่ถูกกู้คืน + ต้องการความยาว - เซิร์ฟเวอร์ปฏิเสธคำขอเพราะต้องการความยาวที่กำหนดไว้ + ข้อกำหนดเบื้องต้นล้มเหลว - ข้อกำหนดเบื้องต้นของคำขอในฟิลด์หัวเรื่องที่เซิร์ฟเวอร์ไม่สามารถตอบสนองได้ + ข้อมูลขนาดใหญ่เกินไป - คำขอมีขนาดใหญ่กว่าขีดจำกัดที่เซิร์ฟเวอร์กำหนด และเซิร์ฟเวอร์ปฏิเสธที่จะดำเนินการ + URI ยาวเกินไป - URL ที่ร้องขอโดยไคลเอนต์ยาวเกินกว่าที่เซิร์ฟเวอร์จะดำเนินการได้ + ประเภทสื่อไม่รองรับ - คำขอใช้รูปแบบสื่อที่เซิร์ฟเวอร์ไม่รองรับ + จำนวนข้อมูลไม่เหมาะสม - เซิร์ฟเวอร์ไม่สามารถตอบสนองค่าที่ระบุในฟิลด์หัวเรื่องช่วงของคำขอได้ + การคาดหวังล้มเหลว - เซิร์ฟเวอร์ไม่สามารถตอบสนองข้อกำหนดที่ระบุในฟิลด์หัวเรื่องของคำขอ Expect + ต้องการการอัปเกรด - เซิร์ฟเวอร์ปฏิเสธที่จะดำเนินการตามคำขอโดยใช้โปรโตคอลปัจจุบัน เว้นแต่ไคลเอนต์จะอัปเกรดเป็นโปรโตคอลที่แตกต่าง + ข้อผิดพลาดภายในเซิร์ฟเวอร์ - เซิร์ฟเวอร์พบข้อผิดพลาดที่ไม่คาดคิดและไม่สามารถดำเนินการตามคำขอได้ + ไม่ไสามารถดำเนินการได้ - เซิร์ฟเวอร์ไม่สามารถตอบสนองคำขอหรือไม่รู้จักวิธีการขอ + Bad Gateway - เซิร์ฟเวอร์ทำหน้าที่เป็นเกตเวย์และได้รับการตอบกลับที่ไม่ถูกต้องจากโฮสต์ + บริการไม่พร้อมใช้งาน - มักเกิดขึ้นเมื่อเซิร์ฟเวอร์มีการใช้งานมากเกินไปหรือหยุดทำงานเพื่อบำรุงรักษา + Gateway หมดเวลา - เซิร์ฟเวอร์ทำหน้าที่เป็นเกตเวย์หรือพร็อกซีและหมดเวลารอการตอบกลับ + ไม่รองรับเวอร์ชัน HTTP - เซิร์ฟเวอร์ไม่รองรับเวอร์ชัน HTTP ที่อยู่ในคำขอ + เซิร์ฟเวอร์มีข้อผิดพลาดในการกำหนดค่าภายใน + พื้นที่จัดเก็บไม่เพียงพอ - เซิร์ฟเวอร์มีพื้นที่จัดเก็บไม่เพียงพอที่จะดำเนินการตามคำขอได้สำเร็จ + พบลูป - เซิร์ฟเวอร์ตรวจพบการวนลูปไม่สิ้นสุดขณะประมวลผลคำขอ + ต้องการการตรวจสอบเครือข่าย - ไคลเอนต์ต้องได้รับการตรวจสอบเพื่อเข้าถึงเครือข่าย + พฤติกรรมที่ผิดกฎหมาย + บันทึกรูปภาพลงแกลเลอรี + เลียนแบบ + จำนวนที่ต้องชำระไม่ถูกต้อง (%1$s sats) จาก %2$s. มันควรจะเป็น %3$s + Relays ที่เชี่ยวชาญในการโฮสต์ข้อมูลเมตาและรายการ relay ของทุกคน เช่น purplepag.es Amethyst จะใช้ relay เหล่านี้เพื่อค้นหาผู้ใช้ที่ไม่ได้อยู่ในรายการของคุณ + ชุดความสนใจใหม่ + เปลี่ยนชื่อ + ชุดแฮชแท็ก + key ไม่ถูกต้อง + รหัสลับไม่ถูกต้อง: %1$s + ที่อยู่ไม่ถูกต้อง + Amethyst ได้รับ URI แต่ URI นั้นไม่ถูกต้อง: %1$s + ไม่สามารถโควทโน้ตฉบับร่างได้ + ไม่สามารถกดรีแอคโน้ตฉบับร่างได้ + ไม่สามารถตอบกลับโน้ตฉบับร่างได้ + ไม่สามารถ zap โน้ตฉบับร่างได้ + ต้องใช้ key + Relays ที่เผยแพร่ MLS KeyPackages ของคุณ (MIP-00) ผู้ใช้รายอื่นดึง KeyPackages เหล่านี้เพื่อเชิญคุณเข้ากลุ่มแชท Marmot ใส่ relay 1–3 รายการที่รับเหตุการณ์ KeyPackage จากคุณและอนุญาตให้อ่านแบบสาธารณะ + นัดหมาย + บล็อก + รายการบุ๊กมาร์ก + ปฏิทิน + ประกาศ + ความคิดเห็น + นัดหมายรายวัน + การลบ + ฉบับร่าง + การแก้ไข + ไฮไลต์ + ข้อมูลทางการแพทย์ + ห้องประชุม + โน้ต + รายการบุ๊กมาร์กเก่า + รูปภาพ + โหวต + โปรไฟล์ + รายงาน + การตั้งค่าผู้ใช้ + วิดีโอ + รู้ + การตั้งค่าการแสดงภาษา + สำหรับแต่ละคู่ภาษาที่แปล เลือกภาษาที่จะแสดงก่อน + เห็นล่าสุด %1$s ที่ผ่านมา + เห็นเมื่อสักครู่นี้ + ไม่เคยพบ + เห็นล่าสุดเมื่อ %1$s (%2$s ที่ผ่านมา) + ออก + สว่าง + รีเลย์ในพื้นที่ของคุณ + รายการรีเลย์ที่กำลังทำงานอยู่ในอุปกรณ์นี้ + เข้าสู่ระบบด้วย private key เพื่อบูสโพสต์ + เข้าสู่ระบบด้วย private key เพื่อติดตาม + เข้าสู่ระบบด้วย private key เพื่อเพิ่มการซ่อนข้อความ + เข้าสู่ระบบด้วย private key เพื่อตอบกลับ + เข้าสู่ระบบด้วย private key เพื่อส่ง zaps + เข้าสู่ระบบด้วย private key เพื่อแก้ไขการซ่อนข้อความ + คุณกำลังใช้คีย์สาธารณะซึ่งอ่านได้อย่างเดียว เข้าสู่ระบบด้วยคีย์ส่วนตัวเพื่อลงนามเหตุการณ์ + เข้าสู่ระบบด้วย private key เพื่อเลิกติดตาม + คุณกำลังใช้คีย์สาธารณะซึ่งอ่านได้อย่างเดียว เข้าสู่ระบบด้วยคีย์ส่วนตัวเพื่ออัปโหลดไฟล์ + เข้าสู่ระบบด้วย private key เพื่อถูกใจโพสต์ + วิดีโอ + เดือน + แพ็ค Emoji ของฉัน + กำลังเพิ่ม %1$s… + มอบสิทธิ์ผู้ดูแลระบบแล้ว + เพิกถอนสิทธิ์ผู้ดูแลระบบแล้ว + ไม่สามารถเพิ่ม %1$s: %2$s + ไม่สามารถสร้างกลุ่มได้: %1$s + ไม่สามารถมอบสิทธิ์ผู้ดูแลระบบได้: %1$s + ไม่สามารถออกจากกลุ่มได้: %1$s + ไม่สามารถลบสมาชิกได้: %1$s + ไม่สามารถเพิกถอนสิทธิ์ผู้ดูแลระบบได้: %1$s + ไม่สามารถอัปเดตได้: %1$s + กลุ่ม MLS + อัปเดตข้อมูลกลุ่มแล้ว + + %1$d สมาชิก + + ลบสมาชิกออกแล้ว + + %1$d ข้อความ + + ไม่ได้เป็นสมาชิกของกลุ่มนี้ + ข้อผิดพลาดที่ไม่ทราบสาเหตุ + เพิ่มสื่อแล้ว + เพิ่มสื่อในแกลเลอรีโปรไฟล์ของคุณแล้ว + เริ่มดาวน์โหลดสื่อแล้ว… + Media Servers + สื่อชิ้นนี้ใหญ่เกินไปสำหรับ NIP-95 + กรุณาระบุปลายทางของข้อความก่อน + อัปโหลดไม่ได้ + ชื่อเรื่อง + ไม่สามารถลบข้อมูลเมตาได้ + ไม่สามารถลบข้อมูลเมตาส่วนตัวออกจากสื่อได้ ยกเลิกการอัปโหลดแล้ว + ย้ายบุ๊กมาร์กสำเร็จ + ไม่พบการตั้งค่า Lightning + ตัวเลือกเพิ่มเติม + ย้ายไปส่วนตัว + ย้ายไปสาธารณะ + อัปโหลดรูปภาพปก + เลือกรูปภาพสี่เหลี่ยมจัตุรัสเพื่อใช้เป็นอาร์ตเวิร์กของเพลย์ลิสต์นี้ + + +%1$d แทร็กเพิ่มเติม + + + %1$d แทร็ก + + + %1$d แทร็ก + + กำลังอัปโหลดปกและเผยแพร่ ระบบจะดำเนินการต่อแม้คุณออกจากหน้าจอ + อัปโหลดไฟล์เสียง + เลือกไฟล์ MP3, WAV หรือ FLAC ระบบจะอัปโหลดไปยังเซิร์ฟเวอร์มีเดียของคุณเมื่อบันทึก + อัปโหลดรูปภาพปก + เลือกรูปภาพสี่เหลี่ยมจัตุรัสเพื่อใช้เป็นอาร์ตเวิร์กของแทร็กนี้ + กำลังอัปโหลดปกและเสียง และเผยแพร่ ระบบจะดำเนินการต่อแม้คุณออกจากหน้าจอ + เปิดการมองเห็นอยู่ คลิกเพื่อปิด + ปิดการมองเห็น คลิกเพื่อปลดออก + รายการของฉัน + ต้องระบุชื่อ + การตั้งค่า Namecoin + อ่าน public key ของคุณ + การส่งข้อความ + แลกเปลี่ยนข้อความกับ nApplet อื่น + การกระทำบนแป้นพิมพ์ + ผูก keyboard shortcuts + การแจ้งเตือน + แสดงการแจ้งเตือนให้คุณ + อ่าน ลงนาม และเผยแพร่อีเวนต์ของคุณ + เครือข่าย + ดึงทรัพยากรจากเว็บและ Blossom + พื้นที่จัดเก็บ + พื้นที่จัดเก็บส่วนตัวของตัวเอง + ธีม + จับคู่สีของแอปของคุณ + การอัปโหลด + อัปโหลดไฟล์ไปยังเซิร์ฟเวอร์มีเดียของคุณ + การชำระเงิน + ชำระ Lightning invoices + nApplet นี้ต้องการอ่านคีย์สาธารณะของคุณ + nApplet นี้ต้องการอ่านโปรไฟล์และข้อมูลบัญชีของคุณ + nApplet นี้ต้องการแสดงการแจ้งเตือนให้คุณ + + nApplet นี้ต้องการชำระใบแจ้งหนี้ Lightning เป็นจำนวน %1$d sats + + nApplet นี้ต้องการลงนามและเผยแพร่อีเวนต์ kind %1$d ในนามของคุณ + nApplet นี้ต้องการส่งอีเวนต์ที่เข้ารหัสในนามของคุณ + nApplet นี้ต้องการลงนามและเผยแพร่อีเวนต์ kind %1$d ในนามของคุณ: + nApplet นี้ต้องการอ่านอีเวนต์จาก relay ของคุณ + nApplet นี้ต้องการดึงข้อมูลทรัพยากรเว็บ + ไซต์นี้ต้องการลงนามอีเวนต์ kind %1$d ด้วยคีย์ Nostr ของคุณ + nApplet นี้ต้องการใช้พื้นที่จัดเก็บส่วนตัวของตัวเอง + nApplet นี้ต้องการอัปโหลดไฟล์ไปยังเซิร์ฟเวอร์สื่อของคุณ + ไม่สามารถส่งข้อความได้ + ปิดเสียงผู้พูดคนนี้ + กู้คืนผู้พูดคนนี้ + ออก + ไม่สามารถทำเครื่องหมายห้องว่าปิดแล้ว กำลังออกอยู่ดี — ห้องจะปิดอัตโนมัติ + + %1$d ผู้ฟัง + + ลดมือ + ปิดไมค์ + เปิดไมค์ + ปิดเสียง + ไม่สามารถบันทึกรายการเซิร์ฟเวอร์ nest ของคุณได้ ลองอีกครั้ง + เปิดเสียงต่อเนื่องขณะที่ห้องเปิดอยู่ + Nest เชื่อมต่อแล้ว + หยุด + แตะเพื่อกลับ + ติดตาม + ปิดเสียง + เลิกติดตาม + เปิดเสียง + ออกจาก nest แล้ว + เข้าร่วมในฐานะผู้ฟัง + ขึ้นเวทีแล้ว + ยกมือขึ้น + กำลังพูด + ยกมือ + เปิดเสียง + บันทึกเป็นอีเวนต์ที่แทนที่ได้ kind-10112 เพื่อให้ไคลเอนต์อื่นอ่านการตั้งค่าของคุณได้ + เซิร์ฟเวอร์ของคุณ + ข้อเสนอแนะในตัวที่คุณสามารถเพิ่มลงในรายการด้วยการแตะครั้งเดียว + เซิร์ฟเวอร์ที่แนะนำ + เซิร์ฟเวอร์ Nest + ไม่เคย + แบดจ์ใหม่ + ปฏิทินใหม่ + กิจกรรมปฏิทินใหม่ + ชุมชนใหม่ + ผู้ดูแล + ผู้ใช้ที่ถูกแบน + ความคิดเห็นในชุมชน (1111) + บทความยาว (30023) + โพสต์รูปภาพ (20) + ข้อความสั้น (1) + วิดีโอสั้น (22) + โพสต์วิดีโอ (21) + ประเภทอีเวนต์ที่อนุญาต + ขนาดอีเวนต์สูงสุดแบบ Global (ไม่บังคับ) + กฎที่ตรวจสอบได้ (ไม่บังคับ) + ประตู Web-of-trust (ไม่บังคับ) + แพ็ค emoji ใหม่ + เป้าหมายใหม่ + บทความใหม่ + เพลย์ลิสต์ใหม่ + เพลงใหม่ + สินค้าใหม่ + ส่งคำขอใหม่ + เธรดใหม่ + การออกกำลังกายใหม่ + + %1$d ไฟล์แนบ + + ไม่พบแอป Blossom กรุณาติดตั้งแอป Blossom ในเครื่องเพื่อดูไฟล์นี้ + ไม่สามารถเปิดลิงก์ Blossom ได้ + ไม่พบแอปกล้องในอุปกรณ์นี้ + ไม่ได้ตั้งค่า Lightning Address + ไม่พบแอปสำหรับการชำระเงินนี้ กรุณาติดตั้งกระเป๋าเงินที่รองรับ + ไม่มีแอปที่ติดตั้งสำหรับการชำระเงิน %1$s กรุณาติดตั้งกระเป๋าเงินที่รองรับ + ไม่มีการเลือกประเภทของ reaction กดค้างเพื่อเปลี่ยน + ไม่มีรายการ reaction + ไม่พบกระเป๋า Lightning โปรดติดตั้งแอพกระเป๋า Lightning ก่อน + ไม่พบกระเป๋า Lightning (Error: %1$s) โปรดติดตั้งแอพกระเป๋า Lightning ก่อน + ไม่มีการตั้งค่าจำนวนเพื่อ zap กดค้างเพื่อตั้งค่า + การแจ้งเตือน + หมวดหมู่ + การส่ง + การแสดงผลในแอป + ตอนนี้ + งานศิลปะ Nowhere + Drop ของ Nowhere + กิจกรรม Nowhere + ฟอรัม Nowhere + การระดมทุน Nowhere + เว็บไซต์ Nowhere + ข้อความ Nowhere + คำร้อง Nowhere + ร้านค้า Nowhere + ภาพเปลือย/สื่อลามก + ไม่สามารถสร้างการอ้างอิง event ได้ + ไม่มี pubkey ผู้รับในโน้ตนี้ + nutzap เป็นแบบสาธารณะและจะเปิดเผยโน้ตส่วนตัวนี้ ใช้ Lightning zap แทน + Nutzap ล้มเหลว + + ส่ง %1$s sats, %2$d ทาง + + ไม่ได้ตั้งค่า Bitcoin chain backend ไว้ + ไม่สามารถกระจายธุรกรรมได้ + ไม่สามารถสร้างธุรกรรมได้ + ไม่สามารถโหลดยอด Bitcoin ของคุณได้ + ส่งการชำระเงินแล้ว แต่ไม่สามารถเผยแพร่ใบเสร็จ zap ได้ + + ส่งการชำระเงินแล้ว (เผยแพร่ %1$d จาก %2$d ใบเสร็จ) แต่ไม่สามารถเผยแพร่ใบเสร็จถัดไปได้ + + ส่วนแบ่งของผู้รับต่ำกว่าเกณฑ์ขั้นต่ำ + ไม่สามารถเซ็นธุรกรรมได้ + ~10 นาที + ~30 นาที + ~1 ชั่วโมง + เร็ว + ปกติ + ช้า + + แบ่งให้ %1$d ผู้รับ + + + ข้าม %1$d ผู้รับที่มีแต่ Lightning address — on-chain ต้องการ Nostr pubkey เพื่อสร้างที่อยู่ + + + ใช้การแบ่ง zap %1$d ทางของโน้ตนี้ + + กำลังกระจาย + กำลังสร้างธุรกรรม + กำลังโหลดยอดคงเหลือ + กำลังเผยแพร่ใบเสร็จ + กำลังเซ็น + อนุญาตให้โหวตได้เพียงครั้งเดียวต่อผู้ใช้หนึ่งคนสำหรับการสำรวจประเภทนี้ + แสดง Reactions ทั้งหมด + เปิดอยู่ + พอร์ต Orbot Socks + มีหลักฐานว่าโพสต์นี้มีการลงนามก่อน %1$s หลักฐานถูกประทับตราใน Bitcoin blockchain ณ วันและเวลาดังกล่าว + Timestamp ถูกยืนยัน + ต้องป้อนรหัสผ่าน + หยุดชั่วคราว + จ่าย + ข้อความจาก %1$s + เป้าหมายการชำระเงิน + เพิ่มที่อยู่การชำระเงินสำหรับเครือข่ายต่างๆ (เช่น bitcoin, lightning, ethereum) + บันทึก PDF ลงใน Downloads/Amethyst แล้ว + ข้อมูลเมตาของรายการติดตามสามารถดูได้โดยทุกคนบน Nostr โดยเฉพาะสมาชิกส่วนตัวของคุณที่จะถูกเข้ารหัส + ข้อมูลเมตาของรายการติดตาม + รูปภาพ + ปักหมุดไว้ด้านบน + ปักหมุดที่โปรไฟล์ + เล่น + + %1$d ตอน + + ผู้เขียนโพลล์ไม่สามารถลงคะแนนในโพล์ของตนเองได้ + (0–100)% + โพลปิดรับการลงคะแนนเพิ่มเติม + หลายตัวเลือก + ตัวเลือก %1$s + ตัวเลือกเดียว + ไม่สามารถโหวต + โพล + โพสต์ + + โพสต์นี้มีแฮชแท็กมากกว่า %1$d รายการ + + รูปตัวอย่างสำหรับ %1$s + ตัวเลือกความเป็นส่วนตัว + นโยบายความเป็นส่วนตัว + <ไม่สามารถถอดรหัสข้อความส่วนตัวได้>\n\nคุณถูกอ้างถึงในการสนทนาส่วนตัว/เข้ารหัสระหว่าง %1$s และ %2$s. + รีเลย์ขาเข้าของ DM + ใส่รีเลย์ 1–3 ตัวเพื่อทำหน้าที่เป็นกล่องขาเข้าส่วนตัวของคุณ คนอื่นจะใช้รีเลย์เหล่านี้ในการส่งข้อความ DM ถึงคุณ รีเลย์กล่องขาเข้า DM ควรยอมรับข้อความจากทุกคน แต่อนุญาตให้คุณดาวน์โหลดได้เท่านั้น ตัวเลือกที่ดี ได้แก่:\n - inbox.nostr.wine (เสียค่าบริการ)\n - you.nostr1.com (รีเลย์ส่วนตัว - เสียค่าบริการ) + ผู้ใช้รับ DM บน relay เหล่านี้ + ข้อความส่วนตัว + ทำให้เป็นส่วนตัว: gift-wrap โน้ตไปยังผู้ใช้ที่ได้รับการแจ้งเตือนเท่านั้น + การตอบกลับโน้ตส่วนตัวจะเป็นส่วนตัวเสมอ + มองเห็นได้โดย + รีเลย์ส่วนตัว + ใส่รีเลย์ 1–3 ตัวเพื่อเก็บเหตุการณ์ที่ไม่มีใครสามารถเห็นได้ เช่น ร่างโพสต์ และการตั้งค่าแอปของคุณ รีเลย์เหล่านี้ควรเป็นรีเลย์ภายในเครื่องหรือรีเลย์ที่ต้องมีการยืนยันตัวตนก่อนที่จะดาวน์โหลดเนื้อหาของผู้ใช้แต่ละคน + คําหยาบคาย / คําพูดที่แสดงความเกลียดชัง + โปรไฟล์ + แบดจ์โปรไฟล์ + คำแนะนำแอป + ป้ายโปรไฟล์ + ฟีดผู้ติดตาม + ฟีด Zap ที่ได้รับ + ส่วนติดต่อผู้ใช้โปรไฟล์ + โปรไฟล์ + เสนอการแก้ไข + Relay รวมที่แอปต้องใช้เพื่อดาวน์โหลดฟีดของคุณ เช่น filter.nostr.wine ซึ่งจะแทนที่โมเดล outbox และทำให้แอปเชื่อมต่อเฉพาะ relay ในรายการของคุณ + แชทสาธรณะ + แชทสาธารณะมองเห็นได้สำหรับทุกคนบน Nostr และทุกคนสามารถเข้าร่วมได้ เหมาะสำหรับชุมชนเปิดในหัวข้อเฉพาะ การกลั่นกรองสามารถควบคุมได้โดยการลบโพสต์บน relay ของกลุ่ม + ใส่ relay 1–3 รายการที่โฮสต์กลุ่มนี้ ไคลเอนต์ Nostr ใช้การตั้งค่านี้เพื่อทราบว่าจะดาวน์โหลดข้อความจากที่ใดและส่งข้อความของคุณไปที่ใด + relay + ข้อมูลเมตาแชทสาธารณะ + แชทสาธารณะ + รีเลย์สาธารณะสำหรับหน้า Home + รีเลย์ประเภทนี้จะเก็บเนื้อหาทั้งหมดของคุณ Amethyst จะส่งโพสต์ของคุณไปยังรีเลย์เหล่านี้ และคนอื่น ๆ จะใช้รีเลย์เหล่านี้เพื่อค้นหาเนื้อหาของคุณ ใส่รีเลย์ 1–3 ตัว ซึ่งสามารถเป็นรีเลย์ส่วนตัว รีเลย์ที่ต้องเสียค่าบริการ หรือรีเลย์สาธารณะก็ได้ + ผู้ใช้กำลังโพสต์เนื้อหาของตนไปยัง relay เหล่านี้ + ข้อความสาธารณะ + รีเลย์ขาเข้าสาธารณะ + รีเลย์ประเภทนี้จะรับการตอบกลับ ความคิดเห็น การถูกใจ และการส่ง "zap" ทั้งหมดไปยังโพสต์ของคุณ ใส่รีเลย์ 1–3 ตัว และตรวจสอบให้แน่ใจว่ารีเลย์เหล่านี้ยอมรับโพสต์จากทุกคน + ผู้ใช้กำลังรับการแจ้งเตือนบน relay เหล่านี้ + ID โน้ต + ลบ + ปิดเสียงกระทู้ + แชร์ + แชร์ Browser Link + เปิดเสียงกระทู้ + ปฏิกิริยา + ปฏิกิริยา + แถวปฏิกิริยา + อ่านจาก Relay + จำนวนข้อมูลในหน่วยไบต์ที่ถูกรับมาจากรีเลย์นี้ รวมถึงฟิลเตอร์และอีเว้นต่างๆ + ดูอย่างเดียว + กดค้างเพื่อบันทึกข้อความเสียง + แชท relay + แชท relay คือกลุ่มแชทที่ควบคุมโดย relay หลัก มองเห็นได้สำหรับทุกคนบน Nostr และทุกคนสามารถเข้าร่วมได้ เหมาะสำหรับชุมชนเปิดในหัวข้อเฉพาะ บางกลุ่มเป็นแบบชั่วคราวดังนั้นข้อความแชทจะหายไปตามเวลา + แชท relay + กิจกรรม + ประเภท + ผู้ใช้ + การตั้งค่า + ตั้งค่ารีเลย์ + รายการ outbox + รีเลย์ + เติมและส่ง zap + ส่ง zap + เติม %1$s sats ไปยัง %2$s และ zap %3$s %4$s sats · ค่าธรรมเนียม ≈ %5$s sats + ลบ + ลบออกจากบุ๊คมาร์คสาธรณะ + ตอบกลับที่นี่.. + การแจ้งเตือน: + + ส่งคำขอให้ลบ + คำขอให้ลบข้อมูล + ไม่สามารถรีเซ็ตสถานะ Marmot ได้: %1$s + รีเซ็ตสถานะ Marmot + รีเซ็ตสถานะ Marmot แล้ว + ลองใหม่ + รายการปฏิทิน + ปฏิทิน + หมากรุก + สำรวจ + หน้าแรก + นำเข้ารายการที่ติดตาม + ข้อความ + เพลย์ลิสต์ + เพลง + การแจ้งเตือน + ตอน + พอดแคสต์ + กำหนดเวลาโพสต์ + ยกเลิกการกำหนดเวลา + โพสต์ที่กำหนดเวลาอาจไม่เผยแพร่จนกว่าคุณจะเปิดแอปอีกครั้ง โพสต์ที่กำหนดเวลาของบัญชีอื่นจะไม่ส่งขณะที่บัญชีนี้ใช้งานอยู่ เปิดใช้การทำงานตลอดเวลาในการตั้งค่า → การตั้งค่า UI เพื่อกำหนดเวลาในพื้นหลังอย่างน่าเชื่อถือ + โพสต์ที่กำหนดเวลาอาจไม่เผยแพร่จนกว่าคุณจะเปิดแอปอีกครั้ง เปิดใช้การทำงานตลอดเวลาในการตั้งค่า → การตั้งค่า UI เพื่อกำหนดเวลาในพื้นหลังอย่างน่าเชื่อถือ + โพสต์ที่กำหนดเวลา + ส่งทันที + %1$s · อีก %2$s + %1$s · %2$s ที่แล้ว + พรุ่งนี้ + ข้อผิดพลาด: %1$s + คัดลอก ID โน้ตแล้ว + + ออกจากระบบแล้ว · ลบโพสต์ที่กำหนดเวลา %1$d รายการ + + ออกจากระบบแล้ว + + คุณมี %1$d โพสต์ที่ตั้งเวลาไว้แต่ยังไม่ได้เผยแพร่ การออกจากระบบจะลบโพสต์เหล่านั้นอย่างถาวร + + โพสต์ที่กำหนดเวลาล้มเหลว + เผยแพร่โพสต์ที่กำหนดเวลาแล้ว + + ไปยัง %1$d relay + + ยกเลิกแล้ว + ล้มเหลว + ตั้งเวลาไว้ + กำลังส่ง… + ส่งแล้ว + + · %1$d รายการจะส่งใน 1 ชม. + + + %1$d รายการในคิว + + ตัวเลือกที่ดี ได้แก่:\n%1$s + ค้นหารีเลย์ + ค้นหารีเลย์ + รายการรีเลย์ที่จะใช้เมื่อค้นหาข้อมูลหรือผู้ใช้ การแท็กและการค้นหาจะไม่ทำงานหากไม่มีตัวเลือก ตรวจสอบให้แน่ใจว่ารีเลย์เหล่านี้รองรับ NIP-50 + event ที่ค้นหาได้ + คัดลอก Secret key (nsec) ลงคลิปบอร์ด + คุณยังไม่ได้บล็อกผู้ใช้ใดเลย + ตัวกรองความปลอดภัย + ไม่มีคำที่ซ่อนอยู่ เพิ่มคำด้านล่างเพื่อซ่อนโพสต์ที่มีคำนั้น + เนื้อหาที่ถูกบล็อก + การตั้งค่าการกรอง + ไม่มีบัญชีที่ถูกระบุว่าเป็นสแปมในเซสชันนี้ + ส่ง + ส่งเหตุการณ์โปรไฟล์ (kind 0) ที่ได้รับทั้งหมดไปยัง relay ในเครื่องของคุณ + ส่งต่อโปรไฟล์ไปยัง relay ในเครื่อง + ยอดที่ใช้ได้สำหรับผู้รับนี้: %1$s sats + การชำระเงินล้มเหลว + ธุรกรรม: %1$s + กำลังชำระผ่าน %1$s… + เซอเวอร์ไม่ตอบสนองหลังจากอัพโหลดแล้ว + การตั้งค่า + ไม่มีเธรดที่ปิดเสียง + เธรดที่ปิดเสียง + แชร์เป็นรูปภาพ + แชร์เป็น URL รูปภาพ + อัปโหลด HLS + แชร์ หรือเก็บไว้ + แสดง QR code คีย์ส่วนตัวแบบเข้ารหัส + รวมข้อความส่วนตัวและกลุ่มในแท็บการแจ้งเตือน ปิดเพื่อเก็บข้อความไว้เฉพาะในแท็บข้อความ + แสดงข้อความ + แสดง QR code คีย์ส่วนตัว + คำขอลงชื่อถูกปฏิเสธ + โปรดตรวจสอบให้แน่ใจว่าแอพเข้ารหัส หรือ Signer ได้อนุญาติทำรายการนี้ + ผู้ลงนามภายนอกส่งคืนข้อมูลที่ผิดปกติสำหรับคำขอนี้ อาจมีข้อผิดพลาดใน Amethyst หรือแอปผู้ลงนาม + ไม่พบผู้ลงนาม + ถอนการติดตั้งแอปผู้ลงนามแล้วหรือไม่ ตรวจสอบว่าติดตั้งผู้ลงนามและมีบัญชีนี้อยู่ ออกจากระบบและเข้าสู่ระบบใหม่หากมีการเปลี่ยนแปลงแอปผู้ลงนาม + ย้อนกลับ %1$d วินาที + ข้ามไปข้างหน้า %1$d วินาที + แอป + สแปม + สแปมอีเว้นถูกรับมาจาก relay นี้ + แสปม + แสดงแท็บการแจ้งเตือนสองแท็บ — กำลังติดตาม (คนที่คุณติดตาม) และทุกคน ตัวบ่งชี้ที่ยังไม่ได้อ่านจะเรืองแสงเฉพาะสำหรับกิจกรรมจากคนที่คุณติดตาม + แยกการแจ้งเตือนตามผู้ที่ติดตาม + พยายามลบข้อมูลเมตาส่วนตัวออกจากไฟล์มีเดียที่รองรับก่อนอัปโหลด + ลบข้อมูลเมตาส่วนตัว + อ่านการออกกำลังกายที่เสร็จสิ้นจาก Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) และแนะนำให้แชร์เป็นโพสต์ การอนุญาตจะถูกขอเฉพาะเมื่อคุณเชื่อมต่อ + แนะนำการออกกำลังกายเพื่อแชร์ + ระบบ(ค่าพื้นฐาน) + ธีม + ธีม: มืด, สว่าง หรือระบบ + ข้อความนี้จะหายไปใน %1$s + + +%1$d\nการตอบกลับ + + วันนี้ + ปรับแต่ง + ตั้งค่าเอง + ค่าเริ่มต้น + ซ่อน IP ของคุณจาก relay ทั่วไป + ความเป็นส่วนตัวเต็มรูปแบบ + ซ่อน IP ของคุณจากทุกการเชื่อมต่อ + ภายใน + ปิด + การตั้งค่า Tor/ความเป็นส่วนตัว + แก้ไขการตั้งค่าทั้งหมดด้านล่างอย่างรวดเร็ว + ทุกอย่างยกเว้นสื่อ + ซ่อน IP ของคุณจากทุกอย่าง ยกเว้นรูปภาพและวิดีโอ + รีเลย์สำหรีบข้อความส่วนตัว + บังคับให้ Tor ส่งและรับ DM + รูปภาพ + บังคับให้ Tor เมื่อโหลดรูปภาพ + การอัปโหลดสื่อ + บังคับให้ Tor เมื่ออัปโหลดเนื้อหา + การดำเนินการเงิน + บังคับให้ Tor ใช้กับ zap, Lightning และการโอน Cashu + Relay ที่ไม่น่าเชื่อถือ + บังคับให้ Tor ใช้ relay outbox/inbox + การยืนยันที่อยู่ Nostr + บังคับให้ Tor เมื่อยืนยันที่อยู่ NIP-05 + URL/Relays แบบ Onion + ใช้ Tor สำหรับ URL แบบ .onion + รูปโปรไฟล์ + บังคับให้ Tor เมื่อโหลดรูปโปรไฟล์ + Relay ที่น่าเชื่อถือ + บังคับให้ Tor ใช้ relay ทั้งหมดในรายการของคุณ + ตัวอย่าง URL + บังคับให้ Tor เมื่อโหลดตัวอย่าง URL + วิดีโอ + บังคับให้ Tor เมื่อโหลดวิดีโอ + พื้นฐาน + ใช้ Tor เมื่อเซิร์ฟเวอร์ต้องการ + ไม่สามารถเปิดไฟล์ได้ + ไม่มีแอป torrent ติดตั้งเพื่อเปิดและดาวน์โหลดไฟล์ + เหตุการณ์ไม่มีข้อมูลเพียงพอในการสร้างลิงก์ magnet + ใช้ตัวออกอากาศที่ติดตามเมื่อส่งกิจกรรม แสดงความคืบหน้าสดและสถานะต่อ relay ขณะออกอากาศ + การออกอากาศที่ติดตาม + แปลเป็น + เลือกภาษาที่จะแปลเนื้อหาเป็น + การแปลภาษา + Relays ที่คุณเชื่อถือว่าไม่จำเป็นต้องใช้การเชื่อมต่อ Tor + เสร็จสมบูรณ์ + Performance + Simplified + การตั้งค่า UI + UI Mode + เลือกรูปแบบการโพสต์ + ไม่สามารถสร้างบิลชำระในการส่ง zap ได้ โดยเกิดข้อผิดพลาด %1$s จากกระเป๋าของผู้รับ + ไม่สามารถแชร์รูปภาพได้ โปรดลองอีกครั้งในภายหลัง… + ไม่สามารถแชร์วิดีโอได้ โปรดลองอีกครั้งในภายหลัง… + การถอดรหัสไม่ได้รับอนุญาต + ผู้ลงนามไม่อนุญาตการถอดรหัสที่จำเป็นสำหรับการดำเนินการนี้ เปิดใช้การถอดรหัส NIP-44 ในแอปผู้ลงนามของคุณแล้วลองใหม่อีกครั้ง + เลิกติดตาม + เลิกปักหมุด + เลิกปักหมุดจากโปรไฟล์ + ยกเลิกการอัปโหลดแล้ว + ข้อผิดพลาดในการอัปโหลด + การอัปโหลดเสียงล้มเหลว: %1$s + ไม่สามารถอัปโหลดข้อความเสียงได้ + NIP-95 ยังไม่รองรับข้อความเสียง + เวลาทำงาน %1$d%% + เครื่องยนต์ Tor ที่ใช้งานอยู่ + ใช้เวอร์ชันภายในหรือ Orbot + ผู้ใช้นี้ไม่ได้ตั้งค่า lightning address เพื่อรับ sats + ผู้ใช้ %1$s ไม่ได้ตั้งค่า lightning address เพื่อรับ sats + ประวัติการลบข้อมูล + ส่งคำขอให้ลบข้อมูลแล้ว + คุณภาพดีกว่าที่ขนาดไฟล์เล็กกว่า แต่ไม่ใช่ทุกอุปกรณ์รองรับการเล่น H.265 + ใช้ Codec H.265/HEVC + เริ่มดาวน์โหลดวิดีโอแล้ว… + ปุ่มเครื่องเล่นวิดีโอ + บันทึกวิดีโอลงแกลเลอรีในโทรศัพท์แล้ว + โพสต์เสียง + เสียงทุ้ม + เสียงสูง + เสียงปกติ + ไม่มี + ตอบกลับด้วยเสียง + กระเป๋าเงิน + กระเป๋าเงิน Cashu (NIP-60) + เกิดข้อผิดพลาดจากบริการกระเป๋า Lightning : %1$s + แก้ไข mints + แสดงข้อความเตือนเมื่อโพสต์หรือโปรไฟล์มีรายงานจากคนที่คุณติดตาม + เตือนเมื่อมีรายงาน + เพิ่มบุ๊กมาร์กเว็บ + แก้ไขบุ๊กมาร์กเว็บ + บุ๊กมาร์กเว็บ + คุณคิดอะไรอยู่ ? + การออกกำลังกาย + เขียนข้อความ… + เขียนบน Relay + จำนวนข้อมูลในหน่วยไบต์ที่ถูกส่งไปยังรีเลย์นี้ รวมถึงฟิลเตอร์และอีเว้นต่างๆ + Zap + Zaps + + เปลี่ยนชื่อ + บันทึก diff --git a/commonsUI/src/commonMain/composeResources/values-th/strings.xml b/commonsUI/src/commonMain/composeResources/values-th/strings.xml index 76ddb33d50..44e5dacfd1 100644 --- a/commonsUI/src/commonMain/composeResources/values-th/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-th/strings.xml @@ -1814,4 +1814,1176 @@ แหล่งที่มา: เซิร์ฟเวอร์: เปิด + เกี่ยวกับและข้อมูลทางกฎหมาย + การตั้งค่าบัญชี + เพิ่ม + เพิ่ม Blossom Server + เพิ่ม เซิร์ฟเวอร์ NIP-96 + เมื่อเปิดใช้งาน Amethyst จะเพิ่มแท็กไคลเอนต์ NIP-89 ในกิจกรรมที่คุณเผยแพร่ + เพิ่มแท็กไคลเอนต์ในกิจกรรมของฉัน + เพิ่มการแจ้งเตือนเนื้อหาที่ละเอียดอ่อนก่อนโชว์เนื้อหานี้ + เนื้อหาที่ละเอียดอ่อน + เพิ่มไปยังบุ๊คมาร์คสาธรณะ + ใช้โมเดล AI บนอุปกรณ์เพื่อเสนอการแก้ไขข้อความและการเปลี่ยนแปลงโทนเสียง + เสนอการปรับปรุงข้อความ + รักษาการเชื่อมต่อกับ relay กล่องข้อความของคุณให้ใช้งานได้เพื่อรับการแจ้งเตือนแบบเรียลไทม์ + + เชื่อมต่อกับ %1$d inbox relay แล้ว + + + เชื่อมต่อกับ %1$d relay แล้ว + + กำลังเชื่อมต่อกับ inbox relay… + การแจ้งเตือน Amethyst ใช้งานอยู่ + การแจ้งเตือนสำหรับสายโทรด้วยเสียงและวิดีโอที่เข้ามา + สายเรียกเข้า + %1$s ยอมรับการท้าทายหมากรุกของคุณ + แจ้งเตือนเกี่ยวกับเหตุการณ์ในเกมหมากรุก + หมากรุก + อัปเดตหมากรุก + %1$s เดินแล้ว — ถึงตาคุณ + แจ้งเตือนฉันเมื่อข้อความส่วนตัวมาถึง + ข้อความส่วนตัว + ข้อความใหม่ + ทำเครื่องหมายอ่านแล้ว + แจ้งเตือนเมื่อมีคนกล่าวถึงหรืออ้างอิงคุณในโพสต์ + %1$s กล่าวถึงคุณ + การกล่าวถึง + การกล่าวถึงใหม่ + แจ้งเตือนเมื่อมีคนตอบสนองต่อโพสต์ของคุณ + %1$s ตอบสนองต่อโพสต์ของคุณ + สำหรับ %1$s + ปฏิกิริยา + ปฏิกิริยาใหม่ + แจ้งเตือนเมื่อมีคนตอบกลับโพสต์ของคุณ + การตอบกลับ + การตอบกลับใหม่ + ตอบกลับ + การแจ้งเตือนเมื่อโพสต์ที่กำหนดเวลาถูกเผยแพร่หรือล้มเหลวในการเผยแพร่ + โพสต์ที่กำหนดเวลา + แจ้งเตือนเมื่อมีคน zaps + %1$s sats + ถึง %1$s + จาก %1$s + ได้รับ Zaps + Zap ใหม่ + การตั้งค่าแอป + การรับรอง + คำขอการรับรอง + ความเชี่ยวชาญของ Attestor + คำแนะนำจาก Attestor + ตัวแสดงภาพเสียง + บันทึกกิจกรรมร่างโดยอัตโนมัติเมื่อคุณพิมพ์หรือออกจากตัวแต่งที่มีข้อความที่ยังไม่ได้ส่ง และส่งไปยัง relay outbox ส่วนตัวของคุณ + สร้างร่างโดยอัตโนมัติ + การไถฟีดแบบลื่นไหล + ซ่อนแถบเมนูขณะเลื่อนฟีด + ภาพตัวอย่าง + โหลดรูปภาพและ GIFs โดยอัตโนมัติ + การเล่นวิดีโอ + เล่นวีดีโอและ GIFs โดยอัตโนมัติ + รูปโปรไฟล์ + แสดงรูปโปรไฟล์ + การแสดงตัวอย่าง URL + แสดงจัวอย่าง URL + เล่นวิดีโออัตโนมัติ + เล่นวิดีโออัตโนมัติเมื่อมองเห็นบนหน้าจอ + ไม่สามารถลบข้อมูลเมตาจาก AVIF: %1$s + มอบแบดจ์ + ย้อนกลับ + สำรองข้อมูลรหัสลับ + แบดจ์ + เกิดข้อผิดพลาดในการตรวจสอบ + เกิดข้อผิดพลาดจากการยืนยันตนด้วยชีวภาพ + เกิดข้อผิดพลาดจากการยืนยันตนด้วยชีวภาพ: Error: %1$s + บล๊อก + Blocked Relays + Amethyst จะไม่เชื่อมต่อกับ relay เหล่านี้เด็ดขาด + ผู้ใช้ที่ถูกบล็อก + รายการบุ๊กมาร์กใหม่ + ข้อมูลเมตาของรายการบุ๊กมาร์ก + ข้อมูลเมตาของรายการบุ๊กมาร์กสามารถถูกดูได้โดยทุกคนบน Nostr เฉพาะสมาชิกส่วนตัวของคุณเท่านั้นที่ถูกเข้ารหัส + บุ๊คมาร์ค + แชร์ + แถบนำทางด้านล่าง + Broadcast Relays + Relays ที่เชี่ยวชาญในการส่งโน้ตของคุณไปยัง relay อื่นๆ ทั้งหมด เช่น sendit.nosflare.com Amethyst จะเพิ่ม relay นี้ในเหตุการณ์ใหม่ทั้งหมดที่คุณสร้าง + เบราว์เซอร์ + รายการโปรด + กำลังโหลดผ่านเว็บแบบเปิด แตะเพื่อใช้ Tor + กำลังโหลดผ่าน Tor แตะเพื่อใช้เว็บแบบเปิด + + %1$s, %2$d กิจกรรม + + อัปโหลดรูปภาพล้มเหลว + ไม่สามารถอัปโหลดรูปภาพที่เลือก ลองอีกครั้งหรือวาง URL + แชร์กิจกรรมปฏิทิน + เปิดในแผนที่ + เปิดลิงก์ + กำลังดำเนินอยู่ + %1$s · สิ้นสุด %2$s + + เริ่มในอีก %1$d นาที + + แจ้งเตือนเมื่อกิจกรรมที่คุณเข้าร่วมกำลังจะเริ่ม + calendar_reminders + การแจ้งเตือนปฏิทิน + กิจกรรมปฏิทิน + การแจ้งเตือนจะถูกส่งเมื่อกิจกรรมที่คุณเข้าร่วมกำลังจะเริ่ม + ส่งการแจ้งเตือน + + %1$d นาที + + การแจ้งเตือนปฏิทิน + วัน + ฟีด + เดือน + สัปดาห์ + รับสาย + Bluetooth + ปิดกล้อง + เปิดกล้อง + หูฟัง + วางสาย + สายเรียกเข้า + สายโทรด้วยวิดีโอเข้ามา… + สายโทรด้วยเสียงเข้ามา… + ปิดเสียง + การโทร + การแจ้งเตือนการโทรที่กำลังดำเนินอยู่ + Amethyst ต้องการสิทธิ์เข้าถึงกล้องและไมโครโฟนเพื่อเริ่มการโทรด้วยวิดีโอ โปรดเปิดใช้งานในการตั้งค่าแอป + Amethyst ต้องการสิทธิ์เข้าถึงไมโครโฟนเพื่อเริ่มการโทรด้วยเสียง โปรดเปิดใช้งานในการตั้งค่าแอป + ปฏิเสธ + การตั้งค่าการโทร + ลำโพง + เปิดเสียง + โทรกับ %1$s + ไม่พบที่อยู่ URL จาก %1$s + ยกเลิก + โทเคน Cashu + กำลังตรวจสอบ mint… + ไม่สามารถใช้งาน Cashu + ผู้ให้บริการ Mint เกิดข้อผิดพลาด : %1$s + รับแล้ว + ส่งแล้ว + Mints ที่ตรงกัน + + +%1$d เพิ่มเติม + + Mints ยอดนิยม + + แนะนำโดย %1$d คน + + ย้าย %1$s sat ไปยัง %2$s แล้ว + ไม่พบกระเป๋า Cashu ที่รองรับ + + %1$d ใบแจ้งหนี้ที่รอดำเนินการ + + จ่าย %1$s sat + สูงสุด %2$s sat ในค่าธรรมเนียมใช่หรือไม่? + เผยแพร่คำขอลบคำแนะนำ kind:38000 ของ %1$s ของคุณ relay ที่รองรับ NIP-09 จะลบออก + กู้คืนได้ %1$s sats จาก %2$s proof + ได้รับ Cashu + %1$s sats ถูกส่งไปยังกระเป๋าของคุณ. (ค่าธรรมเนียม: %2$s sats) + + เงินทุนที่ถือครองที่ %1$d mint ที่คุณไม่ได้ใช้ + + รอการชำระใบแจ้งหนี้… + + %1$d mint + + หยุดการแคสต์ + แคสต์ไปยังอุปกรณ์ + มาตรฐานความปลอดภัยของเด็ก + อุปกรณ์เสริม + ศิลปะ + หนังสือ + เสื้อผ้า + ของสะสม + งานฝีมือ + เครื่องใช้ไฟฟ้า + ฟิตเนส + อาหาร + เฟอร์นิเจอร์ + บ้าน + เบ็ดเตล็ด + สำนักงาน + อื่นๆ + สัตว์เลี้ยง + กีฬา + รายวัน + รายเดือน + ครั้งเดียว + รายสัปดาห์ + ชำระ %1$s ผ่าน %2$s? + ชำระใบแจ้งหนี้นี้ผ่าน %1$s? + บริการเดบิตไม่สามารถดำเนินการชำระเงินได้ + กรุณาใส่จำนวนที่ถูกต้องสำหรับข้อเสนอนี้ + กำลังขอใบแจ้งหนี้… + ปิดการสดง Reactions + ปิดแล้ว + ชุมชน + ร่างมีขนาด %1$d ไบต์ ชุมชนนี้จำกัดประเภทนี้ไว้ที่ %2$d ไบต์ + ร่างมีขนาด %1$d ไบต์ ชุมชนนี้จำกัดกิจกรรมไว้ที่ %2$d ไบต์ + คุณโพสต์กิจกรรมประเภทนี้ไปแล้ว %1$d รายการในวันนี้ (จำกัด %2$d) + การตั้งค่าการแต่ง + Port เริ่มต้นคือ 9050 + Relays ที่เชื่อมต่อ + รายการ relay ปัจจุบันที่กำลังใช้งาน + เปอร์เซ็นต์การเชื่อมต่อสำเร็จกับ relay + ตลอดเวลา + ไม่ต้องแสดง + Unmetered WiFi + เพิ่มเอกสาร + เพิ่มรูปภาพ + เพิ่มสื่อ + เพิ่มวีดีโอ + ซ่อน + เตือน + แสดง + การสนทนา + แปลง GIF เคลื่อนไหวเป็นวิดีโอ MP4 เพื่อลดขนาดไฟล์และเพิ่มความเข้ากันได้ในการเล่น + แปลง GIF เป็น MP4 + คัดลอกโน้ต ID (@note1)ลงคลิปบอร์ด + คัดลอกข่้อความในโน้ตลงคลิปบอร์ด + คัดลอกไปยังคลิปบอร์ดแล้ว + คัดลอก @npub ของผู้เขียนลงคลิปบอร์ด + คัดลอก secret key ของฉัน + คัดลอก + ไม่สามารถสร้าง LNUrl จากที่อยู่ Lightning ได้ "%1$s" โปรดตรวจสอบการตั้งค่า + ไม่สามารถตรวจสอบไฟล์ที่ดาวน์โหลดหลังจากอัปโหลด: %1$s + ไม่สามารถโหลดข้อมูลสื่อได้ + ไม่สามารถดึงใบแจ้งหนี้จาก %1$s: %2$s + ไม่สามารถเปิดดูข้อมูลที่ถูกบีบอัดได้ + ไม่พบกระเป๋าเงิน + Amethyst ไม่พบแอปกระเป๋าเงินที่รองรับ Nostr Wallet Connect (NWC) +\n\nสิ่งที่คุณทำได้: +\n\t1. ตรวจสอบการรองรับ NWC: ตรวจสอบอีกครั้งว่าแอปกระเป๋าเงินที่คุณต้องการใช้รองรับ Nostr Wallet Connect หรือไม่ +\n\t2. สร้างการเชื่อมต่อ: ไปที่แอปกระเป๋าเงินของคุณและสร้างการเชื่อมต่อ NWC ใหม่ +\n\t3. เชื่อมกับ Amethyst: กระเป๋าเงินของคุณมักจะให้ตัวเลือกสามแบบ: +\n\t\t3.1 ลิงก์อัตโนมัติ: ปุ่มเพื่อเปิดและเชื่อมต่อกับ Amethyst โดยอัตโนมัติ หากมี ให้กดปุ่มนั้น เปิด Amethyst และกดบันทึกที่หน้าจอใหม่ +\n\t\t3.2 ลิงก์ด้วยตนเอง: URI การเชื่อมต่อที่คุณสามารถคัดลอกและกดไอคอนวางบนหน้าจอนี้เพื่อป้อนโดยตรง +\n\t\t3.3 QR Code: กระเป๋าเงินสร้าง QR Code ที่คุณสามารถอ่านได้จากปุ่ม QR code ในหน้าจอนี้ + + สร้าง + วัน + เขตอันตราย + มืด + รายละเอียด + ทำให้เป็นสาธารณะ + ช่องสนทนา + ชุมชน + อัลกอริทึมฟีด + Follow Packs + สตรีมสด + ตลาด + การอ่าน + รีเลย์ขาเข้าของ DM + DMs + ไม่แปลจาก + ภาษาที่แสดงที่นี่จะไม่ถูกแปล เลือกภาษาเพื่อลบออกและให้แปลอีกครั้ง + บันทึกลงโทรศัพท์ + กำลังดาวน์โหลดวิดีโอ… + โน๊ตฉบับร่าง + ฉบับร่าง + บัญชี + สร้าง + ฟีด + นำทาง + ระบบ + คุณ + + %1$d วัน + + + %1$d ชั่วโมง + + + %1$d นาที + + + %1$d เดือน + + + %1$d สัปดาห์ + + + %1$d ปี + + แก้ไขปฏิทิน + แก้ไขกิจกรรมปฏิทิน + แก้ไขชุมชน + แก้ไขแพ็ค emoji + แก้ไขเพลย์ลิสต์ + แก้ไขโพสต์ + Emoji ส่วนตัวถูกจัดเก็บแบบเข้ารหัสบน relay และมองเห็นได้เฉพาะคุณเท่านั้น Emoji เหล่านี้ปรากฏในเมนูรีแอคชันและ ":" autocomplete เช่นเดียวกับ emoji สาธารณะ + Emoji สาธารณะมองเห็นได้โดยทุกคนและปรากฏในเมนูรีแอคชันและตัวเลือก ":" autocomplete ของคุณเมื่อแพ็คนี้อยู่ในรายการ emoji ของคุณ + Emoji + เข้ารหัสไฟล์ก่อนอัปโหลดเพื่อความเป็นส่วนตัว บางเซิร์ฟเวอร์อาจไม่รับไฟล์ที่เข้ารหัสในบัญชีฟรี + เข้ารหัสไฟล์ + แชทชั่วคราว + ข้อผิดพลาด + ไม่สามารถชำระได้ + ไม่สามารถถอนได้ + ไม่สามารถเปิดการชำระเงินได้ + แย่จัง ส่ง Zaps ไม่ได้ + เกิดข้อผิดพลาดในการเปิดแอพเข้ารหัส + ไม่พบแอพที่สามารถช่วยเข้ารหัส หรือ signer โปรดตรวจดูอีกครั้งว่าได้ติดตั้งแอพแล้ว + เกิดข้อผิดพลาดในการวิเคราะห์ข้อความแสดงข้อผิดพลาด + เกิดข้อผิดพลาดในการอ่าน JSON จาก %1$s. โปรดตรวจสอบการตั้งค่า Lightning + ไม่สามารถสร้างบิลจากเซอเวอร์ของผู้รับเงินได้ + เปิดในเบราว์เซอร์ + ไม่สามารถเล่นวิดีโอนี้ได้ + codec หรือรูปแบบไม่รองรับบนอุปกรณ์นี้ (%1$s) ลองเปิดในเบราว์เซอร์ของคุณ + ข้อผิดพลาด + การซิงค์ Relay + event จากคุณ + event ถึงคุณ + AMRAP + เซอร์กิต + ปั่นจักรยาน + อาหาร + EMOM + อดอาหาร + เดินป่า + ทำสมาธิ + พาย + วิ่ง + ฝึกความแข็งแกร่ง + ว่ายน้ำ + เดิน + โยคะ + ขยาย + วันหมดอายุ + ส่งออกการตั้งค่า relay + การลบล้มเหลว: %1$s + การเข้ารหัสคีย์ส่วนตัวของคุณล้มเหลว + เกิดข้อผิดพลาดในการบันทึกรูปภาพ + ไม่สามารถบันทึก PDF ได้ + ไม่สามารถบันทึกวิดีโอได้ + เซิร์ฟเวอร์หลายแห่งไม่รับไฟล์ที่เข้ารหัสในบัญชีฟรี คุณสามารถลองใหม่โดยไม่เข้ารหัส + การอัปโหลดแบบเข้ารหัสล้มเหลว + เกิดข้อผิดพลาดขณะอัพโหลด: %1$s + ไม่สามารถโหลดสื่อได้ + อัปโหลดไปยัง %1$s ล้มเหลว: %2$s + เพิ่มในรายการโปรด + โหลดผ่านเว็บแบบเปิด + โหลดผ่าน Tor + ล่าสุด + ลบออกจากรายการโปรด + แอปนั้นยังไม่ได้โหลด ลองอีกครั้งในอีกสักครู่ + แอปโปรด + อัลกอริทึมฟีดโปรด + ชำระเงินแล้ว + เผยแพร่ไปยัง relay แล้ว + อัปโหลดไฟล์แล้ว + ฟีด Relay โปรด + Relays ที่คุณมักเข้าไปดูฟีดทั่วโลกของพวกเขา + ชุมชน + อัลกอริทึมฟีด + ฟีด + Hashtags + ชุดความสนใจ + รายการ + สถานที่ + Relays + เซิร์ฟเวอร์เก็บข้อมูล + เลือกเซิร์ฟเวอร์เพื่ออัปโหลดไฟล์นี้ + ซ่อนโพสต์จากคนแปลกหน้าที่มีเนื้อหาเหมือนกันตั้งแต่ 5 ครั้งขึ้นไป + กรองสแปม + ติดตาม + ติดตามกลับ + อัลกอริทึมฟีดโปรดทั้งหมด + รอบตัวฉัน + คัดสรร + ทั่วโลก + รายการติดตามเริ่มต้น + ติดตามทั้งหมด + การติดตามผู้ใช้ทั้งหมด + ของฉัน + รายการผู้ถูกปิดกั้น + Follow Pack ใหม่ + แก้ไข Follow Pack + ข้อมูลเมตาของ Follow Pack สามารถดูได้โดยทุกคนบน Nostr และมักถูกเผยแพร่บนเว็บไซต์ต่าง ๆ ในฐานะชุดเริ่มต้นสำหรับผู้ใช้ใหม่ + ข้อมูลเมตาของ Follow Pack + Follow Packs + รายการติดตามใหม่ + แก้ไขรายการ + สไตล์แกลเลอรีโปรไฟล์ + เลือกสไตล์แกลเลอรี + คลาสสิก + ทันสมัย + โพสต์เฉพาะตำแหน่งที่ตั้ง + เฉพาะผู้ติดตามตำแหน่งนั้นเท่านั้นที่จะเห็น ผู้ติดตามทั่วไปของคุณจะไม่เห็น + ได้รับทุน %1$s จากเป้าหมาย %2$s sats + ชม. + เนื้อหามีการเปลี่ยนแปลง ผู้เขียนอาจไม่เห็นหรืออนุมัติการเปลี่ยนแปลง + หมายถึงอะไร? + เนื้อหานี้เหมือนเดิมตั้งแต่โพสต์ + สวัสดี! ยังมี %1$s อยู่ไหม? + คำต้องห้าม + ลบโพสต์ออกจากฟีดชุมชนเมื่อชุมชนเผยแพร่เอกสารกฎ NIP-9B และกิจกรรมไม่ผ่านกฎนั้น ไม่มีผลเมื่อชุมชนไม่มีกฎที่มีโครงสร้าง + ซ่อนโพสต์ที่ละเมิดกฎของชุมชน + ซ่อนรหัสผ่าน + กำลังอัปโหลด %1$s (%2$d จาก %3$d) + ทั้งหมด + คำขอไม่ถูกต้อง - เซิร์ฟเวอร์ไม่สามารถหรือไม่ยอมดำเนินการตามคำขอ + ไม่ได้รับอนุญาต - ผู้ใช้ไม่มีข้อมูลประจำตัวการตรวจสอบที่ถูกต้อง + ต้องชำระเงิน - เซิร์ฟเวอร์ต้องการการชำระเงินเพื่อดำเนินการตามคำขอ + ไม่สามารถเข้าถึงได้ - ผู้ใช้ไม่มีสิทธิ์การเข้าถึงในการทำคำขอ + ไม่พบที่อยู่ - เซิร์ฟเวอร์ไม่สามารถหาที่อยู่ที่ขอได้ + วิธีการไม่อนุญาต - เซิร์ฟเวอร์รองรับวิธีการขอ แต่ไม่รองรับทรัพยากรเป้าหมาย + ไม่ยอมรับ - เซิร์ฟเวอร์ไม่พบเนื้อหาใดที่ตรงตามคำขอ + ต้องการการตรวจสอบพร็อกซี - ผู้ใช้ไม่มีข้อมูลประจำตัวการตรวจสอบที่ถูกต้อง + คำขอหมดเวลา - เซิร์ฟเวอร์หมดเวลารอคำตอบจากบุคคลอื่น + ความขัดแย้ง - เซิร์ฟเวอร์ไม่สามารถดำเนินการตามคำขอได้เนื่องจากมีความขัดแย้งกับทรัพยากร + ไม่พบ - เนื้อหาที่ร้องขอได้ถูกลบถาวรจากเซิร์ฟเวอร์และจะไม่ถูกกู้คืน + ต้องการความยาว - เซิร์ฟเวอร์ปฏิเสธคำขอเพราะต้องการความยาวที่กำหนดไว้ + ข้อกำหนดเบื้องต้นล้มเหลว - ข้อกำหนดเบื้องต้นของคำขอในฟิลด์หัวเรื่องที่เซิร์ฟเวอร์ไม่สามารถตอบสนองได้ + ข้อมูลขนาดใหญ่เกินไป - คำขอมีขนาดใหญ่กว่าขีดจำกัดที่เซิร์ฟเวอร์กำหนด และเซิร์ฟเวอร์ปฏิเสธที่จะดำเนินการ + URI ยาวเกินไป - URL ที่ร้องขอโดยไคลเอนต์ยาวเกินกว่าที่เซิร์ฟเวอร์จะดำเนินการได้ + ประเภทสื่อไม่รองรับ - คำขอใช้รูปแบบสื่อที่เซิร์ฟเวอร์ไม่รองรับ + จำนวนข้อมูลไม่เหมาะสม - เซิร์ฟเวอร์ไม่สามารถตอบสนองค่าที่ระบุในฟิลด์หัวเรื่องช่วงของคำขอได้ + การคาดหวังล้มเหลว - เซิร์ฟเวอร์ไม่สามารถตอบสนองข้อกำหนดที่ระบุในฟิลด์หัวเรื่องของคำขอ Expect + ต้องการการอัปเกรด - เซิร์ฟเวอร์ปฏิเสธที่จะดำเนินการตามคำขอโดยใช้โปรโตคอลปัจจุบัน เว้นแต่ไคลเอนต์จะอัปเกรดเป็นโปรโตคอลที่แตกต่าง + ข้อผิดพลาดภายในเซิร์ฟเวอร์ - เซิร์ฟเวอร์พบข้อผิดพลาดที่ไม่คาดคิดและไม่สามารถดำเนินการตามคำขอได้ + ไม่ไสามารถดำเนินการได้ - เซิร์ฟเวอร์ไม่สามารถตอบสนองคำขอหรือไม่รู้จักวิธีการขอ + Bad Gateway - เซิร์ฟเวอร์ทำหน้าที่เป็นเกตเวย์และได้รับการตอบกลับที่ไม่ถูกต้องจากโฮสต์ + บริการไม่พร้อมใช้งาน - มักเกิดขึ้นเมื่อเซิร์ฟเวอร์มีการใช้งานมากเกินไปหรือหยุดทำงานเพื่อบำรุงรักษา + Gateway หมดเวลา - เซิร์ฟเวอร์ทำหน้าที่เป็นเกตเวย์หรือพร็อกซีและหมดเวลารอการตอบกลับ + ไม่รองรับเวอร์ชัน HTTP - เซิร์ฟเวอร์ไม่รองรับเวอร์ชัน HTTP ที่อยู่ในคำขอ + เซิร์ฟเวอร์มีข้อผิดพลาดในการกำหนดค่าภายใน + พื้นที่จัดเก็บไม่เพียงพอ - เซิร์ฟเวอร์มีพื้นที่จัดเก็บไม่เพียงพอที่จะดำเนินการตามคำขอได้สำเร็จ + พบลูป - เซิร์ฟเวอร์ตรวจพบการวนลูปไม่สิ้นสุดขณะประมวลผลคำขอ + ต้องการการตรวจสอบเครือข่าย - ไคลเอนต์ต้องได้รับการตรวจสอบเพื่อเข้าถึงเครือข่าย + พฤติกรรมที่ผิดกฎหมาย + บันทึกรูปภาพลงแกลเลอรี + เลียนแบบ + Inbox Relays + จำนวนที่ต้องชำระไม่ถูกต้อง (%1$s sats) จาก %2$s. มันควรจะเป็น %3$s + Indexer Relays + Relays ที่เชี่ยวชาญในการโฮสต์ข้อมูลเมตาและรายการ relay ของทุกคน เช่น purplepag.es Amethyst จะใช้ relay เหล่านี้เพื่อค้นหาผู้ใช้ที่ไม่ได้อยู่ในรายการของคุณ + ชุดความสนใจใหม่ + เปลี่ยนชื่อ + ชุดแฮชแท็ก + key ไม่ถูกต้อง + รหัสลับไม่ถูกต้อง: %1$s + ที่อยู่ไม่ถูกต้อง + Amethyst ได้รับ URI แต่ URI นั้นไม่ถูกต้อง: %1$s + ไม่สามารถโควทโน้ตฉบับร่างได้ + ไม่สามารถกดรีแอคโน้ตฉบับร่างได้ + ไม่สามารถตอบกลับโน้ตฉบับร่างได้ + ไม่สามารถ zap โน้ตฉบับร่างได้ + ต้องใช้ key + KeyPackage Relays + Relays ที่เผยแพร่ MLS KeyPackages ของคุณ (MIP-00) ผู้ใช้รายอื่นดึง KeyPackages เหล่านี้เพื่อเชิญคุณเข้ากลุ่มแชท Marmot ใส่ relay 1–3 รายการที่รับเหตุการณ์ KeyPackage จากคุณและอนุญาตให้อ่านแบบสาธารณะ + KeyPackages + Accepted Badge Set + Adventure Prologue + Adventure Reading + Adventure Scene + App Recommendations + นัดหมาย + Apps + Appt RSVP + Audio Header + Audio Track + Authored Podcasts + Badge Awards + Badge Definitions + Blob Data + Blob Headers + Blocked Relays + บล็อก + Blossom Auth + Blossom Servers + รายการบุ๊กมาร์ก + Broadcast Relays + ปฏิทิน + Channel Definition + Channel Hide Msg + Channel List + Channel Message + Channel Metadata + Channel Mute User + Chess Auth + Chess Challenges + Chess Draw Offer + Chess Game Accept + Chess Game End + Chess Games + Chess Move + ประกาศ + ความคิดเห็น + Community Def + Community List + Community Post + Contact Card + นัดหมายรายวัน + การลบ + DM File + DM Message + DM Relays + ฉบับร่าง + DVM Content Req + DVM Content Resp + DVM Status + DVM User Req + DVM User Resp + การแก้ไข + Emoji Pack List + Emoji Packs + Ephemeral Chat + Ephemeral Chatrooms + Favorite Podcasts + Favorite Relays + File Headers + File Servers + Follow List + Follow Packs + Geohash Follows + GiftWraps + Git Issue + Git Patch + Git Reply + Git Repo + Hashtag Follows + ไฮไลต์ + Http Auth + Index Relay List + Live Chats + Live Streams + ข้อมูลทางการแพทย์ + ห้องประชุม + Meeting Space + Music Playlist + Music Track + Mute List + Named Bookmarks + Nests Servers + NIP + NIP-04 DMs + NNS + Nostr Connect + โน้ต + NWC Request + NWC Response + รายการบุ๊กมาร์กเก่า + OTS + Outbox Relays + PayTo + People Lists + รูปภาพ + Pins + Podcast Episode + Podcast Show + โหวต + Poll Response + Private Relays + Private Zaps + โปรไฟล์ + Profile Badges + Profile Gallery + Proxy Relays + Public Message + Reactions + Relay Auth + Relay Discovery + Relay Monitor Announcement + Relay Set + รายงาน + Reposts + Reposts (16) + Room Presence + Seals + Search Relays + Shorts + Shorts (Repl) + Torrent Comments + Torrents + Trusted Providers + Trusted Relays + User Delete + การตั้งค่าผู้ใช้ + User Status + วิดีโอ + Video (Repl) + Voice Msg + Voice Reply + WakeUp + Web Bookmark + Wiki + Workouts + Zap Goals + Zap Poll + Zap Req + Zaps + รู้ + การตั้งค่าการแสดงภาษา + สำหรับแต่ละคู่ภาษาที่แปล เลือกภาษาที่จะแสดงก่อน + เห็นล่าสุด %1$s ที่ผ่านมา + เห็นเมื่อสักครู่นี้ + ไม่เคยพบ + เห็นล่าสุดเมื่อ %1$s (%2$s ที่ผ่านมา) + ออก + สว่าง + Live Streams + รีเลย์ในพื้นที่ของคุณ + รายการรีเลย์ที่กำลังทำงานอยู่ในอุปกรณ์นี้ + เข้าสู่ระบบด้วย private key เพื่อบูสโพสต์ + เข้าสู่ระบบด้วย private key เพื่อติดตาม + เข้าสู่ระบบด้วย private key เพื่อเพิ่มการซ่อนข้อความ + เข้าสู่ระบบด้วย private key เพื่อตอบกลับ + เข้าสู่ระบบด้วย private key เพื่อส่ง zaps + เข้าสู่ระบบด้วย private key เพื่อแก้ไขการซ่อนข้อความ + คุณกำลังใช้คีย์สาธารณะซึ่งอ่านได้อย่างเดียว เข้าสู่ระบบด้วยคีย์ส่วนตัวเพื่อลงนามเหตุการณ์ + เข้าสู่ระบบด้วย private key เพื่อเลิกติดตาม + คุณกำลังใช้คีย์สาธารณะซึ่งอ่านได้อย่างเดียว เข้าสู่ระบบด้วยคีย์ส่วนตัวเพื่ออัปโหลดไฟล์ + เข้าสู่ระบบด้วย private key เพื่อถูกใจโพสต์ + วิดีโอ + เดือน + แพ็ค Emoji ของฉัน + กำลังเพิ่ม %1$s… + มอบสิทธิ์ผู้ดูแลระบบแล้ว + เพิกถอนสิทธิ์ผู้ดูแลระบบแล้ว + ไม่สามารถเพิ่ม %1$s: %2$s + ไม่สามารถสร้างกลุ่มได้: %1$s + ไม่สามารถมอบสิทธิ์ผู้ดูแลระบบได้: %1$s + ไม่สามารถออกจากกลุ่มได้: %1$s + ไม่สามารถลบสมาชิกได้: %1$s + ไม่สามารถเพิกถอนสิทธิ์ผู้ดูแลระบบได้: %1$s + ไม่สามารถอัปเดตได้: %1$s + กลุ่ม MLS + อัปเดตข้อมูลกลุ่มแล้ว + + %1$d สมาชิก + + ลบสมาชิกออกแล้ว + + %1$d ข้อความ + + ไม่ได้เป็นสมาชิกของกลุ่มนี้ + ข้อผิดพลาดที่ไม่ทราบสาเหตุ + เพิ่มสื่อแล้ว + เพิ่มสื่อในแกลเลอรีโปรไฟล์ของคุณแล้ว + เริ่มดาวน์โหลดสื่อแล้ว… + Media Servers + สื่อชิ้นนี้ใหญ่เกินไปสำหรับ NIP-95 + กรุณาระบุปลายทางของข้อความก่อน + อัปโหลดไม่ได้ + ชื่อเรื่อง + ไม่สามารถลบข้อมูลเมตาได้ + ไม่สามารถลบข้อมูลเมตาส่วนตัวออกจากสื่อได้ ยกเลิกการอัปโหลดแล้ว + ย้ายบุ๊กมาร์กสำเร็จ + ไม่พบการตั้งค่า Lightning + ตัวเลือกเพิ่มเติม + ย้ายไปส่วนตัว + ย้ายไปสาธารณะ + อัปโหลดรูปภาพปก + เลือกรูปภาพสี่เหลี่ยมจัตุรัสเพื่อใช้เป็นอาร์ตเวิร์กของเพลย์ลิสต์นี้ + + +%1$d แทร็กเพิ่มเติม + + + %1$d แทร็ก + + + %1$d แทร็ก + + กำลังอัปโหลดปกและเผยแพร่ ระบบจะดำเนินการต่อแม้คุณออกจากหน้าจอ + อัปโหลดไฟล์เสียง + เลือกไฟล์ MP3, WAV หรือ FLAC ระบบจะอัปโหลดไปยังเซิร์ฟเวอร์มีเดียของคุณเมื่อบันทึก + อัปโหลดรูปภาพปก + เลือกรูปภาพสี่เหลี่ยมจัตุรัสเพื่อใช้เป็นอาร์ตเวิร์กของแทร็กนี้ + กำลังอัปโหลดปกและเสียง และเผยแพร่ ระบบจะดำเนินการต่อแม้คุณออกจากหน้าจอ + เปิดการมองเห็นอยู่ คลิกเพื่อปิด + ปิดการมองเห็น คลิกเพื่อปลดออก + รายการของฉัน + ต้องระบุชื่อ + %1$dms + การตั้งค่า Namecoin + Identity + อ่าน public key ของคุณ + การส่งข้อความ + แลกเปลี่ยนข้อความกับ nApplet อื่น + การกระทำบนแป้นพิมพ์ + ผูก keyboard shortcuts + การแจ้งเตือน + แสดงการแจ้งเตือนให้คุณ + Relays + อ่าน ลงนาม และเผยแพร่อีเวนต์ของคุณ + เครือข่าย + ดึงทรัพยากรจากเว็บและ Blossom + พื้นที่จัดเก็บ + พื้นที่จัดเก็บส่วนตัวของตัวเอง + ธีม + จับคู่สีของแอปของคุณ + การอัปโหลด + อัปโหลดไฟล์ไปยังเซิร์ฟเวอร์มีเดียของคุณ + การชำระเงิน + ชำระ Lightning invoices + nApplet นี้ต้องการอ่านคีย์สาธารณะของคุณ + nApplet นี้ต้องการอ่านโปรไฟล์และข้อมูลบัญชีของคุณ + nApplet นี้ต้องการแสดงการแจ้งเตือนให้คุณ + + nApplet นี้ต้องการชำระใบแจ้งหนี้ Lightning เป็นจำนวน %1$d sats + + nApplet นี้ต้องการลงนามและเผยแพร่อีเวนต์ kind %1$d ในนามของคุณ + nApplet นี้ต้องการส่งอีเวนต์ที่เข้ารหัสในนามของคุณ + nApplet นี้ต้องการลงนามและเผยแพร่อีเวนต์ kind %1$d ในนามของคุณ: + nApplet นี้ต้องการอ่านอีเวนต์จาก relay ของคุณ + nApplet นี้ต้องการดึงข้อมูลทรัพยากรเว็บ + ไซต์นี้ต้องการลงนามอีเวนต์ kind %1$d ด้วยคีย์ Nostr ของคุณ + nApplet นี้ต้องการใช้พื้นที่จัดเก็บส่วนตัวของตัวเอง + nApplet นี้ต้องการอัปโหลดไฟล์ไปยังเซิร์ฟเวอร์สื่อของคุณ + nApplet %1$s… + nApplets + ไม่สามารถส่งข้อความได้ + ปิดเสียงผู้พูดคนนี้ + กู้คืนผู้พูดคนนี้ + ออก + ไม่สามารถทำเครื่องหมายห้องว่าปิดแล้ว กำลังออกอยู่ดี — ห้องจะปิดอัตโนมัติ + + %1$d ผู้ฟัง + + ลดมือ + ปิดไมค์ + เปิดไมค์ + ปิดเสียง + ไม่สามารถบันทึกรายการเซิร์ฟเวอร์ nest ของคุณได้ ลองอีกครั้ง + Nest — Live + Nests + เปิดเสียงต่อเนื่องขณะที่ห้องเปิดอยู่ + Nest เชื่อมต่อแล้ว + หยุด + แตะเพื่อกลับ + ติดตาม + ปิดเสียง + เลิกติดตาม + เปิดเสียง + ออกจาก nest แล้ว + เข้าร่วมในฐานะผู้ฟัง + ขึ้นเวทีแล้ว + ยกมือขึ้น + กำลังพูด + ยกมือ + เปิดเสียง + Nests + บันทึกเป็นอีเวนต์ที่แทนที่ได้ kind-10112 เพื่อให้ไคลเอนต์อื่นอ่านการตั้งค่าของคุณได้ + เซิร์ฟเวอร์ของคุณ + ข้อเสนอแนะในตัวที่คุณสามารถเพิ่มลงในรายการด้วยการแตะครั้งเดียว + เซิร์ฟเวอร์ที่แนะนำ + เซิร์ฟเวอร์ Nest + ไม่เคย + แบดจ์ใหม่ + ปฏิทินใหม่ + กิจกรรมปฏิทินใหม่ + ชุมชนใหม่ + ผู้ดูแล + Relays + ผู้ใช้ที่ถูกแบน + ความคิดเห็นในชุมชน (1111) + บทความยาว (30023) + โพสต์รูปภาพ (20) + ข้อความสั้น (1) + วิดีโอสั้น (22) + โพสต์วิดีโอ (21) + ประเภทอีเวนต์ที่อนุญาต + ขนาดอีเวนต์สูงสุดแบบ Global (ไม่บังคับ) + กฎที่ตรวจสอบได้ (ไม่บังคับ) + ประตู Web-of-trust (ไม่บังคับ) + แพ็ค emoji ใหม่ + เป้าหมายใหม่ + บทความใหม่ + เพลย์ลิสต์ใหม่ + เพลงใหม่ + สินค้าใหม่ + ส่งคำขอใหม่ + เธรดใหม่ + การออกกำลังกายใหม่ + + %1$d ไฟล์แนบ + + ไม่พบแอป Blossom กรุณาติดตั้งแอป Blossom ในเครื่องเพื่อดูไฟล์นี้ + ไม่สามารถเปิดลิงก์ Blossom ได้ + ไม่พบแอปกล้องในอุปกรณ์นี้ + ไม่ได้ตั้งค่า Lightning Address + ไม่พบแอปสำหรับการชำระเงินนี้ กรุณาติดตั้งกระเป๋าเงินที่รองรับ + ไม่มีแอปที่ติดตั้งสำหรับการชำระเงิน %1$s กรุณาติดตั้งกระเป๋าเงินที่รองรับ + ไม่มีการเลือกประเภทของ reaction กดค้างเพื่อเปลี่ยน + ไม่มีรายการ reaction + ไม่พบกระเป๋า Lightning โปรดติดตั้งแอพกระเป๋า Lightning ก่อน + ไม่พบกระเป๋า Lightning (Error: %1$s) โปรดติดตั้งแอพกระเป๋า Lightning ก่อน + ไม่มีการตั้งค่าจำนวนเพื่อ zap กดค้างเพื่อตั้งค่า + การแจ้งเตือน + หมวดหมู่ + การส่ง + การแสดงผลในแอป + ตอนนี้ + งานศิลปะ Nowhere + Drop ของ Nowhere + กิจกรรม Nowhere + ฟอรัม Nowhere + การระดมทุน Nowhere + เว็บไซต์ Nowhere + ข้อความ Nowhere + คำร้อง Nowhere + ร้านค้า Nowhere + nSites + ภาพเปลือย/สื่อลามก + ไม่สามารถสร้างการอ้างอิง event ได้ + ไม่มี pubkey ผู้รับในโน้ตนี้ + nutzap เป็นแบบสาธารณะและจะเปิดเผยโน้ตส่วนตัวนี้ ใช้ Lightning zap แทน + Nutzap ล้มเหลว + + ส่ง %1$s sats, %2$d ทาง + + ไม่ได้ตั้งค่า Bitcoin chain backend ไว้ + ไม่สามารถกระจายธุรกรรมได้ + ไม่สามารถสร้างธุรกรรมได้ + ไม่สามารถโหลดยอด Bitcoin ของคุณได้ + ส่งการชำระเงินแล้ว แต่ไม่สามารถเผยแพร่ใบเสร็จ zap ได้ + + ส่งการชำระเงินแล้ว (เผยแพร่ %1$d จาก %2$d ใบเสร็จ) แต่ไม่สามารถเผยแพร่ใบเสร็จถัดไปได้ + + ส่วนแบ่งของผู้รับต่ำกว่าเกณฑ์ขั้นต่ำ + ไม่สามารถเซ็นธุรกรรมได้ + ~10 นาที + ~30 นาที + ~1 ชั่วโมง + เร็ว + ปกติ + ช้า + %1$s · %2$s sat/vB · %3$s + + แบ่งให้ %1$d ผู้รับ + + + ข้าม %1$d ผู้รับที่มีแต่ Lightning address — on-chain ต้องการ Nostr pubkey เพื่อสร้างที่อยู่ + + + ใช้การแบ่ง zap %1$d ทางของโน้ตนี้ + + กำลังกระจาย + กำลังสร้างธุรกรรม + กำลังโหลดยอดคงเหลือ + กำลังเผยแพร่ใบเสร็จ + กำลังเซ็น + อนุญาตให้โหวตได้เพียงครั้งเดียวต่อผู้ใช้หนึ่งคนสำหรับการสำรวจประเภทนี้ + แสดง Reactions ทั้งหมด + เปิดอยู่ + พอร์ต Orbot Socks + Bitcoin Explorer (OTS) + มีหลักฐานว่าโพสต์นี้มีการลงนามก่อน %1$s หลักฐานถูกประทับตราใน Bitcoin blockchain ณ วันและเวลาดังกล่าว + Timestamp ถูกยืนยัน + Outbox Relays + ต้องป้อนรหัสผ่าน + หยุดชั่วคราว + จ่าย + ข้อความจาก %1$s + เป้าหมายการชำระเงิน + เพิ่มที่อยู่การชำระเงินสำหรับเครือข่ายต่างๆ (เช่น bitcoin, lightning, ethereum) + บันทึก PDF ลงใน Downloads/Amethyst แล้ว + ข้อมูลเมตาของรายการติดตามสามารถดูได้โดยทุกคนบน Nostr โดยเฉพาะสมาชิกส่วนตัวของคุณที่จะถูกเข้ารหัส + ข้อมูลเมตาของรายการติดตาม + รูปภาพ + ปักหมุดไว้ด้านบน + ปักหมุดที่โปรไฟล์ + เล่น + + %1$d ตอน + + ผู้เขียนโพลล์ไม่สามารถลงคะแนนในโพล์ของตนเองได้ + (0–100)% + โพลปิดรับการลงคะแนนเพิ่มเติม + หลายตัวเลือก + ตัวเลือก %1$s + ตัวเลือกเดียว + ไม่สามารถโหวต + โพล + โพสต์ + + โพสต์นี้มีแฮชแท็กมากกว่า %1$d รายการ + + รูปตัวอย่างสำหรับ %1$s + ตัวเลือกความเป็นส่วนตัว + นโยบายความเป็นส่วนตัว + <ไม่สามารถถอดรหัสข้อความส่วนตัวได้>\n\nคุณถูกอ้างถึงในการสนทนาส่วนตัว/เข้ารหัสระหว่าง %1$s และ %2$s. + รีเลย์ขาเข้าของ DM + ใส่รีเลย์ 1–3 ตัวเพื่อทำหน้าที่เป็นกล่องขาเข้าส่วนตัวของคุณ คนอื่นจะใช้รีเลย์เหล่านี้ในการส่งข้อความ DM ถึงคุณ รีเลย์กล่องขาเข้า DM ควรยอมรับข้อความจากทุกคน แต่อนุญาตให้คุณดาวน์โหลดได้เท่านั้น ตัวเลือกที่ดี ได้แก่:\n - inbox.nostr.wine (เสียค่าบริการ)\n - you.nostr1.com (รีเลย์ส่วนตัว - เสียค่าบริการ) + ผู้ใช้รับ DM บน relay เหล่านี้ + ข้อความส่วนตัว + ทำให้เป็นส่วนตัว: gift-wrap โน้ตไปยังผู้ใช้ที่ได้รับการแจ้งเตือนเท่านั้น + การตอบกลับโน้ตส่วนตัวจะเป็นส่วนตัวเสมอ + มองเห็นได้โดย + รีเลย์ส่วนตัว + ใส่รีเลย์ 1–3 ตัวเพื่อเก็บเหตุการณ์ที่ไม่มีใครสามารถเห็นได้ เช่น ร่างโพสต์ และการตั้งค่าแอปของคุณ รีเลย์เหล่านี้ควรเป็นรีเลย์ภายในเครื่องหรือรีเลย์ที่ต้องมีการยืนยันตัวตนก่อนที่จะดาวน์โหลดเนื้อหาของผู้ใช้แต่ละคน + คําหยาบคาย / คําพูดที่แสดงความเกลียดชัง + โปรไฟล์ + แบดจ์โปรไฟล์ + คำแนะนำแอป + ป้ายโปรไฟล์ + ฟีดผู้ติดตาม + ฟีด Zap ที่ได้รับ + ส่วนติดต่อผู้ใช้โปรไฟล์ + โปรไฟล์ + เสนอการแก้ไข + Proxy Relays + Relay รวมที่แอปต้องใช้เพื่อดาวน์โหลดฟีดของคุณ เช่น filter.nostr.wine ซึ่งจะแทนที่โมเดล outbox และทำให้แอปเชื่อมต่อเฉพาะ relay ในรายการของคุณ + แชทสาธรณะ + แชทสาธารณะมองเห็นได้สำหรับทุกคนบน Nostr และทุกคนสามารถเข้าร่วมได้ เหมาะสำหรับชุมชนเปิดในหัวข้อเฉพาะ การกลั่นกรองสามารถควบคุมได้โดยการลบโพสต์บน relay ของกลุ่ม + ใส่ relay 1–3 รายการที่โฮสต์กลุ่มนี้ ไคลเอนต์ Nostr ใช้การตั้งค่านี้เพื่อทราบว่าจะดาวน์โหลดข้อความจากที่ใดและส่งข้อความของคุณไปที่ใด + relay + ข้อมูลเมตาแชทสาธารณะ + แชทสาธารณะ + รีเลย์สาธารณะสำหรับหน้า Home + รีเลย์ประเภทนี้จะเก็บเนื้อหาทั้งหมดของคุณ Amethyst จะส่งโพสต์ของคุณไปยังรีเลย์เหล่านี้ และคนอื่น ๆ จะใช้รีเลย์เหล่านี้เพื่อค้นหาเนื้อหาของคุณ ใส่รีเลย์ 1–3 ตัว ซึ่งสามารถเป็นรีเลย์ส่วนตัว รีเลย์ที่ต้องเสียค่าบริการ หรือรีเลย์สาธารณะก็ได้ + ผู้ใช้กำลังโพสต์เนื้อหาของตนไปยัง relay เหล่านี้ + ข้อความสาธารณะ + รีเลย์ขาเข้าสาธารณะ + รีเลย์ประเภทนี้จะรับการตอบกลับ ความคิดเห็น การถูกใจ และการส่ง "zap" ทั้งหมดไปยังโพสต์ของคุณ ใส่รีเลย์ 1–3 ตัว และตรวจสอบให้แน่ใจว่ารีเลย์เหล่านี้ยอมรับโพสต์จากทุกคน + ผู้ใช้กำลังรับการแจ้งเตือนบน relay เหล่านี้ + ID โน้ต + ลบ + ปิดเสียงกระทู้ + แชร์ + แชร์ Browser Link + เปิดเสียงกระทู้ + ปฏิกิริยา + ปฏิกิริยา + แถวปฏิกิริยา + อ่านจาก Relay + จำนวนข้อมูลในหน่วยไบต์ที่ถูกรับมาจากรีเลย์นี้ รวมถึงฟิลเตอร์และอีเว้นต่างๆ + ดูอย่างเดียว + กดค้างเพื่อบันทึกข้อความเสียง + แชท relay + แชท relay คือกลุ่มแชทที่ควบคุมโดย relay หลัก มองเห็นได้สำหรับทุกคนบน Nostr และทุกคนสามารถเข้าร่วมได้ เหมาะสำหรับชุมชนเปิดในหัวข้อเฉพาะ บางกลุ่มเป็นแบบชั่วคราวดังนั้นข้อความแชทจะหายไปตามเวลา + แชท relay + กิจกรรม + IPs + ประเภท + ผู้ใช้ + การตั้งค่า + ตั้งค่ารีเลย์ + รายการ outbox + รีเลย์ + เติมและส่ง zap + ส่ง zap + เติม %1$s sats ไปยัง %2$s และ zap %3$s %4$s sats · ค่าธรรมเนียม ≈ %5$s sats + ลบ + ลบออกจากบุ๊คมาร์คสาธรณะ + ตอบกลับที่นี่.. + การแจ้งเตือน: + + ส่งคำขอให้ลบ + คำขอให้ลบข้อมูล + ไม่สามารถรีเซ็ตสถานะ Marmot ได้: %1$s + รีเซ็ตสถานะ Marmot + รีเซ็ตสถานะ Marmot แล้ว + ลองใหม่ + รายการปฏิทิน + ปฏิทิน + หมากรุก + สำรวจ + หน้าแรก + นำเข้ารายการที่ติดตาม + ข้อความ + เพลย์ลิสต์ + เพลง + การแจ้งเตือน + ตอน + พอดแคสต์ + กำหนดเวลาโพสต์ + ยกเลิกการกำหนดเวลา + โพสต์ที่กำหนดเวลาอาจไม่เผยแพร่จนกว่าคุณจะเปิดแอปอีกครั้ง โพสต์ที่กำหนดเวลาของบัญชีอื่นจะไม่ส่งขณะที่บัญชีนี้ใช้งานอยู่ เปิดใช้การทำงานตลอดเวลาในการตั้งค่า → การตั้งค่า UI เพื่อกำหนดเวลาในพื้นหลังอย่างน่าเชื่อถือ + โพสต์ที่กำหนดเวลาอาจไม่เผยแพร่จนกว่าคุณจะเปิดแอปอีกครั้ง เปิดใช้การทำงานตลอดเวลาในการตั้งค่า → การตั้งค่า UI เพื่อกำหนดเวลาในพื้นหลังอย่างน่าเชื่อถือ + โพสต์ที่กำหนดเวลา + ส่งทันที + %1$s · อีก %2$s + %1$s · %2$s ที่แล้ว + พรุ่งนี้ + ข้อผิดพลาด: %1$s + คัดลอก ID โน้ตแล้ว + + ออกจากระบบแล้ว · ลบโพสต์ที่กำหนดเวลา %1$d รายการ + + ออกจากระบบแล้ว + + คุณมี %1$d โพสต์ที่ตั้งเวลาไว้แต่ยังไม่ได้เผยแพร่ การออกจากระบบจะลบโพสต์เหล่านั้นอย่างถาวร + + โพสต์ที่กำหนดเวลาล้มเหลว + เผยแพร่โพสต์ที่กำหนดเวลาแล้ว + + ไปยัง %1$d relay + + ยกเลิกแล้ว + ล้มเหลว + ตั้งเวลาไว้ + กำลังส่ง… + ส่งแล้ว + + · %1$d รายการจะส่งใน 1 ชม. + + + %1$d รายการในคิว + + ตัวเลือกที่ดี ได้แก่:\n%1$s + ค้นหารีเลย์ + ค้นหารีเลย์ + รายการรีเลย์ที่จะใช้เมื่อค้นหาข้อมูลหรือผู้ใช้ การแท็กและการค้นหาจะไม่ทำงานหากไม่มีตัวเลือก ตรวจสอบให้แน่ใจว่ารีเลย์เหล่านี้รองรับ NIP-50 + event ที่ค้นหาได้ + คัดลอก Secret key (nsec) ลงคลิปบอร์ด + คุณยังไม่ได้บล็อกผู้ใช้ใดเลย + ตัวกรองความปลอดภัย + ไม่มีคำที่ซ่อนอยู่ เพิ่มคำด้านล่างเพื่อซ่อนโพสต์ที่มีคำนั้น + เนื้อหาที่ถูกบล็อก + การตั้งค่าการกรอง + ไม่มีบัญชีที่ถูกระบุว่าเป็นสแปมในเซสชันนี้ + ส่ง + ส่งเหตุการณ์โปรไฟล์ (kind 0) ที่ได้รับทั้งหมดไปยัง relay ในเครื่องของคุณ + ส่งต่อโปรไฟล์ไปยัง relay ในเครื่อง + ยอดที่ใช้ได้สำหรับผู้รับนี้: %1$s sats + การชำระเงินล้มเหลว + ธุรกรรม: %1$s + กำลังชำระผ่าน %1$s… + เซอเวอร์ไม่ตอบสนองหลังจากอัพโหลดแล้ว + การตั้งค่า + ไม่มีเธรดที่ปิดเสียง + เธรดที่ปิดเสียง + แชร์เป็นรูปภาพ + แชร์เป็น URL รูปภาพ + อัปโหลด HLS + แชร์ หรือเก็บไว้ + Shorts + แสดง QR code คีย์ส่วนตัวแบบเข้ารหัส + รวมข้อความส่วนตัวและกลุ่มในแท็บการแจ้งเตือน ปิดเพื่อเก็บข้อความไว้เฉพาะในแท็บข้อความ + แสดงข้อความ + แสดง QR code คีย์ส่วนตัว + คำขอลงชื่อถูกปฏิเสธ + โปรดตรวจสอบให้แน่ใจว่าแอพเข้ารหัส หรือ Signer ได้อนุญาติทำรายการนี้ + ผู้ลงนามภายนอกส่งคืนข้อมูลที่ผิดปกติสำหรับคำขอนี้ อาจมีข้อผิดพลาดใน Amethyst หรือแอปผู้ลงนาม + ไม่พบผู้ลงนาม + ถอนการติดตั้งแอปผู้ลงนามแล้วหรือไม่ ตรวจสอบว่าติดตั้งผู้ลงนามและมีบัญชีนี้อยู่ ออกจากระบบและเข้าสู่ระบบใหม่หากมีการเปลี่ยนแปลงแอปผู้ลงนาม + ย้อนกลับ %1$d วินาที + ข้ามไปข้างหน้า %1$d วินาที + แอป + สแปม + สแปมอีเว้นถูกรับมาจาก relay นี้ + แสปม + แสดงแท็บการแจ้งเตือนสองแท็บ — กำลังติดตาม (คนที่คุณติดตาม) และทุกคน ตัวบ่งชี้ที่ยังไม่ได้อ่านจะเรืองแสงเฉพาะสำหรับกิจกรรมจากคนที่คุณติดตาม + แยกการแจ้งเตือนตามผู้ที่ติดตาม + พยายามลบข้อมูลเมตาส่วนตัวออกจากไฟล์มีเดียที่รองรับก่อนอัปโหลด + ลบข้อมูลเมตาส่วนตัว + อ่านการออกกำลังกายที่เสร็จสิ้นจาก Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) และแนะนำให้แชร์เป็นโพสต์ การอนุญาตจะถูกขอเฉพาะเมื่อคุณเชื่อมต่อ + แนะนำการออกกำลังกายเพื่อแชร์ + ระบบ(ค่าพื้นฐาน) + ธีม + ธีม: มืด, สว่าง หรือระบบ + ข้อความนี้จะหายไปใน %1$s + + +%1$d\nการตอบกลับ + + วันนี้ + ปรับแต่ง + ตั้งค่าเอง + ค่าเริ่มต้น + ซ่อน IP ของคุณจาก relay ทั่วไป + Orbot + ความเป็นส่วนตัวเต็มรูปแบบ + ซ่อน IP ของคุณจากทุกการเชื่อมต่อ + ภายใน + ปิด + การตั้งค่า Tor/ความเป็นส่วนตัว + แก้ไขการตั้งค่าทั้งหมดด้านล่างอย่างรวดเร็ว + ทุกอย่างยกเว้นสื่อ + ซ่อน IP ของคุณจากทุกอย่าง ยกเว้นรูปภาพและวิดีโอ + DM Relays + บังคับให้ Tor ส่งและรับ DM + รูปภาพ + บังคับให้ Tor เมื่อโหลดรูปภาพ + การอัปโหลดสื่อ + บังคับให้ Tor เมื่ออัปโหลดเนื้อหา + การดำเนินการเงิน + บังคับให้ Tor ใช้กับ zap, Lightning และการโอน Cashu + Relay ที่ไม่น่าเชื่อถือ + บังคับให้ Tor ใช้ relay outbox/inbox + การยืนยันที่อยู่ Nostr + บังคับให้ Tor เมื่อยืนยันที่อยู่ NIP-05 + URL/Relays แบบ Onion + ใช้ Tor สำหรับ URL แบบ .onion + รูปโปรไฟล์ + บังคับให้ Tor เมื่อโหลดรูปโปรไฟล์ + Relay ที่น่าเชื่อถือ + บังคับให้ Tor ใช้ relay ทั้งหมดในรายการของคุณ + ตัวอย่าง URL + บังคับให้ Tor เมื่อโหลดตัวอย่าง URL + วิดีโอ + บังคับให้ Tor เมื่อโหลดวิดีโอ + พื้นฐาน + ใช้ Tor เมื่อเซิร์ฟเวอร์ต้องการ + ไม่สามารถเปิดไฟล์ได้ + ไม่มีแอป torrent ติดตั้งเพื่อเปิดและดาวน์โหลดไฟล์ + เหตุการณ์ไม่มีข้อมูลเพียงพอในการสร้างลิงก์ magnet + ใช้ตัวออกอากาศที่ติดตามเมื่อส่งกิจกรรม แสดงความคืบหน้าสดและสถานะต่อ relay ขณะออกอากาศ + การออกอากาศที่ติดตาม + แปลเป็น + เลือกภาษาที่จะแปลเนื้อหาเป็น + การแปลภาษา + Trusted Relays + Relays ที่คุณเชื่อถือว่าไม่จำเป็นต้องใช้การเชื่อมต่อ Tor + เสร็จสมบูรณ์ + Performance + Simplified + การตั้งค่า UI + UI Mode + เลือกรูปแบบการโพสต์ + ไม่สามารถสร้างบิลชำระในการส่ง zap ได้ โดยเกิดข้อผิดพลาด %1$s จากกระเป๋าของผู้รับ + ไม่สามารถแชร์รูปภาพได้ โปรดลองอีกครั้งในภายหลัง… + ไม่สามารถแชร์วิดีโอได้ โปรดลองอีกครั้งในภายหลัง… + การถอดรหัสไม่ได้รับอนุญาต + ผู้ลงนามไม่อนุญาตการถอดรหัสที่จำเป็นสำหรับการดำเนินการนี้ เปิดใช้การถอดรหัส NIP-44 ในแอปผู้ลงนามของคุณแล้วลองใหม่อีกครั้ง + เลิกติดตาม + เลิกปักหมุด + เลิกปักหมุดจากโปรไฟล์ + ยกเลิกการอัปโหลดแล้ว + ข้อผิดพลาดในการอัปโหลด + การอัปโหลดเสียงล้มเหลว: %1$s + ไม่สามารถอัปโหลดข้อความเสียงได้ + NIP-95 ยังไม่รองรับข้อความเสียง + เวลาทำงาน %1$d%% + เครื่องยนต์ Tor ที่ใช้งานอยู่ + ใช้เวอร์ชันภายในหรือ Orbot + ผู้ใช้นี้ไม่ได้ตั้งค่า lightning address เพื่อรับ sats + ผู้ใช้ %1$s ไม่ได้ตั้งค่า lightning address เพื่อรับ sats + ประวัติการลบข้อมูล + ส่งคำขอให้ลบข้อมูลแล้ว + คุณภาพดีกว่าที่ขนาดไฟล์เล็กกว่า แต่ไม่ใช่ทุกอุปกรณ์รองรับการเล่น H.265 + ใช้ Codec H.265/HEVC + เริ่มดาวน์โหลดวิดีโอแล้ว… + ปุ่มเครื่องเล่นวิดีโอ + บันทึกวิดีโอลงแกลเลอรีในโทรศัพท์แล้ว + โพสต์เสียง + เสียงทุ้ม + เสียงสูง + เสียงปกติ + ไม่มี + ตอบกลับด้วยเสียง + กระเป๋าเงิน + กระเป๋าเงิน Cashu (NIP-60) + Wallet Connect + เกิดข้อผิดพลาดจากบริการกระเป๋า Lightning : %1$s + แก้ไข mints + แสดงข้อความเตือนเมื่อโพสต์หรือโปรไฟล์มีรายงานจากคนที่คุณติดตาม + เตือนเมื่อมีรายงาน + เพิ่มบุ๊กมาร์กเว็บ + แก้ไขบุ๊กมาร์กเว็บ + บุ๊กมาร์กเว็บ + คุณคิดอะไรอยู่ ? + การออกกำลังกาย + เขียนข้อความ… + เขียนบน Relay + จำนวนข้อมูลในหน่วยไบต์ที่ถูกส่งไปยังรีเลย์นี้ รวมถึงฟิลเตอร์และอีเว้นต่างๆ + Zap + Zaps + + เปลี่ยนชื่อ + บันทึก diff --git a/commonsUI/src/commonMain/composeResources/values-tr-rTR/strings.xml b/commonsUI/src/commonMain/composeResources/values-tr-rTR/strings.xml index 25be4621ed..3f586d5ee2 100644 --- a/commonsUI/src/commonMain/composeResources/values-tr-rTR/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-tr-rTR/strings.xml @@ -1795,4 +1795,1166 @@ Explorer API taban URL'si DVM'den Fatura Öde DVM'ye %1$s sats öde + Hakkında & Yasal + Hesap Ayarları + Ekle + Blossom Sunucusu Ekle + NIP-96 Sunucusu Ekle + Etkinleştirildiğinde, Amethyst yayımladığınız etkinliklere bir NIP-89 istemci etiketi ekler. + Etkinliklerime istemci etiketi ekle + Bu içeriği göstermeden önce hassas içerik uyarısı ekler + Hassas İçerik + Herkese Açık Yer İşaretlerine Ekle + Metin düzeltmeleri ve ton değişiklikleri önermek için cihaz üzerindeki bir yapay zeka modeli kullanır. + Metin iyileştirmeleri öner + Gerçek zamanlı bildirimler için gelen kutusu relay'lerinize bağlantıları etkin tutar + + %1$d gelen kutusu relay'ine bağlandı + %1$d gelen kutusu relay'ine bağlandı + + + %1$d relay'e bağlandı + %1$d relay'e bağlandı + + Gelen kutusu relay'lerine bağlanılıyor… + Amethyst Bildirimleri Etkin + Gelen sesli ve görüntülü aramalar için bildirimler + Gelen aramalar + %1$s satranç meydan okumanızı kabul etti + Satranç oyunu etkinlikleri hakkında sizi bilgilendirir + Satranç + Satranç güncellemeleri + %1$s hareket etti — sıra sizde + Özel bir mesaj geldiğinde sizi bilgilendirir + Özel Mesajlar + Yeni mesajlar + Okundu İşaretle + Birisi sizi bir gönderide bahsettiğinde veya alıntıladığında bildirim alırsınız + %1$s sizi bahsetti + Bahsedilmeler + Yeni bahsedilmeler + Birisi gönderinize tepki verdiğinde bildirim alırsınız + %1$s gönderinize tepki verdi + şunun için: %1$s + Tepkiler + Yeni tepkiler + Birisi gönderinize yanıt verdiğinde bildirim alırsınız + Yanıtlar + Yeni yanıtlar + Yanıtla + Zamanlanmış bir gönderi yayımlandığında veya yayımlanamadığında bildirimler. + Zamanlanmış gönderiler + Birisi size zap gönderdiğinde bildirim alırsınız + %1$s sat + şunun için: %1$s + Kimden: %1$s + Alınan Zap'lar + Yeni zap'lar + Uygulama Ayarları + Tasdik + Tasdik Talebi + Tasdikçi Yetkinliği + Tasdikçi Tavsiyesi + Ses Görselleştirici + Yazarken veya gönderilmemiş metin içeren bir düzenleyiciden ayrılırken otomatik olarak taslak etkinliği kaydeder ve özel giden kutusu relay'lerinize gönderir. + Otomatik olarak taslak oluştur + Sürükleyici Kaydırma + Kaydırırken Gezinme Çubuklarını Gizle + Görsel Önizleme + Resimleri ve GIF'leri otomatik yükle + Video Oynatma + Videoları ve GIF'leri otomatik yükle + Profil Resmi + Profil resimlerini göster + URL Önizleme + URL önizlemelerini göster + Videoları Otomatik Oynat + Ekranda görünür olduğunda videoları otomatik oynat + AVIF'ten meta veri kaldırılamıyor: %1$s + Rozet Ver + Geri + Anahtarları Yedekle + Rozetler + Kimlik doğrulama başarısız oldu + Biyometri, bu telefonun sahibini doğrulayamadı + Biyometri, bu telefonun sahibini doğrulayamadı. Hata: %1$s + Engelle + Engellenen Relay'ler + Amethyst bu relay'lere hiçbir zaman bağlanmaz + Engellenmiş Kullanıcılar + Yeni Yer İşareti Listesi + Yer İşareti Listesi Meta Verisi + Yer işareti listesi meta verileri Nostr'daki herkes tarafından görülebilir. Yalnızca özel üyeleriniz şifrelenir. + Yer İmleri + Destekle + Alt Gezinme Çubuğu + Yayın Relay'leri + sendit.nosflare.com gibi notlarınızı diğer tüm relay'lere iletmede uzmanlaşmış relay'ler. Amethyst bu relay'i sizin tarafınızdan yapılan tüm yeni etkinliklere ekleyecektir + Tarayıcı + Favoriler + Açık web üzerinden yükleniyor. Tor'u kullanmak için dokun. + Tor üzerinden yükleniyor. Açık web'i kullanmak için dokun. + + %1$s, %2$d etkinlik + %1$s, %2$d etkinlik + + Resim yükleme başarısız + Seçilen resim yüklenemedi. Tekrar deneyin veya bir URL yapıştırın. + Takvim etkinliğini paylaş + Haritada aç + Bağlantıyı aç + Şu an devam ediyor + %1$s · %2$s bitiyor + + %1$d dakika içinde başlıyor + %1$d dakika içinde başlıyor + + Katıldığınız bir etkinlik başlamak üzereyken uyarı alın. + Takvim hatırlatıcıları + Takvim etkinliği + Katıldığınız bir etkinlik başlamak üzereyken bildirim gönderilir. + Hatırlatıcı gönder + + %1$d dak + %1$d dak + + Takvim hatırlatıcıları + Gün + Akış + Ay + Hafta + Kabul Et + Kamera kapalı + Kamera açık + Ahize + Kapat + Gelen arama + Gelen görüntülü arama… + Gelen sesli arama… + Sesi Kapat + Aramalar + Devam eden arama bildirimi + Amethyst'in görüntülü arama başlatabilmesi için kamera ve mikrofon erişimine ihtiyacı var. Lütfen uygulama ayarlarından etkinleştirin. + Amethyst'in sesli arama başlatabilmesi için mikrofon erişimine ihtiyacı var. Lütfen uygulama ayarlarından etkinleştirin. + Reddet + Arama Ayarları + Hoparlör + Sesi Aç + %1$s ile arama + %1$s'in yanıtında geri çağırma URL'si bulunamadı + Vazgeç + Cashu Token'ı + Mint kontrol ediliyor… + Cashu kullanılamadı + Mint şu hata mesajını döndürdü: %1$s + Alınan + Gönderilen + Eşleşen mint'ler + + +%1$d daha fazla + +%1$d daha fazla + + Popüler mint'ler + + %1$d diğer kişi tarafından önerildi + %1$d diğer kişi tarafından önerildi + + %1$s sat, %2$s'e taşındı. + Sistemde uyumlu Cashu cüzdanı bulunamadı + + %1$d bekleyen fatura + %1$d bekleyen fatura + + %1$s sat + %2$s sat'a kadar ücret ödensin mi? + %1$s'nin kind:38000 önerisi için bir silme isteği yayınlayın. NIP-09'u destekleyen relay'ler bunu kaldıracaktır. + %2$s kanıt içinde %1$s sats kurtarıldı. + Cashu Alındı + %1$s sat cüzdanınıza gönderildi. (Ücretler: %2$s sat) + + Kullanmadığınız %1$d mint'te tutulan fonlar + Kullanmadığınız %1$d mint'te tutulan fonlar + + Faturanın ödenmesi bekleniyor… + Yayını durdur + Cihaza yayınla + Çocuk Güvenliği Standartları + Aksesuar + Sanat + Kitaplar + Giyim + Koleksiyon + El Sanatları + Elektronik + Yiyecek + Mobilya + Ev + Çeşitli + Ofis + Diğer + Evcil Hayvanlar + Spor + Günlük + Aylık + Tek seferlik + Haftalık + %2$s üzerinden %1$s ödensin mi? + Bu fatura %1$s üzerinden ödensin mi? + Borç servisi ödemeyi tamamlamadı. + Bu teklif için geçerli bir miktar girin. + Fatura isteniyor… + Bu gönderinin tüm tepkilerini kapat + Kapalı + Topluluklar + Taslak %1$d bayttır; bu topluluk bu türü en fazla %2$d bayt ile sınırlandırmaktadır. + Taslak %1$d bayttır; bu topluluk etkinlikleri en fazla %2$d bayt ile sınırlandırmaktadır. + Bugün bu türden %1$d etkinlik paylaştınız (sınır: %2$d). + Oluşturma Ayarları + Varsayılan port 9050'dir + Bağlı Relay'ler + Kullanılmakta olan relay'lerin güncel listesi + relay'e başarılı bağlantı yüzdesi + Her Zaman + Hiçbir Zaman + Ölçümsüz WiFi + Belge Ekle + Resim Ekle + Medya Ekle + Video Ekle + Gizle + Uyar + Göster + Diyaloglar + Daha küçük dosya boyutu ve daha iyi oynatma uyumluluğu için animasyonlu GIF'i MP4 videoya dönüştürür. + GIF'i MP4'e Dönüştür + Not kimliği (@note1) panoya kopyalandı + Not metni panoya kopyalandı + Panoya kopyalandı + Yazarın @npub'ı panoya kopyalandı + Gizli anahtarımı kopyala + Panoya kopyala + "%1$s" Lightning Adresinden LNUrl oluşturulamadı. Kullanıcının kurulumunu kontrol edin + Yükleme sonrası indirilen dosya kontrol edilemedi: %1$s + Yüklenen medya sunucudan indirilemedi + %1$s'den fatura alınamadı: %2$s + Sıkıştırılmış dosya açılamadı + Cüzdan bulunamadı + Amethyst, Nostr Wallet Connect (NWC) destekleyen herhangi bir cüzdan uygulaması bulamadı. +\n\nYapabilecekleriniz: +\n\t1. NWC Desteğini Doğrulayın: Tercih ettiğiniz cüzdan uygulamasının Nostr Wallet Connect ile uyumlu olup olmadığını iki kez kontrol edin. +\n\t2. Bağlantı Oluşturun: Cüzdan uygulamanıza gidin ve yeni bir NWC bağlantısı oluşturun. +\n\t3. Amethyst'e Bağlayın: Cüzdanınız genellikle size üç seçenek sunar: +\n\t\t3.1 Otomatik Bağlantı: Amethyst'i otomatik olarak açıp bağlamak için bir düğme. Öyleyse o düğmeye tıklayın, Amethyst'i açın ve yeni ekranda kaydet'e basın. +\n\t\t3.2 Manuel Bağlantı: Doğrudan girmek için bu ekrandaki yapıştır simgesine tıklayabileceğiniz bir Bağlantı URI'si kopyalayın. +\n\t\t3.3 QR Kodu: Cüzdan, bu ekrandaki QR kodu düğmesiyle okuyabileceğiniz bir QR kodu oluşturur. + + Oluştur + g + Tehlike Bölgesi + Koyu + Açıklama + Herkese açık yap + Sohbetler + Topluluklar + Akış Algoritmaları + Takip Paketleri + Canlı Yayınlar + Pazar Yeri + Okumalar + DM Gelen Kutusu Relay'leri + Şu dilden çevirme + Burada gösterilen diller çevrilmeyecek. Bir dili kaldırıp tekrar çevrilmesini sağlamak için üzerine dokunun. + Telefona Kaydet + Video indiriliyor… + Taslak Not + Taslaklar + Hesaplar + Oluştur + Akışlar + Gezin + Sistem + Siz + + %1$d gün + %1$d gün + + + %1$d saat + %1$d saat + + + %1$d dakika + %1$d dakika + + + %1$d ay + %1$d ay + + + %1$d hafta + %1$d hafta + + + %1$d yıl + %1$d yıl + + Takvimi Düzenle + Takvim Etkinliğini Düzenle + Topluluğu Düzenle + Emoji paketini düzenle + Çalma listesini düzenle + Gönderiyi Düzenle + Özel emojiler relay'lerde şifrelenmiş olarak saklanır ve yalnızca size görünür. Genel emojiler gibi tepki menünüzde ve ":" otomatik tamamlamada görünürler. + Genel emojiler herkese görünür ve bu paket emoji listenizde olduğunda tepki menünüzde ve ":" otomatik tamamlama seçicisinde görünür. + Emojiler + Gizlilik için dosyaları yüklemeden önce şifreleyin. Bazı sunucular ücretsiz hesaplarda şifrelenmiş dosyaları kabul etmeyebilir. + Dosyaları şifrele + Kaybolan Sohbet + Hata + Fatura ödenemedi + Para çekilemedi + Ödeme açılamadı + Zap gönderilemedi + İmzalayıcı uygulama açılırken hata oluştu + İmzalayıcı uygulama bulunamadı. Uygulamanın kaldırılmamış olduğunu kontrol edin + Hata mesajı ayrıştırılırken hata oluştu + %1$s'den JSON ayrıştırılırken hata oluştu. Kullanıcının lightning kurulumunu kontrol edin + Alıcının sunucularından fatura alınamadı + Tarayıcıda aç + Bu video oynatılamıyor + Codec veya format bu cihazda desteklenmiyor (%1$s). Tarayıcınızda açmayı deneyin. + Hatalar + Relay Senkronizasyonu + sizden etkinlikler + size etkinlikler + Devre + Bisiklet + Diyet + Oruç + Doğa yürüyüşü + Meditasyon + Kürek çekme + Koşu + Kuvvet + Yüzme + Yürüyüş + Genişlet + Son Kullanma Tarihi + Relay ayarlarını dışa aktar + Silme başarısız oldu: %1$s + Özel anahtarınız şifrelenemedi + Resim galeriye kaydedilemedi + PDF kaydedilemedi + Video kaydedilemedi + Birçok sunucu ücretsiz hesaplarda şifrelenmiş dosyaları kabul etmemektedir. Şifreleme olmadan yeniden deneyebilirsiniz. + Şifreli yükleme başarısız oldu + Yükleme hatası: %1$s + Medya yüklenemedi + %1$s'e yükleme başarısız oldu: %2$s + Favorilere ekle + Açık web üzerinden yüklenir. + Tor üzerinden yüklenir. + Son kullanılan + Favorilerden kaldır + O uygulama henüz yüklenmedi. Bir süre sonra tekrar dene. + Favori uygulamalar + Favori Akış Algoritmaları + Ödeme yapıldı + relay'lere yayımlandı + Dosya yüklendi + Favori Relay Akışları + Küresel akışlarını görmek için sık sık gittiğiniz relay'ler + Topluluklar + Akış Algoritmaları + Akışlar + Etiketler + İlgi Kümeleri + Listeler + Konumlar + Relay'ler + Dosya Sunucusu + Bu dosyayı yüklemek için bir sunucu seçin + Tanımadığınız kişilerden 5 veya daha fazla kez birebir aynı şekilde paylaşılan gönderileri gizler + İstenmeyen içeriği filtrele + Takip Et + Geri takip et + Tüm favori akış algoritmaları + Çevremdekiler + Küratörlü + Varsayılan Takip Listesi + Tüm Takipler + Tüm Kullanıcı Takipleri + Benimkiler + Sessize Alma Listesi + Yeni Takip Paketi + Takip Paketini Düzenle + Takip paketi meta verileri Nostr'daki herkes tarafından görülebilir ve yeni kullanıcılar için başlangıç kiti olarak birçok web sitesinde sıkça yayımlanır. + Takip Paketi Meta Verileri + Takip Paketleri + Yeni Takip Listesi + Listeyi Düzenle + Profil Galeri Stili + Galeri stilini seçin + Klasik + Yalnızca Konuma Özel Gönderi + Yalnızca konumu takip edenler görecektir. Genel takipçileriniz görmeyecektir. + %2$s sats hedefinin %1$s'i finanse edildi + s + Bu içerik değişti. Yazar değişikliği görmemiş veya onaylamamış olabilir + Bu ne anlama geliyor? + Bu içerik gönderi tarihinden bu yana değişmedi + Merhaba %1$s, bu hâlâ mevcut mu? + Gizli Kelimeler + Topluluk bir NIP-9B kural belgesi yayımladığında ve bir etkinlik bunu karşılamadığında, topluluk akışlarından o gönderiyi düşürür. Topluluğun yapılandırılmış kuralı yoksa hiçbir etkisi olmaz. + Topluluk kurallarını ihlal eden gönderileri gizle + Şifreyi Gizle + %1$s yükleniyor (%3$d içinden %2$d) + Her Şey + Hatalı İstek - Sunucu isteği işleyemiyor veya işlemeyecek. + Yetkisiz - Kullanıcının geçerli kimlik doğrulama bilgileri yok + Ödeme Gerekli - Sunucu isteği tamamlamak için ödeme gerektiriyor + Yasak - Kullanıcının isteği yapmak için erişim hakları yok + Bulunamadı - Sunucu istenen adresi bulamıyor + Yönteme İzin Verilmiyor - Sunucu istek yöntemini destekliyor ancak hedef kaynağı desteklemiyor + Kabul Edilemez - Sunucu isteği karşılayan hiçbir içerik bulamıyor. + Proxy Kimlik Doğrulaması Gerekli - Kullanıcının geçerli kimlik doğrulama bilgileri yok + İstek Zaman Aşımı - Sunucu başka birini beklerken zaman aşımına uğradı + Çakışma - Sunucu kaynakla bir çakışma olduğu için isteği yerine getiremiyor + Kaldırıldı - İstenen içerik sunucudan kalıcı olarak silindi ve yeniden yüklenmeyecek + Uzunluk Gerekli - Sunucu tanımlı bir değer gerektirdiği için isteği reddediyor + Ön Koşul Başarısız - Sunucunun karşılayamadığı başlık alanlarındaki istek ön koşulları + Yük Çok Büyük - İstek sunucunun tanımlı sınırlarından daha büyük ve sunucu işlemeyi reddediyor + URI Çok Uzun - İstemci tarafından istenen URL sunucunun işleyebileceğinden çok uzun. + Desteklenmeyen Medya Türü - İstek, sunucunun desteklemediği bir medya biçimi kullanıyor + Aralık Karşılanamaz - Sunucu isteğin Range başlık alanında belirtilen değeri yerine getiremiyor. + Beklenti Başarısız - Sunucu Expect istek başlık alanında belirtilen gereksinimleri karşılayamıyor + Yükseltme Gerekli - İstemci farklı bir protokole yükseltme yapmadıkça sunucu mevcut protokolü kullanarak isteği işlemeyi reddediyor. + Dahili Sunucu Hatası - Sunucu beklenmedik bir hatayla karşılaştı ve isteği tamamlayamıyor + Uygulanmadı - Sunucu isteği yerine getiremiyor veya istek yöntemini tanımıyor + Hatalı Ağ Geçidi - Sunucu ağ geçidi olarak davranıyor ve ana bilgisayardan geçersiz yanıt aldı + Hizmet Kullanılamıyor - Bu genellikle sunucu aşırı yüklendiğinde veya bakım için kapalı olduğunda gerçekleşir + Ağ Geçidi Zaman Aşımı - Sunucu ağ geçidi veya proxy olarak davranıyordu ve yanıt beklerken zaman aşımına uğradı + HTTP Sürümü Desteklenmiyor - Sunucu istekteki HTTP sürümünü desteklemiyor + Varyant da Müzakere Ediyor - Sunucuda dahili yapılandırma hatası var + Yetersiz Depolama - Sunucu isteği başarıyla işlemek için yeterli depolamaya sahip değil + Döngü Algılandı - Sunucu isteği işlerken sonsuz bir döngü algılıyor + Ağ Kimlik Doğrulaması Gerekli - İstemcinin ağa erişmek için kimlik doğrulaması yapması gerekiyor + İllegal Davranış + Resim galeriye kaydedildi + Taklit Etme + Gelen Kutusu Relay'leri + %2$s'den gelen fatura tutarı hatalı (%1$s sat). %3$s olması gerekirdi + İndeksleyici Relay'leri + purplepag.es gibi herkesin meta verilerini ve relay listelerini barındırmada uzmanlaşmış relay'ler. Amethyst, listelerinizde olmayan kullanıcıları bulmak için bu relay'leri kullanacaktır. + Yeni İlgi Seti + Yeniden adlandır + Hashtag Setleri + Geçersiz Anahtar + Geçersiz anahtar: %1$s + Geçersiz adres + Amethyst açmak için bir URI aldı ancak bu URI geçersizdi: %1$s + Taslak bir notu alıntılamak mümkün değildir + Taslak bir nota tepki vermek mümkün değildir + Taslak bir nota yanıt vermek mümkün değildir + Taslak bir nota zap atmak mümkün değildir + Anahtar gerekiyor + KeyPackage Relay'leri + MLS KeyPackage'larınızın yayınlandığı relay'ler (MIP-00). Diğer kullanıcılar sizi Marmot grup sohbetlerine davet etmek için bu KeyPackage'ları alır. KeyPackage etkinliklerini sizden kabul eden ve genel okumaya izin veren 1–3 relay ekleyin. + Kabul Edilen Rozet Seti + Macera Prologu + Macera Okuması + Macera Sahnesi + Uygulama Önerileri + Randevu + Uygulamalar + Randevu RSVP + Ses Başlığı + Ses Parçası + Oluşturulan Podcast'ler + Rozet Ödülleri + Rozet Tanımları + Blob Verisi + Blob Başlıkları + Engellenen Relay'ler + Bloglar + Blossom Sunucuları + Yer İşareti Listesi + Yayın Relay'leri + Takvim + Kanal Tanımı + Kanal Mesaj Gizle + Kanal Listesi + Kanal Mesajı + Kanal Meta Verisi + Kanal Kullanıcı Sessizleştir + Satranç Auth + Satranç Meydan Okumaları + Satranç Beraberlik Teklifi + Satranç Oyunu Kabul + Satranç Oyunu Sonu + Satranç Oyunları + Satranç Hamlesi + İlanlar + Yorumlar + Topluluk Tanımı + Topluluk Listesi + Topluluk Gönderisi + Kişi Kartı + Günlük Randevu + Silmeler + DM Dosyası + DM Mesajı + DM Relay'leri + Taslaklar + DVM İçerik İsteği + DVM İçerik Yanıtı + DVM Durumu + DVM Kullanıcı İsteği + DVM Kullanıcı Yanıtı + Düzenlemeler + Emoji Paketi Listesi + Emoji Paketleri + Geçici Sohbet + Geçici Sohbet Odaları + Favori Podcast'ler + Favori Relay'ler + Dosya Başlıkları + Dosya Sunucuları + Takip Listesi + Takip Paketleri + Geohash Takipleri + GiftWrap'ler + Hashtag Takipleri + Öne Çıkanlar + Dizin Relay Listesi + Canlı Sohbetler + Canlı Yayınlar + Tıbbi Veri + Toplantı Odası + Toplantı Alanı + Müzik Çalma Listesi + Müzik Parçası + Sessizlik Listesi + Adlandırılmış Yer İşaretleri + Nests Sunucuları + Nostr Bağlantısı + Notlar + NWC İsteği + NWC Yanıtı + Eski Yer İşareti Listesi + Giden Kutsu Relay'leri + Kişi Listeleri + Resimler + Sabitlemeler + Podcast Bölümü + Podcast Programı + Anket + Anket Yanıtı + Özel Relay'ler + Özel Zaps + Profil + Profil Rozetleri + Profil Galerisi + Proxy Relay'ler + Genel Mesaj + Tepkiler + Relay Kimlik Doğrulama + Relay Keşfi + Relay Monitör Duyurusu + Relay Kümesi + Raporlar + Yeniden Paylaşımlar + Yeniden Paylaşımlar (16) + Oda Varlığı + Mühürler + Arama Relay'leri + Torrent Yorumları + Torrentler + Güvenilen Sağlayıcılar + Güvenilen Relay'ler + Kullanıcı Silme + Kullanıcı Ayarları + Kullanıcı Durumu + Sesli Mesaj + Sesli Yanıt + Web Yer İşareti + Egzersizler + Zap Hedefleri + Zap Anketi + Zap İsteği + Bilinen + Dil Görüntüleme Tercihleri + Her çevrilen dil çifti için önce hangi dilin gösterileceğini seçin. + %1$s önce görüldü + Az önce görüldü + Hiç görülmedi + %1$s tarihinde görüldü (%2$s önce) + Ayrıl + Açık + Canlı Yayınlar + Yerel Relay'ler + Bu cihazda çalışan relay'lerin listesi. + Gönderileri desteklemek için bir Gizli Anahtarla giriş yap + Bir genel anahtar kullanıyorsunuz ve genel anahtarlar salt okunurdur. Takip edebilmek için özel anahtarla giriş yapın + Bir genel anahtar kullanıyorsunuz ve genel anahtarlar salt okunurdur. Bir kelime veya cümleyi gizleyebilmek için özel anahtarla giriş yapın + Yanıtlamak için bir Gizli Anahtarla giriş yap + Zap göndermek için bir Gizli Anahtarla giriş yap + Bir genel anahtar kullanıyorsunuz ve genel anahtarlar salt okunurdur. Bir kelime veya cümleyi gösterebilmek için özel anahtarla giriş yapın + Bir genel anahtar kullanıyorsunuz ve genel anahtarlar salt okunurdur. Etkinlikleri imzalayabilmek için özel anahtarla giriş yapın + Bir genel anahtar kullanıyorsunuz ve genel anahtarlar salt okunurdur. Takibi bırakabilmek için özel anahtarla giriş yapın + Bir genel anahtar kullanıyorsunuz ve genel anahtarlar salt okunurdur. Yükleme yapabilmek için özel anahtarla giriş yapın + Gönderileri beğenmek için bir Gizli Anahtarla giriş yap + Videolar + d + Emoji Paketlerim + %1$s ekleniyor… + Yönetici ayrıcalıkları verildi + Yönetici ayrıcalıkları iptal edildi + %1$s eklenemedi: %2$s + Grup oluşturulamadı: %1$s + Yönetici ayrıcalığı verilemedi: %1$s + Gruptan ayrılınamadı: %1$s + Üye kaldırılamadı: %1$s + Yönetici ayrıcalığı iptal edilemedi: %1$s + Güncellenemedi: %1$s + MLS Grubu + Grup bilgisi güncellendi + + %1$d üye + %1$d üye + + Üye kaldırıldı + + %1$d mesaj + %1$d mesaj + + Bu grubun üyesi değilsiniz + bilinmeyen hata + Medya eklendi + Medya Profil Galerinize eklendi + Medya indirme başladı… + Medya Sunucuları + Medya NIP-95 için çok büyük + Önce mesajın alıcısını girin + Yüklenemiyor + Konu + Meta veri kaldırılamadı + Medyadan özel meta veri kaldırılamadı. Yükleme iptal edildi. + Yer imleri başarıyla taşındı + Lightning kurulumu eksik + Daha Fazla Seçenek + Özele Taşı + Herkese Açığa Taşı + Kapak görseli yükle + Bu çalma listesi için kapak resmi olarak kare bir görsel seçin. + + +%1$d daha fazla parça + +%1$d daha fazla parça + + + %1$d parça + %1$d parça + + + %1$d parça + %1$d parça + + Kapak yükleniyor ve yayınlanıyor. Ekrandan ayrılsanız bile bu işlem devam edecektir. + Ses dosyası yükle + MP3, WAV veya FLAC seçin. Kaydettiğinizde medya sunucunuza yüklenecektir. + Kapak görseli yükle + Bu parça için kapak resmi olarak kare bir görsel seçin. + Kapak ve ses yükleniyor, yayınlanıyor. Ekrandan ayrılsanız bile bu işlem devam edecektir. + Ses açık. Sessize almak için tıklayın + Sessize alındı. Sesi açmak için tıklayın + Listelerim + Bir isim gereklidir + Namecoin Ayarları + Kimlik + Ortak anahtarını oku + Mesajlaşma + Diğer nApplet'lerle mesaj alışverişi yap + Klavye eylemleri + Klavye kısayollarını bağla + Bildirimler + Sana bildirim göster + relay'ler + Etkinliklerini oku, imzala ve yayımla + Ağ + Web ve Blossom kaynaklarını getir + Depolama + Kendi özel depolaması + Tema + Uygulamanın renklerine uy + Yüklemeler + Medya sunucuna dosya yükle + Ödemeler + Lightning faturalarını öde + Bu nApplet ortak anahtarını okumak istiyor. + Bu nApplet profilini ve hesap verilerini okumak istiyor. + Bu nApplet sana bildirim göstermek istiyor. + + Bu nApplet %1$d sat için bir Lightning faturası ödemek istiyor. + Bu nApplet %1$d sat için bir Lightning faturası ödemek istiyor. + + Bu nApplet senin adına kind %1$d türünde bir etkinlik imzalayıp yayımlamak istiyor. + Bu nApplet senin adına şifreli bir etkinlik göndermek istiyor. + Bu nApplet senin adına kind %1$d türünde bir etkinlik imzalayıp yayımlamak istiyor: + Bu nApplet relay'lerinden etkinlikleri okumak istiyor. + Bu nApplet bir web kaynağı getirmek istiyor. + Bu site Nostr anahtarınla kind %1$d türünde bir etkinlik imzalamak istiyor. + Bu nApplet kendi özel depolamasını kullanmak istiyor. + Bu nApplet medya sunucuna dosya yüklemek istiyor. + Mesaj gönderilemedi + Bu konuşmacıyı sustur + Bu konuşmacıyı geri yükle + Ayrıl + Oda kapalı olarak işaretlenemedi. Yine de ayrılıyorum — oda otomatik kapanacak. + + %1$d dinleyici + %1$d dinleyici + + Eli indir + Mikrofonu kapat + Mikrofonu aç + Sessize al + Nest sunucu listeniz kaydedilemedi. Tekrar deneyin. + Nest — Canlı + Oda açıkken ses çalmayı sürdürür. + Nest bağlandı + Durdur + Geri dönmek için dokun. + Takip et + Sessize al + Takibi bırak + Sesi aç + Nest'ten ayrıldı + dinleyici olarak katıldı + sahneye çıktı + elini kaldırdı + konuşuyor + El kaldır + Sesi aç + Diğer istemcilerin tercihinizi okuyabilmesi için kind-10112 değiştirilebilir olay olarak kaydedilir. + Sunucularınız + Tek dokunuşla listenize ekleyebileceğiniz yerleşik öneriler. + Önerilen sunucular + Nest sunucuları + asla + Yeni Rozet + Yeni Takvim + Yeni Takvim Etkinliği + Yeni Topluluk + Moderatörler + Relay'ler + Yasaklı kullanıcılar + Topluluk yorumu (1111) + Uzun biçimli makale (30023) + Fotoğraf gönderisi (20) + Kısa metin (1) + Kısa video (22) + Video gönderisi (21) + İzin verilen etkinlik türleri + Genel maksimum etkinlik boyutu (isteğe bağlı) + Doğrulanabilir kurallar (isteğe bağlı) + Web-of-trust kapısı (isteğe bağlı) + Yeni emoji paketi + Yeni Hedef + Yeni Makale + Yeni çalma listesi + Yeni müzik parçası + Yeni Ürün + Yeni İstekler + Yeni Threadler + Yeni Egzersiz + + %1$d varlık paketlendi + %1$d varlık paketlendi + + Blossom uygulamaları bulunamadı. Lütfen bu dosyayı görüntülemek için yerel bir Blossom uygulaması yükleyin + Blossom bağlantıları açılamıyor + Bu cihazda kamera uygulaması bulunamadı + Lightning Adresi ayarlanmamış + Bu ödemeyi işleyecek uygulama bulunamadı. Lütfen uyumlu bir cüzdan yükleyin. + %1$s ödemelerini işleyecek uygulama yüklü değil. Lütfen uyumlu bir cüzdan yükleyin. + Bu kullanıcı için önceden seçilmiş tepki türü yok. Değiştirmek için kalp düğmesine uzun basın + Tepki kurulumu yok + Lightning faturası ödemek için cüzdan bulunamadı. Lütfen zap kullanmak için bir Lightning cüzdanı yükleyin + Lightning faturası ödemek için cüzdan bulunamadı (Hata: %1$s). Lütfen zap kullanmak için bir Lightning cüzdanı yükleyin + Zap miktarı belirlenmedi. Değiştirmek için uzun basılı tutun + Bildirimler + Kategoriler + Teslim + Uygulama içi görüntüleme + şimdi + Çıplaklık + Olay referansı oluşturulamıyor + Notta alıcı pubkey'i yok + Nutzap'lar herkese açıktır ve bu özel notu ifşa eder. Bunun yerine bir Lightning zap kullanın. + Nutzap başarısız oldu + + %1$s sats gönder, %2$d yol + %1$s sats gönder, %2$d yol + + Bitcoin zinciri arka ucu yapılandırılmamış + İşlem yayınlanamadı + İşlem oluşturulamadı + Bitcoin bakiyeniz yüklenemedi + Ödeme gönderildi, ancak zap makbuzu yayımlanamadı + + Ödeme gönderildi (%2$d makbuzdan %1$d tanesi yayımlandı), ancak bir sonraki makbuz yayımlanamadı + Ödeme gönderildi (%2$d makbuzdan %1$d tanesi yayımlandı), ancak bir sonraki makbuz yayımlanamadı + + Bir alıcı payı toz sınırının altında + İşlem imzalanamadı + ~10 dak + ~30 dak + ~1 sa + Hızlı + Yavaş + + %1$d alıcıya bölün + %1$d alıcıya bölün + + + %1$d yalnızca Lightning adresli alıcı atlanıyor — zincir üstü işlem için Nostr pubkey gereklidir. + %1$d yalnızca Lightning adresli alıcı atlanıyor — zincir üstü işlem için Nostr pubkey gereklidir. + + + Bu notun %1$d yollu zap bölünmesini kullan + Bu notun %1$d yollu zap bölünmesini kullan + + yayınlanıyor + işlem oluşturuluyor + bakiye yükleniyor + makbuz yayımlanıyor + imzalanıyor + Bu tür anketlerde kullanıcı başına yalnızca bir oy kullanılabilir + Bu gönderinin tüm tepkilerini aç + Açık + Orbot Socks Portu + Bitcoin Gezgini (OTS) + Bu gönderinin %1$s tarihinden önce imzalandığına dair kanıt var. Kanıt, o tarih ve saatte Bitcoin blok zincirine işlendi. + Zaman Damgası Kanıtı + Giden Kutusu Relay'leri + Parola gereklidir + Duraklat + Öde + %1$s'den mesaj + Ödeme Hedefleri + Farklı ağlar için ödeme adresleri ekleyin (ör. bitcoin, lightning, ethereum). + PDF İndirilenler/Amethyst klasörüne kaydedildi + Takip listesi meta verileri Nostr'daki herkes tarafından görülebilir. Yalnızca özel üyeleriniz şifrelenir. + Takip Listesi Meta Verileri + Fotoğraflar + Üste sabitle + Profile Sabitle + Oynat + + %1$d bölüm + %1$d bölüm + + Anket yazarları kendi anketlerinde oy kullanamaz. + Anket yeni oylar için kapatıldı + Çoklu seçim + Seçenek %1$s + Tek seçim + Oy kullanılamıyor + Anketler + Gönder + + Bu gönderide %1$d'den fazla hashtag var + Bu gönderide %1$d'den fazla hashtag var + + %1$s için Önizleme Kartı Görseli + Gizlilik Seçenekleri + Gizlilik Politikası + <Özel mesaj şifresi çözülemiyor>\n\n%1$s ve %2$s arasındaki özel/şifreli bir konuşmada adınız geçti. + DM Gelen Kutusu Relay'leri + Özel gelen kutunuz olarak kullanmak için 1–3 relay ekleyin. Diğerleri size DM göndermek için bu relay'leri kullanacaktır. DM Gelen Kutusu relay'leri herkesten mesaj kabul etmeli, ancak yalnızca sizin indirmenize izin vermelidir. İyi seçenekler:\n - inbox.nostr.wine (ücretli)\n - auth.nostr1.com (ücretsiz)\n - you.nostr1.com (kişisel relay'ler - ücretli) + Kullanıcı DM'leri bu relay'lerde alıyor + Özel Mesaj + Özel yap: notu yalnızca bildirilen kullanıcılara hediye sarmalıyla gönder + Özel bir nota verilen yanıtlar her zaman özel kalır + Görebilecekler + Özel Ana Sayfa Relay'leri + Taslaklar ve/veya uygulama ayarları gibi başka kimsenin göremediği etkinlikleri depolamak için 1–3 relay ekleyin. İdeal olarak, bu relay'ler yerel olmalı veya her kullanıcının içeriğini indirmeden önce kimlik doğrulaması gerektirmelidir. + Küfür / Nefret dolu konuşma + Profil + Profil rozetleri + Uygulama Önerileri + Profil Rozetleri + Takipçi Akışı + Alınan Zap Akışı + Profil Arayüzü + profiller + Düzenleme Öner + Proxy Relay'leri + Uygulamanın akışlarınızı indirmek için kullanması gereken filter.nostr.wine gibi toplayıcı relay'ler. Bu, giden kutusu modelinin yerini alır ve uygulamanın yalnızca listelerinizdeki relay'lere bağlanmasını sağlar. + Herkese Açık Chat + Genel sohbetler Nostr'daki herkese görünürdür ve herkes + katılabilir. Belirli konular etrafında açık topluluklar için idealdirler. + Moderasyon, relay'lerindeki gönderilerin silinmesiyle kontrol edilebilir + Bu grubu barındıran 1–3 relay ekleyin. + Nostr istemcileri mesajları nereden indireceğini ve mesajlarınızı nereye göndereceğini öğrenmek için bu ayarı kullanır. + relay'ler + Genel Sohbet Meta Verisi + Genel Sohbetler + Genel Giden Kutusu/Ana Sayfa Relay'leri + Bu relay türü tüm içeriğinizi saklar. Amethyst gönderilerinizi buraya gönderecek ve diğerleri içeriğinizi bulmak için bu relay'leri kullanacaktır. 1–3 relay ekleyin. Kişisel relay'ler, ücretli relay'ler veya genel relay'ler olabilir. + Kullanıcı içeriğini bu relay'lere gönderiyor + Genel Mesaj + Genel Gelen Kutusu Relay'leri + Bu relay türü gönderilerinize gelen tüm yanıtları, yorumları, beğenileri ve zap'ları alır. Ücretli veya ücretsiz relay'ler olabilir. Relay operatörü tarafından belirlenen sınırlar, aldığınız bildirimleri iyi veya kötü yönde etkileyebilir. Örneğin, yorum spam saldırısına uğruyorsanız, ücretli relay'ler spam'i filtreleyebilir. 1–3 relay ekleyin. + Kullanıcı bu relay'lerde bildirimleri alıyor + Not Kimliği + Sil + Konuyu sustur + Paylaş + Tarayıcı Bağlantısını Paylaş + Konunun sesini aç + Tepki + Tepkiler + Tepki Satırı + Relay'den Oku + Filtreler ve etkinlikler dahil bu relay'den alınan bayt miktarı + Salt okunur kullanıcı + Sesli mesaj kaydetmek için tıklayıp basılı tutun + relay Sohbeti + relay sohbetleri, ana relay'leri tarafından kontrol edilen sohbet gruplarıdır. + Nostr'daki herkese görünürdür ve herkes katılabilir. + Belirli konular etrafında açık topluluklar için idealdirler. Bu grupların bir kısmı geçici niteliktedir + ve bu nedenle sohbet mesajları zamanla silinir + relay Sohbetleri + Etkinlikler + IP'ler + Türler + Kullanıcılar + Ayarlar + Relay Ayarları + giden kutusu listeleri + Relay'ler + Doldur & zap gönder + Zap gönder + %2$s'ye %1$s sat doldur ve %3$s'ye %4$s sat zap gönder · ücret ≈ %5$s sat + Kaldır + Herkese Açık Yer İşaretlerinden Kaldır + buraya yanıtlayın… + Bildir: + + Silme İste + Silinme Talebi + Marmot durumu sıfırlanamadı: %1$s + Marmot Durumunu Sıfırla + Marmot durumu sıfırlandı. + Yeniden dene + Takvim listeleri + Takvimler + Satranç + Keşfet + Ana Sayfa + Takip Listesini İçe Aktar + Mesajlar + Çalma listeleri + Müzik + Bildirimler + Bölümler + Podcastler + Gönderiyi zamanla + Zamanlamayı iptal et + Zamanlanmış gönderiler, uygulamayı yeniden açana kadar yayımlanmayabilir. Bu hesap etkinken diğer hesapların zamanlanmış gönderileri tetiklenmeyecek. Güvenilir arka plan zamanlaması için Ayarlar → Arayüz Tercihleri bölümünden her zaman açık seçeneğini etkinleştirin. + Zamanlanmış gönderiler, uygulamayı bir sonraki açışınıza kadar yayımlanmayabilir. Güvenilir arka plan zamanlaması için Ayarlar → Arayüz Tercihleri bölümünden her zaman açık seçeneğini etkinleştirin. + Zamanlanmış gönderiler + Şimdi gönder + %1$s · %2$s içinde + %1$s · %2$s önce + Yarın + Hata: %1$s + Not kimliği kopyalandı + + Çıkış yapıldı · %1$d zamanlanmış gönderi silindi + Çıkış yapıldı · %1$d zamanlanmış gönderi silindi + + Çıkış yapıldı + + Henüz yayımlanmamış %1$d zamanlanmış gönderiniz var. Çıkış yapmak bu gönderiyi kalıcı olarak silecektir. + Henüz yayımlanmamış %1$d zamanlanmış gönderiniz var. Çıkış yapmak bunları kalıcı olarak silecektir. + + Zamanlanmış gönderi başarısız oldu + Zamanlanmış gönderi yayımlandı + + %1$d relay'e + %1$d relay'e + + İptal edildi + Başarısız + Zamanlandı + Gönderiliyor… + Gönderildi + + · %1$d tanesi 1 saatte + · %1$d tanesi 1 saatte + + + %1$d sırada + %1$d sırada + + İyi seçenekler:\n%1$s + Arama Relay'leri + Arama Relay'leri + İçerik veya kullanıcı ararken kullanılacak relay'lerin listesi. Kullanılabilir seçenek yoksa etiketleme ve arama çalışmaz. NIP-50'yi uyguladıklarından emin olun. + aranabilir etkinlikler + Gizli anahtar (nsec) panoya kopyalandı + Henüz hiçbir kullanıcıyı engellemiyorsunuz. + Güvenlik Filtreleri + Gizli kelime yok. İçeren gönderileri gizlemek için aşağıya bir kelime ekleyin. + Engellenen içerik + Filtreleme tercihleri + Bu oturumda hiçbir hesap istenmeyen içerik olarak işaretlenmedi. + Gönder + Alınan tüm profil (kind 0) etkinliklerini yerel relay'inize gönderin + Profilleri yerel relay'e ilet + Bu alıcı için harcanabilir: %1$s sats + Ödeme başarısız + İşlem: %1$s + %1$s üzerinden ödeniyor… + Sunucu, yükleme sonrasında bir URL sağlamadı + Ayarlar + Sessize alınan konu yok + Sessize alınan konular + Görsel Olarak Paylaş + Görsel URL'si Olarak Paylaş + HLS Yükle + Paylaş veya Kaydet + Kısa videolar + Şifreli özel anahtar QR kodunu göster + Bildirim sekmesine doğrudan ve grup mesajlarını dahil et. Mesajları yalnızca Mesajlar sekmesinde tutmak için kapatın. + Mesajları Göster + Özel anahtar QR kodunu göster + İmza isteği reddedildi + İmzalayıcı uygulamanın bu işlemi yetkilendirdiğinden emin olun + Harici imzalayıcı, istek için beklenmedik bir yük döndürdü. Amethyst veya İmzalayıcıda bir hata olabilir. + İmzalayıcı bulunamadı + İmzalayıcı uygulaması kaldırıldı mı? İmzalayıcının kurulu olup olmadığını ve bu hesabın kayıtlı olup olmadığını kontrol edin. İmzalayıcı uygulaması değiştiyse çıkış yapıp tekrar giriş yapın. + %1$d saniye geri atla + %1$d saniye ileri atla + Uygulamalar + İstenmeyen + Bu relay'den gelen spam etkinliklerinin sayısı + Spam Gönderenler + İki bildirim sekmesi göster — Takip Edilenler (takip ettiğiniz kişiler) ve Herkes. Okunmamış göstergesi yalnızca takip ettiğiniz kişilerin etkinlikleri için yanar. + Bildirimleri Takip Edilenlere göre ayır + Yüklemeden önce desteklenen medya dosyalarından özel meta veriyi kaldırmayı dener + Özel meta veriyi kaldır + Health Connect'ten (Samsung Health, Google Fit, Fitbit, Garmin…) tamamlanan antrenmanları okur ve bunları gönderi olarak paylaşmayı önerir. İzin yalnızca bağlandığınızda istenir. + Paylaşılacak antrenmanlar öner + Sistem + Tema + Koyu, Açık veya Sistem teması + Bu mesaj %1$s sonra kaybolacak + + +%1$d\nyanıt + +%1$d\nyanıt + + Bugün + Özel + Kendinize özel ayar yapın + Varsayılan + IP adresinizi rastgele relay'lerden gizleyin + Tam Gizlilik + IP adresinizi tüm bağlantılarda gizleyin + Dahili + Kapalı + Tor/Gizlilik Ön Ayarları + Aşağıdaki tüm ayarları hızlıca değiştirin + Medya Hariç Hepsi + IP adresinizi resimler ve videolar hariç her şeyden gizleyin + DM Relay'leri + DM gönderip almak için Tor'u zorla kullan + Resimler + Resimler yüklenirken Tor'u zorla kullan + Medya Yüklemeleri + İçerik yüklenirken Tor'u zorla kullan + Para İşlemleri + Zap, Lightning ve Cashu transferlerinde Tor'u zorla kullan + Güvenilmeyen Relay'ler + Giden/gelen relay'lerde Tor'u zorla kullan + Nostr Adres Doğrulama + NIP-05 adresleri doğrulanırken Tor'u zorla kullan + Onion URL/Relay'leri + Herhangi bir .onion URL'si için Tor kullan + Profil Resimleri + Profil resimleri yüklenirken Tor'u zorla kullan + Güvenilen Relay'ler + Listelerinizdeki tüm relay'lerde Tor'u zorla kullan + URL Önizlemeleri + URL önizlemeleri yüklenirken Tor'u zorla kullan + Videolar + Videolar yüklenirken Tor'u zorla kullan + Temel + Sunucu tarafından gerektiğinde Tor kullan + Dosya açılamadı + Dosyayı açmak ve indirmek için torrent uygulaması yüklü değil. + Etkinlik bir mıknatıs bağlantısı oluşturmak için yeterli bilgiye sahip değil + Etkinlikler gönderilirken takip edilen yayıncıyı kullan. Yayın sırasında canlı ilerlemeyi ve relay başına durumu gösterir. + Takip edilen yayınlar + Çeviri dili + İçeriğin çevrileceği dili seçin. + Çeviriler + Güvenilen Relay'ler + Tor bağlantısı gerektirmeyen güvendiğiniz relay'ler + Tam + Performans + Basitleştirilmiş + Arayüz Tercihleri + Arayüz Modu + Gönderi stilini seçin + Zap gönderilmeden önce lightning faturası oluşturulamadı. Alıcının lightning cüzdanı şu hatayı döndürdü: %1$s + Resim paylaşılamıyor, lütfen daha sonra tekrar deneyin… + Video paylaşılamıyor, lütfen daha sonra tekrar deneyin… + Yetkisiz Şifre Çözme + İmzalayıcı, bu işlemi gerçekleştirmek için gereken şifre çözme işlemine izin vermedi. İmzalayıcı uygulamanızda NIP-44 şifre çözmeyi etkinleştirin ve tekrar deneyin + Takip Etme + Sabitlemeyi kaldır + Profil Sabitlemesini Kaldır + Yükleme iptal edildi + Yükleme Hatası + Ses yükleme başarısız: %1$s + Sesli mesaj yüklenemedi + NIP-95 henüz sesli mesajlar için desteklenmiyor + %1$d%% çalışma süresi + Aktif Tor Motoru + Dahili sürümü veya Orbot'u kullanın + Kullanıcının sats alabileceği bir lightning adresi kurulu değil + %1$s kullanıcısının sat almak için tanımlanmış bir lightning adresi yok + Silinme Geçmişi + Silinme talebi gönderildi + Daha küçük dosya boyutlarında daha iyi kalite sunar ancak tüm cihazlar H.265 oynatmayı desteklemez. + H.265/HEVC Codec'i Kullan + Video indirme başladı… + Video Oynatıcı Düğmeleri + Video telefonun video galerisine kaydedildi + Sesli Gönderi + Derin + Tiz + Nötr + Yok + Sesli Yanıt + Cüzdan + Cashu cüzdanı (NIP-60) + Cüzdan bağlantı sağlayıcınız şu hatayı döndürdü: %1$s + Mint'leri düzenle + Gönderiler veya profiller, takip ettiklerinizden rapor aldığında uyarı mesajı gösterir + Raporlarda uyar + Web Yer İmi Ekle + Web Yer İmini Düzenle + Web Yer İmleri + Aklında ne var? + Egzersizler + Bir mesaj yazın… + Relay'e Yaz + Filtreler ve etkinlikler dahil bu relay'e gönderilen bayt miktarı + Zapler + + Yeniden adlandır + Kaydet diff --git a/commonsUI/src/commonMain/composeResources/values-tr/strings.xml b/commonsUI/src/commonMain/composeResources/values-tr/strings.xml index 7caac5576e..ede16ea163 100644 --- a/commonsUI/src/commonMain/composeResources/values-tr/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-tr/strings.xml @@ -1822,4 +1822,1219 @@ Kaynak: Sunucular: Aç + Hakkında & Yasal + Hesap Ayarları + Ekle + Blossom Sunucusu Ekle + NIP-96 Sunucusu Ekle + Etkinleştirildiğinde, Amethyst yayımladığınız etkinliklere bir NIP-89 istemci etiketi ekler. + Etkinliklerime istemci etiketi ekle + Bu içeriği göstermeden önce hassas içerik uyarısı ekler + Hassas İçerik + Herkese Açık Yer İşaretlerine Ekle + Metin düzeltmeleri ve ton değişiklikleri önermek için cihaz üzerindeki bir yapay zeka modeli kullanır. + Metin iyileştirmeleri öner + Gerçek zamanlı bildirimler için gelen kutusu relay'lerinize bağlantıları etkin tutar + + %1$d gelen kutusu relay'ine bağlandı + %1$d gelen kutusu relay'ine bağlandı + + + %1$d relay'e bağlandı + %1$d relay'e bağlandı + + Gelen kutusu relay'lerine bağlanılıyor… + Amethyst Bildirimleri Etkin + Gelen sesli ve görüntülü aramalar için bildirimler + Gelen aramalar + %1$s satranç meydan okumanızı kabul etti + Satranç oyunu etkinlikleri hakkında sizi bilgilendirir + Satranç + Satranç güncellemeleri + %1$s hareket etti — sıra sizde + Özel bir mesaj geldiğinde sizi bilgilendirir + Özel Mesajlar + Yeni mesajlar + Okundu İşaretle + Birisi sizi bir gönderide bahsettiğinde veya alıntıladığında bildirim alırsınız + %1$s sizi bahsetti + Bahsedilmeler + Yeni bahsedilmeler + Birisi gönderinize tepki verdiğinde bildirim alırsınız + %1$s gönderinize tepki verdi + şunun için: %1$s + Tepkiler + Yeni tepkiler + Birisi gönderinize yanıt verdiğinde bildirim alırsınız + Yanıtlar + Yeni yanıtlar + Yanıtla + Zamanlanmış bir gönderi yayımlandığında veya yayımlanamadığında bildirimler. + Zamanlanmış gönderiler + Birisi size zap gönderdiğinde bildirim alırsınız + %1$s sat + şunun için: %1$s + Kimden: %1$s + Alınan Zap'lar + Yeni zap'lar + Uygulama Ayarları + Tasdik + Tasdik Talebi + Tasdikçi Yetkinliği + Tasdikçi Tavsiyesi + Ses Görselleştirici + Yazarken veya gönderilmemiş metin içeren bir düzenleyiciden ayrılırken otomatik olarak taslak etkinliği kaydeder ve özel giden kutusu relay'lerinize gönderir. + Otomatik olarak taslak oluştur + Sürükleyici Kaydırma + Kaydırırken Gezinme Çubuklarını Gizle + Görsel Önizleme + Resimleri ve GIF'leri otomatik yükle + Video Oynatma + Videoları ve GIF'leri otomatik yükle + Profil Resmi + Profil resimlerini göster + URL Önizleme + URL önizlemelerini göster + Videoları Otomatik Oynat + Ekranda görünür olduğunda videoları otomatik oynat + AVIF'ten meta veri kaldırılamıyor: %1$s + Rozet Ver + Geri + Anahtarları Yedekle + Rozetler + Kimlik doğrulama başarısız oldu + Biyometri, bu telefonun sahibini doğrulayamadı + Biyometri, bu telefonun sahibini doğrulayamadı. Hata: %1$s + Engelle + Engellenen Relay'ler + Amethyst bu relay'lere hiçbir zaman bağlanmaz + Engellenmiş Kullanıcılar + Yeni Yer İşareti Listesi + Yer İşareti Listesi Meta Verisi + Yer işareti listesi meta verileri Nostr'daki herkes tarafından görülebilir. Yalnızca özel üyeleriniz şifrelenir. + Yer İmleri + Destekle + Alt Gezinme Çubuğu + Yayın Relay'leri + sendit.nosflare.com gibi notlarınızı diğer tüm relay'lere iletmede uzmanlaşmış relay'ler. Amethyst bu relay'i sizin tarafınızdan yapılan tüm yeni etkinliklere ekleyecektir + Tarayıcı + Favoriler + Açık web üzerinden yükleniyor. Tor'u kullanmak için dokun. + Tor üzerinden yükleniyor. Açık web'i kullanmak için dokun. + + %1$s, %2$d etkinlik + %1$s, %2$d etkinlik + + Resim yükleme başarısız + Seçilen resim yüklenemedi. Tekrar deneyin veya bir URL yapıştırın. + Takvim etkinliğini paylaş + Haritada aç + Bağlantıyı aç + Şu an devam ediyor + %1$s · %2$s bitiyor + + %1$d dakika içinde başlıyor + %1$d dakika içinde başlıyor + + Katıldığınız bir etkinlik başlamak üzereyken uyarı alın. + calendar_reminders + Takvim hatırlatıcıları + Takvim etkinliği + Katıldığınız bir etkinlik başlamak üzereyken bildirim gönderilir. + Hatırlatıcı gönder + + %1$d dak + %1$d dak + + Takvim hatırlatıcıları + Gün + Akış + Ay + Hafta + Kabul Et + Bluetooth + Kamera kapalı + Kamera açık + Ahize + Kapat + Gelen arama + Gelen görüntülü arama… + Gelen sesli arama… + Sesi Kapat + Aramalar + Devam eden arama bildirimi + Amethyst'in görüntülü arama başlatabilmesi için kamera ve mikrofon erişimine ihtiyacı var. Lütfen uygulama ayarlarından etkinleştirin. + Amethyst'in sesli arama başlatabilmesi için mikrofon erişimine ihtiyacı var. Lütfen uygulama ayarlarından etkinleştirin. + Reddet + Arama Ayarları + Hoparlör + Sesi Aç + %1$s ile arama + %1$s'in yanıtında geri çağırma URL'si bulunamadı + Vazgeç + Cashu Token'ı + Mint kontrol ediliyor… + Cashu kullanılamadı + Mint şu hata mesajını döndürdü: %1$s + Alınan + Gönderilen + Eşleşen mint'ler + + +%1$d daha fazla + +%1$d daha fazla + + Popüler mint'ler + + %1$d diğer kişi tarafından önerildi + %1$d diğer kişi tarafından önerildi + + %1$s sat, %2$s'e taşındı. + Sistemde uyumlu Cashu cüzdanı bulunamadı + + %1$d bekleyen fatura + %1$d bekleyen fatura + + %1$s sat + %2$s sat'a kadar ücret ödensin mi? + %1$s'nin kind:38000 önerisi için bir silme isteği yayınlayın. NIP-09'u destekleyen relay'ler bunu kaldıracaktır. + %2$s kanıt içinde %1$s sats kurtarıldı. + Cashu Alındı + %1$s sat cüzdanınıza gönderildi. (Ücretler: %2$s sat) + + Kullanmadığınız %1$d mint'te tutulan fonlar + Kullanmadığınız %1$d mint'te tutulan fonlar + + Faturanın ödenmesi bekleniyor… + + %1$d mint + %1$d mint + + Yayını durdur + Cihaza yayınla + Çocuk Güvenliği Standartları + Aksesuar + Sanat + Kitaplar + Giyim + Koleksiyon + El Sanatları + Elektronik + Fitness + Yiyecek + Mobilya + Ev + Çeşitli + Ofis + Diğer + Evcil Hayvanlar + Spor + Günlük + Aylık + Tek seferlik + Haftalık + %2$s üzerinden %1$s ödensin mi? + Bu fatura %1$s üzerinden ödensin mi? + Borç servisi ödemeyi tamamlamadı. + Bu teklif için geçerli bir miktar girin. + Fatura isteniyor… + Bu gönderinin tüm tepkilerini kapat + Kapalı + Topluluklar + Taslak %1$d bayttır; bu topluluk bu türü en fazla %2$d bayt ile sınırlandırmaktadır. + Taslak %1$d bayttır; bu topluluk etkinlikleri en fazla %2$d bayt ile sınırlandırmaktadır. + Bugün bu türden %1$d etkinlik paylaştınız (sınır: %2$d). + Oluşturma Ayarları + Varsayılan port 9050'dir + Bağlı Relay'ler + Kullanılmakta olan relay'lerin güncel listesi + relay'e başarılı bağlantı yüzdesi + Her Zaman + Hiçbir Zaman + Ölçümsüz WiFi + Belge Ekle + Resim Ekle + Medya Ekle + Video Ekle + Gizle + Uyar + Göster + Diyaloglar + Daha küçük dosya boyutu ve daha iyi oynatma uyumluluğu için animasyonlu GIF'i MP4 videoya dönüştürür. + GIF'i MP4'e Dönüştür + Not kimliği (@note1) panoya kopyalandı + Not metni panoya kopyalandı + Panoya kopyalandı + Yazarın @npub'ı panoya kopyalandı + Gizli anahtarımı kopyala + Panoya kopyala + "%1$s" Lightning Adresinden LNUrl oluşturulamadı. Kullanıcının kurulumunu kontrol edin + Yükleme sonrası indirilen dosya kontrol edilemedi: %1$s + Yüklenen medya sunucudan indirilemedi + %1$s'den fatura alınamadı: %2$s + Sıkıştırılmış dosya açılamadı + Cüzdan bulunamadı + Amethyst, Nostr Wallet Connect (NWC) destekleyen herhangi bir cüzdan uygulaması bulamadı. +\n\nYapabilecekleriniz: +\n\t1. NWC Desteğini Doğrulayın: Tercih ettiğiniz cüzdan uygulamasının Nostr Wallet Connect ile uyumlu olup olmadığını iki kez kontrol edin. +\n\t2. Bağlantı Oluşturun: Cüzdan uygulamanıza gidin ve yeni bir NWC bağlantısı oluşturun. +\n\t3. Amethyst'e Bağlayın: Cüzdanınız genellikle size üç seçenek sunar: +\n\t\t3.1 Otomatik Bağlantı: Amethyst'i otomatik olarak açıp bağlamak için bir düğme. Öyleyse o düğmeye tıklayın, Amethyst'i açın ve yeni ekranda kaydet'e basın. +\n\t\t3.2 Manuel Bağlantı: Doğrudan girmek için bu ekrandaki yapıştır simgesine tıklayabileceğiniz bir Bağlantı URI'si kopyalayın. +\n\t\t3.3 QR Kodu: Cüzdan, bu ekrandaki QR kodu düğmesiyle okuyabileceğiniz bir QR kodu oluşturur. + + Oluştur + g + Tehlike Bölgesi + Koyu + Açıklama + Herkese açık yap + Sohbetler + Topluluklar + Akış Algoritmaları + Takip Paketleri + Canlı Yayınlar + Pazar Yeri + Okumalar + DM Gelen Kutusu Relay'leri + DMs + Şu dilden çevirme + Burada gösterilen diller çevrilmeyecek. Bir dili kaldırıp tekrar çevrilmesini sağlamak için üzerine dokunun. + Telefona Kaydet + Video indiriliyor… + Taslak Not + Taslaklar + Hesaplar + Oluştur + Akışlar + Gezin + Sistem + Siz + + %1$d gün + %1$d gün + + + %1$d saat + %1$d saat + + + %1$d dakika + %1$d dakika + + + %1$d ay + %1$d ay + + + %1$d hafta + %1$d hafta + + + %1$d yıl + %1$d yıl + + Takvimi Düzenle + Takvim Etkinliğini Düzenle + Topluluğu Düzenle + Emoji paketini düzenle + Çalma listesini düzenle + Gönderiyi Düzenle + Özel emojiler relay'lerde şifrelenmiş olarak saklanır ve yalnızca size görünür. Genel emojiler gibi tepki menünüzde ve ":" otomatik tamamlamada görünürler. + Genel emojiler herkese görünür ve bu paket emoji listenizde olduğunda tepki menünüzde ve ":" otomatik tamamlama seçicisinde görünür. + Emojiler + Gizlilik için dosyaları yüklemeden önce şifreleyin. Bazı sunucular ücretsiz hesaplarda şifrelenmiş dosyaları kabul etmeyebilir. + Dosyaları şifrele + Kaybolan Sohbet + Hata + Fatura ödenemedi + Para çekilemedi + Ödeme açılamadı + Zap gönderilemedi + İmzalayıcı uygulama açılırken hata oluştu + İmzalayıcı uygulama bulunamadı. Uygulamanın kaldırılmamış olduğunu kontrol edin + Hata mesajı ayrıştırılırken hata oluştu + %1$s'den JSON ayrıştırılırken hata oluştu. Kullanıcının lightning kurulumunu kontrol edin + Alıcının sunucularından fatura alınamadı + Tarayıcıda aç + Bu video oynatılamıyor + Codec veya format bu cihazda desteklenmiyor (%1$s). Tarayıcınızda açmayı deneyin. + Hatalar + Relay Senkronizasyonu + sizden etkinlikler + size etkinlikler + AMRAP + Devre + Bisiklet + Diyet + EMOM + Oruç + Doğa yürüyüşü + Meditasyon + Kürek çekme + Koşu + Kuvvet + Yüzme + Yürüyüş + Yoga + Genişlet + Son Kullanma Tarihi + Relay ayarlarını dışa aktar + Silme başarısız oldu: %1$s + Özel anahtarınız şifrelenemedi + Resim galeriye kaydedilemedi + PDF kaydedilemedi + Video kaydedilemedi + Birçok sunucu ücretsiz hesaplarda şifrelenmiş dosyaları kabul etmemektedir. Şifreleme olmadan yeniden deneyebilirsiniz. + Şifreli yükleme başarısız oldu + Yükleme hatası: %1$s + Medya yüklenemedi + %1$s'e yükleme başarısız oldu: %2$s + Favorilere ekle + Açık web üzerinden yüklenir. + Tor üzerinden yüklenir. + Son kullanılan + Favorilerden kaldır + O uygulama henüz yüklenmedi. Bir süre sonra tekrar dene. + Favori uygulamalar + Favori Akış Algoritmaları + Ödeme yapıldı + relay'lere yayımlandı + Dosya yüklendi + Favori Relay Akışları + Küresel akışlarını görmek için sık sık gittiğiniz relay'ler + Topluluklar + Akış Algoritmaları + Akışlar + Etiketler + İlgi Kümeleri + Listeler + Konumlar + Relay'ler + Dosya Sunucusu + Bu dosyayı yüklemek için bir sunucu seçin + Tanımadığınız kişilerden 5 veya daha fazla kez birebir aynı şekilde paylaşılan gönderileri gizler + İstenmeyen içeriği filtrele + Takip Et + Geri takip et + Tüm favori akış algoritmaları + Çevremdekiler + Küratörlü + Global + Varsayılan Takip Listesi + Tüm Takipler + Tüm Kullanıcı Takipleri + Benimkiler + Sessize Alma Listesi + Yeni Takip Paketi + Takip Paketini Düzenle + Takip paketi meta verileri Nostr'daki herkes tarafından görülebilir ve yeni kullanıcılar için başlangıç kiti olarak birçok web sitesinde sıkça yayımlanır. + Takip Paketi Meta Verileri + Takip Paketleri + Yeni Takip Listesi + Listeyi Düzenle + Profil Galeri Stili + Galeri stilini seçin + Klasik + Modern + Yalnızca Konuma Özel Gönderi + Yalnızca konumu takip edenler görecektir. Genel takipçileriniz görmeyecektir. + %2$s sats hedefinin %1$s'i finanse edildi + s + Bu içerik değişti. Yazar değişikliği görmemiş veya onaylamamış olabilir + Bu ne anlama geliyor? + Bu içerik gönderi tarihinden bu yana değişmedi + Merhaba %1$s, bu hâlâ mevcut mu? + Gizli Kelimeler + Topluluk bir NIP-9B kural belgesi yayımladığında ve bir etkinlik bunu karşılamadığında, topluluk akışlarından o gönderiyi düşürür. Topluluğun yapılandırılmış kuralı yoksa hiçbir etkisi olmaz. + Topluluk kurallarını ihlal eden gönderileri gizle + Şifreyi Gizle + %1$s yükleniyor (%3$d içinden %2$d) + Her Şey + Hatalı İstek - Sunucu isteği işleyemiyor veya işlemeyecek. + Yetkisiz - Kullanıcının geçerli kimlik doğrulama bilgileri yok + Ödeme Gerekli - Sunucu isteği tamamlamak için ödeme gerektiriyor + Yasak - Kullanıcının isteği yapmak için erişim hakları yok + Bulunamadı - Sunucu istenen adresi bulamıyor + Yönteme İzin Verilmiyor - Sunucu istek yöntemini destekliyor ancak hedef kaynağı desteklemiyor + Kabul Edilemez - Sunucu isteği karşılayan hiçbir içerik bulamıyor. + Proxy Kimlik Doğrulaması Gerekli - Kullanıcının geçerli kimlik doğrulama bilgileri yok + İstek Zaman Aşımı - Sunucu başka birini beklerken zaman aşımına uğradı + Çakışma - Sunucu kaynakla bir çakışma olduğu için isteği yerine getiremiyor + Kaldırıldı - İstenen içerik sunucudan kalıcı olarak silindi ve yeniden yüklenmeyecek + Uzunluk Gerekli - Sunucu tanımlı bir değer gerektirdiği için isteği reddediyor + Ön Koşul Başarısız - Sunucunun karşılayamadığı başlık alanlarındaki istek ön koşulları + Yük Çok Büyük - İstek sunucunun tanımlı sınırlarından daha büyük ve sunucu işlemeyi reddediyor + URI Çok Uzun - İstemci tarafından istenen URL sunucunun işleyebileceğinden çok uzun. + Desteklenmeyen Medya Türü - İstek, sunucunun desteklemediği bir medya biçimi kullanıyor + Aralık Karşılanamaz - Sunucu isteğin Range başlık alanında belirtilen değeri yerine getiremiyor. + Beklenti Başarısız - Sunucu Expect istek başlık alanında belirtilen gereksinimleri karşılayamıyor + Yükseltme Gerekli - İstemci farklı bir protokole yükseltme yapmadıkça sunucu mevcut protokolü kullanarak isteği işlemeyi reddediyor. + Dahili Sunucu Hatası - Sunucu beklenmedik bir hatayla karşılaştı ve isteği tamamlayamıyor + Uygulanmadı - Sunucu isteği yerine getiremiyor veya istek yöntemini tanımıyor + Hatalı Ağ Geçidi - Sunucu ağ geçidi olarak davranıyor ve ana bilgisayardan geçersiz yanıt aldı + Hizmet Kullanılamıyor - Bu genellikle sunucu aşırı yüklendiğinde veya bakım için kapalı olduğunda gerçekleşir + Ağ Geçidi Zaman Aşımı - Sunucu ağ geçidi veya proxy olarak davranıyordu ve yanıt beklerken zaman aşımına uğradı + HTTP Sürümü Desteklenmiyor - Sunucu istekteki HTTP sürümünü desteklemiyor + Varyant da Müzakere Ediyor - Sunucuda dahili yapılandırma hatası var + Yetersiz Depolama - Sunucu isteği başarıyla işlemek için yeterli depolamaya sahip değil + Döngü Algılandı - Sunucu isteği işlerken sonsuz bir döngü algılıyor + Ağ Kimlik Doğrulaması Gerekli - İstemcinin ağa erişmek için kimlik doğrulaması yapması gerekiyor + İllegal Davranış + Resim galeriye kaydedildi + Taklit Etme + Gelen Kutusu Relay'leri + %2$s'den gelen fatura tutarı hatalı (%1$s sat). %3$s olması gerekirdi + İndeksleyici Relay'leri + purplepag.es gibi herkesin meta verilerini ve relay listelerini barındırmada uzmanlaşmış relay'ler. Amethyst, listelerinizde olmayan kullanıcıları bulmak için bu relay'leri kullanacaktır. + Yeni İlgi Seti + Yeniden adlandır + Hashtag Setleri + Geçersiz Anahtar + Geçersiz anahtar: %1$s + Geçersiz adres + Amethyst açmak için bir URI aldı ancak bu URI geçersizdi: %1$s + Taslak bir notu alıntılamak mümkün değildir + Taslak bir nota tepki vermek mümkün değildir + Taslak bir nota yanıt vermek mümkün değildir + Taslak bir nota zap atmak mümkün değildir + Anahtar gerekiyor + KeyPackage Relay'leri + MLS KeyPackage'larınızın yayınlandığı relay'ler (MIP-00). Diğer kullanıcılar sizi Marmot grup sohbetlerine davet etmek için bu KeyPackage'ları alır. KeyPackage etkinliklerini sizden kabul eden ve genel okumaya izin veren 1–3 relay ekleyin. + KeyPackages + Kabul Edilen Rozet Seti + Macera Prologu + Macera Okuması + Macera Sahnesi + Uygulama Önerileri + Randevu + Uygulamalar + Randevu RSVP + Ses Başlığı + Ses Parçası + Oluşturulan Podcast'ler + Rozet Ödülleri + Rozet Tanımları + Blob Verisi + Blob Başlıkları + Engellenen Relay'ler + Bloglar + Blossom Auth + Blossom Sunucuları + Yer İşareti Listesi + Yayın Relay'leri + Takvim + Kanal Tanımı + Kanal Mesaj Gizle + Kanal Listesi + Kanal Mesajı + Kanal Meta Verisi + Kanal Kullanıcı Sessizleştir + Satranç Auth + Satranç Meydan Okumaları + Satranç Beraberlik Teklifi + Satranç Oyunu Kabul + Satranç Oyunu Sonu + Satranç Oyunları + Satranç Hamlesi + İlanlar + Yorumlar + Topluluk Tanımı + Topluluk Listesi + Topluluk Gönderisi + Kişi Kartı + Günlük Randevu + Silmeler + DM Dosyası + DM Mesajı + DM Relay'leri + Taslaklar + DVM İçerik İsteği + DVM İçerik Yanıtı + DVM Durumu + DVM Kullanıcı İsteği + DVM Kullanıcı Yanıtı + Düzenlemeler + Emoji Paketi Listesi + Emoji Paketleri + Geçici Sohbet + Geçici Sohbet Odaları + Favori Podcast'ler + Favori Relay'ler + Dosya Başlıkları + Dosya Sunucuları + Takip Listesi + Takip Paketleri + Geohash Takipleri + GiftWrap'ler + Git Issue + Git Patch + Git Reply + Git Repo + Hashtag Takipleri + Öne Çıkanlar + Http Auth + Dizin Relay Listesi + Canlı Sohbetler + Canlı Yayınlar + Tıbbi Veri + Toplantı Odası + Toplantı Alanı + Müzik Çalma Listesi + Müzik Parçası + Sessizlik Listesi + Adlandırılmış Yer İşaretleri + Nests Sunucuları + NIP + NIP-04 DMs + NNS + Nostr Bağlantısı + Notlar + NWC İsteği + NWC Yanıtı + Eski Yer İşareti Listesi + OTS + Giden Kutsu Relay'leri + PayTo + Kişi Listeleri + Resimler + Sabitlemeler + Podcast Bölümü + Podcast Programı + Anket + Anket Yanıtı + Özel Relay'ler + Özel Zaps + Profil + Profil Rozetleri + Profil Galerisi + Proxy Relay'ler + Genel Mesaj + Tepkiler + Relay Kimlik Doğrulama + Relay Keşfi + Relay Monitör Duyurusu + Relay Kümesi + Raporlar + Yeniden Paylaşımlar + Yeniden Paylaşımlar (16) + Oda Varlığı + Mühürler + Arama Relay'leri + Shorts + Shorts (Repl) + Torrent Yorumları + Torrentler + Güvenilen Sağlayıcılar + Güvenilen Relay'ler + Kullanıcı Silme + Kullanıcı Ayarları + Kullanıcı Durumu + Video + Video (Repl) + Sesli Mesaj + Sesli Yanıt + WakeUp + Web Yer İşareti + Wiki + Egzersizler + Zap Hedefleri + Zap Anketi + Zap İsteği + Zaps + Bilinen + Dil Görüntüleme Tercihleri + Her çevrilen dil çifti için önce hangi dilin gösterileceğini seçin. + %1$s önce görüldü + Az önce görüldü + Hiç görülmedi + %1$s tarihinde görüldü (%2$s önce) + Ayrıl + Açık + Canlı Yayınlar + Yerel Relay'ler + Bu cihazda çalışan relay'lerin listesi. + Gönderileri desteklemek için bir Gizli Anahtarla giriş yap + Bir genel anahtar kullanıyorsunuz ve genel anahtarlar salt okunurdur. Takip edebilmek için özel anahtarla giriş yapın + Bir genel anahtar kullanıyorsunuz ve genel anahtarlar salt okunurdur. Bir kelime veya cümleyi gizleyebilmek için özel anahtarla giriş yapın + Yanıtlamak için bir Gizli Anahtarla giriş yap + Zap göndermek için bir Gizli Anahtarla giriş yap + Bir genel anahtar kullanıyorsunuz ve genel anahtarlar salt okunurdur. Bir kelime veya cümleyi gösterebilmek için özel anahtarla giriş yapın + Bir genel anahtar kullanıyorsunuz ve genel anahtarlar salt okunurdur. Etkinlikleri imzalayabilmek için özel anahtarla giriş yapın + Bir genel anahtar kullanıyorsunuz ve genel anahtarlar salt okunurdur. Takibi bırakabilmek için özel anahtarla giriş yapın + Bir genel anahtar kullanıyorsunuz ve genel anahtarlar salt okunurdur. Yükleme yapabilmek için özel anahtarla giriş yapın + Gönderileri beğenmek için bir Gizli Anahtarla giriş yap + Videolar + d + Emoji Paketlerim + %1$s ekleniyor… + Yönetici ayrıcalıkları verildi + Yönetici ayrıcalıkları iptal edildi + %1$s eklenemedi: %2$s + Grup oluşturulamadı: %1$s + Yönetici ayrıcalığı verilemedi: %1$s + Gruptan ayrılınamadı: %1$s + Üye kaldırılamadı: %1$s + Yönetici ayrıcalığı iptal edilemedi: %1$s + Güncellenemedi: %1$s + MLS Grubu + Grup bilgisi güncellendi + + %1$d üye + %1$d üye + + Üye kaldırıldı + + %1$d mesaj + %1$d mesaj + + Bu grubun üyesi değilsiniz + bilinmeyen hata + Medya eklendi + Medya Profil Galerinize eklendi + Medya indirme başladı… + Medya Sunucuları + Medya NIP-95 için çok büyük + Önce mesajın alıcısını girin + Yüklenemiyor + Konu + Meta veri kaldırılamadı + Medyadan özel meta veri kaldırılamadı. Yükleme iptal edildi. + Yer imleri başarıyla taşındı + Lightning kurulumu eksik + Daha Fazla Seçenek + Özele Taşı + Herkese Açığa Taşı + Kapak görseli yükle + Bu çalma listesi için kapak resmi olarak kare bir görsel seçin. + + +%1$d daha fazla parça + +%1$d daha fazla parça + + + %1$d parça + %1$d parça + + + %1$d parça + %1$d parça + + Kapak yükleniyor ve yayınlanıyor. Ekrandan ayrılsanız bile bu işlem devam edecektir. + Ses dosyası yükle + MP3, WAV veya FLAC seçin. Kaydettiğinizde medya sunucunuza yüklenecektir. + Kapak görseli yükle + Bu parça için kapak resmi olarak kare bir görsel seçin. + Kapak ve ses yükleniyor, yayınlanıyor. Ekrandan ayrılsanız bile bu işlem devam edecektir. + Ses açık. Sessize almak için tıklayın + Sessize alındı. Sesi açmak için tıklayın + Listelerim + Bir isim gereklidir + %1$dms + Namecoin Ayarları + Kimlik + Ortak anahtarını oku + Mesajlaşma + Diğer nApplet'lerle mesaj alışverişi yap + Klavye eylemleri + Klavye kısayollarını bağla + Bildirimler + Sana bildirim göster + relay'ler + Etkinliklerini oku, imzala ve yayımla + Ağ + Web ve Blossom kaynaklarını getir + Depolama + Kendi özel depolaması + Tema + Uygulamanın renklerine uy + Yüklemeler + Medya sunucuna dosya yükle + Ödemeler + Lightning faturalarını öde + Bu nApplet ortak anahtarını okumak istiyor. + Bu nApplet profilini ve hesap verilerini okumak istiyor. + Bu nApplet sana bildirim göstermek istiyor. + + Bu nApplet %1$d sat için bir Lightning faturası ödemek istiyor. + Bu nApplet %1$d sat için bir Lightning faturası ödemek istiyor. + + Bu nApplet senin adına kind %1$d türünde bir etkinlik imzalayıp yayımlamak istiyor. + Bu nApplet senin adına şifreli bir etkinlik göndermek istiyor. + Bu nApplet senin adına kind %1$d türünde bir etkinlik imzalayıp yayımlamak istiyor: + Bu nApplet relay'lerinden etkinlikleri okumak istiyor. + Bu nApplet bir web kaynağı getirmek istiyor. + Bu site Nostr anahtarınla kind %1$d türünde bir etkinlik imzalamak istiyor. + Bu nApplet kendi özel depolamasını kullanmak istiyor. + Bu nApplet medya sunucuna dosya yüklemek istiyor. + nApplet %1$s… + nApplets + Mesaj gönderilemedi + Bu konuşmacıyı sustur + Bu konuşmacıyı geri yükle + Ayrıl + Oda kapalı olarak işaretlenemedi. Yine de ayrılıyorum — oda otomatik kapanacak. + + %1$d dinleyici + %1$d dinleyici + + Eli indir + Mikrofonu kapat + Mikrofonu aç + Sessize al + Nest sunucu listeniz kaydedilemedi. Tekrar deneyin. + Nest — Canlı + Nests + Oda açıkken ses çalmayı sürdürür. + Nest bağlandı + Durdur + Geri dönmek için dokun. + Takip et + Sessize al + Takibi bırak + Sesi aç + Nest'ten ayrıldı + dinleyici olarak katıldı + sahneye çıktı + elini kaldırdı + konuşuyor + El kaldır + Sesi aç + Nests + Diğer istemcilerin tercihinizi okuyabilmesi için kind-10112 değiştirilebilir olay olarak kaydedilir. + Sunucularınız + Tek dokunuşla listenize ekleyebileceğiniz yerleşik öneriler. + Önerilen sunucular + Nest sunucuları + asla + Yeni Rozet + Yeni Takvim + Yeni Takvim Etkinliği + Yeni Topluluk + Moderatörler + Relay'ler + Yasaklı kullanıcılar + Topluluk yorumu (1111) + Uzun biçimli makale (30023) + Fotoğraf gönderisi (20) + Kısa metin (1) + Kısa video (22) + Video gönderisi (21) + İzin verilen etkinlik türleri + Genel maksimum etkinlik boyutu (isteğe bağlı) + Doğrulanabilir kurallar (isteğe bağlı) + Web-of-trust kapısı (isteğe bağlı) + Yeni emoji paketi + Yeni Hedef + Yeni Makale + Yeni çalma listesi + Yeni müzik parçası + Yeni Ürün + Yeni İstekler + Yeni Threadler + Yeni Egzersiz + + %1$d varlık paketlendi + %1$d varlık paketlendi + + Blossom uygulamaları bulunamadı. Lütfen bu dosyayı görüntülemek için yerel bir Blossom uygulaması yükleyin + Blossom bağlantıları açılamıyor + Bu cihazda kamera uygulaması bulunamadı + Lightning Adresi ayarlanmamış + Bu ödemeyi işleyecek uygulama bulunamadı. Lütfen uyumlu bir cüzdan yükleyin. + %1$s ödemelerini işleyecek uygulama yüklü değil. Lütfen uyumlu bir cüzdan yükleyin. + Bu kullanıcı için önceden seçilmiş tepki türü yok. Değiştirmek için kalp düğmesine uzun basın + Tepki kurulumu yok + Lightning faturası ödemek için cüzdan bulunamadı. Lütfen zap kullanmak için bir Lightning cüzdanı yükleyin + Lightning faturası ödemek için cüzdan bulunamadı (Hata: %1$s). Lütfen zap kullanmak için bir Lightning cüzdanı yükleyin + Zap miktarı belirlenmedi. Değiştirmek için uzun basılı tutun + Bildirimler + Kategoriler + Teslim + Uygulama içi görüntüleme + şimdi + Nowhere Art + Nowhere Drop + Nowhere Event + Nowhere Forum + Nowhere Fundraiser + Nowhere site + Nowhere Message + Nowhere Petition + Nowhere Store + nSites + Çıplaklık + Olay referansı oluşturulamıyor + Notta alıcı pubkey'i yok + Nutzap'lar herkese açıktır ve bu özel notu ifşa eder. Bunun yerine bir Lightning zap kullanın. + Nutzap başarısız oldu + + %1$s sats gönder, %2$d yol + %1$s sats gönder, %2$d yol + + Bitcoin zinciri arka ucu yapılandırılmamış + İşlem yayınlanamadı + İşlem oluşturulamadı + Bitcoin bakiyeniz yüklenemedi + Ödeme gönderildi, ancak zap makbuzu yayımlanamadı + + Ödeme gönderildi (%2$d makbuzdan %1$d tanesi yayımlandı), ancak bir sonraki makbuz yayımlanamadı + Ödeme gönderildi (%2$d makbuzdan %1$d tanesi yayımlandı), ancak bir sonraki makbuz yayımlanamadı + + Bir alıcı payı toz sınırının altında + İşlem imzalanamadı + ~10 dak + ~30 dak + ~1 sa + Hızlı + Normal + Yavaş + %1$s · %2$s sat/vB · %3$s + + %1$d alıcıya bölün + %1$d alıcıya bölün + + + %1$d yalnızca Lightning adresli alıcı atlanıyor — zincir üstü işlem için Nostr pubkey gereklidir. + %1$d yalnızca Lightning adresli alıcı atlanıyor — zincir üstü işlem için Nostr pubkey gereklidir. + + + Bu notun %1$d yollu zap bölünmesini kullan + Bu notun %1$d yollu zap bölünmesini kullan + + yayınlanıyor + işlem oluşturuluyor + bakiye yükleniyor + makbuz yayımlanıyor + imzalanıyor + Bu tür anketlerde kullanıcı başına yalnızca bir oy kullanılabilir + Bu gönderinin tüm tepkilerini aç + Açık + Orbot Socks Portu + Bitcoin Gezgini (OTS) + Bu gönderinin %1$s tarihinden önce imzalandığına dair kanıt var. Kanıt, o tarih ve saatte Bitcoin blok zincirine işlendi. + Zaman Damgası Kanıtı + Giden Kutusu Relay'leri + Parola gereklidir + Duraklat + Öde + %1$s'den mesaj + Ödeme Hedefleri + Farklı ağlar için ödeme adresleri ekleyin (ör. bitcoin, lightning, ethereum). + PDF İndirilenler/Amethyst klasörüne kaydedildi + Takip listesi meta verileri Nostr'daki herkes tarafından görülebilir. Yalnızca özel üyeleriniz şifrelenir. + Takip Listesi Meta Verileri + Fotoğraflar + Üste sabitle + Profile Sabitle + Oynat + + %1$d bölüm + %1$d bölüm + + Anket yazarları kendi anketlerinde oy kullanamaz. + (0–100)% + Anket yeni oylar için kapatıldı + Çoklu seçim + Seçenek %1$s + Tek seçim + Oy kullanılamıyor + Anketler + Gönder + + Bu gönderide %1$d'den fazla hashtag var + Bu gönderide %1$d'den fazla hashtag var + + %1$s için Önizleme Kartı Görseli + Gizlilik Seçenekleri + Gizlilik Politikası + <Özel mesaj şifresi çözülemiyor>\n\n%1$s ve %2$s arasındaki özel/şifreli bir konuşmada adınız geçti. + DM Gelen Kutusu Relay'leri + Özel gelen kutunuz olarak kullanmak için 1–3 relay ekleyin. Diğerleri size DM göndermek için bu relay'leri kullanacaktır. DM Gelen Kutusu relay'leri herkesten mesaj kabul etmeli, ancak yalnızca sizin indirmenize izin vermelidir. İyi seçenekler:\n - inbox.nostr.wine (ücretli)\n - auth.nostr1.com (ücretsiz)\n - you.nostr1.com (kişisel relay'ler - ücretli) + Kullanıcı DM'leri bu relay'lerde alıyor + Özel Mesaj + Özel yap: notu yalnızca bildirilen kullanıcılara hediye sarmalıyla gönder + Özel bir nota verilen yanıtlar her zaman özel kalır + Görebilecekler + Özel Ana Sayfa Relay'leri + Taslaklar ve/veya uygulama ayarları gibi başka kimsenin göremediği etkinlikleri depolamak için 1–3 relay ekleyin. İdeal olarak, bu relay'ler yerel olmalı veya her kullanıcının içeriğini indirmeden önce kimlik doğrulaması gerektirmelidir. + Küfür / Nefret dolu konuşma + Profil + Profil rozetleri + Uygulama Önerileri + Profil Rozetleri + Takipçi Akışı + Alınan Zap Akışı + Profil Arayüzü + profiller + Düzenleme Öner + Proxy Relay'leri + Uygulamanın akışlarınızı indirmek için kullanması gereken filter.nostr.wine gibi toplayıcı relay'ler. Bu, giden kutusu modelinin yerini alır ve uygulamanın yalnızca listelerinizdeki relay'lere bağlanmasını sağlar. + Herkese Açık Chat + Genel sohbetler Nostr'daki herkese görünürdür ve herkes + katılabilir. Belirli konular etrafında açık topluluklar için idealdirler. + Moderasyon, relay'lerindeki gönderilerin silinmesiyle kontrol edilebilir + Bu grubu barındıran 1–3 relay ekleyin. + Nostr istemcileri mesajları nereden indireceğini ve mesajlarınızı nereye göndereceğini öğrenmek için bu ayarı kullanır. + relay'ler + Genel Sohbet Meta Verisi + Genel Sohbetler + Genel Giden Kutusu/Ana Sayfa Relay'leri + Bu relay türü tüm içeriğinizi saklar. Amethyst gönderilerinizi buraya gönderecek ve diğerleri içeriğinizi bulmak için bu relay'leri kullanacaktır. 1–3 relay ekleyin. Kişisel relay'ler, ücretli relay'ler veya genel relay'ler olabilir. + Kullanıcı içeriğini bu relay'lere gönderiyor + Genel Mesaj + Genel Gelen Kutusu Relay'leri + Bu relay türü gönderilerinize gelen tüm yanıtları, yorumları, beğenileri ve zap'ları alır. Ücretli veya ücretsiz relay'ler olabilir. Relay operatörü tarafından belirlenen sınırlar, aldığınız bildirimleri iyi veya kötü yönde etkileyebilir. Örneğin, yorum spam saldırısına uğruyorsanız, ücretli relay'ler spam'i filtreleyebilir. 1–3 relay ekleyin. + Kullanıcı bu relay'lerde bildirimleri alıyor + Not Kimliği + Sil + Konuyu sustur + Paylaş + Tarayıcı Bağlantısını Paylaş + Konunun sesini aç + Tepki + Tepkiler + Tepki Satırı + Relay'den Oku + Filtreler ve etkinlikler dahil bu relay'den alınan bayt miktarı + Salt okunur kullanıcı + Sesli mesaj kaydetmek için tıklayıp basılı tutun + relay Sohbeti + relay sohbetleri, ana relay'leri tarafından kontrol edilen sohbet gruplarıdır. + Nostr'daki herkese görünürdür ve herkes katılabilir. + Belirli konular etrafında açık topluluklar için idealdirler. Bu grupların bir kısmı geçici niteliktedir + ve bu nedenle sohbet mesajları zamanla silinir + relay Sohbetleri + Etkinlikler + IP'ler + Türler + Kullanıcılar + Ayarlar + Relay Ayarları + giden kutusu listeleri + Relay'ler + Doldur & zap gönder + Zap gönder + %2$s'ye %1$s sat doldur ve %3$s'ye %4$s sat zap gönder · ücret ≈ %5$s sat + Kaldır + Herkese Açık Yer İşaretlerinden Kaldır + buraya yanıtlayın… + Bildir: + Kullanıcıyı Engelle ve Gizle + Silme İste + Silinme Talebi + Marmot durumu sıfırlanamadı: %1$s + Marmot Durumunu Sıfırla + Marmot durumu sıfırlandı. + Yeniden dene + Takvim listeleri + Takvimler + Satranç + Keşfet + Ana Sayfa + Takip Listesini İçe Aktar + Mesajlar + Çalma listeleri + Müzik + Bildirimler + Bölümler + Podcastler + Gönderiyi zamanla + Zamanlamayı iptal et + Zamanlanmış gönderiler, uygulamayı yeniden açana kadar yayımlanmayabilir. Bu hesap etkinken diğer hesapların zamanlanmış gönderileri tetiklenmeyecek. Güvenilir arka plan zamanlaması için Ayarlar → Arayüz Tercihleri bölümünden her zaman açık seçeneğini etkinleştirin. + Zamanlanmış gönderiler, uygulamayı bir sonraki açışınıza kadar yayımlanmayabilir. Güvenilir arka plan zamanlaması için Ayarlar → Arayüz Tercihleri bölümünden her zaman açık seçeneğini etkinleştirin. + Zamanlanmış gönderiler + Şimdi gönder + %1$s · %2$s içinde + %1$s · %2$s önce + Yarın + Hata: %1$s + Not kimliği kopyalandı + + Çıkış yapıldı · %1$d zamanlanmış gönderi silindi + Çıkış yapıldı · %1$d zamanlanmış gönderi silindi + + Çıkış yapıldı + + Henüz yayımlanmamış %1$d zamanlanmış gönderiniz var. Çıkış yapmak bu gönderiyi kalıcı olarak silecektir. + Henüz yayımlanmamış %1$d zamanlanmış gönderiniz var. Çıkış yapmak bunları kalıcı olarak silecektir. + + Zamanlanmış gönderi başarısız oldu + Zamanlanmış gönderi yayımlandı + + %1$d relay'e + %1$d relay'e + + İptal edildi + Başarısız + Zamanlandı + Gönderiliyor… + Gönderildi + + · %1$d tanesi 1 saatte + · %1$d tanesi 1 saatte + + + %1$d sırada + %1$d sırada + + İyi seçenekler:\n%1$s + Arama Relay'leri + Arama Relay'leri + İçerik veya kullanıcı ararken kullanılacak relay'lerin listesi. Kullanılabilir seçenek yoksa etiketleme ve arama çalışmaz. NIP-50'yi uyguladıklarından emin olun. + aranabilir etkinlikler + Gizli anahtar (nsec) panoya kopyalandı + Henüz hiçbir kullanıcıyı engellemiyorsunuz. + Güvenlik Filtreleri + Gizli kelime yok. İçeren gönderileri gizlemek için aşağıya bir kelime ekleyin. + Engellenen içerik + Filtreleme tercihleri + Bu oturumda hiçbir hesap istenmeyen içerik olarak işaretlenmedi. + Gönder + Alınan tüm profil (kind 0) etkinliklerini yerel relay'inize gönderin + Profilleri yerel relay'e ilet + Bu alıcı için harcanabilir: %1$s sats + Ödeme başarısız + İşlem: %1$s + %1$s üzerinden ödeniyor… + Sunucu, yükleme sonrasında bir URL sağlamadı + Ayarlar + Sessize alınan konu yok + Sessize alınan konular + Görsel Olarak Paylaş + Görsel URL'si Olarak Paylaş + HLS Yükle + Paylaş veya Kaydet + Kısa videolar + Şifreli özel anahtar QR kodunu göster + Bildirim sekmesine doğrudan ve grup mesajlarını dahil et. Mesajları yalnızca Mesajlar sekmesinde tutmak için kapatın. + Mesajları Göster + Özel anahtar QR kodunu göster + İmza isteği reddedildi + İmzalayıcı uygulamanın bu işlemi yetkilendirdiğinden emin olun + Harici imzalayıcı, istek için beklenmedik bir yük döndürdü. Amethyst veya İmzalayıcıda bir hata olabilir. + İmzalayıcı bulunamadı + İmzalayıcı uygulaması kaldırıldı mı? İmzalayıcının kurulu olup olmadığını ve bu hesabın kayıtlı olup olmadığını kontrol edin. İmzalayıcı uygulaması değiştiyse çıkış yapıp tekrar giriş yapın. + %1$d saniye geri atla + %1$d saniye ileri atla + Uygulamalar + İstenmeyen + Bu relay'den gelen spam etkinliklerinin sayısı + Spam Gönderenler + İki bildirim sekmesi göster — Takip Edilenler (takip ettiğiniz kişiler) ve Herkes. Okunmamış göstergesi yalnızca takip ettiğiniz kişilerin etkinlikleri için yanar. + Bildirimleri Takip Edilenlere göre ayır + Yüklemeden önce desteklenen medya dosyalarından özel meta veriyi kaldırmayı dener + Özel meta veriyi kaldır + Health Connect'ten (Samsung Health, Google Fit, Fitbit, Garmin…) tamamlanan antrenmanları okur ve bunları gönderi olarak paylaşmayı önerir. İzin yalnızca bağlandığınızda istenir. + Paylaşılacak antrenmanlar öner + Sistem + Tema + Koyu, Açık veya Sistem teması + Bu mesaj %1$s sonra kaybolacak + + +%1$d\nyanıt + +%1$d\nyanıt + + Bugün + Özel + Kendinize özel ayar yapın + Varsayılan + IP adresinizi rastgele relay'lerden gizleyin + Orbot + Tam Gizlilik + IP adresinizi tüm bağlantılarda gizleyin + Dahili + Kapalı + Tor/Gizlilik Ön Ayarları + Aşağıdaki tüm ayarları hızlıca değiştirin + Medya Hariç Hepsi + IP adresinizi resimler ve videolar hariç her şeyden gizleyin + DM Relay'leri + DM gönderip almak için Tor'u zorla kullan + Resimler + Resimler yüklenirken Tor'u zorla kullan + Medya Yüklemeleri + İçerik yüklenirken Tor'u zorla kullan + Para İşlemleri + Zap, Lightning ve Cashu transferlerinde Tor'u zorla kullan + Güvenilmeyen Relay'ler + Giden/gelen relay'lerde Tor'u zorla kullan + Nostr Adres Doğrulama + NIP-05 adresleri doğrulanırken Tor'u zorla kullan + Onion URL/Relay'leri + Herhangi bir .onion URL'si için Tor kullan + Profil Resimleri + Profil resimleri yüklenirken Tor'u zorla kullan + Güvenilen Relay'ler + Listelerinizdeki tüm relay'lerde Tor'u zorla kullan + URL Önizlemeleri + URL önizlemeleri yüklenirken Tor'u zorla kullan + Videolar + Videolar yüklenirken Tor'u zorla kullan + Temel + Sunucu tarafından gerektiğinde Tor kullan + Dosya açılamadı + Dosyayı açmak ve indirmek için torrent uygulaması yüklü değil. + Etkinlik bir mıknatıs bağlantısı oluşturmak için yeterli bilgiye sahip değil + Etkinlikler gönderilirken takip edilen yayıncıyı kullan. Yayın sırasında canlı ilerlemeyi ve relay başına durumu gösterir. + Takip edilen yayınlar + Çeviri dili + İçeriğin çevrileceği dili seçin. + Çeviriler + Güvenilen Relay'ler + Tor bağlantısı gerektirmeyen güvendiğiniz relay'ler + Tam + Performans + Basitleştirilmiş + Arayüz Tercihleri + Arayüz Modu + Gönderi stilini seçin + Zap gönderilmeden önce lightning faturası oluşturulamadı. Alıcının lightning cüzdanı şu hatayı döndürdü: %1$s + Resim paylaşılamıyor, lütfen daha sonra tekrar deneyin… + Video paylaşılamıyor, lütfen daha sonra tekrar deneyin… + Yetkisiz Şifre Çözme + İmzalayıcı, bu işlemi gerçekleştirmek için gereken şifre çözme işlemine izin vermedi. İmzalayıcı uygulamanızda NIP-44 şifre çözmeyi etkinleştirin ve tekrar deneyin + Takip Etme + Sabitlemeyi kaldır + Profil Sabitlemesini Kaldır + Yükleme iptal edildi + Yükleme Hatası + Ses yükleme başarısız: %1$s + Sesli mesaj yüklenemedi + NIP-95 henüz sesli mesajlar için desteklenmiyor + %1$d%% çalışma süresi + Aktif Tor Motoru + Dahili sürümü veya Orbot'u kullanın + Kullanıcının sats alabileceği bir lightning adresi kurulu değil + %1$s kullanıcısının sat almak için tanımlanmış bir lightning adresi yok + Silinme Geçmişi + Silinme talebi gönderildi + Daha küçük dosya boyutlarında daha iyi kalite sunar ancak tüm cihazlar H.265 oynatmayı desteklemez. + H.265/HEVC Codec'i Kullan + Video indirme başladı… + Video Oynatıcı Düğmeleri + Video telefonun video galerisine kaydedildi + Sesli Gönderi + Derin + Tiz + Nötr + Yok + Sesli Yanıt + Cüzdan + Cashu cüzdanı (NIP-60) + Wallet Connect + Cüzdan bağlantı sağlayıcınız şu hatayı döndürdü: %1$s + Mint'leri düzenle + Gönderiler veya profiller, takip ettiklerinizden rapor aldığında uyarı mesajı gösterir + Raporlarda uyar + Web Yer İmi Ekle + Web Yer İmini Düzenle + Web Yer İmleri + Aklında ne var? + Egzersizler + Bir mesaj yazın… + Relay'e Yaz + Filtreler ve etkinlikler dahil bu relay'e gönderilen bayt miktarı + Zap + Zapler + + Yeniden adlandır + Kaydet diff --git a/commonsUI/src/commonMain/composeResources/values-uk-rUA/strings.xml b/commonsUI/src/commonMain/composeResources/values-uk-rUA/strings.xml index 63efc52244..637177b5df 100644 --- a/commonsUI/src/commonMain/composeResources/values-uk-rUA/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-uk-rUA/strings.xml @@ -1793,4 +1793,1230 @@ Базова URL-адреса Explorer API Оплатити рахунок від DVM Сплатити %1$s sats DVM + Про додаток і правові відомості + Налаштування акаунту + Додати + Додати сервер Blossom + Додати сервер NIP-96 + Коли увімкнено, Amethyst додає NIP-89 клієнтський тег до подій, які ви публікуєте. + Додавати клієнтський тег до моїх подій + Додає попередження про чутливий контент перед показом цього контенту + Чутливий контент + Додати в Публічні закладки + Використовує AI-модель на пристрої для пропозиції виправлень тексту та зміни тону. + Пропонувати вдосконалення тексту + Підтримує активні з'єднання з вашими inbox relay для сповіщень у реальному часі + + Підключено до %1$d inbox relay + Підключено до %1$d inbox relay + Підключено до %1$d inbox relay + Підключено до %1$d inbox relay + + + Підключено до %1$d relay + Підключено до %1$d relay + Підключено до %1$d relay + Підключено до %1$d relay + + Підключення до inbox relay… + Сповіщення Amethyst активні + Сповіщення про вхідні голосові та відеодзвінки + Вхідні дзвінки + %1$s прийняв(ла) ваш шаховий виклик + Сповіщає вас про події шахової гри + Шахи + Оновлення шахів + %1$s зробив(ла) хід — ваша черга + Сповіщення про вхідні повідомлення + Особисті повідомлення + Нові повідомлення + Позначити як прочитане + Сповіщає вас, коли хтось згадує або цитує вас у пості + %1$s згадав(ла) вас + Згадки + Нові згадки + Сповіщає вас, коли хтось реагує на ваш пост + %1$s відреагував(ла) на ваш пост + для %1$s + Реакції + Нові реакції + Сповіщає вас, коли хтось відповідає на ваш пост + Відповіді + Нові відповіді + Відповісти + Сповіщення про публікацію або помилку запланованого допису. + Заплановані дописи + Сповіщення про отримані запахи + %1$s sat + за %1$s + Від %1$s + Запи + Нові zap + Налаштування додатку + Атестація + Запит атестації + Компетентність атестора + Рекомендація атестора + Аудіовізуалізатор + Автоматично зберігає чернетку події, коли ви друкуєте або залишаєте редактор з ненадісленим текстом, і надсилає до ваших приватних вихідних relay. + Автоматично створювати чернетки + Розширена прокрутка + Приховати Nav панель під час прокручування + Попередній перегляд + Автоматично завантажувати зображення і GIF + Відтворення відео + Автоматично відтворювати відео та GIF-зображення + Зображення профілю + Показувати зображення профілю + Перегляд URL-адреси + Попередній перегляд URL + Автовідтворення відео + Автоматично відтворювати відео, коли вони видимі на екрані + Неможливо видалити метадані з AVIF: %1$s + Присвоїти значок + Назад + Резервне копіювання + Значки + Помилка входу + Не вдалося виконати біометрику для автентифікації власника цього телефону + Не вдалося виконати біометрику для автентифікації власника цього телефону. Помилка: %1$s + Заблокувати + Заблоковані relay-сервери + Amethyst ніколи не підключатиметься до цих relay-серверів + Заблоковані користувачі + Новий список закладок + Метадані списку закладок + Метадані списків закладок може бачити будь-хто в Nostr. Тільки ваші приватні елементи зашифровані. + Закладки + Просувати + Нижня навігаційна панель + Relay-сервери для розсилки + Relay-сервери, що спеціалізуються на поширенні ваших нотаток до всіх інших relay-серверів, наприклад sendit.nosflare.com. Amethyst додаватиме цей relay-сервер до всіх нових подій, створених вами + Браузер + Вибране + Завантаження через відкриту мережу. Торкніться, щоб використати Tor. + Завантаження через Tor. Торкніться, щоб використати відкриту мережу. + + %1$s, %2$d подія + %1$s, %2$d події + %1$s, %2$d подій + %1$s, %2$d подій + + Помилка завантаження зображення + Вибране зображення не вдалося завантажити. Спробуйте ще раз або вставте URL. + Поділитися подією календаря + Відкрити на картах + Відкрити посилання + Відбувається зараз + %1$s · закінчується %2$s + + Починається через %1$d хвилину + Починається через %1$d хвилини + Починається через %1$d хвилин + Починається через %1$d хвилин + + Сповіщення, коли подія, на яку ви зареєструвалися, ось-ось розпочнеться. + Нагадування календаря + Подія календаря + Сповіщення надходить, коли подія, на яку ви зареєструвалися, ось-ось розпочнеться. + Надсилати нагадування + + %1$d хв + %1$d хв + %1$d хв + %1$d хв + + Нагадування календаря + День + Стрічка + Місяць + Тиждень + Прийняти + Камера вимкнена + Камера увімкнена + Навушник + Завершити + Вхідний дзвінок + Вхідний відеодзвінок… + Вхідний голосовий дзвінок… + Вимкнути мікрофон + Дзвінки + Сповіщення про поточний дзвінок + Amethyst потребує доступу до камери та мікрофона для початку відеодзвінка. Будь ласка, увімкніть їх у налаштуваннях програми. + Amethyst потребує доступу до мікрофона для початку голосового дзвінка. Будь ласка, увімкніть його в налаштуваннях програми. + Відхилити + Налаштування дзвінків + Гучномовець + Увімкнути мікрофон + Дзвінок з %1$s + URL зворотного виклику не знайдено у відповіді %1$s + Скасувати + Cashu токен + Перевірка mint… + Не вдалося отримати Cashu + Mint надав таке повідомлення про помилку: %1$s + Отримано + Надіслано + Відповідні mints + + +%1$d ще + +%1$d ще + +%1$d ще + +%1$d ще + + Популярні mints + + Рекомендовано %1$d іншим + Рекомендовано %1$d іншими + Рекомендовано %1$d іншими + Рекомендовано %1$d іншими + + Переміщено %1$s sat до %2$s. + У системі не знайдено сумісний гаманець Cashu + + %1$d очікуючий інвойс + %1$d очікуючих інвойси + %1$d очікуючих інвойсів + %1$d очікуючих інвойси + + Сплатити %1$s sat + до %2$s sat комісії? + Опублікувати запит на видалення вашої kind:38000 рекомендації %1$s. Relay, які дотримуються NIP-09, видалять її. + Відновлено %1$s sats у %2$s підтвердженнях. + Отримано Cashu + %1$s sats були відправлені в ваш гаманець. (Fees: %2$s sats) + + Кошти зберігаються в %1$d mint, який ви не використовуєте + Кошти зберігаються в %1$d mint, які ви не використовуєте + Кошти зберігаються в %1$d mint, які ви не використовуєте + Кошти зберігаються в %1$d mint, які ви не використовуєте + + Очікування оплати інвойсу… + Зупинити трансляцію + Трансляція на пристрій + Стандарти безпеки дітей + Аксесуари + Мистецтво + Книги + Одяг + Колекційні елементи + Ремесла + Електроніка + Фітнес + Їжа + Меблі + Дім + Різне + Офіс + Інше + Домашні тварини + Спорт + Щодня + Щомісяця + Одноразово + Щотижня + Сплатити %1$s через %2$s? + Сплатити цей рахунок через %1$s? + Сервіс дебетування не завершив платіж. + Введіть дійсну суму для цього offer. + Запит рахунку… + Закрити всі реакції на цей допис + Закриті + Спільноти + Чернетка займає %1$d байт; ця спільнота обмежує цей kind до %2$d байт. + Чернетка займає %1$d байт; ця спільнота обмежує події до %2$d байт. + Ви вже опублікували %1$d подій цього kind сьогодні (ліміт %2$d). + Налаштування редактора + Стандартний порт — 9050 + Підключені relay-сервери + Поточний список використовуваних relay-серверів + Відсоток успішних підключень до relay + Завжди + Ніколи + WiFi без ліміту + Додати документ + Додати фото + Додати медіа + Додати відео + Приховати + Попереджати + Показати + Обговорення + Конвертує анімований GIF у відео MP4 для зменшення розміру файлу та кращої сумісності відтворення. + Конвертувати GIF у MP4 + ID запису (note1) скопійовано + Скопіювати текст + Скопійовано до буфера обміну + ID (npub) автора скопійовано + Скопіювати мій приватний ключ + Скопіювати в буфер + Не вдалося скласти LNUrl з Lightning адреси «%1$s». Перевірте налаштування користувача + Не вдалося перевірити завантажений файл після вивантаження: %1$s + Не вдалося завантажити завантажені медіафайли з сервера + Не вдалося отримати інвойс від %1$s: %2$s + Не вдалося відкрити стиснутий файл + Гаманець не знайдено + Amethyst не знайшов жодного гаманця, який підтримує Nostr Wallet Connect (NWC). +\n\nЩо можна зробити: +\n\t1. Перевірте підтримку NWC: переконайтеся, що ваш гаманець сумісний з Nostr Wallet Connect. +\n\t2. Створіть підключення: відкрийте гаманець і створіть нове NWC-підключення. +\n\t3. Прив'яжіть до Amethyst: зазвичай гаманець надає три варіанти: +\n\t\t3.1 Автоматичне підключення: кнопка для автоматичного відкриття та підключення до Amethyst. Якщо так — натисніть її, відкрийте Amethyst і збережіть налаштування на новому екрані. +\n\t\t3.2 Ручне підключення: URI підключення, який можна скопіювати та вставити за допомогою значка вставки на цьому екрані. +\n\t\t3.3 QR-код: гаманець створює QR-код, який можна зчитати за допомогою кнопки QR-коду на цьому екрані. + + Створити + дн + Небезпечна зона + Темна + Опис + Зробити публічним + Чати + Спільноти + Алгоритми стрічки + Пакети підписок + Живі трансляції + Торгівельний майданчик + Читання + Relay-сервери для вхідних DM + Не перекладати з + Мови, вказані тут, не перекладатимуться. Виберіть мову, щоб прибрати її зі списку та знову отримувати переклад. + Зберегти на телефон + Завантаження відео… + Чернетка нотатки + Чернетки + Акаунти + Створити + Стрічки + Навігація + Система + Ви + + %1$d день + %1$d дні + %1$d днів + %1$d дні + + + %1$d година + %1$d години + %1$d годин + %1$d години + + + %1$d хвилина + %1$d хвилини + %1$d хвилин + %1$d хвилини + + + %1$d місяць + %1$d місяці + %1$d місяців + %1$d місяці + + + %1$d тиждень + %1$d тижні + %1$d тижнів + %1$d тижні + + + %1$d рік + %1$d роки + %1$d років + %1$d роки + + Редагувати календар + Редагувати подію календаря + Редагувати спільноту + Редагувати пакет емодзі + Редагувати плейлист + Редагувати публікацію + Приватні емодзі зберігаються зашифровано на relay і видимі лише вам. Вони з'являються в меню реакцій та автодоповненні «:», як і публічні. + Публічні емодзі видимі всім і з'являються в меню реакцій та автодоповненні «:», коли цей пакет знаходиться у вашому списку емодзі. + Емодзі + Шифрувати файли перед вивантаженням для захисту конфіденційності. Деякі сервери можуть не приймати зашифровані файли на безкоштовних акаунтах. + Шифрувати файли + Тимчасовий чат + Помилка + Не вдалося сплатити рахунок + Не вдалося зняти + Не вдалося відкрити платіж + Не вдалося надіслати файл Zap + Помилка при відкритті додатка для входу + Додаток для входу не знайдено. Перевірте чи не було видалено додаток + Помилка при обробці повідомлення про помилку + Помилка розбору JSON від %1$s. Перевірте Lightning налаштування користувача + Не вдалося отримати рахунок з серверів отримувача + Відкрити у браузері + Неможливо відтворити це відео + Кодек або формат не підтримується на цьому пристрої (%1$s). Спробуйте відкрити у браузері. + Помилки + Синхронізація relay + події від вас + події до вас + Кругове тренування + Велоспорт + Дієта + Голодування + Туристичний похід + Медитація + Веслування + Біг + Силові вправи + Плавання + Ходьба + Йога + Розгорнути + Дата завершення + Експортувати налаштування relay-серверів + Не вдалося видалити: %1$s + Не вдалося зашифрувати ваш приватний ключ + Не вдалося зберегти фото + Не вдалося зберегти PDF + Не вдалося зберегти відео + Багато серверів не приймають зашифровані файли на безкоштовних акаунтах. Ви можете повторити спробу без шифрування. + Зашифроване вивантаження не вдалося + Помилка завантаження: %1$s + Не вдалося завантажити фото + Не вдалося завантажити на %1$s: %2$s + Додати до улюблених + Завантажується через відкриту мережу. + Завантажується через Tor. + Нещодавні + Видалити з улюблених + Цей застосунок ще не завантажено. Спробуйте ще раз за мить. + Улюблені застосунки + Улюблені алгоритми стрічки + Виконано платіж + Опубліковано на relay + Завантажено файл + Улюблені стрічки relay-серверів + Relay-сервери, на глобальні стрічки яких ви часто заходите + Спільноти + Алгоритми стрічки + Стрічки + Хештеги + Набори інтересів + Списки + Місця + Relay-сервери + Сервер для завантаження + Оберіть сервер для завантаження цього файлу + Приховує пости від незнайомців, які були абсолютно однаковими 5 або більше разів + Фільтрувати спам + Підписатися + Підписатися у відповідь + Усі улюблені алгоритми стрічки + Навколо мене + Підібрані + Глобально + Стандартний список підписок + Всі підписки + Усі підписки користувача + Мої + Список ігнорування + Новий пакет підписок + Редагувати Follow Pack + Метадані Follow Pack може бачити будь-хто у Nostr, і вони часто публікуються на багатьох сайтах як стартові набори для нових користувачів. + Метадані Follow Pack + Новий список підписок + Редагувати список + Стиль галереї профілю + Виберіть стиль галереї + Класичний + Сучасний + Публікація лише для цього місця + Її побачать лише підписники цього місця. Ваші звичайні підписники її не побачать. + %1$s зібрано з %2$s sats мети + год + Фото змінено. Автор міг не помітити зміну + Що це значить? + Фото не змінилося після публікації + Привіт, %1$s, це ще доступно? + Приховані слова + Виключає пости з лент спільноти, коли спільнота публікує документ правил NIP-9B і подія не відповідає їм. Не діє, якщо спільнота не має структурованих правил. + Приховувати пости, що порушують правила спільноти + Сховати пароль + Завантаження %1$s (%2$d із %3$d) + Все + Bad Request — сервер не може або не хоче обробити запит. + Unauthorized — користувач не має дійсних облікових даних для автентифікації + Payment Required — сервер вимагає оплату для виконання запиту + Forbidden — користувач не має прав доступу для виконання запиту + Not Found — сервер не може знайти запитану адресу + Method Not Allowed — сервер підтримує метод запиту, але не для цього ресурсу + Not Acceptable — сервер не знаходить вмісту, що задовольняє запит. + Proxy Authentication Required — користувач не має дійсних облікових даних для автентифікації + Request Timeout — сервер вичерпав час очікування + Conflict — сервер не може виконати запит через конфлікт з ресурсом + Gone — запитаний вміст було остаточно видалено з сервера і не буде відновлено + Length Required — сервер відхиляє запит, оскільки він вимагає визначеної довжини вмісту + Precondition Failed — сервер не виконує передумови запиту, вказані в полях заголовка + Payload Too Large — запит перевищує визначені межі сервера, і сервер відмовляється його обробляти + URI Too Long — URL, запитана клієнтом, надто довга для обробки сервером. + Unsupported Media Type — запит використовує формат медіа, який сервер не підтримує + Range Not Satisfiable — сервер не може виконати значення, вказане в полі заголовка Range запиту. + Expectation Failed — сервер не може виконати вимоги, вказані в полі заголовка Expect запиту + Upgrade Required — сервер відмовляється обробляти запит за поточним протоколом, якщо клієнт не перейде на інший протокол. + Internal Server Error — сервер зіткнувся з неочікуваною помилкою і не може виконати запит + Not Implemented — сервер не може виконати запит або не розпізнає метод запиту + Bad Gateway — сервер діє як шлюз і отримав недійсну відповідь від хоста + Service Unavailable — це часто відбувається, коли сервер перевантажений або проводить технічне обслуговування + Gateway Timeout — сервер діяв як шлюз або проксі та перевищив час очікування відповіді + HTTP Version Not Supported — сервер не підтримує версію HTTP, вказану в запиті + Variant Also Negotiates — на сервері виникла внутрішня помилка конфігурації + Insufficient Storage — у сервера недостатньо місця для успішної обробки запиту + Loop Detected — сервер виявив нескінченний цикл під час обробки запиту + Network Authentication Required — клієнт має пройти автентифікацію для доступу до мережі + Незаконні дії + Фото збережено до галереї + Видача себе за іншу особу + Relay для вхідних + Неправильна сума інвойсу (%1$s sats) від %2$s. Мало бути %3$s + Relay-сервери-індексатори + Relay-сервери, що спеціалізуються на зберіганні метаданих та списків relay-серверів усіх користувачів, наприклад purplepag.es. Amethyst використовуватиме ці relay-сервери для пошуку користувачів, яких немає у ваших списках. + Новий набір інтересів + Перейменувати + Набори хештегів + Некоректний ключ + Недійсний ключ: %1$s + Недійсна адреса + Amethyst отримав URI для відкриття, але цей URI був недійсним: %1$s + Неможливо процитувати чернетку нотатки + Неможливо відреагувати на чернетку нотатки + Неможливо відповісти на чернетку нотатки + Неможливо зробити zap на чернетку нотатки + Треба ввести ключ + Relay-сервери для KeyPackage + Relay-сервери, на яких публікуються ваші MLS KeyPackages (MIP-00). Інші користувачі завантажують ці KeyPackages, щоб запросити вас до групових чатів Marmot. Введіть від 1 до 3 relay-серверів, які приймають від вас події KeyPackage та дозволяють публічне читання. + Набір прийнятих бейджів + Пролог пригоди + Читання пригоди + Сцена пригоди + Рекомендації застосунків + Зустріч + Застосунки + RSVP зустрічі + Аудіо заголовок + Аудіо трек + Авторські подкасти + Нагороди бейджів + Визначення бейджів + Blob дані + Blob заголовки + Заблоковані Relays + Блоги + Список закладок + Календар + Визначення каналу + Приховати повідомлення каналу + Список каналів + Повідомлення каналу + Метадані каналу + Заглушити користувача каналу + Шахові виклики + Пропозиція нічиєї + Прийняття шахової партії + Кінець шахової партії + Шахові партії + Шаховий хід + Оголошення + Коментарі + Визначення спільноти + Список спільнот + Публікація спільноти + Контактна картка + Денна зустріч + Видалення + Файл особистого повідомлення + Особисте повідомлення + Чернетки + Редагування + Список наборів емодзі + Набори емодзі + Ефемерний чат + Ефемерні чат-кімнати + Улюблені подкасти + Улюблені Relays + Заголовки файлів + Файлові сервери + Підписки геохешу + Підписки хештегу + Виділення + Список індексних Relays + Живі чати + Живі трансляції + Медичні дані + Кімната нарад + Простір нарад + Музичний плейлист + Музичний трек + Список заглушених + Іменовані закладки + Нотатки + Старий список закладок + Списки людей + Зображення + Закріплення + Епізод подкасту + Подкаст-шоу + Голосування + Відповідь на голосування + Приватні relay + Приватні Zaps + Профіль + Бейджі профілю + Галерея профілю + Проксі relay + Публічне повідомлення + Реакції + Relay-автентифікація + Виявлення relay + Оголошення монітора relay + Набір relay + Звіти + Репости + Репости (16) + Присутність у кімнаті + Печатки + Пошукові relay + Коментарі до торрентів + Торренти + Довірені провайдери + Довірені relay + Видалення користувача + Налаштування користувача + Статус користувача + Відео + Відео (Repl) + Голос. повідомлення + Голосова відповідь + Веб-закладка + Тренування + Цілі Zap + Zap-голосування + Відомі + Налаштування відображення мови + Для кожної пари мов перекладу оберіть, яку мову показувати першою. + Востаннє бачено %1$s тому + Щойно в мережі + Не спостерігався + Востаннє бачено %1$s (%2$s тому) + Вийти + Світла + Прямі трансляції + Локальні relay-сервери + Список relay-серверів, що працюють на цьому пристрої. + Увійдіть з приватним ключем щоб просувати дописи + Ви використовуєте відкритий ключ, і відкриті ключі доступні лише для читання. Увійдіть за допомогою закритого ключа, щоб мати можливість стежити + Ви використовуєте відкритий ключ, і відкриті ключі доступні лише для читання. Увійдіть за допомогою закритого ключа, щоб мати можливість приховати слово або речення + Увійдіть з приватним ключем щоб відповісти + Увійдіть з приватним ключем щоб запати + Ви використовуєте відкритий ключ, і відкриті ключі доступні лише для читання. Увійдіть за допомогою закритого ключа, щоб мати можливість показати слово або речення + Ви використовуєте публічний ключ, а публічні ключі доступні лише для читання. Увійдіть за допомогою приватного ключа, щоб мати можливість підписувати події + Ви використовуєте відкритий ключ, і відкриті ключі доступні лише для читання. Увійдіть за допомогою закритого ключа, щоб мати можливість скасувати підписку + Ви використовуєте публічний ключ, а публічні ключі доступні лише для читання. Увійдіть за допомогою приватного ключа, щоб мати можливість завантажувати файли + Увійдіть з приватним ключем щоб лайкати дописи + Відео + хв + Мої пакети емодзі + Додаємо %1$s… + Права адміністратора надано + Права адміністратора відкликано + Не вдалося додати %1$s: %2$s + Не вдалося створити групу: %1$s + Не вдалося надати права адміністратора: %1$s + Не вдалося покинути групу: %1$s + Не вдалося видалити учасника: %1$s + Не вдалося відкликати права адміністратора: %1$s + Не вдалося оновити: %1$s + Інформацію про групу оновлено + + %1$d учасник + %1$d учасники + %1$d учасників + %1$d учасників + + Учасника видалено + + %1$d повідомлення + %1$d повідомлення + %1$d повідомлень + %1$d повідомлень + + Не є учасником цієї групи + невідома помилка + Медіа додано + Медіа додано до вашої галереї профілю + Завантаження медіа розпочато… + Медіасервери + Медіафайл занадто великий для NIP-95 + Спочатку введіть адресу отримувача повідомлення + Неможливо завантажити + Тема + Метадані не вдалося видалити + Не вдалося видалити приватні метадані з медіафайлу. Вивантаження скасовано. + Закладки успішно перенесено + Відсутнє налаштування Lightning + Більше опцій + Перемістити до приватних + Перемістити до публічних + Завантажити обкладинку + Виберіть квадратне зображення для обкладинки цього плейлисту. + + +%1$d додатковий трек + +%1$d додаткові треки + +%1$d додаткових треків + +%1$d додаткових треків + + + %1$d трек + %1$d треки + %1$d треків + %1$d треків + + + %1$d трек + %1$d треки + %1$d треків + %1$d треку + + Завантаження обкладинки і публікація. Процес продовжиться навіть якщо ви залишите екран. + Завантажити аудіофайл + Виберіть MP3, WAV або FLAC. Файл буде завантажено на ваш медіасервер після збереження. + Завантажити обкладинку + Виберіть квадратне зображення для обкладинки цього треку. + Завантаження обкладинки та аудіо і публікація. Процес продовжиться навіть якщо ви залишите екран. + Звук увімкнено. Натисніть, щоб вимкнути звук + Звук вимкнено. Натисніть, щоб увімкнути звук + Мої списки + Необхідно вказати ім'я + %1$dмс + Налаштування Namecoin + Ідентичність + Читати ваш публічний ключ + Обмін повідомленнями + Обмінюватися повідомленнями з іншими nApplets + Дії клавіатури + Прив'язати комбінації клавіш + Сповіщення + Показувати вам сповіщення + relay + Читати, підписувати та публікувати ваші події + Мережа + Отримувати веб- та Blossom-ресурси + Сховище + Власне приватне сховище + Тема + Відповідати кольорам вашого застосунку + Завантаження + Завантажувати файли на ваш медіасервер + Платежі + Оплачувати Lightning-інвойси + Цей nApplet хоче прочитати ваш публічний ключ. + Цей nApplet хоче прочитати ваш профіль і дані облікового запису. + Цей nApplet хоче показати вам сповіщення. + + Цей nApplet хоче оплатити Lightning-інвойс на %1$d sat. + Цей nApplet хоче оплатити Lightning-інвойс на %1$d sats. + Цей nApplet хоче оплатити Lightning-інвойс на %1$d sats. + Цей nApplet хоче оплатити Lightning-інвойс на %1$d sats. + + Цей nApplet хоче підписати та опублікувати подію kind:%1$d від вашого імені. + Цей nApplet хоче надіслати зашифровану подію від вашого імені. + Цей nApplet хоче підписати та опублікувати подію kind:%1$d від вашого імені: + Цей nApplet хоче читати події з ваших relay. + Цей nApplet хоче отримати веб-ресурс. + Цей сайт хоче підписати подію kind:%1$d за допомогою вашого ключа Nostr. + Цей nApplet хоче використовувати своє приватне сховище. + Цей nApplet хоче завантажити файл на ваш медіасервер. + Не вдалося надіслати повідомлення + Заглушити цього спікера + Відновити цього спікера + Вийти + Не вдалося позначити кімнату як закриту. Виходимо — кімната закриється автоматично. + + %1$d слухач + %1$d слухачі + %1$d слухачів + %1$d слухача + + Опустити руку + Вимкнути мікрофон + Увімкнути мікрофон + Вимкнути звук + Не вдалося зберегти список nest-серверів. Спробуйте ще раз. + Підтримує відтворення аудіо, поки кімната відкрита. + Nest підключено + Зупинити + Торкніться, щоб повернутися. + Стежити + Вимкнути звук + Не стежити + Увімкнути звук + покинув(-ла) nest + приєднався(-лась) як слухач + вийшов(-ла) на сцену + підняв(-ла) руку + говорить + Підняти руку + Увімкнути звук + Збережено як замінна подія kind:10112, щоб інші клієнти могли читати ваші налаштування. + Ваші сервери + Вбудовані пропозиції, які можна додати до списку одним дотиком. + Рекомендовані сервери + Nest-сервери + ніколи + Новий значок + Новий календар + Нова подія календаря + Нова спільнота + Модератори + Relay + Заблоковані користувачі + Коментар спільноти (1111) + Стаття у довгому форматі (30023) + Допис із зображенням (20) + Короткий текст (1) + Коротке відео (22) + Відеодопис (21) + Дозволені типи подій + Глобальний максимальний розмір події (необов'язково) + Перевірені правила (необов'язково) + Фільтр мережі довіри (необов'язково) + Новий пакет емодзі + Нова ціль + Нова стаття + Новий плейлист + Новий музичний трек + Новий продукт + Нові запити + Нові треди + Нове тренування + + %1$d актив у комплекті + %1$d активи у комплекті + %1$d активів у комплекті + %1$d актива у комплекті + + Blossom додатки не знайдено. Встановіть локальний Blossom додаток, щоб переглянути цей файл + Неможливо відкрити Blossom посилання + На цьому пристрої не знайдено застосунок камери + Lightning адресу не встановлено + Не знайдено програми для обробки цього платежу. Будь ласка, встановіть сумісний гаманець. + Не встановлено програми для обробки платежів %1$s. Будь ласка, встановіть сумісний гаманець. + Для цього користувача не вибрано жодного типу реакції. Довге натискання на кнопку серця, щоб змінити + Реакції не налаштовані + Не знайдено гаманців для оплати Lightning інвойсу. Встановіть Lightning гаманець для використання зап + Не знайдено гаманців для оплати Lightning інвойсу (Помилка: %1$s). Встановіть Lightning гаманець для використання зап + Не налаштовані запи. Натисніть та утримуйте для налаштування + Сповіщення + Категорії + Доставка + Відображення у додатку + зараз + Мистецтво Nowhere + Drop Nowhere + Подія Nowhere + Форум Nowhere + Збір коштів Nowhere + Сайт Nowhere + Повідомлення Nowhere + Петиція Nowhere + Магазин Nowhere + Нагота + Не вдалося створити посилання на event + Немає публічного ключа отримувача в нотатці + Nutzap є публічними та розкриють цю приватну нотатку. Натомість використайте Lightning zap. + Nutzap не вдався + + Надіслати %1$s sats, %2$d одержувачу + Надіслати %1$s sats, %2$d одержувачам + Надіслати %1$s sats, %2$d одержувачам + Надіслати %1$s sats, %2$d одержувачам + + Bitcoin chain бекенд не налаштовано + Не вдалося транслювати транзакцію + Не вдалося побудувати транзакцію + Не вдалося завантажити ваш Bitcoin баланс + Платіж надіслано, але квитанцію zap не вдалося опублікувати + + Платіж надіслано (%1$d з %2$d квитанцію опубліковано), але наступну квитанцію не вдалося опублікувати + Платіж надіслано (%1$d з %2$d квитанцій опубліковано), але наступну квитанцію не вдалося опублікувати + Платіж надіслано (%1$d з %2$d квитанцій опубліковано), але наступну квитанцію не вдалося опублікувати + Платіж надіслано (%1$d з %2$d квитанцій опубліковано), але наступну квитанцію не вдалося опублікувати + + Частка отримувача нижча за пиловий ліміт + Не вдалося підписати транзакцію + ~10 хв + ~30 хв + ~1 год + Швидко + Нормально + Повільно + + Поділ між %1$d отримувачем + Поділ між %1$d отримувачами + Поділ між %1$d отримувачами + Поділ між %1$d отримувачами + + + Пропуск %1$d отримувача, що має лише Lightning адресу — onchain потребує Nostr pubkey для отримання адреси. + Пропуск %1$d отримувачів, що мають лише Lightning адресу — onchain потребує Nostr pubkey для отримання адреси. + Пропуск %1$d отримувачів, що мають лише Lightning адресу — onchain потребує Nostr pubkey для отримання адреси. + Пропуск %1$d отримувачів, що мають лише Lightning адресу — onchain потребує Nostr pubkey для отримання адреси. + + + Використати %1$d-сторонній поділ zap цієї нотатки + Використати %1$d-сторонній поділ zap цієї нотатки + Використати %1$d-сторонній поділ zap цієї нотатки + Використати %1$d-сторонній поділ zap цієї нотатки + + трансляція + побудова транзакції + завантаження балансу + публікація квитанції + підпис + У цьому опитуванні можна голосувати тільки один раз + Відкрити всі реакції на цей допис + Відкриті + Порт Orbot Socks + Є доказ того, що ця публікація була підписана до %1$s. Доказ засвідчено в блокчейні Bitcoin на ту дату та час. + Доказ часової позначки + Relay для вихідних + Пароль обов'язковий + Пауза + Сплатити + Повідомлення від %1$s + Адреси для платежів + Додайте платіжні адреси для різних мереж (наприклад, bitcoin, lightning, ethereum). + PDF збережено до Downloads/Amethyst + Метадані списків підписок може бачити будь-хто у Nostr. Тільки ваші приватні учасники зашифровані. + Метадані списку підписок + Зображення + Закріпити вгорі + Закріпити у профілі + Відтворити + + %1$d епізод + %1$d епізоди + %1$d епізодів + %1$d епізоду + + Автор опитування не може голосувати + Опитування закрито для нових голосів + Кілька відповідей + Варіант %1$s + Одна відповідь + Неможливо проголосувати + Опитування + Надіслати + + Цей пост містить більше ніж %1$d хештег + Цей пост містить більше ніж %1$d хештеги + Цей пост містить більше ніж %1$d хештегів + Цей пост містить більше ніж %1$d хештега + + Перегляд для %1$s + Параметри конфіденційності + Політика конфіденційності + <Не вдалося розшифрувати повідомлення>\n\nпВас згадали в приватному/зашифрованому чаті між %1$s і %2$s. + Relay-сервери для вхідних DM + Введіть від 1 до 3 relay-серверів для вашої приватної скриньки. Інші використовуватимуть ці relay-сервери для надсилання вам DM. Relay-сервери для вхідних DM мають приймати будь-які повідомлення від будь-кого, але дозволяти завантажувати їх лише вам. Гарні варіанти:\n - inbox.nostr.wine (платно)\n - auth.nostr1.com (безкоштовно)\n - you.nostr1.com (особисті relay-сервери — платно) + Користувач отримує DM на цих relay-серверах + Приватне повідомлення + Зробити приватним: надіслати нотатку у gift-wrap лише повідомленим користувачам + Відповіді на приватну нотатку завжди залишаються приватними + Видно для + Приватні домашні relay-сервери + Введіть від 1 до 3 relay-серверів для зберігання подій, які більше ніхто не може бачити, наприклад ваші чернетки та/або налаштування застосунку. В ідеалі ці relay-сервери мають бути локальними або вимагати автентифікації перед завантаженням вмісту кожного користувача. + Лайка / Образи + Профіль + Значки профілю + Рекомендації застосунків + Значки профілю + Стрічка підписників + Стрічка отриманих Zap + Інтерфейс профілю + профілі + Запропонувати редагування + Proxy relay-сервери + Агрегаторні relay-сервери, які застосунок має використовувати для завантаження ваших стрічок, наприклад filter.nostr.wine. Це замінює модель outbox і змусить застосунок підключатися лише до relay-серверів у ваших списках. + Публічний чат + Публічні чати видимі всім у Nostr, і кожен + може брати в них участь. Вони чудово підходять для відкритих спільнот за певними темами. + Модерацію можна здійснювати, видаляючи публікації на відповідних relay + Вкажіть від 1 до 3 relay, що розміщують цю групу. + Клієнти Nostr використовують це налаштування, щоб знати, звідки завантажувати повідомлення та куди їх надсилати. + Relay + Метадані публічного чату + Публічні чати + Публічні Outbox/домашні relay-сервери + Цей тип relay-серверів зберігає весь ваш вміст. Amethyst надсилатиме ваші публікації сюди, а інші використовуватимуть ці relay-сервери для пошуку вашого вмісту. Введіть від 1 до 3 relay-серверів. Це можуть бути особисті, платні або публічні relay-сервери. + Користувач публікує свій вміст на цих relay-серверах + Публічне повідомлення + Публічні relay-сервери для вхідних повідомлень + Цей тип relay-серверів отримує всі відповіді, коментарі, лайки та zap-и до ваших публікацій. Це можуть бути платні або безкоштовні relay-сервери. Обмеження, встановлені оператором relay-сервера, можуть як позитивно, так і негативно впливати на отримувані вами сповіщення. Наприклад, якщо вас атакують спамом у коментарях, платні relay-сервери можуть відфільтрувати його. Введіть від 1 до 3 relay-серверів. + Користувач отримує сповіщення на цих relay-серверах + Скопіювати ID запису + Видалити + Заглушити гілку + Поділитися + Поділитися посиланням + Увімкнути звук гілки + Реакція + Реакції + Панель реакцій + Читати з relay + Кількість байтів, отриманих від цього relay, включаючи фільтри та події + Користувач лише для читання + Натисніть і утримуйте, щоб записати повідомлення + Чат relay + Чати relay — це групи чатів, керовані їхнім домашнім relay. + Вони видимі всім у Nostr, і кожен може брати в них участь. + Вони чудово підходять для відкритих спільнот за певними темами. Деякі з цих груп є тимчасовими, + і тому повідомлення чату зникають з часом + Чати relay + Події + IP-адреси + Користувачі + Налаштування + Налаштування relay-серверів + списки outbox + Relay-сервери + Поповнити & надіслати зап + Надіслати зап + Поповнити %1$s sats до %2$s і зап %3$s %4$s sats · комісія ≈ %5$s sats + Видалити + Прибрати з Публічних закладок + відповісти.. + Сповіщення: + + Запросити видалення + Запит на зникнення + Не вдалося скинути стан Marmot: %1$s + Скинути стан Marmot + Стан Marmot скинуто. + Повторити + Списки календарів + Календарі + Шахи + Відкрити + Головна + Імпортувати підписки + Повідомлення + Плейлисти + Музика + Сповіщення + Епізоди + Подкасти + Запланувати допис + Скасувати планування + Заплановані дописи можуть не опублікуватися, доки ви знову не відкриєте застосунок. Заплановані дописи інших акаунтів не виконуватимуться, доки активний цей акаунт. Увімкніть постійний режим у Налаштування → Параметри інтерфейсу для надійного планування у фоні. + Заплановані дописи можуть не опублікуватися, доки ви знову не відкриєте застосунок. Увімкніть постійний режим у Налаштування → Параметри інтерфейсу для надійного планування у фоні. + Заплановані публікації + Надіслати зараз + %1$s · через %2$s + %1$s · %2$s тому + Завтра + Помилка: %1$s + ID нотатки скопійовано + + Вихід виконано · %1$d запланований допис видалено + Вихід виконано · %1$d заплановані дописи видалено + Вихід виконано · %1$d запланованих дописів видалено + Вихід виконано · %1$d запланованих дописів видалено + + Вихід виконано + + У вас є %1$d запланований допис, який ще не опубліковано. Вихід з акаунта назавжди видалить його. + У вас є %1$d заплановані дописи, які ще не опубліковано. Вихід з акаунта назавжди видалить їх. + У вас є %1$d запланованих дописів, які ще не опубліковано. Вихід з акаунта назавжди видалить їх. + У вас є %1$d запланованих дописів, які ще не опубліковано. Вихід з акаунта назавжди видалить їх. + + Помилка запланованого допису + Запланований допис опубліковано + + на %1$d relay + на %1$d relay + на %1$d relay + на %1$d relay + + Скасовано + Помилка + Заплановано + Надсилається… + Надіслано + + · %1$d через 1 год + · %1$d через 1 год + · %1$d через 1 год + · %1$d через 1 год + + + %1$d у черзі + %1$d у черзі + %1$d у черзі + %1$d у черзі + + Гарні варіанти:\n%1$s + Relay-сервери для пошуку + Relay-сервери для пошуку + Список relay-серверів для пошуку вмісту або користувачів. Позначення та пошук не працюватимуть, якщо жодних варіантів немає. Переконайтесь, що вони підтримують NIP-50. + події для пошуку + Приватний ключ (nsec) скопійовано + Ви ще не заблокували жодного користувача. + Фільтри безпеки + Немає прихованих слів. Додайте слово нижче, щоб приховати пости, що містять його. + Заблокований вміст + Налаштування фільтрації + Жодних акаунтів не було позначено як спам у цій сесії. + Надіслати + Надсилати всі отримані події профілю (kind 0) до вашого локального relay-сервера + Пересилати профілі до локального relay-сервера + Доступно для цього отримувача: %1$s sats + Платіж не вдався + Транзакція: %1$s + Оплата через %1$s… + Сервер не задав URL після завантаження + Налаштування + Немає вимкнених тем + Вимкнені теми + Поділитися як зображення + Поділитися як URL зображення + Поділитися або зберегти + Показати QR-код зашифрованого приватного ключа + Включати особисті та групові повідомлення на вкладку «Сповіщення». Вимкніть, щоб залишити повідомлення лише на вкладці «Повідомлення». + Показувати повідомлення + Показати QR-код приватного ключа + Запит на підписання відхилено + Переконайтеся, що застосунок-підписант авторизував цю транзакцію + Зовнішній підписувач повернув дані, що не відповідають запиту. Можливо, є помилка в Amethyst або підписувачі. + Підписувач не знайдений + Чи не було видалено застосунок-підписувач? Перевірте, чи встановлено підписувач і чи є в ньому цей обліковий запис. Вийдіть і увійдіть знову, якщо застосунок-підписувач змінився. + Перемотати назад на %1$d секунд + Перемотати вперед на %1$d секунд + Застосунки + Спам + Кількість спам-подій, що надходять з цього relay + Спам + Показати дві вкладки сповіщень — «Стежу» (люди, за якими ви стежите) та «Усі». Індикатор непрочитаних світиться лише для активності від людей, за якими ви стежите. + Розділити сповіщення за підписками + Намагається видалити приватні метадані з підтримуваних медіафайлів перед вивантаженням + Видалити приватні метадані + Читає завершені тренування з Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) і пропонує поділитися ними як публікацією. Дозвіл запитується лише під час підключення. + Пропонувати тренування для поширення + Система + Оформлення + Темна, світла або системна тема + Це повідомлення зникне через %1$s + + +%1$d\\nвідповідь + +%1$d\\nвідповіді + +%1$d\\nвідповідей + +%1$d\\nвідповіді + + Сьогодні + Власний + Налаштуйте власний варіант + Стандартний + Приховати вашу IP-адресу від випадкових relay + Повна приватність + Приховати вашу IP-адресу в усіх з'єднаннях + Вбудований + Вимкнено + Попередні налаштування Tor/конфіденційності + Швидко змінити всі налаштування нижче + Усе, крім медіа + Приховати вашу IP-адресу від усього, крім зображень і відео + DM Relay + Примусово використовувати Tor для надсилання та отримання DM + Зображення + Примусово використовувати Tor при завантаженні зображень + Завантаження медіа + Примусово використовувати Tor при завантаженні контенту + Грошові операції + Примусово використовувати Tor для zap, Lightning та Cashu переказів + Ненадійні relay + Примусово використовувати Tor для outbox/inbox relay + Верифікація Nostr-адреси + Примусово використовувати Tor при верифікації NIP-05 адрес + Onion URL/Relay + Використовувати Tor для будь-якого .onion URL + Фото профілю + Примусово використовувати Tor при завантаженні фото профілю + Надійні relay + Примусово використовувати Tor для всіх relay у ваших списках + Попередній перегляд URL + Примусово використовувати Tor при завантаженні попереднього перегляду URL + Відео + Примусово використовувати Tor при завантаженні відео + Базовий + Використовувати Tor, коли цього вимагає сервер + Не вдалося відкрити файл + Не встановлено жодного torrent-застосунку для відкриття та завантаження файлу. + Подія не містить достатньої інформації для створення magnet-посилання + Використовувати відстежувальний транслятор під час надсилання подій. Відображає живий прогрес та статус по кожному relay під час трансляції. + Відстежувані трансляції + Перекладати на + Оберіть мову, на яку перекладати вміст. + Переклади + Довірені relay-сервери + Relay-сервери, яким ви довіряєте і яким не потрібне підключення через Tor + Повний + Продуктивність + Спрощений + Параметри інтерфейсу + Режим інтерфейсу + Виберіть стиль публікації + Неможливо створити Lightning інвойс перед надсиланням зап. Lightning гаманець отримувача повернув таку помилку: %1$s + Не вдалося поділитися зображенням, спробуйте пізніше… + Не вдалося поділитися відео, спробуйте пізніше… + Несанкціоноване розшифрування + Підписувач не дозволив розшифрування, необхідне для виконання цієї операції. Активуйте NIP-44 розшифрування у вашому застосунку-підписувачі та спробуйте знову + Відписатися + Відкріпити + Відкріпити від профілю + Вивантаження скасовано + Помилка завантаження + Помилка завантаження голосу: %1$s + Не вдалося завантажити голосове повідомлення + NIP-95 ще не підтримується для голосових повідомлень + %1$d%% доступності + Активний рушій Tor + Використовувати вбудовану версію або Orbot + Користувач не встановив Lightning адресу для отримання чайових + Користувач %1$s не має налаштованої Lightning адреси для отримання sats + Історія зникнень + Запит на зникнення надіслано + Краща якість при менших розмірах файлів, але не всі пристрої підтримують відтворення H.265. + Використовувати кодек H.265/HEVC + Завантаження відео розпочато… + Кнопки відеоплеєра + Відео збережено до відеогалереї телефону + Голосова публікація + Глибокий + Високий + Нейтральний + Немає + Голосова відповідь + Гаманець + Cashu гаманець (NIP-60) + Постачальник підключення гаманця повернув наступну помилку: %1$s + Редагувати mints + Показує попередження, коли на пости або профілі надходять скарги від людей, за якими ви стежите + Попереджати про скарги + Додати веб-закладку + Редагувати веб-закладку + Веб-закладки + Що нового? + Тренування + Написати повідомлення… + Писати до relay + Кількість байтів, надісланих до цього relay, включаючи фільтри та події + Запи + + Перейменувати + Зберегти diff --git a/commonsUI/src/commonMain/composeResources/values-uk/strings.xml b/commonsUI/src/commonMain/composeResources/values-uk/strings.xml index 794609fa99..d85e49e18e 100644 --- a/commonsUI/src/commonMain/composeResources/values-uk/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-uk/strings.xml @@ -1826,4 +1826,1293 @@ Джерело: Сервери: Відкрити + Про додаток і правові відомості + Налаштування акаунту + Додати + Додати сервер Blossom + Додати сервер NIP-96 + Коли увімкнено, Amethyst додає NIP-89 клієнтський тег до подій, які ви публікуєте. + Додавати клієнтський тег до моїх подій + Додає попередження про чутливий контент перед показом цього контенту + Чутливий контент + Додати в Публічні закладки + Використовує AI-модель на пристрої для пропозиції виправлень тексту та зміни тону. + Пропонувати вдосконалення тексту + Підтримує активні з'єднання з вашими inbox relay для сповіщень у реальному часі + + Підключено до %1$d inbox relay + Підключено до %1$d inbox relay + Підключено до %1$d inbox relay + Підключено до %1$d inbox relay + + + Підключено до %1$d relay + Підключено до %1$d relay + Підключено до %1$d relay + Підключено до %1$d relay + + Підключення до inbox relay… + Сповіщення Amethyst активні + Сповіщення про вхідні голосові та відеодзвінки + Вхідні дзвінки + %1$s прийняв(ла) ваш шаховий виклик + Сповіщає вас про події шахової гри + Шахи + Оновлення шахів + %1$s зробив(ла) хід — ваша черга + Сповіщення про вхідні повідомлення + Особисті повідомлення + Нові повідомлення + Позначити як прочитане + Сповіщає вас, коли хтось згадує або цитує вас у пості + %1$s згадав(ла) вас + Згадки + Нові згадки + Сповіщає вас, коли хтось реагує на ваш пост + %1$s відреагував(ла) на ваш пост + для %1$s + Реакції + Нові реакції + Сповіщає вас, коли хтось відповідає на ваш пост + Відповіді + Нові відповіді + Відповісти + Сповіщення про публікацію або помилку запланованого допису. + Заплановані дописи + Сповіщення про отримані запахи + %1$s sat + за %1$s + Від %1$s + Запи + Нові zap + Налаштування додатку + Атестація + Запит атестації + Компетентність атестора + Рекомендація атестора + Аудіовізуалізатор + Автоматично зберігає чернетку події, коли ви друкуєте або залишаєте редактор з ненадісленим текстом, і надсилає до ваших приватних вихідних relay. + Автоматично створювати чернетки + Розширена прокрутка + Приховати Nav панель під час прокручування + Попередній перегляд + Автоматично завантажувати зображення і GIF + Відтворення відео + Автоматично відтворювати відео та GIF-зображення + Зображення профілю + Показувати зображення профілю + Перегляд URL-адреси + Попередній перегляд URL + Автовідтворення відео + Автоматично відтворювати відео, коли вони видимі на екрані + Неможливо видалити метадані з AVIF: %1$s + Присвоїти значок + Назад + Резервне копіювання + Значки + Помилка входу + Не вдалося виконати біометрику для автентифікації власника цього телефону + Не вдалося виконати біометрику для автентифікації власника цього телефону. Помилка: %1$s + Заблокувати + Заблоковані relay-сервери + Amethyst ніколи не підключатиметься до цих relay-серверів + Заблоковані користувачі + Новий список закладок + Метадані списку закладок + Метадані списків закладок може бачити будь-хто в Nostr. Тільки ваші приватні елементи зашифровані. + Закладки + Просувати + Нижня навігаційна панель + Relay-сервери для розсилки + Relay-сервери, що спеціалізуються на поширенні ваших нотаток до всіх інших relay-серверів, наприклад sendit.nosflare.com. Amethyst додаватиме цей relay-сервер до всіх нових подій, створених вами + Браузер + Вибране + Завантаження через відкриту мережу. Торкніться, щоб використати Tor. + Завантаження через Tor. Торкніться, щоб використати відкриту мережу. + + %1$s, %2$d подія + %1$s, %2$d події + %1$s, %2$d подій + %1$s, %2$d подій + + Помилка завантаження зображення + Вибране зображення не вдалося завантажити. Спробуйте ще раз або вставте URL. + Поділитися подією календаря + Відкрити на картах + Відкрити посилання + Відбувається зараз + %1$s · закінчується %2$s + + Починається через %1$d хвилину + Починається через %1$d хвилини + Починається через %1$d хвилин + Починається через %1$d хвилин + + Сповіщення, коли подія, на яку ви зареєструвалися, ось-ось розпочнеться. + calendar_reminders + Нагадування календаря + Подія календаря + Сповіщення надходить, коли подія, на яку ви зареєструвалися, ось-ось розпочнеться. + Надсилати нагадування + + %1$d хв + %1$d хв + %1$d хв + %1$d хв + + Нагадування календаря + День + Стрічка + Місяць + Тиждень + Прийняти + Bluetooth + Камера вимкнена + Камера увімкнена + Навушник + Завершити + Вхідний дзвінок + Вхідний відеодзвінок… + Вхідний голосовий дзвінок… + Вимкнути мікрофон + Дзвінки + Сповіщення про поточний дзвінок + Amethyst потребує доступу до камери та мікрофона для початку відеодзвінка. Будь ласка, увімкніть їх у налаштуваннях програми. + Amethyst потребує доступу до мікрофона для початку голосового дзвінка. Будь ласка, увімкніть його в налаштуваннях програми. + Відхилити + Налаштування дзвінків + Гучномовець + Увімкнути мікрофон + Дзвінок з %1$s + URL зворотного виклику не знайдено у відповіді %1$s + Скасувати + Cashu токен + Перевірка mint… + Не вдалося отримати Cashu + Mint надав таке повідомлення про помилку: %1$s + Отримано + Надіслано + Відповідні mints + + +%1$d ще + +%1$d ще + +%1$d ще + +%1$d ще + + Популярні mints + + Рекомендовано %1$d іншим + Рекомендовано %1$d іншими + Рекомендовано %1$d іншими + Рекомендовано %1$d іншими + + Переміщено %1$s sat до %2$s. + У системі не знайдено сумісний гаманець Cashu + + %1$d очікуючий інвойс + %1$d очікуючих інвойси + %1$d очікуючих інвойсів + %1$d очікуючих інвойси + + Сплатити %1$s sat + до %2$s sat комісії? + Опублікувати запит на видалення вашої kind:38000 рекомендації %1$s. Relay, які дотримуються NIP-09, видалять її. + Відновлено %1$s sats у %2$s підтвердженнях. + Отримано Cashu + %1$s sats були відправлені в ваш гаманець. (Fees: %2$s sats) + + Кошти зберігаються в %1$d mint, який ви не використовуєте + Кошти зберігаються в %1$d mint, які ви не використовуєте + Кошти зберігаються в %1$d mint, які ви не використовуєте + Кошти зберігаються в %1$d mint, які ви не використовуєте + + Очікування оплати інвойсу… + + %1$d mint + %1$d mint + %1$d mint + %1$d mint + + Зупинити трансляцію + Трансляція на пристрій + Стандарти безпеки дітей + Аксесуари + Мистецтво + Книги + Одяг + Колекційні елементи + Ремесла + Електроніка + Фітнес + Їжа + Меблі + Дім + Різне + Офіс + Інше + Домашні тварини + Спорт + Щодня + Щомісяця + Одноразово + Щотижня + Сплатити %1$s через %2$s? + Сплатити цей рахунок через %1$s? + Сервіс дебетування не завершив платіж. + Введіть дійсну суму для цього offer. + Запит рахунку… + Закрити всі реакції на цей допис + Закриті + Спільноти + Чернетка займає %1$d байт; ця спільнота обмежує цей kind до %2$d байт. + Чернетка займає %1$d байт; ця спільнота обмежує події до %2$d байт. + Ви вже опублікували %1$d подій цього kind сьогодні (ліміт %2$d). + Налаштування редактора + Стандартний порт — 9050 + Підключені relay-сервери + Поточний список використовуваних relay-серверів + Відсоток успішних підключень до relay + Завжди + Ніколи + WiFi без ліміту + Додати документ + Додати фото + Додати медіа + Додати відео + Приховати + Попереджати + Показати + Обговорення + Конвертує анімований GIF у відео MP4 для зменшення розміру файлу та кращої сумісності відтворення. + Конвертувати GIF у MP4 + ID запису (note1) скопійовано + Скопіювати текст + Скопійовано до буфера обміну + ID (npub) автора скопійовано + Скопіювати мій приватний ключ + Скопіювати в буфер + Не вдалося скласти LNUrl з Lightning адреси «%1$s». Перевірте налаштування користувача + Не вдалося перевірити завантажений файл після вивантаження: %1$s + Не вдалося завантажити завантажені медіафайли з сервера + Не вдалося отримати інвойс від %1$s: %2$s + Не вдалося відкрити стиснутий файл + Гаманець не знайдено + Amethyst не знайшов жодного гаманця, який підтримує Nostr Wallet Connect (NWC). +\n\nЩо можна зробити: +\n\t1. Перевірте підтримку NWC: переконайтеся, що ваш гаманець сумісний з Nostr Wallet Connect. +\n\t2. Створіть підключення: відкрийте гаманець і створіть нове NWC-підключення. +\n\t3. Прив'яжіть до Amethyst: зазвичай гаманець надає три варіанти: +\n\t\t3.1 Автоматичне підключення: кнопка для автоматичного відкриття та підключення до Amethyst. Якщо так — натисніть її, відкрийте Amethyst і збережіть налаштування на новому екрані. +\n\t\t3.2 Ручне підключення: URI підключення, який можна скопіювати та вставити за допомогою значка вставки на цьому екрані. +\n\t\t3.3 QR-код: гаманець створює QR-код, який можна зчитати за допомогою кнопки QR-коду на цьому екрані. + + Створити + дн + Небезпечна зона + Темна + Опис + Зробити публічним + Чати + Спільноти + Алгоритми стрічки + Пакети підписок + Живі трансляції + Торгівельний майданчик + Читання + Relay-сервери для вхідних DM + DMs + Не перекладати з + Мови, вказані тут, не перекладатимуться. Виберіть мову, щоб прибрати її зі списку та знову отримувати переклад. + Зберегти на телефон + Завантаження відео… + Чернетка нотатки + Чернетки + Акаунти + Створити + Стрічки + Навігація + Система + Ви + + %1$d день + %1$d дні + %1$d днів + %1$d дні + + + %1$d година + %1$d години + %1$d годин + %1$d години + + + %1$d хвилина + %1$d хвилини + %1$d хвилин + %1$d хвилини + + + %1$d місяць + %1$d місяці + %1$d місяців + %1$d місяці + + + %1$d тиждень + %1$d тижні + %1$d тижнів + %1$d тижні + + + %1$d рік + %1$d роки + %1$d років + %1$d роки + + Редагувати календар + Редагувати подію календаря + Редагувати спільноту + Редагувати пакет емодзі + Редагувати плейлист + Редагувати публікацію + Приватні емодзі зберігаються зашифровано на relay і видимі лише вам. Вони з'являються в меню реакцій та автодоповненні «:», як і публічні. + Публічні емодзі видимі всім і з'являються в меню реакцій та автодоповненні «:», коли цей пакет знаходиться у вашому списку емодзі. + Емодзі + Шифрувати файли перед вивантаженням для захисту конфіденційності. Деякі сервери можуть не приймати зашифровані файли на безкоштовних акаунтах. + Шифрувати файли + Тимчасовий чат + Помилка + Не вдалося сплатити рахунок + Не вдалося зняти + Не вдалося відкрити платіж + Не вдалося надіслати файл Zap + Помилка при відкритті додатка для входу + Додаток для входу не знайдено. Перевірте чи не було видалено додаток + Помилка при обробці повідомлення про помилку + Помилка розбору JSON від %1$s. Перевірте Lightning налаштування користувача + Не вдалося отримати рахунок з серверів отримувача + Відкрити у браузері + Неможливо відтворити це відео + Кодек або формат не підтримується на цьому пристрої (%1$s). Спробуйте відкрити у браузері. + Помилки + Синхронізація relay + події від вас + події до вас + AMRAP + Кругове тренування + Велоспорт + Дієта + EMOM + Голодування + Туристичний похід + Медитація + Веслування + Біг + Силові вправи + Плавання + Ходьба + Йога + Розгорнути + Дата завершення + Експортувати налаштування relay-серверів + Не вдалося видалити: %1$s + Не вдалося зашифрувати ваш приватний ключ + Не вдалося зберегти фото + Не вдалося зберегти PDF + Не вдалося зберегти відео + Багато серверів не приймають зашифровані файли на безкоштовних акаунтах. Ви можете повторити спробу без шифрування. + Зашифроване вивантаження не вдалося + Помилка завантаження: %1$s + Не вдалося завантажити фото + Не вдалося завантажити на %1$s: %2$s + Додати до улюблених + Завантажується через відкриту мережу. + Завантажується через Tor. + Нещодавні + Видалити з улюблених + Цей застосунок ще не завантажено. Спробуйте ще раз за мить. + Улюблені застосунки + Улюблені алгоритми стрічки + Виконано платіж + Опубліковано на relay + Завантажено файл + Улюблені стрічки relay-серверів + Relay-сервери, на глобальні стрічки яких ви часто заходите + Спільноти + Алгоритми стрічки + Стрічки + Хештеги + Набори інтересів + Списки + Місця + Relay-сервери + Сервер для завантаження + Оберіть сервер для завантаження цього файлу + Приховує пости від незнайомців, які були абсолютно однаковими 5 або більше разів + Фільтрувати спам + Підписатися + Підписатися у відповідь + Усі улюблені алгоритми стрічки + Навколо мене + Підібрані + Глобально + Стандартний список підписок + Всі підписки + Усі підписки користувача + Мої + Список ігнорування + Новий пакет підписок + Редагувати Follow Pack + Метадані Follow Pack може бачити будь-хто у Nostr, і вони часто публікуються на багатьох сайтах як стартові набори для нових користувачів. + Метадані Follow Pack + Follow Packs + Новий список підписок + Редагувати список + Стиль галереї профілю + Виберіть стиль галереї + Класичний + Сучасний + Публікація лише для цього місця + Її побачать лише підписники цього місця. Ваші звичайні підписники її не побачать. + %1$s зібрано з %2$s sats мети + год + Фото змінено. Автор міг не помітити зміну + Що це значить? + Фото не змінилося після публікації + Привіт, %1$s, це ще доступно? + Приховані слова + Виключає пости з лент спільноти, коли спільнота публікує документ правил NIP-9B і подія не відповідає їм. Не діє, якщо спільнота не має структурованих правил. + Приховувати пости, що порушують правила спільноти + Сховати пароль + Завантаження %1$s (%2$d із %3$d) + Все + Bad Request — сервер не може або не хоче обробити запит. + Unauthorized — користувач не має дійсних облікових даних для автентифікації + Payment Required — сервер вимагає оплату для виконання запиту + Forbidden — користувач не має прав доступу для виконання запиту + Not Found — сервер не може знайти запитану адресу + Method Not Allowed — сервер підтримує метод запиту, але не для цього ресурсу + Not Acceptable — сервер не знаходить вмісту, що задовольняє запит. + Proxy Authentication Required — користувач не має дійсних облікових даних для автентифікації + Request Timeout — сервер вичерпав час очікування + Conflict — сервер не може виконати запит через конфлікт з ресурсом + Gone — запитаний вміст було остаточно видалено з сервера і не буде відновлено + Length Required — сервер відхиляє запит, оскільки він вимагає визначеної довжини вмісту + Precondition Failed — сервер не виконує передумови запиту, вказані в полях заголовка + Payload Too Large — запит перевищує визначені межі сервера, і сервер відмовляється його обробляти + URI Too Long — URL, запитана клієнтом, надто довга для обробки сервером. + Unsupported Media Type — запит використовує формат медіа, який сервер не підтримує + Range Not Satisfiable — сервер не може виконати значення, вказане в полі заголовка Range запиту. + Expectation Failed — сервер не може виконати вимоги, вказані в полі заголовка Expect запиту + Upgrade Required — сервер відмовляється обробляти запит за поточним протоколом, якщо клієнт не перейде на інший протокол. + Internal Server Error — сервер зіткнувся з неочікуваною помилкою і не може виконати запит + Not Implemented — сервер не може виконати запит або не розпізнає метод запиту + Bad Gateway — сервер діє як шлюз і отримав недійсну відповідь від хоста + Service Unavailable — це часто відбувається, коли сервер перевантажений або проводить технічне обслуговування + Gateway Timeout — сервер діяв як шлюз або проксі та перевищив час очікування відповіді + HTTP Version Not Supported — сервер не підтримує версію HTTP, вказану в запиті + Variant Also Negotiates — на сервері виникла внутрішня помилка конфігурації + Insufficient Storage — у сервера недостатньо місця для успішної обробки запиту + Loop Detected — сервер виявив нескінченний цикл під час обробки запиту + Network Authentication Required — клієнт має пройти автентифікацію для доступу до мережі + Незаконні дії + Фото збережено до галереї + Видача себе за іншу особу + Relay для вхідних + Неправильна сума інвойсу (%1$s sats) від %2$s. Мало бути %3$s + Relay-сервери-індексатори + Relay-сервери, що спеціалізуються на зберіганні метаданих та списків relay-серверів усіх користувачів, наприклад purplepag.es. Amethyst використовуватиме ці relay-сервери для пошуку користувачів, яких немає у ваших списках. + Новий набір інтересів + Перейменувати + Набори хештегів + Некоректний ключ + Недійсний ключ: %1$s + Недійсна адреса + Amethyst отримав URI для відкриття, але цей URI був недійсним: %1$s + Неможливо процитувати чернетку нотатки + Неможливо відреагувати на чернетку нотатки + Неможливо відповісти на чернетку нотатки + Неможливо зробити zap на чернетку нотатки + Треба ввести ключ + Relay-сервери для KeyPackage + Relay-сервери, на яких публікуються ваші MLS KeyPackages (MIP-00). Інші користувачі завантажують ці KeyPackages, щоб запросити вас до групових чатів Marmot. Введіть від 1 до 3 relay-серверів, які приймають від вас події KeyPackage та дозволяють публічне читання. + KeyPackages + Набір прийнятих бейджів + Пролог пригоди + Читання пригоди + Сцена пригоди + Рекомендації застосунків + Зустріч + Застосунки + RSVP зустрічі + Аудіо заголовок + Аудіо трек + Авторські подкасти + Нагороди бейджів + Визначення бейджів + Blob дані + Blob заголовки + Заблоковані Relays + Блоги + Blossom Auth + Blossom Servers + Список закладок + Broadcast Relays + Календар + Визначення каналу + Приховати повідомлення каналу + Список каналів + Повідомлення каналу + Метадані каналу + Заглушити користувача каналу + Chess Auth + Шахові виклики + Пропозиція нічиєї + Прийняття шахової партії + Кінець шахової партії + Шахові партії + Шаховий хід + Оголошення + Коментарі + Визначення спільноти + Список спільнот + Публікація спільноти + Контактна картка + Денна зустріч + Видалення + Файл особистого повідомлення + Особисте повідомлення + DM Relays + Чернетки + DVM Content Req + DVM Content Resp + DVM Status + DVM User Req + DVM User Resp + Редагування + Список наборів емодзі + Набори емодзі + Ефемерний чат + Ефемерні чат-кімнати + Улюблені подкасти + Улюблені Relays + Заголовки файлів + Файлові сервери + Follow List + Follow Packs + Підписки геохешу + GiftWraps + Git Issue + Git Patch + Git Reply + Git Repo + Підписки хештегу + Виділення + Http Auth + Список індексних Relays + Живі чати + Живі трансляції + Медичні дані + Кімната нарад + Простір нарад + Музичний плейлист + Музичний трек + Список заглушених + Іменовані закладки + Nests Servers + NIP + NIP-04 DMs + NNS + Nostr Connect + Нотатки + NWC Request + NWC Response + Старий список закладок + OTS + Outbox Relays + PayTo + Списки людей + Зображення + Закріплення + Епізод подкасту + Подкаст-шоу + Голосування + Відповідь на голосування + Приватні relay + Приватні Zaps + Профіль + Бейджі профілю + Галерея профілю + Проксі relay + Публічне повідомлення + Реакції + Relay-автентифікація + Виявлення relay + Оголошення монітора relay + Набір relay + Звіти + Репости + Репости (16) + Присутність у кімнаті + Печатки + Пошукові relay + Shorts + Shorts (Repl) + Коментарі до торрентів + Торренти + Довірені провайдери + Довірені relay + Видалення користувача + Налаштування користувача + Статус користувача + Відео + Відео (Repl) + Голос. повідомлення + Голосова відповідь + WakeUp + Веб-закладка + Wiki + Тренування + Цілі Zap + Zap-голосування + Zap Req + Zaps + Відомі + Налаштування відображення мови + Для кожної пари мов перекладу оберіть, яку мову показувати першою. + Востаннє бачено %1$s тому + Щойно в мережі + Не спостерігався + Востаннє бачено %1$s (%2$s тому) + Вийти + Світла + Прямі трансляції + Локальні relay-сервери + Список relay-серверів, що працюють на цьому пристрої. + Увійдіть з приватним ключем щоб просувати дописи + Ви використовуєте відкритий ключ, і відкриті ключі доступні лише для читання. Увійдіть за допомогою закритого ключа, щоб мати можливість стежити + Ви використовуєте відкритий ключ, і відкриті ключі доступні лише для читання. Увійдіть за допомогою закритого ключа, щоб мати можливість приховати слово або речення + Увійдіть з приватним ключем щоб відповісти + Увійдіть з приватним ключем щоб запати + Ви використовуєте відкритий ключ, і відкриті ключі доступні лише для читання. Увійдіть за допомогою закритого ключа, щоб мати можливість показати слово або речення + Ви використовуєте публічний ключ, а публічні ключі доступні лише для читання. Увійдіть за допомогою приватного ключа, щоб мати можливість підписувати події + Ви використовуєте відкритий ключ, і відкриті ключі доступні лише для читання. Увійдіть за допомогою закритого ключа, щоб мати можливість скасувати підписку + Ви використовуєте публічний ключ, а публічні ключі доступні лише для читання. Увійдіть за допомогою приватного ключа, щоб мати можливість завантажувати файли + Увійдіть з приватним ключем щоб лайкати дописи + Відео + хв + Мої пакети емодзі + Додаємо %1$s… + Права адміністратора надано + Права адміністратора відкликано + Не вдалося додати %1$s: %2$s + Не вдалося створити групу: %1$s + Не вдалося надати права адміністратора: %1$s + Не вдалося покинути групу: %1$s + Не вдалося видалити учасника: %1$s + Не вдалося відкликати права адміністратора: %1$s + Не вдалося оновити: %1$s + Marmot Group + Інформацію про групу оновлено + + %1$d учасник + %1$d учасники + %1$d учасників + %1$d учасників + + Учасника видалено + + %1$d повідомлення + %1$d повідомлення + %1$d повідомлень + %1$d повідомлень + + Не є учасником цієї групи + невідома помилка + Медіа додано + Медіа додано до вашої галереї профілю + Завантаження медіа розпочато… + Медіасервери + Медіафайл занадто великий для NIP-95 + Спочатку введіть адресу отримувача повідомлення + Неможливо завантажити + Тема + Метадані не вдалося видалити + Не вдалося видалити приватні метадані з медіафайлу. Вивантаження скасовано. + Закладки успішно перенесено + Відсутнє налаштування Lightning + Більше опцій + Перемістити до приватних + Перемістити до публічних + Завантажити обкладинку + Виберіть квадратне зображення для обкладинки цього плейлисту. + + +%1$d додатковий трек + +%1$d додаткові треки + +%1$d додаткових треків + +%1$d додаткових треків + + + %1$d трек + %1$d треки + %1$d треків + %1$d треків + + + %1$d трек + %1$d треки + %1$d треків + %1$d треку + + Завантаження обкладинки і публікація. Процес продовжиться навіть якщо ви залишите екран. + Завантажити аудіофайл + Виберіть MP3, WAV або FLAC. Файл буде завантажено на ваш медіасервер після збереження. + Завантажити обкладинку + Виберіть квадратне зображення для обкладинки цього треку. + Завантаження обкладинки та аудіо і публікація. Процес продовжиться навіть якщо ви залишите екран. + Звук увімкнено. Натисніть, щоб вимкнути звук + Звук вимкнено. Натисніть, щоб увімкнути звук + Мої списки + Необхідно вказати ім'я + %1$dмс + Налаштування Namecoin + Ідентичність + Читати ваш публічний ключ + Обмін повідомленнями + Обмінюватися повідомленнями з іншими nApplets + Дії клавіатури + Прив'язати комбінації клавіш + Сповіщення + Показувати вам сповіщення + relay + Читати, підписувати та публікувати ваші події + Мережа + Отримувати веб- та Blossom-ресурси + Сховище + Власне приватне сховище + Тема + Відповідати кольорам вашого застосунку + Завантаження + Завантажувати файли на ваш медіасервер + Платежі + Оплачувати Lightning-інвойси + Цей nApplet хоче прочитати ваш публічний ключ. + Цей nApplet хоче прочитати ваш профіль і дані облікового запису. + Цей nApplet хоче показати вам сповіщення. + + Цей nApplet хоче оплатити Lightning-інвойс на %1$d sat. + Цей nApplet хоче оплатити Lightning-інвойс на %1$d sats. + Цей nApplet хоче оплатити Lightning-інвойс на %1$d sats. + Цей nApplet хоче оплатити Lightning-інвойс на %1$d sats. + + Цей nApplet хоче підписати та опублікувати подію kind:%1$d від вашого імені. + Цей nApplet хоче надіслати зашифровану подію від вашого імені. + Цей nApplet хоче підписати та опублікувати подію kind:%1$d від вашого імені: + Цей nApplet хоче читати події з ваших relay. + Цей nApplet хоче отримати веб-ресурс. + Цей сайт хоче підписати подію kind:%1$d за допомогою вашого ключа Nostr. + Цей nApplet хоче використовувати своє приватне сховище. + Цей nApplet хоче завантажити файл на ваш медіасервер. + nApplet %1$s… + nApplets + Не вдалося надіслати повідомлення + Заглушити цього спікера + Відновити цього спікера + Вийти + Не вдалося позначити кімнату як закриту. Виходимо — кімната закриється автоматично. + + %1$d слухач + %1$d слухачі + %1$d слухачів + %1$d слухача + + Опустити руку + Вимкнути мікрофон + Увімкнути мікрофон + Вимкнути звук + Не вдалося зберегти список nest-серверів. Спробуйте ще раз. + Nest — Live + Nests + Підтримує відтворення аудіо, поки кімната відкрита. + Nest підключено + Зупинити + Торкніться, щоб повернутися. + Стежити + Вимкнути звук + Не стежити + Увімкнути звук + покинув(-ла) nest + приєднався(-лась) як слухач + вийшов(-ла) на сцену + підняв(-ла) руку + говорить + Підняти руку + Увімкнути звук + Nests + Збережено як замінна подія kind:10112, щоб інші клієнти могли читати ваші налаштування. + Ваші сервери + Вбудовані пропозиції, які можна додати до списку одним дотиком. + Рекомендовані сервери + Nest-сервери + ніколи + Новий значок + Новий календар + Нова подія календаря + Нова спільнота + Модератори + Relay + Заблоковані користувачі + Коментар спільноти (1111) + Стаття у довгому форматі (30023) + Допис із зображенням (20) + Короткий текст (1) + Коротке відео (22) + Відеодопис (21) + Дозволені типи подій + Глобальний максимальний розмір події (необов'язково) + Перевірені правила (необов'язково) + Фільтр мережі довіри (необов'язково) + Новий пакет емодзі + Нова ціль + Нова стаття + Новий плейлист + Новий музичний трек + Новий продукт + Нові запити + Нові треди + Нове тренування + + %1$d актив у комплекті + %1$d активи у комплекті + %1$d активів у комплекті + %1$d актива у комплекті + + Blossom додатки не знайдено. Встановіть локальний Blossom додаток, щоб переглянути цей файл + Неможливо відкрити Blossom посилання + На цьому пристрої не знайдено застосунок камери + Lightning адресу не встановлено + Не знайдено програми для обробки цього платежу. Будь ласка, встановіть сумісний гаманець. + Не встановлено програми для обробки платежів %1$s. Будь ласка, встановіть сумісний гаманець. + Для цього користувача не вибрано жодного типу реакції. Довге натискання на кнопку серця, щоб змінити + Реакції не налаштовані + Не знайдено гаманців для оплати Lightning інвойсу. Встановіть Lightning гаманець для використання зап + Не знайдено гаманців для оплати Lightning інвойсу (Помилка: %1$s). Встановіть Lightning гаманець для використання зап + Не налаштовані запи. Натисніть та утримуйте для налаштування + Сповіщення + Категорії + Доставка + Відображення у додатку + зараз + Мистецтво Nowhere + Drop Nowhere + Подія Nowhere + Форум Nowhere + Збір коштів Nowhere + Сайт Nowhere + Повідомлення Nowhere + Петиція Nowhere + Магазин Nowhere + nSites + Нагота + Не вдалося створити посилання на event + Немає публічного ключа отримувача в нотатці + Nutzap є публічними та розкриють цю приватну нотатку. Натомість використайте Lightning zap. + Nutzap не вдався + + Надіслати %1$s sats, %2$d одержувачу + Надіслати %1$s sats, %2$d одержувачам + Надіслати %1$s sats, %2$d одержувачам + Надіслати %1$s sats, %2$d одержувачам + + Bitcoin chain бекенд не налаштовано + Не вдалося транслювати транзакцію + Не вдалося побудувати транзакцію + Не вдалося завантажити ваш Bitcoin баланс + Платіж надіслано, але квитанцію zap не вдалося опублікувати + + Платіж надіслано (%1$d з %2$d квитанцію опубліковано), але наступну квитанцію не вдалося опублікувати + Платіж надіслано (%1$d з %2$d квитанцій опубліковано), але наступну квитанцію не вдалося опублікувати + Платіж надіслано (%1$d з %2$d квитанцій опубліковано), але наступну квитанцію не вдалося опублікувати + Платіж надіслано (%1$d з %2$d квитанцій опубліковано), але наступну квитанцію не вдалося опублікувати + + Частка отримувача нижча за пиловий ліміт + Не вдалося підписати транзакцію + ~10 хв + ~30 хв + ~1 год + Швидко + Нормально + Повільно + %1$s · %2$s sat/vB · %3$s + + Поділ між %1$d отримувачем + Поділ між %1$d отримувачами + Поділ між %1$d отримувачами + Поділ між %1$d отримувачами + + + Пропуск %1$d отримувача, що має лише Lightning адресу — onchain потребує Nostr pubkey для отримання адреси. + Пропуск %1$d отримувачів, що мають лише Lightning адресу — onchain потребує Nostr pubkey для отримання адреси. + Пропуск %1$d отримувачів, що мають лише Lightning адресу — onchain потребує Nostr pubkey для отримання адреси. + Пропуск %1$d отримувачів, що мають лише Lightning адресу — onchain потребує Nostr pubkey для отримання адреси. + + + Використати %1$d-сторонній поділ zap цієї нотатки + Використати %1$d-сторонній поділ zap цієї нотатки + Використати %1$d-сторонній поділ zap цієї нотатки + Використати %1$d-сторонній поділ zap цієї нотатки + + трансляція + побудова транзакції + завантаження балансу + публікація квитанції + підпис + У цьому опитуванні можна голосувати тільки один раз + Відкрити всі реакції на цей допис + Відкриті + Порт Orbot Socks + Bitcoin Explorer (OTS) + Є доказ того, що ця публікація була підписана до %1$s. Доказ засвідчено в блокчейні Bitcoin на ту дату та час. + Доказ часової позначки + Relay для вихідних + Пароль обов'язковий + Пауза + Сплатити + Повідомлення від %1$s + Адреси для платежів + Додайте платіжні адреси для різних мереж (наприклад, bitcoin, lightning, ethereum). + PDF збережено до Downloads/Amethyst + Метадані списків підписок може бачити будь-хто у Nostr. Тільки ваші приватні учасники зашифровані. + Метадані списку підписок + Зображення + Закріпити вгорі + Закріпити у профілі + Відтворити + + %1$d епізод + %1$d епізоди + %1$d епізодів + %1$d епізоду + + Автор опитування не може голосувати + (0–100)% + Опитування закрито для нових голосів + Кілька відповідей + Варіант %1$s + Одна відповідь + Неможливо проголосувати + Опитування + Надіслати + + Цей пост містить більше ніж %1$d хештег + Цей пост містить більше ніж %1$d хештеги + Цей пост містить більше ніж %1$d хештегів + Цей пост містить більше ніж %1$d хештега + + Перегляд для %1$s + Параметри конфіденційності + Політика конфіденційності + <Не вдалося розшифрувати повідомлення>\n\nпВас згадали в приватному/зашифрованому чаті між %1$s і %2$s. + Relay-сервери для вхідних DM + Введіть від 1 до 3 relay-серверів для вашої приватної скриньки. Інші використовуватимуть ці relay-сервери для надсилання вам DM. Relay-сервери для вхідних DM мають приймати будь-які повідомлення від будь-кого, але дозволяти завантажувати їх лише вам. Гарні варіанти:\n - inbox.nostr.wine (платно)\n - auth.nostr1.com (безкоштовно)\n - you.nostr1.com (особисті relay-сервери — платно) + Користувач отримує DM на цих relay-серверах + Приватне повідомлення + Зробити приватним: надіслати нотатку у gift-wrap лише повідомленим користувачам + Відповіді на приватну нотатку завжди залишаються приватними + Видно для + Приватні домашні relay-сервери + Введіть від 1 до 3 relay-серверів для зберігання подій, які більше ніхто не може бачити, наприклад ваші чернетки та/або налаштування застосунку. В ідеалі ці relay-сервери мають бути локальними або вимагати автентифікації перед завантаженням вмісту кожного користувача. + Лайка / Образи + Профіль + Значки профілю + Рекомендації застосунків + Значки профілю + Стрічка підписників + Стрічка отриманих Zap + Інтерфейс профілю + профілі + Запропонувати редагування + Proxy relay-сервери + Агрегаторні relay-сервери, які застосунок має використовувати для завантаження ваших стрічок, наприклад filter.nostr.wine. Це замінює модель outbox і змусить застосунок підключатися лише до relay-серверів у ваших списках. + Публічний чат + Публічні чати видимі всім у Nostr, і кожен + може брати в них участь. Вони чудово підходять для відкритих спільнот за певними темами. + Модерацію можна здійснювати, видаляючи публікації на відповідних relay + Вкажіть від 1 до 3 relay, що розміщують цю групу. + Клієнти Nostr використовують це налаштування, щоб знати, звідки завантажувати повідомлення та куди їх надсилати. + Relay + Метадані публічного чату + Публічні чати + Публічні Outbox/домашні relay-сервери + Цей тип relay-серверів зберігає весь ваш вміст. Amethyst надсилатиме ваші публікації сюди, а інші використовуватимуть ці relay-сервери для пошуку вашого вмісту. Введіть від 1 до 3 relay-серверів. Це можуть бути особисті, платні або публічні relay-сервери. + Користувач публікує свій вміст на цих relay-серверах + Публічне повідомлення + Публічні relay-сервери для вхідних повідомлень + Цей тип relay-серверів отримує всі відповіді, коментарі, лайки та zap-и до ваших публікацій. Це можуть бути платні або безкоштовні relay-сервери. Обмеження, встановлені оператором relay-сервера, можуть як позитивно, так і негативно впливати на отримувані вами сповіщення. Наприклад, якщо вас атакують спамом у коментарях, платні relay-сервери можуть відфільтрувати його. Введіть від 1 до 3 relay-серверів. + Користувач отримує сповіщення на цих relay-серверах + Скопіювати ID запису + Видалити + Заглушити гілку + Поділитися + Поділитися посиланням + Увімкнути звук гілки + Реакція + Реакції + Панель реакцій + Читати з relay + Кількість байтів, отриманих від цього relay, включаючи фільтри та події + Користувач лише для читання + Натисніть і утримуйте, щоб записати повідомлення + Чат relay + Чати relay — це групи чатів, керовані їхнім домашнім relay. + Вони видимі всім у Nostr, і кожен може брати в них участь. + Вони чудово підходять для відкритих спільнот за певними темами. Деякі з цих груп є тимчасовими, + і тому повідомлення чату зникають з часом + Чати relay + Події + IP-адреси + Kinds + Користувачі + Налаштування + Налаштування relay-серверів + списки outbox + Relay-сервери + Поповнити & надіслати зап + Надіслати зап + Поповнити %1$s sats до %2$s і зап %3$s %4$s sats · комісія ≈ %5$s sats + Видалити + Прибрати з Публічних закладок + відповісти.. + Сповіщення: + + Запросити видалення + Запит на зникнення + Не вдалося скинути стан Marmot: %1$s + Скинути стан Marmot + Стан Marmot скинуто. + Повторити + Списки календарів + Календарі + Шахи + Відкрити + Головна + Імпортувати підписки + Повідомлення + Плейлисти + Музика + Сповіщення + Епізоди + Подкасти + Запланувати допис + Скасувати планування + Заплановані дописи можуть не опублікуватися, доки ви знову не відкриєте застосунок. Заплановані дописи інших акаунтів не виконуватимуться, доки активний цей акаунт. Увімкніть постійний режим у Налаштування → Параметри інтерфейсу для надійного планування у фоні. + Заплановані дописи можуть не опублікуватися, доки ви знову не відкриєте застосунок. Увімкніть постійний режим у Налаштування → Параметри інтерфейсу для надійного планування у фоні. + Заплановані публікації + Надіслати зараз + %1$s · через %2$s + %1$s · %2$s тому + Завтра + Помилка: %1$s + ID нотатки скопійовано + + Вихід виконано · %1$d запланований допис видалено + Вихід виконано · %1$d заплановані дописи видалено + Вихід виконано · %1$d запланованих дописів видалено + Вихід виконано · %1$d запланованих дописів видалено + + Вихід виконано + + У вас є %1$d запланований допис, який ще не опубліковано. Вихід з акаунта назавжди видалить його. + У вас є %1$d заплановані дописи, які ще не опубліковано. Вихід з акаунта назавжди видалить їх. + У вас є %1$d запланованих дописів, які ще не опубліковано. Вихід з акаунта назавжди видалить їх. + У вас є %1$d запланованих дописів, які ще не опубліковано. Вихід з акаунта назавжди видалить їх. + + Помилка запланованого допису + Запланований допис опубліковано + + на %1$d relay + на %1$d relay + на %1$d relay + на %1$d relay + + Скасовано + Помилка + Заплановано + Надсилається… + Надіслано + + · %1$d через 1 год + · %1$d через 1 год + · %1$d через 1 год + · %1$d через 1 год + + + %1$d у черзі + %1$d у черзі + %1$d у черзі + %1$d у черзі + + Гарні варіанти:\n%1$s + Relay-сервери для пошуку + Relay-сервери для пошуку + Список relay-серверів для пошуку вмісту або користувачів. Позначення та пошук не працюватимуть, якщо жодних варіантів немає. Переконайтесь, що вони підтримують NIP-50. + події для пошуку + Приватний ключ (nsec) скопійовано + Ви ще не заблокували жодного користувача. + Фільтри безпеки + Немає прихованих слів. Додайте слово нижче, щоб приховати пости, що містять його. + Заблокований вміст + Налаштування фільтрації + Жодних акаунтів не було позначено як спам у цій сесії. + Надіслати + Надсилати всі отримані події профілю (kind 0) до вашого локального relay-сервера + Пересилати профілі до локального relay-сервера + Доступно для цього отримувача: %1$s sats + Платіж не вдався + Транзакція: %1$s + Оплата через %1$s… + Сервер не задав URL після завантаження + Налаштування + Немає вимкнених тем + Вимкнені теми + Поділитися як зображення + Поділитися як URL зображення + HLS Upload + Поділитися або зберегти + Shorts + Показати QR-код зашифрованого приватного ключа + Включати особисті та групові повідомлення на вкладку «Сповіщення». Вимкніть, щоб залишити повідомлення лише на вкладці «Повідомлення». + Показувати повідомлення + Показати QR-код приватного ключа + Запит на підписання відхилено + Переконайтеся, що застосунок-підписант авторизував цю транзакцію + Зовнішній підписувач повернув дані, що не відповідають запиту. Можливо, є помилка в Amethyst або підписувачі. + Підписувач не знайдений + Чи не було видалено застосунок-підписувач? Перевірте, чи встановлено підписувач і чи є в ньому цей обліковий запис. Вийдіть і увійдіть знову, якщо застосунок-підписувач змінився. + Перемотати назад на %1$d секунд + Перемотати вперед на %1$d секунд + Застосунки + Спам + Кількість спам-подій, що надходять з цього relay + Спам + Показати дві вкладки сповіщень — «Стежу» (люди, за якими ви стежите) та «Усі». Індикатор непрочитаних світиться лише для активності від людей, за якими ви стежите. + Розділити сповіщення за підписками + Намагається видалити приватні метадані з підтримуваних медіафайлів перед вивантаженням + Видалити приватні метадані + Читає завершені тренування з Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) і пропонує поділитися ними як публікацією. Дозвіл запитується лише під час підключення. + Пропонувати тренування для поширення + Система + Оформлення + Темна, світла або системна тема + Це повідомлення зникне через %1$s + + +%1$d\\nвідповідь + +%1$d\\nвідповіді + +%1$d\\nвідповідей + +%1$d\\nвідповіді + + Сьогодні + Власний + Налаштуйте власний варіант + Стандартний + Приховати вашу IP-адресу від випадкових relay + Orbot + Повна приватність + Приховати вашу IP-адресу в усіх з'єднаннях + Вбудований + Вимкнено + Попередні налаштування Tor/конфіденційності + Швидко змінити всі налаштування нижче + Усе, крім медіа + Приховати вашу IP-адресу від усього, крім зображень і відео + DM Relay + Примусово використовувати Tor для надсилання та отримання DM + Зображення + Примусово використовувати Tor при завантаженні зображень + Завантаження медіа + Примусово використовувати Tor при завантаженні контенту + Грошові операції + Примусово використовувати Tor для zap, Lightning та Cashu переказів + Ненадійні relay + Примусово використовувати Tor для outbox/inbox relay + Верифікація Nostr-адреси + Примусово використовувати Tor при верифікації NIP-05 адрес + Onion URL/Relay + Використовувати Tor для будь-якого .onion URL + Фото профілю + Примусово використовувати Tor при завантаженні фото профілю + Надійні relay + Примусово використовувати Tor для всіх relay у ваших списках + Попередній перегляд URL + Примусово використовувати Tor при завантаженні попереднього перегляду URL + Відео + Примусово використовувати Tor при завантаженні відео + Базовий + Використовувати Tor, коли цього вимагає сервер + Не вдалося відкрити файл + Не встановлено жодного torrent-застосунку для відкриття та завантаження файлу. + Подія не містить достатньої інформації для створення magnet-посилання + Використовувати відстежувальний транслятор під час надсилання подій. Відображає живий прогрес та статус по кожному relay під час трансляції. + Відстежувані трансляції + Перекладати на + Оберіть мову, на яку перекладати вміст. + Переклади + Довірені relay-сервери + Relay-сервери, яким ви довіряєте і яким не потрібне підключення через Tor + Повний + Продуктивність + Спрощений + Параметри інтерфейсу + Режим інтерфейсу + Виберіть стиль публікації + Неможливо створити Lightning інвойс перед надсиланням зап. Lightning гаманець отримувача повернув таку помилку: %1$s + Не вдалося поділитися зображенням, спробуйте пізніше… + Не вдалося поділитися відео, спробуйте пізніше… + Несанкціоноване розшифрування + Підписувач не дозволив розшифрування, необхідне для виконання цієї операції. Активуйте NIP-44 розшифрування у вашому застосунку-підписувачі та спробуйте знову + Відписатися + Відкріпити + Відкріпити від профілю + Вивантаження скасовано + Помилка завантаження + Помилка завантаження голосу: %1$s + Не вдалося завантажити голосове повідомлення + NIP-95 ще не підтримується для голосових повідомлень + %1$d%% доступності + Активний рушій Tor + Використовувати вбудовану версію або Orbot + Користувач не встановив Lightning адресу для отримання чайових + Користувач %1$s не має налаштованої Lightning адреси для отримання sats + Історія зникнень + Запит на зникнення надіслано + Краща якість при менших розмірах файлів, але не всі пристрої підтримують відтворення H.265. + Використовувати кодек H.265/HEVC + Завантаження відео розпочато… + Кнопки відеоплеєра + Відео збережено до відеогалереї телефону + Голосова публікація + Глибокий + Високий + Нейтральний + Немає + Голосова відповідь + Гаманець + Cashu гаманець (NIP-60) + Wallet Connect + Постачальник підключення гаманця повернув наступну помилку: %1$s + Редагувати mints + Показує попередження, коли на пости або профілі надходять скарги від людей, за якими ви стежите + Попереджати про скарги + Додати веб-закладку + Редагувати веб-закладку + Веб-закладки + Що нового? + Тренування + Написати повідомлення… + Писати до relay + Кількість байтів, надісланих до цього relay, включаючи фільтри та події + Zap + Запи + + Перейменувати + Зберегти diff --git a/commonsUI/src/commonMain/composeResources/values-uz-rUZ/strings.xml b/commonsUI/src/commonMain/composeResources/values-uz-rUZ/strings.xml index d10513e480..fa26fb78b2 100644 --- a/commonsUI/src/commonMain/composeResources/values-uz-rUZ/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-uz-rUZ/strings.xml @@ -1785,4 +1785,1185 @@ Explorer API asosiy URL manzili DVM dan hisob-fakturani to'lash DVM ga %1$s sats to'lash + Haqida & Huquqiy + Hisob sozlamalari + Qo'shish + Blossom Serveri Qo'shish + NIP-96 Serveri Qo'shish + Yoqilganda, Amethyst siz nashr etgan voqealarga NIP-89 mijoz tegini qo'shadi. + Voqealarimga mijoz tegi qo'shish + Bu kontentni ko'rsatishdan oldin sezgir kontent ogohlantirishini qo'shadi + Sezgir kontent + Ommaviy Xatcho'plarga qo'shish + Matn tuzatishlar va ohang o'zgarishlarini taklif qilish uchun qurilmadagi AI modelidan foydalanadi. + Matn yaxshilanishlarini taklif qilish + Real vaqtli bildirishnomalar uchun kirish relaylaringizga ulanishni faol saqlaydi + + %1$d kirish relay'iga ulangan + %1$d kirish relay'lariga ulangan + + + %1$d relay'ga ulangan + %1$d relay'larga ulangan + + Kirish relaylariga ulanilmoqda… + Amethyst Bildirishnomalari Faol + Kiruvchi ovozli va video qo'ng'iroqlar uchun bildirishnomalar + Kiruvchi qo'ng'iroqlar + %1$s shaxmat taklifingizni qabul qildi + Shaxmat o'yini hodisalari haqida xabardor qiladi + Shaxmat + Shaxmat yangiliklari + %1$s yurdi — sizning navbatingiz + Shaxsiy xabar kelganda sizni xabardor qiladi + Shaxsiy Xabarlar + Yangi xabarlar + O'qilgan deb belgilash + Kimdir postda sizni eslatsa yoki iqtibos keltirsa xabardor qiladi + %1$s sizni eslatdi + Eslatmalar + Yangi eslatmalar + Kimdir postingizga reaktsiya bildirganda xabardor qiladi + %1$s postingizga reaktsiya bildirdi + uchun %1$s + Reaktsiyalar + Yangi reaktsiyalar + Kimdir postingizga javob berganda xabardor qiladi + Javoblar + Yangi javoblar + Javob berish + Rejalashtirilgan post nashr etilganda yoki nashr etilmaganda bildirishnomalar. + Rejalashtirilgan postlar + Kimdir sizga Zap yuborganda xabardor qiladi + uchun %1$s + Kimdan: %1$s + Qabul Qilingan Zaplar + Yangi Zaplar + Ilova sozlamalari + Tasdiqlash + Tasdiqlash so'rovi + Tasdiqlаgich malakasi + Tasdiqlаgich tavsiyasi + Audio vizualizator + Yozsangiz yoki yuborilmagan matn bilan kompositordan chiqib ketsangiz qoralama hodisasini avtomatik saqlaydi va shaxsiy chiqish relay laringizga yuboradi. + Avtomatik qoralamalar yaratish + Immersiv aylantirish + Aylantirish paytida navigatsiya panellarini yashirish + Rasm ko'rinishi + Rasmlar va GIFlarni avtomatik yuklash + Video ijro etish + Videolar va GIFlarni avtomatik yuklash + Profil rasmi + Profil rasmlarini ko'rsatish + URL ko'rinishi + URL ko'rinishlarini ko'rsatish + Videolarni avtomatik ijro etish + Ekranda ko'ringan videolarni avtomatik ijro etish + AVIF dan metama'lumotlarni olib bo'lmaydi: %1$s + Nishon berish + Orqaga + Kalitlarni zaxiralash + Nishonlar + Autentifikatsiya muvaffaqiyatsiz bo'ldi + Biometrik ma'lumotlar telefon egasini autentifikatsiya qila olmadi + Biometrik ma'lumotlar telefon egasini autentifikatsiya qila olmadi. Xato: %1$s + Bloklash + Bloklangan Relay lar + Amethyst bu relay larga hech qachon ulanmaydi + Bloklangan foydalanuvchilar + Yangi Xatcho'p Ro'yxati + Xatcho'p Ro'yxati Metama'lumotlari + Xatcho'p ro'yxatlari metama'lumotlarini Nostr dagi har kim ko'ra oladi. Faqat shaxsiy a'zolar shifrlangan. + Xatchо'plar + Targʻib qilish + Quyi navigatsiya paneli + Translyatsiya Relay lari + Sizning eslatmalaringizni boshqa barcha relay larga yuborishda ixtisoslashgan relay lar, masalan sendit.nosflare.com. Amethyst ushbu relay ni siz tomonidan qilingan barcha yangi hodisalarga qo'shadi + Brauzer + Sevimlilar + Ochiq internet orqali yuklanmoqda. Tor dan foydalanish uchun bosing. + Tor orqali yuklanmoqda. Ochiq internetdan foydalanish uchun bosing. + + %1$s, %2$d tadbir + %1$s, %2$d tadbir + + Rasmni yuklash muvaffaqiyatsiz bo'ldi + Tanlangan rasmni yuklab bo'lmadi. Qayta urinib ko'ring yoki URL manzilini joylashtiring. + Kalendar hodisasini ulashish + Xaritada ochish + Havolani ochish + Hozir bo'lyapti + %1$s · %2$s da tugaydi + + %1$d daqiqada boshlanadi + %1$d daqiqada boshlanadi + + Qatnashayotgan hodisa boshlanmoqda bo'lganda xabar. + Kalendar eslatmalari + Kalendar hodisasi + Qatnashayotgan hodisa boshlanmoqda bo'lganda bildirishnoma yuboriladi. + Eslatmalarni yuborish + + %1$d daq + %1$d daq + + Kalendar eslatmalari + Kun + Lenta + Oy + Hafta + Qabul qilish + Kamera o'chiq + Kamera yoqiq + Quloqchin + Tugatish + Kiruvchi qo'ng'iroq + Kiruvchi video qo'ng'iroq… + Kiruvchi ovozli qo'ng'iroq… + Ovozni o'chirish + Qo'ng'iroqlar + Davom etayotgan qo'ng'iroq bildirishномаsi + Amethyst video qo'ng'iroqni boshlash uchun kamera va mikrofonga kirish kerak. Iltimos, ilova sozlamalarida yoqing. + Amethyst ovozli qo'ng'iroqni boshlash uchun mikrofonga kirish kerak. Iltimos, ilova sozlamalarida yoqing. + Rad etish + Qo'ng'iroq Sozlamalari + Dinamik + Ovozni yoqish + %1$s bilan qo'ng'iroq + %1$s ning javobida qayta qo'ng'iroq URL si topilmadi + Bekor qilish + Mint tekshirilmoqda… + Cashu ni qaytarib bo'lmadi + Mint quyidagi xato xabarini yubordi: %1$s + Qabul qilindi + Yuborildi + Mos keladigan mintlar + + +%1$d ta ko'proq + +%1$d ta ko'proq + + Mashhur mintlar + + %1$d boshqa tomonidan tavsiya etilgan + %1$d boshqalar tomonidan tavsiya etilgan + + %1$s sat %2$s ga ko'chirildi. + Tizimda mos Cashu hamyoni topilmadi + + %1$d ta kutilayotgan hisob-faktura + %1$d ta kutilayotgan hisob-faktura + + %1$s sat + %2$s satgacha komissiya to'lansinmi? + %1$s ning kind:38000 tavsiyangiz uchun o'chirish so'rovini nashr eting. NIP-09 ni hurmat qiladigan relay lar uni o'chiradi. + %2$s isbotlar bo'yicha %1$s sats tiklandi. + Cashu qabul qilindi + %1$s sat hamyoningizga yuborildi. (To'lovlar: %2$s sat) + + Siz ishlatmaydigan %1$d mint da saqlanayotgan mablag'lar + Siz ishlatmaydigan %1$d ta mint da saqlanayotgan mablag'lar + + Hisob-faktura to'lanishi kutilmoqda… + Uzatishni to'xtatish + Qurilmaga uzatish + Bolalar Xavfsizligi Standartlari + Aksessuarlar + San'at + Kitoblar + Kiyim-kechak + Kolleksiya buyumlari + Hunarmandchilik + Elektronika + Oziq-ovqat + Mebel + Uy + Turli xil + Ofis + Boshqa + Uy hayvonlari + Sport + Kunlik + Oylik + Bir martalik + Haftalik + %1$s ni %2$s orqali to'laysizmi? + Bu hisob-fakturani %1$s orqali to'laysizmi? + Debet xizmati to'lovni amalga oshirmadi. + Bu taklif uchun to'g'ri miqdorni kiriting. + Hisob-faktura so'ralmoqda… + Bu postga barcha reaktsiyalarni yopish + Yopiq + Jamoalar + Qoralama %1$d bayt; ushbu hamjamiyat bu turni %2$d bayt bilan cheklaydi. + Qoralama %1$d bayt; ushbu hamjamiyat voqealarni %2$d bayt bilan cheklaydi. + Bugun bu turdan allaqachon %1$d ta voqea joylashtirgansiz (chegara %2$d). + Yozish sozlamalari + Standart port: 9050 + Ulangan Relay lar + Hozirda ishlatiladigan relay larning joriy ro'yxati + Relay ga muvaffaqiyatli ulanishlar foizi + Doimo + Hech qachon + Hisoblanmagan WiFi + Hujjat Qo'shish + Rasm Qo'shish + Media Qo'shish + Video Qo'shish + Yashirish + Ogohlantirish + Ko'rsatish + Suhbatlar + Kichikroq fayl hajmi va yaxshiroq ijro mosligini ta'minlash uchun animatsion GIF ni MP4 videoga aylantiradi. + GIF ni MP4 ga aylantirish + Eslatma identifikatori (@note1) buferga nusxalandi + Eslatma matni buferga nusxalandi + Buferga nusxalandi + Muallifning @npub manzili buferga nusxalandi + Mening maxfiy kalitimni nusxalash + Buferga nusxalash + Lightning manzilidan LNUrl yig'ib bo'lmadi "%1$s". Foydalanuvchi sozlamasini tekshiring + Yuklashdan keyin yuklab olingan faylni tekshirib bo'lmadi: %1$s + Serverdan yuklangan mediani yuklab bo'lmadi + %1$s dan hisob-faktura olishda xato: %2$s + Siqilgan faylni ochib bo'lmadi + Hamyon topilmadi + Amethyst Nostr Wallet Connect (NWC) ni qo'llab-quvvatlaydigan hech qanday hamyon ilovasini topa olmadi. +\n\nNima qilishingiz mumkin: +\n\t1. NWC qo'llab-quvvatlashini tekshirish: Tanlagan hamyon ilovangiz Nostr Wallet Connect bilan mos kelishini ikki marta tekshiring. +\n\t2. Ulanish yaratish: Hamyon ilovangizga o'ting va yangi NWC ulanishini yarating. +\n\t3. Amethyst ga bog'lash: Hamyoningiz odatda uchta variant taqdim etadi: +\n\t\t3.1 Avtomatik bog'lash: Amethyst ni avtomatik ochish va ulash tugmasi. Agar shunday bo'lsa, ushbu tugmani bosing, Amethyst ni oching va yangi ekranda saqlash tugmasini bosing. +\n\t\t3.2 Qo'lda bog'lash: Nusxa olishingiz va to'g'ridan-to'g'ri kiritish uchun ushbu ekrandagi joylashtirish belgisini bosishingiz mumkin bo'lgan Ulanish URI si. +\n\t\t3.3 QR kod: Hamyon ushbu ekrandagi QR kod tugmasidan o'qishingiz mumkin bo'lgan QR kod yaratadi. + + Yaratish + k + Xavfli zona + Qorong'u + Tavsif + Ommaviy qilish + Chatlar + Jamoalar + Tasma algoritmlari + Kuzatuv to'plamlari + Jonli efirlar + Bozor + O'qishlar + DM Kirish qutisi Relaylari + DMlar + Tarjima Qilmaslik + Bu yerda ko'rsatilgan tillar tarjima qilinmaydi. Tilni tanlang va uni olib tashlang, shunda u yana tarjima qilinadi. + Telefonга saqlash + Video yuklab olinmoqda… + Qoralama Eslatma + Qoralamalar + Hisoblar + Yaratish + Lentalar + Navigatsiya + Tizim + Siz + + %1$d kun + %1$d kun + + + %1$d soat + %1$d soat + + + %1$d daqiqa + %1$d daqiqa + + + %1$d oy + %1$d oy + + + %1$d hafta + %1$d hafta + + + %1$d yil + %1$d yil + + Kalendarni tahrirlash + Kalendar hodisasini tahrirlash + Jamoani tahrirlash + Emoji to'plamini tahrirlash + Playlisti tahrirlash + Postni Tahrirlash + Shaxsiy emojilar relay'larda shifrlangan holda saqlanadi va faqat sizga ko'rinadi. Ular ommaviy emojilar kabi munosabat menyungizda va ":" avtoto'ldiruvchida ko'rsatiladi. + Ommaviy emojilar hammaga ko'rinadi va bu to'plam emoji ro'yxatingizda bo'lsa, munosabat menyungizda va ":" avtoto'ldirish tanlagichida ko'rsatiladi. + Emojilar + Maxfiylik uchun yuklamasdan oldin fayllarni shifrlang. Ba'zi serverlar bepul hisoblarda shifrlangan fayllarni qabul qilmasligi mumkin. + Fayllarni shifrlash + Yo'qoladigan chat + Xato + Hisob-fakturani to'lab bo'lmadi + Yechib bo'lmadi + To'lovni ochib bo'lmadi + Zap yuborishda xato + Imzolash ilovasini ochishda xato + Imzolash ilovasi topilmadi. Ilova o'chirilmaganligini tekshiring + Xato xabarini tahlil qilishda xato + %1$s dan JSON tahlilida xato. Foydalanuvchining lightning sozlamasini tekshiring + Qabul qiluvchining serverlaridan hisob-faktura olishda xato + Brauzerda ochish + Bu videoni ijro etib bo'lmaydi + Kodek yoki format ushbu qurilmada qo'llab-quvvatlanmaydi (%1$s). Uni brauzeringizda ochib ko'ring. + Xatolar + Relay sinxronizatsiyasi + sizdan kelgan voqealar + sizga kelgan voqealar + Sirkuit + Velosiped minish + Parhez + Ro'za + Piyoda sayohat + Meditatsiya + Eshkak eshish + Yugurish + Kuch mashqlari + Suzish + Yurish + Kengaytirish + Muddati tugash sanasi + Relay sozlamalarini eksport qilish + O'chirishda xatolik: %1$s + Shaxsiy kalitni shifrlash muvaffaqiyatsiz bo'ldi + Rasmni saqlash muvaffaqiyatsiz tugadi + PDF ni saqlash muvaffaqiyatsiz tugadi + Videoni saqlash muvaffaqiyatsiz tugadi + Ko'plab serverlar bepul hisoblarda shifrlangan fayllarni qabul qilmaydi. Siz shifrlashsiz qayta urinib ko'rishingiz mumkin. + Shifrlangan yuklash muvaffaqiyatsiz tugadi + Yuklash xatosi: %1$s + Media yuklash muvaffaqiyatsiz tugadi + %1$s serveriga yuklash muvaffaqiyatsiz tugadi: %2$s + Sevimlilarga qo'shish + Ochiq internet orqali yuklanadi. + Tor orqali yuklanadi. + So'nggi + Sevimlilardan o'chirish + Bu ilova hali yuklanmagan. Bir ozdan so'ng qayta urinib ko'ring. + Sevimli ilovalar + Sevimli Tasma Algoritmlari + To'lov amalga oshirildi + Relaylarga e'lon qilindi + Fayl yuklandi + Sevimli Relay Tasmalar + Global tasmasini ko'rish uchun tez-tez boradigan relay laringiz + Jamoalar + Tasma Algoritmlari + Tasmalar + Xeshteglar + Qiziqish To'plamlari + Ro'yxatlar + Joylashuvlar + Relay lar + Fayl Serveri + Bu faylni yuklash uchun server tanlang + Noma'lum shaxslardan 5 yoki undan ko'p marta aynan bir xil bo'lgan postlarni yashiradi + Spamni filtrlash + Kuzatish + Orqaga kuzatish + Barcha sevimli tasma algoritmlari + Atrofimda + Tanlangan + Standart Kuzatuv Ro'yxati + Barcha Kuzatuvchilar + Barcha Foydalanuvchi Kuzatuvchilar + Menikilar + Soket Ro'yxati + Yangi Kuzatuv To'plami + Kuzatish To'plamini Tahrirlash + Kuzatish to'plami metama'lumotlarini Nostr dagi har kim ko'rishi mumkin va yangi foydalanuvchilar uchun boshlang'ich to'plamlar sifatida ko'plab veb-saytlarda tez-tez nashr etiladi. + Kuzatish To'plami Metama'lumotlari + Kuzatish to'plamlari + Yangi Kuzatuv Ro'yxati + Ro'yxatni tahrirlash + Profil galereyasi uslubi + Galereya uslubini tanlang + Klassik + Zamonaviy + Faqat joylashuv uchun post + Uni faqat joylashuv kuzatuvchilari ko'radi. Umumiy kuzatuvchilaringiz uni ko'rmaydi. + %2$s sats maqsadidan %1$s moliyalashtirildi + s + Bu kontent o'zgargan. Muallif o'zgarishni ko'rmagan yoki ma'qullamagan bo'lishi mumkin + Bu nima degani? + Bu kontent post beri o'zgarmagan + Salom %1$s, bu hali ham mavjudmi? + Yashirin so'zlar + Jamiyat NIP-9B qoidalar hujjatini nashr etganda va voqea uni bajarmaganida jamiyat tasmalaridan postlarni o'chiradi. Jamiyatda tuzilgan qoidalar bo'lmasa ta'sir qilmaydi. + Jamiyat qoidalarini buzuvchi postlarni yashirish + Parolni yashirish + %1$s yuklanmoqda (%3$d dan %2$d si) + Hammasi + Noto'g'ri So'rov - Server so'rovni qayta ishlay olmaydi yoki qayta ishlamoqchi emas. + Ruxsatsiz - Foydalanuvchi haqiqiy autentifikatsiya hisob ma'lumotlariga ega emas + To'lov Talab Etiladi - Server so'rovni bajarish uchun to'lov talab qiladi + Taqiqlangan - Foydalanuvchi so'rov qilish uchun kirish huquqlariga ega emas + Topilmadi - Server so'ralgan manzilni topa olmadi + Usul Ruxsat Etilmagan - Server so'rov usulini qo'llaydi, lekin maqsad resursini emas + Maqbul Emas - Server so'rovni qoniqtiradigan hech qanday kontent topa olmadi. + Proksi Autentifikatsiyasi Talab Etiladi - Foydalanuvchi haqiqiy autentifikatsiya hisob ma'lumotlariga ega emas + So'rov Vaqti Tugadi - Server boshqa birovni kutishda vaqt tugadi + Ziddiyat - Server resurs bilan ziddiyat mavjudligi sababli so'rovni bajara olmadi + Yo'q - So'ralgan kontent serverdan butunlay o'chirilgan va qayta tiklanmaydi + Uzunlik Talab Etiladi - Server belgilangan uzunlik talab qilgani uchun so'rovni rad etadi + Oldindan Shart Bajarilmadi - Sarlavha maydonlaridagi so'rovning oldindan shartlari server tomonidan bajarilmadi + Yuk Juda Katta - So'rov server belgilangan chegaralardan kattaroq va server uni qayta ishlashdan bosh tortadi + URI Juda Uzun - Mijoz tomonidan so'ralgan url server qayta ishlashi uchun juda uzun. + Qo'llab-quvvatlanmaydigan Media Turi - So'rov server qo'llab-quvvatlamaydigan media formatdan foydalanadi + Diapazon Qoniqarli Emas - Server so'rovning Range sarlavha maydonida ko'rsatilgan qiymatni bajara olmadi. + Kutish Bajarilmadi - Server Expect so'rov sarlavha maydoni tomonidan ko'rsatilgan talablarni bajara olmadi + Yangilash Talab Etiladi - Mijoz boshqa protokolga yangilanmasa, server joriy protokol yordamida so'rovni qayta ishlashdan bosh tortadi. + Ichki Server Xatosi - Server kutilmagan xatoga duch keldi va so'rovni bajara olmadi + Amalga Oshirilmagan - Server so'rovni bajara olmadi yoki so'rov usulini tanib olmadi + Yomon Shlyuz - Server shlyuz sifatida ishlaydi va xostdan noto'g'ri javob oldi + Xizmat Mavjud Emas - Bu ko'pincha server haddan tashqari yuklanganida yoki texnik xizmat ko'rsatish uchun o'chirilganida sodir bo'ladi + Shlyuz Vaqti Tugadi - Server shlyuz yoki proksi sifatida ishlayotgan edi va javob kutishda vaqti tugadi + HTTP Versiyasi Qo'llab-quvvatlanmaydi - Server so'rovdagi HTTP versiyasini qo'llamaydi + Variant Ham Muzokaralar Qiladi - Serverda ichki konfiguratsiya xatosi mavjud + Saqlash Yetarli Emas - Serverda so'rovni muvaffaqiyatli qayta ishlash uchun yetarli saqlash joyi yo'q + Cheksiz Tsikl Aniqlandi - Server so'rovni qayta ishlashda cheksiz tsiklni aniqladi + Tarmoq Autentifikatsiyasi Talab Etiladi - Tarmoqqa kirish uchun mijoz autentifikatsiya qilinishi kerak + Noqonuniy xatti-harakat + Rasm telefon foto galereysiga saqlandi + Soxtalashtirish + Kirish qutisi Relaylari + Noto'g'ri hisob-faktura miqdori (%1$s sat) %2$s dan. %3$s bo'lishi kerak edi + Indeksator Relay lar + Hamma metama'lumotlar va relay ro'yxatlarini saqlashda ixtisoslashgan relay lar, masalan purplepag.es. Amethyst ro'yxatlaringizda bo'lmagan foydalanuvchilarni topish uchun ushbu relay lardan foydalanadi. + Yangi Qiziqish To'plami + Nomini o'zgartirish + Xeshteg To'plamlari + Noto'g'ri kalit + Noto'g'ri kalit: %1$s + Noto'g'ri manzil + Amethyst ochish uchun URI qabul qildi, lekin u URI noto'g'ri edi: %1$s + Qoralama eslatmasini iqtibos qilish mumkin emas + Qoralama eslatmasiga munosabat bildirish mumkin emas + Qoralama eslatmasiga javob berish mumkin emas + Qoralama eslatmasiga Zap berish mumkin emas + Kalit talab etiladi + KeyPackage Relay lari + Sizning MLS KeyPackage laringiz nashr etiladigan relay lar (MIP-00). Boshqa foydalanuvchilar sizni Marmot guruh chatlariga taklif qilish uchun ushbu KeyPackage larni oladi. Sizdan KeyPackage hodisalarini qabul qiladigan va ommaviy o'qishga ruxsat beradigan 1–3 ta relay kiriting. + KeyPackage lar + Qabul qilingan nishonlar to'plami + Sarguzasht kirish qismi + Sarguzasht o'qish + Sarguzasht sahnasi + Ilova tavsiyalari + Uchrashuv + Ilovalar + Uchrashuv RSVP + Audio sarlavha + Audio trek + Muallif podcastlari + Nishon mukofotlari + Nishon ta'riflari + Blob ma'lumotlari + Blob sarlavhalari + Bloklangan relaylar + Bloglar + Blossom serverlari + Xatcho'p ro'yxati + Uzatish relaylari + Taqvim + Kanal ta'rifi + Kanal xabarini yashirish + Kanal ro'yxati + Kanal xabari + Kanal metama'lumotlari + Kanalda foydalanuvchini jim qilish + Shaxmat Auth + Shaxmat chaqiruvlari + Shaxmat durrang taklifi + Shaxmat o'yinini qabul qilish + Shaxmat o'yini tugashi + Shaxmat o'yinlari + Shaxmat yurishi + E'lonlar + Izohlar + Hamjamiyat ta'rifi + Hamjamiyat ro'yxati + Hamjamiyat posti + Aloqa kartasi + Kunlik uchrashuv + O'chirishlar + DM fayli + DM xabari + DM relaylari + Qoralamalar + DVM kontent so'rovi + DVM kontent javobi + DVM holati + DVM foydalanuvchi so'rovi + DVM foydalanuvchi javobi + Tahrirlashlar + Emoji to'plami ro'yxati + Emoji to'plamlari + Vaqtinchalik chat + Vaqtinchalik chat xonalari + Sevimli podcastlar + Sevimli relaylar + Fayl sarlavhalari + Fayl serverlari + Kuzatuvchilar ro'yxati + Kuzatuv to'plamlari + Geohash kuzatuvi + GiftWraplar + Git muammosi + Git yamasi + Git javobi + Git reposi + Xeshteg kuzatuvi + Ta'kidlashlar + Indeks relay ro'yxati + Jonli chatlar + Jonli efirlar + Tibbiy ma'lumotlar + Uchrashув xonasi + Uchrashuv maydoni + Musiqa pleylist + Musiqa treki + Jim qilish ro'yxati + Nomlangan xatcho'plar + Nests serverlari + NIP-04 DMlar + Nostr ulanish + Eslatmalar + NWC so'rovi + NWC javobi + Eski xatcho'p ro'yxati + Chiqish relaylari + Odamlar ro'yxati + Rasmlar + Pinlar + Podcast epizodi + Podcast ko'rsatuvi + So'rovnoma + So'rovnoma javobi + Shaxsiy relaylar + Shaxsiy Zaplar + Profil + Profil nishonlari + Profil galereyasi + Proksi relaylar + Ommaviy xabar + Reaksiyalar + Relay autentifikatsiyasi + Relay kashfiyoti + Relay monitor e'loni + Relay to'plami + Hisobotlar + Qayta ulashishlar + Qayta ulashishlar (16) + Xona mavjudligi + Muhrlar + Qidiruv relaylari + Torrent izohlari + Torrentlar + Ishonchli ta'minotchilar + Ishonchli relaylar + Foydalanuvchini o'chirish + Foydalanuvchi sozlamalari + Foydalanuvchi holati + Ovozli xabar + Ovozli javob + Veb xatcho'p + Mashqlar + Zap maqsadlari + Zap so'rovnomasi + Zap so'rovi + Zaplar + Ma'lum + Til Ko'rsatish Afzalliklari + Har bir tarjima qilingan til juftligi uchun qaysi tilni birinchi ko'rsatishni tanlang. + Oxirgi faollik %1$s oldin + Hozir ko'rildi + Hech qachon ko'rilmagan + Oxirgi faollik %1$s da (%2$s oldin) + Chiqish + Yorug' + Jonli efirlar + Mahalliy Relay lar + Ushbu qurilmada ishlaydigan relay lar ro'yxati. + Sizda ommaviy kalit faol. Ommaviy kalitlar orqali faqat o‘qish mumkin. Postni targ‘ib qilish uchun, maxfiy kalit bilan avtorizatsiyadan o‘ting + Siz ommaviy kalitdan foydalanmoqdasiz va ommaviy kalitlar faqat o‘qish huquqiga ega. Obuna bo‘lish uchun shaxsiy kalit bilan tizimga kiring + Siz ochiq kalitdan foydalanayapsiz va ochiq kalitlar faqat o'qish uchun. So'z yoki jumlani yashirish uchun shaxsiy kalit bilan kiring + Sizda ommaviy kalit faol. Ommaviy kalitlar orqali faqat o‘qish mumkin. Xabar yozish uchun, maxfiy kalit bilan avtorizatsiyadan o‘ting + Siz ochiq kalitdan foydalanayapsiz va ochiq kalitlar faqat o'qish uchun. Zap yuborish uchun shaxsiy kalit bilan kiring + Siz ochiq kalitdan foydalanayapsiz va ochiq kalitlar faqat o'qish uchun. So'z yoki jumlani ko'rsatish uchun shaxsiy kalit bilan kiring + Siz ommaviy kalitdan foydalanmoqdasiz va ommaviy kalitlar faqat o‘qish huquqiga ega. Xabarlarni imzolash uchun shaxsiy kalit bilan tizimga kiring + Siz ochiq kalitdan foydalanayapsiz va ochiq kalitlar faqat o'qish uchun. Kuzatishni bekor qilish uchun shaxsiy kalit bilan kiring + Siz ommaviy kalitdan foydalanmoqdasiz va ommaviy kalitlar faqat o‘qish huquqiga ega. Yuklash uchun shaxsiy kalit bilan tizimga kiring + Sizda ommaviy kalit faol. Ommaviy kalitlar orqali faqat o‘qish mumkin. Postga reaksiya qilish uchun, maxfiy kalit bilan avtorizatsiyadan o‘ting + Videolar + d + Mening emoji to'plamlarim + %1$s qo'shilmoqda… + Admin huquqlari berildi + Admin huquqlari qaytarib olindi + %1$s ni qo'shish muvaffaqiyatsiz: %2$s + Guruh yaratish muvaffaqiyatsiz: %1$s + Admin huquqini berish muvaffaqiyatsiz: %1$s + Guruhni tark etish muvaffaqiyatsiz: %1$s + A'zoni olib tashlash muvaffaqiyatsiz: %1$s + Admin huquqini qaytarib olish muvaffaqiyatsiz: %1$s + Yangilash muvaffaqiyatsiz: %1$s + MLS guruhi + Guruh ma'lumotlari yangilandi + + %1$d a'zo + %1$d a'zo + + A'zo olib tashlandi + + %1$d xabar + %1$d xabar + + Ushbu guruh a'zosi emas + noma'lum xato + Media qo'shildi + Media profil galereyangizga qo'shildi + Media yuklab olish boshlandi… + Media Serverlari + Media NIP-95 uchun juda katta + Avval xabar manzilini kiriting + Yuklash mumkin emas + Mavzu + Metama'lumotlarni olib bo'lmadi + Mediadan shaxsiy metama'lumotlarni olib bo'lmadi. Yuklash bekor qilindi. + Xatchо'plar muvaffaqiyatli ko'chirildi + Lightning sozlamasi yo'q + Boshqa variantlar + Shaxsiyga o'tkazish + Ommaviyga o'tkazish + Muqova rasmini yuklash + Bu playlist uchun muqova bo'lishi uchun kvadrat rasm tanlang. + + +%1$d ta trek ko'proq + +%1$d ta trek ko'proq + + + %1$d trek + %1$d trek + + + %1$d trek + %1$d trek + + Muqova yuklanmoqda va nashr etilmoqda. Ekrandan chiqqan bo'lsangiz ham davom etadi. + Audio faylni yuklash + MP3, WAV yoki FLAC tanlang. Saqlashda media serveringizga yuklanadi. + Muqova rasmini yuklash + Bu track uchun muqova bo'lishi uchun kvadrat rasm tanlang. + Muqova va audio yuklanmoqda va nashr etilmoqda. Ekrandan chiqqan bo'lsangiz ham davom etadi. + Ovoz yoqilgan. Ovozsiz qilish uchun bosing + Ovozsiz. Ovozni yoqish uchun bosing + Mening Ro'yxatlarim + Nom talab etiladi + %1$d ms + Namecoin sozlamalari + Shaxsiyat + Ochiq kalitingizni o'qish + Xabar almashish + Boshqa nappletlar bilan xabar almashish + Klaviatura amallari + Klaviatura yorliqlarini bog'lash + Bildirishnomalar + Sizga bildirishnomalar ko'rsatish + Relaylar + Voqealaringizni o'qish, imzolash & nashr etish + Tarmoq + Veb va Blossom resurslarini olish + Saqlash + O'zining xususiy saqlash joyi + Mavzu + Ilovangiz ranglariga moslashish + Yuklamalar + Media serveringizga fayllar yuklash + To'lovlar + Lightning hisob-fakturalarini to'lash + Bu nApplet ochiq kalitingizni o'qishni xohlaydi. + Bu nApplet profilingiz va hisob ma'lumotlaringizni o'qishni xohlaydi. + Bu nApplet sizga bildirishnomalar ko'rsatishni xohlaydi. + + Bu nApplet %1$d sat uchun Lightning hisob-fakturasini to'lamoqchi. + Bu nApplet %1$d sats uchun Lightning hisob-fakturasini to'lamoqchi. + + Bu nApplet sizning nomingizdan %1$d turdagi voqeani imzolash va nashr etishni xohlaydi. + Bu nApplet sizning nomingizdan shifrlangan voqea yuborishni xohlaydi. + Bu nApplet sizning nomingizdan %1$d turdagi voqeani imzolash va nashr etishni xohlaydi: + Bu nApplet relaylaringizdan voqealarni o'qishni xohlaydi. + Bu nApplet veb resursini olishni xohlaydi. + Bu sayt Nostr kalitingiz bilan %1$d turdagi voqeani imzolashni xohlaydi. + Bu nApplet o'zining xususiy saqlash joyidan foydalanishni xohlaydi. + Bu nApplet media serveringizga fayl yuklashni xohlaydi. + nAppletlar + Xabar yuborib bo'lmadi + Bu notiqni jimlatish + Bu notiqni tiklash + Chiqish + Xonani yopiq deb belgilab bo'lmadi. Baribir chiqilmoqda — xona avtomatik yopiladi. + + %1$d tinglovchi + %1$d tinglovchi + + Qo'lni tushirish + Mikrofon ovozini o'chirish + Mikrofon ovozini yoqish + Ovozni o'chirish + Nest server ro'yxatingizni saqlash muvaffaqiyatsiz tugadi. Qayta urinib ko'ring. + Nest — Jonli + Nestlar + Xona ochiq bo'lganda audio ijrosini davom ettiradi. + Nest ulandi + To'xtatish + Qaytish uchun bosing. + Kuzatish + Ovozini o'chirish + Kuzatishni to'xtatish + Ovozini yoqish + nestni tark etdi + auditoriya sifatida qo'shildi + sahnaga chiqdi + qo'lini ko'tardi + gapiryapti + Qo'l ko'tarish + Ovozni yoqish + Nestlar + Boshqa mijozlar sozlamasini o'qiy olishi uchun kind-10112 almashtiriladigan voqea sifatida saqlanadi. + Sizning serverlaringiz + Bir marta bosib ro'yxatingizga qo'shishingiz mumkin bo'lgan o'rnatilgan takliflar. + Tavsiya etilgan serverlar + Nest serverlari + hech qachon + Yangi nishon + Yangi kalendar + Yangi kalendar hodisasi + Yangi jamoa + Moderatorlar + Relaylar + Taqiqlangan foydalanuvchilar + Jamoa izohi (1111) + Uzun maqola (30023) + Rasm posti (20) + Qisqa matn (1) + Qisqa video (22) + Video posti (21) + Ruxsat etilgan hodisa turlari + Global maksimal hodisa hajmi (ixtiyoriy) + Tekshiriladigan qoidalar (ixtiyoriy) + Ishonch tarmog'i eshigi (ixtiyoriy) + Yangi emoji to'plami + Yangi maqsad + Yangi maqola + Yangi pleylist + Yangi musiqa trek + Yangi mahsulot + Yangi so'rovlar + Yangi mavzular + Yangi mashq + + %1$d ta aktivni o'z ichiga oladi + %1$d ta aktivni o'z ichiga oladi + + Blossom ilovalari topilmadi. Bu faylni ko'rish uchun mahalliy Blossom ilovasini o'rnating + Blossom havolalarini ochib bo'lmaydi + Bu qurilmada kamera ilovasi topilmadi + Lightning manzili o'rnatilmagan + Bu to'lovni qayta ishlash uchun ilova topilmadi. Mos hamyonni o'rnating. + %1$s to'lovlarni qayta ishlash uchun o'rnatilgan ilova yo'q. Mos hamyonni o'rnating. + Bu foydalanuvchi uchun reaktsiya turlari oldindan tanlanmagan. O'zgartirish uchun yurak tugmasini uzoq bosib turing + Reaktsiyalar sozlanmagan + Lightning hisob-fakturasini to'lash uchun hamyon topilmadi. Zap lardan foydalanish uchun Lightning hamyonini o'rnating + Lightning hisob-fakturasini to'lash uchun hamyon topilmadi (Xato: %1$s). Zap lardan foydalanish uchun Lightning hamyonini o'rnating + Zap miqdori o'rnatilmagan. O'zgartirish uchun uzoq bosing + Bildirishnomalar + Kategoriyalar + Yetkazib berish + Ilova ichida ko'rsatish + hozir + Nowhere san'ati + Nowhere drop + Nowhere tadbirи + Nowhere forumi + Nowhere mablag' yig'ish + Nowhere sayti + Nowhere xabari + Nowhere petitsiyasi + Nowhere do'koni + nSitelar + Yalang'ochlik + Voqea havolasini yaratib bo'lmadi + Eslatmada qabul qiluvchi pubkey yo'q + Nutzaplar ommaviy bo'lib, bu shaxsiy eslatmani oshkor qiladi. Uning o'rniga Lightning zap dan foydalaning. + Nutzap muvaffaqiyatsiz tugadi + + %1$s sats jo'natish, %2$d yo'l + %1$s sats jo'natish, %2$d yo'l + + Bitcoin zanjir backend sozlanmagan + Tranzaksiyani tarqatib bo'lmadi + Tranzaksiyani tuzib bo'lmadi + Bitcoin balansingizni yuklab bo'lmadi + To'lov yuborildi, lekin zap cheki nashr etilmadi + + To'lov yuborildi (%1$d / %2$d kvitansiya nashr etildi), lekin keyingi kvitansiya nashr etilmadi + To'lov yuborildi (%1$d / %2$d kvitansiya nashr etildi), lekin keyingi kvitansiya nashr etilmadi + + Qabul qiluvchi ulushi chang chegarasidan past + Tranzaksiyani imzolab bo'lmadi + ~10 daqiqa + ~30 daqiqa + ~1 soat + Tez + Sekin + + %1$d qabul qiluvchi o'rtasida bo'linma + %1$d qabul qiluvchi o'rtasida bo'linma + + + %1$d ta faqat Lightning-manzilli qabul qiluvchi o'tkazib yuborildi — zanjir bo'yicha manzilni olish uchun Nostr umumiy kaliti kerak. + %1$d ta faqat Lightning-manzilli qabul qiluvchilar o'tkazib yuborildi — zanjir bo'yicha manzilni olish uchun Nostr umumiy kaliti kerak. + + + Bu notaning %1$d tomonlama Zap bo'linmasidan foydalanish + Bu notaning %1$d tomonlama Zap bo'linmasidan foydalanish + + tarqatilmoqda + tranzaksiya qurilmoqda + balans yuklanmoqda + kvitansiya nashr etilmoqda + imzolanmoqda + Bu turdagi so'rovnomada foydalanuvchi boshiga faqat bitta ovoz ruxsat etiladi + Bu postga barcha reaktsiyalarni ochish + Ochiq + Orbot Socks Porti + Ushbu post %1$s dan oldin imzolanganligi isboti mavjud. Isbot o'sha sana va vaqtda Bitcoin blokchain da muhrlangan. + Vaqt Tamg'asi Isboti + Chiqish qutisi Relaylari + Parol talab etiladi + Pauza + To'lash + %1$s dan xabar + To'lov Manzillari + Turli tarmoqlar uchun to'lov manzillarini qo'shing (masalan, bitcoin, lightning, ethereum). + PDF Downloads/Amethyst ga saqlandi + Kuzatish ro'yxatlari metama'lumotlarini Nostr dagi har kim ko'rishi mumkin. Faqat shaxsiy a'zolaringiz shifrlangan. + Kuzatish Ro'yxati Metama'lumotlari + Rasmlar + Tepaga mahkamlash + Profilga mahkamlash + Ijro etish + + %1$d epizod + %1$d epizod + + So'rovnoma mualliflari o'z so'rovnomalarida ovoz bera olmaydi. + So'rovnoma yangi ovozlarga yopildi + Ko'p tanlov + %1$s variant + Yagona tanlov + Ovoz berish imkonsiz + So'rovlar + + Bu postda %1$d tadan ortiq hashtag mavjud + Bu postda %1$d tadan ortiq hashtaglar mavjud + + %1$s uchun oldindan ko'rish kartasi tasviri + Maxfiylik Sozlamalari + Maxfiylik Siyosati + <Shaxsiy xabarni shifrlash imkonsiz>\n\nSiz %1$s va %2$s o'rtasidagi shaxsiy/shifrlangan suhbatda tilga olindingiz. + DM Kiruvchi Relay lar + Shaxsiy qutingiz sifatida 1–3 ta relay kiriting. Boshqalar sizga DM yuborish uchun ushbu relay lardan foydalanadi. DM Kiruvchi relay lar har qanday kishidan har qanday xabarni qabul qilishi, lekin faqat sizga yuklab olishga ruxsat berishi kerak. Yaxshi variantlar:\n - inbox.nostr.wine (pullik)\n - auth.nostr1.com (bepul)\n - you.nostr1.com (shaxsiy relay lar - pullik) + Foydalanuvchi ushbu relay larda DM larni qabul qiladi + Shaxsiy Xabar + Shaxsiy qilish: eslatmani faqat xabardor qilingan foydalanuvchilarga o'rab yuborish + Shaxsiy eslatmaga javoblar doimo shaxsiy qoladi + Ko'rinadi + Shaxsiy Bosh Relay lar + Qoralamalar va/yoki ilova sozlamalari kabi hech kim ko'ra olmaydigan hodisalarni saqlash uchun 1–3 ta relay kiriting. Ideali, bu relay lar mahalliy yoki har bir foydalanuvchi mazmunini yuklab olishdan oldin autentifikatsiya talab qiluvchi bo'lishi kerak. + Qo'pol so'z / Nafratli nutq + Profil + Profil nishonlari + Ilova tavsiyalari + Profil nishonlari + Kuzatuvchilar lentasi + Qabul qilingan Zap lentasi + Profil interfeysi + profillar + Tahrir taklif qilish + Proksi Relay lar + Ilovaning tasmalangizni yuklab olish uchun foydalanishi kerak bo'lgan agregator relay lar, masalan filter.nostr.wine. Bu chiqib ketish modelini almashtiradi va ilovani faqat ro'yxatlaringizdagi relay larga ulanishga majbur qiladi. + Ommaviy chat + Ommaviy chatlar Nostr dagi hamma uchun ko'rinadi va har kim + ularda ishtirok eta oladi. Ular muayyan mavzular bo'yicha ochiq jamoalar uchun juda mos keladi. + Moderatsiya relay'larida postlarni o'chirish orqali boshqarilishi mumkin + Ushbu guruhni joylashtiradigan 1-3 ta relay kiriting. + Nostr klientlari xabarlarni qayerdan yuklab olishini va xabarlaringizni qayerga yuborishini bilish uchun ushbu sozlamadan foydalanadi. + Relay lar + Ommaviy chat metama'lumotlari + Ommaviy chatlar + Umumiy chiqish/Asosiy Relaylar + Bu relay turi barcha kontentingizni saqlaydi. Amethyst postlaringizni bu yerga yuboradi va boshqalar kontentingizni topish uchun ushbu relaylardan foydalanadi. 1–3 relay kiriting. Ular shaxsiy relaylar, pullik relaylar yoki umumiy relaylar bo'lishi mumkin. + Foydalanuvchi kontentini ushbu relaylarga joylashtirmoqda + Ommaviy Xabar + Umumiy kirish qutisi Relaylari + Ushbu relay turi sizning postlaringizga barcha javoblar, izohlar, yoqtirishlar va Zap larni qabul qiladi. Ular pullik yoki bepul relay lar bo'lishi mumkin. Relay operatori tomonidan belgilangan cheklovlar siz qabul qiladigan bildirishnomalarni yaxshi yoki yomon tomonga cheklashi mumkin. Masalan, agar siz izoh spami hujumiga uchrasangiz, pullik relay lar spamni filtrlashi mumkin. 1–3 ta relay kiriting. + Foydalanuvchi ushbu relaylarda bildirishnomalar qabul qilmoqda + Eslatma identifikatori + O'chirish + Mavzuni o'chirish + Ulashish + Brauzer havolasini ulashish + Mavzuning ovozini yoqish + Reaksiya + Reaktsiyalar + Reaktsiya qatori + Relay'dan o'qish + Bu relay'dan olingan baytlar miqdori, filtrlar va voqealarni o'z ichiga oladi + Faqat o'qish foydalanuvchisi + Xabar yozib olish uchun bosib ushlab turing + Relay chati + Relay chatlari o'z uy relay'lari tomonidan boshqariladigan chat guruhlaridir. + Ular Nostr dagi hamma uchun ko'rinadi va har kim ularda ishtirok eta oladi. + Ular muayyan mavzular bo'yicha ochiq jamoalar uchun juda mos keladi. Bu guruhlarning bir qismi vaqtinchalik bo'lib, + shuning uchun chat xabarlari vaqt o'tishi bilan yo'qoladi + Relay chatlari + Hodisalar + IP lar + Turlar + Foydalanuvchilar + Sozlamalar + Relay sozlamalari + chiqish ro'yxatlari + Relay'lar + To'ldirish & zap yuborish + Zap yuborish + %2$s ga %1$s sats to'ldirish va %3$s ga %4$s sats zap · to'lov ≈ %5$s sats + O'chirish + Ommaviy Xatcho'plardan olib tashlash + bu yerga javob yozing… + Xabar berish: + + Oʻchirishni soʻrash + Yo'q bo'lib ketish so'rovi + Marmot holatini tiklashda xato: %1$s + Marmot holatini tiklash + Marmot holati tiklandi. + Qayta Urinish + Taqvim ro'yxatlari + Taqvimlar + Shaxmat + Kashf etish + Bosh sahifa + Kuzatuvlarni import qilish + Xabarlar + Pleylistlar + Musiqa + Bildirishnomalar + Epizodlar + Podkastlar + Postni rejalashtirish + Rejalashtirishni bekor qilish + Rejalashtirilgan postlar ilovani qayta ochguncha nashr etilmasligi mumkin. Bu hisob faol bo'lsa, boshqa hisoblarning rejalashtirilgan postlari ishlamasligi mumkin. Ishonchli fon rejalashtirilishi uchun Sozlamalar → Interfeys sozlamalari bo'limida doimiy rejimni yoqing. + Rejalashtirilgan postlar ilovani qayta ochguningizcha nashr etilmasligi mumkin. Ishonchli fon rejalashtirilishi uchun Sozlamalar → Interfeys sozlamalari bo'limida doimiy rejimni yoqing. + Rejalashtirilgan postlar + Hozir yuborish + %1$s · %2$s ichida + %1$s · %2$s oldin + Ertaga + Xato: %1$s + Eslatma identifikatori nusxalandi + + Chiqildi · %1$d rejalashtirilgan post o'chirildi + Chiqildi · %1$d rejalashtirilgan postlar o'chirildi + + Tizimdan chiqildi + + Hali nashr etilmagan %1$d ta rejalashtirilgan postingiz bor. Chiqish uni butunlay o'chiradi. + Hali nashr etilmagan %1$d ta rejalashtirilgan postlaringiz bor. Chiqish ularni butunlay o'chiradi. + + Rejalashtirilgan post muvaffaqiyatsiz bo'ldi + Rejalashtirilgan post nashr etildi + + %1$d relay'ga + %1$d relay'ga + + Bekor qilindi + Muvaffaqiyatsiz + Rejalashtirilgan + Yuborilmoqda… + Yuborildi + + · %1$d ta 1 soatda muddati tugaydi + · %1$d ta 1 soatda muddati tugaydi + + + %1$d ta navbatda + %1$d ta navbatda + + Yaxshi variantlar:\n%1$s + Qidiruv Relaylari + Qidiruv Relay lari + Kontent yoki foydalanuvchilarni qidirishda foydalaniladigan relay lar ro'yxati. Agar variantlar mavjud bo'lmasa, teglar va qidiruv ishlamaydi. Ular NIP-50 ni amalga oshirishiga ishonch hosil qiling. + qidiriluvchi voqealar + Maxfiy kalit (nsec) buferga nusxalandi + Siz hali hech qanday foydalanuvchini bloklamagansiz. + Xavfsizlik filtrlari + Yashirilgan so'zlar yo'q. Uni o'z ichiga olgan postlarni yashirish uchun quyida so'z qo'shing. + Bloklangan kontent + Filtrlash sozlamalari + Bu sessiyada spam sifatida belgilangan hisob yo'q. + Yuborish + Barcha qabul qilingan profil (kind 0) hodisalarini mahalliy relay ingizga yuboring + Profillarni mahalliy relay ga yo'naltirish + Ushbu qabul qiluvchi uchun sarflanishi mumkin: %1$s sats + To'lov amalga oshmadi + Tranzaksiya: %1$s + %1$s orqali to'lanmoqda… + Server yuklashdan keyin URL manzil bermadi + Sozlamalar + Ovozsiz iplar yo'q + Ovozsiz iplari + Rasm sifatida ulashish + Rasm URL sifatida ulashish + HLS yuklash + Ulashish yoki saqlash + Shortslar + Shifrlangan shaxsiy kalit QR kodini ko'rsatish + Bildirishnoma yorlig'iga to'g'ridan-to'g'ri va guruh xabarlarini kiriting. Xabarlarni faqat Xabarlar yorlig'ida saqlash uchun o'chiring. + Xabarlarni Ko'rsatish + Shaxsiy kalit QR kodini ko'rsatish + Imzo so'rovi rad etildi + Imzolash ilovasi ushbu tranzaksiyaga ruxsat berganligini tekshiring + Tashqi imzolash dasturi so'rov uchun g'alati javob qaytardi. Amethyst yoki imzolash dasturida xato bo'lishi mumkin. + Imzolovchi ilova topilmadi + Imzolovchi ilova oʻchirib tashlandimi? Imzolovchi oʻrnatilganligini va ushbu hisobga ega ekanligini tekshiring. Agar imzolovchi ilova oʻzgargan boʻlsa, tizimdan chiqing va qayta kiring. + %1$d soniya orqaga o'tish + %1$d soniya oldinga o'tish + Ilovalar + Spam + Ushbu relaydan kelayotgan spam vaziyatlarining soni + Spamchilar + Ikki bildirishnoma yorlig'ini ko'rsatish — Kuzatilayotganlar (siz kuzatadigan odamlar) va Hamma. O'qilmagan ko'rsatkich faqat kuzatadigan odamlaringizdan faollik uchun yonadi. + Bildirishnomalarni Kuzatilayotganlar bo'yicha ajratish + Yuklashdan oldin qo'llab-quvvatlanadigan media fayllardan shaxsiy metama'lumotlarni olib tashlashga harakat qiladi + Shaxsiy metama'lumotlarni olib tashlash + Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) dan tugallangan mashg'ulotlarni o'qib, ularni post sifatida ulashishni taklif qiladi. Ruxsat faqat ulanganingizda so'raladi. + Ulashish uchun mashg'ulotlar taklif qilish + Tizim + Mavzu + Qorong'u, yorug' yoki tizim mavzusi + Ushbu xabar %1$s da yo'qoladi + + +%1$d\njawob + +%1$d\njawoblar + + Bugun + Maxsus + O'zingiznikini yarating + Standart + IP manzilingizni tasodifiy relaylardan yashiring + To'liq Maxfiylik + IP manzilingizni barcha ulanishlardan yashiring + Ichki + O'chiq + Tor/Maxfiylik Oldindan Sozlamalari + Quyidagi barcha sozlamalarni tezda o'zgartiring + Media Tashqari Hammasi + IP manzilingizni rasm va videolardan tashqari hamma narsadan yashiring + DM Relaylar + DM yuborish va qabul qilish uchun Tor'ni majburlang + Rasmlar + Rasmlarni yuklashda Tor'ni majburlang + Media Yuklash + Kontent yuklashda Tor'ni majburlang + Pul Operatsiyalari + Zap, lightning va Cashu o'tkazmalari uchun Tor'ni majburlang + Ishonilmagan Relaylar + Chiqish/kirish relaylarda Tor'ni majburlang + Nostr Manzilini Tasdiqlash + NIP-05 manzillarini tekshirishda Tor'ni majburlang + Onion Url/Relaylar + Har qanday .onion url uchun Tor'dan foydalaning + Profil Rasmlari + Profil rasmlarini yuklashda Tor'ni majburlang + Ishonchli Relaylar + Ro'yxatlardagi barcha relaylarda Tor'ni majburlang + URL Ko'rinishlari + URL ko'rinishlarini yuklashda Tor'ni majburlang + Videolar + Videolarni yuklashda Tor'ni majburlang + Asosiy + Server talab qilganida Tor'dan foydalaning + Faylni ochib bo'lmadi + Faylni ochish va yuklab olish uchun o'rnatilgan torrent ilovalari yo'q. + Hodisada magnet havola yaratish uchun yetarli ma'lumot yo'q + Hodisalarni yuborishda kuzatilgan translyator dan foydalaning. Translyatsiya vaqtida jonli holat va har bir relay holati ko'rsatiladi. + Kuzatilgan translyatsiyalar + Tarjima Qilish + Kontent tarjima qilinadigan tilni tanlang. + Tarjimalar + Ishonchli Relay lar + Tor ulanishini talab qilmaydigan ishonchli relay laringiz + To'liq + Unumdorlik + Soddalashtirilgan + Interfeys sozlamalari + Interfeys rejimi + Post uslubini tanlang + Zap yuborishdan oldin lightning hisob-fakturasini yaratib bo'lmadi. Qabul qiluvchining lightning hamyoni quyidagi xatoni yubordi: %1$s + Rasmni ulashib bo'lmadi, iltimos keyinroq qayta urinib ko'ring… + Videoni ulashib bo'lmadi, iltimos keyinroq qayta urinib ko'ring… + Ruxsatsiz deshifrlash + Imzolovchi ushbu operatsiyani amalga oshirish uchun zarur boʻlgan shifrlashni ochishga ruxsat bermadi. Imzolovchi ilovangizda NIP-44 shifrlashni ochish funksiyasini yoqing va qaytadan urinib koʻring + Kuzatishni bekor qilish + Mahkamlashni bekor qilish + Profildan mahkamni olish + Yuklash bekor qilindi + Yuklash xatosi + Ovoz yuklash muvaffaqiyatsiz tugadi: %1$s + Ovozli xabarni yuklash muvaffaqiyatsiz tugadi + NIP-95 ovozli xabarlar uchun hali qo'llab-quvvatlanmaydi + %1$d%% ishga tayyor vaqt + Faol Tor Mexanizmi + Ichki versiya yoki Orbot'dan foydalaning + Foydalanuvchi sats qabul qilish uchun lightning manzilini o'rnatmagan + %1$s foydalanuvchisining sat larni qabul qilish uchun lightning manzili sozlanmagan + Yo'q bo'lib ketish tarixi + Yo'q bo'lib ketish so'rovi yuborildi + Kichikroq fayl hajmida yaxshiroq sifat, lekin barcha qurilmalar H.265 ni qo'llab-quvvatlamaydi. + H.265/HEVC kodekidan foydalanish + Video yuklab olish boshlandi… + Video o'ynatuvchi tugmalari + Video telefon video galereysiga saqlandi + Ovozli post + Chuqur + Yuqori + Neytral + Yo'q + Ovozli javob + Hamyon + Cashu hamyoni (NIP-60) + Wallet connect provayderingiz quyidagi xatoni qaytardi: %1$s + Mintlarni tahrirlash + Postlar yoki profillar kuzatayotganlaringizdan hisobotlarga ega bo'lganda ogohlantirish xabarini ko'rsatadi + Hisobotlar haqida ogohlantirish + Veb xatchо'p qo'shish + Veb xatchо'pni tahrirlash + Veb xatchо'plar + Nima haqida o'ylayapsiz? + Mashqlar + Xabar yozing… + Relay'ga yozish + Bu relay'ga yuborilgan baytlar miqdori, filtrlar va voqealarni o'z ichiga oladi + Zeplar + + Qayta nomlash + Saqlash diff --git a/commonsUI/src/commonMain/composeResources/values-vi-rVN/strings.xml b/commonsUI/src/commonMain/composeResources/values-vi-rVN/strings.xml index 07733b8cc2..d7f95d1707 100644 --- a/commonsUI/src/commonMain/composeResources/values-vi-rVN/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-vi-rVN/strings.xml @@ -1776,4 +1776,1137 @@ URL cơ sở Explorer API Thanh toán hóa đơn từ DVM Thanh toán %1$s sats cho DVM + Giới thiệu & Pháp lý + Cài đặt tài khoản + Thêm + Thêm máy chủ Blossom + Thêm máy chủ NIP-96 + Khi bật, Amethyst sẽ thêm thẻ client NIP-89 vào các sự kiện bạn đăng. + Thêm thẻ client vào sự kiện của tôi + Thêm cảnh báo nội dung nhạy cảm trước khi hiển thị nội dung này + Nội dung nhạy cảm + Thêm vào Dấu trang Công khai + Sử dụng mô hình AI trên thiết bị để đề xuất sửa lỗi văn bản và thay đổi giọng điệu. + Đề xuất cải thiện văn bản + Duy trì kết nối đến các relay hộp thư đến của bạn để thông báo theo thời gian thực + + Đã kết nối với %1$d relay hộp thư đến + + + Đã kết nối với %1$d relay + + Đang kết nối với các relay hộp thư đến… + Thông báo Amethyst đang hoạt động + Thông báo cho cuộc gọi thoại và video đến + Cuộc gọi đến + %1$s đã chấp nhận thách đấu cờ vua của bạn + Thông báo về các sự kiện trò chơi cờ vua + Cờ vua + Cập nhật cờ vua + %1$s đã đi — đến lượt bạn + Thông báo khi có tin nhắn riêng tư đến + Tin nhắn riêng tư + Tin nhắn mới + Đánh dấu đã đọc + Thông báo khi có người nhắc đến hoặc trích dẫn bạn trong bài đăng + %1$s đã nhắc đến bạn + Nhắc đến + Lượt nhắc đến mới + Thông báo khi có người phản ứng với bài đăng của bạn + %1$s đã phản ứng với bài đăng của bạn + cho %1$s + Phản ứng + Phản ứng mới + Thông báo khi có người trả lời bài đăng của bạn + Trả lời + Trả lời mới + Trả lời + Thông báo khi bài đăng đã lên lịch được đăng hoặc không đăng được. + Bài đăng đã lên lịch + Thông báo khi có người zap bạn + cho %1$s + Từ %1$s + Đã nhận Zap + Zap mới + Cài đặt ứng dụng + Chứng thực + Yêu cầu chứng thực + Năng lực người chứng thực + Đề xuất của người chứng thực + Trình hiển thị Âm thanh + Tự động lưu sự kiện nháp khi bạn gõ hoặc rời khỏi trình soạn thảo có văn bản chưa gửi, và gửi đến các relay outbox riêng tư của bạn. + Tự động tạo bản nháp + Cuộn toàn màn hình + Ẩn thanh điều hướng khi cuộn + Xem trước hình ảnh + Tự động tải hình ảnh và GIF + Phát video + Tự động tải video và GIF + Ảnh hồ sơ + Hiển thị ảnh hồ sơ + Xem trước URL + Hiển thị xem trước URL + Tự động phát video + Tự động phát video khi hiển thị trên màn hình + Không thể xóa siêu dữ liệu khỏi AVIF: %1$s + Trao huy hiệu + Quay lại + Sao lưu khóa + Huy hiệu + Xác thực thất bại + Xác thực sinh trắc học không thể xác minh chủ sở hữu điện thoại này + Xác thực sinh trắc học không thể xác minh chủ sở hữu điện thoại này. Lỗi: %1$s + Chặn + Relay Bị chặn + Amethyst sẽ không bao giờ kết nối đến các relay này + Người dùng bị chặn + Danh sách Dấu trang Mới + Siêu dữ liệu Danh sách Dấu trang + Siêu dữ liệu danh sách dấu trang có thể được bất kỳ ai trên Nostr xem. Chỉ các thành viên riêng tư của bạn mới được mã hóa. + Dấu trang + Thanh Điều Hướng Dưới + Relay Phát sóng + Các relay chuyên đẩy ghi chú của bạn đến tất cả các relay khác, như sendit.nosflare.com. Amethyst sẽ thêm relay này vào tất cả các sự kiện mới do bạn tạo + Trình duyệt + Yêu thích + Đang tải qua web mở. Nhấn để dùng Tor. + Đang tải qua Tor. Nhấn để dùng web mở. + + %1$s, %2$d sự kiện + + Tải hình ảnh lên thất bại + Hình ảnh đã chọn không thể được tải lên. Hãy thử lại hoặc dán URL. + Chia sẻ sự kiện lịch + Mở trong bản đồ + Mở liên kết + Đang diễn ra + %1$s · kết thúc %2$s + + Bắt đầu sau %1$d phút + + Thông báo khi sự kiện bạn tham dự sắp bắt đầu. + Nhắc nhở lịch + Sự kiện lịch + Thông báo sẽ được gửi khi sự kiện bạn tham dự sắp bắt đầu. + Gửi nhắc nhở + + %1$d phút + + Nhắc nhở lịch + Ngày + Nguồn cấp + Tháng + Tuần + Chấp nhận + Tắt camera + Bật camera + Loa tai nghe + Cúp máy + Cuộc gọi đến + Cuộc gọi video đến… + Cuộc gọi thoại đến… + Tắt tiếng + Cuộc gọi + Thông báo cuộc gọi đang diễn ra + Amethyst cần quyền truy cập camera và micro để bắt đầu cuộc gọi video. Vui lòng bật trong cài đặt ứng dụng. + Amethyst cần quyền truy cập micro để bắt đầu cuộc gọi thoại. Vui lòng bật trong cài đặt ứng dụng. + Từ chối + Cài đặt cuộc gọi + Loa ngoài + Bật tiếng + Cuộc gọi với %1$s + Không tìm thấy URL callback từ phản hồi của %1$s + Hủy + Token Cashu + Đang kiểm tra mint… + Không thể đổi Cashu + Mint cung cấp thông báo lỗi sau: %1$s + Đã nhận + Đã gửi + Mint phù hợp + + +%1$d thêm + + Mint phổ biến + + Được đề xuất bởi %1$d người khác + + Đã chuyển %1$s sat đến %2$s. + Không tìm thấy ví Cashu tương thích trên hệ thống + + %1$d hóa đơn đang chờ + + Thanh toán %1$s sat + tối đa %2$s sat phí? + Đăng yêu cầu xóa đề xuất kind:38000 của bạn về %1$s. Các relay tuân theo NIP-09 sẽ xóa nó. + Đã khôi phục %1$s sats từ %2$s bằng chứng. + Đã nhận Cashu + %1$s sats đã được gửi vào ví của bạn. (Phí: %2$s sats) + + Tiền được giữ tại %1$d mint bạn chưa dùng + + Đang chờ hóa đơn được thanh toán… + + %1$d mint + + Dừng chiếu + Chiếu đến thiết bị + Tiêu chuẩn an toàn trẻ em + Phụ kiện + Nghệ thuật + Sách + Quần áo + Đồ sưu tầm + Thủ công + Điện tử + Thể dục + Thực phẩm + Nội thất + Gia dụng + Linh tinh + Văn phòng + Khác + Thú cưng + Thể thao + Hàng ngày + Hàng tháng + Một lần + Hàng tuần + Thanh toán %1$s qua %2$s? + Thanh toán hóa đơn này qua %1$s? + Dịch vụ ghi nợ không hoàn tất thanh toán. + Nhập số tiền hợp lệ cho ưu đãi này. + Đang yêu cầu hóa đơn… + Đóng tất cả phản ứng với bài đăng này + Đã đóng + Cộng đồng + Bản nháp là %1$d byte; cộng đồng này giới hạn loại này ở %2$d byte. + Bản nháp là %1$d byte; cộng đồng này giới hạn sự kiện ở %2$d byte. + Bạn đã đăng %1$d sự kiện loại này hôm nay (giới hạn %2$d). + Cài đặt soạn thảo + Cổng mặc định là 9050 + Relay đã kết nối + Danh sách relay hiện đang được sử dụng + Tỷ lệ phần trăm kết nối thành công đến relay + Luôn luôn + Không bao giờ + WiFi không giới hạn + Thêm Tài liệu + Thêm Hình ảnh + Thêm Phương tiện + Thêm Video + Ẩn + Cảnh báo + Hiện + Cuộc trò chuyện + Chuyển đổi GIF động sang video MP4 để giảm kích thước tệp và tương thích phát lại tốt hơn. + Chuyển đổi GIF sang MP4 + Đã sao chép ID ghi chú (@note1) vào clipboard + Đã sao chép nội dung ghi chú vào clipboard + Đã sao chép vào clipboard + Đã sao chép @npub của tác giả vào clipboard + Sao chép khóa bí mật của tôi + Sao chép vào clipboard + Không thể tạo LNUrl từ Địa chỉ Lightning "%1$s". Hãy kiểm tra cài đặt của người dùng + Không thể kiểm tra tệp đã tải xuống sau khi tải lên: %1$s + Không thể tải xuống media đã tải lên từ máy chủ + Không thể tải hóa đơn từ %1$s: %2$s + Không thể mở tệp nén + Không tìm thấy ví + Amethyst không tìm thấy ứng dụng ví nào hỗ trợ Nostr Wallet Connect (NWC). +\n\nBạn có thể thực hiện: +\n\t1. Xác minh hỗ trợ NWC: Kiểm tra lại xem ứng dụng ví của bạn có tương thích với Nostr Wallet Connect không. +\n\t2. Tạo kết nối: Vào ứng dụng ví của bạn và tạo kết nối NWC mới. +\n\t3. Liên kết với Amethyst: Ví của bạn thường cung cấp ba tùy chọn: +\n\t\t3.1 Liên kết tự động: Nút để tự động mở và kết nối với Amethyst. Nếu có, nhấn nút đó, mở Amethyst và nhấn lưu trên màn hình mới. +\n\t\t3.2 Liên kết thủ công: URI kết nối mà bạn có thể sao chép và nhấn biểu tượng dán trên màn hình này để nhập trực tiếp. +\n\t\t3.3 Mã QR: Ví tạo mã QR mà bạn có thể đọc bằng nút mã QR trên màn hình này. + + Tạo + n + Vùng nguy hiểm + Tối + Mô tả + Đặt công khai + Trò chuyện + Cộng đồng + Thuật toán bảng tin + Gói theo dõi + Livestream + Chợ + Bài đọc + Relay Hộp thư DM + Không Dịch Từ + Các ngôn ngữ hiển thị ở đây sẽ không được dịch. Chọn một ngôn ngữ để xóa nó và cho phép dịch lại. + Lưu vào điện thoại + Đang tải video… + Ghi chú Nháp + Bản nháp + Tài khoản + Tạo mới + Bảng tin + Điều hướng + Hệ thống + Bạn + + %1$d ngày + + + %1$d giờ + + + %1$d phút + + + %1$d tháng + + + %1$d tuần + + + %1$d năm + + Chỉnh sửa lịch + Chỉnh sửa sự kiện lịch + Chỉnh sửa cộng đồng + Chỉnh sửa gói emoji + Chỉnh sửa danh sách phát + Chỉnh sửa Bài đăng + Emoji riêng tư được lưu trữ mã hóa trên các relay và chỉ hiển thị với bạn. Chúng xuất hiện trong menu phản ứng và tự động hoàn thành ":" giống như emoji công khai. + Emoji công khai hiển thị với mọi người và xuất hiện trong menu phản ứng và bộ chọn tự động hoàn thành ":" khi gói này có trong danh sách emoji của bạn. + Emoji + Mã hóa tệp trước khi tải lên để bảo vệ quyền riêng tư. Một số máy chủ có thể không chấp nhận tệp mã hóa trên tài khoản miễn phí. + Mã hóa tệp + Trò chuyện tạm thời + Lỗi + Không thể thanh toán hóa đơn + Không thể rút tiền + Không thể mở thanh toán + Không thể gửi zap + Lỗi khi mở ứng dụng ký + Không tìm thấy ứng dụng ký. Hãy kiểm tra xem ứng dụng có bị gỡ cài đặt không + Lỗi phân tích thông báo lỗi + Lỗi phân tích JSON từ %1$s. Hãy kiểm tra cài đặt Lightning của người dùng + Không thể tải hóa đơn từ máy chủ của người nhận + Mở trong trình duyệt + Không thể phát video này + Codec hoặc định dạng không được hỗ trợ trên thiết bị này (%1$s). Hãy thử mở trong trình duyệt. + Các lỗi + Đồng bộ Relay + sự kiện từ bạn + sự kiện gửi đến bạn + Đạp xe + Chế độ ăn + Nhịn ăn + Leo núi + Thiền định + Chèo thuyền + Chạy bộ + Tập sức mạnh + Bơi lội + Đi bộ + Mở rộng + Ngày hết hạn + Xuất cài đặt relay + Xóa thất bại: %1$s + Không thể mã hóa khóa riêng tư của bạn + Không thể lưu ảnh + Không thể lưu PDF + Không thể lưu video + Nhiều máy chủ không chấp nhận tệp mã hóa trên tài khoản miễn phí. Bạn có thể thử lại mà không cần mã hóa. + Tải lên mã hóa thất bại + Lỗi tải lên: %1$s + Tải lên media thất bại + Tải lên %1$s thất bại: %2$s + Thêm vào yêu thích + Tải qua web mở. + Tải qua Tor. + Gần đây + Xóa khỏi yêu thích + Ứng dụng đó chưa được tải. Thử lại sau giây lát. + Ứng dụng yêu thích + Thuật toán Feed Yêu thích + Đã thực hiện thanh toán + Đã đăng lên relay + Đã tải lên tệp + Feed Relay Yêu thích + Các relay bạn thường xuyên truy cập để xem feed Toàn cầu của chúng + Cộng đồng + Thuật toán Feed + Feed + Hashtag + Bộ sở thích + Danh sách + Vị trí + Relay + Máy chủ Tệp + Chọn máy chủ để tải tệp này lên + Ẩn các bài đăng từ người lạ có nội dung giống hệt nhau từ 5 lần trở lên + Lọc thư rác + Theo dõi + Theo dõi lại + Tất cả thuật toán feed yêu thích + Xung quanh tôi + Được tuyển chọn + Toàn cầu + Danh sách Theo dõi Mặc định + Tất cả những người theo dõi + Tất cả người dùng được theo dõi + Của tôi + Danh sách Tắt tiếng + Gói theo dõi mới + Chỉnh sửa gói theo dõi + Siêu dữ liệu gói theo dõi có thể được bất kỳ ai trên Nostr xem thấy và thường xuyên được công bố trên nhiều trang web dưới dạng bộ khởi động cho người dùng mới. + Siêu dữ liệu gói theo dõi + Gói theo dõi + Danh sách theo dõi mới + Chỉnh sửa danh sách + Kiểu thư viện hồ sơ + Chọn kiểu thư viện + Cổ điển + Hiện đại + Bài đăng giới hạn theo vị trí + Chỉ người theo dõi vị trí mới thấy được. Người theo dõi thông thường của bạn sẽ không thấy. + %1$s đã được tài trợ trong mục tiêu %2$s sats + g + Nội dung này đã thay đổi. Tác giả có thể chưa thấy hoặc chưa phê duyệt thay đổi + Điều này có nghĩa là gì? + Nội dung này vẫn như khi đăng bài + Xin chào %1$s, mặt hàng này còn không? + Từ ẩn + Loại bỏ bài đăng khỏi nguồn cộng đồng khi cộng đồng đăng tài liệu quy tắc NIP-9B và sự kiện không đáp ứng. Không có hiệu lực khi cộng đồng không có quy tắc có cấu trúc. + Ẩn bài đăng vi phạm quy tắc cộng đồng + Ẩn mật khẩu + Đang tải lên %1$s (%2$d / %3$d) + Tất cả + Yêu cầu không hợp lệ - Máy chủ không thể hoặc không muốn xử lý yêu cầu. + Không được phép - Người dùng không có thông tin xác thực hợp lệ + Yêu cầu Thanh toán - Máy chủ yêu cầu thanh toán để hoàn tất yêu cầu + Bị từ chối - Người dùng không có quyền truy cập để thực hiện yêu cầu + Không tìm thấy - Máy chủ không thể tìm thấy địa chỉ được yêu cầu + Phương thức không được phép - Máy chủ hỗ trợ phương thức yêu cầu, nhưng không hỗ trợ tài nguyên mục tiêu + Không chấp nhận được - Máy chủ không tìm thấy nội dung nào đáp ứng yêu cầu. + Yêu cầu Xác thực Proxy - Người dùng không có thông tin xác thực hợp lệ + Hết thời gian Yêu cầu - Máy chủ đã hết thời gian chờ từ phía khác + Xung đột - Máy chủ không thể thực hiện yêu cầu do xung đột với tài nguyên + Đã biến mất - Nội dung được yêu cầu đã bị xóa vĩnh viễn khỏi máy chủ và sẽ không được khôi phục + Yêu cầu Độ dài - Máy chủ từ chối yêu cầu vì yêu cầu một độ dài xác định + Điều kiện tiên quyết Thất bại - Các điều kiện tiên quyết trong các trường tiêu đề của yêu cầu mà máy chủ không đáp ứng được + Tải trọng Quá lớn - Yêu cầu lớn hơn giới hạn đã xác định của máy chủ, và máy chủ từ chối xử lý + URI Quá dài - URL được yêu cầu bởi khách hàng quá dài để máy chủ xử lý. + Loại phương tiện không được hỗ trợ - Yêu cầu sử dụng định dạng phương tiện mà máy chủ không hỗ trợ + Phạm vi Không thể đáp ứng - Máy chủ không thể thực hiện giá trị được chỉ định trong trường tiêu đề Range của yêu cầu. + Kỳ vọng Thất bại - Máy chủ không thể đáp ứng các yêu cầu được chỉ định bởi trường tiêu đề Expect + Yêu cầu Nâng cấp - Máy chủ từ chối xử lý yêu cầu bằng giao thức hiện tại trừ khi khách hàng nâng cấp lên giao thức khác. + Lỗi Máy chủ Nội bộ - Máy chủ gặp lỗi không mong đợi và không thể hoàn tất yêu cầu + Chưa được triển khai - Máy chủ không thể thực hiện yêu cầu hoặc không nhận ra phương thức yêu cầu + Cổng kết nối Xấu - Máy chủ hoạt động như một cổng kết nối và nhận được phản hồi không hợp lệ từ máy chủ lưu trữ + Dịch vụ Không khả dụng - Thường xảy ra khi máy chủ quá tải hoặc đang bảo trì + Hết thời gian Cổng kết nối - Máy chủ đang hoạt động như một cổng kết nối hoặc proxy và đã hết thời gian chờ phản hồi + Phiên bản HTTP Không được hỗ trợ - Máy chủ không hỗ trợ phiên bản HTTP trong yêu cầu + Biến thể Cũng Đàm phán - Máy chủ có lỗi cấu hình nội bộ + Lưu trữ Không đủ - Máy chủ không có đủ dung lượng lưu trữ để xử lý yêu cầu thành công + Phát hiện Vòng lặp - Máy chủ phát hiện vòng lặp vô hạn trong khi xử lý yêu cầu + Yêu cầu Xác thực Mạng - Khách hàng phải được xác thực để truy cập mạng + Hành vi trái pháp luật + Ảnh đã được lưu vào thư viện ảnh của điện thoại + Mạo danh + Relay Inbox + Số tiền hóa đơn không đúng (%1$s sats) từ %2$s. Đáng lẽ phải là %3$s + Relay Chỉ mục + Các relay chuyên lưu trữ siêu dữ liệu và danh sách relay của mọi người, như purplepag.es. Amethyst sẽ sử dụng các relay này để tìm người dùng không có trong danh sách của bạn. + Bộ Sở thích Mới + Đổi tên + Bộ Hashtag + Khóa không hợp lệ + Khóa không hợp lệ: %1$s + Địa chỉ không hợp lệ + Amethyst nhận được URI để mở nhưng URI đó không hợp lệ: %1$s + Không thể trích dẫn một ghi chú nháp + Không thể phản ứng với một ghi chú nháp + Không thể trả lời một ghi chú nháp + Không thể zap một ghi chú nháp + Khóa là bắt buộc + Relay KeyPackage + Relay nơi các MLS KeyPackage của bạn được công bố (MIP-00). Người dùng khác lấy các KeyPackage này để mời bạn vào nhóm chat Marmot. Nhập từ 1–3 relay chấp nhận sự kiện KeyPackage từ bạn và cho phép đọc công khai. + Bộ huy hiệu đã chấp nhận + Mở đầu phiêu lưu + Đọc phiêu lưu + Cảnh phiêu lưu + Đề xuất ứng dụng + Lịch hẹn + Ứng dụng + RSVP lịch hẹn + Tiêu đề âm thanh + Bản nhạc âm thanh + Podcast đã tạo + Trao huy hiệu + Định nghĩa huy hiệu + Dữ liệu Blob + Tiêu đề Blob + Relay bị chặn + Blog + Xác thực Blossom + Máy chủ Blossom + Danh sách đánh dấu + Relay phát sóng + Lịch + Định nghĩa kênh + Ẩn tin nhắn kênh + Danh sách kênh + Tin nhắn kênh + Siêu dữ liệu kênh + Tắt tiếng người dùng trong kênh + Xác thực cờ vua + Thách đấu cờ vua + Đề nghị hòa cờ vua + Chấp nhận trò chơi cờ vua + Kết thúc trò chơi cờ vua + Trò chơi cờ vua + Nước đi cờ vua + Rao vặt + Bình luận + Định nghĩa cộng đồng + Danh sách cộng đồng + Bài đăng cộng đồng + Thẻ liên hệ + Lịch hẹn trong ngày + Xóa + Tệp DM + Tin nhắn DM + Relay DM + Bản nháp + Yêu cầu nội dung DVM + Phản hồi nội dung DVM + Trạng thái DVM + Yêu cầu người dùng DVM + Phản hồi người dùng DVM + Chỉnh sửa + Danh sách gói emoji + Gói emoji + Trò chuyện tạm thời + Phòng chat tạm thời + Podcast yêu thích + Relay yêu thích + Tiêu đề tệp + Máy chủ tệp + Danh sách theo dõi + Gói theo dõi + Theo dõi Geohash + Theo dõi Hashtag + Nổi bật + Xác thực Http + Danh sách relay chỉ mục + Chat trực tiếp + Phát trực tiếp + Dữ liệu y tế + Phòng họp + Không gian họp + Danh sách phát nhạc + Bản nhạc + Danh sách tắt tiếng + Đánh dấu có tên + Máy chủ Nests + Ghi chú + Yêu cầu NWC + Phản hồi NWC + Danh sách đánh dấu cũ + Relay hộp thư đi + Danh sách người + Hình ảnh + Ghim + Tập podcast + Chương trình Podcast + Bình chọn + Phản hồi bình chọn + Relay riêng tư + Zap riêng tư + Hồ sơ + Huy hiệu hồ sơ + Thư viện hồ sơ + Relay proxy + Tin nhắn công khai + Phản ứng + Xác thực relay + Khám phá relay + Thông báo giám sát relay + Bộ relay + Báo cáo + Chia sẻ lại + Chia sẻ lại (16) + Hiện diện trong phòng + Niêm phong + Relay tìm kiếm + Bình luận Torrent + Nhà cung cấp tin cậy + Relay tin cậy + Xóa người dùng + Cài đặt người dùng + Trạng thái người dùng + Tin nhắn giọng nói + Trả lời giọng nói + Đánh dấu web + Bài tập + Mục tiêu Zap + Bình chọn Zap + Yêu cầu Zap + Đã biết + Tùy chọn Hiển thị Ngôn ngữ + Đối với mỗi cặp ngôn ngữ đã dịch, chọn ngôn ngữ nào hiển thị trước. + Lần cuối thấy %1$s trước + Vừa thấy + Chưa từng thấy + Lần cuối thấy vào %1$s (%2$s trước) + Rời khỏi + Sáng + Phát trực tiếp + Relay Cục bộ + Danh sách các relay đang chạy trên thiết bị này. + Bạn đang dùng khóa công khai và chỉ có thể đọc. Đăng nhập bằng khóa riêng tư để có thể boost bài đăng + Bạn đang dùng khóa công khai và chỉ có thể đọc. Đăng nhập bằng khóa riêng tư để có thể theo dõi + Bạn đang dùng khóa công khai và chỉ có thể đọc. Đăng nhập bằng khóa riêng tư để có thể ẩn từ hoặc câu + Bạn đang dùng khóa công khai và chỉ có thể đọc. Đăng nhập bằng khóa riêng tư để có thể trả lời + Bạn đang dùng khóa công khai và chỉ có thể đọc. Đăng nhập bằng khóa riêng tư để có thể gửi zap + Bạn đang dùng khóa công khai và chỉ có thể đọc. Đăng nhập bằng khóa riêng tư để có thể hiển thị từ hoặc câu + Bạn đang dùng khóa công khai và chỉ có thể đọc. Đăng nhập bằng khóa riêng tư để có thể ký sự kiện + Bạn đang dùng khóa công khai và chỉ có thể đọc. Đăng nhập bằng khóa riêng tư để có thể bỏ theo dõi + Bạn đang dùng khóa công khai và chỉ có thể đọc. Đăng nhập bằng khóa riêng tư để có thể tải lên + Bạn đang dùng khóa công khai và chỉ có thể đọc. Đăng nhập bằng khóa riêng tư để thích bài đăng + Video + ph + Gói Emoji của tôi + Đang thêm %1$s… + Đã cấp quyền quản trị viên + Đã thu hồi quyền quản trị viên + Thêm %1$s thất bại: %2$s + Tạo nhóm thất bại: %1$s + Cấp quyền quản trị viên thất bại: %1$s + Rời nhóm thất bại: %1$s + Xóa thành viên thất bại: %1$s + Thu hồi quyền quản trị viên thất bại: %1$s + Cập nhật thất bại: %1$s + Nhóm MLS + Thông tin nhóm đã được cập nhật + + %1$d thành viên + + Đã xóa thành viên + + %1$d tin nhắn + + Không phải thành viên của nhóm này + lỗi không xác định + Đã thêm media + Đã thêm media vào Thư viện Hồ sơ của bạn + Đang tải phương tiện xuống… + Máy chủ Phương tiện + Media quá lớn cho NIP-95 + Hãy nhập đích đến của tin nhắn trước + Không thể tải lên + Chủ đề + Không thể xóa siêu dữ liệu + Không thể xóa siêu dữ liệu riêng tư khỏi media. Đã hủy tải lên. + Dấu trang đã được di chuyển thành công + Thiếu cài đặt Lightning + Thêm tùy chọn + Chuyển sang Riêng tư + Chuyển sang Công khai + Tải lên ảnh bìa + Chọn ảnh vuông làm artwork cho danh sách phát này. + + +%1$d bài hát nữa + + + %1$d bài hát + + + %1$d bản nhạc + + Đang tải lên ảnh bìa và xuất bản. Quá trình này sẽ tiếp tục ngay cả khi bạn rời khỏi màn hình. + Tải lên tệp âm thanh + Chọn tệp MP3, WAV hoặc FLAC. Tệp sẽ được tải lên máy chủ media của bạn khi lưu. + Tải lên ảnh bìa + Chọn ảnh vuông làm artwork cho bài hát này. + Đang tải lên ảnh bìa + âm thanh và xuất bản. Quá trình này sẽ tiếp tục ngay cả khi bạn rời khỏi màn hình. + Đang bật tiếng. Nhấn để tắt tiếng + Đã tắt tiếng. Nhấn để bật tiếng + Danh sách của tôi + Tên là bắt buộc + Cài đặt Namecoin + Danh tính + Đọc khóa công khai của bạn + Nhắn tin + Trao đổi tin nhắn với các nApplet khác + Thao tác bàn phím + Gán phím tắt bàn phím + Thông báo + Hiển thị thông báo cho bạn + Relay + Đọc, ký & đăng sự kiện của bạn + Mạng + Tải tài nguyên web và Blossom + Bộ nhớ + Bộ nhớ riêng tư của nó + Giao diện + Khớp màu sắc ứng dụng của bạn + Tải lên + Tải tệp lên máy chủ phương tiện của bạn + Thanh toán + Thanh toán hóa đơn Lightning + nApplet này muốn đọc khóa công khai của bạn. + nApplet này muốn đọc hồ sơ và dữ liệu tài khoản của bạn. + nApplet này muốn hiển thị thông báo cho bạn. + + nApplet này muốn thanh toán hóa đơn Lightning %1$d sats. + + nApplet này muốn ký và đăng sự kiện kind %1$d với tư cách bạn. + nApplet này muốn gửi sự kiện được mã hóa với tư cách bạn. + nApplet này muốn ký và đăng sự kiện kind %1$d với tư cách bạn: + nApplet này muốn đọc sự kiện từ các relay của bạn. + nApplet này muốn tải một tài nguyên web. + Trang web này muốn ký sự kiện kind %1$d bằng khóa Nostr của bạn. + nApplet này muốn sử dụng bộ nhớ riêng tư của nó. + nApplet này muốn tải tệp lên máy chủ phương tiện của bạn. + Không thể gửi tin nhắn + Làm im lặng diễn giả này + Khôi phục diễn giả này + Rời + Không thể đánh dấu phòng là đã đóng. Đang rời dù sao — phòng sẽ tự đóng. + + %1$d người nghe + + Hạ tay + Tắt mic + Bật mic + Tắt tiếng + Không thể lưu danh sách máy chủ nest. Vui lòng thử lại. + Nest — Trực tiếp + Giữ âm thanh phát trong khi phòng đang mở. + Nest đã kết nối + Dừng + Nhấn để quay lại. + Theo dõi + Tắt tiếng + Bỏ theo dõi + Bật tiếng + đã rời nest + đã tham gia với tư cách khán giả + đã lên sân khấu + đã giơ tay + đang phát biểu + Giơ tay + Bật tiếng + Được lưu dưới dạng sự kiện có thể thay thế kind-10112 để các client khác có thể đọc tùy chọn của bạn. + Máy chủ của bạn + Các đề xuất tích hợp sẵn mà bạn có thể thêm vào danh sách chỉ bằng một lần nhấn. + Máy chủ được đề xuất + Máy chủ Nest + không bao giờ + Huy hiệu mới + Lịch mới + Sự kiện lịch mới + Cộng đồng mới + Người kiểm duyệt + Relay + Người dùng bị cấm + Bình luận cộng đồng (1111) + Bài viết dài (30023) + Bài đăng ảnh (20) + Văn bản ngắn (1) + Video ngắn (22) + Bài đăng video (21) + Loại sự kiện được phép + Kích thước sự kiện tối đa toàn cục (tùy chọn) + Quy tắc có thể xác minh (tùy chọn) + Cổng web-of-trust (tùy chọn) + Gói emoji mới + Mục tiêu mới + Bài viết mới + Danh sách phát mới + Bài nhạc mới + Sản phẩm mới + Yêu cầu mới + Chủ đề mới + Bài tập mới + + %1$d tài sản đính kèm + + Không tìm thấy ứng dụng Blossom. Vui lòng cài đặt ứng dụng Blossom cục bộ để xem tệp này + Không thể mở liên kết Blossom + Không tìm thấy ứng dụng camera trên thiết bị này + Chưa cài đặt địa chỉ Lightning + Không tìm thấy ứng dụng để xử lý khoản thanh toán này. Vui lòng cài đặt ví tương thích. + Không có ứng dụng nào được cài đặt để xử lý thanh toán %1$s. Vui lòng cài đặt ví tương thích. + Chưa có loại phản ứng nào được chọn trước cho người dùng này. Nhấn giữ nút tim để thay đổi + Chưa cài đặt phản ứng + Không tìm thấy Ví nào để thanh toán hóa đơn Lightning. Vui lòng cài đặt ví Lightning để sử dụng zap + Không tìm thấy Ví nào để thanh toán hóa đơn Lightning (Lỗi: %1$s). Vui lòng cài đặt ví Lightning để sử dụng zap + Chưa thiết lập số tiền Zap. Nhấn giữ để thay đổi + Thông báo + Danh mục + Phân phối + Hiển thị trong ứng dụng + bây giờ + Nghệ thuật Nowhere + Drop Nowhere + Sự kiện Nowhere + Diễn đàn Nowhere + Gây quỹ Nowhere + Trang Nowhere + Tin nhắn Nowhere + Kiến nghị Nowhere + Cửa hàng Nowhere + Nội dung khỏa thân + Không thể tạo tham chiếu sự kiện + Không có pubkey người nhận trong ghi chú + Nutzap là công khai và sẽ tiết lộ ghi chú riêng tư này. Hãy dùng Lightning zap thay thế. + Nutzap thất bại + + Gửi %1$s sats, %2$d cách + + Chain backend Bitcoin chưa được cấu hình + Không thể phát sóng giao dịch + Không thể xây dựng giao dịch + Không thể tải số dư Bitcoin của bạn + Đã gửi thanh toán, nhưng không thể đăng biên lai zap + + Đã gửi thanh toán (%1$d trên %2$d biên lai đã đăng), nhưng không thể đăng biên lai tiếp theo + + Phần chia của một người nhận dưới mức dust + Không thể ký giao dịch + ~10 phút + ~30 phút + ~1 giờ + Nhanh + Bình thường + Chậm + + Chia cho %1$d người nhận + + + Bỏ qua %1$d người nhận chỉ có địa chỉ Lightning — on-chain cần pubkey Nostr để tạo địa chỉ. + + + Dùng cách chia zap %1$d chiều của ghi chú này + + đang phát sóng + đang xây dựng giao dịch + đang tải số dư + đang đăng biên lai + đang ký + Chỉ được phép một phiếu bầu trên mỗi người dùng cho loại bình chọn này + Mở tất cả phản ứng với bài đăng này + Đang mở + Cổng Socks của Orbot + Trình khám phá Bitcoin (OTS) + Có bằng chứng bài đăng này đã được ký trước %1$s. Bằng chứng đã được đóng dấu vào blockchain Bitcoin tại thời điểm đó. + Bằng chứng Dấu thời gian + Relay Outbox + Mật khẩu là bắt buộc + Tạm dừng + Thanh toán + Tin nhắn từ %1$s + Đích Thanh toán + Thêm địa chỉ thanh toán cho các mạng khác nhau (ví dụ: bitcoin, lightning, ethereum). + PDF đã được lưu vào Downloads/Amethyst + Siêu dữ liệu danh sách theo dõi có thể được bất kỳ ai trên Nostr xem thấy. Chỉ các thành viên riêng tư của bạn mới được mã hóa. + Siêu dữ liệu danh sách theo dõi + Hình ảnh + Ghim lên đầu + Ghim vào Hồ sơ + Phát + + %1$d tập + + Tác giả bình chọn không thể bình chọn trong chính bình chọn của họ. + Bình chọn đã đóng cho các phiếu mới + Nhiều lựa chọn + Tùy chọn %1$s + Một lựa chọn + Không thể bình chọn + Cuộc thăm dò + Đăng + + Bài đăng này có hơn %1$d hashtag + + Ảnh thẻ xem trước cho %1$s + Tùy chọn Quyền riêng tư + Chính sách quyền riêng tư + <Không thể giải mã tin nhắn riêng tư>\n\nBạn được nhắc đến trong một cuộc trò chuyện riêng tư/được mã hóa giữa %1$s và %2$s. + Relay Hộp thư DM + Nhập từ 1–3 relay để làm hộp thư riêng tư của bạn. Người khác sẽ dùng các relay này để gửi DM cho bạn. Relay DM Inbox nên chấp nhận tin nhắn từ bất kỳ ai, nhưng chỉ cho phép bạn tải xuống. Các tùy chọn tốt là:\n - inbox.nostr.wine (trả phí)\n - auth.nostr1.com (miễn phí)\n - you.nostr1.com (relay cá nhân - trả phí) + Người dùng nhận DM trên các relay này + Tin nhắn Riêng tư + Đặt riêng tư: gói ghi chú tặng quà chỉ cho những người dùng được thông báo + Các trả lời cho ghi chú riêng tư luôn luôn ở chế độ riêng tư + Hiển thị với + Relay Home Riêng tư + Nhập từ 1–3 relay để lưu trữ các sự kiện mà không ai khác có thể thấy, như Bản nháp và/hoặc cài đặt ứng dụng của bạn. Lý tưởng nhất, các relay này phải là cục bộ hoặc yêu cầu xác thực trước khi tải xuống nội dung của mỗi người dùng. + Tục tĩu / Phát ngôn thù địch + Hồ sơ + Huy hiệu hồ sơ + Đề xuất Ứng dụng + Huy hiệu Hồ sơ + Nguồn tin Người theo dõi + Nguồn tin Zap nhận được + Giao diện Hồ sơ + hồ sơ + Đề xuất chỉnh sửa + Relay Proxy + Các relay tổng hợp mà ứng dụng phải sử dụng để tải feed của bạn, như filter.nostr.wine. Tùy chọn này thay thế mô hình outbox và sẽ khiến ứng dụng chỉ kết nối đến các relay trong danh sách của bạn. + Trò chuyện công khai + Trò chuyện công khai hiển thị với mọi người trên Nostr và bất kỳ ai + cũng có thể tham gia. Chúng rất phù hợp cho các cộng đồng mở xung quanh các chủ đề cụ thể. + Kiểm duyệt có thể được kiểm soát bằng cách xóa bài đăng trên các relay của nó + Nhập từ 1–3 relay lưu trữ nhóm này. + Các ứng dụng Nostr sử dụng cài đặt này để biết nơi tải xuống tin nhắn và gửi tin nhắn của bạn. + Relay + Siêu dữ liệu trò chuyện công khai + Trò chuyện công khai + Relay Outbox/Home Công khai + Loại relay này lưu trữ tất cả nội dung của bạn. Amethyst sẽ gửi bài đăng của bạn tới đây và người khác sẽ dùng các relay này để tìm nội dung của bạn. Nhập từ 1–3 relay. Chúng có thể là relay cá nhân, relay trả phí hoặc relay công khai. + Người dùng đang đăng nội dung lên các relay này + Tin nhắn Công khai + Relay Inbox Công khai + Loại relay này nhận tất cả các trả lời, bình luận, lượt thích và zap cho bài đăng của bạn. Chúng có thể là relay trả phí hoặc miễn phí. Giới hạn do người điều hành relay đặt ra có thể hạn chế thông báo bạn nhận theo hướng tốt và xấu. Ví dụ: nếu bạn bị tấn công bằng spam bình luận, relay trả phí có thể lọc spam. Nhập từ 1–3 relay. + Người dùng đang nhận thông báo trên các relay này + ID ghi chú + Xóa + Tắt tiếng chủ đề + Chia sẻ + Chia sẻ liên kết trình duyệt + Bỏ tắt tiếng chủ đề + Phản ứng + Phản ứng + Hàng Phản ứng + Đọc từ Relay + Lượng dữ liệu tính bằng byte đã nhận được từ relay này, bao gồm các bộ lọc và sự kiện + Người dùng chỉ đọc + Nhấn và giữ để ghi âm tin nhắn + Relay chat là các nhóm trò chuyện được kiểm soát bởi relay chủ quản. + Chúng hiển thị với mọi người trên Nostr và bất kỳ ai cũng có thể tham gia. + Chúng rất phù hợp cho các cộng đồng mở xung quanh các chủ đề cụ thể. Một số nhóm này là tạm thời + và do đó tin nhắn trò chuyện sẽ biến mất theo thời gian + Relay Chat + Sự kiện + IP + Loại + Người dùng + Cài đặt + Cài đặt Relay + danh sách hộp thư gửi + Relay + Nạp tiền & gửi zap + Gửi zap + Nạp %1$s sats vào %2$s và zap %3$s %4$s sats · phí ≈ %5$s sats + Xóa + Xóa khỏi Dấu trang Công khai + trả lời ở đây… + Thông báo: + + Yêu cầu xóa + Yêu cầu xóa dữ liệu + Không thể đặt lại trạng thái Marmot: %1$s + Đặt lại trạng thái Marmot + Đã đặt lại trạng thái Marmot. + Thử lại + Danh sách lịch + Lịch + Cờ vua + Khám phá + Trang chủ + Nhập danh sách theo dõi + Tin nhắn + Danh sách phát + Nhạc + Thông báo + Tập phim + Lên lịch bài đăng + Hủy lên lịch + Các bài đăng đã lên lịch có thể không được xuất bản cho đến khi bạn mở lại ứng dụng. Các bài đăng đã lên lịch của tài khoản khác sẽ không kích hoạt trong khi tài khoản này đang hoạt động. Bật luôn bật trong Cài đặt → Tùy chọn giao diện để lên lịch nền đáng tin cậy. + Các bài đăng đã lên lịch có thể không được xuất bản cho đến khi bạn mở lại ứng dụng. Bật luôn bật trong Cài đặt → Tùy chọn giao diện để lên lịch nền đáng tin cậy. + Bài đăng đã lên lịch + Gửi ngay + %1$s · trong %2$s + %1$s · %2$s trước + Ngày mai + Lỗi: %1$s + Đã sao chép ID ghi chú + + Đã đăng xuất · Đã xóa %1$d bài đăng đã lên lịch + + Đã đăng xuất + + Bạn có %1$d bài đăng đã lên lịch chưa được đăng. Đăng xuất sẽ xóa vĩnh viễn chúng. + + Bài đăng theo lịch thất bại + Đã đăng bài theo lịch + + tới %1$d relay + + Đã hủy + Thất bại + Đã lên lịch + Đang gửi… + Đã gửi + + · %1$d đến hạn trong 1 giờ + + + %1$d trong hàng đợi + + Các tùy chọn tốt là:\n%1$s + Relay Tìm kiếm + Relay Tìm kiếm + Danh sách relay sử dụng khi tìm kiếm nội dung hoặc người dùng. Gắn thẻ và tìm kiếm sẽ không hoạt động nếu không có tùy chọn nào. Đảm bảo chúng hỗ trợ NIP-50. + sự kiện có thể tìm kiếm + Khóa bí mật (nsec) đã được sao chép vào clipboard + Bạn chưa chặn người dùng nào. + Bộ lọc bảo mật + Không có từ ẩn. Thêm từ bên dưới để ẩn bài đăng chứa từ đó. + Nội dung bị chặn + Tùy chọn lọc + Không có tài khoản nào bị gắn cờ là thư rác trong phiên này. + Gửi + Gửi tất cả các sự kiện hồ sơ nhận được (kind 0) đến relay cục bộ của bạn + Chuyển tiếp hồ sơ đến relay cục bộ + Có thể chi tiêu cho người nhận này: %1$s sats + Thanh toán thất bại + Giao dịch: %1$s + Đang thanh toán qua %1$s… + Máy chủ không cung cấp URL sau khi tải lên + Cài đặt + Không có luồng nào bị tắt tiếng + Luồng đã tắt tiếng + Chia sẻ dưới dạng hình ảnh + Chia sẻ dưới dạng URL hình ảnh + Tải lên HLS + Chia sẻ hoặc Lưu + Hiển thị mã QR khóa riêng tư đã mã hóa + Bao gồm tin nhắn trực tiếp và nhóm trên tab Thông báo. Tắt để chỉ giữ tin nhắn trong tab Tin nhắn. + Hiển thị tin nhắn + Hiển thị mã QR khóa riêng tư + Yêu cầu ký bị từ chối + Hãy đảm bảo ứng dụng ký đã cho phép giao dịch này + Trình ký bên ngoài trả về dữ liệu không hợp lệ cho yêu cầu. Có thể có lỗi trong Amethyst hoặc trong trình ký. + Không tìm thấy trình ký + Ứng dụng trình ký đã bị gỡ cài đặt? Hãy kiểm tra xem trình ký đã được cài đặt và có tài khoản này chưa. Đăng xuất và đăng nhập lại nếu ứng dụng trình ký đã thay đổi. + Tua lại %1$d giây + Tua tới %1$d giây + Ứng dụng + Số lượng sự kiện spam đến từ relay này + Người spam + Hiển thị hai tab thông báo — Đang theo dõi (những người bạn theo dõi) và Mọi người. Chỉ số chưa đọc sáng lên chỉ cho hoạt động từ những người bạn theo dõi. + Tách thông báo theo người theo dõi + Cố gắng xóa siêu dữ liệu riêng tư khỏi các tệp media được hỗ trợ trước khi tải lên + Xóa siêu dữ liệu riêng tư + Đọc bài tập đã hoàn thành từ Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) và đề xuất chia sẻ chúng dưới dạng bài đăng. Quyền truy cập chỉ được yêu cầu khi bạn kết nối. + Đề xuất chia sẻ bài tập + Hệ thống + Giao diện + Giao diện Tối, Sáng hoặc Theo hệ thống + Tin nhắn này sẽ biến mất sau %1$s + + +%1$d\ntrả lời + + Hôm nay + Tùy chỉnh + Tự thiết lập của riêng bạn + Mặc định + Ẩn địa chỉ IP của bạn khỏi các relay ngẫu nhiên + Toàn quyền riêng tư + Ẩn địa chỉ IP của bạn trong tất cả kết nối + Nội bộ + Tắt + Cài đặt trước Tor/Quyền riêng tư + Thay đổi nhanh tất cả cài đặt bên dưới + Tất cả trừ Media + Ẩn địa chỉ IP của bạn khỏi mọi thứ, trừ hình ảnh và video + Relay DM + Buộc Tor gửi và nhận DM + Hình ảnh + Buộc Tor khi tải hình ảnh + Tải lên nội dung + Buộc Tor khi tải lên nội dung + Giao dịch tiền tệ + Buộc Tor cho zap, Lightning và chuyển Cashu + Relay không tin cậy + Buộc Tor trên các relay outbox/inbox + Xác minh địa chỉ Nostr + Buộc Tor khi xác minh địa chỉ NIP-05 + Url/Relay Onion + Sử dụng Tor cho bất kỳ url .onion nào + Ảnh hồ sơ + Buộc Tor khi tải ảnh hồ sơ + Relay tin cậy + Buộc Tor trên tất cả relay trong danh sách của bạn + Xem trước URL + Buộc Tor khi tải xem trước url + Video + Buộc Tor khi tải video + Cơ bản + Sử dụng Tor khi máy chủ yêu cầu + Không thể mở tệp + Không có ứng dụng torrent nào được cài đặt để mở và tải tệp. + Sự kiện không có đủ thông tin để tạo liên kết magnet + Sử dụng trình phát sóng có theo dõi khi gửi sự kiện. Hiển thị tiến trình trực tiếp và trạng thái từng relay trong khi phát sóng. + Phát sóng có theo dõi + Dịch Sang + Chọn ngôn ngữ để dịch nội dung vào. + Bản dịch + Relay Đáng tin cậy + Các relay bạn tin tưởng và không cần kết nối qua Tor + Đầy đủ + Hiệu năng + Đơn giản + Tùy chỉnh giao diện + Chế độ giao diện + Chọn kiểu bài đăng + Không thể tạo hóa đơn Lightning trước khi gửi zap. Ví Lightning của người nhận gửi thông báo lỗi sau: %1$s + Không thể chia sẻ hình ảnh, vui lòng thử lại sau… + Không thể chia sẻ video, vui lòng thử lại sau… + Giải mã không được phép + Trình ký không cho phép giải mã cần thiết cho thao tác này. Hãy bật giải mã NIP-44 trong ứng dụng ký của bạn rồi thử lại + Bỏ theo dõi + Bỏ ghim + Bỏ ghim khỏi Hồ sơ + Đã hủy tải lên + Lỗi tải lên + Tải lên giọng nói thất bại: %1$s + Không thể tải lên tin nhắn thoại + NIP-95 chưa được hỗ trợ cho tin nhắn thoại + %1$d%% thời gian hoạt động + Bật công cụ Tor + Sử dụng phiên bản nội bộ hoặc Orbot + Người dùng chưa thiết lập địa chỉ Lightning để nhận sats + Người dùng %1$s chưa cài đặt địa chỉ Lightning để nhận sats + Lịch sử xóa + Đã gửi yêu cầu xóa + Chất lượng tốt hơn với kích thước tệp nhỏ hơn nhưng không phải tất cả thiết bị đều hỗ trợ phát lại H.265. + Sử dụng Codec H.265/HEVC + Đang tải video xuống… + Nút Trình phát Video + Video đã được lưu vào thư viện video của điện thoại + Bài đăng giọng nói + Trầm + Cao + Trung tính + Không có + Trả lời giọng nói + Ví + Ví Cashu (NIP-60) + Nhà cung cấp kết nối ví của bạn trả về lỗi sau: %1$s + Chỉnh sửa mint + Hiển thị thông báo cảnh báo khi bài đăng hoặc hồ sơ có báo cáo từ những người bạn theo dõi + Cảnh báo khi có báo cáo + Thêm dấu trang web + Chỉnh sửa dấu trang web + Dấu trang web + Bạn đang nghĩ gì? + Bài tập + Viết tin nhắn… + Ghi vào Relay + Lượng dữ liệu tính bằng byte đã được gửi đến relay này, bao gồm các bộ lọc và sự kiện + + Đổi tên + Lưu diff --git a/commonsUI/src/commonMain/composeResources/values-zh-rCN/strings.xml b/commonsUI/src/commonMain/composeResources/values-zh-rCN/strings.xml index 1726fc2876..01bea2b2a9 100644 --- a/commonsUI/src/commonMain/composeResources/values-zh-rCN/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-zh-rCN/strings.xml @@ -2320,4 +2320,1616 @@ 支付来自DVM的发票 支付 %1$s sats 到 DVM 开启位置聊天 + 关于 & 法律 + 蓝色 + 绿色 + 橙色 + 粉色 + 紫色 + 红色 + 账户设置 + 添加 + 添加 Blossom 服务器 + 添加 NIP-96 服务器 + 启用时,Amethyst 将会附加一个 NIP-89 客户端标签到您发布的事件。 + 将客户端标签添加到我的事件 + 在显示此内容之前添加敏感内容警告 + 敏感内容 + 添加到公开书签 + 使用设备上的 AI 模型来提出文本更正和音调更改。 + 建议文本改进 + 保持与收件箱中继的连接以便接收实时通知 + + 已连接到 %1$d 个收件箱中继 + + + 已连接到 %1$d 个中继 + + 正在连接到收件箱中继\u2026 + 关 + 开 + Amethyst 通知活跃 + 语音和视频来电通知 + 来电 + %1$s 接受了您的国际象棋挑战 + 提醒您有关国际象棋游戏的事件 + 国际象棋 + 国际象棋更新 + %1$s 已移动 —— 轮到您了 + 收到私信时通知你 + 私信 + 新信息 + 标记为已读 + 当某人在帖子中提到或引用你时,通知你 + %1$s 提到了你 + 提及 + 新提及 + 当有人回应您的帖子做出时通知您 + %1$s 回应了您的帖子 + 针对 %1$s + 回应 + 新回应 + 当有人回复您的帖子时通知您 + 回复 + 新的回复 + 回复 + 当成功发布了定时帖或未能发布定时帖时发出通知。 + 定时帖 + 收到打闪时通知你 + %1$s聪 + 为 %1$s + 来自 %1$s + 收到打闪 + 新打闪 + 应用程序设置 + 证明 + 证明请求 + 证明人熟练度 + 证明人建议 + 音频可视化 + 当您输入或在编辑器中有未发送的文本时自动保存草稿事件并发送到您的私人发件箱中继。 + 自动创建草稿 + 沉浸式滚动 + 滚动时隐藏导航栏 + 图像预览 + 自动加载图像和 GIF + 视频播放 + 自动播放视频和 GIF + 个人头像 + 显示个人头像 + URL 预览 + 显示 URL 预览 + 自动播放视频 + 视频在屏幕上可见时自动播放视频 + 无法从 AVIF 删除元数据: %1$s + 授予徽章 + 返回 + 备份密匙 + 徽章 + 身份验证失败 + 生物计未能验证此手机的所有者 + 生物计未能验证此手机的所有者。错误:%1$s + 仅阻止 + 中继黑名单 + 应用永远不会连接的中继 + 已隐藏用户 + + 支付 %1$d sats + + 此服务器需要付款才能上传: %1$s + 取消 + 在您的 Blossom 服务器间复制文件时显示进度。 + Blossom 同步 + 正在服务器之间复制您的文件… + 新建书签列表 + 书签列表元数据 + 书签列表元数据可以被Nostr上的任何人看到。只有您的私密成员是加密的。 + 书签 + 提升 + Apps & Web + 聊天 & 群组 + 订阅源 + 主要 + 其它 + 您 + 底部导航栏 + 添加 + 已添加 + 尚无收藏内容。在浏览器中给应用添加星标以在此添加。 + 尚未加入任何群组。 + 广播中继 + 推送你的帖子到其他中继的中继,例如:sendit.nosflare.com,应用会把这个中继作为提示嵌入到你发送的所有事件的 Json 结构中 + 浏览器 + 收藏夹 + 发现 web 应用 + 正通过 open web 加载 Tor。点击使用 Tor。 + 正通过 Tor 加载。点击使用 open web。 + + %1$s, %2$d 个活动 + + 图片上传失败 + 选中的图像无法上传。请重试或粘贴一个URL。 + 分享日历活动 + 在地图中打开 + 打开链接 + 正在发生 + %1$s · 结束于 %2$s + + 在 %1$d 分钟内开始 + + 您正参加的活动即将开始时进行提醒。 + 日历提醒 + 日历提醒 + 日历活动 + 您正参加的活动即将开始时发出通知。 + 发送提醒 + + %1$d 分钟 + + 日历提醒 + 日 + 源 + 月 + 周 + 接受 + 蓝牙 + 关闭摄像头 + 开启摄像头 + 耳机 + 挂断 + 来电 + 视频来电 \u2026 + 语音来电 \u2026 + 静音 + 通话 + 进行中的通话通知 + Amethyst需要摄像头和麦克风访问权限来开始视频通话。请在应用程序设置中启用它们。 + Amethyst 需要麦克风权限来开始语音通话。请在应用程序设置中启用它。 + 拒绝 + 通话设置 + 扬声器 + 取消静音 + 和 %1$s 的通话 + 从 %1$s 的响应中找不到回调 URL + 取消 + Cashu 代币 + 正在检查铸币厂… + 无法兑换 Cashu + 铸币厂提供了以下错误信息: %1$s + 已收到 + 已发送 + 匹配的铸币厂 + + + 另外 %1$d + + 热门铸币厂 + + 由其他 %1$d 个用户推荐 + + 移动了 %1$s sat 到 %2$s。 + 系统上没有找到兼容的 Cashu 钱包 + + %1$d 张待处理发票 + + 支付 %1$s sat + 最多 %2$s sat 的费用? + 发布 %1$s 的 kind:38000 推荐删除请求。遵守 NIP-09 的中继会丢弃它。 + 从 %2$s 证明中恢复了 %1$s sats 。 + 已收到 Cashu + %1$s 聪已被发送到你的钱包。(费用︰ %2$s 聪) + + 您不使用的 %1$d 座铸币厂中持有的资金 + + 正在等待支付发票… + + %1$d 铸币厂 + + 停止投影 + 投射到设备 + 被至少一个中继接受 + 已传送到所有收信人的中继 + 没有此消息的中继信息 + 正在等待中继接受此消息 + + %1$d条回复 + + 在聊天中 + 在主题帖中 + 与多个频道的加密通信(Concord)。 + Concord 社区 + 不留存历史记录的中继限定的轻量级房间。 + 临时聊天 + 某地 geohash 限定的公共聊天 (Geolocation)。 + 位置聊天 + MLS 端到端加密群聊(Marmot)。 + 加密群组 + 较旧、不太私密的加密私信(NIP-04)。 + 旧式私信 + 端到端加密、礼品包装的私信 (NIP-17)。 + 私信 + 任何人可以阅读和加入的开放、公开的聊天室 (NIP-28)。 + 公共频道 + 有 roaster 和 moderation 的由中继管理的群聊 (NIP-29)。 + 中继组 + 儿童安全标准 + 配件 + 艺术 + 书籍 + 服装 + 收藏 + 工艺 + 电子 + 健身 + 食品 + 家具 + 家中 + 杂项 + 办公 + 其它 + 宠物 + 运动 + 每日 + 每月 + 一次性 + 每周 + 通过 %2$s 支付 %1$s? + 通过 %1$s支付这张发票? + 借记服务没有完成付款。 + 输入此报价的有效金额。 + 正在请求发票… + 收起对此帖子的所有回应 + 已关闭 + 社区 + 草稿为 %1$d 字节;这个社区将此类内容大小限制为 %2$d 字节。 + 草稿为 %1$d 字节;这个社区将事件大小限制为 %2$d 字节。 + 您今天已经发布了 %1$d 个此类事件 (限制 %2$d)。 + 撰写设置 + + %1$d 个频道 + + 新频道 + 删除频道 + 删除 + 删除 #%1$s?无法撤销此操作且无法用同一个 id 重新创建该频道。 + 删除频道? + 频道名 + 尚无消息 + 重命名频道 + 重命名 + 尚无频道。 + 创建 + 中继 + 存储此社区加密消息的中继。留空以使用您自己的中继。 + 新建Concord 频道 + 编辑社区 + Concord 频道 + 邀请其他人 + 无法获取此邀请。链接可能已过期或其中继不可访问。 + 此邀请是用新版本的应用创建,尚无法在此处打开。 请求新的邀请链接。 + 此邀请链接无效或无法用此账户打开。 + 此邀请链接已被撤销,不能再使用。请求新链接。 + 邀请链接 + 设为管理员 + + %1$d 位成员 + + 封禁 + 设为管理员 + 撤销管理员 + 成员 + 解除封禁 + 撤销管理员 + 发送图片 + Concord + 多人正在输入… + %1$s 正在输入… + %1$s 和 %2$s 正在输入… + + %1$d 条新消息 + + 默认端口为 9050 + 已连接的中继 + 当前正在使用的中继列表 + 中继成功连接的百分比 + 始终 + 从不 + 未计量的 WiFi + Wi-Fi + 添加文件 + 添加图片 + 添加媒体 + 添加视频 + 隐藏 + 警告 + 显示 + 会话 + 将动画的 GIF 转换为 MP4 视频以获取较小文件大小和更好的播放兼容性。 + 转换 GIF 为 MP4 + 已复制笔记ID (@note1) 到剪贴板 + 文本已复制到剪贴板 + 已复制到剪贴板 + 已复制作者公钥 ID 到剪贴板 + 复制我的私人密钥 + 复制到剪贴板 + 无法从闪电地址集合LNURL"%1$s"。请检查用户设置 + 无法检查经过上传后再下载的文件:%1$s + 无法从服务器下载上传的媒体 + 无法从 %1$s 获取发票:%2$s + 无法打开压缩文件 + 未找到钱包 + Amethyst 找不到任何支持 Nostr Wallet Connect (NWC) 的钱包应用. +\n\n你可以做的事情: +\n\t1. 验证 NWC 支持:仔细确认偏好的钱包应用和 Nostr Wallet Connect 兼容。 +\n\t2. 创建连接:前往钱包应用并创建新的 NWC 连接。 +\n\t3.链接到 Amethyst: 你的钱包通常会给你三个选项: +\n\t\t3.1 自动链接:自动打开并连接到 Amethyst 的按钮。如果是这样, 单击那个按钮,打开 Amethyst 并在新屏上按保存。 +\n\t\t3.2 手动链接: 你可以复制的连接 URI,单击这个屏幕上的粘贴图标直接输入它。 +\n\t\t3.3 二维码: 钱包会创建一个你可以从这个屏幕中的二维码按钮那里读取的二维码。 + + 创建 + 天 + 危险区 + 深色 + 描述 + 设为公开 + 聊天 + 社区 + 算法动态 + 关注包 + 直播 + 市场 + 阅读 + 私信收件箱中继 + 私信 + 不要翻译 + 此处显示的语言不会被翻译,请选择一种目标语言重新翻译并去除这个提示。 + 保存到手机 + 正下载视频… + 笔记草稿 + 草稿 + 账户 + 创建 + 源 + 导航 + 系统 + 你 + + %1$d 天 + + + %1$d 小时 + + + %1$d 分钟 + + + %1$d 个月 + + + %1$d 周 + + + %1$d 年 + + 编辑日历 + 编辑日历活动 + 编辑社区 + 编辑表情包 + 编辑播放列表 + 编辑帖子 + 私密表情符号被加密存储在中继上,只对您可见。它们就像公开表情符号一样出现在回应菜单和 ":" 自动完成中。 + 公开表情符号对所有人可见;当此表情包位于您的表情符号列表中时,它们会显示在您的“反应”菜单及“:”自动补全选择器中。 + 表情 + 上传前为了隐私加密文件。有些服务器可能不接受免费账户的加密文件。 + 加密文件 + 临时聊天 + 错误 + 不能生成支付发票 + 无法提款 + 无法打开付款 + 无法发送打闪 + 打开签名应用时出错 + 找不到签名应用。检查应用是否已被卸载 + 解析错误信息时出错 + 从 %1$s 解析 JSON 发生错误。请检查用户的闪电设置 + 无法从接收方的服务器获取发票 + 在浏览器中打开 + 无法播放此视频。 + 此设备不支持该编解码器或格式(%1$s)。请尝试在您的浏览器中打开它。 + 错误 + 中继同步 + 来自您的事件 + 给您的事件 + AMRAP + 循环训练 + 骑行 + 饮食 + EMOM + 节食 + 远足 + 冥想 + 划船 + 跑步 + 强度 + 游泳 + 步行 + 瑜伽 + 展开 + 过期日期 + 作者要求中继在 %1$s之后删除此笔记。一旦过期,它将从源中消失。 + 导出中继设置 + 删除失败:%1$s + 私钥加密失败 + 保存图片失败 + 保存 PDF 失败 + 保存视频失败 + 许多服务器不接受免费账户的加密文件。您可以不加密重试。 + 加密上传失败 + 上传错误:%1$s + 无法上传媒体 + 无法上传到%1$s:%2$s + 添加至收藏夹 + 通过 open web 加载。 + 通过 Tor 加载。 + 最近 + 从收藏中移除 + 该应用尚未加载。稍后再试。 + Web 应用 + 收藏源算法 + 支付了一笔款项 + 已发布到中继 + 上传了一个文件 + 喜爱的中继源 + 经常前去查看全局源的中继 + 社区 + 订阅源算法 + 源 + 话题标签 + 兴趣集 + 列表 + 位置 + 中继 + 文件服务器 + 选择上传文件时使用的服务器 + 隐藏陌生人的五次或五次以上完全相同的帖子 + 过滤垃圾信息 + 关注 + 回关 + 所有收藏源算法 + 周围的人 + 精选 + 全球 + 默认关注列表 + 所有关注 + 所有用户关注 + 我的 + 静音列表 + 新的关注包 + 编辑关注包 + 关注包元数据可以被Nostr上的任何人看见,并且常作为新用户启动包发布在许多网站上。 + 关注包元数据 + 关注包 + 新建关注列表 + 编辑列表 + 字体 + 在整个应用程序中使用的字体 + 等宽字体 + 等宽 + Sans Serif + Sans + Serif + 衬线字体 + 系统默认 + 系统 + 字体大小 + 在整个应用程序缩放文本大小 + 巨大 + 大 + 正常 + 小 + 资料页图库样式 + 选择图库样式 + 经典 + 现代 + 位置聊天 + 位置限定帖子 + 只有处于同一地理位置的关注者才能看到贴帖子。一般关注者无法看到。 + + %1$d 个项目 + + Git 仓库 + 设定目标为 %2$s sats,筹集到 %1$s + 时 + 此内容已更改。作者可能没有看到或批准更改 + 这是什么意思 + 此内容与发布时相同 + 嗨,%1$s,这个还能买到吗? + 隐藏单词 + 当社区发布了一份NIP-9B规则文档而一个事件会让它失灵时,丢弃社区的帖子。 当社区没有结构化规则时没有任何影响。 + 隐藏违反社区规则的帖子 + 隐藏密码 + 正在上传 %1$s (%3$d 中的 %2$d) + 全部 + Bad Request - 服务器无法处理请求。 + Unauthorized - 用户没有有效的身份凭证。 + Payment Required - 服务器需要付费以完成该请求。 + Forbidden - 用户没有权限发起该请求。 + Not Found - 服务器无法找到请求的地址。 + Method Not Allowed - 服务器支持该请求方法,但目标资源不支持。 + Not Acceptable - 服务器找不到满足该请求的内容。 + Proxy Authentication Required - 用户没有有效的身份凭证。 + Request Timeout - 服务器等待其他人时超时。 + Conflict - 服务器由于资源有冲突无法完成该请求。 + Gone - 请求的内容已从服务器上永久性删除。 + Length Required - 服务器由于内容长度未定义而拒绝该请求。 + Precondition Failed - 请求头部未满足服务器的前提条件。 + Payload Too Large - 服务器由于请求体大小超过接受的上限而拒绝处理该请求。 + URI Too Long - 客户端请求的 URL 过长导致服务器无法处理。 + Unsupported Media Type - 该请求使用了服务器不支持的媒体格式。 + Range Not Satisfiable - 服务器无法满足该请求头部中指定的 Range 标头范围。 + Expectation Failed - 服务器无法满足该请求头部中指定的 Expect 标头条件。 + Upgrade Required - 服务器拒绝使用当前协议处理该请求,除非客户端升级到其他协议。 + Internal Server Error -服务器遭遇意外错误而无法完成请求。 + Not Implemented - 服务器无法完成该请求或不支持该请求方法。 + Bad Gateway - 网关服务器收到了源服务器的无效响应。 + Service Unavailable - 该情况通常发生在服务器超载或因维护而宕机。 + Gateway Timeout - 网关服务器因等待源服务器响应而超时。 + HTTP Version Not Supported - 服务器不支持该请求的 HTTP 版本。 + Variant Also Negotiates - 服务器内部配置错误。 + Insufficient Storage - 服务器没有足够的存储空间用于处理该请求。 + Loop Detected - 服务器处理该请求时检测到死循环。 + Network Authentication Required - 客户端必须通过认证才能访问该网络。 + 非法行为 + 图片已保存到相册 + 冒充 + 收件箱中继 + 来自 %2$s 的错误的发票金额(%1$s 聪)。它本应该是 %3$s + 索引器中继 + 专门保存每个人的账户元数据的中继(例如:purplepag.es),应用会使用这些中继来查找不在你列表中的账户元数据。 + 新的兴趣集 + 重命名 + 兴趣集 + 无效密钥 + 无效的密钥:%1$s + 地址无效 + Amethyst 收到了要打开的 URI,但该 uri 无效:%1$s + 无法引用笔记草稿 + 无法回应笔记草稿 + 无法回复笔记草稿 + 无法打闪笔记草稿 + 需要密钥 + 密钥包中继 + 发布 MLS 密钥包的中继(MIP-00)。其他用户获取这些密钥包来邀请你加入 Marmot 群聊。插入1~3个接受来自你的密钥包事件的中继并允许公开读取。 + 密钥包 + 接受的徽章集 + 探险前言 + 探险阅读 + 探险场景 + 应用推荐 + 预约 + 应用程序 + 预约确认请求 + 音频标题 + 音轨 + 创作的播客 + 徽章奖励 + 徽章定义 + Blob 数据 + Blob 头部 + 中继黑名单 + 博客 + Blossom 认证 + Blossom 服务器 + 书签列表 + 广播中继 + 日历 + 频道定义 + 频道隐藏消息 + 频道列表 + 频道消息 + 频道元数据 + 频道静音用户 + Chess 网站认证 + 国际象棋挑战 + 和棋请求 + 接受国际象棋游戏挑战 + 国际象棋游戏结束 + 国际象棋游戏 + 棋子移动 + 分类广告 + 评论 + 社区定义 + 社区列表 + 社区帖子 + 名片 + 日预约 + 删除 + 私信文件 + 私信消息 + 私信中继 + 草稿 + DVM 内容请求 + DVM 内容响应 + DVM 状态 + DVM 用户请求 + DVM 用户响应 + 编辑 + 表情包列表 + 表情包 + 临时聊天 + 临时聊天室 + 收藏的播客 + 喜爱的中继 + 文件标题 + 文件服务器 + 关注列表 + 关注包 + Geohash 关注 + 礼物包装 + Git 问题 + Git 补丁 + 拉取请求 + PR 更新 + Git 回复 + Git 仓库 + 话题关注 + 精彩场面 + Http 认证 + 索引中继列表 + 实时聊天 + 直播 + 医疗数据 + 会议室 + 会议空间 + 音乐播放列表 + 音乐曲目 + 静音列表 + 已命名书签 + 语音聊天服务器 + NIP + NIP-04 私信 + NNS + Nostr 连接 + 笔记 + NWC 请求 + NWC 响应 + 旧书签列表 + OTS + 发件箱中继 + PayTo + 人员列表 + 图片 + 置顶 + 播客节目 + 播客秀 + 投票 + 投票响应 + 私密中继 + 私下打闪 + 个人资料 + 个人资料徽章 + 资料页图库 + 代理中继 + 公开消息 + 回应 + 中继认证 + 中继发现 + 中继监视器公告 + 中继集合 + 举报 + 转发 + 转发(16) + 房间状态 + 密封信息 + 搜索中继 + 短篇 + 短篇 (回复) + 种子注释 + 种子 + 可信的提供商 + 可信中继 + 用户删除 + 用户设置 + 用户状态 + 视频 + 视频 (回复) + 语音消息 + 语音回复 + 唤醒 + 网络书签 + 维基 + 锻炼 + 打闪目标 + 打闪投票 + 打闪请求 + 打闪 + 私聊 + 语言显示首选项 + 对于每个翻译的语言对,选择先显示哪个语言。 + %1$s 前活跃 + 刚见到 + 从未见过 + 上次见于 %1$s (%2$s 之前) + 离开 + 浅色 + 直播 + 本地中继 + 在该设备中运行的中继列表。 + 位置频道 + 你正在使用公钥,公钥是只读的。使用私钥登录以便提升帖子 + 你正在使用公钥,公钥是只读的。使用私钥登录以便能够关注 + 你正在使用公钥,公钥是只读的。使用私钥登录以便能够隐藏单词或句子 + 你正在使用公钥,公钥是只读的。使用私钥登录以便回复 + 你正在使用公钥,公钥是只读的。使用私钥登录以便发送打闪 + 你正在使用公钥,公钥是只读的。使用私钥登录以便能够显示单词或句子 + 您正在使用公钥以只读方式登录,需要使用私钥登录才能签署事件。 + 你正在使用公钥,公钥是只读的。使用私钥登录以便能够取消关注 + 您正在使用公钥以只读方式登录,需要使用私钥登录才能上传。 + 你正在使用公钥,公钥是只读的。使用私钥登录以点赞帖子 + 视频 + 分 + 我的表情包 + 添加照片 + 正在添加 %1$s… + 已授予管理员权限 + 已撤销管理员权限 + 更改照片 + 添加 %1$s失败: %2$s + 创建群失败: %1$s + 授予管理员权限失败: %1$s + 退群失败: %1$s + 移除成员失败: %1$s + 撤销管理员失败: %1$s + 更新失败: %1$s + Marmot 群组 + 群信息已更新 + + %1$d 位成员 + + 成员已移除 + + %1$d 条消息 + + 不是此群的成员 + 未知错误 + 媒体已添加 + 媒体已添加到个人资料相册中 + 媒体下载已开始… + 离线 + 在线 + 慢 + 媒体服务器 + 文件过大,无法使用 NIP-95 + 需要首先输入消息的目标位置 + 无法上传 + 主题 + 消息 + 无法删除元数据 + 从媒体删除私密元数据失败。上传取消。 + 书签迁移成功 + 打闪设置缺失 + 更多选项 + 移动到私密 + 移动到公开 + 上传封面图片 + 选择一个正方形图像作为这个播放列表的艺术作品。 + + 另外 %1$d 首曲目 + + + %1$d 首曲目 + + + %1$d 首曲目 + + 正在上传封面并发布。即使您离开屏幕,这也会继续进行。 + 上传音频文件 + 选择 MP3, WAV 或 FLAC。保存时它将被上传到媒体服务器。 + 上传封面图片 + 选择一个正方形图像作为这个曲目的艺术作品。 + 正砸上传封面 + 音频和发布。即使您离开屏幕,这也会继续进行。 + 声音开启。点击静音 + 静音。点击取消静音 + 我的 Blossom 文件 + 我的列表 + 名称必填 + %1$d毫秒 + Namecoin 设置 + 身份 + 读取您的公钥 + 消息收发 + 与其他napplets交换消息 + 键盘操作 + 绑定键盘快捷键 + 通知 + 向您显示通知 + 中继 + 读取并签署 & 发布您的事件 + 网络 + 获取 web 和 Blossom 资源 + 存储 + 其自身的私密存储 + 主题 + 匹配您应用的颜色 + 上传 + 上传文件到您的媒体服务器 + 付款 + 支付闪电发票 + 应用程序权限签名者napplet nsite webapp 信任已连接 + 此 nApplet 想要读取您的公钥。 + 此 nApplet 想要读取您的个人资料和账户数据。 + 此 nApplet 想要向您显示通知。 + + 此 nApplet 想要支付 %1$d sat 的闪电发票。 + + 此 nApplet 想要像您一样签署并发布一个 %1$d 类型事件。 + 此 nApplet 想像您一样发送一个加密事件。 + 此 nApplet 想要像您一样签署并发布一个 %1$d 类型事件: + 此 nApplet 想要从您的中继读取事件。 + 此 nApplet 想要获取一个 web 资源。 + 此站点想要用您的Nostr密钥签署一个 %1$d 类型事件。 + 此 nApplet 想要使用其私密存储。 + 此 nApplet 想要上传一个文件到您的媒体服务器。 + nApplet %1$s… + 读取您的私信 + 加密消息 + 签署 %1$s (类型: %2$d) + 已连接的应用程序 + nApplets + 无法发送信息 + 消除此演讲者的声音 + 恢复此演讲者的声音 + 离开 + 不能将聊天室标记为已关闭。仍然离开——聊天室将自动关闭。 + + %1$d 位听众 + + 放下手 + 麦克风静音 + 取消麦克风静音 + 静音 + 无法保存您的语音聊天服务器列表。请重试。 + 语音聊天室 — 在线 + 语音聊天房 + 当聊天室开放时保持音频播放。 + 语音聊天室已连接 + 停止 + 轻触返回。 + 关注 + 静音 + 取关 + 取消静音 + 离开语音聊天室 + 作为观众加入 + 步入舞台 + 举手 + 正在说话 + 举手 + 取消静音 + 音频室 + 保存为 10112 类型的可替换事件,以便其他客户端可以读取您的首选项。 + 您的服务器 + 内置建议,您可轻触添加到列表中。 + 推荐的服务器 + 语音聊天服务器 + 从不 + 新徽章 + 新建日历 + 新建日历活动 + 新建社区 + 协管 + 中继 + 封禁的用户 + 社区评论(1111) + 长文章(30023) + 图片帖子(20) + 短文本 (1) + 短视频(22) + 视频帖子 (21) + 允许的事件类型 + 全局最大事件大小(可选) + 可验证规则 (可选) + 信任网络网关(可选) + 根据频道或工作流组织的大规模社区。 + 工作区域 + 更多待设置 + 创建社区 + 扩大到超大社区 + 按照频道/工作流拆分 + 按频道拆分社区 + Concord 社区 + 和你认识的人的一对一及小型群聊。 + 1:1–5 个房间 + 稍后无法添加用户 + 新消息 + 1-1 & 小型群组 + 端到端加密 + 私信,端到端加密 + 私信 + 与当前在线的任何人进行即时聊天。 + 当前在线 + 没有历史记录 + 限于中继范围 + 开始聊天 + 与当前在线的人交谈 + 不保存任何内容 + 不论谁在线,立马聊天 + 临时聊天 + 最适合与身处某地周围的人交谈——你的街区、城市或区域。 + 本地 + 公开和临时——没有历史记录,房间里的任何人都可以阅读。 + 选择一个位置 + 匿名−−每个区域的一次性身份,永远不会透露你的 npub。 + Bitchat-兼容;接触同一中继上的附近用户。 + 根据Geohash与任何在某个地方附近的人聊天。 + 位置频道 + 规模较大的私密群组,不再适合小型群组私信。 + 绑定设备 + 绑定设备-如果您在其他地方登录则不会显示 + 创建群组 + 发送大量私信 + 加密的群组聊天 + 较大的私密群 + Marmot 群 + 任何人都可以发帖的开放公共房间。 + 无人管理 + 仅公开 + 无审核 + 创建公开聊天 + 任何人都可以加入 + 简单 & 可发现 + 中继上的公开消息 + 公开聊天 + 群组由托管它们的中继管理。 + 有审核 + 绑定单一中继 + 浏览中继群组 + 由中继管理 + 公开或私密 + 中继运行,公开或私密 + 中继群组 + 私密 + 加密群组 + 支持中继 + 新的表情包 + 新目标 + 新文章 + 新建播放列表 + 新音乐曲目 + 新产品 + 新请求 + 新主题帖 + 新锻炼 + 离线 + 已连接 + + %1$d 个中继 + + 全选 + 全不选 + + %1$d 个签名请求 + + 连接被拒绝 + 无法连接: %1$s + 无效的nostrconnect:// 链接 + 此链接不含可连接的中继 + + %1$d 个已连接的应用 + + 已连接 %1$s。Amethyst 现在在后台为其签名。 + 应用程序已连接。Amethyst 现在在后台为其签名。 + 已复制掩体地址 + 全屏提示,请求批准一个想要 Amethyst 用您的密钥来签名、加密或解密的应用程序。 + 签名请求 + 一个应用程序想要连接 + 批准一个签名请求吗? + 轻触查看 + 这是一个只读账户,无法签字。 + 正在重新连接到中继… + 生成了一个新的掩体地址 + + 正在监听 %1$d 个中继,所有均已连接 + + 远程签名应用 + 远程签名者 + + 捆绑了 %1$d 个资产 + + 找不到Blossom应用。请安装本地Blossom应用查看此文件 + 无法打开 Blossom 链接 + 此设备上没有找到相机应用 + 未设置闪电地址 + 没有找到处理此付款的应用。请安装兼容的钱包。 + 没有安装应用程序来处理 %1$s 付款。请安装一个兼容的钱包。 + 未选择回应类型。长按可更改 + 没有设置回应 + 找不到支付闪电发票的钱包。请安装闪电钱包来使用打闪 + 找不到支付闪电发票的钱包(错误:%1$s)。请安装闪电钱包来使用打闪 + 没有设置打闪金额。长按以更改 + 在后台活跃的账户 + 实时后台通知总开关。关闭以节省电量——就像飞行模式。 关闭时,没有账户在后台保持连接,它一直处于关闭状态(重启不会改变),直到您重新开启。 + 后台通知服务 + 通知 + 分类 + 发送 + 应用内显示 + 通知中。轻触静音此用户的通知 + 已静音。轻触再次通知此用户 + 现在 + Nowhere 艺术 + Nowhere Drop + Nowhere 事件 + Nowhere 论坛 + Nowhere 筹款人 + Nowhere 站点 + Nowhere 消息 + Nowhere 申请 + Nowhere 商店 + nSites + 裸露 + 无法构建事件参考 + 笔记上没有收件人的公钥 + Nutzaps 是公开的,将会透露该私密笔记。请使用闪电打闪代替。 + Nutzap 失败 + + 发送 %1$s sats, %2$d 拆分 + + 未配置比特币链后端 + 无法广播交易 + 无法构建交易 + 无法加载您的比特币余额 + 付款已发送,但打闪收据无法发布 + + 付款已发送(已发布 %1$d 份收据,共 %2$d 份),但下一收据无法发布 + + 收款人份额过低 + 无法签署交易 + 约10分钟 + 约30分钟 + 约1小时 + 快 + 正常 + 慢 + %1$s · %2$s sat/vB · %3$s + + 在 %1$d 位收款人之间拆分 + + + 正在跳过 %1$d 位仅闪电网络地址收款人 - 链上需 Nostr 公钥派生地址。 + + + 使用此记事的 %1$d 路打闪拆分 + + 正在广播 + 正在建立交易 + 加载余额 + 发布收据中 + 正签名 + 这种投票只允许每个用户一票 + 展开对此帖子的所有回应 + 开启 + Orbot Socks 端口 + 比特币资源管理器 (OTS) + %1$s之前的某个时候签署了此帖子的证明。此证明是在那个日期和时间在比特币区块链中盖章的。 + 已请求此帖的时间戳证明,正在等待在比特币区块链中盖章。 通常在几小时内完成。 + OpenTimestamps 证明 + 发件箱中继 + 密码必填 + 暂停 + 付款 + 来自 %1$s 的消息 + 付款目标 + 添加不同网络的付款地址(如比特币、比特币闪电、以太坊)。 + 已保存 PDF 到 Downloads/Amethyst + 关注列表元数据可以被Nostr上的任何人看到。只有您的私人成员是加密的。 + 关注列表元数据 + 图片 + 置顶 + 置顶到个人资料 + 播放 + + %1$d 章 + + 添加封面画 + 节目图片显示为正方形 + 编辑节目 + 你的播客 + 添加音频文件 + MP3,M4A或其他音频 + 章节URL + + %1$d 期节目 + + 文稿 URL + 视频 URL + 新节目 + 新建预告片 + 正在发布… + 作者 + 类别 + 技术、新闻 + 版权所有​​​​​ + 添加封面画 + 请使用正方形图片 + 联系邮箱 + 赞助链接 + https://… + 语言 + en + 显示标题 + 我的播客 + 网站 + + %1$d 则预告片 + + 添加预告片段 + 短音频或视频预览 + Value-for-Value 错误 + 连接Nostr Wallet Connect 钱包以发送到Keysend(节点) 收件人。 + 这个播客没有可支付的值收款人。 + 监听时将Nostr Wallet Connect 或借记钱包在收听时串流 sat。 + 此用户没有闪电地址 + 投票作者不能在自己的投票中投票。 + (0–100)% + 该投票已结束 + 多选 + 选项 %1$s + 单选 + 无法投票 + 投票 + 帖子 + + 此帖有超过 %1$d 个话题标签 + + 评论 + 文章回复、文件和其他内容 + 私密消息包装器 + 让私信中继过滤收件箱垃圾邮件;只挖掘外部包装,永远不会挖掘你的消息 + 长文 & 重点 + 文章和重点;不经常发生;费用微不足道 + 其他公开内容 + 投票、实时状态、分类和所有其他所有公开信息 + 公开 & 实时聊天 + 采矿延迟伤害对话流 + 回应 + 量最大的类型;挖掘每个赞都会消耗电量 + 举报 + 中继根据开销对举报进行加权 + 转发 + 活跃用户的高容量 + 短笔记 & 回复 + 主要的公共垃圾邮件表面 + 语音消息 + 公共语音帖子和回复 + + %1$d 天 + + + %1$d 小时 + + <1 秒 + + %1$d 分钟 + + + %1$d 秒 + + 作者耗费了算力将此笔记开采为 %1$s 难度——这是让垃圾信息成本高昂的工作证明印记。 + 聊天消息 + 举报 + + %1$s • 在 %2$d 比特挖掘中 + + + 挖掘工作证明… (队列中有 %1$d 篇帖子) + + 挖掘工作证明 + 取消 + 显示仍在挖掘 NIP-13 工作证明的帖子,以便在你离开应用后它们可以完成挖掘。 + 工作证明开采 + + %1$d 比特 + + + 默认 (%1$d 比特) + + 您的 %1$s 完成了挖掘,但无法发布: %2$s + 您的 %1$s 完成了挖掘,但无法发布。将在下次应用程序启动时重新尝试。 + + %1$s • 正在等待在 %2$d 位上开采 + + 工作证明 + 剩余约 %1$s + 很快 + 预览 %1$s 卡片图片 + 隐私选项 + 隐私政策 + <无法解密私密消息>\n\n;你被 %1$s 和 %2$s 之间的私人/加密会话引用。 + 私信收件箱中继 + 设置 1 ~ 3 个中继作为您的私人收件箱。其他人将使用这些中继向您发送私信。需要确保这些收件箱中继能够接受来自任何人的任何私信消息,但只允许您读取这些消息。示例:\n - inbox.nostr.wine(付费)\n - you.nostr1.com(个人专用中继 - 付费) + 用户接收到这些中继的私信 + 私信 + 设为私密:将笔记包装为礼物仅发给要通知的用户 + 对私密笔记的回复总是不公开的 + 可见范围 + 私人中继 + 设置 1 ~ 3 个中继用于保存其他人无法看到的事件,例如您的草稿和软件设置。理想情况下,这些应该是本地中继,或者是在获取用户内容时需要经过身份验证的中继。 + 该笔记是私下发送的,没有签名。只有带标签的参与者可以看到它,没有人能够向外人证明谁写了该笔记。 + 私密笔记 + 不文雅的言辞 / 敌意言论 + 个人档案 + 个人资料徽章 + 应用推荐 + 个人资料徽章 + 关注者源 + 比特币 (链上) 钱包 + 收到的打闪源 + 个人资料界面 + 个人资料 + 提出修改建议 + 代理中继 + 聚合器中继是应用获取资讯源时使用的中继(例如:filter.nostr.wine),设置这个列表将覆盖信箱模型的行为,使得应用只会连接到这个列表中的中继以获取内容。 + 公共聊天 + 公开聊天对所有 Nostr 用户都是可见的,任何人都可以: + 参与这些聊天。这对特定话题建立的开放式社区来说很重要 + 通过删除中继上的帖子实现内容审核控制 + 使用 1~3 个中继托管这个群组。 + 让 Nostr 客户端知道应该使用这些中继配置来发送和下载消息。 + 中继器 + 公开聊天元数据 + 公共聊天 + 公共时间线中继 + 这类中继会保存您的所有内容。Amethyst 会将您的事件发送到这些中继,其他人则通过这些中继查找您的内容。可以设置 1 ~ 3 个中继。它们可以是个人专用中继、付费中继或者公共中继。 + 用户正在将其内容发布到这些中继 + 公开消息 + 公共收件箱中继 + 这类中继用于接收其他人对您内容的回复、评论、点赞和打闪。可设置 1 ~ 3 个中继,需要确保它们能够接受来自任何人的事件(公共写入)。 + 用户正在接收这些中继的通知 + 笔记ID + 删除 + 主题帖静音 + 分享 + 分享浏览网址 + 取消主题帖静音 + 回应 + 回应 + 回应设置 + 从中继器读取 + 从该中继接收事件和过滤响应所使用的数据量 + 仅读用户 + 点按以录制消息 + 总是认证身份 + 为每个请求身份认证挑战的中继签署它 + 自定义 + 选择登录到哪些中继。会询问你任何下面尚未允许的东西。 + 从不认证 + 忽略所有中继的认证挑战 + auth authentication relay sign verify nip-42 identity + 中继身份认证 + 中继聊天 + 中继聊天是由聊天所属中继控制的聊天群组。 + Nostr 上的每个人都可以看到这些群组,任何人都可以加入群组。 + 这非常适合围绕特定主题而建立的开放社区。其中一些群组是临时的, + 因此聊天信息会随着时间的推移而消失。 + 中继聊天 + 建群 + 编辑群 + 私密 + 只有成员可以阅读消息。 + + %1$d 位成员 + + 中继组 + 标题 + 中继组 + 事件 + IP地址 + 类型 + 用户 + 设置 + 中继设置 + 发件箱列表 + 中继器 + 充值 & 发送打闪 + 发送打闪 + 充值 %1$s sats 到 %2$s 并打闪 %3$s %4$s sats · fee ≈ %5$s sats + 移除 + 从公开书签中移除 + 🔏在此回复… + 通知: + + 请求删除 + 请求消失 + 重置 Marmot 状态失败: %1$s + 重置 Marmot 状态 + Marmot 状态重置。 + 活动(7天) + Amethyst 最近消耗的资源比预期的来得多:%1$s。要用加密私信给开发者发送使用报告吗?发送任何东西前,你都会看到完整的报告。 + 同时期耗电量(整个设备) + 应用关闭时保持中继连接 + 后台通知服务 + + %1$d 次启动 + + 运行时间 + 应用进程启动 + 耗电量(应用内/后台) + 按特征分列的数据 (7天) + 按功能分列的蜂窝数据(7天) + 通话时间 + 所用的进程时间 + 已解密信息 + 有效传输时间 + Web 请求 + 蜂窝移动网络 (MB) + Wi-Fi (MB) + 位置监听 + 媒体播放时间 + 内存中的可处理事件 + 内存中的聊天室列表 + 设备内存类 + 应用内存 (Heap) + 图像缓存 (RAM) + 图像缓存 (磁盘) + 本机内存 + 在内存中的笔记 + 内存用量目前不大 + 内存中的配置文件 + 音频房间中的时间 + 工作证明开采 + 为下载进行的广播唤醒数(预估) + 一天后台移动数据消耗量 %1$s + + 应用程序进程一天内重启 %1$d 次 + + 一天中蜂窝网络下中继后台连接时间 %1$s + + 应用程序在一天内重新连接到中继 %1$d 次 + + CPU 一天内被唤醒了 %1$s 来处理通知 + 中继重连(失败的) + 中继连接时间 + \u2026 后台蜂窝网络消耗 + 远程签名 + 按屏幕排列时间 (7天) + battery data usage consumption power network diagnostics ledger + 与开发者分享 + 图片 + 钱包 & zaps + 地址验证 + 其它 + 链接预览 + 推送注册 + 中继同步 + 上传 + 视频 & 音频 + 平均中继连接 + 电池/小时 + 今日移动网络消耗 + 数据/小时 + 今天在应用中 + 今日中继时间 + 今日Wi-Fi用量 + 应用资源使用情况 + Tor 运行时长 + 内置Tor + 每日数据 + 签名已验证 + 通知处理 (CPU 唤醒) + 已运行后台任务 + 重试 + 日历列表 + 日历 + 国际象棋 + 发现 + 主页 + 导入关注 + 消息 + 播放列表 + 音乐 + 通知 + 节目 + 播客 + 定时帖 + 取消时间安排 + 在重新打开应用前可能不会发布定时帖。此账户活跃时,其他账户的定时帖不会发布。要获得稳定的后台定时功能,在“设置” →"用户界面首选项“ 中开启”始终显示“。 + 下次重新打开应用前可能不会发布定时贴。要获得稳定的后台定时功能在“设置” → “用户界面偏好” 中启用“始终显示”。 + 定时帖子 + 立即发送 + %1$s ·在 %2$s + %1$s · %2$s 前 + 明天 + 错误:%1$s + 已复制笔记 ID + + 已退出登录 删除了 %1$d 个定时帖 + + 已退出登录 + + 您有尚未发布的 %1$d 个定时帖。退出登录将永久删除它们。 + + 未能发布定时帖 + 发布了定时帖 + + 到 %1$d 个中继 + + 已取消 + 失败 + 已安排时间 + 正在发送… + 已发送 + + • %1$d 个于1小时内到期 + + + %1$d 个已加入队列 + + 示例:\n%1$s + 搜索中继 + 搜索中继 + 用于关键词和标签检索的中继列表。如果没有可用选项,也就无法使用关键词和标签检索。需要确保它们支持 NIP-50。 + 可搜索的事件 + 私人密钥(nsec)已复制到剪贴板 + 您尚未屏蔽任何用户。 + 安全过滤器 + 没有隐藏的单词。在下方添加一个单词来隐藏包含它的帖子。 + 拦截的内容 + 过滤的首选项 + 本次会话中还没有账户被标记为垃圾信息。 + 发送 + 将所有收到的配置文件(类型0)事件发送到您的本地中继 + 转发个人资料到本地中继 + 可为该收款人支付的金额:%1$s sats + 付款失败 + 交易: %1$s + 正通过 %1$s 付款… + 上传后服务器没有提供 URL + 设置 + 无静音的主题帖 + 静音的主题帖 + 外观 + 常规 + 媒体 & 数据 + 以图片方式共享 + 以图像地址形式分享 + HLS 上传 + 分享或保存 + 短视频 + 显示加密私钥二维码 + 在通知选项卡上包含私信和群消息。如关闭只在消息选项卡中保留消息。 + 显示消息 + 显示私钥二维码 + 签名请求已被拒绝 + 请确保签名应用程序已授权此交易 + 外部签名器对该请求返回了不正常的载荷。这可能是 Amethyst 或签名器上的错误。 + 未找到签名器 + 签名器被卸载?请检查是否已经安装了签名器以及其中是否存在该账户。变更签名器需要注销后重新登录。 + 后退 %1$d 秒 + 前进 %1$d 秒 + App Store + 垃圾信息 + 来自该中继的垃圾事件数量 + 垃圾邮件 + 显示两个通知选项卡 — — 关注(你关注的人) 和所有人。未读的指示器只为你关注的人的活动发出微光。 + 根据关注拆分通知 + 尝试在上传之前从支持的媒体文件中删除私密元数据 + 删除私密元数据 + 从 Health Connect (Shamsung Health, Google Fit, Fitbit, Garmin…)读取完成的锻炼,并建议将其作为帖子分享。 只有当您连接时才请求权限。 + 推荐要分享的锻炼 + 系统 + 主题 + 暗色、亮色或系统主题 + 此消息将在 %1$s 后消失 + + +%1$d\n条回复 + + 今天 + 自定义 + 让你自己来设置 + 默认 + 从随机中继中隐藏 IP + Orbot + 完全隐私 + 为所有连接隐藏 IP + 内置 + 关闭 + Tor 和隐私预设 + 快速修改下方的设置 + 除多媒体外的所有内容 + 除了图片和视频外,总是隐藏 IP + 私信中继 + 强制在收发私信时使用 Tor + 图片 + 强制为加载图片时使用 Tor + 媒体上传 + 强制为上传媒体内容时使用 Tor + 资金操作 + 强制为 Zap、闪电网络和 Cashu 转账时使用 Tor + 不受信任的中继 + 强制对收件箱和发件箱中继使用 Tor + Nostr 地址验证 + 强制为 NIP-05 地址验证使用 Tor + Onion 链接或中继地址 + 为 .onion 链接使用 Tor + 用户资料图片 + 强制为下载用户资料图片时使用 Tor + 可信中继 + 强制为所有中继使用 Tor + 链接预览 + 强制为链接预览使用 Tor + 视频 + 强制为加载视频时使用 Tor + 基础 + 当服务器要求时使用 Tor + 打开文件失败 + 没有用于打开和下载文件的 Torrent 客户端 + 事件没有足够信息来构建磁力链 + 在发送事件时使用已跟踪的广播。在广播时显示实时进度和每个中继的状态。 + 已跟踪的广播 + 翻译为 + 选择要将内容翻译为什么语言。 + 翻译 + 可信中继 + 无需使用 Tor 进行连接的可信中继 + 完整版 + 完整 + 极速版 + 快速 + 简化版 + 简单 + 用户界面首选项 + 界面模式 + 选择帖子样式 + 无法在发送打闪前创建闪电发票。接收者闪电钱包发送了以下错误: %1$s + 无法分享图片,请稍后重试… + 无法分享视频,请稍后重试… + 未授权的解密 + 签名器没有授权解密操作,请在签名器中授予 NIP-44 解密权限并重试。 + 取关 + 取消置顶 + 从个人资料中取消置顶 + 上传已取消 + 上传出错 + 语音上传失败:%1$s + 上传语音消息失败 + 语音消息尚不支持 NIP-95 + %1$d%% 运行时间 + 启动 Tor + 使用内置 Tor 或者 Orbot + 用户尚未设置闪电地址以接收聪 + 用户 %1$s 尚未设置接收聪的闪电地址 + 消失历史记录 + 消失请求已发送 + 文件较小而质量更佳,但不是所有设备都支持 H.265 播放。 + 使用 H.265/HEVC 编解码器 + 视频下载已开始… + 视频播放器按钮 + 视频已保存到媒体库 + 语音帖子 + 深沉 + 高音 + 中性 + 无 + 语音回复 + 钱包 + Cashu 钱包 (NIP-60) + 钱包绑定 + 你的钱包连接提供者返回了以下错误: %1$s + 编辑铸币厂 + 当帖子有来自你关注的五次及以上举报时显示警告消息 + 举报警示 + 添加网络书签 + 编辑网络书签 + 网络书签 + 你在想什么? + 锻炼 + 写一条消息… + 写入到继电器 + 向该中继发送事件和过滤请求所使用的数据量 + 打闪 + 打闪 + 显示较少 + + 重命名 + 保存 diff --git a/commonsUI/src/commonMain/composeResources/values-zh-rHK/strings.xml b/commonsUI/src/commonMain/composeResources/values-zh-rHK/strings.xml index 3efeedf580..13f3bafd20 100644 --- a/commonsUI/src/commonMain/composeResources/values-zh-rHK/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-zh-rHK/strings.xml @@ -1809,4 +1809,1169 @@ Explorer API 基础URL 支付来自DVM的发票 支付 %1$s sats 到 DVM + 关于 & 法律 + 账户设置 + 添加 + 添加 Blossom 服务器 + 添加 NIP-96 服务器 + 启用时,Amethyst 将会附加一个 NIP-89 客户端标签到您发布的事件。 + 将客户端标签添加到我的事件 + 在显示此内容之前添加敏感内容警告 + 敏感内容 + 添加到公開書籤 + 使用设备上的 AI 模型来提出文本更正和音调更改。 + 建议文本改进 + 保持与收件箱中继的连接以便接收实时通知 + + 已连接到 %1$d 个收件箱中继 + + + 已连接到 %1$d 个中继 + + 正在连接到收件箱中继\u2026 + Amethyst 通知活跃 + 语音和视频来电通知 + 来电 + %1$s 接受了您的国际象棋挑战 + 提醒您有关国际象棋游戏的事件 + 国际象棋 + 国际象棋更新 + %1$s 已移动 —— 轮到您了 + 收到私信时通知你 + 私信 + 新信息 + 标记为已读 + 当某人在帖子中提到或引用你时,通知你 + %1$s 提到了你 + 提及 + 新提及 + 当有人回应您的帖子做出时通知您 + %1$s 回应了您的帖子 + 针对 %1$s + 回应 + 新回应 + 当有人回复您的帖子时通知您 + 回复 + 新的回复 + 回复 + 当成功发布了定时帖或未能发布定时帖时发出通知。 + 定时帖 + 收到打闪时通知你 + %1$s聪 + 为 %1$s + 来自 %1$s + 收到打闪 + 新打闪 + 应用程序设置 + 证明 + 证明请求 + 证明人熟练度 + 证明人建议 + 音频可视化 + 当您输入或在编辑器中有未发送的文本时自动保存草稿事件并发送到您的私人发件箱中继。 + 自动创建草稿 + 沉浸式滚动 + 滚动时隐藏导航栏 + 图像预览 + 自动加载图像和 GIF + 视频播放 + 自动播放视频和 GIF + 个人头像 + 显示个人头像 + URL 预览 + 显示 URL 预览 + 自动播放视频 + 视频在屏幕上可见时自动播放视频 + 无法从 AVIF 删除元数据: %1$s + 授予徽章 + 返回 + 備份密匙 + 徽章 + 身份驗證失敗 + 生物计未能验证此手机的所有者 + 生物计未能验证此手机的所有者。错误:%1$s + 僅阻止 + 中继黑名单 + 应用永远不会连接的中继 + 已隱藏用户 + 新建书签列表 + 书签列表元数据 + 书签列表元数据可以被Nostr上的任何人看到。只有您的私密成员是加密的。 + 書籤 + 提升 + 底部导航栏 + 广播中继 + 推送你的帖子到其他中继的中继,例如:sendit.nosflare.com,应用会把这个中继作为提示嵌入到你发送的所有事件的 Json 结构中 + 浏览器 + 收藏夹 + 正通过 open web 加载 Tor。点击使用 Tor。 + 正通过 Tor 加载。点击使用 open web。 + + %1$s, %2$d 个活动 + + 图片上传失败 + 选中的图像无法上传。请重试或粘贴一个URL。 + 分享日历活动 + 在地图中打开 + 打开链接 + 正在发生 + %1$s · 结束于 %2$s + + 在 %1$d 分钟内开始 + + 您正参加的活动即将开始时进行提醒。 + 日历提醒 + 日历提醒 + 日历活动 + 您正参加的活动即将开始时发出通知。 + 发送提醒 + + %1$d 分钟 + + 日历提醒 + 日 + 源 + 月 + 周 + 接受 + 蓝牙 + 关闭摄像头 + 开启摄像头 + 耳机 + 挂断 + 来电 + 视频来电 \u2026 + 语音来电 \u2026 + 静音 + 通话 + 进行中的通话通知 + Amethyst需要摄像头和麦克风访问权限来开始视频通话。请在应用程序设置中启用它们。 + Amethyst 需要麦克风权限来开始语音通话。请在应用程序设置中启用它。 + 拒绝 + 通话设置 + 扬声器 + 取消静音 + 和 %1$s 的通话 + 从 %1$s 的响应中找不到回调 URL + 取消 + Cashu 代币 + 正在检查铸币厂… + 无法兑换 Cashu + 铸币厂提供了以下错误信息: %1$s + 已收到 + 已发送 + 匹配的铸币厂 + + + 另外 %1$d + + 热门铸币厂 + + 由其他 %1$d 个用户推荐 + + 移动了 %1$s sat 到 %2$s。 + 系统上没有找到兼容的 Cashu 钱包 + + %1$d 张待处理发票 + + 支付 %1$s sat + 最多 %2$s sat 的费用? + 发布 %1$s 的 kind:38000 推荐删除请求。遵守 NIP-09 的中继会丢弃它。 + 从 %2$s 证明中恢复了 %1$s sats 。 + 已收到 Cashu + %1$s 聪已被发送到你的钱包。(费用︰ %2$s 聪) + + 您不使用的 %1$d 座铸币厂中持有的资金 + + 正在等待支付发票… + + %1$d 铸币厂 + + 停止投影 + 投射到设备 + 儿童安全标准 + 配件 + 艺术 + 书籍 + 服装 + 收藏 + 工艺 + 电子 + 健身 + 食品 + 家具 + 家中 + 杂项 + 办公 + 其它 + 宠物 + 运动 + 每日 + 每月 + 一次性 + 每周 + 通过 %2$s 支付 %1$s? + 通过 %1$s支付这张发票? + 借记服务没有完成付款。 + 输入此报价的有效金额。 + 正在请求发票… + 收起对此帖子的所有回应 + 已关闭 + 社区 + 草稿为 %1$d 字节;这个社区将此类内容大小限制为 %2$d 字节。 + 草稿为 %1$d 字节;这个社区将事件大小限制为 %2$d 字节。 + 您今天已经发布了 %1$d 个此类事件 (限制 %2$d)。 + 撰写设置 + 默认端口为 9050 + 已连接的中继 + 当前正在使用的中继列表 + 中继成功连接的百分比 + 始终 + 从不 + 未计量的 WiFi + 添加文件 + 添加图片 + 添加媒体 + 添加视频 + 隐藏 + 警告 + 显示 + 會話 + 将动画的 GIF 转换为 MP4 视频以获取较小文件大小和更好的播放兼容性。 + 转换 GIF 为 MP4 + 複製文章ID (@note1) 到剪貼板 + 文本已複製到剪貼板 + 已复制到剪贴板 + 複製作者的 @npub 到剪貼板 + 複製我的私人密鑰 + 复制到剪贴板 + 无法从闪电地址集合LNURL"%1$s"。请检查用户设置 + 无法检查经过上传后再下载的文件:%1$s + 无法从服务器下载上传的媒体 + 无法从 %1$s 获取发票:%2$s + 无法打开压缩文件 + 未找到钱包 + Amethyst 找不到任何支持 Nostr Wallet Connect (NWC) 的钱包应用. +\n\n你可以做的事情: +\n\t1. 验证 NWC 支持:仔细确认偏好的钱包应用和 Nostr Wallet Connect 兼容。 +\n\t2. 创建连接:前往钱包应用并创建新的 NWC 连接。 +\n\t3.链接到 Amethyst: 你的钱包通常会给你三个选项: +\n\t\t3.1 自动链接:自动打开并连接到 Amethyst 的按钮。如果是这样, 单击那个按钮,打开 Amethyst 并在新屏上按保存。 +\n\t\t3.2 手动链接: 你可以复制的连接 URI,单击这个屏幕上的粘贴图标直接输入它。 +\n\t\t3.3 二维码: 钱包会创建一个你可以从这个屏幕中的二维码按钮那里读取的二维码。 + + 創建 + 天 + 危险区 + 深色 + 描述 + 设为公开 + 聊天 + 社区 + 算法动态 + 关注包 + 直播 + 市场 + 阅读 + 私信收件箱中继 + 私信 + 不要翻译 + 此处显示的语言不会被翻译,请选择一种目标语言重新翻译并去除这个提示。 + 保存到手机 + 正下载视频… + 笔记草稿 + 草稿 + 賬户 + 创建 + 源 + 导航 + 系统 + 你 + + %1$d 天 + + + %1$d 小时 + + + %1$d 分钟 + + + %1$d 个月 + + + %1$d 周 + + + %1$d 年 + + 编辑日历 + 编辑日历活动 + 编辑社区 + 编辑表情包 + 编辑播放列表 + 编辑帖子 + 私密表情符号被加密存储在中继上,只对您可见。它们就像公开表情符号一样出现在回应菜单和 ":" 自动完成中。 + 公开表情符号对所有人可见;当此表情包位于您的表情符号列表中时,它们会显示在您的“反应”菜单及“:”自动补全选择器中。 + 表情 + 上传前为了隐私加密文件。有些服务器可能不接受免费账户的加密文件。 + 加密文件 + 临时聊天 + 错误 + 不能生成支付发票 + 无法提款 + 无法打开付款 + 无法发送打闪 + 打开签名应用时出错 + 找不到签名应用。检查应用是否已被卸载 + 解析错误信息时出错 + 从 %1$s 解析 JSON 发生错误。请检查用户的闪电设置 + 无法从接收方的服务器获取发票 + 在浏览器中打开 + 无法播放此视频。 + 此设备不支持该编解码器或格式(%1$s)。请尝试在您的浏览器中打开它。 + 錯誤 + 中继同步 + 来自您的事件 + 给您的事件 + 循环训练 + 骑行 + 饮食 + 节食 + 远足 + 冥想 + 划船 + 跑步 + 强度 + 游泳 + 步行 + 瑜伽 + 展开 + 过期日期 + 导出中继设置 + 删除失败:%1$s + 私钥加密失败 + 保存圖片失敗 + 保存 PDF 失败 + 保存视频失败 + 许多服务器不接受免费账户的加密文件。您可以不加密重试。 + 加密上传失败 + 上传错误:%1$s + 无法上传媒体 + 无法上传到%1$s:%2$s + 添加至收藏夹 + 通过 open web 加载。 + 通过 Tor 加载。 + 最近 + 从收藏中移除 + 该应用尚未加载。稍后再试。 + 喜欢的应用 + 收藏源算法 + 支付了一笔款项 + 已发布到中继 + 上传了一个文件 + 喜爱的中继源 + 经常前去查看全局源的中继 + 社区 + 订阅源算法 + 源 + 话题标签 + 兴趣集 + 列表 + 位置 + 中继 + 文件服务器 + 选择上传文件时使用的服务器 + 隐藏陌生人的五次或五次以上完全相同的帖子 + 过滤垃圾信息 + 關注 + 回关 + 所有收藏源算法 + 周围的人 + 精选 + 全球 + 默认关注列表 + 所有关注 + 所有用户关注 + 我的 + 静音列表 + 新的关注包 + 编辑关注包 + 关注包元数据可以被Nostr上的任何人看见,并且常作为新用户启动包发布在许多网站上。 + 关注包元数据 + 关注包 + 新建关注列表 + 编辑列表 + 资料页图库样式 + 选择图库样式 + 经典 + 现代 + 位置限定帖子 + 只有处于同一地理位置的关注者才能看到贴帖子。一般关注者无法看到。 + 设定目标为 %2$s sats,筹集到 %1$s + 小時 + 此内容已更改。作者可能没有看到或批准更改 + 这是什么意思 + 此内容与发布时相同 + 嗨,%1$s,这个还能买到吗? + 隐藏单词 + 当社区发布了一份NIP-9B规则文档而一个事件会让它失灵时,丢弃社区的帖子。 当社区没有结构化规则时没有任何影响。 + 隐藏违反社区规则的帖子 + 隱藏密碼 + 正在上传 %1$s (%3$d 中的 %2$d) + 全部 + Bad Request - 服务器无法处理请求。 + Unauthorized - 用户没有有效的身份凭证。 + Payment Required - 服务器需要付费以完成该请求。 + Forbidden - 用户没有权限发起该请求。 + Not Found - 服务器无法找到请求的地址。 + Method Not Allowed - 服务器支持该请求方法,但目标资源不支持。 + Not Acceptable - 服务器找不到满足该请求的内容。 + Proxy Authentication Required - 用户没有有效的身份凭证。 + Request Timeout - 服务器等待其他人时超时。 + Conflict - 服务器由于资源有冲突无法完成该请求。 + Gone - 请求的内容已从服务器上永久性删除。 + Length Required - 服务器由于内容长度未定义而拒绝该请求。 + Precondition Failed - 请求头部未满足服务器的前提条件。 + Payload Too Large - 服务器由于请求体大小超过接受的上限而拒绝处理该请求。 + URI Too Long - 客户端请求的 URL 过长导致服务器无法处理。 + Unsupported Media Type - 该请求使用了服务器不支持的媒体格式。 + Range Not Satisfiable - 服务器无法满足该请求头部中指定的 Range 标头范围。 + Expectation Failed - 服务器无法满足该请求头部中指定的 Expect 标头条件。 + Upgrade Required - 服务器拒绝使用当前协议处理该请求,除非客户端升级到其他协议。 + Internal Server Error -服务器遭遇意外错误而无法完成请求。 + Not Implemented - 服务器无法完成该请求或不支持该请求方法。 + Bad Gateway - 网关服务器收到了源服务器的无效响应。 + Service Unavailable - 该情况通常发生在服务器超载或因维护而宕机。 + Gateway Timeout - 网关服务器因等待源服务器响应而超时。 + HTTP Version Not Supported - 服务器不支持该请求的 HTTP 版本。 + Variant Also Negotiates - 服务器内部配置错误。 + Insufficient Storage - 服务器没有足够的存储空间用于处理该请求。 + Loop Detected - 服务器处理该请求时检测到死循环。 + Network Authentication Required - 客户端必须通过认证才能访问该网络。 + 非法行為 + 圖片已保存到相冊 + 冒充 + 收件箱中继 + 来自 %2$s 的错误的发票金额(%1$s 聪)。它本应该是 %3$s + 索引器中继 + 专门保存每个人的账户元数据的中继(例如:purplepag.es),应用会使用这些中继来查找不在你列表中的账户元数据。 + 新的兴趣集 + 重命名 + 兴趣集 + 無效密鑰 + 无效的密钥:%1$s + 地址无效 + Amethyst 收到了要打开的 URI,但该 uri 无效:%1$s + 无法引用笔记草稿 + 无法回应笔记草稿 + 无法回复笔记草稿 + 无法打闪笔记草稿 + 需要密鑰 + 密钥包中继 + 发布 MLS 密钥包的中继(MIP-00)。其他用户获取这些密钥包来邀请你加入 Marmot 群聊。插入1~3个接受来自你的密钥包事件的中继并允许公开读取。 + 密钥包 + 接受的徽章集 + 探险前言 + 探险阅读 + 探险场景 + 应用推荐 + 预约 + 应用程序 + 预约确认请求 + 音频标题 + 音轨 + 创作的播客 + 徽章奖励 + 徽章定义 + Blob 数据 + Blob 头部 + 中继黑名单 + 博客 + Blossom 认证 + Blossom 服务器 + 书签列表 + 广播中继 + 日历 + 频道定义 + 频道隐藏消息 + 频道列表 + 频道消息 + 频道元数据 + 频道静音用户 + Chess 网站认证 + 国际象棋挑战 + 和棋请求 + 接受国际象棋游戏挑战 + 国际象棋游戏结束 + 国际象棋游戏 + 棋子移动 + 分类广告 + 评论 + 社区定义 + 社区列表 + 社区帖子 + 名片 + 日预约 + 删除 + 私信文件 + 私信消息 + 私信中继 + 草稿 + DVM 内容请求 + DVM 内容响应 + DVM 状态 + DVM 用户请求 + DVM 用户响应 + 编辑 + 表情包列表 + 表情包 + 临时聊天 + 临时聊天室 + 收藏的播客 + 喜爱的中继 + 文件标题 + 文件服务器 + 关注列表 + 关注包 + Geohash 关注 + 包装礼物 + Git 问题 + Git 补丁 + Git 回复 + Git 仓库 + 话题关注 + 精彩场面 + Http 认证 + 索引中继列表 + 实时聊天 + 直播 + 医疗数据 + 会议室 + 会议空间 + 音乐播放列表 + 音乐曲目 + 静音列表 + 已命名书签 + 语音聊天服务器 + NIP-04 私信 + Nostr 连接 + 笔记 + NWC 请求 + NWC 响应 + 旧书签列表 + 发件箱中继 + 人员列表 + 图片 + 置顶 + 播客节目 + 播客秀 + 投票 + 投票响应 + 私密中继 + 私下打闪 + 个人资料 + 个人资料徽章 + 资料页图库 + 代理中继 + 公开消息 + 回应 + 中继认证 + 中继发现 + 中继监视器公告 + 中继集合 + 举报 + 转发 + 转发(16) + 房间状态 + 密封信息 + 搜索中继 + 短篇 + 短篇 (回复) + 种子注释 + 种子 + 可信的提供商 + 可信中继 + 用户删除 + 用户设置 + 用户状态 + 视频 + 视频 (回复) + 语音消息 + 语音回复 + 唤醒 + 网络书签 + 维基 + 锻炼 + 打闪目标 + 打闪投票 + 打闪请求 + 打闪 + 私聊 + 语言显示首选项 + 对于每个翻译的语言对,选择先显示哪个语言。 + %1$s 前活跃 + 刚见到 + 从未见过 + 上次见于 %1$s (%2$s 之前) + 離開 + 浅色 + 直播 + 本地中继 + 在该设备中运行的中继列表。 + 使用私鑰登錄以便提升帖子 + 你正在使用公钥,公钥是只读的。使用私钥登录以便能够关注 + 你正在使用公钥,公钥是只读的。使用私钥登录以便能够隐藏单词或句子 + 使用私鑰登錄以便回覆 + 使用私鑰登錄以便發送Zaps + 你正在使用公钥,公钥是只读的。使用私钥登录以便能够显示单词或句子 + 您正在使用公钥以只读方式登录,需要使用私钥登录才能签署事件。 + 你正在使用公钥,公钥是只读的。使用私钥登录以便能够取消关注 + 您正在使用公钥以只读方式登录,需要使用私钥登录才能上传。 + 使用私鑰登錄以便點贊帖子 + 视频 + 分 + 我的表情包 + 正在添加 %1$s… + 已授予管理员权限 + 已撤销管理员权限 + 添加 %1$s失败: %2$s + 创建群失败: %1$s + 授予管理员权限失败: %1$s + 退群失败: %1$s + 移除成员失败: %1$s + 撤销管理员失败: %1$s + 更新失败: %1$s + MLS 组 + 群信息已更新 + + %1$d 位成员 + + 成员已移除 + + %1$d 条消息 + + 不是此群的成员 + 未知错误 + 媒体已添加 + 媒体已添加到个人资料相册中 + 媒体下载已开始… + 媒体服务器 + 文件过大,无法使用 NIP-95 + 需要首先输入消息的目标位置 + 无法上传 + 主题 + 无法删除元数据 + 从媒体删除私密元数据失败。上传取消。 + 书签迁移成功 + 打闪设置缺失 + 更多選項 + 移动到私密 + 移动到公开 + 上传封面图片 + 选择一个正方形图像作为这个播放列表的艺术作品。 + + 另外 %1$d 首曲目 + + + %1$d 首曲目 + + + %1$d 首曲目 + + 正在上传封面并发布。即使您离开屏幕,这也会继续进行。 + 上传音频文件 + 选择 MP3, WAV 或 FLAC。保存时它将被上传到媒体服务器。 + 上传封面图片 + 选择一个正方形图像作为这个曲目的艺术作品。 + 正砸上传封面 + 音频和发布。即使您离开屏幕,这也会继续进行。 + 声音开启。点击静音 + 静音。点击取消静音 + 我的列表 + 名称必填 + %1$d毫秒 + Namecoin 设置 + 身份 + 读取您的公钥 + 消息收发 + 与其他napplets交换消息 + 键盘操作 + 绑定键盘快捷键 + 通知 + 向您显示通知 + 中继 + 读取并签署 & 发布您的事件 + 网络 + 获取 web 和 Blossom 资源 + 存储 + 其自身的私密存储 + 主题 + 匹配您应用的颜色 + 上传 + 上传文件到您的媒体服务器 + 付款 + 支付闪电发票 + 此 nApplet 想要读取您的公钥。 + 此 nApplet 想要读取您的个人资料和账户数据。 + 此 nApplet 想要向您显示通知。 + + 此 nApplet 想要支付 %1$d sat 的闪电发票。 + + 此 nApplet 想要像您一样签署并发布一个 %1$d 类型事件。 + 此 nApplet 想像您一样发送一个加密事件。 + 此 nApplet 想要像您一样签署并发布一个 %1$d 类型事件: + 此 nApplet 想要从您的中继读取事件。 + 此 nApplet 想要获取一个 web 资源。 + 此站点想要用您的Nostr密钥签署一个 %1$d 类型事件。 + 此 nApplet 想要使用其私密存储。 + 此 nApplet 想要上传一个文件到您的媒体服务器。 + 无法发送信息 + 消除此演讲者的声音 + 恢复此演讲者的声音 + 离开 + 不能将聊天室标记为已关闭。仍然离开——聊天室将自动关闭。 + + %1$d 位听众 + + 放下手 + 麦克风静音 + 取消麦克风静音 + 静音 + 无法保存您的语音聊天服务器列表。请重试。 + 语音聊天室 — 在线 + 语音聊天房 + 当聊天室开放时保持音频播放。 + 语音聊天室已连接 + 停止 + 轻触返回。 + 关注 + 静音 + 取关 + 取消静音 + 离开语音聊天室 + 作为观众加入 + 步入舞台 + 举手 + 正在说话 + 举手 + 取消静音 + 音频室 + 保存为 10112 类型的可替换事件,以便其他客户端可以读取您的首选项。 + 您的服务器 + 内置建议,您可轻触添加到列表中。 + 推荐的服务器 + 语音聊天服务器 + 從不 + 新徽章 + 新建日历 + 新建日历活动 + 新建社区 + 协管 + 中继 + 封禁的用户 + 社区评论(1111) + 长文章(30023) + 图片帖子(20) + 短文本 (1) + 短视频(22) + 视频帖子 (21) + 允许的事件类型 + 全局最大事件大小(可选) + 可验证规则 (可选) + 信任网络网关(可选) + 新的表情包 + 新目标 + 新文章 + 新建播放列表 + 新音乐曲目 + 新产品 + 新請求 + 新動態 + 新锻炼 + + 捆绑了 %1$d 个资产 + + 找不到Blossom应用。请安装本地Blossom应用查看此文件 + 无法打开 Blossom 链接 + 此设备上没有找到相机应用 + 未设置闪电地址 + 没有找到处理此付款的应用。请安装兼容的钱包。 + 没有安装应用程序来处理 %1$s 付款。请安装一个兼容的钱包。 + 未选择回应类型。长按可更改 + 没有设置回应 + 找不到支付闪电发票的钱包。请安装闪电钱包来使用打闪 + 找不到支付闪电发票的钱包(错误:%1$s)。请安装闪电钱包来使用打闪 + 沒有設置Zap金額。長按以更改 + 通知 + 分类 + 发送 + 应用内显示 + 現在 + Nowhere 艺术 + Nowhere 事件 + Nowhere 论坛 + Nowhere 筹款人 + Nowhere 站点 + Nowhere 消息 + Nowhere 申请 + Nowhere 商店 + 裸體 + 无法构建事件参考 + 笔记上没有收件人的公钥 + Nutzaps 是公开的,将会透露该私密笔记。请使用闪电打闪代替。 + Nutzap 失败 + + 发送 %1$s sats, %2$d 拆分 + + 未配置比特币链后端 + 无法广播交易 + 无法构建交易 + 无法加载您的比特币余额 + 付款已发送,但打闪收据无法发布 + + 付款已发送(已发布 %1$d 份收据,共 %2$d 份),但下一收据无法发布 + + 收款人份额过低 + 无法签署交易 + 约10分钟 + 约30分钟 + 约1小时 + 快 + 正常 + 慢 + + 在 %1$d 位收款人之间拆分 + + + 正在跳过 %1$d 位仅闪电网络地址收款人 - 链上需 Nostr 公钥派生地址。 + + + 使用此记事的 %1$d 路打闪拆分 + + 正在广播 + 正在建立交易 + 加载余额 + 发布收据中 + 正签名 + 这种投票只允许每个用户一票 + 展开对此帖子的所有回应 + 开启 + Orbot Socks 端口 + 比特币资源管理器 (OTS) + %1$s之前的某个时候签署了此帖子的证明。此证明是在那个日期和时间在比特币区块链中盖章的。 + OpenTimestamps 证明 + 发件箱中继 + 密码必填 + 暂停 + 付款 + 来自 %1$s 的消息 + 付款目标 + 添加不同网络的付款地址(如比特币、比特币闪电、以太坊)。 + 已保存 PDF 到 Downloads/Amethyst + 关注列表元数据可以被Nostr上的任何人看到。只有您的私人成员是加密的。 + 关注列表元数据 + 图片 + 置顶 + 置顶到个人资料 + 播放 + + %1$d 期节目 + + 投票作者不能在自己的投票中投票。 + 该投票已结束 + 多选 + 选项 %1$s + 单选 + 无法投票 + 投票 + 發佈 + + 此帖有超过 %1$d 个话题标签 + + 預覽 %1$s 卡片圖片 + 隐私选项 + 隐私政策 + <無法解密私人消息>\n\n您被%1$s和%2$s之間的私人/加密會話引用。 + 私信收件箱中继 + 设置 1 ~ 3 个中继作为您的私人收件箱。其他人将使用这些中继向您发送私信。需要确保这些收件箱中继能够接受来自任何人的任何私信消息,但只允许您读取这些消息。示例:\n - inbox.nostr.wine(付费)\n - you.nostr1.com(个人专用中继 - 付费) + 用户接收到这些中继的私信 + 私信 + 设为私密:将笔记包装为礼物仅发给要通知的用户 + 对私密笔记的回复总是不公开的 + 可见范围 + 私人中继 + 设置 1 ~ 3 个中继用于保存其他人无法看到的事件,例如您的草稿和软件设置。理想情况下,这些应该是本地中继,或者是在获取用户内容时需要经过身份验证的中继。 + 不文雅的言辭 / 敵意言論 + 個人檔案 + 个人资料徽章 + 应用推荐 + 个人资料徽章 + 关注者源 + 收到的打闪源 + 个人资料界面 + 个人资料 + 提出修改建议 + 代理中继 + 聚合器中继是应用获取资讯源时使用的中继(例如:filter.nostr.wine),设置这个列表将覆盖信箱模型的行为,使得应用只会连接到这个列表中的中继以获取内容。 + 公共聊天 + 公开聊天对所有 Nostr 用户都是可见的,任何人都可以: + 参与这些聊天。这对特定话题建立的开放式社区来说很重要 + 通过删除中继上的帖子实现内容审核控制 + 使用 1~3 个中继托管这个群组。 + 让 Nostr 客户端知道应该使用这些中继配置来发送和下载消息。 + 中继器 + 公开聊天元数据 + 公共聊天 + 公共时间线中继 + 这类中继会保存您的所有内容。Amethyst 会将您的事件发送到这些中继,其他人则通过这些中继查找您的内容。可以设置 1 ~ 3 个中继。它们可以是个人专用中继、付费中继或者公共中继。 + 用户正在将其内容发布到这些中继 + 公开消息 + 公共收件箱中继 + 这类中继用于接收其他人对您内容的回复、评论、点赞和打闪。可设置 1 ~ 3 个中继,需要确保它们能够接受来自任何人的事件(公共写入)。 + 用户正在接收这些中继的通知 + 引用 + 刪除 + 主题帖静音 + 分享 + 分享瀏覽網址 + 取消主题帖静音 + 回应 + 回应 + 回应设置 + 从中继器读取 + 从该中继接收事件和过滤响应所使用的数据量 + 仅读用户 + 点按以录制消息 + 中继聊天 + 中继聊天是由聊天所属中继控制的聊天群组。 + Nostr 上的每个人都可以看到这些群组,任何人都可以加入群组。 + 这非常适合围绕特定主题而建立的开放社区。其中一些群组是临时的, + 因此聊天信息会随着时间的推移而消失。 + 中继聊天 + 事件 + IP地址 + 类型 + 用户 + 设置 + 中继设置 + 发件箱列表 + 中继器 + 充值 & 发送打闪 + 发送打闪 + 充值 %1$s sats 到 %2$s 并打闪 %3$s %4$s sats · fee ≈ %5$s sats + 移除 + 從公開書籤中移除 + 🔏 在此回覆… + 通知: + + 请求删除 + 请求消失 + 重置 Marmot 状态失败: %1$s + 重置 Marmot 状态 + Marmot 状态重置。 + 重试 + 日历列表 + 日历 + 国际象棋 + 发现 + 主页 + 导入关注 + 消息 + 播放列表 + 音乐 + 通知 + 节目 + 播客 + 定时帖 + 取消时间安排 + 在重新打开应用前可能不会发布定时帖。此账户活跃时,其他账户的定时帖不会发布。要获得稳定的后台定时功能,在“设置” →"用户界面首选项“ 中开启”始终显示“。 + 下次重新打开应用前可能不会发布定时贴。要获得稳定的后台定时功能在“设置” → “用户界面偏好” 中启用“始终显示”。 + 定时帖子 + 立即发送 + %1$s ·在 %2$s + %1$s · %2$s 前 + 明天 + 错误:%1$s + 已复制笔记 ID + + 已退出登录 删除了 %1$d 个定时帖 + + 已退出登录 + + 您有尚未发布的 %1$d 个定时帖。退出登录将永久删除它们。 + + 未能发布定时帖 + 发布了定时帖 + + 到 %1$d 个中继 + + 已取消 + 失败 + 已安排时间 + 正在发送… + 已发送 + + • %1$d 个于1小时内到期 + + + %1$d 个已加入队列 + + 示例:\n%1$s + 搜索中继 + 搜索中继 + 用于关键词和标签检索的中继列表。如果没有可用选项,也就无法使用关键词和标签检索。需要确保它们支持 NIP-50。 + 可搜索的事件 + 私人密鑰(nsec)已複製到剪貼板 + 您尚未屏蔽任何用户。 + 安全過濾器 + 没有隐藏的单词。在下方添加一个单词来隐藏包含它的帖子。 + 拦截的内容 + 过滤的首选项 + 本次会话中还没有账户被标记为垃圾信息。 + 发送 + 将所有收到的配置文件(类型0)事件发送到您的本地中继 + 转发个人资料到本地中继 + 可为该收款人支付的金额:%1$s sats + 付款失败 + 交易: %1$s + 正通过 %1$s 付款… + 上传后服务器没有提供 URL + 设置 + 无静音的主题帖 + 静音的主题帖 + 以图片方式共享 + 以图像地址形式分享 + HLS 上传 + 分享或保存 + 短视频 + 显示加密私钥二维码 + 在通知选项卡上包含私信和群消息。如关闭只在消息选项卡中保留消息。 + 显示消息 + 显示私钥二维码 + 签名请求已被拒绝 + 请确保签名应用程序已授权此交易 + 外部签名器对该请求返回了不正常的载荷。这可能是 Amethyst 或签名器上的错误。 + 未找到签名器 + 签名器被卸载?请检查是否已经安装了签名器以及其中是否存在该账户。变更签名器需要注销后重新登录。 + 后退 %1$d 秒 + 前进 %1$d 秒 + 应用 + 垃圾郵件 + 来自该中继的垃圾事件数量 + 垃圾邮件 + 显示两个通知选项卡 — — 关注(你关注的人) 和所有人。未读的指示器只为你关注的人的活动发出微光。 + 根据关注拆分通知 + 尝试在上传之前从支持的媒体文件中删除私密元数据 + 删除私密元数据 + 从 Health Connect (Shamsung Health, Google Fit, Fitbit, Garmin…)读取完成的锻炼,并建议将其作为帖子分享。 只有当您连接时才请求权限。 + 推荐要分享的锻炼 + 系统 + 主题 + 暗色、亮色或系统主题 + 此消息将在 %1$s 后消失 + + +%1$d\n条回复 + + 今天 + 自定义 + 让你自己来设置 + 默认 + 从随机中继中隐藏 IP + 完全隐私 + 为所有连接隐藏 IP + 内置 + 关闭 + Tor 和隐私预设 + 快速修改下方的设置 + 除多媒体外的所有内容 + 除了图片和视频外,总是隐藏 IP + 私信中继 + 强制在收发私信时使用 Tor + 图片 + 强制为加载图片时使用 Tor + 媒体上传 + 强制为上传媒体内容时使用 Tor + 资金操作 + 强制为 Zap、闪电网络和 Cashu 转账时使用 Tor + 不受信任的中继 + 强制对收件箱和发件箱中继使用 Tor + Nostr 地址验证 + 强制为 NIP-05 地址验证使用 Tor + Onion 链接或中继地址 + 为 .onion 链接使用 Tor + 用户资料图片 + 强制为下载用户资料图片时使用 Tor + 可信中继 + 强制为所有中继使用 Tor + 链接预览 + 强制为链接预览使用 Tor + 视频 + 强制为加载视频时使用 Tor + 基础 + 当服务器要求时使用 Tor + 打开文件失败 + 没有用于打开和下载文件的 Torrent 客户端 + 事件没有足够信息来构建磁力链 + 在发送事件时使用已跟踪的广播。在广播时显示实时进度和每个中继的状态。 + 已跟踪的广播 + 翻译为 + 选择要将内容翻译为什么语言。 + 翻译 + 可信中继 + 无需使用 Tor 进行连接的可信中继 + 完整版 + 极速版 + 简化版 + 用户界面首选项 + 界面模式 + 选择帖子样式 + 无法在发送打闪前创建闪电发票。接收者闪电钱包发送了以下错误: %1$s + 无法分享图片,请稍后重试… + 无法分享视频,请稍后重试… + 未授权的解密 + 签名器没有授权解密操作,请在签名器中授予 NIP-44 解密权限并重试。 + 取關 + 取消置顶 + 从个人资料中取消置顶 + 上传已取消 + 上传出错 + 语音上传失败:%1$s + 上传语音消息失败 + 语音消息尚不支持 NIP-95 + %1$d%% 运行时间 + 启动 Tor + 使用内置 Tor 或者 Orbot + 用户尚未設置閃電地址以接收聰 + 用户 %1$s 尚未设置接收聪的闪电地址 + 消失历史记录 + 消失请求已发送 + 文件较小而质量更佳,但不是所有设备都支持 H.265 播放。 + 使用 H.265/HEVC 编解码器 + 视频下载已开始… + 视频播放器按钮 + 视频已保存到媒体库 + 语音帖子 + 深沉 + 高音 + 中性 + 无 + 语音回复 + 钱包 + Cashu 钱包 (NIP-60) + 钱包绑定 + 你的钱包连接提供者返回了以下错误: %1$s + 编辑铸币厂 + 当帖子有来自你关注的五次及以上举报时显示警告消息 + 举报警示 + 添加网络书签 + 编辑网络书签 + 网络书签 + 你在想什麼? + 锻炼 + 写一条消息… + 写入到继电器 + 向该中继发送事件和过滤请求所使用的数据量 + 打闪 + 打闪 + + 重命名 + 保存 diff --git a/commonsUI/src/commonMain/composeResources/values-zh-rSG/strings.xml b/commonsUI/src/commonMain/composeResources/values-zh-rSG/strings.xml index b4ae82726f..c29baa4757 100644 --- a/commonsUI/src/commonMain/composeResources/values-zh-rSG/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-zh-rSG/strings.xml @@ -1809,4 +1809,1169 @@ Explorer API 基础URL 支付来自DVM的发票 支付 %1$s sats 到 DVM + 关于 & 法律 + 账户设置 + 添加 + 添加 Blossom 服务器 + 添加 NIP-96 服务器 + 启用时,Amethyst 将会附加一个 NIP-89 客户端标签到您发布的事件。 + 将客户端标签添加到我的事件 + 在显示此内容之前添加敏感内容警告 + 敏感内容 + 添加到公开书签 + 使用设备上的 AI 模型来提出文本更正和音调更改。 + 建议文本改进 + 保持与收件箱中继的连接以便接收实时通知 + + 已连接到 %1$d 个收件箱中继 + + + 已连接到 %1$d 个中继 + + 正在连接到收件箱中继\u2026 + Amethyst 通知活跃 + 语音和视频来电通知 + 来电 + %1$s 接受了您的国际象棋挑战 + 提醒您有关国际象棋游戏的事件 + 国际象棋 + 国际象棋更新 + %1$s 已移动 —— 轮到您了 + 收到私信时通知你 + 私信 + 新信息 + 标记为已读 + 当某人在帖子中提到或引用你时,通知你 + %1$s 提到了你 + 提及 + 新提及 + 当有人回应您的帖子做出时通知您 + %1$s 回应了您的帖子 + 针对 %1$s + 回应 + 新回应 + 当有人回复您的帖子时通知您 + 回复 + 新的回复 + 回复 + 当成功发布了定时帖或未能发布定时帖时发出通知。 + 定时帖 + 收到打闪时通知你 + %1$s聪 + 为 %1$s + 来自 %1$s + 收到打闪 + 新打闪 + 应用程序设置 + 证明 + 证明请求 + 证明人熟练度 + 证明人建议 + 音频可视化 + 当您输入或在编辑器中有未发送的文本时自动保存草稿事件并发送到您的私人发件箱中继。 + 自动创建草稿 + 沉浸式滚动 + 滚动时隐藏导航栏 + 图像预览 + 自动加载图像和 GIF + 视频播放 + 自动播放视频和 GIF + 个人头像 + 显示个人头像 + URL 预览 + 显示 URL 预览 + 自动播放视频 + 视频在屏幕上可见时自动播放视频 + 无法从 AVIF 删除元数据: %1$s + 授予徽章 + 返回 + 备份密匙 + 徽章 + 身份验证失败 + 生物计未能验证此手机的所有者 + 生物计未能验证此手机的所有者。错误:%1$s + 仅阻止 + 中继黑名单 + 应用永远不会连接的中继 + 已隐藏用户 + 新建书签列表 + 书签列表元数据 + 书签列表元数据可以被Nostr上的任何人看到。只有您的私密成员是加密的。 + 书签 + 提升 + 底部导航栏 + 广播中继 + 推送你的帖子到其他中继的中继,例如:sendit.nosflare.com,应用会把这个中继作为提示嵌入到你发送的所有事件的 Json 结构中 + 浏览器 + 收藏夹 + 正通过 open web 加载 Tor。点击使用 Tor。 + 正通过 Tor 加载。点击使用 open web。 + + %1$s, %2$d 个活动 + + 图片上传失败 + 选中的图像无法上传。请重试或粘贴一个URL。 + 分享日历活动 + 在地图中打开 + 打开链接 + 正在发生 + %1$s · 结束于 %2$s + + 在 %1$d 分钟内开始 + + 您正参加的活动即将开始时进行提醒。 + 日历提醒 + 日历提醒 + 日历活动 + 您正参加的活动即将开始时发出通知。 + 发送提醒 + + %1$d 分钟 + + 日历提醒 + 日 + 源 + 月 + 周 + 接受 + 蓝牙 + 关闭摄像头 + 开启摄像头 + 耳机 + 挂断 + 来电 + 视频来电 \u2026 + 语音来电 \u2026 + 静音 + 通话 + 进行中的通话通知 + Amethyst需要摄像头和麦克风访问权限来开始视频通话。请在应用程序设置中启用它们。 + Amethyst 需要麦克风权限来开始语音通话。请在应用程序设置中启用它。 + 拒绝 + 通话设置 + 扬声器 + 取消静音 + 和 %1$s 的通话 + 从 %1$s 的响应中找不到回调 URL + 取消 + Cashu 代币 + 正在检查铸币厂… + 无法兑换 Cashu + 铸币厂提供了以下错误信息: %1$s + 已收到 + 已发送 + 匹配的铸币厂 + + + 另外 %1$d + + 热门铸币厂 + + 由其他 %1$d 个用户推荐 + + 移动了 %1$s sat 到 %2$s。 + 系统上没有找到兼容的 Cashu 钱包 + + %1$d 张待处理发票 + + 支付 %1$s sat + 最多 %2$s sat 的费用? + 发布 %1$s 的 kind:38000 推荐删除请求。遵守 NIP-09 的中继会丢弃它。 + 从 %2$s 证明中恢复了 %1$s sats 。 + 已收到 Cashu + %1$s 聪已被发送到你的钱包。(费用︰ %2$s 聪) + + 您不使用的 %1$d 座铸币厂中持有的资金 + + 正在等待支付发票… + + %1$d 铸币厂 + + 停止投影 + 投射到设备 + 儿童安全标准 + 配件 + 艺术 + 书籍 + 服装 + 收藏 + 工艺 + 电子 + 健身 + 食品 + 家具 + 家中 + 杂项 + 办公 + 其它 + 宠物 + 运动 + 每日 + 每月 + 一次性 + 每周 + 通过 %2$s 支付 %1$s? + 通过 %1$s支付这张发票? + 借记服务没有完成付款。 + 输入此报价的有效金额。 + 正在请求发票… + 收起对此帖子的所有回应 + 已关闭 + 社区 + 草稿为 %1$d 字节;这个社区将此类内容大小限制为 %2$d 字节。 + 草稿为 %1$d 字节;这个社区将事件大小限制为 %2$d 字节。 + 您今天已经发布了 %1$d 个此类事件 (限制 %2$d)。 + 撰写设置 + 默认端口为 9050 + 已连接的中继 + 当前正在使用的中继列表 + 中继成功连接的百分比 + 始终 + 从不 + 未计量的 WiFi + 添加文件 + 添加图片 + 添加媒体 + 添加视频 + 隐藏 + 警告 + 显示 + 会话 + 将动画的 GIF 转换为 MP4 视频以获取较小文件大小和更好的播放兼容性。 + 转换 GIF 为 MP4 + 已复制笔记ID (@note1) 到剪贴板 + 文本已复制到剪贴板 + 已复制到剪贴板 + 已复制作者公钥 ID 到剪贴板 + 复制我的私人密钥 + 复制到剪贴板 + 无法从闪电地址集合LNURL"%1$s"。请检查用户设置 + 无法检查经过上传后再下载的文件:%1$s + 无法从服务器下载上传的媒体 + 无法从 %1$s 获取发票:%2$s + 无法打开压缩文件 + 未找到钱包 + Amethyst 找不到任何支持 Nostr Wallet Connect (NWC) 的钱包应用. +\n\n你可以做的事情: +\n\t1. 验证 NWC 支持:仔细确认偏好的钱包应用和 Nostr Wallet Connect 兼容。 +\n\t2. 创建连接:前往钱包应用并创建新的 NWC 连接。 +\n\t3.链接到 Amethyst: 你的钱包通常会给你三个选项: +\n\t\t3.1 自动链接:自动打开并连接到 Amethyst 的按钮。如果是这样, 单击那个按钮,打开 Amethyst 并在新屏上按保存。 +\n\t\t3.2 手动链接: 你可以复制的连接 URI,单击这个屏幕上的粘贴图标直接输入它。 +\n\t\t3.3 二维码: 钱包会创建一个你可以从这个屏幕中的二维码按钮那里读取的二维码。 + + 创建 + 天 + 危险区 + 深色 + 描述 + 设为公开 + 聊天 + 社区 + 算法动态 + 关注包 + 直播 + 市场 + 阅读 + 私信收件箱中继 + 私信 + 不要翻译 + 此处显示的语言不会被翻译,请选择一种目标语言重新翻译并去除这个提示。 + 保存到手机 + 正下载视频… + 笔记草稿 + 草稿 + 账户 + 创建 + 源 + 导航 + 系统 + 你 + + %1$d 天 + + + %1$d 小时 + + + %1$d 分钟 + + + %1$d 个月 + + + %1$d 周 + + + %1$d 年 + + 编辑日历 + 编辑日历活动 + 编辑社区 + 编辑表情包 + 编辑播放列表 + 编辑帖子 + 私密表情符号被加密存储在中继上,只对您可见。它们就像公开表情符号一样出现在回应菜单和 ":" 自动完成中。 + 公开表情符号对所有人可见;当此表情包位于您的表情符号列表中时,它们会显示在您的“反应”菜单及“:”自动补全选择器中。 + 表情 + 上传前为了隐私加密文件。有些服务器可能不接受免费账户的加密文件。 + 加密文件 + 临时聊天 + 错误 + 不能生成支付发票 + 无法提款 + 无法打开付款 + 无法发送打闪 + 打开签名应用时出错 + 找不到签名应用。检查应用是否已被卸载 + 解析错误信息时出错 + 从 %1$s 解析 JSON 发生错误。请检查用户的闪电设置 + 无法从接收方的服务器获取发票 + 在浏览器中打开 + 无法播放此视频。 + 此设备不支持该编解码器或格式(%1$s)。请尝试在您的浏览器中打开它。 + 错误 + 中继同步 + 来自您的事件 + 给您的事件 + 循环训练 + 骑行 + 饮食 + 节食 + 远足 + 冥想 + 划船 + 跑步 + 强度 + 游泳 + 步行 + 瑜伽 + 展开 + 过期日期 + 导出中继设置 + 删除失败:%1$s + 私钥加密失败 + 保存图片失败 + 保存 PDF 失败 + 保存视频失败 + 许多服务器不接受免费账户的加密文件。您可以不加密重试。 + 加密上传失败 + 上传错误:%1$s + 无法上传媒体 + 无法上传到%1$s:%2$s + 添加至收藏夹 + 通过 open web 加载。 + 通过 Tor 加载。 + 最近 + 从收藏中移除 + 该应用尚未加载。稍后再试。 + 喜欢的应用 + 收藏源算法 + 支付了一笔款项 + 已发布到中继 + 上传了一个文件 + 喜爱的中继源 + 经常前去查看全局源的中继 + 社区 + 订阅源算法 + 源 + 话题标签 + 兴趣集 + 列表 + 位置 + 中继 + 文件服务器 + 选择上传文件时使用的服务器 + 隐藏陌生人的五次或五次以上完全相同的帖子 + 过滤垃圾信息 + 关注 + 回关 + 所有收藏源算法 + 周围的人 + 精选 + 全球 + 默认关注列表 + 所有关注 + 所有用户关注 + 我的 + 静音列表 + 新的关注包 + 编辑关注包 + 关注包元数据可以被Nostr上的任何人看见,并且常作为新用户启动包发布在许多网站上。 + 关注包元数据 + 关注包 + 新建关注列表 + 编辑列表 + 资料页图库样式 + 选择图库样式 + 经典 + 现代 + 位置限定帖子 + 只有处于同一地理位置的关注者才能看到贴帖子。一般关注者无法看到。 + 设定目标为 %2$s sats,筹集到 %1$s + 时 + 此内容已更改。作者可能没有看到或批准更改 + 这是什么意思 + 此内容与发布时相同 + 嗨,%1$s,这个还能买到吗? + 隐藏单词 + 当社区发布了一份NIP-9B规则文档而一个事件会让它失灵时,丢弃社区的帖子。 当社区没有结构化规则时没有任何影响。 + 隐藏违反社区规则的帖子 + 隐藏密码 + 正在上传 %1$s (%3$d 中的 %2$d) + 全部 + Bad Request - 服务器无法处理请求。 + Unauthorized - 用户没有有效的身份凭证。 + Payment Required - 服务器需要付费以完成该请求。 + Forbidden - 用户没有权限发起该请求。 + Not Found - 服务器无法找到请求的地址。 + Method Not Allowed - 服务器支持该请求方法,但目标资源不支持。 + Not Acceptable - 服务器找不到满足该请求的内容。 + Proxy Authentication Required - 用户没有有效的身份凭证。 + Request Timeout - 服务器等待其他人时超时。 + Conflict - 服务器由于资源有冲突无法完成该请求。 + Gone - 请求的内容已从服务器上永久性删除。 + Length Required - 服务器由于内容长度未定义而拒绝该请求。 + Precondition Failed - 请求头部未满足服务器的前提条件。 + Payload Too Large - 服务器由于请求体大小超过接受的上限而拒绝处理该请求。 + URI Too Long - 客户端请求的 URL 过长导致服务器无法处理。 + Unsupported Media Type - 该请求使用了服务器不支持的媒体格式。 + Range Not Satisfiable - 服务器无法满足该请求头部中指定的 Range 标头范围。 + Expectation Failed - 服务器无法满足该请求头部中指定的 Expect 标头条件。 + Upgrade Required - 服务器拒绝使用当前协议处理该请求,除非客户端升级到其他协议。 + Internal Server Error -服务器遭遇意外错误而无法完成请求。 + Not Implemented - 服务器无法完成该请求或不支持该请求方法。 + Bad Gateway - 网关服务器收到了源服务器的无效响应。 + Service Unavailable - 该情况通常发生在服务器超载或因维护而宕机。 + Gateway Timeout - 网关服务器因等待源服务器响应而超时。 + HTTP Version Not Supported - 服务器不支持该请求的 HTTP 版本。 + Variant Also Negotiates - 服务器内部配置错误。 + Insufficient Storage - 服务器没有足够的存储空间用于处理该请求。 + Loop Detected - 服务器处理该请求时检测到死循环。 + Network Authentication Required - 客户端必须通过认证才能访问该网络。 + 非法行为 + 图片已保存到相册 + 冒充 + 收件箱中继 + 来自 %2$s 的错误的发票金额(%1$s 聪)。它本应该是 %3$s + 索引器中继 + 专门保存每个人的账户元数据的中继(例如:purplepag.es),应用会使用这些中继来查找不在你列表中的账户元数据。 + 新的兴趣集 + 重命名 + 兴趣集 + 无效密钥 + 无效的密钥:%1$s + 地址无效 + Amethyst 收到了要打开的 URI,但该 uri 无效:%1$s + 无法引用笔记草稿 + 无法回应笔记草稿 + 无法回复笔记草稿 + 无法打闪笔记草稿 + 需要密钥 + 密钥包中继 + 发布 MLS 密钥包的中继(MIP-00)。其他用户获取这些密钥包来邀请你加入 Marmot 群聊。插入1~3个接受来自你的密钥包事件的中继并允许公开读取。 + 密钥包 + 接受的徽章集 + 探险前言 + 探险阅读 + 探险场景 + 应用推荐 + 预约 + 应用程序 + 预约确认请求 + 音频标题 + 音轨 + 创作的播客 + 徽章奖励 + 徽章定义 + Blob 数据 + Blob 头部 + 中继黑名单 + 博客 + Blossom 认证 + Blossom 服务器 + 书签列表 + 广播中继 + 日历 + 频道定义 + 频道隐藏消息 + 频道列表 + 频道消息 + 频道元数据 + 频道静音用户 + Chess 网站认证 + 国际象棋挑战 + 和棋请求 + 接受国际象棋游戏挑战 + 国际象棋游戏结束 + 国际象棋游戏 + 棋子移动 + 分类广告 + 评论 + 社区定义 + 社区列表 + 社区帖子 + 名片 + 日预约 + 删除 + 私信文件 + 私信消息 + 私信中继 + 草稿 + DVM 内容请求 + DVM 内容响应 + DVM 状态 + DVM 用户请求 + DVM 用户响应 + 编辑 + 表情包列表 + 表情包 + 临时聊天 + 临时聊天室 + 收藏的播客 + 喜爱的中继 + 文件标题 + 文件服务器 + 关注列表 + 关注包 + Geohash 关注 + 包装礼物 + Git 问题 + Git 补丁 + Git 回复 + Git 仓库 + 话题关注 + 精彩场面 + Http 认证 + 索引中继列表 + 实时聊天 + 直播 + 医疗数据 + 会议室 + 会议空间 + 音乐播放列表 + 音乐曲目 + 静音列表 + 已命名书签 + 语音聊天服务器 + NIP-04 私信 + Nostr 连接 + 笔记 + NWC 请求 + NWC 响应 + 旧书签列表 + 发件箱中继 + 人员列表 + 图片 + 置顶 + 播客节目 + 播客秀 + 投票 + 投票响应 + 私密中继 + 私下打闪 + 个人资料 + 个人资料徽章 + 资料页图库 + 代理中继 + 公开消息 + 回应 + 中继认证 + 中继发现 + 中继监视器公告 + 中继集合 + 举报 + 转发 + 转发(16) + 房间状态 + 密封信息 + 搜索中继 + 短篇 + 短篇 (回复) + 种子注释 + 种子 + 可信的提供商 + 可信中继 + 用户删除 + 用户设置 + 用户状态 + 视频 + 视频 (回复) + 语音消息 + 语音回复 + 唤醒 + 网络书签 + 维基 + 锻炼 + 打闪目标 + 打闪投票 + 打闪请求 + 打闪 + 私聊 + 语言显示首选项 + 对于每个翻译的语言对,选择先显示哪个语言。 + %1$s 前活跃 + 刚见到 + 从未见过 + 上次见于 %1$s (%2$s 之前) + 离开 + 浅色 + 直播 + 本地中继 + 在该设备中运行的中继列表。 + 你正在使用公钥,公钥是只读的。使用私钥登录以便提升帖子 + 你正在使用公钥,公钥是只读的。使用私钥登录以便能够关注 + 你正在使用公钥,公钥是只读的。使用私钥登录以便能够隐藏单词或句子 + 你正在使用公钥,公钥是只读的。使用私钥登录以便回复 + 你正在使用公钥,公钥是只读的。使用私钥登录以便发送打闪 + 你正在使用公钥,公钥是只读的。使用私钥登录以便能够显示单词或句子 + 您正在使用公钥以只读方式登录,需要使用私钥登录才能签署事件。 + 你正在使用公钥,公钥是只读的。使用私钥登录以便能够取消关注 + 您正在使用公钥以只读方式登录,需要使用私钥登录才能上传。 + 你正在使用公钥,公钥是只读的。使用私钥登录以点赞帖子 + 视频 + 分 + 我的表情包 + 正在添加 %1$s… + 已授予管理员权限 + 已撤销管理员权限 + 添加 %1$s失败: %2$s + 创建群失败: %1$s + 授予管理员权限失败: %1$s + 退群失败: %1$s + 移除成员失败: %1$s + 撤销管理员失败: %1$s + 更新失败: %1$s + MLS 组 + 群信息已更新 + + %1$d 位成员 + + 成员已移除 + + %1$d 条消息 + + 不是此群的成员 + 未知错误 + 媒体已添加 + 媒体已添加到个人资料相册中 + 媒体下载已开始… + 媒体服务器 + 文件过大,无法使用 NIP-95 + 需要首先输入消息的目标位置 + 无法上传 + 主题 + 无法删除元数据 + 从媒体删除私密元数据失败。上传取消。 + 书签迁移成功 + 打闪设置缺失 + 更多选项 + 移动到私密 + 移动到公开 + 上传封面图片 + 选择一个正方形图像作为这个播放列表的艺术作品。 + + 另外 %1$d 首曲目 + + + %1$d 首曲目 + + + %1$d 首曲目 + + 正在上传封面并发布。即使您离开屏幕,这也会继续进行。 + 上传音频文件 + 选择 MP3, WAV 或 FLAC。保存时它将被上传到媒体服务器。 + 上传封面图片 + 选择一个正方形图像作为这个曲目的艺术作品。 + 正砸上传封面 + 音频和发布。即使您离开屏幕,这也会继续进行。 + 声音开启。点击静音 + 静音。点击取消静音 + 我的列表 + 名称必填 + %1$d毫秒 + Namecoin 设置 + 身份 + 读取您的公钥 + 消息收发 + 与其他napplets交换消息 + 键盘操作 + 绑定键盘快捷键 + 通知 + 向您显示通知 + 中继 + 读取并签署 & 发布您的事件 + 网络 + 获取 web 和 Blossom 资源 + 存储 + 其自身的私密存储 + 主题 + 匹配您应用的颜色 + 上传 + 上传文件到您的媒体服务器 + 付款 + 支付闪电发票 + 此 nApplet 想要读取您的公钥。 + 此 nApplet 想要读取您的个人资料和账户数据。 + 此 nApplet 想要向您显示通知。 + + 此 nApplet 想要支付 %1$d sat 的闪电发票。 + + 此 nApplet 想要像您一样签署并发布一个 %1$d 类型事件。 + 此 nApplet 想像您一样发送一个加密事件。 + 此 nApplet 想要像您一样签署并发布一个 %1$d 类型事件: + 此 nApplet 想要从您的中继读取事件。 + 此 nApplet 想要获取一个 web 资源。 + 此站点想要用您的Nostr密钥签署一个 %1$d 类型事件。 + 此 nApplet 想要使用其私密存储。 + 此 nApplet 想要上传一个文件到您的媒体服务器。 + 无法发送信息 + 消除此演讲者的声音 + 恢复此演讲者的声音 + 离开 + 不能将聊天室标记为已关闭。仍然离开——聊天室将自动关闭。 + + %1$d 位听众 + + 放下手 + 麦克风静音 + 取消麦克风静音 + 静音 + 无法保存您的语音聊天服务器列表。请重试。 + 语音聊天室 — 在线 + 语音聊天房 + 当聊天室开放时保持音频播放。 + 语音聊天室已连接 + 停止 + 轻触返回。 + 关注 + 静音 + 取关 + 取消静音 + 离开语音聊天室 + 作为观众加入 + 步入舞台 + 举手 + 正在说话 + 举手 + 取消静音 + 音频室 + 保存为 10112 类型的可替换事件,以便其他客户端可以读取您的首选项。 + 您的服务器 + 内置建议,您可轻触添加到列表中。 + 推荐的服务器 + 语音聊天服务器 + 从不 + 新徽章 + 新建日历 + 新建日历活动 + 新建社区 + 协管 + 中继 + 封禁的用户 + 社区评论(1111) + 长文章(30023) + 图片帖子(20) + 短文本 (1) + 短视频(22) + 视频帖子 (21) + 允许的事件类型 + 全局最大事件大小(可选) + 可验证规则 (可选) + 信任网络网关(可选) + 新的表情包 + 新目标 + 新文章 + 新建播放列表 + 新音乐曲目 + 新产品 + 新请求 + 新主题帖 + 新锻炼 + + 捆绑了 %1$d 个资产 + + 找不到Blossom应用。请安装本地Blossom应用查看此文件 + 无法打开 Blossom 链接 + 此设备上没有找到相机应用 + 未设置闪电地址 + 没有找到处理此付款的应用。请安装兼容的钱包。 + 没有安装应用程序来处理 %1$s 付款。请安装一个兼容的钱包。 + 未选择回应类型。长按可更改 + 没有设置回应 + 找不到支付闪电发票的钱包。请安装闪电钱包来使用打闪 + 找不到支付闪电发票的钱包(错误:%1$s)。请安装闪电钱包来使用打闪 + 没有设置打闪金额。长按以更改 + 通知 + 分类 + 发送 + 应用内显示 + 现在 + Nowhere 艺术 + Nowhere 事件 + Nowhere 论坛 + Nowhere 筹款人 + Nowhere 站点 + Nowhere 消息 + Nowhere 申请 + Nowhere 商店 + 裸露 + 无法构建事件参考 + 笔记上没有收件人的公钥 + Nutzaps 是公开的,将会透露该私密笔记。请使用闪电打闪代替。 + Nutzap 失败 + + 发送 %1$s sats, %2$d 拆分 + + 未配置比特币链后端 + 无法广播交易 + 无法构建交易 + 无法加载您的比特币余额 + 付款已发送,但打闪收据无法发布 + + 付款已发送(已发布 %1$d 份收据,共 %2$d 份),但下一收据无法发布 + + 收款人份额过低 + 无法签署交易 + 约10分钟 + 约30分钟 + 约1小时 + 快 + 正常 + 慢 + + 在 %1$d 位收款人之间拆分 + + + 正在跳过 %1$d 位仅闪电网络地址收款人 - 链上需 Nostr 公钥派生地址。 + + + 使用此记事的 %1$d 路打闪拆分 + + 正在广播 + 正在建立交易 + 加载余额 + 发布收据中 + 正签名 + 这种投票只允许每个用户一票 + 展开对此帖子的所有回应 + 开启 + Orbot Socks 端口 + 比特币资源管理器 (OTS) + %1$s之前的某个时候签署了此帖子的证明。此证明是在那个日期和时间在比特币区块链中盖章的。 + OpenTimestamps 证明 + 发件箱中继 + 密码必填 + 暂停 + 付款 + 来自 %1$s 的消息 + 付款目标 + 添加不同网络的付款地址(如比特币、比特币闪电、以太坊)。 + 已保存 PDF 到 Downloads/Amethyst + 关注列表元数据可以被Nostr上的任何人看到。只有您的私人成员是加密的。 + 关注列表元数据 + 图片 + 置顶 + 置顶到个人资料 + 播放 + + %1$d 期节目 + + 投票作者不能在自己的投票中投票。 + 该投票已结束 + 多选 + 选项 %1$s + 单选 + 无法投票 + 投票 + 帖子 + + 此帖有超过 %1$d 个话题标签 + + 预览 %1$s 卡片图片 + 隐私选项 + 隐私政策 + <无法解密私密消息>\n\n;你被 %1$s 和 %2$s 之间的私人/加密会话引用。 + 私信收件箱中继 + 设置 1 ~ 3 个中继作为您的私人收件箱。其他人将使用这些中继向您发送私信。需要确保这些收件箱中继能够接受来自任何人的任何私信消息,但只允许您读取这些消息。示例:\n - inbox.nostr.wine(付费)\n - you.nostr1.com(个人专用中继 - 付费) + 用户接收到这些中继的私信 + 私信 + 设为私密:将笔记包装为礼物仅发给要通知的用户 + 对私密笔记的回复总是不公开的 + 可见范围 + 私人中继 + 设置 1 ~ 3 个中继用于保存其他人无法看到的事件,例如您的草稿和软件设置。理想情况下,这些应该是本地中继,或者是在获取用户内容时需要经过身份验证的中继。 + 不文雅的言辞 / 敌意言论 + 个人档案 + 个人资料徽章 + 应用推荐 + 个人资料徽章 + 关注者源 + 收到的打闪源 + 个人资料界面 + 个人资料 + 提出修改建议 + 代理中继 + 聚合器中继是应用获取资讯源时使用的中继(例如:filter.nostr.wine),设置这个列表将覆盖信箱模型的行为,使得应用只会连接到这个列表中的中继以获取内容。 + 公共聊天 + 公开聊天对所有 Nostr 用户都是可见的,任何人都可以: + 参与这些聊天。这对特定话题建立的开放式社区来说很重要 + 通过删除中继上的帖子实现内容审核控制 + 使用 1~3 个中继托管这个群组。 + 让 Nostr 客户端知道应该使用这些中继配置来发送和下载消息。 + 中继器 + 公开聊天元数据 + 公共聊天 + 公共时间线中继 + 这类中继会保存您的所有内容。Amethyst 会将您的事件发送到这些中继,其他人则通过这些中继查找您的内容。可以设置 1 ~ 3 个中继。它们可以是个人专用中继、付费中继或者公共中继。 + 用户正在将其内容发布到这些中继 + 公开消息 + 公共收件箱中继 + 这类中继用于接收其他人对您内容的回复、评论、点赞和打闪。可设置 1 ~ 3 个中继,需要确保它们能够接受来自任何人的事件(公共写入)。 + 用户正在接收这些中继的通知 + 笔记ID + 删除 + 主题帖静音 + 分享 + 分享浏览网址 + 取消主题帖静音 + 回应 + 回应 + 回应设置 + 从中继器读取 + 从该中继接收事件和过滤响应所使用的数据量 + 仅读用户 + 点按以录制消息 + 中继聊天 + 中继聊天是由聊天所属中继控制的聊天群组。 + Nostr 上的每个人都可以看到这些群组,任何人都可以加入群组。 + 这非常适合围绕特定主题而建立的开放社区。其中一些群组是临时的, + 因此聊天信息会随着时间的推移而消失。 + 中继聊天 + 事件 + IP地址 + 类型 + 用户 + 设置 + 中继设置 + 发件箱列表 + 中继器 + 充值 & 发送打闪 + 发送打闪 + 充值 %1$s sats 到 %2$s 并打闪 %3$s %4$s sats · fee ≈ %5$s sats + 移除 + 从公开书签中移除 + 🔏在此回复… + 通知: + + 请求删除 + 请求消失 + 重置 Marmot 状态失败: %1$s + 重置 Marmot 状态 + Marmot 状态重置。 + 重试 + 日历列表 + 日历 + 国际象棋 + 发现 + 主页 + 导入关注 + 消息 + 播放列表 + 音乐 + 通知 + 节目 + 播客 + 定时帖 + 取消时间安排 + 在重新打开应用前可能不会发布定时帖。此账户活跃时,其他账户的定时帖不会发布。要获得稳定的后台定时功能,在“设置” →"用户界面首选项“ 中开启”始终显示“。 + 下次重新打开应用前可能不会发布定时贴。要获得稳定的后台定时功能在“设置” → “用户界面偏好” 中启用“始终显示”。 + 定时帖子 + 立即发送 + %1$s ·在 %2$s + %1$s · %2$s 前 + 明天 + 错误:%1$s + 已复制笔记 ID + + 已退出登录 删除了 %1$d 个定时帖 + + 已退出登录 + + 您有尚未发布的 %1$d 个定时帖。退出登录将永久删除它们。 + + 未能发布定时帖 + 发布了定时帖 + + 到 %1$d 个中继 + + 已取消 + 失败 + 已安排时间 + 正在发送… + 已发送 + + • %1$d 个于1小时内到期 + + + %1$d 个已加入队列 + + 示例:\n%1$s + 搜索中继 + 搜索中继 + 用于关键词和标签检索的中继列表。如果没有可用选项,也就无法使用关键词和标签检索。需要确保它们支持 NIP-50。 + 可搜索的事件 + 私人密钥(nsec)已复制到剪贴板 + 您尚未屏蔽任何用户。 + 安全过滤器 + 没有隐藏的单词。在下方添加一个单词来隐藏包含它的帖子。 + 拦截的内容 + 过滤的首选项 + 本次会话中还没有账户被标记为垃圾信息。 + 发送 + 将所有收到的配置文件(类型0)事件发送到您的本地中继 + 转发个人资料到本地中继 + 可为该收款人支付的金额:%1$s sats + 付款失败 + 交易: %1$s + 正通过 %1$s 付款… + 上传后服务器没有提供 URL + 设置 + 无静音的主题帖 + 静音的主题帖 + 以图片方式共享 + 以图像地址形式分享 + HLS 上传 + 分享或保存 + 短视频 + 显示加密私钥二维码 + 在通知选项卡上包含私信和群消息。如关闭只在消息选项卡中保留消息。 + 显示消息 + 显示私钥二维码 + 签名请求已被拒绝 + 请确保签名应用程序已授权此交易 + 外部签名器对该请求返回了不正常的载荷。这可能是 Amethyst 或签名器上的错误。 + 未找到签名器 + 签名器被卸载?请检查是否已经安装了签名器以及其中是否存在该账户。变更签名器需要注销后重新登录。 + 后退 %1$d 秒 + 前进 %1$d 秒 + 应用 + 垃圾信息 + 来自该中继的垃圾事件数量 + 垃圾邮件 + 显示两个通知选项卡 — — 关注(你关注的人) 和所有人。未读的指示器只为你关注的人的活动发出微光。 + 根据关注拆分通知 + 尝试在上传之前从支持的媒体文件中删除私密元数据 + 删除私密元数据 + 从 Health Connect (Shamsung Health, Google Fit, Fitbit, Garmin…)读取完成的锻炼,并建议将其作为帖子分享。 只有当您连接时才请求权限。 + 推荐要分享的锻炼 + 系统 + 主题 + 暗色、亮色或系统主题 + 此消息将在 %1$s 后消失 + + +%1$d\n条回复 + + 今天 + 自定义 + 让你自己来设置 + 默认 + 从随机中继中隐藏 IP + 完全隐私 + 为所有连接隐藏 IP + 内置 + 关闭 + Tor 和隐私预设 + 快速修改下方的设置 + 除多媒体外的所有内容 + 除了图片和视频外,总是隐藏 IP + 私信中继 + 强制在收发私信时使用 Tor + 图片 + 强制为加载图片时使用 Tor + 媒体上传 + 强制为上传媒体内容时使用 Tor + 资金操作 + 强制为 Zap、闪电网络和 Cashu 转账时使用 Tor + 不受信任的中继 + 强制对收件箱和发件箱中继使用 Tor + Nostr 地址验证 + 强制为 NIP-05 地址验证使用 Tor + Onion 链接或中继地址 + 为 .onion 链接使用 Tor + 用户资料图片 + 强制为下载用户资料图片时使用 Tor + 可信中继 + 强制为所有中继使用 Tor + 链接预览 + 强制为链接预览使用 Tor + 视频 + 强制为加载视频时使用 Tor + 基础 + 当服务器要求时使用 Tor + 打开文件失败 + 没有用于打开和下载文件的 Torrent 客户端 + 事件没有足够信息来构建磁力链 + 在发送事件时使用已跟踪的广播。在广播时显示实时进度和每个中继的状态。 + 已跟踪的广播 + 翻译为 + 选择要将内容翻译为什么语言。 + 翻译 + 可信中继 + 无需使用 Tor 进行连接的可信中继 + 完整版 + 极速版 + 简化版 + 用户界面首选项 + 界面模式 + 选择帖子样式 + 无法在发送打闪前创建闪电发票。接收者闪电钱包发送了以下错误: %1$s + 无法分享图片,请稍后重试… + 无法分享视频,请稍后重试… + 未授权的解密 + 签名器没有授权解密操作,请在签名器中授予 NIP-44 解密权限并重试。 + 取关 + 取消置顶 + 从个人资料中取消置顶 + 上传已取消 + 上传出错 + 语音上传失败:%1$s + 上传语音消息失败 + 语音消息尚不支持 NIP-95 + %1$d%% 运行时间 + 启动 Tor + 使用内置 Tor 或者 Orbot + 用户尚未设置闪电地址以接收聪 + 用户 %1$s 尚未设置接收聪的闪电地址 + 消失历史记录 + 消失请求已发送 + 文件较小而质量更佳,但不是所有设备都支持 H.265 播放。 + 使用 H.265/HEVC 编解码器 + 视频下载已开始… + 视频播放器按钮 + 视频已保存到媒体库 + 语音帖子 + 深沉 + 高音 + 中性 + 无 + 语音回复 + 钱包 + Cashu 钱包 (NIP-60) + 钱包绑定 + 你的钱包连接提供者返回了以下错误: %1$s + 编辑铸币厂 + 当帖子有来自你关注的五次及以上举报时显示警告消息 + 举报警示 + 添加网络书签 + 编辑网络书签 + 网络书签 + 你在想什么? + 锻炼 + 写一条消息… + 写入到继电器 + 向该中继发送事件和过滤请求所使用的数据量 + 打闪 + 打闪 + + 重命名 + 保存 diff --git a/commonsUI/src/commonMain/composeResources/values-zh-rTW/strings.xml b/commonsUI/src/commonMain/composeResources/values-zh-rTW/strings.xml index cd46d9cf63..77d25dcd04 100644 --- a/commonsUI/src/commonMain/composeResources/values-zh-rTW/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-zh-rTW/strings.xml @@ -1795,4 +1795,1146 @@ Explorer API 基礎網址 支付來自 DVM 的發票 向 DVM 支付 %1$s sats + 關於與法律 + 帳號設定 + 添加 + 新增 Blossom 伺服器 + 添加 NIP-96 服務器 + 啟用後,Amethyst 會在您發布的事件中附加 NIP-89 客戶端標籤。 + 在我的事件中新增客戶端標籤 + 在顯示此內容之前添加敏感內容警告 + 敏感內容 + 添加到公開書籤 + 使用裝置上的 AI 模型提出文字修正和語氣變更建議。 + 建議文字改進 + 保持與收件匣 relay 的連線,以接收即時通知 + + 已連接至 %1$d 個收件匣 relay + + + 已連接至 %1$d 個 relay + + 正在連接收件匣 relay… + Amethyst 通知已啟用 + 語音及視訊通話來電通知 + 來電 + %1$s 接受了您的西洋棋對局邀請 + 通知您西洋棋對局事件 + 西洋棋 + 西洋棋更新 + %1$s 已落子——輪到您了 + 受到私信時通知你 + 私信 + 新訊息 + 標記為已讀 + 當有人在貼文中提及或引用您時通知您 + %1$s 提及了您 + 提及 + 新提及 + 當有人對您的貼文做出回應時通知您 + %1$s 對您的貼文做出回應 + 為了 %1$s + 回應 + 新回應 + 當有人回覆您的貼文時通知您 + 回覆 + 新回覆 + 回覆 + 當排程貼文發佈或發佈失敗時發送通知。 + 排程貼文 + 收到打閃時通知你 + %1$s聰 + 為 %1$s + 來自%1$s + 收到打閃 + 新的 zaps + 應用程式設定 + 認證 + 認證請求 + 認證者專業能力 + 認證者推薦 + 音訊視覺化 + 當您輸入或離開含有未送出文字的撰寫器時,自動儲存草稿事件並傳送至您的私人發件箱 relay。 + 自動建立草稿 + 沉浸式捲動 + 捲動時隱藏導航欄 + 圖像預覽 + 自動加載圖像和 GIF + 視頻播放 + 自動播放視頻和 GIF + 頭像 + 顯示頭像圖片 + 鏈接預覽 + 顯示鏈接預覽 + 自動播放影片 + 在畫面上顯示時自動播放影片 + 無法從 AVIF 移除中繼資料:%1$s + 頒發徽章 + 返回 + 備份密鑰 + 徽章 + 身份驗證失敗 + 生物計未能驗證此手機的所有者 + 生物計未能驗證此手機的所有者。錯誤:%1$s + 屏蔽 + 封鎖的 Relay + Amethyst 永遠不會連線至這些 relay + 已隱藏用户 + 新增書籤清單 + 書籤清單中繼資料 + 書籤清單的中繼資料可被 Nostr 上的任何人看到。只有您的私密成員是加密的。 + 書籤 + 提升 + 底部導覽列 + 廣播 Relay + 專門將您的貼文推送至所有其他 relay 的 relay,例如 sendit.nosflare.com。Amethyst 會將此 relay 加入您發出的所有新事件中。 + 瀏覽器 + 我的最愛 + 正透過開放網路載入。點擊以使用 Tor。 + 正透過 Tor 載入。點擊以使用開放網路。 + + %1$s,%2$d 個活動 + + 圖片上傳失敗 + 所選圖片無法上傳。請再試一次或貼上 URL。 + 分享行事曆活動 + 在地圖中開啟 + 開啟連結 + 正在進行中 + %1$s · 結束於 %2$s + + %1$d 分鐘後開始 + + 當您出席的活動即將開始時發出提醒。 + 行事曆提醒 + 行事曆活動 + 當您出席的活動即將開始時發出通知。 + 傳送提醒 + + %1$d 分鐘 + + 行事曆提醒 + 日 + 動態 + 月 + 週 + 接聽 + 藍牙 + 關閉攝影機 + 開啟攝影機 + 聽筒 + 掛斷 + 來電 + 視訊來電… + 語音來電… + 靜音 + 通話 + 進行中的通話通知 + Amethyst 需要攝影機及麥克風存取權限才能發起視訊通話。請在應用程式設定中啟用。 + Amethyst 需要麥克風存取權限才能發起語音通話。請在應用程式設定中啟用。 + 拒絕 + 通話設定 + 擴音器 + 取消靜音 + 與 %1$s 通話 + 從 %1$s 的響應中找不到回調 URL + 取消 + Cashu 代幣 + 正在檢查 mint… + 無法兌換 Cashu + 鑄幣廠提供了以下錯誤消息:%1$s + 已接收 + 已傳送 + 符合的 mints + + 再 +%1$d 個 + + 熱門 mints + + 另有 %1$d 人推薦 + + 已將 %1$s sat 移至 %2$s。 + 系統上沒有找到兼容的 Cashu 錢包 + + %1$d 筆待處理發票 + + 支付 %1$s sat,手續費最高 %2$s sat? + 發布刪除請求以撤回您對 %1$s 的 kind:38000 推薦。遵守 NIP-09 的 relay 將會刪除它。 + 已從 %2$s 個憑證中恢復 %1$s sats。 + 已收到 Cashu + %1$s 聰已被發送到你的錢包。(費用:%2$s 聰) + + 有資金存放在您未使用的 %1$d 個 mint + + 等待發票付款… + + %1$d 個 mint + + 停止投放 + 投放至裝置 + 兒童安全標準 + 配件 + 藝術 + 書籍 + 服装 + 收藏 + 工藝 + 電子 + 健身 + 食品 + 家具 + 住家 + 雜項 + 辦公 + 其它 + 寵物 + 運動 + 每日 + 每月 + 單次 + 每週 + 透過 %2$s 支付 %1$s? + 透過 %1$s 支付此發票? + 扣款服務未完成付款。 + 請輸入有效的 offer 金額。 + 正在請求發票… + 收起所有對此帖子的回應 + 已結束 + 社群 + 草稿為 %1$d 位元組;此社群將此類型上限設為 %2$d 位元組。 + 草稿為 %1$d 位元組;此社群將事件上限設為 %2$d 位元組。 + 您今天已發布 %1$d 個此類型的事件(上限 %2$d 個)。 + 撰寫設定 + 預設連接埠為 9050 + 已連線的 Relay + 目前使用中的 relay 清單 + 成功連線至 relay 的百分比 + 始終 + 永不 + 未計量的 WiFi + 添加文件 + 添加圖像 + 新增媒體 + 添加視頻 + 隱藏 + 警告 + 顯示 + 會話 + 將動態 GIF 轉換為 MP4 影片,以縮小檔案大小並提高播放相容性。 + 將 GIF 轉換為 MP4 + 複製文章ID (@note1) 到剪貼板 + 文本已複製到剪貼板 + 已複製到剪貼簿 + 複製作者的 @npub 到剪貼板 + 複製我的私人密鑰 + 複製至剪貼簿 + 無法從閃電地址集合 LNURL “%1$s”。請檢查用戶設置 + 上傳後無法檢查已下載的檔案:%1$s + 無法從伺服器下載上傳的媒體 + 無法從 %1$s 取得發票:%2$s + 無法打開壓縮文件 + 找不到錢包 + Amethyst 找不到任何支援 Nostr Wallet Connect (NWC) 的錢包應用程式。\n\n您可以這樣做:\n\t1. 確認 NWC 支援:請再次確認您偏好的錢包應用程式是否與 Nostr Wallet Connect 相容。\n\t2. 建立連線:前往您的錢包應用程式並建立新的 NWC 連線。\n\t3. 連結至 Amethyst:您的錢包通常會提供三種選項:\n\t\t3.1 自動連結:點擊按鈕自動開啟並連接到 Amethyst。若有此選項,請點擊該按鈕,開啟 Amethyst 並在新畫面上點擊儲存。\n\t\t3.2 手動連結:複製連線 URI,然後點擊此畫面上的貼上圖示直接輸入。\n\t\t3.3 QR 碼:錢包會產生 QR 碼,您可透過此畫面上的 QR 碼按鈕掃描。\n + 創建 + 天 + 危險區域 + 深色 + 描述 + 設為公開 + 聊天 + 社群 + 動態演算法 + 追蹤包 + 直播 + 市場 + 閱讀 + 私信收件匣中繼 + 私訊 + 不翻譯來源語言 + 此處列出的語言將不會被翻譯。選取語言可將其移除,並再次進行翻譯。 + 儲存至手機 + 正在下載影片… + 筆記草稿 + 草稿 + 帳戶 + 建立 + 動態 + 導覽 + 系統 + 您 + + %1$d 天 + + + %1$d 小時 + + + %1$d 分鐘 + + + %1$d 個月 + + + %1$d 週 + + + %1$d 年 + + 編輯行事曆 + 編輯行事曆活動 + 編輯社群 + 編輯 emoji 包 + 編輯播放清單 + 編輯帖子 + 私人 emoji 以加密方式儲存在 relay 上,只有您可以看見。它們與公開 emoji 一樣顯示在您的回應選單和「:」自動完成中。 + 公開 emoji 對所有人可見,當此包在您的 emoji 清單中時,會顯示在您的回應選單和「:」自動完成選擇器中。 + Emoji + 上傳前加密檔案以保護隱私。部分伺服器可能不接受免費帳號上傳加密檔案。 + 加密檔案 + 閱後即焚聊天 + 錯誤 + 無法支付發票 + 無法提款 + 無法開啟付款 + 無法發送打閃 + 打開簽署程式時出錯 + 找不到簽名應用。檢查應用是否已被預載。 + 錯誤解析錯誤消息 + 從 %1$s 解析 JSON 發生錯誤。請檢查用戶的閃電設置 + 無法從接收方的伺服器獲取發票 + 在瀏覽器中開啟 + 無法播放此影片 + 此裝置不支援該編解碼器或格式(%1$s)。請嘗試在瀏覽器中開啟。 + 錯誤 + Relay 同步 + 來自您的事件 + 發給您的事件 + 循環訓練 + 騎自行車 + 飲食 + 禁食 + 健行 + 冥想 + 划船 + 跑步 + 重量訓練 + 游泳 + 步行 + 瑜伽 + 展開 + 到期日 + 匯出 relay 設定 + 刪除失敗:%1$s + 私鑰加密失敗 + 保存圖片失敗 + 儲存 PDF 失敗 + 儲存影片失敗 + 許多伺服器不接受免費帳號上傳加密檔案。您可以嘗試不加密重試。 + 加密上傳失敗 + 上傳錯誤:%1$s + 上傳媒體失敗 + 上傳至 %1$s 失敗:%2$s + 加入我的最愛 + 透過開放網路載入。 + 透過 Tor 載入。 + 最近 + 從我的最愛移除 + 該應用程式尚未載入。請稍後再試。 + 我的最愛應用程式 + 我的最愛動態演算法 + 已完成付款 + 已發佈至 relay + 已上傳檔案 + 我的最愛 Relay 動態 + 您常前往查看全球動態的 relay + 社群 + 動態演算法 + 動態 + 主題標籤 + 興趣集合 + 清單 + 位置 + Relay + 文檔服務器 + 選擇要上傳此檔案的伺服器 + 隱藏陌生人發送的相同內容達 5 次或以上的貼文 + 過濾垃圾訊息 + 關注 + 回關 + 所有我的最愛動態演算法 + 我的周圍 + 精選 + 全球 + 預設關注清單 + 所有關注 + 所有使用者關注 + 我的 + 靜音列表 + 新增關注包 + 編輯追蹤包 + 追蹤包的元資料可被 Nostr 上的任何人查看,並經常作為新用戶的入門套件發布在許多網站上。 + 追蹤包元資料 + 追蹤包 + 新增關注清單 + 編輯清單 + 個人資料相簿樣式 + 選擇相簿樣式 + 經典 + 現代 + 僅限特定位置的貼文 + 只有關注該地點的人才會看到此內容。您的一般追蹤者不會看到。 + %2$s sats 目標中已籌得 %1$s + 小時 + 此內容已更改。作者可能沒有看到或批准更改 + 這是什麼意思? + 此內容與發佈時相同 + 嗨,%1$s,這個還能買到嗎? + 隱藏單詞 + 當社群發布 NIP-9B 規則文件時,從社群動態中移除不符合規則的貼文。若社群沒有結構化規則則無效。 + 隱藏違反社群規則的貼文 + 隱藏密碼 + 正在上傳 %1$s(%2$d / %3$d) + 全部 + 錯誤請求 - 伺服器無法或拒絕處理此請求。 + 未授權 - 使用者沒有有效的身份驗證憑證 + 需要付款 - 伺服器需要付款才能完成請求 + 禁止存取 - 使用者沒有發出此請求的存取權限 + 找不到 - 伺服器找不到請求的位址 + 方法不允許 - 伺服器支援此請求方法,但不支援目標資源 + 不可接受 - 伺服器找不到符合請求的內容。 + 需要代理身份驗證 - 使用者沒有有效的身份驗證憑證 + 請求逾時 - 伺服器等待其他方回應時逾時 + 衝突 - 伺服器因資源衝突而無法完成請求 + 已消失 - 請求的內容已從伺服器永久刪除且不會恢復 + 需要內容長度 - 伺服器拒絕請求,因為請求需要定義長度 + 前提條件失敗 - 伺服器未能滿足請求標頭欄位中的前提條件 + 內容過大 - 請求超過伺服器定義的限制,伺服器拒絕處理 + URI 過長 - 用戶端請求的 URL 過長,伺服器無法處理。 + 不支援的媒體類型 - 請求使用了伺服器不支援的媒體格式 + 範圍無法滿足 - 伺服器無法滿足請求 Range 標頭欄位中指定的值。 + 預期失敗 - 伺服器無法滿足 Expect 請求標頭欄位的要求 + 需要升級 - 除非用戶端升級至不同協議,否則伺服器拒絕使用當前協議處理請求。 + 內部伺服器錯誤 - 伺服器遇到意外錯誤,無法完成請求 + 未實作 - 伺服器無法完成請求或無法識別請求方法 + 錯誤閘道 - 伺服器作為閘道並從主機收到無效回應 + 服務無法使用 - 通常發生在伺服器過載或正在維護時 + 閘道逾時 - 伺服器作為閘道或代理時,等待回應時逾時 + 不支援的 HTTP 版本 - 伺服器不支援請求中的 HTTP 版本 + 變體也在協商 - 伺服器存在內部設定錯誤 + 儲存空間不足 - 伺服器沒有足夠的儲存空間來成功處理請求 + 偵測到迴圈 - 伺服器在處理請求時偵測到無限迴圈 + 需要網路身份驗證 - 用戶端必須先通過身份驗證才能存取網路 + 非法行為 + 圖片已保存到相冊 + 冒充 + 收件匣 Relay + 來自 %2$s 的錯誤的發票金額(%1$s 聰)。應該是 %3$s + 索引 Relay + 專門儲存所有人的元數據和 relay 清單的 relay,例如 purplepag.es。Amethyst 將使用這些 relay 尋找不在您清單中的用戶。 + 新增興趣集 + 重新命名 + 主題標籤集 + 無效密鑰 + 無效的密鑰:%1$s + 地址無效 + Amethyst 收到了要打開的 URI,但該 URI 無效:%1$s + 無法引用筆記草稿 + 無法回應筆記草稿 + 無法回覆筆記草稿 + 無法打閃筆記草稿 + 需要密鑰 + KeyPackage Relay + 您的 MLS KeyPackages 發佈所在的 relay(MIP-00)。其他用戶透過這些 KeyPackages 邀請您加入 Marmot 群組聊天。請輸入 1–3 個接受您 KeyPackage 事件且允許公開讀取的 relay。 + 已接受的徽章集 + 冒險序章 + 冒險閱讀 + 冒險場景 + 應用程式推薦 + 預約 + 應用程式 + 預約回覆 + 音訊標頭 + 音訊軌道 + 已創作的播客 + 徽章獎勵 + 徽章定義 + Blob 資料 + Blob 標頭 + 已封鎖的 Relays + 部落格 + Blossom 驗證 + Blossom 伺服器 + 書籤清單 + 廣播 Relays + 行事曆 + 頻道定義 + 頻道隱藏訊息 + 頻道清單 + 頻道訊息 + 頻道元資料 + 頻道靜音用戶 + 棋局驗證 + 棋局挑戰 + 棋局和棋提議 + 棋局接受 + 棋局結束 + 棋局遊戲 + 棋步 + 分類廣告 + 評論 + 社群定義 + 社群清單 + 社群貼文 + 聯絡人名片 + 當日預約 + 刪除 + DM 檔案 + DM 訊息 + 草稿 + DVM 內容請求 + DVM 內容回應 + DVM 狀態 + DVM 用戶請求 + DVM 用戶回應 + 編輯 + 表情符號包清單 + 表情符號包 + 臨時聊天 + 臨時聊天室 + 最愛的播客 + 最愛的 Relays + 檔案標頭 + 檔案伺服器 + 追蹤清單 + 追蹤包 + 地理哈希追蹤 + 禮物包裝 + 主題標籤追蹤 + 精選 + Http 驗證 + 索引 Relay 清單 + 直播聊天 + 直播串流 + 醫療資料 + 會議室 + 會議空間 + 音樂播放清單 + 音樂曲目 + 靜音清單 + 命名書籤 + Nests 伺服器 + NIP-04 私訊 + 筆記 + NWC 請求 + NWC 回應 + 舊書籤清單 + 外送 Relays + 用戶清單 + 圖片 + 釘選 + 播客集數 + 播客節目 + 投票 + 投票回應 + 私人 Relay + 私人 Zaps + 個人資料 + 個人資料徽章 + 個人資料圖庫 + 代理 Relay + 公開訊息 + 反應 + Relay 驗證 + Relay 探索 + Relay 監控公告 + Relay 集合 + 舉報 + 轉貼 + 轉發(16) + 房間出席狀態 + 封蠟印記 + 搜尋 Relay + 短片 + 短片(Repl) + Torrent 留言 + 信任的提供者 + 信任的 Relay + 刪除用戶 + 用戶設定 + 用戶狀態 + 影片 + 影片(Repl) + 語音訊息 + 語音回覆 + 網頁書籤 + 健身紀錄 + Zap 目標 + Zap 投票 + Zap 請求 + 已准 + 語言顯示偏好設定 + 針對每個翻譯語言組合,選擇優先顯示的語言。 + 上次出現於 %1$s 前 + 剛剛出現 + 從未出現 + 上次出現於 %1$s(%2$s 前) + 離開 + 淺色 + 直播 + 本地中繼器 + 在該設備上運行的中繼器列表。 + 你正在使用公鑰,公鑰是只讀的。使用私鑰登錄以便提升貼文 + 你正在使用公鑰,公鑰是只讀的。使用私鑰登錄以便關注 + 你正在使用公鑰,公鑰是只讀的。使用私鑰登錄以便能夠隱藏單詞或句子 + 你正在使用公鑰,公鑰是只讀的。使用私鑰登錄以便回覆 + 你正在使用公鑰,公鑰是只讀的。使用私鑰登錄以便發送打閃 + 你正在使用公鑰,公鑰是只讀的。使用私鑰登錄以便能夠顯示單詞或句子 + 您正在使用公鑰,公鑰為唯讀模式。請使用私鑰登入以便簽署事件 + 你正在使用公鑰,公鑰是只讀的。使用私鑰登錄以便取關 + 您正在使用公鑰,公鑰為唯讀模式。請使用私鑰登入以便上傳 + 使用私鑰登錄以便點贊貼文 + 影片 + 分 + 我的 Emoji 包 + 正在新增 %1$s… + 管理員權限已授予 + 管理員權限已撤銷 + 新增 %1$s 失敗:%2$s + 建立群組失敗:%1$s + 授予管理員權限失敗:%1$s + 離開群組失敗:%1$s + 移除成員失敗:%1$s + 撤銷管理員權限失敗:%1$s + 更新失敗:%1$s + MLS 群組 + 群組資訊已更新 + + %1$d 位成員 + + 成員已移除 + + %1$d 則訊息 + + 非此群組的成員 + 未知錯誤 + 媒體已新增 + 媒體已新增至您的個人資料相簿 + 媒體下載已開始… + 媒體服務器 + 媒體檔案對 NIP-95 而言太大 + 請先填寫訊息的目標地址 + 無法上傳 + 主題 + 無法移除中繼資料 + 無法從媒體中移除私人中繼資料。上傳已取消。 + 書籤遷移成功 + 閃電設置缺失 + 更多選項 + 移至私密 + 移至公開 + 上傳封面圖片 + 請選取正方形圖片作為此播放清單的封面。 + + 再 +%1$d 首 + + + %1$d 首曲目 + + + %1$d 首曲目 + + 正在上傳封面並發布。即使您離開此畫面,上傳仍將繼續。 + 上傳音訊檔案 + 請選取 MP3、WAV 或 FLAC 檔案。儲存時將上傳至您的媒體伺服器。 + 上傳封面圖片 + 請選取正方形圖片作為此曲目的封面。 + 正在上傳封面和音訊並發布。即使您離開此畫面,上傳仍將繼續。 + 聲音開啟。點擊靜音 + 靜音。點擊取消靜音 + 我的清單 + 名稱為必填 + Namecoin 設定 + 身份識別 + 讀取您的公鑰 + 訊息傳遞 + 與其他 nApplet 交換訊息 + 鍵盤操作 + 綁定鍵盤快捷鍵 + 通知 + 向您顯示通知 + Relay + 讀取、簽署並發佈您的事件 + 網路 + 擷取網路及 Blossom 資源 + 儲存空間 + 其自有的私人儲存空間 + 佈景主題 + 配合您應用程式的色彩 + 上傳 + 上傳檔案至您的媒體伺服器 + 付款 + 支付 Lightning 發票 + 此 nApplet 想要讀取您的公鑰。 + 此 nApplet 想要讀取您的個人資料及帳號資料。 + 此 nApplet 想要向您顯示通知。 + + 此 nApplet 想要支付一筆 %1$d sats 的 Lightning 發票。 + + 此 nApplet 想要以您的身份簽署並發布 kind %1$d 事件。 + 此 nApplet 想要以您的身份傳送加密事件。 + 此 nApplet 想要以您的身份簽署並發布 kind %1$d 事件: + 此 nApplet 想要從您的 relay 讀取事件。 + 此 nApplet 想要擷取一個網路資源。 + 此網站想要以您的 Nostr 金鑰簽署 kind %1$d 事件。 + 此 nApplet 想要使用其私有儲存空間。 + 此 nApplet 想要上傳檔案至您的媒體伺服器。 + 無法傳送訊息 + 本地靜音此講者 + 恢復此講者 + 離開 + 無法將房間標記為已關閉。仍將離開——房間將自動關閉。 + + %1$d 位聽眾 + + 放下手 + 靜音麥克風 + 取消麥克風靜音 + 靜音 + 無法儲存您的 nest 伺服器列表。請再試一次。 + Nest — 直播中 + 在房間開啟期間保持音訊播放。 + Nest 已連線 + 停止 + 點擊以返回。 + 追蹤 + 靜音 + 取消追蹤 + 取消靜音 + 離開了 nest + 以聽眾身份加入 + 走上了舞台 + 舉起了手 + 正在發言 + 舉手 + 取消靜音 + 儲存為 kind:10112 可替換事件,讓其他客戶端可以讀取您的偏好設定。 + 您的伺服器 + 內建建議,只需點擊一下即可新增至您的列表。 + 推薦伺服器 + Nest 伺服器 + 從不 + 新徽章 + 新行事曆 + 新行事曆活動 + 新社群 + 版主 + Relay + 被封禁的使用者 + 社群留言(1111) + 長篇文章(30023) + 圖片貼文(20) + 短文(1) + 短影片(22) + 影片貼文(21) + 允許的事件類型 + 全域最大事件大小(選填) + 可驗證規則(選填) + 信任網路閘門(選填) + 新增 emoji 包 + 新目標 + 新文章 + 新增播放清單 + 新增音樂曲目 + 新商品 + 新請求 + 新動態 + 新運動記錄 + + 已捆綁 %1$d 個資源 + + 找不到 Blossom 應用程式。請安裝本地 Blossom 應用程式以查看此檔案 + 無法開啟 Blossom 連結 + 此裝置上找不到相機應用程式 + 未設定閃電地址 + 找不到可處理此付款的應用程式。請安裝相容的錢包。 + 未安裝可處理 %1$s 付款的應用程式。請安裝相容的錢包。 + 未選擇回應類型。長按可更改 + 沒有設置回應 + 找不到支付閃電發票的錢包。請安裝一個閃電錢包來使用打閃 + 找不到支付閃電發票的錢包(錯誤:%1$s)。請安裝一個閃電錢包來使用打閃 + 沒有設置打閃金額。長按以更改 + 通知 + 類別 + 傳送 + 應用程式內顯示 + 現在 + Nowhere 藝術 + Nowhere 活動 + Nowhere 論壇 + Nowhere 募款 + Nowhere 網站 + Nowhere 訊息 + Nowhere 請願 + Nowhere 商店 + 裸體 + 無法建立事件參考 + 此貼文沒有收款人公鑰 + Nutzap 是公開的,會洩露此私密貼文。請改用 Lightning zap。 + Nutzap 失敗 + + 傳送 %1$s sats,%2$d 方式 + + 比特幣鏈後端未設定 + 無法廣播交易 + 無法建立交易 + 無法載入您的比特幣餘額 + 付款已傳送,但 zap 收據無法發布 + + 付款已傳送(已發布 %2$d 份收據中的 %1$d 份),但下一份收據無法發布 + + 某位收款人的份額低於塵埃限額 + 無法簽署交易 + 約 10 分鐘 + 約 30 分鐘 + 約 1 小時 + 快速 + 一般 + 慢速 + + 在 %1$d 位收款人之間分配 + + + 略過 %1$d 位僅有 Lightning 地址的收款人——鏈上交易需要 Nostr 公鑰才能推導地址。 + + + 使用此貼文的 %1$d 向 zap 分配 + + 正在廣播 + 正在建立交易 + 正在載入餘額 + 正在發布收據 + 正在簽署 + 這種投票只允許每個用戶一票 + 展開所有對此帖子的回應 + 開放中 + Orbot Socks 端口 + Bitcoin 區塊鏈瀏覽器(OTS) + 有在 %1$s 之前的某個時間簽署了此帖子的證明。此證明是在那個日期和時間在比特幣區塊鏈中記錄的時間戳。 + 時間戳證明 + 發件匣 Relay + 密碼必填 + 暫停 + 付款 + 來自 %1$s 的消息 + 付款目標 + 為不同網路新增付款地址(例如:bitcoin、lightning、ethereum)。 + PDF 已儲存至 Downloads/Amethyst + 追蹤清單的元資料可被 Nostr 上的任何人查看。只有您的私人成員是加密的。 + 追蹤清單元資料 + 圖片 + 釘選至頂部 + 置頂到個人資料 + 播放 + + %1$d 集 + + 投票作者不能在自己的投票中投票。 + (0–100)% + 該投票已結束 + 多選 + 選項 %1$s + 單選 + 無法投票 + 投票 + 發佈 + + 此貼文含有超過 %1$d 個主題標籤 + + 預覽 %1$s 卡片圖片 + 隱私選項 + 隱私政策 + <無法解密私人消息>\n\n你被 %1$s 和 %2$s 之間的私人/加密對話引用。 + 私信收件匣中繼 + 輸入 1–3 個中繼作爲你的私人收件匣。他人將使用這些中繼向你發送私信。私信收件匣中繼應該接受來自任何人的訊息,但只允許你下載它們。不錯的選擇是:\n - inbox.nostr.wine (付費)\n - you.nostr1.com (私人中繼 - 付費) + 使用者在這些 relay 上接收私訊 + 私人訊息 + 設為私密:將筆記以禮物包裝方式傳送給被通知的使用者 + 回覆私密筆記將永遠保持私密 + 可見對象 + 私人中繼 + 輸入 1–3 個中繼用於存儲別人看不到的事件,例如你的草稿和/或應用設置。理想情況下,這些中繼要么是本地的,要么需要在下載每個用戶的內容之前進行驗證。 + 不文雅的言辭 / 敵意言論 + 個人檔案 + 個人檔案徽章 + 應用程式推薦 + 個人資料徽章 + 追蹤者動態 + 收到的 Zap 動態 + 個人資料介面 + 個人資料 + 提議編輯 + 代理 Relay + 應用程式必須用來下載您的動態的聚合器 relay,例如 filter.nostr.wine。這將取代發件匣模式,使應用程式僅連線至您清單中的 relay。 + 公共聊天 + 公開聊天室對所有 Nostr 使用者可見, + 任何人皆可參與。非常適合圍繞特定主題的開放社群。 + 可透過在其 relay 上刪除貼文來進行內容管理 + 請輸入 1–3 個託管此群組的 relay。 + Nostr 客戶端使用此設定來確認下載訊息及傳送訊息的位置。 + Relay + 公開聊天室元資料 + 公開聊天室 + 公開主頁中繼 + 這種中繼將保存所有你的內容。Amethyst 會將你的帖子發送到此處,而他人則將使用這些中繼查找你的內容。輸入 1–3 個中繼。它們可以是個人中繼、付費中繼或公開中繼。 + 使用者正在將其內容發佈至這些 relay + 公開訊息 + 公開收件匣中繼 + 這種中繼接收所有對你的帖子的回覆、評論、點贊和打閃。輸入 1–3 個中繼並確認它們接收來自任何人的事件。 + 使用者正在這些 relay 上接收通知 + 貼文 ID + 刪除 + 靜音討論串 + 分享 + 分享瀏覽網址 + 取消靜音討論串 + 回應 + 回應 + 反應列 + 從中繼器讀取 + 從此中繼接收的數據量,包括過濾和事件 + 只讀用戶 + 按住以錄製訊息 + Relay 聊天 + Relay 聊天室是由其所屬 relay 管控的聊天群組。 + 所有 Nostr 使用者均可看見,任何人皆可參與。 + 非常適合圍繞特定主題的開放社群。部分群組為臨時性質, + 因此聊天訊息會隨時間消失 + Relay 聊天室 + 事件 + IP + 類型 + 使用者 + 設定 + 中繼器設置 + 發件箱清單 + 中繼器 + 充值並傳送 zap + 傳送 zap + 充值 %1$s sats 至 %2$s 並 zap %3$s %4$s sats · 手續費約 %5$s sats + 移除 + 從公開書籤移除 + 回覆這裡.. + 通知: + + 請求刪除 + 申請消除資料 + 重置 Marmot 狀態失敗:%1$s + 重置 Marmot 狀態 + Marmot 狀態已重置。 + 重試 + 日曆清單 + 日曆 + 西洋棋 + 發現 + 主頁 + 匯入追蹤名單 + 訊息 + 播放清單 + 音樂 + 通知 + 集數 + Podcast + 排程貼文 + 取消排程 + 排程貼文可能要等到您重新開啟應用程式時才會發布。當此帳號處於活躍狀態時,其他帳號的排程貼文不會觸發。請在「設定 → 介面偏好設定」中啟用常駐模式,以確保背景排程可靠運作。 + 排程貼文可能要等到您下次重新開啟應用程式時才會發布。請在「設定 → 介面偏好設定」中啟用常駐模式,以確保背景排程可靠運作。 + 已排程貼文 + 立即傳送 + %1$s · %2$s 後 + %1$s · %2$s 前 + 明天 + 錯誤:%1$s + 筆記 ID 已複製 + + 已登出 · 已刪除 %1$d 則排程貼文 + + 已登出 + + 您有 %1$d 則排程貼文尚未發佈。登出將永久刪除它們。 + + 排程貼文失敗 + 排程貼文已發布 + + 發送至 %1$d 個 relay + + 已取消 + 失敗 + 已排程 + 傳送中… + 已傳送 + + · %1$d 個將在 1 小時內發佈 + + + %1$d 個排隊中 + + 不錯的選擇是:\n%1$s + 搜索中繼器 + 搜索中繼器 + 搜尋內容或用戶時使用的中繼列表。如果沒有可用選項,標記和搜索將無法運作。確保他們實施 NIP-50。 + 可搜尋的事件 + 私人密鑰(nsec)已複製到剪貼板 + 您尚未封鎖任何使用者。 + 安全過濾器 + 沒有隱藏的詞彙。在下方新增詞彙以隱藏包含該詞彙的貼文。 + 已封鎖的內容 + 過濾偏好設定 + 此工作階段中尚未將任何帳號標記為垃圾訊息。 + 傳送 + 將所有收到的個人資料(kind 0)事件傳送至您的本地 relay + 轉發個人資料至本地 relay + 可支付給此收款方:%1$s sats + 付款失敗 + 交易:%1$s + 正在透過 %1$s 付款… + 上傳後伺服器沒有提供 URL + 設置 + 沒有已靜音的討論串 + 已靜音的討論串 + 以圖片分享 + 以圖片網址分享 + HLS 上傳 + 分享或保存 + 短片 + 顯示加密私鑰 QR 碼 + 在通知分頁中包含私訊及群組訊息。關閉後,訊息將只出現在訊息分頁中。 + 顯示訊息 + 顯示私鑰 QR 碼 + 簽名請求已被拒絕 + 請確保簽名應用程式已授權此交易 + 外部簽署器回傳了與請求不符的酬載。Amethyst 或簽署器可能存在錯誤。 + 找不到簽署器 + 簽署器應用程式是否已被解除安裝?請確認簽署器已安裝且包含此帳號。若簽署器應用程式已更換,請先登出再重新登入。 + 倒退 %1$d 秒 + 快進 %1$d 秒 + 應用程式 + 垃圾郵件 + 來自該中繼的垃圾事件數量 + 垃圾郵件 + 顯示兩個通知分頁——「追蹤中」(您追蹤的人)及「所有人」。未讀指示器僅在追蹤對象有動態時亮起。 + 依追蹤對象分割通知 + 嘗試在上傳前從支援的媒體檔案中移除私人中繼資料 + 移除私人中繼資料 + 從 Health Connect(Samsung Health、Google Fit、Fitbit、Garmin…)讀取已完成的運動紀錄,並建議以貼文形式分享。只有在您連接時才會請求權限。 + 建議分享運動紀錄 + 系統 + 主題 + 暗色、亮色或系統主題 + 此訊息將在 %1$s 後消失 + + +%1$d\n則回覆 + + 今天 + 自訂 + 自訂設定 + 預設 + 對隨機 relay 隱藏您的 IP + 完全隱私 + 隱藏所有連線中的 IP 位址 + 內建 + 關閉 + Tor/隱私預設 + 快速修改下方所有設定 + 除媒體外全部 + 對所有內容隱藏您的 IP,但圖片和影片除外 + DM relay + 強制使用 Tor 傳送和接收私訊 + 圖片 + 載入圖片時強制使用 Tor + 媒體上傳 + 上傳內容時強制使用 Tor + 金融操作 + 對 zap、Lightning 和 cashu 轉帳強制使用 Tor + 不受信任的 relay + 對發件箱/收件箱 relay 強制使用 Tor + Nostr 地址驗證 + 驗證 NIP-05 地址時強制使用 Tor + 洋蔥網址/relay + 對任何 .onion 網址使用 Tor + 個人資料圖片 + 載入個人資料圖片時強制使用 Tor + 受信任的 relay + 對您清單中的所有 relay 強制使用 Tor + URL 預覽 + 載入 URL 預覽時強制使用 Tor + 影片 + 載入影片時強制使用 Tor + 基本 + 在伺服器要求時使用 Tor + 開啟檔案失敗 + 未安裝任何 torrent 應用程式來開啟並下載此檔案。 + 事件沒有足夠的資訊來建立磁力連結 + 傳送事件時使用追蹤廣播器。廣播時顯示即時進度和每個 relay 的狀態。 + 追蹤廣播 + 翻譯為 + 選擇要將內容翻譯成的語言。 + 翻譯 + 受信任的 Relay + 您信任且不需要 Tor 連線的 relay + 完整版 + 效能 + 簡化版 + UI 偏好設定 + 界面模式 + 選擇帖子樣式 + 無法在發送打閃前創建閃電發票。接收者閃電錢包發送了以下錯誤:%1$s + 無法分享圖片,請稍後再試… + 無法分享影片,請稍後再試… + 未授權的解密 + 簽署器未授權執行此操作所需的解密。請在您的簽署器應用程式中啟用 NIP-44 解密後再試一次 + 取關 + 取消釘選 + 從個人資料取消置頂 + 上傳已取消 + 上傳錯誤 + 語音上傳失敗:%1$s + 語音訊息上傳失敗 + NIP-95 尚不支援語音訊息 + %1$d%% 正常運行時間 + 啟用 Tor 引擎 + 使用內建版本或 Orbot + 用户尚未設置閃電地址以接收聰 + 用户 %1$s 尚未設置接收聰的閃電地址 + 消除記錄 + 消除請求已送出 + 在較小的檔案大小下提供更好的品質,但並非所有裝置都支援 H.265 播放。 + 使用 H.265/HEVC 編解碼器 + 影片下載已開始… + 影片播放器按鈕 + 影片已儲存至手機的影片相簿 + 語音貼文 + 低沉 + 高亢 + 中性 + 無 + 語音回覆 + 錢包 + Cashu 錢包(NIP-60) + 你的錢包連接提供者返回了以下錯誤:%1$s + 編輯 mints + 當貼文或個人資料遭您的追蹤對象舉報時顯示警告訊息 + 舉報警告 + 新增網頁書籤 + 編輯網頁書籤 + 網頁書籤 + 你在想什麼? + 運動記錄 + 撰寫訊息… + 寫入到中繼器 + 發送到此中繼的數據量,包括過濾和事件 + 打閃 + 打閃 + + 重新命名 + 保存 diff --git a/commonsUI/src/commonMain/composeResources/values-zh/strings.xml b/commonsUI/src/commonMain/composeResources/values-zh/strings.xml index c76f006c6f..a91bc59c54 100644 --- a/commonsUI/src/commonMain/composeResources/values-zh/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values-zh/strings.xml @@ -1818,4 +1818,1223 @@ 源: 服务器: 打开 + 关于 & 法律 + 账户设置 + 添加 + 添加 Blossom 服务器 + 添加 NIP-96 服务器 + 启用时,Amethyst 将会附加一个 NIP-89 客户端标签到您发布的事件。 + 将客户端标签添加到我的事件 + 在显示此内容之前添加敏感内容警告 + 敏感内容 + 添加到公开书签 + 使用设备上的 AI 模型来提出文本更正和音调更改。 + 建议文本改进 + 保持与收件箱中继的连接以便接收实时通知 + 中继连接服务 + + 已连接到 %1$d 个收件箱中继 + + + 已连接到 %1$d 个中继 + + 正在连接到收件箱中继\u2026 + Amethyst 通知活跃 + 语音和视频来电通知 + 来电 + %1$s 接受了您的国际象棋挑战 + 提醒您有关国际象棋游戏的事件 + 国际象棋 + 国际象棋更新 + %1$s 已移动 —— 轮到您了 + 收到私信时通知你 + 私信 + 新信息 + 标记为已读 + 当某人在帖子中提到或引用你时,通知你 + %1$s 提到了你 + 提及 + 新提及 + 收到新通知 + 当有人回应您的帖子做出时通知您 + %1$s 回应了您的帖子 + 针对 %1$s + 回应 + 新回应 + 当有人回复您的帖子时通知您 + 回复 + 新的回复 + 回复 + 当成功发布了定时帖或未能发布定时帖时发出通知。 + 定时帖 + 收到打闪时通知你 + %1$s聪 + 为 %1$s + 来自 %1$s + 收到打闪 + 新打闪 + 应用程序设置 + 证明 + 证明请求 + 证明人熟练度 + 证明人建议 + 音频, 可视化, 频谱, 条形, 波形, 径向, 极光, 动画 + 音频可视化 + 当您输入或在编辑器中有未发送的文本时自动保存草稿事件并发送到您的私人发件箱中继。 + 自动创建草稿 + 沉浸式滚动 + 滚动时隐藏导航栏 + 图像预览 + 自动加载图像和 GIF + 视频播放 + 自动播放视频和 GIF + 个人头像 + 显示个人头像 + URL 预览 + 显示 URL 预览 + 自动播放视频 + 视频在屏幕上可见时自动播放视频 + 无法从 AVIF 删除元数据: %1$s + 授予徽章 + 返回 + 备份密匙 + nsec, 私钥, 种子, 助记词, 导出 + 徽章 + 身份验证失败 + 生物计未能验证此手机的所有者 + 生物计未能验证此手机的所有者。错误:%1$s + 仅阻止 + 中继黑名单 + 应用永远不会连接的中继 + 已隐藏用户 + 新建书签列表 + 书签列表元数据 + 书签列表元数据可以被Nostr上的任何人看到。只有您的私密成员是加密的。 + 书签 + 提升 + 导航, 标签, 导航栏 + 底部导航栏 + 广播中继 + 推送你的帖子到其他中继的中继,例如:sendit.nosflare.com,应用会把这个中继作为提示嵌入到你发送的所有事件的 Json 结构中 + 浏览器 + 收藏夹 + 正通过 open web 加载 Tor。点击使用 Tor。 + 正通过 Tor 加载。点击使用 open web。 + + %1$s, %2$d 个活动 + + 图片上传失败 + 选中的图像无法上传。请重试或粘贴一个URL。 + 分享日历活动 + 在地图中打开 + 打开链接 + 正在发生 + %1$s · 结束于 %2$s + + 在 %1$d 分钟内开始 + + 您正参加的活动即将开始时进行提醒。 + 日历提醒 + 日历提醒 + 日历活动 + 日历, 活动, 提醒, RSVP + 您正参加的活动即将开始时发出通知。 + 发送提醒 + + %1$d 分钟 + + 日历提醒 + 日 + 源 + 月 + 周 + 接受 + 蓝牙 + 关闭摄像头 + 开启摄像头 + 耳机 + 挂断 + 来电 + 视频来电 \u2026 + 语音来电 \u2026 + 静音 + 通话 + 进行中的通话通知 + Amethyst需要摄像头和麦克风访问权限来开始视频通话。请在应用程序设置中启用它们。 + Amethyst 需要麦克风权限来开始语音通话。请在应用程序设置中启用它。 + 拒绝 + 通话设置 + WebRTC, 视频通话, 语音通话, 通话 + 扬声器 + 取消静音 + 和 %1$s 的通话 + 从 %1$s 的响应中找不到回调 URL + 取消 + Cashu 代币 + 正在检查铸币厂… + 无法兑换 Cashu + 铸币厂提供了以下错误信息: %1$s + 已收到 + 已发送 + 匹配的铸币厂 + + + 另外 %1$d + + 热门铸币厂 + + 由其他 %1$d 个用户推荐 + + 移动了 %1$s sat 到 %2$s。 + 系统上没有找到兼容的 Cashu 钱包 + + %1$d 张待处理发票 + + 支付 %1$s sat + 最多 %2$s sat 的费用? + 发布 %1$s 的 kind:38000 推荐删除请求。遵守 NIP-09 的中继会丢弃它。 + 从 %2$s 证明中恢复了 %1$s sats 。 + 已收到 Cashu + %1$s 聪已被发送到你的钱包。(费用︰ %2$s 聪) + + 您不使用的 %1$d 座铸币厂中持有的资金 + + 正在等待支付发票… + + %1$d 铸币厂 + + 停止投影 + 投射到设备 + 法律, 安全, 滥用, CSAE, 儿童保护 + 儿童安全标准 + 配件 + 艺术 + 书籍 + 服装 + 收藏 + 工艺 + 电子 + 健身 + 食品 + 家具 + 家中 + 杂项 + 办公 + 其它 + 宠物 + 运动 + 每日 + 每月 + 一次性 + 每周 + 通过 %2$s 支付 %1$s? + 通过 %1$s支付这张发票? + 借记服务没有完成付款。 + 输入此报价的有效金额。 + 正在请求发票… + 收起对此帖子的所有回应 + 已关闭 + 社区 + 草稿为 %1$d 字节;这个社区将此类内容大小限制为 %2$d 字节。 + 草稿为 %1$d 字节;这个社区将事件大小限制为 %2$d 字节。 + 您今天已经发布了 %1$d 个此类事件 (限制 %2$d)。 + 草稿, 发布, 编辑器, 自动保存 + 撰写设置 + 默认端口为 9050 + 已连接的中继 + 当前正在使用的中继列表 + 中继成功连接的百分比 + 始终 + 从不 + 未计量的 WiFi + 添加文件 + 添加图片 + 添加媒体 + 添加视频 + 隐藏 + 警告 + 显示 + 会话 + 将动画的 GIF 转换为 MP4 视频以获取较小文件大小和更好的播放兼容性。 + 转换 GIF 为 MP4 + 复制文章ID (@note1) 到剪贴板 + 文本已复制到剪贴板 + 已复制到剪贴板 + 复制作者的 @npub 到剪贴板 + 复制我的私人密钥 + 复制到剪贴板 + 无法从闪电地址集合LNURL"%1$s"。请检查用户设置 + 无法检查经过上传后再下载的文件:%1$s + 无法从服务器下载上传的媒体 + 无法从 %1$s 获取发票:%2$s + 无法打开压缩文件 + 未找到钱包 + Amethyst 找不到任何支持 Nostr Wallet Connect (NWC) 的钱包应用. +\n\n你可以做的事情: +\n\t1. 验证 NWC 支持:仔细确认偏好的钱包应用和 Nostr Wallet Connect 兼容。 +\n\t2. 创建连接:前往钱包应用并创建新的 NWC 连接。 +\n\t3.链接到 Amethyst: 你的钱包通常会给你三个选项: +\n\t\t3.1 自动链接:自动打开并连接到 Amethyst 的按钮。如果是这样, 单击那个按钮,打开 Amethyst 并在新屏上按保存。 +\n\t\t3.2 手动链接: 你可以复制的连接 URI,单击这个屏幕上的粘贴图标直接输入它。 +\n\t\t3.3 二维码: 钱包会创建一个你可以从这个屏幕中的二维码按钮那里读取的二维码。 + + 创建 + 天 + 危险区 + 深色 + 描述 + 设为公开 + 聊天 + 社区 + 算法动态 + 关注包 + 直播 + 市场 + 阅读 + 私信收件箱中继 + 私信 + 不要翻译 + 此处显示的语言不会被翻译,请选择一种目标语言重新翻译并去除这个提示。 + 保存到手机 + 正下载视频… + 笔记草稿 + 草稿 + 账户 + 创建 + 源 + 导航 + 系统 + 你 + + %1$d 天 + + + %1$d 小时 + + + %1$d 分钟 + + + %1$d 个月 + + + %1$d 周 + + + %1$d 年 + + 编辑日历 + 编辑日历活动 + 编辑社区 + 编辑表情包 + 编辑播放列表 + 编辑帖子 + 私密表情符号被加密存储在中继上,只对您可见。它们就像公开表情符号一样出现在回应菜单和 ":" 自动完成中。 + 公开表情符号对所有人可见;当此表情包位于您的表情符号列表中时,它们会显示在您的“反应”菜单及“:”自动补全选择器中。 + 表情 + 上传前为了隐私加密文件。有些服务器可能不接受免费账户的加密文件。 + 加密文件 + 临时聊天 + 错误 + 不能生成支付发票 + 无法提款 + 无法打开付款 + 无法发送打闪 + 打开签名应用时出错 + 找不到签名应用。检查应用是否已被卸载 + 解析错误信息时出错 + 从 %1$s 解析 JSON 发生错误。请检查用户的闪电设置 + 无法从接收方的服务器获取发票 + 在浏览器中打开 + 无法播放此视频。 + 此设备不支持该编解码器或格式(%1$s)。请尝试在您的浏览器中打开它。 + 错误 + Negentropy, 同步, 对账, 回填 + 中继同步 + 来自您的事件 + 给您的事件 + AMRAP + 循环训练 + 骑行 + 饮食 + EMOM + 节食 + 远足 + 冥想 + 划船 + 跑步 + 强度 + 游泳 + 步行 + 瑜伽 + 展开 + 过期日期 + 导出中继设置 + 删除失败:%1$s + 私钥加密失败 + 保存图片失败 + 保存 PDF 失败 + 保存视频失败 + 许多服务器不接受免费账户的加密文件。您可以不加密重试。 + 加密上传失败 + 上传错误:%1$s + 无法上传媒体 + 无法上传到%1$s:%2$s + 添加至收藏夹 + 通过 open web 加载。 + 通过 Tor 加载。 + 最近 + 从收藏中移除 + 该应用尚未加载。稍后再试。 + 喜欢的应用 + DVM, 数据自动售货机, 算法, 推送 + 收藏源算法 + 支付了一笔款项 + 已发布到中继 + 上传了一个文件 + 喜爱的中继源 + 经常前去查看全局源的中继 + 社区 + 订阅源算法 + 源 + 话题标签 + 兴趣集 + 列表 + 位置 + 中继 + 文件服务器 + 选择上传文件时使用的服务器 + 隐藏陌生人的五次或五次以上完全相同的帖子 + 过滤垃圾信息 + 关注 + 回关 + 所有收藏源算法 + 周围的人 + 精选 + 全球 + 默认关注列表 + 所有关注 + 所有用户关注 + 我的 + 静音列表 + 新的关注包 + 编辑关注包 + 关注包元数据可以被Nostr上的任何人看见,并且常作为新用户启动包发布在许多网站上。 + 关注包元数据 + 关注包 + 新建关注列表 + 编辑列表 + 资料页图库样式 + 选择图库样式 + 经典 + 现代 + 位置限定帖子 + 只有处于同一地理位置的关注者才能看到贴帖子。一般关注者无法看到。 + Github Gist w/ Proof + 设定目标为 %2$s sats,筹集到 %1$s + 时 + 此内容已更改。作者可能没有看到或批准更改 + 这是什么意思 + 此内容与发布时相同 + 嗨,%1$s,这个还能买到吗? + 隐藏单词 + 当社区发布了一份NIP-9B规则文档而一个事件会让它失灵时,丢弃社区的帖子。 当社区没有结构化规则时没有任何影响。 + 隐藏违反社区规则的帖子 + 隐藏密码 + 正在上传 %1$s (%3$d 中的 %2$d) + 全部 + 标签, 推送, 帖子, 对话 + Bad Request - 服务器无法处理请求。 + Unauthorized - 用户没有有效的身份凭证。 + Payment Required - 服务器需要付费以完成该请求。 + Forbidden - 用户没有权限发起该请求。 + Not Found - 服务器无法找到请求的地址。 + Method Not Allowed - 服务器支持该请求方法,但目标资源不支持。 + Not Acceptable - 服务器找不到满足该请求的内容。 + Proxy Authentication Required - 用户没有有效的身份凭证。 + Request Timeout - 服务器等待其他人时超时。 + Conflict - 服务器由于资源有冲突无法完成该请求。 + Gone - 请求的内容已从服务器上永久性删除。 + Length Required - 服务器由于内容长度未定义而拒绝该请求。 + Precondition Failed - 请求头部未满足服务器的前提条件。 + Payload Too Large - 服务器由于请求体大小超过接受的上限而拒绝处理该请求。 + URI Too Long - 客户端请求的 URL 过长导致服务器无法处理。 + Unsupported Media Type - 该请求使用了服务器不支持的媒体格式。 + Range Not Satisfiable - 服务器无法满足该请求头部中指定的 Range 标头范围。 + Expectation Failed - 服务器无法满足该请求头部中指定的 Expect 标头条件。 + Upgrade Required - 服务器拒绝使用当前协议处理该请求,除非客户端升级到其他协议。 + Internal Server Error -服务器遭遇意外错误而无法完成请求。 + Not Implemented - 服务器无法完成该请求或不支持该请求方法。 + Bad Gateway - 网关服务器收到了源服务器的无效响应。 + Service Unavailable - 该情况通常发生在服务器超载或因维护而宕机。 + Gateway Timeout - 网关服务器因等待源服务器响应而超时。 + HTTP Version Not Supported - 服务器不支持该请求的 HTTP 版本。 + Variant Also Negotiates - 服务器内部配置错误。 + Insufficient Storage - 服务器没有足够的存储空间用于处理该请求。 + Loop Detected - 服务器处理该请求时检测到死循环。 + Network Authentication Required - 客户端必须通过认证才能访问该网络。 + 非法行为 + 图片已保存到相册 + 冒充 + 联系人, 关注, 关注列表, 导入 + 收件箱中继 + 来自 %2$s 的错误的发票金额(%1$s 聪)。它本应该是 %3$s + 索引器中继 + 专门保存每个人的账户元数据的中继(例如:purplepag.es),应用会使用这些中继来查找不在你列表中的账户元数据。 + 新的兴趣集 + 重命名 + 兴趣集 + 无效密钥 + 无效的密钥:%1$s + 地址无效 + Amethyst 收到了要打开的 URI,但该 uri 无效:%1$s + 无法引用笔记草稿 + 无法回应笔记草稿 + 无法回复笔记草稿 + 无法打闪笔记草稿 + 需要密钥 + 密钥包中继 + 发布 MLS 密钥包的中继(MIP-00)。其他用户获取这些密钥包来邀请你加入 Marmot 群聊。插入1~3个接受来自你的密钥包事件的中继并允许公开读取。 + 密钥包 + 接受的徽章集 + 探险前言 + 探险阅读 + 探险场景 + 应用推荐 + 预约 + 应用程序 + 预约确认请求 + 音频标题 + 音轨 + 创作的播客 + 徽章奖励 + 徽章定义 + Blob 数据 + Blob 头部 + 中继黑名单 + 博客 + Blossom 认证 + Blossom 服务器 + 书签列表 + 广播中继 + 日历 + 频道定义 + 频道隐藏消息 + 频道列表 + 频道消息 + 频道元数据 + 频道静音用户 + Chess 网站认证 + 国际象棋挑战 + 和棋请求 + 接受国际象棋游戏挑战 + 国际象棋游戏结束 + 国际象棋游戏 + 棋子移动 + 分类广告 + 评论 + 社区定义 + 社区列表 + 社区帖子 + 名片 + 日预约 + 删除 + 私信文件 + 私信消息 + 私信中继 + 草稿 + DVM 内容请求 + DVM 内容响应 + DVM 状态 + DVM 用户请求 + DVM 用户响应 + 编辑 + 表情包列表 + 表情包 + 临时聊天 + 临时聊天室 + 收藏的播客 + 喜爱的中继 + 文件标题 + 文件服务器 + 关注列表 + 关注包 + Geohash 关注 + 包装礼物 + Git 问题 + Git 补丁 + Git 回复 + Git 仓库 + 话题关注 + 精彩场面 + Http 认证 + 索引中继列表 + 实时聊天 + 直播 + 医疗数据 + 会议室 + 会议空间 + 音乐播放列表 + 音乐曲目 + 静音列表 + 已命名书签 + 语音聊天服务器 + NIP + NIP-04 私信 + NNS + Nostr 连接 + 笔记 + NWC 请求 + NWC 响应 + 旧书签列表 + OTS + 发件箱中继 + PayTo + 人员列表 + 图片 + 置顶 + 播客节目 + 播客秀 + 投票 + 投票响应 + 私密中继 + 私下打闪 + 个人资料 + 个人资料徽章 + 资料页图库 + 代理中继 + 公开消息 + 回应 + 中继认证 + 中继发现 + 中继监视器公告 + 中继集合 + 举报 + 转发 + 转发(16) + 房间状态 + 密封信息 + 搜索中继 + 短篇 + 短篇 (回复) + 种子注释 + 种子 + 可信的提供商 + 可信中继 + 用户删除 + 用户设置 + 用户状态 + 视频 + 视频 (回复) + 语音消息 + 语音回复 + 唤醒 + 网络书签 + 维基 + 锻炼 + 打闪目标 + 打闪投票 + 打闪请求 + 打闪 + 私聊 + 语言显示首选项 + 对于每个翻译的语言对,选择先显示哪个语言。 + %1$s 前活跃 + 刚见到 + 从未见过 + 上次见于 %1$s (%2$s 之前) + 离开 + 浅色 + 直播 + 本地中继 + 在该设备中运行的中继列表。 + 使用私钥登录以便提升帖子 + 你正在使用公钥,公钥是只读的。使用私钥登录以便能够关注 + 你正在使用公钥,公钥是只读的。使用私钥登录以便能够隐藏单词或句子 + 使用私钥登录以便回复 + 使用私钥登录以便发送Zaps + 你正在使用公钥,公钥是只读的。使用私钥登录以便能够显示单词或句子 + 您正在使用公钥以只读方式登录,需要使用私钥登录才能签署事件。 + 你正在使用公钥,公钥是只读的。使用私钥登录以便能够取消关注 + 您正在使用公钥以只读方式登录,需要使用私钥登录才能上传。 + 使用私钥登录以便点赞帖子 + 视频 + 分 + 我的表情包 + 正在添加 %1$s… + 已授予管理员权限 + 已撤销管理员权限 + 添加 %1$s失败: %2$s + 创建群失败: %1$s + 授予管理员权限失败: %1$s + 退群失败: %1$s + 移除成员失败: %1$s + 撤销管理员失败: %1$s + 更新失败: %1$s + MLS 组 + 群信息已更新 + + %1$d 位成员 + + 成员已移除 + + %1$d 条消息 + + 不是此群的成员 + 未知错误 + Mastodon Post ID w/ Proof + 媒体已添加 + 媒体已添加到个人资料相册中 + 媒体下载已开始… + 媒体服务器 + Blossom, 上传, 图片, 照片, 文件, CDN, 存储 + 文件过大,无法使用 NIP-95 + 需要首先输入消息的目标位置 + 无法上传 + 主题 + 无法删除元数据 + 从媒体删除私密元数据失败。上传取消。 + 书签迁移成功 + 打闪设置缺失 + 更多选项 + 移动到私密 + 移动到公开 + 上传封面图片 + 选择一个正方形图像作为这个播放列表的艺术作品。 + + 另外 %1$d 首曲目 + + + %1$d 首曲目 + + + %1$d 首曲目 + + 正在上传封面并发布。即使您离开屏幕,这也会继续进行。 + 上传音频文件 + 选择 MP3, WAV 或 FLAC。保存时它将被上传到媒体服务器。 + 上传封面图片 + 选择一个正方形图像作为这个曲目的艺术作品。 + 正砸上传封面 + 音频和发布。即使您离开屏幕,这也会继续进行。 + 声音开启。点击静音 + 静音。点击取消静音 + 我的列表 + 名称必填 + %1$d毫秒 + namecoin, DNS, 身份, 名称 + Namecoin 设置 + 身份 + 读取您的公钥 + 消息收发 + 与其他napplets交换消息 + 键盘操作 + 绑定键盘快捷键 + 通知 + 向您显示通知 + 中继 + 读取并签署 & 发布您的事件 + 网络 + 获取 web 和 Blossom 资源 + 存储 + 其自身的私密存储 + 主题 + 匹配您应用的颜色 + 上传 + 上传文件到您的媒体服务器 + 付款 + 支付闪电发票 + 此 nApplet 想要读取您的公钥。 + 此 nApplet 想要读取您的个人资料和账户数据。 + 此 nApplet 想要向您显示通知。 + + 此 nApplet 想要支付 %1$d sat 的闪电发票。 + + 此 nApplet 想要像您一样签署并发布一个 %1$d 类型事件。 + 此 nApplet 想像您一样发送一个加密事件。 + 此 nApplet 想要像您一样签署并发布一个 %1$d 类型事件: + 此 nApplet 想要从您的中继读取事件。 + 此 nApplet 想要获取一个 web 资源。 + 此站点想要用您的Nostr密钥签署一个 %1$d 类型事件。 + 此 nApplet 想要使用其私密存储。 + 此 nApplet 想要上传一个文件到您的媒体服务器。 + nApplet %1$s… + nApplets + 无法发送信息 + 消除此演讲者的声音 + 恢复此演讲者的声音 + 离开 + 不能将聊天室标记为已关闭。仍然离开——聊天室将自动关闭。 + + %1$d 位听众 + + 放下手 + 麦克风静音 + 取消麦克风静音 + 静音 + 无法保存您的语音聊天服务器列表。请重试。 + 语音聊天室 — 在线 + 语音聊天房 + 当聊天室开放时保持音频播放。 + 语音聊天室已连接 + 停止 + 轻触返回。 + 关注 + 静音 + 取关 + 取消静音 + 离开语音聊天室 + 作为观众加入 + 步入舞台 + 举手 + 正在说话 + 举手 + 取消静音 + 音频室 + 保存为 10112 类型的可替换事件,以便其他客户端可以读取您的首选项。 + 您的服务器 + 内置建议,您可轻触添加到列表中。 + 推荐的服务器 + 音频房间, 直播, 空间, 房间 + 语音聊天服务器 + 从不 + 新徽章 + 新建日历 + 新建日历活动 + 新建社区 + 协管 + 中继 + 封禁的用户 + 社区评论(1111) + 长文章(30023) + 图片帖子(20) + 短文本 (1) + 短视频(22) + 视频帖子 (21) + 允许的事件类型 + 全局最大事件大小(可选) + 可验证规则 (可选) + 信任网络网关(可选) + 新的表情包 + 新目标 + 新文章 + 新建播放列表 + 新音乐曲目 + 新产品 + 新请求 + 新动态 + 新锻炼 + + 捆绑了 %1$d 个资产 + + 找不到Blossom应用。请安装本地Blossom应用查看此文件 + 无法打开 Blossom 链接 + 此设备上没有找到相机应用 + 未设置闪电地址 + 没有找到处理此付款的应用。请安装兼容的钱包。 + 没有安装应用程序来处理 %1$s 付款。请安装一个兼容的钱包。 + 未选择回应类型。长按可更改 + 没有设置回应 + 找不到支付闪电发票的钱包。请安装闪电钱包来使用打闪 + 找不到支付闪电发票的钱包(错误:%1$s)。请安装闪电钱包来使用打闪 + 没有设置Zap金额。长按以更改 + 通知 + 推送, 提醒, 声音, 振动 + 分类 + 发送 + 应用内显示 + 现在 + Nowhere 艺术 + Nowhere Drop + Nowhere 事件 + Nowhere 论坛 + Nowhere 筹款人 + Nowhere 站点 + Nowhere 消息 + Nowhere 申请 + Nowhere 商店 + nSites + 裸露 + 无法构建事件参考 + 笔记上没有收件人的公钥 + Nutzaps 是公开的,将会透露该私密笔记。请使用闪电打闪代替。 + Nutzap 失败 + + 发送 %1$s sats, %2$d 拆分 + + 未配置比特币链后端 + 无法广播交易 + 无法构建交易 + 无法加载您的比特币余额 + 付款已发送,但打闪收据无法发布 + + 付款已发送(已发布 %1$d 份收据,共 %2$d 份),但下一收据无法发布 + + 收款人份额过低 + 无法签署交易 + 约10分钟 + 约30分钟 + 约1小时 + 快 + 正常 + 慢 + %1$s · %2$s sat/vB · %3$s + + 在 %1$d 位收款人之间拆分 + + + 正在跳过 %1$d 位仅闪电网络地址收款人 - 链上需 Nostr 公钥派生地址。 + + + 使用此记事的 %1$d 路打闪拆分 + + 正在广播 + 正在建立交易 + 加载余额 + 发布收据中 + 正签名 + 这种投票只允许每个用户一票 + 展开对此帖子的所有回应 + 开启 + Orbot Socks 端口 + OpenTimestamps, 时间戳, OTS, 证明 + 比特币资源管理器 (OTS) + %1$s之前的某个时候签署了此帖子的证明。此证明是在那个日期和时间在比特币区块链中盖章的。 + OpenTimestamps 证明 + 发件箱中继 + 密码必填 + 暂停 + 付款 + 来自 %1$s 的消息 + 付款目标 + zap 分配, 分配, 收款人, 转发 zap + 添加不同网络的付款地址(如比特币、比特币闪电、以太坊)。 + 已保存 PDF 到 Downloads/Amethyst + 关注列表元数据可以被Nostr上的任何人看到。只有您的私人成员是加密的。 + 关注列表元数据 + 图片 + 置顶 + 置顶到个人资料 + 播放 + + %1$d 期节目 + + 投票作者不能在自己的投票中投票。 + (0–100)% + 该投票已结束 + 多选 + 选项 %1$s + 单选 + 无法投票 + 投票 + 发布 + + 此帖有超过 %1$d 个话题标签 + + 预览 %1$s 卡片图片 + 隐私选项 + Tor, Orbot, 代理, 隐私, 匿名 + 隐私政策 + 法律, 条款, 服务条款, 政策, GDPR + <无法解密私人消息>\n\n您被%1$s和%2$s之间的私人/加密会话引用。 + 私信收件箱中继 + 设置 1 ~ 3 个中继作为您的私人收件箱。其他人将使用这些中继向您发送私信。需要确保这些收件箱中继能够接受来自任何人的任何私信消息,但只允许您读取这些消息。示例:\n - inbox.nostr.wine(付费)\n - you.nostr1.com(个人专用中继 - 付费) + 用户接收到这些中继的私信 + 私信 + 设为私密:将笔记包装为礼物仅发给要通知的用户 + 对私密笔记的回复总是不公开的 + 可见范围 + 私人中继 + 设置 1 ~ 3 个中继用于保存其他人无法看到的事件,例如您的草稿和软件设置。理想情况下,这些应该是本地中继,或者是在获取用户内容时需要经过身份验证的中继。 + 不文雅的言辞 / 敌意言论 + 个人档案 + 徽章, 奖励 + 个人资料徽章 + 个人资料, 布局 + 应用推荐 + 个人资料徽章 + 关注者源 + 收到的打闪源 + 个人资料界面 + 个人资料 + 提出修改建议 + 代理中继 + 聚合器中继是应用获取资讯源时使用的中继(例如:filter.nostr.wine),设置这个列表将覆盖信箱模型的行为,使得应用只会连接到这个列表中的中继以获取内容。 + 公共聊天 + 公开聊天对所有 Nostr 用户都是可见的,任何人都可以: + 参与这些聊天。这对特定话题建立的开放式社区来说很重要 + 通过删除中继上的帖子实现内容审核控制 + 使用 1~3 个中继托管这个群组。 + 让 Nostr 客户端知道应该使用这些中继配置来发送和下载消息。 + 中继器 + 公开聊天元数据 + 公共聊天 + 公共时间线中继 + 这类中继会保存您的所有内容。Amethyst 会将您的事件发送到这些中继,其他人则通过这些中继查找您的内容。可以设置 1 ~ 3 个中继。它们可以是个人专用中继、付费中继或者公共中继。 + 用户正在将其内容发布到这些中继 + 公开消息 + 公共收件箱中继 + 这类中继用于接收其他人对您内容的回复、评论、点赞和打闪。可设置 1 ~ 3 个中继,需要确保它们能够接受来自任何人的事件(公共写入)。 + 用户正在接收这些中继的通知 + 引用 + 删除 + 主题帖静音 + 分享 + 分享浏览网址 + 取消主题帖静音 + 回应 + 回应 + 表情, 点赞, 反应 + 回应设置 + 表情, 反应, 点赞 + 从中继器读取 + 从该中继接收事件和过滤响应所使用的数据量 + 仅读用户 + 点按以录制消息 + 中继聊天 + 中继聊天是由聊天所属中继控制的聊天群组。 + Nostr 上的每个人都可以看到这些群组,任何人都可以加入群组。 + 这非常适合围绕特定主题而建立的开放社区。其中一些群组是临时的, + 因此聊天信息会随着时间的推移而消失。 + 中继聊天 + 事件 + IP地址 + 类型 + 用户 + 设置 + 中继设置 + 发件箱列表 + 中继器 + 中继, 收件箱, 发件箱, 连接, 服务器 + 充值 & 发送打闪 + 发送打闪 + 充值 %1$s sats 到 %2$s 并打闪 %3$s %4$s sats · fee ≈ %5$s sats + 移除 + 从公开书签中移除 + 🔏在此回复… + 通知: + + + + 请求删除 + 请求消失 + 删除账号, 消失, GDPR + 重置 Marmot 状态失败: %1$s + MLS, 群聊, 消息, 重置 + 重置 Marmot 状态 + Marmot 状态重置。 + 重试 + 日历列表 + 日历 + 国际象棋 + 发现 + 主页 + 导入关注 + 消息 + 播放列表 + 音乐 + 通知 + 节目 + 播客 + 定时帖 + 取消时间安排 + 在重新打开应用前可能不会发布定时帖。此账户活跃时,其他账户的定时帖不会发布。要获得稳定的后台定时功能,在“设置” →"用户界面首选项“ 中开启”始终显示“。 + 下次重新打开应用前可能不会发布定时贴。要获得稳定的后台定时功能在“设置” → “用户界面偏好” 中启用“始终显示”。 + 定时帖子 + 立即发送 + %1$s ·在 %2$s + %1$s · %2$s 前 + 明天 + 错误:%1$s + 已复制笔记 ID + + 已退出登录 删除了 %1$d 个定时帖 + + 已退出登录 + + 您有尚未发布的 %1$d 个定时帖。退出登录将永久删除它们。 + + 未能发布定时帖 + 发布了定时帖 + + 到 %1$d 个中继 + + 已取消 + 失败 + 已安排时间 + 正在发送… + 已发送 + + • %1$d 个于1小时内到期 + + + %1$d 个已加入队列 + + 示例:\n%1$s + 搜索中继 + 搜索中继 + 用于关键词和标签检索的中继列表。如果没有可用选项,也就无法使用关键词和标签检索。需要确保它们支持 NIP-50。 + 可搜索的事件 + 私人密钥(nsec)已复制到剪贴板 + 您尚未屏蔽任何用户。 + 安全过滤器 + 垃圾信息, 屏蔽, 静音, 过滤, 警告 + 没有隐藏的单词。在下方添加一个单词来隐藏包含它的帖子。 + 拦截的内容 + 过滤的首选项 + 本次会话中还没有账户被标记为垃圾信息。 + 发送 + 将所有收到的配置文件(类型0)事件发送到您的本地中继 + 转发个人资料到本地中继 + 可为该收款人支付的金额:%1$s sats + 付款失败 + 交易: %1$s + 正通过 %1$s 付款… + 上传后服务器没有提供 URL + 设置 + 无静音的主题帖 + 静音的主题帖 + 以图片方式共享 + 以图像地址形式分享 + HLS 上传 + 分享或保存 + 短视频 + 显示加密私钥二维码 + 在通知选项卡上包含私信和群消息。如关闭只在消息选项卡中保留消息。 + 显示消息 + 显示私钥二维码 + 签名请求已被拒绝 + 请确保签名应用程序已授权此交易 + 外部签名器对该请求返回了不正常的载荷。这可能是 Amethyst 或签名器上的错误。 + 未找到签名器 + 签名器被卸载?请检查是否已经安装了签名器以及其中是否存在该账户。变更签名器需要注销后重新登录。 + 后退 %1$d 秒 + 前进 %1$d 秒 + 应用 + 垃圾邮件 + 来自该中继的垃圾事件数量 + 垃圾邮件 + 显示两个通知选项卡 — — 关注(你关注的人) 和所有人。未读的指示器只为你关注的人的活动发出微光。 + 根据关注拆分通知 + 尝试在上传之前从支持的媒体文件中删除私密元数据 + 删除私密元数据 + 从 Health Connect (Shamsung Health, Google Fit, Fitbit, Garmin…)读取完成的锻炼,并建议将其作为帖子分享。 只有当您连接时才请求权限。 + 推荐要分享的锻炼 + 系统 + 主题 + 暗色、亮色或系统主题 + 此消息将在 %1$s 后消失 + + +%1$d\n条回复 + + 今天 + 自定义 + 让你自己来设置 + 默认 + 从随机中继中隐藏 IP + Orbot + 完全隐私 + 为所有连接隐藏 IP + 内置 + 关闭 + Tor 和隐私预设 + 快速修改下方的设置 + 除多媒体外的所有内容 + 除了图片和视频外,总是隐藏 IP + 私信中继 + 强制在收发私信时使用 Tor + 图片 + 强制为加载图片时使用 Tor + 媒体上传 + 强制为上传媒体内容时使用 Tor + 资金操作 + 强制为 Zap、闪电网络和 Cashu 转账时使用 Tor + 不受信任的中继 + 强制对收件箱和发件箱中继使用 Tor + Nostr 地址验证 + 强制为 NIP-05 地址验证使用 Tor + Onion 链接或中继地址 + 为 .onion 链接使用 Tor + 用户资料图片 + 强制为下载用户资料图片时使用 Tor + 可信中继 + 强制为所有中继使用 Tor + 链接预览 + 强制为链接预览使用 Tor + 视频 + 强制为加载视频时使用 Tor + 基础 + 当服务器要求时使用 Tor + 打开文件失败 + 没有用于打开和下载文件的 Torrent 客户端 + 事件没有足够信息来构建磁力链 + 在发送事件时使用已跟踪的广播。在广播时显示实时进度和每个中继的状态。 + 已跟踪的广播 + 翻译为 + 选择要将内容翻译为什么语言。 + 翻译 + 语言, 翻译, 地区 + 可信中继 + 无需使用 Tor 进行连接的可信中继 + X Status w/ Proof + 完整版 + 极速版 + 简化版 + 用户界面首选项 + 深色模式, 浅色模式, 主题, 字体大小, 语言, 外观 + 界面模式 + 选择帖子样式 + 无法在发送打闪前创建闪电发票。接收者闪电钱包发送了以下错误: %1$s + 无法分享图片,请稍后重试… + 无法分享视频,请稍后重试… + 未授权的解密 + 签名器没有授权解密操作,请在签名器中授予 NIP-44 解密权限并重试。 + 取关 + 取消置顶 + 从个人资料中取消置顶 + 上传已取消 + 上传出错 + 语音上传失败:%1$s + 上传语音消息失败 + 语音消息尚不支持 NIP-95 + %1$d%% 运行时间 + 启动 Tor + 使用内置 Tor 或者 Orbot + 用户尚未设置闪电地址以接收聪 + 用户 %1$s 尚未设置接收聪的闪电地址 + 消失历史记录 + 删除, 删除事件 + 消失请求已发送 + 文件较小而质量更佳,但不是所有设备都支持 H.265 播放。 + 使用 H.265/HEVC 编解码器 + 视频下载已开始… + 视频, 播放器, 播放, 自动播放, 静音 + 视频播放器按钮 + 视频已保存到媒体库 + 语音帖子 + 深沉 + 高音 + 中性 + 无 + 语音回复 + 钱包 + Cashu 钱包 (NIP-60) + 钱包绑定 + 你的钱包连接提供者返回了以下错误: %1$s + 编辑铸币厂 + 当帖子有来自你关注的五次及以上举报时显示警告消息 + 举报警示 + 添加网络书签 + 编辑网络书签 + 网络书签 + 你在想什么? + 锻炼 + 写一条消息… + 写入到继电器 + 向该中继发送事件和过滤请求所使用的数据量 + 打闪 + Zaps + 闪电网络, 聪, 打赏, 钱包, 金额 + + + + 重命名 + 保存 diff --git a/commonsUI/src/commonMain/composeResources/values/strings.xml b/commonsUI/src/commonMain/composeResources/values/strings.xml index b3af342533..72597951eb 100644 --- a/commonsUI/src/commonMain/composeResources/values/strings.xml +++ b/commonsUI/src/commonMain/composeResources/values/strings.xml @@ -3084,4 +3084,2243 @@ Publish persona Follows you Bot + About & Legal + Blue + Green + Orange + Pink + Purple + Red + Account Settings + + %1$d filter + %1$d filters + + + %1$d group + %1$d groups + + + %1$d relay + %1$d relays + + subscriptions filters relays requests reqs connections why diagnostics + %1$d%% of all + Active Relay Subscriptions + + %1$d filter is not attributed yet + %1$d filters are not attributed yet + + Add + Add a Blossom Server + Add a NIP-96 Server + When enabled, Amethyst appends a NIP-89 client tag to events you publish. + Add client tag to my events + Adds sensitive content warning before showing this content + Sensitive Content + Add to Messages + Add to Public Bookmarks + Uses an on-device AI model to propose text corrections and tone changes. + Propose text improvements + Keeps connections to your inbox relays active for real-time notifications + Relay Connection Service + + Connected to %1$d inbox relay + Connected to %1$d inbox relays + + + Connected to %1$d relay + Connected to %1$d relays + + Connecting to inbox relays\u2026 + Hide details + Show details + Off + On + Amethyst Notifications Active + You've been added to %1$s + Notifies you when somebody mentions or highlights you in an article + ArticlesID + %1$s mentioned you in an article + %1$s highlighted your article + Articles & Highlights + New articles + Notifies you when you earn a badge + BadgesID + You earned a badge + Awarded by %1$s + Badges + New badges + Notifications for incoming voice and video calls + Incoming calls + %1$s accepted your chess challenge + Notifies you about chess game events + ChessID + Chess + Chess updates + %1$s moved — your turn + Notifies you about issues, patches, pull requests, comments, merges, and closes + CodeID + %1$s opened an issue + %1$s sent a patch + %1$s opened a pull request + %1$s updated a pull request + %1$s commented + %1$s merged/resolved a thread + %1$s resolved an issue + %1$s applied a patch + %1$s merged a pull request + %1$s closed a thread + %1$s closed an issue + %1$s closed a patch + %1$s closed a pull request + %1$s marked a thread as draft + %1$s reopened a thread + Code & Git + New code activity + Notifies you when a private message arrives + PrivateMessagesID + Private Messages + New messages + Content + Developer + Games + Messages + Payments + Social + Mark Read + Me + Notifies you when somebody mentions you in a photo or video + MediaID + %1$s shared a photo + %1$s shared a video + Media + New media + Notifies you when somebody mentions or cites you in a post + MentionsID + %1$s mentioned you + Mentions + New mentions + New message + Nutzap from %1$s + Onchain zap from %1$s + Notifies you when your connected wallet receives a payment that is not a Nostr zap + PaymentsReceivedID + Received %1$s sats + Payments Received + New payments + %1$s asked a question + New notification arrived + Notifies you when somebody reacts to your post + ReactionsID + %1$s reacted to your post + for %1$s + Reactions + New reactions + Notifies you when somebody replies to your post + RepliesID + Replies + New replies + Not sent + Reply + Retry + Sending… + Still sending… + Notifies you when somebody reposts your post + RepostsID + %1$s reposted your post + Reposts + New reposts + Notifications when a scheduled post is published or fails to publish. + ScheduledPostsID + Scheduled posts + This account was removed from Amethyst. + Notifies you when somebody zaps you + ZapsID + %1$s sats + for %1$s + From %1$s + Zaps Received + New zaps + App Settings + Attestation + Attestation Request + Attestor Proficiency + Attestor Recommendation + + Add %1$d person anyway + Add %1$d people anyway + + + Add %1$d person + Add %1$d people + + Already added + Muted + Private member + Only you \u2014 choose who else can see this + Add people to notify + + That would be %1$d person. Amethyst adds at most %2$d at a time \u2014 deselect a few. + That would be %1$d people. Amethyst adds at most %2$d at a time \u2014 deselect a few. + + Send privately + + This note will be encrypted and delivered %1$d separate time, once per person. With an external signer that is one approval each. + This note will be encrypted and delivered %1$d separate times, once per person. With an external signer that is one approval each. + + + %1$d person will get a notification for this post. + %1$d people will get a notification for this post. + + + %1$s, %2$s and %3$d other + %1$s, %2$s and %3$d others + + audio, visualizer, spectrum, bars, waves, radial, aurora, animation + Audio Visualizer + Saves a draft event automatically when you type or leave a composer with unsent text and sends to your private outbox relays. + Automatically create drafts + Immersive Scrolling + Hide Nav Bars when Scrolling + Image Preview + Automatically load images and GIFs + Video Playback + Automatically load videos and GIFs + Profile Picture + Show Profile pictures + URL Preview + Show URL previews + Autoplay Videos + Automatically play videos when visible on screen + Cannot strip metadata from AVIF: %1$s + Award Badge + Back + Backup Keys + nsec, private key, seed, mnemonic, export + Badges + Authentication failed + Biometrics failed to authenticate the owner of this phone + Biometrics failed to authenticate the owner of this phone. Error: %1$s + Block + Blocked Relays + Amethyst will never connect to these relays + Blocked Users + A file sync is already running. Try importing again once it finishes. + Disable all + Enable all + + %1$d file + %1$d files + + + Found %1$d file to import into your servers. + Found %1$d files to import into your servers. + + + Import %1$d file + Import %1$d files + + Not on all servers + On all servers + + Pay %1$d sat + Pay %1$d sats + + This server requires payment to upload: %1$s + Cancel + Shows progress while copying your files across your Blossom servers. + Blossom sync + Copying your files across servers… + BOLT12 Offers + bolt12, bolt 12, offer, lno, lightning, zap, reusable invoice + Add one or more BOLT12 offers (lno1…). They are shared publicly so anyone can pay you. + BOLT12 payment failed: %1$s + BOLT12 payment sent + BOLT12 zap error + Paid over BOLT12, but the payment proof did not validate, so no zap receipt was published. + Paid over BOLT12, but the wallet returned no proof, so no zap receipt was published. + New Bookmark List + Bookmark List Metadata + Bookmark lists metadata can be seen by anyone on Nostr. Only your private members are encrypted. + Bookmarks + Boost + Apps & Web + Chats & Groups + Feeds + Main + Other + You + navigation, tabs, nav bar + Bottom Navigation Bar + Add + Added + No favorites yet. Star an app in the Browser to add it here. + No joined groups yet. + Broadcast Relays + Relays that specialize in pushing your notes to all of the other relays, like sendit.nosflare.com. Amethyst will add this relay to all new events made by you + Browser + Favorites + Discover web apps + Loading over the open web. Tap to use Tor. + Loading over Tor. Tap to use the open web. + Archive channel + New channel + Delete channel + Delete "%1$s"? This removes the channel and its messages for everyone, and cannot be undone. + Private channel + Hidden from the channel list and invite-only. Off means anyone on this relay can find and join it. + Unarchive channel + + %1$d hidden conversation + %1$d hidden conversations + + + See %1$d more conversation + See all %1$d conversations + + Edit + New forum + Pin channel + %1$s and %2$s are typing… + Unpin channel + Approved + Cancelled + Denied + Failed + Needs approval + Queued + Shipped + Working + + %1$s, %2$d event + %1$s, %2$d events + + Image upload failed + The picked image couldn't be uploaded. Try again or paste a URL. + Share calendar event + Open in maps + Open link + Happening now + %1$s · ends %2$s + + Starts in %1$d minute + Starts in %1$d minutes + + Heads-up when an event you're attending is about to start. + calendar_reminders + Calendar reminders + Calendar event + calendar, events, reminders, rsvp + A notification fires when an event you're attending is about to start. + Send reminders + + %1$d min + %1$d min + + Calendar reminders + Day + Feed + Month + Week + Accept + Bluetooth + Camera off + Camera on + Earpiece + Hang up + Incoming call + Incoming video call\u2026 + Incoming voice call\u2026 + Mute + Calls + Ongoing call notification + Amethyst needs camera and microphone access to start a video call. Please enable them in the app settings. + Amethyst needs microphone access to start a voice call. Please enable it in the app settings. + Reject + Share screen + Stop sharing screen + Sharing screen + Call Settings + webrtc, video call, voice call, calls + Speaker + Unmute + Call with %1$s + Callback URL not found from %1$s's response + Cancel + Off + Turn off captions + Turn on captions + Captions + Cashu Token + Checking the mint… + Could not redeem Cashu + Mint provided the following error message: %1$s + Received + Sent + Matching mints + + +%1$d more + +%1$d more + + Popular mints + + Recommended by %1$d other + Recommended by %1$d others + + Moved %1$s sat to %2$s. + No compatible Cashu wallet found on system + + %1$d pending invoice + %1$d pending invoices + + Pay %1$s sat + up to %2$s sat in fees? + Publish a delete request for your kind:38000 recommendation of %1$s. Relays that honor NIP-09 will drop it. + Recovered %1$s sats across %2$s proofs. + Cashu Received + %1$s sats were sent to your wallet. (Fees: %2$s sats) + Unsafe Cashu mint address + Amethyst did not contact this token's mint. %1$s + + Funds held at %1$d mint you don't use + Funds held at %1$d mints you don't use + + Waiting for the invoice to be paid… + + %1$d mint + %1$d mints + + Stop casting + Cast to device + Accepted by at least one relay + Delivered to all recipients' relays + No relay information for this message + Waiting for a relay to accept this message + + %1$d reply + %1$d replies + + In chat + In thread + Encrypted communities with multiple channels (Concord). + Concord communities + Lightweight, relay-scoped rooms that don't persist history. + Ephemeral chats + Public geohash-scoped chat for a place (Geolocation). + Location chats + MLS end-to-end encrypted group chats (Marmot). + Encrypted groups + Older, less-private encrypted direct messages (NIP-04). + Legacy DMs + End-to-end encrypted, gift-wrapped direct messages (NIP-17). + Private messages + Open, public chat rooms anyone can read and join (NIP-28). + Public channels + Relay-managed group chats with rosters and moderation (NIP-29). + Relay groups + legal, safety, abuse, csae, child protection + Child Safety Standards + Accessories + Art + Books + Clothing + Collectibles + Crafts + Electronics + Fitness + Food + Furniture + Home + Miscellaneous + Office + Other + Pets + Sports + Daily + Monthly + One-time + Weekly + Pay %1$s via %2$s? + Pay this invoice via %1$s? + The debit service did not complete the payment. + Enter a valid amount for this offer. + Requesting invoice… + Close all reactions to this post + Closed + Communities + Draft is %1$d bytes; this community caps this kind at %2$d bytes. + Draft is %1$d bytes; this community caps events at %2$d bytes. + You have already posted %1$d events of this kind today (limit %2$d). + draft, posting, editor, auto-save, signature, proof of work, pow, mining, nip-13 + Compose Settings + + %1$d channel + %1$d channels + + New channel + Delete channel + Delete + Delete #%1$s? This can't be undone and the channel can't be recreated with the same id. + Delete channel? + Channel name + No messages yet + Rename channel + Rename + No channels yet. + Create + Relays + Relays that store this community's encrypted messages. Leave empty to use your own. + New Concord Channel + Edit community + Editing message + Concord Channels + Invite people + Could not fetch this invite. The link may be expired or its relays unreachable. + This community has removed you. The link still works, but its member list does not admit you. + This invite link has expired and can no longer be used. Ask for a fresh link. + This invite link can't be opened. It may be outdated or already replaced by a newer one, or created with a newer version of the app. Ask for a fresh invite link. + This invite link is invalid or can't be opened with this account. + This invite link has been revoked and can no longer be used. Ask for a new one. + Invite links… + Invite links + The link couldn't be revoked. Check your connection and try again. + Invite link revoked. + Invite link + Leave community + Leave %1$s? It is removed from this account's list and stops syncing on your devices. The community is not notified and you are not removed from its member roster. Messages you can no longer decrypt may be unrecoverable, and you can only return with a new invite. + You created this community. Leaving does not delete it or hand it to anyone else, but it discards the owner key stored on your list — you would not be able to manage it again. + Leave community? + Make admin + + %1$d member + %1$d members + + Ban + Make admin + Remove admin + Could not update this member's roles. + Assign roles + Members + Unban + Remove admin + Send image + Concord + Several people are typing… + %1$s is typing… + %1$s and %2$s are typing… + + %1$d new message + %1$d new messages + + Default port is 9050 + Connected Relays + Current list of relays being used + Percentage of successful connections to the relay + Always + Never + Unmetered WiFi + Wi-Fi + Add Document + Add Image + Add Media + Add Video + Hide + Warn + Show + Conversations + Converts animated GIF to MP4 video for smaller file size and better playback compatibility. + Convert GIF to MP4 + Copied note ID (@note1) to clipboard + Copied note text to clipboard + Copied to clipboard + Copied author’s @npub to clipboard + Copy my secret key + Copy to clipboard + Could not assemble LNUrl from Lightning Address "%1$s". Check the user's setup + Could not check downloaded file after upload: %1$s + Could not download uploaded media from the server + Could not fetch invoice from %1$s: %2$s + Could not open the compressed file + Wallet not found + Amethyst couldn't find any wallet apps that support Nostr Wallet Connect (NWC). +\n\nWhat you can do: +\n\t1. Verify NWC Support: Double-check that your preferred wallet app is compatible with Nostr Wallet Connect. +\n\t2. Create Connection: Go to your wallet app and create a new NWC connection. +\n\t3. Link to Amethyst: Your wallet will usually give you three options: +\n\t\t3.1 Automatic Link: A button to automatically open and connect to Amethyst. If so, click that button, open Amethyst and hit save on the new screen. +\n\t\t3.2 Manual Link: A Connection URI you can copy and click the paste icon on this screen to directly input it. +\n\t\t3.3 QR Code: The wallet creates a QR code which you can read from the QR code button in this screen. + + Create + d + Danger Zone + Dark + Description + Make public + Chats + Communities + Feed Algorithms + Follow Packs + Live Streams + Marketplace + Reads + DM Inbox Relays + + Reported by %1$d person you follow + Reported by %1$d people you follow + + DMs + Don't Translate From + Languages shown here will not be translated. Select a language to remove it and have it translated again. + Save to Phone + Downloading video… + Draft Note + Drafts + Accounts + side menu, drawer, hamburger, sections, hide, show + Create + Feeds + Navigate + System + You + Side Menu + Always on + Hidden + + %1$d hidden + %1$d hidden + + Visible + + %1$d day + %1$d days + + + %1$d hour + %1$d hours + + + %1$d minute + %1$d minutes + + + %1$d month + %1$d months + + + %1$d week + %1$d weeks + + + %1$d year + %1$d years + + Edit Calendar + Edit Calendar Event + Edit Community + Edit emoji pack + Edit + Edit playlist + Edit Post + Private emojis are stored encrypted on relays and visible only to you. They appear in your reaction menu and ":" autocomplete just like public ones. + Public emojis are visible to everyone and appear in your reaction menu and ":" autocomplete picker when this pack is in your emoji list. + Emojis + Encrypt files before uploading for privacy. Some servers may not accept encrypted files on free accounts. + Encrypt files + Disappearing Chat + Error + Could not pay invoice + Could not withdraw + Unable to open payment + Unable to send zap + Error opening signer app + The signer app could not be found. Check if the app hasn't been uninstalled + Error parsing error message + Error Parsing JSON from %1$s. Check the user's lightning setup + Unable to fetch invoice from receiver's servers + Open in browser + Can't play this video + The codec or format isn't supported on this device (%1$s). Try opening it in your browser. + Errors + negentropy, sync, reconcile, backfill + Relay Sync + events from you + events to you + AMRAP + Circuit + Cycling + Diet + EMOM + Fasting + Hiking + Meditation + Rowing + Running + Strength + Swimming + Walking + Yoga + Expand + Expiration Date + The author asked relays to delete this note after %1$s. It will disappear from feeds once it expires. + Export relay settings + Failed to delete: %1$s + Failed to encrypt your private key + Failed to save the image + Failed to save the PDF + Failed to save the video + Many servers do not accept encrypted files on free accounts. You can retry without encryption. + Encrypted upload failed + Uploading error: %1$s + Failed to upload media + Failed to upload to %1$s: %2$s + Add to favorites + Loads over the open web. + Loads over Tor. + Recent + Remove from favorites + That app isn't loaded yet. Try again in a moment. + Web apps + dvm, data vending machine, algo, algorithm, feeds + Favorite Feed Algorithms + Made a payment + Published to relays + Uploaded a file + Favorite Relay Feeds + Relays you frequently go to see their Global feed + Communities + Feed Algorithms + Feeds + Hashtags + Interest Sets + Lists + Locations + Relays + File Server + Choose a server to upload this file to + Hides posts from strangers that were exactly the same for 5 or more times + Filter spam + Follow + Follow back + Follow this location + All favorite feed algorithms + Around Me + Curated + Global + Default Follow List + All Follows + All User Follows + Mine + Mute List + Teleport to a place… + New Follow Pack + Edit Follow Pack + Follow pack metadata can be seen by anyone on Nostr and is frequently published in many websites as startup kits for new users. + Follow Pack Metadata + Follow Packs + New Follow List + Edit List + Font + Typeface used throughout the app + Monospace + Mono + Sans Serif + Sans + Serif + Serif + System Default + System + Font Size + Scale the text size across the app + Huge + Large + Normal + Small + Profile Gallery Style + Choose the gallery style + Classic + Modern + Location chat + Location-exclusive Post + Only followers of the location will see it. Your general followers won't see it. + + %1$d item + %1$d items + + Git Repositories + Close filter + Filter repositories + Github Gist w/ Proof + %1$s funded of %2$s sats goal + h + This content has changed. The author might not have seen or approved the change + What does this mean? + This content is the same since the post + Hi %1$s, is this still available? + Hidden Words + Drops posts from community feeds when the community publishes a NIP-9B rules document and an event would fail it. No effect when a community has no structured rules. + Hide posts that violate community rules + Hide Password + Highlights + Uploading %1$s (%2$d of %3$d) + Articles + Attestations + Bird sightings + Chess games + Classifieds + Comments & replies + Ephemeral chats + Fundraisers + Highlights + Interactive stories + Live activities + Music & audio + NIP drafts + Pictures + Podcasts + Polls + Ratings and reviews + Reposts + Shorts + Text notes + Torrents + Videos + Voice messages + Wiki pages + Everything + tabs, feeds, threads, conversations + Bad Request - The server can’t or won’t process the request. + Unauthorized - The user doesn’t have valid authentication credentials + Payment Required - The server requires payment to complete the request + Forbidden - The user doesn’t have access rights to make the request + Not Found - The server can’t find the requested address + Method Not Allowed - The server supports the request method, but not the target resource + Not Acceptable - The server doesn’t find any content that satisfies the request. + Proxy Authentication Required - The user doesn’t have valid authentication credentials + Request Timeout - The server timed out waiting for somebody else + Conflict - The server can’t fulfill the request because there’s a conflict with the resource + Gone - The content requested has been permanently deleted from the server and will not be reinstated + Length Required - The server rejects the request because it requires a defined + Precondition Failed - The request's preconditions in the header fields that the server fails to meet + Payload Too Large - The request is larger than the server’s defined limits, and the server refuses to process it + URI Too Long - The url requested by the client is too long for the server to process. + Unsupported Media Type - The request uses a media format the server does not support + Range Not Satisfiable - The server can’t fulfill the value indicated in the request’s Range header field. + Expectation Failed - The server can’t meet the requirements indicated by the Expect request header field + Upgrade Required - The server refuses to process the request using the current protocol unless the client upgrades to a different protocol. + Internal Server Error - The server has encountered an unexpected error and cannot complete the request + Not Implemented - The server can’t fulfill the request or doesn’t recognize the request method + Bad Gateway - The server acts as a gateway and got an invalid response from the host + Service Unavailable - This often occurs when a server is overloaded or down for maintenance + Gateway Timeout - The server was acting as a gateway or proxy and timed out, waiting for a response + HTTP Version Not Supported - The server doesn’t support the HTTP version in the request + Variant Also Negotiates - The server has an internal configuration error + Insufficient Storage - The server doesn’t have enough storage to process the request successfully + Loop Detected - The server detects an infinite loop while processing the request + Network Authentication Required - The client must be authenticated to access the network + Illegal Behavior + Image saved to the phone's photo gallery + Impersonation + contacts, follows, follow list, import + Inbox Relays + Incorrect invoice amount (%1$s sats) from %2$s. It should have been %3$s + Indexer Relays + Relays that specialize in hosting everyone's metadata and relay lists, like purplepag.es. Amethyst will use these relays to find users that are not in your lists. + New Interest Set + Rename + Hashtag Sets + Invalid key + Invalid key: %1$s + Invalid address + Amethyst received a URI to open but that uri was invalid: %1$s + It's not possible to quote a draft note + It's not possible to react a draft note + It's not possible to reply a draft note + It's not possible to zap a draft note + Key is required + KeyPackage Relays + Relays where your MLS KeyPackages are published (MIP-00). Other users fetch these KeyPackages to invite you into Marmot group chats. Insert between 1–3 relays that accept KeyPackage events from you and allow public reads. + KeyPackages + Accepted Badge Set + Adventure Prologue + Adventure Reading + Adventure Scene + App list + App Recommendations + Appointment + Apps + Appt RSVP + Article list + Audio Header + Audio Track + Authored Podcasts + Badge Awards + Badge Definitions + Blob Data + Blob Headers + Blocked Relays + Blogs + Blossom Auth + Blossom Servers + Bookmark List + Bookmark set + Broadcast Relays + Calendar + Channel Definition + Channel Hide Msg + Channel List + Channel Message + Channel Metadata + Channel Mute User + Chess Auth + Chess Challenges + Chess Draw Offer + Chess Game Accept + Chess Game End + Chess Games + Chess Move + Classifieds + Comments + Community Def + Community List + Community Post + Contact Card + Day Appointment + Deletions + DM File + DM Message + DM Relays + Drafts + DVM Content Req + DVM Content Resp + DVM Status + DVM User Req + DVM User Resp + Edits + Emoji Pack List + Emoji Packs + Ephemeral Chat + Ephemeral Chatrooms + Favorite feeds + Favorite Podcasts + Favorite Relays + File Headers + File Servers + Follow List + Follow Packs + Geohash Follows + GiftWraps + Git authors + Git Issue + Git Patch + Pull Request + PR Update + Git Reply + Git Repo + Git repositories + Git Status: Applied + Git Status: Closed + Git Status: Draft + Git Status: Open + Trusted wiki authors + Trusted wiki relays + Hashtag Follows + Highlights + Http Auth + Index Relay List + Interests + Live Chats + Live Streams + Media follows + Media starter pack + Medical Data + Meeting Room + Meeting Space + Music Playlist + Music Track + Mute List + Muted for kind %1$s + Named Bookmarks + Nests Servers + NIP + NIP-04 DMs + NNS + Nostr Connect + Notes + NWC Request + NWC Response + Old Bookmark List + OTS + Outbox Relays + PayTo + People Lists + Picture list + Pictures + Pins + Podcast Episode + Podcast Show + Poll + Poll Response + Private Relays + Private Zaps + Profile + Profile Badges + Profile Gallery + Proxy Relays + Public Message + Reactions + Relay Auth + Relay Discovery + Relay Monitor Announcement + Relay Set + Reports + Reposts + Reposts (16) + Room Presence + Seals + Search Relays + Shorts + Shorts (Repl) + Groups + Torrent Comments + Torrents + Trusted Providers + Trusted Relays + User Delete + User Settings + User Status + Video + Video Collaboration + Video List + Video (Repl) + Video Subtitles + Voice Msg + Voice Reply + WakeUp + Web Bookmark + Wiki + Workouts + Zap Goals + Zap Poll + Zap Req + Zaps + Known + Language Display Preferences + For each translated language pair, choose which language to show first. + Last seen %1$s ago + Last seen just now + Never seen + Last seen on %1$s (%2$s ago) + Leave + File record + Directory + + %1$d item + %1$d items + + + %1$d more item + %1$d more items + + Learning resource + Light + Live Streams + Local Relays + List of relays that are running in this device. + Change place on the map + Location Channels + Pick a place on the map + Amethyst for Android can't sign in with a bunker:// address. It hands these out so other apps can ask it to sign, but it cannot sign in with one. Use an external signer app, or Amethyst Desktop. + That's an app asking to connect to your signer, not a way to sign in. Sign in first, then open it from the NIP-46 signer screen. + You are using a public key and public keys are read-only. Login with a Private key to be able to boost posts + You are using a public key and public keys are read-only. Login with a Private key to be able to follow + You are using a public key and public keys are read-only. Login with a Private key to be able to hide a word or sentence + You are using a public key and public keys are read-only. Login with a Private key to be able to reply + You are using a public key and public keys are read-only. Login with a Private key to be able to send zaps + You are using a public key and public keys are read-only. Login with a Private key to be able to show a word or sentence + You are using a public key and public keys are read-only. Login with a Private key to be able to sign for events + You are using a public key and public keys are read-only. Login with a Private key to be able to unfollow + You are using a public key and public keys are read-only. Login with a Private key to be able to upload + You are using a public key and public keys are read-only. Login with a Private key to like posts + Videos + m + My Emoji Packs + Add photo + Adding %1$s… + Admin privileges granted + Admin privileges revoked + Change photo + Add a Blossom media server in Settings first — the group needs somewhere to upload attachments to. + This group now uses encrypted attachments + Failed to add %1$s: %2$s + Failed to create group: %1$s + Could not disband the group: %1$s + Could not switch this group to encrypted attachments: %1$s + Failed to grant admin: %1$s + Failed to leave group: %1$s + Failed to remove member: %1$s + Failed to revoke admin: %1$s + Failed to update: %1$s + Marmot Group + This group is being ended. You can still read it. + You are leaving this group. + You are no longer a member of this group. + Group disbanded + Ending the group. It finishes once the group agrees. + Group info updated + + %1$d member + %1$d members + + Member removed + + %1$d msg + %1$d msgs + + Not a member of this group + unknown error + Mastodon Post ID w/ Proof + Media added + Media added to your Profile Gallery + Media download has started… + Offline + Online + Slow + Media Servers + blossom, uploads, images, photos, files, cdn, storage + Media is too big for NIP-95 + Insert the destination of the message first + Can't Upload + Subject + Messages + messages, chats, groups, nip-29, relay, inline, dm, nip-04, nip-17, nip-28, concord, marmot, geohash, ephemeral, load + Metadata could not be removed + Failed to strip private metadata from media. Upload cancelled. + Bookmarks migrated successfully + Missing lightning setup + More Options + Move to Private + Move to Public + Upload a cover image + Pick a square image to be the artwork for this playlist. + + +%1$d more track + +%1$d more tracks + + + %1$d track + %1$d tracks + + + %1$d track + %1$d tracks + + Uploading cover and publishing. This will keep going even if you leave the screen. + Upload an audio file + Pick an MP3, WAV, or FLAC. It will be uploaded to your media server on Save. + Upload a cover image + Pick a square image to be the artwork for this track. + Uploading cover + audio and publishing. This will keep going even if you leave the screen. + Sound on. Click to mute + Mute notifications + Muted. Click to unmute + My Blossom Files + My Fitness + My Lists + A name is required + %1$dms + namecoin, dns, identity, name + Namecoin Settings + Identity + Read your public key + Messaging + Exchange messages with other napplets + Keyboard actions + Bind keyboard shortcuts + Notifications + Show you notifications + Relays + Read, and sign & publish your events + Network + Fetch web and Blossom resources + Encryption + Encrypt and decrypt private messages with your key + Storage + Its own private storage + Theme + Match your app's colors + Uploads + Upload files to your media server + Payments + Pay Lightning invoices + apps permissions signer napplet nsite webapp trust connected + + follows %1$d new account + follows %1$d new accounts + + ⚠ This follows %1$s. + + UNFOLLOWS %1$d account + UNFOLLOWS %1$d accounts + + ⚠ This rewrites your follow list: %1$s. + %1$s and %2$s + + mutes %1$d more person + mutes %1$d more people + + ⚠ This mutes %1$s. + + UNMUTES %1$d person + UNMUTES %1$d people + + ⚠ This rewrites your mute list: %1$s. Muted words and hashtags are not shown here — tap “Show Event” for the full list. + + ⚠ This writes a list of %1$d entry. Amethyst has no cached copy to compare against. + ⚠ This writes a list of %1$d entries. Amethyst has no cached copy to compare against. + + This republishes your existing list unchanged. + + adds %1$d relay + adds %1$d relays + + + REMOVES %1$d relay + REMOVES %1$d relays + + ⚠ This rewrites your relay list: %1$s. Your posts and reads move with it. + ⚠ This UNFOLLOWS %1$s. + ⚠ This UNMUTES %1$s. + + ⚠ This requests deletion of %1$d of your events. + ⚠ This requests deletion of %1$d of your events. + + + Carries %1$d tag. Tap “Show Event” to see exactly what would be signed. + Carries %1$d tags. Tap “Show Event” to see exactly what would be signed. + + This nApplet wants to read your public key. + This nApplet wants to read your profile and account data. + This site wants to decrypt a message from %1$s with your Nostr key. + This site wants to encrypt a message to %1$s with your Nostr key. + This nApplet wants to show you notifications. + + This nApplet wants to pay a Lightning invoice for %1$d sat. + This nApplet wants to pay a Lightning invoice for %1$d sats. + + ⚠ This nApplet wants to pay a Lightning invoice that specifies NO amount — the payee decides how much is taken. Only allow this if you trust it. + This nApplet wants to sign and publish a kind %1$d event as you. + This nApplet wants to send an encrypted event as you. + This nApplet wants to sign and publish a kind %1$d event as you: + This nApplet wants to read events from your relays. + This nApplet wants to fetch a web resource. + This site wants to sign a kind %1$d event with your Nostr key. + This nApplet wants to use its private storage. + This nApplet wants to upload a file to your media server. + nApplet %1$s… + read your private messages + read your private messages with %1$s + encrypt a message + sign for %1$s (kind: %2$d) + Connected Apps + nApplets + Couldn't send message + Hush this speaker + Restore this speaker + Leave + Couldn't mark room as closed. Leaving anyway — room will auto-close. + + %1$d listener + %1$d listeners + + Lower hand + Mute mic + Unmute mic + Mute + Couldn't save your nest server list. Try again. + Nest — Live + Nests + Keeps audio playing while a room is open. + Nest connected + Stop + Tap to return. + Follow + Mute + Unfollow + Unmute + left the nest + joined as audience + stepped on stage + raised their hand + is speaking + Raise hand + Unmute + Nests + Saved as a kind-10112 replaceable event so other clients can read your preference. + Your servers + Built-in suggestions you can add to your list with one tap. + Recommended servers + audio rooms, live, spaces, rooms + Nest servers + never + New Badge + New Calendar + New Calendar Event + New Community + Moderators + Relays + Banned users + Community comment (1111) + Long-form article (30023) + Picture post (20) + Short text (1) + Short video (22) + Video post (21) + Allowed event kinds + Global max event size (optional) + Verifiable rules (optional) + Web-of-trust gate (optional) + Massive communities, organized by channels or workstreams. + Workspaces + More to set up + Create community + Scales to huge communities + Split by channel / workstream + Communities split by channel + Concord Community + One-on-one and small group chats with people you know. + 1:1–5 rooms + Can't add users later + New message + 1-on-1 & small groups + End-to-end encrypted + Direct messages, end-to-end encrypted + Private Message + In-the-moment chat with whoever is online right now. + Live now + No history + Relay-scoped + Start chat + Talk to who's online now + Nothing is saved + Whoever's online, right now + Disappearing Chat + Best for talking to people physically around a location — your block, city, or region. + Local + Public and ephemeral — no history, anyone in the cell can read it. + Pick a location + Anonymous — a throwaway identity per area, never your npub. + Bitchat-compatible; reaches nearby users on the same relays. + Chat with whoever's near a place, by geohash. + Location channel + Larger private groups that outgrow small-group DMs. + Device-bound + Device-bound — won't appear if you sign in elsewhere + Create group + Scales past small DMs + Encrypted group chat + Bigger private groups + Marmot Group + Open public rooms where anyone can post. + Unmoderated + Public only + No moderation + Create public chat + Anyone can join + Simple & discoverable + Public messages on a relay + Public Chat + Groups moderated by the relay that hosts them. + Moderated + Tied to that one relay + Browse relay groups + Moderated by the relay + Public or private + Relay-run, public or private + Relay Group + Private + Encrypted groups + Relay-aware + New emoji pack + New Goal + Add your thoughts… + New Highlight + New Article + New playlist + New music track + New Product + New Requests + New Threads + New Workout + Always allow for %1$s + Offline + Connected + + %1$d relay + %1$d relays + + Select all + Select none + + %1$d signing request + %1$d signing requests + + Connection declined + Could not connect: %1$s + Not a valid nostrconnect:// link + That link carries no relay to connect on + + %1$d connected app + %1$d connected apps + + Connected %1$s. Amethyst now signs for it in the background. + App connected. Amethyst now signs for it in the background. + Bunker address copied + Amethyst could not decrypt this message. It may not be addressed to this account. + Full-screen prompts asking you to approve an app that wants Amethyst to sign, encrypt, or decrypt with your key. + Signing requests + An app wants to connect + Approve a signing request? + Tap to review + This is a read-only account and cannot sign. + Reconnecting to relays… + Generated a new bunker address + + Listening on %1$d relay + Listening on %1$d relays, all connected + + Remote signer app + Remote Signer + This list has private members only its author can see + + %1$d asset bundled + %1$d assets bundled + + Blossom apps were not found. Please install a local Blossom app to see this file + Can't open Blossom links + No camera app found on this device + No Lightning Address set + No app found to handle this payment. Please install a compatible wallet. + No app installed to handle %1$s payments. Please install a compatible wallet. + No reaction types pre-selected for this user. Long press on the heart button to change + No reactions setup + No Wallets found to pay a lightning invoice. Please install a Lightning wallet to use zaps + No Wallets found to pay a lightning invoice (Error: %1$s). Please install a Lightning wallet to use zaps + No Zap Amount Setup. Long Press to change + Accounts active in the background + Master switch for real-time background notifications. Turn off to save battery — like an airplane mode. When off, no account stays connected in the background, and it stays off (across restarts) until you turn it back on. + Background notification service + Notifications + push, alerts, sounds, vibration + Categories + Delivery + In-app display + Block Relay + Notifying. Tap to mute the notification for this user + Muted. Tap to notify this user again + now + Nowhere Art + Nowhere Drop + Nowhere Event + Nowhere Forum + Nowhere Fundraiser + Nowhere site + Nowhere Message + Nowhere Petition + Nowhere Store + nSites + Nudity + Cannot build event reference + No recipient pubkey on the note + Nutzaps are public and would reveal this private note. Use a Lightning zap instead. + Nutzap failed + + Send %1$s sats, %2$d way + Send %1$s sats, %2$d ways + + Bitcoin chain backend is not configured + Could not broadcast the transaction + Could not build the transaction + Could not load your Bitcoin balance + Payment sent, but the zap receipt could not be published + + Payment sent (%1$d of %2$d receipt published), but the next receipt could not be published + Payment sent (%1$d of %2$d receipts published), but the next receipt could not be published + + A recipient share is below dust + Could not sign the transaction + ~10 min + ~30 min + ~1 hr + Fast + Normal + Slow + %1$s · %2$s sat/vB · %3$s + + Splits among %1$d recipient + Splits among %1$d recipients + + + Skipping %1$d Lightning-address-only recipient — on-chain needs a Nostr pubkey to derive the address. + Skipping %1$d Lightning-address-only recipients — on-chain needs a Nostr pubkey to derive the address. + + + Use this note's %1$d-way zap split + Use this note's %1$d-way zap split + + broadcasting + building the transaction + loading balance + publishing the receipt + signing + Only one vote per user is allowed on this type of poll + Open all reactions to this post + Open + Orbot Socks Port + opentimestamps, timestamp, ots, proof + Bitcoin Explorer (OTS) + There's proof this post was signed sometime before %1$s. The proof was stamped in the Bitcoin blockchain at that date and time. + A timestamp proof for this post has been requested and is waiting to be stamped in the Bitcoin blockchain. It usually completes within a few hours. + Timestamp Proof + Outbox Relays + Password is required + Pause + Pay + Message from %1$s + Payment Targets + zap split, split, recipients, forward zaps + Add payment addresses for different networks (e.g. bitcoin, lightning, ethereum). + Pay in %1$s — you choose the amount there + PDF saved to Downloads/Amethyst + Follow lists metadata can be seen by anyone on Nostr. Only your private members are encrypted. + Follow List Metadata + Pictures + Pin to top + Pin to Profile + Play + + %1$d chapter + %1$d chapters + + Add cover art + Square image shown for the episode + Edit episode + Your podcast + Add audio file + MP3, M4A, or other audio + Chapters URL + + %1$d episode + %1$d episodes + + Transcript URL + Video URL + New episode + New trailer + Publishing… + Author + Categories + Technology, News + Copyright + Add cover art + Square artwork for your show + Contact email + Funding links + https://… + Language + en + Show title + My Podcast + Website + + %1$d trailer + %1$d trailers + + Add trailer clip + Short audio or video preview + Value-for-Value error + Connect a Nostr Wallet Connect wallet to send to keysend (node) recipients. + This podcast has no payable value recipients. + Connect a Nostr Wallet Connect or debit wallet to stream sats while listening. + This user has no Lightning address + Poll authors can't vote in their own polls. + (0–100)% + Poll is closed to new votes + Multiple choice + Option %1$s + + %1$d vote is dated before the poll was published and is excluded. + %1$d votes are dated before the poll was published and are excluded. + + + %1$d voter is hidden by your mute list. + %1$d voters are hidden by your mute list. + + + %1$d response did not pick a valid option and is excluded. + %1$d responses did not pick a valid option and are excluded. + + + %1$d vote arrived after the poll closed and is excluded. + %1$d votes arrived after the poll closed and are excluded. + + + %1$d voter + %1$d voters + + %1$d of %2$d responses loaded from %3$d relays. + %1$d of about %2$d responses loaded from %3$d relays. + + · %1$d selection + · %1$d selections + + + %1$d vote › + %1$d votes › + + Single choice + Unable to vote + Polls + Post + + This post has more than %1$d hashtag + This post has more than %1$d hashtags + + Comments + Replies to articles, files and other content + Private message wraps + Lets DM relays filter inbox spam; only the outer wrap is mined, never your message + Long-form & highlights + Articles and highlights; infrequent, cost is negligible + Other public content + Polls, live statuses, classifieds and everything else public + Public & live chat + Mining delays hurt conversation flow + Reactions + Highest-volume kind; mining every like costs battery + Reports + Relays weigh reports by their cost + Reposts + High volume for active users + Short notes & replies + The primary public spam surface + Voice messages + Public voice posts and replies + + %1$d day + %1$d days + + + %1$d hour + %1$d hours + + <1 s + + %1$d minute + %1$d minutes + + + %1$d second + %1$d seconds + + The author spent computing power to mine this note to difficulty %1$s — a proof-of-work stamp that makes spamming expensive. + Chat message + Report + + %1$s • mining at %2$d bit + %1$s • mining at %2$d bits + + + Mining proof of work… (%1$d post in queue) + Mining proof of work… (%1$d posts in queue) + + Mining proof of work + Cancel + Shows posts that are still mining their NIP-13 proof of work so they can finish after you leave the app. + Proof of work mining + Send now + + %1$d bit + %1$d bits + + + Default (%1$d bit) + Default (%1$d bits) + + Your %1$s finished mining but could not be published: %2$s + Your %1$s finished mining but could not be published. It will be retried the next time the app starts. + + %1$s • waiting to mine at %2$d bit + %1$s • waiting to mine at %2$d bits + + Proof of Work + ≈ %1$s left + any moment now + Preview Card Image for %1$s + Privacy Options + tor, orbot, proxy, privacy, anonymous + Privacy Policy + legal, terms, tos, policy, gdpr + <Unable to decrypt private message>\n\nYou were cited in a private/encrypted conversation between %1$s and %2$s. + DM Inbox Relays + Insert between 1–3 relays to serve as your private inbox. Others will use these relays to send DMs to you. DM Inbox relays should accept any message from anyone, but only allow you to download them. Good options are:\n - inbox.nostr.wine (paid)\n - auth.nostr1.com (free)\n - you.nostr1.com (personal relays - paid) + User receives DMs on these relays + Private Message + Make private: gift-wrap the note to the notified users only + Replies to a private note always stay private + Visible to + Private Home Relays + Insert between 1–3 relays to store events no one else can see, like your Drafts and/or app settings. Ideally, these relays are either local or require authentication before downloading each user's content. + This note was delivered privately and is not signed. Only the tagged participants can see it, and nobody can prove to outsiders who wrote it. + Private Note + Profanity / Hateful speech + Profile + badges, awards + Profile badges + profile, layout + App Recommendations + Profile Badges + Followers Feed + Bitcoin (on-chain) Wallet + Zap Received Feed + Profile UI + profiles + Propose an Edit + Proxy Relays + Aggregator relays the app must use to download your feeds from, like filter.nostr.wine. This replaces the outbox model and will make the app connect to only the relays in your lists. + Public Chat + Public chats are visible to everyone on Nostr and anyone + can participate on them. They are great for open communities around specific topics. + Moderation can be controlled by deleting posts on its relays + Insert between 1–3 relays that host this group. + Nostr clients use this setting to know where to download messages from and send your messages to. + Relays + Public Chat Metadata + Public Chats + Public Outbox/Home Relays + This relay type stores all your content. Amethyst will send your posts here and others will use these relays to find your content. Insert between 1–3 relays. They can be personal relays, paid relays or public relays. + User is posting his content to these relays + Public Message + Public Inbox Relays + This relay type receives all replies, comments, likes and zaps to your posts. They can be paid or free relays. Limits set by the relay operator can limit the notifications you receive for the good and for the bad. For example, if you are being attacked by comment spam, paid relays can filter the spam out. Insert between 1–3 relays. + User is receiving notifications on these relays + Note ID + Delete + Mute thread + Share + Share Browser Link + Unmute thread + Rated %1$s out of 5 + Reaction + Reactions + emoji, like, reaction + Reaction Row + emoji, reactions, like + Read from Relay + The amount in bytes that was received from this relay, including filters and events + Read-only user + Click and hold to record a message + + It's also holding back %1$d other thing. + It's also holding back %1$d other things. + + Always, all relays + Amethyst will log in as %1$s to every relay that asks, and stop asking. Relays you blocked, and the ones you set to never log in, stay that way. You can change this under Relay login. + Log in to every relay? + Always log in + \u2026I'm messaging someone I follow + \u2026I'm messaging anyone else + \u2026it's my relay, or a room I joined or follow + \u2026I'm reading someone I follow + Always, set by you + Never, set by you + + %1$s and %2$d other + %1$s and %2$d others + + Never + Never, all relays + Amethyst will stop telling relays that you are %1$s, and stop asking. Some relays will refuse to serve you: messages, replies and notifications may not go through. Relays you set to always log in stay that way. You can change this under Relay login. + Never log in to any relay? + Always log in + Every relay that asks. + Decide per relay + Allow the cases below, ask about the rest. + Never log in + Some relays will refuse to serve you. + your inbox + your own relay + your replies + this relay + a room you post in + people you read + a room you read + your messages + a conversation + auth authentication login relay sign verify nip-42 identity + Relay login + Relay Chat + Relay chats are chat groups controlled by their home relay. + They are visible to everyone on Nostr and anyone can participate on them. + They are great for open communities around specific topics. Some of these groups are ephemeral + and thus chat messages disappear over time + Relay Chats + Your own profile, settings and drafts, on your home relays. + The relays each community publishes its planes to. + Your DM inbox relays, where gift-wrapped messages are delivered. + Group messages and key packages, on each group's relays. + Watches the events currently rendered for new replies, reactions, reposts, zaps and reports, so counts update while you read. + Chat rooms that keep no history — messages exist only while you are connected, so these stay subscribed to receive anything at all. + Follow lists, used to build your feed and your web of trust. + Location-based rooms for the areas you follow, asked of the relays that carry them. + Posts by people you follow, read from the relays each of them publishes to. + Chat and zap goals attached to live streams you have open or follow. + The room's relays, while it is open. + Looks across relays for which mints exist and which ones people recommend. + Reports your follows wrote about the profiles currently on your screen, asked of each relay those follows post to. + Your inbox relays, plus a small rotating sample of the relays your follows post to, in case a mention was delivered somewhere else. + Listens on your nutzap relays plus your inbox and DM relays, so a payment cannot slip past. + Notifications from your connected wallet. + Profiles of the people currently on screen. + The home relay of each chat you have open or joined. + Fetches events by id that something on your screen refers to but you don't have yet — a quote, a reply's parent, a thread root. + NIP-29 groups you joined. Each group lives on one host relay, so the app connects to every relay that hosts a group of yours. + Finds which relays each person publishes to, so their posts can be fetched from the right place. + Your own wallet events, read back from the relays you published them to. + Create a group + Delete group + Delete "%1$s"? This removes the group and its history for everyone, and cannot be undone. + Edit group + Private + Only members can read messages. + + %1$d member + %1$d members + + + %1$d group + %1$d groups + + Relay groups + Title + Relay Groups + Events + IPs + Kinds + Users + Settings + Add-ons + Browsing + Community Chats + Community Feeds + DM Inbox + Observing Events + Ephemeral Chats + Location Chats + Home Feed + + %1$s \u00b7 %2$d relay + %1$s \u00b7 %2$d relays + + Live Stream Chat + Media + Mint Directory + Nutzap Inbox + Wallet Connect + Observing Profiles + Other + Finding Missing Events + Relay Groups + Relay info + Relay List Finder + Reports from Follows + Search + Hashtags + Conversation + Topics + Account's data + Wallet + Relay Settings + outbox lists + Relays + relays, inbox, outbox, connections, servers + Top up & send zap + Send zap + Top up %1$s sats to %2$s and zap %3$s %4$s sats · fee ≈ %5$s sats + Remove + Remove from Messages + Remove from Public Bookmarks + reply here… + Notify: + + Request Deletion + Request to Vanish + delete account, vanish, gdpr + Failed to reset Marmot state: %1$s + mls, group chat, messaging, reset + Reset Marmot State + Marmot state reset. + Activity (7 days) + Amethyst consumed more than expected recently: %1$s. Would you like to send a usage report to the developers in an encrypted DM? You will see the full report before anything is sent. + Battery drained meanwhile (whole device) + Relay connections held while closed + Background notification service + + %1$d start + %1$d starts + + Running time + App process starts + Battery used (in app / background) + Data by feature (7 days) + Cellular data by feature (7 days) + Time in calls + Processor time used + Messages decrypted + Active transfer time + Web requests + Cellular (MB) + Wi-Fi (MB) + Location listening + Media playback time + Addressable events in memory + Chatroom lists in memory + Device memory class + App memory (heap) + Image cache (RAM) + Image cache (disk) + Native memory + Notes in memory + Memory right now + Profiles in memory + Time in audio rooms + Proof-of-work mining + Radio wake-ups for downloads (est.) + %1$s of cellular data in the background in one day + + the app process restarted %1$d time in one day + the app process restarted %1$d times in one day + + %1$s of relay connections while backgrounded on cellular in one day + + the app reconnected to relays %1$d time in one day + the app reconnected to relays %1$d times in one day + + the CPU was held awake for %1$s processing notifications in one day + Relay reconnections (failed) + Relay connection time + \u2026 backgrounded on cellular + Remote signatures + Time by screen (7 days) + battery data usage consumption power network diagnostics ledger + Share with the developers + Share + Images + Wallet & zaps + Address verification + Other + Link previews + Push registration + Relay sync + Uploads + Video & audio + Avg. relay connections + Battery / hour in app + Cellular today + Data / hour in app + In app today + Relay time today + Wi-Fi today + App resource usage + Tor uptime + Built-in Tor + Data per day + Signatures verified + Notification processing (CPU awake) + Background jobs run + Retry + Calendar lists + Calendars + Chess + Discover + Edit cache + Edit hunt + Cache + Hunt + Cache hunts + Geocaches + Home + Import Follows + Log a find + Media + Messages + Playlists + Music + Hide a cache + New hunt + Notifications + Episodes + Podcasts + sats + Schedule post + Cancel scheduling + Scheduled posts may not publish until you reopen the app. Other accounts' scheduled posts won't fire while this account is active. Enable always-on in Settings → UI Preferences for reliable background scheduling. + Scheduled posts may not publish until you next reopen the app. Enable always-on in Settings → UI Preferences for reliable background scheduling. + Scheduled posts + Send now + %1$s · in %2$s + %1$s · %2$s ago + Tomorrow + Error: %1$s + Note ID copied + + Logged out · %1$d scheduled post deleted + Logged out · %1$d scheduled posts deleted + + Logged out + + You have %1$d scheduled post that hasn't been published yet. Logging out will permanently delete it. + You have %1$d scheduled posts that haven't been published yet. Logging out will permanently delete them. + + Scheduled post failed + Scheduled post published + + to %1$d relay + to %1$d relays + + Cancelled + Failed + Scheduled + Sending… + Sent + + · %1$d due in 1h + · %1$d due in 1h + + + %1$d queued + %1$d queued + + Good options are:\n%1$s + Search Relays + Search Relays + List of relays to use when searching content or users. Tagging and search will not work if no options are available. Make sure they implement NIP-50. + searchable events + Secret key (nsec) copied to clipboard + You haven't blocked any users yet. + Security Filters + spam, block, mute, filter, warnings + No hidden words. Add a word below to hide posts containing it. + Blocked content + Filtering preferences + No accounts have been flagged as spam in this session. + Send + Send all received profile (kind 0) events to your local relay + Forward profiles to local relay + Spendable for this recipient: %1$s sats + Payment failed + Transaction: %1$s + Paying via %1$s… + Server did not provide a URL after uploading + Settings + No muted threads + Muted threads + Appearance + General + Content in the feed + Visible tabs + Media & Data + Sections & feeds + Reminders + Connection + Route through Tor + Share as Image + Share as Image Url + HLS Upload + Share or Save + Shorts + Show encrypted private key QR code + Include direct and group messages on the Notification tab. Turn off to keep messages only in the Messages tab. + Show Messages + Show private key QR code + Sign request rejected + Make sure the signer application has authorized this transaction + External signer returned a payload that is strange for the request. There might be a bug on either Amethyst or the Signer. + Signer not found + Was the Signer app uninstalled? Check if the signer is installed and has this account. Log off and Log in again of the signer app has changed. + Skip back %1$d seconds + Skip forward %1$d seconds + App Store + Spam + The number of spamming events coming from this relay + Spammers + Show two notification tabs — Following (people you follow) and Everyone. The unread indicator glows only for activity from people you follow. + Split notifications by Follows + Attempts to strip private metadata from supported media files before uploading + Remove private metadata + Reads finished workouts from Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) and suggests sharing them as a post. Permission is requested only when you connect. + Suggest workouts to share + System + Telegram + Theme + Dark, Light or System theme + This message will disappear in %1$s + + +%1$d\nreply + +%1$d\nreplies + + Today + Custom + Make your own + Default + Hide your IP from random relays + Orbot + Full Privacy + Hide your IP in all connections + Internal + Off + Tor/Privacy Presets + Quickly modify all settings below + All but Media + Hide your IP from everything, but images and videos + DM Relays + Force Tor to send and receive DMs + Images + Force Tor when loading images + Media Uploads + Force Tor when uploading content + Money Operations + Force Tor on zaps, lightning and cashu transfers + Untrusted Relays + Force Tor on outbox/inbox relays + Nostr Address Verification + Force Tor when verifying NIP-05 addresses + Onion Url/Relays + Use Tor for any .onion url + Profile Pictures + Force Tor when loading profile pictures + Trusted Relays + Force Tor on all relays in your lists + URL Previews + Force Tor when loading url previews + Videos + Force Tor when loading videos + Basic + Use Tor when it's required by the server + Failed to open file + No torrent apps installed to open and download the file. + Event doesn't have enough information to build a magnet link + Use the tracked broadcaster when sending events. Shows live progress and per-relay status while broadcasting. + Tracked broadcasts + Translate To + Choose the language to translate content into. + Translations + language, translate, locale + Trusted Relays + Relays you trust to not need a Tor connection for + X Status w/ Proof + Complete + Full + Performance + Fast + Simplified + Simple + UI Preferences + dark mode, light mode, theme, font size, language, appearance + UI Mode + Choose the post style + Unable to create a lightning invoice before sending the zap. The receiver's lightning wallet sent the following error: %1$s + Unable to share image, please try again later… + Unable to share video, please try again later… + Unauthorized Decryption + The signer did not authorize a decryption that is required to make this operation. Activate NIP-44 decryptions in your signer app and try again + Unfollow + Unfollow this location + Unmute notifications + Unpin + Unpin from Profile + Upload cancelled + Upload Error + Voice upload failed: %1$s + Failed to upload voice message + NIP-95 is not supported for voice messages yet + %1$d%% uptime + Active Tor Engine + Use the internal version or Orbot + User does not have a lightning address set up to receive sats + User %1$s does not have a lightning address set up to receive sats + Vanish History + deletion, delete events + Vanish request sent + Better quality at smaller file sizes but not all devices support H.265 playback. + Use H.265/HEVC Codec + Accepted a collaboration credit + Declined a collaboration credit + Credit accepted + Audio from + Featuring + Inspired by + References + Private list + + %1$d video + %1$d videos + + Video download has started… + video, player, playback, autoplay, mute + Video Player Buttons + Video saved to the phone's video gallery + Voice Post + Deep + High + Neutral + None + Voice Reply + Wallet + Cashu wallet (NIP-60) + Could not load your balance + Wallet Connect + Amethyst could not decrypt your wallet's reply — the wallet may be using a different key + + Your wallet did not respond within %1$d second. The payment may or may not have gone through — check your wallet before retrying. + Your wallet did not respond within %1$d seconds. The payment may or may not have gone through — check your wallet before retrying. + + Your wallet connect provider returned the following error: %1$s + Your wallet connect provider sent a reply Amethyst could not read. + Your wallet replied with something Amethyst does not recognise (%1$s) + Edit mints + Could not create the invoice + Your wallet did not return an invoice + Could not reach your wallet: %1$s + Wallet request timed out + + Wallet request timed out — %1$d reply was rejected because it was signed by an unexpected key. Your relay may be untrusted. + Wallet request timed out — %1$d replies were rejected because they were signed by an unexpected key. Your relay may be untrusted. + + Could not load transactions + Could not load more transactions + Shows a warning message when posts or profiles have reports from your follows + Warn on reports + Add Web Bookmark + Edit Web Bookmark + Web Bookmarks + What's on your mind? + + %1$d activity + %1$d activities + + Workouts + Write a message… + Write to Relay + The amount in bytes that was sent to this relay, including filters and events + Zap + Pay-to hand-off + When the author publishes a payment method an app on this phone can open (Venmo, Monero, an IBAN…), the zap picker can offer it. Tapping opens that app, which asks for the amount — nothing is published to relays, so the note's zap count does not change. + Offer the author's payment methods + Zaps + lightning, sats, tips, wallet, amount, payto, pay-to, venmo, paypal, cash app, monero, iban, hand-off + Amethyst + + Rename + Save diff --git a/tools/strings-migrate/__pycache__/fix_escapes.cpython-311.pyc b/tools/strings-migrate/__pycache__/fix_escapes.cpython-311.pyc new file mode 100644 index 0000000000..c700f97938 Binary files /dev/null and b/tools/strings-migrate/__pycache__/fix_escapes.cpython-311.pyc differ diff --git a/tools/strings-migrate/__pycache__/migrate.cpython-311.pyc b/tools/strings-migrate/__pycache__/migrate.cpython-311.pyc new file mode 100644 index 0000000000..5e750571e7 Binary files /dev/null and b/tools/strings-migrate/__pycache__/migrate.cpython-311.pyc differ diff --git a/tools/strings-migrate/migrate.py b/tools/strings-migrate/migrate.py index 151eeb1f85..ae4fb9e670 100755 --- a/tools/strings-migrate/migrate.py +++ b/tools/strings-migrate/migrate.py @@ -2,6 +2,7 @@ """Move string keys from the Android app's res/ to commons Compose resources. Usage: tools/strings-migrate/migrate.py key1 key2 ... + tools/strings-migrate/migrate.py @keylist.txt (one key per line) For the default locale and every values-* locale dir, each named or element is removed from @@ -29,8 +30,17 @@ COMMONS_RES = "commonsUI/src/commonMain/composeResources" NEW_FILE_TEMPLATE = '\n\n\n' -# %s, %d, %.2f ... without a position (%1$s). %% is a literal percent. -BARE_FORMAT = re.compile(r"%(?!%)(?!\d+\$)[-#+ 0,(]*\d*(?:\.\d+)?[a-zA-Z]") +# %s, %d, %.2f ... without a position (%1$s). The leading `%%` alternative is +# what makes this correct: a literal percent must be consumed as a unit, or the +# SECOND `%` of `%1$d%% of all` starts a fresh match and the space flag in +# `[-#+ 0,(]*` lets `% o` look like a bare conversion. Callers test +# `is_bare(text)`, not `.search()`, because a `%%` match is not a finding. +FORMAT_SPEC = re.compile(r"%%|%(?!\d+\$)[-#+ 0,(]*\d*(?:\.\d+)?[a-zA-Z]") + + +def is_bare(text: str) -> bool: + """True when text uses a non-positional conversion (bare %s / %d).""" + return any(m.group(0) != "%%" for m in FORMAT_SPEC.finditer(text)) def element_pattern(key: str) -> re.Pattern: @@ -43,6 +53,41 @@ def element_pattern(key: str) -> re.Pattern: ) +# Name-agnostic twin of element_pattern(), used by the bulk path: one scan per +# file instead of one per (key, file). Spans match element_pattern's exactly - +# `name` is unique within a tag, so the lazy `[^>]*?` lands in the same place. +ANY_ELEMENT = re.compile( + r"[ \t]*<(string|plurals)\b[^>]*?\sname=\"([^\"]+)\"[^>]*?(?:/>|>.*?)[ \t]*\n?", + re.S, +) + + +def extract_many(path: str, keys: list): + """Remove every element in `keys` from `path` in ONE pass. + + Returns them ordered by `keys`, matching what repeated extract() calls + produced, so the appended block is byte-identical to the slow path. + """ + if not os.path.exists(path): + return [] + src = open(path, encoding="utf-8").read() + wanted = set(keys) + found = {} + out = [] + last = 0 + for m in ANY_ELEMENT.finditer(src): + if m.group(2) not in wanted or m.group(2) in found: + continue + found[m.group(2)] = m.group(0).strip("\n") + out.append(src[last : m.start()]) + last = m.end() + if not found: + return [] + out.append(src[last:]) + open(path, "w", encoding="utf-8").write("".join(out)) + return [found[k] for k in keys if k in found] + + def extract(path: str, key: str): """Remove key's element from path; return the element text or None.""" if not os.path.exists(path): @@ -86,7 +131,7 @@ def main(keys): m = element_pattern(key).search(default_text) if not m: sys.exit(f"ERROR: key '{key}' not found in {default_src}") - if BARE_FORMAT.search(m.group(0)): + if is_bare(m.group(0)): sys.exit( f"ERROR: key '{key}' uses a non-positional format specifier (bare %s/%d).\n" "compose-resources only formats %1$s-style args - rewrite the key " @@ -100,11 +145,7 @@ def main(keys): moved_total = 0 for d in locale_dirs: src_path = os.path.join(APP_RES, d, "strings.xml") - elements = [] - for key in keys: - el = extract(src_path, key) - if el is not None: - elements.append(el) + elements = extract_many(src_path, keys) if elements: append(os.path.join(COMMONS_RES, d, "strings.xml"), elements) moved_total += len(elements) @@ -115,4 +156,7 @@ def main(keys): if __name__ == "__main__": if len(sys.argv) < 2: sys.exit(__doc__) - main(sys.argv[1:]) + args = sys.argv[1:] + if len(args) == 1 and args[0].startswith("@"): + args = open(args[0][1:], encoding="utf-8").read().split() + main(args)