diff --git a/lib/l10n/app_bg.arb b/lib/l10n/app_bg.arb index e1a955bd..963be1c5 100644 --- a/lib/l10n/app_bg.arb +++ b/lib/l10n/app_bg.arb @@ -2114,5 +2114,6 @@ "contact_typeRoom": "Room", "contact_typeSensor": "Sensor", "contact_typeUnknown": "Unknown", - "channels_via": "via {path}" + "channels_via": "via {path}", + "chat_score": "Score" } diff --git a/lib/l10n/app_de.arb b/lib/l10n/app_de.arb index 885d2de8..4864daa6 100644 --- a/lib/l10n/app_de.arb +++ b/lib/l10n/app_de.arb @@ -2142,5 +2142,6 @@ "contact_typeRoom": "Room", "contact_typeSensor": "Sensor", "contact_typeUnknown": "Unknown", - "channels_via": "via {path}" + "channels_via": "via {path}", + "chat_score": "Score" } diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 5b8b2c47..b0f03b5a 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -784,6 +784,7 @@ } }, "chat_successes": "successes", + "chat_score": "Score", "chat_removePath": "Remove path", "chat_noPathHistoryYet": "No path history yet.\nSend a message to discover paths.", "chat_pathActions": "Path Actions:", diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index e830630a..b7e71b49 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -2142,5 +2142,6 @@ "contact_typeRoom": "Room", "contact_typeSensor": "Sensor", "contact_typeUnknown": "Unknown", - "channels_via": "via {path}" + "channels_via": "via {path}", + "chat_score": "Score" } diff --git a/lib/l10n/app_fr.arb b/lib/l10n/app_fr.arb index ad74eb25..ad15c87f 100644 --- a/lib/l10n/app_fr.arb +++ b/lib/l10n/app_fr.arb @@ -2114,5 +2114,6 @@ "contact_typeRoom": "Room", "contact_typeSensor": "Sensor", "contact_typeUnknown": "Unknown", - "channels_via": "via {path}" + "channels_via": "via {path}", + "chat_score": "Score" } diff --git a/lib/l10n/app_hu.arb b/lib/l10n/app_hu.arb index 89d7389c..f341fd96 100644 --- a/lib/l10n/app_hu.arb +++ b/lib/l10n/app_hu.arb @@ -2152,5 +2152,6 @@ "contact_typeRoom": "Room", "contact_typeSensor": "Sensor", "contact_typeUnknown": "Unknown", - "channels_via": "via {path}" + "channels_via": "via {path}", + "chat_score": "Score" } diff --git a/lib/l10n/app_it.arb b/lib/l10n/app_it.arb index 13069a5b..f6724f39 100644 --- a/lib/l10n/app_it.arb +++ b/lib/l10n/app_it.arb @@ -2114,5 +2114,6 @@ "contact_typeRoom": "Room", "contact_typeSensor": "Sensor", "contact_typeUnknown": "Unknown", - "channels_via": "via {path}" + "channels_via": "via {path}", + "chat_score": "Score" } diff --git a/lib/l10n/app_ja.arb b/lib/l10n/app_ja.arb index b6736b18..973107ab 100644 --- a/lib/l10n/app_ja.arb +++ b/lib/l10n/app_ja.arb @@ -2152,5 +2152,6 @@ "contact_typeRoom": "Room", "contact_typeSensor": "Sensor", "contact_typeUnknown": "Unknown", - "channels_via": "via {path}" + "channels_via": "via {path}", + "chat_score": "Score" } diff --git a/lib/l10n/app_ko.arb b/lib/l10n/app_ko.arb index d2e46a40..fe639e8a 100644 --- a/lib/l10n/app_ko.arb +++ b/lib/l10n/app_ko.arb @@ -2152,5 +2152,6 @@ "contact_typeRoom": "Room", "contact_typeSensor": "Sensor", "contact_typeUnknown": "Unknown", - "channels_via": "via {path}" + "channels_via": "via {path}", + "chat_score": "Score" } diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index d12fe26d..45b3b46c 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -2686,6 +2686,12 @@ abstract class AppLocalizations { /// **'successes'** String get chat_successes; + /// No description provided for @chat_score. + /// + /// In en, this message translates to: + /// **'Score'** + String get chat_score; + /// No description provided for @chat_removePath. /// /// In en, this message translates to: diff --git a/lib/l10n/app_localizations_bg.dart b/lib/l10n/app_localizations_bg.dart index 81df50a3..9db1c889 100644 --- a/lib/l10n/app_localizations_bg.dart +++ b/lib/l10n/app_localizations_bg.dart @@ -1473,6 +1473,9 @@ class AppLocalizationsBg extends AppLocalizations { @override String get chat_successes => 'Успехи'; + @override + String get chat_score => 'Score'; + @override String get chat_removePath => 'Премахни пътя'; diff --git a/lib/l10n/app_localizations_de.dart b/lib/l10n/app_localizations_de.dart index aec7223e..e29a0fe8 100644 --- a/lib/l10n/app_localizations_de.dart +++ b/lib/l10n/app_localizations_de.dart @@ -1472,6 +1472,9 @@ class AppLocalizationsDe extends AppLocalizations { @override String get chat_successes => 'Erfolgreich'; + @override + String get chat_score => 'Score'; + @override String get chat_removePath => 'Pfad entfernen'; diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index 00926c02..faa40f02 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -1445,6 +1445,9 @@ class AppLocalizationsEn extends AppLocalizations { @override String get chat_successes => 'successes'; + @override + String get chat_score => 'Score'; + @override String get chat_removePath => 'Remove path'; diff --git a/lib/l10n/app_localizations_es.dart b/lib/l10n/app_localizations_es.dart index c9bf19aa..65a36922 100644 --- a/lib/l10n/app_localizations_es.dart +++ b/lib/l10n/app_localizations_es.dart @@ -1470,6 +1470,9 @@ class AppLocalizationsEs extends AppLocalizations { @override String get chat_successes => 'Éxitos'; + @override + String get chat_score => 'Score'; + @override String get chat_removePath => 'Eliminar ruta'; diff --git a/lib/l10n/app_localizations_fr.dart b/lib/l10n/app_localizations_fr.dart index f88101fa..df53a2f0 100644 --- a/lib/l10n/app_localizations_fr.dart +++ b/lib/l10n/app_localizations_fr.dart @@ -1477,6 +1477,9 @@ class AppLocalizationsFr extends AppLocalizations { @override String get chat_successes => 'Succès'; + @override + String get chat_score => 'Score'; + @override String get chat_removePath => 'Supprimer le chemin'; diff --git a/lib/l10n/app_localizations_hu.dart b/lib/l10n/app_localizations_hu.dart index f6642caf..5e939d72 100644 --- a/lib/l10n/app_localizations_hu.dart +++ b/lib/l10n/app_localizations_hu.dart @@ -1482,6 +1482,9 @@ class AppLocalizationsHu extends AppLocalizations { @override String get chat_successes => 'sikerek'; + @override + String get chat_score => 'Score'; + @override String get chat_removePath => 'Törölje a elérési útvonalat'; diff --git a/lib/l10n/app_localizations_it.dart b/lib/l10n/app_localizations_it.dart index a4d04705..7f285c39 100644 --- a/lib/l10n/app_localizations_it.dart +++ b/lib/l10n/app_localizations_it.dart @@ -1471,6 +1471,9 @@ class AppLocalizationsIt extends AppLocalizations { @override String get chat_successes => 'successi'; + @override + String get chat_score => 'Score'; + @override String get chat_removePath => 'Rimuovi percorso'; diff --git a/lib/l10n/app_localizations_ja.dart b/lib/l10n/app_localizations_ja.dart index d93481be..17e97591 100644 --- a/lib/l10n/app_localizations_ja.dart +++ b/lib/l10n/app_localizations_ja.dart @@ -1409,6 +1409,9 @@ class AppLocalizationsJa extends AppLocalizations { @override String get chat_successes => '成功事例'; + @override + String get chat_score => 'Score'; + @override String get chat_removePath => 'パスを削除する'; diff --git a/lib/l10n/app_localizations_ko.dart b/lib/l10n/app_localizations_ko.dart index e8d5d64a..d4872b12 100644 --- a/lib/l10n/app_localizations_ko.dart +++ b/lib/l10n/app_localizations_ko.dart @@ -1405,6 +1405,9 @@ class AppLocalizationsKo extends AppLocalizations { @override String get chat_successes => '성공 사례'; + @override + String get chat_score => 'Score'; + @override String get chat_removePath => '경로 제거'; diff --git a/lib/l10n/app_localizations_nl.dart b/lib/l10n/app_localizations_nl.dart index db1701ed..448053ec 100644 --- a/lib/l10n/app_localizations_nl.dart +++ b/lib/l10n/app_localizations_nl.dart @@ -1459,6 +1459,9 @@ class AppLocalizationsNl extends AppLocalizations { @override String get chat_successes => 'Succesvol'; + @override + String get chat_score => 'Score'; + @override String get chat_removePath => 'Pad verwijderen'; diff --git a/lib/l10n/app_localizations_pl.dart b/lib/l10n/app_localizations_pl.dart index aa8db9cf..f092c155 100644 --- a/lib/l10n/app_localizations_pl.dart +++ b/lib/l10n/app_localizations_pl.dart @@ -1483,6 +1483,9 @@ class AppLocalizationsPl extends AppLocalizations { @override String get chat_successes => 'Sukcesy'; + @override + String get chat_score => 'Score'; + @override String get chat_removePath => 'Usuń ścieżkę'; diff --git a/lib/l10n/app_localizations_pt.dart b/lib/l10n/app_localizations_pt.dart index 483447dd..8c870505 100644 --- a/lib/l10n/app_localizations_pt.dart +++ b/lib/l10n/app_localizations_pt.dart @@ -1470,6 +1470,9 @@ class AppLocalizationsPt extends AppLocalizations { @override String get chat_successes => 'Sucessos'; + @override + String get chat_score => 'Score'; + @override String get chat_removePath => 'Remover caminho'; diff --git a/lib/l10n/app_localizations_ru.dart b/lib/l10n/app_localizations_ru.dart index 743ffbe2..a77f1f4f 100644 --- a/lib/l10n/app_localizations_ru.dart +++ b/lib/l10n/app_localizations_ru.dart @@ -1473,6 +1473,9 @@ class AppLocalizationsRu extends AppLocalizations { @override String get chat_successes => 'успешно'; + @override + String get chat_score => 'Score'; + @override String get chat_removePath => 'Удалить маршрут'; diff --git a/lib/l10n/app_localizations_sk.dart b/lib/l10n/app_localizations_sk.dart index 6deb5e3e..222251b2 100644 --- a/lib/l10n/app_localizations_sk.dart +++ b/lib/l10n/app_localizations_sk.dart @@ -1460,6 +1460,9 @@ class AppLocalizationsSk extends AppLocalizations { @override String get chat_successes => 'Úspechy'; + @override + String get chat_score => 'Score'; + @override String get chat_removePath => 'Odstrániť cestu'; diff --git a/lib/l10n/app_localizations_sl.dart b/lib/l10n/app_localizations_sl.dart index eee54439..4053b915 100644 --- a/lib/l10n/app_localizations_sl.dart +++ b/lib/l10n/app_localizations_sl.dart @@ -1457,6 +1457,9 @@ class AppLocalizationsSl extends AppLocalizations { @override String get chat_successes => 'Uspešni'; + @override + String get chat_score => 'Score'; + @override String get chat_removePath => 'Izbriši pot'; diff --git a/lib/l10n/app_localizations_sv.dart b/lib/l10n/app_localizations_sv.dart index cc4b77c5..b29fdf4e 100644 --- a/lib/l10n/app_localizations_sv.dart +++ b/lib/l10n/app_localizations_sv.dart @@ -1452,6 +1452,9 @@ class AppLocalizationsSv extends AppLocalizations { @override String get chat_successes => 'framgångar'; + @override + String get chat_score => 'Score'; + @override String get chat_removePath => 'Ta bort sökväg'; diff --git a/lib/l10n/app_localizations_uk.dart b/lib/l10n/app_localizations_uk.dart index 834db157..b0c62127 100644 --- a/lib/l10n/app_localizations_uk.dart +++ b/lib/l10n/app_localizations_uk.dart @@ -1468,6 +1468,9 @@ class AppLocalizationsUk extends AppLocalizations { @override String get chat_successes => 'Успішно'; + @override + String get chat_score => 'Оцінка'; + @override String get chat_removePath => 'Видалити шлях'; diff --git a/lib/l10n/app_localizations_zh.dart b/lib/l10n/app_localizations_zh.dart index c28b980e..164abb90 100644 --- a/lib/l10n/app_localizations_zh.dart +++ b/lib/l10n/app_localizations_zh.dart @@ -1385,6 +1385,9 @@ class AppLocalizationsZh extends AppLocalizations { @override String get chat_successes => '成功'; + @override + String get chat_score => 'Score'; + @override String get chat_removePath => '移除路径'; diff --git a/lib/l10n/app_nl.arb b/lib/l10n/app_nl.arb index 9dd31bd9..eaa593b8 100644 --- a/lib/l10n/app_nl.arb +++ b/lib/l10n/app_nl.arb @@ -2114,5 +2114,6 @@ "contact_typeRoom": "Room", "contact_typeSensor": "Sensor", "contact_typeUnknown": "Unknown", - "channels_via": "via {path}" + "channels_via": "via {path}", + "chat_score": "Score" } diff --git a/lib/l10n/app_pl.arb b/lib/l10n/app_pl.arb index b9180716..ac678c11 100644 --- a/lib/l10n/app_pl.arb +++ b/lib/l10n/app_pl.arb @@ -2152,5 +2152,6 @@ "contact_typeRoom": "Room", "contact_typeSensor": "Sensor", "contact_typeUnknown": "Unknown", - "channels_via": "via {path}" + "channels_via": "via {path}", + "chat_score": "Score" } diff --git a/lib/l10n/app_pt.arb b/lib/l10n/app_pt.arb index 5de4b127..7993f029 100644 --- a/lib/l10n/app_pt.arb +++ b/lib/l10n/app_pt.arb @@ -2114,5 +2114,6 @@ "contact_typeRoom": "Room", "contact_typeSensor": "Sensor", "contact_typeUnknown": "Unknown", - "channels_via": "via {path}" + "channels_via": "via {path}", + "chat_score": "Score" } diff --git a/lib/l10n/app_ru.arb b/lib/l10n/app_ru.arb index 07bf5259..5124659e 100644 --- a/lib/l10n/app_ru.arb +++ b/lib/l10n/app_ru.arb @@ -1354,5 +1354,6 @@ "contact_typeRoom": "Room", "contact_typeSensor": "Sensor", "contact_typeUnknown": "Unknown", - "channels_via": "via {path}" + "channels_via": "via {path}", + "chat_score": "Score" } diff --git a/lib/l10n/app_sk.arb b/lib/l10n/app_sk.arb index 61fc64f7..26dd1e73 100644 --- a/lib/l10n/app_sk.arb +++ b/lib/l10n/app_sk.arb @@ -2114,5 +2114,6 @@ "contact_typeRoom": "Room", "contact_typeSensor": "Sensor", "contact_typeUnknown": "Unknown", - "channels_via": "via {path}" + "channels_via": "via {path}", + "chat_score": "Score" } diff --git a/lib/l10n/app_sl.arb b/lib/l10n/app_sl.arb index f6339142..3e0fdf65 100644 --- a/lib/l10n/app_sl.arb +++ b/lib/l10n/app_sl.arb @@ -2114,5 +2114,6 @@ "contact_typeRoom": "Room", "contact_typeSensor": "Sensor", "contact_typeUnknown": "Unknown", - "channels_via": "via {path}" + "channels_via": "via {path}", + "chat_score": "Score" } diff --git a/lib/l10n/app_sv.arb b/lib/l10n/app_sv.arb index d5947cba..73b7227a 100644 --- a/lib/l10n/app_sv.arb +++ b/lib/l10n/app_sv.arb @@ -2114,5 +2114,6 @@ "contact_typeRoom": "Room", "contact_typeSensor": "Sensor", "contact_typeUnknown": "Unknown", - "channels_via": "via {path}" + "channels_via": "via {path}", + "chat_score": "Score" } diff --git a/lib/l10n/app_uk.arb b/lib/l10n/app_uk.arb index f0cfd360..b47bfcbf 100644 --- a/lib/l10n/app_uk.arb +++ b/lib/l10n/app_uk.arb @@ -564,6 +564,7 @@ } }, "chat_successes": "Успішно", + "chat_score": "Оцінка", "chat_removePath": "Видалити шлях", "chat_noPathHistoryYet": "Історія шляхів недоступна.\nНадішліть повідомлення, щоб виявити шляхи.", "chat_pathActions": "Дії зі шляхом:", @@ -827,7 +828,7 @@ "login_roomDescription": "Введіть пароль кімнати для доступу до налаштувань та статусу.", "login_routing": "Маршрутизація", "login_routingMode": "Режим маршрутизації", - "login_autoUseSavedPath": "Авто (використовувати збережений шлях)", + "login_autoUseSavedPath": "Авто (збережений шлях)", "login_forceFloodMode": "Примусово через всю мережу", "login_managePaths": "Керувати шляхами", "login_login": "Вхід", diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index 03fa71fd..b88a9af9 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -2119,5 +2119,6 @@ "contact_typeRoom": "Room", "contact_typeSensor": "Sensor", "contact_typeUnknown": "Unknown", - "channels_via": "via {path}" + "channels_via": "via {path}", + "chat_score": "Score" } diff --git a/lib/screens/channel_chat_screen.dart b/lib/screens/channel_chat_screen.dart index 0454f17f..6bd89c2c 100644 --- a/lib/screens/channel_chat_screen.dart +++ b/lib/screens/channel_chat_screen.dart @@ -4,6 +4,7 @@ import 'dart:math' as math; import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; import 'package:flutter/services.dart'; +import 'package:intl/intl.dart'; import 'package:latlong2/latlong.dart'; import 'package:provider/provider.dart'; @@ -578,7 +579,7 @@ class _ChannelChatScreenState extends State { mainAxisSize: MainAxisSize.min, children: [ Text( - _formatTime(message.timestamp), + _formatTime(context, message.timestamp), style: TextStyle( fontSize: 11, color: Colors.grey[600], @@ -1227,14 +1228,16 @@ class _ChannelChatScreenState extends State { ); } - String _formatTime(DateTime time) { + String _formatTime(BuildContext context, DateTime time) { final now = DateTime.now(); final diff = now.difference(time); + final locale = Localizations.localeOf(context).toString(); + final hm = DateFormat.Hm(locale).format(time); if (diff.inDays > 0) { - return '${time.day}/${time.month} ${time.hour}:${time.minute.toString().padLeft(2, '0')}'; + return '${DateFormat.Md(locale).format(time)} $hm'; } else { - return '${time.hour}:${time.minute.toString().padLeft(2, '0')}'; + return hm; } } diff --git a/lib/widgets/path_management_dialog.dart b/lib/widgets/path_management_dialog.dart index bc7623e0..c63ce76e 100644 --- a/lib/widgets/path_management_dialog.dart +++ b/lib/widgets/path_management_dialog.dart @@ -303,7 +303,7 @@ class _PathManagementDialogState extends State<_PathManagementDialog> { ), isThreeLine: true, subtitle: Text( - '${(path.tripTimeMs / 1000).toStringAsFixed(2)}s • ${_formatRelativeTime(context, path.timestamp)}\n${path.successCount} ${l10n.chat_successes} • Score: ${path.routeWeight.toStringAsFixed(1)}', + '${(path.tripTimeMs / 1000).toStringAsFixed(2)}s • ${_formatRelativeTime(context, path.timestamp)}\n${path.successCount} ${l10n.chat_successes} • ${l10n.chat_score}: ${path.routeWeight.toStringAsFixed(1)}', style: const TextStyle(fontSize: 11), ), trailing: Row(