28 Commits
0.7.1 ... 0.8.0

Author SHA1 Message Date
jeffser
9fae5b2cf2 Preparing for 0.8.0 2024-05-24 18:27:00 -06:00
jeffser
cde62c3511 Changed screenshot description 2024-05-24 18:18:44 -06:00
jeffser
2b6256ff25 Changed tooltip text for image button 2024-05-24 15:49:49 -06:00
jeffser
0c9fd6685b Added 'Image recognition' text to available models, also updated list of models 2024-05-24 15:46:02 -06:00
jeffser
999f7a7151 Replaced some variable names and removed an unsused overlay 2024-05-24 12:43:25 -06:00
jeffser
a1397ef09e Merge branch 'main' of github.com-jeffser:Jeffser/Alpaca 2024-05-24 12:27:38 -06:00
jeffser
a43aac0c66 Fixed shortcuts on the UI 2024-05-24 12:27:29 -06:00
Jeffry Samuel
06747abcb9 Update README.md 2024-05-23 21:11:26 -06:00
jeffser
8bce45cf71 Added credit to Daimaar Stein for the translation to Brazilian Portuguese 2024-05-23 21:00:53 -06:00
jeffser
084654582a Added Brazilian Portuguese 2024-05-23 20:59:03 -06:00
jeffser
29d5023cf4 Merge branch 'main' of github.com-jeffser:Jeffser/Alpaca 2024-05-23 20:58:30 -06:00
jeffser
a0c50c4b50 Deleted unnecesary files 2024-05-23 20:58:24 -06:00
Jeffry Samuel
45a8d23347 Update update_translation_files.sh 2024-05-23 20:57:29 -06:00
Daimar Stein
6d87f4c52b Add Brazilian Portuguese translation (#38)
* Create pt_BR.po

* Update README.md
2024-05-23 20:56:12 -06:00
jeffser
8352d016cc Added metadata so Flathub and Gnome Software know that it's compatible with mobile 2024-05-23 19:47:50 -06:00
jeffser
2dd9623ea9 Merge branch 'main' of github.com-jeffser:Jeffser/Alpaca 2024-05-23 19:40:44 -06:00
jeffser
9e6fba0e7f New description 2024-05-23 19:40:35 -06:00
Jeffry Samuel
e89ef2aa37 Update README.md 2024-05-23 19:33:11 -06:00
jeffser
8ed8c6d04b removed unnecesary comment 2024-05-23 19:26:26 -06:00
jeffser
913a7a0b39 Just enter now sends the message 2024-05-23 19:25:25 -06:00
jeffser
8dabb27689 Merge branch 'main' of github.com-jeffser:Jeffser/Alpaca 2024-05-23 19:07:32 -06:00
jeffser
db0daa1f41 Delete message feature 2024-05-23 19:06:50 -06:00
Jeffry Samuel
748406b2c0 Update README.md 2024-05-23 18:03:56 -06:00
jeffser
46b43ca670 Added more custom CSS 2024-05-23 17:48:40 -06:00
Nokse22
471159417c Sidebar, used AdwToolbarView and added Headerbar (#35)
* added adwtoolbarview in the sidebar

* removed commented code
2024-05-23 17:43:04 -06:00
Nokse22
5b92186930 Improved chat view and message bar (#33)
* added style.css and style-dark.css

* keep message text view sensitive at all times

* improved chat view ui and message view

* added clamps for chat container and message
2024-05-23 17:41:52 -06:00
Jeffry Samuel
cde081acb5 Added more people to the thank you section 2024-05-23 15:44:41 -06:00
Jeffry Samuel
4af0f718bc Thank you section 2024-05-23 14:19:13 -06:00
15 changed files with 1054 additions and 1675 deletions

View File

@@ -19,10 +19,11 @@ Alpaca is an [Ollama](https://github.com/ollama/ollama) client where you can man
- Multiple conversations - Multiple conversations
- Notifications - Notifications
- Import / Export chats - Import / Export chats
- Delete messages
## Future features! ## Future features!
- Document recognition - Document recognition
- Delete / Edit messages - Edit messages
- Snap Package (maybe) - Snap Package (maybe)
## Screenies ## Screenies
@@ -30,9 +31,6 @@ Login to Ollama instance | Chatting with models | Managing
:-------------------------:|:-------------------------:|:-------------------------: :-------------------------:|:-------------------------:|:-------------------------:
![Screenshot from 2024-05-12 19-58-28](https://jeffser.com/images/alpaca/screenie1.png) | ![Screenshot from 2024-05-12 20-01-08](https://jeffser.com/images/alpaca/screenie2.png) | ![Screenshot from 2024-05-12 20-01-31](https://jeffser.com/images/alpaca/screenie3.png) ![Screenshot from 2024-05-12 19-58-28](https://jeffser.com/images/alpaca/screenie1.png) | ![Screenshot from 2024-05-12 20-01-08](https://jeffser.com/images/alpaca/screenie2.png) | ![Screenshot from 2024-05-12 20-01-31](https://jeffser.com/images/alpaca/screenie3.png)
## Thanks
So, apparently there's people who like something I did, that's cool. I mean really, this is the first big project I've made and there's still a lot of stuff I want to add, I wanted to thank all of you that have reported issues and enhancements to the app, I appreciate it a lot.
## Preview ## Preview
1. Clone repo using Gnome Builder 1. Clone repo using Gnome Builder
2. Press the `run` button 2. Press the `run` button
@@ -42,5 +40,14 @@ So, apparently there's people who like something I did, that's cool. I mean real
2. Download the latest flatpak package 2. Download the latest flatpak package
3. Open it 3. Open it
---
## Thanks
- [not-a-dev-stein](https://github.com/not-a-dev-stein) for their help with requesting a new icon, bug reports and the translation to Brazilian Portuguese
- [TylerLaBree](https://github.com/TylerLaBree) for their requests and ideas
- [Alexkdeveloper](https://github.com/alexkdeveloper) for their help translating the app to Russian
- [Imbev](https://github.com/imbev) for their reports and suggestions
- [Nokse](https://github.com/Nokse22) for their contributions to the UI
## About forks ## About forks
If you want to fork this... I mean, I think it would be better if you start from scratch, my code isn't well documented at all, but if you really want to, please give me some credit, that's all I ask for... And maybe a donation (joke) If you want to fork this... I mean, I think it would be better if you start from scratch, my code isn't well documented at all, but if you really want to, please give me some credit, that's all I ask for... And maybe a donation (joke)

View File

@@ -5,13 +5,16 @@
<project_license>GPL-3.0-or-later</project_license> <project_license>GPL-3.0-or-later</project_license>
<launchable type="desktop-id">com.jeffser.Alpaca.desktop</launchable> <launchable type="desktop-id">com.jeffser.Alpaca.desktop</launchable>
<name>Alpaca</name> <name>Alpaca</name>
<summary>Chat with multiple AI models</summary> <summary>Chat with local AI models</summary>
<description> <description>
<p>An Ollama client</p> <p>An Ollama client</p>
<p>Features</p> <p>Features</p>
<ul> <ul>
<li>Talk to multiple models in the same conversation</li> <li>Talk to multiple models in the same conversation</li>
<li>Pull and delete models from the app</li> <li>Pull and delete models from the app</li>
<li>Have multiple conversations</li>
<li>Image recognition (Only available with LLaVA Model)</li>
<li>Import and export chats</li>
</ul> </ul>
<p>Disclaimer</p> <p>Disclaimer</p>
<p>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.</p> <p>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.</p>
@@ -28,6 +31,12 @@
<category>Development</category> <category>Development</category>
<category>Chat</category> <category>Chat</category>
</categories> </categories>
<requires>
<display_length compare="ge">360</display_length>
</requires>
<recommends>
<control>keyboard</control>
</recommends>
<branding> <branding>
<color type="primary" scheme_preference="light">#8cdef5</color> <color type="primary" scheme_preference="light">#8cdef5</color>
<color type="primary" scheme_preference="dark">#0f2b78</color> <color type="primary" scheme_preference="dark">#0f2b78</color>
@@ -35,7 +44,7 @@
<screenshots> <screenshots>
<screenshot type="default"> <screenshot type="default">
<image>https://jeffser.com/images/alpaca/screenie1.png</image> <image>https://jeffser.com/images/alpaca/screenie1.png</image>
<caption>Welcome dialog</caption> <caption>A conversation showing code highlight</caption>
</screenshot> </screenshot>
<screenshot> <screenshot>
<image>https://jeffser.com/images/alpaca/screenie2.png</image> <image>https://jeffser.com/images/alpaca/screenie2.png</image>
@@ -51,6 +60,21 @@
<url type="homepage">https://github.com/Jeffser/Alpaca</url> <url type="homepage">https://github.com/Jeffser/Alpaca</url>
<url type="donation">https://github.com/sponsors/Jeffser</url> <url type="donation">https://github.com/sponsors/Jeffser</url>
<releases> <releases>
<release version="0.8.0" date="2024-05-24">
<url type="details">https://github.com/Jeffser/Alpaca/releases/tag/0.8.0</url>
<description>
<p>New Update</p>
<ul>
<li>Updated model list</li>
<li>Added image recognition to more models</li>
<li>Added Brazilian Portuguese translation (Thanks Daimaar Stein)</li>
<li>Refined the general UI (Thanks Nokse22)</li>
<li>Added 'delete message' feature</li>
<li>Added metadata so that software distributors know that the app is compatible with mobile</li>
<li>Changed 'send' shortcut to just the return/enter key (to add a new line use shift+return)</li>
</ul>
</description>
</release>
<release version="0.7.1" date="2024-05-23"> <release version="0.7.1" date="2024-05-23">
<url type="details">https://github.com/Jeffser/Alpaca/releases/tag/0.7.1</url> <url type="details">https://github.com/Jeffser/Alpaca/releases/tag/0.7.1</url>
<description> <description>

View File

@@ -1,5 +1,5 @@
project('Alpaca', project('Alpaca',
version: '0.7.1', version: '0.8.0',
meson_version: '>= 0.62.0', meson_version: '>= 0.62.0',
default_options: [ 'warning_level=2', 'werror=false', ], default_options: [ 'warning_level=2', 'werror=false', ],
) )

View File

@@ -1,2 +1,3 @@
ru ru
es es
pt_BR

743
po/es.po~
View File

@@ -1,743 +0,0 @@
# Spanish translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Jeffry Samuel Eduarte Rojas <jeffrysamuer@gmail.com>, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-21 23:20-0600\n"
"PO-Revision-Date: 2024-05-19 19:44-0600\n"
"Last-Translator: Jeffry Samuel Eduarte Rojas <jeffrysamuer@gmail.com>\n"
"Language-Team: Spanish <es@tp.org.es>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: data/com.jeffser.Alpaca.desktop.in:3
#: data/com.jeffser.Alpaca.metainfo.xml.in:7
msgid "Alpaca"
msgstr "Alpaca"
#: data/com.jeffser.Alpaca.metainfo.xml.in:8
msgid "Chat with multiple AI models"
msgstr "Chatea con multiples modelos de IA"
#: 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:226
msgid "Features"
msgstr "Funcionalidades"
#: data/com.jeffser.Alpaca.metainfo.xml.in:13
#: data/com.jeffser.Alpaca.metainfo.xml.in:228
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:14
#: data/com.jeffser.Alpaca.metainfo.xml.in:229
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:446
msgid "Disclaimer"
msgstr "Aviso Legal"
#: 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 ""
"Este proyecto no está afiliado del todo con Ollama, no soy responsable por "
"cualquier daño a tu dispositivo o software causado por correr codigo "
"proveido por cualquier modelo."
#: 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:38
msgid "Welcome dialog"
msgstr "Dialogo de Bienvenida"
#: 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:46
msgid "Managing models"
msgstr "Gestionando modelos"
#: data/com.jeffser.Alpaca.metainfo.xml.in:57
#, fuzzy
msgid "Huge Update"
msgstr "Gran Actualización"
#: data/com.jeffser.Alpaca.metainfo.xml.in:59
msgid "Added Ollama as part of Alpaca, Ollama will run in a sandbox"
msgstr "Añadido Ollama como parte de Alpaca, Ollama se ejecutara en un sandbox"
#: data/com.jeffser.Alpaca.metainfo.xml.in:60
msgid "Added option to connect to remote instances (how it worked before)"
msgstr "Añadida la opcion de conectarse a instancias remotas (como funcionaba) "
"antes"
#: data/com.jeffser.Alpaca.metainfo.xml.in:61
msgid "Added option to import and export chats"
msgstr "Añadida la opcion de importar y exportar chats"
#: data/com.jeffser.Alpaca.metainfo.xml.in:62
msgid "Added option to run Alpaca with Ollama in the background"
msgstr "Añadida la opcion de ejecutar Alpaca y Ollama en el fondo"
#: data/com.jeffser.Alpaca.metainfo.xml.in:63
#, fuzzy
msgid "Added preferences dialog"
msgstr "Añadido dialogo de preferencias"
#: data/com.jeffser.Alpaca.metainfo.xml.in:64
#, fuzzy
msgid "Changed the welcome dialog"
msgstr "Nuevo dialogo de bienvenida"
#: data/com.jeffser.Alpaca.metainfo.xml.in:66
#: data/com.jeffser.Alpaca.metainfo.xml.in:83
#: data/com.jeffser.Alpaca.metainfo.xml.in:95
#: data/com.jeffser.Alpaca.metainfo.xml.in:114
#: data/com.jeffser.Alpaca.metainfo.xml.in:135
#: data/com.jeffser.Alpaca.metainfo.xml.in:151
#: data/com.jeffser.Alpaca.metainfo.xml.in:167
#: data/com.jeffser.Alpaca.metainfo.xml.in:181
#: data/com.jeffser.Alpaca.metainfo.xml.in:191
#: data/com.jeffser.Alpaca.metainfo.xml.in:209
#: data/com.jeffser.Alpaca.metainfo.xml.in:231
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 "Yet Another Daily Update"
msgstr "Otra Actulización Diaria"
#: data/com.jeffser.Alpaca.metainfo.xml.in:76
#, 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:77
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:78
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:79
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:80
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:81
#, fuzzy
msgid "Update for translations"
msgstr "Mejor soporte para traducciones"
#: data/com.jeffser.Alpaca.metainfo.xml.in:91
#, fuzzy
msgid "Quick Fix"
msgstr "0.1.2 Arreglos rápidos"
#: data/com.jeffser.Alpaca.metainfo.xml.in:93
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 "
"actualización"
#: data/com.jeffser.Alpaca.metainfo.xml.in:103
msgid "Another Daily Update"
msgstr "Otra Actulización Diaria"
#: data/com.jeffser.Alpaca.metainfo.xml.in:105
msgid "Added full Spanish translation"
msgstr "Añadida traducción completa a Español"
#: data/com.jeffser.Alpaca.metainfo.xml.in:106
#, 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:107
msgid "Added interrupt button"
msgstr "Añadido botón de interrupción"
#: data/com.jeffser.Alpaca.metainfo.xml.in:108
#, fuzzy
msgid "Added basic shortcuts"
msgstr "Atajos de Teclado"
#: data/com.jeffser.Alpaca.metainfo.xml.in:109
msgid "Better translation support"
msgstr "Mejor soporte para traducciones"
#: data/com.jeffser.Alpaca.metainfo.xml.in:110
msgid ""
"User can now leave chat name empty when creating a new one, it will add a "
"placeholder name"
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:111
msgid "Better scalling for different window sizes"
msgstr "Mejor escalado para distintos tamaños de ventana"
#: data/com.jeffser.Alpaca.metainfo.xml.in:112
#, 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:122
msgid "Really Big Update"
msgstr "Actualización Bastante Grande"
#: data/com.jeffser.Alpaca.metainfo.xml.in:124
msgid "Added multiple chats support!"
msgstr "Añadido soporte para multiples chats!"
#: data/com.jeffser.Alpaca.metainfo.xml.in:125
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:126
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:127
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:128
msgid "Added better model management dialog"
msgstr "Añadido mejor gestión de modelos"
#: data/com.jeffser.Alpaca.metainfo.xml.in:129
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:130
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:131
msgid "Added new symbolic icon"
msgstr "Añadido nuevo icono simbolico"
#: data/com.jeffser.Alpaca.metainfo.xml.in:132
msgid "Added frame to message textview widget"
msgstr "Añadido borde al objeto textview del mensaje"
#: data/com.jeffser.Alpaca.metainfo.xml.in:133
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:143
#: data/com.jeffser.Alpaca.metainfo.xml.in:200
msgid "Big Update"
msgstr "Gran Actualización"
#: data/com.jeffser.Alpaca.metainfo.xml.in:145
msgid "Added code highlighting"
msgstr "Añadido resaltado de código"
#: data/com.jeffser.Alpaca.metainfo.xml.in:146
msgid "Added image recognition (llava model)"
msgstr "Añadido reconocimiento de imagenes (modelo llava)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:147
msgid "Added multiline prompt"
msgstr "Añadido caja de texto de multiples lineas"
#: data/com.jeffser.Alpaca.metainfo.xml.in:148
msgid "Fixed some small bugs"
msgstr "Arreglados unos pequeños errores"
#: data/com.jeffser.Alpaca.metainfo.xml.in:149
msgid "General optimization"
msgstr "Optimización general"
#: data/com.jeffser.Alpaca.metainfo.xml.in:159
msgid "Fixes and features"
msgstr "Arreglos y funcionalidades"
#: data/com.jeffser.Alpaca.metainfo.xml.in:161
msgid "Russian translation (thanks github/alexkdeveloper)"
msgstr "Traducción a Ruso (gracias github/alexkdeveloper)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:162
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:163
msgid "Fixed: Brand colors for Flathub"
msgstr "Arreglado: Colores de marca para Flathub"
#: data/com.jeffser.Alpaca.metainfo.xml.in:164
msgid "Fixed: App description"
msgstr "Arreglado: Descripción de aplicación"
#: data/com.jeffser.Alpaca.metainfo.xml.in:165
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:175
msgid "0.2.2 Bug fixes"
msgstr "0.2.2 Arreglo de errores"
#: data/com.jeffser.Alpaca.metainfo.xml.in:177
msgid "Toast messages appearing behind dialogs"
msgstr "Mensajes toast apareciendo detrás de dialogos"
#: data/com.jeffser.Alpaca.metainfo.xml.in:178
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:179
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:189
msgid "0.2.1 Data saving fix"
msgstr "0.2.1 Arreglo en el guardado de datos"
#: data/com.jeffser.Alpaca.metainfo.xml.in:190
msgid ""
"The app didn't save the config files and chat history to the right "
"directory, this is now fixed"
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:199
msgid "0.2.0"
msgstr "0.2.0"
#: data/com.jeffser.Alpaca.metainfo.xml.in:201
msgid "New Features"
msgstr "Nuevas funcionalidades"
#: data/com.jeffser.Alpaca.metainfo.xml.in:203
msgid "Restore chat after closing the app"
msgstr "Restaurar chat despues de cerrar la aplicación"
#: data/com.jeffser.Alpaca.metainfo.xml.in:204
msgid "A button to clear the chat"
msgstr "Un botón para limpiar el chat"
#: data/com.jeffser.Alpaca.metainfo.xml.in:205
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:206
msgid "Added welcome dialog"
msgstr "Añadido dialogo de bienvenida"
#: data/com.jeffser.Alpaca.metainfo.xml.in:207
msgid "More stability"
msgstr "Más estabilidad"
#: data/com.jeffser.Alpaca.metainfo.xml.in:217
msgid "0.1.2 Quick fixes"
msgstr "0.1.2 Arreglos rápidos"
#: data/com.jeffser.Alpaca.metainfo.xml.in:218
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:224
msgid "0.1.1 Stable Release"
msgstr "0.1.1"
#: data/com.jeffser.Alpaca.metainfo.xml.in:225
msgid "This is the first public version of Alpaca"
msgstr "Esta es la primera versión publica de Alpaca"
#: src/window.py:54 src/window.py:761
msgid "New Chat"
msgstr "Nuevo Chat"
#: src/window.py:100
msgid "An error occurred"
msgstr "Ocurrio un error"
#: src/window.py:101
msgid "Failed to connect to server"
msgstr "No se pudo conectar al servidor"
#: src/window.py:102
msgid "Could not list local models"
msgstr "No se pudieron listar los modelos locales"
#: src/window.py:103
msgid "Could not delete model"
msgstr "No se pudo eliminar el modelo"
#: src/window.py:104
msgid "Could not pull model"
msgstr "No se pudo descargar el modelo"
#: src/window.py:105
msgid "Cannot open image"
msgstr "No se pudo abrir la imagen"
#: src/window.py:106
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:107
msgid "There was an error with the local Ollama instance, so it has been reset"
msgstr ""
#: src/window.py:110
msgid "Please select a model before chatting"
msgstr "Por favor selecciona un modelo antes de enviar un mensaje"
#: src/window.py:111
msgid "Chat cannot be cleared while receiving a message"
msgstr "El chat no puede ser limpiado mientras se recibe un mensaje"
#: src/window.py:112
#, fuzzy
msgid "That tag is already being pulled"
msgstr "El nombre '{}' ya está en uso"
#: src/window.py:113
msgid "That tag has been pulled alreay"
msgstr ""
#: src/window.py:116
msgid "Model deleted successfully"
msgstr "Modelo eliminado exitosamente"
#: src/window.py:117
msgid "Model pulled successfully"
msgstr "Modelo descargado exitosamente"
#: src/window.py:118
#, fuzzy
msgid "Chat exported successfully"
msgstr "Modelo eliminado exitosamente"
#: src/window.py:119
#, fuzzy
msgid "Chat imported successfully"
msgstr "Modelo descargado exitosamente"
#: src/window.py:451
msgid "Task Complete"
msgstr "Tarea completada"
#: src/window.py:451
msgid "Model '{}' pulled successfully."
msgstr "El modelo '{}' fue descargado exitosamente"
#: src/window.py:456
msgid "Pull Model Error"
msgstr "Error Descargando Modelo"
#: src/window.py:456
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:472
msgid "Stop Model"
msgstr "Parar Modelo"
#: src/window.py:473
msgid "Are you sure you want to stop pulling '{}'?"
msgstr "¿Estás seguro de que quieres parar la descarga de '{}'?"
#: src/window.py:476 src/window.py:519 src/window.py:542 src/window.py:615
#: src/window.py:688 src/window.py:715 src/window.py:748 src/window.py:788
msgid "Cancel"
msgstr "Cancelar"
#: src/window.py:477
msgid "Stop"
msgstr "Parar"
#: src/window.py:515
msgid "Delete Model"
msgstr "Eliminar Modelo"
#: src/window.py:516 src/window.py:712
msgid "Are you sure you want to delete '{}'?"
msgstr "¿Estás seguro de que quieres eliminar '{}'?"
#: src/window.py:520 src/window.py:716
msgid "Delete"
msgstr "Eliminar"
#: src/window.py:537
msgid "Pull Model"
msgstr "Descargar Modelo"
#: src/window.py:538
msgid "Please select a tag to pull '{}'"
msgstr "Por favor selecciona una etiqueta para descargar '{}'"
#: src/window.py:543
msgid "Pull"
msgstr "Descargar"
#: src/window.py:611 src/window.ui:462
msgid "Clear Chat"
msgstr "Limpiar Chat"
#: src/window.py:612
msgid "Are you sure you want to clear the chat?"
msgstr "¿Estás seguro de que quieres limpiar el chat?"
#: src/window.py:616
msgid "Clear"
msgstr "Limpiar"
#: src/window.py:684
msgid "Remove Image"
msgstr "Remover Imagen"
#: src/window.py:685
msgid "Are you sure you want to remove image?"
msgstr "¿Estás seguro de que quieres eliminar la imagen?"
#: src/window.py:689
msgid "Remove"
msgstr "Remover"
#: src/window.py:711
msgid "Delete Chat"
msgstr "Eliminar Chat"
#: src/window.py:742
msgid "Rename Chat"
msgstr "Renombrar Chat"
#: src/window.py:749
msgid "Rename"
msgstr "Renombrar"
#: src/window.py:769
msgid "The name '{}' is already in use"
msgstr "El nombre '{}' ya está en uso"
#: src/window.py:782
msgid "Create Chat"
msgstr "Crear Chat"
#: src/window.py:789
msgid "Create"
msgstr "Crear"
#: src/window.ui:46
msgid "Chats"
msgstr "Chats"
#: src/window.ui:56
msgid "Import chat"
msgstr "Importar chat"
#: src/window.ui:69
msgid "Export chat"
msgstr "Exportar chat"
#: src/window.ui:82
msgid "New chat"
msgstr "Nuevo chat"
#: src/window.ui:118
msgid "Toggle Sidebar"
msgstr "Alternar barra de lado"
#: src/window.ui:139 src/window.ui:315
msgid "Manage models"
msgstr "Gestionar modelos"
#: src/window.ui:153
msgid "Menu"
msgstr "Menu"
#: src/window.ui:231
msgid "Send"
msgstr "Enviar"
#: src/window.ui:240
msgid "Requires model 'llava' to be selected"
msgstr "Requiere que el modelo 'llava' sea seleccionado"
#: src/window.ui:243
msgid "Image"
msgstr "Imagen"
#: src/window.ui:266 src/window.ui:466 src/window.ui:517
msgid "Preferences"
msgstr "Preferencias"
#: src/window.ui:269 src/window.ui:501
msgid "General"
msgstr "General"
#: src/window.ui:273
msgid "Remote Connection"
msgstr "Conexión Remota"
#: src/window.ui:274
msgid "Manage a remote connection to Ollama"
msgstr "Gestiona una conección remota a Ollama"
#: src/window.ui:277
msgid "Use remote connection"
msgstr "Usar conexión remota"
#: src/window.ui:282
msgid "URL of remote instance"
msgstr "URL de la instancia remota"
#: src/window.ui:290
msgid "Behavior"
msgstr "Comportamiento"
#: src/window.ui:291
msgid "Manage Alpaca's Behavior"
msgstr "Gestiona el comportamiento de Alpaca"
#: src/window.ui:294
msgid "Run in background"
msgstr "Ejecutar en el fondo"
#: src/window.ui:385
msgid "Previous"
msgstr "Anterior"
#: src/window.ui:400
msgid "Next"
msgstr "Siguiente"
#: src/window.ui:426
msgid "Welcome to Alpaca"
msgstr "Bienvenido a Alpaca"
#: src/window.ui:427
msgid "Powered by Ollama"
msgstr "Impulsado por Ollama"
#: src/window.ui:430
msgid "Ollama Website"
msgstr "Sitio Web de Ollama"
#: src/window.ui:447
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 y sus desarrolladores no son responsables por cualquier daño a "
"dispositivos o software resultados por la ejecución de codigo generado por "
"un modelo de IA. Por favor sea precavido y revise el codigo cuidadosamente "
"antes de correrlo"
#: src/window.ui:470
msgid "Keyboard Shortcuts"
msgstr "Atajos de Teclado"
#: src/window.ui:474
msgid "About Alpaca"
msgstr "Sobre Alpaca"
#: src/window.ui:505
msgid "Close application"
msgstr "Cerrar aplicación"
#: src/window.ui:511
msgid "Clear chat"
msgstr "Limpiar chat"
#: src/window.ui:523
msgid "Show shortcuts window"
msgstr "Mostrar ventana de atajos"
#: src/window.ui:530
msgid "Editor"
msgstr "Editor"
#: src/window.ui:534
msgid "Copy"
msgstr "Copiar"
#: src/window.ui:540
msgid "Paste"
msgstr "Pegar"
#: src/window.ui:546
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"

770
po/pt_BR.po Normal file
View File

@@ -0,0 +1,770 @@
# Brazilian Portuguese translations for Alpaca.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-23 22:38-0600\n"
"PO-Revision-Date: 2024-05-23 23:29-0600\n"
"Last-Translator: Daimar Stein <daimarstein@pm.me>\n"
"Language-Team: \n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: data/com.jeffser.Alpaca.desktop.in:3
#: data/com.jeffser.Alpaca.metainfo.xml.in:7
msgid "Alpaca"
msgstr "Alpaca"
#: data/com.jeffser.Alpaca.metainfo.xml.in:8
msgid "Chat with multiple AI models"
msgstr "Converse com vários modelos de IA"
#: data/com.jeffser.Alpaca.metainfo.xml.in:10
msgid "An Ollama client"
msgstr "Um cliente de Ollama"
#: data/com.jeffser.Alpaca.metainfo.xml.in:11
#: data/com.jeffser.Alpaca.metainfo.xml.in:239
msgid "Features"
msgstr "Funcionalidades"
#: data/com.jeffser.Alpaca.metainfo.xml.in:13
#: data/com.jeffser.Alpaca.metainfo.xml.in:241
msgid "Talk to multiple models in the same conversation"
msgstr "Fale com múltiplos modelos na mesma conversa"
#: data/com.jeffser.Alpaca.metainfo.xml.in:14
#: data/com.jeffser.Alpaca.metainfo.xml.in:242
msgid "Pull and delete models from the app"
msgstr "Baixe e delete modelos através do app"
#: data/com.jeffser.Alpaca.metainfo.xml.in:16 src/window.ui:442
msgid "Disclaimer"
msgstr "Aviso Legal"
#: 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 ""
"Esse projeto não é afiliado de nenhuma forma com Ollama. Não sou "
"responsável por quaisquer danos ao seu dispositivo ou software causados "
"por código gerado por qualquer um dos modelos disponíveis."
#: 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:38
msgid "Welcome dialog"
msgstr "Diálogo de Boas-vindas"
#: data/com.jeffser.Alpaca.metainfo.xml.in:42
msgid "A conversation involving multiple models"
msgstr "Uma conversa envolvendo múltiplos modelos"
#: data/com.jeffser.Alpaca.metainfo.xml.in:46
msgid "Managing models"
msgstr "Gerenciando modelos"
#: data/com.jeffser.Alpaca.metainfo.xml.in:57
#, fuzzy
msgid "Cool Update"
msgstr "Atualização Legal"
#: data/com.jeffser.Alpaca.metainfo.xml.in:59
#, fuzzy
msgid "Better design for chat window"
msgstr "Design da janela da conversa foi melhorado"
#: data/com.jeffser.Alpaca.metainfo.xml.in:60
#, fuzzy
msgid "Better design for chat sidebar"
msgstr "A interface da barra lateral das conversas foi melhorada"
#: data/com.jeffser.Alpaca.metainfo.xml.in:61
#, fuzzy
msgid "Fixed remote connections"
msgstr "Conexões remotas foram consertadas"
#: data/com.jeffser.Alpaca.metainfo.xml.in:62
msgid "Fixed Ollama restarting in loop"
msgstr "Erro que fazia o Ollama reiniciar em loop foi consertado"
#: data/com.jeffser.Alpaca.metainfo.xml.in:63
msgid "Other cool backend stuff"
msgstr "Outras coisas legais de backend"
#: data/com.jeffser.Alpaca.metainfo.xml.in:70
#, fuzzy
msgid "Huge Update"
msgstr "Atualização Enorme"
#: data/com.jeffser.Alpaca.metainfo.xml.in:72
msgid "Added Ollama as part of Alpaca, Ollama will run in a sandbox"
msgstr "Ollama foi adicionado como parte do Alpaca, executado em sandbox"
#: data/com.jeffser.Alpaca.metainfo.xml.in:73
msgid "Added option to connect to remote instances (how it worked before)"
msgstr "A opção de conectar com uma instância remota (como funcionava antes) foi adicionada"
#: data/com.jeffser.Alpaca.metainfo.xml.in:74
msgid "Added option to import and export chats"
msgstr "A opção de importar e exportar conversas foi adicionada"
#: data/com.jeffser.Alpaca.metainfo.xml.in:75
msgid "Added option to run Alpaca with Ollama in the background"
msgstr "A opção de continuar sendo executado em segundo plano foi adicionada"
#: data/com.jeffser.Alpaca.metainfo.xml.in:76
#, fuzzy
msgid "Added preferences dialog"
msgstr "Diálogo de preferências foi adicionado"
#: data/com.jeffser.Alpaca.metainfo.xml.in:77
#, fuzzy
msgid "Changed the welcome dialog"
msgstr "O diálogo de boas-vindas foi modificado"
#: data/com.jeffser.Alpaca.metainfo.xml.in:79
#: data/com.jeffser.Alpaca.metainfo.xml.in:96
#: data/com.jeffser.Alpaca.metainfo.xml.in:108
#: data/com.jeffser.Alpaca.metainfo.xml.in:127
#: data/com.jeffser.Alpaca.metainfo.xml.in:148
#: data/com.jeffser.Alpaca.metainfo.xml.in:164
#: data/com.jeffser.Alpaca.metainfo.xml.in:180
#: data/com.jeffser.Alpaca.metainfo.xml.in:194
#: data/com.jeffser.Alpaca.metainfo.xml.in:204
#: data/com.jeffser.Alpaca.metainfo.xml.in:222
#: data/com.jeffser.Alpaca.metainfo.xml.in:244
msgid "Please report any errors to the issues page, thank you."
msgstr "Por favor, reportar quaisquer erros na página de issues, obrigado."
#: data/com.jeffser.Alpaca.metainfo.xml.in:87
#, fuzzy
msgid "Yet Another Daily Update"
msgstr "Mais Uma Atualização Diária"
#: data/com.jeffser.Alpaca.metainfo.xml.in:89
#, fuzzy
msgid "Added better UI for 'Manage Models' dialog"
msgstr "Uma melhor interface para 'Gerenciar Modelos' foi adicionada"
#: data/com.jeffser.Alpaca.metainfo.xml.in:90
msgid "Added better UI for the chat sidebar"
msgstr "Uma interface melhor para a barra lateral das conversas foi adicionada"
#: data/com.jeffser.Alpaca.metainfo.xml.in:91
msgid ""
"Replaced model description with a button to open Ollama's website for the "
"model"
msgstr ""
"A descrição dos modelos foi substituída com um botão para abrir o site do "
"Ollama para cada modelo"
#: data/com.jeffser.Alpaca.metainfo.xml.in:92
msgid "Added myself to the credits as the spanish translator"
msgstr "Me adicionei aos créditos como o tradutor para espanhol"
#: data/com.jeffser.Alpaca.metainfo.xml.in:93
msgid "Using XDG properly to get config folder"
msgstr "Agora a spec XDG é usada propriamente para ter uma pasta de config"
#: data/com.jeffser.Alpaca.metainfo.xml.in:94
#, fuzzy
msgid "Update for translations"
msgstr "Melhor suporte a traduções"
#: data/com.jeffser.Alpaca.metainfo.xml.in:104
#, fuzzy
msgid "Quick Fix"
msgstr "Consertos Rápidos"
#: data/com.jeffser.Alpaca.metainfo.xml.in:106
msgid "The last update had some mistakes in the description of the update"
msgstr ""
"A última atualização teve alguns erros na descrição da mesma"
#: data/com.jeffser.Alpaca.metainfo.xml.in:116
msgid "Another Daily Update"
msgstr "Outra Atualização Diária"
#: data/com.jeffser.Alpaca.metainfo.xml.in:118
msgid "Added full Spanish translation"
msgstr "Tradução completa para o Espanhol foi adicionada"
#: data/com.jeffser.Alpaca.metainfo.xml.in:119
#, fuzzy
msgid "Added support for background pulling of multiple models"
msgstr "Suporte para o download de múltiplos modelos em segundo plano"
"foi adicionado"
#: data/com.jeffser.Alpaca.metainfo.xml.in:120
msgid "Added interrupt button"
msgstr "Um botão de interromper foi adicionado"
#: data/com.jeffser.Alpaca.metainfo.xml.in:121
#, fuzzy
msgid "Added basic shortcuts"
msgstr "Atalhos de teclado básicos foram adicionados"
#: data/com.jeffser.Alpaca.metainfo.xml.in:122
msgid "Better translation support"
msgstr "Melhor suporte a traduções"
#: data/com.jeffser.Alpaca.metainfo.xml.in:123
msgid ""
"User can now leave chat name empty when creating a new one, it will add a "
"placeholder name"
msgstr ""
"O usuário agora pode deixar o nome da conversa vazio ao criar uma nova, um "
"nome substituto será gerado em seu lugar"
#: data/com.jeffser.Alpaca.metainfo.xml.in:124
msgid "Better scalling for different window sizes"
msgstr "Melhor escala para diferentes tamanhos de janela"
#: data/com.jeffser.Alpaca.metainfo.xml.in:125
#, fuzzy
msgid "Fixed: Can't close app if first time setup fails"
msgstr "Consertado: Não era possível fechar o app caso a configuração "
"inicial falhasse"
#: data/com.jeffser.Alpaca.metainfo.xml.in:135
msgid "Really Big Update"
msgstr "Uma Atualização Realmente Grande"
#: data/com.jeffser.Alpaca.metainfo.xml.in:137
msgid "Added multiple chats support!"
msgstr "Suporte para múltiplas conversas foi adicionado!"
#: data/com.jeffser.Alpaca.metainfo.xml.in:138
msgid "Added Pango Markup support (bold, list, title, subtitle, monospace)"
msgstr ""
"Suporte para Pango Markup (negrito, lista, título, subtítulo, monospace) "
"foi adicionado"
#: data/com.jeffser.Alpaca.metainfo.xml.in:139
msgid "Added autoscroll if the user is at the bottom of the chat"
msgstr ""
"Rolagem automática caso o usuário esteja na mensagem mais recente da "
"conversa foi adicionado"
#: data/com.jeffser.Alpaca.metainfo.xml.in:140
msgid "Added support for multiple tags on a single model"
msgstr "Suporte para múltiplas tags em um único modelo foi adicionado"
#: data/com.jeffser.Alpaca.metainfo.xml.in:141
msgid "Added better model management dialog"
msgstr "Um melhor diálogo de gerenciamento de modelos foi adicionado"
#: data/com.jeffser.Alpaca.metainfo.xml.in:142
msgid "Added loading spinner when sending message"
msgstr "Um spinner de carregamento ao mandar mensagens foi adicionado"
#: data/com.jeffser.Alpaca.metainfo.xml.in:143
msgid "Added notifications if app is not active and a model pull finishes"
msgstr ""
"Notificações caso o app não esteja ativo e o download de um modelo for "
"finalizado foram adicionadas"
#: data/com.jeffser.Alpaca.metainfo.xml.in:144
msgid "Added new symbolic icon"
msgstr "Um novo ícone simbólico foi adicionado"
#: data/com.jeffser.Alpaca.metainfo.xml.in:145
msgid "Added frame to message textview widget"
msgstr "Quadro ao redor do textview do widget de mensagem foi adicionado"
#: data/com.jeffser.Alpaca.metainfo.xml.in:146
msgid "Fixed \"code blocks shouldn't be editable\""
msgstr "Consertado \"blocos de código não deveriam ser editáveis\""
#: data/com.jeffser.Alpaca.metainfo.xml.in:156
#: data/com.jeffser.Alpaca.metainfo.xml.in:213
msgid "Big Update"
msgstr "Grande Atualização"
#: data/com.jeffser.Alpaca.metainfo.xml.in:158
msgid "Added code highlighting"
msgstr "Highlighting de código foi adicionado"
#: data/com.jeffser.Alpaca.metainfo.xml.in:159
msgid "Added image recognition (llava model)"
msgstr "Reconhecimento de imagem foi adicionado (modelo llava)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:160
msgid "Added multiline prompt"
msgstr "Prompt de múltiplas linhas foi adicionado"
#: data/com.jeffser.Alpaca.metainfo.xml.in:161
msgid "Fixed some small bugs"
msgstr "Pequenos erros foram consertados"
#: data/com.jeffser.Alpaca.metainfo.xml.in:162
msgid "General optimization"
msgstr "Otimização geral"
#: data/com.jeffser.Alpaca.metainfo.xml.in:172
msgid "Fixes and features"
msgstr "Consertos e funcionalidades"
#: data/com.jeffser.Alpaca.metainfo.xml.in:174
msgid "Russian translation (thanks github/alexkdeveloper)"
msgstr "Tradução para Russo (obrigado, github/alexkdeveloper)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:175
msgid "Fixed: Cannot close app on first setup"
msgstr "Consertado: Não era possível fechar o app no setup inicial"
#: data/com.jeffser.Alpaca.metainfo.xml.in:176
msgid "Fixed: Brand colors for Flathub"
msgstr "Consertado: Cores de branding para o Flathub"
#: data/com.jeffser.Alpaca.metainfo.xml.in:177
msgid "Fixed: App description"
msgstr "Consertada: Descrição do app"
#: data/com.jeffser.Alpaca.metainfo.xml.in:178
msgid "Fixed: Only show 'save changes dialog' when you actually change the url"
msgstr ""
"Consertado: Somente exibir 'diálogo de salvamento de mudanças' quando você"
"realmente mudar o URL"
#: data/com.jeffser.Alpaca.metainfo.xml.in:188
msgid "0.2.2 Bug fixes"
msgstr "0.2.2 Conserto de Bugs"
#: data/com.jeffser.Alpaca.metainfo.xml.in:190
msgid "Toast messages appearing behind dialogs"
msgstr "Mensagens toast aparecendo atrás de diálogos"
#: data/com.jeffser.Alpaca.metainfo.xml.in:191
msgid "Local model list not updating when changing servers"
msgstr ""
"Lista de modelos locais não é atualizada ao mudar de servidor"
#: data/com.jeffser.Alpaca.metainfo.xml.in:192
msgid "Closing the setup dialog closes the whole app"
msgstr "Fechar o diálogo de primeira configuração fecha o app"
#: data/com.jeffser.Alpaca.metainfo.xml.in:202
msgid "0.2.1 Data saving fix"
msgstr "0.2.1 Conserto de Salvamento de Dados"
#: data/com.jeffser.Alpaca.metainfo.xml.in:203
msgid ""
"The app didn't save the config files and chat history to the right "
"directory, this is now fixed"
msgstr ""
"O app não salvava os arquivos de config. e o histórico de conversa para "
"a pasta correta, isso foi corrigido."
#: data/com.jeffser.Alpaca.metainfo.xml.in:212
msgid "0.2.0"
msgstr "0.2.0"
#: data/com.jeffser.Alpaca.metainfo.xml.in:214
msgid "New Features"
msgstr "Novas Funcionalidades"
#: data/com.jeffser.Alpaca.metainfo.xml.in:216
msgid "Restore chat after closing the app"
msgstr "Restaura a conversa após fechar o app"
#: data/com.jeffser.Alpaca.metainfo.xml.in:217
msgid "A button to clear the chat"
msgstr "Um botão para limpar a conversa"
#: data/com.jeffser.Alpaca.metainfo.xml.in:218
msgid "Fixed multiple bugs involving how messages are shown"
msgstr "Múltiplos bugs envolvendo como mensagens são exibidas foram consertados"
#: data/com.jeffser.Alpaca.metainfo.xml.in:219
msgid "Added welcome dialog"
msgstr "Um diálogo de boas-vindas foi adicionado"
#: data/com.jeffser.Alpaca.metainfo.xml.in:220
msgid "More stability"
msgstr "Maior estabilidade"
#: data/com.jeffser.Alpaca.metainfo.xml.in:230
msgid "0.1.2 Quick fixes"
msgstr "0.1.2 Consertos Rápidos"
#: data/com.jeffser.Alpaca.metainfo.xml.in:231
msgid ""
"This release fixes some metadata needed to have a proper Flatpak application"
msgstr ""
"Este lançamento conserta parte dos metadados necessários para ter um app em "
"Flatpak corretamente"
#: data/com.jeffser.Alpaca.metainfo.xml.in:237
msgid "0.1.1 Stable Release"
msgstr "0.1.1 Lançamento Estável"
#: data/com.jeffser.Alpaca.metainfo.xml.in:238
msgid "This is the first public version of Alpaca"
msgstr "Essa é a primeira versão pública de Alpaca"
#: src/window.py:56 src/window.py:780
msgid "New Chat"
msgstr "Nova Conversa"
#: src/window.py:102
msgid "An error occurred"
msgstr "Ocorreu um erro"
#: src/window.py:103
msgid "Failed to connect to server"
msgstr "Falha ao conectar com o servidor"
#: src/window.py:104
msgid "Could not list local models"
msgstr "Não foi possível listar modelos locais"
#: src/window.py:105
msgid "Could not delete model"
msgstr "Não foi possível excluir o modelo"
#: src/window.py:106
msgid "Could not pull model"
msgstr "Não foi possível baixar o modelo"
#: src/window.py:107
msgid "Cannot open image"
msgstr "Não foi possível abrir a imagem"
#: src/window.py:108
msgid "Cannot delete chat because it's the only one left"
msgstr "Não foi possível excluir a conversa por ser a única restante"
#: src/window.py:109
msgid "There was an error with the local Ollama instance, so it has been reset"
msgstr "Houve um erro com a instância local Ollama, a mesma foi desconfigurada"
#: src/window.py:112
msgid "Please select a model before chatting"
msgstr "Por favor, selecione um modelo antes de conversar"
#: src/window.py:113
msgid "Chat cannot be cleared while receiving a message"
msgstr "A conversa não pode ser limpa enquanto gera uma mensagem"
#: src/window.py:114
#, fuzzy
msgid "That tag is already being pulled"
msgstr "Esta tag já está sendo baixada"
#: src/window.py:115
msgid "That tag has been pulled alreay"
msgstr "Esta tag já foi baixada"
#: src/window.py:118
msgid "Model deleted successfully"
msgstr "Modelo excluído com sucesso"
#: src/window.py:119
msgid "Model pulled successfully"
msgstr "Modelo baixado com sucesso"
#: src/window.py:120
#, fuzzy
msgid "Chat exported successfully"
msgstr "Conversa exportada com sucesso"
#: src/window.py:121
#, fuzzy
msgid "Chat imported successfully"
msgstr "Conversa importada com sucesso"
#: src/window.py:471
msgid "Task Complete"
msgstr "Tarefa Concluída"
#: src/window.py:471
msgid "Model '{}' pulled successfully."
msgstr "O modelo '{}' foi baixado com sucesso"
#: src/window.py:476
msgid "Pull Model Error"
msgstr "Erro ao Baixar Modelo"
#: src/window.py:476
msgid "Failed to pull model '{}' due to network error."
msgstr "Não foi possível baixar o modelo '{}' devido a um erro de rede."
#: src/window.py:492
msgid "Stop Model"
msgstr "Parar Modelo"
#: src/window.py:493
msgid "Are you sure you want to stop pulling '{}'?"
msgstr "Tem certeza que deseja parar o download de '{}'?"
#: src/window.py:496 src/window.py:539 src/window.py:562 src/window.py:635
#: src/window.py:708 src/window.py:734 src/window.py:766 src/window.py:807
msgid "Cancel"
msgstr "Cancelar"
#: src/window.py:497
msgid "Stop"
msgstr "Parar"
#: src/window.py:535
msgid "Delete Model"
msgstr "Excluir Modelo"
#: src/window.py:536 src/window.py:731
msgid "Are you sure you want to delete '{}'?"
msgstr "Tem certeza que deseja excluir '{}'?"
#: src/window.py:540 src/window.py:735
msgid "Delete"
msgstr "Excluir"
#: src/window.py:557
msgid "Pull Model"
msgstr "Baixar Modelo"
#: src/window.py:558
msgid "Please select a tag to pull '{}'"
msgstr "Por favor, selecione uma tag para baixar '{}'"
#: src/window.py:563
msgid "Pull"
msgstr "Baixar"
#: src/window.py:631 src/window.ui:458
msgid "Clear Chat"
msgstr "Limpar Conversa"
#: src/window.py:632
msgid "Are you sure you want to clear the chat?"
msgstr "Tem certeza de que deseja limpar a conversa?"
#: src/window.py:636
msgid "Clear"
msgstr "Limpar"
#: src/window.py:704
msgid "Remove Image"
msgstr "Remover Imagem"
#: src/window.py:705
msgid "Are you sure you want to remove image?"
msgstr "Tem certeza que quer remover a imagem?"
#: src/window.py:709 src/window.ui:478
msgid "Remove"
msgstr "Remover"
#: src/window.py:730
msgid "Delete Chat"
msgstr "Excluir Conversa"
#: src/window.py:760
msgid "Rename Chat"
msgstr "Renomear Conversa"
#: src/window.py:767
msgid "Rename"
msgstr "Renomear"
#: src/window.py:788
msgid "The name '{}' is already in use"
msgstr "O nome '{}' já está em uso"
#: src/window.py:801
msgid "Create Chat"
msgstr "Criar Conversa"
#: src/window.py:808
msgid "Create"
msgstr "Criar"
#: src/window.ui:45
msgid "Chats"
msgstr "Conversas"
#: src/window.ui:55
msgid "Import chat"
msgstr "Importar conversa"
#: src/window.ui:68
msgid "Export chat"
msgstr "Exportar conversa"
#: src/window.ui:81
msgid "New chat"
msgstr "Nova conversa"
#: src/window.ui:117
msgid "Toggle Sidebar"
msgstr "Alternar barra lateral"
#: src/window.ui:138 src/window.ui:311
msgid "Manage models"
msgstr "Gerenciar modelos"
#: src/window.ui:152
msgid "Menu"
msgstr "Menu"
#: src/window.ui:227
msgid "Send"
msgstr "Enviar"
#: src/window.ui:236
msgid "Requires model 'llava' to be selected"
msgstr "Requer que um modelo 'llava' esteja selecionado"
#: src/window.ui:239
msgid "Image"
msgstr "Imagem"
#: src/window.ui:262 src/window.ui:462 src/window.ui:520
msgid "Preferences"
msgstr "Preferências"
#: src/window.ui:265 src/window.ui:504
msgid "General"
msgstr "Geral"
#: src/window.ui:269
msgid "Remote Connection"
msgstr "Conexão Remota"
#: src/window.ui:270
msgid "Manage a remote connection to Ollama"
msgstr "Gerencia uma conexão remota com Ollama"
#: src/window.ui:273
msgid "Use remote connection"
msgstr "Usar conexão remota"
#: src/window.ui:278
msgid "URL of remote instance"
msgstr "URL da instância remota"
#: src/window.ui:286
msgid "Behavior"
msgstr "Comportamento"
#: src/window.ui:287
msgid "Manage Alpaca's Behavior"
msgstr "Gerencia o Comportamento de Alpaca"
#: src/window.ui:290
msgid "Run in background"
msgstr "Executar em segundo plano"
#: src/window.ui:381
msgid "Previous"
msgstr "Anterior"
#: src/window.ui:396
msgid "Next"
msgstr "Próximo"
#: src/window.ui:422
msgid "Welcome to Alpaca"
msgstr "Bem-vindo(a) a Alpaca"
#: src/window.ui:423
msgid "Powered by Ollama"
msgstr "Com tecnologia Ollama"
#: src/window.ui:426
msgid "Ollama Website"
msgstr "Site do Ollama"
#: src/window.ui:443
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 e seus desenvolvedores não são responsáveis por quaisquer danos "
"causados a dispositivos ou software resultante da execução de código "
"gerado por um modelo de IA. Por favor, tenha cuidado e revise o código "
"com cuidado antes de executá-lo."
#: src/window.ui:466
msgid "Keyboard Shortcuts"
msgstr "Atalhos de Teclado"
#: src/window.ui:470
msgid "About Alpaca"
msgstr "Sobre Alpaca"
#: src/window.ui:508
msgid "Close application"
msgstr "Fechar aplicativo"
#: src/window.ui:514
msgid "Clear chat"
msgstr "Limpar chat"
#: src/window.ui:526
msgid "Show shortcuts window"
msgstr "Mostrar janela de atalhos"
#: src/window.ui:533
msgid "Editor"
msgstr "Editor"
#: src/window.ui:537
msgid "Copy"
msgstr "Copiar"
#: src/window.ui:543
msgid "Paste"
msgstr "Colar"
#: src/window.ui:549
msgid "Send Message"
msgstr "Enviar Mensagem"
#~ msgid "Save Changes"
#~ msgstr "Salvar Mudanças"
#~ msgid "Do you want to save the URL change?"
#~ msgstr "Deseja salvar as mudanças na URL?"
#~ msgid "Discard"
#~ msgstr "Descartar"
#~ msgid "Save"
#~ msgstr "Salvar"
#~ 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 assegure-se que você tem uma insância Ollama "
#~ "configurada e funcional. Você pode rodar Ollama localmente em sua máquina "
#~ "ou através de uma instância 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 ""
#~ "Caso esteja rodando uma instância Ollama localmente e não modificou as "
#~ "portas padrão, você pode usar a URL padrão. Caso contrário, por favor, "
#~ "insira a URL da sua instância Ollama."
#~ msgid "Change Server"
#~ msgstr "Mudar Servidor"
#~ msgid "Change server"
#~ msgstr "Mudar servidor"

686
po/ru.po~
View File

@@ -1,686 +0,0 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \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"
"Language: ru_RU\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.4.4\n"
"X-Poedit-Basepath: ../src\n"
"X-Poedit-SearchPath-0: .\n"
#: 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
msgid "Chat with multiple AI models"
msgstr ""
#: 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: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: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:16 src/window.ui:436
msgid "Disclaimer"
msgstr ""
#: 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:38
msgid "Welcome dialog"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:42
msgid "A conversation involving multiple models"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:46
msgid "Managing models"
msgstr ""
#: 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 "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
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: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: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:88
msgid "Added full Spanish translation"
msgstr ""
#: 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:90
msgid "Added interrupt button"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:91
#, fuzzy
msgid "Added basic shortcuts"
msgstr "Показывать ярлыки"
#: data/com.jeffser.Alpaca.metainfo.xml.in:92
msgid "Better translation support"
msgstr ""
#: 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"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:94
msgid "Better scalling for different window sizes"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:95
msgid "Fixed: Can't close app if first time setup fails"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:105
msgid "Really Big Update"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:107
msgid "Added multiple chats support!"
msgstr ""
#: 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:109
msgid "Added autoscroll if the user is at the bottom of the chat"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:110
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 loading spinner when sending message"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:113
msgid "Added notifications if app is not active and a model pull finishes"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:114
msgid "Added new symbolic icon"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:115
msgid "Added frame to message textview widget"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:116
msgid "Fixed \"code blocks shouldn't be editable\""
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:126
#: data/com.jeffser.Alpaca.metainfo.xml.in:183
msgid "Big Update"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:128
msgid "Added code highlighting"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:129
msgid "Added image recognition (llava model)"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:130
msgid "Added multiline prompt"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:131
msgid "Fixed some small bugs"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:132
msgid "General optimization"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:142
msgid "Fixes and features"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:144
msgid "Russian translation (thanks github/alexkdeveloper)"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:145
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:172
msgid "0.2.1 Data saving fix"
msgstr ""
#: 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:182
msgid "0.2.0"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:184
msgid "New Features"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:186
msgid "Restore chat after closing the app"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:187
msgid "A button to clear the chat"
msgstr ""
#: 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:189
msgid "Added welcome dialog"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:190
msgid "More stability"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:200
msgid "0.1.2 Quick fixes"
msgstr ""
#: 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:207
msgid "0.1.1 Stable Release"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:208
msgid "This is the first public version of Alpaca"
msgstr ""
#: src/window.py:53 src/window.py:753
msgid "New Chat"
msgstr "Новый Чат"
#: src/window.py:98
msgid "An error occurred"
msgstr "Произошла ошибка"
#: src/window.py:99
msgid "Failed to connect to server"
msgstr "Не удалось подключиться к серверу"
#: src/window.py:100
msgid "Could not list local models"
msgstr "Не удалось перечислить локальные модели"
#: src/window.py:101
msgid "Could not delete model"
msgstr "Не удалось удалить модель"
#: src/window.py:102
msgid "Could not pull model"
msgstr "Не удалось извлечь модель"
#: src/window.py:103
msgid "Cannot open image"
msgstr "Не удается открыть изображение"
#: src/window.py:104
msgid "Cannot delete chat because it's the only one left"
msgstr "Не удается удалить чат, потому что он единственный оставшийся"
#: 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:109
msgid "Chat cannot be cleared while receiving a message"
msgstr "Чат не может быть удален при получении сообщения"
#: 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:115
msgid "Model pulled successfully"
msgstr "Модель успешно извлечена"
#: 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:443
msgid "Model '{}' pulled successfully."
msgstr "Модель '{}' успешно извлечена."
#: src/window.py:448
msgid "Pull Model Error"
msgstr "Ошибка Извлечения Модели"
#: src/window.py:448
msgid "Failed to pull model '{}' due to network error."
msgstr "Не удалось извлечь модель '{}' из-за сетевой ошибки."
#: src/window.py:464
msgid "Stop Model"
msgstr "Остановить Модель"
#: src/window.py:465
msgid "Are you sure you want to stop pulling '{}'?"
msgstr "Вы уверены, что хотите прекратить извлечение '{}'?"
#: 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:469
msgid "Stop"
msgstr "Стоп"
#: src/window.py:507
msgid "Delete Model"
msgstr "Удалить Модель"
#: src/window.py:508 src/window.py:704
msgid "Are you sure you want to delete '{}'?"
msgstr "Вы уверены, что хотите удалить '{}'?"
#: src/window.py:512 src/window.py:708
msgid "Delete"
msgstr "Удалить"
#: src/window.py:529
msgid "Pull Model"
msgstr "Извлечение модели"
#: src/window.py:530
msgid "Please select a tag to pull '{}'"
msgstr "Пожалуйста, выберите тег для извлечения '{}'"
#: src/window.py:535
msgid "Pull"
msgstr "Извлечение"
#: src/window.py:603 src/window.ui:452
msgid "Clear Chat"
msgstr "Очистить Чат"
#: src/window.py:604
msgid "Are you sure you want to clear the chat?"
msgstr "Вы уверены, что хотите очистить чат?"
#: src/window.py:608
msgid "Clear"
msgstr "Очистить"
#: src/window.py:676
msgid "Remove Image"
msgstr "Удалить Изображение"
#: src/window.py:677
msgid "Are you sure you want to remove image?"
msgstr "Вы уверены, что хотите удалить изображение?"
#: src/window.py:681
msgid "Remove"
msgstr "Удалить"
#: src/window.py:703
msgid "Delete Chat"
msgstr "Удалить Чат"
#: src/window.py:734
msgid "Rename Chat"
msgstr "Переименовать Чат"
#: src/window.py:741
msgid "Rename"
msgstr "Переименовать"
#: src/window.py:761
msgid "The name '{}' is already in use"
msgstr "Имя '{}' уже используется"
#: src/window.py:774
msgid "Create Chat"
msgstr "Создать Чат"
#: src/window.py:781
msgid "Create"
msgstr "Создать"
#: src/window.ui:46
msgid "Chats"
msgstr "Чаты"
#: 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:118
msgid "Toggle Sidebar"
msgstr "Переключение боковой панели"
#: src/window.ui:139 src/window.ui:305
msgid "Manage models"
msgstr "Управление моделями"
#: src/window.ui:153
msgid "Menu"
msgstr "Меню"
#: src/window.ui:231
msgid "Send"
msgstr "Отправить"
#: src/window.ui:240
msgid "Requires model 'llava' to be selected"
msgstr "Требуется выбрать модель \"llava\""
#: src/window.ui:243
msgid "Image"
msgstr "Изображение"
#: 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:390
msgid "Next"
msgstr "Следующий"
#: src/window.ui:416
msgid "Welcome to Alpaca"
msgstr "Добро пожаловать в Alpaca"
#: src/window.ui:417
msgid "Powered by Ollama"
msgstr ""
#: src/window.ui:420
msgid "Ollama Website"
msgstr "Веб-сайт Ollama"
#: 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 ""
"Alpaca и ее разработчики не несут ответственности за любой ущерб, "
"причиненный устройствам или программному обеспечению в результате выполнения "
"кода, сгенерированного с помощью модели искусственного интеллекта. "
"Пожалуйста, будьте осторожны и внимательно ознакомьтесь с кодом перед его "
"запуском."
#: src/window.ui:460
msgid "Keyboard Shortcuts"
msgstr "Комбинации Клавиш"
#: src/window.ui:464
msgid "About Alpaca"
msgstr "О Программе"
#: src/window.ui:491
msgid "General"
msgstr "Общие"
#: src/window.ui:495
msgid "Close application"
msgstr "Закрыть приложение"
#: src/window.ui:501
msgid "Clear chat"
msgstr "Очистить чат"
#: src/window.ui:513
msgid "Show shortcuts window"
msgstr "Показать окно комбинаций клавиш"
#: src/window.ui:520
msgid "Editor"
msgstr "Редактор"
#: src/window.ui:524
msgid "Copy"
msgstr "Копировать"
#: src/window.ui:530
msgid "Paste"
msgstr "Вставить"
#: 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 "Общие"
#~ msgctxt "shortcut window"
#~ msgid "Show Shortcuts"
#~ msgstr "Показывать комбинации клавиш"
#~ msgctxt "shortcut window"
#~ msgid "Quit"
#~ msgstr "Выйти"

View File

@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<gresources> <gresources>
<gresource prefix="/com/jeffser/Alpaca"> <gresource prefix="/com/jeffser/Alpaca">
<file>style.css</file>
<file>style-dark.css</file>
<file preprocess="xml-stripblanks">window.ui</file> <file preprocess="xml-stripblanks">window.ui</file>
<file preprocess="xml-stripblanks">gtk/help-overlay.ui</file> <file preprocess="xml-stripblanks">gtk/help-overlay.ui</file>
</gresource> </gresource>

File diff suppressed because one or more lines are too long

View File

@@ -48,10 +48,10 @@ class AlpacaApplication(Adw.Application):
application_name='Alpaca', application_name='Alpaca',
application_icon='com.jeffser.Alpaca', application_icon='com.jeffser.Alpaca',
developer_name='Jeffry Samuel Eduarte Rojas', developer_name='Jeffry Samuel Eduarte Rojas',
version='0.7.1', version='0.8.0',
developers=['Jeffser https://jeffser.com'], developers=['Jeffser https://jeffser.com'],
designers=['Jeffser https://jeffser.com'], designers=['Jeffser https://jeffser.com'],
translator_credits='Alex K (Russian) https://github.com/alexkdeveloper\nJeffser (Spanish) https://jeffser.com', translator_credits='Alex K (Russian) https://github.com/alexkdeveloper\nJeffser (Spanish) https://jeffser.com\nDaimar Stein (Brazilian Portuguese) https://github.com/not-a-dev-stein',
copyright='© 2024 Jeffser\n© 2024 Ollama', copyright='© 2024 Jeffser\n© 2024 Ollama',
issue_url='https://github.com/Jeffser/Alpaca/issues') issue_url='https://github.com/Jeffser/Alpaca/issues')
about.present(parent=self.props.active_window) about.present(parent=self.props.active_window)

7
src/style-dark.css Normal file
View File

@@ -0,0 +1,7 @@
.message-input {
background-color: #343434;
}
.message-text-view {
background-color: #343434;
}

28
src/style.css Normal file
View File

@@ -0,0 +1,28 @@
.message-input {
background-color: #EBEBEB;
border-radius: 10px;
}
.message-text-view {
background-color: #EBEBEB;
}
.chat_row box.header {
font-size: 14px;
}
.chat_row box {
margin: 0;
}
.chat_row button {
opacity: 0;
transition: opacity .05s;
}
.chat_row:hover button {
opacity: 1;
}
.message .delete-message-button {
opacity: 0;
transition: opacity .05s;
}
.message:hover .delete-message-button {
opacity: 1;
}

View File

@@ -53,6 +53,7 @@ class AlpacaWindow(Adw.ApplicationWindow):
local_ollama_instance = None local_ollama_instance = None
local_models = [] local_models = []
pulling_models = {} pulling_models = {}
current_chat_elements = [] #Used for deleting
chats = {"chats": {_("New Chat"): {"messages": []}}, "selected_chat": "New Chat"} chats = {"chats": {_("New Chat"): {"messages": []}}, "selected_chat": "New Chat"}
attached_image = {"path": None, "base64": None} attached_image = {"path": None, "base64": None}
first_time_setup = False first_time_setup = False
@@ -64,12 +65,11 @@ class AlpacaWindow(Adw.ApplicationWindow):
bot_message_box : Gtk.Box = None bot_message_box : Gtk.Box = None
bot_message_view : Gtk.TextView = None bot_message_view : Gtk.TextView = None
welcome_dialog = Gtk.Template.Child() welcome_dialog = Gtk.Template.Child()
connection_carousel = Gtk.Template.Child() welcome_carousel = Gtk.Template.Child()
connection_previous_button = Gtk.Template.Child() welcome_previous_button = Gtk.Template.Child()
connection_next_button = Gtk.Template.Child() welcome_next_button = Gtk.Template.Child()
main_overlay = Gtk.Template.Child() main_overlay = Gtk.Template.Child()
manage_models_overlay = Gtk.Template.Child() manage_models_overlay = Gtk.Template.Child()
connection_overlay = Gtk.Template.Child()
chat_container = Gtk.Template.Child() chat_container = Gtk.Template.Child()
chat_window = Gtk.Template.Child() chat_window = Gtk.Template.Child()
message_text_view = Gtk.Template.Child() message_text_view = Gtk.Template.Child()
@@ -139,6 +139,13 @@ class AlpacaWindow(Adw.ApplicationWindow):
if icon: notification.set_icon(icon) if icon: notification.set_icon(icon)
self.get_application().send_notification(None, notification) self.get_application().send_notification(None, notification)
def delete_message(self, message_element):
message_index = self.current_chat_elements.index(message_element)
del self.chats["chats"][self.chats["selected_chat"]]["messages"][message_index]
self.chat_container.remove(message_element)
del self.current_chat_elements[message_index]
self.save_history()
def show_message(self, msg:str, bot:bool, footer:str=None, image_base64:str=None): def show_message(self, msg:str, bot:bool, footer:str=None, image_base64:str=None):
message_text = Gtk.TextView( message_text = Gtk.TextView(
editable=False, editable=False,
@@ -157,7 +164,7 @@ class AlpacaWindow(Adw.ApplicationWindow):
delete_button = Gtk.Button( delete_button = Gtk.Button(
icon_name = "user-trash-symbolic", icon_name = "user-trash-symbolic",
css_classes = ["flat", "circular"], css_classes = ["flat", "circular", "delete-message-button"],
valign="end", valign="end",
halign="end", halign="end",
margin_bottom=6, margin_bottom=6,
@@ -190,12 +197,12 @@ class AlpacaWindow(Adw.ApplicationWindow):
message_box.append(image) message_box.append(image)
message_box.append(message_text) message_box.append(message_text)
message_overlay = Gtk.Overlay() self.current_chat_elements.append(Gtk.Overlay(css_classes=["message"]))
message_overlay.set_child(message_box) self.current_chat_elements[-1].set_child(message_box)
#message_overlay.add_overlay(delete_button)
# I don't have the energy right now to do this :) delete_button.connect("clicked", lambda button, element=self.current_chat_elements[-1]: self.delete_message(element))
## TODO IDEA: I could count which message it is I'm trying to delete, that way I could get the position on the list, this is probably the best approach, good luck me from the future. self.current_chat_elements[-1].add_overlay(delete_button)
self.chat_container.append(message_overlay) self.chat_container.append(self.current_chat_elements[-1])
if bot: if bot:
self.bot_message = message_buffer self.bot_message = message_buffer
@@ -205,7 +212,7 @@ class AlpacaWindow(Adw.ApplicationWindow):
def verify_if_image_can_be_used(self, pspec=None, user_data=None): def verify_if_image_can_be_used(self, pspec=None, user_data=None):
if self.model_drop_down.get_selected_item() == None: return True if self.model_drop_down.get_selected_item() == None: return True
selected = self.model_drop_down.get_selected_item().get_string().split(":")[0] selected = self.model_drop_down.get_selected_item().get_string().split(":")[0]
if selected in ['llava']: if selected in ['llava', 'bakllava', 'moondream', 'llava-llama3']:
self.image_button.set_sensitive(True) self.image_button.set_sensitive(True)
return True return True
else: else:
@@ -248,7 +255,6 @@ class AlpacaWindow(Adw.ApplicationWindow):
return return
else: else:
self.connection_error() self.connection_error()
self.show_toast("error", 2, self.connection_overlay)
def verify_connection(self): def verify_connection(self):
response = simple_get(self.ollama_url) response = simple_get(self.ollama_url)
@@ -381,9 +387,8 @@ class AlpacaWindow(Adw.ApplicationWindow):
GLib.idle_add(self.image_button.set_css_classes, []) GLib.idle_add(self.image_button.set_css_classes, [])
GLib.idle_add(self.image_button.get_child().set_icon_name, "image-x-generic-symbolic") GLib.idle_add(self.image_button.get_child().set_icon_name, "image-x-generic-symbolic")
self.attached_image = {"path": None, "base64": None} self.attached_image = {"path": None, "base64": None}
GLib.idle_add(self.message_text_view.set_sensitive, True) # GLib.idle_add(self.message_text_view.set_sensitive, True)
if response['status'] == 'error': if response['status'] == 'error':
GLib.idle_add(self.show_toast, 'error', 1, self.connection_overlay)
GLib.idle_add(self.connection_error) GLib.idle_add(self.connection_error)
def send_message(self, button=None): def send_message(self, button=None):
@@ -397,7 +402,7 @@ class AlpacaWindow(Adw.ApplicationWindow):
self.add_chat_button.set_sensitive(True) self.add_chat_button.set_sensitive(True)
self.export_chat_button.set_sensitive(True) self.export_chat_button.set_sensitive(True)
self.import_chat_button.set_sensitive(True) self.import_chat_button.set_sensitive(True)
self.message_text_view.set_sensitive(True) # self.message_text_view.set_sensitive(True)
self.send_button.set_css_classes(["suggested-action"]) self.send_button.set_css_classes(["suggested-action"])
self.send_button.get_child().set_label("Send") self.send_button.get_child().set_label("Send")
self.send_button.get_child().set_icon_name("send-to-symbolic") self.send_button.get_child().set_icon_name("send-to-symbolic")
@@ -423,7 +428,7 @@ class AlpacaWindow(Adw.ApplicationWindow):
} }
if self.verify_if_image_can_be_used() and self.attached_image["base64"] is not None: if self.verify_if_image_can_be_used() and self.attached_image["base64"] is not None:
data["messages"][-1]["images"] = [self.attached_image["base64"]] data["messages"][-1]["images"] = [self.attached_image["base64"]]
self.message_text_view.set_sensitive(False) # self.message_text_view.set_sensitive(False)
self.send_button.set_css_classes(["destructive-action"]) self.send_button.set_css_classes(["destructive-action"])
self.send_button.get_child().set_label("Stop") self.send_button.get_child().set_label("Stop")
self.send_button.get_child().set_icon_name("edit-delete-symbolic") self.send_button.get_child().set_icon_name("edit-delete-symbolic")
@@ -451,7 +456,6 @@ class AlpacaWindow(Adw.ApplicationWindow):
if response['status'] == 'ok': if response['status'] == 'ok':
self.show_toast("good", 0, self.manage_models_overlay) self.show_toast("good", 0, self.manage_models_overlay)
else: else:
self.show_toast("error", 3, self.connection_overlay)
self.manage_models_dialog.close() self.manage_models_dialog.close()
self.connection_error() self.connection_error()
@@ -475,7 +479,6 @@ class AlpacaWindow(Adw.ApplicationWindow):
del self.pulling_models[f"{model_name}:{tag}"] del self.pulling_models[f"{model_name}:{tag}"]
else: else:
GLib.idle_add(self.show_notification, _("Pull Model Error"), _("Failed to pull model '{}' due to network error.").format(f"{model_name}:{tag}"), True, Gio.ThemedIcon.new("dialog-error-symbolic")) GLib.idle_add(self.show_notification, _("Pull Model Error"), _("Failed to pull model '{}' due to network error.").format(f"{model_name}:{tag}"), True, Gio.ThemedIcon.new("dialog-error-symbolic"))
GLib.idle_add(self.show_toast, "error", 4, self.connection_overlay)
GLib.idle_add(self.pulling_models[f"{model_name}:{tag}"].get_parent().remove, self.pulling_models[f"{model_name}:{tag}"]) GLib.idle_add(self.pulling_models[f"{model_name}:{tag}"].get_parent().remove, self.pulling_models[f"{model_name}:{tag}"])
del self.pulling_models[f"{model_name}:{tag}"] del self.pulling_models[f"{model_name}:{tag}"]
GLib.idle_add(self.manage_models_dialog.close) GLib.idle_add(self.manage_models_dialog.close)
@@ -573,7 +576,8 @@ class AlpacaWindow(Adw.ApplicationWindow):
self.available_model_list_box.remove_all() self.available_model_list_box.remove_all()
for name, model_info in available_models.items(): for name, model_info in available_models.items():
model = Adw.ActionRow( model = Adw.ActionRow(
title = name title = name,
subtitle = "Image recognition" if model_info["image"] else None
) )
link_button = Gtk.Button( link_button = Gtk.Button(
icon_name = "web-browser-symbolic", icon_name = "web-browser-symbolic",
@@ -597,23 +601,21 @@ class AlpacaWindow(Adw.ApplicationWindow):
self.update_list_local_models() self.update_list_local_models()
self.manage_models_dialog.present(self) self.manage_models_dialog.present(self)
def connection_carousel_page_changed(self, carousel, index): def welcome_carousel_page_changed(self, carousel, index):
if index == 0: self.connection_previous_button.set_sensitive(False) if index == 0: self.welcome_previous_button.set_sensitive(False)
else: self.connection_previous_button.set_sensitive(True) else: self.welcome_previous_button.set_sensitive(True)
if index == carousel.get_n_pages()-1: self.connection_next_button.set_label("Connect") if index == carousel.get_n_pages()-1: self.welcome_next_button.set_label("Connect")
else: self.connection_next_button.set_label("Next") else: self.welcome_next_button.set_label("Next")
def connection_previous_button_activate(self, button): def welcome_previous_button_activate(self, button):
self.connection_carousel.scroll_to(self.connection_carousel.get_nth_page(self.connection_carousel.get_position()-1), True) self.welcome_carousel.scroll_to(self.welcome_carousel.get_nth_page(self.welcome_carousel.get_position()-1), True)
def connection_next_button_activate(self, button): def welcome_next_button_activate(self, button):
if button.get_label() == "Next": self.connection_carousel.scroll_to(self.connection_carousel.get_nth_page(self.connection_carousel.get_position()+1), True) if button.get_label() == "Next": self.welcome_carousel.scroll_to(self.welcome_carousel.get_nth_page(self.welcome_carousel.get_position()+1), True)
else: else:
if self.verify_connection():
self.welcome_dialog.force_close() self.welcome_dialog.force_close()
else: if not self.verify_connection():
self.connection_error() self.connection_error()
self.show_toast("error", 1, self.connection_overlay)
def clear_chat(self): def clear_chat(self):
for widget in list(self.chat_container): self.chat_container.remove(widget) for widget in list(self.chat_container): self.chat_container.remove(widget)
@@ -995,38 +997,9 @@ class AlpacaWindow(Adw.ApplicationWindow):
def __init__(self, **kwargs): def __init__(self, **kwargs):
super().__init__(**kwargs) super().__init__(**kwargs)
GtkSource.init() GtkSource.init()
#CSS
css_provider = Gtk.CssProvider()
css_provider.load_from_data(b"""
.chat_row:not(:selected) {
}
.chat_row:not(:selected):hover {
}
.chat_row box.header {
font-size: 14px;
}
.chat_row box {
margin: 0;
}
.chat_row button {
opacity: 0;
transition: opacity .05s;
}
.chat_row:hover button {
opacity: 1;
}
""")
display = Gdk.Display.get_default()
Gtk.StyleContext.add_provider_for_display(
display, css_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION
)
self.set_help_overlay(self.shortcut_window) self.set_help_overlay(self.shortcut_window)
self.get_application().set_accels_for_action("win.show-help-overlay", ['<primary>slash']) self.get_application().set_accels_for_action("win.show-help-overlay", ['<primary>slash'])
self.get_application().create_action('send', lambda *_: self.send_message(self), ['<primary>Return']) self.get_application().create_action('send', lambda *_: self.send_message(self), ['Return'])
self.manage_models_button.connect("clicked", self.manage_models_button_activate) self.manage_models_button.connect("clicked", self.manage_models_button_activate)
self.send_button.connect("clicked", self.send_message) self.send_button.connect("clicked", self.send_message)
self.image_button.connect("clicked", self.open_image) self.image_button.connect("clicked", self.open_image)
@@ -1034,9 +1007,9 @@ class AlpacaWindow(Adw.ApplicationWindow):
self.set_default_widget(self.send_button) self.set_default_widget(self.send_button)
self.model_drop_down.connect("notify", self.verify_if_image_can_be_used) self.model_drop_down.connect("notify", self.verify_if_image_can_be_used)
self.chat_list_box.connect("row-selected", self.chat_changed) self.chat_list_box.connect("row-selected", self.chat_changed)
self.connection_carousel.connect("page-changed", self.connection_carousel_page_changed) self.welcome_carousel.connect("page-changed", self.welcome_carousel_page_changed)
self.connection_previous_button.connect("clicked", self.connection_previous_button_activate) self.welcome_previous_button.connect("clicked", self.welcome_previous_button_activate)
self.connection_next_button.connect("clicked", self.connection_next_button_activate) self.welcome_next_button.connect("clicked", self.welcome_next_button_activate)
self.export_chat_button.connect("clicked", lambda button : self.export_current_chat()) self.export_chat_button.connect("clicked", lambda button : self.export_current_chat())
self.import_chat_button.connect("clicked", lambda button : self.import_chat()) self.import_chat_button.connect("clicked", lambda button : self.import_chat())

View File

@@ -8,6 +8,7 @@
<property name="height-request">700</property> <property name="height-request">700</property>
<property name="default-width">1300</property> <property name="default-width">1300</property>
<property name="default-height">800</property> <property name="default-height">800</property>
<property name="title">Alpaca</property>
<child> <child>
<object class="AdwBreakpoint"> <object class="AdwBreakpoint">
<condition>max-width: 800sp</condition> <condition>max-width: 800sp</condition>
@@ -31,67 +32,39 @@
<object class="AdwOverlaySplitView" id="split_view_overlay"> <object class="AdwOverlaySplitView" id="split_view_overlay">
<property name="show-sidebar" bind-source="show_sidebar_button" bind-property="active" bind-flags="sync-create"/> <property name="show-sidebar" bind-source="show_sidebar_button" bind-property="active" bind-flags="sync-create"/>
<property name="sidebar"> <property name="sidebar">
<object class="GtkBox"> <object class="AdwToolbarView">
<property name="spacing">12</property> <child type="top">
<property name="orientation">1</property> <object class="AdwHeaderBar">
<child> <child type="start">
<object class="GtkBox">
<property name="margin-top">12</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="spacing">12</property>
<child>
<object class="GtkButton" id="add_chat_button"> <object class="GtkButton" id="add_chat_button">
<property name="tooltip-text" translatable="yes">New chat</property> <property name="tooltip-text" translatable="yes">New chat</property>
<property name="icon-name">tab-new-symbolic</property>
<style> <style>
<class name="flat"/> <class name="flat"/>
</style> </style>
<child>
<object class="AdwButtonContent">
<property name="icon-name">tab-new-symbolic</property>
</object> </object>
</child> </child>
</object> <child type="end">
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="no">Alpaca</property>
<property name="hexpand">true</property>
<property name="halign">3</property>
<style>
<class name="title-4"/>
</style>
</object>
</child>
<child>
<object class="GtkButton" id="import_chat_button"> <object class="GtkButton" id="import_chat_button">
<property name="tooltip-text" translatable="yes">Import chat</property> <property name="tooltip-text" translatable="yes">Import chat</property>
<property name="icon-name">document-open-symbolic</property>
<style> <style>
<class name="flat"/> <class name="flat"/>
</style> </style>
<child>
<object class="AdwButtonContent">
<property name="icon-name">document-open-symbolic</property>
</object> </object>
</child> </child>
</object> <child type="end">
</child>
<child>
<object class="GtkButton" id="export_chat_button"> <object class="GtkButton" id="export_chat_button">
<property name="tooltip-text" translatable="yes">Export chat</property> <property name="tooltip-text" translatable="yes">Export chat</property>
<property name="icon-name">folder-download-symbolic</property>
<style> <style>
<class name="flat"/> <class name="flat"/>
</style> </style>
<child>
<object class="AdwButtonContent">
<property name="icon-name">folder-download-symbolic</property>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
</object> <property name="content">
</child>
<child>
<object class="GtkScrolledWindow"> <object class="GtkScrolledWindow">
<property name="vexpand">true</property> <property name="vexpand">true</property>
<property name="hexpand">true</property> <property name="hexpand">true</property>
@@ -104,7 +77,7 @@
</object> </object>
</child> </child>
</object> </object>
</child> </property>
</object> </object>
</property> </property>
<child> <child>
@@ -158,18 +131,20 @@
<property name="content"> <property name="content">
<object class="GtkBox"><!--ACTUAL CONTENT--> <object class="GtkBox"><!--ACTUAL CONTENT-->
<property name="orientation">1</property> <property name="orientation">1</property>
<property name="margin-start">24</property>
<property name="margin-end">24</property>
<property name="margin-bottom">24</property>
<property name="vexpand">true</property> <property name="vexpand">true</property>
<property name="hexpand">true</property> <property name="hexpand">true</property>
<child> <child>
<object class="GtkScrolledWindow" id="chat_window"> <object class="GtkScrolledWindow" id="chat_window">
<property name="margin-bottom">12</property>
<property name="propagate-natural-height">true</property> <property name="propagate-natural-height">true</property>
<property name="kinetic-scrolling">true</property> <property name="kinetic-scrolling">true</property>
<property name="vexpand">true</property> <property name="vexpand">true</property>
<style>
<class name="undershoot-bottom"/>
</style>
<child>
<object class="AdwClamp">
<property name="maximum-size">1000</property>
<property name="tightening-threshold">800</property>
<child> <child>
<object class="GtkBox" id="chat_container"> <object class="GtkBox" id="chat_container">
<property name="orientation">1</property> <property name="orientation">1</property>
@@ -185,32 +160,46 @@
</child> </child>
</object> </object>
</child> </child>
</object>
</child>
<child>
<object class="AdwClamp">
<property name="maximum-size">1000</property>
<property name="tightening-threshold">800</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="orientation">0</property> <property name="orientation">0</property>
<property name="spacing">12</property> <property name="spacing">12</property>
<child>
<object class="GtkScrolledWindow">
<property name="has-frame">true</property>
<style>
<class name="card"/>
<class name="view"/>
</style>
<child>
<object class="GtkTextView" id="message_text_view">
<property name="wrap-mode">word</property>
<property name="margin-top">12</property> <property name="margin-top">12</property>
<property name="margin-bottom">12</property> <property name="margin-bottom">12</property>
<property name="margin-start">12</property> <property name="margin-start">12</property>
<property name="margin-end">12</property> <property name="margin-end">12</property>
<child>
<object class="GtkBox">
<style>
<class name="message-input"/>
</style>
<child>
<object class="GtkScrolledWindow">
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<child>
<object class="GtkTextView" id="message_text_view">
<property name="wrap-mode">word</property>
<property name="top-margin">6</property>
<property name="bottom-margin">6</property>
<property name="margin-end">12</property>
<property name="hexpand">true</property> <property name="hexpand">true</property>
<style> <style>
<class name="view"/> <class name="message-text-view"/>
</style> </style>
</object> </object>
</child> </child>
</object> </object>
</child>
</object>
</child> </child>
<child> <child>
@@ -233,7 +222,7 @@
<child> <child>
<object class="GtkButton" id="image_button"> <object class="GtkButton" id="image_button">
<property name="sensitive">false</property> <property name="sensitive">false</property>
<property name="tooltip-text" translatable="yes">Requires model 'llava' to be selected</property> <property name="tooltip-text" translatable="yes">Only available on selected models</property>
<child> <child>
<object class="AdwButtonContent"> <object class="AdwButtonContent">
<property name="label" translatable="yes">Image</property> <property name="label" translatable="yes">Image</property>
@@ -246,6 +235,9 @@
</child> </child>
</object> </object>
</child> </child>
</object>
</child>
</object><!--END OF CONTENT--> </object><!--END OF CONTENT-->
</property> </property>
@@ -366,8 +358,6 @@
<property name="can-close">false</property> <property name="can-close">false</property>
<property name="width-request">450</property> <property name="width-request">450</property>
<property name="height-request">450</property> <property name="height-request">450</property>
<child>
<object class="AdwToastOverlay" id="connection_overlay">
<child> <child>
<object class="AdwToolbarView"> <object class="AdwToolbarView">
<child type="bottom"> <child type="bottom">
@@ -377,7 +367,7 @@
<property name="margin-end">5</property> <property name="margin-end">5</property>
<property name="margin-bottom">5</property> <property name="margin-bottom">5</property>
<child type="start"> <child type="start">
<object class="GtkButton" id="connection_previous_button"> <object class="GtkButton" id="welcome_previous_button">
<property name="tooltip-text" translatable="yes">Previous</property> <property name="tooltip-text" translatable="yes">Previous</property>
<property name="label">Previous</property> <property name="label">Previous</property>
<property name="sensitive">false</property> <property name="sensitive">false</property>
@@ -388,11 +378,11 @@
</child> </child>
<child type="center"> <child type="center">
<object class="AdwCarouselIndicatorDots"> <object class="AdwCarouselIndicatorDots">
<property name="carousel">connection_carousel</property> <property name="carousel">welcome_carousel</property>
</object> </object>
</child> </child>
<child type="end"> <child type="end">
<object class="GtkButton" id="connection_next_button"> <object class="GtkButton" id="welcome_next_button">
<property name="tooltip-text" translatable="yes">Next</property> <property name="tooltip-text" translatable="yes">Next</property>
<property name="label">Next</property> <property name="label">Next</property>
<style> <style>
@@ -404,7 +394,7 @@
</child> </child>
<child> <child>
<object class="AdwCarousel" id="connection_carousel"> <object class="AdwCarousel" id="welcome_carousel">
<property name="hexpand">true</property> <property name="hexpand">true</property>
<property name="vexpand">true</property> <property name="vexpand">true</property>
<property name="allow-long-swipes">true</property> <property name="allow-long-swipes">true</property>
@@ -448,8 +438,6 @@
</object> </object>
</child> </child>
</object> </object>
</child>
</object>
</template> </template>
<menu id="primary_menu"> <menu id="primary_menu">
@@ -545,7 +533,13 @@
</child> </child>
<child> <child>
<object class="GtkShortcutsShortcut"> <object class="GtkShortcutsShortcut">
<property name="accelerator">&lt;ctrl&gt;Return</property> <property name="accelerator">&lt;shift&gt;Return</property>
<property name="title" translatable="yes">Insert new line</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="accelerator">Return</property>
<property name="title" translatable="yes">Send Message</property> <property name="title" translatable="yes">Send Message</property>
</object> </object>
</child> </child>

View File

@@ -4,5 +4,7 @@ echo "Preparing template..."
xgettext --output=po/alpaca.pot --files-from=po/POTFILES xgettext --output=po/alpaca.pot --files-from=po/POTFILES
echo "Updating Spanish..." echo "Updating Spanish..."
msgmerge -U po/es.po po/alpaca.pot msgmerge -U po/es.po po/alpaca.pot
#echo "Updating Russian..." echo "Updating Russian..."
#msgmerge -U po/ru.po po/alpaca.pot msgmerge -U po/ru.po po/alpaca.pot
echo "Updating Brazilian Portuguese"
msgmerge -U po/pt_BR.po po/alpaca.pot