Merge remote-tracking branch 'origin/HEAD' into full-outbox

# Conflicts:
#	ammolite/src/main/java/com/vitorpamplona/ammolite/relays/NostrClient.kt
#	gradle/libs.versions.toml
This commit is contained in:
Vitor Pamplona
2025-07-02 08:23:54 -04:00
66 changed files with 628 additions and 176 deletions
+1
View File
@@ -17,6 +17,7 @@ Join the social network you control.
[![JitPack version](https://jitpack.io/v/vitorpamplona/amethyst.svg)](https://jitpack.io/#vitorpamplona/amethyst)
[![CI](https://img.shields.io/github/actions/workflow/status/vitorpamplona/amethyst/build.yml?labelColor=27303D)](https://github.com/vitorpamplona/amethyst/actions/workflows/build.yml)
[![License: Apache-2.0](https://img.shields.io/github/license/vitorpamplona/amethyst?labelColor=27303D&color=0877d2)](/LICENSE)
[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/vitorpamplona/amethyst)
## Download and Install
@@ -113,6 +113,10 @@ class AccountSyncedSettings(
security.warnAboutPostsWithReports = syncedSettingsInternal.security.warnAboutPostsWithReports
}
}
fun dontTranslateFromFilteredBySpokenLanguages(): Set<String> {
return languages.dontTranslateFrom - getLanguagesSpokenByUser()
}
}
@Stable
@@ -201,10 +201,11 @@ object MediaSaverToDisk {
contentSource: BufferedSource,
contentResolver: ContentResolver,
) {
val cleanMimeType = contentType.substringBefore(";").trim()
val contentValues =
ContentValues().apply {
put(MediaStore.MediaColumns.DISPLAY_NAME, displayName)
put(MediaStore.MediaColumns.MIME_TYPE, contentType)
put(MediaStore.MediaColumns.MIME_TYPE, cleanMimeType)
put(
MediaStore.MediaColumns.RELATIVE_PATH,
Environment.DIRECTORY_PICTURES + File.separatorChar + PICTURES_SUBDIRECTORY,
@@ -84,6 +84,7 @@ import com.vitorpamplona.amethyst.ui.screen.loggedIn.search.SearchScreen
import com.vitorpamplona.amethyst.ui.screen.loggedIn.settings.NIP47SetupScreen
import com.vitorpamplona.amethyst.ui.screen.loggedIn.settings.SecurityFiltersScreen
import com.vitorpamplona.amethyst.ui.screen.loggedIn.settings.SettingsScreen
import com.vitorpamplona.amethyst.ui.screen.loggedIn.settings.UserSettingsScreen
import com.vitorpamplona.amethyst.ui.screen.loggedIn.threadview.ThreadScreen
import com.vitorpamplona.amethyst.ui.screen.loggedIn.video.VideoScreen
import com.vitorpamplona.amethyst.ui.screen.loggedOff.AddAccountDialog
@@ -124,6 +125,7 @@ fun AppNavigation(
composableFromEnd<Route.Bookmarks> { BookmarkListScreen(accountViewModel, nav) }
composableFromEnd<Route.Drafts> { DraftListScreen(accountViewModel, nav) }
composableFromEnd<Route.Settings> { SettingsScreen(sharedPreferencesViewModel, accountViewModel, nav) }
composableFromEnd<Route.UserSettings> { UserSettingsScreen(accountViewModel, nav) }
composableFromBottomArgs<Route.Nip47NWCSetup> { NIP47SetupScreen(accountViewModel, nav, it.nip47) }
composableFromEndArgs<Route.EditRelays> { AllRelayListScreen(it.toAdd, accountViewModel, nav) }
@@ -256,9 +258,6 @@ private fun NavigateIfIntentRequested(
}
nav.newStack(Route.NewPost(message = message, attachment = media.toString()))
media = null
message = null
} else {
var newAccount by remember { mutableStateOf<String?>(null) }
@@ -51,6 +51,7 @@ import androidx.compose.material.icons.outlined.CloudUpload
import androidx.compose.material.icons.outlined.Drafts
import androidx.compose.material.icons.outlined.GroupAdd
import androidx.compose.material.icons.outlined.Key
import androidx.compose.material.icons.outlined.Person
import androidx.compose.material.icons.outlined.Security
import androidx.compose.material.icons.outlined.Settings
import androidx.compose.material3.HorizontalDivider
@@ -66,7 +67,6 @@ import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
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
@@ -74,7 +74,6 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.text.LinkAnnotation
import androidx.compose.ui.text.SpanStyle
@@ -427,8 +426,6 @@ fun ListContent(
var backupDialogOpen by remember { mutableStateOf(false) }
val context = LocalContext.current
Column(modifier) {
NavigationRow(
title = R.string.profile,
@@ -508,6 +505,14 @@ fun ListContent(
route = Route.Settings,
)
NavigationRow(
title = R.string.user_preferences,
icons = listOf(Icons.Outlined.Person, Icons.Outlined.Settings),
tint = MaterialTheme.colorScheme.onBackground,
nav = nav,
route = Route.UserSettings,
)
Spacer(modifier = Modifier.weight(1f))
IconRow(
@@ -584,11 +589,28 @@ fun NavigationRow(
tint: Color,
nav: INav,
route: Route,
) {
NavigationRow(
title = title,
icons = listOf(icon),
tint = tint,
nav = nav,
route = route,
)
}
@Composable
fun NavigationRow(
title: Int,
icons: List<ImageVector>,
tint: Color,
nav: INav,
route: Route,
) {
IconRow(
title,
icon,
tint,
title = title,
icons = icons,
tint = tint,
onClick = {
nav.closeDrawer()
nav.nav(route)
@@ -636,6 +658,21 @@ fun IconRow(
icon: ImageVector,
tint: Color,
onClick: () -> Unit,
) {
IconRow(
title = title,
icons = listOf(icon),
tint = tint,
onClick = onClick,
)
}
@Composable
fun IconRow(
title: Int,
icons: List<ImageVector>,
tint: Color,
onClick: () -> Unit,
) {
Row(
modifier =
@@ -650,12 +687,15 @@ fun IconRow(
modifier = IconRowModifier,
verticalAlignment = Alignment.CenterVertically,
) {
icons.forEach { icon ->
Icon(
imageVector = icon,
contentDescription = stringRes(title),
modifier = Size22Modifier,
modifier = Size22Modifier.padding(end = 4.dp),
tint = tint,
)
}
Text(
modifier = IconRowTextModifier,
text = stringRes(title),
@@ -709,8 +749,6 @@ fun BottomContent(
accountViewModel: AccountViewModel,
nav: INav,
) {
val coroutineScope = rememberCoroutineScope()
// store the dialog open or close state
var dialogOpen by remember { mutableStateOf(false) }
@@ -49,6 +49,8 @@ sealed class Route {
@Serializable object Settings : Route()
@Serializable object UserSettings : Route()
@Serializable object EditProfile : Route()
@Serializable data class EditRelays(
@@ -882,6 +882,10 @@ class AccountViewModel(
fun dontTranslateFrom() = account.settings.syncedSettings.languages.dontTranslateFrom
fun dontTranslateFromFilteredBySpokenLanguages() = account.settings.syncedSettings.dontTranslateFromFilteredBySpokenLanguages()
fun toggleDontTranslateFrom(languageCode: String) = account.toggleDontTranslateFrom(languageCode)
fun translateTo() = account.settings.syncedSettings.languages.translateTo
fun defaultZapType() = account.settings.syncedSettings.zaps.defaultZapType.value
@@ -24,7 +24,6 @@ import android.util.Log
import com.vitorpamplona.amethyst.Amethyst
import com.vitorpamplona.amethyst.model.Account
import com.vitorpamplona.amethyst.model.LocalCache
import com.vitorpamplona.amethyst.model.LocalCache.indexDraftAsRealEvent
import com.vitorpamplona.amethyst.model.Note
import com.vitorpamplona.quartz.experimental.edits.PrivateOutboxRelayListEvent
import com.vitorpamplona.quartz.nip01Core.core.Event
@@ -142,21 +142,21 @@ fun DiscoverScreen(
LongTextNoteEvent.KIND,
),
TabItem(
R.string.discover_content,
R.string.discover_content_v2,
discoveryContentNIP89FeedContentState,
"DiscoverDiscoverContent",
ScrollStateKeys.DISCOVER_CONTENT,
AppDefinitionEvent.KIND,
),
TabItem(
R.string.discover_live,
R.string.discover_live_v2,
discoveryLiveFeedContentState,
"DiscoverLive",
ScrollStateKeys.DISCOVER_LIVE,
LiveActivitiesEvent.KIND,
),
TabItem(
R.string.discover_community,
R.string.discover_community_v2,
discoveryCommunityFeedContentState,
"DiscoverCommunity",
ScrollStateKeys.DISCOVER_COMMUNITY,
@@ -23,7 +23,6 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn.geohash
import android.net.Uri
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.text.input.TextFieldValue
import androidx.lifecycle.viewmodel.compose.viewModel
@@ -23,7 +23,6 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn.hashtag
import android.net.Uri
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.text.input.TextFieldValue
import androidx.lifecycle.viewmodel.compose.viewModel
@@ -60,7 +60,7 @@ fun DeleteFromGalleryDialog(
) {
QuickActionAlertDialogOneButton(
title = stringRes(R.string.quick_action_request_deletion_gallery_title),
textContent = stringRes(R.string.quick_action_request_deletion_gallery_alert_body),
textContent = stringRes(R.string.quick_action_request_deletion_gallery_alert_body_v2),
buttonIcon = Icons.Default.Delete,
buttonText = stringRes(R.string.quick_action_delete_dialog_btn),
onClickDoOnce = {
@@ -119,11 +119,12 @@ fun getLanguageIndex(
sharedPreferencesViewModel: SharedPreferencesViewModel,
): Int {
val language = sharedPreferencesViewModel.sharedPrefs.language
var languageIndex = -1
var languageIndex: Int
languageIndex =
if (language != null) {
languageIndex = languageEntries.values.toTypedArray().indexOf(language)
languageEntries.values.toTypedArray().indexOf(language)
} else {
languageIndex = languageEntries.values.toTypedArray().indexOf(Locale.current.toLanguageTag())
languageEntries.values.toTypedArray().indexOf(Locale.current.toLanguageTag())
}
if (languageIndex == -1) {
languageIndex = languageEntries.values.toTypedArray().indexOf(Locale.current.language)
@@ -365,7 +366,7 @@ fun SettingsRow(
text = stringRes(description),
style = MaterialTheme.typography.bodySmall,
color = Color.Gray,
maxLines = 2,
maxLines = 3,
overflow = TextOverflow.Ellipsis,
)
}
@@ -0,0 +1,154 @@
/**
* Copyright (c) 2025 Vitor Pamplona
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
* Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package com.vitorpamplona.amethyst.ui.screen.loggedIn.settings
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Close
import androidx.compose.material3.DropdownMenuItem
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.ExposedDropdownMenuBox
import androidx.compose.material3.ExposedDropdownMenuDefaults
import androidx.compose.material3.Icon
import androidx.compose.material3.MenuAnchorType
import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
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 androidx.lifecycle.viewModelScope
import com.vitorpamplona.amethyst.R
import com.vitorpamplona.amethyst.ui.layouts.DisappearingScaffold
import com.vitorpamplona.amethyst.ui.navigation.EmptyNav
import com.vitorpamplona.amethyst.ui.navigation.INav
import com.vitorpamplona.amethyst.ui.navigation.TopBarWithBackButton
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
import com.vitorpamplona.amethyst.ui.screen.loggedIn.mockAccountViewModel
import com.vitorpamplona.amethyst.ui.stringRes
import com.vitorpamplona.amethyst.ui.theme.Size10dp
import com.vitorpamplona.amethyst.ui.theme.Size20dp
import com.vitorpamplona.amethyst.ui.theme.ThemeComparisonRow
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import java.util.Locale as JavaLocale
@Preview(device = "spec:width=2160px,height=2340px,dpi=440")
@Composable
fun UserSettingsScreenPreview() {
val accountViewModel = mockAccountViewModel()
val nav = EmptyNav
ThemeComparisonRow {
UserSettingsScreen(accountViewModel, nav)
}
}
@Composable
fun UserSettingsScreen(
accountViewModel: AccountViewModel,
nav: INav,
) {
DisappearingScaffold(
isInvertedLayout = false,
topBar = {
TopBarWithBackButton(stringRes(id = R.string.user_preferences), nav::popBack)
},
accountViewModel = accountViewModel,
) {
Column(Modifier.padding(it)) {
Column(
Modifier
.fillMaxSize()
.padding(top = Size10dp, start = Size20dp, end = Size20dp)
.verticalScroll(rememberScrollState()),
horizontalAlignment = Alignment.CenterHorizontally,
) {
DontTranslateFromSetting(accountViewModel)
}
}
}
}
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun DontTranslateFromSetting(accountViewModel: AccountViewModel) {
var expanded by remember { mutableStateOf(false) }
val selectedLanguages = accountViewModel.dontTranslateFromFilteredBySpokenLanguages().toMutableSet()
Column {
SettingsRow(
name = R.string.dont_translate_from,
description = R.string.dont_translate_from_description,
) {
ExposedDropdownMenuBox(
expanded = expanded,
onExpandedChange = { expanded = !expanded },
) {
OutlinedTextField(
value = stringRes(R.string.quick_action_select),
onValueChange = {},
readOnly = true,
trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded = expanded) },
modifier = Modifier.menuAnchor(MenuAnchorType.PrimaryEditable),
)
ExposedDropdownMenu(
expanded = expanded,
onDismissRequest = { expanded = false },
) {
selectedLanguages.forEach { languageCode ->
DropdownMenuItem(
text = { Text(text = JavaLocale.forLanguageTag(languageCode).displayName) },
onClick = {
accountViewModel.viewModelScope.launch(Dispatchers.IO) {
accountViewModel.toggleDontTranslateFrom(
languageCode,
)
}
selectedLanguages.remove(languageCode)
expanded = false
},
trailingIcon = {
Icon(
imageVector = Icons.Default.Close,
contentDescription = "Remove $languageCode",
tint = Color.Red,
modifier = Modifier.size(16.dp),
)
},
)
}
}
}
}
}
}
@@ -274,7 +274,6 @@
<string name="quick_action_unfollow">الغاء المتابعة</string>
<string name="quick_action_follow">متابعة</string>
<string name="quick_action_request_deletion_gallery_title">إزالته من المعرض</string>
<string name="quick_action_request_deletion_gallery_alert_body">إزالة هذه الوسيطة من المعرض.</string>
<string name="quick_action_request_deletion_alert_title">طلب حذفها</string>
<string name="quick_action_request_deletion_alert_body">سيطلب Amethyst حذف ملاحظتك من المرحلات المتصل بها حاليا، لا يوجد ضمان لحذفها من هذه المرحلات أو من المرحلات الأخرى التي ربما حفظت فيها.</string>
<string name="quick_action_block_dialog_btn">حظر </string>
@@ -476,7 +475,6 @@
<string name="are_you_sure_you_want_to_log_out">تسجيل الخروج سوف يحذف معلوماتك من على الجهاز. تأكد من نسخ مفتاحك الخاص لتجنب فقدان الحساب. هل تريد ألاستمرار؟</string>
<string name="followed_tags">العلامات المُتابعة</string>
<string name="relay_setup">مرحلات</string>
<string name="discover_community">مجتمع</string>
<string name="discover_chat">االدردشات</string>
<string name="community_approved_posts">المنشورات الموافق عليها</string>
<string name="groups_no_descriptor">هذه المجموعة ليس لديها وصف أو قواعد.
@@ -417,8 +417,6 @@
<string name="are_you_sure_you_want_to_log_out">লগ আউট করলে আপনার সমস্ত স্থানীয় তথ্য মুছে যাবে। অ্যাকাউন্ট সুরক্ষিত রাখতে আপনার ব্যক্তিগত চাবিটি নিরাপদে সংরক্ষিত আছে কিনা নিশ্চিত হোন। সামনে আগাতে চান?</string>
<string name="followed_tags">অনুসৃত ট্যাগগুলি</string>
<string name="relay_setup">রিলেগুলি</string>
<string name="discover_live">লাইভ</string>
<string name="discover_community">কম্যুনিটি</string>
<string name="discover_chat">বার্তালাপগুলি</string>
<string name="community_approved_posts">অনুমোদিত পোস্টগুলি</string>
<string name="groups_no_descriptor">এই দলটির কোনো বিবরণ কিংবা নীতিমালা নেই। এগুলো যুক্ত করতে দলনেতার সাথে কথা বলুন</string>
@@ -3,9 +3,9 @@
<string name="point_to_the_qr_code">Nasměrujte na QR kód</string>
<string name="show_qr">Zobrazit QR kód</string>
<string name="profile_image">Profilový obrázek</string>
<string name="your_profile_image">Profilový obrázek</string>
<string name="your_profile_image">Váš profilový obrázek</string>
<string name="scan_qr">Skenovat QR kód</string>
<string name="show_anyway">Zobrazit přesto</string>
<string name="show_anyway">Přesto zobrazit</string>
<string name="post_was_hidden">Tento příspěvek byl skryt, protože zmiňuje vaše skryté uživatele nebo slova</string>
<string name="post_was_flagged_as_inappropriate_by">Příspěvek byl označen jako nevhodný uživatelem</string>
<string name="post_not_found">Příspěvek nenalezen</string>
@@ -298,7 +298,7 @@
<string name="quick_action_unfollow">Přestat sledovat</string>
<string name="quick_action_follow">Sledovat</string>
<string name="quick_action_request_deletion_gallery_title">Odstranit z galerie</string>
<string name="quick_action_request_deletion_gallery_alert_body">Odstraňte tato média z vaší galerie, můžete je přidat později</string>
<string name="quick_action_request_deletion_gallery_alert_body_v2">Odstranit toto médium z vaší galerie.</string>
<string name="quick_action_request_deletion_alert_title">Požadavek na smazání</string>
<string name="quick_action_request_deletion_alert_body">Amethyst požádá o smazání vaší poznámky ze spojek, ke kterým jste v současnosti připojeni. Není zaručeno, že vaše poznámka bude trvale smazána z těchto spojek nebo z dalších spojek, kde může být uložena.</string>
<string name="quick_action_block_dialog_btn">Blokovat</string>
@@ -559,10 +559,10 @@
<string name="relay_setup">Rele</string>
<string name="discover_follows">Balíčky Sledování</string>
<string name="discover_reads">Přečtené</string>
<string name="discover_content">Algoritmy kanálu</string>
<string name="discover_content_v2">Algoritmy kanálu</string>
<string name="discover_marketplace">Trh</string>
<string name="discover_live">Živě</string>
<string name="discover_community">Komunita</string>
<string name="discover_live_v2">Živé vysílání</string>
<string name="discover_community_v2">Komunity</string>
<string name="discover_chat">Chaty</string>
<string name="community_approved_posts">Schválené příspěvky</string>
<string name="groups_no_descriptor">Tato skupina nemá popis ani pravidla. Promluvte si s majitelem, aby je přidal/a.</string>
@@ -614,6 +614,8 @@
<string name="geohash_explainer">Přidá Geohash vaší polohy do příspěvku. Veřejnost bude vědět, že se nacházíte do 5 km od aktuální polohy</string>
<string name="geohash_exclusive">Lokace-Exkluzívní příspěvek</string>
<string name="geohash_exclusive_explainer">Uvidí to pouze následovníci umístění. Tvoji obecní následovníci to neuvidí.</string>
<string name="hashtag_exclusive">Hashtag-exkluzivní příspěvek</string>
<string name="hashtag_exclusive_explainer">Uvidí to pouze následovníci hashtagu. Tvůj všeobecní následovníci to neuvidí.</string>
<string name="loading_location">Načítání umístění</string>
<string name="lack_location_permissions">Žádná lokace oprávnění</string>
<string name="add_sensitive_content_explainer">Přidat varování o citlivém obsahu před zobrazením vašeho obsahu. Toto je ideální pro obsah NSFW (nebezpečné pro práci) nebo obsah, který někteří lidé mohou považovat za urážlivý nebo znepokojující</string>
@@ -816,6 +818,7 @@
<string name="new_short">Nové Shorts: obrázky nebo videa</string>
<string name="new_community_note">Nová poznámka komunity</string>
<string name="new_product">Nový produkt</string>
<string name="new_exclusive_geo_note">Nový geoexkluzivní příspěvek</string>
<string name="open_all_reactions_to_this_post">Otevřít všechny reakce pro tento příspěvek</string>
<string name="close_all_reactions_to_this_post">Zavřít všechny reakce na tento příspěvek</string>
<string name="reply_description">Odpověď</string>
@@ -968,4 +971,5 @@
<string name="group_relay">Relé chatu</string>
<string name="group_relay_explanation">Relé, ke kterému se všichni uživatelé tohoto chatu připojují</string>
<string name="share_image">Sdílet obrázek…</string>
<string name="search_by_hashtag">Vyhledávání hashtag: #%1$s</string>
</resources>
@@ -286,7 +286,6 @@
<string name="quick_action_unfollow">Přestat sledovat</string>
<string name="quick_action_follow">Sledovat</string>
<string name="quick_action_request_deletion_gallery_title">Odstranit z galerie</string>
<string name="quick_action_request_deletion_gallery_alert_body">Odstraňte tato média z vaší galerie, můžete je přidat později</string>
<string name="quick_action_request_deletion_alert_title">Požadavek na smazání</string>
<string name="quick_action_request_deletion_alert_body">Amethyst požádá o smazání vaší poznámky ze spojek, ke kterým jste v současnosti připojeni. Není zaručeno, že vaše poznámka bude trvale smazána z těchto spojek nebo z dalších spojek, kde může být uložena.</string>
<string name="quick_action_block_dialog_btn">Blokovat</string>
@@ -535,10 +534,7 @@
<string name="are_you_sure_you_want_to_log_out">Odhlášení vymaže všechny vaše místní informace. Ujistěte se, že máte zálohované své privátní klíče, abyste se vyhnuli ztrátě účtu. Chcete pokračovat?</string>
<string name="followed_tags">Sledované značky</string>
<string name="relay_setup">Rele</string>
<string name="discover_content">Objevování poznámek</string>
<string name="discover_marketplace">Trh</string>
<string name="discover_live">Živě</string>
<string name="discover_community">Komunita</string>
<string name="discover_chat">Chaty</string>
<string name="community_approved_posts">Schválené příspěvky</string>
<string name="groups_no_descriptor">Tato skupina nemá popis ani pravidla. Promluvte si s majitelem, aby je přidal/a.</string>
@@ -302,7 +302,7 @@ anz der Bedingungen ist erforderlich</string>
<string name="quick_action_unfollow">Entfolgen</string>
<string name="quick_action_follow">Folgen</string>
<string name="quick_action_request_deletion_gallery_title">Aus Galerie löschen</string>
<string name="quick_action_request_deletion_gallery_alert_body">Entferne diese Medien von deiner Galerie, du kannst sie später hinzufügen</string>
<string name="quick_action_request_deletion_gallery_alert_body_v2">Entferne dieses Medium von deiner Galerie.</string>
<string name="quick_action_request_deletion_alert_title">Löschung anfordern</string>
<string name="quick_action_request_deletion_alert_body">Amethyst wird beantragen, dass Ihre Notiz von den Relays gelöscht wird, mit denen Sie derzeit verbunden sind. Es gibt keine Garantie dafür, dass Ihre Notiz dauerhaft von diesen Relays oder anderen Relays, in denen sie gespeichert sein kann, gelöscht wird.</string>
<string name="quick_action_block_dialog_btn">Blockieren</string>
@@ -564,10 +564,10 @@ anz der Bedingungen ist erforderlich</string>
<string name="relay_setup">Relais</string>
<string name="discover_follows">Folge Paketen</string>
<string name="discover_reads">Lesungen</string>
<string name="discover_content">Notizen Entdeckung</string>
<string name="discover_content_v2">Feedalgorithmen</string>
<string name="discover_marketplace">Marktplatz</string>
<string name="discover_live">Live</string>
<string name="discover_community">Gemeinschaft</string>
<string name="discover_live_v2">Live-Streams</string>
<string name="discover_community_v2">Gemeinschaften</string>
<string name="discover_chat">Plaudern</string>
<string name="community_approved_posts">Genehmigte Beiträge</string>
<string name="groups_no_descriptor">Diese Gruppe hat keine Beschreibung oder Regeln. Sprechen Sie mit dem Eigentümer, um eine hinzuzufügen.</string>
@@ -619,6 +619,8 @@ anz der Bedingungen ist erforderlich</string>
<string name="geohash_explainer">Fügt dem Beitrag einen Geohash Ihres Standorts hinzu. Die Öffentlichkeit wird wissen, dass Sie sich innerhalb von 5 km (3 mi) vom aktuellen Standort befinden</string>
<string name="geohash_exclusive">Standort-exklusiver Beitrag</string>
<string name="geohash_exclusive_explainer">Nur Anhänger des Ortes werden es sehen. Deine allgemeinen Anhänger werden es nicht sehen.</string>
<string name="hashtag_exclusive">Hashtag-exklusive Beitrag</string>
<string name="hashtag_exclusive_explainer">Nur die Anhänger des Hashtags werden ihn sehen. Deine allgemeinen Follower werden ihn nicht sehen.</string>
<string name="loading_location">Standort wird geladen</string>
<string name="lack_location_permissions">Keine Standortberechtigungen</string>
<string name="add_sensitive_content_explainer">Fügt eine Warnung für sensiblen Inhalt hinzu, bevor Ihr Inhalt angezeigt wird. Dies ist ideal für NSFW-Inhalte (nicht sicher für die Arbeit) oder Inhalte, die manche Menschen als anstößig oder verstörend empfinden könnten</string>
@@ -821,6 +823,7 @@ anz der Bedingungen ist erforderlich</string>
<string name="new_short">Neue Kurzfilme: Bilder oder Videos</string>
<string name="new_community_note">Neue Community-Notiz</string>
<string name="new_product">Neues Produkt</string>
<string name="new_exclusive_geo_note">Neuer Geo-Exklusiver Beitrag</string>
<string name="open_all_reactions_to_this_post">Alle Reaktionen auf diesen Beitrag öffnen</string>
<string name="close_all_reactions_to_this_post">Alle Reaktionen auf diesen Beitrag schließen</string>
<string name="reply_description">Antworten</string>
@@ -973,4 +976,5 @@ anz der Bedingungen ist erforderlich</string>
<string name="group_relay">Chat-Relais</string>
<string name="group_relay_explanation">Das Relais, mit dem sich alle Benutzer dieses Chats verbinden</string>
<string name="share_image">Bild teilen…</string>
<string name="search_by_hashtag">Suche Hashtag: #%1$s</string>
</resources>
@@ -290,7 +290,6 @@ anz der Bedingungen ist erforderlich</string>
<string name="quick_action_unfollow">Entfolgen</string>
<string name="quick_action_follow">Folgen</string>
<string name="quick_action_request_deletion_gallery_title">Aus Galerie löschen</string>
<string name="quick_action_request_deletion_gallery_alert_body">Entferne diese Medien von deiner Galerie, du kannst sie später hinzufügen</string>
<string name="quick_action_request_deletion_alert_title">Löschung anfordern</string>
<string name="quick_action_request_deletion_alert_body">Amethyst wird beantragen, dass Ihre Notiz von den Relays gelöscht wird, mit denen Sie derzeit verbunden sind. Es gibt keine Garantie dafür, dass Ihre Notiz dauerhaft von diesen Relays oder anderen Relays, in denen sie gespeichert sein kann, gelöscht wird.</string>
<string name="quick_action_block_dialog_btn">Blockieren</string>
@@ -540,10 +539,7 @@ anz der Bedingungen ist erforderlich</string>
<string name="are_you_sure_you_want_to_log_out">Das Abmelden löscht alle Ihre lokalen Informationen. Stellen Sie sicher, dass Sie Ihre privaten Schlüssel gesichert haben, um einen Kontoverlust zu vermeiden. Möchten Sie fortfahren?</string>
<string name="followed_tags">Gefolgte Tags</string>
<string name="relay_setup">Relais</string>
<string name="discover_content">Notizen Entdeckung</string>
<string name="discover_marketplace">Marktplatz</string>
<string name="discover_live">Live</string>
<string name="discover_community">Gemeinschaft</string>
<string name="discover_chat">Plaudern</string>
<string name="community_approved_posts">Genehmigte Beiträge</string>
<string name="groups_no_descriptor">Diese Gruppe hat keine Beschreibung oder Regeln. Sprechen Sie mit dem Eigentümer, um eine hinzuzufügen.</string>
@@ -380,8 +380,6 @@
<string name="are_you_sure_you_want_to_log_out">Η Αποσύνδεση διαγράφει όλες τις τοπικές πληροφορίες σας. Βεβαιωθείτε ότι έχετε Αντίγραφο Ασφαλείας από το \"Μυστικό Κλειδί\" σας για να αποφύγετε απώλεια του λογαριασμού σας. Θέλετε να συνεχίσετε?</string>
<string name="followed_tags">Ετικέτες που Ακολουθώ</string>
<string name="relay_setup">Διαμοιραστές</string>
<string name="discover_live">Ζωντανά</string>
<string name="discover_community">Κοινότητα</string>
<string name="discover_chat">Συνομιλίες</string>
<string name="community_approved_posts">Εγκεκριμένες Δημοσιεύσεις</string>
<string name="groups_no_descriptor">Αυτή η ομάδα δεν έχει περιγραφή ή κανόνες. Μιλήστε με τον ιδιοκτήτη για να προσθέσετε μία</string>
@@ -379,8 +379,6 @@
<string name="are_you_sure_you_want_to_log_out">Elsaluti forigas ĉiujn viajn lokajn datumojn. Certigi ke vi sekurkopis vian privatan ŝlosilon por eviti perdi vian konton. Ĉu vi volas daŭrigi?</string>
<string name="followed_tags">Sekvitaj Etikedoj</string>
<string name="relay_setup">Plusendiloj</string>
<string name="discover_live">Vive</string>
<string name="discover_community">Komunumo</string>
<string name="discover_chat">Babilejoj</string>
<string name="community_approved_posts">Aprobitaj Afiŝoj</string>
<string name="groups_no_descriptor">Ĉi tiu grupo ne havas priskribon aŭ regulojn. Parolu kun la posedanto por aldoni</string>
@@ -379,8 +379,6 @@
<string name="are_you_sure_you_want_to_log_out">Elsaluti forigas ĉiujn viajn lokajn datumojn. Certigi ke vi sekurkopis vian privatan ŝlosilon por eviti perdi vian konton. Ĉu vi volas daŭrigi?</string>
<string name="followed_tags">Sekvitaj Etikedoj</string>
<string name="relay_setup">Plusendiloj</string>
<string name="discover_live">Vive</string>
<string name="discover_community">Komunumo</string>
<string name="discover_chat">Babilejoj</string>
<string name="community_approved_posts">Aprobitaj Afiŝoj</string>
<string name="groups_no_descriptor">Ĉi tiu grupo ne havas priskribon aŭ regulojn. Parolu kun la posedanto por aldoni</string>
@@ -290,7 +290,6 @@
<string name="quick_action_unfollow">Dejar de seguir</string>
<string name="quick_action_follow">Seguir</string>
<string name="quick_action_request_deletion_gallery_title">Eliminar de la galería</string>
<string name="quick_action_request_deletion_gallery_alert_body">Elimina este contenido multimedia de la galería, aunque puedes volver a agregarlo luego.</string>
<string name="quick_action_request_deletion_alert_title">Solicitar eliminación</string>
<string name="quick_action_request_deletion_alert_body">Amethyst solicitará que se elimine su nota de los relays a los que está conectado actualmente. No hay garantía de que su nota se elimine permanentemente de esos relays, o de otros relays donde pueda almacenarse.</string>
<string name="quick_action_block_dialog_btn">Bloquear</string>
@@ -540,10 +539,7 @@
<string name="are_you_sure_you_want_to_log_out">Al cerrar la sesión se borra toda tu información local. Asegúrate de tener una copia de seguridad de tus claves privadas para que no pierdas la cuenta. ¿Quieres continuar?</string>
<string name="followed_tags">Etiquetas seguidas</string>
<string name="relay_setup">Relés</string>
<string name="discover_content">Descubrimiento de notas</string>
<string name="discover_marketplace">Mercado</string>
<string name="discover_live">En vivo</string>
<string name="discover_community">Comunidad</string>
<string name="discover_chat">Chats</string>
<string name="community_approved_posts">Publicaciones aprobadas</string>
<string name="groups_no_descriptor">Este grupo no tiene descripción ni reglas. Habla con el propietario para agregar una.</string>
@@ -290,7 +290,6 @@
<string name="quick_action_unfollow">Dejar de seguir</string>
<string name="quick_action_follow">Seguir</string>
<string name="quick_action_request_deletion_gallery_title">Eliminar de la galería</string>
<string name="quick_action_request_deletion_gallery_alert_body">Elimina este contenido multimedia de la galería, aunque puedes volver a agregarlo luego.</string>
<string name="quick_action_request_deletion_alert_title">Solicitar eliminación</string>
<string name="quick_action_request_deletion_alert_body">Amethyst solicitará que se elimine la nota de los relés con los que tienes conexión actualmente. No hay garantía de que la nota se elimine permanentemente de esos relés o de otros donde pueda estar guardada.</string>
<string name="quick_action_block_dialog_btn">Bloquear</string>
@@ -540,10 +539,7 @@
<string name="are_you_sure_you_want_to_log_out">Al cerrar la sesión se borra toda tu información local. Asegúrate de tener una copia de seguridad de tus claves privadas para que no pierdas la cuenta. ¿Quieres continuar?</string>
<string name="followed_tags">Etiquetas seguidas</string>
<string name="relay_setup">Relés</string>
<string name="discover_content">Descubrimiento de notas</string>
<string name="discover_marketplace">Mercado</string>
<string name="discover_live">En vivo</string>
<string name="discover_community">Comunidad</string>
<string name="discover_chat">Chats</string>
<string name="community_approved_posts">Publicaciones aprobadas</string>
<string name="groups_no_descriptor">Este grupo no tiene descripción ni reglas. Habla con el propietario para agregar una.</string>
@@ -290,7 +290,6 @@
<string name="quick_action_unfollow">Dejar de seguir</string>
<string name="quick_action_follow">Seguir</string>
<string name="quick_action_request_deletion_gallery_title">Eliminar de la galería</string>
<string name="quick_action_request_deletion_gallery_alert_body">Elimina este contenido multimedia de la galería, aunque puedes volver a agregarlo luego.</string>
<string name="quick_action_request_deletion_alert_title">Solicitar eliminación</string>
<string name="quick_action_request_deletion_alert_body">Amethyst solicitará que se elimine la nota de los relés con los que tienes conexión actualmente. No hay garantía de que la nota se elimine permanentemente de esos relés o de otros donde pueda estar guardada.</string>
<string name="quick_action_block_dialog_btn">Bloquear</string>
@@ -540,10 +539,7 @@
<string name="are_you_sure_you_want_to_log_out">Al cerrar la sesión se borra toda tu información local. Asegúrate de tener una copia de seguridad de tus claves privadas para que no pierdas la cuenta. ¿Quieres continuar?</string>
<string name="followed_tags">Etiquetas seguidas</string>
<string name="relay_setup">Relés</string>
<string name="discover_content">Descubrimiento de notas</string>
<string name="discover_marketplace">Mercado</string>
<string name="discover_live">En vivo</string>
<string name="discover_community">Comunidad</string>
<string name="discover_chat">Chats</string>
<string name="community_approved_posts">Publicaciones aprobadas</string>
<string name="groups_no_descriptor">Este grupo no tiene descripción ni reglas. Habla con el propietario para agregar una.</string>
@@ -288,7 +288,6 @@
<string name="quick_action_unfollow">دنبال نکردن</string>
<string name="quick_action_follow">دنبال کردن</string>
<string name="quick_action_request_deletion_gallery_title">حذف از گالری</string>
<string name="quick_action_request_deletion_gallery_alert_body">حذف این رسانه از گالری، بعدا می توانید آن را بخوانید</string>
<string name="quick_action_request_deletion_alert_title">درخواست حذف</string>
<string name="quick_action_request_deletion_alert_body">آماتیست درخواست می کند که یادداشت شما از رله هایی که درحال حاضر به آن متصل هستید حذف شود. هیچ تضمینی نیست که یادداشت شما برای همیشه از آن رله ها یا از رله های دیگری که ممکن است در آنها ذخیره شده باشد حذف خواهد شد.. </string>
<string name="quick_action_block_dialog_btn">بلاک</string>
@@ -538,10 +537,7 @@
<string name="are_you_sure_you_want_to_log_out">خروج همه اطلاعات محلی شما را پاک می کند. مطمئن شوید که کلید خصوصی خود را بکاپ گرفته و ذخیره کرده اید تا حساب کاربری تان را از دست ندهید. می خواهید ادامه دهید؟</string>
<string name="followed_tags">برچسب های دنبال شده</string>
<string name="relay_setup">رله ها</string>
<string name="discover_content">اکتشاف یادداشت</string>
<string name="discover_marketplace">بازار</string>
<string name="discover_live">زنده</string>
<string name="discover_community">انجمن</string>
<string name="discover_chat">گپ</string>
<string name="community_approved_posts">یادداشت های تایید شده</string>
<string name="groups_no_descriptor">این گروه هیچ توصیف و قوانینی ندارد. با مالک گروه برای افزودن آن صحبت کنید.</string>
@@ -270,7 +270,6 @@
<string name="quick_action_unfollow">دنبال نکردن</string>
<string name="quick_action_follow">دنبال کردن</string>
<string name="quick_action_request_deletion_gallery_title">حذف از گالری</string>
<string name="quick_action_request_deletion_gallery_alert_body">حذف این رسانه از گالری، بعدا می توانید آن را بخوانید</string>
<string name="quick_action_request_deletion_alert_title">درخواست حذف</string>
<string name="quick_action_request_deletion_alert_body">آماتیست درخواست می کند که یادداشت شما از رله هایی که درحال حاضر به آن متصل هستید حذف شود. هیچ تضمینی نیست که یادداشت شما برای همیشه از آن رله ها یا از رله های دیگری که ممکن است در آنها ذخیره شده باشد حذف خواهد شد.. </string>
<string name="quick_action_block_dialog_btn">بلاک</string>
@@ -519,10 +518,7 @@
<string name="are_you_sure_you_want_to_log_out">خروج همه اطلاعات محلی شما را پاک می کند. مطمئن شوید که کلید خصوصی خود را بکاپ گرفته و ذخیره کرده اید تا حساب کاربری تان را از دست ندهید. می خواهید ادامه دهید؟</string>
<string name="followed_tags">برچسب های دنبال شده</string>
<string name="relay_setup">رله ها</string>
<string name="discover_content">اکتشاف یادداشت</string>
<string name="discover_marketplace">بازار</string>
<string name="discover_live">زنده</string>
<string name="discover_community">انجمن</string>
<string name="discover_chat">گپ</string>
<string name="community_approved_posts">یادداشت های تایید شده</string>
<string name="groups_no_descriptor">این گروه هیچ توصیف و قوانینی ندارد. با مالک گروه برای افزودن آن صحبت کنید.</string>
@@ -391,7 +391,6 @@
<string name="followed_tags">Seuratut tagit</string>
<string name="relay_setup">Releet</string>
<string name="discover_marketplace">Markkinapaikka</string>
<string name="discover_community">Yhteisö</string>
<string name="discover_chat">Keskustelut</string>
<string name="community_approved_posts">Hyväksytyt viestit</string>
<string name="groups_no_descriptor">Tällä ryhmällä ei ole kuvausta tai sääntöjä. Keskustele omistajan kanssa sen lisäämiseksi</string>
@@ -290,7 +290,6 @@
<string name="quick_action_unfollow">Ne plus suivre</string>
<string name="quick_action_follow">Suivre</string>
<string name="quick_action_request_deletion_gallery_title">Supprimer de la galerie</string>
<string name="quick_action_request_deletion_gallery_alert_body">Retirer ce média de votre galerie, vous pourrez le réajouter plus tard</string>
<string name="quick_action_request_deletion_alert_title">Demande de Suppression</string>
<string name="quick_action_request_deletion_alert_body">Amethyst demandera que votre note soit supprimée des relais auxquels vous êtes actuellement connecté. Il n\'y a aucune garantie que votre note sera définitivement supprimée de ces relais, ou d\'autres relais où elle peut être stockée.</string>
<string name="quick_action_block_dialog_btn">Bloquer</string>
@@ -540,10 +539,7 @@
<string name="are_you_sure_you_want_to_log_out">Se déconnecter supprime toutes vos informations locales. Assurez-vous d\'avoir vos clés privées sauvegardées pour éviter de perdre votre compte. Voulez-vous continuer ?</string>
<string name="followed_tags">Tags suivis</string>
<string name="relay_setup">Relais</string>
<string name="discover_content">Découverte de notes</string>
<string name="discover_marketplace">Place de Marché</string>
<string name="discover_live">Direct</string>
<string name="discover_community">Communauté</string>
<string name="discover_chat">Salons</string>
<string name="community_approved_posts">Messages approuvés</string>
<string name="groups_no_descriptor">Ce groupe n\'a pas de description ou de règles. Parlez au propriétaire pour en ajouter une</string>
@@ -282,7 +282,6 @@
<string name="quick_action_unfollow">Ne plus suivre</string>
<string name="quick_action_follow">Suivre</string>
<string name="quick_action_request_deletion_gallery_title">Supprimer de la galerie</string>
<string name="quick_action_request_deletion_gallery_alert_body">Retirer ce média de votre galerie, vous pourrez le réajouter plus tard</string>
<string name="quick_action_request_deletion_alert_title">Demande de Suppression</string>
<string name="quick_action_request_deletion_alert_body">Amethyst demandera que votre note soit supprimée des relais auxquels vous êtes actuellement connecté. Il n\'y a aucune garantie que votre note sera définitivement supprimée de ces relais, ou d\'autres relais où elle peut être stockée.</string>
<string name="quick_action_block_dialog_btn">Bloquer</string>
@@ -531,10 +530,7 @@
<string name="are_you_sure_you_want_to_log_out">Se déconnecter supprime toutes vos informations locales. Assurez-vous d\'avoir vos clés privées sauvegardées pour éviter de perdre votre compte. Voulez-vous continuer ?</string>
<string name="followed_tags">Tags suivis</string>
<string name="relay_setup">Relais</string>
<string name="discover_content">Découverte de notes</string>
<string name="discover_marketplace">Place de Marché</string>
<string name="discover_live">Direct</string>
<string name="discover_community">Communauté</string>
<string name="discover_chat">Salons</string>
<string name="community_approved_posts">Messages approuvés</string>
<string name="groups_no_descriptor">Ce groupe n\'a pas de description ou de règles. Parlez au propriétaire pour en ajouter une</string>
@@ -300,7 +300,7 @@
<string name="quick_action_unfollow">अनुचरण ना करें</string>
<string name="quick_action_follow">अनुचरण करें</string>
<string name="quick_action_request_deletion_gallery_title">चित्रालय से मिटाएँ</string>
<string name="quick_action_request_deletion_gallery_alert_body">इस अभिलेख को चित्रालय से हटाएँ। तत्पश्चात कभी भी आप इसे पुनः जोड सकते हैं</string>
<string name="quick_action_request_deletion_gallery_alert_body_v2">इस अभिलेख को आपके चित्रालय से हटाएँ।</string>
<string name="quick_action_request_deletion_alert_title">हटाने की याचना</string>
<string name="quick_action_request_deletion_alert_body">अमेथिस्ट अनुरोध करेगा कि आपका टीका मिटा दिया जाए उन पुनःप्रसारकों से जिनके साथ आप अब जुडे हुए हैं। कोई आश्वासन नहीं कि आपका टीका सर्वदा के लिए मिटा दिया जाएगा उन पुनःप्रसारकों से, अथवा अन्य पुनःप्रसारकों में से जहाँ यह रखा गया हो।</string>
<string name="quick_action_block_dialog_btn">बाधित करें</string>
@@ -561,10 +561,10 @@
<string name="relay_setup">पुनःप्रसारक</string>
<string name="discover_follows">अनुचरण पोटलियाँ</string>
<string name="discover_reads">पठितव्य</string>
<string name="discover_content">लेख आविष्करण</string>
<string name="discover_content_v2">सूचनावली विधियाँ</string>
<string name="discover_marketplace">पण्यक्षेत्र</string>
<string name="discover_live">तत्क्षणप्रसार</string>
<string name="discover_community">समुदाय</string>
<string name="discover_live_v2">तत्क्षणप्रसार</string>
<string name="discover_community_v2">समुदाय</string>
<string name="discover_chat">चर्चाएँ</string>
<string name="community_approved_posts">अनुमति प्राप्त पत्र</string>
<string name="groups_no_descriptor">इस झुण्ड का कोई विवरण नहीं नियम नहीं। इसके अधिपति से बात करें इनहें जोडने के लिए</string>
@@ -616,6 +616,8 @@
<string name="geohash_explainer">आपका भूगोलिक स्थान विभेदक जोडता है पत्र में। जनता जान जाएगी कि आप वर्तमान स्थान से ५ कि॰मे॰ (३ मी॰) की दूरी के अन्दर हैं</string>
<string name="geohash_exclusive">स्थल विशेष पत्र</string>
<string name="geohash_exclusive_explainer">स्थल के अनुचर ही देखेंगे। आपके सामान्य अनुचर नहीं देखेंगे।</string>
<string name="hashtag_exclusive">विषयसूचक विशेष पत्र</string>
<string name="hashtag_exclusive_explainer">केवल विषयसूचक के अनुचर इसे देखेंगे। आपके सामान्य अनुचर नहीं देखेंगे।</string>
<string name="loading_location">स्थान प्राप्त किया जा रहा है</string>
<string name="lack_location_permissions">स्थान प्राप्त करने की अनुमति नहीं</string>
<string name="add_sensitive_content_explainer">आपके विषयवस्तु दिखाने से पूर्व संवेदनशील विषयवस्तु चेतावनी जोडता है। यह आदर्श है किसी कार्यालय अनुचित विषयवस्तु के लिए अथवा जो कुछ लोगों के लिए आपत्तिजनक अथवा व्याकुल करनेवाला लग सकता है</string>
@@ -818,6 +820,7 @@
<string name="new_short">नये छोटे : चित्र अथवा चलचित्र</string>
<string name="new_community_note">नया सामुदायिक टीका</string>
<string name="new_product">नया उत्पाद</string>
<string name="new_exclusive_geo_note">नया स्थान विशेष पत्र</string>
<string name="open_all_reactions_to_this_post">इस पत्र प्रकाशन के सभी प्रतिक्रियाओं को खोलें</string>
<string name="close_all_reactions_to_this_post">इस पत्र प्रकाशन के सभी प्रतिक्रियाओं को अवरोधित करें</string>
<string name="reply_description">उत्तर</string>
@@ -970,4 +973,5 @@
<string name="group_relay">चर्चा पुनःप्रसारक</string>
<string name="group_relay_explanation">वह पुनःप्रसारक जिससे इस चर्चा के सभी उपयोगकर्ता जुडते हैं</string>
<string name="share_image">चित्र बाँटें…</string>
<string name="search_by_hashtag">विषयसूचक खोज : #%1$s</string>
</resources>
@@ -300,7 +300,7 @@
<string name="quick_action_unfollow">Követés megszüntetése</string>
<string name="quick_action_follow">Követés</string>
<string name="quick_action_request_deletion_gallery_title">Törlés a galériából</string>
<string name="quick_action_request_deletion_gallery_alert_body">Távolítsa el ezt a médiát a galériából, később újra hozzáadhatja</string>
<string name="quick_action_request_deletion_gallery_alert_body_v2">Távolítsa el ezt a médiát a galériából.</string>
<string name="quick_action_request_deletion_alert_title">Törlés kérése</string>
<string name="quick_action_request_deletion_alert_body">Az Amethyst kérni fogja, hogy a bejegyzését töröljék azokról az átjátszókról, amelyekhez jelenleg csatlakozik. Nem garantálható, hogy a bejegyzése véglegesen törlődik ezekről az átjátszókról, vagy más átjátszókról, ahol esetleg tárolva van.</string>
<string name="quick_action_block_dialog_btn">Letiltás</string>
@@ -496,9 +496,18 @@
<string name="content_warning_hide_all_sensitive_content">Az érzékeny tartalmat mindig rejtse el</string>
<string name="content_warning_show_all_sensitive_content">Az érzékeny tartalmat mindig jelenítse meg</string>
<string name="content_warning_see_warnings">A tartalomra vonatkozó figyelmeztetéseket mindig jelenítse meg</string>
<string name="content_warning_hide_all_sensitive_content_option">Elrejtés</string>
<string name="content_warning_show_all_sensitive_content_option">Megjelenítés</string>
<string name="content_warning_see_warnings_option">Figyelmeztetés</string>
<string name="recommended_apps">Ajánlott alkalmazások: </string>
<string name="filter_spam_from_strangers">Az idegenektől érkező kéretlen tartalmak szűrése</string>
<string name="warn_when_posts_have_reports_from_your_follows">Figyelmeztessen amikor a bejegyzések jelentve vannak azok által akiket követek</string>
<string name="filter_spam_from_strangers_title">Kéretlen tartalomszűrő</string>
<string name="filter_spam_from_strangers_explainer">Elrejti az ismeretlen felhasználók hozzászólásait, amelyek pontosan ugyanazok voltak 5 vagy több alkalommal</string>
<string name="warn_when_posts_have_reports_from_your_follows_title">Figyelmeztetés a jelentésekre</string>
<string name="warn_when_posts_have_reports_from_your_follows_explainer">Figyelmeztető üzenet jelenik meg, ha a bejegyzéseket az Ön által követett felhasználók 5 vagy annál többször jelentették</string>
<string name="show_sensitive_content_title">Érzékeny tartalom megjelenítése</string>
<string name="show_sensitive_content_explainer">Figyelmeztető üzenet jelenik meg, ha a bejegyzés szerzője érzékenynek jelölte a hozzászólást</string>
<string name="new_reaction_symbol">Új reakció-szimbólum</string>
<string name="no_reaction_type_setup_long_press_to_change">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</string>
<string name="zapraiser">Zap-gyűjtés</string>
@@ -552,10 +561,10 @@
<string name="relay_setup">Átjátszók</string>
<string name="discover_follows">Követett csomagok</string>
<string name="discover_reads">Olvasmányok</string>
<string name="discover_content">Bejegyzések felfedezése</string>
<string name="discover_content_v2">Hírforrás-algoritmus</string>
<string name="discover_marketplace">Piac</string>
<string name="discover_live">Élő</string>
<string name="discover_community">Közösség</string>
<string name="discover_live_v2">Élő közvetítések</string>
<string name="discover_community_v2">Közösségek</string>
<string name="discover_chat">Csevegések</string>
<string name="community_approved_posts">Elfogadott bejegyzések</string>
<string name="groups_no_descriptor">Ennek a csoportnak nincs leírása vagy szabályai. Kérje meg a tulajdonosát, hogy adjon hozzá egyet</string>
@@ -607,6 +616,8 @@
<string name="geohash_explainer">Hozzáadja a helyének geohash-sét a bejegyzéséhez. A nyilvánosság tudni fogja, hogy a jelenlegi helytől 5 km-en (3 mi) belül tertózkodik</string>
<string name="geohash_exclusive">Helyszín-alapú bejegyzés</string>
<string name="geohash_exclusive_explainer">Csak a helyszín követői láthatják. Az általános követők nem fogják látni.</string>
<string name="hashtag_exclusive">Hashtag-exkluzív bejegyzés</string>
<string name="hashtag_exclusive_explainer">Csak a hashtag követői fogják látni, de az Ön általános követői viszont nem.</string>
<string name="loading_location">Helyszín betöltése…</string>
<string name="lack_location_permissions">A helyszín-meghatározás nincs engedélyezve</string>
<string name="add_sensitive_content_explainer">Hozzáadja az érzékeny tartalomra vonatkozó figyelmeztetést a tartalom megjelenítése előtt. Ez ideális bármilyen NSFW tartalom vagy olyan tartalom esetén, amelyet egyesek sértőnek vagy zavarónak találhatnak</string>
@@ -809,6 +820,7 @@
<string name="new_short">Új rövidek: képek vagy videók</string>
<string name="new_community_note">Új közösségi bejegyzés</string>
<string name="new_product">Új termék</string>
<string name="new_exclusive_geo_note">Új hely-exkluzív bejegyzés </string>
<string name="open_all_reactions_to_this_post">A bejegyzésre adott összes reakció kibontása</string>
<string name="close_all_reactions_to_this_post">A bejegyzésre adott összes reakció összecsukása</string>
<string name="reply_description">Válasz</string>
@@ -960,4 +972,6 @@
<string name="private_message">Privát üzenet</string>
<string name="group_relay">Csevegési átjátszó</string>
<string name="group_relay_explanation">Az átjátszó, amelyhez a csevegés összes felhasználója csatlakozik</string>
<string name="share_image">Kép megosztása…</string>
<string name="search_by_hashtag">Hashtag keresése: #%1$s</string>
</resources>
@@ -288,7 +288,6 @@
<string name="quick_action_unfollow">Követés megszüntetése</string>
<string name="quick_action_follow">Követés</string>
<string name="quick_action_request_deletion_gallery_title">Törlés a galériából</string>
<string name="quick_action_request_deletion_gallery_alert_body">Távolítsa el ezt a médiát a galériából, később újra hozzáadhatja</string>
<string name="quick_action_request_deletion_alert_title">Törlés kérése</string>
<string name="quick_action_request_deletion_alert_body">Az Amethyst kérni fogja, hogy a bejegyzését töröljék azokról az átjátszókról, amelyekhez jelenleg csatlakozik. Nem garantálható, hogy a bejegyzése véglegesen törlődik ezekről az átjátszókról, vagy más átjátszókról, ahol esetleg tárolva van.</string>
<string name="quick_action_block_dialog_btn">Letiltás</string>
@@ -537,10 +536,7 @@
<string name="are_you_sure_you_want_to_log_out">A kijelentkezéssel törlődik az összes helyben tárolt adat. Győződjön meg arról, hogy a privát kulcsokról biztonsági mentést készített, hogy elkerülje fiókja elvesztését. Szeretné folytatni?</string>
<string name="followed_tags">Követett címke</string>
<string name="relay_setup">Átjátszók</string>
<string name="discover_content">Bejegyzések felfedezése</string>
<string name="discover_marketplace">Piac</string>
<string name="discover_live">Élő</string>
<string name="discover_community">Közösség</string>
<string name="discover_chat">Csevegések</string>
<string name="community_approved_posts">Elfogadott bejegyzések</string>
<string name="groups_no_descriptor">Ennek a csoportnak nincs leírása vagy szabályai. Kérje meg a tulajdonosát, hogy adjon hozzá egyet</string>
@@ -377,8 +377,6 @@
<string name="are_you_sure_you_want_to_log_out">Keluar akan menghapus semua informasi yang disimpan secara lokal.
Pastikan kunci pribadi Anda telah simpan untuk menghindari kehilangan akun Anda. Apakah Anda ingin melanjutkan?</string>
<string name="followed_tags">Tags yang Diikuti</string>
<string name="discover_live">Langsung</string>
<string name="discover_community">Komunitas</string>
<string name="discover_chat">Obrolan</string>
<string name="community_approved_posts">Post yang disetujui</string>
<string name="groups_no_descriptor">Grup ini tidak memiliki deskripsi atau peraturan.
@@ -375,8 +375,6 @@
<string name="are_you_sure_you_want_to_log_out">Keluar akan menghapus semua informasi lokal Anda. Pastikan kunci pribadi Anda dicadangkan untuk menghindari kehilangan akun Anda. Apakah Anda ingin melanjutkan?</string>
<string name="followed_tags">Tags yg diikuti</string>
<string name="relay_setup">Relai</string>
<string name="discover_live">Siaran Langsung</string>
<string name="discover_community">Komunitas</string>
<string name="discover_chat">Percakapan</string>
<string name="community_approved_posts">Kiriman yg disetujui</string>
<string name="groups_no_descriptor">Grup ini tidak memiliki deskripsi atau aturan. Bicaralah dengan pemiliknya untuk menambahkannya</string>
@@ -361,8 +361,6 @@
<string name="are_you_sure_you_want_to_log_out">La disconnessione elimina tutte le tue informazioni locali. Assicurati di avere le tue chiavi private salvate per evitare di perdere il tuo account. Vuoi continuare?</string>
<string name="followed_tags">Tag Seguiti</string>
<string name="relay_setup">Relè</string>
<string name="discover_live">In diretta</string>
<string name="discover_community">Comunità</string>
<string name="discover_chat">Chat</string>
<string name="community_approved_posts">Post approvati</string>
<string name="groups_no_descriptor">Questo gruppo non ha una descrizione o regole. Parla con il proprietario per aggiungerne una</string>
@@ -370,8 +370,6 @@
<string name="are_you_sure_you_want_to_log_out">ログアウトするとローカル情報はすべて削除されます。アカウントを紛失しないよう、秘密鍵のバックアップがあることを確認してください。続行しますか?</string>
<string name="followed_tags">フォロー済みタグ</string>
<string name="relay_setup">リレー</string>
<string name="discover_live">ライブ</string>
<string name="discover_community">コミュニティ</string>
<string name="discover_chat">チャット</string>
<string name="community_approved_posts">承認済みの投稿</string>
<string name="groups_no_descriptor">このグループには説明またはルールがありません。追加するには管理者に相談してください</string>
@@ -370,8 +370,6 @@
<string name="are_you_sure_you_want_to_log_out">ログアウトするとローカル情報はすべて削除されます。アカウントを紛失しないよう、秘密鍵のバックアップがあることを確認してください。続行しますか?</string>
<string name="followed_tags">フォロー済みタグ</string>
<string name="relay_setup">リレー</string>
<string name="discover_live">ライブ</string>
<string name="discover_community">コミュニティ</string>
<string name="discover_chat">チャット</string>
<string name="community_approved_posts">承認済みの投稿</string>
<string name="groups_no_descriptor">このグループには説明またはルールがありません。追加するには管理者に相談してください</string>
@@ -0,0 +1,118 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="profile_image">Profila attēls</string>
<string name="your_profile_image">Jūsu profila attēls</string>
<string name="post_not_found_short">👀</string>
<string name="channel_image">Kanāla attēls</string>
<string name="group_picture">Grupas attēls</string>
<string name="unknown">Nezināms</string>
<string name="copy_text">Kopēt tekstu</string>
<string name="block_report">Bloķēt / Sūdzēties</string>
<string name="block_hide_user"><![CDATA[Bloķēt un paslēpt lietotāju]]></string>
<string name="view_count">Skatījumi</string>
<string name="edited">rediģēts</string>
<string name="add">Pievienot</string>
<string name="and">" un "</string>
<string name="following">" Seko"</string>
<string name="followers">" Sekotāji"</string>
<string name="number_following">"%1$s seko"</string>
<string name="number_followers">"%1$s sekotāji"</string>
<string name="profile">Profils</string>
<string name="pay">Maksāt</string>
<string name="secret_visible_text_placeholder">😎</string>
<string name="new_channel">Jauns kanāls</string>
<string name="channel_name">Kanāla nosaukums</string>
<string name="picture_url">Attēla URL</string>
<string name="description">Apraksts</string>
<string name="save">Saglabāt</string>
<string name="create">Izveidot</string>
<string name="cancel">Atcelt</string>
<string name="bytes">Baiti</string>
<string name="errors">Kļūdas</string>
<string name="about_me">Par mani</string>
<string name="ln_address">LN adrese</string>
<string name="upload_image">Augšupielādēt attēlu</string>
<string name="uploading">Augšupielādē…</string>
<string name="blocked_users">Bloķētie lietotāji</string>
<string name="notes">Piezīmes</string>
<string name="replies">Atbildes</string>
<string name="gallery">Galerija</string>
<string name="follow">Sekot</string>
<string name="unblock">Atbloķēt</string>
<string name="unblock_user">Atbloķēt lietotāju</string>
<string name="app_logo">Lietotnes logo</string>
<string name="show_password">Rādīt paroli</string>
<string name="hide_password">Slēpt paroli</string>
<string name="create_account">Izveidot kontu</string>
<string name="create_a_new_account">Izveidot jaunu kontu</string>
<string name="generate_a_new_key">Ģenerēt jaunu atslēgu</string>
<string name="refresh">Atsvaidzināt</string>
<string name="description_to">aprakstu uz</string>
<string name="and_picture_to">un attēlu uz</string>
<string name="channel_created">Kanāls izveidots</string>
<string name="remove">Noņemt</string>
<string name="translations_auto">Automātiski</string>
<string name="translations_to">uz</string>
<string name="translations_always_translate_to_lang">Vienmēr tulkot %1$s</string>
<string name="nip_05">Nostr adrese</string>
<string name="never">nekad</string>
<string name="now">tagad</string>
<string name="biometric_error">Kļūda</string>
<string name="account_switch_add_account_dialog_title">Pievienot jaunu kontu</string>
<string name="drawer_accounts">Konti</string>
<string name="account_switch_select_account">Atlasīt kontu</string>
<string name="account_switch_add_account_btn">Pievienot jaunu kontu</string>
<string name="quick_action_copy_text">Kopēt tekstu</string>
<string name="quick_action_delete">Dzēst</string>
<string name="quick_action_follow">Sekot</string>
<string name="quick_action_block_dialog_btn">@string/block_only</string>
<string name="quick_action_delete_dialog_btn">Dzēst</string>
<string name="quick_action_block">@string/block_only</string>
<string name="quick_action_delete_button">Dzēst</string>
<string name="report_dialog_block_hide_user_btn"><![CDATA[@string/block_hide_user]]></string>
<string name="report_dialog_select_reason_label">Iemesls</string>
<string name="report_dialog_title">Bloķēt un sūdzēties</string>
<string name="block_only">Bloķēt</string>
<string name="bookmarks">Grāmatzīmes</string>
<string name="poll_closing_time">Aizvērt pēc</string>
<string name="poll_closing_time_days">dienām</string>
<string name="content_description_add_image">Pievienot attēlu</string>
<string name="content_description_add_video">Pievienot video</string>
<string name="content_description_add_document">Pievienot dokumentu</string>
<string name="uploading_state_uploading">Augšupielādē</string>
<string name="uploading_state_downloading">Lejupielādē</string>
<string name="uploading_state_error">Kļūda</string>
<string name="connect_via_tor2">Tor iestatījumi</string>
<string name="yes"></string>
<string name="no"></string>
<string name="connect_through_your_orbot_setup_short">Noklusējuma ports ir 9050</string>
<string name="invalid_port_number">Nederīgs porta numurs</string>
<string name="version">Versija</string>
<string name="countries">Valstis</string>
<string name="languages">Valodas</string>
<string name="tags">Birkas</string>
<string name="language">Valoda</string>
<string name="theme">Motīvs</string>
<string name="messages_cant_upload_title">Nevar augšupielādēt</string>
<string name="rules">Noteikumi</string>
<string name="error_dialog_button_ok">Labi</string>
<string name="active_for_search">Meklēt</string>
<string name="automatically_show_profile_picture">Profila attēls</string>
<string name="classifieds_category">Kategorija</string>
<string name="classifieds_category_clothing">Apģērbs</string>
<string name="classifieds_category_electronics">Elektronika</string>
<string name="classifieds_category_books">Grāmatas</string>
<string name="classifieds_category_pets">Mājdzīvnieki</string>
<string name="classifieds_category_sports">Sports</string>
<string name="classifieds_category_art">Māksla</string>
<string name="classifieds_category_food">Ēdiens</string>
<string name="failed_to_upload_media">Augšupielādes kļūda: %1$s</string>
<string name="failed_to_upload_with_message">Neizdevās augšupielādēt: %1$s</string>
<string name="route_search">Meklēt</string>
<string name="route_notifications">Paziņojumi</string>
<string name="thank_you">Paldies!</string>
<string name="accessibility_download_for_offline">@string/torrent_download</string>
<string name="torrent_file">Torrenta datne</string>
<string name="torrent_download">Lejupielādēt</string>
<string name="torrent_no_apps">Nav uzstādītas torrent lietotnes, kas atvērtu un lejupielādētu datni.</string>
</resources>
@@ -290,7 +290,6 @@
<string name="quick_action_unfollow">Ontvolgen</string>
<string name="quick_action_follow">Volgen</string>
<string name="quick_action_request_deletion_gallery_title">Verwijderen uit galerij</string>
<string name="quick_action_request_deletion_gallery_alert_body">Verwijder deze media uit je galerij, je kunt het terug zien in je feed.</string>
<string name="quick_action_request_deletion_alert_title">Verzoek om te verwijderen</string>
<string name="quick_action_request_deletion_alert_body">Amethyst zal vragen om uw note te verwijderen van de relays waarmee u momenteel verbonden bent. Er is geen garantie dat uw note permanent wordt verwijderd van deze relays, of van andere relays waar het kan worden opgeslagen.</string>
<string name="quick_action_block_dialog_btn">Blokkeren</string>
@@ -540,10 +539,7 @@
<string name="are_you_sure_you_want_to_log_out">Uitloggen verwijdert al je lokale informatie. Zorg ervoor dat je een back-up hebt van je geheime sleutels om te voorkomen dat je je account kwijtraakt. Wilt u doorgaan?</string>
<string name="followed_tags">Gevolgde tags</string>
<string name="relay_setup">Relays</string>
<string name="discover_content">Note ontdekking</string>
<string name="discover_marketplace">Marktplaats</string>
<string name="discover_live">Live</string>
<string name="discover_community">Community</string>
<string name="discover_chat">Chats</string>
<string name="community_approved_posts">Goedgekeurde berichten</string>
<string name="groups_no_descriptor">Deze groep heeft geen beschrijving of regels. Praat met de eigenaar om er een toe te voegen</string>
@@ -281,7 +281,6 @@
<string name="quick_action_unfollow">Ontvolgen</string>
<string name="quick_action_follow">Volgen</string>
<string name="quick_action_request_deletion_gallery_title">Verwijderen uit galerij</string>
<string name="quick_action_request_deletion_gallery_alert_body">Verwijder deze media uit je galerij, je kunt het terug zien in je feed.</string>
<string name="quick_action_request_deletion_alert_title">Verzoek om te verwijderen</string>
<string name="quick_action_request_deletion_alert_body">Amethyst zal vragen om uw note te verwijderen van de relays waarmee u momenteel verbonden bent. Er is geen garantie dat uw note permanent wordt verwijderd van deze relays, of van andere relays waar het kan worden opgeslagen.</string>
<string name="quick_action_block_dialog_btn">Blokkeren</string>
@@ -530,10 +529,7 @@
<string name="are_you_sure_you_want_to_log_out">Uitloggen verwijdert al je lokale informatie. Zorg ervoor dat je een back-up hebt van je geheime sleutels om te voorkomen dat je je account kwijtraakt. Wilt u doorgaan?</string>
<string name="followed_tags">Gevolgde tags</string>
<string name="relay_setup">Relays</string>
<string name="discover_content">Note ontdekking</string>
<string name="discover_marketplace">Marktplaats</string>
<string name="discover_live">Live</string>
<string name="discover_community">Community</string>
<string name="discover_chat">Chats</string>
<string name="community_approved_posts">Goedgekeurde berichten</string>
<string name="groups_no_descriptor">Deze groep heeft geen beschrijving of regels. Praat met de eigenaar om er een toe te voegen</string>
@@ -297,7 +297,7 @@
<string name="quick_action_unfollow">Porzuć</string>
<string name="quick_action_follow">Śledź</string>
<string name="quick_action_request_deletion_gallery_title">Usuń z Galerii</string>
<string name="quick_action_request_deletion_gallery_alert_body">Usuń te media z galerii, możesz dodać je ponownie później</string>
<string name="quick_action_request_deletion_gallery_alert_body_v2">Usuń ten plik z Galerii.</string>
<string name="quick_action_request_deletion_alert_title">Poproś o usunięcie</string>
<string name="quick_action_request_deletion_alert_body">Amethyst poprosi o usunięcie Twojego wpisu z aktualnie podłączonych transmiterów. Nie ma gwarancji, że Twój wpis zostanie trwale usunięty z tych lub z innych transmiterów, gdzie może być przechowywany.</string>
<string name="quick_action_block_dialog_btn">Zablokuj</string>
@@ -556,10 +556,12 @@
<string name="are_you_sure_you_want_to_log_out">Wylogowanie usuwa wszystkie informacje lokalne. Upewnij się, że masz kopię zapasową kluczy prywatnych, aby uniknąć utraty konta. Czy chcesz kontynuować?</string>
<string name="followed_tags">Obserwowane tagi</string>
<string name="relay_setup">Transmitery</string>
<string name="discover_content">Kategorie Wpisów</string>
<string name="discover_follows">Obserwowani</string>
<string name="discover_reads">Wyświetlenia</string>
<string name="discover_content_v2">Algorytmy kanału</string>
<string name="discover_marketplace">Market</string>
<string name="discover_live">Na żywo</string>
<string name="discover_community">Społeczności</string>
<string name="discover_live_v2">Transmisja na żywo</string>
<string name="discover_community_v2">Społeczności</string>
<string name="discover_chat">Czaty</string>
<string name="community_approved_posts">Zatwierdzone posty</string>
<string name="groups_no_descriptor">Ta grupa nie ma opisu ani reguł. Porozmawiaj z właścicielem, aby je dodać</string>
@@ -611,6 +613,8 @@
<string name="geohash_explainer">Dodaje Geohash twojej lokalizacji do wpisu. Użytkownicy będą wiedzieli, że jesteś mniej niż 5 km od bieżącej lokalizacji</string>
<string name="geohash_exclusive">Post ekskluzywny dla lokalizacji</string>
<string name="geohash_exclusive_explainer">Tylko obserwatorzy z twojej lokalizacji zobaczą to. Twoi ogólni obserwatorzy tego nie zobaczą.</string>
<string name="hashtag_exclusive">Wpis hashtagowy</string>
<string name="hashtag_exclusive_explainer">Tylko obserwujący ten hashtag zobaczą go. Twoi ogólni obserwujący go nie zobaczą.</string>
<string name="loading_location">Pobieranie lokalizacji</string>
<string name="lack_location_permissions">Brak dostępu do lokalizacji</string>
<string name="add_sensitive_content_explainer">Dodaje ostrzeżenie o wrażliwych treściach przed wyświetleniem treści. Jest to idealne dla dowolnych treści NSFW lub treści, które niektóre osoby mogą uznać za obraźliwe lub przeszkadzające</string>
@@ -813,6 +817,7 @@
<string name="new_short">Nowe Króciaki: zdjęcia lub filmiki</string>
<string name="new_community_note">Nowy wpis w społeczności</string>
<string name="new_product">Nowy produkt</string>
<string name="new_exclusive_geo_note">Nowy GEO-ekskluzywny Wpis</string>
<string name="open_all_reactions_to_this_post">Otwórz wszystkie odzewy na ten post</string>
<string name="close_all_reactions_to_this_post">Zamknij wszystkie odzewy na ten post</string>
<string name="reply_description">Odpowiedz</string>
@@ -962,6 +967,8 @@
<string name="select_list_to_filter">Wybierz listę, aby filtrować kanał</string>
<string name="temporary_account">Wyloguj się przy blokowaniu urządzenia</string>
<string name="private_message">Wiadomość prywatna</string>
<string name="group_relay">Transmiter Czatu</string>
<string name="group_relay_explanation">Transmiter, z którym łączą się wszyscy użytkownicy tego czatu</string>
<string name="share_image">Udostępnij zdjęcie…</string>
<string name="search_by_hashtag">Szukaj tagu: #%1$s</string>
</resources>
@@ -298,7 +298,7 @@
<string name="quick_action_unfollow">Remover seguidor</string>
<string name="quick_action_follow">Seguir</string>
<string name="quick_action_request_deletion_gallery_title">Excluir da Galeria</string>
<string name="quick_action_request_deletion_gallery_alert_body">Remover essa mídia de sua galeria, você pode adicionar mais tarde</string>
<string name="quick_action_request_deletion_gallery_alert_body_v2">Remover essa mídia de sua galeria.</string>
<string name="quick_action_request_deletion_alert_title">Pedir para excluir</string>
<string name="quick_action_request_deletion_alert_body">Amethyst solicitará que sua nota seja excluída dos relays aos quais você está conectado no momento. Não há garantia de que sua nota será excluída permanentemente desses relays ou de outros relays onde possa estar armazenada.</string>
<string name="quick_action_block_dialog_btn">Bloquear</string>
@@ -559,10 +559,10 @@
<string name="relay_setup">Relés</string>
<string name="discover_follows">Pacotes Seguir</string>
<string name="discover_reads">Leituras</string>
<string name="discover_content">Descoberta de Notas</string>
<string name="discover_content_v2">Algoritmos de feed</string>
<string name="discover_marketplace">Mercado</string>
<string name="discover_live">Ao vivo</string>
<string name="discover_community">Comunidade</string>
<string name="discover_live_v2">Transmissões Ao Vivo</string>
<string name="discover_community_v2">Comunidades</string>
<string name="discover_chat">Conversas</string>
<string name="community_approved_posts">Postagens Aprovadas</string>
<string name="groups_no_descriptor">Este grupo não tem uma descrição ou regras. Fale com o proprietário para adicionar</string>
@@ -614,6 +614,8 @@
<string name="geohash_explainer">Adicione um geohash da sua localização à postagem. O público saberá que você está a 5 km (3 milhas) do local atual</string>
<string name="geohash_exclusive">Postagem exclusiva de localização</string>
<string name="geohash_exclusive_explainer">Somente seguidores da localização verão isso. Seus seguidores gerais não verão isso.</string>
<string name="hashtag_exclusive">Postagem exclusiva de Hashtag</string>
<string name="hashtag_exclusive_explainer">Somente seguidores da hashtag verão isso. Seus seguidores gerais não verão isso.</string>
<string name="loading_location">Carregando localização</string>
<string name="lack_location_permissions">Sem permissões para localização</string>
<string name="add_sensitive_content_explainer">Adiciona aviso de conteúdo sensível antes de mostrar seu conteúdo. Isso é ideal para qualquer conteúdo NSFW ou conteúdo que algumas pessoas possam considerar ofensivo ou perturbador</string>
@@ -816,6 +818,7 @@
<string name="new_short">Novos Vídeos Curtos: imagens ou vídeos</string>
<string name="new_community_note">Nova Nota da Comunidade</string>
<string name="new_product">Produto Novo</string>
<string name="new_exclusive_geo_note">Nova Postagem Geo-Exclusiva</string>
<string name="open_all_reactions_to_this_post">Abrir todas as reações a esta postagem</string>
<string name="close_all_reactions_to_this_post">Fechar todas as reações a esta postagem</string>
<string name="reply_description">Responder</string>
@@ -968,4 +971,5 @@
<string name="group_relay">Relé de chat</string>
<string name="group_relay_explanation">O relé a qual todos os usuários deste chat se conectam</string>
<string name="share_image">Compartilhar imagem…</string>
<string name="search_by_hashtag">Pesquisar hashtag: #%1$s</string>
</resources>
@@ -353,8 +353,6 @@
<string name="live_stream_is_offline">Трансляция выключена</string>
<string name="live_stream_has_ended">Трансляция закончена</string>
<string name="discover_marketplace">Рынок</string>
<string name="discover_live">Стримы</string>
<string name="discover_community">Сообщества</string>
<string name="discover_chat">Чаты</string>
<string name="groups_no_descriptor">У этой группы нет описания или правил. Поговорите с владельцем, чтобы добавить их</string>
<string name="community_no_descriptor">У этого сообщества нет описания. Поговорите с владельцем, чтобы добавить</string>
@@ -353,8 +353,6 @@
<string name="live_stream_is_offline">Трансляция выключена</string>
<string name="live_stream_has_ended">Трансляция закончена</string>
<string name="discover_marketplace">Рынок</string>
<string name="discover_live">Стримы</string>
<string name="discover_community">Сообщества</string>
<string name="discover_chat">Чаты</string>
<string name="groups_no_descriptor">У этой группы нет описания или правил. Поговорите с владельцем, чтобы добавить их</string>
<string name="community_no_descriptor">У этого сообщества нет описания. Поговорите с владельцем, чтобы добавить</string>
@@ -308,7 +308,6 @@ Prijavi se s privatnim ključem, za prikaz skritih besed in stavkov</string>
<string name="quick_action_unfollow">Prenehaj slediti</string>
<string name="quick_action_follow">Sledi</string>
<string name="quick_action_request_deletion_gallery_title">Izbris iz galerije</string>
<string name="quick_action_request_deletion_gallery_alert_body">Odstrani ta medij iz tvoje galerije, lahko ga dodaš nazaj kasneje.</string>
<string name="quick_action_request_deletion_alert_title">Prošnja za izbris</string>
<string name="quick_action_request_deletion_alert_body">Amethyst bo poslal prošnjo za izbris zapiska vsem relejem na katere ste povezani. Nobenega jamstva ni, da bo vaš zapisek trajno izbrisan iz teh relejev ali iz drugih relejev, kjer je morda shranjen.</string>
<string name="quick_action_block_dialog_btn">Blokiraj</string>
@@ -569,10 +568,7 @@ Prijavi se s privatnim ključem, za prikaz skritih besed in stavkov</string>
<string name="relay_setup">Releji</string>
<string name="discover_follows">Sledi tropu</string>
<string name="discover_reads">Branje</string>
<string name="discover_content">Odkrivanje zapiskov</string>
<string name="discover_marketplace">Tržnica</string>
<string name="discover_live">V živo</string>
<string name="discover_community">Skupnosti</string>
<string name="discover_chat">Pogovori</string>
<string name="community_approved_posts">Odobrene objave</string>
<string name="groups_no_descriptor">Ta skupina nima opisa ali pravil. Obrnite se na lastnika, da jih doda</string>
@@ -298,7 +298,7 @@
<string name="quick_action_unfollow">Sluta följa</string>
<string name="quick_action_follow">Följ</string>
<string name="quick_action_request_deletion_gallery_title">Ta bort från galleriet</string>
<string name="quick_action_request_deletion_gallery_alert_body">Ta bort detta media från ditt galleri, kan du lägga till det senare</string>
<string name="quick_action_request_deletion_gallery_alert_body_v2">Ta bort detta media från ditt galleri.</string>
<string name="quick_action_request_deletion_alert_title">Begär radering</string>
<string name="quick_action_request_deletion_alert_body">Amethyst kommer att begära att din anteckning tas bort från de reläer du för närvarande är ansluten till. Det finns ingen garanti för att din anteckning kommer att raderas permanent från dessa reläer eller från andra reläer där den kan lagras.</string>
<string name="quick_action_block_dialog_btn">Blockera</string>
@@ -558,10 +558,10 @@
<string name="relay_setup">Reläer</string>
<string name="discover_follows">Följpaket</string>
<string name="discover_reads">Läsningar</string>
<string name="discover_content">Upptäckt av anteckningar</string>
<string name="discover_content_v2">Feed algoritmer</string>
<string name="discover_marketplace">Marknadsplats</string>
<string name="discover_live">Live</string>
<string name="discover_community">Gemenskap</string>
<string name="discover_live_v2">Live-streams</string>
<string name="discover_community_v2">Grupper</string>
<string name="discover_chat">Chattar</string>
<string name="community_approved_posts">Godkända Inlägg</string>
<string name="groups_no_descriptor">Denna grupp har ingen beskrivning eller regler. Prata med ägaren för att lägga till en.</string>
@@ -613,6 +613,8 @@
<string name="geohash_explainer">Lägger till en Geohash av din plats i inlägget. Allmänheten kommer att veta att du befinner dig inom 5 km från nuvarande plats</string>
<string name="geohash_exclusive">Plats-exklusivt inlägg</string>
<string name="geohash_exclusive_explainer">Endast anhängare av platsen kommer att se den. Dina allmänna anhängare kommer inte att se den.</string>
<string name="hashtag_exclusive">Hashtag-exklusivt inlägg</string>
<string name="hashtag_exclusive_explainer">Endast anhängare av hashtaggen kommer att se den. Dina generella följare kommer inte att se den.</string>
<string name="loading_location">Laddar position</string>
<string name="lack_location_permissions">Inga platsbehörigheter</string>
<string name="add_sensitive_content_explainer">Lägger till en varning för känsligt innehåll innan ditt innehåll visas. Detta är idealiskt för NSFW-innehåll (inte säkert för arbete) eller innehåll som vissa personer kan uppleva som stötande eller störande</string>
@@ -815,6 +817,7 @@
<string name="new_short">Nya kort: bilder eller videor</string>
<string name="new_community_note">Nytt Community-meddelande</string>
<string name="new_product">Ny produkt</string>
<string name="new_exclusive_geo_note">Nytt Geo-Exklusivt inlägg</string>
<string name="open_all_reactions_to_this_post">Öppna alla reaktioner på detta inlägg</string>
<string name="close_all_reactions_to_this_post">Stäng alla reaktioner på detta inlägg</string>
<string name="reply_description">Svara</string>
@@ -967,4 +970,5 @@
<string name="group_relay">Chatt Relä</string>
<string name="group_relay_explanation">Reläet som alla användare av den här chatten ansluter till</string>
<string name="share_image">Dela bild…</string>
<string name="search_by_hashtag">Sök hashtag: #%1$s</string>
</resources>
@@ -371,8 +371,6 @@
<string name="are_you_sure_you_want_to_log_out">Kutoka kunaondoa taarifa zako za eneo la kuhifadhia data. Hakikisha una nakala za funguo zako binafsi ili kuepuka kupoteza akaunti yako. Je, unataka kuendelea?</string>
<string name="followed_tags">Mada Zinazofuatwa</string>
<string name="relay_setup">Usanidi wa Relays</string>
<string name="discover_live">Moja kwa Moja</string>
<string name="discover_community">Jumuiya</string>
<string name="discover_chat">Mazungumzo</string>
<string name="community_approved_posts">Machapisho Yaliyoidhinishwa</string>
<string name="groups_no_descriptor">Kikundi hiki hakitumii maelezo au kanuni. Ongea na mmiliki ili aongeze.</string>
@@ -365,8 +365,6 @@
<string name="are_you_sure_you_want_to_log_out">வெளியேறுவதல் உங்கள் அனைத்து விவரங்களையும் நீக்கிவிடும். வெளியேறும் முன் உங்கள் கணக்கைத் தொலையாமல் இருக்க ரகசியசாவியை பத்திரமாக பிரதி செய்து சேமிக்கப்பட்டுள்ளதா என்று சரிபார்க்கவும். வெளியேற வேண்டுமா?</string>
<string name="followed_tags">பின்பற்றப்படும் சிட்டைகள்</string>
<string name="relay_setup">ரிலேகள்</string>
<string name="discover_live">நேரலை</string>
<string name="discover_community">சமூகம்</string>
<string name="discover_chat">அரட்டை</string>
<string name="community_approved_posts">அங்கீகரிக்கப்பட்ட குறிப்பு</string>
<string name="groups_no_descriptor">இந்த அரட்டைக் குழுவின் விளக்கமும் விதிகளும் இன்னும் சேர்க்கபடவில்லை. உரிமையாளரை அணுகி அவற்றை சேர்க்க கோரவும் </string>
@@ -365,8 +365,6 @@
<string name="are_you_sure_you_want_to_log_out">வெளியேறுவதல் உங்கள் அனைத்து விவரங்களையும் நீக்கிவிடும். வெளியேறும் முன் உங்கள் கணக்கைத் தொலையாமல் இருக்க ரகசியசாவியை பத்திரமாக பிரதி செய்து சேமிக்கப்பட்டுள்ளதா என்று சரிபார்க்கவும். வெளியேற வேண்டுமா?</string>
<string name="followed_tags">பின்பற்றப்படும் சிட்டைகள்</string>
<string name="relay_setup">ரிலேகள்</string>
<string name="discover_live">நேரலை</string>
<string name="discover_community">சமூகம்</string>
<string name="discover_chat">அரட்டை</string>
<string name="community_approved_posts">அங்கீகரிக்கப்பட்ட குறிப்பு</string>
<string name="groups_no_descriptor">இந்த அரட்டைக் குழுவின் விளக்கமும் விதிகளும் இன்னும் சேர்க்கபடவில்லை. உரிமையாளரை அணுகி அவற்றை சேர்க்க கோரவும் </string>
@@ -258,7 +258,6 @@
<string name="quick_action_unfollow">เลิกติดตาม</string>
<string name="quick_action_follow">ติดตาม</string>
<string name="quick_action_request_deletion_gallery_title">ลบออกจากคลังภาพ</string>
<string name="quick_action_request_deletion_gallery_alert_body">เอาออกจากคลังภาพ คุณสามารถเพิ่มใหม่ได้ภายหลัง</string>
<string name="quick_action_request_deletion_alert_title">ส่งคำขอให้ลบ</string>
<string name="quick_action_request_deletion_alert_body">Amethyst จะขอให้ลบโน้ตของคุณออกจากรีเลย์ที่คุณเชื่อมต่ออยู่ ไม่มีการรับประกันว่าโน้ตของคุณจะถูกลบออกอย่างถาวรจากรีเลย์เหล่านั้น หรือ จากรีเลย์อื่น ๆ ที่อาจเก็บไว้</string>
<string name="quick_action_block_dialog_btn">บล๊อก</string>
@@ -455,10 +454,7 @@
<string name="are_you_sure_you_want_to_log_out">การออกจากระบบจะลบข้อมูลทั้งหมดของคุณ ตรวจสอบให้แน่ใจว่าได้สํารองข้อมูล private key ไว้เพื่อหลีกเลี่ยงการสูญเสียบัญชีของคุณ คุณต้องการดําเนินการต่อหรือไม่?</string>
<string name="followed_tags">ติดตามแท็ก</string>
<string name="relay_setup">รีเลย์</string>
<string name="discover_content">ค้นหาโน๊ตใหม่ ๆ</string>
<string name="discover_marketplace">ตลาด</string>
<string name="discover_live">ถ่ายทอดสด</string>
<string name="discover_community">ชุมชน</string>
<string name="discover_chat">ช่องสนทนา</string>
<string name="community_approved_posts">อนุมัติโพสต์</string>
<string name="groups_no_descriptor">ชุมชนนี้ไม่มีคำอธิบายหรือกฏ พูดคุยกับเจ้าของเพื่อเพิ่มเติมสิ่งนี้</string>
@@ -258,7 +258,6 @@
<string name="quick_action_unfollow">เลิกติดตาม</string>
<string name="quick_action_follow">ติดตาม</string>
<string name="quick_action_request_deletion_gallery_title">ลบออกจากคลังภาพ</string>
<string name="quick_action_request_deletion_gallery_alert_body">เอาออกจากคลังภาพ คุณสามารถเพิ่มใหม่ได้ภายหลัง</string>
<string name="quick_action_request_deletion_alert_title">ส่งคำขอให้ลบ</string>
<string name="quick_action_request_deletion_alert_body">Amethyst จะขอให้ลบโน้ตของคุณออกจากรีเลย์ที่คุณเชื่อมต่ออยู่ ไม่มีการรับประกันว่าโน้ตของคุณจะถูกลบออกอย่างถาวรจากรีเลย์เหล่านั้น หรือ จากรีเลย์อื่น ๆ ที่อาจเก็บไว้</string>
<string name="quick_action_block_dialog_btn">บล๊อก</string>
@@ -455,10 +454,7 @@
<string name="are_you_sure_you_want_to_log_out">การออกจากระบบจะลบข้อมูลทั้งหมดของคุณ ตรวจสอบให้แน่ใจว่าได้สํารองข้อมูล private key ไว้เพื่อหลีกเลี่ยงการสูญเสียบัญชีของคุณ คุณต้องการดําเนินการต่อหรือไม่?</string>
<string name="followed_tags">ติดตามแท็ก</string>
<string name="relay_setup">รีเลย์</string>
<string name="discover_content">ค้นหาโน๊ตใหม่ ๆ</string>
<string name="discover_marketplace">ตลาด</string>
<string name="discover_live">ถ่ายทอดสด</string>
<string name="discover_community">ชุมชน</string>
<string name="discover_chat">ช่องสนทนา</string>
<string name="community_approved_posts">อนุมัติโพสต์</string>
<string name="groups_no_descriptor">ชุมชนนี้ไม่มีคำอธิบายหรือกฏ พูดคุยกับเจ้าของเพื่อเพิ่มเติมสิ่งนี้</string>
@@ -381,8 +381,6 @@
<string name="are_you_sure_you_want_to_log_out">Вихід з облікового запису видаляє всю вашу локальну інформацію. Переконайтеся, що ваші особисті ключі були збережені, щоб уникнути втрати вашого облікового запису. Ви хочете продовжити?</string>
<string name="followed_tags">Відстежувані теги</string>
<string name="discover_marketplace">Торгівельний майданчик</string>
<string name="discover_live">Наживо</string>
<string name="discover_community">Спільнота</string>
<string name="discover_chat">Чати</string>
<string name="community_approved_posts">Затверджені публікації</string>
<string name="groups_no_descriptor">Ця група не має опису або правил. Зверніться до автора, щоб додати один</string>
@@ -381,8 +381,6 @@
<string name="are_you_sure_you_want_to_log_out">Вихід з облікового запису видаляє всю вашу локальну інформацію. Переконайтеся, що ваші особисті ключі були збережені, щоб уникнути втрати вашого облікового запису. Ви хочете продовжити?</string>
<string name="followed_tags">Відстежувані теги</string>
<string name="discover_marketplace">Торгівельний майданчик</string>
<string name="discover_live">Наживо</string>
<string name="discover_community">Спільнота</string>
<string name="discover_chat">Чати</string>
<string name="community_approved_posts">Затверджені публікації</string>
<string name="groups_no_descriptor">Ця група не має опису або правил. Зверніться до автора, щоб додати один</string>
@@ -300,7 +300,7 @@
<string name="quick_action_unfollow">取关</string>
<string name="quick_action_follow">关注</string>
<string name="quick_action_request_deletion_gallery_title">从相册中删除</string>
<string name="quick_action_request_deletion_gallery_alert_body">相册中删除此媒体,但仍然可供浏览</string>
<string name="quick_action_request_deletion_gallery_alert_body_v2">媒体库中删除此媒体</string>
<string name="quick_action_request_deletion_alert_title">请求删贴</string>
<string name="quick_action_request_deletion_alert_body">Amethyst 将请求你的记录从当前连接的中继器中删除。不能保证你发布的笔记将被永久从那些中继器或其他存储笔记的中继器中删除。</string>
<string name="quick_action_block_dialog_btn">阻止</string>
@@ -561,10 +561,10 @@
<string name="relay_setup">中继器</string>
<string name="discover_follows">关注包</string>
<string name="discover_reads">次浏览</string>
<string name="discover_content">笔记发现</string>
<string name="discover_content_v2">Feed算法</string>
<string name="discover_marketplace">市场</string>
<string name="discover_live">直播</string>
<string name="discover_community">社区</string>
<string name="discover_live_v2">直播</string>
<string name="discover_community_v2">社区</string>
<string name="discover_chat">聊天</string>
<string name="community_approved_posts">批准的帖子</string>
<string name="groups_no_descriptor">此群组没有描述或规则。联系群主来添加</string>
@@ -616,6 +616,8 @@
<string name="geohash_explainer">将你所在位置的地理位置添加到帖子。公众会知道你在当前位置的5公里之内(3英里)</string>
<string name="geohash_exclusive">位置限定帖子</string>
<string name="geohash_exclusive_explainer">只有处于同一地理位置的关注者才能看到贴文。其他追随者无法看到。</string>
<string name="hashtag_exclusive">话题标签专属帖子</string>
<string name="hashtag_exclusive_explainer">只有话题标签的关注者才会看到它。您的一般关注者不会看到它。</string>
<string name="loading_location">加载位置中</string>
<string name="lack_location_permissions">没有位置信息权限</string>
<string name="add_sensitive_content_explainer">在显示你的内容之前添加敏感的内容警告。针对任何 NSFW 内容或一些人可能觉得有冒犯性或令人不安的内容。</string>
@@ -818,6 +820,7 @@
<string name="new_short">新短篇媒体:图像或视频</string>
<string name="new_community_note">新社区笔记</string>
<string name="new_product">新产品</string>
<string name="new_exclusive_geo_note">新建地理位置专属帖子</string>
<string name="open_all_reactions_to_this_post">展开对此帖子的所有回应</string>
<string name="close_all_reactions_to_this_post">收起对此帖子的所有回应</string>
<string name="reply_description">回复</string>
@@ -970,4 +973,5 @@
<string name="group_relay">聊天中继</string>
<string name="group_relay_explanation">此聊天所有用户都连接到的中继</string>
<string name="share_image">分享图片…</string>
<string name="search_by_hashtag">搜索话题标签:#%1$s</string>
</resources>
@@ -256,7 +256,6 @@
<string name="quick_action_unfollow">取關</string>
<string name="quick_action_follow">關注</string>
<string name="quick_action_request_deletion_gallery_title">從相冊中刪除</string>
<string name="quick_action_request_deletion_gallery_alert_body">從相冊中刪除此媒體,但仍然可供瀏覽</string>
<string name="quick_action_request_deletion_alert_title">請求刪貼</string>
<string name="quick_action_request_deletion_alert_body">Amethyst 將請求您的記錄從當前連接的中繼器中刪除。不能保證您發佈的筆記將被永久從那些中繼器或其他存儲筆記的中繼器中刪除。</string>
<string name="quick_action_block_dialog_btn">屏蔽</string>
@@ -446,10 +445,7 @@
<string name="are_you_sure_you_want_to_log_out">登出將刪除你的本地信息。請確保備份你的私鑰以避免失去你的帳戶。你想要繼續嗎?</string>
<string name="followed_tags">以關注的標籤</string>
<string name="relay_setup">中繼器</string>
<string name="discover_content">筆記發現</string>
<string name="discover_marketplace">市場</string>
<string name="discover_live">直播</string>
<string name="discover_community">社群</string>
<string name="discover_chat">聊天</string>
<string name="community_approved_posts">批准的帖子</string>
<string name="groups_no_descriptor">此群組沒有描述或規則。聯繫群主來添加</string>
+8 -4
View File
@@ -326,7 +326,7 @@
<string name="quick_action_unfollow">Unfollow</string>
<string name="quick_action_follow">Follow</string>
<string name="quick_action_request_deletion_gallery_title">Delete from Gallery</string>
<string name="quick_action_request_deletion_gallery_alert_body">Remove this media from your Gallery.</string>
<string name="quick_action_request_deletion_gallery_alert_body_v2">Remove this media from your Gallery.</string>
<string name="quick_action_request_deletion_alert_title">Request Deletion</string>
<string name="quick_action_request_deletion_alert_body">Amethyst will request that your note be deleted from the relays you are currently connected to. There is no guarantee that your note will be permanently deleted from those relays, or from other relays where it may be stored.</string>
<string name="quick_action_block_dialog_btn">Block</string>
@@ -661,10 +661,10 @@
<string name="discover_follows">Follow Packs</string>
<string name="discover_reads">Reads</string>
<string name="discover_content">Feed Algorithms</string>
<string name="discover_content_v2">Feed Algorithms</string>
<string name="discover_marketplace">Marketplace</string>
<string name="discover_live">Live Streams</string>
<string name="discover_community">Communities</string>
<string name="discover_live_v2">Live Streams</string>
<string name="discover_community_v2">Communities</string>
<string name="discover_chat">Chats</string>
<string name="community_approved_posts">Approved Posts</string>
@@ -675,6 +675,7 @@
<string name="add_sensitive_content_description">Adds sensitive content warning before showing this content</string>
<string name="preferences">App Preferences</string>
<string name="user_preferences">User Preferences</string>
<string name="settings">Settings</string>
<string name="connectivity_type_always">Always</string>
@@ -1178,4 +1179,7 @@
<string name="share_image">Share image…</string>
<string name="search_by_hashtag">Search hashtag: #%1$s</string>
<string name="dont_translate_from">Don\'t Translate From</string>
<string name="dont_translate_from_description">Languages shown here will not be translated. Select a language to remove it and have it translated again.</string>
</resources>
+2 -2
View File
@@ -1,11 +1,11 @@
[versions]
accompanistAdaptive = "0.37.3"
activityCompose = "1.10.1"
agp = "8.10.1"
agp = "8.11.0"
android-compileSdk = "35"
android-minSdk = "26"
android-targetSdk = "35"
androidKotlinGeohash = "1.0"
androidKotlinGeohash = "b481c6a64e"
androidxJunit = "1.2.1"
appcompat = "1.7.0"
audiowaveform = "1.1.1"
+1 -1
View File
@@ -1,6 +1,6 @@
#Wed Jan 04 09:23:50 EST 2023
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
@@ -20,19 +20,28 @@
*/
package com.vitorpamplona.quartz.nip01Core.signers
import com.fasterxml.jackson.annotation.JsonProperty
import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.core.TagArray
import com.vitorpamplona.quartz.nip01Core.core.TagArrayBuilder
import com.vitorpamplona.quartz.nip01Core.core.builder
import com.vitorpamplona.quartz.nip01Core.core.tagArray
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper
import com.vitorpamplona.quartz.utils.TimeUtils
class EventTemplate<T : Event>(
@JsonProperty("created_at")
val createdAt: Long,
val kind: Int,
val tags: TagArray,
val content: String,
)
) {
fun toJson(): String = EventMapper.mapper.writeValueAsString(this)
companion object {
fun fromJson(json: String): EventTemplate<Event> = EventTemplateManualDeserializer.fromJson(EventMapper.mapper.readTree(json))
}
}
inline fun <T : Event> eventTemplate(
kind: Int,
@@ -0,0 +1,33 @@
/**
* Copyright (c) 2025 Vitor Pamplona
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
* Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package com.vitorpamplona.quartz.nip01Core.signers
import com.fasterxml.jackson.core.JsonParser
import com.fasterxml.jackson.databind.DeserializationContext
import com.fasterxml.jackson.databind.deser.std.StdDeserializer
import com.vitorpamplona.quartz.nip01Core.core.Event
class EventTemplateDeserializer : StdDeserializer<EventTemplate<Event>>(EventTemplate::class.java) {
override fun deserialize(
jp: JsonParser,
ctxt: DeserializationContext,
): EventTemplate<Event> = EventTemplateManualDeserializer.fromJson(jp.codec.readTree(jp))
}
@@ -0,0 +1,40 @@
/**
* Copyright (c) 2025 Vitor Pamplona
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
* Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package com.vitorpamplona.quartz.nip01Core.signers
import com.fasterxml.jackson.databind.JsonNode
import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.jackson.toTypedArray
class EventTemplateManualDeserializer {
companion object {
fun fromJson(jsonObject: JsonNode): EventTemplate<Event> =
EventTemplate(
createdAt = jsonObject.get("created_at").asLong(),
kind = jsonObject.get("kind").asInt(),
tags =
jsonObject.get("tags").toTypedArray {
it.toTypedArray { s -> if (s.isNull) "" else s.asText().intern() }
},
content = jsonObject.get("content").asText(),
)
}
}
@@ -21,11 +21,12 @@
package com.vitorpamplona.quartz.nip46RemoteSigner
import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.signers.EventTemplate
import java.util.UUID
class BunkerRequestSign(
id: String = UUID.randomUUID().toString(),
val event: Event,
val event: EventTemplate<Event>,
) : BunkerRequest(id, METHOD_NAME, arrayOf(event.toJson())) {
companion object {
val METHOD_NAME = "sign_event"
@@ -33,6 +34,6 @@ class BunkerRequestSign(
fun parse(
id: String,
params: Array<String>,
): BunkerRequestSign = BunkerRequestSign(id, Event.fromJson(params[0]))
): BunkerRequestSign = BunkerRequestSign(id, EventTemplate.fromJson(params[0]))
}
}
@@ -0,0 +1,65 @@
/**
* Copyright (c) 2025 Vitor Pamplona
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
* Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package com.vitorpamplona.quartz.nip01Core.jackson
import com.vitorpamplona.quartz.nip01Core.crypto.KeyPair
import com.vitorpamplona.quartz.nip01Core.signers.EventTemplate
import com.vitorpamplona.quartz.nip01Core.signers.NostrSignerInternal
import com.vitorpamplona.quartz.nip01Core.verify
import org.junit.Test
class EventDeserializerTest {
@Test
fun testEventTemplateToJson() {
val templateJson = """{"created_at":1234,"kind":1,"tags":[],"content":"This is an unsigned event."}"""
val template = EventTemplate.fromJson(templateJson)
val json = template.toJson()
assert(json == templateJson)
}
@Test
fun testEventTemplate() {
val templateJson = """{"kind":"1","content":"This is an unsigned event.","created_at":1234,"tags":[]}"""
val template = EventTemplate.fromJson(templateJson)
assert(template.kind == 1)
assert(template.content == "This is an unsigned event.")
assert(template.tags.isEmpty())
}
@Test
fun testSignedEvent() {
val keyPair = KeyPair()
val signer = NostrSignerInternal(keyPair)
val templateJson = """{"kind":"1","content":"This is an unsigned event.","created_at":1234,"tags":[]}"""
val template = EventTemplate.fromJson(templateJson)
val signedEvent = signer.signerSync.sign(template)!!
assert(signedEvent.id.isNotEmpty())
assert(signedEvent.sig.isNotEmpty())
assert(signedEvent.pubKey.isNotEmpty())
assert(signedEvent.verify())
}
}
@@ -0,0 +1,35 @@
/**
* Copyright (c) 2025 Vitor Pamplona
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
* Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package com.vitorpamplona.quartz.nip46RemoteSigner
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper
import org.junit.Test
class BunkerRequestTest {
@Test
fun testBunkerRequestDeSerialization() {
val requestJson = """{"id":"123","method":"sign_event","params":["{\"created_at\":1234,\"kind\":1,\"tags\":[],\"content\":\"This is an unsigned event.\"}"]}"""
val bunkerRequest = EventMapper.mapper.readValue(requestJson, BunkerRequest::class.java)
assert(bunkerRequest is BunkerRequestSign)
assert((bunkerRequest as BunkerRequestSign).event.kind == 1)
}
}