65 Commits
0.1.1 ... 0.5.1

Author SHA1 Message Date
jeffser
849867728c I forgot this text 2024-05-19 21:33:43 -06:00
jeffser
9fba69566d Updating template for translations 2024-05-19 21:29:47 -06:00
jeffser
86d2ee0be0 Preparing for 0.5.1 2024-05-19 21:29:06 -06:00
jeffser
f333f50016 User can now leave chat name empty when creating a new one, it will at a placeholder text 2024-05-19 21:13:30 -06:00
jeffser
47faa4581e Fix: Spanish translation wasn't working 2024-05-19 20:28:19 -06:00
jeffser
c8cc4f3960 Spanish translation 2024-05-19 20:18:02 -06:00
jeffser
8834a4bb88 Added template for translations and an empty spanish .po 2024-05-19 19:45:27 -06:00
jeffser
51c01a5afa Removed _ from some text 2024-05-19 19:41:27 -06:00
jeffser
e550f49a18 Merge branch 'main' of github.com-jeffser:Jeffser/Alpaca 2024-05-19 19:30:46 -06:00
jeffser
65c46570c5 Fixes for translating 2024-05-19 19:30:00 -06:00
Alex K
126f588fcb Add files via upload (#5) 2024-05-19 19:08:11 -06:00
jeffser
6fbf6e139b Better translation support, adding dialogs 2024-05-19 19:06:11 -06:00
jeffser
15fdd0ae1a Added interrupt 'stop' button 2024-05-19 18:29:20 -06:00
jeffser
0096346b0c Quick fixes 2024-05-19 17:55:01 -06:00
jeffser
e19aece78a Quick fix 2024-05-19 17:36:32 -06:00
jeffser
d540114ae5 Added support for background pulling of models 2024-05-19 17:09:58 -06:00
jeffser
454aeac5e2 Better scalling for different window sizes 2024-05-19 14:35:37 -06:00
jeffser
f6cc6ac894 Fixed: can't close app normally if first time setup fails 2024-05-19 12:33:24 -06:00
jeffser
adef5b5671 Added basic shortcuts 2024-05-19 12:10:14 -06:00
jeffser
9f00890f46 Quick fix 2024-05-19 00:46:10 -06:00
jeffser
8ee265f926 Preparing for 0.5.0 2024-05-19 00:36:11 -06:00
jeffser
bc94c33807 Quick fix 2024-05-19 00:30:05 -06:00
jeffser
5ee5de4ebb Finally, support for multiple chats is here! 2024-05-19 00:17:00 -06:00
jeffser
e941648eb1 Added frame to message textview widget 2024-05-18 19:53:13 -06:00
jeffser
625bcb3f1f Fixed: code blocks shouldn't be editable 2024-05-18 19:48:43 -06:00
jeffser
2725928363 New tags for markup (bold, list, title, subtitle, monospace) 2024-05-18 19:33:22 -06:00
jeffser
b471ad70fe Initial support for Pango Markup 2024-05-18 18:10:01 -06:00
jeffser
ce18aa7de2 Added notifications if app is not active and a model pull finishes (and new symbolic icon) 2024-05-18 17:28:10 -06:00
jeffser
25a761d7d1 Added loading spinner when sending message 2024-05-18 16:46:20 -06:00
jeffser
d944af7a39 Fixed readme 2024-05-18 16:23:04 -06:00
jeffser
81555bef5b Deleted flatpak-builder folder 2024-05-18 15:54:14 -06:00
jeffser
02acbb2d70 Added support for multiple tags on a single model 2024-05-18 15:52:50 -06:00
jeffser
8ddce304b2 Quick fix 2024-05-18 11:46:27 -06:00
jeffser
d989ec5324 Added autoscroll when the user is at the bottom of the chat 2024-05-18 11:44:16 -06:00
jeffser
01ea3a0dc8 Fixed images margin 2024-05-18 11:32:44 -06:00
jeffser
5e7d590447 Fixed message footer 2024-05-17 01:00:32 -06:00
jeffser
ed4fbc7950 Fixed: messages didn't load if they don't have an image 2024-05-17 00:47:41 -06:00
jeffser
07994db0a5 I forgot to change something oops 2024-05-17 00:45:25 -06:00
jeffser
2290105ac1 Preparing update to 0.4.0 2024-05-17 00:39:49 -06:00
jeffser
3b695031bc Added code syntax highlighting, Image recognition (llava model), multiline prompt, and some fixes 2024-05-17 00:35:34 -06:00
jeffser
83cb2c3b90 Code blocks v1 2024-05-16 20:13:18 -06:00
jeffser
e4360925b6 Added version notes 2024-05-16 15:15:42 -06:00
jeffser
425e1b0211 Only show (Save changes?) dialog when you change the url 2024-05-16 13:58:13 -06:00
jeffser
529687ffdb Removed Soup requirement since I'm now using requests 2024-05-16 11:54:59 -06:00
jeffser
34e3511d62 Merge branch 'main' of github.com-jeffser:Jeffser/Alpaca 2024-05-16 11:42:48 -06:00
jeffser
70e2c81eff Added credit to Alex K (Russian translation) 2024-05-16 11:42:42 -06:00
Alex K
d8ba1f5696 Add Russian translation (#1)
* Add files via upload

* Update ru.po
2024-05-16 11:37:35 -06:00
jeffser
b21f7490ec Fixed description 2024-05-16 10:01:08 -06:00
jeffser
33eed32a15 Changed brand colors 2024-05-16 09:58:57 -06:00
jeffser
b9887d9286 Fixed 'cannot close app on first setup' 2024-05-16 09:50:44 -06:00
jeffser
d1fbdad486 Fixed 'cannot close app on first setup' 2024-05-16 09:50:35 -06:00
Jeffry Samuel
28d0860522 Update README.md 2024-05-15 23:05:06 -06:00
Jeffry Samuel
a4981b8e9c Update README.md 2024-05-15 23:03:14 -06:00
jeffser
76486da3d4 Fixes for 0.2.2 2024-05-14 00:27:02 -06:00
jeffser
c7303cd278 Quick fix for 0.2.1 2024-05-13 13:53:58 -06:00
jeffser
5866c5d4fc New features and changes for 0.2.0 2024-05-13 13:26:32 -06:00
jeffser
190bf7017f New features and changes for 0.2.0 2024-05-13 13:25:46 -06:00
Jeffry Samuel
43b2e469ef Better readme 2024-05-12 23:55:36 -06:00
jeffser
0614ddc39b Final commit before 0.1.2 I swear 2024-05-12 23:33:10 -06:00
jeffser
d813a54a64 One last quick fix before 0.1.2 2024-05-12 23:30:08 -06:00
jeffser
6c9e7d4bdb Quick fixes for tag 0.1.2 2024-05-12 23:26:47 -06:00
jeffser
f24b56cc1c quick fix 2024-05-12 22:54:55 -06:00
jeffser
8f2bbf2501 quick fix 2024-05-12 22:52:10 -06:00
jeffser
6869197693 quick fix 2024-05-12 22:49:55 -06:00
jeffser
0feb9ac700 Quick fixes of metadata 2024-05-12 22:45:31 -06:00
20 changed files with 3825 additions and 475 deletions

View File

@@ -1,40 +1,47 @@
<img src="https://jeffser.com/images/alpaca/logo.svg">
# Alpaca
An [Ollama](https://github.com/ollama/ollama) client made with GTK4 and Adwaita.
## Disclaimer
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.
## ‼I NEED AN ICON‼
I'm not a graphic designer, it would mean the world to me if someone could make a [GNOME icon](https://developer.gnome.org/hig/guidelines/app-icons.html) for this app.
## ⚠THIS IS UNDER DEVELOPMENT⚠
This is my first GTK4 / Adwaita / Python app, so it might crash and some features are still under development, please report any errors if you can, thank you!
---
> [!WARNING]
> 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.
> [!important]
> This is my first GTK4 / Adwaita / Python app, so it might crash and some features are still under development, please report any errors if you can, thank you!
## Features!
- Talk to multiple models in the same conversation
- Pull and delete models from the app
- Image recognition
- Code highlighting
- Multiple conversations
- Notifications
## Future features!
- Persistent conversations
- Multiple conversations
- Image / document recognition
- Document recognition
- Import / Export chats
## Screenies
![Screenshot from 2024-05-12 19-58-28](https://github.com/Jeffser/Alpaca/assets/69224322/e28df5c9-6419-4800-bbbc-38821f096922)
![Screenshot from 2024-05-12 20-01-08](https://github.com/Jeffser/Alpaca/assets/69224322/c4083864-8c39-40e6-83b6-aff9d62183ca)
![Screenshot from 2024-05-12 20-01-31](https://github.com/Jeffser/Alpaca/assets/69224322/76deb8a2-13a5-480a-b99d-4de40159c229)
Login to Ollama instance | Chatting with models | Managing models
:-------------------------:|:-------------------------:|:-------------------------:
![Screenshot from 2024-05-12 19-58-28](https://jeffser.com/images/alpaca/screenie1.png) | ![Screenshot from 2024-05-12 20-01-08](https://jeffser.com/images/alpaca/screenie2.png) | ![Screenshot from 2024-05-12 20-01-31](https://jeffser.com/images/alpaca/screenie3.png)
## Preview
1. Clone repo using Gnome Builder
2. Press the `run` button
## Instalation
1. Clone repo using Gnome Builder
2. Build the app using the `build` button
3. Prepare the file using the `install` button (it doesn't actually install it, idk)
4. Then press the `export` button, it will export a `com.jeffser.Alpaca.flatpak` file, you can install it just by opening it
1. Go to the `releases` page
2. Download the latest flatpak package
3. Open it
## Usage
- You'll need an Ollama instance, I recommend using the [Docker image](https://ollama.com/blog/ollama-is-now-available-as-an-official-docker-image)

View File

@@ -23,6 +23,54 @@
"*.a"
],
"modules" : [
{
"name": "python3-requests",
"buildsystem": "simple",
"build-commands": [
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"requests\" --no-build-isolation"
],
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl",
"sha256": "dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/63/09/c1bc53dab74b1816a00d8d030de5bf98f724c52c1635e07681d312f20be8/charset-normalizer-3.3.2.tar.gz",
"sha256": "f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/e5/3e/741d8c82801c347547f8a2a06aa57dbb1992be9e948df2ea0eda2c8b79e8/idna-3.7-py3-none-any.whl",
"sha256": "82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl",
"sha256": "58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl",
"sha256": "450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"
}
]
},
{
"name": "python3-pillow",
"buildsystem": "simple",
"build-commands": [
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"pillow\" --no-build-isolation"
],
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/ef/43/c50c17c5f7d438e836c169e343695534c38c77f60e7c90389bd77981bc21/pillow-10.3.0.tar.gz",
"sha256": "9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d"
}
]
},
{
"name" : "alpaca",
"builddir" : true,
@@ -30,11 +78,10 @@
"sources" : [
{
"type" : "git",
"url" : "https://github.com/Jeffser/Alpaca.git",
"branch": "main"
"url" : "file:///home/tentri/Documents/Alpaca",
"branch" : "main"
}
]
},
"python3-requests.json"
}
]
}

View File

@@ -4,5 +4,5 @@ Exec=alpaca
Icon=com.jeffser.Alpaca
Terminal=false
Type=Application
Categories=GTK;
Categories=Utility;Development;Chat;
StartupNotify=true

View File

@@ -7,13 +7,14 @@
<name>Alpaca</name>
<summary>An Ollama client</summary>
<description>
<p>Made with GTK4 and Adwaita.</p>
<p><b>Features</b></p>
<p>Chat with multiple AI models</p>
<p>An Ollama client</p>
<p>Features</p>
<ul>
<li>Talk to multiple models in the same conversation</li>
<li>Pull and delete models from the app</li>
</ul>
<p><b>Disclaimer</b></p>
<p>Disclaimer</p>
<p>This project is not affiliated at all with Ollama, I'm not responsible for any damages to your device or software caused by running code given by any models.</p>
</description>
<developer id="tld.vendor">
@@ -23,28 +24,167 @@
<binary>alpaca</binary>
</provides>
<icon type="stock">com.jeffser.Alpaca</icon>
<categories>
<category>Utility</category>
<category>Development</category>
<category>Chat</category>
</categories>
<branding>
<color type="primary" scheme_preference="light">#ff00ff</color>
<color type="primary" scheme_preference="dark">#993d3d</color>
<color type="primary" scheme_preference="light">#8cdef5</color>
<color type="primary" scheme_preference="dark">#0f2b78</color>
</branding>
<screenshots>
<screenshot type="default">
<image>https://jeffser.com/images/alpaca/screenie1.png</image>
<caption>Login into an Ollama instance</caption>
<caption>Welcome dialog</caption>
</screenshot>
<screenshot type="default">
<screenshot>
<image>https://jeffser.com/images/alpaca/screenie2.png</image>
<caption>A conversation involving multiple models</caption>
</screenshot>
<screenshot type="default">
<screenshot>
<image>https://jeffser.com/images/alpaca/screenie3.png</image>
<caption>Managing models</caption>
</screenshot>
</screenshots>
<content_rating type="oars-1.1">
<content_attribute id="money-purchasing">mild</content_attribute>
</content_rating>
<content_rating type="oars-1.1" />
<url type="bugtracker">https://github.com/Jeffser/Alpaca/issues</url>
<url type="homepage">https://github.com/Jeffser/Alpaca</url>
<url type="donation">https://github.com/sponsors/Jeffser</url>
<releases>
<release version="0.5.1" date="2024-05-19">
<url type="details">https://github.com/Jeffser/Alpaca/releases/tag/0.5.1</url>
<p>Another Daily Update</p>
<ul>
<li>Added full Spanish translation</li>
<li>Added support for background pulling of multiple models</li>
<li>Added interrupt button</li>
<li>Added basic shortcuts</li>
<li>Better translation support</li>
<li>User can now leave chat name empty when creating a new one, it will add a placeholder name</li>
<li>Better scalling for different window sizes</li>
<li>Fixed: Can't close app if first time setup fails</li>
</ul>
<p>
Please report any errors to the issues page, thank you.
</p>
</release>
<release version="0.5.0" date="2024-05-19">
<url type="details">https://github.com/Jeffser/Alpaca/releases/tag/0.5.0</url>
<description>
<p>Really Big Update</p>
<ul>
<li>Added multiple chats support!</li>
<li>Added Pango Markup support (bold, list, title, subtitle, monospace)</li>
<li>Added autoscroll if the user is at the bottom of the chat</li>
<li>Added support for multiple tags on a single model</li>
<li>Added better model management dialog</li>
<li>Added loading spinner when sending message</li>
<li>Added notifications if app is not active and a model pull finishes</li>
<li>Added new symbolic icon</li>
<li>Added frame to message textview widget</li>
<li>Fixed "code blocks shouldn't be editable"</li>
</ul>
<p>
Please report any errors to the issues page, thank you.
</p>
</description>
</release>
<release version="0.4.0" date="2024-05-17">
<url type="details">https://github.com/Jeffser/Alpaca/releases/tag/0.4.0</url>
<description>
<p>Big Update</p>
<ul>
<li>Added code highlighting</li>
<li>Added image recognition (llava model)</li>
<li>Added multiline prompt</li>
<li>Fixed some small bugs</li>
<li>General optimization</li>
</ul>
<p>
Please report any errors to the issues page, thank you.
</p>
</description>
</release>
<release version="0.3.0" date="2024-05-16">
<url type="details">https://github.com/Jeffser/Alpaca/releases/tag/0.3.0</url>
<description>
<p>Fixes and features</p>
<ul>
<li>Russian translation (thanks github/alexkdeveloper)</li>
<li>Fixed: Cannot close app on first setup</li>
<li>Fixed: Brand colors for Flathub</li>
<li>Fixed: App description</li>
<li>Fixed: Only show 'save changes dialog' when you actually change the url</li>
</ul>
<p>
Please report any errors to the issues page, thank you.
</p>
</description>
</release>
<release version="0.2.2" date="2024-05-14">
<url type="details">https://github.com/Jeffser/Alpaca/releases/tag/0.2.2</url>
<description>
<p>0.2.2 Bug fixes</p>
<ul>
<li>Toast messages appearing behind dialogs</li>
<li>Local model list not updating when changing servers</li>
<li>Closing the setup dialog closes the whole app</li>
</ul>
<p>
Please report any errors to the issues page, thank you.
</p>
</description>
</release>
<release version="0.2.1" date="2024-05-14">
<url type="details">https://github.com/Jeffser/Alpaca/releases/tag/0.2.1</url>
<description>
<p>0.2.1 Data saving fix</p>
<p>The app didn't save the config files and chat history to the right directory, this is now fixed</p>
<p>
Please report any errors to the issues page, thank you.
</p>
</description>
</release>
<release version="0.2.0" date="2024-05-14">
<url type="details">https://github.com/Jeffser/Alpaca/releases/tag/0.2.0</url>
<description>
<p>0.2.0</p>
<p>Big Update</p>
<p>New Features</p>
<ul>
<li>Restore chat after closing the app</li>
<li>A button to clear the chat</li>
<li>Fixed multiple bugs involving how messages are shown</li>
<li>Added welcome dialog</li>
<li>More stability</li>
</ul>
<p>
Please report any errors to the issues page, thank you.
</p>
</description>
</release>
<release version="0.1.2" date="2024-05-13">
<url type="details">https://github.com/Jeffser/Alpaca/releases/tag/0.1.2</url>
<description>
<p>0.1.2 Quick fixes</p>
<p>This release fixes some metadata needed to have a proper Flatpak application</p>
</description>
</release>
<release version="0.1.1" date="2024-05-12">
<url type="details">https://github.com/Jeffser/Alpaca/releases/tag/0.1.1</url>
<description>
<p>0.1.1 Stable Release</p>
<p>This is the first public version of Alpaca</p>
<p>Features</p>
<ul>
<li>Talk to multiple models in the same conversation</li>
<li>Pull and delete models from the app</li>
</ul>
<p>
Please report any errors to the issues page, thank you.
</p>
</description>
</release>
</releases>
</component>

View File

@@ -1 +1,2 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g color="#000" fill="#2e3436"><path d="M7.188 2.281c-.094.056-.192.125-.29.19L5.566 3.803a1.684 1.684 0 11-2.17 2.17L2.332 7.037c.506-.069 1.017-.136 1.2.026.242.214.139 1.031.155 1.656.213.088.427.171.657.219.04.008.085-.007.125 0 .337-.525.683-1.288 1-1.344.322-.057.905.562 1.406.937a3.67 3.67 0 00.656-.468c-.195-.595-.594-1.369-.437-1.657.158-.29 1.019-.37 1.625-.531.028-.183.062-.371.062-.562 0-.075-.027-.146-.031-.22-.587-.217-1.435-.385-1.562-.687-.128-.302.34-1.021.593-1.593a3.722 3.722 0 00-.593-.532zm3.875 3.25c-.165.475-.305 1.086-.47 1.563-.43.047-.84.14-1.218.312-.38-.322-.787-.773-1.156-1.093a5.562 5.562 0 00-.688.468c.177.46.453 1.001.625 1.469-.298.309-.531.67-.719 1.063-.494 0-1.102-.084-1.593-.094a5.68 5.68 0 00-.219.812c.435.24 1.006.468 1.438.72-.006.093-.032.185-.032.28 0 .333.049.66.125.97-.382.304-.898.63-1.28.937.015.044.04.083.058.127l.613.613c.417-.1.868-.223 1.266-.303.248.343.532.626.875.875-.027.135-.068.283-.104.428.174-.063.34-.155.482-.297l1.432-1.432a1.994 1.994 0 01.533-3.918c.919 0 1.684.623 1.918 1.467l1.338-1.338c.06-.06.11-.124.156-.191-.035-.062-.06-.13-.1-.188.096-.152.205-.31.315-.47.017-.348-.1-.7-.37-.971l-.177-.176c-.28.192-.561.387-.83.555-.345-.233-.746-.383-1.156-.5-.077-.507-.107-1.132-.187-1.625a5.44 5.44 0 00-.875-.063zm-9.247.608c-.087.068-.173.138-.254.205l.014.035z" style="marker:none" overflow="visible"/><path d="M8.707.293a1 1 0 00-1.415 0l-6.999 7a1 1 0 000 1.413l7 7.001a1 1 0 001.415 0l7-7a1 1 0 000-1.413zm-.708 2.121l5.587 5.587L8 13.586 2.414 7.999z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal;marker:none" font-weight="400" font-family="sans-serif" overflow="visible"/></g></svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><g fill="#222222"><path d="m 14 3.175781 v 3.824219 c 0 2.179688 -1.820312 4 -4 4 h -3.585938 l -2 2 h 5.585938 l 3 3 v -3 c 1.644531 0 3 -1.355469 3 -3 v -4 c 0 -1.292969 -0.839844 -2.40625 -2 -2.824219 z m 0 0"/><path d="m 3 0 c -1.644531 0 -3 1.355469 -3 3 v 4 c 0 1.644531 1.355469 3 3 3 v 3 l 3 -3 h 4 c 1.644531 0 3 -1.355469 3 -3 v -4 c 0 -1.644531 -1.355469 -3 -3 -3 z m 0 0"/></g></svg>

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 522 B

View File

@@ -33,4 +33,4 @@ test('Validate schema file',
compile_schemas,
args: ['--strict', '--dry-run', meson.current_source_dir()])
subdir('icons')
subdir('icons')

View File

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

View File

@@ -0,0 +1,2 @@
ru
es

538
po/alpaca.pot Normal file
View File

@@ -0,0 +1,538 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-19 21:30-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: data/com.jeffser.Alpaca.desktop.in:3
#: data/com.jeffser.Alpaca.metainfo.xml.in:7
msgid "Alpaca"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:8
#: data/com.jeffser.Alpaca.metainfo.xml.in:11
msgid "An Ollama client"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:10
msgid "Chat with multiple AI models"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:12
#: data/com.jeffser.Alpaca.metainfo.xml.in:176
msgid "Features"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:14
#: data/com.jeffser.Alpaca.metainfo.xml.in:178
msgid "Talk to multiple models in the same conversation"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:15
#: data/com.jeffser.Alpaca.metainfo.xml.in:179
msgid "Pull and delete models from the app"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:17 src/window.ui:405
msgid "Disclaimer"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:18
msgid ""
"This project is not affiliated at all with Ollama, I'm not responsible for "
"any damages to your device or software caused by running code given by any "
"models."
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:21
msgid "Jeffry Samuel Eduarte Rojas"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:39
msgid "Welcome dialog"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:43
msgid "A conversation involving multiple models"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:47
msgid "Managing models"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:72
msgid "Really Big Update"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:74
msgid "Added multiple chats support!"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:75
msgid "Added Pango Markup support (bold, list, title, subtitle, monospace)"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:76
msgid "Added autoscroll if the user is at the bottom of the chat"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:77
msgid "Added support for multiple tags on a single model"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:78
msgid "Added better model management dialog"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:79
msgid "Added loading spinner when sending message"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:80
msgid "Added notifications if app is not active and a model pull finishes"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:81
msgid "Added new symbolic icon"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:82
msgid "Added frame to message textview widget"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:83
msgid "Fixed \"code blocks shouldn't be editable\""
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:85
#: data/com.jeffser.Alpaca.metainfo.xml.in:101
#: data/com.jeffser.Alpaca.metainfo.xml.in:117
#: data/com.jeffser.Alpaca.metainfo.xml.in:131
#: data/com.jeffser.Alpaca.metainfo.xml.in:141
#: data/com.jeffser.Alpaca.metainfo.xml.in:159
#: data/com.jeffser.Alpaca.metainfo.xml.in:181
msgid "Please report any errors to the issues page, thank you."
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:93
#: data/com.jeffser.Alpaca.metainfo.xml.in:150
msgid "Big Update"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:95
msgid "Added code highlighting"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:96
msgid "Added image recognition (llava model)"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:97
msgid "Added multiline prompt"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:98
msgid "Fixed some small bugs"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:99
msgid "General optimization"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:109
msgid "Fixes and features"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:111
msgid "Russian translation (thanks github/alexkdeveloper)"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:112
msgid "Fixed: Cannot close app on first setup"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:113
msgid "Fixed: Brand colors for Flathub"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:114
msgid "Fixed: App description"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:115
msgid "Fixed: Only show 'save changes dialog' when you actually change the url"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:125
msgid "0.2.2 Bug fixes"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:127
msgid "Toast messages appearing behind dialogs"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:128
msgid "Local model list not updating when changing servers"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:129
msgid "Closing the setup dialog closes the whole app"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:139
msgid "0.2.1 Data saving fix"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:140
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:149
msgid "0.2.0"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:151
msgid "New Features"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:153
msgid "Restore chat after closing the app"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:154
msgid "A button to clear the chat"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:155
msgid "Fixed multiple bugs involving how messages are shown"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:156
msgid "Added welcome dialog"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:157
msgid "More stability"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:167
msgid "0.1.2 Quick fixes"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:168
msgid ""
"This release fixes some metadata needed to have a proper Flatpak application"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:174
msgid "0.1.1 Stable Release"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:175
msgid "This is the first public version of Alpaca"
msgstr ""
#: src/window.py:47 src/window.py:758
msgid "New Chat"
msgstr ""
#: src/window.py:86
msgid "An error occurred"
msgstr ""
#: src/window.py:87
msgid "Failed to connect to server"
msgstr ""
#: src/window.py:88
msgid "Could not list local models"
msgstr ""
#: src/window.py:89
msgid "Could not delete model"
msgstr ""
#: src/window.py:90
msgid "Could not pull model"
msgstr ""
#: src/window.py:91
msgid "Cannot open image"
msgstr ""
#: src/window.py:92
msgid "Cannot delete chat because it's the only one left"
msgstr ""
#: src/window.py:95
msgid "Please select a model before chatting"
msgstr ""
#: src/window.py:96
msgid "Chat cannot be cleared while receiving a message"
msgstr ""
#: src/window.py:99
msgid "Model deleted successfully"
msgstr ""
#: src/window.py:100
msgid "Model pulled successfully"
msgstr ""
#: src/window.py:418
msgid "Task Complete"
msgstr ""
#: src/window.py:418
msgid "Model '{}' pulled successfully."
msgstr ""
#: src/window.py:424
msgid "Pull Model Error"
msgstr ""
#: src/window.py:424
msgid "Failed to pull model '{}' due to network error."
msgstr ""
#: src/window.py:436
msgid "Stop Model"
msgstr ""
#: src/window.py:437
msgid "Are you sure you want to stop pulling '{}'?"
msgstr ""
#: src/window.py:440 src/window.py:478 src/window.py:501 src/window.py:575
#: src/window.py:636 src/window.py:685 src/window.py:712 src/window.py:745
#: src/window.py:785
msgid "Cancel"
msgstr ""
#: src/window.py:441
msgid "Stop"
msgstr ""
#: src/window.py:474
msgid "Delete Model"
msgstr ""
#: src/window.py:475 src/window.py:709
msgid "Are you sure you want to delete '{}'?"
msgstr ""
#: src/window.py:479 src/window.py:713
msgid "Delete"
msgstr ""
#: src/window.py:496
msgid "Pull Model"
msgstr ""
#: src/window.py:497
msgid "Please select a tag to pull '{}'"
msgstr ""
#: src/window.py:502
msgid "Pull"
msgstr ""
#: src/window.py:571 src/window.ui:439
msgid "Clear Chat"
msgstr ""
#: src/window.py:572
msgid "Are you sure you want to clear the chat?"
msgstr ""
#: src/window.py:576
msgid "Clear"
msgstr ""
#: src/window.py:632
msgid "Save Changes"
msgstr ""
#: src/window.py:633
msgid "Do you want to save the URL change?"
msgstr ""
#: src/window.py:637
msgid "Discard"
msgstr ""
#: src/window.py:638
msgid "Save"
msgstr ""
#: src/window.py:681
msgid "Remove Image"
msgstr ""
#: src/window.py:682
msgid "Are you sure you want to remove image?"
msgstr ""
#: src/window.py:686
msgid "Remove"
msgstr ""
#: src/window.py:708
msgid "Delete Chat"
msgstr ""
#: src/window.py:739
msgid "Rename Chat"
msgstr ""
#: src/window.py:746
msgid "Rename"
msgstr ""
#: src/window.py:766
msgid "The name '{}' is already in use"
msgstr ""
#: src/window.py:779
msgid "Create Chat"
msgstr ""
#: src/window.py:786
msgid "Create"
msgstr ""
#: src/window.ui:55
msgid "Chats"
msgstr ""
#: src/window.ui:65
msgid "New chat"
msgstr ""
#: src/window.ui:101
msgid "Toggle Sidebar"
msgstr ""
#: src/window.ui:122 src/window.ui:259
msgid "Manage models"
msgstr ""
#: src/window.ui:136
msgid "Menu"
msgstr ""
#: src/window.ui:215
msgid "Send"
msgstr ""
#: src/window.ui:224
msgid "Requires model 'llava' to be selected"
msgstr ""
#: src/window.ui:227
msgid "Image"
msgstr ""
#: src/window.ui:344
msgid "Previous"
msgstr ""
#: src/window.ui:359
msgid "Next"
msgstr ""
#: src/window.ui:385
msgid "Welcome to Alpaca"
msgstr ""
#: src/window.ui:386
msgid ""
"To get started, please ensure you have an Ollama instance set up. You can "
"either run Ollama locally on your machine or connect to a remote instance."
msgstr ""
#: src/window.ui:389
msgid "Ollama Website"
msgstr ""
#: src/window.ui:406
msgid ""
"Alpaca and its developers are not liable for any damages to devices or "
"software resulting from the execution of code generated by an AI model. "
"Please exercise caution and review the code carefully before running it."
msgstr ""
#: src/window.ui:418
msgid "Setup"
msgstr ""
#: src/window.ui:419
msgid ""
"If you are running an Ollama instance locally and haven't modified the "
"default ports, you can use the default URL. Otherwise, please enter the URL "
"of your Ollama instance."
msgstr ""
#: src/window.ui:443
msgid "Change Server"
msgstr ""
#: src/window.ui:447
msgid "Keyboard Shortcuts"
msgstr ""
#: src/window.ui:451
msgid "About Alpaca"
msgstr ""
#: src/window.ui:473
msgid "General"
msgstr ""
#: src/window.ui:477
msgid "Close application"
msgstr ""
#: src/window.ui:483
msgid "Clear chat"
msgstr ""
#: src/window.ui:489
msgid "Change server"
msgstr ""
#: src/window.ui:495
msgid "Show shortcuts window"
msgstr ""
#: src/window.ui:502
msgid "Editor"
msgstr ""
#: src/window.ui:506
msgid "Copy"
msgstr ""
#: src/window.ui:512
msgid "Paste"
msgstr ""
#: src/window.ui:518
msgid "Send Message"
msgstr ""

562
po/es.po Normal file
View File

@@ -0,0 +1,562 @@
# Spanish translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Jeffry Samuel Eduarte Rojas <jeffrysamuer@gmail.com>, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-19 21:24-0600\n"
"PO-Revision-Date: 2024-05-19 19:44-0600\n"
"Last-Translator: Jeffry Samuel Eduarte Rojas <jeffrysamuer@gmail.com>\n"
"Language-Team: Spanish <es@tp.org.es>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: data/com.jeffser.Alpaca.desktop.in:3
#: data/com.jeffser.Alpaca.metainfo.xml.in:7
msgid "Alpaca"
msgstr "Alpaca"
#: data/com.jeffser.Alpaca.metainfo.xml.in:8
#: data/com.jeffser.Alpaca.metainfo.xml.in:11
msgid "An Ollama client"
msgstr "Un cliente de Ollama"
#: data/com.jeffser.Alpaca.metainfo.xml.in:10
msgid "Chat with multiple AI models"
msgstr "Chatea con multiples modelos de IA"
#: data/com.jeffser.Alpaca.metainfo.xml.in:12
#: data/com.jeffser.Alpaca.metainfo.xml.in:176
msgid "Features"
msgstr "Funcionalidades"
#: data/com.jeffser.Alpaca.metainfo.xml.in:14
#: data/com.jeffser.Alpaca.metainfo.xml.in:178
msgid "Talk to multiple models in the same conversation"
msgstr "Habla con multiples modelos en la misma conversación"
#: data/com.jeffser.Alpaca.metainfo.xml.in:15
#: data/com.jeffser.Alpaca.metainfo.xml.in:179
msgid "Pull and delete models from the app"
msgstr "Descarga y elimina modelos desde la app"
#: data/com.jeffser.Alpaca.metainfo.xml.in:17 src/window.ui:405
msgid "Disclaimer"
msgstr "Aviso Legal"
#: data/com.jeffser.Alpaca.metainfo.xml.in:18
msgid ""
"This project is not affiliated at all with Ollama, I'm not responsible for "
"any damages to your device or software caused by running code given by any "
"models."
msgstr ""
"Este proyecto no está afiliado del todo con Ollama, no soy responsable por "
"cualquier daño a tu dispositivo o software causado por correr codigo "
"proveido por cualquier modelo."
#: data/com.jeffser.Alpaca.metainfo.xml.in:21
msgid "Jeffry Samuel Eduarte Rojas"
msgstr "Jeffry Samuel Eduarte Rojas"
#: data/com.jeffser.Alpaca.metainfo.xml.in:39
msgid "Welcome dialog"
msgstr "Dialogo de Bienvenida"
#: data/com.jeffser.Alpaca.metainfo.xml.in:43
msgid "A conversation involving multiple models"
msgstr "Una conversación incluyendo multiples modelos"
#: data/com.jeffser.Alpaca.metainfo.xml.in:47
msgid "Managing models"
msgstr "Gestionando modelos"
#: data/com.jeffser.Alpaca.metainfo.xml.in:72
msgid "Really Big Update"
msgstr "Actualización Bastante Grande"
#: data/com.jeffser.Alpaca.metainfo.xml.in:74
msgid "Added multiple chats support!"
msgstr "Añadido soporte para multiples chats!"
#: data/com.jeffser.Alpaca.metainfo.xml.in:75
msgid "Added Pango Markup support (bold, list, title, subtitle, monospace)"
msgstr ""
"Añadido soporte para Pango Markup (negrita, lista, titulo, subtitulo, "
"monoespaciado)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:76
msgid "Added autoscroll if the user is at the bottom of the chat"
msgstr ""
"Añadido autoscroll si el usuario se encuentra en la parte inferior del chat"
#: data/com.jeffser.Alpaca.metainfo.xml.in:77
msgid "Added support for multiple tags on a single model"
msgstr "Añadido soporte para multiples etiquetas con un solo modelo"
#: data/com.jeffser.Alpaca.metainfo.xml.in:78
msgid "Added better model management dialog"
msgstr "Añadido mejor gestión de modelos"
#: data/com.jeffser.Alpaca.metainfo.xml.in:79
msgid "Added loading spinner when sending message"
msgstr "Añadido spinner de carga cuando se envia un mensaje"
#: data/com.jeffser.Alpaca.metainfo.xml.in:80
msgid "Added notifications if app is not active and a model pull finishes"
msgstr ""
"Añadidas notificaciones si la aplicación no está activa y la descarga de un "
"modelo finaliza"
#: data/com.jeffser.Alpaca.metainfo.xml.in:81
msgid "Added new symbolic icon"
msgstr "Añadido nuevo icono simbolico"
#: data/com.jeffser.Alpaca.metainfo.xml.in:82
msgid "Added frame to message textview widget"
msgstr "Añadido borde al objeto textview del mensaje"
#: data/com.jeffser.Alpaca.metainfo.xml.in:83
msgid "Fixed \"code blocks shouldn't be editable\""
msgstr "Arreglado \"bloques de codigo no deberían de ser editables\""
#: data/com.jeffser.Alpaca.metainfo.xml.in:85
#: data/com.jeffser.Alpaca.metainfo.xml.in:101
#: data/com.jeffser.Alpaca.metainfo.xml.in:117
#: data/com.jeffser.Alpaca.metainfo.xml.in:131
#: data/com.jeffser.Alpaca.metainfo.xml.in:141
#: data/com.jeffser.Alpaca.metainfo.xml.in:159
#: data/com.jeffser.Alpaca.metainfo.xml.in:181
msgid "Please report any errors to the issues page, thank you."
msgstr "Por favor reporta cualquier error a la página de problemas, gracias."
#: data/com.jeffser.Alpaca.metainfo.xml.in:93
#: data/com.jeffser.Alpaca.metainfo.xml.in:150
msgid "Big Update"
msgstr "Gran Actualización"
#: data/com.jeffser.Alpaca.metainfo.xml.in:95
msgid "Added code highlighting"
msgstr "Añadido resaltado de código"
#: data/com.jeffser.Alpaca.metainfo.xml.in:96
msgid "Added image recognition (llava model)"
msgstr "Añadido reconocimiento de imagenes (modelo llava)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:97
msgid "Added multiline prompt"
msgstr "Añadido caja de texto de multiples lineas"
#: data/com.jeffser.Alpaca.metainfo.xml.in:98
msgid "Fixed some small bugs"
msgstr "Arreglados unos pequeños errores"
#: data/com.jeffser.Alpaca.metainfo.xml.in:99
msgid "General optimization"
msgstr "Optimización general"
#: data/com.jeffser.Alpaca.metainfo.xml.in:109
msgid "Fixes and features"
msgstr "Arreglos y funcionalidades"
#: data/com.jeffser.Alpaca.metainfo.xml.in:111
msgid "Russian translation (thanks github/alexkdeveloper)"
msgstr "Traducción a Ruso (gracias github/alexkdeveloper)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:112
msgid "Fixed: Cannot close app on first setup"
msgstr "Arreglado: No se puede cerrar la aplicación en el primer setup"
#: data/com.jeffser.Alpaca.metainfo.xml.in:113
msgid "Fixed: Brand colors for Flathub"
msgstr "Arreglado: Colores de marca para Flathub"
#: data/com.jeffser.Alpaca.metainfo.xml.in:114
msgid "Fixed: App description"
msgstr "Arreglado: Descripción de aplicación"
#: data/com.jeffser.Alpaca.metainfo.xml.in:115
msgid "Fixed: Only show 'save changes dialog' when you actually change the url"
msgstr ""
"Arreglado: Solo mostrar el dialogo 'guardar cambios' cuando se cambia el url"
#: data/com.jeffser.Alpaca.metainfo.xml.in:125
msgid "0.2.2 Bug fixes"
msgstr "0.2.2 Arreglo de errores"
#: data/com.jeffser.Alpaca.metainfo.xml.in:127
msgid "Toast messages appearing behind dialogs"
msgstr "Mensajes toast apareciendo detrás de dialogos"
#: data/com.jeffser.Alpaca.metainfo.xml.in:128
msgid "Local model list not updating when changing servers"
msgstr ""
"Lista de modelos locales no es actualizada cuando se cambia el servidor"
#: data/com.jeffser.Alpaca.metainfo.xml.in:129
msgid "Closing the setup dialog closes the whole app"
msgstr "Cerrar el dialogo de setup cierra toda la aplicación"
#: data/com.jeffser.Alpaca.metainfo.xml.in:139
msgid "0.2.1 Data saving fix"
msgstr "0.2.1 Arreglo en el guardado de datos"
#: data/com.jeffser.Alpaca.metainfo.xml.in:140
msgid ""
"The app didn't save the config files and chat history to the right "
"directory, this is now fixed"
msgstr ""
"La aplicación no guardaba los archivos de configuración o los chats en el "
"directorio correcto, esto ahora ha sido arreglado"
#: data/com.jeffser.Alpaca.metainfo.xml.in:149
msgid "0.2.0"
msgstr "0.2.0"
#: data/com.jeffser.Alpaca.metainfo.xml.in:151
msgid "New Features"
msgstr "Nuevas funcionalidades"
#: data/com.jeffser.Alpaca.metainfo.xml.in:153
msgid "Restore chat after closing the app"
msgstr "Restaurar chat despues de cerrar la aplicación"
#: data/com.jeffser.Alpaca.metainfo.xml.in:154
msgid "A button to clear the chat"
msgstr "Un botón para limpiar el chat"
#: data/com.jeffser.Alpaca.metainfo.xml.in:155
msgid "Fixed multiple bugs involving how messages are shown"
msgstr "Arreglados multiples errores acerca de como los mensajes son mostrados"
#: data/com.jeffser.Alpaca.metainfo.xml.in:156
msgid "Added welcome dialog"
msgstr "Añadido dialogo de bienvenida"
#: data/com.jeffser.Alpaca.metainfo.xml.in:157
msgid "More stability"
msgstr "Más estabilidad"
#: data/com.jeffser.Alpaca.metainfo.xml.in:167
msgid "0.1.2 Quick fixes"
msgstr "0.1.2 Arreglos rápidos"
#: data/com.jeffser.Alpaca.metainfo.xml.in:168
msgid ""
"This release fixes some metadata needed to have a proper Flatpak application"
msgstr ""
"Esta versión arregla metadatos necesarios para tener un aplicación de "
"Flatpak justa"
#: data/com.jeffser.Alpaca.metainfo.xml.in:174
msgid "0.1.1 Stable Release"
msgstr "0.1.1"
#: data/com.jeffser.Alpaca.metainfo.xml.in:175
msgid "This is the first public version of Alpaca"
msgstr "Esta es la primera versión publica de Alpaca"
#: src/window.py:47 src/window.py:758
msgid "New Chat"
msgstr "Nuevo Chat"
#: src/window.py:86
msgid "An error occurred"
msgstr "Ocurrio un error"
#: src/window.py:87
msgid "Failed to connect to server"
msgstr "No se pudo conectar al servidor"
#: src/window.py:88
msgid "Could not list local models"
msgstr "No se pudieron listar los modelos locales"
#: src/window.py:89
msgid "Could not delete model"
msgstr "No se pudo eliminar el modelo"
#: src/window.py:90
msgid "Could not pull model"
msgstr "No se pudo descargar el modelo"
#: src/window.py:91
msgid "Cannot open image"
msgstr "No se pudo abrir la imagen"
#: src/window.py:92
msgid "Cannot delete chat because it's the only one left"
msgstr "No se pudo eliminar el chat por que es el único que queda"
#: src/window.py:95
msgid "Please select a model before chatting"
msgstr "Por favor selecciona un modelo antes de enviar un mensaje"
#: src/window.py:96
msgid "Chat cannot be cleared while receiving a message"
msgstr "El chat no puede ser limpiado mientras se recibe un mensaje"
#: src/window.py:99
msgid "Model deleted successfully"
msgstr "Modelo eliminado exitosamente"
#: src/window.py:100
msgid "Model pulled successfully"
msgstr "Modelo descargado exitosamente"
#: src/window.py:418
msgid "Task Complete"
msgstr "Tarea completada"
#: src/window.py:418
msgid "Model '{}' pulled successfully."
msgstr "El modelo '{}' fue descargado exitosamente"
#: src/window.py:424
msgid "Pull Model Error"
msgstr "Error Descargando Modelo"
#: src/window.py:424
msgid "Failed to pull model '{}' due to network error."
msgstr "No se pudo descargar el modelo '{}' debido a un error de red"
#: src/window.py:436
msgid "Stop Model"
msgstr "Parar Modelo"
#: src/window.py:437
msgid "Are you sure you want to stop pulling '{}'?"
msgstr "¿Estás seguro de que quieres parar la descarga de '{}'?"
#: src/window.py:440 src/window.py:478 src/window.py:501 src/window.py:575
#: src/window.py:636 src/window.py:685 src/window.py:712 src/window.py:745
#: src/window.py:785
msgid "Cancel"
msgstr "Cancelar"
#: src/window.py:441
msgid "Stop"
msgstr "Parar"
#: src/window.py:474
msgid "Delete Model"
msgstr "Eliminar Modelo"
#: src/window.py:475 src/window.py:709
msgid "Are you sure you want to delete '{}'?"
msgstr "¿Estás seguro de que quieres eliminar '{}'?"
#: src/window.py:479 src/window.py:713
msgid "Delete"
msgstr "Eliminar"
#: src/window.py:496
msgid "Pull Model"
msgstr "Descargar Modelo"
#: src/window.py:497
msgid "Please select a tag to pull '{}'"
msgstr "Por favor selecciona una etiqueta para descargar '{}'"
#: src/window.py:502
msgid "Pull"
msgstr "Descargar"
#: src/window.py:571 src/window.ui:439
msgid "Clear Chat"
msgstr "Limpiar Chat"
#: src/window.py:572
msgid "Are you sure you want to clear the chat?"
msgstr "¿Estás seguro de que quieres limpiar el chat?"
#: src/window.py:576
msgid "Clear"
msgstr "Limpiar"
#: src/window.py:632
msgid "Save Changes"
msgstr "Guardar Cambios"
#: src/window.py:633
msgid "Do you want to save the URL change?"
msgstr "¿Deseas guardar el cambio de URL?"
#: src/window.py:637
msgid "Discard"
msgstr "Descartar"
#: src/window.py:638
msgid "Save"
msgstr "Guardar"
#: src/window.py:681
msgid "Remove Image"
msgstr "Remover Imagen"
#: src/window.py:682
msgid "Are you sure you want to remove image?"
msgstr "¿Estás seguro de que quieres eliminar la imagen?"
#: src/window.py:686
msgid "Remove"
msgstr "Remover"
#: src/window.py:708
msgid "Delete Chat"
msgstr "Eliminar Chat"
#: src/window.py:739
msgid "Rename Chat"
msgstr "Renombrar Chat"
#: src/window.py:746
msgid "Rename"
msgstr "Renombrar"
#: src/window.py:766
msgid "The name '{}' is already in use"
msgstr "El nombre '{}' ya está en uso"
#: src/window.py:779
msgid "Create Chat"
msgstr "Crear Chat"
#: src/window.py:786
msgid "Create"
msgstr "Crear"
#: src/window.ui:55
msgid "Chats"
msgstr "Chats"
#: src/window.ui:65
msgid "New chat"
msgstr "Nuevo chat"
#: src/window.ui:101
msgid "Toggle Sidebar"
msgstr "Alternar barra de lado"
#: src/window.ui:122 src/window.ui:259
msgid "Manage models"
msgstr "Gestionar modelos"
#: src/window.ui:136
msgid "Menu"
msgstr "Menu"
#: src/window.ui:215
msgid "Send"
msgstr "Enviar"
#: src/window.ui:224
msgid "Requires model 'llava' to be selected"
msgstr "Requiere que el modelo 'llava' sea seleccionado"
#: src/window.ui:227
msgid "Image"
msgstr "Imagen"
#: src/window.ui:344
msgid "Previous"
msgstr "Anterior"
#: src/window.ui:359
msgid "Next"
msgstr "Siguiente"
#: src/window.ui:385
msgid "Welcome to Alpaca"
msgstr "Bienvenido a Alpaca"
#: src/window.ui:386
msgid ""
"To get started, please ensure you have an Ollama instance set up. You can "
"either run Ollama locally on your machine or connect to a remote instance."
msgstr ""
"Para iniciar, por favor asegurate de tener una instancia de Ollama "
"funcional. Puedes correr Ollama localmente o conectarte a una instancia "
"remota."
#: src/window.ui:389
msgid "Ollama Website"
msgstr "Sitio Web de Ollama"
#: src/window.ui:406
msgid ""
"Alpaca and its developers are not liable for any damages to devices or "
"software resulting from the execution of code generated by an AI model. "
"Please exercise caution and review the code carefully before running it."
msgstr ""
"Alpaca y sus desarrolladores no son responsables por cualquier daño a "
"dispositivos o software resultados por la ejecución de codigo generado por "
"un modelo de IA. Por favor sea precavido y revise el codigo cuidadosamente "
"antes de correrlo"
#: src/window.ui:418
msgid "Setup"
msgstr "Setup"
#: src/window.ui:419
msgid ""
"If you are running an Ollama instance locally and haven't modified the "
"default ports, you can use the default URL. Otherwise, please enter the URL "
"of your Ollama instance."
msgstr ""
"Si estás corriendo una instancia local de Ollama y no modificaste los "
"puertos por defecto, puedes usar la URL por defecto. De otra forma, por "
"favor ingresa la URL de tu instancia de Ollama"
#: src/window.ui:443
msgid "Change Server"
msgstr "Cambiar Servidor"
#: src/window.ui:447
msgid "Keyboard Shortcuts"
msgstr "Atajos de Teclado"
#: src/window.ui:451
msgid "About Alpaca"
msgstr "Sobre Alpaca"
#: src/window.ui:473
msgid "General"
msgstr "General"
#: src/window.ui:477
msgid "Close application"
msgstr "Cerrar aplicación"
#: src/window.ui:483
msgid "Clear chat"
msgstr "Limpiar chat"
#: src/window.ui:489
msgid "Change server"
msgstr "Cambiar servidor"
#: src/window.ui:495
msgid "Show shortcuts window"
msgstr "Mostrar ventana de atajos"
#: src/window.ui:502
msgid "Editor"
msgstr "Editor"
#: src/window.ui:506
msgid "Copy"
msgstr "Copiar"
#: src/window.ui:512
msgid "Paste"
msgstr "Pegar"
#: src/window.ui:518
msgid "Send Message"
msgstr "Enviar Mensaje"

562
po/es.po~ Normal file
View File

@@ -0,0 +1,562 @@
# Spanish translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Jeffry Samuel Eduarte Rojas <jeffrysamuer@gmail.com>, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-19 21:11-0600\n"
"PO-Revision-Date: 2024-05-19 19:44-0600\n"
"Last-Translator: Jeffry Samuel Eduarte Rojas <jeffrysamuer@gmail.com>\n"
"Language-Team: Spanish <es@tp.org.es>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: data/com.jeffser.Alpaca.desktop.in:3
#: data/com.jeffser.Alpaca.metainfo.xml.in:7
msgid "Alpaca"
msgstr "Alpaca"
#: data/com.jeffser.Alpaca.metainfo.xml.in:8
#: data/com.jeffser.Alpaca.metainfo.xml.in:11
msgid "An Ollama client"
msgstr "Un cliente de Ollama"
#: data/com.jeffser.Alpaca.metainfo.xml.in:10
msgid "Chat with multiple AI models"
msgstr "Chatea con multiples modelos de IA"
#: data/com.jeffser.Alpaca.metainfo.xml.in:12
#: data/com.jeffser.Alpaca.metainfo.xml.in:162
msgid "Features"
msgstr "Funcionalidades"
#: data/com.jeffser.Alpaca.metainfo.xml.in:14
#: data/com.jeffser.Alpaca.metainfo.xml.in:164
msgid "Talk to multiple models in the same conversation"
msgstr "Habla con multiples modelos en la misma conversación"
#: data/com.jeffser.Alpaca.metainfo.xml.in:15
#: data/com.jeffser.Alpaca.metainfo.xml.in:165
msgid "Pull and delete models from the app"
msgstr "Descarga y elimina modelos desde la app"
#: data/com.jeffser.Alpaca.metainfo.xml.in:17 src/window.ui:405
msgid "Disclaimer"
msgstr "Aviso Legal"
#: data/com.jeffser.Alpaca.metainfo.xml.in:18
msgid ""
"This project is not affiliated at all with Ollama, I'm not responsible for "
"any damages to your device or software caused by running code given by any "
"models."
msgstr ""
"Este proyecto no está afiliado del todo con Ollama, no soy responsable por "
"cualquier daño a tu dispositivo o software causado por correr codigo "
"proveido por cualquier modelo."
#: data/com.jeffser.Alpaca.metainfo.xml.in:21
msgid "Jeffry Samuel Eduarte Rojas"
msgstr "Jeffry Samuel Eduarte Rojas"
#: data/com.jeffser.Alpaca.metainfo.xml.in:39
msgid "Welcome dialog"
msgstr "Dialogo de Bienvenida"
#: data/com.jeffser.Alpaca.metainfo.xml.in:43
msgid "A conversation involving multiple models"
msgstr "Una conversación incluyendo multiples modelos"
#: data/com.jeffser.Alpaca.metainfo.xml.in:47
msgid "Managing models"
msgstr "Gestionando modelos"
#: data/com.jeffser.Alpaca.metainfo.xml.in:58
msgid "Really Big Update"
msgstr "Actualización Bastante Grande"
#: data/com.jeffser.Alpaca.metainfo.xml.in:60
msgid "Added multiple chats support!"
msgstr "Añadido soporte para multiples chats!"
#: data/com.jeffser.Alpaca.metainfo.xml.in:61
msgid "Added Pango Markup support (bold, list, title, subtitle, monospace)"
msgstr ""
"Añadido soporte para Pango Markup (negrita, lista, titulo, subtitulo, "
"monoespaciado)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:62
msgid "Added autoscroll if the user is at the bottom of the chat"
msgstr ""
"Añadido autoscroll si el usuario se encuentra en la parte inferior del chat"
#: data/com.jeffser.Alpaca.metainfo.xml.in:63
msgid "Added support for multiple tags on a single model"
msgstr "Añadido soporte para multiples etiquetas con un solo modelo"
#: data/com.jeffser.Alpaca.metainfo.xml.in:64
msgid "Added better model management dialog"
msgstr "Añadido mejor gestión de modelos"
#: data/com.jeffser.Alpaca.metainfo.xml.in:65
msgid "Added loading spinner when sending message"
msgstr "Añadido spinner de carga cuando se envia un mensaje"
#: data/com.jeffser.Alpaca.metainfo.xml.in:66
msgid "Added notifications if app is not active and a model pull finishes"
msgstr ""
"Añadidas notificaciones si la aplicación no está activa y la descarga de un "
"modelo finaliza"
#: data/com.jeffser.Alpaca.metainfo.xml.in:67
msgid "Added new symbolic icon"
msgstr "Añadido nuevo icono simbolico"
#: data/com.jeffser.Alpaca.metainfo.xml.in:68
msgid "Added frame to message textview widget"
msgstr "Añadido borde al objeto textview del mensaje"
#: data/com.jeffser.Alpaca.metainfo.xml.in:69
msgid "Fixed \"code blocks shouldn't be editable\""
msgstr "Arreglado \"bloques de codigo no deberían de ser editables\""
#: data/com.jeffser.Alpaca.metainfo.xml.in:71
#: data/com.jeffser.Alpaca.metainfo.xml.in:87
#: data/com.jeffser.Alpaca.metainfo.xml.in:103
#: data/com.jeffser.Alpaca.metainfo.xml.in:117
#: data/com.jeffser.Alpaca.metainfo.xml.in:127
#: data/com.jeffser.Alpaca.metainfo.xml.in:145
#: data/com.jeffser.Alpaca.metainfo.xml.in:167
msgid "Please report any errors to the issues page, thank you."
msgstr "Por favor reporta cualquier error a la página de problemas, gracias."
#: data/com.jeffser.Alpaca.metainfo.xml.in:79
#: data/com.jeffser.Alpaca.metainfo.xml.in:136
msgid "Big Update"
msgstr "Gran Actualización"
#: data/com.jeffser.Alpaca.metainfo.xml.in:81
msgid "Added code highlighting"
msgstr "Añadido resaltado de código"
#: data/com.jeffser.Alpaca.metainfo.xml.in:82
msgid "Added image recognition (llava model)"
msgstr "Añadido reconocimiento de imagenes (modelo llava)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:83
msgid "Added multiline prompt"
msgstr "Añadido caja de texto de multiples lineas"
#: data/com.jeffser.Alpaca.metainfo.xml.in:84
msgid "Fixed some small bugs"
msgstr "Arreglados unos pequeños errores"
#: data/com.jeffser.Alpaca.metainfo.xml.in:85
msgid "General optimization"
msgstr "Optimización general"
#: data/com.jeffser.Alpaca.metainfo.xml.in:95
msgid "Fixes and features"
msgstr "Arreglos y funcionalidades"
#: data/com.jeffser.Alpaca.metainfo.xml.in:97
msgid "Russian translation (thanks github/alexkdeveloper)"
msgstr "Traducción a Ruso (gracias github/alexkdeveloper)"
#: data/com.jeffser.Alpaca.metainfo.xml.in:98
msgid "Fixed: Cannot close app on first setup"
msgstr "Arreglado: No se puede cerrar la aplicación en el primer setup"
#: data/com.jeffser.Alpaca.metainfo.xml.in:99
msgid "Fixed: Brand colors for Flathub"
msgstr "Arreglado: Colores de marca para Flathub"
#: data/com.jeffser.Alpaca.metainfo.xml.in:100
msgid "Fixed: App description"
msgstr "Arreglado: Descripción de aplicación"
#: data/com.jeffser.Alpaca.metainfo.xml.in:101
msgid "Fixed: Only show 'save changes dialog' when you actually change the url"
msgstr ""
"Arreglado: Solo mostrar el dialogo 'guardar cambios' cuando se cambia el url"
#: data/com.jeffser.Alpaca.metainfo.xml.in:111
msgid "0.2.2 Bug fixes"
msgstr "0.2.2 Arreglo de errores"
#: data/com.jeffser.Alpaca.metainfo.xml.in:113
msgid "Toast messages appearing behind dialogs"
msgstr "Mensajes toast apareciendo detrás de dialogos"
#: data/com.jeffser.Alpaca.metainfo.xml.in:114
msgid "Local model list not updating when changing servers"
msgstr ""
"Lista de modelos locales no es actualizada cuando se cambia el servidor"
#: data/com.jeffser.Alpaca.metainfo.xml.in:115
msgid "Closing the setup dialog closes the whole app"
msgstr "Cerrar el dialogo de setup cierra toda la aplicación"
#: data/com.jeffser.Alpaca.metainfo.xml.in:125
msgid "0.2.1 Data saving fix"
msgstr "0.2.1 Arreglo en el guardado de datos"
#: data/com.jeffser.Alpaca.metainfo.xml.in:126
msgid ""
"The app didn't save the config files and chat history to the right "
"directory, this is now fixed"
msgstr ""
"La aplicación no guardaba los archivos de configuración o los chats en el "
"directorio correcto, esto ahora ha sido arreglado"
#: data/com.jeffser.Alpaca.metainfo.xml.in:135
msgid "0.2.0"
msgstr "0.2.0"
#: data/com.jeffser.Alpaca.metainfo.xml.in:137
msgid "New Features"
msgstr "Nuevas funcionalidades"
#: data/com.jeffser.Alpaca.metainfo.xml.in:139
msgid "Restore chat after closing the app"
msgstr "Restaurar chat despues de cerrar la aplicación"
#: data/com.jeffser.Alpaca.metainfo.xml.in:140
msgid "A button to clear the chat"
msgstr "Un botón para limpiar el chat"
#: data/com.jeffser.Alpaca.metainfo.xml.in:141
msgid "Fixed multiple bugs involving how messages are shown"
msgstr "Arreglados multiples errores acerca de como los mensajes son mostrados"
#: data/com.jeffser.Alpaca.metainfo.xml.in:142
msgid "Added welcome dialog"
msgstr "Añadido dialogo de bienvenida"
#: data/com.jeffser.Alpaca.metainfo.xml.in:143
msgid "More stability"
msgstr "Más estabilidad"
#: data/com.jeffser.Alpaca.metainfo.xml.in:153
msgid "0.1.2 Quick fixes"
msgstr "0.1.2 Arreglos rápidos"
#: data/com.jeffser.Alpaca.metainfo.xml.in:154
msgid ""
"This release fixes some metadata needed to have a proper Flatpak application"
msgstr ""
"Esta versión arregla metadatos necesarios para tener un aplicación de "
"Flatpak justa"
#: data/com.jeffser.Alpaca.metainfo.xml.in:160
msgid "0.1.1 Stable Release"
msgstr "0.1.1"
#: data/com.jeffser.Alpaca.metainfo.xml.in:161
msgid "This is the first public version of Alpaca"
msgstr "Esta es la primera versión publica de Alpaca"
#: src/window.py:47 src/window.py:758
msgid "New Chat"
msgstr "Nuevo Chat"
#: src/window.py:86
msgid "An error occurred"
msgstr "Ocurrio un error"
#: src/window.py:87
msgid "Failed to connect to server"
msgstr "No se pudo conectar al servidor"
#: src/window.py:88
msgid "Could not list local models"
msgstr "No se pudieron listar los modelos locales"
#: src/window.py:89
msgid "Could not delete model"
msgstr "No se pudo eliminar el modelo"
#: src/window.py:90
msgid "Could not pull model"
msgstr "No se pudo descargar el modelo"
#: src/window.py:91
msgid "Cannot open image"
msgstr "No se pudo abrir la imagen"
#: src/window.py:92
msgid "Cannot delete chat because it's the only one left"
msgstr "No se pudo eliminar el chat por que es el único que queda"
#: src/window.py:95
msgid "Please select a model before chatting"
msgstr "Por favor selecciona un modelo antes de enviar un mensaje"
#: src/window.py:96
msgid "Chat cannot be cleared while receiving a message"
msgstr "El chat no puede ser limpiado mientras se recibe un mensaje"
#: src/window.py:99
msgid "Model deleted successfully"
msgstr "Modelo eliminado exitosamente"
#: src/window.py:100
msgid "Model pulled successfully"
msgstr "Modelo descargado exitosamente"
#: src/window.py:418
msgid "Task Complete"
msgstr "Tarea completada"
#: src/window.py:418
msgid "Model '{}' pulled successfully."
msgstr "El modelo '{}' fue descargado exitosamente"
#: src/window.py:424
msgid "Pull Model Error"
msgstr "Error Descargando Modelo"
#: src/window.py:424
msgid "Failed to pull model '{}' due to network error."
msgstr "No se pudo descargar el modelo '{}' debido a un error de red"
#: src/window.py:436
msgid "Stop Model"
msgstr "Parar Modelo"
#: src/window.py:437
msgid "Are you sure you want to stop pulling '{}'?"
msgstr "¿Estás seguro de que quieres parar la descarga de '{}'?"
#: src/window.py:440 src/window.py:478 src/window.py:501 src/window.py:575
#: src/window.py:636 src/window.py:685 src/window.py:712 src/window.py:745
#: src/window.py:785
msgid "Cancel"
msgstr "Cancelar"
#: src/window.py:441
msgid "Stop"
msgstr "Parar"
#: src/window.py:474
msgid "Delete Model"
msgstr "Eliminar Modelo"
#: src/window.py:475 src/window.py:709
msgid "Are you sure you want to delete '{}'?"
msgstr "¿Estás seguro de que quieres eliminar '{}'?"
#: src/window.py:479 src/window.py:713
msgid "Delete"
msgstr "Eliminar"
#: src/window.py:496
msgid "Pull Model"
msgstr "Descargar Modelo"
#: src/window.py:497
msgid "Please select a tag to pull '{}'"
msgstr "Por favor selecciona una etiqueta para descargar '{}'"
#: src/window.py:502
msgid "Pull"
msgstr "Descargar"
#: src/window.py:571 src/window.ui:439
msgid "Clear Chat"
msgstr "Limpiar Chat"
#: src/window.py:572
msgid "Are you sure you want to clear the chat?"
msgstr "¿Estás seguro de que quieres limpiar el chat?"
#: src/window.py:576
msgid "Clear"
msgstr "Limpiar"
#: src/window.py:632
msgid "Save Changes"
msgstr "Guardar Cambios"
#: src/window.py:633
msgid "Do you want to save the URL change?"
msgstr "¿Deseas guardar el cambio de URL?"
#: src/window.py:637
msgid "Discard"
msgstr "Descartar"
#: src/window.py:638
msgid "Save"
msgstr "Guardar"
#: src/window.py:681
msgid "Remove Image"
msgstr "Remover Imagen"
#: src/window.py:682
msgid "Are you sure you want to remove image?"
msgstr "¿Estás seguro de que quieres eliminar la imagen?"
#: src/window.py:686
msgid "Remove"
msgstr "Remover"
#: src/window.py:708
msgid "Delete Chat"
msgstr "Eliminar Chat"
#: src/window.py:739
msgid "Rename Chat"
msgstr "Renombrar Chat"
#: src/window.py:746
msgid "Rename"
msgstr "Renombrar"
#: src/window.py:766
msgid "The name '{}' is already in use"
msgstr "El nombre '{}' ya está en uso"
#: src/window.py:779
msgid "Create Chat"
msgstr "Crear Chat"
#: src/window.py:786
msgid "Create"
msgstr "Crear"
#: src/window.ui:55
msgid "Chats"
msgstr "Chats"
#: src/window.ui:65
msgid "New chat"
msgstr "Nuevo chat"
#: src/window.ui:101
msgid "Toggle Sidebar"
msgstr "Alternar barra de lado"
#: src/window.ui:122 src/window.ui:259
msgid "Manage models"
msgstr "Gestionar modelos"
#: src/window.ui:136
msgid "Menu"
msgstr "Menu"
#: src/window.ui:215
msgid "Send"
msgstr "Enviar"
#: src/window.ui:224
msgid "Requires model 'llava' to be selected"
msgstr "Requiere que el modelo 'llava' sea seleccionado"
#: src/window.ui:227
msgid "Image"
msgstr "Imagen"
#: src/window.ui:344
msgid "Previous"
msgstr "Anterior"
#: src/window.ui:359
msgid "Next"
msgstr "Siguiente"
#: src/window.ui:385
msgid "Welcome to Alpaca"
msgstr "Bienvenido a Alpaca"
#: src/window.ui:386
msgid ""
"To get started, please ensure you have an Ollama instance set up. You can "
"either run Ollama locally on your machine or connect to a remote instance."
msgstr ""
"Para iniciar, por favor asegurate de tener una instancia de Ollama "
"funcional. Puedes correr Ollama localmente o conectarte a una instancia "
"remota."
#: src/window.ui:389
msgid "Ollama Website"
msgstr "Sitio Web de Ollama"
#: src/window.ui:406
msgid ""
"Alpaca and its developers are not liable for any damages to devices or "
"software resulting from the execution of code generated by an AI model. "
"Please exercise caution and review the code carefully before running it."
msgstr ""
"Alpaca y sus desarrolladores no son responsables por cualquier daño a "
"dispositivos o software resultados por la ejecución de codigo generado por "
"un modelo de IA. Por favor sea precavido y revise el codigo cuidadosamente "
"antes de correrlo"
#: src/window.ui:418
msgid "Setup"
msgstr "Setup"
#: src/window.ui:419
msgid ""
"If you are running an Ollama instance locally and haven't modified the "
"default ports, you can use the default URL. Otherwise, please enter the URL "
"of your Ollama instance."
msgstr ""
"Si estás corriendo una instancia local de Ollama y no modificaste los "
"puertos por defecto, puedes usar la URL por defecto. De otra forma, por "
"favor ingresa la URL de tu instancia de Ollama"
#: src/window.ui:443
msgid "Change Server"
msgstr "Cambiar Servidor"
#: src/window.ui:447
msgid "Keyboard Shortcuts"
msgstr "Atajos de Teclado"
#: src/window.ui:451
msgid "About Alpaca"
msgstr "Sobre Alpaca"
#: src/window.ui:473
msgid "General"
msgstr "General"
#: src/window.ui:477
msgid "Close application"
msgstr "Cerrar aplicación"
#: src/window.ui:483
msgid "Clear chat"
msgstr "Limpiar chat"
#: src/window.ui:489
msgid "Change server"
msgstr "Cambiar servidor"
#: src/window.ui:495
msgid "Show shortcuts window"
msgstr "Mostrar ventana de atajos"
#: src/window.ui:502
msgid "Editor"
msgstr "Editor"
#: src/window.ui:506
msgid "Copy"
msgstr "Copiar"
#: src/window.ui:512
msgid "Paste"
msgstr "Pegar"
#: src/window.ui:518
msgid "Send Message"
msgstr "Enviar Mensaje"

570
po/ru.po Normal file
View File

@@ -0,0 +1,570 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-19 21:24-0600\n"
"PO-Revision-Date: 2024-05-19 14:59+0800\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: ru_RU\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.4.2\n"
"X-Poedit-Basepath: ../src\n"
"X-Poedit-SearchPath-0: .\n"
#: data/com.jeffser.Alpaca.desktop.in:3
#: data/com.jeffser.Alpaca.metainfo.xml.in:7
#, fuzzy
msgid "Alpaca"
msgstr "_О Программе"
#: data/com.jeffser.Alpaca.metainfo.xml.in:8
#: data/com.jeffser.Alpaca.metainfo.xml.in:11
#, fuzzy
msgid "An Ollama client"
msgstr "Веб-сайт Ollama"
#: data/com.jeffser.Alpaca.metainfo.xml.in:10
msgid "Chat with multiple AI models"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:12
#: data/com.jeffser.Alpaca.metainfo.xml.in:176
msgid "Features"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:14
#: data/com.jeffser.Alpaca.metainfo.xml.in:178
msgid "Talk to multiple models in the same conversation"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:15
#: data/com.jeffser.Alpaca.metainfo.xml.in:179
msgid "Pull and delete models from the app"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:17 src/window.ui:405
msgid "Disclaimer"
msgstr "Отказ от ответственности"
#: data/com.jeffser.Alpaca.metainfo.xml.in:18
msgid ""
"This project is not affiliated at all with Ollama, I'm not responsible for "
"any damages to your device or software caused by running code given by any "
"models."
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:21
msgid "Jeffry Samuel Eduarte Rojas"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:39
msgid "Welcome dialog"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:43
msgid "A conversation involving multiple models"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:47
#, fuzzy
msgid "Managing models"
msgstr "Управление моделями"
#: data/com.jeffser.Alpaca.metainfo.xml.in:72
msgid "Really Big Update"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:74
msgid "Added multiple chats support!"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:75
msgid "Added Pango Markup support (bold, list, title, subtitle, monospace)"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:76
msgid "Added autoscroll if the user is at the bottom of the chat"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:77
msgid "Added support for multiple tags on a single model"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:78
msgid "Added better model management dialog"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:79
msgid "Added loading spinner when sending message"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:80
msgid "Added notifications if app is not active and a model pull finishes"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:81
msgid "Added new symbolic icon"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:82
msgid "Added frame to message textview widget"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:83
msgid "Fixed \"code blocks shouldn't be editable\""
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:85
#: data/com.jeffser.Alpaca.metainfo.xml.in:101
#: data/com.jeffser.Alpaca.metainfo.xml.in:117
#: data/com.jeffser.Alpaca.metainfo.xml.in:131
#: data/com.jeffser.Alpaca.metainfo.xml.in:141
#: data/com.jeffser.Alpaca.metainfo.xml.in:159
#: data/com.jeffser.Alpaca.metainfo.xml.in:181
msgid "Please report any errors to the issues page, thank you."
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:93
#: data/com.jeffser.Alpaca.metainfo.xml.in:150
msgid "Big Update"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:95
msgid "Added code highlighting"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:96
msgid "Added image recognition (llava model)"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:97
msgid "Added multiline prompt"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:98
msgid "Fixed some small bugs"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:99
msgid "General optimization"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:109
msgid "Fixes and features"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:111
msgid "Russian translation (thanks github/alexkdeveloper)"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:112
msgid "Fixed: Cannot close app on first setup"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:113
msgid "Fixed: Brand colors for Flathub"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:114
msgid "Fixed: App description"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:115
msgid "Fixed: Only show 'save changes dialog' when you actually change the url"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:125
msgid "0.2.2 Bug fixes"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:127
msgid "Toast messages appearing behind dialogs"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:128
msgid "Local model list not updating when changing servers"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:129
msgid "Closing the setup dialog closes the whole app"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:139
msgid "0.2.1 Data saving fix"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:140
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:149
msgid "0.2.0"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:151
#, fuzzy
msgid "New Features"
msgstr "Новый чат"
#: data/com.jeffser.Alpaca.metainfo.xml.in:153
msgid "Restore chat after closing the app"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:154
msgid "A button to clear the chat"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:155
msgid "Fixed multiple bugs involving how messages are shown"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:156
msgid "Added welcome dialog"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:157
msgid "More stability"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:167
msgid "0.1.2 Quick fixes"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:168
msgid ""
"This release fixes some metadata needed to have a proper Flatpak application"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:174
msgid "0.1.1 Stable Release"
msgstr ""
#: data/com.jeffser.Alpaca.metainfo.xml.in:175
msgid "This is the first public version of Alpaca"
msgstr ""
#: src/window.py:47 src/window.py:758
#, fuzzy
msgid "New Chat"
msgstr "Новый чат"
#: src/window.py:86
msgid "An error occurred"
msgstr ""
#: src/window.py:87
msgid "Failed to connect to server"
msgstr ""
#: src/window.py:88
msgid "Could not list local models"
msgstr ""
#: src/window.py:89
msgid "Could not delete model"
msgstr ""
#: src/window.py:90
msgid "Could not pull model"
msgstr ""
#: src/window.py:91
msgid "Cannot open image"
msgstr ""
#: src/window.py:92
msgid "Cannot delete chat because it's the only one left"
msgstr ""
#: src/window.py:95
msgid "Please select a model before chatting"
msgstr ""
#: src/window.py:96
msgid "Chat cannot be cleared while receiving a message"
msgstr ""
#: src/window.py:99
msgid "Model deleted successfully"
msgstr ""
#: src/window.py:100
msgid "Model pulled successfully"
msgstr ""
#: src/window.py:418
msgid "Task Complete"
msgstr ""
#: src/window.py:418
msgid "Model '{}' pulled successfully."
msgstr ""
#: src/window.py:424
#, fuzzy
msgid "Pull Model Error"
msgstr "Вытягивающая модель"
#: src/window.py:424
msgid "Failed to pull model '{}' due to network error."
msgstr ""
#: src/window.py:436
msgid "Stop Model"
msgstr ""
#: src/window.py:437
msgid "Are you sure you want to stop pulling '{}'?"
msgstr ""
#: src/window.py:440 src/window.py:478 src/window.py:501 src/window.py:575
#: src/window.py:636 src/window.py:685 src/window.py:712 src/window.py:745
#: src/window.py:785
msgid "Cancel"
msgstr ""
#: src/window.py:441
msgid "Stop"
msgstr ""
#: src/window.py:474
msgid "Delete Model"
msgstr ""
#: src/window.py:475 src/window.py:709
msgid "Are you sure you want to delete '{}'?"
msgstr ""
#: src/window.py:479 src/window.py:713
msgid "Delete"
msgstr ""
#: src/window.py:496
#, fuzzy
msgid "Pull Model"
msgstr "Вытягивающая модель"
#: src/window.py:497
msgid "Please select a tag to pull '{}'"
msgstr ""
#: src/window.py:502
msgid "Pull"
msgstr ""
#: src/window.py:571 src/window.ui:439
#, fuzzy
msgid "Clear Chat"
msgstr "_Очистить чат"
#: src/window.py:572
msgid "Are you sure you want to clear the chat?"
msgstr ""
#: src/window.py:576
#, fuzzy
msgid "Clear"
msgstr "_Очистить чат"
#: src/window.py:632
msgid "Save Changes"
msgstr ""
#: src/window.py:633
msgid "Do you want to save the URL change?"
msgstr ""
#: src/window.py:637
#, fuzzy
msgid "Discard"
msgstr "Отказ от ответственности"
#: src/window.py:638
msgid "Save"
msgstr ""
#: src/window.py:681
msgid "Remove Image"
msgstr ""
#: src/window.py:682
msgid "Are you sure you want to remove image?"
msgstr ""
#: src/window.py:686
msgid "Remove"
msgstr ""
#: src/window.py:708
#, fuzzy
msgid "Delete Chat"
msgstr "_Очистить чат"
#: src/window.py:739
#, fuzzy
msgid "Rename Chat"
msgstr "_Очистить чат"
#: src/window.py:746
msgid "Rename"
msgstr ""
#: src/window.py:766
msgid "The name '{}' is already in use"
msgstr ""
#: src/window.py:779
#, fuzzy
msgid "Create Chat"
msgstr "_Очистить чат"
#: src/window.py:786
msgid "Create"
msgstr ""
#: src/window.ui:55
msgid "Chats"
msgstr "Чаты"
#: src/window.ui:65
msgid "New chat"
msgstr "Новый чат"
#: src/window.ui:101
msgid "Toggle Sidebar"
msgstr "Переключение боковой панели"
#: src/window.ui:122 src/window.ui:259
msgid "Manage models"
msgstr "Управление моделями"
#: src/window.ui:136
msgid "Menu"
msgstr "Меню"
#: src/window.ui:215
msgid "Send"
msgstr "Отправить"
#: src/window.ui:224
msgid "Requires model 'llava' to be selected"
msgstr "Требуется выбрать модель \"llava\""
#: src/window.ui:227
msgid "Image"
msgstr "Изображение"
#: src/window.ui:344
msgid "Previous"
msgstr "Предыдущий"
#: src/window.ui:359
msgid "Next"
msgstr "Следующий"
#: src/window.ui:385
msgid "Welcome to Alpaca"
msgstr "Добро пожаловать в Alpaca"
#: src/window.ui:386
msgid ""
"To get started, please ensure you have an Ollama instance set up. You can "
"either run Ollama locally on your machine or connect to a remote instance."
msgstr ""
"Для начала, пожалуйста, убедитесь, что у вас настроен экземпляр Ollama. Вы "
"можете либо запустить Ollama локально на своем компьютере, либо подключиться "
"к удаленному экземпляру."
#: src/window.ui:389
msgid "Ollama Website"
msgstr "Веб-сайт Ollama"
#: src/window.ui:406
msgid ""
"Alpaca and its developers are not liable for any damages to devices or "
"software resulting from the execution of code generated by an AI model. "
"Please exercise caution and review the code carefully before running it."
msgstr ""
"Alpaca и ее разработчики не несут ответственности за любой ущерб, "
"причиненный устройствам или программному обеспечению в результате выполнения "
"кода, сгенерированного с помощью модели искусственного интеллекта. "
"Пожалуйста, будьте осторожны и внимательно ознакомьтесь с кодом перед его "
"запуском."
#: src/window.ui:418
msgid "Setup"
msgstr "Установка"
#: src/window.ui:419
msgid ""
"If you are running an Ollama instance locally and haven't modified the "
"default ports, you can use the default URL. Otherwise, please enter the URL "
"of your Ollama instance."
msgstr ""
"Если вы запускаете локальный экземпляр Ollama и не изменили порты по "
"умолчанию, вы можете использовать URL-адрес по умолчанию. В противном "
"случае, пожалуйста, введите URL-адрес вашего экземпляра Ollama."
#: src/window.ui:443
#, fuzzy
msgid "Change Server"
msgstr "_Изменить Сервер"
#: src/window.ui:447
#, fuzzy
msgid "Keyboard Shortcuts"
msgstr "Показывать ярлыки"
#: src/window.ui:451
#, fuzzy
msgid "About Alpaca"
msgstr "_О Программе"
#: src/window.ui:473
#, fuzzy
msgid "General"
msgstr "Общие"
#: src/window.ui:477
msgid "Close application"
msgstr ""
#: src/window.ui:483
#, fuzzy
msgid "Clear chat"
msgstr "_Очистить чат"
#: src/window.ui:489
#, fuzzy
msgid "Change server"
msgstr "_Изменить Сервер"
#: src/window.ui:495
#, fuzzy
msgid "Show shortcuts window"
msgstr "Показывать ярлыки"
#: src/window.ui:502
msgid "Editor"
msgstr ""
#: src/window.ui:506
msgid "Copy"
msgstr ""
#: src/window.ui:512
msgid "Paste"
msgstr ""
#: src/window.ui:518
msgid "Send Message"
msgstr ""
#~ msgctxt "shortcut window"
#~ msgid "Quit"
#~ msgstr "Выйти"

132
po/ru.po~ Normal file
View File

@@ -0,0 +1,132 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: 2024-05-19 14:52+0800\n"
"PO-Revision-Date: 2024-05-19 14:59+0800\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: ru_RU\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.4.2\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.ui:39
msgid "Chats"
msgstr "Чаты"
#: window.ui:49
msgid "New chat"
msgstr "Новый чат"
#: window.ui:86
msgid "Toggle Sidebar"
msgstr "Переключение боковой панели"
#: window.ui:107
msgid "Manage models"
msgstr "Управление моделями"
#: window.ui:121
msgid "Menu"
msgstr "Меню"
#: window.ui:202
msgid "Send"
msgstr "Отправить"
#: window.ui:211
msgid "Requires model 'llava' to be selected"
msgstr "Требуется выбрать модель \"llava\""
#: window.ui:214
msgid "Image"
msgstr "Изображение"
#: window.ui:249
msgid "Pulling Model"
msgstr "Вытягивающая модель"
#: window.ui:345
msgid "Previous"
msgstr "Предыдущий"
#: window.ui:360
msgid "Next"
msgstr "Следующий"
#: window.ui:386
msgid "Welcome to Alpaca"
msgstr "Добро пожаловать в Alpaca"
#: window.ui:387
msgid ""
"To get started, please ensure you have an Ollama instance set up. You can "
"either run Ollama locally on your machine or connect to a remote instance."
msgstr ""
"Для начала, пожалуйста, убедитесь, что у вас настроен экземпляр Ollama. Вы "
"можете либо запустить Ollama локально на своем компьютере, либо подключиться "
"к удаленному экземпляру."
#: window.ui:390
msgid "Ollama Website"
msgstr "Веб-сайт Ollama"
#: window.ui:406
msgid "Disclaimer"
msgstr "Отказ от ответственности"
#: window.ui:407
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:419
msgid "Setup"
msgstr "Установка"
#: window.ui:420
msgid ""
"If you are running an Ollama instance locally and haven't modified the "
"default ports, you can use the default URL. Otherwise, please enter the URL "
"of your Ollama instance."
msgstr ""
"Если вы запускаете локальный экземпляр Ollama и не изменили порты по "
"умолчанию, вы можете использовать URL-адрес по умолчанию. В противном "
"случае, пожалуйста, введите URL-адрес вашего экземпляра Ollama."
#: window.ui:440
msgid "_Clear Chat"
msgstr "_Очистить чат"
#: window.ui:444
msgid "_Change Server"
msgstr "_Изменить Сервер"
#: window.ui:448
msgid "_About Alpaca"
msgstr "_О Программе"

View File

@@ -1,34 +0,0 @@
{
"name": "python3-requests",
"buildsystem": "simple",
"build-commands": [
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"requests\" --no-build-isolation"
],
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl",
"sha256": "dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/63/09/c1bc53dab74b1816a00d8d030de5bf98f724c52c1635e07681d312f20be8/charset-normalizer-3.3.2.tar.gz",
"sha256": "f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/e5/3e/741d8c82801c347547f8a2a06aa57dbb1992be9e948df2ea0eda2c8b79e8/idna-3.7-py3-none-any.whl",
"sha256": "82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl",
"sha256": "58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl",
"sha256": "450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"
}
]
}

File diff suppressed because one or more lines are too long

View File

@@ -7,9 +7,9 @@ def simple_get(connection_url:str) -> dict:
if response.status_code == 200:
return {"status": "ok", "text": response.text, "status_code": response.status_code}
else:
return {"status": "error", "text": f"Failed to connect to {connection_url}. Status code: {response.status_code}", "status_code": response.status_code}
return {"status": "error", "status_code": response.status_code}
except Exception as e:
return {"status": "error", "text": f"An error occurred while trying to connect to {connection_url}", "status_code": 0}
return {"status": "error", "status_code": 0}
def simple_delete(connection_url:str, data) -> dict:
try:
@@ -19,7 +19,7 @@ def simple_delete(connection_url:str, data) -> dict:
else:
return {"status": "error", "text": "Failed to delete", "status_code": response.status_code}
except Exception as e:
return {"status": "error", "text": f"An error occurred while trying to connect to {connection_url}", "status_code": 0}
return {"status": "error", "status_code": 0}
def stream_post(connection_url:str, data, callback:callable) -> dict:
try:
@@ -31,11 +31,11 @@ def stream_post(connection_url:str, data, callback:callable) -> dict:
for line in response.iter_lines():
if line:
callback(json.loads(line.decode("utf-8")))
return {"status": "ok", "text": "All good", "status_code": response.status_code}
return {"status": "ok", "status_code": response.status_code}
else:
return {"status": "error", "text": "Error posting data", "status_code": response.status_code}
return {"status": "error", "status_code": response.status_code}
except Exception as e:
return {"status": "error", "text": f"An error occurred while trying to connect to {connection_url}", "status_code": 0}
return {"status": "error", "status_code": 0}
from time import sleep
@@ -58,4 +58,4 @@ def stream_post_fake(connection_url:str, data, callback:callable) -> dict:
sleep(.1)
data = {"status": msg}
callback(data)
return {"status": "ok", "text": "All good", "status_code": 200}
return {"status": "ok", "status_code": 200}

View File

@@ -33,8 +33,9 @@ class AlpacaApplication(Adw.Application):
super().__init__(application_id='com.jeffser.Alpaca',
flags=Gio.ApplicationFlags.DEFAULT_FLAGS)
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('reconnect', lambda *_: AlpacaWindow.show_connection_dialog(self.props.active_window), ['<primary>r'])
self.create_action('about', self.on_about_action)
self.create_action('preferences', self.on_preferences_action)
def do_activate(self):
win = self.props.active_window
@@ -43,19 +44,17 @@ class AlpacaApplication(Adw.Application):
win.present()
def on_about_action(self, widget, _):
about = Adw.AboutWindow(transient_for=self.props.active_window,
about = Adw.AboutDialog(#transient_for=self.props.active_window,
application_name='Alpaca',
application_icon='com.jeffser.Alpaca',
developer_name='Jeffry Samuel Eduarte Rojas',
version='0.1.1',
version='0.5.1',
developers=['Jeffser https://jeffser.com'],
designers=['Jeffser https://jeffser.com'],
translator_credits='Alex K (Russian) https://github.com/alexkdeveloper',
copyright='© 2024 Jeffser',
issue_url='https://github.com/Jeffser/Alpaca/issues')
about.present()
def on_preferences_action(self, widget, _):
print('app.preferences action activated')
about.present(parent=self.props.active_window)
def create_action(self, name, callback, shortcuts=None):
action = Gio.SimpleAction.new(name, None)

File diff suppressed because it is too large Load Diff

View File

@@ -4,178 +4,313 @@
<requires lib="Adw" version="1.0"/>
<template class="AlpacaWindow" parent="AdwApplicationWindow">
<property name="resizable">True</property>
<property name="width-request">350</property>
<property name="height-request">500</property>
<property name="default-width">1300</property>
<property name="default-height">800</property>
<child>
<object class="AdwBreakpoint">
<condition>max-width: 800sp</condition>
<setter object="split_view_overlay" property="collapsed">true</setter>
</object>
</child>
<child>
</child>
<child>
<object class="AdwBreakpoint">
<condition>max-width: 500sp</condition>
<setter object="split_view_overlay" property="collapsed">true</setter>
<setter object="connection_dialog" property="width-request">400</setter>
<setter object="connection_dialog" property="height-request">400</setter>
<setter object="manage_models_dialog" property="width-request">400</setter>
</object>
</child>
<child>
<object class="AdwBreakpoint">
<condition>max-width: 400sp</condition>
<setter object="split_view_overlay" property="collapsed">true</setter>
<setter object="connection_dialog" property="width-request">300</setter>
<setter object="connection_dialog" property="height-request">300</setter>
<setter object="manage_models_dialog" property="width-request">300</setter>
</object>
</child>
<property name="content">
<object class="AdwToastOverlay" id="overlay">
<object class="AdwToastOverlay" id="main_overlay">
<child>
<object class="AdwToolbarView">
<child type="top">
<object class="AdwHeaderBar" id="header_bar">
<property name="title-widget">
<object class="GtkBox">
<property name="orientation">0</property>
<property name="spacing">12</property>
<child>
<object class="GtkDropDown" id="model_drop_down">
<property name="enable-search">true</property>
<property name="model">
<object class="GtkStringList" id="model_string_list">
<items>
</items>
</object>
</property>
</object>
</child>
<child>
<object class="GtkButton" id="manage_models_button">
<property name="tooltip-text" translatable="yes">Manage models</property>
<child>
<object class="AdwButtonContent">
<property name="icon-name">package-x-generic-symbolic</property>
</object>
</child>
</object>
</child>
</object>
</property>
<child type="end">
<object class="GtkMenuButton">
<property name="primary">True</property>
<property name="icon-name">open-menu-symbolic</property>
<property name="tooltip-text" translatable="yes">Menu</property>
<property name="menu-model">primary_menu</property>
</object>
</child>
</object>
</child>
<property name="content">
<object class="GtkBox"><!--ACTUAL CONTENT-->
<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="sidebar">
<object class="GtkBox">
<property name="spacing">12</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="orientation">1</property>
<property name="margin-start">24</property>
<property name="margin-end">24</property>
<property name="margin-bottom">24</property>
<property name="vexpand">true</property>
<property name="hexpand">true</property>
<child>
<object class="GtkScrolledWindow" id="chat_window">
<property name="margin-bottom">12</property>
<property name="has-frame">true</property>
<property name="propagate-natural-height">true</property>
<property name="min-content-width">500</property>
<property name="min-content-height">600</property>
<property name="kinetic-scrolling">1</property>
<property name="vexpand">true</property>
<style>
<class name="undershoot-top"/>
<class name="undershoot-bottom"/>
<class name="card"/>
</style>
<child>
<object class="GtkBox" id="chat_container">
<property name="orientation">1</property>
<property name="homogeneous">false</property>
<property name="hexpand">false</property>
<property name="vexpand">true</property>
<property name="spacing">12</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>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox">
<property name="orientation">0</property>
<property name="spacing">12</property>
<child>
<object class="GtkEntry" id="message_entry">
<object class="GtkLabel">
<property name="label" translatable="yes">Chats</property>
<property name="hexpand">true</property>
<property name="halign">1</property>
<style>
<class name="title-1"/>
</style>
</object>
</child>
<child>
<object class="GtkButton" id="send_button">
<object class="GtkButton" id="add_chat_button">
<property name="tooltip-text" translatable="yes">New chat</property>
<style>
<class name="suggested-action"/>
<class name="flat"/>
</style>
<child>
<object class="AdwButtonContent">
<property name="label" translatable="true">Send</property>
<property name="icon-name">send-to-symbolic</property>
<property name="icon-name">tab-new-symbolic</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object><!--END OF CONTENT-->
<child>
<object class="GtkScrolledWindow">
<property name="vexpand">true</property>
<property name="hexpand">true</property>
<child>
<object class="GtkListBox" id="chat_list_box">
<property name="selection-mode">single</property>
<style>
<class name="boxed-list"/>
</style>
</object>
</child>
</object>
</child>
</object>
</property>
<child>
<object class="AdwToolbarView">
<child type="top">
<object class="AdwHeaderBar" id="header_bar">
<child type="start">
<object class="GtkToggleButton" id="show_sidebar_button">
<property name="icon-name">sidebar-show-symbolic</property>
<property name="tooltip-text" translatable="yes">Toggle Sidebar</property>
<property name="active" bind-source="split_view_overlay" bind-property="show-sidebar" bind-flags="sync-create"/>
</object>
</child>
<property name="title-widget">
<object class="GtkBox">
<property name="orientation">0</property>
<property name="spacing">12</property>
<child>
<object class="GtkDropDown" id="model_drop_down">
<property name="enable-search">true</property>
<property name="model">
<object class="GtkStringList" id="model_string_list">
<items>
</items>
</object>
</property>
</object>
</child>
<child>
<object class="GtkButton" id="manage_models_button">
<property name="tooltip-text" translatable="yes">Manage models</property>
<child>
<object class="AdwButtonContent">
<property name="icon-name">package-x-generic-symbolic</property>
</object>
</child>
</object>
</child>
</object>
</property>
<child type="end">
<object class="GtkMenuButton">
<property name="primary">True</property>
<property name="icon-name">open-menu-symbolic</property>
<property name="tooltip-text" translatable="yes">Menu</property>
<property name="menu-model">primary_menu</property>
</object>
</child>
</object>
</child>
<property name="content">
<object class="GtkBox"><!--ACTUAL CONTENT-->
<property name="orientation">1</property>
<property name="margin-start">24</property>
<property name="margin-end">24</property>
<property name="margin-bottom">24</property>
<property name="vexpand">true</property>
<property name="hexpand">true</property>
<child>
<object class="GtkScrolledWindow" id="chat_window">
<property name="margin-bottom">12</property>
<property name="has-frame">true</property>
<property name="propagate-natural-height">true</property>
<property name="kinetic-scrolling">1</property>
<property name="vexpand">true</property>
<style>
<class name="card"/>
</style>
<child>
<object class="GtkBox" id="chat_container">
<property name="orientation">1</property>
<property name="homogeneous">false</property>
<property name="hexpand">false</property>
<property name="vexpand">true</property>
<property name="spacing">12</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>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox">
<property name="orientation">0</property>
<property name="spacing">12</property>
<child>
<object class="GtkScrolledWindow">
<property name="has-frame">true</property>
<style>
<class name="card"/>
<class name="view"/>
</style>
<child>
<object class="GtkTextView" id="message_text_view">
<property name="wrap-mode">word</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="margin-start">6</property>
<property name="margin-end">6</property>
<property name="hexpand">true</property>
<style>
<class name="view"/>
</style>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox">
<property name="orientation">1</property>
<property name="spacing">12</property>
<child>
<object class="GtkButton" id="send_button">
<style>
<class name="suggested-action"/>
</style>
<child>
<object class="AdwButtonContent">
<property name="label" translatable="yes">Send</property>
<property name="icon-name">send-to-symbolic</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkButton" id="image_button">
<property name="sensitive">false</property>
<property name="tooltip-text" translatable="yes">Requires model 'llava' to be selected</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>
</child>
</object><!--END OF CONTENT-->
</property>
</object>
</child>
</object>
</child>
</object>
</property>
<object class="AdwDialog" id="pull_model_dialog">
<property name="can-close">false</property>
<property name="width-request">400</property>
<child>
<object class="AdwToolbarView">
<child>
<object class="AdwStatusPage" id="pull_model_status_page">
<property name="hexpand">true</property>
<property name="vexpand">true</property>
<property name="margin-top">24</property>
<property name="margin-bottom">24</property>
<property name="margin-start">24</property>
<property name="margin-end">24</property>
<property name="title" translatable="yes">Pulling Model</property>
<child>
<object class="GtkProgressBar" id="pull_model_progress_bar">
<property name="show-text">true</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
<object class="AdwDialog" id="manage_models_dialog">
<property name="can-close">true</property>
<property name="width-request">400</property>
<property name="height-request">600</property>
<child>
<object class="AdwToolbarView">
<child type="top">
<object class="AdwHeaderBar">
<property name="title-widget">
<object class="AdwWindowTitle">
<property name="title">Manage models</property>
</object>
</property>
</object>
</child>
<object class="AdwToastOverlay" id="manage_models_overlay">
<child>
<object class="GtkBox">
<property name="hexpand">true</property>
<property name="vexpand">true</property>
<property name="margin-top">0</property>
<property name="margin-bottom">24</property>
<property name="margin-start">24</property>
<property name="margin-end">24</property>
<object class="AdwToolbarView">
<child type="top">
<object class="AdwHeaderBar">
<property name="title-widget">
<object class="AdwWindowTitle">
<property name="title" translatable="yes">Manage models</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="hexpand">true</property>
<property name="vexpand">true</property>
<property name="margin-top">0</property>
<property name="margin-bottom">24</property>
<property name="margin-start">24</property>
<property name="margin-end">24</property>
<child>
<object class="GtkListBox" id="model_list_box">
<property name="selection-mode">none</property>
<style>
<class name="boxed-list"/>
</style>
<object class="GtkBox">
<property name="orientation">1</property>
<property name="spacing">12</property>
<child>
<object class="GtkListBox" id="pulling_model_list_box">
<property name="selection-mode">none</property>
<style>
<class name="boxed-list"/>
</style>
</object>
</child>
<child>
<object class="GtkSeparator">
<style>
<class name="spacer"/>
</style>
</object>
</child>
<child>
<object class="GtkListBox" id="local_model_list_box">
<property name="selection-mode">none</property>
<style>
<class name="boxed-list"/>
</style>
</object>
</child>
<child>
<object class="GtkSeparator">
<style>
<class name="spacer"/>
</style>
</object>
</child>
<child>
<object class="GtkListBox" id="available_model_list_box">
<property name="selection-mode">none</property>
<style>
<class name="boxed-list"/>
</style>
</object>
</child>
</object>
</child>
</object>
@@ -185,21 +320,207 @@
</object>
</child>
</object>
<object class="AdwDialog" id="connection_dialog">
<property name="can-close">false</property>
<property name="width-request">450</property>
<property name="height-request">450</property>
<child>
<object class="AdwToastOverlay" id="connection_overlay">
<child>
<object class="AdwToolbarView">
<child type="top">
<object class="AdwHeaderBar">
</object>
</child>
<child type="bottom">
<object class="GtkActionBar">
<property name="hexpand">true</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-bottom">5</property>
<child type="start">
<object class="GtkButton" id="connection_previous_button">
<property name="tooltip-text" translatable="yes">Previous</property>
<property name="label">Previous</property>
<property name="sensitive">false</property>
<style>
<class name="raised"/>
</style>
</object>
</child>
<child type="center">
<object class="AdwCarouselIndicatorDots">
<property name="carousel">connection_carousel</property>
</object>
</child>
<child type="end">
<object class="GtkButton" id="connection_next_button">
<property name="tooltip-text" translatable="yes">Next</property>
<property name="label">Next</property>
<style>
<class name="suggested-action"/>
</style>
</object>
</child>
</object>
</child>
<child>
<object class="AdwCarousel" id="connection_carousel">
<property name="hexpand">true</property>
<property name="vexpand">true</property>
<property name="allow-long-swipes">true</property>
<property name="allow-scroll-wheel">true</property>
<property name="spacing">12</property>
<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="icon-name">com.jeffser.Alpaca</property>
<property name="title" translatable="yes">Welcome to Alpaca</property>
<property name="description" translatable="yes">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.</property>
<child>
<object class="GtkLinkButton">
<property name="label" translatable="yes">Ollama Website</property>
<property name="uri">https://ollama.com/</property>
<property name="margin-top">12</property>
</object>
</child>
</object>
</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="icon-name">dialog-warning-symbolic</property>
<property name="title" translatable="yes">Disclaimer</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>
</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="icon-name">preferences-other-symbolic</property>
<property name="title" translatable="yes">Setup</property>
<property name="description" translatable="yes">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.</property>
<child>
<object class="GtkEntry" id="connection_url_entry">
<property name="text">http://localhost:11434</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</template>
<menu id="primary_menu">
<section>
<item>
<attribute name="label" translatable="yes">_Preferences</attribute>
<attribute name="action">app.preferences</attribute>
<attribute name="label" translatable="yes">Clear Chat</attribute>
<attribute name="action">app.clear</attribute>
</item>
<item>
<attribute name="label" translatable="yes">_Keyboard Shortcuts</attribute>
<attribute name="label" translatable="yes">Change Server</attribute>
<attribute name="action">app.reconnect</attribute>
</item>
<item>
<attribute name="label" translatable="yes">Keyboard Shortcuts</attribute>
<attribute name="action">win.show-help-overlay</attribute>
</item>
<item>
<attribute name="label" translatable="yes">_About Alpaca</attribute>
<attribute name="label" translatable="yes">About Alpaca</attribute>
<attribute name="action">app.about</attribute>
</item>
</section>
</menu>
<object class="GtkFileFilter" id="file_filter_image">
<mime-types>
<mime-type>image/svg+xml</mime-type>
<mime-type>image/png</mime-type>
<mime-type>image/jpeg</mime-type>
<mime-type>image/webp</mime-type>
<mime-type>image/gif</mime-type>
</mime-types>
</object>
<object class="GtkShortcutsWindow" id="shortcut_window">
<property name="modal">1</property>
<child>
<object class="GtkShortcutsSection">
<property name="section-name">shortcuts</property>
<property name="max-height">10</property>
<child>
<object class="GtkShortcutsGroup">
<property name="title" translatable="yes">General</property>
<child>
<object class="GtkShortcutsShortcut">
<property name="accelerator">&lt;ctrl&gt;Q</property>
<property name="title" translatable="yes">Close application</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="accelerator">&lt;ctrl&gt;E</property>
<property name="title" translatable="yes">Clear chat</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="accelerator">&lt;ctrl&gt;R</property>
<property name="title" translatable="yes">Change server</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="accelerator">&lt;ctrl&gt;slash</property>
<property name="title" translatable="yes">Show shortcuts window</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkShortcutsGroup">
<property name="title" translatable="yes">Editor</property>
<child>
<object class="GtkShortcutsShortcut">
<property name="accelerator">&lt;ctrl&gt;C</property>
<property name="title" translatable="yes">Copy</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="accelerator">&lt;ctrl&gt;V</property>
<property name="title" translatable="yes">Paste</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="accelerator">&lt;ctrl&gt;Return</property>
<property name="title" translatable="yes">Send Message</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</interface>

8
update_translation_files.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
cd "$(dirname "$0")"
echo "Preparing template..."
xgettext --output=po/alpaca.pot --files-from=po/POTFILES
echo "Updating Spanish..."
msgmerge -U po/es.po po/alpaca.pot
echo "Updating Russian..."
msgmerge -U po/ru.po po/alpaca.pot