You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(i18n): migrate Ai.qml and fix OSD.qml i18n calls
OSD.qml: fix i18n.t() -> I18n.t() (lowercase caused empty strings)
Ai.qml: migrate hardcoded user-visible strings to I18n.t():
- /model command: model not found, switched to model messages
- /help command: full help message
- API key missing error (with model name and key_id substitution)
- Network request failed error
- No response from API message
- Command executed successfully (no output) message
- Model descriptions for all 6 providers
translations: add 13 new keys to en/ru/es (ai.api_key_missing,
ai.cmd_no_output, ai.desc_*, ai.env_variable, ai.help_message,
ai.model_not_found, ai.network_failed, ai.no_response,
ai.switched_to_model)
pushSystemMessage("🤖 **Assistant Commands**\n\n"+"**`/new`**\n"+"Starts a fresh conversation context.\n\n"+"**`/model [name]`**\n"+"Switches the active AI model.\n"+"• **List models:** Type `/model` without arguments.\n"+"• **Switch:** Type `/model gemini` or `/model mistral`.\n\n"+"**`/help`**\n"+"Shows this help message.\n\n"+"💡 **Tips:**\n"+"• **Edit:** Click the pen icon on any message to modify it.\n"+"• **Regenerate:** Click the refresh icon to get a new response.\n"+"• **Copy:** Use the copy button to grab code or text.");
269
+
pushSystemMessage(I18n.t("ai.help_message"));
270
270
returntrue;
271
271
}
272
272
@@ -341,7 +341,7 @@ Singleton {
341
341
functionmakeRequest() {
342
342
let apiKey =getApiKey(currentModel);
343
343
if (!apiKey &¤tModel.requires_key) {
344
-
lastError ="API Key missing for "+currentModel.name+". Add it in Settings or set "+ (currentModel.key_id||"the environment variable") +".";
"ai.custom_provider_key": "Custom Provider API Key",
19
28
"ai.endpoint_placeholder": "e.g. https://...",
20
29
"ai.enter_api_key": "Enter API Key...",
30
+
"ai.help_message": "🤖 **Assistant Commands**\n\n**`/new`**\nStarts a fresh conversation context.\n\n**`/model [name]`**\nSwitches the active AI model.\n- **List models:** Type `/model` without arguments.\n- **Switch:** Type `/model gemini` or `/model mistral`.\n\n**`/help`**\nShows this help message.\n\n💡 **Tips:**\n- **Edit:** Click the pen icon on any message to modify it.\n- **Regenerate:** Click the refresh icon to get a new response.\n- **Copy:** Use the copy button to grab code or text.",
"ai.custom_provider_key": "Clave API del proveedor personalizado",
19
28
"ai.endpoint_placeholder": "ej. https://...",
20
29
"ai.enter_api_key": "Ingresar clave API...",
30
+
"ai.help_message": "🤖 **Comandos del asistente**\n\n**`/new`**\nInicia un nuevo contexto de conversación.\n\n**`/model [nombre]`**\nCambia el modelo de AI activo.\n- **Lista de modelos:** Escribe `/model` sin argumentos.\n- **Cambiar:** Escribe `/model gemini` o `/model mistral`.\n\n**`/help`**\nMuestra este mensaje de ayuda.\n\n💡 **Consejos:**\n- **Editar:** Haz clic en el ícono de lápiz en cualquier mensaje.\n- **Regenerar:** Haz clic en el ícono de actualizar para obtener una nueva respuesta.\n- **Copiar:** Usa el botón de copiar para código o texto.",
21
31
"ai.hello_user": "Hola, %1.",
32
+
"ai.model_not_found": "Modelo '%1' no encontrado.",
22
33
"ai.message": "Mensaje al AI...",
34
+
"ai.network_failed": "Error de red: %1",
35
+
"ai.no_response": "La API no devolvió ninguna respuesta.",
23
36
"ai.panel_title": "AI y claves API",
24
37
"ai.refresh_models": "¿Actualizar?",
25
38
"ai.reject": "Rechazar",
26
39
"ai.run_command": "Ejecutar comando",
27
40
"ai.search_models": "Buscar modelos...",
41
+
"ai.switched_to_model": "Modelo cambiado: %1",
28
42
"bar.tooltip.audio_switcher": "Selector de dispositivo de audio",
29
43
"bar.tooltip.controls": "Controles de audio y brillo",
30
44
"bar.tooltip.keyboard_layout": "Disposición del teclado",
@@ -247,6 +261,9 @@
247
261
"notifications.now": "Ahora",
248
262
"notifications.panel_title": "Notificaciones",
249
263
"notifications.yesterday": "Ayer",
264
+
"osd.brightness": "Brillo",
265
+
"osd.mic": "Micrófono",
266
+
"osd.volume": "Volumen",
250
267
"overview.search": "Buscar ventanas...",
251
268
"performance.blur_transition": "Transición de desenfoque",
252
269
"performance.dashboard_persist": "Mantener pestañas del panel",
"ai.help_message": "🤖 **Команды ассистента**\n\n**`/new`**\nНачинает новый контекст разговора.\n\n**`/model [название]`**\nПереключает активную модель AI.\n- **Список моделей:** Введите `/model` без аргументов.\n- **Переключение:** Введите `/model gemini` или `/model mistral`.\n\n**`/help`**\nПоказывает это сообщение.\n\n💡 **Советы:**\n- **Редактировать:** Нажмите на значок карандаша у любого сообщения.\n- **Повторить:** Нажмите на значок обновления для нового ответа.\n- **Копировать:** Используйте кнопку копирования для кода или текста.",
0 commit comments