From b6969e2a331a4136f7ea2db71df9b8c758492008 Mon Sep 17 00:00:00 2001 From: ZIER Date: Wed, 11 Mar 2026 08:16:25 +0100 Subject: [PATCH] Codex review --- lib/l10n/app_bg.arb | 1 + lib/l10n/app_de.arb | 1 + lib/l10n/app_es.arb | 1 + lib/l10n/app_fr.arb | 1 + lib/l10n/app_it.arb | 1 + lib/l10n/app_nl.arb | 1 + lib/l10n/app_pl.arb | 1 + lib/l10n/app_pt.arb | 1 + lib/l10n/app_ru.arb | 1 + lib/l10n/app_sk.arb | 1 + lib/l10n/app_sl.arb | 1 + lib/l10n/app_sv.arb | 1 + lib/l10n/app_uk.arb | 1 + lib/l10n/app_zh.arb | 4 ++ lib/screens/channel_chat_screen.dart | 21 +++++----- lib/screens/chat_screen.dart | 22 ++++++----- untranslated.json | 59 +++++++--------------------- 17 files changed, 55 insertions(+), 64 deletions(-) diff --git a/lib/l10n/app_bg.arb b/lib/l10n/app_bg.arb index 44c0d31..bedbeb0 100644 --- a/lib/l10n/app_bg.arb +++ b/lib/l10n/app_bg.arb @@ -684,6 +684,7 @@ "map_showSharedMarkers": "Покажи споделени маркери", "map_lastSeenTime": "Последна видяна дата", "map_sharedPin": "Споделено копие", + "map_sharedAt": "Споделено", "map_joinRoom": "Присъедини се към стаята", "map_manageRepeater": "Управление на Повтарящ се Елемент", "mapCache_title": "Кеш на офлайн карти", diff --git a/lib/l10n/app_de.arb b/lib/l10n/app_de.arb index 0eeb693..0b4d8c3 100644 --- a/lib/l10n/app_de.arb +++ b/lib/l10n/app_de.arb @@ -684,6 +684,7 @@ "map_showSharedMarkers": "Zeige gemeinsam genutzte Marker", "map_lastSeenTime": "Letzte Sichtung", "map_sharedPin": "Gemeinsames Passwort", + "map_sharedAt": "Geteilt", "map_joinRoom": "Beitreten Sie dem Raum", "map_manageRepeater": "Repeater verwalten", "mapCache_title": "Offline-Karten-Cache", diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 5d5ece3..ed1f022 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -684,6 +684,7 @@ "map_showSharedMarkers": "Mostrar marcadores compartidos", "map_lastSeenTime": "Última vez que se vio", "map_sharedPin": "Pin compartido", + "map_sharedAt": "Compartido", "map_joinRoom": "Únete a la sala", "map_manageRepeater": "Gestionar Repetidor", "mapCache_title": "Caché de Mapa Offline", diff --git a/lib/l10n/app_fr.arb b/lib/l10n/app_fr.arb index 3eb76f7..4f70e1a 100644 --- a/lib/l10n/app_fr.arb +++ b/lib/l10n/app_fr.arb @@ -684,6 +684,7 @@ "map_showSharedMarkers": "Afficher les marqueurs partagés", "map_lastSeenTime": "Dernière fois vu", "map_sharedPin": "Clé partagée", + "map_sharedAt": "Partagé", "map_joinRoom": "Rejoindre la salle", "map_manageRepeater": "Gérer le répéteur", "mapCache_title": "Cache de Carte Hors Ligne", diff --git a/lib/l10n/app_it.arb b/lib/l10n/app_it.arb index b9c3113..e7143c1 100644 --- a/lib/l10n/app_it.arb +++ b/lib/l10n/app_it.arb @@ -684,6 +684,7 @@ "map_showSharedMarkers": "Mostra i segnaposto condivisi", "map_lastSeenTime": "Ultimo Tempo di Visualizzazione", "map_sharedPin": "Condividi PIN", + "map_sharedAt": "Condiviso", "map_joinRoom": "Unisciti alla stanza", "map_manageRepeater": "Gestisci Ripetitore", "mapCache_title": "Cache Mappa Offline", diff --git a/lib/l10n/app_nl.arb b/lib/l10n/app_nl.arb index 048d5b3..bbefbf2 100644 --- a/lib/l10n/app_nl.arb +++ b/lib/l10n/app_nl.arb @@ -684,6 +684,7 @@ "map_showSharedMarkers": "Toon gedeelde markeringen", "map_lastSeenTime": "Laatste Bekeken Tijd", "map_sharedPin": "Gedeelde pin", + "map_sharedAt": "Gedeeld", "map_joinRoom": "Sluit Kamer", "map_manageRepeater": "Beheer Repeater", "mapCache_title": "Offline Kaarten Cache", diff --git a/lib/l10n/app_pl.arb b/lib/l10n/app_pl.arb index f6c7578..62cd9da 100644 --- a/lib/l10n/app_pl.arb +++ b/lib/l10n/app_pl.arb @@ -684,6 +684,7 @@ "map_showSharedMarkers": "Pokaż współdzielone znaki.", "map_lastSeenTime": "Ostatni raz widiany", "map_sharedPin": "Podzielony PIN", + "map_sharedAt": "Udostępnione", "map_joinRoom": "Dołącz do pokoju", "map_manageRepeater": "Zarządzaj Powtórzami", "mapCache_title": "Bufor Map Offline", diff --git a/lib/l10n/app_pt.arb b/lib/l10n/app_pt.arb index 3166cf2..a59b650 100644 --- a/lib/l10n/app_pt.arb +++ b/lib/l10n/app_pt.arb @@ -684,6 +684,7 @@ "map_showSharedMarkers": "Mostrar marcadores compartilhados", "map_lastSeenTime": "Último Tempo de Visualização", "map_sharedPin": "Pin compartilhado", + "map_sharedAt": "Compartilhado", "map_joinRoom": "Junte-se à Sala", "map_manageRepeater": "Gerenciar Repetidor", "mapCache_title": "Cache de Mapa Offline", diff --git a/lib/l10n/app_ru.arb b/lib/l10n/app_ru.arb index e5c78b1..c5a3241 100644 --- a/lib/l10n/app_ru.arb +++ b/lib/l10n/app_ru.arb @@ -399,6 +399,7 @@ "map_showSharedMarkers": "Показывать общие метки", "map_lastSeenTime": "Время последнего появления", "map_sharedPin": "Общая метка", + "map_sharedAt": "Поделено", "map_joinRoom": "Присоединиться к комнате", "map_manageRepeater": "Управление репитером", "mapCache_title": "Кэш офлайн-карты", diff --git a/lib/l10n/app_sk.arb b/lib/l10n/app_sk.arb index 41c6b25..b8339b3 100644 --- a/lib/l10n/app_sk.arb +++ b/lib/l10n/app_sk.arb @@ -684,6 +684,7 @@ "map_showSharedMarkers": "Zobraziť zdieľané značky", "map_lastSeenTime": "Posledný čas sledovania", "map_sharedPin": "Zdieľaný PIN", + "map_sharedAt": "Zdieľané", "map_joinRoom": "Pripojiť miestnosť", "map_manageRepeater": "Spravovať Opakovanie", "mapCache_title": "Offline Mapa Pamäť", diff --git a/lib/l10n/app_sl.arb b/lib/l10n/app_sl.arb index a996f0a..1c957a9 100644 --- a/lib/l10n/app_sl.arb +++ b/lib/l10n/app_sl.arb @@ -684,6 +684,7 @@ "map_showSharedMarkers": "Pokaži skupno označenja", "map_lastSeenTime": "Datum zadnjega vpogleda", "map_sharedPin": "Deljeno naslovno geslo", + "map_sharedAt": "Deljeno", "map_joinRoom": "Pridružiti sobo", "map_manageRepeater": "Upravljajte Ponovitve", "mapCache_title": "Omrezni predpomnilnik zemljeških zemljejevskih slik", diff --git a/lib/l10n/app_sv.arb b/lib/l10n/app_sv.arb index fc9b79a..2f92626 100644 --- a/lib/l10n/app_sv.arb +++ b/lib/l10n/app_sv.arb @@ -684,6 +684,7 @@ "map_showSharedMarkers": "Visa delade markörer", "map_lastSeenTime": "Senaste Visats Tid", "map_sharedPin": "Delad PIN", + "map_sharedAt": "Delad", "map_joinRoom": "Gå med i rum", "map_manageRepeater": "Hantera Upprepare", "mapCache_title": "Offline Kartcache", diff --git a/lib/l10n/app_uk.arb b/lib/l10n/app_uk.arb index 0f9bfb3..4175a0b 100644 --- a/lib/l10n/app_uk.arb +++ b/lib/l10n/app_uk.arb @@ -685,6 +685,7 @@ "map_showSharedMarkers": "Показувати спільні маркери", "map_lastSeenTime": "Час останньої активності", "map_sharedPin": "Спільний пін", + "map_sharedAt": "Поділено", "map_joinRoom": "Приєднатися до кімнати", "map_manageRepeater": "Керувати ретранслятором", "mapCache_title": "Офлайн-кеш карти", diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index dfc8e64..03f4df3 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -482,6 +482,9 @@ "chat_sendGif": "发送 GIF", "chat_reply": "回复", "chat_addReaction": "添加表情", + "chat_insertEmoji": "插入表情", + "chat_shareLocation": "分享位置", + "chat_locationUnavailable": "位置不可用", "chat_me": "我", "emojiCategorySmileys": "表情", "emojiCategoryGestures": "手势", @@ -708,6 +711,7 @@ "map_showSharedMarkers": "显示共享标记", "map_lastSeenTime": "最后在线时间", "map_sharedPin": "共享标记", + "map_sharedAt": "已分享", "map_joinRoom": "加入房间", "map_manageRepeater": "管理转发节点", "mapCache_title": "离线地图缓存", diff --git a/lib/screens/channel_chat_screen.dart b/lib/screens/channel_chat_screen.dart index ca77c22..76dcb81 100644 --- a/lib/screens/channel_chat_screen.dart +++ b/lib/screens/channel_chat_screen.dart @@ -904,6 +904,7 @@ class _ChannelChatScreenState extends State { ); if (label == null || label.isEmpty) return; + label = label.replaceAll('|', '/'); if (!mounted) return; @@ -921,15 +922,17 @@ class _ChannelChatScreenState extends State { String _truncateToUtf8Bytes(String text, int maxBytes) { if (maxBytes <= 0) return ''; - final codeUnits = text.codeUnits; - var end = codeUnits.length; - while (end > 0 && - utf8.encode(String.fromCharCodes(codeUnits.take(end))).length > - maxBytes) { - end--; + final buffer = StringBuffer(); + var usedBytes = 0; + for (final rune in text.runes) { + final character = String.fromCharCode(rune); + final characterBytes = utf8.encode(character).length; + if (usedBytes + characterBytes > maxBytes) break; + buffer.write(character); + usedBytes += characterBytes; } - return String.fromCharCodes(codeUnits.take(end)); + return buffer.toString(); } Widget _buildAvatar(String senderName) { @@ -1067,8 +1070,8 @@ class _ChannelChatScreenState extends State { child: Row( children: [ PopupMenuButton<_ChannelChatInputAction>( - icon: const Icon(Icons.add), - tooltip: context.l10n.chat_sendGif, + icon: const Icon(Icons.add_circle_outline), + tooltip: context.l10n.common_add, offset: const Offset(0, -8), onSelected: (action) { if (action == _ChannelChatInputAction.sendGif) { diff --git a/lib/screens/chat_screen.dart b/lib/screens/chat_screen.dart index 1d46b1e..337b7f9 100644 --- a/lib/screens/chat_screen.dart +++ b/lib/screens/chat_screen.dart @@ -346,8 +346,8 @@ class _ChatScreenState extends State { child: Row( children: [ PopupMenuButton<_ChatInputAction>( - icon: const Icon(Icons.add), - tooltip: context.l10n.chat_sendGif, + icon: const Icon(Icons.add_circle_outline), + tooltip: context.l10n.common_add, offset: const Offset(0, -8), onSelected: (action) { if (action == _ChatInputAction.sendGif) { @@ -553,7 +553,7 @@ class _ChatScreenState extends State { ); if (label == null || label.isEmpty) return; - + label = label.replaceAll('|', '/'); if (!mounted) return; final markerText = @@ -570,15 +570,17 @@ class _ChatScreenState extends State { String _truncateToUtf8Bytes(String text, int maxBytes) { if (maxBytes <= 0) return ''; - final codeUnits = text.codeUnits; - var end = codeUnits.length; - while (end > 0 && - utf8.encode(String.fromCharCodes(codeUnits.take(end))).length > - maxBytes) { - end--; + final buffer = StringBuffer(); + var usedBytes = 0; + for (final rune in text.runes) { + final character = String.fromCharCode(rune); + final characterBytes = utf8.encode(character).length; + if (usedBytes + characterBytes > maxBytes) break; + buffer.write(character); + usedBytes += characterBytes; } - return String.fromCharCodes(codeUnits.take(end)); + return buffer.toString(); } void _showGifPicker(BuildContext context) { diff --git a/untranslated.json b/untranslated.json index b3f9775..f86f869 100644 --- a/untranslated.json +++ b/untranslated.json @@ -1,60 +1,29 @@ { - "bg": [ - "map_sharedAt" - ], + "bg": [], - "de": [ - "map_sharedAt" - ], + "de": [], - "es": [ - "map_sharedAt" - ], + "es": [], - "fr": [ - "map_sharedAt" - ], + "fr": [], - "it": [ - "map_sharedAt" - ], + "it": [], - "nl": [ - "map_sharedAt" - ], + "nl": [], - "pl": [ - "map_sharedAt" - ], + "pl": [], - "pt": [ - "map_sharedAt" - ], + "pt": [], - "ru": [ - "map_sharedAt" - ], + "ru": [], - "sk": [ - "map_sharedAt" - ], + "sk": [], - "sl": [ - "map_sharedAt" - ], + "sl": [], - "sv": [ - "map_sharedAt" - ], + "sv": [], - "uk": [ - "map_sharedAt" - ], + "uk": [], - "zh": [ - "chat_insertEmoji", - "chat_shareLocation", - "chat_locationUnavailable", - "map_sharedAt" - ] + "zh": [] }