From c9c990df58e75aa2c2ba02c237daea6070f4faa7 Mon Sep 17 00:00:00 2001 From: jeffser Date: Tue, 21 May 2024 23:15:32 -0600 Subject: [PATCH] Added import/export and added 'run on background' option on preferences --- po/alpaca.pot | 222 +++++++++++++------------ po/es.po | 273 +++++++++++++++++------------- po/es.po~ | 324 ++++++++++++++++++++---------------- po/ru.po | 269 ++++++++++++++++++------------ po/ru.po~ | 450 ++++++++++++++++++++++++++++---------------------- src/window.py | 91 ++++++++-- src/window.ui | 45 ++++- 7 files changed, 991 insertions(+), 683 deletions(-) diff --git a/po/alpaca.pot b/po/alpaca.pot index 068dc0c..4832431 100644 --- a/po/alpaca.pot +++ b/po/alpaca.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-20 19:15-0600\n" +"POT-Creation-Date: 2024-05-21 22:07-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -45,7 +45,7 @@ msgstr "" msgid "Pull and delete models from the app" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:16 src/window.ui:392 +#: data/com.jeffser.Alpaca.metainfo.xml.in:16 src/window.ui:436 msgid "Disclaimer" msgstr "" @@ -325,292 +325,306 @@ msgstr "" msgid "This is the first public version of Alpaca" msgstr "" -#: src/window.py:47 src/window.py:776 +#: src/window.py:53 src/window.py:753 msgid "New Chat" msgstr "" -#: src/window.py:86 +#: src/window.py:98 msgid "An error occurred" msgstr "" -#: src/window.py:87 +#: src/window.py:99 msgid "Failed to connect to server" msgstr "" -#: src/window.py:88 +#: src/window.py:100 msgid "Could not list local models" msgstr "" -#: src/window.py:89 +#: src/window.py:101 msgid "Could not delete model" msgstr "" -#: src/window.py:90 +#: src/window.py:102 msgid "Could not pull model" msgstr "" -#: src/window.py:91 +#: src/window.py:103 msgid "Cannot open image" msgstr "" -#: src/window.py:92 +#: src/window.py:104 msgid "Cannot delete chat because it's the only one left" msgstr "" -#: src/window.py:95 +#: src/window.py:105 +msgid "There was an error with the local Ollama instance, so it has been reset" +msgstr "" + +#: src/window.py:108 msgid "Please select a model before chatting" msgstr "" -#: src/window.py:96 +#: src/window.py:109 msgid "Chat cannot be cleared while receiving a message" msgstr "" -#: src/window.py:99 +#: src/window.py:110 +msgid "That tag is already being pulled" +msgstr "" + +#: src/window.py:111 +msgid "That tag has been pulled alreay" +msgstr "" + +#: src/window.py:114 msgid "Model deleted successfully" msgstr "" -#: src/window.py:100 +#: src/window.py:115 msgid "Model pulled successfully" msgstr "" -#: src/window.py:425 +#: src/window.py:116 +msgid "Chat exported successfully" +msgstr "" + +#: src/window.py:117 +msgid "Chat imported successfully" +msgstr "" + +#: src/window.py:443 msgid "Task Complete" msgstr "" -#: src/window.py:425 +#: src/window.py:443 msgid "Model '{}' pulled successfully." msgstr "" -#: src/window.py:430 +#: src/window.py:448 msgid "Pull Model Error" msgstr "" -#: src/window.py:430 +#: src/window.py:448 msgid "Failed to pull model '{}' due to network error." msgstr "" -#: src/window.py:446 +#: src/window.py:464 msgid "Stop Model" msgstr "" -#: src/window.py:447 +#: src/window.py:465 msgid "Are you sure you want to stop pulling '{}'?" msgstr "" -#: src/window.py:450 src/window.py:489 src/window.py:512 src/window.py:593 -#: src/window.py:654 src/window.py:703 src/window.py:730 src/window.py:763 -#: src/window.py:803 +#: src/window.py:468 src/window.py:511 src/window.py:534 src/window.py:607 +#: src/window.py:680 src/window.py:707 src/window.py:740 src/window.py:780 msgid "Cancel" msgstr "" -#: src/window.py:451 +#: src/window.py:469 msgid "Stop" msgstr "" -#: src/window.py:485 +#: src/window.py:507 msgid "Delete Model" msgstr "" -#: src/window.py:486 src/window.py:727 +#: src/window.py:508 src/window.py:704 msgid "Are you sure you want to delete '{}'?" msgstr "" -#: src/window.py:490 src/window.py:731 +#: src/window.py:512 src/window.py:708 msgid "Delete" msgstr "" -#: src/window.py:507 +#: src/window.py:529 msgid "Pull Model" msgstr "" -#: src/window.py:508 +#: src/window.py:530 msgid "Please select a tag to pull '{}'" msgstr "" -#: src/window.py:513 +#: src/window.py:535 msgid "Pull" msgstr "" -#: src/window.py:589 src/window.ui:426 +#: src/window.py:603 src/window.ui:452 msgid "Clear Chat" msgstr "" -#: src/window.py:590 +#: src/window.py:604 msgid "Are you sure you want to clear the chat?" msgstr "" -#: src/window.py:594 +#: src/window.py:608 msgid "Clear" msgstr "" -#: src/window.py:650 -msgid "Save Changes" -msgstr "" - -#: src/window.py:651 -msgid "Do you want to save the URL change?" -msgstr "" - -#: src/window.py:655 -msgid "Discard" -msgstr "" - -#: src/window.py:656 -msgid "Save" -msgstr "" - -#: src/window.py:699 +#: src/window.py:676 msgid "Remove Image" msgstr "" -#: src/window.py:700 +#: src/window.py:677 msgid "Are you sure you want to remove image?" msgstr "" -#: src/window.py:704 +#: src/window.py:681 msgid "Remove" msgstr "" -#: src/window.py:726 +#: src/window.py:703 msgid "Delete Chat" msgstr "" -#: src/window.py:757 +#: src/window.py:734 msgid "Rename Chat" msgstr "" -#: src/window.py:764 +#: src/window.py:741 msgid "Rename" msgstr "" -#: src/window.py:784 +#: src/window.py:761 msgid "The name '{}' is already in use" msgstr "" -#: src/window.py:797 +#: src/window.py:774 msgid "Create Chat" msgstr "" -#: src/window.py:804 +#: src/window.py:781 msgid "Create" msgstr "" -#: src/window.ui:54 +#: src/window.ui:46 msgid "Chats" msgstr "" -#: src/window.ui:64 +#: src/window.ui:56 +msgid "Import chat" +msgstr "" + +#: src/window.ui:69 +msgid "Export chat" +msgstr "" + +#: src/window.ui:82 msgid "New chat" msgstr "" -#: src/window.ui:100 +#: src/window.ui:118 msgid "Toggle Sidebar" msgstr "" -#: src/window.ui:121 src/window.ui:257 +#: src/window.ui:139 src/window.ui:305 msgid "Manage models" msgstr "" -#: src/window.ui:135 +#: src/window.ui:153 msgid "Menu" msgstr "" -#: src/window.ui:213 +#: src/window.ui:231 msgid "Send" msgstr "" -#: src/window.ui:222 +#: src/window.ui:240 msgid "Requires model 'llava' to be selected" msgstr "" -#: src/window.ui:225 +#: src/window.ui:243 msgid "Image" msgstr "" -#: src/window.ui:331 +#: src/window.ui:267 src/window.ui:456 src/window.ui:507 +msgid "Preferences" +msgstr "" + +#: src/window.ui:270 +msgid "Connection" +msgstr "" + +#: src/window.ui:274 +msgid "Remote Connection" +msgstr "" + +#: src/window.ui:275 +msgid "Manage a remote connection to Ollama" +msgstr "" + +#: src/window.ui:278 +msgid "Use remote connection" +msgstr "" + +#: src/window.ui:283 +msgid "URL of remote instance" +msgstr "" + +#: src/window.ui:375 msgid "Previous" msgstr "" -#: src/window.ui:346 +#: src/window.ui:390 msgid "Next" msgstr "" -#: src/window.ui:372 +#: src/window.ui:416 msgid "Welcome to Alpaca" msgstr "" -#: src/window.ui:373 -msgid "" -"To get started, please ensure you have an Ollama instance set up. You can " -"either run Ollama locally on your machine or connect to a remote instance." +#: src/window.ui:417 +msgid "Powered by Ollama" msgstr "" -#: src/window.ui:376 +#: src/window.ui:420 msgid "Ollama Website" msgstr "" -#: src/window.ui:393 +#: src/window.ui:437 msgid "" "Alpaca and its developers are not liable for any damages to devices or " "software resulting from the execution of code generated by an AI model. " "Please exercise caution and review the code carefully before running it." msgstr "" -#: src/window.ui:405 -msgid "Setup" -msgstr "" - -#: src/window.ui:406 -msgid "" -"If you are running an Ollama instance locally and haven't modified the " -"default ports, you can use the default URL. Otherwise, please enter the URL " -"of your Ollama instance." -msgstr "" - -#: src/window.ui:430 -msgid "Change Server" -msgstr "" - -#: src/window.ui:434 +#: src/window.ui:460 msgid "Keyboard Shortcuts" msgstr "" -#: src/window.ui:438 +#: src/window.ui:464 msgid "About Alpaca" msgstr "" -#: src/window.ui:460 +#: src/window.ui:491 msgid "General" msgstr "" -#: src/window.ui:464 +#: src/window.ui:495 msgid "Close application" msgstr "" -#: src/window.ui:470 +#: src/window.ui:501 msgid "Clear chat" msgstr "" -#: src/window.ui:476 -msgid "Change server" -msgstr "" - -#: src/window.ui:482 +#: src/window.ui:513 msgid "Show shortcuts window" msgstr "" -#: src/window.ui:489 +#: src/window.ui:520 msgid "Editor" msgstr "" -#: src/window.ui:493 +#: src/window.ui:524 msgid "Copy" msgstr "" -#: src/window.ui:499 +#: src/window.ui:530 msgid "Paste" msgstr "" -#: src/window.ui:505 +#: src/window.ui:536 msgid "Send Message" msgstr "" diff --git a/po/es.po b/po/es.po index 30ad526..4a6267d 100644 --- a/po/es.po +++ b/po/es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-20 19:15-0600\n" +"POT-Creation-Date: 2024-05-21 22:07-0600\n" "PO-Revision-Date: 2024-05-19 19:44-0600\n" "Last-Translator: Jeffry Samuel Eduarte Rojas \n" "Language-Team: Spanish \n" @@ -45,7 +45,7 @@ msgstr "Habla con multiples modelos en la misma conversación" msgid "Pull and delete models from the app" msgstr "Descarga y elimina modelos desde la app" -#: data/com.jeffser.Alpaca.metainfo.xml.in:16 src/window.ui:392 +#: data/com.jeffser.Alpaca.metainfo.xml.in:16 src/window.ui:436 msgid "Disclaimer" msgstr "Aviso Legal" @@ -94,8 +94,8 @@ msgid "" "Replaced model description with a button to open Ollama's website for the " "model" msgstr "" -"Remplazada la descripción de modelo por un botón para abrir la página web " -"de Ollama para el modelo" +"Remplazada la descripción de modelo por un botón para abrir la página web de " +"Ollama para el modelo" #: data/com.jeffser.Alpaca.metainfo.xml.in:62 msgid "Added myself to the credits as the spanish translator" @@ -352,234 +352,267 @@ msgstr "0.1.1" msgid "This is the first public version of Alpaca" msgstr "Esta es la primera versión publica de Alpaca" -#: src/window.py:47 src/window.py:776 +#: src/window.py:53 src/window.py:753 msgid "New Chat" msgstr "Nuevo Chat" -#: src/window.py:86 +#: src/window.py:98 msgid "An error occurred" msgstr "Ocurrio un error" -#: src/window.py:87 +#: src/window.py:99 msgid "Failed to connect to server" msgstr "No se pudo conectar al servidor" -#: src/window.py:88 +#: src/window.py:100 msgid "Could not list local models" msgstr "No se pudieron listar los modelos locales" -#: src/window.py:89 +#: src/window.py:101 msgid "Could not delete model" msgstr "No se pudo eliminar el modelo" -#: src/window.py:90 +#: src/window.py:102 msgid "Could not pull model" msgstr "No se pudo descargar el modelo" -#: src/window.py:91 +#: src/window.py:103 msgid "Cannot open image" msgstr "No se pudo abrir la imagen" -#: src/window.py:92 +#: src/window.py:104 msgid "Cannot delete chat because it's the only one left" msgstr "No se pudo eliminar el chat por que es el único que queda" -#: src/window.py:95 +#: src/window.py:105 +msgid "There was an error with the local Ollama instance, so it has been reset" +msgstr "" + +#: src/window.py:108 msgid "Please select a model before chatting" msgstr "Por favor selecciona un modelo antes de enviar un mensaje" -#: src/window.py:96 +#: src/window.py:109 msgid "Chat cannot be cleared while receiving a message" msgstr "El chat no puede ser limpiado mientras se recibe un mensaje" -#: src/window.py:99 +#: src/window.py:110 +#, fuzzy +msgid "That tag is already being pulled" +msgstr "El nombre '{}' ya está en uso" + +#: src/window.py:111 +msgid "That tag has been pulled alreay" +msgstr "" + +#: src/window.py:114 msgid "Model deleted successfully" msgstr "Modelo eliminado exitosamente" -#: src/window.py:100 +#: src/window.py:115 msgid "Model pulled successfully" msgstr "Modelo descargado exitosamente" -#: src/window.py:425 +#: src/window.py:116 +#, fuzzy +msgid "Chat exported successfully" +msgstr "Modelo eliminado exitosamente" + +#: src/window.py:117 +#, fuzzy +msgid "Chat imported successfully" +msgstr "Modelo descargado exitosamente" + +#: src/window.py:443 msgid "Task Complete" msgstr "Tarea completada" -#: src/window.py:425 +#: src/window.py:443 msgid "Model '{}' pulled successfully." msgstr "El modelo '{}' fue descargado exitosamente" -#: src/window.py:430 +#: src/window.py:448 msgid "Pull Model Error" msgstr "Error Descargando Modelo" -#: src/window.py:430 +#: src/window.py:448 msgid "Failed to pull model '{}' due to network error." msgstr "No se pudo descargar el modelo '{}' debido a un error de red" -#: src/window.py:446 +#: src/window.py:464 msgid "Stop Model" msgstr "Parar Modelo" -#: src/window.py:447 +#: src/window.py:465 msgid "Are you sure you want to stop pulling '{}'?" msgstr "¿Estás seguro de que quieres parar la descarga de '{}'?" -#: src/window.py:450 src/window.py:489 src/window.py:512 src/window.py:593 -#: src/window.py:654 src/window.py:703 src/window.py:730 src/window.py:763 -#: src/window.py:803 +#: src/window.py:468 src/window.py:511 src/window.py:534 src/window.py:607 +#: src/window.py:680 src/window.py:707 src/window.py:740 src/window.py:780 msgid "Cancel" msgstr "Cancelar" -#: src/window.py:451 +#: src/window.py:469 msgid "Stop" msgstr "Parar" -#: src/window.py:485 +#: src/window.py:507 msgid "Delete Model" msgstr "Eliminar Modelo" -#: src/window.py:486 src/window.py:727 +#: src/window.py:508 src/window.py:704 msgid "Are you sure you want to delete '{}'?" msgstr "¿Estás seguro de que quieres eliminar '{}'?" -#: src/window.py:490 src/window.py:731 +#: src/window.py:512 src/window.py:708 msgid "Delete" msgstr "Eliminar" -#: src/window.py:507 +#: src/window.py:529 msgid "Pull Model" msgstr "Descargar Modelo" -#: src/window.py:508 +#: src/window.py:530 msgid "Please select a tag to pull '{}'" msgstr "Por favor selecciona una etiqueta para descargar '{}'" -#: src/window.py:513 +#: src/window.py:535 msgid "Pull" msgstr "Descargar" -#: src/window.py:589 src/window.ui:426 +#: src/window.py:603 src/window.ui:452 msgid "Clear Chat" msgstr "Limpiar Chat" -#: src/window.py:590 +#: src/window.py:604 msgid "Are you sure you want to clear the chat?" msgstr "¿Estás seguro de que quieres limpiar el chat?" -#: src/window.py:594 +#: src/window.py:608 msgid "Clear" msgstr "Limpiar" -#: src/window.py:650 -msgid "Save Changes" -msgstr "Guardar Cambios" - -#: src/window.py:651 -msgid "Do you want to save the URL change?" -msgstr "¿Deseas guardar el cambio de URL?" - -#: src/window.py:655 -msgid "Discard" -msgstr "Descartar" - -#: src/window.py:656 -msgid "Save" -msgstr "Guardar" - -#: src/window.py:699 +#: src/window.py:676 msgid "Remove Image" msgstr "Remover Imagen" -#: src/window.py:700 +#: src/window.py:677 msgid "Are you sure you want to remove image?" msgstr "¿Estás seguro de que quieres eliminar la imagen?" -#: src/window.py:704 +#: src/window.py:681 msgid "Remove" msgstr "Remover" -#: src/window.py:726 +#: src/window.py:703 msgid "Delete Chat" msgstr "Eliminar Chat" -#: src/window.py:757 +#: src/window.py:734 msgid "Rename Chat" msgstr "Renombrar Chat" -#: src/window.py:764 +#: src/window.py:741 msgid "Rename" msgstr "Renombrar" -#: src/window.py:784 +#: src/window.py:761 msgid "The name '{}' is already in use" msgstr "El nombre '{}' ya está en uso" -#: src/window.py:797 +#: src/window.py:774 msgid "Create Chat" msgstr "Crear Chat" -#: src/window.py:804 +#: src/window.py:781 msgid "Create" msgstr "Crear" -#: src/window.ui:54 +#: src/window.ui:46 msgid "Chats" msgstr "Chats" -#: src/window.ui:64 +#: src/window.ui:56 +msgid "Import chat" +msgstr "" + +#: src/window.ui:69 +msgid "Export chat" +msgstr "" + +#: src/window.ui:82 msgid "New chat" msgstr "Nuevo chat" -#: src/window.ui:100 +#: src/window.ui:118 msgid "Toggle Sidebar" msgstr "Alternar barra de lado" -#: src/window.ui:121 src/window.ui:257 +#: src/window.ui:139 src/window.ui:305 msgid "Manage models" msgstr "Gestionar modelos" -#: src/window.ui:135 +#: src/window.ui:153 msgid "Menu" msgstr "Menu" -#: src/window.ui:213 +#: src/window.ui:231 msgid "Send" msgstr "Enviar" -#: src/window.ui:222 +#: src/window.ui:240 msgid "Requires model 'llava' to be selected" msgstr "Requiere que el modelo 'llava' sea seleccionado" -#: src/window.ui:225 +#: src/window.ui:243 msgid "Image" msgstr "Imagen" -#: src/window.ui:331 +#: src/window.ui:267 src/window.ui:456 src/window.ui:507 +msgid "Preferences" +msgstr "" + +#: src/window.ui:270 +msgid "Connection" +msgstr "" + +#: src/window.ui:274 +msgid "Remote Connection" +msgstr "" + +#: src/window.ui:275 +msgid "Manage a remote connection to Ollama" +msgstr "" + +#: src/window.ui:278 +msgid "Use remote connection" +msgstr "" + +#: src/window.ui:283 +msgid "URL of remote instance" +msgstr "" + +#: src/window.ui:375 msgid "Previous" msgstr "Anterior" -#: src/window.ui:346 +#: src/window.ui:390 msgid "Next" msgstr "Siguiente" -#: src/window.ui:372 +#: src/window.ui:416 msgid "Welcome to Alpaca" msgstr "Bienvenido a Alpaca" -#: src/window.ui:373 -msgid "" -"To get started, please ensure you have an Ollama instance set up. You can " -"either run Ollama locally on your machine or connect to a remote instance." +#: src/window.ui:417 +msgid "Powered by Ollama" msgstr "" -"Para iniciar, por favor asegurate de tener una instancia de Ollama " -"funcional. Puedes correr Ollama localmente o conectarte a una instancia " -"remota." -#: src/window.ui:376 +#: src/window.ui:420 msgid "Ollama Website" msgstr "Sitio Web de Ollama" -#: src/window.ui:393 +#: src/window.ui:437 msgid "" "Alpaca and its developers are not liable for any damages to devices or " "software resulting from the execution of code generated by an AI model. " @@ -590,64 +623,80 @@ msgstr "" "un modelo de IA. Por favor sea precavido y revise el codigo cuidadosamente " "antes de correrlo" -#: src/window.ui:405 -msgid "Setup" -msgstr "Setup" - -#: src/window.ui:406 -msgid "" -"If you are running an Ollama instance locally and haven't modified the " -"default ports, you can use the default URL. Otherwise, please enter the URL " -"of your Ollama instance." -msgstr "" -"Si estás corriendo una instancia local de Ollama y no modificaste los " -"puertos por defecto, puedes usar la URL por defecto. De otra forma, por " -"favor ingresa la URL de tu instancia de Ollama" - -#: src/window.ui:430 -msgid "Change Server" -msgstr "Cambiar Servidor" - -#: src/window.ui:434 +#: src/window.ui:460 msgid "Keyboard Shortcuts" msgstr "Atajos de Teclado" -#: src/window.ui:438 +#: src/window.ui:464 msgid "About Alpaca" msgstr "Sobre Alpaca" -#: src/window.ui:460 +#: src/window.ui:491 msgid "General" msgstr "General" -#: src/window.ui:464 +#: src/window.ui:495 msgid "Close application" msgstr "Cerrar aplicación" -#: src/window.ui:470 +#: src/window.ui:501 msgid "Clear chat" msgstr "Limpiar chat" -#: src/window.ui:476 -msgid "Change server" -msgstr "Cambiar servidor" - -#: src/window.ui:482 +#: src/window.ui:513 msgid "Show shortcuts window" msgstr "Mostrar ventana de atajos" -#: src/window.ui:489 +#: src/window.ui:520 msgid "Editor" msgstr "Editor" -#: src/window.ui:493 +#: src/window.ui:524 msgid "Copy" msgstr "Copiar" -#: src/window.ui:499 +#: src/window.ui:530 msgid "Paste" msgstr "Pegar" -#: src/window.ui:505 +#: src/window.ui:536 msgid "Send Message" msgstr "Enviar Mensaje" + +#~ msgid "Save Changes" +#~ msgstr "Guardar Cambios" + +#~ msgid "Do you want to save the URL change?" +#~ msgstr "¿Deseas guardar el cambio de URL?" + +#~ msgid "Discard" +#~ msgstr "Descartar" + +#~ msgid "Save" +#~ msgstr "Guardar" + +#~ msgid "" +#~ "To get started, please ensure you have an Ollama instance set up. You can " +#~ "either run Ollama locally on your machine or connect to a remote instance." +#~ msgstr "" +#~ "Para iniciar, por favor asegurate de tener una instancia de Ollama " +#~ "funcional. Puedes correr Ollama localmente o conectarte a una instancia " +#~ "remota." + +#~ msgid "Setup" +#~ msgstr "Setup" + +#~ msgid "" +#~ "If you are running an Ollama instance locally and haven't modified the " +#~ "default ports, you can use the default URL. Otherwise, please enter the " +#~ "URL of your Ollama instance." +#~ msgstr "" +#~ "Si estás corriendo una instancia local de Ollama y no modificaste los " +#~ "puertos por defecto, puedes usar la URL por defecto. De otra forma, por " +#~ "favor ingresa la URL de tu instancia de Ollama" + +#~ msgid "Change Server" +#~ msgstr "Cambiar Servidor" + +#~ msgid "Change server" +#~ msgstr "Cambiar servidor" diff --git a/po/es.po~ b/po/es.po~ index 696fde1..30ad526 100644 --- a/po/es.po~ +++ b/po/es.po~ @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-19 21:53-0600\n" +"POT-Creation-Date: 2024-05-20 19:15-0600\n" "PO-Revision-Date: 2024-05-19 19:44-0600\n" "Last-Translator: Jeffry Samuel Eduarte Rojas \n" "Language-Team: Spanish \n" @@ -23,34 +23,33 @@ msgid "Alpaca" msgstr "Alpaca" #: data/com.jeffser.Alpaca.metainfo.xml.in:8 -#: data/com.jeffser.Alpaca.metainfo.xml.in:11 -msgid "An Ollama client" -msgstr "Un cliente de Ollama" - -#: data/com.jeffser.Alpaca.metainfo.xml.in:10 msgid "Chat with multiple AI models" msgstr "Chatea con multiples modelos de IA" -#: data/com.jeffser.Alpaca.metainfo.xml.in:12 -#: data/com.jeffser.Alpaca.metainfo.xml.in:193 +#: data/com.jeffser.Alpaca.metainfo.xml.in:10 +msgid "An Ollama client" +msgstr "Un cliente de Ollama" + +#: data/com.jeffser.Alpaca.metainfo.xml.in:11 +#: data/com.jeffser.Alpaca.metainfo.xml.in:209 msgid "Features" msgstr "Funcionalidades" -#: data/com.jeffser.Alpaca.metainfo.xml.in:14 -#: data/com.jeffser.Alpaca.metainfo.xml.in:195 +#: data/com.jeffser.Alpaca.metainfo.xml.in:13 +#: data/com.jeffser.Alpaca.metainfo.xml.in:211 msgid "Talk to multiple models in the same conversation" msgstr "Habla con multiples modelos en la misma conversación" -#: data/com.jeffser.Alpaca.metainfo.xml.in:15 -#: data/com.jeffser.Alpaca.metainfo.xml.in:196 +#: data/com.jeffser.Alpaca.metainfo.xml.in:14 +#: data/com.jeffser.Alpaca.metainfo.xml.in:212 msgid "Pull and delete models from the app" msgstr "Descarga y elimina modelos desde la app" -#: data/com.jeffser.Alpaca.metainfo.xml.in:17 src/window.ui:405 +#: data/com.jeffser.Alpaca.metainfo.xml.in:16 src/window.ui:392 msgid "Disclaimer" msgstr "Aviso Legal" -#: data/com.jeffser.Alpaca.metainfo.xml.in:18 +#: data/com.jeffser.Alpaca.metainfo.xml.in:17 msgid "" "This project is not affiliated at all with Ollama, I'm not responsible for " "any damages to your device or software caused by running code given by any " @@ -60,71 +59,108 @@ msgstr "" "cualquier daño a tu dispositivo o software causado por correr codigo " "proveido por cualquier modelo." -#: data/com.jeffser.Alpaca.metainfo.xml.in:21 +#: data/com.jeffser.Alpaca.metainfo.xml.in:20 msgid "Jeffry Samuel Eduarte Rojas" msgstr "Jeffry Samuel Eduarte Rojas" -#: data/com.jeffser.Alpaca.metainfo.xml.in:39 +#: data/com.jeffser.Alpaca.metainfo.xml.in:38 msgid "Welcome dialog" msgstr "Dialogo de Bienvenida" -#: data/com.jeffser.Alpaca.metainfo.xml.in:43 +#: data/com.jeffser.Alpaca.metainfo.xml.in:42 msgid "A conversation involving multiple models" msgstr "Una conversación incluyendo multiples modelos" -#: data/com.jeffser.Alpaca.metainfo.xml.in:47 +#: data/com.jeffser.Alpaca.metainfo.xml.in:46 msgid "Managing models" msgstr "Gestionando modelos" -#: data/com.jeffser.Alpaca.metainfo.xml.in:58 +#: data/com.jeffser.Alpaca.metainfo.xml.in:57 +#, fuzzy +msgid "Yet Another Daily Update" +msgstr "Otra Actulización Diaria" + +#: data/com.jeffser.Alpaca.metainfo.xml.in:59 +#, fuzzy +msgid "Added better UI for 'Manage Models' dialog" +msgstr "Añadida mejor interfaz para el dialogo 'gestión de modelos'" + +#: data/com.jeffser.Alpaca.metainfo.xml.in:60 +msgid "Added better UI for the chat sidebar" +msgstr "Añadida mejor interfaz para la barra de lado de chat" + +#: data/com.jeffser.Alpaca.metainfo.xml.in:61 +msgid "" +"Replaced model description with a button to open Ollama's website for the " +"model" +msgstr "" +"Remplazada la descripción de modelo por un botón para abrir la página web " +"de Ollama para el modelo" + +#: data/com.jeffser.Alpaca.metainfo.xml.in:62 +msgid "Added myself to the credits as the spanish translator" +msgstr "Agregue mi nombre en los creditos como el traductor a Español" + +#: data/com.jeffser.Alpaca.metainfo.xml.in:63 +msgid "Using XDG properly to get config folder" +msgstr "Usando XDG apropiadamente para obtener el folder de configuración" + +#: data/com.jeffser.Alpaca.metainfo.xml.in:64 +#, fuzzy +msgid "Update for translations" +msgstr "Mejor soporte para traducciones" + +#: data/com.jeffser.Alpaca.metainfo.xml.in:66 +#: data/com.jeffser.Alpaca.metainfo.xml.in:78 +#: data/com.jeffser.Alpaca.metainfo.xml.in:97 +#: data/com.jeffser.Alpaca.metainfo.xml.in:118 +#: data/com.jeffser.Alpaca.metainfo.xml.in:134 +#: data/com.jeffser.Alpaca.metainfo.xml.in:150 +#: data/com.jeffser.Alpaca.metainfo.xml.in:164 +#: data/com.jeffser.Alpaca.metainfo.xml.in:174 +#: data/com.jeffser.Alpaca.metainfo.xml.in:192 +#: data/com.jeffser.Alpaca.metainfo.xml.in:214 +msgid "Please report any errors to the issues page, thank you." +msgstr "Por favor reporta cualquier error a la página de problemas, gracias." + +#: data/com.jeffser.Alpaca.metainfo.xml.in:74 #, fuzzy msgid "Quick Fix" msgstr "0.1.2 Arreglos rápidos" -#: data/com.jeffser.Alpaca.metainfo.xml.in:60 +#: data/com.jeffser.Alpaca.metainfo.xml.in:76 msgid "The last update had some mistakes in the description of the update" -msgstr "La última actualización tenía unos errores en la descripción de la " +msgstr "" +"La última actualización tenía unos errores en la descripción de la " "actualización" -#: data/com.jeffser.Alpaca.metainfo.xml.in:62 -#: data/com.jeffser.Alpaca.metainfo.xml.in:81 -#: data/com.jeffser.Alpaca.metainfo.xml.in:102 -#: data/com.jeffser.Alpaca.metainfo.xml.in:118 -#: data/com.jeffser.Alpaca.metainfo.xml.in:134 -#: data/com.jeffser.Alpaca.metainfo.xml.in:148 -#: data/com.jeffser.Alpaca.metainfo.xml.in:158 -#: data/com.jeffser.Alpaca.metainfo.xml.in:176 -#: data/com.jeffser.Alpaca.metainfo.xml.in:198 -msgid "Please report any errors to the issues page, thank you." -msgstr "Por favor reporta cualquier error a la página de problemas, gracias." - -#: data/com.jeffser.Alpaca.metainfo.xml.in:70 +#: data/com.jeffser.Alpaca.metainfo.xml.in:86 msgid "Another Daily Update" msgstr "Otra Actulización Diaria" -#: data/com.jeffser.Alpaca.metainfo.xml.in:72 +#: data/com.jeffser.Alpaca.metainfo.xml.in:88 msgid "Added full Spanish translation" msgstr "Añadida traducción completa a Español" -#: data/com.jeffser.Alpaca.metainfo.xml.in:73 +#: data/com.jeffser.Alpaca.metainfo.xml.in:89 #, fuzzy msgid "Added support for background pulling of multiple models" msgstr "Añadido soporte para multiples etiquetas con un solo modelo" -#: data/com.jeffser.Alpaca.metainfo.xml.in:74 +#: data/com.jeffser.Alpaca.metainfo.xml.in:90 msgid "Added interrupt button" msgstr "Añadido botón de interrupción" -#: data/com.jeffser.Alpaca.metainfo.xml.in:75 +#: data/com.jeffser.Alpaca.metainfo.xml.in:91 #, fuzzy msgid "Added basic shortcuts" msgstr "Atajos de Teclado" -#: data/com.jeffser.Alpaca.metainfo.xml.in:76 +#: data/com.jeffser.Alpaca.metainfo.xml.in:92 msgid "Better translation support" msgstr "Mejor soporte para traducciones" -#: data/com.jeffser.Alpaca.metainfo.xml.in:77 +#: data/com.jeffser.Alpaca.metainfo.xml.in:93 msgid "" "User can now leave chat name empty when creating a new one, it will add a " "placeholder name" @@ -132,136 +168,136 @@ msgstr "" "El usuario ahora puede dejar el nombre del chat vacio durante la creación, " "la aplicación añadira un placeholder" -#: data/com.jeffser.Alpaca.metainfo.xml.in:78 +#: data/com.jeffser.Alpaca.metainfo.xml.in:94 msgid "Better scalling for different window sizes" msgstr "Mejor escalado para distintos tamaños de ventana" -#: data/com.jeffser.Alpaca.metainfo.xml.in:79 +#: data/com.jeffser.Alpaca.metainfo.xml.in:95 #, fuzzy msgid "Fixed: Can't close app if first time setup fails" msgstr "Arreglado: No se puede cerrar la aplicación en el primer setup" -#: data/com.jeffser.Alpaca.metainfo.xml.in:89 +#: data/com.jeffser.Alpaca.metainfo.xml.in:105 msgid "Really Big Update" msgstr "Actualización Bastante Grande" -#: data/com.jeffser.Alpaca.metainfo.xml.in:91 +#: data/com.jeffser.Alpaca.metainfo.xml.in:107 msgid "Added multiple chats support!" msgstr "Añadido soporte para multiples chats!" -#: data/com.jeffser.Alpaca.metainfo.xml.in:92 +#: data/com.jeffser.Alpaca.metainfo.xml.in:108 msgid "Added Pango Markup support (bold, list, title, subtitle, monospace)" msgstr "" "Añadido soporte para Pango Markup (negrita, lista, titulo, subtitulo, " "monoespaciado)" -#: data/com.jeffser.Alpaca.metainfo.xml.in:93 +#: data/com.jeffser.Alpaca.metainfo.xml.in:109 msgid "Added autoscroll if the user is at the bottom of the chat" msgstr "" "Añadido autoscroll si el usuario se encuentra en la parte inferior del chat" -#: data/com.jeffser.Alpaca.metainfo.xml.in:94 +#: data/com.jeffser.Alpaca.metainfo.xml.in:110 msgid "Added support for multiple tags on a single model" msgstr "Añadido soporte para multiples etiquetas con un solo modelo" -#: data/com.jeffser.Alpaca.metainfo.xml.in:95 +#: data/com.jeffser.Alpaca.metainfo.xml.in:111 msgid "Added better model management dialog" msgstr "Añadido mejor gestión de modelos" -#: data/com.jeffser.Alpaca.metainfo.xml.in:96 +#: data/com.jeffser.Alpaca.metainfo.xml.in:112 msgid "Added loading spinner when sending message" msgstr "Añadido spinner de carga cuando se envia un mensaje" -#: data/com.jeffser.Alpaca.metainfo.xml.in:97 +#: data/com.jeffser.Alpaca.metainfo.xml.in:113 msgid "Added notifications if app is not active and a model pull finishes" msgstr "" "Añadidas notificaciones si la aplicación no está activa y la descarga de un " "modelo finaliza" -#: data/com.jeffser.Alpaca.metainfo.xml.in:98 +#: data/com.jeffser.Alpaca.metainfo.xml.in:114 msgid "Added new symbolic icon" msgstr "Añadido nuevo icono simbolico" -#: data/com.jeffser.Alpaca.metainfo.xml.in:99 +#: data/com.jeffser.Alpaca.metainfo.xml.in:115 msgid "Added frame to message textview widget" msgstr "Añadido borde al objeto textview del mensaje" -#: data/com.jeffser.Alpaca.metainfo.xml.in:100 +#: data/com.jeffser.Alpaca.metainfo.xml.in:116 msgid "Fixed \"code blocks shouldn't be editable\"" msgstr "Arreglado \"bloques de codigo no deberían de ser editables\"" -#: data/com.jeffser.Alpaca.metainfo.xml.in:110 -#: data/com.jeffser.Alpaca.metainfo.xml.in:167 +#: data/com.jeffser.Alpaca.metainfo.xml.in:126 +#: data/com.jeffser.Alpaca.metainfo.xml.in:183 msgid "Big Update" msgstr "Gran Actualización" -#: data/com.jeffser.Alpaca.metainfo.xml.in:112 +#: data/com.jeffser.Alpaca.metainfo.xml.in:128 msgid "Added code highlighting" msgstr "Añadido resaltado de código" -#: data/com.jeffser.Alpaca.metainfo.xml.in:113 +#: data/com.jeffser.Alpaca.metainfo.xml.in:129 msgid "Added image recognition (llava model)" msgstr "Añadido reconocimiento de imagenes (modelo llava)" -#: data/com.jeffser.Alpaca.metainfo.xml.in:114 +#: data/com.jeffser.Alpaca.metainfo.xml.in:130 msgid "Added multiline prompt" msgstr "Añadido caja de texto de multiples lineas" -#: data/com.jeffser.Alpaca.metainfo.xml.in:115 +#: data/com.jeffser.Alpaca.metainfo.xml.in:131 msgid "Fixed some small bugs" msgstr "Arreglados unos pequeños errores" -#: data/com.jeffser.Alpaca.metainfo.xml.in:116 +#: data/com.jeffser.Alpaca.metainfo.xml.in:132 msgid "General optimization" msgstr "Optimización general" -#: data/com.jeffser.Alpaca.metainfo.xml.in:126 +#: data/com.jeffser.Alpaca.metainfo.xml.in:142 msgid "Fixes and features" msgstr "Arreglos y funcionalidades" -#: data/com.jeffser.Alpaca.metainfo.xml.in:128 +#: data/com.jeffser.Alpaca.metainfo.xml.in:144 msgid "Russian translation (thanks github/alexkdeveloper)" msgstr "Traducción a Ruso (gracias github/alexkdeveloper)" -#: data/com.jeffser.Alpaca.metainfo.xml.in:129 +#: data/com.jeffser.Alpaca.metainfo.xml.in:145 msgid "Fixed: Cannot close app on first setup" msgstr "Arreglado: No se puede cerrar la aplicación en el primer setup" -#: data/com.jeffser.Alpaca.metainfo.xml.in:130 +#: data/com.jeffser.Alpaca.metainfo.xml.in:146 msgid "Fixed: Brand colors for Flathub" msgstr "Arreglado: Colores de marca para Flathub" -#: data/com.jeffser.Alpaca.metainfo.xml.in:131 +#: data/com.jeffser.Alpaca.metainfo.xml.in:147 msgid "Fixed: App description" msgstr "Arreglado: Descripción de aplicación" -#: data/com.jeffser.Alpaca.metainfo.xml.in:132 +#: data/com.jeffser.Alpaca.metainfo.xml.in:148 msgid "Fixed: Only show 'save changes dialog' when you actually change the url" msgstr "" "Arreglado: Solo mostrar el dialogo 'guardar cambios' cuando se cambia el url" -#: data/com.jeffser.Alpaca.metainfo.xml.in:142 +#: data/com.jeffser.Alpaca.metainfo.xml.in:158 msgid "0.2.2 Bug fixes" msgstr "0.2.2 Arreglo de errores" -#: data/com.jeffser.Alpaca.metainfo.xml.in:144 +#: data/com.jeffser.Alpaca.metainfo.xml.in:160 msgid "Toast messages appearing behind dialogs" msgstr "Mensajes toast apareciendo detrás de dialogos" -#: data/com.jeffser.Alpaca.metainfo.xml.in:145 +#: data/com.jeffser.Alpaca.metainfo.xml.in:161 msgid "Local model list not updating when changing servers" msgstr "" "Lista de modelos locales no es actualizada cuando se cambia el servidor" -#: data/com.jeffser.Alpaca.metainfo.xml.in:146 +#: data/com.jeffser.Alpaca.metainfo.xml.in:162 msgid "Closing the setup dialog closes the whole app" msgstr "Cerrar el dialogo de setup cierra toda la aplicación" -#: data/com.jeffser.Alpaca.metainfo.xml.in:156 +#: data/com.jeffser.Alpaca.metainfo.xml.in:172 msgid "0.2.1 Data saving fix" msgstr "0.2.1 Arreglo en el guardado de datos" -#: data/com.jeffser.Alpaca.metainfo.xml.in:157 +#: data/com.jeffser.Alpaca.metainfo.xml.in:173 msgid "" "The app didn't save the config files and chat history to the right " "directory, this is now fixed" @@ -269,54 +305,54 @@ msgstr "" "La aplicación no guardaba los archivos de configuración o los chats en el " "directorio correcto, esto ahora ha sido arreglado" -#: data/com.jeffser.Alpaca.metainfo.xml.in:166 +#: data/com.jeffser.Alpaca.metainfo.xml.in:182 msgid "0.2.0" msgstr "0.2.0" -#: data/com.jeffser.Alpaca.metainfo.xml.in:168 +#: data/com.jeffser.Alpaca.metainfo.xml.in:184 msgid "New Features" msgstr "Nuevas funcionalidades" -#: data/com.jeffser.Alpaca.metainfo.xml.in:170 +#: data/com.jeffser.Alpaca.metainfo.xml.in:186 msgid "Restore chat after closing the app" msgstr "Restaurar chat despues de cerrar la aplicación" -#: data/com.jeffser.Alpaca.metainfo.xml.in:171 +#: data/com.jeffser.Alpaca.metainfo.xml.in:187 msgid "A button to clear the chat" msgstr "Un botón para limpiar el chat" -#: data/com.jeffser.Alpaca.metainfo.xml.in:172 +#: data/com.jeffser.Alpaca.metainfo.xml.in:188 msgid "Fixed multiple bugs involving how messages are shown" msgstr "Arreglados multiples errores acerca de como los mensajes son mostrados" -#: data/com.jeffser.Alpaca.metainfo.xml.in:173 +#: data/com.jeffser.Alpaca.metainfo.xml.in:189 msgid "Added welcome dialog" msgstr "Añadido dialogo de bienvenida" -#: data/com.jeffser.Alpaca.metainfo.xml.in:174 +#: data/com.jeffser.Alpaca.metainfo.xml.in:190 msgid "More stability" msgstr "Más estabilidad" -#: data/com.jeffser.Alpaca.metainfo.xml.in:184 +#: data/com.jeffser.Alpaca.metainfo.xml.in:200 msgid "0.1.2 Quick fixes" msgstr "0.1.2 Arreglos rápidos" -#: data/com.jeffser.Alpaca.metainfo.xml.in:185 +#: data/com.jeffser.Alpaca.metainfo.xml.in:201 msgid "" "This release fixes some metadata needed to have a proper Flatpak application" msgstr "" "Esta versión arregla metadatos necesarios para tener un aplicación de " "Flatpak justa" -#: data/com.jeffser.Alpaca.metainfo.xml.in:191 +#: data/com.jeffser.Alpaca.metainfo.xml.in:207 msgid "0.1.1 Stable Release" msgstr "0.1.1" -#: data/com.jeffser.Alpaca.metainfo.xml.in:192 +#: data/com.jeffser.Alpaca.metainfo.xml.in:208 msgid "This is the first public version of Alpaca" msgstr "Esta es la primera versión publica de Alpaca" -#: src/window.py:47 src/window.py:758 +#: src/window.py:47 src/window.py:776 msgid "New Chat" msgstr "Nuevo Chat" @@ -364,173 +400,173 @@ msgstr "Modelo eliminado exitosamente" msgid "Model pulled successfully" msgstr "Modelo descargado exitosamente" -#: src/window.py:418 +#: src/window.py:425 msgid "Task Complete" msgstr "Tarea completada" -#: src/window.py:418 +#: src/window.py:425 msgid "Model '{}' pulled successfully." msgstr "El modelo '{}' fue descargado exitosamente" -#: src/window.py:424 +#: src/window.py:430 msgid "Pull Model Error" msgstr "Error Descargando Modelo" -#: src/window.py:424 +#: src/window.py:430 msgid "Failed to pull model '{}' due to network error." msgstr "No se pudo descargar el modelo '{}' debido a un error de red" -#: src/window.py:436 +#: src/window.py:446 msgid "Stop Model" msgstr "Parar Modelo" -#: src/window.py:437 +#: src/window.py:447 msgid "Are you sure you want to stop pulling '{}'?" msgstr "¿Estás seguro de que quieres parar la descarga de '{}'?" -#: src/window.py:440 src/window.py:478 src/window.py:501 src/window.py:575 -#: src/window.py:636 src/window.py:685 src/window.py:712 src/window.py:745 -#: src/window.py:785 +#: src/window.py:450 src/window.py:489 src/window.py:512 src/window.py:593 +#: src/window.py:654 src/window.py:703 src/window.py:730 src/window.py:763 +#: src/window.py:803 msgid "Cancel" msgstr "Cancelar" -#: src/window.py:441 +#: src/window.py:451 msgid "Stop" msgstr "Parar" -#: src/window.py:474 +#: src/window.py:485 msgid "Delete Model" msgstr "Eliminar Modelo" -#: src/window.py:475 src/window.py:709 +#: src/window.py:486 src/window.py:727 msgid "Are you sure you want to delete '{}'?" msgstr "¿Estás seguro de que quieres eliminar '{}'?" -#: src/window.py:479 src/window.py:713 +#: src/window.py:490 src/window.py:731 msgid "Delete" msgstr "Eliminar" -#: src/window.py:496 +#: src/window.py:507 msgid "Pull Model" msgstr "Descargar Modelo" -#: src/window.py:497 +#: src/window.py:508 msgid "Please select a tag to pull '{}'" msgstr "Por favor selecciona una etiqueta para descargar '{}'" -#: src/window.py:502 +#: src/window.py:513 msgid "Pull" msgstr "Descargar" -#: src/window.py:571 src/window.ui:439 +#: src/window.py:589 src/window.ui:426 msgid "Clear Chat" msgstr "Limpiar Chat" -#: src/window.py:572 +#: src/window.py:590 msgid "Are you sure you want to clear the chat?" msgstr "¿Estás seguro de que quieres limpiar el chat?" -#: src/window.py:576 +#: src/window.py:594 msgid "Clear" msgstr "Limpiar" -#: src/window.py:632 +#: src/window.py:650 msgid "Save Changes" msgstr "Guardar Cambios" -#: src/window.py:633 +#: src/window.py:651 msgid "Do you want to save the URL change?" msgstr "¿Deseas guardar el cambio de URL?" -#: src/window.py:637 +#: src/window.py:655 msgid "Discard" msgstr "Descartar" -#: src/window.py:638 +#: src/window.py:656 msgid "Save" msgstr "Guardar" -#: src/window.py:681 +#: src/window.py:699 msgid "Remove Image" msgstr "Remover Imagen" -#: src/window.py:682 +#: src/window.py:700 msgid "Are you sure you want to remove image?" msgstr "¿Estás seguro de que quieres eliminar la imagen?" -#: src/window.py:686 +#: src/window.py:704 msgid "Remove" msgstr "Remover" -#: src/window.py:708 +#: src/window.py:726 msgid "Delete Chat" msgstr "Eliminar Chat" -#: src/window.py:739 +#: src/window.py:757 msgid "Rename Chat" msgstr "Renombrar Chat" -#: src/window.py:746 +#: src/window.py:764 msgid "Rename" msgstr "Renombrar" -#: src/window.py:766 +#: src/window.py:784 msgid "The name '{}' is already in use" msgstr "El nombre '{}' ya está en uso" -#: src/window.py:779 +#: src/window.py:797 msgid "Create Chat" msgstr "Crear Chat" -#: src/window.py:786 +#: src/window.py:804 msgid "Create" msgstr "Crear" -#: src/window.ui:55 +#: src/window.ui:54 msgid "Chats" msgstr "Chats" -#: src/window.ui:65 +#: src/window.ui:64 msgid "New chat" msgstr "Nuevo chat" -#: src/window.ui:101 +#: src/window.ui:100 msgid "Toggle Sidebar" msgstr "Alternar barra de lado" -#: src/window.ui:122 src/window.ui:259 +#: src/window.ui:121 src/window.ui:257 msgid "Manage models" msgstr "Gestionar modelos" -#: src/window.ui:136 +#: src/window.ui:135 msgid "Menu" msgstr "Menu" -#: src/window.ui:215 +#: src/window.ui:213 msgid "Send" msgstr "Enviar" -#: src/window.ui:224 +#: src/window.ui:222 msgid "Requires model 'llava' to be selected" msgstr "Requiere que el modelo 'llava' sea seleccionado" -#: src/window.ui:227 +#: src/window.ui:225 msgid "Image" msgstr "Imagen" -#: src/window.ui:344 +#: src/window.ui:331 msgid "Previous" msgstr "Anterior" -#: src/window.ui:359 +#: src/window.ui:346 msgid "Next" msgstr "Siguiente" -#: src/window.ui:385 +#: src/window.ui:372 msgid "Welcome to Alpaca" msgstr "Bienvenido a Alpaca" -#: src/window.ui:386 +#: src/window.ui:373 msgid "" "To get started, please ensure you have an Ollama instance set up. You can " "either run Ollama locally on your machine or connect to a remote instance." @@ -539,11 +575,11 @@ msgstr "" "funcional. Puedes correr Ollama localmente o conectarte a una instancia " "remota." -#: src/window.ui:389 +#: src/window.ui:376 msgid "Ollama Website" msgstr "Sitio Web de Ollama" -#: src/window.ui:406 +#: src/window.ui:393 msgid "" "Alpaca and its developers are not liable for any damages to devices or " "software resulting from the execution of code generated by an AI model. " @@ -554,11 +590,11 @@ msgstr "" "un modelo de IA. Por favor sea precavido y revise el codigo cuidadosamente " "antes de correrlo" -#: src/window.ui:418 +#: src/window.ui:405 msgid "Setup" msgstr "Setup" -#: src/window.ui:419 +#: src/window.ui:406 msgid "" "If you are running an Ollama instance locally and haven't modified the " "default ports, you can use the default URL. Otherwise, please enter the URL " @@ -568,50 +604,50 @@ msgstr "" "puertos por defecto, puedes usar la URL por defecto. De otra forma, por " "favor ingresa la URL de tu instancia de Ollama" -#: src/window.ui:443 +#: src/window.ui:430 msgid "Change Server" msgstr "Cambiar Servidor" -#: src/window.ui:447 +#: src/window.ui:434 msgid "Keyboard Shortcuts" msgstr "Atajos de Teclado" -#: src/window.ui:451 +#: src/window.ui:438 msgid "About Alpaca" msgstr "Sobre Alpaca" -#: src/window.ui:473 +#: src/window.ui:460 msgid "General" msgstr "General" -#: src/window.ui:477 +#: src/window.ui:464 msgid "Close application" msgstr "Cerrar aplicación" -#: src/window.ui:483 +#: src/window.ui:470 msgid "Clear chat" msgstr "Limpiar chat" -#: src/window.ui:489 +#: src/window.ui:476 msgid "Change server" msgstr "Cambiar servidor" -#: src/window.ui:495 +#: src/window.ui:482 msgid "Show shortcuts window" msgstr "Mostrar ventana de atajos" -#: src/window.ui:502 +#: src/window.ui:489 msgid "Editor" msgstr "Editor" -#: src/window.ui:506 +#: src/window.ui:493 msgid "Copy" msgstr "Copiar" -#: src/window.ui:512 +#: src/window.ui:499 msgid "Paste" msgstr "Pegar" -#: src/window.ui:518 +#: src/window.ui:505 msgid "Send Message" msgstr "Enviar Mensaje" diff --git a/po/ru.po b/po/ru.po index 675b2dd..afa3dd7 100644 --- a/po/ru.po +++ b/po/ru.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-20 19:15-0600\n" +"POT-Creation-Date: 2024-05-21 22:07-0600\n" "PO-Revision-Date: 2024-05-20 16:59+0800\n" "Last-Translator: \n" "Language-Team: \n" @@ -42,7 +42,7 @@ msgstr "" msgid "Pull and delete models from the app" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:16 src/window.ui:392 +#: data/com.jeffser.Alpaca.metainfo.xml.in:16 src/window.ui:436 msgid "Disclaimer" msgstr "" @@ -323,234 +323,267 @@ msgstr "" msgid "This is the first public version of Alpaca" msgstr "" -#: src/window.py:47 src/window.py:776 +#: src/window.py:53 src/window.py:753 msgid "New Chat" msgstr "Новый Чат" -#: src/window.py:86 +#: src/window.py:98 msgid "An error occurred" msgstr "Произошла ошибка" -#: src/window.py:87 +#: src/window.py:99 msgid "Failed to connect to server" msgstr "Не удалось подключиться к серверу" -#: src/window.py:88 +#: src/window.py:100 msgid "Could not list local models" msgstr "Не удалось перечислить локальные модели" -#: src/window.py:89 +#: src/window.py:101 msgid "Could not delete model" msgstr "Не удалось удалить модель" -#: src/window.py:90 +#: src/window.py:102 msgid "Could not pull model" msgstr "Не удалось извлечь модель" -#: src/window.py:91 +#: src/window.py:103 msgid "Cannot open image" msgstr "Не удается открыть изображение" -#: src/window.py:92 +#: src/window.py:104 msgid "Cannot delete chat because it's the only one left" msgstr "Не удается удалить чат, потому что он единственный оставшийся" -#: src/window.py:95 +#: src/window.py:105 +msgid "There was an error with the local Ollama instance, so it has been reset" +msgstr "" + +#: src/window.py:108 msgid "Please select a model before chatting" msgstr "Пожалуйста, выберите модель перед началом общения" -#: src/window.py:96 +#: src/window.py:109 msgid "Chat cannot be cleared while receiving a message" msgstr "Чат не может быть удален при получении сообщения" -#: src/window.py:99 +#: src/window.py:110 +#, fuzzy +msgid "That tag is already being pulled" +msgstr "Имя '{}' уже используется" + +#: src/window.py:111 +msgid "That tag has been pulled alreay" +msgstr "" + +#: src/window.py:114 msgid "Model deleted successfully" msgstr "Модель успешно удалена" -#: src/window.py:100 +#: src/window.py:115 msgid "Model pulled successfully" msgstr "Модель успешно извлечена" -#: src/window.py:425 +#: src/window.py:116 +#, fuzzy +msgid "Chat exported successfully" +msgstr "Модель успешно удалена" + +#: src/window.py:117 +#, fuzzy +msgid "Chat imported successfully" +msgstr "Модель успешно извлечена" + +#: src/window.py:443 msgid "Task Complete" msgstr "Задача выполнена" -#: src/window.py:425 +#: src/window.py:443 msgid "Model '{}' pulled successfully." msgstr "Модель '{}' успешно извлечена." -#: src/window.py:430 +#: src/window.py:448 msgid "Pull Model Error" msgstr "Ошибка Извлечения Модели" -#: src/window.py:430 +#: src/window.py:448 msgid "Failed to pull model '{}' due to network error." msgstr "Не удалось извлечь модель '{}' из-за сетевой ошибки." -#: src/window.py:446 +#: src/window.py:464 msgid "Stop Model" msgstr "Остановить Модель" -#: src/window.py:447 +#: src/window.py:465 msgid "Are you sure you want to stop pulling '{}'?" msgstr "Вы уверены, что хотите прекратить извлечение '{}'?" -#: src/window.py:450 src/window.py:489 src/window.py:512 src/window.py:593 -#: src/window.py:654 src/window.py:703 src/window.py:730 src/window.py:763 -#: src/window.py:803 +#: src/window.py:468 src/window.py:511 src/window.py:534 src/window.py:607 +#: src/window.py:680 src/window.py:707 src/window.py:740 src/window.py:780 msgid "Cancel" msgstr "Отмена" -#: src/window.py:451 +#: src/window.py:469 msgid "Stop" msgstr "Стоп" -#: src/window.py:485 +#: src/window.py:507 msgid "Delete Model" msgstr "Удалить Модель" -#: src/window.py:486 src/window.py:727 +#: src/window.py:508 src/window.py:704 msgid "Are you sure you want to delete '{}'?" msgstr "Вы уверены, что хотите удалить '{}'?" -#: src/window.py:490 src/window.py:731 +#: src/window.py:512 src/window.py:708 msgid "Delete" msgstr "Удалить" -#: src/window.py:507 +#: src/window.py:529 msgid "Pull Model" msgstr "Извлечение модели" -#: src/window.py:508 +#: src/window.py:530 msgid "Please select a tag to pull '{}'" msgstr "Пожалуйста, выберите тег для извлечения '{}'" -#: src/window.py:513 +#: src/window.py:535 msgid "Pull" msgstr "Извлечение" -#: src/window.py:589 src/window.ui:426 +#: src/window.py:603 src/window.ui:452 msgid "Clear Chat" msgstr "Очистить Чат" -#: src/window.py:590 +#: src/window.py:604 msgid "Are you sure you want to clear the chat?" msgstr "Вы уверены, что хотите очистить чат?" -#: src/window.py:594 +#: src/window.py:608 msgid "Clear" msgstr "Очистить" -#: src/window.py:650 -msgid "Save Changes" -msgstr "Сохранить Изменения" - -#: src/window.py:651 -msgid "Do you want to save the URL change?" -msgstr "Хотите сохранить изменение URL?" - -#: src/window.py:655 -msgid "Discard" -msgstr "Отказаться" - -#: src/window.py:656 -msgid "Save" -msgstr "Сохранить" - -#: src/window.py:699 +#: src/window.py:676 msgid "Remove Image" msgstr "Удалить Изображение" -#: src/window.py:700 +#: src/window.py:677 msgid "Are you sure you want to remove image?" msgstr "Вы уверены, что хотите удалить изображение?" -#: src/window.py:704 +#: src/window.py:681 msgid "Remove" msgstr "Удалить" -#: src/window.py:726 +#: src/window.py:703 msgid "Delete Chat" msgstr "Удалить Чат" -#: src/window.py:757 +#: src/window.py:734 msgid "Rename Chat" msgstr "Переименовать Чат" -#: src/window.py:764 +#: src/window.py:741 msgid "Rename" msgstr "Переименовать" -#: src/window.py:784 +#: src/window.py:761 msgid "The name '{}' is already in use" msgstr "Имя '{}' уже используется" -#: src/window.py:797 +#: src/window.py:774 msgid "Create Chat" msgstr "Создать Чат" -#: src/window.py:804 +#: src/window.py:781 msgid "Create" msgstr "Создать" -#: src/window.ui:54 +#: src/window.ui:46 msgid "Chats" msgstr "Чаты" -#: src/window.ui:64 +#: src/window.ui:56 +msgid "Import chat" +msgstr "" + +#: src/window.ui:69 +msgid "Export chat" +msgstr "" + +#: src/window.ui:82 msgid "New chat" msgstr "Новый чат" -#: src/window.ui:100 +#: src/window.ui:118 msgid "Toggle Sidebar" msgstr "Переключение боковой панели" -#: src/window.ui:121 src/window.ui:257 +#: src/window.ui:139 src/window.ui:305 msgid "Manage models" msgstr "Управление моделями" -#: src/window.ui:135 +#: src/window.ui:153 msgid "Menu" msgstr "Меню" -#: src/window.ui:213 +#: src/window.ui:231 msgid "Send" msgstr "Отправить" -#: src/window.ui:222 +#: src/window.ui:240 msgid "Requires model 'llava' to be selected" msgstr "Требуется выбрать модель \"llava\"" -#: src/window.ui:225 +#: src/window.ui:243 msgid "Image" msgstr "Изображение" -#: src/window.ui:331 +#: src/window.ui:267 src/window.ui:456 src/window.ui:507 +msgid "Preferences" +msgstr "" + +#: src/window.ui:270 +msgid "Connection" +msgstr "" + +#: src/window.ui:274 +msgid "Remote Connection" +msgstr "" + +#: src/window.ui:275 +msgid "Manage a remote connection to Ollama" +msgstr "" + +#: src/window.ui:278 +msgid "Use remote connection" +msgstr "" + +#: src/window.ui:283 +msgid "URL of remote instance" +msgstr "" + +#: src/window.ui:375 msgid "Previous" msgstr "Предыдущий" -#: src/window.ui:346 +#: src/window.ui:390 msgid "Next" msgstr "Следующий" -#: src/window.ui:372 +#: src/window.ui:416 msgid "Welcome to Alpaca" msgstr "Добро пожаловать в Alpaca" -#: src/window.ui:373 -msgid "" -"To get started, please ensure you have an Ollama instance set up. You can " -"either run Ollama locally on your machine or connect to a remote instance." +#: src/window.ui:417 +msgid "Powered by Ollama" msgstr "" -"Для начала, пожалуйста, убедитесь, что у вас настроен экземпляр Ollama. Вы " -"можете либо запустить Ollama локально на своем компьютере, либо подключиться " -"к удаленному экземпляру." -#: src/window.ui:376 +#: src/window.ui:420 msgid "Ollama Website" msgstr "Веб-сайт Ollama" -#: src/window.ui:393 +#: src/window.ui:437 msgid "" "Alpaca and its developers are not liable for any damages to devices or " "software resulting from the execution of code generated by an AI model. " @@ -562,68 +595,84 @@ msgstr "" "Пожалуйста, будьте осторожны и внимательно ознакомьтесь с кодом перед его " "запуском." -#: src/window.ui:405 -msgid "Setup" -msgstr "Установка" - -#: src/window.ui:406 -msgid "" -"If you are running an Ollama instance locally and haven't modified the " -"default ports, you can use the default URL. Otherwise, please enter the URL " -"of your Ollama instance." -msgstr "" -"Если вы запускаете локальный экземпляр Ollama и не изменили порты по " -"умолчанию, вы можете использовать URL-адрес по умолчанию. В противном " -"случае, пожалуйста, введите URL-адрес вашего экземпляра Ollama." - -#: src/window.ui:430 -msgid "Change Server" -msgstr "Изменить Сервер" - -#: src/window.ui:434 +#: src/window.ui:460 msgid "Keyboard Shortcuts" msgstr "Комбинации Клавиш" -#: src/window.ui:438 +#: src/window.ui:464 msgid "About Alpaca" msgstr "О Программе" -#: src/window.ui:460 +#: src/window.ui:491 msgid "General" msgstr "Общие" -#: src/window.ui:464 +#: src/window.ui:495 msgid "Close application" msgstr "Закрыть приложение" -#: src/window.ui:470 +#: src/window.ui:501 msgid "Clear chat" msgstr "Очистить чат" -#: src/window.ui:476 -msgid "Change server" -msgstr "Изменить Сервер" - -#: src/window.ui:482 +#: src/window.ui:513 msgid "Show shortcuts window" msgstr "Показать окно комбинаций клавиш" -#: src/window.ui:489 +#: src/window.ui:520 msgid "Editor" msgstr "Редактор" -#: src/window.ui:493 +#: src/window.ui:524 msgid "Copy" msgstr "Копировать" -#: src/window.ui:499 +#: src/window.ui:530 msgid "Paste" msgstr "Вставить" -#: src/window.ui:505 +#: src/window.ui:536 msgid "Send Message" msgstr "" +#~ msgid "Save Changes" +#~ msgstr "Сохранить Изменения" + +#~ msgid "Do you want to save the URL change?" +#~ msgstr "Хотите сохранить изменение URL?" + +#~ msgid "Discard" +#~ msgstr "Отказаться" + +#~ msgid "Save" +#~ msgstr "Сохранить" + +#~ msgid "" +#~ "To get started, please ensure you have an Ollama instance set up. You can " +#~ "either run Ollama locally on your machine or connect to a remote instance." +#~ msgstr "" +#~ "Для начала, пожалуйста, убедитесь, что у вас настроен экземпляр Ollama. " +#~ "Вы можете либо запустить Ollama локально на своем компьютере, либо " +#~ "подключиться к удаленному экземпляру." + +#~ msgid "Setup" +#~ msgstr "Установка" + +#~ msgid "" +#~ "If you are running an Ollama instance locally and haven't modified the " +#~ "default ports, you can use the default URL. Otherwise, please enter the " +#~ "URL of your Ollama instance." +#~ msgstr "" +#~ "Если вы запускаете локальный экземпляр Ollama и не изменили порты по " +#~ "умолчанию, вы можете использовать URL-адрес по умолчанию. В противном " +#~ "случае, пожалуйста, введите URL-адрес вашего экземпляра Ollama." + +#~ msgid "Change Server" +#~ msgstr "Изменить Сервер" + +#~ msgid "Change server" +#~ msgstr "Изменить Сервер" + #~ msgctxt "shortcut window" #~ msgid "General" #~ msgstr "Общие" diff --git a/po/ru.po~ b/po/ru.po~ index 61323d2..675b2dd 100644 --- a/po/ru.po~ +++ b/po/ru.po~ @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-19 21:53-0600\n" +"POT-Creation-Date: 2024-05-20 19:15-0600\n" "PO-Revision-Date: 2024-05-20 16:59+0800\n" "Last-Translator: \n" "Language-Team: \n" @@ -14,570 +14,624 @@ msgstr "" "X-Poedit-Basepath: ../src\n" "X-Poedit-SearchPath-0: .\n" -#: gtk/help-overlay.ui:11 -msgctxt "shortcut window" -msgid "General" -msgstr "Общие" - -#: gtk/help-overlay.ui:14 -msgctxt "shortcut window" -msgid "Show Shortcuts" -msgstr "Показывать комбинации клавиш" - -#: gtk/help-overlay.ui:20 -msgctxt "shortcut window" -msgid "Quit" -msgstr "Выйти" - #: data/com.jeffser.Alpaca.desktop.in:3 #: data/com.jeffser.Alpaca.metainfo.xml.in:7 msgid "Alpaca" msgstr "" #: data/com.jeffser.Alpaca.metainfo.xml.in:8 -#: data/com.jeffser.Alpaca.metainfo.xml.in:11 -msgid "An Ollama client" -msgstr "" - -#: data/com.jeffser.Alpaca.metainfo.xml.in:10 msgid "Chat with multiple AI models" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:12 -#: data/com.jeffser.Alpaca.metainfo.xml.in:193 +#: data/com.jeffser.Alpaca.metainfo.xml.in:10 +msgid "An Ollama client" +msgstr "" + +#: data/com.jeffser.Alpaca.metainfo.xml.in:11 +#: data/com.jeffser.Alpaca.metainfo.xml.in:209 msgid "Features" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:14 -#: data/com.jeffser.Alpaca.metainfo.xml.in:195 +#: data/com.jeffser.Alpaca.metainfo.xml.in:13 +#: data/com.jeffser.Alpaca.metainfo.xml.in:211 msgid "Talk to multiple models in the same conversation" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:15 -#: data/com.jeffser.Alpaca.metainfo.xml.in:196 +#: data/com.jeffser.Alpaca.metainfo.xml.in:14 +#: data/com.jeffser.Alpaca.metainfo.xml.in:212 msgid "Pull and delete models from the app" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:18 -msgid "This project is not affiliated at all with Ollama, I'm not responsible for any damages to your device or software caused by running code given by any models." +#: data/com.jeffser.Alpaca.metainfo.xml.in:16 src/window.ui:392 +msgid "Disclaimer" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:21 +#: data/com.jeffser.Alpaca.metainfo.xml.in:17 +msgid "" +"This project is not affiliated at all with Ollama, I'm not responsible for " +"any damages to your device or software caused by running code given by any " +"models." +msgstr "" + +#: data/com.jeffser.Alpaca.metainfo.xml.in:20 msgid "Jeffry Samuel Eduarte Rojas" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:39 +#: data/com.jeffser.Alpaca.metainfo.xml.in:38 msgid "Welcome dialog" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:43 +#: data/com.jeffser.Alpaca.metainfo.xml.in:42 msgid "A conversation involving multiple models" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:47 +#: data/com.jeffser.Alpaca.metainfo.xml.in:46 msgid "Managing models" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:58 -msgid "Quick Fix" +#: data/com.jeffser.Alpaca.metainfo.xml.in:57 +msgid "Yet Another Daily Update" +msgstr "" + +#: data/com.jeffser.Alpaca.metainfo.xml.in:59 +msgid "Added better UI for 'Manage Models' dialog" msgstr "" #: data/com.jeffser.Alpaca.metainfo.xml.in:60 -msgid "The last update had some mistakes in the description of the update" +msgid "Added better UI for the chat sidebar" +msgstr "" + +#: data/com.jeffser.Alpaca.metainfo.xml.in:61 +msgid "" +"Replaced model description with a button to open Ollama's website for the " +"model" msgstr "" #: data/com.jeffser.Alpaca.metainfo.xml.in:62 -#: data/com.jeffser.Alpaca.metainfo.xml.in:81 -#: data/com.jeffser.Alpaca.metainfo.xml.in:102 +msgid "Added myself to the credits as the spanish translator" +msgstr "" + +#: data/com.jeffser.Alpaca.metainfo.xml.in:63 +msgid "Using XDG properly to get config folder" +msgstr "" + +#: data/com.jeffser.Alpaca.metainfo.xml.in:64 +msgid "Update for translations" +msgstr "" + +#: data/com.jeffser.Alpaca.metainfo.xml.in:66 +#: data/com.jeffser.Alpaca.metainfo.xml.in:78 +#: data/com.jeffser.Alpaca.metainfo.xml.in:97 #: data/com.jeffser.Alpaca.metainfo.xml.in:118 #: data/com.jeffser.Alpaca.metainfo.xml.in:134 -#: data/com.jeffser.Alpaca.metainfo.xml.in:148 -#: data/com.jeffser.Alpaca.metainfo.xml.in:158 -#: data/com.jeffser.Alpaca.metainfo.xml.in:176 -#: data/com.jeffser.Alpaca.metainfo.xml.in:198 +#: data/com.jeffser.Alpaca.metainfo.xml.in:150 +#: data/com.jeffser.Alpaca.metainfo.xml.in:164 +#: data/com.jeffser.Alpaca.metainfo.xml.in:174 +#: data/com.jeffser.Alpaca.metainfo.xml.in:192 +#: data/com.jeffser.Alpaca.metainfo.xml.in:214 msgid "Please report any errors to the issues page, thank you." msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:70 +#: data/com.jeffser.Alpaca.metainfo.xml.in:74 +msgid "Quick Fix" +msgstr "" + +#: data/com.jeffser.Alpaca.metainfo.xml.in:76 +msgid "The last update had some mistakes in the description of the update" +msgstr "" + +#: data/com.jeffser.Alpaca.metainfo.xml.in:86 msgid "Another Daily Update" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:72 +#: data/com.jeffser.Alpaca.metainfo.xml.in:88 msgid "Added full Spanish translation" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:73 +#: data/com.jeffser.Alpaca.metainfo.xml.in:89 msgid "Added support for background pulling of multiple models" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:74 +#: data/com.jeffser.Alpaca.metainfo.xml.in:90 msgid "Added interrupt button" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:75 +#: data/com.jeffser.Alpaca.metainfo.xml.in:91 #, fuzzy msgid "Added basic shortcuts" msgstr "Показывать ярлыки" -#: data/com.jeffser.Alpaca.metainfo.xml.in:76 +#: data/com.jeffser.Alpaca.metainfo.xml.in:92 msgid "Better translation support" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:77 -msgid "User can now leave chat name empty when creating a new one, it will add a placeholder name" -msgstr "" - -#: data/com.jeffser.Alpaca.metainfo.xml.in:78 -msgid "Better scalling for different window sizes" -msgstr "" - -#: data/com.jeffser.Alpaca.metainfo.xml.in:79 -msgid "Fixed: Can't close app if first time setup fails" -msgstr "" - -#: data/com.jeffser.Alpaca.metainfo.xml.in:89 -msgid "Really Big Update" -msgstr "" - -#: data/com.jeffser.Alpaca.metainfo.xml.in:91 -msgid "Added multiple chats support!" -msgstr "" - -#: data/com.jeffser.Alpaca.metainfo.xml.in:92 -msgid "Added Pango Markup support (bold, list, title, subtitle, monospace)" -msgstr "" - #: data/com.jeffser.Alpaca.metainfo.xml.in:93 -msgid "Added autoscroll if the user is at the bottom of the chat" +msgid "" +"User can now leave chat name empty when creating a new one, it will add a " +"placeholder name" msgstr "" #: data/com.jeffser.Alpaca.metainfo.xml.in:94 -msgid "Added support for multiple tags on a single model" +msgid "Better scalling for different window sizes" msgstr "" #: data/com.jeffser.Alpaca.metainfo.xml.in:95 -msgid "Added better model management dialog" +msgid "Fixed: Can't close app if first time setup fails" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:96 -msgid "Added loading spinner when sending message" +#: data/com.jeffser.Alpaca.metainfo.xml.in:105 +msgid "Really Big Update" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:97 -msgid "Added notifications if app is not active and a model pull finishes" +#: data/com.jeffser.Alpaca.metainfo.xml.in:107 +msgid "Added multiple chats support!" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:98 -msgid "Added new symbolic icon" +#: data/com.jeffser.Alpaca.metainfo.xml.in:108 +msgid "Added Pango Markup support (bold, list, title, subtitle, monospace)" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:99 -msgid "Added frame to message textview widget" -msgstr "" - -#: data/com.jeffser.Alpaca.metainfo.xml.in:100 -msgid "Fixed \"code blocks shouldn't be editable\"" +#: data/com.jeffser.Alpaca.metainfo.xml.in:109 +msgid "Added autoscroll if the user is at the bottom of the chat" msgstr "" #: data/com.jeffser.Alpaca.metainfo.xml.in:110 -#: data/com.jeffser.Alpaca.metainfo.xml.in:167 -msgid "Big Update" +msgid "Added support for multiple tags on a single model" +msgstr "" + +#: data/com.jeffser.Alpaca.metainfo.xml.in:111 +msgid "Added better model management dialog" msgstr "" #: data/com.jeffser.Alpaca.metainfo.xml.in:112 -msgid "Added code highlighting" +msgid "Added loading spinner when sending message" msgstr "" #: data/com.jeffser.Alpaca.metainfo.xml.in:113 -msgid "Added image recognition (llava model)" +msgid "Added notifications if app is not active and a model pull finishes" msgstr "" #: data/com.jeffser.Alpaca.metainfo.xml.in:114 -msgid "Added multiline prompt" +msgid "Added new symbolic icon" msgstr "" #: data/com.jeffser.Alpaca.metainfo.xml.in:115 -msgid "Fixed some small bugs" +msgid "Added frame to message textview widget" msgstr "" #: data/com.jeffser.Alpaca.metainfo.xml.in:116 -msgid "General optimization" +msgid "Fixed \"code blocks shouldn't be editable\"" msgstr "" #: data/com.jeffser.Alpaca.metainfo.xml.in:126 -msgid "Fixes and features" +#: data/com.jeffser.Alpaca.metainfo.xml.in:183 +msgid "Big Update" msgstr "" #: data/com.jeffser.Alpaca.metainfo.xml.in:128 -msgid "Russian translation (thanks github/alexkdeveloper)" +msgid "Added code highlighting" msgstr "" #: data/com.jeffser.Alpaca.metainfo.xml.in:129 -msgid "Fixed: Cannot close app on first setup" +msgid "Added image recognition (llava model)" msgstr "" #: data/com.jeffser.Alpaca.metainfo.xml.in:130 -msgid "Fixed: Brand colors for Flathub" +msgid "Added multiline prompt" msgstr "" #: data/com.jeffser.Alpaca.metainfo.xml.in:131 -msgid "Fixed: App description" +msgid "Fixed some small bugs" msgstr "" #: data/com.jeffser.Alpaca.metainfo.xml.in:132 -msgid "Fixed: Only show 'save changes dialog' when you actually change the url" +msgid "General optimization" msgstr "" #: data/com.jeffser.Alpaca.metainfo.xml.in:142 -msgid "0.2.2 Bug fixes" +msgid "Fixes and features" msgstr "" #: data/com.jeffser.Alpaca.metainfo.xml.in:144 -msgid "Toast messages appearing behind dialogs" +msgid "Russian translation (thanks github/alexkdeveloper)" msgstr "" #: data/com.jeffser.Alpaca.metainfo.xml.in:145 -msgid "Local model list not updating when changing servers" +msgid "Fixed: Cannot close app on first setup" msgstr "" #: data/com.jeffser.Alpaca.metainfo.xml.in:146 +msgid "Fixed: Brand colors for Flathub" +msgstr "" + +#: data/com.jeffser.Alpaca.metainfo.xml.in:147 +msgid "Fixed: App description" +msgstr "" + +#: data/com.jeffser.Alpaca.metainfo.xml.in:148 +msgid "Fixed: Only show 'save changes dialog' when you actually change the url" +msgstr "" + +#: data/com.jeffser.Alpaca.metainfo.xml.in:158 +msgid "0.2.2 Bug fixes" +msgstr "" + +#: data/com.jeffser.Alpaca.metainfo.xml.in:160 +msgid "Toast messages appearing behind dialogs" +msgstr "" + +#: data/com.jeffser.Alpaca.metainfo.xml.in:161 +msgid "Local model list not updating when changing servers" +msgstr "" + +#: data/com.jeffser.Alpaca.metainfo.xml.in:162 msgid "Closing the setup dialog closes the whole app" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:156 +#: data/com.jeffser.Alpaca.metainfo.xml.in:172 msgid "0.2.1 Data saving fix" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:157 -msgid "The app didn't save the config files and chat history to the right directory, this is now fixed" +#: data/com.jeffser.Alpaca.metainfo.xml.in:173 +msgid "" +"The app didn't save the config files and chat history to the right " +"directory, this is now fixed" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:166 +#: data/com.jeffser.Alpaca.metainfo.xml.in:182 msgid "0.2.0" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:168 +#: data/com.jeffser.Alpaca.metainfo.xml.in:184 msgid "New Features" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:170 +#: data/com.jeffser.Alpaca.metainfo.xml.in:186 msgid "Restore chat after closing the app" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:171 +#: data/com.jeffser.Alpaca.metainfo.xml.in:187 msgid "A button to clear the chat" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:172 +#: data/com.jeffser.Alpaca.metainfo.xml.in:188 msgid "Fixed multiple bugs involving how messages are shown" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:173 +#: data/com.jeffser.Alpaca.metainfo.xml.in:189 msgid "Added welcome dialog" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:174 +#: data/com.jeffser.Alpaca.metainfo.xml.in:190 msgid "More stability" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:184 +#: data/com.jeffser.Alpaca.metainfo.xml.in:200 msgid "0.1.2 Quick fixes" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:185 -msgid "This release fixes some metadata needed to have a proper Flatpak application" +#: data/com.jeffser.Alpaca.metainfo.xml.in:201 +msgid "" +"This release fixes some metadata needed to have a proper Flatpak application" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:191 +#: data/com.jeffser.Alpaca.metainfo.xml.in:207 msgid "0.1.1 Stable Release" msgstr "" -#: data/com.jeffser.Alpaca.metainfo.xml.in:192 +#: data/com.jeffser.Alpaca.metainfo.xml.in:208 msgid "This is the first public version of Alpaca" msgstr "" -#: window.py:47 +#: src/window.py:47 src/window.py:776 msgid "New Chat" msgstr "Новый Чат" -#: window.py:86 +#: src/window.py:86 msgid "An error occurred" msgstr "Произошла ошибка" -#: window.py:87 +#: src/window.py:87 msgid "Failed to connect to server" msgstr "Не удалось подключиться к серверу" -#: window.py:88 +#: src/window.py:88 msgid "Could not list local models" msgstr "Не удалось перечислить локальные модели" -#: window.py:89 +#: src/window.py:89 msgid "Could not delete model" msgstr "Не удалось удалить модель" -#: window.py:90 +#: src/window.py:90 msgid "Could not pull model" msgstr "Не удалось извлечь модель" -#: window.py:91 +#: src/window.py:91 msgid "Cannot open image" msgstr "Не удается открыть изображение" -#: window.py:92 +#: src/window.py:92 msgid "Cannot delete chat because it's the only one left" msgstr "Не удается удалить чат, потому что он единственный оставшийся" -#: window.py:95 +#: src/window.py:95 msgid "Please select a model before chatting" msgstr "Пожалуйста, выберите модель перед началом общения" -#: window.py:96 +#: src/window.py:96 msgid "Chat cannot be cleared while receiving a message" msgstr "Чат не может быть удален при получении сообщения" -#: window.py:99 +#: src/window.py:99 msgid "Model deleted successfully" msgstr "Модель успешно удалена" -#: window.py:100 +#: src/window.py:100 msgid "Model pulled successfully" msgstr "Модель успешно извлечена" -#: window.py:418 +#: src/window.py:425 msgid "Task Complete" msgstr "Задача выполнена" -#: window.py:418 +#: src/window.py:425 msgid "Model '{}' pulled successfully." msgstr "Модель '{}' успешно извлечена." -#: window.py:424 +#: src/window.py:430 msgid "Pull Model Error" msgstr "Ошибка Извлечения Модели" -#: window.py:424 +#: src/window.py:430 msgid "Failed to pull model '{}' due to network error." msgstr "Не удалось извлечь модель '{}' из-за сетевой ошибки." -#: window.py:436 +#: src/window.py:446 msgid "Stop Model" msgstr "Остановить Модель" -#: window.py:437 +#: src/window.py:447 msgid "Are you sure you want to stop pulling '{}'?" msgstr "Вы уверены, что хотите прекратить извлечение '{}'?" -#: window.py:440 window.py:478 window.py:501 window.py:575 window.py:636 -#: window.py:685 window.py:712 window.py:745 window.py:778 +#: src/window.py:450 src/window.py:489 src/window.py:512 src/window.py:593 +#: src/window.py:654 src/window.py:703 src/window.py:730 src/window.py:763 +#: src/window.py:803 msgid "Cancel" msgstr "Отмена" -#: window.py:441 +#: src/window.py:451 msgid "Stop" msgstr "Стоп" -#: window.py:474 +#: src/window.py:485 msgid "Delete Model" msgstr "Удалить Модель" -#: window.py:475 window.py:709 +#: src/window.py:486 src/window.py:727 msgid "Are you sure you want to delete '{}'?" msgstr "Вы уверены, что хотите удалить '{}'?" -#: window.py:479 window.py:713 +#: src/window.py:490 src/window.py:731 msgid "Delete" msgstr "Удалить" -#: window.py:496 +#: src/window.py:507 msgid "Pull Model" msgstr "Извлечение модели" -#: window.py:497 +#: src/window.py:508 msgid "Please select a tag to pull '{}'" msgstr "Пожалуйста, выберите тег для извлечения '{}'" -#: window.py:502 +#: src/window.py:513 msgid "Pull" msgstr "Извлечение" -#: window.py:571 window.ui:439 +#: src/window.py:589 src/window.ui:426 msgid "Clear Chat" msgstr "Очистить Чат" -#: window.py:572 +#: src/window.py:590 msgid "Are you sure you want to clear the chat?" msgstr "Вы уверены, что хотите очистить чат?" -#: window.py:576 +#: src/window.py:594 msgid "Clear" msgstr "Очистить" -#: window.py:632 +#: src/window.py:650 msgid "Save Changes" msgstr "Сохранить Изменения" -#: window.py:633 +#: src/window.py:651 msgid "Do you want to save the URL change?" msgstr "Хотите сохранить изменение URL?" -#: window.py:637 +#: src/window.py:655 msgid "Discard" msgstr "Отказаться" -#: window.py:638 +#: src/window.py:656 msgid "Save" msgstr "Сохранить" -#: window.py:681 +#: src/window.py:699 msgid "Remove Image" msgstr "Удалить Изображение" -#: window.py:682 +#: src/window.py:700 msgid "Are you sure you want to remove image?" msgstr "Вы уверены, что хотите удалить изображение?" -#: window.py:686 +#: src/window.py:704 msgid "Remove" msgstr "Удалить" -#: window.py:708 +#: src/window.py:726 msgid "Delete Chat" msgstr "Удалить Чат" -#: window.py:739 +#: src/window.py:757 msgid "Rename Chat" msgstr "Переименовать Чат" -#: window.py:746 +#: src/window.py:764 msgid "Rename" msgstr "Переименовать" -#: window.py:759 +#: src/window.py:784 msgid "The name '{}' is already in use" msgstr "Имя '{}' уже используется" -#: window.py:772 +#: src/window.py:797 msgid "Create Chat" msgstr "Создать Чат" -#: window.py:779 +#: src/window.py:804 msgid "Create" msgstr "Создать" -#: window.ui:55 +#: src/window.ui:54 msgid "Chats" msgstr "Чаты" -#: window.ui:65 +#: src/window.ui:64 msgid "New chat" msgstr "Новый чат" -#: window.ui:101 +#: src/window.ui:100 msgid "Toggle Sidebar" msgstr "Переключение боковой панели" -#: window.ui:122 +#: src/window.ui:121 src/window.ui:257 msgid "Manage models" msgstr "Управление моделями" -#: window.ui:136 +#: src/window.ui:135 msgid "Menu" msgstr "Меню" -#: window.ui:215 +#: src/window.ui:213 msgid "Send" msgstr "Отправить" -#: window.ui:224 +#: src/window.ui:222 msgid "Requires model 'llava' to be selected" msgstr "Требуется выбрать модель \"llava\"" -#: window.ui:227 +#: src/window.ui:225 msgid "Image" msgstr "Изображение" -#: window.ui:344 +#: src/window.ui:331 msgid "Previous" msgstr "Предыдущий" -#: window.ui:359 +#: src/window.ui:346 msgid "Next" msgstr "Следующий" -#: window.ui:385 +#: src/window.ui:372 msgid "Welcome to Alpaca" msgstr "Добро пожаловать в Alpaca" -#: window.ui:386 -msgid "To get started, please ensure you have an Ollama instance set up. You can either run Ollama locally on your machine or connect to a remote instance." -msgstr "Для начала, пожалуйста, убедитесь, что у вас настроен экземпляр Ollama. Вы можете либо запустить Ollama локально на своем компьютере, либо подключиться к удаленному экземпляру." +#: src/window.ui:373 +msgid "" +"To get started, please ensure you have an Ollama instance set up. You can " +"either run Ollama locally on your machine or connect to a remote instance." +msgstr "" +"Для начала, пожалуйста, убедитесь, что у вас настроен экземпляр Ollama. Вы " +"можете либо запустить Ollama локально на своем компьютере, либо подключиться " +"к удаленному экземпляру." -#: window.ui:389 +#: src/window.ui:376 msgid "Ollama Website" msgstr "Веб-сайт Ollama" -#: window.ui:405 -msgid "Disclaimer" +#: src/window.ui:393 +msgid "" +"Alpaca and its developers are not liable for any damages to devices or " +"software resulting from the execution of code generated by an AI model. " +"Please exercise caution and review the code carefully before running it." msgstr "" +"Alpaca и ее разработчики не несут ответственности за любой ущерб, " +"причиненный устройствам или программному обеспечению в результате выполнения " +"кода, сгенерированного с помощью модели искусственного интеллекта. " +"Пожалуйста, будьте осторожны и внимательно ознакомьтесь с кодом перед его " +"запуском." -#: window.ui:406 -msgid "Alpaca and its developers are not liable for any damages to devices or software resulting from the execution of code generated by an AI model. Please exercise caution and review the code carefully before running it." -msgstr "Alpaca и ее разработчики не несут ответственности за любой ущерб, причиненный устройствам или программному обеспечению в результате выполнения кода, сгенерированного с помощью модели искусственного интеллекта. Пожалуйста, будьте осторожны и внимательно ознакомьтесь с кодом перед его запуском." - -#: window.ui:418 +#: src/window.ui:405 msgid "Setup" msgstr "Установка" -#: window.ui:419 -msgid "If you are running an Ollama instance locally and haven't modified the default ports, you can use the default URL. Otherwise, please enter the URL of your Ollama instance." -msgstr "Если вы запускаете локальный экземпляр Ollama и не изменили порты по умолчанию, вы можете использовать URL-адрес по умолчанию. В противном случае, пожалуйста, введите URL-адрес вашего экземпляра Ollama." +#: src/window.ui:406 +msgid "" +"If you are running an Ollama instance locally and haven't modified the " +"default ports, you can use the default URL. Otherwise, please enter the URL " +"of your Ollama instance." +msgstr "" +"Если вы запускаете локальный экземпляр Ollama и не изменили порты по " +"умолчанию, вы можете использовать URL-адрес по умолчанию. В противном " +"случае, пожалуйста, введите URL-адрес вашего экземпляра Ollama." -#: window.ui:443 +#: src/window.ui:430 msgid "Change Server" msgstr "Изменить Сервер" -#: window.ui:447 +#: src/window.ui:434 msgid "Keyboard Shortcuts" msgstr "Комбинации Клавиш" -#: window.ui:451 +#: src/window.ui:438 msgid "About Alpaca" msgstr "О Программе" -#: window.ui:473 +#: src/window.ui:460 msgid "General" msgstr "Общие" -#: window.ui:477 +#: src/window.ui:464 msgid "Close application" msgstr "Закрыть приложение" -#: window.ui:483 +#: src/window.ui:470 msgid "Clear chat" msgstr "Очистить чат" -#: window.ui:489 +#: src/window.ui:476 msgid "Change server" msgstr "Изменить Сервер" -#: window.ui:495 +#: src/window.ui:482 msgid "Show shortcuts window" msgstr "Показать окно комбинаций клавиш" -#: window.ui:502 +#: src/window.ui:489 msgid "Editor" msgstr "Редактор" -#: window.ui:506 +#: src/window.ui:493 msgid "Copy" msgstr "Копировать" -#: window.ui:512 +#: src/window.ui:499 msgid "Paste" msgstr "Вставить" -#: window.ui:518 +#: src/window.ui:505 msgid "Send Message" msgstr "" +#~ msgctxt "shortcut window" +#~ msgid "General" +#~ msgstr "Общие" + +#~ msgctxt "shortcut window" +#~ msgid "Show Shortcuts" +#~ msgstr "Показывать комбинации клавиш" + +#~ msgctxt "shortcut window" +#~ msgid "Quit" +#~ msgstr "Выйти" diff --git a/src/window.py b/src/window.py index 98d0ed4..a6a9f7f 100644 --- a/src/window.py +++ b/src/window.py @@ -43,8 +43,9 @@ class AlpacaWindow(Adw.ApplicationWindow): _ = gettext.gettext #Variables - ollama_url = None - remote_url = None + run_on_background = False + ollama_url = "" + remote_url = "" run_remote = False local_ollama_port = 11435 local_ollama_instance = None @@ -73,6 +74,7 @@ class AlpacaWindow(Adw.ApplicationWindow): send_button = Gtk.Template.Child() image_button = Gtk.Template.Child() file_filter_image = Gtk.Template.Child() + file_filter_json = Gtk.Template.Child() model_drop_down = Gtk.Template.Child() model_string_list = Gtk.Template.Child() @@ -84,9 +86,12 @@ class AlpacaWindow(Adw.ApplicationWindow): chat_list_box = Gtk.Template.Child() add_chat_button = Gtk.Template.Child() + export_chat_button = Gtk.Template.Child() + import_chat_button = Gtk.Template.Child() loading_spinner = None + background_switch = Gtk.Template.Child() remote_connection_switch = Gtk.Template.Child() remote_connection_entry = Gtk.Template.Child() @@ -109,7 +114,9 @@ class AlpacaWindow(Adw.ApplicationWindow): ], "good": [ _("Model deleted successfully"), - _("Model pulled successfully") + _("Model pulled successfully"), + _("Chat exported successfully"), + _("Chat imported successfully") ] } @@ -231,7 +238,7 @@ class AlpacaWindow(Adw.ApplicationWindow): if response['status'] == 'ok': if "Ollama is running" in response['text']: with open(os.path.join(self.config_dir, "server.json"), "w+") as f: - json.dump({'remote_url': self.remote_url, 'run_remote': self.run_remote, 'local_port': self.local_ollama_port}, f) + json.dump({'remote_url': self.remote_url, 'run_remote': self.run_remote, 'local_port': self.local_ollama_port, 'run_on_background': self.run_on_background}, f) #self.message_text_view.grab_focus_without_selecting() self.update_list_local_models() return True @@ -350,6 +357,8 @@ class AlpacaWindow(Adw.ApplicationWindow): GLib.idle_add(self.send_button.get_child().set_label, "Send") GLib.idle_add(self.send_button.get_child().set_icon_name, "send-to-symbolic") GLib.idle_add(self.chat_list_box.set_sensitive, True) + GLib.idle_add(self.export_chat_button.set_sensitive, True) + GLib.idle_add(self.import_chat_button.set_sensitive, True) GLib.idle_add(self.add_chat_button.set_sensitive, True) if self.verify_if_image_can_be_used(): GLib.idle_add(self.image_button.set_sensitive, True) GLib.idle_add(self.image_button.set_css_classes, []) @@ -369,6 +378,8 @@ class AlpacaWindow(Adw.ApplicationWindow): self.attached_image = {"path": None, "base64": None} self.chat_list_box.set_sensitive(True) self.add_chat_button.set_sensitive(True) + self.export_chat_button.set_sensitive(True) + self.import_chat_button.set_sensitive(True) self.message_text_view.set_sensitive(True) self.send_button.set_css_classes(["suggested-action"]) self.send_button.get_child().set_label("Send") @@ -401,6 +412,8 @@ class AlpacaWindow(Adw.ApplicationWindow): self.send_button.get_child().set_icon_name("edit-delete-symbolic") self.chat_list_box.set_sensitive(False) self.add_chat_button.set_sensitive(False) + self.export_chat_button.set_sensitive(False) + self.import_chat_button.set_sensitive(False) self.image_button.set_sensitive(False) self.show_message(self.message_text_view.get_buffer().get_text(self.message_text_view.get_buffer().get_start_iter(), self.message_text_view.get_buffer().get_end_iter(), False), False, f"\n\n{formated_datetime}", self.attached_image["base64"]) self.message_text_view.get_buffer().set_text("", 0) @@ -826,6 +839,7 @@ class AlpacaWindow(Adw.ApplicationWindow): def start_instance(self): self.ollama_instance = subprocess.Popen(["/app/bin/ollama", "serve"], env={**os.environ, 'OLLAMA_HOST': f"127.0.0.1:{self.local_ollama_port}", "HOME": self.data_dir}, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) + sleep(1) while True: err = self.ollama_instance.stderr.readline() if err == '' and self.ollama_instance.poll() is not None: @@ -836,10 +850,9 @@ class AlpacaWindow(Adw.ApplicationWindow): def stop_instance(self): self.ollama_instance.kill() - def reset_instance(self): - if self.ollama_instance is not None: - self.stop_instance() - self.start_instance() + def restart_instance(self): + if self.ollama_instance is not None: self.stop_instance() + start_instance(self) def connection_error(self): if self.run_remote: @@ -847,10 +860,10 @@ class AlpacaWindow(Adw.ApplicationWindow): self.remote_connection_entry.set_css_classes(["error"]) self.show_toast("error", 1, self.preferences_dialog) else: - self.reset_instance() + self.restart_instance() self.show_toast("error", 7, self.main_overlay) - def connection_switched(self, pspec, user_data): + def connection_switched(self): new_value = self.remote_connection_switch.get_active() if new_value != self.run_remote: self.run_remote = new_value @@ -871,6 +884,48 @@ class AlpacaWindow(Adw.ApplicationWindow): entry.set_css_classes(["error"]) self.show_toast("error", 1, self.preferences_dialog) + def on_replace_contents(self, file, result): + file.replace_contents_finish(result) + self.show_toast("good", 2, self.main_overlay) + + def on_export_current_chat(self, file_dialog, result): + file = file_dialog.save_finish(result) + data_to_export = {self.chats["selected_chat"]: self.chats["chats"][self.chats["selected_chat"]]} + file.replace_contents_async( + json.dumps(data_to_export, indent=4).encode("UTF-8"), + etag=None, + make_backup=False, + flags=Gio.FileCreateFlags.NONE, + cancellable=None, + callback=self.on_replace_contents + ) + + def export_current_chat(self): + file_dialog = Gtk.FileDialog(initial_name=f"{self.chats['selected_chat']}.json") + file_dialog.save(parent=self, cancellable=None, callback=self.on_export_current_chat) + + def on_chat_imported(self, file_dialog, result): + file = file_dialog.open_finish(result) + stream = file.read(None) + data_stream = Gio.DataInputStream.new(stream) + data, _ = data_stream.read_until('\0', None) + data = json.loads(data) + chat_name = list(data.keys())[0] + chat_content = data[chat_name] + self.chats['chats'][chat_name] = chat_content + self.update_chat_list() + self.save_history() + self.show_toast("good", 3, self.main_overlay) + + def import_chat(self): + file_dialog = Gtk.FileDialog(default_filter=self.file_filter_json) + file_dialog.open(self, None, self.on_chat_imported) + + def switch_run_on_background(self): + self.run_on_background = self.background_switch.get_active() + self.set_hide_on_close(self.run_on_background) + self.verify_connection() + def __init__(self, **kwargs): super().__init__(**kwargs) GtkSource.init() @@ -887,27 +942,37 @@ class AlpacaWindow(Adw.ApplicationWindow): self.connection_carousel.connect("page-changed", self.connection_carousel_page_changed) self.connection_previous_button.connect("clicked", self.connection_previous_button_activate) self.connection_next_button.connect("clicked", self.connection_next_button_activate) + + self.export_chat_button.connect("clicked", lambda button : self.export_current_chat()) + self.import_chat_button.connect("clicked", lambda button : self.import_chat()) #Preferences self.remote_connection_entry.connect("entry-activated", lambda entry : entry.set_css_classes([])) self.remote_connection_entry.connect("apply", self.change_remote_url) - self.remote_connection_switch.connect("notify", self.connection_switched) + self.remote_connection_switch.connect("notify", lambda pspec, user_data : self.connection_switched()) + self.background_switch.connect("notify", lambda pspec, user_data : self.switch_run_on_background()) if os.path.exists(os.path.join(self.config_dir, "server.json")): with open(os.path.join(self.config_dir, "server.json"), "r") as f: data = json.load(f) self.run_remote = data['run_remote'] self.local_ollama_port = data['local_port'] + self.remote_url = data['remote_url'] + self.run_on_background = data['run_on_background'] + self.background_switch.set_active(self.run_on_background) + self.set_hide_on_close(self.run_on_background) + self.remote_connection_entry.set_text(self.remote_url) if self.run_remote: - self.remote_url = data['remote_url'] + self.remote_connection_switch.set_active(True) self.ollama_url = data['remote_url'] else: + self.remote_connection_switch.set_active(False) self.ollama_url = f"http://127.0.0.1:{self.local_ollama_port}" self.start_instance() - if self.verify_connection() is False: self.connection_error() else: self.start_instance() self.ollama_url = f"http://127.0.0.1:{self.local_ollama_port}" self.first_time_setup = True self.welcome_dialog.present(self) + if self.verify_connection() is False: self.connection_error() self.update_list_available_models() self.load_history() self.update_chat_list() diff --git a/src/window.ui b/src/window.ui index f49b3ca..0106113 100644 --- a/src/window.ui +++ b/src/window.ui @@ -51,6 +51,32 @@ + + + Import chat + + + + document-open-symbolic + + + + + + + Export chat + + + + folder-download-symbolic + + + + New chat @@ -233,7 +259,6 @@ - true 400 @@ -241,7 +266,7 @@ Preferences - Connection + General insert-link-symbolic @@ -260,6 +285,17 @@ + + + Behavior + Manage Alpaca's Behavior + + + Run in background + + + + @@ -449,6 +485,11 @@ image/gif + + + application/json + + 1