diff --git a/lib/features/chat/widgets/assistant_message_widget.dart b/lib/features/chat/widgets/assistant_message_widget.dart index 0013fa5..e18f198 100644 --- a/lib/features/chat/widgets/assistant_message_widget.dart +++ b/lib/features/chat/widgets/assistant_message_widget.dart @@ -228,20 +228,21 @@ class _AssistantMessageWidgetState extends ConsumerState const SizedBox(width: Spacing.xs), Text( () { + final l10n = AppLocalizations.of(context)!; final rc = _reasoningContent!; final hasSummary = rc.summary.isNotEmpty; final isThinkingSummary = rc.summary.trim().toLowerCase() == 'thinking…' || rc.summary.trim().toLowerCase() == 'thinking...'; if (widget.isStreaming) { // During streaming, prefer showing Thinking… - return hasSummary ? rc.summary : 'Thinking…'; + return hasSummary ? rc.summary : l10n.thinking; } // After streaming ends: if (rc.duration > 0) { - return 'Thought for ${rc.formattedDuration}'; + return l10n.thoughtForDuration(rc.formattedDuration); } // If summary was just the placeholder 'Thinking…', replace with a neutral title if (!hasSummary || isThinkingSummary) { - return 'Thoughts'; + return l10n.thoughts; } return rc.summary; }(), @@ -514,7 +515,8 @@ class _AssistantMessageWidgetState extends ConsumerState return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - const SizedBox(height: Spacing.xs), + // Increase spacing between assistant name and typing indicator + const SizedBox(height: Spacing.md), Row( children: [ _buildTypingDot(0), diff --git a/lib/l10n/app_de.arb b/lib/l10n/app_de.arb index 2d8f1be..0b9e5d9 100644 --- a/lib/l10n/app_de.arb +++ b/lib/l10n/app_de.arb @@ -251,5 +251,12 @@ "versionLabel": "Version: {version} ({build})", "@versionLabel": {"placeholders": {"version": {"type": "String"}, "build": {"type": "String"}}}, "githubRepository": "GitHub-Repository", - "unableToLoadAppInfo": "App-Informationen konnten nicht geladen werden" + "unableToLoadAppInfo": "App-Informationen konnten nicht geladen werden", + "thinking": "Denkt…", + "thoughts": "Gedanken", + "thoughtForDuration": "Gedacht für {duration}", + "@thoughtForDuration": { + "description": "Zeigt an, wie lange der Assistent nachgedacht hat.", + "placeholders": {"duration": {"type": "String", "example": "3 s"}} + } } diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 2e5a9bc..e9fd505 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -275,5 +275,12 @@ "versionLabel": "Version: {version} ({build})", "@versionLabel": {"placeholders": {"version": {"type": "String"}, "build": {"type": "String"}}}, "githubRepository": "GitHub Repository", - "unableToLoadAppInfo": "Unable to load app info" + "unableToLoadAppInfo": "Unable to load app info", + "thinking": "Thinking…", + "thoughts": "Thoughts", + "thoughtForDuration": "Thought for {duration}", + "@thoughtForDuration": { + "description": "Shows how long the assistant thought before replying.", + "placeholders": {"duration": {"type": "String", "example": "3s"}} + } } diff --git a/lib/l10n/app_fr.arb b/lib/l10n/app_fr.arb index 58a33f7..922ddff 100644 --- a/lib/l10n/app_fr.arb +++ b/lib/l10n/app_fr.arb @@ -251,5 +251,12 @@ "versionLabel": "Version : {version} ({build})", "@versionLabel": {"placeholders": {"version": {"type": "String"}, "build": {"type": "String"}}}, "githubRepository": "Dépôt GitHub", - "unableToLoadAppInfo": "Impossible de charger les informations de l'application" + "unableToLoadAppInfo": "Impossible de charger les informations de l'application", + "thinking": "Réflexion…", + "thoughts": "Réflexions", + "thoughtForDuration": "A réfléchi pendant {duration}", + "@thoughtForDuration": { + "description": "Indique la durée de réflexion de l'assistant.", + "placeholders": {"duration": {"type": "String", "example": "3 s"}} + } } diff --git a/lib/l10n/app_it.arb b/lib/l10n/app_it.arb index 3c5ea24..704222b 100644 --- a/lib/l10n/app_it.arb +++ b/lib/l10n/app_it.arb @@ -251,5 +251,12 @@ "versionLabel": "Versione: {version} ({build})", "@versionLabel": {"placeholders": {"version": {"type": "String"}, "build": {"type": "String"}}}, "githubRepository": "Repository GitHub", - "unableToLoadAppInfo": "Impossibile caricare le informazioni dell'app" + "unableToLoadAppInfo": "Impossibile caricare le informazioni dell'app", + "thinking": "Sta pensando…", + "thoughts": "Pensieri", + "thoughtForDuration": "Ha pensato per {duration}", + "@thoughtForDuration": { + "description": "Mostra per quanto tempo ha pensato l'assistente.", + "placeholders": {"duration": {"type": "String", "example": "3 s"}} + } } diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index 493e092..73d048a 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -1454,6 +1454,24 @@ abstract class AppLocalizations { /// In en, this message translates to: /// **'Unable to load app info'** String get unableToLoadAppInfo; + + /// No description provided for @thinking. + /// + /// In en, this message translates to: + /// **'Thinking…'** + String get thinking; + + /// No description provided for @thoughts. + /// + /// In en, this message translates to: + /// **'Thoughts'** + String get thoughts; + + /// Shows how long the assistant thought before replying. + /// + /// In en, this message translates to: + /// **'Thought for {duration}'** + String thoughtForDuration(String duration); } class _AppLocalizationsDelegate extends LocalizationsDelegate { diff --git a/lib/l10n/app_localizations_de.dart b/lib/l10n/app_localizations_de.dart index 5fd1a63..8b83461 100644 --- a/lib/l10n/app_localizations_de.dart +++ b/lib/l10n/app_localizations_de.dart @@ -716,4 +716,15 @@ class AppLocalizationsDe extends AppLocalizations { @override String get unableToLoadAppInfo => 'App-Informationen konnten nicht geladen werden'; + + @override + String get thinking => 'Denkt…'; + + @override + String get thoughts => 'Gedanken'; + + @override + String thoughtForDuration(String duration) { + return 'Gedacht für $duration'; + } } diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index 49ee730..96f3c80 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -716,4 +716,15 @@ class AppLocalizationsEn extends AppLocalizations { @override String get unableToLoadAppInfo => 'Unable to load app info'; + + @override + String get thinking => 'Thinking…'; + + @override + String get thoughts => 'Thoughts'; + + @override + String thoughtForDuration(String duration) { + return 'Thought for $duration'; + } } diff --git a/lib/l10n/app_localizations_fr.dart b/lib/l10n/app_localizations_fr.dart index 3634963..e3b24d7 100644 --- a/lib/l10n/app_localizations_fr.dart +++ b/lib/l10n/app_localizations_fr.dart @@ -716,4 +716,15 @@ class AppLocalizationsFr extends AppLocalizations { @override String get unableToLoadAppInfo => 'Impossible de charger les informations de l\'application'; + + @override + String get thinking => 'Réflexion…'; + + @override + String get thoughts => 'Réflexions'; + + @override + String thoughtForDuration(String duration) { + return 'A réfléchi pendant $duration'; + } } diff --git a/lib/l10n/app_localizations_it.dart b/lib/l10n/app_localizations_it.dart index 707074e..d3d06ba 100644 --- a/lib/l10n/app_localizations_it.dart +++ b/lib/l10n/app_localizations_it.dart @@ -716,4 +716,15 @@ class AppLocalizationsIt extends AppLocalizations { @override String get unableToLoadAppInfo => 'Impossibile caricare le informazioni dell\'app'; + + @override + String get thinking => 'Sta pensando…'; + + @override + String get thoughts => 'Pensieri'; + + @override + String thoughtForDuration(String duration) { + return 'Ha pensato per $duration'; + } }