kaizen-app/app/src/main/res/values-en/strings.xml
Bruno Deanoz 76ab8bfde9 feat: reasoning, sources, and tool-call display
StreamConsumer.Incremental now returns StreamState (content, reasoning,
tools, query, sources) instead of just visible text. All sentinel sections
are parsed and structured:
- \x01 REASONING: captured as separate string
- \x02 SOURCES: parsed as List<SearchSource> (title, url, snippet)
- \x03 TOOL: parsed as List<ToolEvent> (type, name, args, result, elapsed)
- \x04 QUERY: captured as search query string

UI components:
- ReasoningBlock: collapsible "Gedankengang" with expand/collapse animation
- ToolEventsBlock: shows tool-call steps with status icons (start/end/error)
- SourcesBlock: web search sources as compact cards with domain extraction

Message model extended with reasoning, tools, query, sources fields.
KaizenApi.chat() returns Flow<StreamState> instead of Flow<String>.
ChatScreen wires all fields to Message during streaming.

Fixed: empty append() on Incremental no longer prematurely ends tool phase.
StreamConsumerTest rewritten to verify all parsed sections.
2026-06-21 15:35:46 +02:00

103 lines
5.2 KiB
XML

<resources>
<!-- Greeting -->
<string name="greeting_morning">Good Morning</string>
<string name="greeting_day">Good Afternoon</string>
<string name="greeting_evening">Good Evening</string>
<string name="greeting_night">Hello</string>
<string name="hero_headline">What\'s up?</string>
<!-- Chat -->
<string name="chat_input_placeholder">Type a message …</string>
<string name="chat_no_conversations">No chats yet</string>
<string name="chat_locked">Locked Chat</string>
<string name="chat_locked_badge">Locked</string>
<string name="chat_new">New Chat</string>
<string name="chat_search">Search…</string>
<string name="chat_attachment">Attachment</string>
<string name="chat_call">Call</string>
<string name="chat_remove">Remove</string>
<string name="chat_error">Error</string>
<string name="chat_open_menu">Open menu</string>
<!-- Stream blocks -->
<string name="stream_reasoning">Reasoning</string>
<string name="stream_sources">Sources</string>
<!-- Chat errors -->
<string name="error_session_expired">Session expired. Please sign in again.</string>
<string name="error_credits_exhausted">Credits exhausted.</string>
<string name="error_rate_limited">Too many requests. Please wait.</string>
<string name="error_server">Server error (%1$d).</string>
<string name="error_no_connection">No connection to server.</string>
<!-- Mode pills -->
<string name="mode_standard">Standard</string>
<string name="mode_sampling">Sampling</string>
<string name="mode_image">Image</string>
<string name="mode_search">Search</string>
<string name="mode_video">Video</string>
<string name="mode_audio">Audio</string>
<!-- Suggestion pills -->
<string name="suggest_brainstorm">Brainstorm</string>
<string name="suggest_brainstorm_prompt">Let\'s brainstorm on a topic.</string>
<string name="suggest_image">Generate Image</string>
<string name="suggest_image_prompt">Generate an image of a mountain lake at sunrise.</string>
<string name="suggest_video">Create Video</string>
<string name="suggest_video_prompt">Create a short video of a city at night.</string>
<string name="suggest_web">Search the Web</string>
<string name="suggest_web_prompt">Search the web for the latest AI news.</string>
<!-- Sidebar -->
<string name="sidebar_brand">kaizen</string>
<string name="sidebar_pinned">★ PINNED</string>
<string name="sidebar_today">TODAY</string>
<string name="sidebar_yesterday">YESTERDAY</string>
<string name="sidebar_earlier">EARLIER</string>
<string name="sidebar_logout">Sign Out</string>
<string name="sidebar_settings">Settings</string>
<!-- Model sheet -->
<string name="model_sheet_title">Select Model</string>
<string name="model_search_placeholder">Search models…</string>
<string name="model_search_clear">Clear</string>
<string name="model_connecting">Connecting…</string>
<string name="model_no_results">No matches</string>
<string name="model_favorite">Favorite</string>
<string name="model_selected">Selected</string>
<string name="model_favorites_group">★ Favorites</string>
<!-- Login -->
<string name="login_welcome">Welcome</string>
<string name="login_subtitle">Sign in to your Kaizen instance</string>
<string name="login_url_placeholder">https://your-instance.com</string>
<string name="login_email_placeholder">Email</string>
<string name="login_password_placeholder">Password</string>
<string name="login_submit">Sign In</string>
<string name="login_error_credentials">Invalid email or password.</string>
<string name="login_error_rate_limited">Too many attempts. Please wait.</string>
<string name="login_error_connection">Connection failed. Check server address.</string>
<!-- Settings -->
<string name="settings_title">Settings</string>
<string name="settings_back">Back</string>
<string name="settings_section_appearance">APPEARANCE</string>
<string name="settings_section_profile">PROFILE &amp; ACCOUNT</string>
<string name="settings_section_ai">AI PROFILE &amp; CONTEXT</string>
<string name="settings_accent_title">Accent Color</string>
<string name="settings_accent_desc">Choose the app color scheme</string>
<string name="settings_appearance_title">Appearance</string>
<string name="settings_appearance_desc">Set light/dark appearance</string>
<string name="settings_name_title">Display Name</string>
<string name="settings_name_desc">Change your display name</string>
<string name="settings_email_title">Email Address</string>
<string name="settings_ai_title">System Prompt &amp; Facts</string>
<string name="settings_appearance_light">Light</string>
<string name="settings_appearance_dark">Dark</string>
<string name="settings_appearance_system">System</string>
<string name="settings_language_title">Language</string>
<string name="settings_language_desc">Choose the app language</string>
<string name="settings_language_system">System</string>
<string name="settings_language_de">Deutsch</string>
<string name="settings_language_en">English</string>
</resources>