From fb471a2e6bfff1d74aa22dd63ebe18660fcb3afb Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 17 Jul 2026 18:40:47 +0000 Subject: [PATCH] refactor(commons): extract Roadstr road-event card to commons MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Eighth batch of the note-ui-commons extraction. The two Roadstr renderers (report kind 1315, confirmation kind 1316) are self-contained except for the map hero, which is a platform tile view. - commons/ui/note/RoadEventCard.kt: RoadEventReportCard(event, map) and RoadEventConfirmationCard(event, map). Commons owns all the logic — the category emoji/color/label palette, the geohash→point resolution, the freshness-based pin opacity, the floating category pill, and the layout. The map arrives as a typed RoadEventMap slot (lat, lon, pinColor, pinEmoji, pinAlpha) so the native LocationPreviewMap stays in the app. Labels resolve via commons Res. - amethyst keeps thin RenderRoadEventReport(Note) / RenderRoadEventConfirmation(Note) entries that decode the event and pass LocationPreviewMap as the slot. - Migrated all 18 road_event_* strings with their locale translations into commons/composeResources; deleted the amethyst copies. Verified: :commons:compileKotlinJvm and :amethyst:compileFdroidDebugKotlin both pass; every touched strings.xml is well-formed. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01Gmrt3jwYPDJ38MJGJ6GaNr --- .../amethyst/ui/note/types/RoadEvent.kt | 282 ++------------- .../src/main/res/values-ar-rSA/strings.xml | 18 - .../src/main/res/values-bn-rBD/strings.xml | 18 - amethyst/src/main/res/values-cs/strings.xml | 18 - .../src/main/res/values-de-rDE/strings.xml | 18 - amethyst/src/main/res/values-de/strings.xml | 18 - .../src/main/res/values-el-rGR/strings.xml | 18 - .../src/main/res/values-eo-rUY/strings.xml | 18 - amethyst/src/main/res/values-eo/strings.xml | 18 - .../src/main/res/values-es-rES/strings.xml | 18 - .../src/main/res/values-es-rMX/strings.xml | 18 - .../src/main/res/values-es-rUS/strings.xml | 18 - amethyst/src/main/res/values-es/strings.xml | 18 - .../src/main/res/values-fa-rIR/strings.xml | 18 - amethyst/src/main/res/values-fa/strings.xml | 18 - .../src/main/res/values-fi-rFI/strings.xml | 18 - .../src/main/res/values-fr-rCA/strings.xml | 16 - .../src/main/res/values-fr-rFR/strings.xml | 18 - amethyst/src/main/res/values-fr/strings.xml | 18 - .../src/main/res/values-hi-rIN/strings.xml | 18 - .../src/main/res/values-hu-rHU/strings.xml | 18 - .../src/main/res/values-in-rID/strings.xml | 18 - amethyst/src/main/res/values-in/strings.xml | 18 - .../src/main/res/values-it-rIT/strings.xml | 18 - .../src/main/res/values-ja-rJP/strings.xml | 18 - amethyst/src/main/res/values-ja/strings.xml | 18 - .../src/main/res/values-ko-rKR/strings.xml | 18 - .../src/main/res/values-lv-rLV/strings.xml | 18 - .../src/main/res/values-nl-rBE/strings.xml | 18 - .../src/main/res/values-nl-rNL/strings.xml | 18 - amethyst/src/main/res/values-nl/strings.xml | 18 - .../src/main/res/values-pl-rPL/strings.xml | 18 - .../src/main/res/values-pt-rBR/strings.xml | 18 - .../src/main/res/values-pt-rPT/strings.xml | 18 - .../src/main/res/values-ru-rRU/strings.xml | 18 - .../src/main/res/values-ru-rUA/strings.xml | 18 - amethyst/src/main/res/values-ru/strings.xml | 18 - .../src/main/res/values-sl-rSI/strings.xml | 18 - .../src/main/res/values-sr-rSP/strings.xml | 18 - .../src/main/res/values-sv-rSE/strings.xml | 18 - amethyst/src/main/res/values-sw/strings.xml | 18 - .../src/main/res/values-ta-rIN/strings.xml | 18 - amethyst/src/main/res/values-ta/strings.xml | 18 - .../src/main/res/values-th-rTH/strings.xml | 18 - amethyst/src/main/res/values-th/strings.xml | 18 - .../src/main/res/values-tr-rTR/strings.xml | 18 - amethyst/src/main/res/values-tr/strings.xml | 18 - .../src/main/res/values-uk-rUA/strings.xml | 18 - amethyst/src/main/res/values-uk/strings.xml | 18 - .../src/main/res/values-uz-rUZ/strings.xml | 18 - .../src/main/res/values-vi-rVN/strings.xml | 18 - .../src/main/res/values-zh-rCN/strings.xml | 18 - .../src/main/res/values-zh-rHK/strings.xml | 18 - .../src/main/res/values-zh-rSG/strings.xml | 18 - .../src/main/res/values-zh-rTW/strings.xml | 18 - amethyst/src/main/res/values-zh/strings.xml | 18 - amethyst/src/main/res/values/strings.xml | 18 - .../values-ar-rSA/strings.xml | 18 + .../values-bn-rBD/strings.xml | 18 + .../composeResources/values-cs/strings.xml | 18 + .../values-de-rDE/strings.xml | 18 + .../composeResources/values-de/strings.xml | 18 + .../values-el-rGR/strings.xml | 18 + .../values-eo-rUY/strings.xml | 18 + .../composeResources/values-eo/strings.xml | 18 + .../values-es-rES/strings.xml | 18 + .../values-es-rMX/strings.xml | 18 + .../values-es-rUS/strings.xml | 18 + .../composeResources/values-es/strings.xml | 18 + .../values-fa-rIR/strings.xml | 18 + .../composeResources/values-fa/strings.xml | 18 + .../values-fi-rFI/strings.xml | 18 + .../values-fr-rCA/strings.xml | 16 + .../values-fr-rFR/strings.xml | 18 + .../composeResources/values-fr/strings.xml | 18 + .../values-hi-rIN/strings.xml | 18 + .../values-hu-rHU/strings.xml | 18 + .../values-in-rID/strings.xml | 18 + .../composeResources/values-in/strings.xml | 18 + .../values-it-rIT/strings.xml | 18 + .../values-ja-rJP/strings.xml | 18 + .../composeResources/values-ja/strings.xml | 18 + .../values-ko-rKR/strings.xml | 18 + .../values-lv-rLV/strings.xml | 18 + .../values-nl-rBE/strings.xml | 18 + .../values-nl-rNL/strings.xml | 18 + .../composeResources/values-nl/strings.xml | 18 + .../values-pl-rPL/strings.xml | 18 + .../values-pt-rBR/strings.xml | 18 + .../values-pt-rPT/strings.xml | 18 + .../values-ru-rRU/strings.xml | 18 + .../values-ru-rUA/strings.xml | 18 + .../composeResources/values-ru/strings.xml | 18 + .../values-sl-rSI/strings.xml | 18 + .../values-sr-rSP/strings.xml | 18 + .../values-sv-rSE/strings.xml | 18 + .../composeResources/values-sw/strings.xml | 18 + .../values-ta-rIN/strings.xml | 18 + .../composeResources/values-ta/strings.xml | 18 + .../values-th-rTH/strings.xml | 18 + .../composeResources/values-th/strings.xml | 18 + .../values-tr-rTR/strings.xml | 18 + .../composeResources/values-tr/strings.xml | 18 + .../values-uk-rUA/strings.xml | 18 + .../composeResources/values-uk/strings.xml | 18 + .../values-uz-rUZ/strings.xml | 18 + .../values-vi-rVN/strings.xml | 18 + .../values-zh-rCN/strings.xml | 18 + .../values-zh-rHK/strings.xml | 18 + .../values-zh-rSG/strings.xml | 18 + .../values-zh-rTW/strings.xml | 18 + .../composeResources/values-zh/strings.xml | 18 + .../composeResources/values/strings.xml | 18 + .../amethyst/commons/ui/note/RoadEventCard.kt | 324 ++++++++++++++++++ 114 files changed, 1354 insertions(+), 1264 deletions(-) create mode 100644 commons/src/commonMain/kotlin/com/vitorpamplona/amethyst/commons/ui/note/RoadEventCard.kt diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/RoadEvent.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/RoadEvent.kt index 3594b98919..b48dcf3402 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/RoadEvent.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/RoadEvent.kt @@ -20,282 +20,48 @@ */ package com.vitorpamplona.amethyst.ui.note.types -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Surface -import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.remember -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.luminance -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.text.style.TextOverflow -import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.commons.ui.note.RoadEventConfirmationCard +import com.vitorpamplona.amethyst.commons.ui.note.RoadEventReportCard import com.vitorpamplona.amethyst.model.Note import com.vitorpamplona.amethyst.ui.note.creators.location.LocationPreviewMap -import com.vitorpamplona.amethyst.ui.theme.placeholderText -import com.vitorpamplona.amethyst.ui.theme.replyModifier import com.vitorpamplona.quartz.experimental.roadstr.confirmation.RoadEventConfirmationEvent -import com.vitorpamplona.quartz.experimental.roadstr.confirmation.tags.RoadEventStatus import com.vitorpamplona.quartz.experimental.roadstr.report.RoadEventReportEvent -import com.vitorpamplona.quartz.experimental.roadstr.report.tags.RoadEventType -import com.vitorpamplona.quartz.nip01Core.tags.geohash.toGeoHash -import com.vitorpamplona.quartz.utils.TimeUtils /** - * Emoji marker for a road event category. Mirrors the icon set of the roadstr - * reference clients () so a report reads the - * same across implementations; keeps the card icon-light and locale-independent. - */ -private fun RoadEventType.emoji(): String = - when (this) { - RoadEventType.POLICE -> "👮" - RoadEventType.SPEED_CAMERA -> "📷" - RoadEventType.TRAFFIC_JAM -> "🚗" - RoadEventType.ACCIDENT -> "💥" - RoadEventType.ROAD_CLOSURE -> "🚫" - RoadEventType.CONSTRUCTION -> "🚧" - RoadEventType.HAZARD -> "⚠️" - RoadEventType.ROAD_CONDITION -> "🛣️" - RoadEventType.POTHOLE -> "🕳️" - RoadEventType.FOG -> "🌫️" - RoadEventType.ICE -> "🧊" - RoadEventType.ANIMAL -> "🦌" - RoadEventType.OTHER -> "ℹ️" - } - -/** - * Per-category pin color. Uses the exact palette from the roadstr reference - * clients () so a pin's color carries the - * same meaning across the network. - */ -private fun RoadEventType.color(): Color = - when (this) { - RoadEventType.POLICE -> Color(0xFF0000FF) - RoadEventType.SPEED_CAMERA -> Color(0xFF800080) - RoadEventType.TRAFFIC_JAM -> Color(0xFFFF8C00) - RoadEventType.ACCIDENT -> Color(0xFFFF0000) - RoadEventType.ROAD_CLOSURE -> Color(0xFF8B0000) - RoadEventType.CONSTRUCTION -> Color(0xFFFFD700) - RoadEventType.HAZARD -> Color(0xFFFF4500) - RoadEventType.ROAD_CONDITION -> Color(0xFF4682B4) - RoadEventType.POTHOLE -> Color(0xFF795548) - RoadEventType.FOG -> Color(0xFF9E9E9E) - RoadEventType.ICE -> Color(0xFF00CED1) - RoadEventType.ANIMAL -> Color(0xFF4CAF50) - RoadEventType.OTHER -> Color(0xFF808080) - } - -private fun RoadEventType.labelRes(): Int = - when (this) { - RoadEventType.POLICE -> R.string.road_event_police - RoadEventType.SPEED_CAMERA -> R.string.road_event_speed_camera - RoadEventType.TRAFFIC_JAM -> R.string.road_event_traffic_jam - RoadEventType.ACCIDENT -> R.string.road_event_accident - RoadEventType.ROAD_CLOSURE -> R.string.road_event_road_closure - RoadEventType.CONSTRUCTION -> R.string.road_event_construction - RoadEventType.HAZARD -> R.string.road_event_hazard - RoadEventType.ROAD_CONDITION -> R.string.road_event_road_condition - RoadEventType.POTHOLE -> R.string.road_event_pothole - RoadEventType.FOG -> R.string.road_event_fog - RoadEventType.ICE -> R.string.road_event_ice - RoadEventType.ANIMAL -> R.string.road_event_animal - RoadEventType.OTHER -> R.string.road_event_other - } - -/** - * Self-contained card for a Roadstr road event report (kind 1315). - * - * A map hero pinned at the event's coordinates, with a floating category pill - * (colored per [RoadEventType.color]) and the optional free-text comment below. - * Identical in the feed and the opened thread view, so it takes no `makeItShort` - * flag — mirroring [RenderBirdex]. + * Entry for a Roadstr road event report (kind 1315): decodes the [Note] and renders the + * shared commons [RoadEventReportCard], supplying the native map hero as its slot. */ @Composable fun RenderRoadEventReport(baseNote: Note) { val noteEvent = baseNote.event as? RoadEventReportEvent ?: return - val type = remember(noteEvent) { noteEvent.roadEventType() } - val comment = remember(noteEvent) { noteEvent.content.trim() } - val point = remember(noteEvent) { noteEvent.roadEventPoint() } - val freshness = remember(noteEvent) { noteEvent.freshnessAlpha() } - - val color = type?.color() ?: MaterialTheme.colorScheme.outline - val emoji = type?.emoji() ?: "📍" - val label = if (type != null) stringResource(type.labelRes()) else stringResource(R.string.road_event_unknown) - - RoadEventCard( - chipColor = color, - chipEmoji = emoji, - chipLabel = label, - point = point, - pinAlpha = freshness, - comment = comment, - ) -} - -/** - * Self-contained card for a Roadstr confirmation/denial (kind 1316). - * - * Same hero/pill layout as a report, with a green ✅ "Still there" or red ❌ - * "No longer there" pill and a one-line description of the action. - */ -@Composable -fun RenderRoadEventConfirmation(baseNote: Note) { - val noteEvent = baseNote.event as? RoadEventConfirmationEvent ?: return - - val status = remember(noteEvent) { noteEvent.status() } - val point = remember(noteEvent) { noteEvent.roadEventPoint() } - - val denied = status == RoadEventStatus.NO_LONGER_THERE - val emoji = if (denied) "❌" else "✅" - val color = if (denied) Color(0xFFF44336) else Color(0xFF4CAF50) - - RoadEventCard( - chipColor = color, - chipEmoji = emoji, - chipLabel = stringResource(if (denied) R.string.road_event_denied else R.string.road_event_confirmed), - point = point, - subtitle = stringResource(if (denied) R.string.road_event_denies_report else R.string.road_event_confirms_report), - ) -} - -/** - * Shared road event card chrome: a full-bleed [LocationPreviewMap] hero with a - * floating [CategoryPill] overlaid on its top-start, and an optional - * [subtitle] + [comment] block below. When [point] is null the pill stands on - * its own so the card still reads. - */ -@Composable -private fun RoadEventCard( - chipColor: Color, - chipEmoji: String, - chipLabel: String, - point: Pair?, - pinAlpha: Float = 1f, - comment: String = "", - subtitle: String? = null, -) { - Column(MaterialTheme.colorScheme.replyModifier) { - if (point != null) { - Box(Modifier.fillMaxWidth()) { - LocationPreviewMap( - latitude = point.first, - longitude = point.second, - pinColor = chipColor, - pinEmoji = chipEmoji, - pinAlpha = pinAlpha, - ) - CategoryPill( - color = chipColor, - emoji = chipEmoji, - label = chipLabel, - modifier = Modifier.align(Alignment.TopStart).padding(10.dp), - ) - } - } else { - CategoryPill( - color = chipColor, - emoji = chipEmoji, - label = chipLabel, - modifier = Modifier.padding(12.dp), - ) - } - - if (subtitle != null || comment.isNotEmpty()) { - Column(Modifier.padding(horizontal = 12.dp, vertical = 10.dp)) { - if (subtitle != null) { - Text( - text = subtitle, - style = MaterialTheme.typography.bodyMedium, - color = MaterialTheme.colorScheme.placeholderText, - ) - } - if (comment.isNotEmpty()) { - if (subtitle != null) Spacer(Modifier.height(4.dp)) - Text( - text = comment, - style = MaterialTheme.typography.bodyMedium, - color = MaterialTheme.colorScheme.onSurface, - maxLines = 4, - overflow = TextOverflow.Ellipsis, - ) - } - } - } - } -} - -/** A floating rounded pill: [emoji] + [label] on a [color] background, text auto-contrasted. */ -@Composable -private fun CategoryPill( - color: Color, - emoji: String, - label: String, - modifier: Modifier = Modifier, -) { - Surface( - modifier = modifier, - color = color, - contentColor = if (color.luminance() > 0.55f) Color.Black else Color.White, - shape = RoundedCornerShape(50), - shadowElevation = 3.dp, - ) { - Text( - text = "$emoji $label", - modifier = Modifier.padding(horizontal = 12.dp, vertical = 5.dp), - style = MaterialTheme.typography.labelLarge, - fontWeight = FontWeight.SemiBold, + RoadEventReportCard(noteEvent) { latitude, longitude, pinColor, pinEmoji, pinAlpha -> + LocationPreviewMap( + latitude = latitude, + longitude = longitude, + pinColor = pinColor, + pinEmoji = pinEmoji, + pinAlpha = pinAlpha, ) } } /** - * Best available coordinate for the card map: the event's explicit `lat`/`lon` - * tags when present, otherwise the center of the finest published geohash. - * Returns null when the event carries no location at all. + * Entry for a Roadstr confirmation/denial (kind 1316): decodes the [Note] and renders the + * shared commons [RoadEventConfirmationCard], supplying the native map hero as its slot. */ -private fun RoadEventReportEvent.roadEventPoint(): Pair? = resolveRoadEventPoint(latitude(), longitude(), geohashes()) +@Composable +fun RenderRoadEventConfirmation(baseNote: Note) { + val noteEvent = baseNote.event as? RoadEventConfirmationEvent ?: return -private fun RoadEventConfirmationEvent.roadEventPoint(): Pair? = resolveRoadEventPoint(latitude(), longitude(), geohashes()) - -private fun resolveRoadEventPoint( - latitude: Double?, - longitude: Double?, - geohashes: List, -): Pair? { - if (latitude != null && longitude != null) return latitude to longitude - - val finest = geohashes.maxByOrNull { it.length } ?: return null - val decoded = runCatching { finest.toGeoHash() }.getOrNull() ?: return null - return decoded.centerLat to decoded.centerLon -} - -/** - * Marker opacity by freshness, matching the roadstr clients: full while the - * report has plenty of life left, dimmed to 0.6 once under 25% of its effective - * TTL remains, and faded to 0.4 once effectively expired. Returns 1f when the - * type (and therefore the TTL) is unknown. - */ -private fun RoadEventReportEvent.freshnessAlpha(now: Long = TimeUtils.now()): Float { - val expiryAt = effectiveExpirationAt() ?: return 1f - val total = expiryAt - createdAt - if (total <= 0L) return 1f - - val fraction = (expiryAt - now).toFloat() / total - return when { - fraction <= 0f -> 0.4f - fraction < 0.25f -> 0.6f - else -> 1f + RoadEventConfirmationCard(noteEvent) { latitude, longitude, pinColor, pinEmoji, pinAlpha -> + LocationPreviewMap( + latitude = latitude, + longitude = longitude, + pinColor = pinColor, + pinEmoji = pinEmoji, + pinAlpha = pinAlpha, + ) } } diff --git a/amethyst/src/main/res/values-ar-rSA/strings.xml b/amethyst/src/main/res/values-ar-rSA/strings.xml index 6e94016085..6528a1af32 100644 --- a/amethyst/src/main/res/values-ar-rSA/strings.xml +++ b/amethyst/src/main/res/values-ar-rSA/strings.xml @@ -2907,24 +2907,6 @@ تبرع على السلسلة - شرطة - كاميرا سرعة - ازدحام مروري - حادث - إغلاق طريق - أعمال إنشائية - خطر - حالة الطريق - حفرة في الطريق - ضباب - جليد - حيوان على الطريق - حدث على الطريق - حدث على الطريق - لا يزال موجودًا - لم يعد موجودًا - يؤكد تقرير طريق - يُفيد بإزالة حدث طريق مبلغ الهدف (sats) صف هدفك ما الذي تجمع التبرعات من أجله؟ diff --git a/amethyst/src/main/res/values-bn-rBD/strings.xml b/amethyst/src/main/res/values-bn-rBD/strings.xml index e57b411714..9d5f4e0701 100644 --- a/amethyst/src/main/res/values-bn-rBD/strings.xml +++ b/amethyst/src/main/res/values-bn-rBD/strings.xml @@ -2786,24 +2786,6 @@ অন-চেইন দান - পুলিশ - স্পিড ক্যামেরা - যানজট - দুর্ঘটনা - রাস্তা বন্ধ - নির্মাণ কাজ - বিপদ - রাস্তার অবস্থা - গর্ত - কুয়াশা - বরফ - রাস্তায় প্রাণী - রাস্তার ঘটনা - রাস্তার ঘটনা - এখনো আছে - আর নেই - একটি রাস্তার রিপোর্ট নিশ্চিত করে - একটি রাস্তার ঘটনা পরিষ্কার হওয়ার রিপোর্ট করে লক্ষ্যমাত্রার পরিমাণ (sats) আপনার লক্ষ্য বর্ণনা করুন আপনি কোন কারণে অর্থ সংগ্রহ করছেন? diff --git a/amethyst/src/main/res/values-cs/strings.xml b/amethyst/src/main/res/values-cs/strings.xml index e9a77e9514..f7f664cbcd 100644 --- a/amethyst/src/main/res/values-cs/strings.xml +++ b/amethyst/src/main/res/values-cs/strings.xml @@ -3800,24 +3800,6 @@ On-chain dar - Policie - Rychlostní radar - Dopravní zácpa - Nehoda - Uzavírka silnice - Stavba - Nebezpečí - Stav vozovky - Výmol - Mlha - Náledí - Zvíře na silnici - Silniční událost - Silniční událost - Stále tam - Již tam není - Potvrzuje hlášení o silnici - Hlásí vyřešení silniční události Cílová částka (sats) 100000 Popište svůj cíl diff --git a/amethyst/src/main/res/values-de-rDE/strings.xml b/amethyst/src/main/res/values-de-rDE/strings.xml index f2579d63ef..0f78f22ab3 100644 --- a/amethyst/src/main/res/values-de-rDE/strings.xml +++ b/amethyst/src/main/res/values-de-rDE/strings.xml @@ -3692,24 +3692,6 @@ On-Chain-Spende - Polizei - Blitzer - Stau - Unfall - Straßensperrung - Baustelle - Gefahr - Straßenzustand - Schlagloch - Nebel - Eis - Tier auf der Straße - Straßenereignis - Straßenereignis - Noch da - Nicht mehr da - Bestätigt einen Straßenbericht - Meldet ein beseitigtes Straßenereignis Zielbetrag (Sats) 100000 Beschreibe dein Ziel diff --git a/amethyst/src/main/res/values-de/strings.xml b/amethyst/src/main/res/values-de/strings.xml index e5cc1eee07..65271b793f 100644 --- a/amethyst/src/main/res/values-de/strings.xml +++ b/amethyst/src/main/res/values-de/strings.xml @@ -5188,41 +5188,23 @@ anz der Bedingungen ist erforderlich Apps & Sites -Unfall -Tier auf der Straße -Noch da -Bestätigt einen Straßenbericht -Baustelle -Nicht mehr da -Meldet ein beseitigtes Straßenereignis -Nebel -Gefahr -Eis -Straßenereignis -Polizei -Schlagloch -Straßensperrung -Straßenzustand -Blitzer -Stau -Straßenereignis Apps diff --git a/amethyst/src/main/res/values-el-rGR/strings.xml b/amethyst/src/main/res/values-el-rGR/strings.xml index 83c031e22e..c49ea974ef 100644 --- a/amethyst/src/main/res/values-el-rGR/strings.xml +++ b/amethyst/src/main/res/values-el-rGR/strings.xml @@ -2732,24 +2732,6 @@ Δωρεά on-chain - Αστυνομία - Κάμερα ταχύτητας - Κυκλοφοριακή συμφόρηση - Ατύχημα - Αποκλεισμός δρόμου - Κατασκευές - Κίνδυνος - Κατάσταση δρόμου - Λακκούβα - Ομίχλη - Πάγος - Ζώο στο δρόμο - Οδικό συμβάν - Οδικό συμβάν - Υπάρχει ακόμη - Δεν υπάρχει πλέον - Επιβεβαιώνει οδική αναφορά - Αναφέρει ότι το οδικό συμβάν έχει εκκαθαριστεί Ποσό στόχου (sats) Περιγράψτε τον στόχο σας Για τι μαζεύετε χρήματα; diff --git a/amethyst/src/main/res/values-eo-rUY/strings.xml b/amethyst/src/main/res/values-eo-rUY/strings.xml index e4ea3609ae..3e1cde01ce 100644 --- a/amethyst/src/main/res/values-eo-rUY/strings.xml +++ b/amethyst/src/main/res/values-eo-rUY/strings.xml @@ -2789,24 +2789,6 @@ Donaco en ĉeno - Polico - Rapideca fotilo - Trafika ŝtopado - Akcidento - Voja fermo - Konstruado - Danĝero - Voja stato - Trua vojo - Nebulo - Glacio - Besto sur la vojo - Voja evento - Voja evento - Ankoraŭ tie - Ne plu tie - Konfirmas vojan raporton - Raportas ke voja evento malaperis Celosummo (sats) Priskribu vian celon Por kio vi kolektas monon? diff --git a/amethyst/src/main/res/values-eo/strings.xml b/amethyst/src/main/res/values-eo/strings.xml index fe9d344f1e..8ea0320db6 100644 --- a/amethyst/src/main/res/values-eo/strings.xml +++ b/amethyst/src/main/res/values-eo/strings.xml @@ -2642,24 +2642,6 @@ %1$s financita el %2$s sats celo Finiĝas %1$s Donaco en ĉeno -Polico -Rapideca fotilo -Trafika ŝtopado -Akcidento -Voja fermo -Konstruado -Danĝero -Voja stato -Trua vojo -Nebulo -Glacio -Besto sur la vojo -Voja evento -Voja evento -Ankoraŭ tie -Ne plu tie -Konfirmas vojan raporton -Raportas ke voja evento malaperis Celosummo (sats) 100000 Priskribu vian celon diff --git a/amethyst/src/main/res/values-es-rES/strings.xml b/amethyst/src/main/res/values-es-rES/strings.xml index ada38428e5..20d7176226 100644 --- a/amethyst/src/main/res/values-es-rES/strings.xml +++ b/amethyst/src/main/res/values-es-rES/strings.xml @@ -2853,24 +2853,6 @@ Donación on-chain - Policía - Radar de velocidad - Atasco de tráfico - Accidente - Corte de carretera - Obras - Peligro - Estado de la vía - Bache - Niebla - Hielo - Animal en la carretera - Incidencia vial - Incidencia vial - Sigue ahí - Ya no está - Confirma un aviso de tráfico - Informa de que la incidencia vial ha desaparecido Importe del objetivo (sats) Describe tu objetivo ¿Para qué estás recaudando fondos? diff --git a/amethyst/src/main/res/values-es-rMX/strings.xml b/amethyst/src/main/res/values-es-rMX/strings.xml index 40b8cf1444..35578feab1 100644 --- a/amethyst/src/main/res/values-es-rMX/strings.xml +++ b/amethyst/src/main/res/values-es-rMX/strings.xml @@ -2844,24 +2844,6 @@ Donación on-chain - Policía - Radar de velocidad - Atasco de tráfico - Accidente - Corte de carretera - Obras - Peligro - Estado de la vía - Bache - Niebla - Hielo - Animal en la carretera - Incidencia vial - Incidencia vial - Sigue ahí - Ya no está - Confirma un aviso de tráfico - Informa de que la incidencia vial ha desaparecido Importe del objetivo (sats) Describe tu objetivo ¿Para qué estás recaudando fondos? diff --git a/amethyst/src/main/res/values-es-rUS/strings.xml b/amethyst/src/main/res/values-es-rUS/strings.xml index 4245ad759f..68f8acb024 100644 --- a/amethyst/src/main/res/values-es-rUS/strings.xml +++ b/amethyst/src/main/res/values-es-rUS/strings.xml @@ -2844,24 +2844,6 @@ Donación on-chain - Policía - Radar de velocidad - Atasco de tráfico - Accidente - Corte de carretera - Obras - Peligro - Estado de la vía - Bache - Niebla - Hielo - Animal en la carretera - Incidencia vial - Incidencia vial - Sigue ahí - Ya no está - Confirma un aviso de tráfico - Informa de que la incidencia vial ha desaparecido Importe del objetivo (sats) Describe tu objetivo ¿Para qué estás recaudando fondos? diff --git a/amethyst/src/main/res/values-es/strings.xml b/amethyst/src/main/res/values-es/strings.xml index 74a91294eb..8c9793cf3a 100644 --- a/amethyst/src/main/res/values-es/strings.xml +++ b/amethyst/src/main/res/values-es/strings.xml @@ -2822,41 +2822,23 @@ No se pudo crear una factura de Lightning desde %1$s: no se encontró el elemento pr en el JSON resultante. -Policía -Radar de velocidad -Atasco de tráfico -Accidente -Corte de carretera -Obras -Peligro -Estado de la vía -Bache -Niebla -Hielo -Animal en la carretera -Incidencia vial -Incidencia vial -Sigue ahí -Ya no está -Confirma un aviso de tráfico -Informa de que la incidencia vial ha desaparecido Importe del objetivo (sats) diff --git a/amethyst/src/main/res/values-fa-rIR/strings.xml b/amethyst/src/main/res/values-fa-rIR/strings.xml index 844289070b..438a73489a 100644 --- a/amethyst/src/main/res/values-fa-rIR/strings.xml +++ b/amethyst/src/main/res/values-fa-rIR/strings.xml @@ -2801,24 +2801,6 @@ اهدای آن‌چین - پلیس - دوربین سرعت‌سنج - ترافیک - تصادف - بسته بودن جاده - عملیات عمرانی - خطر - وضعیت جاده - چاله - مه - یخ - حیوان روی جاده - رویداد جاده‌ای - رویداد جاده‌ای - هنوز هست - دیگر نیست - گزارش جاده را تأیید می‌کند - رفع رویداد جاده‌ای را گزارش می‌دهد مبلغ هدف (sat) هدف خود را توضیح دهید برای چه چیزی جمع‌آوری کمک می‌کنید؟ diff --git a/amethyst/src/main/res/values-fa/strings.xml b/amethyst/src/main/res/values-fa/strings.xml index 2364a0154e..3160483630 100644 --- a/amethyst/src/main/res/values-fa/strings.xml +++ b/amethyst/src/main/res/values-fa/strings.xml @@ -3481,41 +3481,23 @@ - پلیس - دوربین سرعت‌سنج - ترافیک - تصادف - بسته بودن جاده - عملیات عمرانی - خطر - وضعیت جاده - چاله - مه - یخ - حیوان روی جاده - رویداد جاده‌ای - رویداد جاده‌ای - هنوز هست - دیگر نیست - گزارش جاده را تأیید می‌کند - رفع رویداد جاده‌ای را گزارش می‌دهد مبلغ هدف (sat) diff --git a/amethyst/src/main/res/values-fi-rFI/strings.xml b/amethyst/src/main/res/values-fi-rFI/strings.xml index af67847c05..bbfa6fd2c3 100644 --- a/amethyst/src/main/res/values-fi-rFI/strings.xml +++ b/amethyst/src/main/res/values-fi-rFI/strings.xml @@ -2761,24 +2761,6 @@ On-chain-lahjoitus - Poliisi - Nopeusvalvontakamera - Ruuhka - Onnettomuus - Tiesulku - Tietyö - Vaara - Tien kunto - Kuoppa - Sumu - Jää - Eläin tiellä - Tietapahtuma - Tietapahtuma - Edelleen siellä - Ei enää siellä - Vahvistaa tieilmoituksen - Ilmoittaa tietapahtuman selvitetyksi Tavoitesumma (sat) Kuvaile tavoitteesi Mihin keräät varoja? diff --git a/amethyst/src/main/res/values-fr-rCA/strings.xml b/amethyst/src/main/res/values-fr-rCA/strings.xml index 73d4df5320..ea56aea1c8 100644 --- a/amethyst/src/main/res/values-fr-rCA/strings.xml +++ b/amethyst/src/main/res/values-fr-rCA/strings.xml @@ -2686,22 +2686,6 @@ Don on-chain - Radar - Embouteillage - Route fermée - Travaux - Danger - État de la route - Nid-de-poule - Brouillard - Verglas - Animal sur la route - Événement routier - Événement routier - Toujours présent - Plus là - Confirme un signalement routier - Signale un événement routier résolu Montant de l\'objectif (sats) Décrivez votre objectif Pour quoi collectez-vous des fonds ? diff --git a/amethyst/src/main/res/values-fr-rFR/strings.xml b/amethyst/src/main/res/values-fr-rFR/strings.xml index 5c330ac37d..05e2da6eb2 100644 --- a/amethyst/src/main/res/values-fr-rFR/strings.xml +++ b/amethyst/src/main/res/values-fr-rFR/strings.xml @@ -3070,24 +3070,6 @@ Don on-chain - Police - Radar - Embouteillage - Accident - Route fermée - Travaux - Danger - État de la route - Nid-de-poule - Brouillard - Verglas - Animal sur la route - Événement routier - Événement routier - Toujours présent - Plus là - Confirme un signalement routier - Signale un événement routier résolu Montant de l\'objectif (sats) 100000 Décrivez votre objectif diff --git a/amethyst/src/main/res/values-fr/strings.xml b/amethyst/src/main/res/values-fr/strings.xml index 2ed988aab9..d6e4d5c848 100644 --- a/amethyst/src/main/res/values-fr/strings.xml +++ b/amethyst/src/main/res/values-fr/strings.xml @@ -4807,41 +4807,23 @@ -Police -Radar -Embouteillage -Accident -Route fermée -Travaux -Danger -État de la route -Nid-de-poule -Brouillard -Verglas -Animal sur la route -Événement routier -Événement routier -Toujours présent -Plus là -Confirme un signalement routier -Signale un événement routier résolu Montant de l\'objectif (sats) diff --git a/amethyst/src/main/res/values-hi-rIN/strings.xml b/amethyst/src/main/res/values-hi-rIN/strings.xml index dbeb0359ff..89d555f344 100644 --- a/amethyst/src/main/res/values-hi-rIN/strings.xml +++ b/amethyst/src/main/res/values-hi-rIN/strings.xml @@ -3606,24 +3606,6 @@ खण्डश्रृंखलाबद्ध दान - रक्षापालिका - गति चित्रग्राहक - यातायात अचलता - दुर्घटना - मार्ग आवृत - निर्माण - संकट - मार्ग परिस्थिति - गड्ढा - धूमिका - हिम - मार्ग पर मृग - मार्ग घटना - मार्ग घटना - अब भी वहीं - अब वहाँ नहीं - मार्ग सूचना की पुष्टि - सूचना की मार्ग घटना हटाया गया उद्देश्य मात्रा (साट्स) १००००० आपके उद्देश्य का विवरण करें diff --git a/amethyst/src/main/res/values-hu-rHU/strings.xml b/amethyst/src/main/res/values-hu-rHU/strings.xml index a61d513c4e..abe0558a08 100644 --- a/amethyst/src/main/res/values-hu-rHU/strings.xml +++ b/amethyst/src/main/res/values-hu-rHU/strings.xml @@ -3578,24 +3578,6 @@ Láncon belüli adomány - Rendőrség - Sebességmérő kamera - Forgalmi dugó - Baleset - Útlezárás - Útépítés - Veszély - Útviszonyok - Kátyú - Köd - Jég - Állat az úton - Útesemény - Útesemény - Még mindig ott van - Már nincs ott - Útjelentés megerősítése - Útlezárás feloldásának jelentése Célösszeg (satoshiban) 100 000 Cél leírása, bemutatása diff --git a/amethyst/src/main/res/values-in-rID/strings.xml b/amethyst/src/main/res/values-in-rID/strings.xml index cd5144079c..cd94699cd6 100644 --- a/amethyst/src/main/res/values-in-rID/strings.xml +++ b/amethyst/src/main/res/values-in-rID/strings.xml @@ -2689,24 +2689,6 @@ Seharusnya %3$s Donasi on-chain - Polisi - Kamera kecepatan - Kemacetan - Kecelakaan - Penutupan jalan - Konstruksi - Bahaya - Kondisi jalan - Lubang jalan - Kabut - Es - Hewan di jalan - Kejadian jalan - Kejadian jalan - Masih ada - Sudah tidak ada - Mengonfirmasi laporan jalan - Melaporkan kejadian jalan telah selesai Jumlah target (sats) Deskripsikan tujuan Anda Apa yang Anda galang dananya? diff --git a/amethyst/src/main/res/values-in/strings.xml b/amethyst/src/main/res/values-in/strings.xml index 5c2ba9d348..d3450332f4 100644 --- a/amethyst/src/main/res/values-in/strings.xml +++ b/amethyst/src/main/res/values-in/strings.xml @@ -3806,41 +3806,23 @@ - Polisi - Kamera kecepatan - Kemacetan - Kecelakaan - Penutupan jalan - Konstruksi - Bahaya - Kondisi jalan - Lubang jalan - Kabut - Es - Hewan di jalan - Kejadian jalan - Kejadian jalan - Masih ada - Sudah tidak ada - Mengonfirmasi laporan jalan - Melaporkan kejadian jalan telah selesai Jumlah target (sats) diff --git a/amethyst/src/main/res/values-it-rIT/strings.xml b/amethyst/src/main/res/values-it-rIT/strings.xml index 1d5002ef96..521e31a559 100644 --- a/amethyst/src/main/res/values-it-rIT/strings.xml +++ b/amethyst/src/main/res/values-it-rIT/strings.xml @@ -2728,24 +2728,6 @@ Donazione on-chain - Polizia - Autovelox - Ingorgo - Incidente - Strada chiusa - Lavori in corso - Pericolo - Condizioni stradali - Buca - Nebbia - Ghiaccio - Animale sulla strada - Evento stradale - Evento stradale - Ancora presente - Non più presente - Conferma una segnalazione stradale - Segnala un evento stradale risolto Importo obiettivo (sats) Descrivi il tuo obiettivo Per cosa stai raccogliendo fondi? diff --git a/amethyst/src/main/res/values-ja-rJP/strings.xml b/amethyst/src/main/res/values-ja-rJP/strings.xml index 43c33590d1..3480c2bc0b 100644 --- a/amethyst/src/main/res/values-ja-rJP/strings.xml +++ b/amethyst/src/main/res/values-ja-rJP/strings.xml @@ -2744,24 +2744,6 @@ オンチェーン寄付 - 警察 - 速度カメラ - 渋滞 - 事故 - 通行止め - 工事 - 危険 - 路面状況 - ポットホール - - 凍結 - 動物が道路上に - 道路上のイベント - 道路上のイベント - まだあります - もうありません - 道路レポートを確認 - 道路イベントの解消を報告 ゴール金額(sats) ゴールを説明してください 何のための資金調達ですか? diff --git a/amethyst/src/main/res/values-ja/strings.xml b/amethyst/src/main/res/values-ja/strings.xml index 8b70154c94..6b3470b4c4 100644 --- a/amethyst/src/main/res/values-ja/strings.xml +++ b/amethyst/src/main/res/values-ja/strings.xml @@ -3895,41 +3895,23 @@ - 警察 - 速度カメラ - 渋滞 - 事故 - 通行止め - 工事 - 危険 - 路面状況 - ポットホール - - 凍結 - 動物が道路上に - 道路上のイベント - 道路上のイベント - まだあります - もうありません - 道路レポートを確認 - 道路イベントの解消を報告 ゴール金額(sats) diff --git a/amethyst/src/main/res/values-ko-rKR/strings.xml b/amethyst/src/main/res/values-ko-rKR/strings.xml index a718ae79cb..330d8f0428 100644 --- a/amethyst/src/main/res/values-ko-rKR/strings.xml +++ b/amethyst/src/main/res/values-ko-rKR/strings.xml @@ -2731,24 +2731,6 @@ 온체인 기부 - 경찰 - 과속 카메라 - 교통 정체 - 사고 - 도로 폐쇄 - 공사 중 - 위험 - 도로 상태 - 포트홀 - 안개 - 결빙 - 도로 위 동물 - 도로 이벤트 - 도로 이벤트 - 아직 있음 - 더 이상 없음 - 도로 신고를 확인함 - 도로 이벤트 해소를 보고함 목표 금액 (sats) 목표 설명 무엇을 위해 모금하시나요? diff --git a/amethyst/src/main/res/values-lv-rLV/strings.xml b/amethyst/src/main/res/values-lv-rLV/strings.xml index 12afe31ffb..8aeced143b 100644 --- a/amethyst/src/main/res/values-lv-rLV/strings.xml +++ b/amethyst/src/main/res/values-lv-rLV/strings.xml @@ -2805,24 +2805,6 @@ Ziedojums ķēdē - Policija - Ātruma kamera - Sastrēgums - Avārija - Ceļa slēgšana - Būvdarbi - Bīstamība - Ceļa stāvoklis - Bedre - Migla - Ledus - Dzīvnieks uz ceļa - Ceļa notikums - Ceļa notikums - Joprojām tur - Vairs nav tur - Apstiprina ceļa ziņojumu - Ziņo par ceļa notikuma novēršanu Mērķa summa (sats) Aprakstiet savu mērķi Par ko jūs vācāt līdzekļus? diff --git a/amethyst/src/main/res/values-nl-rBE/strings.xml b/amethyst/src/main/res/values-nl-rBE/strings.xml index 288acfca93..a1b460d3aa 100644 --- a/amethyst/src/main/res/values-nl-rBE/strings.xml +++ b/amethyst/src/main/res/values-nl-rBE/strings.xml @@ -5861,41 +5861,23 @@ %1$d mints -Politie -Flitser -File -Ongeluk -Wegafsluiting -Wegwerkzaamheden -Gevaar -Wegomstandigheid -Kuil in de weg -Mist -Ijs -Dier op de weg -Weggebeurtenis -Weggebeurtenis -Nog steeds aanwezig -Niet meer aanwezig -Bevestigt een wegmelding -Meldt dat een weggebeurtenis voorbij is Marmot-groepen diff --git a/amethyst/src/main/res/values-nl-rNL/strings.xml b/amethyst/src/main/res/values-nl-rNL/strings.xml index 20ad9e6e70..6154833425 100644 --- a/amethyst/src/main/res/values-nl-rNL/strings.xml +++ b/amethyst/src/main/res/values-nl-rNL/strings.xml @@ -3133,24 +3133,6 @@ On-chain donatie - Politie - Flitser - File - Ongeluk - Wegafsluiting - Wegwerkzaamheden - Gevaar - Wegomstandigheid - Kuil in de weg - Mist - IJs - Dier op de weg - Weggebeurtenis - Weggebeurtenis - Nog steeds aanwezig - Niet meer aanwezig - Bevestigt een wegmelding - Meldt dat een weggebeurtenis voorbij is Doelbedrag (sats) 100000 Beschrijf je doel diff --git a/amethyst/src/main/res/values-nl/strings.xml b/amethyst/src/main/res/values-nl/strings.xml index 1cfaf42c21..78031c804d 100644 --- a/amethyst/src/main/res/values-nl/strings.xml +++ b/amethyst/src/main/res/values-nl/strings.xml @@ -5144,41 +5144,23 @@ %1$d mints -Politie -Flitser -File -Ongeluk -Wegafsluiting -Wegwerkzaamheden -Gevaar -Wegomstandigheid -Kuil in de weg -Mist -Ijs -Dier op de weg -Weggebeurtenis -Weggebeurtenis -Nog steeds aanwezig -Niet meer aanwezig -Bevestigt een wegmelding -Meldt dat een weggebeurtenis voorbij is Marmot-groepen diff --git a/amethyst/src/main/res/values-pl-rPL/strings.xml b/amethyst/src/main/res/values-pl-rPL/strings.xml index e5c3952397..114acf6ed1 100644 --- a/amethyst/src/main/res/values-pl-rPL/strings.xml +++ b/amethyst/src/main/res/values-pl-rPL/strings.xml @@ -3795,24 +3795,6 @@ Zaplanowane posty z innych kont nie zostaną opublikowane, dopóki to konto jest Darowizna on-chain - Policja - Fotoradar - Korek - Wypadek - Droga zamknięta - Roboty drogowe - Zagrożenie - Uszkodzenie nawierzchni - Wyboje - Mgła - Oblodzenie - Zwierzęta na drodze - Wydarzenie drogowe - Wydarzenie drogowe - Wciąż tam - Już tam nie ma - Potwierdzenie zgłoszenia drogowego - Zgłasza, że wypadek został usunięty Kwota zbiorki (w satoszach) 100000 Opisz cel zbiórki diff --git a/amethyst/src/main/res/values-pt-rBR/strings.xml b/amethyst/src/main/res/values-pt-rBR/strings.xml index a9708f4a63..f8fb8ade9c 100644 --- a/amethyst/src/main/res/values-pt-rBR/strings.xml +++ b/amethyst/src/main/res/values-pt-rBR/strings.xml @@ -3690,24 +3690,6 @@ Doação on-chain - Polícia - Radar de velocidade - Congestionamento - Acidente - Via fechada - Obras - Perigo - Condição da via - Buraco na pista - Neblina - Gelo - Animal na pista - Evento na via - Evento na via - Ainda está lá - Não está mais lá - Confirma um relato de trânsito - Informa que o evento de trânsito foi resolvido Valor da meta (sats) 100000 Descreva sua meta diff --git a/amethyst/src/main/res/values-pt-rPT/strings.xml b/amethyst/src/main/res/values-pt-rPT/strings.xml index 267ea97e22..c2a4b07351 100644 --- a/amethyst/src/main/res/values-pt-rPT/strings.xml +++ b/amethyst/src/main/res/values-pt-rPT/strings.xml @@ -2748,24 +2748,6 @@ Doação on-chain - Polícia - Radar de velocidade - Congestionamento - Acidente - Via fechada - Obras - Perigo - Condição da via - Buraco na pista - Neblina - Gelo - Animal na pista - Evento na via - Evento na via - Ainda está lá - Não está mais lá - Confirma um relato de trânsito - Informa que o evento de trânsito foi resolvido Valor da meta (sats) Descreva sua meta Para que você está arrecadando fundos? diff --git a/amethyst/src/main/res/values-ru-rRU/strings.xml b/amethyst/src/main/res/values-ru-rRU/strings.xml index 12a429c16d..19794fb631 100644 --- a/amethyst/src/main/res/values-ru-rRU/strings.xml +++ b/amethyst/src/main/res/values-ru-rRU/strings.xml @@ -2826,24 +2826,6 @@ Пожертвование on-chain - Полиция - Камера контроля скорости - Пробка - Авария - Перекрытие дороги - Дорожные работы - Опасность - Состояние дороги - Выбоина - Туман - Гололёд - Животное на дороге - Дорожное событие - Дорожное событие - Всё ещё там - Уже нет - Подтверждает дорожное сообщение - Сообщает об устранении дорожного события Целевая сумма (sats) Опишите вашу цель На что вы собираете средства? diff --git a/amethyst/src/main/res/values-ru-rUA/strings.xml b/amethyst/src/main/res/values-ru-rUA/strings.xml index 481a04ba07..0118dec221 100644 --- a/amethyst/src/main/res/values-ru-rUA/strings.xml +++ b/amethyst/src/main/res/values-ru-rUA/strings.xml @@ -2809,24 +2809,6 @@ Пожертвование on-chain - Полиция - Камера контроля скорости - Пробка - Авария - Перекрытие дороги - Дорожные работы - Опасность - Состояние дороги - Выбоина - Туман - Гололёд - Животное на дороге - Дорожное событие - Дорожное событие - Всё ещё там - Уже нет - Подтверждает дорожное сообщение - Сообщает об устранении дорожного события Целевая сумма (sats) Опишите вашу цель На что вы собираете средства? diff --git a/amethyst/src/main/res/values-ru/strings.xml b/amethyst/src/main/res/values-ru/strings.xml index 6976b3aec9..3eec8d3375 100644 --- a/amethyst/src/main/res/values-ru/strings.xml +++ b/amethyst/src/main/res/values-ru/strings.xml @@ -3651,41 +3651,23 @@ - Полиция - Камера контроля скорости - Пробка - Авария - Перекрытие дороги - Дорожные работы - Опасность - Состояние дороги - Выбоина - Туман - Гололёд - Животное на дороге - Дорожное событие - Дорожное событие - Всё ещё там - Уже нет - Подтверждает дорожное сообщение - Сообщает об устранении дорожного события Целевая сумма (sats) diff --git a/amethyst/src/main/res/values-sl-rSI/strings.xml b/amethyst/src/main/res/values-sl-rSI/strings.xml index d06f2650ea..6015efd681 100644 --- a/amethyst/src/main/res/values-sl-rSI/strings.xml +++ b/amethyst/src/main/res/values-sl-rSI/strings.xml @@ -3396,24 +3396,6 @@ Za ohranitev zasebnosti to denarnico polni in prazni prek ne-zasebnih računov, On-chain donacija - Policija - Hitrostna kamera - Zastoj - Nesreča - Cesta zaprta - Delo na cesti - Nevernost - Stanje cest - Udarna jama - Megla - Led - Žival na cestišču - Dogodek na cesti - Dogodek na cesti - Še vedno tam - Ni več tam - Potrdi prometno poročilo - Označi kot odstranjeno Ciljni znesek (sat) 100000 Opiši svoj cilj diff --git a/amethyst/src/main/res/values-sr-rSP/strings.xml b/amethyst/src/main/res/values-sr-rSP/strings.xml index 808dc2f386..75b07fff6b 100644 --- a/amethyst/src/main/res/values-sr-rSP/strings.xml +++ b/amethyst/src/main/res/values-sr-rSP/strings.xml @@ -2787,24 +2787,6 @@ Donacija na lancu - Policija - Radar - Saobraćajna gužva - Nesreća - Zatvaranje puta - Gradnja - Opasnost - Stanje puta - Rupa na putu - Magla - Led - Životinja na putu - Saobraćajni događaj - Saobraćajni događaj - I dalje postoji - Više ne postoji - Potvrđuje saobraćajni izveštaj - Prijavljuje da je saobraćajni događaj rešen Iznos cilja (sats) Opišite vaš cilj Za šta skupljate sredstva? diff --git a/amethyst/src/main/res/values-sv-rSE/strings.xml b/amethyst/src/main/res/values-sv-rSE/strings.xml index 6ae3a9618e..34a8973e83 100644 --- a/amethyst/src/main/res/values-sv-rSE/strings.xml +++ b/amethyst/src/main/res/values-sv-rSE/strings.xml @@ -3690,24 +3690,6 @@ On-chain-donation - Polis - Fartkamera - Trafikstockning - Olycka - Vägavstängning - Vägarbete - Fara - Vägförhållanden - Väggropar - Dimma - Is - Djur på vägen - Väghändelse - Väghändelse - Finns kvar - Finns inte längre - Bekräftar en vägrapport - Rapporterar att en väghändelse är borta Målbelopp (sats) 100000 Beskriv ditt mål diff --git a/amethyst/src/main/res/values-sw/strings.xml b/amethyst/src/main/res/values-sw/strings.xml index 9d15db4bea..94dcbde5d8 100644 --- a/amethyst/src/main/res/values-sw/strings.xml +++ b/amethyst/src/main/res/values-sw/strings.xml @@ -2769,24 +2769,6 @@ Mchango wa on-chain - Polisi - Kamera ya kasi - Msongamano wa magari - Ajali - Kufungwa kwa barabara - Ujenzi - Hatari - Hali ya barabara - Shimo barabarani - Ukungu - Barafu - Mnyama barabarani - Tukio la barabara - Tukio la barabara - Bado ipo - Haipo tena - Inathibitisha ripoti ya barabara - Inaripoti tukio la barabara kuisha Kiasi cha lengo (sats) Elezea lengo lako Unakusanya fedha kwa nini? diff --git a/amethyst/src/main/res/values-ta-rIN/strings.xml b/amethyst/src/main/res/values-ta-rIN/strings.xml index 8bb35e614a..0f13942cc0 100644 --- a/amethyst/src/main/res/values-ta-rIN/strings.xml +++ b/amethyst/src/main/res/values-ta-rIN/strings.xml @@ -2757,24 +2757,6 @@ ஆன்-சேயின் நன்கொடை - காவல்துறை - வேக கண்காணிப்பு கேமரா - போக்குவரத்து நெரிசல் - விபத்து - சாலை மூடல் - கட்டுமானம் - ஆபத்து - சாலை நிலை - குழி - மூடுபனி - பனி - சாலையில் விலங்கு - சாலை நிகழ்வு - சாலை நிகழ்வு - இன்னும் உள்ளது - இனி இல்லை - சாலை அறிக்கையை உறுதிப்படுத்துகிறது - சாலை நிகழ்வு தீர்க்கப்பட்டதை அறிவிக்கிறது இலக்கு தொகை (sats) உங்கள் இலக்கை விவரிக்கவும் எதற்காக நிதி திரட்டுகிறீர்கள்? diff --git a/amethyst/src/main/res/values-ta/strings.xml b/amethyst/src/main/res/values-ta/strings.xml index c40f864409..6f1dbf51f4 100644 --- a/amethyst/src/main/res/values-ta/strings.xml +++ b/amethyst/src/main/res/values-ta/strings.xml @@ -2642,24 +2642,6 @@ %2$s sats இலக்கில் %1$s நிதியளிக்கப்பட்டது %1$s அன்று முடிகிறது ஆன்-சேயின் நன்கொடை -காவல்துறை -வேக கண்காணிப்பு கேமரா -போக்குவரத்து நெரிசல் -விபத்து -சாலை மூடல் -கட்டுமானம் -ஆபத்து -சாலை நிலை -குழி -மூடுபனி -பனி -சாலையில் விலங்கு -சாலை நிகழ்வு -சாலை நிகழ்வு -இன்னும் உள்ளது -இனி இல்லை -சாலை அறிக்கையை உறுதிப்படுத்துகிறது -சாலை நிகழ்வு தீர்க்கப்பட்டதை அறிவிக்கிறது இலக்கு தொகை (sats) 100000 உங்கள் இலக்கை விவரிக்கவும் diff --git a/amethyst/src/main/res/values-th-rTH/strings.xml b/amethyst/src/main/res/values-th-rTH/strings.xml index cb19a8b4de..b12e650359 100644 --- a/amethyst/src/main/res/values-th-rTH/strings.xml +++ b/amethyst/src/main/res/values-th-rTH/strings.xml @@ -2593,24 +2593,6 @@ การบริจาคบน on-chain - ตำรวจ - กล้องจับความเร็ว - การจราจรติดขัด - อุบัติเหตุ - ถนนปิด - การก่อสร้าง - อันตราย - สภาพถนน - หลุมบ่อ - หมอก - น้ำแข็งบนถนน - สัตว์บนถนน - เหตุการณ์บนถนน - เหตุการณ์บนถนน - ยังคงอยู่ - ไม่มีแล้ว - ยืนยันรายงานบนถนน - รายงานว่าเหตุการณ์บนถนนสิ้นสุดแล้ว จำนวนเป้าหมาย (sats) อธิบายเป้าหมายของคุณ คุณระดมทุนเพื่ออะไร? diff --git a/amethyst/src/main/res/values-th/strings.xml b/amethyst/src/main/res/values-th/strings.xml index dfeb0f3c6e..c493757ec0 100644 --- a/amethyst/src/main/res/values-th/strings.xml +++ b/amethyst/src/main/res/values-th/strings.xml @@ -3568,41 +3568,23 @@ - ตำรวจ - กล้องจับความเร็ว - การจราจรติดขัด - อุบัติเหตุ - ถนนปิด - การก่อสร้าง - อันตราย - สภาพถนน - หลุมบ่อ - หมอก - น้ำแข็งบนถนน - สัตว์บนถนน - เหตุการณ์บนถนน - เหตุการณ์บนถนน - ยังคงอยู่ - ไม่มีแล้ว - ยืนยันรายงานบนถนน - รายงานว่าเหตุการณ์บนถนนสิ้นสุดแล้ว จำนวนเป้าหมาย (sats) diff --git a/amethyst/src/main/res/values-tr-rTR/strings.xml b/amethyst/src/main/res/values-tr-rTR/strings.xml index 596b24b1f5..93266215bc 100644 --- a/amethyst/src/main/res/values-tr-rTR/strings.xml +++ b/amethyst/src/main/res/values-tr-rTR/strings.xml @@ -2769,24 +2769,6 @@ Zincir üstü bağış - Polis - Hız kamerası - Trafik sıkışıklığı - Kaza - Yol kapatma - Yapım çalışması - Tehlike - Yol durumu - Çukur - Sis - Buz - Yolda hayvan var - Yol olayı - Yol olayı - Hâlâ orada - Artık orada değil - Bir yol raporunu doğruluyor - Bir yol olayının sona erdiğini bildiriyor Hedef miktarı (sats) Hedefinizi açıklayın Ne için bağış topluyorsunuz? diff --git a/amethyst/src/main/res/values-tr/strings.xml b/amethyst/src/main/res/values-tr/strings.xml index 432e09f9be..bb9baf6459 100644 --- a/amethyst/src/main/res/values-tr/strings.xml +++ b/amethyst/src/main/res/values-tr/strings.xml @@ -4085,41 +4085,23 @@ - Polis - Hız kamerası - Trafik sıkışıklığı - Kaza - Yol kapatma - Yapım çalışması - Tehlike - Yol durumu - Çukur - Sis - Buz - Yolda hayvan var - Yol olayı - Yol olayı - Hâlâ orada - Artık orada değil - Bir yol raporunu doğruluyor - Bir yol olayının sona erdiğini bildiriyor Hedef miktarı (sats) diff --git a/amethyst/src/main/res/values-uk-rUA/strings.xml b/amethyst/src/main/res/values-uk-rUA/strings.xml index 61ee6522e1..c8bac2887a 100644 --- a/amethyst/src/main/res/values-uk-rUA/strings.xml +++ b/amethyst/src/main/res/values-uk-rUA/strings.xml @@ -2816,24 +2816,6 @@ Пожертва on-chain - Поліція - Камера швидкості - Затор - Аварія - Перекриття дороги - Будівельні роботи - Небезпека - Стан дороги - Яма - Туман - Ожеледиця - Тварина на дорозі - Дорожня подія - Дорожня подія - Досі там - Вже немає - Підтверджує дорожнє повідомлення - Повідомляє, що дорожня подія усунена Сума мети (sats) Опишіть вашу ціль На що ви збираєте кошти? diff --git a/amethyst/src/main/res/values-uk/strings.xml b/amethyst/src/main/res/values-uk/strings.xml index c1c7cc8a09..77aaf94eb4 100644 --- a/amethyst/src/main/res/values-uk/strings.xml +++ b/amethyst/src/main/res/values-uk/strings.xml @@ -3896,41 +3896,23 @@ - Поліція - Камера швидкості - Затор - Аварія - Перекриття дороги - Будівельні роботи - Небезпека - Стан дороги - Яма - Туман - Ожеледиця - Тварина на дорозі - Дорожня подія - Дорожня подія - Досі там - Вже немає - Підтверджує дорожнє повідомлення - Повідомляє, що дорожня подія усунена Сума мети (sats) diff --git a/amethyst/src/main/res/values-uz-rUZ/strings.xml b/amethyst/src/main/res/values-uz-rUZ/strings.xml index 4ad2eddc91..45b7399ae7 100644 --- a/amethyst/src/main/res/values-uz-rUZ/strings.xml +++ b/amethyst/src/main/res/values-uz-rUZ/strings.xml @@ -2773,24 +2773,6 @@ Zanjirdagi xayriya - Politsiya - Tezlik kamerasi - Tirbandlik - Avariya - Yo\'l yopiq - Qurilish - Xavf - Yo\'l holati - Chuqur - Tuman - Muz - Yo\'lda hayvon bor - Yo\'l hodisasi - Yo\'l hodisasi - Hali ham u yerda - Endi u yerda yo\'q - Yo\'l hisobotini tasdiqlaydi - Yo\'l hodisasi bartaraf etilganligini bildiradi Maqsad miqdori (sats) Maqsadingizni tasvirlab bering Nima uchun mablag\' yig\'yapsiz? diff --git a/amethyst/src/main/res/values-vi-rVN/strings.xml b/amethyst/src/main/res/values-vi-rVN/strings.xml index edea957786..40d5934cee 100644 --- a/amethyst/src/main/res/values-vi-rVN/strings.xml +++ b/amethyst/src/main/res/values-vi-rVN/strings.xml @@ -2713,24 +2713,6 @@ Đóng góp on-chain - Cảnh sát - Camera tốc độ - Tắc đường - Tai nạn - Đóng đường - Thi công - Nguy hiểm - Tình trạng đường - Ổ gà - Sương mù - Băng đá - Động vật trên đường - Sự cố đường bộ - Sự cố đường bộ - Vẫn còn ở đó - Không còn ở đó nữa - Xác nhận báo cáo đường bộ - Báo cáo sự cố đường bộ đã được giải quyết Số tiền mục tiêu (sats) Mô tả mục tiêu của bạn Bạn đang gây quỹ cho điều gì? diff --git a/amethyst/src/main/res/values-zh-rCN/strings.xml b/amethyst/src/main/res/values-zh-rCN/strings.xml index 01ddacee8f..7a7ce253d4 100644 --- a/amethyst/src/main/res/values-zh-rCN/strings.xml +++ b/amethyst/src/main/res/values-zh-rCN/strings.xml @@ -3556,24 +3556,6 @@ 链上捐助 - 警察 - 测速照相 - 塞车 - 事故 - 道路关闭 - 建设 - 危险 - 道路状况 - 坑洼 - - - 道路上的动物 - 道路事件 - 道路事件 - 仍在那里 - 已不存在 - 确认道路报告 - 报告道路事件已清理完毕 目标金额 (sats) 100000 描述您的目标 diff --git a/amethyst/src/main/res/values-zh-rHK/strings.xml b/amethyst/src/main/res/values-zh-rHK/strings.xml index 509f7feeaf..7359039f47 100644 --- a/amethyst/src/main/res/values-zh-rHK/strings.xml +++ b/amethyst/src/main/res/values-zh-rHK/strings.xml @@ -2782,24 +2782,6 @@ 链上捐助 - 警察 - 测速照相 - 塞车 - 事故 - 道路关闭 - 建设 - 危险 - 道路状况 - 坑洼 - - - 道路上的动物 - 道路事件 - 道路事件 - 仍在那里 - 已不存在 - 确认道路报告 - 报告道路事件已清理完毕 目标金额 (sats) 描述您的目标 你为什么筹资? diff --git a/amethyst/src/main/res/values-zh-rSG/strings.xml b/amethyst/src/main/res/values-zh-rSG/strings.xml index fffa856954..a44c778d4e 100644 --- a/amethyst/src/main/res/values-zh-rSG/strings.xml +++ b/amethyst/src/main/res/values-zh-rSG/strings.xml @@ -2782,24 +2782,6 @@ 链上捐助 - 警察 - 测速照相 - 塞车 - 事故 - 道路关闭 - 建设 - 危险 - 道路状况 - 坑洼 - - - 道路上的动物 - 道路事件 - 道路事件 - 仍在那里 - 已不存在 - 确认道路报告 - 报告道路事件已清理完毕 目标金额 (sats) 描述您的目标 你为什么筹资? diff --git a/amethyst/src/main/res/values-zh-rTW/strings.xml b/amethyst/src/main/res/values-zh-rTW/strings.xml index 85868bed6e..21ac8fe107 100644 --- a/amethyst/src/main/res/values-zh-rTW/strings.xml +++ b/amethyst/src/main/res/values-zh-rTW/strings.xml @@ -2748,24 +2748,6 @@ 鏈上捐款 - 警察 - 測速攝影機 - 塞車 - 事故 - 道路封閉 - 施工 - 危險 - 路況 - 坑洞 - - 結冰 - 路上有動物 - 道路事件 - 道路事件 - 仍在那裡 - 已不在那裡 - 確認道路報告 - 回報道路事件已解除 目標金額(sats) 描述您的目標 您在為什麼籌款? diff --git a/amethyst/src/main/res/values-zh/strings.xml b/amethyst/src/main/res/values-zh/strings.xml index e638dc6b37..3dc9ae573b 100644 --- a/amethyst/src/main/res/values-zh/strings.xml +++ b/amethyst/src/main/res/values-zh/strings.xml @@ -5297,41 +5297,23 @@ -警察 -测速照相 -塞车 -事故 -道路关闭 -建设 -危险 -道路状况 -坑洼 - - -道路上的动物 -道路事件 -道路事件 -仍在那里 -已不存在 -确认道路报告 -报告道路事件已清理完毕 目标金额 (sats) diff --git a/amethyst/src/main/res/values/strings.xml b/amethyst/src/main/res/values/strings.xml index 965bb28e95..344e68512a 100644 --- a/amethyst/src/main/res/values/strings.xml +++ b/amethyst/src/main/res/values/strings.xml @@ -4058,24 +4058,6 @@ On-chain donation - Police - Speed camera - Traffic jam - Accident - Road closure - Construction - Hazard - Road condition - Pothole - Fog - Ice - Animal on the road - Road event - Road event - Still there - No longer there - Confirms a road report - Reports a road event cleared Goal amount (sats) 100000 Describe your goal diff --git a/commons/src/commonMain/composeResources/values-ar-rSA/strings.xml b/commons/src/commonMain/composeResources/values-ar-rSA/strings.xml index 03e6a1e4d0..60119ff683 100644 --- a/commons/src/commonMain/composeResources/values-ar-rSA/strings.xml +++ b/commons/src/commonMain/composeResources/values-ar-rSA/strings.xml @@ -20,4 +20,22 @@ %1$s +%2$d آخرين %1$s +%2$d آخرين + حادث + حيوان على الطريق + لا يزال موجودًا + يؤكد تقرير طريق + أعمال إنشائية + لم يعد موجودًا + يُفيد بإزالة حدث طريق + ضباب + خطر + جليد + حدث على الطريق + شرطة + حفرة في الطريق + إغلاق طريق + حالة الطريق + كاميرا سرعة + ازدحام مروري + حدث على الطريق diff --git a/commons/src/commonMain/composeResources/values-bn-rBD/strings.xml b/commons/src/commonMain/composeResources/values-bn-rBD/strings.xml index 89129f41a4..f41a9d47be 100644 --- a/commons/src/commonMain/composeResources/values-bn-rBD/strings.xml +++ b/commons/src/commonMain/composeResources/values-bn-rBD/strings.xml @@ -12,4 +12,22 @@ %1$s +%2$d টি আরও %1$s +%2$d টি আরও + দুর্ঘটনা + রাস্তায় প্রাণী + এখনো আছে + একটি রাস্তার রিপোর্ট নিশ্চিত করে + নির্মাণ কাজ + আর নেই + একটি রাস্তার ঘটনা পরিষ্কার হওয়ার রিপোর্ট করে + কুয়াশা + বিপদ + বরফ + রাস্তার ঘটনা + পুলিশ + গর্ত + রাস্তা বন্ধ + রাস্তার অবস্থা + স্পিড ক্যামেরা + যানজট + রাস্তার ঘটনা diff --git a/commons/src/commonMain/composeResources/values-cs/strings.xml b/commons/src/commonMain/composeResources/values-cs/strings.xml index 4f60e34970..f32c31146d 100644 --- a/commons/src/commonMain/composeResources/values-cs/strings.xml +++ b/commons/src/commonMain/composeResources/values-cs/strings.xml @@ -28,4 +28,22 @@ blok %1$d Prázdný slot Přehrát ukázku + Nehoda + Zvíře na silnici + Stále tam + Potvrzuje hlášení o silnici + Stavba + Již tam není + Hlásí vyřešení silniční události + Mlha + Nebezpečí + Náledí + Silniční událost + Policie + Výmol + Uzavírka silnice + Stav vozovky + Rychlostní radar + Dopravní zácpa + Silniční událost diff --git a/commons/src/commonMain/composeResources/values-de-rDE/strings.xml b/commons/src/commonMain/composeResources/values-de-rDE/strings.xml index 7af492eb5f..9795c57505 100644 --- a/commons/src/commonMain/composeResources/values-de-rDE/strings.xml +++ b/commons/src/commonMain/composeResources/values-de-rDE/strings.xml @@ -22,4 +22,22 @@ Block %1$d Leerer Slot Highlight abspielen + Unfall + Tier auf der Straße + Noch da + Bestätigt einen Straßenbericht + Baustelle + Nicht mehr da + Meldet ein beseitigtes Straßenereignis + Nebel + Gefahr + Eis + Straßenereignis + Polizei + Schlagloch + Straßensperrung + Straßenzustand + Blitzer + Stau + Straßenereignis diff --git a/commons/src/commonMain/composeResources/values-de/strings.xml b/commons/src/commonMain/composeResources/values-de/strings.xml index 8c031d883f..68c11f3c3d 100644 --- a/commons/src/commonMain/composeResources/values-de/strings.xml +++ b/commons/src/commonMain/composeResources/values-de/strings.xml @@ -12,4 +12,22 @@ %1$s +%2$d weitere %1$s +%2$d weitere + Unfall + Tier auf der Straße + Noch da + Bestätigt einen Straßenbericht + Baustelle + Nicht mehr da + Meldet ein beseitigtes Straßenereignis + Nebel + Gefahr + Eis + Straßenereignis + Polizei + Schlagloch + Straßensperrung + Straßenzustand + Blitzer + Stau + Straßenereignis diff --git a/commons/src/commonMain/composeResources/values-el-rGR/strings.xml b/commons/src/commonMain/composeResources/values-el-rGR/strings.xml index a4fc928d08..19c1e89517 100644 --- a/commons/src/commonMain/composeResources/values-el-rGR/strings.xml +++ b/commons/src/commonMain/composeResources/values-el-rGR/strings.xml @@ -12,4 +12,22 @@ %1$s +%2$d ακόμη %1$s +%2$d ακόμη + Ατύχημα + Ζώο στο δρόμο + Υπάρχει ακόμη + Επιβεβαιώνει οδική αναφορά + Κατασκευές + Δεν υπάρχει πλέον + Αναφέρει ότι το οδικό συμβάν έχει εκκαθαριστεί + Ομίχλη + Κίνδυνος + Πάγος + Οδικό συμβάν + Αστυνομία + Λακκούβα + Αποκλεισμός δρόμου + Κατάσταση δρόμου + Κάμερα ταχύτητας + Κυκλοφοριακή συμφόρηση + Οδικό συμβάν diff --git a/commons/src/commonMain/composeResources/values-eo-rUY/strings.xml b/commons/src/commonMain/composeResources/values-eo-rUY/strings.xml index fda08ef703..0a3af380f9 100644 --- a/commons/src/commonMain/composeResources/values-eo-rUY/strings.xml +++ b/commons/src/commonMain/composeResources/values-eo-rUY/strings.xml @@ -12,4 +12,22 @@ %1$s +%2$d plia %1$s +%2$d pliaj + Akcidento + Besto sur la vojo + Ankoraŭ tie + Konfirmas vojan raporton + Konstruado + Ne plu tie + Raportas ke voja evento malaperis + Nebulo + Danĝero + Glacio + Voja evento + Polico + Trua vojo + Voja fermo + Voja stato + Rapideca fotilo + Trafika ŝtopado + Voja evento diff --git a/commons/src/commonMain/composeResources/values-eo/strings.xml b/commons/src/commonMain/composeResources/values-eo/strings.xml index fda08ef703..0a3af380f9 100644 --- a/commons/src/commonMain/composeResources/values-eo/strings.xml +++ b/commons/src/commonMain/composeResources/values-eo/strings.xml @@ -12,4 +12,22 @@ %1$s +%2$d plia %1$s +%2$d pliaj + Akcidento + Besto sur la vojo + Ankoraŭ tie + Konfirmas vojan raporton + Konstruado + Ne plu tie + Raportas ke voja evento malaperis + Nebulo + Danĝero + Glacio + Voja evento + Polico + Trua vojo + Voja fermo + Voja stato + Rapideca fotilo + Trafika ŝtopado + Voja evento diff --git a/commons/src/commonMain/composeResources/values-es-rES/strings.xml b/commons/src/commonMain/composeResources/values-es-rES/strings.xml index bfa915d31a..2a9dd0b159 100644 --- a/commons/src/commonMain/composeResources/values-es-rES/strings.xml +++ b/commons/src/commonMain/composeResources/values-es-rES/strings.xml @@ -12,4 +12,22 @@ %1$s +%2$d más %1$s +%2$d más + Accidente + Animal en la carretera + Sigue ahí + Confirma un aviso de tráfico + Obras + Ya no está + Informa de que la incidencia vial ha desaparecido + Niebla + Peligro + Hielo + Incidencia vial + Policía + Bache + Corte de carretera + Estado de la vía + Radar de velocidad + Atasco de tráfico + Incidencia vial diff --git a/commons/src/commonMain/composeResources/values-es-rMX/strings.xml b/commons/src/commonMain/composeResources/values-es-rMX/strings.xml index bfa915d31a..2a9dd0b159 100644 --- a/commons/src/commonMain/composeResources/values-es-rMX/strings.xml +++ b/commons/src/commonMain/composeResources/values-es-rMX/strings.xml @@ -12,4 +12,22 @@ %1$s +%2$d más %1$s +%2$d más + Accidente + Animal en la carretera + Sigue ahí + Confirma un aviso de tráfico + Obras + Ya no está + Informa de que la incidencia vial ha desaparecido + Niebla + Peligro + Hielo + Incidencia vial + Policía + Bache + Corte de carretera + Estado de la vía + Radar de velocidad + Atasco de tráfico + Incidencia vial diff --git a/commons/src/commonMain/composeResources/values-es-rUS/strings.xml b/commons/src/commonMain/composeResources/values-es-rUS/strings.xml index bfa915d31a..2a9dd0b159 100644 --- a/commons/src/commonMain/composeResources/values-es-rUS/strings.xml +++ b/commons/src/commonMain/composeResources/values-es-rUS/strings.xml @@ -12,4 +12,22 @@ %1$s +%2$d más %1$s +%2$d más + Accidente + Animal en la carretera + Sigue ahí + Confirma un aviso de tráfico + Obras + Ya no está + Informa de que la incidencia vial ha desaparecido + Niebla + Peligro + Hielo + Incidencia vial + Policía + Bache + Corte de carretera + Estado de la vía + Radar de velocidad + Atasco de tráfico + Incidencia vial diff --git a/commons/src/commonMain/composeResources/values-es/strings.xml b/commons/src/commonMain/composeResources/values-es/strings.xml index bfa915d31a..2a9dd0b159 100644 --- a/commons/src/commonMain/composeResources/values-es/strings.xml +++ b/commons/src/commonMain/composeResources/values-es/strings.xml @@ -12,4 +12,22 @@ %1$s +%2$d más %1$s +%2$d más + Accidente + Animal en la carretera + Sigue ahí + Confirma un aviso de tráfico + Obras + Ya no está + Informa de que la incidencia vial ha desaparecido + Niebla + Peligro + Hielo + Incidencia vial + Policía + Bache + Corte de carretera + Estado de la vía + Radar de velocidad + Atasco de tráfico + Incidencia vial diff --git a/commons/src/commonMain/composeResources/values-fa-rIR/strings.xml b/commons/src/commonMain/composeResources/values-fa-rIR/strings.xml index d2ca2dff9e..13339d331b 100644 --- a/commons/src/commonMain/composeResources/values-fa-rIR/strings.xml +++ b/commons/src/commonMain/composeResources/values-fa-rIR/strings.xml @@ -12,4 +12,22 @@ %1$s و %2$d مورد بیشتر %1$s و %2$d مورد بیشتر + تصادف + حیوان روی جاده + هنوز هست + گزارش جاده را تأیید می‌کند + عملیات عمرانی + دیگر نیست + رفع رویداد جاده‌ای را گزارش می‌دهد + مه + خطر + یخ + رویداد جاده‌ای + پلیس + چاله + بسته بودن جاده + وضعیت جاده + دوربین سرعت‌سنج + ترافیک + رویداد جاده‌ای diff --git a/commons/src/commonMain/composeResources/values-fa/strings.xml b/commons/src/commonMain/composeResources/values-fa/strings.xml index d2ca2dff9e..13339d331b 100644 --- a/commons/src/commonMain/composeResources/values-fa/strings.xml +++ b/commons/src/commonMain/composeResources/values-fa/strings.xml @@ -12,4 +12,22 @@ %1$s و %2$d مورد بیشتر %1$s و %2$d مورد بیشتر + تصادف + حیوان روی جاده + هنوز هست + گزارش جاده را تأیید می‌کند + عملیات عمرانی + دیگر نیست + رفع رویداد جاده‌ای را گزارش می‌دهد + مه + خطر + یخ + رویداد جاده‌ای + پلیس + چاله + بسته بودن جاده + وضعیت جاده + دوربین سرعت‌سنج + ترافیک + رویداد جاده‌ای diff --git a/commons/src/commonMain/composeResources/values-fi-rFI/strings.xml b/commons/src/commonMain/composeResources/values-fi-rFI/strings.xml index 201b3fcb69..dc4e906125 100644 --- a/commons/src/commonMain/composeResources/values-fi-rFI/strings.xml +++ b/commons/src/commonMain/composeResources/values-fi-rFI/strings.xml @@ -12,4 +12,22 @@ %1$s +%2$d lisää %1$s +%2$d lisää + Onnettomuus + Eläin tiellä + Edelleen siellä + Vahvistaa tieilmoituksen + Tietyö + Ei enää siellä + Ilmoittaa tietapahtuman selvitetyksi + Sumu + Vaara + Jää + Tietapahtuma + Poliisi + Kuoppa + Tiesulku + Tien kunto + Nopeusvalvontakamera + Ruuhka + Tietapahtuma diff --git a/commons/src/commonMain/composeResources/values-fr-rCA/strings.xml b/commons/src/commonMain/composeResources/values-fr-rCA/strings.xml index 8fd3780081..aec094abc8 100644 --- a/commons/src/commonMain/composeResources/values-fr-rCA/strings.xml +++ b/commons/src/commonMain/composeResources/values-fr-rCA/strings.xml @@ -12,4 +12,20 @@ %1$s +%2$d de plus %1$s +%2$d de plus + Animal sur la route + Toujours présent + Confirme un signalement routier + Travaux + Plus là + Signale un événement routier résolu + Brouillard + Danger + Verglas + Événement routier + Nid-de-poule + Route fermée + État de la route + Radar + Embouteillage + Événement routier diff --git a/commons/src/commonMain/composeResources/values-fr-rFR/strings.xml b/commons/src/commonMain/composeResources/values-fr-rFR/strings.xml index 8fd3780081..420207a812 100644 --- a/commons/src/commonMain/composeResources/values-fr-rFR/strings.xml +++ b/commons/src/commonMain/composeResources/values-fr-rFR/strings.xml @@ -12,4 +12,22 @@ %1$s +%2$d de plus %1$s +%2$d de plus + Accident + Animal sur la route + Toujours présent + Confirme un signalement routier + Travaux + Plus là + Signale un événement routier résolu + Brouillard + Danger + Verglas + Événement routier + Police + Nid-de-poule + Route fermée + État de la route + Radar + Embouteillage + Événement routier diff --git a/commons/src/commonMain/composeResources/values-fr/strings.xml b/commons/src/commonMain/composeResources/values-fr/strings.xml index 8fd3780081..420207a812 100644 --- a/commons/src/commonMain/composeResources/values-fr/strings.xml +++ b/commons/src/commonMain/composeResources/values-fr/strings.xml @@ -12,4 +12,22 @@ %1$s +%2$d de plus %1$s +%2$d de plus + Accident + Animal sur la route + Toujours présent + Confirme un signalement routier + Travaux + Plus là + Signale un événement routier résolu + Brouillard + Danger + Verglas + Événement routier + Police + Nid-de-poule + Route fermée + État de la route + Radar + Embouteillage + Événement routier diff --git a/commons/src/commonMain/composeResources/values-hi-rIN/strings.xml b/commons/src/commonMain/composeResources/values-hi-rIN/strings.xml index c0e882895b..b7c51dd593 100644 --- a/commons/src/commonMain/composeResources/values-hi-rIN/strings.xml +++ b/commons/src/commonMain/composeResources/values-hi-rIN/strings.xml @@ -22,4 +22,22 @@ खण्ड %1$d रिक्त छेद प्रमुखाम्श चलाएँ + दुर्घटना + मार्ग पर मृग + अब भी वहीं + मार्ग सूचना की पुष्टि + निर्माण + अब वहाँ नहीं + सूचना की मार्ग घटना हटाया गया + धूमिका + संकट + हिम + मार्ग घटना + रक्षापालिका + गड्ढा + मार्ग आवृत + मार्ग परिस्थिति + गति चित्रग्राहक + यातायात अचलता + मार्ग घटना diff --git a/commons/src/commonMain/composeResources/values-hu-rHU/strings.xml b/commons/src/commonMain/composeResources/values-hu-rHU/strings.xml index c291f1e27e..8542cb7ce4 100644 --- a/commons/src/commonMain/composeResources/values-hu-rHU/strings.xml +++ b/commons/src/commonMain/composeResources/values-hu-rHU/strings.xml @@ -22,4 +22,22 @@ %1$d blokk Üres hely Kiemelés lejátszása + Baleset + Állat az úton + Még mindig ott van + Útjelentés megerősítése + Útépítés + Már nincs ott + Útlezárás feloldásának jelentése + Köd + Veszély + Jég + Útesemény + Rendőrség + Kátyú + Útlezárás + Útviszonyok + Sebességmérő kamera + Forgalmi dugó + Útesemény diff --git a/commons/src/commonMain/composeResources/values-in-rID/strings.xml b/commons/src/commonMain/composeResources/values-in-rID/strings.xml index 98927c5d4d..2cee6ec1ee 100644 --- a/commons/src/commonMain/composeResources/values-in-rID/strings.xml +++ b/commons/src/commonMain/composeResources/values-in-rID/strings.xml @@ -9,4 +9,22 @@ %1$s +%2$d lainnya + Kecelakaan + Hewan di jalan + Masih ada + Mengonfirmasi laporan jalan + Konstruksi + Sudah tidak ada + Melaporkan kejadian jalan telah selesai + Kabut + Bahaya + Es + Kejadian jalan + Polisi + Lubang jalan + Penutupan jalan + Kondisi jalan + Kamera kecepatan + Kemacetan + Kejadian jalan diff --git a/commons/src/commonMain/composeResources/values-in/strings.xml b/commons/src/commonMain/composeResources/values-in/strings.xml index b5e85da21b..5856957afc 100644 --- a/commons/src/commonMain/composeResources/values-in/strings.xml +++ b/commons/src/commonMain/composeResources/values-in/strings.xml @@ -10,4 +10,22 @@ %1$s +%2$d lainnya + Kecelakaan + Hewan di jalan + Masih ada + Mengonfirmasi laporan jalan + Konstruksi + Sudah tidak ada + Melaporkan kejadian jalan telah selesai + Kabut + Bahaya + Es + Kejadian jalan + Polisi + Lubang jalan + Penutupan jalan + Kondisi jalan + Kamera kecepatan + Kemacetan + Kejadian jalan diff --git a/commons/src/commonMain/composeResources/values-it-rIT/strings.xml b/commons/src/commonMain/composeResources/values-it-rIT/strings.xml index 326410d1e1..ef6adbd448 100644 --- a/commons/src/commonMain/composeResources/values-it-rIT/strings.xml +++ b/commons/src/commonMain/composeResources/values-it-rIT/strings.xml @@ -12,4 +12,22 @@ %1$s +%2$d altro %1$s +%2$d altri + Incidente + Animale sulla strada + Ancora presente + Conferma una segnalazione stradale + Lavori in corso + Non più presente + Segnala un evento stradale risolto + Nebbia + Pericolo + Ghiaccio + Evento stradale + Polizia + Buca + Strada chiusa + Condizioni stradali + Autovelox + Ingorgo + Evento stradale diff --git a/commons/src/commonMain/composeResources/values-ja-rJP/strings.xml b/commons/src/commonMain/composeResources/values-ja-rJP/strings.xml index 1fa7ad0ca5..2f3eff9622 100644 --- a/commons/src/commonMain/composeResources/values-ja-rJP/strings.xml +++ b/commons/src/commonMain/composeResources/values-ja-rJP/strings.xml @@ -10,4 +10,22 @@ %1$s 他 %2$d 件 + 事故 + 動物が道路上に + まだあります + 道路レポートを確認 + 工事 + もうありません + 道路イベントの解消を報告 + + 危険 + 凍結 + 道路上のイベント + 警察 + ポットホール + 通行止め + 路面状況 + 速度カメラ + 渋滞 + 道路上のイベント diff --git a/commons/src/commonMain/composeResources/values-ja/strings.xml b/commons/src/commonMain/composeResources/values-ja/strings.xml index 1fa7ad0ca5..2f3eff9622 100644 --- a/commons/src/commonMain/composeResources/values-ja/strings.xml +++ b/commons/src/commonMain/composeResources/values-ja/strings.xml @@ -10,4 +10,22 @@ %1$s 他 %2$d 件 + 事故 + 動物が道路上に + まだあります + 道路レポートを確認 + 工事 + もうありません + 道路イベントの解消を報告 + + 危険 + 凍結 + 道路上のイベント + 警察 + ポットホール + 通行止め + 路面状況 + 速度カメラ + 渋滞 + 道路上のイベント diff --git a/commons/src/commonMain/composeResources/values-ko-rKR/strings.xml b/commons/src/commonMain/composeResources/values-ko-rKR/strings.xml index cbf5512e15..6c9fd79a1a 100644 --- a/commons/src/commonMain/composeResources/values-ko-rKR/strings.xml +++ b/commons/src/commonMain/composeResources/values-ko-rKR/strings.xml @@ -10,4 +10,22 @@ %1$s 외 %2$d개 더 + 사고 + 도로 위 동물 + 아직 있음 + 도로 신고를 확인함 + 공사 중 + 더 이상 없음 + 도로 이벤트 해소를 보고함 + 안개 + 위험 + 결빙 + 도로 이벤트 + 경찰 + 포트홀 + 도로 폐쇄 + 도로 상태 + 과속 카메라 + 교통 정체 + 도로 이벤트 diff --git a/commons/src/commonMain/composeResources/values-lv-rLV/strings.xml b/commons/src/commonMain/composeResources/values-lv-rLV/strings.xml index b1d4b8adf4..821bf541eb 100644 --- a/commons/src/commonMain/composeResources/values-lv-rLV/strings.xml +++ b/commons/src/commonMain/composeResources/values-lv-rLV/strings.xml @@ -14,4 +14,22 @@ %1$s +%2$d vairāk %1$s +%2$d vairāk + Avārija + Dzīvnieks uz ceļa + Joprojām tur + Apstiprina ceļa ziņojumu + Būvdarbi + Vairs nav tur + Ziņo par ceļa notikuma novēršanu + Migla + Bīstamība + Ledus + Ceļa notikums + Policija + Bedre + Ceļa slēgšana + Ceļa stāvoklis + Ātruma kamera + Sastrēgums + Ceļa notikums diff --git a/commons/src/commonMain/composeResources/values-nl-rBE/strings.xml b/commons/src/commonMain/composeResources/values-nl-rBE/strings.xml index ac891c1182..f4bb315cb8 100644 --- a/commons/src/commonMain/composeResources/values-nl-rBE/strings.xml +++ b/commons/src/commonMain/composeResources/values-nl-rBE/strings.xml @@ -12,4 +12,22 @@ %1$s +%2$d meer %1$s +%2$d meer + Ongeluk + Dier op de weg + Nog steeds aanwezig + Bevestigt een wegmelding + Wegwerkzaamheden + Niet meer aanwezig + Meldt dat een weggebeurtenis voorbij is + Mist + Gevaar + Ijs + Weggebeurtenis + Politie + Kuil in de weg + Wegafsluiting + Wegomstandigheid + Flitser + File + Weggebeurtenis diff --git a/commons/src/commonMain/composeResources/values-nl-rNL/strings.xml b/commons/src/commonMain/composeResources/values-nl-rNL/strings.xml index 467a8739ba..a994f04b63 100644 --- a/commons/src/commonMain/composeResources/values-nl-rNL/strings.xml +++ b/commons/src/commonMain/composeResources/values-nl-rNL/strings.xml @@ -22,4 +22,22 @@ blok %1$d Leeg slot Highlight afspelen + Ongeluk + Dier op de weg + Nog steeds aanwezig + Bevestigt een wegmelding + Wegwerkzaamheden + Niet meer aanwezig + Meldt dat een weggebeurtenis voorbij is + Mist + Gevaar + IJs + Weggebeurtenis + Politie + Kuil in de weg + Wegafsluiting + Wegomstandigheid + Flitser + File + Weggebeurtenis diff --git a/commons/src/commonMain/composeResources/values-nl/strings.xml b/commons/src/commonMain/composeResources/values-nl/strings.xml index ac891c1182..f4bb315cb8 100644 --- a/commons/src/commonMain/composeResources/values-nl/strings.xml +++ b/commons/src/commonMain/composeResources/values-nl/strings.xml @@ -12,4 +12,22 @@ %1$s +%2$d meer %1$s +%2$d meer + Ongeluk + Dier op de weg + Nog steeds aanwezig + Bevestigt een wegmelding + Wegwerkzaamheden + Niet meer aanwezig + Meldt dat een weggebeurtenis voorbij is + Mist + Gevaar + Ijs + Weggebeurtenis + Politie + Kuil in de weg + Wegafsluiting + Wegomstandigheid + Flitser + File + Weggebeurtenis diff --git a/commons/src/commonMain/composeResources/values-pl-rPL/strings.xml b/commons/src/commonMain/composeResources/values-pl-rPL/strings.xml index f3d1a9af58..5631ba34ff 100644 --- a/commons/src/commonMain/composeResources/values-pl-rPL/strings.xml +++ b/commons/src/commonMain/composeResources/values-pl-rPL/strings.xml @@ -27,4 +27,22 @@ blok %1$d Pusty slot Odtwórz najciekawsze momenty + Wypadek + Zwierzęta na drodze + Wciąż tam + Potwierdzenie zgłoszenia drogowego + Roboty drogowe + Już tam nie ma + Zgłasza, że wypadek został usunięty + Mgła + Zagrożenie + Oblodzenie + Wydarzenie drogowe + Policja + Wyboje + Droga zamknięta + Uszkodzenie nawierzchni + Fotoradar + Korek + Wydarzenie drogowe diff --git a/commons/src/commonMain/composeResources/values-pt-rBR/strings.xml b/commons/src/commonMain/composeResources/values-pt-rBR/strings.xml index f61902395c..2cbbed248c 100644 --- a/commons/src/commonMain/composeResources/values-pt-rBR/strings.xml +++ b/commons/src/commonMain/composeResources/values-pt-rBR/strings.xml @@ -22,4 +22,22 @@ bloco %1$d Espaço vazio Reproduzir destaque + Acidente + Animal na pista + Ainda está lá + Confirma um relato de trânsito + Obras + Não está mais lá + Informa que o evento de trânsito foi resolvido + Neblina + Perigo + Gelo + Evento na via + Polícia + Buraco na pista + Via fechada + Condição da via + Radar de velocidade + Congestionamento + Evento na via diff --git a/commons/src/commonMain/composeResources/values-pt-rPT/strings.xml b/commons/src/commonMain/composeResources/values-pt-rPT/strings.xml index 2293e1c454..2ff91e1c4e 100644 --- a/commons/src/commonMain/composeResources/values-pt-rPT/strings.xml +++ b/commons/src/commonMain/composeResources/values-pt-rPT/strings.xml @@ -12,4 +12,22 @@ %1$s +%2$d a mais %1$s +%2$d a mais + Acidente + Animal na pista + Ainda está lá + Confirma um relato de trânsito + Obras + Não está mais lá + Informa que o evento de trânsito foi resolvido + Neblina + Perigo + Gelo + Evento na via + Polícia + Buraco na pista + Via fechada + Condição da via + Radar de velocidade + Congestionamento + Evento na via diff --git a/commons/src/commonMain/composeResources/values-ru-rRU/strings.xml b/commons/src/commonMain/composeResources/values-ru-rRU/strings.xml index 2256b4cb5e..7c51165249 100644 --- a/commons/src/commonMain/composeResources/values-ru-rRU/strings.xml +++ b/commons/src/commonMain/composeResources/values-ru-rRU/strings.xml @@ -16,4 +16,22 @@ %1$s +%2$d ещё %1$s +%2$d ещё + Авария + Животное на дороге + Всё ещё там + Подтверждает дорожное сообщение + Дорожные работы + Уже нет + Сообщает об устранении дорожного события + Туман + Опасность + Гололёд + Дорожное событие + Полиция + Выбоина + Перекрытие дороги + Состояние дороги + Камера контроля скорости + Пробка + Дорожное событие diff --git a/commons/src/commonMain/composeResources/values-ru-rUA/strings.xml b/commons/src/commonMain/composeResources/values-ru-rUA/strings.xml index 2256b4cb5e..7c51165249 100644 --- a/commons/src/commonMain/composeResources/values-ru-rUA/strings.xml +++ b/commons/src/commonMain/composeResources/values-ru-rUA/strings.xml @@ -16,4 +16,22 @@ %1$s +%2$d ещё %1$s +%2$d ещё + Авария + Животное на дороге + Всё ещё там + Подтверждает дорожное сообщение + Дорожные работы + Уже нет + Сообщает об устранении дорожного события + Туман + Опасность + Гололёд + Дорожное событие + Полиция + Выбоина + Перекрытие дороги + Состояние дороги + Камера контроля скорости + Пробка + Дорожное событие diff --git a/commons/src/commonMain/composeResources/values-ru/strings.xml b/commons/src/commonMain/composeResources/values-ru/strings.xml index 2256b4cb5e..7c51165249 100644 --- a/commons/src/commonMain/composeResources/values-ru/strings.xml +++ b/commons/src/commonMain/composeResources/values-ru/strings.xml @@ -16,4 +16,22 @@ %1$s +%2$d ещё %1$s +%2$d ещё + Авария + Животное на дороге + Всё ещё там + Подтверждает дорожное сообщение + Дорожные работы + Уже нет + Сообщает об устранении дорожного события + Туман + Опасность + Гололёд + Дорожное событие + Полиция + Выбоина + Перекрытие дороги + Состояние дороги + Камера контроля скорости + Пробка + Дорожное событие diff --git a/commons/src/commonMain/composeResources/values-sl-rSI/strings.xml b/commons/src/commonMain/composeResources/values-sl-rSI/strings.xml index b945c58a7f..8cd21bb7d9 100644 --- a/commons/src/commonMain/composeResources/values-sl-rSI/strings.xml +++ b/commons/src/commonMain/composeResources/values-sl-rSI/strings.xml @@ -28,4 +28,22 @@ %1$d blok Prazen prostor Predvajaj vrhunec + Nesreča + Žival na cestišču + Še vedno tam + Potrdi prometno poročilo + Delo na cesti + Ni več tam + Označi kot odstranjeno + Megla + Nevernost + Led + Dogodek na cesti + Policija + Udarna jama + Cesta zaprta + Stanje cest + Hitrostna kamera + Zastoj + Dogodek na cesti diff --git a/commons/src/commonMain/composeResources/values-sr-rSP/strings.xml b/commons/src/commonMain/composeResources/values-sr-rSP/strings.xml index 1e171cb57f..f2cbac2e60 100644 --- a/commons/src/commonMain/composeResources/values-sr-rSP/strings.xml +++ b/commons/src/commonMain/composeResources/values-sr-rSP/strings.xml @@ -14,4 +14,22 @@ %1$s +%2$d više %1$s +%2$d više + Nesreća + Životinja na putu + I dalje postoji + Potvrđuje saobraćajni izveštaj + Gradnja + Više ne postoji + Prijavljuje da je saobraćajni događaj rešen + Magla + Opasnost + Led + Saobraćajni događaj + Policija + Rupa na putu + Zatvaranje puta + Stanje puta + Radar + Saobraćajna gužva + Saobraćajni događaj diff --git a/commons/src/commonMain/composeResources/values-sv-rSE/strings.xml b/commons/src/commonMain/composeResources/values-sv-rSE/strings.xml index bbf2860927..7cd7c5e871 100644 --- a/commons/src/commonMain/composeResources/values-sv-rSE/strings.xml +++ b/commons/src/commonMain/composeResources/values-sv-rSE/strings.xml @@ -21,4 +21,22 @@ PS1-minneskortsparning Tom plats Spela höjdpunkt + Olycka + Djur på vägen + Finns kvar + Bekräftar en vägrapport + Vägarbete + Finns inte längre + Rapporterar att en väghändelse är borta + Dimma + Fara + Is + Väghändelse + Polis + Väggropar + Vägavstängning + Vägförhållanden + Fartkamera + Trafikstockning + Väghändelse diff --git a/commons/src/commonMain/composeResources/values-sw/strings.xml b/commons/src/commonMain/composeResources/values-sw/strings.xml index 8e0d37c1d3..edd786a6cb 100644 --- a/commons/src/commonMain/composeResources/values-sw/strings.xml +++ b/commons/src/commonMain/composeResources/values-sw/strings.xml @@ -12,4 +12,22 @@ %1$s +%2$d zaidi %1$s +%2$d zaidi + Ajali + Mnyama barabarani + Bado ipo + Inathibitisha ripoti ya barabara + Ujenzi + Haipo tena + Inaripoti tukio la barabara kuisha + Ukungu + Hatari + Barafu + Tukio la barabara + Polisi + Shimo barabarani + Kufungwa kwa barabara + Hali ya barabara + Kamera ya kasi + Msongamano wa magari + Tukio la barabara diff --git a/commons/src/commonMain/composeResources/values-ta-rIN/strings.xml b/commons/src/commonMain/composeResources/values-ta-rIN/strings.xml index cabd6d8f2f..0b432b692e 100644 --- a/commons/src/commonMain/composeResources/values-ta-rIN/strings.xml +++ b/commons/src/commonMain/composeResources/values-ta-rIN/strings.xml @@ -12,4 +12,22 @@ %1$s +%2$d மேலும் %1$s +%2$d மேலும் + விபத்து + சாலையில் விலங்கு + இன்னும் உள்ளது + சாலை அறிக்கையை உறுதிப்படுத்துகிறது + கட்டுமானம் + இனி இல்லை + சாலை நிகழ்வு தீர்க்கப்பட்டதை அறிவிக்கிறது + மூடுபனி + ஆபத்து + பனி + சாலை நிகழ்வு + காவல்துறை + குழி + சாலை மூடல் + சாலை நிலை + வேக கண்காணிப்பு கேமரா + போக்குவரத்து நெரிசல் + சாலை நிகழ்வு diff --git a/commons/src/commonMain/composeResources/values-ta/strings.xml b/commons/src/commonMain/composeResources/values-ta/strings.xml index cabd6d8f2f..0b432b692e 100644 --- a/commons/src/commonMain/composeResources/values-ta/strings.xml +++ b/commons/src/commonMain/composeResources/values-ta/strings.xml @@ -12,4 +12,22 @@ %1$s +%2$d மேலும் %1$s +%2$d மேலும் + விபத்து + சாலையில் விலங்கு + இன்னும் உள்ளது + சாலை அறிக்கையை உறுதிப்படுத்துகிறது + கட்டுமானம் + இனி இல்லை + சாலை நிகழ்வு தீர்க்கப்பட்டதை அறிவிக்கிறது + மூடுபனி + ஆபத்து + பனி + சாலை நிகழ்வு + காவல்துறை + குழி + சாலை மூடல் + சாலை நிலை + வேக கண்காணிப்பு கேமரா + போக்குவரத்து நெரிசல் + சாலை நிகழ்வு diff --git a/commons/src/commonMain/composeResources/values-th-rTH/strings.xml b/commons/src/commonMain/composeResources/values-th-rTH/strings.xml index 1d113c28e7..e2e1558353 100644 --- a/commons/src/commonMain/composeResources/values-th-rTH/strings.xml +++ b/commons/src/commonMain/composeResources/values-th-rTH/strings.xml @@ -10,4 +10,22 @@ %1$s +%2$d รายการเพิ่มเติม + อุบัติเหตุ + สัตว์บนถนน + ยังคงอยู่ + ยืนยันรายงานบนถนน + การก่อสร้าง + ไม่มีแล้ว + รายงานว่าเหตุการณ์บนถนนสิ้นสุดแล้ว + หมอก + อันตราย + น้ำแข็งบนถนน + เหตุการณ์บนถนน + ตำรวจ + หลุมบ่อ + ถนนปิด + สภาพถนน + กล้องจับความเร็ว + การจราจรติดขัด + เหตุการณ์บนถนน diff --git a/commons/src/commonMain/composeResources/values-th/strings.xml b/commons/src/commonMain/composeResources/values-th/strings.xml index 1d113c28e7..e2e1558353 100644 --- a/commons/src/commonMain/composeResources/values-th/strings.xml +++ b/commons/src/commonMain/composeResources/values-th/strings.xml @@ -10,4 +10,22 @@ %1$s +%2$d รายการเพิ่มเติม + อุบัติเหตุ + สัตว์บนถนน + ยังคงอยู่ + ยืนยันรายงานบนถนน + การก่อสร้าง + ไม่มีแล้ว + รายงานว่าเหตุการณ์บนถนนสิ้นสุดแล้ว + หมอก + อันตราย + น้ำแข็งบนถนน + เหตุการณ์บนถนน + ตำรวจ + หลุมบ่อ + ถนนปิด + สภาพถนน + กล้องจับความเร็ว + การจราจรติดขัด + เหตุการณ์บนถนน diff --git a/commons/src/commonMain/composeResources/values-tr-rTR/strings.xml b/commons/src/commonMain/composeResources/values-tr-rTR/strings.xml index d48d718803..53e7664a89 100644 --- a/commons/src/commonMain/composeResources/values-tr-rTR/strings.xml +++ b/commons/src/commonMain/composeResources/values-tr-rTR/strings.xml @@ -12,4 +12,22 @@ %1$s +%2$d daha %1$s +%2$d daha + Kaza + Yolda hayvan var + Hâlâ orada + Bir yol raporunu doğruluyor + Yapım çalışması + Artık orada değil + Bir yol olayının sona erdiğini bildiriyor + Sis + Tehlike + Buz + Yol olayı + Polis + Çukur + Yol kapatma + Yol durumu + Hız kamerası + Trafik sıkışıklığı + Yol olayı diff --git a/commons/src/commonMain/composeResources/values-tr/strings.xml b/commons/src/commonMain/composeResources/values-tr/strings.xml index d48d718803..53e7664a89 100644 --- a/commons/src/commonMain/composeResources/values-tr/strings.xml +++ b/commons/src/commonMain/composeResources/values-tr/strings.xml @@ -12,4 +12,22 @@ %1$s +%2$d daha %1$s +%2$d daha + Kaza + Yolda hayvan var + Hâlâ orada + Bir yol raporunu doğruluyor + Yapım çalışması + Artık orada değil + Bir yol olayının sona erdiğini bildiriyor + Sis + Tehlike + Buz + Yol olayı + Polis + Çukur + Yol kapatma + Yol durumu + Hız kamerası + Trafik sıkışıklığı + Yol olayı diff --git a/commons/src/commonMain/composeResources/values-uk-rUA/strings.xml b/commons/src/commonMain/composeResources/values-uk-rUA/strings.xml index 1f7736989d..1557520faa 100644 --- a/commons/src/commonMain/composeResources/values-uk-rUA/strings.xml +++ b/commons/src/commonMain/composeResources/values-uk-rUA/strings.xml @@ -16,4 +16,22 @@ %1$s +%2$d більше %1$s +%2$d більше + Аварія + Тварина на дорозі + Досі там + Підтверджує дорожнє повідомлення + Будівельні роботи + Вже немає + Повідомляє, що дорожня подія усунена + Туман + Небезпека + Ожеледиця + Дорожня подія + Поліція + Яма + Перекриття дороги + Стан дороги + Камера швидкості + Затор + Дорожня подія diff --git a/commons/src/commonMain/composeResources/values-uk/strings.xml b/commons/src/commonMain/composeResources/values-uk/strings.xml index 1f7736989d..1557520faa 100644 --- a/commons/src/commonMain/composeResources/values-uk/strings.xml +++ b/commons/src/commonMain/composeResources/values-uk/strings.xml @@ -16,4 +16,22 @@ %1$s +%2$d більше %1$s +%2$d більше + Аварія + Тварина на дорозі + Досі там + Підтверджує дорожнє повідомлення + Будівельні роботи + Вже немає + Повідомляє, що дорожня подія усунена + Туман + Небезпека + Ожеледиця + Дорожня подія + Поліція + Яма + Перекриття дороги + Стан дороги + Камера швидкості + Затор + Дорожня подія diff --git a/commons/src/commonMain/composeResources/values-uz-rUZ/strings.xml b/commons/src/commonMain/composeResources/values-uz-rUZ/strings.xml index f867cfee8b..014af64492 100644 --- a/commons/src/commonMain/composeResources/values-uz-rUZ/strings.xml +++ b/commons/src/commonMain/composeResources/values-uz-rUZ/strings.xml @@ -12,4 +12,22 @@ %1$s +%2$d ta ko\'proq %1$s +%2$d ta ko\'proq + Avariya + Yo\'lda hayvon bor + Hali ham u yerda + Yo\'l hisobotini tasdiqlaydi + Qurilish + Endi u yerda yo\'q + Yo\'l hodisasi bartaraf etilganligini bildiradi + Tuman + Xavf + Muz + Yo\'l hodisasi + Politsiya + Chuqur + Yo\'l yopiq + Yo\'l holati + Tezlik kamerasi + Tirbandlik + Yo\'l hodisasi diff --git a/commons/src/commonMain/composeResources/values-vi-rVN/strings.xml b/commons/src/commonMain/composeResources/values-vi-rVN/strings.xml index d579a83919..a240e331bc 100644 --- a/commons/src/commonMain/composeResources/values-vi-rVN/strings.xml +++ b/commons/src/commonMain/composeResources/values-vi-rVN/strings.xml @@ -10,4 +10,22 @@ %1$s +%2$d khác + Tai nạn + Động vật trên đường + Vẫn còn ở đó + Xác nhận báo cáo đường bộ + Thi công + Không còn ở đó nữa + Báo cáo sự cố đường bộ đã được giải quyết + Sương mù + Nguy hiểm + Băng đá + Sự cố đường bộ + Cảnh sát + Ổ gà + Đóng đường + Tình trạng đường + Camera tốc độ + Tắc đường + Sự cố đường bộ diff --git a/commons/src/commonMain/composeResources/values-zh-rCN/strings.xml b/commons/src/commonMain/composeResources/values-zh-rCN/strings.xml index 04cf8d5276..b7276727fd 100644 --- a/commons/src/commonMain/composeResources/values-zh-rCN/strings.xml +++ b/commons/src/commonMain/composeResources/values-zh-rCN/strings.xml @@ -19,4 +19,22 @@ 块 %1$d 空槽位 播放精彩片段 + 事故 + 道路上的动物 + 仍在那里 + 确认道路报告 + 建设 + 已不存在 + 报告道路事件已清理完毕 + + 危险 + + 道路事件 + 警察 + 坑洼 + 道路关闭 + 道路状况 + 测速照相 + 塞车 + 道路事件 diff --git a/commons/src/commonMain/composeResources/values-zh-rHK/strings.xml b/commons/src/commonMain/composeResources/values-zh-rHK/strings.xml index ae163eb439..563dcebbf3 100644 --- a/commons/src/commonMain/composeResources/values-zh-rHK/strings.xml +++ b/commons/src/commonMain/composeResources/values-zh-rHK/strings.xml @@ -10,4 +10,22 @@ %1$s + 另%2$d + 事故 + 道路上的动物 + 仍在那里 + 确认道路报告 + 建设 + 已不存在 + 报告道路事件已清理完毕 + + 危险 + + 道路事件 + 警察 + 坑洼 + 道路关闭 + 道路状况 + 测速照相 + 塞车 + 道路事件 diff --git a/commons/src/commonMain/composeResources/values-zh-rSG/strings.xml b/commons/src/commonMain/composeResources/values-zh-rSG/strings.xml index ae163eb439..563dcebbf3 100644 --- a/commons/src/commonMain/composeResources/values-zh-rSG/strings.xml +++ b/commons/src/commonMain/composeResources/values-zh-rSG/strings.xml @@ -10,4 +10,22 @@ %1$s + 另%2$d + 事故 + 道路上的动物 + 仍在那里 + 确认道路报告 + 建设 + 已不存在 + 报告道路事件已清理完毕 + + 危险 + + 道路事件 + 警察 + 坑洼 + 道路关闭 + 道路状况 + 测速照相 + 塞车 + 道路事件 diff --git a/commons/src/commonMain/composeResources/values-zh-rTW/strings.xml b/commons/src/commonMain/composeResources/values-zh-rTW/strings.xml index f9e7f500f6..4e7ad27c0b 100644 --- a/commons/src/commonMain/composeResources/values-zh-rTW/strings.xml +++ b/commons/src/commonMain/composeResources/values-zh-rTW/strings.xml @@ -10,4 +10,22 @@ %1$s 還有 %2$d 個 + 事故 + 路上有動物 + 仍在那裡 + 確認道路報告 + 施工 + 已不在那裡 + 回報道路事件已解除 + + 危險 + 結冰 + 道路事件 + 警察 + 坑洞 + 道路封閉 + 路況 + 測速攝影機 + 塞車 + 道路事件 diff --git a/commons/src/commonMain/composeResources/values-zh/strings.xml b/commons/src/commonMain/composeResources/values-zh/strings.xml index ae163eb439..563dcebbf3 100644 --- a/commons/src/commonMain/composeResources/values-zh/strings.xml +++ b/commons/src/commonMain/composeResources/values-zh/strings.xml @@ -10,4 +10,22 @@ %1$s + 另%2$d + 事故 + 道路上的动物 + 仍在那里 + 确认道路报告 + 建设 + 已不存在 + 报告道路事件已清理完毕 + + 危险 + + 道路事件 + 警察 + 坑洼 + 道路关闭 + 道路状况 + 测速照相 + 塞车 + 道路事件 diff --git a/commons/src/commonMain/composeResources/values/strings.xml b/commons/src/commonMain/composeResources/values/strings.xml index 848bb6d093..c776551241 100644 --- a/commons/src/commonMain/composeResources/values/strings.xml +++ b/commons/src/commonMain/composeResources/values/strings.xml @@ -123,4 +123,22 @@ block %1$d Empty slot Play highlight + Accident + Animal on the road + Still there + Confirms a road report + Construction + No longer there + Reports a road event cleared + Fog + Hazard + Ice + Road event + Police + Pothole + Road closure + Road condition + Speed camera + Traffic jam + Road event diff --git a/commons/src/commonMain/kotlin/com/vitorpamplona/amethyst/commons/ui/note/RoadEventCard.kt b/commons/src/commonMain/kotlin/com/vitorpamplona/amethyst/commons/ui/note/RoadEventCard.kt new file mode 100644 index 0000000000..206ffb6b60 --- /dev/null +++ b/commons/src/commonMain/kotlin/com/vitorpamplona/amethyst/commons/ui/note/RoadEventCard.kt @@ -0,0 +1,324 @@ +/* + * 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.commons.ui.note + +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.luminance +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import com.vitorpamplona.amethyst.commons.resources.Res +import com.vitorpamplona.amethyst.commons.resources.road_event_accident +import com.vitorpamplona.amethyst.commons.resources.road_event_animal +import com.vitorpamplona.amethyst.commons.resources.road_event_confirmed +import com.vitorpamplona.amethyst.commons.resources.road_event_confirms_report +import com.vitorpamplona.amethyst.commons.resources.road_event_construction +import com.vitorpamplona.amethyst.commons.resources.road_event_denied +import com.vitorpamplona.amethyst.commons.resources.road_event_denies_report +import com.vitorpamplona.amethyst.commons.resources.road_event_fog +import com.vitorpamplona.amethyst.commons.resources.road_event_hazard +import com.vitorpamplona.amethyst.commons.resources.road_event_ice +import com.vitorpamplona.amethyst.commons.resources.road_event_other +import com.vitorpamplona.amethyst.commons.resources.road_event_police +import com.vitorpamplona.amethyst.commons.resources.road_event_pothole +import com.vitorpamplona.amethyst.commons.resources.road_event_road_closure +import com.vitorpamplona.amethyst.commons.resources.road_event_road_condition +import com.vitorpamplona.amethyst.commons.resources.road_event_speed_camera +import com.vitorpamplona.amethyst.commons.resources.road_event_traffic_jam +import com.vitorpamplona.amethyst.commons.resources.road_event_unknown +import com.vitorpamplona.amethyst.commons.ui.theme.placeholderText +import com.vitorpamplona.amethyst.commons.ui.theme.replyModifier +import com.vitorpamplona.quartz.experimental.roadstr.confirmation.RoadEventConfirmationEvent +import com.vitorpamplona.quartz.experimental.roadstr.confirmation.tags.RoadEventStatus +import com.vitorpamplona.quartz.experimental.roadstr.report.RoadEventReportEvent +import com.vitorpamplona.quartz.experimental.roadstr.report.tags.RoadEventType +import com.vitorpamplona.quartz.nip01Core.tags.geohash.toGeoHash +import com.vitorpamplona.quartz.utils.TimeUtils +import org.jetbrains.compose.resources.StringResource +import org.jetbrains.compose.resources.stringResource + +/** + * Renders the map hero at a road event's coordinates. The map is platform-specific + * (an Android tile view today), so the host supplies it as this typed slot; the + * card overlays its own category pill and detail text. + */ +typealias RoadEventMap = @Composable (latitude: Double, longitude: Double, pinColor: Color, pinEmoji: String, pinAlpha: Float) -> Unit + +/** + * Emoji marker for a road event category. Mirrors the icon set of the roadstr + * reference clients () so a report reads the + * same across implementations; keeps the card icon-light and locale-independent. + */ +private fun RoadEventType.emoji(): String = + when (this) { + RoadEventType.POLICE -> "👮" + RoadEventType.SPEED_CAMERA -> "📷" + RoadEventType.TRAFFIC_JAM -> "🚗" + RoadEventType.ACCIDENT -> "💥" + RoadEventType.ROAD_CLOSURE -> "🚫" + RoadEventType.CONSTRUCTION -> "🚧" + RoadEventType.HAZARD -> "⚠️" + RoadEventType.ROAD_CONDITION -> "🛣️" + RoadEventType.POTHOLE -> "🕳️" + RoadEventType.FOG -> "🌫️" + RoadEventType.ICE -> "🧊" + RoadEventType.ANIMAL -> "🦌" + RoadEventType.OTHER -> "ℹ️" + } + +/** + * Per-category pin color. Uses the exact palette from the roadstr reference + * clients () so a pin's color carries the + * same meaning across the network. + */ +private fun RoadEventType.color(): Color = + when (this) { + RoadEventType.POLICE -> Color(0xFF0000FF) + RoadEventType.SPEED_CAMERA -> Color(0xFF800080) + RoadEventType.TRAFFIC_JAM -> Color(0xFFFF8C00) + RoadEventType.ACCIDENT -> Color(0xFFFF0000) + RoadEventType.ROAD_CLOSURE -> Color(0xFF8B0000) + RoadEventType.CONSTRUCTION -> Color(0xFFFFD700) + RoadEventType.HAZARD -> Color(0xFFFF4500) + RoadEventType.ROAD_CONDITION -> Color(0xFF4682B4) + RoadEventType.POTHOLE -> Color(0xFF795548) + RoadEventType.FOG -> Color(0xFF9E9E9E) + RoadEventType.ICE -> Color(0xFF00CED1) + RoadEventType.ANIMAL -> Color(0xFF4CAF50) + RoadEventType.OTHER -> Color(0xFF808080) + } + +private fun RoadEventType.labelRes(): StringResource = + when (this) { + RoadEventType.POLICE -> Res.string.road_event_police + RoadEventType.SPEED_CAMERA -> Res.string.road_event_speed_camera + RoadEventType.TRAFFIC_JAM -> Res.string.road_event_traffic_jam + RoadEventType.ACCIDENT -> Res.string.road_event_accident + RoadEventType.ROAD_CLOSURE -> Res.string.road_event_road_closure + RoadEventType.CONSTRUCTION -> Res.string.road_event_construction + RoadEventType.HAZARD -> Res.string.road_event_hazard + RoadEventType.ROAD_CONDITION -> Res.string.road_event_road_condition + RoadEventType.POTHOLE -> Res.string.road_event_pothole + RoadEventType.FOG -> Res.string.road_event_fog + RoadEventType.ICE -> Res.string.road_event_ice + RoadEventType.ANIMAL -> Res.string.road_event_animal + RoadEventType.OTHER -> Res.string.road_event_other + } + +/** + * Self-contained card for a Roadstr road event report (kind 1315). + * + * A [map] hero pinned at the event's coordinates, with a floating category pill + * (colored per [RoadEventType.color]) and the optional free-text comment below. + * Identical in the feed and the opened thread view, so it takes no `makeItShort` + * flag — mirroring [BirdexCard]. + */ +@Composable +fun RoadEventReportCard( + noteEvent: RoadEventReportEvent, + map: RoadEventMap, +) { + val type = remember(noteEvent) { noteEvent.roadEventType() } + val comment = remember(noteEvent) { noteEvent.content.trim() } + val point = remember(noteEvent) { noteEvent.roadEventPoint() } + val freshness = remember(noteEvent) { noteEvent.freshnessAlpha() } + + val color = type?.color() ?: MaterialTheme.colorScheme.outline + val emoji = type?.emoji() ?: "📍" + val label = if (type != null) stringResource(type.labelRes()) else stringResource(Res.string.road_event_unknown) + + RoadEventCard( + chipColor = color, + chipEmoji = emoji, + chipLabel = label, + point = point, + pinAlpha = freshness, + comment = comment, + map = map, + ) +} + +/** + * Self-contained card for a Roadstr confirmation/denial (kind 1316). + * + * Same hero/pill layout as a report, with a green ✅ "Still there" or red ❌ + * "No longer there" pill and a one-line description of the action. + */ +@Composable +fun RoadEventConfirmationCard( + noteEvent: RoadEventConfirmationEvent, + map: RoadEventMap, +) { + val status = remember(noteEvent) { noteEvent.status() } + val point = remember(noteEvent) { noteEvent.roadEventPoint() } + + val denied = status == RoadEventStatus.NO_LONGER_THERE + val emoji = if (denied) "❌" else "✅" + val color = if (denied) Color(0xFFF44336) else Color(0xFF4CAF50) + + RoadEventCard( + chipColor = color, + chipEmoji = emoji, + chipLabel = stringResource(if (denied) Res.string.road_event_denied else Res.string.road_event_confirmed), + point = point, + subtitle = stringResource(if (denied) Res.string.road_event_denies_report else Res.string.road_event_confirms_report), + map = map, + ) +} + +/** + * Shared road event card chrome: a full-bleed [map] hero with a floating + * [CategoryPill] overlaid on its top-start, and an optional [subtitle] + + * [comment] block below. When [point] is null the pill stands on its own so the + * card still reads. + */ +@Composable +private fun RoadEventCard( + chipColor: Color, + chipEmoji: String, + chipLabel: String, + point: Pair?, + map: RoadEventMap, + pinAlpha: Float = 1f, + comment: String = "", + subtitle: String? = null, +) { + Column(MaterialTheme.colorScheme.replyModifier) { + if (point != null) { + Box(Modifier.fillMaxWidth()) { + map(point.first, point.second, chipColor, chipEmoji, pinAlpha) + CategoryPill( + color = chipColor, + emoji = chipEmoji, + label = chipLabel, + modifier = Modifier.align(Alignment.TopStart).padding(10.dp), + ) + } + } else { + CategoryPill( + color = chipColor, + emoji = chipEmoji, + label = chipLabel, + modifier = Modifier.padding(12.dp), + ) + } + + if (subtitle != null || comment.isNotEmpty()) { + Column(Modifier.padding(horizontal = 12.dp, vertical = 10.dp)) { + if (subtitle != null) { + Text( + text = subtitle, + style = MaterialTheme.typography.bodyMedium, + color = MaterialTheme.colorScheme.placeholderText, + ) + } + if (comment.isNotEmpty()) { + if (subtitle != null) Spacer(Modifier.height(4.dp)) + Text( + text = comment, + style = MaterialTheme.typography.bodyMedium, + color = MaterialTheme.colorScheme.onSurface, + maxLines = 4, + overflow = TextOverflow.Ellipsis, + ) + } + } + } + } +} + +/** A floating rounded pill: [emoji] + [label] on a [color] background, text auto-contrasted. */ +@Composable +private fun CategoryPill( + color: Color, + emoji: String, + label: String, + modifier: Modifier = Modifier, +) { + Surface( + modifier = modifier, + color = color, + contentColor = if (color.luminance() > 0.55f) Color.Black else Color.White, + shape = RoundedCornerShape(50), + shadowElevation = 3.dp, + ) { + Text( + text = "$emoji $label", + modifier = Modifier.padding(horizontal = 12.dp, vertical = 5.dp), + style = MaterialTheme.typography.labelLarge, + fontWeight = FontWeight.SemiBold, + ) + } +} + +/** + * Best available coordinate for the card map: the event's explicit `lat`/`lon` + * tags when present, otherwise the center of the finest published geohash. + * Returns null when the event carries no location at all. + */ +private fun RoadEventReportEvent.roadEventPoint(): Pair? = resolveRoadEventPoint(latitude(), longitude(), geohashes()) + +private fun RoadEventConfirmationEvent.roadEventPoint(): Pair? = resolveRoadEventPoint(latitude(), longitude(), geohashes()) + +private fun resolveRoadEventPoint( + latitude: Double?, + longitude: Double?, + geohashes: List, +): Pair? { + if (latitude != null && longitude != null) return latitude to longitude + + val finest = geohashes.maxByOrNull { it.length } ?: return null + val decoded = runCatching { finest.toGeoHash() }.getOrNull() ?: return null + return decoded.centerLat to decoded.centerLon +} + +/** + * Marker opacity by freshness, matching the roadstr clients: full while the + * report has plenty of life left, dimmed to 0.6 once under 25% of its effective + * TTL remains, and faded to 0.4 once effectively expired. Returns 1f when the + * type (and therefore the TTL) is unknown. + */ +private fun RoadEventReportEvent.freshnessAlpha(now: Long = TimeUtils.now()): Float { + val expiryAt = effectiveExpirationAt() ?: return 1f + val total = expiryAt - createdAt + if (total <= 0L) return 1f + + val fraction = (expiryAt - now).toFloat() / total + return when { + fraction <= 0f -> 0.4f + fraction < 0.25f -> 0.6f + else -> 1f + } +}