Merge pull request #4217 from davotoula/chore/translations-churn

chore(i18n): fill missing cs/de/sv/pt-BR translations and pluralise count strings
This commit is contained in:
David Kaspar
2026-09-27 13:55:41 +02:00
committed by GitHub
23 changed files with 5026 additions and 75 deletions
@@ -50,7 +50,6 @@ import com.vitorpamplona.amethyst.commons.resources.cyberspace_bag_cancel
import com.vitorpamplona.amethyst.commons.resources.cyberspace_bag_damaged
import com.vitorpamplona.amethyst.commons.resources.cyberspace_bag_destination
import com.vitorpamplona.amethyst.commons.resources.cyberspace_bag_dropped
import com.vitorpamplona.amethyst.commons.resources.cyberspace_bag_dropped_many
import com.vitorpamplona.amethyst.commons.resources.cyberspace_bag_empty
import com.vitorpamplona.amethyst.commons.resources.cyberspace_bag_measuring
import com.vitorpamplona.amethyst.commons.resources.cyberspace_bag_no_hint
@@ -80,6 +79,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.flow.flowOn
import kotlinx.coroutines.launch
import org.jetbrains.compose.resources.pluralStringResource
import org.jetbrains.compose.resources.stringResource
/**
@@ -242,7 +242,7 @@ private fun Contents(
null -> Footnote(stringResource(Res.string.cyberspace_bag_damaged))
is CyberspaceBagContents.Opaque ->
Footnote(asText(contents.bytes) ?: stringResource(Res.string.cyberspace_bag_opaque, contents.bytes.size))
Footnote(asText(contents.bytes) ?: pluralStringResource(Res.plurals.cyberspace_bag_opaque, contents.bytes.size, contents.bytes.size))
is CyberspaceBagContents.Items -> {
if (contents.items.isEmpty() && contents.dropped == 0) {
@@ -256,13 +256,7 @@ private fun Contents(
// still worth saying that something was thrown away.
if (contents.dropped > 0) {
Spacer(Modifier.height(6.dp))
Footnote(
if (contents.dropped == 1) {
stringResource(Res.string.cyberspace_bag_dropped, contents.dropped)
} else {
stringResource(Res.string.cyberspace_bag_dropped_many, contents.dropped)
},
)
Footnote(pluralStringResource(Res.plurals.cyberspace_bag_dropped, contents.dropped, contents.dropped))
}
}
}
@@ -322,9 +316,10 @@ private fun Footnote(text: String) {
private fun outOfReach(estimateMillis: Long): String {
val minutes = estimateMillis / 60_000L
return if (minutes >= MINUTES_PER_HOUR) {
stringResource(Res.string.cyberspace_bag_too_slow_hours, (minutes / MINUTES_PER_HOUR).toInt())
val hours = (minutes / MINUTES_PER_HOUR).toInt()
pluralStringResource(Res.plurals.cyberspace_bag_too_slow_hours, hours, hours)
} else {
stringResource(Res.string.cyberspace_bag_too_slow_minutes, minutes.toInt())
pluralStringResource(Res.plurals.cyberspace_bag_too_slow_minutes, minutes.toInt(), minutes.toInt())
}
}
@@ -144,6 +144,7 @@ import com.vitorpamplona.amethyst.ui.note.NoteCompose
import com.vitorpamplona.amethyst.ui.note.UserPicture
import com.vitorpamplona.amethyst.ui.note.UsernameDisplay
import com.vitorpamplona.amethyst.ui.note.elements.BannerImage
import com.vitorpamplona.amethyst.ui.pluralStringRes
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
import com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.publicChannels.relayGroup.LoadRelayGroupChannel
import com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.rooms.LoadUser
@@ -420,7 +421,7 @@ private fun PeopleSearch(
singleLine = true,
shape = RoundedCornerShape(14.dp),
leadingIcon = { Icon(symbol = MaterialSymbols.Search, contentDescription = null) },
placeholder = { Text(stringRes(Res.string.backup_review_search_people, count.toString())) },
placeholder = { Text(pluralStringRes(Res.plurals.backup_review_search_people, count, count.toString())) },
)
}
@@ -754,7 +754,7 @@ private fun LazyListScope.trustProviderItems(
Icon(symbol = MaterialSymbols.Group, contentDescription = null, tint = tones.changed)
}
Column {
Text(stringRes(Res.string.backup_review_services_changed, affected.toString(), services.size.toString()), fontSize = 24.sp, lineHeight = 28.sp, fontWeight = FontWeight.Bold)
Text(pluralStringResource(Res.plurals.backup_review_services_changed, services.size, affected.toString(), services.size.toString()), fontSize = 24.sp, lineHeight = 28.sp, fontWeight = FontWeight.Bold)
Text(stringRes(Res.string.backup_review_services_changed_explainer), style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.placeholderText)
}
}
@@ -387,7 +387,7 @@ fun CordnCreateGroupScreen(
if (draft.showStale) {
stringRes(Res.string.cordn_coordinators_hide_older)
} else {
stringRes(Res.string.cordn_coordinators_show_older, stale.size)
pluralStringRes(Res.plurals.cordn_coordinators_show_older, stale.size, stale.size)
},
)
}
@@ -462,7 +462,7 @@ fun CordnCreateGroupScreen(
// different answers and only one of them is final.
// Reporting the first for the second sends someone
// off to paste a pubkey by hand over a timeout.
stringRes(Res.string.cordn_coordinators_discover_unheard, result.unreachable.size)
pluralStringRes(Res.plurals.cordn_coordinators_discover_unheard, result.unreachable.size, result.unreachable.size)
},
style = MaterialTheme.typography.bodySmall,
color = MaterialTheme.colorScheme.onSurfaceVariant,
@@ -927,7 +927,7 @@ private fun CoordinatorSummary(
text =
when {
coverage == null || !coverage.answered -> stringRes(Res.string.cordn_create_coverage_unknown)
reached == rosterSize -> stringRes(Res.string.cordn_create_coverage_all, rosterSize)
reached == rosterSize -> pluralStringRes(Res.plurals.cordn_create_coverage_all, rosterSize, rosterSize)
else -> stringRes(Res.string.cordn_create_coverage_partial, reached ?: 0, rosterSize)
},
style = MaterialTheme.typography.labelSmall,
@@ -45,6 +45,7 @@ import com.vitorpamplona.amethyst.commons.resources.geocache_hunt_caches
import com.vitorpamplona.amethyst.commons.resources.geocache_hunt_progress
import com.vitorpamplona.amethyst.commons.ui.navigation.navs.INav
import com.vitorpamplona.amethyst.commons.ui.note.rememberGeocachePalette
import com.vitorpamplona.amethyst.commons.ui.pluralStringRes
import com.vitorpamplona.amethyst.commons.ui.stringRes
import com.vitorpamplona.amethyst.ui.components.MyAsyncImage
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
@@ -119,7 +120,7 @@ fun GeocacheHuntRow(
Text(
text =
stringRes(Res.string.geocache_hunt_progress, doneCount, caches.size) +
" · " + stringRes(Res.string.geocache_hunt_caches, caches.size),
" · " + pluralStringRes(Res.plurals.geocache_hunt_caches, caches.size, caches.size),
style = MaterialTheme.typography.labelSmall,
color = MaterialTheme.colorScheme.onSurfaceVariant,
)
@@ -56,6 +56,7 @@ import com.vitorpamplona.amethyst.commons.resources.geocache_hunt_already_on
import com.vitorpamplona.amethyst.commons.resources.geocache_hunt_caches
import com.vitorpamplona.amethyst.commons.resources.geocache_hunt_new
import com.vitorpamplona.amethyst.commons.resources.geocache_hunt_none_yet
import com.vitorpamplona.amethyst.commons.ui.pluralStringRes
import com.vitorpamplona.amethyst.commons.ui.stringRes
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
import com.vitorpamplona.quartz.nip01Core.core.Address
@@ -178,7 +179,8 @@ fun GeocacheAddToHuntSheet(
if (already) {
stringRes(Res.string.geocache_hunt_already_on)
} else {
stringRes(Res.string.geocache_hunt_caches, hunt.geocaches().size)
val cacheCount = hunt.geocaches().size
pluralStringRes(Res.plurals.geocache_hunt_caches, cacheCount, cacheCount)
},
style = MaterialTheme.typography.labelSmall,
color = MaterialTheme.colorScheme.onSurfaceVariant,
@@ -48,7 +48,7 @@ import com.vitorpamplona.amethyst.commons.resources.geocache_caches_here
import com.vitorpamplona.amethyst.commons.ui.feeds.WatchLifecycleAndUpdateModel
import com.vitorpamplona.amethyst.commons.ui.navigation.navs.INav
import com.vitorpamplona.amethyst.commons.ui.note.rememberGeocachePalette
import com.vitorpamplona.amethyst.commons.ui.stringRes
import com.vitorpamplona.amethyst.commons.ui.pluralStringRes
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
import com.vitorpamplona.amethyst.ui.screen.loggedIn.geocaches.dal.GeocachesHereFeedViewModel
import com.vitorpamplona.amethyst.ui.screen.loggedIn.geocaches.datasource.GeocachesFilterAssemblerSubscription
@@ -121,7 +121,7 @@ private fun GeocachesHereCount(
tint = palette.live,
)
Text(
text = stringRes(Res.string.geocache_caches_here, count),
text = pluralStringRes(Res.plurals.geocache_caches_here, count, count),
style = MaterialTheme.typography.labelMedium,
fontWeight = FontWeight.SemiBold,
color = MaterialTheme.colorScheme.onSurface,
@@ -63,6 +63,7 @@ import com.vitorpamplona.amethyst.commons.resources.qr_scanner_sequence_progress
import com.vitorpamplona.amethyst.commons.resources.qr_scanner_torch_off
import com.vitorpamplona.amethyst.commons.resources.qr_scanner_torch_on
import com.vitorpamplona.amethyst.commons.resources.qr_scanner_zoom_reset
import com.vitorpamplona.amethyst.commons.ui.pluralStringRes
import com.vitorpamplona.amethyst.commons.ui.stringRes
import kotlin.math.max
@@ -255,7 +256,7 @@ private fun HintStack(
val message =
when {
state.notice != null -> state.notice
progress != null -> stringRes(Res.string.qr_scanner_sequence_progress, progress.first, progress.second)
progress != null -> pluralStringRes(Res.plurals.qr_scanner_sequence_progress, progress.second, progress.first, progress.second)
state.candidates.size > 1 -> stringRes(Res.string.qr_scanner_pick_one)
state.isDark && !state.torchOn -> stringRes(Res.string.qr_scanner_dark_hint)
else -> null
@@ -114,6 +114,7 @@ import com.vitorpamplona.amethyst.commons.ui.note.timeAgoNoDot
import com.vitorpamplona.amethyst.commons.ui.theme.DividerThickness
import com.vitorpamplona.amethyst.model.cordn.CordnRuntime
import com.vitorpamplona.amethyst.ui.note.UserPicture
import com.vitorpamplona.amethyst.ui.pluralStringRes
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
import com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.cordnGroup.CopyableKeyRow
import com.vitorpamplona.amethyst.ui.screen.loggedIn.settings.SettingsSection
@@ -444,7 +445,7 @@ private fun HealthLine(state: CoordinatorHealth.State) {
val text =
when {
state.isUnknown -> stringRes(Res.string.cordn_coordinators_health_unknown)
state.isDown -> stringRes(Res.string.cordn_coordinators_health_down, state.consecutiveFailures)
state.isDown -> pluralStringRes(Res.plurals.cordn_coordinators_health_down, state.consecutiveFailures, state.consecutiveFailures)
state.consecutiveFailures > 0 -> stringRes(Res.string.cordn_coordinators_health_retrying)
else -> stringRes(Res.string.cordn_coordinators_health_ok)
}
@@ -535,7 +536,7 @@ private fun DiscoverCoordinators(
} else {
// "Nobody is announcing" and "we were not told" are
// different answers and only one of them is final.
stringRes(Res.string.cordn_coordinators_discover_unheard, found.unreachable.size)
pluralStringRes(Res.plurals.cordn_coordinators_discover_unheard, found.unreachable.size, found.unreachable.size)
},
style = MaterialTheme.typography.bodyMedium,
color = MaterialTheme.colorScheme.onSurfaceVariant,
@@ -80,6 +80,7 @@ import com.vitorpamplona.amethyst.commons.ui.navigation.navs.INav
import com.vitorpamplona.amethyst.commons.ui.navigation.topbars.TopBarWithBackButton
import com.vitorpamplona.amethyst.model.cordn.AndroidCordnBlobStore
import com.vitorpamplona.amethyst.model.cordn.CordnRuntime
import com.vitorpamplona.amethyst.ui.pluralStringRes
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
import com.vitorpamplona.amethyst.ui.screen.loggedIn.qrcode.QrCodeDrawer
import com.vitorpamplona.amethyst.ui.screen.loggedIn.qrcode.SimpleQrCodeScanner
@@ -351,7 +352,7 @@ private fun ReceiveSide(
modifier = Modifier.fillMaxWidth(),
)
done?.let { Text(stringRes(Res.string.cordn_migrate_done, it), style = MaterialTheme.typography.bodyMedium) }
done?.let { Text(pluralStringRes(Res.plurals.cordn_migrate_done, it, it), style = MaterialTheme.typography.bodyMedium) }
error?.let { Text(it, style = MaterialTheme.typography.bodyMedium, color = MaterialTheme.colorScheme.error) }
Button(
@@ -377,4 +377,8 @@
<string name="mute_button">Zvuk zapnutý. Klikněte pro ztlumení</string>
<string name="play">Hrát</string>
<string name="pause">Pozastavit</string>
<string name="share_target_scan_qr">Skenovat QR kód</string>
<string name="shortcut_scan_qr_short">Skenovat QR</string>
<string name="shortcut_scan_qr_long">Naskenovat QR kód</string>
<string name="pow_notification_sending">Odesílání na relé…</string>
</resources>
@@ -349,4 +349,8 @@
<string name="mute_button">Ton ein. Zur Stummschaltung drücken</string>
<string name="play">Abspielen</string>
<string name="pause">Pausen</string>
<string name="share_target_scan_qr">QR-Code scannen</string>
<string name="shortcut_scan_qr_short">QR scannen</string>
<string name="shortcut_scan_qr_long">Einen QR-Code scannen</string>
<string name="pow_notification_sending">Wird an Relays gesendet…</string>
</resources>
@@ -349,4 +349,8 @@
<string name="mute_button">Som ligado. Clique para silenciar</string>
<string name="play">Reproduzir</string>
<string name="pause">Pausar</string>
<string name="share_target_scan_qr">Escanear código QR</string>
<string name="shortcut_scan_qr_short">Ler QR</string>
<string name="shortcut_scan_qr_long">Escanear um código QR</string>
<string name="pow_notification_sending">Enviando para relays…</string>
</resources>
@@ -349,4 +349,8 @@
<string name="mute_button">Ljud på. Klicka för att stänga av ljudet</string>
<string name="play">Spela</string>
<string name="pause">Pausa</string>
<string name="share_target_scan_qr">Skanna QR-kod</string>
<string name="shortcut_scan_qr_short">Skanna QR</string>
<string name="shortcut_scan_qr_long">Skanna en QR-kod</string>
<string name="pow_notification_sending">Skickar till reläer…</string>
</resources>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -206,7 +206,10 @@
<string name="geocache_hunt_new">नई खोज…</string>
<string name="geocache_hunt_none_yet">आपने कोई खोज नहीं की अब तक।</string>
<string name="geocache_hunt_already_on">पहले से इस खोज में लगे</string>
<string name="geocache_caches_here">%1$d कोष यहाँ</string>
<plurals name="geocache_caches_here">
<item quantity="one">%1$d कोष यहाँ</item>
<item quantity="other">%1$d कोष यहाँ</item>
</plurals>
<string name="geocache_photo_remove">इस चित्र को हटाएँ</string>
<string name="geocache_archived_notice">इस कोष को संगृहीत कर दिया गया। यह अब खेल में नहीं है।</string>
<string name="geocache_ftf_won_by">सर्वप्रथम खोज का कथन %1$s द्वारा</string>
@@ -265,7 +268,6 @@
<string name="geocache_map_recenter">मुझ पर मध्यीकरण</string>
<string name="geocache_map_long_press">मानचित्र पर दीर्घ दबाएँ वहाँ एक कोष छिपाने के लिए</string>
<string name="geocache_map_open">खोलें</string>
<string name="geocache_map_pin_count">%1$d कोष</string>
<string name="geocache_new_section_where">कहाँ</string>
<string name="geocache_new_section_what">क्या</string>
<string name="geocache_new_section_extras">अतिरिक्त</string>
@@ -293,7 +295,10 @@
<string name="geocache_new_needs_location">कोष कहाँ छिपाया जाए चयन करें।</string>
<string name="geocache_hunt_progress">%2$d में से %1$d प्राप्त</string>
<string name="geocache_hunt_start">खोज आरम्भ करें</string>
<string name="geocache_hunt_caches">%1$d कोष</string>
<plurals name="geocache_hunt_caches">
<item quantity="one">%1$d कोष</item>
<item quantity="other">%1$d कोष</item>
</plurals>
<string name="geocache_hunt_title">शीर्षक</string>
<string name="geocache_hunt_description">विवरण</string>
<string name="geocache_hunt_banner">ध्वज चित्र</string>
@@ -342,7 +347,10 @@
<string name="qr_scanner_no_code_in_image">उस चित्र में से कोई क्यूआर॰ चित्र अक्षरराशि प्राप्त नहीं</string>
<string name="qr_scanner_clipboard_empty">टाँकाफलक में कुछ भी नहीं परखने के लिए</string>
<string name="qr_scanner_pick_one">अक्षरराशि का चयन करें</string>
<string name="qr_scanner_sequence_progress">%2$s में से %1$s भाग प्राप्त। आगे बढें</string>
<plurals name="qr_scanner_sequence_progress">
<item quantity="one">%2$s में से %1$s भाग प्राप्त। आगे बढें</item>
<item quantity="other">%2$s में से %1$s भाग प्राप्त। आगे बढें</item>
</plurals>
<string name="qr_scanner_zoom_reset">विस्तारण पुनःस्थापना</string>
<string name="qr_scanner_unsupported_title">अमेथिस्ट इस अक्षरराशि को नहीं खोल सकता</string>
<string name="qr_scanner_unsupported_secret">इस अक्षरराशि में एक निजी कुंचिका अथवा जोडनेवाला रहस्य है। इसलिए इसकी विषयवस्तु यहाँ दिखाया नहीं जाता। अनुकूल पटल का उपयोग करें।</string>
@@ -5253,16 +5261,27 @@
<string name="cyberspace_bag_cancel">रोकें</string>
<string name="cyberspace_bag_measuring">खोज का मूल्यांकन इस यन्त्र पर…</string>
<string name="cyberspace_bag_progress">खोज सम्पन्न %2$s में से %1$s क्षेत्रों में</string>
<string name="cyberspace_bag_too_slow_minutes">अप्राप्य। लगभग %1$d मिनुट का खोज इस यन्त्र पर</string>
<string name="cyberspace_bag_too_slow_hours">अप्राप्य। लगभग %1$d घण्टों का खोज इस यन्त्र पर</string>
<plurals name="cyberspace_bag_too_slow_minutes">
<item quantity="one">अप्राप्य। लगभग %1$d मिनुट का खोज इस यन्त्र पर</item>
<item quantity="other">अप्राप्य। लगभग %1$d मिनुट का खोज इस यन्त्र पर</item>
</plurals>
<plurals name="cyberspace_bag_too_slow_hours">
<item quantity="one">अप्राप्य। लगभग %1$d घण्टों का खोज इस यन्त्र पर</item>
<item quantity="other">अप्राप्य। लगभग %1$d घण्टों का खोज इस यन्त्र पर</item>
</plurals>
<string name="cyberspace_bag_not_found">सहायक संकेत में नामित पेटिका में नहीं</string>
<string name="cyberspace_bag_damaged">क्षेत्र प्राप्त। पर विषयवस्तु पढने में असफल</string>
<string name="cyberspace_bag_dropped">%1$d वस्तु जो यहाँ छिपाया गया था उसके हस्ताक्षर से मेल नहीं तथा परित्यक्त</string>
<string name="cyberspace_bag_dropped_many">%1$d वस्तु जो यहाँ छिपाए गए थे उनके हस्ताक्षरों से मेल नहीं तथा परित्यक्त</string>
<plurals name="cyberspace_bag_dropped">
<item quantity="one">%1$d वस्तु जो यहाँ छिपाया गया था उसके हस्ताक्षर से मेल नहीं तथा परित्यक्त</item>
<item quantity="other">%1$d वस्तु जो यहाँ छिपाए गए थे उनके हस्ताक्षरों से मेल नहीं तथा परित्यक्त</item>
</plurals>
<string name="cyberspace_bag_empty">खोला। पर भीतर कुछ नहीं था</string>
<string name="cyberspace_bag_unsigned">हस्ताक्षररहित। इसलिए यह कर्ता केवल एक कथन है</string>
<string name="cyberspace_bag_unknown_kind">प्रकार %1$d का वस्तु। जिसे यह ग्राहक चित्रित नहीं करता</string>
<string name="cyberspace_bag_opaque">%1$d अष्टकों का अमुक जिसे यह ग्राहक पढता नहीं</string>
<plurals name="cyberspace_bag_opaque">
<item quantity="one">%1$d अष्टकों का अमुक जिसे यह ग्राहक पढता नहीं</item>
<item quantity="other">%1$d अष्टकों का अमुक जिसे यह ग्राहक पढता नहीं</item>
</plurals>
<!-- Browser pill (redesign prototypes, see amethyst/plans/2026-09-26-browser-ui-review.md) -->
<string name="backup_action_block_again">पुनःबाधित करें %1$s को</string>
<string name="backup_action_keep_count">रखें %1$s</string>
@@ -5501,13 +5520,19 @@
<string name="backup_review_renamed">पुनःनामकृत</string>
<string name="backup_review_renamed_tag">पुनःनामकृत</string>
<string name="backup_review_saved">इस यन्त्र पर</string>
<string name="backup_review_search_people">%1$s लोग खोजें</string>
<plurals name="backup_review_search_people">
<item quantity="one">%1$s लोग खोजें</item>
<item quantity="other">%1$s लोग खोजें</item>
</plurals>
<string name="backup_review_searching_tag">खोज मध्य</string>
<string name="backup_review_service">सेवा</string>
<string name="backup_review_service_followers">अनुचर</string>
<string name="backup_review_service_rank">श्रेणी</string>
<string name="backup_review_service_topics">विषयसूची</string>
<string name="backup_review_services_changed">%2$s में से %1$s सेवाएँ परिवर्तित</string>
<plurals name="backup_review_services_changed">
<item quantity="one">%2$s में से %1$s सेवाएँ परिवर्तित</item>
<item quantity="other">%2$s में से %1$s सेवाएँ परिवर्तित</item>
</plurals>
<string name="backup_review_services_changed_explainer">वे अब अन्य व्यक्ति से आते है। अथवा किसी से नहीं</string>
<string name="backup_review_still_blocked">अभी भी बाधित</string>
<string name="backup_review_storing_tag">अभिलेखन मध्य</string>
@@ -206,7 +206,10 @@
<string name="geocache_hunt_new">Új vadászat…</string>
<string name="geocache_hunt_none_yet">Még nem hozott létre vadászatot.</string>
<string name="geocache_hunt_already_on">Már szerepel ebben a vadászatban</string>
<string name="geocache_caches_here">%1$d láda van itt</string>
<plurals name="geocache_caches_here">
<item quantity="one">%1$d láda van itt</item>
<item quantity="other">%1$d láda van itt</item>
</plurals>
<string name="geocache_photo_remove">Fénykép eltávolítása</string>
<string name="geocache_archived_notice">Ezt a ládát archiválták. Már nem játszik.</string>
<string name="geocache_ftf_won_by">Az első megtalálást %1$s szerezte meg</string>
@@ -265,7 +268,6 @@
<string name="geocache_map_recenter">Középre</string>
<string name="geocache_map_long_press">Egy láda elrejtéséhez nyomja meg hossza a térképet</string>
<string name="geocache_map_open">Megnyitás</string>
<string name="geocache_map_pin_count">%1$d láda</string>
<string name="geocache_new_section_where">Hol</string>
<string name="geocache_new_section_what">Mi</string>
<string name="geocache_new_section_extras">Extrák</string>
@@ -293,7 +295,10 @@
<string name="geocache_new_needs_location">Válassza ki, hogy hol van elrejtve a láda.</string>
<string name="geocache_hunt_progress">%2$d / %1$d megtalálva</string>
<string name="geocache_hunt_start">Vadászat indítása</string>
<string name="geocache_hunt_caches">%1$d láda</string>
<plurals name="geocache_hunt_caches">
<item quantity="one">%1$d láda</item>
<item quantity="other">%1$d láda</item>
</plurals>
<string name="geocache_hunt_title">Cím</string>
<string name="geocache_hunt_description">Leírás</string>
<string name="geocache_hunt_banner">Borítókép</string>
@@ -342,7 +347,10 @@
<string name="qr_scanner_no_code_in_image">Nem található QR-kód a képen</string>
<string name="qr_scanner_clipboard_empty">A vágólapon nincs semmi a beolvasáshoz</string>
<string name="qr_scanner_pick_one">Érintse meg a beolvasandó kódot</string>
<string name="qr_scanner_sequence_progress">%1$s darabot sikerült beolvasni a(z) %2$s darab közül, folytatás</string>
<plurals name="qr_scanner_sequence_progress">
<item quantity="one">%1$s darabot sikerült beolvasni a(z) %2$s darab közül, folytatás</item>
<item quantity="other">%1$s darabot sikerült beolvasni a(z) %2$s darab közül, folytatás</item>
</plurals>
<string name="qr_scanner_zoom_reset">Nagyítás visszaállítása</string>
<string name="qr_scanner_unsupported_title">Az Amethyst nem tudja megnyitni ezt a kódot</string>
<string name="qr_scanner_unsupported_secret">Ez a kód egy titkos kulcsot vagy párosítási titkot tartalmaz, ezért a tartalma itt nem jelenik meg. Használja azt a képernyőt, ahol meg kell adni.</string>
@@ -5253,16 +5261,27 @@
<string name="cyberspace_bag_cancel">Leállítás</string>
<string name="cyberspace_bag_measuring">A keresés árazása ezen az eszközön…</string>
<string name="cyberspace_bag_progress">%2$s régióból %1$s átkutatva</string>
<string name="cyberspace_bag_too_slow_minutes">Elérhetetlen: körülbelül %1$d perc keresés ezen az eszközön</string>
<string name="cyberspace_bag_too_slow_hours">Elérhetetlen: körülbelül %1$d óra keresés ezen az eszközön</string>
<plurals name="cyberspace_bag_too_slow_minutes">
<item quantity="one">Elérhetetlen: körülbelül %1$d perc keresés ezen az eszközön</item>
<item quantity="other">Elérhetetlen: körülbelül %1$d perc keresés ezen az eszközön</item>
</plurals>
<plurals name="cyberspace_bag_too_slow_hours">
<item quantity="one">Elérhetetlen: körülbelül %1$d óra keresés ezen az eszközön</item>
<item quantity="other">Elérhetetlen: körülbelül %1$d óra keresés ezen az eszközön</item>
</plurals>
<string name="cyberspace_bag_not_found">Nincs abban a dobozban, amelyet a nyom megnevezett</string>
<string name="cyberspace_bag_damaged">A régió megvan, de a tartalmát nem sikerült beolvasni</string>
<string name="cyberspace_bag_dropped">Az itt elrejtett %1$d elem nem egyezett az aláírásával, ezért el lett vetve</string>
<string name="cyberspace_bag_dropped_many">Az itt elrejtett %1$d elem nem egyezett az aláírásával, ezért el lettek vetve</string>
<plurals name="cyberspace_bag_dropped">
<item quantity="one">Az itt elrejtett %1$d elem nem egyezett az aláírásával, ezért el lett vetve</item>
<item quantity="other">Az itt elrejtett %1$d elem nem egyezett az aláírásával, ezért el lettek vetve</item>
</plurals>
<string name="cyberspace_bag_empty">Kinyitva, és nem volt benne semmi</string>
<string name="cyberspace_bag_unsigned">Aláírás nélküli, így ez a szerző csak állítás</string>
<string name="cyberspace_bag_unknown_kind">Egy %1$d típusú elem, amelyet ez a kliens nem jelenít meg</string>
<string name="cyberspace_bag_opaque">%1$d bájt valamiből, amit ez a kliens nem olvas</string>
<plurals name="cyberspace_bag_opaque">
<item quantity="one">%1$d bájt valamiből, amit ez a kliens nem olvas</item>
<item quantity="other">%1$d bájt valamiből, amit ez a kliens nem olvas</item>
</plurals>
<!-- Browser pill (redesign prototypes, see amethyst/plans/2026-09-26-browser-ui-review.md) -->
<string name="backup_action_block_again">%1$s újbóli letiltása</string>
<string name="backup_action_keep_count">%1$s megtartása</string>
@@ -5501,13 +5520,19 @@
<string name="backup_review_renamed">átnevezte</string>
<string name="backup_review_renamed_tag">Átnevezve</string>
<string name="backup_review_saved">Ezen az eszközön</string>
<string name="backup_review_search_people">%1$s személy keresése</string>
<plurals name="backup_review_search_people">
<item quantity="one">%1$s személy keresése</item>
<item quantity="other">%1$s személy keresése</item>
</plurals>
<string name="backup_review_searching_tag">Keresés</string>
<string name="backup_review_service">Szolgáltatás</string>
<string name="backup_review_service_followers">Követők</string>
<string name="backup_review_service_rank">Rang</string>
<string name="backup_review_service_topics">Témák</string>
<string name="backup_review_services_changed">%2$s szolgáltatásból %1$s módosult</string>
<plurals name="backup_review_services_changed">
<item quantity="one">%2$s szolgáltatásból %1$s módosult</item>
<item quantity="other">%2$s szolgáltatásból %1$s módosult</item>
</plurals>
<string name="backup_review_services_changed_explainer">Most már valaki mástól vagy senkitől sem származnak</string>
<string name="backup_review_still_blocked">Továbbra is le van tiltva</string>
<string name="backup_review_storing_tag">Tárolás</string>
@@ -214,7 +214,12 @@
<string name="geocache_hunt_new">Nowe polowanie…</string>
<string name="geocache_hunt_none_yet">Nie dokonałeś jeszcze polowania.</string>
<string name="geocache_hunt_already_on">Już podczas tego polowania</string>
<string name="geocache_caches_here">%1$d skrzynek tutaj</string>
<plurals name="geocache_caches_here">
<item quantity="one">%1$d skrzynka tutaj</item>
<item quantity="few">%1$d skrzynki tutaj</item>
<item quantity="many">%1$d skrzynek tutaj</item>
<item quantity="other">%1$d skrzynki tutaj</item>
</plurals>
<string name="geocache_photo_remove">Usuń to zdjęcie</string>
<string name="geocache_archived_notice">Ta skrzynka została zarchiwizowana. Nie jest już w grze.</string>
<string name="geocache_ftf_won_by">Pierwszy, który znalazł – zgłoszone przez %1$s</string>
@@ -273,7 +278,6 @@
<string name="geocache_map_recenter">Wyśrodkuj na mnie</string>
<string name="geocache_map_long_press">Naciśnij i przytrzymaj mapę, aby ukryć skrzynkę</string>
<string name="geocache_map_open">Otwórz</string>
<string name="geocache_map_pin_count">%1$d skrzynek</string>
<string name="geocache_new_section_where">Gdzie</string>
<string name="geocache_new_section_what">Co</string>
<string name="geocache_new_section_extras">Dodatki</string>
@@ -301,7 +305,12 @@
<string name="geocache_new_needs_location">Wybierz gdzie skrzynka jest ukryta.</string>
<string name="geocache_hunt_progress">Znaleziono %1$d z %2$d</string>
<string name="geocache_hunt_start">Rozpocznij polowanie</string>
<string name="geocache_hunt_caches">%1$d skrzynek</string>
<plurals name="geocache_hunt_caches">
<item quantity="one">%1$d skrzynka</item>
<item quantity="few">%1$d skrzynki</item>
<item quantity="many">%1$d skrzynek</item>
<item quantity="other">%1$d skrzynki</item>
</plurals>
<string name="geocache_hunt_title">Tytuł</string>
<string name="geocache_hunt_description">Opis</string>
<string name="geocache_hunt_banner">Obraz banera</string>
@@ -352,7 +361,12 @@
<string name="qr_scanner_no_code_in_image">Nie znaleziono kodu QR na tym obrazku</string>
<string name="qr_scanner_clipboard_empty">Nic w schowku do skanowania</string>
<string name="qr_scanner_pick_one">Wybierz żądany kod</string>
<string name="qr_scanner_sequence_progress">Zdobyto %1$s z %2$s części — kontynuuj</string>
<plurals name="qr_scanner_sequence_progress">
<item quantity="one">Zdobyto %1$s z %2$s części — kontynuuj</item>
<item quantity="few">Zdobyto %1$s z %2$s części — kontynuuj</item>
<item quantity="many">Zdobyto %1$s z %2$s części — kontynuuj</item>
<item quantity="other">Zdobyto %1$s z %2$s części — kontynuuj</item>
</plurals>
<string name="qr_scanner_zoom_reset">Zresetuj zoom</string>
<string name="qr_scanner_unsupported_title">Ametyst nie może otworzyć tego kodu</string>
<string name="qr_scanner_unsupported_secret">Ten kod zawiera klucz prywatny lub hasło parowania, dlatego jego treść nie jest tutaj wyświetlana. Należy skorzystać z odpowiedniego ekranu, na którym należy go wprowadzić.</string>
@@ -5475,16 +5489,35 @@
<string name="cyberspace_bag_cancel">Stop</string>
<string name="cyberspace_bag_measuring">Wycena wyszukiwania na tym urządzeniu…</string>
<string name="cyberspace_bag_progress">Przeszukano %1$s z %2$s regionów</string>
<string name="cyberspace_bag_too_slow_minutes">Poza zasięgiem: około %1$d minut wyszukiwania na tym urządzeniu</string>
<string name="cyberspace_bag_too_slow_hours">Poza zasięgiem: około %1$d godzin wyszukiwania na tym urządzeniu</string>
<plurals name="cyberspace_bag_too_slow_minutes">
<item quantity="one">Poza zasięgiem: około %1$d minuty wyszukiwania na tym urządzeniu</item>
<item quantity="few">Poza zasięgiem: około %1$d minut wyszukiwania na tym urządzeniu</item>
<item quantity="many">Poza zasięgiem: około %1$d minut wyszukiwania na tym urządzeniu</item>
<item quantity="other">Poza zasięgiem: około %1$d minuty wyszukiwania na tym urządzeniu</item>
</plurals>
<plurals name="cyberspace_bag_too_slow_hours">
<item quantity="one">Poza zasięgiem: około %1$d godziny wyszukiwania na tym urządzeniu</item>
<item quantity="few">Poza zasięgiem: około %1$d godzin wyszukiwania na tym urządzeniu</item>
<item quantity="many">Poza zasięgiem: około %1$d godzin wyszukiwania na tym urządzeniu</item>
<item quantity="other">Poza zasięgiem: około %1$d godziny wyszukiwania na tym urządzeniu</item>
</plurals>
<string name="cyberspace_bag_not_found">W pudełku nie ma podpowiedzi o nazwie</string>
<string name="cyberspace_bag_damaged">Znaleziono region, ale nie udało się odczytać jego zawartości</string>
<string name="cyberspace_bag_dropped">%1$d element ukryty w tym miejscu nie pasował do swojej sygnatury podpisu i został usunięty</string>
<string name="cyberspace_bag_dropped_many">%1$d ukrytych tutaj elementów nie pasowało do swoich sygnatur i zostało usuniętych</string>
<plurals name="cyberspace_bag_dropped">
<item quantity="one">%1$d element ukryty w tym miejscu nie pasował do swojej sygnatury podpisu i został usunięty</item>
<item quantity="few">%1$d elementy ukryte tutaj nie pasowały do swoich sygnatur i zostały usunięte</item>
<item quantity="many">%1$d ukrytych tutaj elementów nie pasowało do swoich sygnatur i zostało usuniętych</item>
<item quantity="other">%1$d ukrytego tutaj elementu nie pasowało do swoich sygnatur i zostało usuniętych</item>
</plurals>
<string name="cyberspace_bag_empty">Otworzyłem, a w środku nic nie było</string>
<string name="cyberspace_bag_unsigned">Brak podpisu, więc autor to tylko domysł</string>
<string name="cyberspace_bag_unknown_kind">Element typu %1$d, którego ten klient nie wyświetla</string>
<string name="cyberspace_bag_opaque">%1$d bajtów danych, których ten klient nie odczytuje</string>
<plurals name="cyberspace_bag_opaque">
<item quantity="one">%1$d bajt danych, których ten klient nie odczytuje</item>
<item quantity="few">%1$d bajty danych, których ten klient nie odczytuje</item>
<item quantity="many">%1$d bajtów danych, których ten klient nie odczytuje</item>
<item quantity="other">%1$d bajta danych, których ten klient nie odczytuje</item>
</plurals>
<!-- Browser pill (redesign prototypes, see amethyst/plans/2026-09-26-browser-ui-review.md) -->
<string name="backup_action_block_again">Zablokuj %1$s ponownie</string>
<string name="backup_action_keep_count">Zachowaj %1$s</string>
@@ -5783,13 +5816,23 @@
<string name="backup_review_renamed">zmieniono nazwę</string>
<string name="backup_review_renamed_tag">Zmieniono nazwę</string>
<string name="backup_review_saved">Na tym urządzeniu</string>
<string name="backup_review_search_people">Szukaj %1$s osób</string>
<plurals name="backup_review_search_people">
<item quantity="one">Szukaj %1$s osoby</item>
<item quantity="few">Szukaj %1$s osób</item>
<item quantity="many">Szukaj %1$s osób</item>
<item quantity="other">Szukaj %1$s osoby</item>
</plurals>
<string name="backup_review_searching_tag">Szukam</string>
<string name="backup_review_service">Serwis</string>
<string name="backup_review_service_followers">Obserwujący</string>
<string name="backup_review_service_rank">Ranking</string>
<string name="backup_review_service_topics">Tematy</string>
<string name="backup_review_services_changed">Zmieniono %1$s z %2$s serwisów</string>
<plurals name="backup_review_services_changed">
<item quantity="one">Zmieniono %1$s z %2$s serwisu</item>
<item quantity="few">Zmieniono %1$s z %2$s serwisów</item>
<item quantity="many">Zmieniono %1$s z %2$s serwisów</item>
<item quantity="other">Zmieniono %1$s z %2$s serwisu</item>
</plurals>
<string name="backup_review_services_changed_explainer">Teraz pochodzą od kogoś innego albo od nikogo</string>
<string name="backup_review_still_blocked">Nadal zablokowana</string>
<string name="backup_review_storing_tag">Przechowywanie</string>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -219,7 +219,10 @@
<string name="geocache_hunt_new">New hunt…</string>
<string name="geocache_hunt_none_yet">You have not made a hunt yet.</string>
<string name="geocache_hunt_already_on">Already on this hunt</string>
<string name="geocache_caches_here">%1$d caches here</string>
<plurals name="geocache_caches_here">
<item quantity="one">%1$d cache here</item>
<item quantity="other">%1$d caches here</item>
</plurals>
<string name="geocache_photo_remove">Remove this photo</string>
<string name="geocache_archived_notice">This cache has been archived. It is no longer in play.</string>
<string name="geocache_ftf_won_by">First to find claimed by %1$s</string>
@@ -278,7 +281,6 @@
<string name="geocache_map_recenter">Centre on me</string>
<string name="geocache_map_long_press">Long-press the map to hide a cache there</string>
<string name="geocache_map_open">Open</string>
<string name="geocache_map_pin_count">%1$d caches</string>
<string name="geocache_new_section_where">Where</string>
<string name="geocache_new_section_what">What</string>
<string name="geocache_new_section_extras">Extras</string>
@@ -306,7 +308,10 @@
<string name="geocache_new_needs_location">Pick where the cache is hidden.</string>
<string name="geocache_hunt_progress">%1$d of %2$d found</string>
<string name="geocache_hunt_start">Start the hunt</string>
<string name="geocache_hunt_caches">%1$d caches</string>
<plurals name="geocache_hunt_caches">
<item quantity="one">%1$d cache</item>
<item quantity="other">%1$d caches</item>
</plurals>
<string name="geocache_hunt_title">Title</string>
<string name="geocache_hunt_description">Description</string>
<string name="geocache_hunt_banner">Banner image</string>
@@ -355,7 +360,10 @@
<string name="qr_scanner_no_code_in_image">No QR code found in that picture</string>
<string name="qr_scanner_clipboard_empty">Nothing on the clipboard to scan</string>
<string name="qr_scanner_pick_one">Tap the code you want</string>
<string name="qr_scanner_sequence_progress">Captured %1$s of %2$s parts — keep going</string>
<plurals name="qr_scanner_sequence_progress">
<item quantity="one">Captured %1$s of %2$s part — keep going</item>
<item quantity="other">Captured %1$s of %2$s parts — keep going</item>
</plurals>
<string name="qr_scanner_zoom_reset">Reset zoom</string>
<string name="qr_scanner_unsupported_title">Amethyst can't open this code</string>
<string name="qr_scanner_unsupported_secret">This code carries a private key or a pairing secret, so its contents are not shown here. Use the screen that expects it.</string>
@@ -5324,7 +5332,10 @@
<string name="cordn_health_unknown">Not contacted yet</string>
<string name="cordn_health_ok">Responding</string>
<string name="cordn_health_down">Not responding</string>
<string name="cordn_health_failures">%1$d failed attempts in a row</string>
<plurals name="cordn_health_failures">
<item quantity="one">%1$d failed attempt in a row</item>
<item quantity="other">%1$d failed attempts in a row</item>
</plurals>
<string name="cordn_link_explainer">Paste a cordn1… link someone shared with you to see which coordinator carries that group, and what that operator would learn about you if you joined.</string>
<string name="cordn_link_field">cordn1…</string>
@@ -5420,7 +5431,10 @@
<string name="cordn_migrate_import">Bring the groups here</string>
<string name="cordn_migrate_importing">Fetching…</string>
<string name="cordn_migrate_replaces_warning">This replaces any cordn groups already on this phone. They cannot be merged.</string>
<string name="cordn_migrate_done">%1$d groups moved</string>
<plurals name="cordn_migrate_done">
<item quantity="one">%1$d group moved</item>
<item quantity="other">%1$d groups moved</item>
</plurals>
<string name="cordn_migrate_no_groups">There are no cordn groups on this device to move.</string>
<string name="cordn_migrate_no_server">Set a media server first — the encrypted documents need somewhere to sit while the other phone fetches them.</string>
<string name="cordn_migrate_exposure_title">What leaves this device</string>
@@ -5446,16 +5460,27 @@
<string name="cyberspace_bag_cancel">Stop</string>
<string name="cyberspace_bag_measuring">Pricing the search on this device…</string>
<string name="cyberspace_bag_progress">Searched %1$s of %2$s regions</string>
<string name="cyberspace_bag_too_slow_minutes">Out of reach: about %1$d minutes of searching on this device</string>
<string name="cyberspace_bag_too_slow_hours">Out of reach: about %1$d hours of searching on this device</string>
<plurals name="cyberspace_bag_too_slow_minutes">
<item quantity="one">Out of reach: about %1$d minute of searching on this device</item>
<item quantity="other">Out of reach: about %1$d minutes of searching on this device</item>
</plurals>
<plurals name="cyberspace_bag_too_slow_hours">
<item quantity="one">Out of reach: about %1$d hour of searching on this device</item>
<item quantity="other">Out of reach: about %1$d hours of searching on this device</item>
</plurals>
<string name="cyberspace_bag_not_found">Not in the box the hint named</string>
<string name="cyberspace_bag_damaged">Found the region, but the contents could not be read</string>
<string name="cyberspace_bag_dropped">%1$d item hidden here did not match its signature and was dropped</string>
<string name="cyberspace_bag_dropped_many">%1$d items hidden here did not match their signatures and were dropped</string>
<plurals name="cyberspace_bag_dropped">
<item quantity="one">%1$d item hidden here did not match its signature and was dropped</item>
<item quantity="other">%1$d items hidden here did not match their signatures and were dropped</item>
</plurals>
<string name="cyberspace_bag_empty">Opened, and there was nothing inside</string>
<string name="cyberspace_bag_unsigned">Unsigned, so this author is a claim</string>
<string name="cyberspace_bag_unknown_kind">An item of kind %1$d, which this client does not draw</string>
<string name="cyberspace_bag_opaque">%1$d bytes of something this client does not read</string>
<plurals name="cyberspace_bag_opaque">
<item quantity="one">%1$d byte of something this client does not read</item>
<item quantity="other">%1$d bytes of something this client does not read</item>
</plurals>
<!-- Browser pill (redesign prototypes, see amethyst/plans/2026-09-26-browser-ui-review.md) -->
<string name="browser_pill_close">Close</string>
<string name="browser_pill_tile_copy">Copy link</string>
@@ -5800,13 +5825,19 @@
<string name="backup_review_renamed">renamed</string>
<string name="backup_review_renamed_tag">Renamed</string>
<string name="backup_review_saved">On this device</string>
<string name="backup_review_search_people">Search %1$s people</string>
<plurals name="backup_review_search_people">
<item quantity="one">Search %1$s person</item>
<item quantity="other">Search %1$s people</item>
</plurals>
<string name="backup_review_searching_tag">Searching</string>
<string name="backup_review_service">Service</string>
<string name="backup_review_service_followers">Followers</string>
<string name="backup_review_service_rank">Rank</string>
<string name="backup_review_service_topics">Topics</string>
<string name="backup_review_services_changed">%1$s of %2$s services changed</string>
<plurals name="backup_review_services_changed">
<item quantity="one">%1$s of %2$s service changed</item>
<item quantity="other">%1$s of %2$s services changed</item>
</plurals>
<string name="backup_review_services_changed_explainer">They now come from someone else, or no one</string>
<string name="backup_review_still_blocked">Still blocked</string>
<string name="backup_review_storing_tag">Storing</string>
@@ -5924,9 +5955,15 @@
<string name="cordn_coordinators_discover_none">Nobody is announcing on your relays.</string>
<string name="cordn_coordinators_discover_seen">Announced %1$s ago</string>
<string name="cordn_coordinators_discover_seen_on">Last announced %1$s</string>
<string name="cordn_coordinators_discover_unheard">Nothing found, and %1$d of your relays did not answer.</string>
<plurals name="cordn_coordinators_discover_unheard">
<item quantity="one">Nothing found, and %1$d of your relays did not answer.</item>
<item quantity="other">Nothing found, and %1$d of your relays did not answer.</item>
</plurals>
<string name="cordn_coordinators_explainer">A coordinator orders one group's messages and is the only thing that can. Losing it loses the ordering, and a second one does not mirror the first — so these are named things you choose, not interchangeable relays.</string>
<string name="cordn_coordinators_health_down">Not answering — %1$d calls in a row have failed. Groups on it are not syncing.</string>
<plurals name="cordn_coordinators_health_down">
<item quantity="one">Not answering — %1$d call in a row has failed. Groups on it are not syncing.</item>
<item quantity="other">Not answering — %1$d calls in a row have failed. Groups on it are not syncing.</item>
</plurals>
<string name="cordn_coordinators_health_ok">Answering.</string>
<string name="cordn_coordinators_health_retrying">A call failed; retrying.</string>
<string name="cordn_coordinators_health_unknown">Nothing asked of it yet.</string>
@@ -5950,7 +5987,10 @@
<string name="cordn_coordinators_server_silent">Answered, but named nothing.</string>
<string name="cordn_coordinators_show_all">Show all %1$d</string>
<string name="cordn_coordinators_show_fewer">Show fewer</string>
<string name="cordn_coordinators_show_older">Show %1$d that stopped announcing</string>
<plurals name="cordn_coordinators_show_older">
<item quantity="one">Show %1$d that stopped announcing</item>
<item quantity="other">Show %1$d that stopped announcing</item>
</plurals>
<string name="cordn_coordinators_stale_note">These have not announced in over a month. Creating a group on one that has gone away will fail.</string>
<string name="cordn_create_action">Create group</string>
<plurals name="cordn_create_action_invite">
@@ -5972,7 +6012,10 @@
<string name="cordn_create_coordinator_new">Another coordinator</string>
<string name="cordn_create_coordinator_pubkey">Coordinator public key (hex or npub)</string>
<string name="cordn_create_coordinator_relays">Relays it answers on, one per line</string>
<string name="cordn_create_coverage_all">Reaches all %1$d of your people</string>
<plurals name="cordn_create_coverage_all">
<item quantity="one">Reaches your %1$d person</item>
<item quantity="other">Reaches all %1$d of your people</item>
</plurals>
<string name="cordn_create_coverage_partial">Reaches %1$d of %2$d &#8212; the rest would be left out</string>
<string name="cordn_create_coverage_unknown">Not checked &#8212; picking it will ask</string>
<string name="cordn_create_description">Description (optional)</string>
@@ -37,6 +37,7 @@ import com.vitorpamplona.amethyst.commons.resources.cordn_health_down
import com.vitorpamplona.amethyst.commons.resources.cordn_health_failures
import com.vitorpamplona.amethyst.commons.resources.cordn_health_ok
import com.vitorpamplona.amethyst.commons.resources.cordn_health_unknown
import org.jetbrains.compose.resources.pluralStringResource
import org.jetbrains.compose.resources.stringResource
/**
@@ -97,7 +98,7 @@ fun CoordinatorHealthRow(
// deserves no words at all.
if (state.isDown) {
Text(
text = stringResource(Res.string.cordn_health_failures, state.consecutiveFailures),
text = pluralStringResource(Res.plurals.cordn_health_failures, state.consecutiveFailures, state.consecutiveFailures),
style = MaterialTheme.typography.labelSmall,
color = MaterialTheme.colorScheme.onSurfaceVariant,
)