53 Commits
0.8.1 ... 0.9.0

Author SHA1 Message Date
jeffser
9e19698788 Preparing for 0.9.0 (again) 2024-05-29 00:18:42 -06:00
jeffser
323725df33 Fixed: Can't rename the same chat multiple times 2024-05-29 00:17:41 -06:00
jeffser
7c40420048 Preparing for 0.9.0 2024-05-29 00:10:04 -06:00
jeffser
fac51aefb9 Spanish update 2024-05-29 00:06:08 -06:00
Louis Chauvet-Villaret
8f1fbc511a French translation update (#54)
I see my work in the app and... wasn't so good, so here are some modifications 😄 

After all, I switch back on the original name Alpaca because Alpaga won't be nicely integrated (desktop icon name, title name, and it's just not a good idea)

There is just a small problem, the 'send' button can't be translated. Can you add it ?
2024-05-29 00:02:53 -06:00
jeffser
f0bf112faf Starting model tweaks page 2024-05-29 00:00:56 -06:00
jeffser
b2a15b92cd Fixed error message when pulling a model that's already pulled 2024-05-28 22:59:32 -06:00
jeffser
9b71bbea2e Fixed background color of message entry 2024-05-28 22:57:42 -06:00
jeffser
2645ab3732 Added new shortcut for creating a chat 2024-05-28 22:45:26 -06:00
jeffser
8672c4ac40 fix 2024-05-28 22:42:03 -06:00
jeffser
b8bfd54515 Added chat name wrap 2024-05-28 22:37:06 -06:00
jeffser
a29d245381 Merge branch 'main' of github.com-jeffser:Jeffser/Alpaca 2024-05-28 22:26:48 -06:00
jeffser
f57427e2c4 Fixed: When deleting the last chat it didn't make a new one 2024-05-28 22:26:36 -06:00
Jeffry Samuel
3631f06075 Update FUNDING.yml 2024-05-28 14:14:47 -06:00
Jeffry Samuel
67a66f85da Update issue templates 2024-05-28 11:50:23 -06:00
jeffser
16f620b034 Fixed French connection 2024-05-28 11:30:00 -06:00
jeffser
77b32b4912 Preparing for 0.8.8 2024-05-28 11:28:09 -06:00
jeffser
257197d4d8 Fixed local instance 2024-05-28 11:24:50 -06:00
jeffser
19cc97a1c4 Fixed reconnect remote instance dialog 2024-05-28 10:41:52 -06:00
jeffser
93652cd9f7 Added French translation credits 2024-05-28 10:36:08 -06:00
jeffser
540a0dc915 Turned on French translation 2024-05-28 10:34:19 -06:00
jeffser
54c1b9a96e Merge branch 'main' of github.com-jeffser:Jeffser/Alpaca 2024-05-28 10:29:29 -06:00
jeffser
a9663b45fc Quick fix local instance 2024-05-28 10:29:22 -06:00
Louis Chauvet-Villaret
9bf029f8b3 French translation 🥖 (#52)
## French translation for Alpaca

# Translate guideline :

English	French
to chat	discuter
a chat	une discussion

Translation harmonized except changelogs (because the original changelogs aren't harmonized)
2024-05-28 10:21:36 -06:00
jeffser
a94d1dfc92 Removed prompt to name a new chat 2024-05-27 21:21:27 -06:00
jeffser
e90ef93a04 Preparing for 0.8.7 2024-05-27 21:03:52 -06:00
jeffser
a7ba5da943 Changed summary 2024-05-27 21:01:43 -06:00
jeffser
1e287dde6f Better progressbar for models 2024-05-27 20:47:59 -06:00
jeffser
05461fb03a Adding size to tags and adding progress bar to models that are being pulled 2024-05-27 17:27:05 -06:00
jeffser
aa79368b54 Added french template 2024-05-27 14:58:47 -06:00
Jeffry Samuel
cb4e52f103 French 2024-05-27 14:57:31 -06:00
jeffser
91fc745d2f Merge branch 'main' of github.com-jeffser:Jeffser/Alpaca 2024-05-26 14:49:49 -06:00
jeffser
a719783cce Preparing for 0.8.6 2024-05-26 14:49:42 -06:00
Jeffry Samuel
766636718a Tips 2024-05-26 14:37:17 -06:00
jeffser
59d2430e2f Tweak to notifications 2024-05-26 14:29:45 -06:00
jeffser
074b4dc643 Added 'Feature Models' page on welcome dialog 2024-05-26 14:10:20 -06:00
jeffser
92dd56b0c4 Fixed: content doesn't change when creating a new chat 2024-05-26 12:39:22 -06:00
jeffser
25c414faa3 Fixed scroll when message received 2024-05-26 12:23:13 -06:00
jeffser
dc2df81c75 Changed version number 2024-05-26 01:06:36 -06:00
jeffser
ddc50ce621 Updated translations / new update title 2024-05-26 00:59:32 -06:00
jeffser
701fae92a0 Preparing for 0.8.5 2024-05-26 00:57:03 -06:00
jeffser
f3d22219b4 Quick tweak 2024-05-26 00:45:40 -06:00
jeffser
0027cf7c59 Merge branch 'main' of github.com-jeffser:Jeffser/Alpaca 2024-05-26 00:42:40 -06:00
jeffser
b6c45fc346 Fixed issue: Can't load chats 2024-05-26 00:42:23 -06:00
Jeffry Samuel
e6f2902bd1 Update README.md 2024-05-26 00:36:41 -06:00
jeffser
1190e367bb Tweak to footer of messages 2024-05-26 00:26:39 -06:00
jeffser
d619f55ff2 Quick fixes 2024-05-26 00:01:14 -06:00
jeffser
605d837716 Organized code 2024-05-25 23:13:25 -06:00
jeffser
3aa57c6d2f Better code 2024-05-25 23:10:16 -06:00
jeffser
1cf2f04b06 I can write good code sometimes 2024-05-25 23:03:26 -06:00
Nokse22
780de2b753 Code block and chat improvements (#43)
* moved toast overlay only to the chat

* used adwaita style in the sourceView
added copy button for code with toast notification
added changing source style when theme changed

* removed print
2024-05-25 15:07:51 -06:00
Daimar Stein
e19511469d Brazilian Portuguese translation updated (#42)
Minor updates to the pt_BR translation to match the most recent alpaca.pot
2024-05-25 15:06:31 -06:00
Alex K
bedf1a9bc5 Add files via upload (#41) 2024-05-24 21:53:27 -06:00
27 changed files with 4901 additions and 3114 deletions

1
.github/FUNDING.yml vendored
View File

@@ -1,6 +1,7 @@
# These are supported funding model platforms # These are supported funding model platforms
github: jeffser # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] github: jeffser # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
ko_fi: jeffser
#patreon: # Replace with a single Patreon username #patreon: # Replace with a single Patreon username
#open_collective: # Replace with a single Open Collective username #open_collective: # Replace with a single Open Collective username
#ko_fi: # Replace with a single Ko-fi username #ko_fi: # Replace with a single Ko-fi username

20
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,20 @@
---
name: Bug report
about: Something is wrong
title: ''
labels: bug
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Additional context**
Add any other context about the problem here.

View File

@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View File

@@ -22,7 +22,8 @@ Alpaca is an [Ollama](https://github.com/ollama/ollama) client where you can man
- Delete messages - Delete messages
## Future features! ## Future features!
- Document recognition - Document recognition (Probably only Markdown because it's really easy for AI to read)
- YouTube recognition (Ask questions about a YouTube video using the transcript)
- Edit messages - Edit messages
- Snap Package (maybe) - Snap Package (maybe)
@@ -40,6 +41,20 @@ Login to Ollama instance | Chatting with models | Managing
2. Download the latest flatpak package 2. Download the latest flatpak package
3. Open it 3. Open it
## Ollama session tips
### Migrate Ollama session to Alpaca's integrated session
For now Alpaca doesn't offer a way to do this from the GUI but it's really simple, when you are using Ollama it creates a folder in the home directory called `.ollama`, you just need to move that folder to `~/.var/app/com.jeffser.Alpaca/data/`
### Change the port of the integrated Ollama instance
Go to `~/.var/app/com.jeffser.Alpaca/config/server.json` and change the `"local_port"` value, by default it is `11435`.
### Backup all the chats
The chat data is located in `~/.var/app/com.jeffser.Alpaca/config/chats.json` you can copy that file wherever you want to.
### Force showing the welcome dialog
To do that you just need to delete the file `~/.var/app/com.jeffser.Alpaca/config/server.json`, this won't affect your saved chats or models.
--- ---
## Thanks ## Thanks
@@ -48,6 +63,7 @@ Login to Ollama instance | Chatting with models | Managing
- [Alexkdeveloper](https://github.com/alexkdeveloper) for their help translating the app to Russian - [Alexkdeveloper](https://github.com/alexkdeveloper) for their help translating the app to Russian
- [Imbev](https://github.com/imbev) for their reports and suggestions - [Imbev](https://github.com/imbev) for their reports and suggestions
- [Nokse](https://github.com/Nokse22) for their contributions to the UI - [Nokse](https://github.com/Nokse22) for their contributions to the UI
- [Louis Chauvet-Villaret](https://github.com/loulou64490) for their suggestions and help translating the app to French
## 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

@@ -10,10 +10,11 @@
<p>An Ollama client</p> <p>An Ollama client</p>
<p>Features</p> <p>Features</p>
<ul> <ul>
<li>Built in Ollama instance</li>
<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>Have multiple conversations</li>
<li>Image recognition (Only available with LLaVA Model)</li> <li>Image recognition (Only available with compatible models)</li>
<li>Import and export chats</li> <li>Import and export chats</li>
</ul> </ul>
<p>Disclaimer</p> <p>Disclaimer</p>
@@ -36,6 +37,8 @@
</requires> </requires>
<recommends> <recommends>
<control>keyboard</control> <control>keyboard</control>
<control>pointing</control>
<control>touch</control>
</recommends> </recommends>
<branding> <branding>
<color type="primary" scheme_preference="light">#8cdef5</color> <color type="primary" scheme_preference="light">#8cdef5</color>
@@ -60,6 +63,61 @@
<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.9.0" date="2024-05-29">
<url type="details">https://github.com/Jeffser/Alpaca/releases/tag/0.9.0</url>
<description>
<p>Daily Update</p>
<ul>
<li>Added text ellipsis to chat name so it doesn't change the button width</li>
<li>New shortcut for creating a chat (CTRL+N)</li>
<li>New message entry design</li>
<li>Fixed: Can't rename the same chat multiple times</li>
</ul>
</description>
</release>
<release version="0.8.8" date="2024-05-28">
<url type="details">https://github.com/Jeffser/Alpaca/releases/tag/0.8.8</url>
<description>
<p>The fix</p>
<ul>
<li>Fixed: Ollama instance keeps running on the background even when it is disabled</li>
<li>Fixed: Can't pull models on the integrated instance</li>
</ul>
</description>
</release>
<release version="0.8.7" date="2024-05-27">
<url type="details">https://github.com/Jeffser/Alpaca/releases/tag/0.8.7</url>
<description>
<p>Quick tweaks</p>
<ul>
<li>Added progress bar to models that are being pulled</li>
<li>Added size to tags when pulling a model</li>
<li>General optimizations on the background</li>
</ul>
</description>
</release>
<release version="0.8.6" date="2024-05-26">
<url type="details">https://github.com/Jeffser/Alpaca/releases/tag/0.8.6</url>
<description>
<p>Quick fixes</p>
<ul>
<li>Fixed: Scroll when message is received</li>
<li>Fixed: Content doesn't change when creating a new chat</li>
<li>Added 'Featured Models' page on welcome dialog</li>
</ul>
</description>
</release>
<release version="0.8.5" date="2024-05-26">
<url type="details">https://github.com/Jeffser/Alpaca/releases/tag/0.8.5</url>
<description>
<p>Nice Update</p>
<ul>
<li>UI tweaks (Thanks Nokse22)</li>
<li>General optimizations</li>
<li>Metadata fixes</li>
</ul>
</description>
</release>
<release version="0.8.1" date="2024-05-24"> <release version="0.8.1" date="2024-05-24">
<url type="details">https://github.com/Jeffser/Alpaca/releases/tag/0.8.1</url> <url type="details">https://github.com/Jeffser/Alpaca/releases/tag/0.8.1</url>
<description> <description>

View File

@@ -1,5 +1,5 @@
project('Alpaca', project('Alpaca',
version: '0.8.1', version: '0.9.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,3 +1,4 @@
ru ru
es es
pt_BR pt_BR
fr

File diff suppressed because it is too large Load Diff

710
po/es.po

File diff suppressed because it is too large Load Diff

832
po/es.po~

File diff suppressed because it is too large Load Diff

867
po/fr.po Normal file
View File

@@ -0,0 +1,867 @@
# French translation for Alpaca
#
# Translate guideline :
#
# English French
# to chat discuter
# a chat une discussion
#
#
msgid ""
msgstr ""
"Project-Id-Version: 0.8.7\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-29 00:03-0600\n"
"PO-Revision-Date: 2024-05-28 21:02+0200\n"
"Last-Translator: Louis Chauvet-Villaret <louischauvet0@gmail.com>\n"
"Language-Team: \n"
"Language: fr\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"
#: 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
#, fuzzy
msgid "Chat with local AI models"
msgstr "Discutez avec des modèles d'IA fonctionnant localement grâce à Ollama"
#: data/com.jeffser.Alpaca.metainfo.xml.in:10
msgid "An Ollama client"
msgstr "Un client Ollama"
#: data/com.jeffser.Alpaca.metainfo.xml.in:11
#: data/com.jeffser.Alpaca.metainfo.xml.in:332
msgid "Features"
msgstr "Fonctionnalités"
#: data/com.jeffser.Alpaca.metainfo.xml.in:13
msgid "Built in Ollama instance"
msgstr "Intégrée dans l'instance Ollama"
#: data/com.jeffser.Alpaca.metainfo.xml.in:14
#: data/com.jeffser.Alpaca.metainfo.xml.in:334
msgid "Talk to multiple models in the same conversation"
msgstr "Discutez avec plusieurs modèles dans la même discussion"
#: data/com.jeffser.Alpaca.metainfo.xml.in:15
#: data/com.jeffser.Alpaca.metainfo.xml.in:335
msgid "Pull and delete models from the app"
msgstr "Téléchargez et supprimez des modèles depuis l'application"
#: data/com.jeffser.Alpaca.metainfo.xml.in:16
msgid "Have multiple conversations"
msgstr "Ayez plusieurs discussions"
#: data/com.jeffser.Alpaca.metainfo.xml.in:17
msgid "Image recognition (Only available with compatible models)"
msgstr ""
"Reconnaissance d'image (Uniquement disponible avec les modèles compatibles)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:18
msgid "Import and export chats"
msgstr "Importez et exportez des discussions"
#: data/com.jeffser.Alpaca.metainfo.xml.in:20 src/window.ui:453
msgid "Disclaimer"
msgstr "Avertissement"
#: data/com.jeffser.Alpaca.metainfo.xml.in:21
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 ""
"Ce projet n'est aucunement affilié avec Ollama, et je ne suis aucunement "
"responsable des dommages causés à votre appareil ou vos logiciels en "
"exécutant du code donné par n'importe quel modèle."
#: data/com.jeffser.Alpaca.metainfo.xml.in:24
msgid "Jeffry Samuel Eduarte Rojas"
msgstr "Jeffry Samuel Eduarte Rojas"
#: data/com.jeffser.Alpaca.metainfo.xml.in:50
msgid "A conversation showing code highlight"
msgstr "Une discussion montrant code avec de la coloration syntaxique"
#: data/com.jeffser.Alpaca.metainfo.xml.in:54
msgid "A conversation involving multiple models"
msgstr "Une discussion utilisant plusieurs modèles"
#: data/com.jeffser.Alpaca.metainfo.xml.in:58
msgid "Managing models"
msgstr "Gestion des modèles"
#: data/com.jeffser.Alpaca.metainfo.xml.in:69
msgid "The fix"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:71
msgid ""
"Fixed: Ollama instance keeps running on the background even when it is "
"disabled"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:72
msgid "Fixed: Can't pull models on the integrated instance"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:79
#, fuzzy
msgid "Quick tweaks"
msgstr "Petites corrections"
#: data/com.jeffser.Alpaca.metainfo.xml.in:81
msgid "Added progress bar to models that are being pulled"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:82
msgid "Added size to tags when pulling a model"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:83
#, fuzzy
msgid "General optimizations on the background"
msgstr "Optimisations générales"
#: data/com.jeffser.Alpaca.metainfo.xml.in:90
msgid "Quick fixes"
msgstr "Petites corrections"
#: data/com.jeffser.Alpaca.metainfo.xml.in:92
msgid "Fixed: Scroll when message is received"
msgstr "Correction: Défilement lors de la réception d'un message"
#: data/com.jeffser.Alpaca.metainfo.xml.in:93
msgid "Fixed: Content doesn't change when creating a new chat"
msgstr ""
"Correction: Le contenu ne change pas lors de la création d'un nouveau chat"
#: data/com.jeffser.Alpaca.metainfo.xml.in:94
msgid "Added 'Featured Models' page on welcome dialog"
msgstr ""
"Ajout de la page 'Modèles Suggérés' sur la fenêtre de dialogue d'accueil"
#: data/com.jeffser.Alpaca.metainfo.xml.in:101
msgid "Nice Update"
msgstr "Bonne mise à jour"
#: data/com.jeffser.Alpaca.metainfo.xml.in:103
msgid "UI tweaks (Thanks Nokse22)"
msgstr "Ajustement de l'interface utilisateur (Merci à Nokse22)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:104
msgid "General optimizations"
msgstr "Optimisations générales"
#: data/com.jeffser.Alpaca.metainfo.xml.in:105
msgid "Metadata fixes"
msgstr "Correction des métadonnées"
#: data/com.jeffser.Alpaca.metainfo.xml.in:112
msgid "Quick fix"
msgstr "Petite correction"
#: data/com.jeffser.Alpaca.metainfo.xml.in:114
msgid "Updated Spanish translation"
msgstr "Mise à jour de la traduction Espagnol"
#: data/com.jeffser.Alpaca.metainfo.xml.in:115
msgid "Added compatibility for PNG"
msgstr "Ajout de la compatibilité pour les images PNG"
#: data/com.jeffser.Alpaca.metainfo.xml.in:122
msgid "New Update"
msgstr "Nouvelle mise à jour"
#: data/com.jeffser.Alpaca.metainfo.xml.in:124
msgid "Updated model list"
msgstr "Liste des modèles mise à jour"
#: data/com.jeffser.Alpaca.metainfo.xml.in:125
msgid "Added image recognition to more models"
msgstr "Ajout de la reconnaissance d'image à plus de modèles"
#: data/com.jeffser.Alpaca.metainfo.xml.in:126
msgid "Added Brazilian Portuguese translation (Thanks Daimaar Stein)"
msgstr "Ajout de la traduction en Portugais Brésilien (Merci à Daimaar Stein)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:127
msgid "Refined the general UI (Thanks Nokse22)"
msgstr "Peaufinage de l'interface utilisateur (Merci à Nokse22)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:128
msgid "Added 'delete message' feature"
msgstr "Ajout de l'option 'supprimer le message'"
#: data/com.jeffser.Alpaca.metainfo.xml.in:129
msgid ""
"Added metadata so that software distributors know that the app is compatible "
"with mobile"
msgstr ""
"Ajout de métadonnées pour que les distributeurs de logiciels sachent que "
"l'application est compatible avec les téléphones"
#: data/com.jeffser.Alpaca.metainfo.xml.in:130
msgid ""
"Changed 'send' shortcut to just the return/enter key (to add a new line use "
"shift+return)"
msgstr ""
"Changement du raccourci 'envoyer' en une simple touche retour/entrée (pour "
"ajouter une nouvelle ligne, utiliser shift+retour)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:137
msgid "Bug Fixes"
msgstr "Résolution de bogues"
#: data/com.jeffser.Alpaca.metainfo.xml.in:139
msgid "Fixed: Minor spelling mistake"
msgstr "Corrigé: Petite faute d'orthographe"
#: data/com.jeffser.Alpaca.metainfo.xml.in:140
msgid "Added 'mobile' as a supported form factor"
msgstr "Ajout de la mise en page 'mobile'"
#: data/com.jeffser.Alpaca.metainfo.xml.in:141
msgid "Fixed: 'Connection Error' dialog not working properly"
msgstr ""
"Correction: La boîte de dialogue « Erreur de connexion » ne fonctionnait pas "
"correctement"
#: data/com.jeffser.Alpaca.metainfo.xml.in:142
msgid "Fixed: App might freeze randomly on startup"
msgstr ""
"Correction: L'application pouvait se bloquer aléatoirement au démarrage"
#: data/com.jeffser.Alpaca.metainfo.xml.in:143
msgid "Changed 'chats' label on sidebar for 'Alpaca'"
msgstr "Changement du titre 'chats' de la barre latéral par 'Alpaca'"
#: data/com.jeffser.Alpaca.metainfo.xml.in:150
msgid "Cool Update"
msgstr "Mise à jour sympa"
#: data/com.jeffser.Alpaca.metainfo.xml.in:152
msgid "Better design for chat window"
msgstr "Meilleur design pour de fenêtre de discussion"
#: data/com.jeffser.Alpaca.metainfo.xml.in:153
msgid "Better design for chat sidebar"
msgstr "Meilleur design pour de la barre latérale"
#: data/com.jeffser.Alpaca.metainfo.xml.in:154
msgid "Fixed remote connections"
msgstr "Correction des connexions à distance"
#: data/com.jeffser.Alpaca.metainfo.xml.in:155
msgid "Fixed Ollama restarting in loop"
msgstr "Correction d'Ollama qui redémarrait en boucle"
#: data/com.jeffser.Alpaca.metainfo.xml.in:156
msgid "Other cool backend stuff"
msgstr "Autres trucs sympas en arrière-plan"
#: data/com.jeffser.Alpaca.metainfo.xml.in:163
msgid "Huge Update"
msgstr "Grande mise à jour"
#: data/com.jeffser.Alpaca.metainfo.xml.in:165
msgid "Added Ollama as part of Alpaca, Ollama will run in a sandbox"
msgstr ""
"Ajout d'Ollama comme partie d'Alpaca, Ollama fonctionnera dans un bac à sable"
#: data/com.jeffser.Alpaca.metainfo.xml.in:166
msgid "Added option to connect to remote instances (how it worked before)"
msgstr ""
"Ajout de l'option pour se connecter à des instances distantes (comme cela "
"fonctionnait précédemment)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:167
msgid "Added option to import and export chats"
msgstr "Ajout de l'option pour importer et exporter les discussions"
#: data/com.jeffser.Alpaca.metainfo.xml.in:168
msgid "Added option to run Alpaca with Ollama in the background"
msgstr "Ajout de l'option pour exécuter Alpaca avec Ollama en arrière-plan"
#: data/com.jeffser.Alpaca.metainfo.xml.in:169
msgid "Added preferences dialog"
msgstr "Ajout de la boite de dialogue des paramètres"
#: data/com.jeffser.Alpaca.metainfo.xml.in:170
msgid "Changed the welcome dialog"
msgstr "Changement de la boite de dialogue de bienvenue"
#: data/com.jeffser.Alpaca.metainfo.xml.in:172
#: data/com.jeffser.Alpaca.metainfo.xml.in:189
#: data/com.jeffser.Alpaca.metainfo.xml.in:201
#: data/com.jeffser.Alpaca.metainfo.xml.in:220
#: data/com.jeffser.Alpaca.metainfo.xml.in:241
#: data/com.jeffser.Alpaca.metainfo.xml.in:257
#: data/com.jeffser.Alpaca.metainfo.xml.in:273
#: data/com.jeffser.Alpaca.metainfo.xml.in:287
#: data/com.jeffser.Alpaca.metainfo.xml.in:297
#: data/com.jeffser.Alpaca.metainfo.xml.in:315
#: data/com.jeffser.Alpaca.metainfo.xml.in:337
msgid "Please report any errors to the issues page, thank you."
msgstr "Merci de reporter n'importe quel erreur sur la page des problèmes."
#: data/com.jeffser.Alpaca.metainfo.xml.in:180
msgid "Yet Another Daily Update"
msgstr "Encore une autre mise à jour quotidienne"
#: data/com.jeffser.Alpaca.metainfo.xml.in:182
msgid "Added better UI for 'Manage Models' dialog"
msgstr ""
"Ajout d'une meilleur interface utilisateur pour la boite de dialogue "
"'Gestion des modèles'"
#: data/com.jeffser.Alpaca.metainfo.xml.in:183
msgid "Added better UI for the chat sidebar"
msgstr "Ajout d'une meilleur interface utilisateur pour la barre latérale"
#: data/com.jeffser.Alpaca.metainfo.xml.in:184
msgid ""
"Replaced model description with a button to open Ollama's website for the "
"model"
msgstr ""
"Remplacement de la description du modèle par un bouton pour ouvrir le site "
"web Ollama pour le modèle"
#: data/com.jeffser.Alpaca.metainfo.xml.in:185
msgid "Added myself to the credits as the spanish translator"
msgstr "Ajout de moi-même aux crédits en tant que traducteur espagnol"
#: data/com.jeffser.Alpaca.metainfo.xml.in:186
msgid "Using XDG properly to get config folder"
msgstr "Utilisation de XDG correctement pour avoir un dossier de configuration"
#: data/com.jeffser.Alpaca.metainfo.xml.in:187
msgid "Update for translations"
msgstr "Mise à jour concernant les traductions"
#: data/com.jeffser.Alpaca.metainfo.xml.in:197
msgid "Quick Fix"
msgstr "Petite correction"
#: data/com.jeffser.Alpaca.metainfo.xml.in:199
msgid "The last update had some mistakes in the description of the update"
msgstr ""
"La dernière mise à jour avait quelques erreurs dans la description de la "
"mise à jour"
#: data/com.jeffser.Alpaca.metainfo.xml.in:209
msgid "Another Daily Update"
msgstr "Une autre mise à jour quotidienne"
#: data/com.jeffser.Alpaca.metainfo.xml.in:211
msgid "Added full Spanish translation"
msgstr "Ajout de la traduction complète Espagnol"
#: data/com.jeffser.Alpaca.metainfo.xml.in:212
msgid "Added support for background pulling of multiple models"
msgstr ""
"Ajout du support pour le téléchargement de plusieurs modèles en arrière-plan"
#: data/com.jeffser.Alpaca.metainfo.xml.in:213
msgid "Added interrupt button"
msgstr "Ajout d'un bouton d'interruptions"
#: data/com.jeffser.Alpaca.metainfo.xml.in:214
msgid "Added basic shortcuts"
msgstr "Ajout de raccourcis claviers simples"
#: data/com.jeffser.Alpaca.metainfo.xml.in:215
msgid "Better translation support"
msgstr "Meilleur support des traductions"
#: data/com.jeffser.Alpaca.metainfo.xml.in:216
msgid ""
"User can now leave chat name empty when creating a new one, it will add a "
"placeholder name"
msgstr ""
"L'utilisateur peut maintenant quitter une discussion vide quand il en crée "
"un nouvelle, cela va ajouter un nom de remplacement"
#: data/com.jeffser.Alpaca.metainfo.xml.in:217
msgid "Better scalling for different window sizes"
msgstr "Meilleure mise à l'échelle pour différente taille de fenêtre"
#: data/com.jeffser.Alpaca.metainfo.xml.in:218
msgid "Fixed: Can't close app if first time setup fails"
msgstr ""
"Correction: Impossible de fermer l'application si la première configuration "
"échouait"
#: data/com.jeffser.Alpaca.metainfo.xml.in:228
msgid "Really Big Update"
msgstr "Mise à jour vraiment majeure"
#: data/com.jeffser.Alpaca.metainfo.xml.in:230
msgid "Added multiple chats support!"
msgstr "Ajout du support de plusieurs discussions !"
#: data/com.jeffser.Alpaca.metainfo.xml.in:231
msgid "Added Pango Markup support (bold, list, title, subtitle, monospace)"
msgstr ""
"Ajout du support de Pango Markup (gras, liste, titre, sous-titre, chasse-"
"fixe)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:232
msgid "Added autoscroll if the user is at the bottom of the chat"
msgstr ""
"Ajout d'un défilement automatique si l'utilisateur est en haut d'une "
"conersation"
#: data/com.jeffser.Alpaca.metainfo.xml.in:233
msgid "Added support for multiple tags on a single model"
msgstr "Ajout du support de plusieurs tag sur un seul modèle"
#: data/com.jeffser.Alpaca.metainfo.xml.in:234
msgid "Added better model management dialog"
msgstr "Ajout d'une meilleur boite de dialogue pour la gestion des modèles"
#: data/com.jeffser.Alpaca.metainfo.xml.in:235
msgid "Added loading spinner when sending message"
msgstr "Ajout d'un loader lors de m'envoie d'un message"
#: data/com.jeffser.Alpaca.metainfo.xml.in:236
msgid "Added notifications if app is not active and a model pull finishes"
msgstr ""
"Ajout d'une notification si l'application n'est pas active et que le "
"téléchargement d'un modèle est terminé"
#: data/com.jeffser.Alpaca.metainfo.xml.in:237
msgid "Added new symbolic icon"
msgstr "Ajout de nouveau icônes symboliques"
#: data/com.jeffser.Alpaca.metainfo.xml.in:238
msgid "Added frame to message textview widget"
msgstr "Ajout d'un cadre pour le widget des messages"
#: data/com.jeffser.Alpaca.metainfo.xml.in:239
msgid "Fixed \"code blocks shouldn't be editable\""
msgstr "Correction 'les blocs de codes ne peuvent pas être édité'"
#: data/com.jeffser.Alpaca.metainfo.xml.in:249
#: data/com.jeffser.Alpaca.metainfo.xml.in:306
msgid "Big Update"
msgstr "Mise à jour majeure"
#: data/com.jeffser.Alpaca.metainfo.xml.in:251
msgid "Added code highlighting"
msgstr "Ajout de coloration syntaxique du code"
#: data/com.jeffser.Alpaca.metainfo.xml.in:252
msgid "Added image recognition (llava model)"
msgstr "Ajout de la reconnaissance d'image (modèle llava)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:253
msgid "Added multiline prompt"
msgstr "Ajout des prompts multilignes"
#: data/com.jeffser.Alpaca.metainfo.xml.in:254
msgid "Fixed some small bugs"
msgstr "Correction de petits bogues"
#: data/com.jeffser.Alpaca.metainfo.xml.in:255
msgid "General optimization"
msgstr "Optimisation générale"
#: data/com.jeffser.Alpaca.metainfo.xml.in:265
msgid "Fixes and features"
msgstr "Corrections et fonctionnalités"
#: data/com.jeffser.Alpaca.metainfo.xml.in:267
msgid "Russian translation (thanks github/alexkdeveloper)"
msgstr "Traduction Russe (Merci github/alexkdeveloper)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:268
msgid "Fixed: Cannot close app on first setup"
msgstr ""
"Correction: Impossible de fermer l'application lors de la première "
"installation"
#: data/com.jeffser.Alpaca.metainfo.xml.in:269
msgid "Fixed: Brand colors for Flathub"
msgstr "Correction: Couleurs de la marque Flathub"
#: data/com.jeffser.Alpaca.metainfo.xml.in:270
msgid "Fixed: App description"
msgstr "Correction: Description de l'application"
#: data/com.jeffser.Alpaca.metainfo.xml.in:271
msgid "Fixed: Only show 'save changes dialog' when you actually change the url"
msgstr ""
"Correction: N'afficher la boîte de dialogue « enregistrer les "
"modifications » que lorsque l'url est réellement modifiée"
#: data/com.jeffser.Alpaca.metainfo.xml.in:281
msgid "0.2.2 Bug fixes"
msgstr "0.2.2 Corrections de bug"
#: data/com.jeffser.Alpaca.metainfo.xml.in:283
msgid "Toast messages appearing behind dialogs"
msgstr ""
"Les messages de notifications apparaissaient derrière les boites de dialogue"
#: data/com.jeffser.Alpaca.metainfo.xml.in:284
msgid "Local model list not updating when changing servers"
msgstr ""
"La liste des modèles locaux n'était pas mise à jour lors d'un changement de "
"serveur"
#: data/com.jeffser.Alpaca.metainfo.xml.in:285
msgid "Closing the setup dialog closes the whole app"
msgstr ""
"La fermeture de la boite de dialogue des paramètres fermait toute "
"l'application"
#: data/com.jeffser.Alpaca.metainfo.xml.in:295
msgid "0.2.1 Data saving fix"
msgstr "0.2.1 Correction de la sauvegarde des données"
#: data/com.jeffser.Alpaca.metainfo.xml.in:296
msgid ""
"The app didn't save the config files and chat history to the right "
"directory, this is now fixed"
msgstr ""
"L'application ne sauvegardais pas le fichier de configuration et "
"l'historique de discussion dans le bon dossier, c'est maintenant corrigé"
#: data/com.jeffser.Alpaca.metainfo.xml.in:305
msgid "0.2.0"
msgstr "0.2.0"
#: data/com.jeffser.Alpaca.metainfo.xml.in:307
msgid "New Features"
msgstr "Nouvelles fonctionnalités"
#: data/com.jeffser.Alpaca.metainfo.xml.in:309
msgid "Restore chat after closing the app"
msgstr "Restaurer la discussion après avoir fermé l'application"
#: data/com.jeffser.Alpaca.metainfo.xml.in:310
msgid "A button to clear the chat"
msgstr "Un bouton pour effacer le chat"
#: data/com.jeffser.Alpaca.metainfo.xml.in:311
msgid "Fixed multiple bugs involving how messages are shown"
msgstr "Correction de plusieurs bogues concernant l'affichage des messages"
#: data/com.jeffser.Alpaca.metainfo.xml.in:312
msgid "Added welcome dialog"
msgstr "Ajout de la boite de dialogue de bienvenue"
#: data/com.jeffser.Alpaca.metainfo.xml.in:313
msgid "More stability"
msgstr "Plus de stabilité"
#: data/com.jeffser.Alpaca.metainfo.xml.in:323
msgid "0.1.2 Quick fixes"
msgstr "0.1.2 Petites corrections"
#: data/com.jeffser.Alpaca.metainfo.xml.in:324
msgid ""
"This release fixes some metadata needed to have a proper Flatpak application"
msgstr ""
"Cette version corrige quelques métadonnées pour avoir une application "
"Flatpak correct"
#: data/com.jeffser.Alpaca.metainfo.xml.in:330
msgid "0.1.1 Stable Release"
msgstr "0.1.1 Version stable"
#: data/com.jeffser.Alpaca.metainfo.xml.in:331
msgid "This is the first public version of Alpaca"
msgstr "Ceci est la première version publique d'Alpaca"
#: src/window.py:53 src/window.py:655 src/window.py:657 src/window.py:718
#: src/window.ui:623
msgid "New Chat"
msgstr "Nouvelle discussion"
#: src/window.py:96
msgid "An error occurred"
msgstr "Une erreur est survenue"
#: src/window.py:97
msgid "Failed to connect to server"
msgstr "Erreur de connexion au serveur"
#: src/window.py:98
msgid "Could not list local models"
msgstr "Impossible de lister les modèles locaux"
#: src/window.py:99
msgid "Could not delete model"
msgstr "Impossible de supprimer le modèle"
#: src/window.py:100
msgid "Could not pull model"
msgstr "Impossible de télécharger le modèle"
#: src/window.py:101
msgid "Cannot open image"
msgstr "Impossible d'ouvrir l'image"
#: src/window.py:102
msgid "Cannot delete chat because it's the only one left"
msgstr ""
"Vous ne pouvez pas supprimer la discussion car c'est la seule qui reste"
#: src/window.py:103
msgid "There was an error with the local Ollama instance, so it has been reset"
msgstr ""
"Une erreur est survenue avec l'instance local d'Ollama, elle a donc été "
"reinitialisée"
#: src/window.py:106
msgid "Please select a model before chatting"
msgstr "Merci de sélectionner un modèle avant de discuter"
#: src/window.py:107
msgid "Chat cannot be cleared while receiving a message"
msgstr ""
"La discussion ne peut pas être supprimé pendant la réception d'un message"
#: src/window.py:108
msgid "That tag is already being pulled"
msgstr "Ce tag est déjà en train d'être téléchargé"
#: src/window.py:109
msgid "That tag has been pulled already"
msgstr "Ce tag à déjà été télécharger"
#: src/window.py:110
msgid "Code copied to the clipboard"
msgstr "Code copié dans le presse-papier"
#: src/window.py:113
msgid "Model deleted successfully"
msgstr "Modèle supprimé avec succès"
#: src/window.py:114
msgid "Model pulled successfully"
msgstr "Modèle téléchargé avec succès"
#: src/window.py:115
msgid "Chat exported successfully"
msgstr "Discussion exportée avec succès"
#: src/window.py:116
msgid "Chat imported successfully"
msgstr "Discussion importée avec succès"
#: src/window.py:128
msgid "Upload image"
msgstr "Charger une image"
#: src/window.py:132 src/window.ui:189
msgid "Only available on selected models"
msgstr "Seulement disponible sur les modèles sélectionnés"
#: src/window.py:196
msgid "Close"
msgstr "Fermer"
#: src/window.py:197 src/window.ui:406
msgid "Next"
msgstr "Suivant"
#: src/window.py:244
msgid "Pulling in the background..."
msgstr "Téléchargement en arrière-plan..."
#: src/window.py:562
msgid "Task Complete"
msgstr "Tache terminée"
#: src/window.py:562
msgid "Model '{}' pulled successfully."
msgstr "Modèle '{}' téléchargé avec succès."
#: src/window.py:567
msgid "Pull Model Error"
msgstr "Erreur de téléchargement du modèle"
#: src/window.py:567
msgid "Failed to pull model '{}' due to network error."
msgstr ""
"Échec du téléchargement du modèle '{}' à cause d'une erreur de connexion."
#: src/window.ui:39
msgid "New chat"
msgstr "Nouvelle discussion"
#: src/window.ui:48
msgid "Import chat"
msgstr "Importer une discussion"
#: src/window.ui:57
msgid "Export chat"
msgstr "Exporter la discussion"
#: src/window.ui:90
msgid "Toggle Sidebar"
msgstr "Basculer la barre latérale"
#: src/window.ui:113 src/window.ui:321
msgid "Manage models"
msgstr "Gestion des modèles"
#: src/window.ui:127
msgid "Menu"
msgstr "Menu"
#: src/window.ui:259 src/window.ui:559 src/window.ui:617
msgid "Preferences"
msgstr "Paramètres"
#: src/window.ui:262 src/window.ui:601
msgid "General"
msgstr "Général"
#: src/window.ui:266
msgid "Remote Connection"
msgstr "Connexion à distance"
#: src/window.ui:267
msgid "Manage a remote connection to Ollama"
msgstr "Gérer une connexion à distance d'Ollama"
#: src/window.ui:270
msgid "Use remote connection"
msgstr "Utiliser une connexion à distance"
#: src/window.ui:276
msgid "URL of remote instance"
msgstr "URL de l'instance distante"
#: src/window.ui:284
msgid "Behavior"
msgstr "Comportement"
#: src/window.ui:285
msgid "Manage Alpaca's Behavior"
msgstr "Gérer le comportement d'Alpaca"
#: src/window.ui:288
msgid "Run in background"
msgstr "Exécution en arrière-plan"
#: src/window.ui:390
msgid "Previous"
msgstr "Précédent"
#: src/window.ui:433
msgid "Welcome to Alpaca"
msgstr "Bienvenue sur Alpaca"
#: src/window.ui:434
msgid "Powered by Ollama"
msgstr "Fonctionne grâce à Ollama"
#: src/window.ui:437
msgid "Ollama Website"
msgstr "Site web d'Ollama"
#: src/window.ui:454
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 et ses développeurs ne sont pas responsables des dommages causés à "
"votre appareil ou vos logiciels lors de l'exécution de code généré par les "
"modèles d'IA. Merci de faire attention et de relire attentivement le code "
"avant de l'exécuter."
#: src/window.ui:465
msgid "Featured Models"
msgstr "Modèles recommandés"
#: src/window.ui:466
msgid ""
"Alpaca works locally on your device, to start chatting you'll need an AI "
"model, you can either pull models from this list or the 'Manage Models' menu "
"later."
msgstr ""
"Alpaca fonctionne localement sur votre ordinateur, pour commencer à discuter "
"vous aurez besoin d'un modèle d'IA, vous pouvez télécharger un modèle soit "
"depuis cette liste soit depuis le menu 'Gérer les modèles' plus tard."
#: src/window.ui:476
msgid "Built by Meta"
msgstr "Développé par Meta"
#: src/window.ui:493
msgid "Built by Google DeepMind"
msgstr "Développé par Google DeepMind"
#: src/window.ui:510
msgid "Built by Microsoft"
msgstr "Développé par Microsoft"
#: src/window.ui:527
msgid "Multimodal AI with image recognition"
msgstr "IA multimodale avec reconnaissance d'image"
#: src/window.ui:555
msgid "Clear Chat"
msgstr "Supprimer la discussion"
#: src/window.ui:563
msgid "Keyboard Shortcuts"
msgstr "Raccourcis claviers"
#: src/window.ui:567
msgid "About Alpaca"
msgstr "À propos d'Alpaca"
#: src/window.ui:575
msgid "Remove"
msgstr "Supprimer"
#: src/window.ui:605
msgid "Close application"
msgstr "Fermer l'application"
#: src/window.ui:611
msgid "Clear chat"
msgstr "Supprimer la discussion"
#: src/window.ui:629
msgid "Show shortcuts window"
msgstr "Voir les raccourcis clavier"
#: src/window.ui:636
msgid "Editor"
msgstr "Éditeur"
#: src/window.ui:640
msgid "Copy"
msgstr "Copier"
#: src/window.ui:646
msgid "Paste"
msgstr "Coller"
#: src/window.ui:652
msgid "Insert new line"
msgstr "Ajouter un ligne"
#: src/window.ui:658
msgid "Send Message"
msgstr "Envoyer le message"
#~ msgid "Send"
#~ msgstr "Envoyer"
#~ msgid "Image"
#~ msgstr "Image"

835
po/fr.po~ Normal file
View File

@@ -0,0 +1,835 @@
# French translation for Alpaca
#
# Translate guideline :
#
# English French
# to chat discuter
# a chat une discussion
#
#
msgid ""
msgstr ""
"Project-Id-Version: 0.8.7\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-27 14:57-0600\n"
"PO-Revision-Date: 2024-05-28 21:02+0200\n"
"Last-Translator: Louis Chauvet-Villaret <louischauvet0@gmail.com>\n"
"Language-Team: \n"
"Language: fr\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"
#: 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 local AI models powered by Ollama"
msgstr "Discutez avec des modèles d'IA fonctionnant localement grâce à Ollama"
#: data/com.jeffser.Alpaca.metainfo.xml.in:10
msgid "An Ollama client"
msgstr "Un client Ollama"
#: data/com.jeffser.Alpaca.metainfo.xml.in:11
#: data/com.jeffser.Alpaca.metainfo.xml.in:311
msgid "Features"
msgstr "Fonctionnalités"
#: data/com.jeffser.Alpaca.metainfo.xml.in:13
msgid "Built in Ollama instance"
msgstr "Intégrée dans l'instance Ollama"
#: data/com.jeffser.Alpaca.metainfo.xml.in:14
#: data/com.jeffser.Alpaca.metainfo.xml.in:313
msgid "Talk to multiple models in the same conversation"
msgstr "Discutez avec plusieurs modèles dans la même discussion"
#: data/com.jeffser.Alpaca.metainfo.xml.in:15
#: data/com.jeffser.Alpaca.metainfo.xml.in:314
msgid "Pull and delete models from the app"
msgstr "Téléchargez et supprimez des modèles depuis l'application"
#: data/com.jeffser.Alpaca.metainfo.xml.in:16
msgid "Have multiple conversations"
msgstr "Ayez plusieurs discussions"
#: data/com.jeffser.Alpaca.metainfo.xml.in:17
msgid "Image recognition (Only available with compatible models)"
msgstr ""
"Reconnaissance d'image (Uniquement disponible avec les modèles compatibles)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:18
msgid "Import and export chats"
msgstr "Importez et exportez des discussions"
#: data/com.jeffser.Alpaca.metainfo.xml.in:20 src/window.ui:440
msgid "Disclaimer"
msgstr "Avertissement"
#: data/com.jeffser.Alpaca.metainfo.xml.in:21
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 ""
"Ce projet n'est aucunement affilié avec Ollama, et je ne suis aucunement "
"responsable des dommages causés à votre appareil ou vos logiciels en "
"exécutant du code donné par n'importe quel modèle."
#: data/com.jeffser.Alpaca.metainfo.xml.in:24
msgid "Jeffry Samuel Eduarte Rojas"
msgstr "Jeffry Samuel Eduarte Rojas"
#: data/com.jeffser.Alpaca.metainfo.xml.in:50
msgid "A conversation showing code highlight"
msgstr "Une discussion montrant code avec de la coloration syntaxique"
#: data/com.jeffser.Alpaca.metainfo.xml.in:54
msgid "A conversation involving multiple models"
msgstr "Une discussion utilisant plusieurs modèles"
#: data/com.jeffser.Alpaca.metainfo.xml.in:58
msgid "Managing models"
msgstr "Gestion des modèles"
#: data/com.jeffser.Alpaca.metainfo.xml.in:69
msgid "Quick fixes"
msgstr "Petites corrections"
#: data/com.jeffser.Alpaca.metainfo.xml.in:71
msgid "Fixed: Scroll when message is received"
msgstr "Correction: Défilement lors de la réception d'un message"
#: data/com.jeffser.Alpaca.metainfo.xml.in:72
msgid "Fixed: Content doesn't change when creating a new chat"
msgstr ""
"Correction: Le contenu ne change pas lors de la création d'un nouveau chat"
#: data/com.jeffser.Alpaca.metainfo.xml.in:73
msgid "Added 'Featured Models' page on welcome dialog"
msgstr ""
"Ajout de la page 'Modèles Suggérés' sur la fenêtre de dialogue d'accueil"
#: data/com.jeffser.Alpaca.metainfo.xml.in:80
msgid "Nice Update"
msgstr "Bonne mise à jour"
#: data/com.jeffser.Alpaca.metainfo.xml.in:82
msgid "UI tweaks (Thanks Nokse22)"
msgstr "Ajustement de l'interface utilisateur (Merci à Nokse22)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:83
msgid "General optimizations"
msgstr "Optimisations générales"
#: data/com.jeffser.Alpaca.metainfo.xml.in:84
msgid "Metadata fixes"
msgstr "Correction des métadonnées"
#: data/com.jeffser.Alpaca.metainfo.xml.in:91
msgid "Quick fix"
msgstr "Petite correction"
#: data/com.jeffser.Alpaca.metainfo.xml.in:93
msgid "Updated Spanish translation"
msgstr "Mise à jour de la traduction Espagnol"
#: data/com.jeffser.Alpaca.metainfo.xml.in:94
msgid "Added compatibility for PNG"
msgstr "Ajout de la compatibilité pour les images PNG"
#: data/com.jeffser.Alpaca.metainfo.xml.in:101
msgid "New Update"
msgstr "Nouvelle mise à jour"
#: data/com.jeffser.Alpaca.metainfo.xml.in:103
msgid "Updated model list"
msgstr "Liste des modèles mise à jour"
#: data/com.jeffser.Alpaca.metainfo.xml.in:104
msgid "Added image recognition to more models"
msgstr "Ajout de la reconnaissance d'image à plus de modèles"
#: data/com.jeffser.Alpaca.metainfo.xml.in:105
msgid "Added Brazilian Portuguese translation (Thanks Daimaar Stein)"
msgstr "Ajout de la traduction en Portugais Brésilien (Merci à Daimaar Stein)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:106
msgid "Refined the general UI (Thanks Nokse22)"
msgstr "Peaufinage de l'interface utilisateur (Merci à Nokse22)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:107
msgid "Added 'delete message' feature"
msgstr "Ajout de l'option 'supprimer le message'"
#: data/com.jeffser.Alpaca.metainfo.xml.in:108
msgid ""
"Added metadata so that software distributors know that the app is compatible "
"with mobile"
msgstr ""
"Ajout de métadonnées pour que les distributeurs de logiciels sachent que "
"l'application est compatible avec les téléphones"
#: data/com.jeffser.Alpaca.metainfo.xml.in:109
msgid ""
"Changed 'send' shortcut to just the return/enter key (to add a new line use "
"shift+return)"
msgstr ""
"Changement du raccourci 'envoyer' en une simple touche retour/entrée (pour "
"ajouter une nouvelle ligne, utiliser shift+retour)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:116
msgid "Bug Fixes"
msgstr "Résolution de bogues"
#: data/com.jeffser.Alpaca.metainfo.xml.in:118
msgid "Fixed: Minor spelling mistake"
msgstr "Corrigé: Petite faute d'orthographe"
#: data/com.jeffser.Alpaca.metainfo.xml.in:119
msgid "Added 'mobile' as a supported form factor"
msgstr "Ajout de la mise en page 'mobile'"
#: data/com.jeffser.Alpaca.metainfo.xml.in:120
msgid "Fixed: 'Connection Error' dialog not working properly"
msgstr ""
"Correction: La boîte de dialogue « Erreur de connexion » ne fonctionnait pas "
"correctement"
#: data/com.jeffser.Alpaca.metainfo.xml.in:121
msgid "Fixed: App might freeze randomly on startup"
msgstr ""
"Correction: L'application pouvait se bloquer aléatoirement au démarrage"
#: data/com.jeffser.Alpaca.metainfo.xml.in:122
msgid "Changed 'chats' label on sidebar for 'Alpaca'"
msgstr "Changement du titre 'chats' de la barre latéral par 'Alpaca'"
#: data/com.jeffser.Alpaca.metainfo.xml.in:129
msgid "Cool Update"
msgstr "Mise à jour sympa"
#: data/com.jeffser.Alpaca.metainfo.xml.in:131
msgid "Better design for chat window"
msgstr "Meilleur design pour de fenêtre de discussion"
#: data/com.jeffser.Alpaca.metainfo.xml.in:132
msgid "Better design for chat sidebar"
msgstr "Meilleur design pour de la barre latérale"
#: data/com.jeffser.Alpaca.metainfo.xml.in:133
msgid "Fixed remote connections"
msgstr "Correction des connexions à distance"
#: data/com.jeffser.Alpaca.metainfo.xml.in:134
msgid "Fixed Ollama restarting in loop"
msgstr "Correction d'Ollama qui redémarrait en boucle"
#: data/com.jeffser.Alpaca.metainfo.xml.in:135
msgid "Other cool backend stuff"
msgstr "Autres trucs sympas en arrière-plan"
#: data/com.jeffser.Alpaca.metainfo.xml.in:142
msgid "Huge Update"
msgstr "Grande mise à jour"
#: data/com.jeffser.Alpaca.metainfo.xml.in:144
msgid "Added Ollama as part of Alpaca, Ollama will run in a sandbox"
msgstr ""
"Ajout d'Ollama comme partie d'Alpaca, Ollama fonctionnera dans un bac à sable"
#: data/com.jeffser.Alpaca.metainfo.xml.in:145
msgid "Added option to connect to remote instances (how it worked before)"
msgstr ""
"Ajout de l'option pour se connecter à des instances distantes (comme cela "
"fonctionnait précédemment)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:146
msgid "Added option to import and export chats"
msgstr "Ajout de l'option pour importer et exporter les discussions"
#: data/com.jeffser.Alpaca.metainfo.xml.in:147
msgid "Added option to run Alpaca with Ollama in the background"
msgstr "Ajout de l'option pour exécuter Alpaca avec Ollama en arrière-plan"
#: data/com.jeffser.Alpaca.metainfo.xml.in:148
msgid "Added preferences dialog"
msgstr "Ajout de la boite de dialogue des paramètres"
#: data/com.jeffser.Alpaca.metainfo.xml.in:149
msgid "Changed the welcome dialog"
msgstr "Changement de la boite de dialogue de bienvenue"
#: data/com.jeffser.Alpaca.metainfo.xml.in:151
#: data/com.jeffser.Alpaca.metainfo.xml.in:168
#: data/com.jeffser.Alpaca.metainfo.xml.in:180
#: data/com.jeffser.Alpaca.metainfo.xml.in:199
#: data/com.jeffser.Alpaca.metainfo.xml.in:220
#: data/com.jeffser.Alpaca.metainfo.xml.in:236
#: data/com.jeffser.Alpaca.metainfo.xml.in:252
#: data/com.jeffser.Alpaca.metainfo.xml.in:266
#: data/com.jeffser.Alpaca.metainfo.xml.in:276
#: data/com.jeffser.Alpaca.metainfo.xml.in:294
#: data/com.jeffser.Alpaca.metainfo.xml.in:316
msgid "Please report any errors to the issues page, thank you."
msgstr "Merci de reporter n'importe quel erreur sur la page des problèmes."
#: data/com.jeffser.Alpaca.metainfo.xml.in:159
msgid "Yet Another Daily Update"
msgstr "Encore une autre mise à jour quotidienne"
#: data/com.jeffser.Alpaca.metainfo.xml.in:161
msgid "Added better UI for 'Manage Models' dialog"
msgstr ""
"Ajout d'une meilleur interface utilisateur pour la boite de dialogue "
"'Gestion des modèles'"
#: data/com.jeffser.Alpaca.metainfo.xml.in:162
msgid "Added better UI for the chat sidebar"
msgstr "Ajout d'une meilleur interface utilisateur pour la barre latérale"
#: data/com.jeffser.Alpaca.metainfo.xml.in:163
msgid ""
"Replaced model description with a button to open Ollama's website for the "
"model"
msgstr ""
"Remplacement de la description du modèle par un bouton pour ouvrir le site "
"web Ollama pour le modèle"
#: data/com.jeffser.Alpaca.metainfo.xml.in:164
msgid "Added myself to the credits as the spanish translator"
msgstr "Ajout de moi-même aux crédits en tant que traducteur espagnol"
#: data/com.jeffser.Alpaca.metainfo.xml.in:165
msgid "Using XDG properly to get config folder"
msgstr "Utilisation de XDG correctement pour avoir un dossier de configuration"
#: data/com.jeffser.Alpaca.metainfo.xml.in:166
msgid "Update for translations"
msgstr "Mise à jour concernant les traductions"
#: data/com.jeffser.Alpaca.metainfo.xml.in:176
msgid "Quick Fix"
msgstr "Petite correction"
#: data/com.jeffser.Alpaca.metainfo.xml.in:178
msgid "The last update had some mistakes in the description of the update"
msgstr ""
"La dernière mise à jour avait quelques erreurs dans la description de la "
"mise à jour"
#: data/com.jeffser.Alpaca.metainfo.xml.in:188
msgid "Another Daily Update"
msgstr "Une autre mise à jour quotidienne"
#: data/com.jeffser.Alpaca.metainfo.xml.in:190
msgid "Added full Spanish translation"
msgstr "Ajout de la traduction complète Espagnol"
#: data/com.jeffser.Alpaca.metainfo.xml.in:191
msgid "Added support for background pulling of multiple models"
msgstr ""
"Ajout du support pour le téléchargement de plusieurs modèles en arrière-plan"
#: data/com.jeffser.Alpaca.metainfo.xml.in:192
msgid "Added interrupt button"
msgstr "Ajout d'un bouton d'interruptions"
#: data/com.jeffser.Alpaca.metainfo.xml.in:193
msgid "Added basic shortcuts"
msgstr "Ajout de raccourcis claviers simples"
#: data/com.jeffser.Alpaca.metainfo.xml.in:194
msgid "Better translation support"
msgstr "Meilleur support des traductions"
#: data/com.jeffser.Alpaca.metainfo.xml.in:195
msgid ""
"User can now leave chat name empty when creating a new one, it will add a "
"placeholder name"
msgstr ""
"L'utilisateur peut maintenant quitter une discussion vide quand il en crée "
"un nouvelle, cela va ajouter un nom de remplacement"
#: data/com.jeffser.Alpaca.metainfo.xml.in:196
msgid "Better scalling for different window sizes"
msgstr "Meilleure mise à l'échelle pour différente taille de fenêtre"
#: data/com.jeffser.Alpaca.metainfo.xml.in:197
msgid "Fixed: Can't close app if first time setup fails"
msgstr ""
"Correction: Impossible de fermer l'application si la première configuration "
"échouait"
#: data/com.jeffser.Alpaca.metainfo.xml.in:207
msgid "Really Big Update"
msgstr "Mise à jour vraiment majeure"
#: data/com.jeffser.Alpaca.metainfo.xml.in:209
msgid "Added multiple chats support!"
msgstr "Ajout du support de plusieurs discussions !"
#: data/com.jeffser.Alpaca.metainfo.xml.in:210
msgid "Added Pango Markup support (bold, list, title, subtitle, monospace)"
msgstr ""
"Ajout du support de Pango Markup (gras, liste, titre, sous-titre, chasse-"
"fixe)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:211
msgid "Added autoscroll if the user is at the bottom of the chat"
msgstr ""
"Ajout d'un défilement automatique si l'utilisateur est en haut d'une "
"conersation"
#: data/com.jeffser.Alpaca.metainfo.xml.in:212
msgid "Added support for multiple tags on a single model"
msgstr "Ajout du support de plusieurs tag sur un seul modèle"
#: data/com.jeffser.Alpaca.metainfo.xml.in:213
msgid "Added better model management dialog"
msgstr "Ajout d'une meilleur boite de dialogue pour la gestion des modèles"
#: data/com.jeffser.Alpaca.metainfo.xml.in:214
msgid "Added loading spinner when sending message"
msgstr "Ajout d'un loader lors de m'envoie d'un message"
#: data/com.jeffser.Alpaca.metainfo.xml.in:215
msgid "Added notifications if app is not active and a model pull finishes"
msgstr ""
"Ajout d'une notification si l'application n'est pas active et que le "
"téléchargement d'un modèle est terminé"
#: data/com.jeffser.Alpaca.metainfo.xml.in:216
msgid "Added new symbolic icon"
msgstr "Ajout de nouveau icônes symboliques"
#: data/com.jeffser.Alpaca.metainfo.xml.in:217
msgid "Added frame to message textview widget"
msgstr "Ajout d'un cadre pour le widget des messages"
#: data/com.jeffser.Alpaca.metainfo.xml.in:218
msgid "Fixed \"code blocks shouldn't be editable\""
msgstr "Correction 'les blocs de codes ne peuvent pas être édité'"
#: data/com.jeffser.Alpaca.metainfo.xml.in:228
#: data/com.jeffser.Alpaca.metainfo.xml.in:285
msgid "Big Update"
msgstr "Mise à jour majeure"
#: data/com.jeffser.Alpaca.metainfo.xml.in:230
msgid "Added code highlighting"
msgstr "Ajout de coloration syntaxique du code"
#: data/com.jeffser.Alpaca.metainfo.xml.in:231
msgid "Added image recognition (llava model)"
msgstr "Ajout de la reconnaissance d'image (modèle llava)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:232
msgid "Added multiline prompt"
msgstr "Ajout des prompts multilignes"
#: data/com.jeffser.Alpaca.metainfo.xml.in:233
msgid "Fixed some small bugs"
msgstr "Correction de petits bogues"
#: data/com.jeffser.Alpaca.metainfo.xml.in:234
msgid "General optimization"
msgstr "Optimisation générale"
#: data/com.jeffser.Alpaca.metainfo.xml.in:244
msgid "Fixes and features"
msgstr "Corrections et fonctionnalités"
#: data/com.jeffser.Alpaca.metainfo.xml.in:246
msgid "Russian translation (thanks github/alexkdeveloper)"
msgstr "Traduction Russe (Merci github/alexkdeveloper)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:247
msgid "Fixed: Cannot close app on first setup"
msgstr ""
"Correction: Impossible de fermer l'application lors de la première "
"installation"
#: data/com.jeffser.Alpaca.metainfo.xml.in:248
msgid "Fixed: Brand colors for Flathub"
msgstr "Correction: Couleurs de la marque Flathub"
#: data/com.jeffser.Alpaca.metainfo.xml.in:249
msgid "Fixed: App description"
msgstr "Correction: Description de l'application"
#: data/com.jeffser.Alpaca.metainfo.xml.in:250
msgid "Fixed: Only show 'save changes dialog' when you actually change the url"
msgstr ""
"Correction: N'afficher la boîte de dialogue « enregistrer les "
"modifications » que lorsque l'url est réellement modifiée"
#: data/com.jeffser.Alpaca.metainfo.xml.in:260
msgid "0.2.2 Bug fixes"
msgstr "0.2.2 Corrections de bug"
#: data/com.jeffser.Alpaca.metainfo.xml.in:262
msgid "Toast messages appearing behind dialogs"
msgstr ""
"Les messages de notifications apparaissaient derrière les boites de dialogue"
#: data/com.jeffser.Alpaca.metainfo.xml.in:263
msgid "Local model list not updating when changing servers"
msgstr ""
"La liste des modèles locaux n'était pas mise à jour lors d'un changement de "
"serveur"
#: data/com.jeffser.Alpaca.metainfo.xml.in:264
msgid "Closing the setup dialog closes the whole app"
msgstr ""
"La fermeture de la boite de dialogue des paramètres fermait toute "
"l'application"
#: data/com.jeffser.Alpaca.metainfo.xml.in:274
msgid "0.2.1 Data saving fix"
msgstr "0.2.1 Correction de la sauvegarde des données"
#: data/com.jeffser.Alpaca.metainfo.xml.in:275
msgid ""
"The app didn't save the config files and chat history to the right "
"directory, this is now fixed"
msgstr ""
"L'application ne sauvegardais pas le fichier de configuration et "
"l'historique de discussion dans le bon dossier, c'est maintenant corrigé"
#: data/com.jeffser.Alpaca.metainfo.xml.in:284
msgid "0.2.0"
msgstr "0.2.0"
#: data/com.jeffser.Alpaca.metainfo.xml.in:286
msgid "New Features"
msgstr "Nouvelles fonctionnalités"
#: data/com.jeffser.Alpaca.metainfo.xml.in:288
msgid "Restore chat after closing the app"
msgstr "Restaurer la discussion après avoir fermé l'application"
#: data/com.jeffser.Alpaca.metainfo.xml.in:289
msgid "A button to clear the chat"
msgstr "Un bouton pour effacer le chat"
#: data/com.jeffser.Alpaca.metainfo.xml.in:290
msgid "Fixed multiple bugs involving how messages are shown"
msgstr "Correction de plusieurs bogues concernant l'affichage des messages"
#: data/com.jeffser.Alpaca.metainfo.xml.in:291
msgid "Added welcome dialog"
msgstr "Ajout de la boite de dialogue de bienvenue"
#: data/com.jeffser.Alpaca.metainfo.xml.in:292
msgid "More stability"
msgstr "Plus de stabilité"
#: data/com.jeffser.Alpaca.metainfo.xml.in:302
msgid "0.1.2 Quick fixes"
msgstr "0.1.2 Petites corrections"
#: data/com.jeffser.Alpaca.metainfo.xml.in:303
msgid ""
"This release fixes some metadata needed to have a proper Flatpak application"
msgstr ""
"Cette version corrige quelques métadonnées pour avoir une application "
"Flatpak correct"
#: data/com.jeffser.Alpaca.metainfo.xml.in:309
msgid "0.1.1 Stable Release"
msgstr "0.1.1 Version stable"
#: data/com.jeffser.Alpaca.metainfo.xml.in:310
msgid "This is the first public version of Alpaca"
msgstr "Ceci est la première version publique d'Alpaca"
#: src/window.py:54 src/window.py:637 src/window.py:639
msgid "New Chat"
msgstr "Nouvelle discussion"
#: src/window.py:97
msgid "An error occurred"
msgstr "Une erreur est survenue"
#: src/window.py:98
msgid "Failed to connect to server"
msgstr "Erreur de connexion au serveur"
#: src/window.py:99
msgid "Could not list local models"
msgstr "Impossible de lister les modèles locaux"
#: src/window.py:100
msgid "Could not delete model"
msgstr "Impossible de supprimer le modèle"
#: src/window.py:101
msgid "Could not pull model"
msgstr "Impossible de télécharger le modèle"
#: src/window.py:102
msgid "Cannot open image"
msgstr "Impossible d'ouvrir l'image"
#: src/window.py:103
msgid "Cannot delete chat because it's the only one left"
msgstr ""
"Vous ne pouvez pas supprimer la discussion car c'est la seule qui reste"
#: src/window.py:104
msgid "There was an error with the local Ollama instance, so it has been reset"
msgstr ""
"Une erreur est survenue avec l'instance local d'Ollama, elle a donc été "
"reinitialisée"
#: src/window.py:107
msgid "Please select a model before chatting"
msgstr "Merci de sélectionner un modèle avant de discuter"
#: src/window.py:108
msgid "Chat cannot be cleared while receiving a message"
msgstr ""
"La discussion ne peut pas être supprimé pendant la réception d'un message"
#: src/window.py:109
msgid "That tag is already being pulled"
msgstr "Ce tag est déjà en train d'être téléchargé"
#: src/window.py:110
msgid "That tag has been pulled already"
msgstr "Ce tag à déjà été télécharger"
#: src/window.py:111
msgid "Code copied to the clipboard"
msgstr "Code copié dans le presse-papier"
#: src/window.py:114
msgid "Model deleted successfully"
msgstr "Modèle supprimé avec succès"
#: src/window.py:115
msgid "Model pulled successfully"
msgstr "Modèle téléchargé avec succès"
#: src/window.py:116
msgid "Chat exported successfully"
msgstr "Discussion exportée avec succès"
#: src/window.py:117
msgid "Chat imported successfully"
msgstr "Discussion importée avec succès"
#: src/window.py:129
msgid "Upload image"
msgstr "Charger une image"
#: src/window.py:133 src/window.ui:231
msgid "Only available on selected models"
msgstr "Seulement disponible sur les modèles sélectionnés"
#: src/window.py:197
msgid "Close"
msgstr "Fermer"
#: src/window.py:198 src/window.ui:393
msgid "Next"
msgstr "Suivant"
#: src/window.py:245
msgid "Pulling in the background..."
msgstr "Téléchargement en arrière-plan..."
#: src/window.py:555
msgid "Task Complete"
msgstr "Tache terminée"
#: src/window.py:555
msgid "Model '{}' pulled successfully."
msgstr "Modèle '{}' téléchargé avec succès."
#: src/window.py:560
msgid "Pull Model Error"
msgstr "Erreur de téléchargement du modèle"
#: src/window.py:560
msgid "Failed to pull model '{}' due to network error."
msgstr ""
"Échec du téléchargement du modèle '{}' à cause d'une erreur de connexion."
#: src/window.ui:38
msgid "New chat"
msgstr "Nouvelle discussion"
#: src/window.ui:47
msgid "Import chat"
msgstr "Importer une discussion"
#: src/window.ui:56
msgid "Export chat"
msgstr "Exporter la discussion"
#: src/window.ui:89
msgid "Toggle Sidebar"
msgstr "Basculer la barre latérale"
#: src/window.ui:112 src/window.ui:308
msgid "Manage models"
msgstr "Gestion des modèles"
#: src/window.ui:126
msgid "Menu"
msgstr "Menu"
#: src/window.ui:221
msgid "Send"
msgstr "Envoyer"
#: src/window.ui:234
msgid "Image"
msgstr "Image"
#: src/window.ui:258 src/window.ui:546 src/window.ui:604
msgid "Preferences"
msgstr "Paramètres"
#: src/window.ui:261 src/window.ui:588
msgid "General"
msgstr "Général"
#: src/window.ui:265
msgid "Remote Connection"
msgstr "Connexion à distance"
#: src/window.ui:266
msgid "Manage a remote connection to Ollama"
msgstr "Gérer une connexion à distance d'Ollama"
#: src/window.ui:269
msgid "Use remote connection"
msgstr "Utiliser une connexion à distance"
#: src/window.ui:275
msgid "URL of remote instance"
msgstr "URL de l'instance distante"
#: src/window.ui:283
msgid "Behavior"
msgstr "Comportement"
#: src/window.ui:284
msgid "Manage Alpaca's Behavior"
msgstr "Gérer le comportement d'Alpaca"
#: src/window.ui:287
msgid "Run in background"
msgstr "Exécution en arrière-plan"
#: src/window.ui:377
msgid "Previous"
msgstr "Précédent"
#: src/window.ui:420
msgid "Welcome to Alpaca"
msgstr "Bienvenue sur Alpaca"
#: src/window.ui:421
msgid "Powered by Ollama"
msgstr "Fonctionne grâce à Ollama"
#: src/window.ui:424
msgid "Ollama Website"
msgstr "Site web d'Ollama"
#: src/window.ui:441
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 et ses développeurs ne sont pas responsables des dommages causés à "
"votre appareil ou vos logiciels lors de l'exécution de code généré par les "
"modèles d'IA. Merci de faire attention et de relire attentivement le code "
"avant de l'exécuter."
#: src/window.ui:452
msgid "Featured Models"
msgstr "Modèles recommandés"
#: src/window.ui:453
msgid ""
"Alpaca works locally on your device, to start chatting you'll need an AI "
"model, you can either pull models from this list or the 'Manage Models' menu "
"later."
msgstr ""
"Alpaca fonctionne localement sur votre ordinateur, pour commencer à discuter "
"vous aurez besoin d'un modèle d'IA, vous pouvez télécharger un modèle soit "
"depuis cette liste soit depuis le menu 'Gérer les modèles' plus tard."
#: src/window.ui:463
msgid "Built by Meta"
msgstr "Développé par Meta"
#: src/window.ui:480
msgid "Built by Google DeepMind"
msgstr "Développé par Google DeepMind"
#: src/window.ui:497
msgid "Built by Microsoft"
msgstr "Développé par Microsoft"
#: src/window.ui:514
msgid "Multimodal AI with image recognition"
msgstr "IA multimodale avec reconnaissance d'image"
#: src/window.ui:542
msgid "Clear Chat"
msgstr "Supprimer la discussion"
#: src/window.ui:550
msgid "Keyboard Shortcuts"
msgstr "Raccourcis claviers"
#: src/window.ui:554
msgid "About Alpaca"
msgstr "À propos d'Alpaca"
#: src/window.ui:562
msgid "Remove"
msgstr "Supprimer"
#: src/window.ui:592
msgid "Close application"
msgstr "Fermer l'application"
#: src/window.ui:598
msgid "Clear chat"
msgstr "Supprimer la discussion"
#: src/window.ui:610
msgid "Show shortcuts window"
msgstr "Voir les raccourcis clavier"
#: src/window.ui:617
msgid "Editor"
msgstr "Éditeur"
#: src/window.ui:621
msgid "Copy"
msgstr "Copier"
#: src/window.ui:627
msgid "Paste"
msgstr "Coller"
#: src/window.ui:633
msgid "Insert new line"
msgstr "Ajouter un ligne"
#: src/window.ui:639
msgid "Send Message"
msgstr "Envoyer le message"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

708
po/ru.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-24 18:50-0600\n" "POT-Creation-Date: 2024-05-25 10:21+0800\n"
"PO-Revision-Date: 2024-05-22 19:33+0800\n" "PO-Revision-Date: 2024-05-25 10:44+0800\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"Language: ru_RU\n" "Language: ru_RU\n"
@@ -14,752 +14,312 @@ msgstr ""
"X-Poedit-Basepath: ../src\n" "X-Poedit-Basepath: ../src\n"
"X-Poedit-SearchPath-0: .\n" "X-Poedit-SearchPath-0: .\n"
#: data/com.jeffser.Alpaca.desktop.in:3 #: gtk/help-overlay.ui:11
#: data/com.jeffser.Alpaca.metainfo.xml.in:7 msgctxt "shortcut window"
#, fuzzy msgid "General"
msgid "Alpaca" msgstr "Общие"
msgstr "О Программе"
#: gtk/help-overlay.ui:14
#: data/com.jeffser.Alpaca.metainfo.xml.in:8 msgctxt "shortcut window"
#, fuzzy msgid "Show Shortcuts"
msgid "Chat with local AI models" msgstr "Показывать комбинации клавиш"
msgstr "Не удалось перечислить локальные модели"
#: gtk/help-overlay.ui:20
#: data/com.jeffser.Alpaca.metainfo.xml.in:10 msgctxt "shortcut window"
#, fuzzy msgid "Quit"
msgid "An Ollama client" msgstr "Выйти"
msgstr "Веб-сайт Ollama"
#: window.py:57 window.py:783
#: data/com.jeffser.Alpaca.metainfo.xml.in:11
#: data/com.jeffser.Alpaca.metainfo.xml.in:286
msgid "Features"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:13
#: data/com.jeffser.Alpaca.metainfo.xml.in:288
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:289
msgid "Pull and delete models from the app"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:15
msgid "Have multiple conversations"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:16
msgid "Image recognition (Only available with LLaVA Model)"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:17
#, fuzzy
msgid "Import and export chats"
msgstr "Импорт чата"
#: data/com.jeffser.Alpaca.metainfo.xml.in:19 src/window.ui:432
msgid "Disclaimer"
msgstr "Отказ от ответственности"
#: data/com.jeffser.Alpaca.metainfo.xml.in:20
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:23
msgid "Jeffry Samuel Eduarte Rojas"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:47
msgid "A conversation showing code highlight"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:51
msgid "A conversation involving multiple models"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:55
#, fuzzy
msgid "Managing models"
msgstr "Управление моделями"
#: data/com.jeffser.Alpaca.metainfo.xml.in:66
msgid "Quick fix"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:68
msgid "Updated Spanish translation"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:69
msgid "Added compatibility for PNG"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:76
#, fuzzy
msgid "New Update"
msgstr "Новый Чат"
#: data/com.jeffser.Alpaca.metainfo.xml.in:78
msgid "Updated model list"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:79
msgid "Added image recognition to more models"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:80
msgid "Added Brazilian Portuguese translation (Thanks Daimaar Stein)"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:81
msgid "Refined the general UI (Thanks Nokse22)"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:82
msgid "Added 'delete message' feature"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:83
msgid ""
"Added metadata so that software distributors know that the app is compatible "
"with mobile"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:84
msgid ""
"Changed 'send' shortcut to just the return/enter key (to add a new line use "
"shift+return)"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:91
msgid "Bug Fixes"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:93
msgid "Fixed: Minor spelling mistake"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:94
msgid "Added 'mobile' as a supported form factor"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:95
msgid "Fixed: 'Connection Error' dialog not working properly"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:96
msgid "Fixed: App might freeze randomly on startup"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:97
msgid "Changed 'chats' label on sidebar for 'Alpaca'"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:104
msgid "Cool Update"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:106
msgid "Better design for chat window"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:107
msgid "Better design for chat sidebar"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:108
#, fuzzy
msgid "Fixed remote connections"
msgstr "Использовать удаленное подключение"
#: data/com.jeffser.Alpaca.metainfo.xml.in:109
msgid "Fixed Ollama restarting in loop"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:110
msgid "Other cool backend stuff"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:117
msgid "Huge Update"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:119
msgid "Added Ollama as part of Alpaca, Ollama will run in a sandbox"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:120
msgid "Added option to connect to remote instances (how it worked before)"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:121
msgid "Added option to import and export chats"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:122
msgid "Added option to run Alpaca with Ollama in the background"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:123
msgid "Added preferences dialog"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:124
msgid "Changed the welcome dialog"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:126
#: data/com.jeffser.Alpaca.metainfo.xml.in:143
#: data/com.jeffser.Alpaca.metainfo.xml.in:155
#: data/com.jeffser.Alpaca.metainfo.xml.in:174
#: data/com.jeffser.Alpaca.metainfo.xml.in:195
#: data/com.jeffser.Alpaca.metainfo.xml.in:211
#: data/com.jeffser.Alpaca.metainfo.xml.in:227
#: data/com.jeffser.Alpaca.metainfo.xml.in:241
#: data/com.jeffser.Alpaca.metainfo.xml.in:251
#: data/com.jeffser.Alpaca.metainfo.xml.in:269
#: data/com.jeffser.Alpaca.metainfo.xml.in:291
msgid "Please report any errors to the issues page, thank you."
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:134
msgid "Yet Another Daily Update"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:136
msgid "Added better UI for 'Manage Models' dialog"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:137
msgid "Added better UI for the chat sidebar"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:138
msgid ""
"Replaced model description with a button to open Ollama's website for the "
"model"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:139
msgid "Added myself to the credits as the spanish translator"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:140
msgid "Using XDG properly to get config folder"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:141
msgid "Update for translations"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:151
msgid "Quick Fix"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:153
msgid "The last update had some mistakes in the description of the update"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:163
msgid "Another Daily Update"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:165
msgid "Added full Spanish translation"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:166
msgid "Added support for background pulling of multiple models"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:167
msgid "Added interrupt button"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:168
#, fuzzy
msgid "Added basic shortcuts"
msgstr "Показывать ярлыки"
#: data/com.jeffser.Alpaca.metainfo.xml.in:169
msgid "Better translation support"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:170
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:171
msgid "Better scalling for different window sizes"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:172
msgid "Fixed: Can't close app if first time setup fails"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:182
msgid "Really Big Update"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:184
msgid "Added multiple chats support!"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:185
msgid "Added Pango Markup support (bold, list, title, subtitle, monospace)"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:186
msgid "Added autoscroll if the user is at the bottom of the chat"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:187
msgid "Added support for multiple tags on a single model"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:188
msgid "Added better model management dialog"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:189
msgid "Added loading spinner when sending message"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:190
msgid "Added notifications if app is not active and a model pull finishes"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:191
msgid "Added new symbolic icon"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:192
msgid "Added frame to message textview widget"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:193
msgid "Fixed \"code blocks shouldn't be editable\""
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:203
#: data/com.jeffser.Alpaca.metainfo.xml.in:260
msgid "Big Update"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:205
msgid "Added code highlighting"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:206
msgid "Added image recognition (llava model)"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:207
msgid "Added multiline prompt"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:208
msgid "Fixed some small bugs"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:209
msgid "General optimization"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:219
msgid "Fixes and features"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:221
msgid "Russian translation (thanks github/alexkdeveloper)"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:222
msgid "Fixed: Cannot close app on first setup"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:223
msgid "Fixed: Brand colors for Flathub"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:224
msgid "Fixed: App description"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:225
msgid "Fixed: Only show 'save changes dialog' when you actually change the url"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:235
msgid "0.2.2 Bug fixes"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:237
msgid "Toast messages appearing behind dialogs"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:238
msgid "Local model list not updating when changing servers"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:239
msgid "Closing the setup dialog closes the whole app"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:249
msgid "0.2.1 Data saving fix"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:250
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:259
msgid "0.2.0"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:261
#, fuzzy
msgid "New Features"
msgstr "Новый Чат"
#: data/com.jeffser.Alpaca.metainfo.xml.in:263
msgid "Restore chat after closing the app"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:264
#, fuzzy
msgid "A button to clear the chat"
msgstr "Вы уверены, что хотите очистить чат?"
#: data/com.jeffser.Alpaca.metainfo.xml.in:265
msgid "Fixed multiple bugs involving how messages are shown"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:266
msgid "Added welcome dialog"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:267
msgid "More stability"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:277
msgid "0.1.2 Quick fixes"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:278
msgid ""
"This release fixes some metadata needed to have a proper Flatpak application"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:284
msgid "0.1.1 Stable Release"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:285
msgid "This is the first public version of Alpaca"
msgstr ""
#: src/window.py:57 src/window.py:783
msgid "New Chat" msgid "New Chat"
msgstr "Новый Чат" msgstr "Новый Чат"
#: src/window.py:102 #: window.py:102
msgid "An error occurred" msgid "An error occurred"
msgstr "Произошла ошибка" msgstr "Произошла ошибка"
#: src/window.py:103 #: window.py:103
msgid "Failed to connect to server" msgid "Failed to connect to server"
msgstr "Не удалось подключиться к серверу" msgstr "Не удалось подключиться к серверу"
#: src/window.py:104 #: window.py:104
msgid "Could not list local models" msgid "Could not list local models"
msgstr "Не удалось перечислить локальные модели" msgstr "Не удалось перечислить локальные модели"
#: src/window.py:105 #: window.py:105
msgid "Could not delete model" msgid "Could not delete model"
msgstr "Не удалось удалить модель" msgstr "Не удалось удалить модель"
#: src/window.py:106 #: window.py:106
msgid "Could not pull model" msgid "Could not pull model"
msgstr "Не удалось извлечь модель" msgstr "Не удалось извлечь модель"
#: src/window.py:107 #: window.py:107
msgid "Cannot open image" msgid "Cannot open image"
msgstr "Не удается открыть изображение" msgstr "Не удается открыть изображение"
#: src/window.py:108 #: window.py:108
msgid "Cannot delete chat because it's the only one left" msgid "Cannot delete chat because it's the only one left"
msgstr "Не удается удалить чат, потому что он единственный оставшийся" msgstr "Не удается удалить чат, потому что он единственный оставшийся"
#: src/window.py:109 #: window.py:109
msgid "There was an error with the local Ollama instance, so it has been reset" msgid "There was an error with the local Ollama instance, so it has been reset"
msgstr "" msgstr ""
"Произошла ошибка с локальным экземпляром Ollama, поэтому он был сброшен" "Произошла ошибка с локальным экземпляром Ollama, поэтому он был сброшен"
#: src/window.py:112 #: window.py:112
msgid "Please select a model before chatting" msgid "Please select a model before chatting"
msgstr "Пожалуйста, выберите модель перед началом общения" msgstr "Пожалуйста, выберите модель перед началом общения"
#: src/window.py:113 #: window.py:113
msgid "Chat cannot be cleared while receiving a message" msgid "Chat cannot be cleared while receiving a message"
msgstr "Чат не может быть удален при получении сообщения" msgstr "Чат не может быть удален при получении сообщения"
#: src/window.py:114 #: window.py:114
msgid "That tag is already being pulled" msgid "That tag is already being pulled"
msgstr "Этот тег уже удален" msgstr "Этот тег уже удален"
#: src/window.py:115 #: window.py:115
#, fuzzy
msgid "That tag has been pulled already" msgid "That tag has been pulled already"
msgstr "Этот тег уже был удален" msgstr "Этот тег уже был удален"
#: src/window.py:118 #: window.py:118
msgid "Model deleted successfully" msgid "Model deleted successfully"
msgstr "Модель успешно удалена" msgstr "Модель успешно удалена"
#: src/window.py:119 #: window.py:119
msgid "Model pulled successfully" msgid "Model pulled successfully"
msgstr "Модель успешно извлечена" msgstr "Модель успешно извлечена"
#: src/window.py:120 #: window.py:120
msgid "Chat exported successfully" msgid "Chat exported successfully"
msgstr "Чат успешно экспортирован" msgstr "Чат успешно экспортирован"
#: src/window.py:121 #: window.py:121
msgid "Chat imported successfully" msgid "Chat imported successfully"
msgstr "Чат успешно импортирован" msgstr "Чат успешно импортирован"
#: src/window.py:476 #: window.py:476
msgid "Task Complete" msgid "Task Complete"
msgstr "Задача выполнена" msgstr "Задача выполнена"
#: src/window.py:476 #: window.py:476
msgid "Model '{}' pulled successfully." msgid "Model '{}' pulled successfully."
msgstr "Модель '{}' успешно извлечена." msgstr "Модель '{}' успешно извлечена."
#: src/window.py:481 #: window.py:481
msgid "Pull Model Error" msgid "Pull Model Error"
msgstr "Ошибка Извлечения Модели" msgstr "Ошибка Извлечения Модели"
#: src/window.py:481 #: window.py:481
msgid "Failed to pull model '{}' due to network error." msgid "Failed to pull model '{}' due to network error."
msgstr "Не удалось извлечь модель '{}' из-за сетевой ошибки." msgstr "Не удалось извлечь модель '{}' из-за сетевой ошибки."
#: src/window.py:496 #: window.py:496
msgid "Stop Model" msgid "Stop Model"
msgstr "Остановить Модель" msgstr "Остановить Модель"
#: src/window.py:497 #: window.py:497
msgid "Are you sure you want to stop pulling '{}'?" msgid "Are you sure you want to stop pulling '{}'?"
msgstr "Вы уверены, что хотите прекратить извлечение '{}'?" msgstr "Вы уверены, что хотите прекратить извлечение '{}'?"
#: src/window.py:500 src/window.py:543 src/window.py:566 src/window.py:638 #: window.py:500 window.py:543 window.py:566 window.py:638 window.py:711
#: src/window.py:711 src/window.py:737 src/window.py:769 src/window.py:810 #: window.py:737 window.py:769 window.py:810
msgid "Cancel" msgid "Cancel"
msgstr "Отмена" msgstr "Отмена"
#: src/window.py:501 #: window.py:501
msgid "Stop" msgid "Stop"
msgstr "Стоп" msgstr "Стоп"
#: src/window.py:539 #: window.py:539
msgid "Delete Model" msgid "Delete Model"
msgstr "Удалить Модель" msgstr "Удалить Модель"
#: src/window.py:540 src/window.py:734 #: window.py:540 window.py:734
msgid "Are you sure you want to delete '{}'?" msgid "Are you sure you want to delete '{}'?"
msgstr "Вы уверены, что хотите удалить '{}'?" msgstr "Вы уверены, что хотите удалить '{}'?"
#: src/window.py:544 src/window.py:738 #: window.py:544 window.py:738
msgid "Delete" msgid "Delete"
msgstr "Удалить" msgstr "Удалить"
#: src/window.py:561 #: window.py:561
msgid "Pull Model" msgid "Pull Model"
msgstr "Извлечение модели" msgstr "Извлечение модели"
#: src/window.py:562 #: window.py:562
msgid "Please select a tag to pull '{}'" msgid "Please select a tag to pull '{}'"
msgstr "Пожалуйста, выберите тег для извлечения '{}'" msgstr "Пожалуйста, выберите тег для извлечения '{}'"
#: src/window.py:567 #: window.py:567
msgid "Pull" msgid "Pull"
msgstr "Извлечение" msgstr "Извлечение"
#: src/window.py:634 src/window.ui:446 #: window.py:634 window.ui:446
msgid "Clear Chat" msgid "Clear Chat"
msgstr "Очистить Чат" msgstr "Очистить Чат"
#: src/window.py:635 #: window.py:635
msgid "Are you sure you want to clear the chat?" msgid "Are you sure you want to clear the chat?"
msgstr "Вы уверены, что хотите очистить чат?" msgstr "Вы уверены, что хотите очистить чат?"
#: src/window.py:639 #: window.py:639
msgid "Clear" msgid "Clear"
msgstr "Очистить" msgstr "Очистить"
#: src/window.py:707 #: window.py:707
msgid "Remove Image" msgid "Remove Image"
msgstr "Удалить Изображение" msgstr "Удалить Изображение"
#: src/window.py:708 #: window.py:708
msgid "Are you sure you want to remove image?" msgid "Are you sure you want to remove image?"
msgstr "Вы уверены, что хотите удалить изображение?" msgstr "Вы уверены, что хотите удалить изображение?"
#: src/window.py:712 src/window.ui:466 #: window.py:712 window.ui:466
msgid "Remove" msgid "Remove"
msgstr "Удалить" msgstr "Удалить"
#: src/window.py:733 #: window.py:733
msgid "Delete Chat" msgid "Delete Chat"
msgstr "Удалить Чат" msgstr "Удалить Чат"
#: src/window.py:763 #: window.py:763
msgid "Rename Chat" msgid "Rename Chat"
msgstr "Переименовать Чат" msgstr "Переименовать Чат"
#: src/window.py:770 #: window.py:770
msgid "Rename" msgid "Rename"
msgstr "Переименовать" msgstr "Переименовать"
#: src/window.py:791 #: window.py:791
msgid "The name '{}' is already in use" msgid "The name '{}' is already in use"
msgstr "Имя '{}' уже используется" msgstr "Имя '{}' уже используется"
#: src/window.py:804 #: window.py:804
msgid "Create Chat" msgid "Create Chat"
msgstr "Создать Чат" msgstr "Создать Чат"
#: src/window.py:811 #: window.py:811
msgid "Create" msgid "Create"
msgstr "Создать" msgstr "Создать"
#: src/window.py:914 #: window.py:914
#, fuzzy
msgid "Connection Error" msgid "Connection Error"
msgstr "Удаленное подключение" msgstr "Ошибка Соединения"
#: src/window.py:915 #: window.py:915
msgid "The remote instance has disconnected" msgid "The remote instance has disconnected"
msgstr "" msgstr "Удаленный экземпляр отключился"
#: src/window.py:919 #: window.py:919
#, fuzzy
msgid "Close Alpaca" msgid "Close Alpaca"
msgstr "Добро пожаловать в Alpaca" msgstr "Закрыть Программу"
#: src/window.py:920 #: window.py:920
#, fuzzy
msgid "Use local instance" msgid "Use local instance"
msgstr "URL-адрес удаленного экземпляра" msgstr "Использовать локальный экземпляр"
#: src/window.py:921 #: window.py:921
msgid "Connect" msgid "Connect"
msgstr "" msgstr "Подключить"
#: src/window.ui:40 #: window.ui:40
msgid "New chat" msgid "New chat"
msgstr "Новый чат" msgstr "Новый чат"
#: src/window.ui:49 #: window.ui:49
msgid "Import chat" msgid "Import chat"
msgstr "Импорт чата" msgstr "Импорт чата"
#: src/window.ui:58 #: window.ui:58
msgid "Export chat" msgid "Export chat"
msgstr "Экспорт чата" msgstr "Экспорт чата"
#: src/window.ui:90 #: window.ui:90
msgid "Toggle Sidebar" msgid "Toggle Sidebar"
msgstr "Переключение боковой панели" msgstr "Переключение боковой панели"
#: src/window.ui:111 src/window.ui:303 #: window.ui:111 window.ui:303
msgid "Manage models" msgid "Manage models"
msgstr "Управление моделями" msgstr "Управление моделями"
#: src/window.ui:125 #: window.ui:125
msgid "Menu" msgid "Menu"
msgstr "Меню" msgstr "Меню"
#: src/window.ui:216 #: window.ui:216
msgid "Send" msgid "Send"
msgstr "Отправить" msgstr "Отправить"
#: src/window.ui:225 #: window.ui:225
msgid "Only available on selected models" msgid "Only available on selected models"
msgstr "" msgstr "Доступно только для некоторых моделей"
#: src/window.ui:228 #: window.ui:228
msgid "Image" msgid "Image"
msgstr "Изображение" msgstr "Изображение"
#: src/window.ui:254 src/window.ui:450 src/window.ui:508 #: window.ui:254 window.ui:450 window.ui:508
msgid "Preferences" msgid "Preferences"
msgstr "Настройки" msgstr "Настройки"
#: src/window.ui:257 src/window.ui:492 #: window.ui:257 window.ui:492
msgid "General" msgid "General"
msgstr "Общие" msgstr "Общие"
#: src/window.ui:261 #: window.ui:261
msgid "Remote Connection" msgid "Remote Connection"
msgstr "Удаленное подключение" msgstr "Удаленное подключение"
#: src/window.ui:262 #: window.ui:262
msgid "Manage a remote connection to Ollama" msgid "Manage a remote connection to Ollama"
msgstr "Управление удаленным подключением к Ollama" msgstr "Управление удаленным подключением к Ollama"
#: src/window.ui:265 #: window.ui:265
msgid "Use remote connection" msgid "Use remote connection"
msgstr "Использовать удаленное подключение" msgstr "Использовать удаленное подключение"
#: src/window.ui:270 #: window.ui:270
msgid "URL of remote instance" msgid "URL of remote instance"
msgstr "URL-адрес удаленного экземпляра" msgstr "URL-адрес удаленного экземпляра"
#: src/window.ui:278 #: window.ui:278
msgid "Behavior" msgid "Behavior"
msgstr "Поведение" msgstr "Поведение"
#: src/window.ui:279 #: window.ui:279
msgid "Manage Alpaca's Behavior" msgid "Manage Alpaca's Behavior"
msgstr "Управление поведением Alpaca" msgstr "Управление поведением Alpaca"
#: src/window.ui:282 #: window.ui:282
msgid "Run in background" msgid "Run in background"
msgstr "Запуск в фоновом режиме" msgstr "Запуск в фоновом режиме"
#: src/window.ui:371 #: window.ui:371
msgid "Previous" msgid "Previous"
msgstr "Предыдущий" msgstr "Предыдущий"
#: src/window.ui:386 #: window.ui:386
msgid "Next" msgid "Next"
msgstr "Следующий" msgstr "Следующий"
#: src/window.ui:412 #: window.ui:412
msgid "Welcome to Alpaca" msgid "Welcome to Alpaca"
msgstr "Добро пожаловать в Alpaca" msgstr "Добро пожаловать в Alpaca"
#: src/window.ui:413 #: window.ui:413
msgid "Powered by Ollama" msgid "Powered by Ollama"
msgstr "При поддержке Ollama" msgstr "При поддержке Ollama"
#: src/window.ui:416 #: window.ui:416
msgid "Ollama Website" msgid "Ollama Website"
msgstr "Веб-сайт Ollama" msgstr "Веб-сайт Ollama"
#: src/window.ui:433 #: window.ui:432
msgid "Disclaimer"
msgstr "Отказ от ответственности"
#: window.ui:433
msgid "" msgid ""
"Alpaca and its developers are not liable for any damages to devices or " "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. " "software resulting from the execution of code generated by an AI model. "
@@ -771,57 +331,85 @@ msgstr ""
"Пожалуйста, будьте осторожны и внимательно ознакомьтесь с кодом перед его " "Пожалуйста, будьте осторожны и внимательно ознакомьтесь с кодом перед его "
"запуском." "запуском."
#: src/window.ui:454 #: window.ui:454
msgid "Keyboard Shortcuts" msgid "Keyboard Shortcuts"
msgstr "Комбинации Клавиш" msgstr "Комбинации Клавиш"
#: src/window.ui:458 #: window.ui:458
msgid "About Alpaca" msgid "About Alpaca"
msgstr "О Программе" msgstr "О Программе"
#: src/window.ui:496 #: window.ui:496
msgid "Close application" msgid "Close application"
msgstr "Закрыть приложение" msgstr "Закрыть приложение"
#: src/window.ui:502 #: window.ui:502
msgid "Clear chat" msgid "Clear chat"
msgstr "Очистить чат" msgstr "Очистить чат"
#: src/window.ui:514 #: window.ui:514
msgid "Show shortcuts window" msgid "Show shortcuts window"
msgstr "Показать окно комбинаций клавиш" msgstr "Показать окно комбинаций клавиш"
#: src/window.ui:521 #: window.ui:521
msgid "Editor" msgid "Editor"
msgstr "Редактор" msgstr "Редактор"
#: src/window.ui:525 #: window.ui:525
msgid "Copy" msgid "Copy"
msgstr "Копировать" msgstr "Копировать"
#: src/window.ui:531 #: window.ui:531
msgid "Paste" msgid "Paste"
msgstr "Вставить" msgstr "Вставить"
#: src/window.ui:537 #: window.ui:537
msgid "Insert new line" msgid "Insert new line"
msgstr "" msgstr "Вставить новую строку"
#: src/window.ui:543 #: window.ui:543
msgid "Send Message" msgid "Send Message"
msgstr "Отправить Сообщение" msgstr "Отправить Сообщение"
#~ msgctxt "shortcut window" #, fuzzy
#~ msgid "General" #~ msgid "Alpaca"
#~ msgstr "Общие" #~ msgstr "О Программе"
#~ msgctxt "shortcut window" #, fuzzy
#~ msgid "Show Shortcuts" #~ msgid "Chat with local AI models"
#~ msgstr "Показывать комбинации клавиш" #~ msgstr "Не удалось перечислить локальные модели"
#~ msgctxt "shortcut window" #, fuzzy
#~ msgid "Quit" #~ msgid "An Ollama client"
#~ msgstr "Выйти" #~ msgstr "Веб-сайт Ollama"
#, fuzzy
#~ msgid "Import and export chats"
#~ msgstr "Импорт чата"
#, fuzzy
#~ msgid "Managing models"
#~ msgstr "Управление моделями"
#, fuzzy
#~ msgid "New Update"
#~ msgstr "Новый Чат"
#, fuzzy
#~ msgid "Fixed remote connections"
#~ msgstr "Использовать удаленное подключение"
#, fuzzy
#~ msgid "Added basic shortcuts"
#~ msgstr "Показывать ярлыки"
#, fuzzy
#~ msgid "New Features"
#~ msgstr "Новый Чат"
#, fuzzy
#~ msgid "A button to clear the chat"
#~ msgstr "Вы уверены, что хотите очистить чат?"
#~ msgid "Chats" #~ msgid "Chats"
#~ msgstr "Чаты" #~ msgstr "Чаты"

394
po/ru.po~
View File

@@ -1,394 +0,0 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-22 19:17+0800\n"
"PO-Revision-Date: 2024-05-22 19:33+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"
#: gtk/help-overlay.ui:11
msgctxt "shortcut window"
msgid "General"
msgstr "Общие"
#: gtk/help-overlay.ui:14
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgstr "Показывать комбинации клавиш"
#: gtk/help-overlay.ui:20
msgctxt "shortcut window"
msgid "Quit"
msgstr "Выйти"
#: window.py:54 window.py:761
msgid "New Chat"
msgstr "Новый Чат"
#: window.py:100
msgid "An error occurred"
msgstr "Произошла ошибка"
#: window.py:101
msgid "Failed to connect to server"
msgstr "Не удалось подключиться к серверу"
#: window.py:102
msgid "Could not list local models"
msgstr "Не удалось перечислить локальные модели"
#: window.py:103
msgid "Could not delete model"
msgstr "Не удалось удалить модель"
#: window.py:104
msgid "Could not pull model"
msgstr "Не удалось извлечь модель"
#: window.py:105
msgid "Cannot open image"
msgstr "Не удается открыть изображение"
#: window.py:106
msgid "Cannot delete chat because it's the only one left"
msgstr "Не удается удалить чат, потому что он единственный оставшийся"
#: window.py:107
msgid "There was an error with the local Ollama instance, so it has been reset"
msgstr ""
"Произошла ошибка с локальным экземпляром Ollama, поэтому он был сброшен"
#: window.py:110
msgid "Please select a model before chatting"
msgstr "Пожалуйста, выберите модель перед началом общения"
#: window.py:111
msgid "Chat cannot be cleared while receiving a message"
msgstr "Чат не может быть удален при получении сообщения"
#: window.py:112
msgid "That tag is already being pulled"
msgstr "Этот тег уже удален"
#: window.py:113
msgid "That tag has been pulled alreay"
msgstr "Этот тег уже был удален"
#: window.py:116
msgid "Model deleted successfully"
msgstr "Модель успешно удалена"
#: window.py:117
msgid "Model pulled successfully"
msgstr "Модель успешно извлечена"
#: window.py:118
msgid "Chat exported successfully"
msgstr "Чат успешно экспортирован"
#: window.py:119
msgid "Chat imported successfully"
msgstr "Чат успешно импортирован"
#: window.py:451
msgid "Task Complete"
msgstr "Задача выполнена"
#: window.py:451
msgid "Model '{}' pulled successfully."
msgstr "Модель '{}' успешно извлечена."
#: window.py:456
msgid "Pull Model Error"
msgstr "Ошибка Извлечения Модели"
#: window.py:456
msgid "Failed to pull model '{}' due to network error."
msgstr "Не удалось извлечь модель '{}' из-за сетевой ошибки."
#: window.py:472
msgid "Stop Model"
msgstr "Остановить Модель"
#: window.py:473
msgid "Are you sure you want to stop pulling '{}'?"
msgstr "Вы уверены, что хотите прекратить извлечение '{}'?"
#: window.py:476 window.py:519 window.py:542 window.py:615 window.py:688
#: window.py:715 window.py:748 window.py:788
msgid "Cancel"
msgstr "Отмена"
#: window.py:477
msgid "Stop"
msgstr "Стоп"
#: window.py:515
msgid "Delete Model"
msgstr "Удалить Модель"
#: window.py:516 window.py:712
msgid "Are you sure you want to delete '{}'?"
msgstr "Вы уверены, что хотите удалить '{}'?"
#: window.py:520 window.py:716
msgid "Delete"
msgstr "Удалить"
#: window.py:537
msgid "Pull Model"
msgstr "Извлечение модели"
#: window.py:538
msgid "Please select a tag to pull '{}'"
msgstr "Пожалуйста, выберите тег для извлечения '{}'"
#: window.py:543
msgid "Pull"
msgstr "Извлечение"
#: window.py:611 window.ui:462
msgid "Clear Chat"
msgstr "Очистить Чат"
#: window.py:612
msgid "Are you sure you want to clear the chat?"
msgstr "Вы уверены, что хотите очистить чат?"
#: window.py:616
msgid "Clear"
msgstr "Очистить"
#: window.py:684
msgid "Remove Image"
msgstr "Удалить Изображение"
#: window.py:685
msgid "Are you sure you want to remove image?"
msgstr "Вы уверены, что хотите удалить изображение?"
#: window.py:689
msgid "Remove"
msgstr "Удалить"
#: window.py:711
msgid "Delete Chat"
msgstr "Удалить Чат"
#: window.py:742
msgid "Rename Chat"
msgstr "Переименовать Чат"
#: window.py:749
msgid "Rename"
msgstr "Переименовать"
#: window.py:769
msgid "The name '{}' is already in use"
msgstr "Имя '{}' уже используется"
#: window.py:782
msgid "Create Chat"
msgstr "Создать Чат"
#: window.py:789
msgid "Create"
msgstr "Создать"
#: window.ui:46
msgid "Chats"
msgstr "Чаты"
#: window.ui:56
msgid "Import chat"
msgstr "Импорт чата"
#: window.ui:69
msgid "Export chat"
msgstr "Экспорт чата"
#: window.ui:82
msgid "New chat"
msgstr "Новый чат"
#: window.ui:118
msgid "Toggle Sidebar"
msgstr "Переключение боковой панели"
#: window.ui:139 window.ui:315
msgid "Manage models"
msgstr "Управление моделями"
#: window.ui:153
msgid "Menu"
msgstr "Меню"
#: window.ui:231
msgid "Send"
msgstr "Отправить"
#: window.ui:240
msgid "Requires model 'llava' to be selected"
msgstr "Требуется выбрать модель \"llava\""
#: window.ui:243
msgid "Image"
msgstr "Изображение"
#: window.ui:266 window.ui:466 window.ui:517
msgid "Preferences"
msgstr "Настройки"
#: window.ui:269 window.ui:501
msgid "General"
msgstr "Общие"
#: window.ui:273
msgid "Remote Connection"
msgstr "Удаленное подключение"
#: window.ui:274
msgid "Manage a remote connection to Ollama"
msgstr "Управление удаленным подключением к Ollama"
#: window.ui:277
msgid "Use remote connection"
msgstr "Использовать удаленное подключение"
#: window.ui:282
msgid "URL of remote instance"
msgstr "URL-адрес удаленного экземпляра"
#: window.ui:290
msgid "Behavior"
msgstr "Поведение"
#: window.ui:291
msgid "Manage Alpaca's Behavior"
msgstr "Управление поведением Alpaca"
#: window.ui:294
msgid "Run in background"
msgstr "Запуск в фоновом режиме"
#: window.ui:385
msgid "Previous"
msgstr "Предыдущий"
#: window.ui:400
msgid "Next"
msgstr "Следующий"
#: window.ui:426
msgid "Welcome to Alpaca"
msgstr "Добро пожаловать в Alpaca"
#: window.ui:427
msgid "Powered by Ollama"
msgstr "При поддержке Ollama"
#: window.ui:430
msgid "Ollama Website"
msgstr "Веб-сайт Ollama"
#: window.ui:446
msgid "Disclaimer"
msgstr "Отказ от ответственности"
#: 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 и ее разработчики не несут ответственности за любой ущерб, "
"причиненный устройствам или программному обеспечению в результате выполнения "
"кода, сгенерированного с помощью модели искусственного интеллекта. "
"Пожалуйста, будьте осторожны и внимательно ознакомьтесь с кодом перед его "
"запуском."
#: window.ui:470
msgid "Keyboard Shortcuts"
msgstr "Комбинации Клавиш"
#: window.ui:474
msgid "About Alpaca"
msgstr "О Программе"
#: window.ui:505
msgid "Close application"
msgstr "Закрыть приложение"
#: window.ui:511
msgid "Clear chat"
msgstr "Очистить чат"
#: window.ui:523
msgid "Show shortcuts window"
msgstr "Показать окно комбинаций клавиш"
#: window.ui:530
msgid "Editor"
msgstr "Редактор"
#: window.ui:534
msgid "Copy"
msgstr "Копировать"
#: window.ui:540
msgid "Paste"
msgstr "Вставить"
#: window.ui:546
msgid "Send Message"
msgstr "Отправить Сообщение"
#, fuzzy
#~ msgid "Added basic shortcuts"
#~ 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 "Изменить Сервер"

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,8 @@
# connectionhandler.py # connectionhandler.py
import json, requests import json, requests
url = None
def simple_get(connection_url:str) -> dict: def simple_get(connection_url:str) -> dict:
try: try:
response = requests.get(connection_url) response = requests.get(connection_url)
@@ -37,25 +39,3 @@ def stream_post(connection_url:str, data, callback:callable) -> dict:
except Exception as e: except Exception as e:
return {"status": "error", "status_code": 0} return {"status": "error", "status_code": 0}
from time import sleep
def stream_post_fake(connection_url:str, data, callback:callable) -> dict:
data = {
"status": "pulling manifest"
}
callback(data)
for i in range(2):
for a in range(11):
sleep(.1)
data = {
"status": f"downloading digestname {i}",
"digest": f"digestname {i}",
"total": 500,
"completed": a * 50
}
callback(data)
for msg in ["verifying sha256 digest", "writting manifest", "removing any unused layers", "success"]:
sleep(.1)
data = {"status": msg}
callback(data)
return {"status": "ok", "status_code": 200}

229
src/dialogs.py Normal file
View File

@@ -0,0 +1,229 @@
# dialogs.py
from gi.repository import Adw, Gtk, Gdk, GLib, GtkSource, Gio, GdkPixbuf
from .available_models import available_models
# CLEAR CHAT | WORKS
def clear_chat_response(self, dialog, task):
if dialog.choose_finish(task) == "clear":
self.clear_chat()
def clear_chat(self):
if self.bot_message is not None:
self.show_toast("info", 1, self.main_overlay)
return
dialog = Adw.AlertDialog(
heading=_("Clear Chat"),
body=_("Are you sure you want to clear the chat?"),
close_response="cancel"
)
dialog.add_response("cancel", _("Cancel"))
dialog.add_response("clear", _("Clear"))
dialog.set_response_appearance("clear", Adw.ResponseAppearance.DESTRUCTIVE)
dialog.choose(
parent = self,
cancellable = None,
callback = lambda dialog, task: clear_chat_response(self, dialog, task)
)
# DELETE CHAT | WORKS
def delete_chat_response(self, dialog, task, chat_name):
if dialog.choose_finish(task) == "delete":
self.delete_chat(chat_name)
def delete_chat(self, chat_name):
dialog = Adw.AlertDialog(
heading=_("Delete Chat"),
body=_("Are you sure you want to delete '{}'?").format(chat_name),
close_response="cancel"
)
dialog.add_response("cancel", _("Cancel"))
dialog.add_response("delete", _("Delete"))
dialog.set_response_appearance("delete", Adw.ResponseAppearance.DESTRUCTIVE)
dialog.choose(
parent = self,
cancellable = None,
callback = lambda dialog, task, chat_name=chat_name: delete_chat_response(self, dialog, task, chat_name)
)
# RENAME CHAT | WORKS
def rename_chat_response(self, dialog, task, old_chat_name, entry, label_element):
if not entry: return
new_chat_name = entry.get_text()
if old_chat_name == new_chat_name: return
if new_chat_name and (task is None or dialog.choose_finish(task) == "rename"):
self.rename_chat(old_chat_name, new_chat_name, label_element)
def rename_chat(self, label_element):
chat_name = label_element.get_parent().get_name()
entry = Gtk.Entry()
dialog = Adw.AlertDialog(
heading=_("Rename Chat"),
body=_("Renaming '{}'").format(chat_name),
extra_child=entry,
close_response="cancel"
)
entry.connect("activate", lambda dialog, old_chat_name=chat_name, entry=entry, label_element=label_element: rename_chat_response(self, dialog, None, old_chat_name, entry, label_element))
dialog.add_response("cancel", _("Cancel"))
dialog.add_response("rename", _("Rename"))
dialog.set_response_appearance("rename", Adw.ResponseAppearance.SUGGESTED)
dialog.choose(
parent = self,
cancellable = None,
callback = lambda dialog, task, old_chat_name=chat_name, entry=entry, label_element=label_element: rename_chat_response(self, dialog, task, old_chat_name, entry, label_element)
)
# NEW CHAT | WORKS | UNUSED REASON: The 'Add Chat' button now creates a chat without a name AKA "New Chat"
def new_chat_response(self, dialog, task, entry):
chat_name = _("New Chat")
if entry is not None and entry.get_text() != "": chat_name = entry.get_text()
if chat_name and (task is None or dialog.choose_finish(task) == "create"):
self.new_chat(chat_name)
def new_chat(self):
entry = Gtk.Entry()
dialog = Adw.AlertDialog(
heading=_("Create Chat"),
body=_("Enter name for new chat"),
extra_child=entry,
close_response="cancel"
)
entry.connect("activate", lambda dialog, entry: new_chat_response(self, dialog, None, entry))
dialog.add_response("cancel", _("Cancel"))
dialog.add_response("create", _("Create"))
dialog.set_response_appearance("create", Adw.ResponseAppearance.SUGGESTED)
dialog.choose(
parent = self,
cancellable = None,
callback = lambda dialog, task, entry=entry: new_chat_response(self, dialog, task, entry)
)
# STOP PULL MODEL | WORKS
def stop_pull_model_response(self, dialog, task, model_name):
if dialog.choose_finish(task) == "stop":
self.stop_pull_model(model_name)
def stop_pull_model(self, model_name):
dialog = Adw.AlertDialog(
heading=_("Stop Model"),
body=_("Are you sure you want to stop pulling '{}'?").format(model_name),
close_response="cancel"
)
dialog.add_response("cancel", _("Cancel"))
dialog.add_response("stop", _("Stop"))
dialog.set_response_appearance("stop", Adw.ResponseAppearance.DESTRUCTIVE)
dialog.choose(
parent = self.manage_models_dialog,
cancellable = None,
callback = lambda dialog, task, model_name = model_name: stop_pull_model_response(self, dialog, task, model_name)
)
# DELETE MODEL | WORKS
def delete_model_response(self, dialog, task, model_name):
if dialog.choose_finish(task) == "delete":
self.delete_model(model_name)
def delete_model(self, model_name):
dialog = Adw.AlertDialog(
heading=_("Delete Model"),
body=_("Are you sure you want to delete '{}'?").format(model_name),
close_response="cancel"
)
dialog.add_response("cancel", _("Cancel"))
dialog.add_response("delete", _("Delete"))
dialog.set_response_appearance("delete", Adw.ResponseAppearance.DESTRUCTIVE)
dialog.choose(
parent = self.manage_models_dialog,
cancellable = None,
callback = lambda dialog, task, model_name = model_name: delete_model_response(self, dialog, task, model_name)
)
# PULL MODEL | WORKS
def pull_model_response(self, dialog, task, model_name, tag_drop_down):
if dialog.choose_finish(task) == "pull":
model = f"{model_name}:{tag_drop_down.get_selected_item().get_string().split(' | ')[0]}"
self.pull_model(model)
def pull_model(self, model_name):
tag_list = Gtk.StringList()
for tag in available_models[model_name]['tags']:
tag_list.append(f"{tag[0]} | {tag[1]}")
tag_drop_down = Gtk.DropDown(
enable_search=True,
model=tag_list
)
dialog = Adw.AlertDialog(
heading=_("Pull Model"),
body=_("Please select a tag to pull '{}'").format(model_name),
extra_child=tag_drop_down,
close_response="cancel"
)
dialog.add_response("cancel", _("Cancel"))
dialog.add_response("pull", _("Pull"))
dialog.set_response_appearance("pull", Adw.ResponseAppearance.SUGGESTED)
dialog.choose(
parent = self.manage_models_dialog,
cancellable = None,
callback = lambda dialog, task, model_name = model_name, tag_drop_down = tag_drop_down: pull_model_response(self, dialog, task, model_name, tag_drop_down)
)
# REMOVE IMAGE | WORKS
def remove_image_response(self, dialog, task):
if dialog.choose_finish(task) == 'remove':
self.remove_image()
def remove_image(self):
dialog = Adw.AlertDialog(
heading=_("Remove Image"),
body=_("Are you sure you want to remove image?"),
close_response="cancel"
)
dialog.add_response("cancel", _("Cancel"))
dialog.add_response("remove", _("Remove"))
dialog.set_response_appearance("remove", Adw.ResponseAppearance.DESTRUCTIVE)
dialog.choose(
parent = self,
cancellable = None,
callback = lambda dialog, task: remove_image_response(self, dialog, task)
)
# RECONNECT REMOTE |
def reconnect_remote_response(self, dialog, task, entry):
response = dialog.choose_finish(task)
if not task or response == "remote":
self.connect_remote(entry.get_text())
elif response == "local":
self.connect_local()
elif response == "close":
self.destroy()
def reconnect_remote(self, current_url):
entry = Gtk.Entry(
css_classes = ["error"],
text = current_url
)
dialog = Adw.AlertDialog(
heading=_("Connection Error"),
body=_("The remote instance has disconnected"),
extra_child=entry
)
entry.connect("activate", lambda entry, dialog: reconnect_remote_response(self, dialog, None, entry))
dialog.add_response("close", _("Close Alpaca"))
dialog.add_response("local", _("Use local instance"))
dialog.add_response("remote", _("Connect"))
dialog.set_response_appearance("remote", Adw.ResponseAppearance.SUGGESTED)
dialog.choose(
parent = self,
cancellable = None,
callback = lambda dialog, task, entry=entry: reconnect_remote_response(self, dialog, task, entry)
)

23
src/local_instance.py Normal file
View File

@@ -0,0 +1,23 @@
# local_instance.py
import subprocess, os, threading
from time import sleep
instance = None
port = 11435
data_dir = os.getenv("XDG_DATA_HOME")
def start():
instance = subprocess.Popen(["/app/bin/ollama", "serve"], env={**os.environ, 'OLLAMA_HOST': f"127.0.0.1:{port}", "HOME": data_dir}, stderr=subprocess.PIPE, text=True)
print("Starting Alpaca's Ollama instance...")
sleep(1)
print("Started Alpaca's Ollama instance")
def stop():
if instance: instance.kill()
print("Stopped Alpaca's Ollama instance")
def reset():
stop()
sleep(1)
start()

View File

@@ -33,7 +33,6 @@ class AlpacaApplication(Adw.Application):
super().__init__(application_id='com.jeffser.Alpaca', super().__init__(application_id='com.jeffser.Alpaca',
flags=Gio.ApplicationFlags.DEFAULT_FLAGS) flags=Gio.ApplicationFlags.DEFAULT_FLAGS)
self.create_action('quit', lambda *_: self.quit(), ['<primary>q']) self.create_action('quit', lambda *_: self.quit(), ['<primary>q'])
self.create_action('clear', lambda *_: AlpacaWindow.clear_chat_dialog(self.props.active_window), ['<primary>e'])
self.create_action('preferences', lambda *_: AlpacaWindow.show_preferences_dialog(self.props.active_window), ['<primary>p']) self.create_action('preferences', lambda *_: AlpacaWindow.show_preferences_dialog(self.props.active_window), ['<primary>p'])
self.create_action('about', self.on_about_action) self.create_action('about', self.on_about_action)
@@ -48,10 +47,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.8.1', version='0.9.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\nDaimar Stein (Brazilian Portuguese) https://github.com/not-a-dev-stein', 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\nLouis Chauvet-Villaret (French) https://github.com/loulou64490',
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)

View File

@@ -31,7 +31,9 @@ alpaca_sources = [
'main.py', 'main.py',
'window.py', 'window.py',
'connection_handler.py', 'connection_handler.py',
'available_models.py' 'available_models.py',
'dialogs.py',
'local_instance.py'
] ]
install_data(alpaca_sources, install_dir: moduledir) install_data(alpaca_sources, install_dir: moduledir)

View File

@@ -2,6 +2,3 @@
background-color: #343434; background-color: #343434;
} }
.message-text-view {
background-color: #343434;
}

View File

@@ -1,11 +1,7 @@
.message-input { .message-input {
background-color: #EBEBEB; background-color: #EBEBEB;
border-radius: 10px;
} }
.message-text-view {
background-color: #EBEBEB;
}
.chat_row box.header { .chat_row box.header {
font-size: 14px; font-size: 14px;
} }

File diff suppressed because it is too large Load Diff

View File

@@ -3,6 +3,7 @@
<requires lib="gtk" version="4.0"/> <requires lib="gtk" version="4.0"/>
<requires lib="Adw" version="1.0"/> <requires lib="Adw" version="1.0"/>
<template class="AlpacaWindow" parent="AdwApplicationWindow"> <template class="AlpacaWindow" parent="AdwApplicationWindow">
<signal name="close-request" handler="closing_app"/>
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="width-request">360</property> <property name="width-request">360</property>
<property name="height-request">700</property> <property name="height-request">700</property>
@@ -27,8 +28,6 @@
</object> </object>
</child> </child>
<property name="content"> <property name="content">
<object class="AdwToastOverlay" id="main_overlay">
<child>
<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">
@@ -38,7 +37,7 @@
<child type="start"> <child type="start">
<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> <property name="icon-name">chat-message-new-symbolic</property>
<style> <style>
<class name="flat"/> <class name="flat"/>
</style> </style>
@@ -70,6 +69,7 @@
<property name="hexpand">true</property> <property name="hexpand">true</property>
<child> <child>
<object class="GtkListBox" id="chat_list_box"> <object class="GtkListBox" id="chat_list_box">
<signal name="row-selected" handler="chat_changed"/>
<property name="selection-mode">single</property> <property name="selection-mode">single</property>
<style> <style>
<class name="navigation-sidebar"></class> <class name="navigation-sidebar"></class>
@@ -97,6 +97,7 @@
<property name="spacing">12</property> <property name="spacing">12</property>
<child> <child>
<object class="GtkDropDown" id="model_drop_down"> <object class="GtkDropDown" id="model_drop_down">
<signal name="notify" handler="verify_if_image_can_be_used"/>
<property name="enable-search">true</property> <property name="enable-search">true</property>
<property name="model"> <property name="model">
<object class="GtkStringList" id="model_string_list"> <object class="GtkStringList" id="model_string_list">
@@ -108,6 +109,7 @@
</child> </child>
<child> <child>
<object class="GtkButton" id="manage_models_button"> <object class="GtkButton" id="manage_models_button">
<signal name="clicked" handler="manage_models_button_activate"/>
<property name="tooltip-text" translatable="yes">Manage models</property> <property name="tooltip-text" translatable="yes">Manage models</property>
<child> <child>
<object class="AdwButtonContent"> <object class="AdwButtonContent">
@@ -133,6 +135,8 @@
<property name="orientation">1</property> <property name="orientation">1</property>
<property name="vexpand">true</property> <property name="vexpand">true</property>
<property name="hexpand">true</property> <property name="hexpand">true</property>
<child>
<object class="AdwToastOverlay" id="main_overlay">
<child> <child>
<object class="GtkScrolledWindow" id="chat_window"> <object class="GtkScrolledWindow" id="chat_window">
<property name="propagate-natural-height">true</property> <property name="propagate-natural-height">true</property>
@@ -162,7 +166,8 @@
</child> </child>
</object> </object>
</child> </child>
</object>
</child>
<child> <child>
<object class="AdwClamp"> <object class="AdwClamp">
<property name="maximum-size">1000</property> <property name="maximum-size">1000</property>
@@ -175,64 +180,66 @@
<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="GtkButton" id="image_button">
<signal name="clicked" handler="open_image"/>
<property name="vexpand">false</property>
<property name="valign">3</property>
<property name="sensitive">false</property>
<property name="tooltip-text" translatable="yes">Only available on selected models</property>
<child>
<object class="AdwButtonContent">
<property name="icon-name">image-x-generic-symbolic</property>
</object>
</child>
</object>
</child>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<style> <style>
<class name="card"/>
<class name="message-input"/> <class name="message-input"/>
</style> </style>
<child> <child>
<object class="GtkScrolledWindow"> <object class="GtkScrolledWindow">
<property name="margin-start">12</property> <property name="margin-start">12</property>
<property name="margin-end">12</property> <property name="margin-end">12</property>
<style>
<class name="message-input"/>
<class name="undershoot-bottom"/>
<class name="undershoot-top"/>
</style>
<child> <child>
<object class="GtkTextView" id="message_text_view"> <object class="GtkTextView" id="message_text_view">
<property name="wrap-mode">word</property> <property name="wrap-mode">word</property>
<property name="top-margin">6</property> <property name="top-margin">6</property>
<property name="bottom-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="message-text-view"/> <class name="message-input"/>
</style> </style>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
<child>
<object class="GtkBox">
<property name="orientation">1</property>
<property name="spacing">12</property>
<child> <child>
<object class="GtkButton" id="send_button"> <object class="GtkButton" id="send_button">
<signal name="clicked" handler="send_message"/>
<property name="vexpand">false</property>
<property name="valign">3</property>
<style> <style>
<class name="suggested-action"/> <class name="suggested-action"/>
<class name="circular"/>
</style> </style>
<child> <child>
<object class="AdwButtonContent"> <object class="AdwButtonContent">
<property name="label" translatable="yes">Send</property>
<property name="icon-name">send-to-symbolic</property> <property name="icon-name">send-to-symbolic</property>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
<child>
<object class="GtkButton" id="image_button">
<property name="sensitive">false</property>
<property name="tooltip-text" translatable="yes">Only available on selected models</property>
<child>
<object class="AdwButtonContent">
<property name="label" translatable="yes">Image</property>
<property name="icon-name">image-x-generic-symbolic</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object> </object>
</child> </child>
</object> </object>
@@ -244,8 +251,6 @@
</object> </object>
</child> </child>
</object> </object>
</child>
</object>
</property> </property>
<object class="AdwPreferencesDialog" id="preferences_dialog"> <object class="AdwPreferencesDialog" id="preferences_dialog">
<property name="can-close">true</property> <property name="can-close">true</property>
@@ -253,7 +258,7 @@
<property name="height-request">600</property> <property name="height-request">600</property>
<property name="title" translatable="yes">Preferences</property> <property name="title" translatable="yes">Preferences</property>
<child> <child>
<object class="AdwPreferencesPage" id="connection_page"> <object class="AdwPreferencesPage" id="general_page">
<property name="title" translatable="yes">General</property> <property name="title" translatable="yes">General</property>
<property name="icon-name">insert-link-symbolic</property> <property name="icon-name">insert-link-symbolic</property>
<child> <child>
@@ -267,6 +272,7 @@
</child> </child>
<child> <child>
<object class="AdwEntryRow" id="remote_connection_entry"> <object class="AdwEntryRow" id="remote_connection_entry">
<signal name="apply" handler="change_remote_url"/>
<property name="title" translatable="yes">URL of remote instance</property> <property name="title" translatable="yes">URL of remote instance</property>
<property name="show-apply-button">true</property> <property name="show-apply-button">true</property>
</object> </object>
@@ -286,6 +292,18 @@
</child> </child>
</object> </object>
</child> </child>
<!--<child>
<object class="AdwPreferencesPage" id="model_page">
<property name="title" translatable="yes">Advanced Model Settings</property>
<property name="icon-name">preferences-system-symbolic</property>
<child>
<object class="AdwPreferencesGroup">
<property name="title" translatable="yes">Model Tweaks</property>
<property name="description" translatable="yes">Manage the behavior of the AI models</property>
</object>
</child>
</object>
</child>-->
</object> </object>
<object class="AdwDialog" id="manage_models_dialog"> <object class="AdwDialog" id="manage_models_dialog">
@@ -368,6 +386,7 @@
<property name="margin-bottom">5</property> <property name="margin-bottom">5</property>
<child type="start"> <child type="start">
<object class="GtkButton" id="welcome_previous_button"> <object class="GtkButton" id="welcome_previous_button">
<signal name="clicked" handler="welcome_previous_button_activate"/>
<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>
@@ -383,6 +402,7 @@
</child> </child>
<child type="end"> <child type="end">
<object class="GtkButton" id="welcome_next_button"> <object class="GtkButton" id="welcome_next_button">
<signal name="clicked" handler="welcome_next_button_activate"/>
<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>
@@ -395,6 +415,7 @@
<child> <child>
<object class="AdwCarousel" id="welcome_carousel"> <object class="AdwCarousel" id="welcome_carousel">
<signal name="page-changed" handler="welcome_carousel_page_changed"/>
<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>
@@ -433,6 +454,94 @@
<property name="description" translatable="yes">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.</property> <property name="description" translatable="yes">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.</property>
</object> </object>
</child> </child>
<child>
<object class="AdwStatusPage">
<property name="hexpand">true</property>
<property name="vexpand">true</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="title" translatable="yes">Featured Models</property>
<property name="description" translatable="yes">Alpaca works locally on your device, to start chatting you'll need an AI model, you can either pull models from this list or the 'Manage Models' menu later.</property>
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<style>
<class name="boxed-list"/>
</style>
<child>
<object class="AdwActionRow">
<property name="title" translatable="no">Llama3</property>
<property name="subtitle" translatable="yes">Built by Meta</property>
<child type="suffix">
<object class="GtkButton">
<signal name="clicked" handler="pull_featured_model"/>
<property name="vexpand">false</property>
<property name="icon-name">folder-download-symbolic</property>
<property name="valign">3</property>
<style>
<class name="accent"/>
</style>
</object>
</child>
</object>
</child>
<child>
<object class="AdwActionRow">
<property name="title" translatable="no">Gemma</property>
<property name="subtitle" translatable="yes">Built by Google DeepMind</property>
<child type="suffix">
<object class="GtkButton">
<signal name="clicked" handler="pull_featured_model"/>
<property name="vexpand">false</property>
<property name="icon-name">folder-download-symbolic</property>
<property name="valign">3</property>
<style>
<class name="accent"/>
</style>
</object>
</child>
</object>
</child>
<child>
<object class="AdwActionRow">
<property name="title" translatable="no">Phi3</property>
<property name="subtitle" translatable="yes">Built by Microsoft</property>
<child type="suffix">
<object class="GtkButton">
<signal name="clicked" handler="pull_featured_model"/>
<property name="vexpand">false</property>
<property name="icon-name">folder-download-symbolic</property>
<property name="valign">3</property>
<style>
<class name="accent"/>
</style>
</object>
</child>
</object>
</child>
<child>
<object class="AdwActionRow">
<property name="title" translatable="no">Llava</property>
<property name="subtitle" translatable="yes">Multimodal AI with image recognition</property>
<child type="suffix">
<object class="GtkButton">
<signal name="clicked" handler="pull_featured_model"/>
<property name="vexpand">false</property>
<property name="icon-name">folder-download-symbolic</property>
<property name="valign">3</property>
<style>
<class name="accent"/>
</style>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object> </object>
</child> </child>
</object> </object>
@@ -508,6 +617,12 @@
<property name="title" translatable="yes">Preferences</property> <property name="title" translatable="yes">Preferences</property>
</object> </object>
</child> </child>
<child>
<object class="GtkShortcutsShortcut">
<property name="accelerator">&lt;ctrl&gt;N</property>
<property name="title" translatable="yes">New Chat</property>
</object>
</child>
<child> <child>
<object class="GtkShortcutsShortcut"> <object class="GtkShortcutsShortcut">
<property name="accelerator">&lt;ctrl&gt;slash</property> <property name="accelerator">&lt;ctrl&gt;slash</property>
@@ -550,3 +665,4 @@
</object> </object>
</interface> </interface>

View File

@@ -4,7 +4,9 @@ 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 French"
msgmerge -U po/fr.po po/alpaca.pot
echo "Updating Brazilian Portuguese" echo "Updating Brazilian Portuguese"
msgmerge -U po/pt_BR.po po/alpaca.pot msgmerge -U po/pt_BR.po po/alpaca.pot