Compare commits

...

47 commits

Author SHA1 Message Date
gallegonovato
a0a66279a3
Translated using Weblate (Spanish)
Currently translated at 100.0% (103 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/es/
2024-02-27 05:56:32 +00:00
Vistaus
72d072fb5d
Translated using Weblate (Dutch)
Currently translated at 100.0% (103 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/nl/
2024-02-26 02:56:32 +00:00
SomeTr
c8600e1e36
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (103 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/uk/
2024-02-26 02:56:32 +00:00
Weblate Translation Memory
87c868193a
Translated using Weblate (Basque)
Currently translated at 92.2% (95 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/eu/
2024-02-25 13:48:11 +00:00
Weblate Translation Memory
0a1c180c00
Translated using Weblate (Hebrew)
Currently translated at 25.2% (26 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/he/
2024-02-25 13:48:11 +00:00
Weblate Translation Memory
9d09b29808
Translated using Weblate (Chinese (Traditional))
Currently translated at 35.9% (37 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/zh_Hant/
2024-02-25 13:48:11 +00:00
Weblate Translation Memory
c85b2e5a4e
Translated using Weblate (Estonian)
Currently translated at 30.0% (31 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/et/
2024-02-25 13:48:11 +00:00
Weblate Translation Memory
211623a3f7
Translated using Weblate (Tamil)
Currently translated at 94.1% (97 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/ta/
2024-02-25 13:48:11 +00:00
Weblate Translation Memory
b3c68de417
Translated using Weblate (Arabic)
Currently translated at 34.9% (36 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/ar/
2024-02-25 13:48:11 +00:00
Weblate Translation Memory
409fd0bc6e
Translated using Weblate (Galician)
Currently translated at 31.0% (32 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/gl/
2024-02-25 13:48:11 +00:00
Weblate Translation Memory
48d5990c80
Translated using Weblate (Chinese (Simplified))
Currently translated at 95.1% (98 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/zh_Hans/
2024-02-25 13:48:11 +00:00
Weblate Translation Memory
e16cc89f3f
Translated using Weblate (Thai)
Currently translated at 75.7% (78 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/th/
2024-02-25 13:48:11 +00:00
Weblate Translation Memory
c7eb4bdc04
Translated using Weblate (Persian)
Currently translated at 28.1% (29 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fa/
2024-02-25 13:48:11 +00:00
Weblate Translation Memory
45620244ab
Translated using Weblate (Polish)
Currently translated at 95.1% (98 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/pl/
2024-02-25 13:48:10 +00:00
Weblate Translation Memory
1af0c81347
Translated using Weblate (Dutch)
Currently translated at 95.1% (98 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/nl/
2024-02-25 13:48:10 +00:00
Weblate Translation Memory
a5dffec4b6
Translated using Weblate (Turkish)
Currently translated at 95.1% (98 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/tr/
2024-02-25 13:48:10 +00:00
Weblate Translation Memory
9dc598fcbc
Translated using Weblate (Finnish)
Currently translated at 91.2% (94 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fi/
2024-02-25 13:48:10 +00:00
Weblate
f8508baff1
Translated using Weblate (Azerbaijani)
Currently translated at 25.2% (26 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/az/
2024-02-25 13:48:10 +00:00
Weblate Translation Memory
8f02fbc54a
Translated using Weblate (Azerbaijani)
Currently translated at 25.2% (26 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/az/
2024-02-25 13:48:10 +00:00
Weblate Translation Memory
c201184084
Translated using Weblate (Hungarian)
Currently translated at 35.9% (37 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/hu/
2024-02-25 13:48:10 +00:00
Weblate Translation Memory
3d3abbd4a5
Translated using Weblate (Portuguese)
Currently translated at 54.3% (56 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/pt/
2024-02-25 13:48:10 +00:00
Weblate Translation Memory
a6a610dc42
Translated using Weblate (Czech)
Currently translated at 93.2% (96 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/cs/
2024-02-25 13:48:10 +00:00
Weblate Translation Memory
95d3399272
Translated using Weblate (Swedish)
Currently translated at 32.0% (33 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/sv/
2024-02-25 13:48:10 +00:00
Weblate Translation Memory
96c8918e5b
Translated using Weblate (Italian)
Currently translated at 95.1% (98 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/it/
2024-02-25 13:48:10 +00:00
Weblate Translation Memory
ad08a400f5
Translated using Weblate (Ukrainian)
Currently translated at 95.1% (98 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/uk/
2024-02-25 13:48:09 +00:00
Weblate Translation Memory
91b890de37
Translated using Weblate (Russian)
Currently translated at 95.1% (98 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/ru/
2024-02-25 13:48:09 +00:00
f14f36a0f4
Translated using Weblate (French)
Currently translated at 100.0% (103 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fr/
2024-02-25 13:48:09 +00:00
Weblate Translation Memory
950b080729
Translated using Weblate (Spanish)
Currently translated at 95.1% (98 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/es/
2024-02-25 13:48:09 +00:00
Weblate Translation Memory
54eb263d09
Translated using Weblate (German)
Currently translated at 95.1% (98 of 103 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/de/
2024-02-25 13:48:09 +00:00
Codeberg Translate
dea3de2100
Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/
2024-02-25 13:46:54 +00:00
3296584c59 Update PO 2024-02-25 14:46:39 +01:00
b6151c1581 Update project version and help URL 2024-02-25 14:20:46 +01:00
78958fd18e Add pillow to requirements.txt, and update appdata.xml.in.in with release notes for version 1.1.0 2024-02-25 14:16:37 +01:00
9ce292aaa2 Add "Save" option to menu popover and implement save functionality 2024-02-25 14:12:35 +01:00
dece8f660f Remove unnecessary print statements 2024-02-25 14:12:13 +01:00
6a0f42c1ab Add descriptions to AI models 2024-02-25 13:48:26 +01:00
b80b5998e4 feat: add openai image 2024-02-25 13:48:14 +01:00
14c3dbdcf1 Add new providers AnalogDiffusionProvider, NitroDiffusionProvider, and OpenJourneyProvider 2024-02-25 12:38:44 +01:00
7456becf9e Add image providers 2024-02-25 12:38:39 +01:00
02b02edbbb Add provider type to chat providers 2024-02-25 12:22:27 +01:00
0123a80883 Remove code related to emoji button 2024-02-25 12:19:31 +01:00
495e5a7971 Add ProviderType enum and display provider type in provider item 2024-02-25 01:10:59 +01:00
c543ca1538 Refactor OpenAI provider initialization and error handling 2024-02-25 00:57:53 +01:00
«Juan
62367ce9f4 Fixing problem using openapi 2024-02-25 00:56:14 +01:00
c54e7acc08 Import openai module in local provider 2024-02-25 00:54:06 +01:00
e404f6c980 Remove XdpGtk4 dependency 2024-02-25 00:54:02 +01:00
1587918ff5 feat: add nix flake 2024-02-25 00:53:46 +01:00
64 changed files with 2755 additions and 1296 deletions

View file

@ -0,0 +1,76 @@
diff --git a/src/main.py b/src/main.py
index 79f5401..f82cd0f 100644
--- a/src/main.py
+++ b/src/main.py
@@ -35,7 +35,6 @@ from .constants import app_id
from .providers import PROVIDERS
import json
-from gpt4all import GPT4All
import os
user_config_dir = os.environ.get(
@@ -306,15 +305,7 @@ class BavarderApplication(Adw.Application):
def setup_chat(self):
if not self.models:
self.list_models()
-
- if not self.models:
- return False
- else:
- if self.model is None:
- if self.model_name not in self.models:
- self.download_model(self.model_name)
- self.model = GPT4All(self.model_name, model_path=model_path)
- return True
+ return bool(self.models)
def download_model(self, model=None):
if model:
diff --git a/src/views/preferences_window.py b/src/views/preferences_window.py
index e057aff..73e4ea3 100644
--- a/src/views/preferences_window.py
+++ b/src/views/preferences_window.py
@@ -5,8 +5,6 @@ from bavarder.providers.provider_item import Provider
from bavarder.widgets.model_item import Model
from bavarder.widgets.download_row import DownloadRow
-from gpt4all import GPT4All
-
@Gtk.Template(resource_path=f"{rootdir}/ui/preferences_window.ui")
class PreferencesWindow(Adw.PreferencesWindow):
__gtype_name__ = "Preferences"
@@ -34,7 +32,6 @@ class PreferencesWindow(Adw.PreferencesWindow):
def setup(self):
self.setup_signals()
self.load_providers()
- self.load_models()
self.bot_name.set_text(self.app.bot_name)
self.user_name.set_text(self.app.user_name)
@@ -47,25 +44,6 @@ class PreferencesWindow(Adw.PreferencesWindow):
p = Provider(self.app, self, provider)
self.provider_group.add(p)
- def load_models(self):
- self.general_page.remove(self.model_group)
- self.model_group = Adw.PreferencesGroup()
- self.model_group.set_title(_("Models"))
-
- for model in self.app.models:
- p = Model(self.app, self, model)
- self.model_group.add(p)
- else:
- self.no_models_available = Adw.ExpanderRow()
- self.no_models_available.set_title(_("List of available models"))
-
- for model in GPT4All.list_models():
- self.no_models_available.add_row(DownloadRow(self.app, self, model))
-
- self.model_group.add(self.no_models_available)
-
- self.general_page.add(self.model_group)
-
@Gtk.Template.Callback()
def clear_all_chats_clicked(self, widget, *args):
dialog = Adw.MessageDialog(

View file

@ -12,18 +12,18 @@
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/4c/dd/2234eab22353ffc7d94e8d13177aaa050113286e93e7b40eae01fbf7c3d9/certifi-2023.7.22-py3-none-any.whl",
"sha256": "92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"
"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/2a/53/cf0a48de1bdcf6ff6e1c9a023f5f523dfe303e4024f216feac64b6eb7f67/charset-normalizer-3.2.0.tar.gz",
"sha256": "3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace"
"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/fc/34/3030de6f1370931b9dbb4dad48f6ab1015ab1d32447850b9fc94e60097be/idna-3.4-py3-none-any.whl",
"sha256": "90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"
"url": "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl",
"sha256": "c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"
},
{
"type": "file",
@ -32,8 +32,8 @@
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/9b/81/62fd61001fa4b9d0df6e31d47ff49cfa9de4af03adecf339c7bc30656b37/urllib3-2.0.4-py3-none-any.whl",
"sha256": "de7df1803967d2c2a98e4b11bb7d6bd9210474c46e8a0401514e3a42a75ebde4"
"url": "https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl",
"sha256": "450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"
}
]
},
@ -46,8 +46,8 @@
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/00/e5/f12a80907d0884e6dff9c16d0c0114d81b8cd07dc3ae54c5e962cc83037e/tqdm-4.66.1-py3-none-any.whl",
"sha256": "d302b3c5b53d47bce91fea46679d9c3c6508cf6332229aa1e7d8653723793386"
"url": "https://files.pythonhosted.org/packages/2a/14/e75e52d521442e2fcc9f1df3c5e456aead034203d4797867980de558ab34/tqdm-4.66.2-py3-none-any.whl",
"sha256": "1ee4f8a893eb9bef51c6e35730cebf234d5d0b6bd112b0271e10ed7c24a02bd9"
}
]
},
@ -60,8 +60,8 @@
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/2a/53/cf0a48de1bdcf6ff6e1c9a023f5f523dfe303e4024f216feac64b6eb7f67/charset-normalizer-3.2.0.tar.gz",
"sha256": "3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace"
"url": "https://files.pythonhosted.org/packages/63/09/c1bc53dab74b1816a00d8d030de5bf98f724c52c1635e07681d312f20be8/charset-normalizer-3.3.2.tar.gz",
"sha256": "f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"
}
]
},
@ -74,8 +74,8 @@
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/fc/34/3030de6f1370931b9dbb4dad48f6ab1015ab1d32447850b9fc94e60097be/idna-3.4-py3-none-any.whl",
"sha256": "90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"
"url": "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl",
"sha256": "c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"
}
]
},
@ -88,8 +88,8 @@
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/9b/81/62fd61001fa4b9d0df6e31d47ff49cfa9de4af03adecf339c7bc30656b37/urllib3-2.0.4-py3-none-any.whl",
"sha256": "de7df1803967d2c2a98e4b11bb7d6bd9210474c46e8a0401514e3a42a75ebde4"
"url": "https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl",
"sha256": "450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"
}
]
},
@ -102,8 +102,8 @@
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/df/c4/1088865e0246d7ecf56d819a233ab2b72f7d6ab043965ef327d0731b5434/Babel-2.12.1-py3-none-any.whl",
"sha256": "b4246fb7677d3b98f501a39d43396d3cafdc8eadb045f4a31be01863f655c610"
"url": "https://files.pythonhosted.org/packages/0d/35/4196b21041e29a42dc4f05866d0c94fa26c9da88ce12c38c2265e42c82fb/Babel-2.14.0-py3-none-any.whl",
"sha256": "efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287"
}
]
},
@ -116,73 +116,87 @@
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/d6/12/6fc7c7dcc84e263940e87cbafca17c1ef28f39dae6c0b10f51e4ccc764ee/aiohttp-3.8.5.tar.gz",
"sha256": "b9552ec52cc147dbf1944ac7ac98af7602e51ea2dcd076ed194ca3c0d1c7d0bc"
"url": "https://files.pythonhosted.org/packages/28/78/d31230046e58c207284c6b2c4e8d96e6d3cb4e52354721b944d3e1ee4aa5/annotated_types-0.6.0-py3-none-any.whl",
"sha256": "0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/76/ac/a7305707cb852b7e16ff80eaf5692309bde30e2b1100a1fcacdc8f731d97/aiosignal-1.3.1-py3-none-any.whl",
"sha256": "f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17"
"url": "https://files.pythonhosted.org/packages/14/fd/2f20c40b45e4fb4324834aea24bd4afdf1143390242c0b33774da0e2e34f/anyio-4.3.0-py3-none-any.whl",
"sha256": "048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/a7/fa/e01228c2938de91d47b307831c62ab9e4001e747789d0b05baf779a6488c/async_timeout-4.0.3-py3-none-any.whl",
"sha256": "7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"
"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/f0/eb/fcb708c7bf5056045e9e98f62b93bd7467eb718b0202e7698eb11d66416c/attrs-23.1.0-py3-none-any.whl",
"sha256": "1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"
"url": "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl",
"sha256": "7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/4c/dd/2234eab22353ffc7d94e8d13177aaa050113286e93e7b40eae01fbf7c3d9/certifi-2023.7.22-py3-none-any.whl",
"sha256": "92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"
"url": "https://files.pythonhosted.org/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl",
"sha256": "e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/2a/53/cf0a48de1bdcf6ff6e1c9a023f5f523dfe303e4024f216feac64b6eb7f67/charset-normalizer-3.2.0.tar.gz",
"sha256": "3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace"
"url": "https://files.pythonhosted.org/packages/2c/93/13f25f2f78646bab97aee7680821e30bd85b2ff0fc45d5fdf5393b79716d/httpcore-1.0.4-py3-none-any.whl",
"sha256": "ac418c1db41bade2ad53ae2f3834a3a0f5ae76b56cf5aa497d2d033384fc7d73"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/8c/1f/49c96ccc87127682ba900b092863ef7c20302a2144b3185412a08480ca22/frozenlist-1.4.0.tar.gz",
"sha256": "09163bdf0b2907454042edb19f887c6d33806adc71fbd54afc14908bfdc22251"
"url": "https://files.pythonhosted.org/packages/41/7b/ddacf6dcebb42466abd03f368782142baa82e08fc0c1f8eaa05b4bae87d5/httpx-0.27.0-py3-none-any.whl",
"sha256": "71d5465162c13681bff01ad59b2cc68dd838ea1f10e51574bac27103f00c91a5"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/fc/34/3030de6f1370931b9dbb4dad48f6ab1015ab1d32447850b9fc94e60097be/idna-3.4-py3-none-any.whl",
"sha256": "90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"
"url": "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl",
"sha256": "c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/4a/15/bd620f7a6eb9aa5112c4ef93e7031bcd071e0611763d8e17706ef8ba65e0/multidict-6.0.4.tar.gz",
"sha256": "3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"
"url": "https://files.pythonhosted.org/packages/26/a1/75474477af2a1dae3a25f80b72bbaf20e8296191ece7fff2f67984206f33/openai-1.12.0-py3-none-any.whl",
"sha256": "a54002c814e05222e413664f651b5916714e4700d041d5cf5724d3ae1a3e3481"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/67/78/7588a047e458cb8075a4089d721d7af5e143ff85a2388d4a28c530be0494/openai-0.27.8-py3-none-any.whl",
"sha256": "e0a7c2f7da26bdbe5354b03c6d4b82a2f34bd4458c7a17ae1a7092c3e397e03c"
"url": "https://files.pythonhosted.org/packages/42/28/f19be8d493c59a8ddf32c15d69765c6423ad712da1c6255b418df2fc1443/pydantic-2.6.2-py3-none-any.whl",
"sha256": "37a5432e54b12fecaa1049c5195f3d860a10e01bdfd24f1840ef14bd0d3aeab3"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl",
"sha256": "58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"
"url": "https://files.pythonhosted.org/packages/77/3f/65dbe5231946fe02b4e6ea92bc303d2462f45d299890fd5e8bfe4d1c3d66/pydantic_core-2.16.3.tar.gz",
"sha256": "1cac689f80a3abab2d3c0048b29eea5751114054f032a941a32de4c852c59cad"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/00/e5/f12a80907d0884e6dff9c16d0c0114d81b8cd07dc3ae54c5e962cc83037e/tqdm-4.66.1-py3-none-any.whl",
"sha256": "d302b3c5b53d47bce91fea46679d9c3c6508cf6332229aa1e7d8653723793386"
"url": "https://files.pythonhosted.org/packages/c3/a0/5dba8ed157b0136607c7f2151db695885606968d1fae123dc3391e0cfdbf/sniffio-1.3.0-py3-none-any.whl",
"sha256": "eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/9b/81/62fd61001fa4b9d0df6e31d47ff49cfa9de4af03adecf339c7bc30656b37/urllib3-2.0.4-py3-none-any.whl",
"sha256": "de7df1803967d2c2a98e4b11bb7d6bd9210474c46e8a0401514e3a42a75ebde4"
"url": "https://files.pythonhosted.org/packages/2a/14/e75e52d521442e2fcc9f1df3c5e456aead034203d4797867980de558ab34/tqdm-4.66.2-py3-none-any.whl",
"sha256": "1ee4f8a893eb9bef51c6e35730cebf234d5d0b6bd112b0271e10ed7c24a02bd9"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/5f/3f/04b3c5e57844fb9c034b09c5cb6d2b43de5d64a093c30529fd233e16cf09/yarl-1.9.2.tar.gz",
"sha256": "04ab9d4b9f587c06d801c2abfe9317b77cdf996c65a90d5e84ecc45010823571"
"url": "https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl",
"sha256": "af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd"
}
]
},
{
"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/f8/3e/32cbd0129a28686621434cbf17bb64bf1458bfb838f1f668262fefce145c/pillow-10.2.0.tar.gz",
"sha256": "e87f0b2c78157e12d7686b27d63c070fd65d994e8ddae6f328e0dcf4a0cd007e"
}
]
}

View file

@ -121,6 +121,19 @@
</keyword>
</keywords>
<releases>
<release version="1.1.0" date="2024-2-25" type="stable">
<description>
<p>
Image generation support
</p>
<p>
New providers
</p>
<p>
Bug fixes
</p>
</description>
</release>
<release version="1.0.0" date="2023-7-19" type="stable">
<description>
<p>

61
flake.lock Normal file
View file

@ -0,0 +1,61 @@
{
"nodes": {
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1705309234,
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1708751719,
"narHash": "sha256-0uWOKSpXJXmXswOvDM5Vk3blB74apFB6rNGWV5IjoN0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f63ce824cd2f036216eb5f637dfef31e1a03ee89",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

74
flake.nix Normal file
View file

@ -0,0 +1,74 @@
{
description = "Bavarder";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = {
self,
nixpkgs,
flake-utils,
...
}: let
systems = ["aarch64-linux" "x86_64-linux"];
in
flake-utils.lib.eachSystem systems (
system: let
pkgs = nixpkgs.legacyPackages.${system};
bavarder = pkgs.python3Packages.buildPythonApplication rec {
pname = "bavarder";
version = self.rev or "dirty";
pyproject = false;
src = ./.;
patches = [
# Removes gpt4all support. It would be lots of work to package it properly
# and we already have ollama with working ROCm + CUDA in nixpkgs.
./0001-remove-gpt4all-support.patch
];
nativeBuildInputs = with pkgs; [
appstream-glib
blueprint-compiler
desktop-file-utils
gettext
gtk4
meson
ninja
pkg-config
wrapGAppsHook4
];
buildInputs = with pkgs; [
gtksourceview5
libadwaita
libportal
];
propagatedBuildInputs = with pkgs.python3Packages; [
babel
gst-python
lxml
openai
pygobject3
pillow
requests
];
};
in {
formatter = pkgs.alejandra;
checks.bavarder = bavarder;
packages.default = bavarder;
devShells.default = pkgs.mkShell.override {stdenv = pkgs.python3Packages.stdenv;} {
inherit (bavarder) nativeBuildInputs buildInputs propagatedBuildInputs;
};
}
);
}

View file

@ -1,5 +1,5 @@
project('bavarder',
version: '1.0.0',
version: '1.1.0',
meson_version: '>= 0.62.0',
default_options: [ 'warning_level=2', 'werror=false', ],
)
@ -11,7 +11,7 @@ python = import('python')
# Constants
PROJECT_RDNN_NAME = 'io.github.Bavarder.Bavarder'
BUGTRACKER_URL = 'https://codeberg.org/Bavarder/Bavarder/issues'
HELP_URL = 'https://matrix.to/#/#bavarder:projectsegfau.lt'
HELP_URL = 'https://matrix.to/#/#bavarder:envs.net'
TRANSLATE_URL = 'https://translate.codeberg.org/engage/bavarder/'
PROJECT_URL = 'https://bavarder.codeberg.page'

View file

@ -1,14 +1,14 @@
# Bavarder POT file
# Copyright (C) 2023 Bavarder
# Copyright (C) 2024 Bavarder
# This file is distributed under the GNU GPLv3 license.
# Bavarder, 2023.
# Bavarder, 2024.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\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"
@ -22,7 +22,27 @@ msgstr ""
msgid "Bavarder"
msgstr ""
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr ""
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr ""
#: src/providers/base.py:10
msgid "Voice"
msgstr ""
#: src/providers/base.py:11
msgid "Text"
msgstr ""
#: src/providers/base.py:12
msgid "Movie"
msgstr ""
#: src/providers/base.py:86
msgid "How to get a token"
msgstr ""
@ -46,7 +66,7 @@ msgstr ""
msgid "API Key"
msgstr ""
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr ""
@ -70,21 +90,21 @@ msgstr ""
msgid "Translate"
msgstr ""
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr ""
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr ""
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr ""
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
msgid "Models"
msgstr ""
@ -101,26 +121,26 @@ msgid "Are you sure you want to delete all threads? This can't be undone!"
msgstr ""
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr ""
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr ""
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr ""
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr ""
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr ""
@ -156,14 +176,10 @@ msgstr ""
msgid "Discard"
msgstr ""
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr ""
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr ""
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr ""
@ -188,41 +204,41 @@ msgstr ""
msgid "Thread successfully saved!"
msgstr ""
#: src/views/window.py:177
#: src/views/window.py:179
msgid "New chat"
msgstr ""
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr ""
#: src/views/window.py:213
#: src/views/window.py:215
msgid ""
"Are you sure you want to delete all chats in this thread? This can't be "
"undone!"
msgstr ""
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr ""
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr ""
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
msgid "Clear all"
msgstr ""
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr ""
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr ""
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr ""
@ -247,10 +263,6 @@ msgstr ""
msgid "Message"
msgstr ""
#: src/views/window.blp:108
msgid "Chat"
msgstr ""
#: src/views/window.blp:156
msgid "No Messages"
msgstr ""
@ -267,10 +279,6 @@ msgstr ""
msgid "Get started by creating a new chat"
msgstr ""
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr ""
#: src/views/window.blp:259
msgid "Ask"
msgstr ""
@ -309,11 +317,27 @@ msgstr ""
msgid "Edit"
msgstr ""
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr ""
#: src/widgets/item.py:189
#: src/widgets/item.py:219
msgid "Failed to save the image"
msgstr ""
#: src/widgets/item.py:221
msgid "Image saved"
msgstr ""
#: src/widgets/item.py:231
msgid "No image to save"
msgstr ""
#: src/widgets/item.py:235
msgid "Save message"
msgstr ""
#: src/widgets/item.py:251
msgid "Message copied"
msgstr ""
@ -420,16 +444,16 @@ msgstr ""
msgid "Thread Deleted"
msgstr ""
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
msgstr ""
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr ""
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr ""

View file

@ -1,9 +1,17 @@
ar
az
cs
de
es
et
eu
fa
fi
fr
gl
he
hu
it
nl
pl
pt
@ -11,15 +19,7 @@ ru
sv
ta
th
uk
zh_Hant
cs
ar
es
eu
fi
it
zh_Hans
tr
de
fr
uk
zh_Hans
zh_Hant

114
po/ar.po
View file

@ -5,13 +5,15 @@
#
# nakibrayan2 <codeberg.org.quoz7@aleeas.com>, 2023.
# SomeTr <SomeTr@users.noreply.translate.codeberg.org>, 2023.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2023-10-30 09:13+0000\n"
"Last-Translator: SomeTr <SomeTr@users.noreply.translate.codeberg.org>\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-25 13:48+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
"memory@weblate.org>\n"
"Language-Team: Arabic <https://translate.codeberg.org/projects/bavarder/"
"bavarder/ar/>\n"
"Language: ar\n"
@ -20,14 +22,34 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"X-Generator: Weblate 5.1\n"
"X-Generator: Weblate 5.4\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 src/views/window.blp:6
#: src/views/window.blp:26 src/views/window.blp:62 src/views/window.blp:168
msgid "Bavarder"
msgstr "ثرثرة"
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "صورة"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr "محادثة"
#: src/providers/base.py:10
msgid "Voice"
msgstr "صوت"
#: src/providers/base.py:11
msgid "Text"
msgstr ""
#: src/providers/base.py:12
msgid "Movie"
msgstr ""
#: src/providers/base.py:86
msgid "How to get a token"
msgstr "كيفية التحصل على توكن"
@ -51,7 +73,7 @@ msgstr ""
msgid "API Key"
msgstr "مفتاح API"
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr "لا توجد تفضيلات متاحة"
@ -75,21 +97,21 @@ msgstr ""
msgid "Translate"
msgstr "ترجم"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr ""
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr "غلق"
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr "تصدير"
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
#, fuzzy
#| msgid "Model"
msgid "Models"
@ -110,26 +132,26 @@ msgid "Are you sure you want to delete all threads? This can't be undone!"
msgstr "هل أنت متأكد أنك تريد حذف هذا؟"
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "ألغِ"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "احذف"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr ""
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "التفضيلات"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr "مقدمي الخدمة"
@ -167,14 +189,10 @@ msgstr "مستخدم"
msgid "Discard"
msgstr "حذف"
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "احفظ"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr ""
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr "اسم الملف"
@ -199,15 +217,15 @@ msgstr ""
msgid "Thread successfully saved!"
msgstr ""
#: src/views/window.py:177
#: src/views/window.py:179
msgid "New chat"
msgstr ""
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr ""
#: src/views/window.py:213
#: src/views/window.py:215
#, fuzzy
#| msgid "Are you sure you want to delete this thread?"
msgid ""
@ -215,27 +233,27 @@ msgid ""
"undone!"
msgstr "هل أنت متأكد أنك تريد حذف هذا؟"
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr ""
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr ""
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
msgid "Clear all"
msgstr ""
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr ""
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr ""
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr "إنسان"
@ -262,10 +280,6 @@ msgstr ""
msgid "Message"
msgstr "رسالة"
#: src/views/window.blp:108
msgid "Chat"
msgstr "محادثة"
#: src/views/window.blp:156
#, fuzzy
#| msgid "Message"
@ -284,10 +298,6 @@ msgstr ""
msgid "Get started by creating a new chat"
msgstr ""
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr ""
#: src/views/window.blp:259
msgid "Ask"
msgstr "طرح السؤال"
@ -326,11 +336,29 @@ msgstr "انسخ"
msgid "Edit"
msgstr "حرر"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "أزل"
#: src/widgets/item.py:189
#: src/widgets/item.py:219
msgid "Failed to save the image"
msgstr ""
#: src/widgets/item.py:221
msgid "Image saved"
msgstr ""
#: src/widgets/item.py:231
msgid "No image to save"
msgstr ""
#: src/widgets/item.py:235
#, fuzzy
#| msgid "Message"
msgid "Save message"
msgstr "رسالة"
#: src/widgets/item.py:251
#, fuzzy
#| msgid "Message"
msgid "Message copied"
@ -441,17 +469,17 @@ msgstr "هل أنت متأكد أنك تريد حذف هذا؟"
msgid "Thread Deleted"
msgstr ""
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
msgstr ""
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr ""
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr ""

114
po/az.po
View file

@ -5,13 +5,15 @@
#
# thepoladov13 <thepoladov@protonmail.com>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2024.
# Weblate <noreply-mt-weblate@weblate.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2023-08-03 15:00+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-25 13:48+0000\n"
"Last-Translator: Weblate <noreply-mt-weblate@weblate.org>\n"
"Language-Team: Azerbaijani <https://translate.codeberg.org/projects/bavarder/"
"bavarder/az/>\n"
"Language: az\n"
@ -19,14 +21,34 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.18.1\n"
"X-Generator: Weblate 5.4\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 src/views/window.blp:6
#: src/views/window.blp:26 src/views/window.blp:62 src/views/window.blp:168
msgid "Bavarder"
msgstr "Bavarder"
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "şəkil"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr ""
#: src/providers/base.py:10
msgid "Voice"
msgstr ""
#: src/providers/base.py:11
msgid "Text"
msgstr ""
#: src/providers/base.py:12
msgid "Movie"
msgstr ""
#: src/providers/base.py:86
msgid "How to get a token"
msgstr "Tokeni necə əldə etmək olar"
@ -52,7 +74,7 @@ msgstr ""
msgid "API Key"
msgstr "API Açarı"
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr "Heç bir tərcih yoxdur"
@ -78,21 +100,21 @@ msgstr ""
msgid "Translate"
msgstr "Tərcümə et"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr ""
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr ""
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr ""
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
#, fuzzy
#| msgid "Model"
msgid "Models"
@ -111,26 +133,26 @@ msgid "Are you sure you want to delete all threads? This can't be undone!"
msgstr ""
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "Ləğv et"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "Silmək"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr ""
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "Üstünlüklər"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr "Provayderlər"
@ -172,14 +194,10 @@ msgstr "İstifadəçi adı"
msgid "Discard"
msgstr ""
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "Saxla"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr ""
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr ""
@ -204,44 +222,44 @@ msgstr ""
msgid "Thread successfully saved!"
msgstr ""
#: src/views/window.py:177
#: src/views/window.py:179
msgid "New chat"
msgstr ""
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr ""
#: src/views/window.py:213
#: src/views/window.py:215
msgid ""
"Are you sure you want to delete all chats in this thread? This can't be "
"undone!"
msgstr ""
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr ""
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr ""
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
#, fuzzy
#| msgctxt "shortcut window"
#| msgid "Clear"
msgid "Clear all"
msgstr "Təmizlə"
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr ""
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr ""
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr ""
@ -266,10 +284,6 @@ msgstr ""
msgid "Message"
msgstr "Mesaj"
#: src/views/window.blp:108
msgid "Chat"
msgstr ""
#: src/views/window.blp:156
#, fuzzy
#| msgid "Message"
@ -288,10 +302,6 @@ msgstr ""
msgid "Get started by creating a new chat"
msgstr ""
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr ""
#: src/views/window.blp:259
msgid "Ask"
msgstr "Soruş"
@ -330,11 +340,29 @@ msgstr "Kopyala"
msgid "Edit"
msgstr "Düzəliş et"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "Ləğv et"
#: src/widgets/item.py:219
msgid "Failed to save the image"
msgstr ""
#: src/widgets/item.py:189
#: src/widgets/item.py:221
msgid "Image saved"
msgstr ""
#: src/widgets/item.py:231
msgid "No image to save"
msgstr ""
#: src/widgets/item.py:235
#, fuzzy
#| msgid "Message"
msgid "Save message"
msgstr "Mesaj"
#: src/widgets/item.py:251
#, fuzzy
#| msgid "Message"
msgid "Message copied"
@ -445,17 +473,17 @@ msgstr ""
msgid "Thread Deleted"
msgstr ""
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
msgstr ""
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr ""
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr ""

122
po/cs.po
View file

@ -5,13 +5,15 @@
#
# muznyo <codeberg.vqtek@simplelogin.com>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2023-09-04 07:53+0000\n"
"Last-Translator: muznyo <codeberg.vqtek@simplelogin.com>\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-25 13:48+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
"memory@weblate.org>\n"
"Language-Team: Czech <https://translate.codeberg.org/projects/bavarder/"
"bavarder/cs/>\n"
"Language: cs\n"
@ -19,14 +21,34 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Weblate 4.18.1\n"
"X-Generator: Weblate 5.4\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 src/views/window.blp:6
#: src/views/window.blp:26 src/views/window.blp:62 src/views/window.blp:168
msgid "Bavarder"
msgstr "Bavarder"
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "Obrázek"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr "Chat"
#: src/providers/base.py:10
msgid "Voice"
msgstr "Zvuk"
#: src/providers/base.py:11
msgid "Text"
msgstr "Text"
#: src/providers/base.py:12
msgid "Movie"
msgstr ""
#: src/providers/base.py:86
msgid "How to get a token"
msgstr "Jak získat token"
@ -54,7 +76,7 @@ msgstr "Omlouvám se, ale nevím, co na to říct!"
msgid "API Key"
msgstr "Klíč API"
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr "Žádná nastavení nejsou k dispozici"
@ -78,21 +100,21 @@ msgstr "Balení"
msgid "Translate"
msgstr "Přeložit"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "Exportovat vlákno?"
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr "Zavřít"
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr "Export"
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
msgid "Models"
msgstr "Modely"
@ -109,26 +131,26 @@ msgid "Are you sure you want to delete all threads? This can't be undone!"
msgstr "Opravdu chcete odstranit všechna vlákna? Tento krok se nedá vrátit!"
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "Zrušit"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "Odstranit"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr "Všechny chaty vymazány!"
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "Nastavení"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr "Poskytovatelé"
@ -164,14 +186,10 @@ msgstr "Uživatelské jméno"
msgid "Discard"
msgstr "Zahodit"
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "Uložit"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "Exportovat vlákno?"
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr "Název souboru"
@ -196,15 +214,15 @@ msgstr "Nelze uložit vlákno"
msgid "Thread successfully saved!"
msgstr "Vlákno bylo úspěšně uloženo!"
#: src/views/window.py:177
#: src/views/window.py:179
msgid "New chat"
msgstr "Nový chat"
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr "Odstranit všechny chaty"
#: src/views/window.py:213
#: src/views/window.py:215
msgid ""
"Are you sure you want to delete all chats in this thread? This can't be "
"undone!"
@ -212,27 +230,27 @@ msgstr ""
"Opravdu chcete odstranit všechny chaty v tomto vlákně? Tento krok se nedá "
"vrátit!"
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr "Nic k vymazání!"
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr "Nic k exportování!"
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
msgid "Clear all"
msgstr "Vymazat vše"
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr "Generuji odpověď"
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr "Omlouvám se, ale nevím, co na to říct."
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr "Člověk"
@ -257,10 +275,6 @@ msgstr "Začněte vytvořením nového chatu nebo vybráním z boční lišty"
msgid "Message"
msgstr "Zpráva"
#: src/views/window.blp:108
msgid "Chat"
msgstr "Chat"
#: src/views/window.blp:156
msgid "No Messages"
msgstr "Žádné zprávy"
@ -277,10 +291,6 @@ msgstr "Bez internetu"
msgid "Get started by creating a new chat"
msgstr "Začněte vytvořením nového chatu"
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr "Otevřit výběr emoji"
#: src/views/window.blp:259
msgid "Ask"
msgstr "Zeptat se"
@ -319,11 +329,31 @@ msgstr "Zkopírovat"
msgid "Edit"
msgstr "Upravit"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "Odstranit"
#: src/widgets/item.py:189
#: src/widgets/item.py:219
#, fuzzy
#| msgid "Unable to save the Thread"
msgid "Failed to save the image"
msgstr "Nelze uložit vlákno"
#: src/widgets/item.py:221
msgid "Image saved"
msgstr ""
#: src/widgets/item.py:231
msgid "No image to save"
msgstr ""
#: src/widgets/item.py:235
#, fuzzy
#| msgid "Message"
msgid "Save message"
msgstr "Zpráva"
#: src/widgets/item.py:251
msgid "Message copied"
msgstr "Zpráva zkopírována"
@ -440,7 +470,7 @@ msgstr "Opravdu chcete toto vlákno odstranit?"
msgid "Thread Deleted"
msgstr "Vlákno bylo odstraněno"
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
@ -448,14 +478,20 @@ msgstr ""
"Prosím, stáhněte si model z nastavení kliknutím na tečkové menu v horní "
"části!"
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr "Ahoj, jsem Bavarder, AI pro chatování"
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr "Prosím, vyberte si poskytovatele kliknutím na nabídku s tečkou"
#~ msgid "Export Thread ?"
#~ msgstr "Exportovat vlákno?"
#~ msgid "Open Emoji Picker"
#~ msgstr "Otevřit výběr emoji"
#~ msgid "Set Title"
#~ msgstr "Nastavit název"

122
po/de.po
View file

@ -9,13 +9,15 @@
# tobiasfichtner <codeberg.org@tobiasfichtner.com>, 2023.
# Frederik Zorn <federdaemn@mail.de>, 2023.
# Hartmut Goebel <h.goebel@crazy-compilers.com>, 2023.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2023-10-16 01:53+0000\n"
"Last-Translator: Hartmut Goebel <h.goebel@crazy-compilers.com>\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-25 13:48+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
"memory@weblate.org>\n"
"Language-Team: German <https://translate.codeberg.org/projects/bavarder/"
"bavarder/de/>\n"
"Language: de\n"
@ -23,14 +25,34 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.0.2\n"
"X-Generator: Weblate 5.4\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 src/views/window.blp:6
#: src/views/window.blp:26 src/views/window.blp:62 src/views/window.blp:168
msgid "Bavarder"
msgstr "Bavarder"
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "Bild"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr "Unterhaltung"
#: src/providers/base.py:10
msgid "Voice"
msgstr "Audio"
#: src/providers/base.py:11
msgid "Text"
msgstr "Text"
#: src/providers/base.py:12
msgid "Movie"
msgstr ""
#: src/providers/base.py:86
msgid "How to get a token"
msgstr "Wie Sie einen Schlüssel bekommen"
@ -58,7 +80,7 @@ msgstr "Entschuldige, ich weiß nicht, was ich sagen soll! (Fehler: {output})"
msgid "API Key"
msgstr "API Schlüssel"
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr "Keine Einstellungen verfügbar"
@ -82,21 +104,21 @@ msgstr "Packetierung"
msgid "Translate"
msgstr "Übersetzt"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "Gespräch exportieren?"
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr "Schließen"
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr "Exportieren"
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
msgid "Models"
msgstr "Modelle"
@ -115,26 +137,26 @@ msgstr ""
"rückgängig gemacht werden!"
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "Abbrechen"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "Löschen"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr "Alle Unterhaltungen geleert!"
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "Einstellungen"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr "Anbieter"
@ -170,14 +192,10 @@ msgstr "Benutzername"
msgid "Discard"
msgstr "Verwerfen"
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "Speichern"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "Gespräch exportieren?"
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr "Dateiname"
@ -202,15 +220,15 @@ msgstr "Gespräch konnte nicht gespeichert werden"
msgid "Thread successfully saved!"
msgstr "Gespräch erfolgreich gespeichert!"
#: src/views/window.py:177
#: src/views/window.py:179
msgid "New chat"
msgstr "Neue Unterhaltung"
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr "Alle Unterhaltungen löschen"
#: src/views/window.py:213
#: src/views/window.py:215
msgid ""
"Are you sure you want to delete all chats in this thread? This can't be "
"undone!"
@ -218,27 +236,27 @@ msgstr ""
"Sicher, dass die gesamte Unterhaltung gelöscht werden soll? Dies kann nicht "
"rückgängig gemacht werden!"
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr "Nichts zu leeren!"
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr "Nichts zu exportieren!"
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
msgid "Clear all"
msgstr "Alles leeren"
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr "Antwort generieren"
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr "Entschuldige, ich weiß nicht, was ich sagen soll."
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr "Mensch"
@ -265,10 +283,6 @@ msgstr ""
msgid "Message"
msgstr "Nachricht"
#: src/views/window.blp:108
msgid "Chat"
msgstr "Unterhaltung"
#: src/views/window.blp:156
msgid "No Messages"
msgstr "Keine Nachrichten"
@ -285,10 +299,6 @@ msgstr "Keine Netzwerkverbindung"
msgid "Get started by creating a new chat"
msgstr "Um anzufangen, neue Unterhaltung erstellen"
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr "Emoji-Auswahl öffnen"
#: src/views/window.blp:259
msgid "Ask"
msgstr "Fragen"
@ -327,11 +337,31 @@ msgstr "Kopieren"
msgid "Edit"
msgstr "Bearbeiten"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "Entfernen"
#: src/widgets/item.py:189
#: src/widgets/item.py:219
#, fuzzy
#| msgid "Unable to save the Thread"
msgid "Failed to save the image"
msgstr "Gespräch konnte nicht gespeichert werden"
#: src/widgets/item.py:221
msgid "Image saved"
msgstr ""
#: src/widgets/item.py:231
msgid "No image to save"
msgstr ""
#: src/widgets/item.py:235
#, fuzzy
#| msgid "Message"
msgid "Save message"
msgstr "Nachricht"
#: src/widgets/item.py:251
msgid "Message copied"
msgstr "Nachricht kopiert"
@ -451,7 +481,7 @@ msgstr "Sicher, dass dieses Gespräch gelöscht werden soll?"
msgid "Thread Deleted"
msgstr "Gespräch gelöscht"
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
@ -459,14 +489,20 @@ msgstr ""
"Bitte ein Modell von den Einstellungen durch Klicken des Punktmenüs oben "
"laden!"
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr "Hallo, ich bin Bavarder, eine Plauder-AI"
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr "Bitte vom Punktmenü einen Anbieter einschalten"
#~ msgid "Export Thread ?"
#~ msgstr "Gespräch exportieren?"
#~ msgid "Open Emoji Picker"
#~ msgstr "Emoji-Auswahl öffnen"
#~ msgid "Set Title"
#~ msgstr "Titel festlegen"

121
po/es.po
View file

@ -7,16 +7,17 @@
# sjdonado <jsrd98@gmail.com>, 2023.
# deimidis <gmovia@pm.me>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
# gallegonovato <fran-carro@hotmail.es>, 2023.
# gallegonovato <fran-carro@hotmail.es>, 2023, 2024.
# Sergio Varela <sergiovg01@outlook.com>, 2023.
# SomeTr <SomeTr@users.noreply.translate.codeberg.org>, 2023.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2023-10-30 09:13+0000\n"
"Last-Translator: SomeTr <SomeTr@users.noreply.translate.codeberg.org>\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-27 05:56+0000\n"
"Last-Translator: gallegonovato <fran-carro@hotmail.es>\n"
"Language-Team: Spanish <https://translate.codeberg.org/projects/bavarder/"
"bavarder/es/>\n"
"Language: es\n"
@ -24,14 +25,34 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.1\n"
"X-Generator: Weblate 5.4\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 src/views/window.blp:6
#: src/views/window.blp:26 src/views/window.blp:62 src/views/window.blp:168
msgid "Bavarder"
msgstr "Bavarder"
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "Imagen"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr "Chat"
#: src/providers/base.py:10
msgid "Voice"
msgstr "Voz"
#: src/providers/base.py:11
msgid "Text"
msgstr "Texto"
#: src/providers/base.py:12
msgid "Movie"
msgstr "Película"
#: src/providers/base.py:86
msgid "How to get a token"
msgstr "Cómo conseguir una clave"
@ -58,7 +79,7 @@ msgstr "Lo siento, ¡no sé qué decir! (Error: {output})"
msgid "API Key"
msgstr "Clave de la API"
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr "No existen preferencias"
@ -84,21 +105,21 @@ msgstr "Embalaje"
msgid "Translate"
msgstr "Traducir"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
msgstr "¿Exportar hilo?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "¿Exportar el hilo?"
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr "Cerrar"
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr "Exportar"
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
msgid "Models"
msgstr "Modelos"
@ -117,26 +138,26 @@ msgstr ""
"deshacer!"
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "Cancelar"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "Borrar"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr "¡Todos los chats borrados!"
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "Preferencias"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr "Proveedores"
@ -172,14 +193,10 @@ msgstr "Nombre de usuario"
msgid "Discard"
msgstr "Desechar"
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "Guardar"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "¿Exportar el hilo?"
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr "Nombre de archivo"
@ -204,15 +221,15 @@ msgstr "No se puede guardar el hilo"
msgid "Thread successfully saved!"
msgstr "¡Hilo guardado correctamente!"
#: src/views/window.py:177
#: src/views/window.py:179
msgid "New chat"
msgstr "Nuevo chat"
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr "Borrar todos los chats"
#: src/views/window.py:213
#: src/views/window.py:215
msgid ""
"Are you sure you want to delete all chats in this thread? This can't be "
"undone!"
@ -220,27 +237,27 @@ msgstr ""
"¿Estás seguro de que quieres borrar todos los chats de este hilo? ¡Esto no "
"se puede deshacer!"
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr "¡Nada que borrar!"
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr "¡Nada que exportar!"
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
msgid "Clear all"
msgstr "Borrar todo"
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr "Generando la respuesta"
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr "Lo siento, no sé qué decir."
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr "humano"
@ -266,10 +283,6 @@ msgstr ""
msgid "Message"
msgstr "Mensaje"
#: src/views/window.blp:108
msgid "Chat"
msgstr "Chat"
#: src/views/window.blp:156
msgid "No Messages"
msgstr "Sin mensajes"
@ -286,10 +299,6 @@ msgstr "Sin internet"
msgid "Get started by creating a new chat"
msgstr "Empieza creando un nuevo chat"
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr "Abrir el selector de emojis"
#: src/views/window.blp:259
msgid "Ask"
msgstr "Preguntar"
@ -328,11 +337,27 @@ msgstr "Copiar"
msgid "Edit"
msgstr "Editar"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "Eliminar"
#: src/widgets/item.py:189
#: src/widgets/item.py:219
msgid "Failed to save the image"
msgstr "No se pudo guardar la imagen"
#: src/widgets/item.py:221
msgid "Image saved"
msgstr "Imagen guardada"
#: src/widgets/item.py:231
msgid "No image to save"
msgstr "No hay imagen para guardar"
#: src/widgets/item.py:235
msgid "Save message"
msgstr "Guardar el mensaje"
#: src/widgets/item.py:251
msgid "Message copied"
msgstr "Mensaje copiado"
@ -451,7 +476,7 @@ msgstr "¿Está seguro de que desea eliminar esta lista?"
msgid "Thread Deleted"
msgstr "Hilo borrado"
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
@ -459,14 +484,20 @@ msgstr ""
"¡Por favor, descarga un modelo desde «Preferencias» haciendo clic en el Menú "
"de puntos de la parte superior!"
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr "Hola, soy Bavarder, una IA de Chit-Chat"
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr "Por favor, activa un proveedor desde el menú de puntos"
#~ msgid "Export Thread ?"
#~ msgstr "¿Exportar hilo?"
#~ msgid "Open Emoji Picker"
#~ msgstr "Abrir el selector de emojis"
#~ msgid "Set Title"
#~ msgstr "Establecer título"

114
po/et.po
View file

@ -5,13 +5,15 @@
#
# vabaME <vaba@riseup.net>, 2023.
# Weblate <noreply-mt-weblate@weblate.org>, 2023.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2023-11-09 09:13+0000\n"
"Last-Translator: Weblate <noreply-mt-weblate@weblate.org>\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-25 13:48+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
"memory@weblate.org>\n"
"Language-Team: Estonian <https://translate.codeberg.org/projects/bavarder/"
"bavarder/et/>\n"
"Language: et\n"
@ -19,14 +21,34 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.1\n"
"X-Generator: Weblate 5.4\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 src/views/window.blp:6
#: src/views/window.blp:26 src/views/window.blp:62 src/views/window.blp:168
msgid "Bavarder"
msgstr "Bavarder"
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "Pilt"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr "Kõne"
#: src/providers/base.py:10
msgid "Voice"
msgstr "Heli"
#: src/providers/base.py:11
msgid "Text"
msgstr ""
#: src/providers/base.py:12
msgid "Movie"
msgstr ""
#: src/providers/base.py:86
#, fuzzy
#| msgid "How to choose a model"
msgid "How to get a token"
@ -52,7 +74,7 @@ msgstr ""
msgid "API Key"
msgstr "API võti"
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr "No preferences available"
@ -76,21 +98,21 @@ msgstr ""
msgid "Translate"
msgstr "Tõlgi"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr ""
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr "Sulge"
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr "Ekspordi"
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
#, fuzzy
#| msgid "Model"
msgid "Models"
@ -109,26 +131,26 @@ msgid "Are you sure you want to delete all threads? This can't be undone!"
msgstr ""
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "Tühista"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "Kustuta"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr ""
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "Eelistused"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr "Teenusepakkujad"
@ -166,14 +188,10 @@ msgstr "Kasutaja:"
msgid "Discard"
msgstr "Loobu"
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "Salvesta"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr ""
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr ""
@ -198,41 +216,41 @@ msgstr ""
msgid "Thread successfully saved!"
msgstr ""
#: src/views/window.py:177
#: src/views/window.py:179
msgid "New chat"
msgstr ""
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr ""
#: src/views/window.py:213
#: src/views/window.py:215
msgid ""
"Are you sure you want to delete all chats in this thread? This can't be "
"undone!"
msgstr ""
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr ""
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr ""
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
msgid "Clear all"
msgstr ""
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr ""
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr ""
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr ""
@ -259,10 +277,6 @@ msgstr ""
msgid "Message"
msgstr "Sõnum"
#: src/views/window.blp:108
msgid "Chat"
msgstr "Kõne"
#: src/views/window.blp:156
#, fuzzy
#| msgid "Message"
@ -281,10 +295,6 @@ msgstr ""
msgid "Get started by creating a new chat"
msgstr ""
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr ""
#: src/views/window.blp:259
msgid "Ask"
msgstr "Küsi"
@ -323,11 +333,29 @@ msgstr "Kopeeri"
msgid "Edit"
msgstr "Muutmine"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "Eemalda"
#: src/widgets/item.py:189
#: src/widgets/item.py:219
msgid "Failed to save the image"
msgstr ""
#: src/widgets/item.py:221
msgid "Image saved"
msgstr ""
#: src/widgets/item.py:231
msgid "No image to save"
msgstr ""
#: src/widgets/item.py:235
#, fuzzy
#| msgid "Message"
msgid "Save message"
msgstr "Sõnum"
#: src/widgets/item.py:251
#, fuzzy
#| msgid "Message"
msgid "Message copied"
@ -438,17 +466,17 @@ msgstr ""
msgid "Thread Deleted"
msgstr ""
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
msgstr ""
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr ""
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr ""

122
po/eu.po
View file

@ -4,13 +4,15 @@
# Bavarder, 2023.
#
# Sergio Varela <sergiovg01@outlook.com>, 2023.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2023-09-16 08:53+0000\n"
"Last-Translator: Sergio Varela <sergiovg01@outlook.com>\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-25 13:48+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
"memory@weblate.org>\n"
"Language-Team: Basque <https://translate.codeberg.org/projects/bavarder/"
"bavarder/eu/>\n"
"Language: eu\n"
@ -18,14 +20,34 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.0.1\n"
"X-Generator: Weblate 5.4\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 src/views/window.blp:6
#: src/views/window.blp:26 src/views/window.blp:62 src/views/window.blp:168
msgid "Bavarder"
msgstr "Bavarder"
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "Irudia"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr "Txata"
#: src/providers/base.py:10
msgid "Voice"
msgstr "Ahotsa"
#: src/providers/base.py:11
msgid "Text"
msgstr ""
#: src/providers/base.py:12
msgid "Movie"
msgstr ""
#: src/providers/base.py:86
msgid "How to get a token"
msgstr "Nola lortu gako bat"
@ -53,7 +75,7 @@ msgstr "Sentitzen dut, ez dut ulertzen zer esan nahi duzun!"
msgid "API Key"
msgstr "API-aren gakoa"
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr "Ez dago hobespenik"
@ -79,21 +101,21 @@ msgstr "Enbalajea"
msgid "Translate"
msgstr "Itzuli"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "Haria esportatu?"
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr "Itxi"
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr "Esportatu"
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
msgid "Models"
msgstr "Ereduak"
@ -110,26 +132,26 @@ msgid "Are you sure you want to delete all threads? This can't be undone!"
msgstr "Ziur zaude hari guztiak ezabatu nahi dituzula? Hau ezin da desegin!"
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "Ezeztatu"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "Ezabatu"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr "Txat guztiak ezabatuta!"
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "Hobespenak"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr "Hornitzaileak"
@ -165,14 +187,10 @@ msgstr "Erabiltzailearen izena"
msgid "Discard"
msgstr "Baztertu"
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "Gorde"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "Haria esportatu?"
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr "Fitxategiaren izena"
@ -197,15 +215,15 @@ msgstr "Ezin da haria gorde"
msgid "Thread successfully saved!"
msgstr "Haria ondo gorde da!"
#: src/views/window.py:177
#: src/views/window.py:179
msgid "New chat"
msgstr "Txat berria"
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr "Txat guztiak ezabatu"
#: src/views/window.py:213
#: src/views/window.py:215
msgid ""
"Are you sure you want to delete all chats in this thread? This can't be "
"undone!"
@ -213,27 +231,27 @@ msgstr ""
"Ziur zaude hari honetako txat guztiak ezabatu nahi dituzula? Hau ezin da "
"desegin!"
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr "Ez dago ezer ezabatzerik!"
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr "Esportatzeko ezer ez!"
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
msgid "Clear all"
msgstr "Garbitu dena"
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr "Erantzuna sortzen"
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr "Sentitzen dut, ez dakit zer esan."
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr "gizakia"
@ -258,10 +276,6 @@ msgstr "Hasi txat berri bat sortzen edo alboko barrako bat hautatzen"
msgid "Message"
msgstr "Mezua"
#: src/views/window.blp:108
msgid "Chat"
msgstr "Txata"
#: src/views/window.blp:156
msgid "No Messages"
msgstr "Mezurik gabe"
@ -278,10 +292,6 @@ msgstr "Internet gabe"
msgid "Get started by creating a new chat"
msgstr "Hasi txat berri bat sortzen"
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr "Emoji-en hautagailua ireki"
#: src/views/window.blp:259
msgid "Ask"
msgstr "Galdetu"
@ -320,11 +330,31 @@ msgstr "Kopiatu"
msgid "Edit"
msgstr "Editatu"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "Kendu"
#: src/widgets/item.py:189
#: src/widgets/item.py:219
#, fuzzy
#| msgid "Unable to save the Thread"
msgid "Failed to save the image"
msgstr "Ezin da haria gorde"
#: src/widgets/item.py:221
msgid "Image saved"
msgstr ""
#: src/widgets/item.py:231
msgid "No image to save"
msgstr ""
#: src/widgets/item.py:235
#, fuzzy
#| msgid "Message"
msgid "Save message"
msgstr "Mezua"
#: src/widgets/item.py:251
msgid "Message copied"
msgstr "Mezua kopiatuta"
@ -442,7 +472,7 @@ msgstr "Ziur zaude zerrenda hau ezabatu nahi duzula?"
msgid "Thread Deleted"
msgstr "Haria ezabatu da"
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
@ -450,13 +480,19 @@ msgstr ""
"Mesedez, deskargatu eredu bat «Hobespenak» atalean, goiko aldeko puntuen "
"menuan klik eginez!"
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr "Kaixo, Bavarder naiz, Txit-Txateko AA bat"
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr "Mesedez, aktibatu hornitzaile bat puntuen menutik"
#~ msgid "Export Thread ?"
#~ msgstr "Haria esportatu?"
#~ msgid "Open Emoji Picker"
#~ msgstr "Emoji-en hautagailua ireki"
#~ msgid "Set Title"
#~ msgstr "Titulua ezarri"

114
po/fa.po
View file

@ -5,13 +5,15 @@
#
# kouroshtaf <kouroshtaf@gmail.com>, 2023.
# Kourosh <kouroshtaf@gmail.com>, 2023.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2023-08-03 15:00+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-25 13:48+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
"memory@weblate.org>\n"
"Language-Team: Persian <https://translate.codeberg.org/projects/bavarder/"
"bavarder/fa/>\n"
"Language: fa\n"
@ -19,14 +21,34 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.18.1\n"
"X-Generator: Weblate 5.4\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 src/views/window.blp:6
#: src/views/window.blp:26 src/views/window.blp:62 src/views/window.blp:168
msgid "Bavarder"
msgstr "باوارده"
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "تصویر"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr "گپ"
#: src/providers/base.py:10
msgid "Voice"
msgstr "صدا"
#: src/providers/base.py:11
msgid "Text"
msgstr ""
#: src/providers/base.py:12
msgid "Movie"
msgstr ""
#: src/providers/base.py:86
msgid "How to get a token"
msgstr ""
@ -52,7 +74,7 @@ msgstr ""
msgid "API Key"
msgstr ""
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr ""
@ -78,21 +100,21 @@ msgstr ""
msgid "Translate"
msgstr "ترجمه"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr ""
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr "بستن"
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr "برون‌برد"
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
#, fuzzy
#| msgid "Model"
msgid "Models"
@ -113,26 +135,26 @@ msgid "Are you sure you want to delete all threads? This can't be undone!"
msgstr "آیا مطمئنید که می‌خواهید این فرسته پیش نویس شده را حذف کنید؟"
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "لغو"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "پاک کردن"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr ""
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "پیش‌فرض‌ها"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr "تامین کنندگان"
@ -176,14 +198,10 @@ msgstr "کاربر"
msgid "Discard"
msgstr "دورانداختن"
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "ذخیره"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr ""
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr "نام فایل"
@ -208,15 +226,15 @@ msgstr ""
msgid "Thread successfully saved!"
msgstr ""
#: src/views/window.py:177
#: src/views/window.py:179
msgid "New chat"
msgstr ""
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr ""
#: src/views/window.py:213
#: src/views/window.py:215
#, fuzzy
#| msgid "Are you sure you want to delete this thread?"
msgid ""
@ -224,30 +242,30 @@ msgid ""
"undone!"
msgstr "آیا مطمئنید که می‌خواهید این فرسته پیش نویس شده را حذف کنید؟"
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr ""
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr ""
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
#, fuzzy
#| msgctxt "shortcut window"
#| msgid "Clear"
msgid "Clear all"
msgstr "پاک‌سازی"
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr ""
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr ""
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr "انسان"
@ -274,10 +292,6 @@ msgstr ""
msgid "Message"
msgstr "پیام"
#: src/views/window.blp:108
msgid "Chat"
msgstr "گپ"
#: src/views/window.blp:156
#, fuzzy
#| msgid "Message"
@ -296,10 +310,6 @@ msgstr ""
msgid "Get started by creating a new chat"
msgstr ""
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr ""
#: src/views/window.blp:259
msgid "Ask"
msgstr "بپرس"
@ -338,11 +348,29 @@ msgstr "رونوشت"
msgid "Edit"
msgstr "ویرایش"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "حذف کردن"
#: src/widgets/item.py:189
#: src/widgets/item.py:219
msgid "Failed to save the image"
msgstr ""
#: src/widgets/item.py:221
msgid "Image saved"
msgstr ""
#: src/widgets/item.py:231
msgid "No image to save"
msgstr ""
#: src/widgets/item.py:235
#, fuzzy
#| msgid "Message"
msgid "Save message"
msgstr "پیام"
#: src/widgets/item.py:251
#, fuzzy
#| msgid "Message"
msgid "Message copied"
@ -453,17 +481,17 @@ msgstr "آیا مطمئنید که می‌خواهید این فرسته پیش
msgid "Thread Deleted"
msgstr ""
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
msgstr ""
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr ""
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr ""

120
po/fi.po
View file

@ -6,13 +6,15 @@
# artnay <jiri.gronroos@iki.fi>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
# jaahas <jaaahas@proton.me>, 2024.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2024-02-24 02:56+0000\n"
"Last-Translator: jaahas <jaaahas@proton.me>\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-25 13:48+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
"memory@weblate.org>\n"
"Language-Team: Finnish <https://translate.codeberg.org/projects/bavarder/"
"bavarder/fi/>\n"
"Language: fi\n"
@ -27,7 +29,27 @@ msgstr ""
msgid "Bavarder"
msgstr "Bavarder"
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "Kuva"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr "Chatti"
#: src/providers/base.py:10
msgid "Voice"
msgstr "Ääni"
#: src/providers/base.py:11
msgid "Text"
msgstr "Teksti"
#: src/providers/base.py:12
msgid "Movie"
msgstr ""
#: src/providers/base.py:86
msgid "How to get a token"
msgstr "Miten saat poletin"
@ -53,7 +75,7 @@ msgstr "Valitettavasti en tiedä mitä sanoa! (Virhe: {output})"
msgid "API Key"
msgstr "API-avain"
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr "Asetuksia ei ole saatavilla"
@ -80,21 +102,21 @@ msgstr "Paketointi"
msgid "Translate"
msgstr "Käännä"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "Viedäänkö ketju?"
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr "Sulje"
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr "Vie"
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
msgid "Models"
msgstr "Mallit"
@ -111,26 +133,26 @@ msgid "Are you sure you want to delete all threads? This can't be undone!"
msgstr "Haluatko varmasti poistaa kaikki ketjut? Tätä ei voi perua!"
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "Peruuta"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "Poista"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr "Kaikki keskustelut tyhjennetty!"
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "Asetukset"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr "Palveluntarjoajat"
@ -166,14 +188,10 @@ msgstr "Käyttäjänimi"
msgid "Discard"
msgstr "Hylkää"
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "Tallenna"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "Viedäänkö ketju?"
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr "Tiedoston nimi"
@ -198,15 +216,15 @@ msgstr "Ketjua ei voitu tallentaa"
msgid "Thread successfully saved!"
msgstr "Ketju tallennettu!"
#: src/views/window.py:177
#: src/views/window.py:179
msgid "New chat"
msgstr "Uusi keskustelu"
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr "Poista kaikki keskustelut"
#: src/views/window.py:213
#: src/views/window.py:215
msgid ""
"Are you sure you want to delete all chats in this thread? This can't be "
"undone!"
@ -214,27 +232,27 @@ msgstr ""
"Haluatko varmasti poistaa kaikki keskustelut tästä ketjusta? Tätä ei voi "
"perua!"
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr "Ei mitään tyhjennettävää!"
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr "Ei mitään vietävää!"
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
msgid "Clear all"
msgstr "Tyhjennä kaikki"
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr "Luodaan vastausta"
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr "Valitettavasti en tiedä mitä sanoa."
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr "ihminen"
@ -260,10 +278,6 @@ msgstr ""
msgid "Message"
msgstr "Viesti"
#: src/views/window.blp:108
msgid "Chat"
msgstr "Chatti"
#: src/views/window.blp:156
msgid "No Messages"
msgstr "Ei viestejä"
@ -280,10 +294,6 @@ msgstr "Ei internetyhteyttä"
msgid "Get started by creating a new chat"
msgstr "Aloita luomalla uusi keskustelu"
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr "Avaa emojivalitsin"
#: src/views/window.blp:259
msgid "Ask"
msgstr "Kysy"
@ -322,11 +332,31 @@ msgstr "Kopioi"
msgid "Edit"
msgstr "Muokkaa"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "Poista"
#: src/widgets/item.py:189
#: src/widgets/item.py:219
#, fuzzy
#| msgid "Unable to save the Thread"
msgid "Failed to save the image"
msgstr "Ketjua ei voitu tallentaa"
#: src/widgets/item.py:221
msgid "Image saved"
msgstr ""
#: src/widgets/item.py:231
msgid "No image to save"
msgstr ""
#: src/widgets/item.py:235
#, fuzzy
#| msgid "Message"
msgid "Save message"
msgstr "Viesti"
#: src/widgets/item.py:251
msgid "Message copied"
msgstr "Viesti kopioitu"
@ -436,20 +466,26 @@ msgstr "Haluatko varmasti poistaa tämän?"
msgid "Thread Deleted"
msgstr "Ketju poistettu"
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
msgstr "Lataa malli asetusten kautta napsauttamalla yläkulman pistevalikkoa!"
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr "Hei, olen Bavarder, keskusteleva tekoäly"
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr "Ota palveluntarjoaja käyttöön pistevalikosta"
#~ msgid "Export Thread ?"
#~ msgstr "Viedäänkö ketju?"
#~ msgid "Open Emoji Picker"
#~ msgstr "Avaa emojivalitsin"
#~ msgid "Set Title"
#~ msgstr "Aseta nimi"

118
po/fr.po
View file

@ -4,7 +4,7 @@
# Bavarder, 2023.
#
# 0xMRTT <0xmrtt@tuta.io>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023, 2024.
# muznyo <codeberg.vqtek@simplelogin.com>, 2023.
# rene-coty <irenee.thirion@e.email>, 2023.
# jibecfed <jean-baptiste@holcroft.fr>, 2023.
@ -12,8 +12,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2023-11-27 06:13+0000\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-25 13:48+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@proton.me>\n"
"Language-Team: French <https://translate.codeberg.org/projects/bavarder/"
"bavarder/fr/>\n"
@ -22,14 +22,34 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.1\n"
"X-Generator: Weblate 5.4\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 src/views/window.blp:6
#: src/views/window.blp:26 src/views/window.blp:62 src/views/window.blp:168
msgid "Bavarder"
msgstr "Bavarder"
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "Image"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr "Discussion"
#: src/providers/base.py:10
msgid "Voice"
msgstr "Audio"
#: src/providers/base.py:11
msgid "Text"
msgstr "Texte"
#: src/providers/base.py:12
msgid "Movie"
msgstr "Vidéo"
#: src/providers/base.py:86
msgid "How to get a token"
msgstr "Comment obtenir un jeton"
@ -56,7 +76,7 @@ msgstr "Désolé, je ne sais pas quoi dire! (Erreur: {output})"
msgid "API Key"
msgstr "Clé dAPI"
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr "Pas de préférences disponibles"
@ -80,21 +100,21 @@ msgstr "Empaquetage"
msgid "Translate"
msgstr "Traduire"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
msgstr "Exporter le fil ?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "Exporter le fil de discussion ?"
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr "Fermer"
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr "Exporter"
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
msgid "Models"
msgstr "Modèles"
@ -113,26 +133,26 @@ msgstr ""
"pourra être annulée !"
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "Annuler"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "Supprimer"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr "Toutes les discussions ont été effacées!"
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "Préférences"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr "Fournisseurs"
@ -168,14 +188,10 @@ msgstr "Nom dutilisateur"
msgid "Discard"
msgstr "Abandonner"
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "Enregistrer"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "Exporter le fil de discussion ?"
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr "Nom du fichier"
@ -200,15 +216,15 @@ msgstr "Impossible denregistrer le fil"
msgid "Thread successfully saved!"
msgstr "Fil enregistré avec succès !"
#: src/views/window.py:177
#: src/views/window.py:179
msgid "New chat"
msgstr "Nouvelle discussion"
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr "Supprimer tous les messages"
#: src/views/window.py:213
#: src/views/window.py:215
msgid ""
"Are you sure you want to delete all chats in this thread? This can't be "
"undone!"
@ -216,27 +232,27 @@ msgstr ""
"Souhaitez-vous vraiment supprimer tous les messages de ce fil ? Cette action "
"ne pourra être annulée !"
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr "Rien à effacer!"
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr "Rien à exporter !"
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
msgid "Clear all"
msgstr "Effacer tout"
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr "En train de générer une réponse"
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr "Désolé, je ne sais pas quoi dire."
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr "Humain"
@ -263,10 +279,6 @@ msgstr ""
msgid "Message"
msgstr "Message"
#: src/views/window.blp:108
msgid "Chat"
msgstr "Discussion"
#: src/views/window.blp:156
msgid "No Messages"
msgstr "Pas de messages"
@ -283,10 +295,6 @@ msgstr "Pas dinternet"
msgid "Get started by creating a new chat"
msgstr "Commencez par créer une nouvelle discussion"
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr "Ouvrir le sélecteur démoticônes"
#: src/views/window.blp:259
msgid "Ask"
msgstr "Demander"
@ -325,11 +333,27 @@ msgstr "Copier"
msgid "Edit"
msgstr "Modifier"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "Retirer"
#: src/widgets/item.py:189
#: src/widgets/item.py:219
msgid "Failed to save the image"
msgstr "Impossible denregistrer l'image"
#: src/widgets/item.py:221
msgid "Image saved"
msgstr "Image enregistré"
#: src/widgets/item.py:231
msgid "No image to save"
msgstr "Aucune image à enregistrer"
#: src/widgets/item.py:235
msgid "Save message"
msgstr "Message enregistré"
#: src/widgets/item.py:251
msgid "Message copied"
msgstr "Message copié"
@ -448,7 +472,7 @@ msgstr "Voulez-vous vraiment supprimer cette discussion ?"
msgid "Thread Deleted"
msgstr "Discussion supprimée"
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
@ -456,14 +480,20 @@ msgstr ""
"Merci de télécharger un modèle depuis les Préférences en cliquant sur le "
"Menu en pointillés en haut!"
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr "Bonjour, je suis Bavarder, une IA pour bavarder"
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr "Merci dactiver un modèle depuis le Menu en pointillés"
#~ msgid "Export Thread ?"
#~ msgstr "Exporter le fil ?"
#~ msgid "Open Emoji Picker"
#~ msgstr "Ouvrir le sélecteur démoticônes"
#~ msgid "Set Title"
#~ msgstr "Définir le titre"

114
po/gl.po
View file

@ -5,13 +5,15 @@
#
# xosecalvo <xosecalvo@gmail.com>, 2023.
# SomeTr <SomeTr@users.noreply.translate.codeberg.org>, 2023.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2023-10-30 22:13+0000\n"
"Last-Translator: SomeTr <SomeTr@users.noreply.translate.codeberg.org>\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-25 13:48+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
"memory@weblate.org>\n"
"Language-Team: Galician <https://translate.codeberg.org/projects/bavarder/"
"bavarder/gl/>\n"
"Language: gl\n"
@ -19,14 +21,34 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.1\n"
"X-Generator: Weblate 5.4\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 src/views/window.blp:6
#: src/views/window.blp:26 src/views/window.blp:62 src/views/window.blp:168
msgid "Bavarder"
msgstr "Bavarder"
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "Imaxe"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr "Chat"
#: src/providers/base.py:10
msgid "Voice"
msgstr "Voz"
#: src/providers/base.py:11
msgid "Text"
msgstr ""
#: src/providers/base.py:12
msgid "Movie"
msgstr ""
#: src/providers/base.py:86
#, fuzzy
#| msgid "How to choose a model"
msgid "How to get a token"
@ -52,7 +74,7 @@ msgstr ""
msgid "API Key"
msgstr "Chave da API"
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr "Non hai ningunha preferencia dispoñíbel"
@ -80,21 +102,21 @@ msgstr ""
msgid "Translate"
msgstr "Traducir"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr ""
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr "Pechar"
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr "Exportar"
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
#, fuzzy
#| msgid "Model"
msgid "Models"
@ -115,26 +137,26 @@ msgid "Are you sure you want to delete all threads? This can't be undone!"
msgstr "Tes a certeza de querer eliminar a lista “%s”?"
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "Anular"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "Eliminar"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr ""
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "Preferencias"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr "Fornecedores"
@ -178,14 +200,10 @@ msgstr "Usuaria"
msgid "Discard"
msgstr "Descartar"
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "Gardar"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr ""
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr ""
@ -210,17 +228,17 @@ msgstr ""
msgid "Thread successfully saved!"
msgstr ""
#: src/views/window.py:177
#: src/views/window.py:179
#, fuzzy
#| msgid "New Chat"
msgid "New chat"
msgstr "Nova Conversa"
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr ""
#: src/views/window.py:213
#: src/views/window.py:215
#, fuzzy
#| msgid "Are you sure you want to delete this thread?"
msgid ""
@ -228,30 +246,30 @@ msgid ""
"undone!"
msgstr "Tes a certeza de querer eliminar a lista “%s”?"
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr ""
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr ""
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
#, fuzzy
#| msgctxt "shortcut window"
#| msgid "Clear"
msgid "Clear all"
msgstr "Limpar"
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr ""
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr ""
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr "Persoa"
@ -278,10 +296,6 @@ msgstr ""
msgid "Message"
msgstr "Mensaxe"
#: src/views/window.blp:108
msgid "Chat"
msgstr "Chat"
#: src/views/window.blp:156
#, fuzzy
#| msgid "Message"
@ -300,10 +314,6 @@ msgstr ""
msgid "Get started by creating a new chat"
msgstr ""
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr ""
#: src/views/window.blp:259
msgid "Ask"
msgstr "Preguntar"
@ -342,11 +352,29 @@ msgstr "Copiar"
msgid "Edit"
msgstr "Editar"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "Retirar"
#: src/widgets/item.py:189
#: src/widgets/item.py:219
msgid "Failed to save the image"
msgstr ""
#: src/widgets/item.py:221
msgid "Image saved"
msgstr ""
#: src/widgets/item.py:231
msgid "No image to save"
msgstr ""
#: src/widgets/item.py:235
#, fuzzy
#| msgid "Message"
msgid "Save message"
msgstr "Mensaxe"
#: src/widgets/item.py:251
#, fuzzy
#| msgid "Message"
msgid "Message copied"
@ -457,17 +485,17 @@ msgstr "Tes a certeza de querer eliminar a lista “%s”?"
msgid "Thread Deleted"
msgstr ""
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
msgstr ""
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr ""
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr ""

114
po/he.po
View file

@ -4,13 +4,15 @@
# Bavarder, 2023.
#
# shoko <nickskorohod@outlook.com>, 2023.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2023-08-22 15:41+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-25 13:48+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
"memory@weblate.org>\n"
"Language-Team: Hebrew <https://translate.codeberg.org/projects/bavarder/"
"bavarder/he/>\n"
"Language: he\n"
@ -19,14 +21,34 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && "
"n % 10 == 0) ? 2 : 3));\n"
"X-Generator: Weblate 4.18.1\n"
"X-Generator: Weblate 5.4\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 src/views/window.blp:6
#: src/views/window.blp:26 src/views/window.blp:62 src/views/window.blp:168
msgid "Bavarder"
msgstr ""
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "תמונה"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr "צ'אט"
#: src/providers/base.py:10
msgid "Voice"
msgstr "שמע"
#: src/providers/base.py:11
msgid "Text"
msgstr "גוף הטקסט"
#: src/providers/base.py:12
msgid "Movie"
msgstr ""
#: src/providers/base.py:86
msgid "How to get a token"
msgstr ""
@ -50,7 +72,7 @@ msgstr ""
msgid "API Key"
msgstr ""
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr ""
@ -74,21 +96,21 @@ msgstr ""
msgid "Translate"
msgstr "תרגום"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr ""
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr "סגור"
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr "יצא"
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
msgid "Models"
msgstr ""
@ -105,26 +127,26 @@ msgid "Are you sure you want to delete all threads? This can't be undone!"
msgstr ""
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "בטל"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "מחיקה"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr ""
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "העדפות"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr ""
@ -160,14 +182,10 @@ msgstr "שם משתמש"
msgid "Discard"
msgstr "השלך"
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "שמור"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr ""
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr ""
@ -192,41 +210,41 @@ msgstr ""
msgid "Thread successfully saved!"
msgstr ""
#: src/views/window.py:177
#: src/views/window.py:179
msgid "New chat"
msgstr ""
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr ""
#: src/views/window.py:213
#: src/views/window.py:215
msgid ""
"Are you sure you want to delete all chats in this thread? This can't be "
"undone!"
msgstr ""
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr ""
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr ""
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
msgid "Clear all"
msgstr ""
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr ""
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr ""
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr ""
@ -251,10 +269,6 @@ msgstr ""
msgid "Message"
msgstr "הודעה"
#: src/views/window.blp:108
msgid "Chat"
msgstr "צ'אט"
#: src/views/window.blp:156
msgid "No Messages"
msgstr ""
@ -271,10 +285,6 @@ msgstr ""
msgid "Get started by creating a new chat"
msgstr ""
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr ""
#: src/views/window.blp:259
msgid "Ask"
msgstr ""
@ -313,11 +323,29 @@ msgstr "העתקה"
msgid "Edit"
msgstr "ערוך"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "הסרה"
#: src/widgets/item.py:189
#: src/widgets/item.py:219
msgid "Failed to save the image"
msgstr ""
#: src/widgets/item.py:221
msgid "Image saved"
msgstr ""
#: src/widgets/item.py:231
msgid "No image to save"
msgstr ""
#: src/widgets/item.py:235
#, fuzzy
#| msgid "Message"
msgid "Save message"
msgstr "הודעה"
#: src/widgets/item.py:251
msgid "Message copied"
msgstr ""
@ -424,16 +452,16 @@ msgstr "האם הנך בטוח כי ברצונך למחוק את זה?"
msgid "Thread Deleted"
msgstr ""
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
msgstr ""
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr ""
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr ""

114
po/hu.po
View file

@ -7,13 +7,15 @@
# 0xMRTT <0xmrtt@proton.me>, 2023.
# elementbound <ezittgtx@gmail.com>, 2023.
# ViBE <vibe@protonmail.com>, 2023.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2023-08-20 18:05+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-25 13:48+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
"memory@weblate.org>\n"
"Language-Team: Hungarian <https://translate.codeberg.org/projects/bavarder/"
"bavarder/hu/>\n"
"Language: hu\n"
@ -21,14 +23,34 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.18.1\n"
"X-Generator: Weblate 5.4\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 src/views/window.blp:6
#: src/views/window.blp:26 src/views/window.blp:62 src/views/window.blp:168
msgid "Bavarder"
msgstr "Bavarder"
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "Kép"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr "Csevegés"
#: src/providers/base.py:10
msgid "Voice"
msgstr "Hang"
#: src/providers/base.py:11
msgid "Text"
msgstr "Szöveg"
#: src/providers/base.py:12
msgid "Movie"
msgstr ""
#: src/providers/base.py:86
msgid "How to get a token"
msgstr "API.kulcs beszerzése"
@ -52,7 +74,7 @@ msgstr ""
msgid "API Key"
msgstr "API-kulcs"
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr "Nincs elérhető beállítás"
@ -76,21 +98,21 @@ msgstr ""
msgid "Translate"
msgstr "Fordítás"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr ""
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr "Bezár"
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr "Exportálás"
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
#, fuzzy
#| msgid "Model"
msgid "Models"
@ -111,26 +133,26 @@ msgid "Are you sure you want to delete all threads? This can't be undone!"
msgstr "Biztos, hogy törölni szeretnéd?"
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "Mégse"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "Törlés"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr ""
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "Beállítások"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr "Szolgáltatók"
@ -174,14 +196,10 @@ msgstr "Felhasználó"
msgid "Discard"
msgstr "Elvetés"
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "Mentés"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr ""
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr "Fájl név"
@ -206,17 +224,17 @@ msgstr ""
msgid "Thread successfully saved!"
msgstr ""
#: src/views/window.py:177
#: src/views/window.py:179
#, fuzzy
#| msgid "Chat"
msgid "New chat"
msgstr "Csevegés"
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr ""
#: src/views/window.py:213
#: src/views/window.py:215
#, fuzzy
#| msgid "Are you sure you want to delete this thread?"
msgid ""
@ -224,30 +242,30 @@ msgid ""
"undone!"
msgstr "Biztos, hogy törölni szeretnéd?"
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr ""
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr ""
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
#, fuzzy
#| msgctxt "shortcut window"
#| msgid "Clear"
msgid "Clear all"
msgstr "Kiürítés"
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr ""
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr ""
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr "Ember"
@ -276,10 +294,6 @@ msgstr ""
msgid "Message"
msgstr "Üzenet"
#: src/views/window.blp:108
msgid "Chat"
msgstr "Csevegés"
#: src/views/window.blp:156
#, fuzzy
#| msgid "Message"
@ -298,10 +312,6 @@ msgstr ""
msgid "Get started by creating a new chat"
msgstr ""
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr ""
#: src/views/window.blp:259
msgid "Ask"
msgstr "Kérdés küldése"
@ -340,11 +350,29 @@ msgstr "Másolás"
msgid "Edit"
msgstr "Szerkesztés"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "Eltávolítás"
#: src/widgets/item.py:189
#: src/widgets/item.py:219
msgid "Failed to save the image"
msgstr ""
#: src/widgets/item.py:221
msgid "Image saved"
msgstr ""
#: src/widgets/item.py:231
msgid "No image to save"
msgstr ""
#: src/widgets/item.py:235
#, fuzzy
#| msgid "Message"
msgid "Save message"
msgstr "Üzenet"
#: src/widgets/item.py:251
#, fuzzy
#| msgid "Message"
msgid "Message copied"
@ -455,17 +483,17 @@ msgstr "Biztos, hogy törölni szeretnéd?"
msgid "Thread Deleted"
msgstr ""
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
msgstr ""
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr ""
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr ""

124
po/it.po
View file

@ -11,13 +11,15 @@
# albanobattistella <albanobattistella@gmail.com>, 2023.
# maupao <paolo@paolomauri.it>, 2023.
# enderboyk2 <lorenzomicci48@gmail.com>, 2023.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2023-10-25 08:13+0000\n"
"Last-Translator: albanobattistella <albanobattistella@gmail.com>\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-25 13:48+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
"memory@weblate.org>\n"
"Language-Team: Italian <https://translate.codeberg.org/projects/bavarder/"
"bavarder/it/>\n"
"Language: it\n"
@ -25,14 +27,34 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.1\n"
"X-Generator: Weblate 5.4\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 src/views/window.blp:6
#: src/views/window.blp:26 src/views/window.blp:62 src/views/window.blp:168
msgid "Bavarder"
msgstr "Bavarder"
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "Immagine"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr "Chat"
#: src/providers/base.py:10
msgid "Voice"
msgstr "Voce"
#: src/providers/base.py:11
msgid "Text"
msgstr "Testo"
#: src/providers/base.py:12
msgid "Movie"
msgstr ""
#: src/providers/base.py:86
msgid "How to get a token"
msgstr "Come avere una chiave"
@ -59,7 +81,7 @@ msgstr "Mi spiace, non so cosa dire!(Errore: {output})"
msgid "API Key"
msgstr "Chiave API"
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr "Impostazioni non disponibili"
@ -85,21 +107,21 @@ msgstr "Pacchetto"
msgid "Translate"
msgstr "Traduci"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
msgstr "Esporto il thread?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "Esportare la discussione?"
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr "Chiudi"
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr "Esporta"
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
msgid "Models"
msgstr "Modelli"
@ -117,26 +139,26 @@ msgstr ""
"Sei sicuro di voler eliminare tutti i threads? Questa azione è irreversibile!"
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "Cancella"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "Elimina"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr "Tutte le chat sono state pulite!"
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "Preferenze"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr "Fornitori"
@ -172,14 +194,10 @@ msgstr "Nome utente"
msgid "Discard"
msgstr "Scarta"
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "Salva"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "Esportare la discussione?"
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr "Nome File"
@ -204,15 +222,15 @@ msgstr "Impossibile salvare la discussione"
msgid "Thread successfully saved!"
msgstr "Discussione salvata!"
#: src/views/window.py:177
#: src/views/window.py:179
msgid "New chat"
msgstr "Nuova chat"
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr "Elimina tutte le chat"
#: src/views/window.py:213
#: src/views/window.py:215
msgid ""
"Are you sure you want to delete all chats in this thread? This can't be "
"undone!"
@ -220,27 +238,27 @@ msgstr ""
"Sei sicuro di volerlo cancellare tutte le chat in questa discussione? Questa "
"azione è irreversibile!"
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr "Niente da pulire!"
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr "Niente da esportare!"
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
msgid "Clear all"
msgstr "Cancella tutto"
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr "Generazione della risposta"
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr "Scusa, non so che dire."
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr "Umano"
@ -265,10 +283,6 @@ msgstr "Inizia creando una nuova chat o selezionane una dalla barra laterale"
msgid "Message"
msgstr "Messaggio"
#: src/views/window.blp:108
msgid "Chat"
msgstr "Chat"
#: src/views/window.blp:156
msgid "No Messages"
msgstr "Nessun messaggio"
@ -285,10 +299,6 @@ msgstr "Nessuna connessione"
msgid "Get started by creating a new chat"
msgstr "Inizia creando una nuova chat"
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr "Apri il menu delle Emoji"
#: src/views/window.blp:259
msgid "Ask"
msgstr "Chiedi"
@ -327,11 +337,31 @@ msgstr "Copia"
msgid "Edit"
msgstr "Modifica"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "Rimuovi"
#: src/widgets/item.py:189
#: src/widgets/item.py:219
#, fuzzy
#| msgid "Unable to save the Thread"
msgid "Failed to save the image"
msgstr "Impossibile salvare la discussione"
#: src/widgets/item.py:221
msgid "Image saved"
msgstr ""
#: src/widgets/item.py:231
msgid "No image to save"
msgstr ""
#: src/widgets/item.py:235
#, fuzzy
#| msgid "Message"
msgid "Save message"
msgstr "Messaggio"
#: src/widgets/item.py:251
msgid "Message copied"
msgstr "Messaggio copiato"
@ -450,21 +480,27 @@ msgstr "Sei sicuro di volerlo cancellare?"
msgid "Thread Deleted"
msgstr "Discussione eliminata"
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
msgstr ""
"Perfavore, scarica un modello dalle impostazioni cliccando nel menù in alto!"
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr "Ciao, io sono Bavarder, un' IA"
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr "Perfavore, abilita un provider dal menù"
#~ msgid "Export Thread ?"
#~ msgstr "Esporto il thread?"
#~ msgid "Open Emoji Picker"
#~ msgstr "Apri il menu delle Emoji"
#~ msgid "Set Title"
#~ msgstr "Imposta titolo"

117
po/nl.po
View file

@ -3,13 +3,14 @@
# This file is distributed under the GNU GPLv3 license.
# Bavarder, 2023.
#
# Vistaus <vistausss@fastmail.com>, 2023.
# Vistaus <vistausss@fastmail.com>, 2023, 2024.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2023-10-05 04:53+0000\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-26 02:56+0000\n"
"Last-Translator: Vistaus <vistausss@fastmail.com>\n"
"Language-Team: Dutch <https://translate.codeberg.org/projects/bavarder/"
"bavarder/nl/>\n"
@ -18,14 +19,34 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.0.2\n"
"X-Generator: Weblate 5.4\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 src/views/window.blp:6
#: src/views/window.blp:26 src/views/window.blp:62 src/views/window.blp:168
msgid "Bavarder"
msgstr "Bavarder"
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "Afbeelding"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr "Gesprek"
#: src/providers/base.py:10
msgid "Voice"
msgstr "Spraak"
#: src/providers/base.py:11
msgid "Text"
msgstr "Tekst"
#: src/providers/base.py:12
msgid "Movie"
msgstr "Film"
#: src/providers/base.py:86
msgid "How to get a token"
msgstr "Hoe verkrijg ik een sleutel?"
@ -52,7 +73,7 @@ msgstr "Ik heb hier geen antwoord op! (Foutmelding: {output})"
msgid "API Key"
msgstr "Api-sleutel"
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr "Er zijn geen voorkeuren beschikbaar"
@ -76,21 +97,21 @@ msgstr "Pakketten"
msgid "Translate"
msgstr "Vertalen"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "Gesprek exporteren?"
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr "Sluiten"
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr "Exporteren"
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
msgid "Models"
msgstr "Modellen"
@ -109,26 +130,26 @@ msgstr ""
"onomkeerbaar!"
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "Annuleren"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "Verwijderen"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr "Alle gesprekken zijn gewist!"
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "Voorkeuren"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr "Diensten"
@ -164,14 +185,10 @@ msgstr "Gebruikersnaam"
msgid "Discard"
msgstr "Negeren"
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "Opslaan"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "Gesprek exporteren?"
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr "Bestandsnaam"
@ -196,15 +213,15 @@ msgstr "Het gesprek kan niet worden opgeslagen"
msgid "Thread successfully saved!"
msgstr "Het gesprek is opgeslagen!"
#: src/views/window.py:177
#: src/views/window.py:179
msgid "New chat"
msgstr "Nieuw gesprek"
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr "Alle gesprekken verwijderen"
#: src/views/window.py:213
#: src/views/window.py:215
msgid ""
"Are you sure you want to delete all chats in this thread? This can't be "
"undone!"
@ -212,27 +229,27 @@ msgstr ""
"Weet je zeker dat je alle gesprekken wilt verwijderen? Deze actie is "
"onomkeerbaar!"
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr "Er valt niks te wissen!"
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr "Er valt niks te exporteren!"
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
msgid "Clear all"
msgstr "Alles wissen"
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr "Bezig met samenstellen van antwoord…"
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr "Ik heb hier geen antwoord op - sorry."
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr "Mens"
@ -257,10 +274,6 @@ msgstr "Begin een gesprek of kies een bestaand gesprek uit de zijbalk"
msgid "Message"
msgstr "Bericht"
#: src/views/window.blp:108
msgid "Chat"
msgstr "Gesprek"
#: src/views/window.blp:156
msgid "No Messages"
msgstr "Geen berichten"
@ -277,10 +290,6 @@ msgstr "Geen internetverbinding"
msgid "Get started by creating a new chat"
msgstr "Begin een gesprek"
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr "Emojikiezer openen"
#: src/views/window.blp:259
msgid "Ask"
msgstr "Vraag stellen"
@ -319,11 +328,27 @@ msgstr "Kopiëren"
msgid "Edit"
msgstr "Bewerken"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "Verwijderen"
#: src/widgets/item.py:189
#: src/widgets/item.py:219
msgid "Failed to save the image"
msgstr "De afbeelding kan niet worden bewaard"
#: src/widgets/item.py:221
msgid "Image saved"
msgstr "De afbeelding is bewaard"
#: src/widgets/item.py:231
msgid "No image to save"
msgstr "Er is geen te bewaren afbeelding"
#: src/widgets/item.py:235
msgid "Save message"
msgstr "Bericht bewaren"
#: src/widgets/item.py:251
msgid "Message copied"
msgstr "Het bericht is gekopieerd"
@ -438,20 +463,26 @@ msgstr "Weet je zeker dat je dit wilt verwijderen?"
msgid "Thread Deleted"
msgstr "Het gesprek is verwijderd"
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
msgstr "Installeer een model via de voorkeuren of het ellipsmenu!"
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr "Hallo, ik ben Bavarder, je koetjes-en-kalfjes-KI"
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr "Schakel een dienst in via het ellipsmenu"
#~ msgid "Export Thread ?"
#~ msgstr "Gesprek exporteren?"
#~ msgid "Open Emoji Picker"
#~ msgstr "Emojikiezer openen"
#~ msgid "Set Title"
#~ msgstr "Titel instellen"

124
po/pl.po
View file

@ -6,13 +6,15 @@
# ioghjog <michal.d1191@gmail.com>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
# Eryk Michalak <gnu.ewm@protonmail.com>, 2023.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2023-10-27 12:13+0000\n"
"Last-Translator: Eryk Michalak <gnu.ewm@protonmail.com>\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-25 13:48+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
"memory@weblate.org>\n"
"Language-Team: Polish <https://translate.codeberg.org/projects/bavarder/"
"bavarder/pl/>\n"
"Language: pl\n"
@ -21,14 +23,34 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 5.1\n"
"X-Generator: Weblate 5.4\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 src/views/window.blp:6
#: src/views/window.blp:26 src/views/window.blp:62 src/views/window.blp:168
msgid "Bavarder"
msgstr "Bavarder"
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "Obrazek"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr "Czat"
#: src/providers/base.py:10
msgid "Voice"
msgstr "Głos"
#: src/providers/base.py:11
msgid "Text"
msgstr "Tekst"
#: src/providers/base.py:12
msgid "Movie"
msgstr ""
#: src/providers/base.py:86
msgid "How to get a token"
msgstr "Jak uzyskać token"
@ -55,7 +77,7 @@ msgstr "Przepraszam, nie wiem co powiedzieć! (Błąd: {output})"
msgid "API Key"
msgstr "Klucz API"
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr "Brak dostępnych preferencji"
@ -79,21 +101,21 @@ msgstr "Tworzenie paczek"
msgid "Translate"
msgstr "Tłumacz"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
msgstr "Eksportować wątek ?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "Eksportować wątek?"
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr "Zamknij"
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr "Eksportuj"
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
msgid "Models"
msgstr "Modele"
@ -110,26 +132,26 @@ msgid "Are you sure you want to delete all threads? This can't be undone!"
msgstr "Czy na pewno chcesz usunąć wszystkie wątki? Nie można tego cofnąć!"
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "Anuluj"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "Usuń"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr "Wyczyszczono wszystkie wątki!"
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "Preferencje"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr "Dostawcy"
@ -165,14 +187,10 @@ msgstr "Nazwa użytkownika"
msgid "Discard"
msgstr "Odrzuć"
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "Zapisz"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "Eksportować wątek?"
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr "Nazwa pliku"
@ -197,15 +215,15 @@ msgstr "Nie udało się zapisać wątku"
msgid "Thread successfully saved!"
msgstr "Wątek został zapisany pomyślnie!"
#: src/views/window.py:177
#: src/views/window.py:179
msgid "New chat"
msgstr "Nowy czat"
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr "Usuń wszystkie czaty"
#: src/views/window.py:213
#: src/views/window.py:215
msgid ""
"Are you sure you want to delete all chats in this thread? This can't be "
"undone!"
@ -213,27 +231,27 @@ msgstr ""
"Czy na pewno chcesz usunąć wszystkie czaty w tym wątku? Nie można tego "
"cofnąć!"
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr "Nie ma nic do wyczyszczenia!"
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr "Nie ma nic do eksportu!"
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
msgid "Clear all"
msgstr "Wyczyść wszystko"
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr "Generowanie odpowiedzi"
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr "Przepraszam, nie wiem co powiedzieć."
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr "Człowiek"
@ -258,10 +276,6 @@ msgstr "Rozpocznij, tworząc nowy czat lub wybierając go z paska bocznego"
msgid "Message"
msgstr "Wiadomość"
#: src/views/window.blp:108
msgid "Chat"
msgstr "Czat"
#: src/views/window.blp:156
msgid "No Messages"
msgstr "Brak wiadomości"
@ -278,10 +292,6 @@ msgstr "Brak połączenia z internetem"
msgid "Get started by creating a new chat"
msgstr "Rozpocznij poprzez stworzenie nowego czatu"
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr "Otwórz wybór emoji"
#: src/views/window.blp:259
msgid "Ask"
msgstr "Zapytaj"
@ -320,11 +330,31 @@ msgstr "Kopiuj"
msgid "Edit"
msgstr "Edycja"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "Usuń"
#: src/widgets/item.py:189
#: src/widgets/item.py:219
#, fuzzy
#| msgid "Unable to save the Thread"
msgid "Failed to save the image"
msgstr "Nie udało się zapisać wątku"
#: src/widgets/item.py:221
msgid "Image saved"
msgstr ""
#: src/widgets/item.py:231
msgid "No image to save"
msgstr ""
#: src/widgets/item.py:235
#, fuzzy
#| msgid "Message"
msgid "Save message"
msgstr "Wiadomość"
#: src/widgets/item.py:251
msgid "Message copied"
msgstr "Skopiowano wiadomość"
@ -443,20 +473,26 @@ msgstr "Czy jesteś pewien że chcesz usunąć tą listę?"
msgid "Thread Deleted"
msgstr "Usunięto wątek"
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
msgstr "Prosimy pobrać model w zakładce Preferencje z Menu Kropki na górze!"
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr "Dzień dobry, jestem Bavarder, sztuczna inteligencja do czatowania"
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr "Prosimy włączyć dostawcę z Menu Kropki"
#~ msgid "Export Thread ?"
#~ msgstr "Eksportować wątek ?"
#~ msgid "Open Emoji Picker"
#~ msgstr "Otwórz wybór emoji"
#~ msgid "Set Title"
#~ msgstr "Ustaw tytuł"

121
po/pt.po
View file

@ -7,13 +7,15 @@
# 0xMRTT <0xmrtt@proton.me>, 2023.
# aresende <contact@aresende.com>, 2023.
# N4taa <r0dr1g02m4r5d3v@gmail.com>, 2024.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2024-01-05 07:56+0000\n"
"Last-Translator: N4taa <r0dr1g02m4r5d3v@gmail.com>\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-25 13:48+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
"memory@weblate.org>\n"
"Language-Team: Portuguese <https://translate.codeberg.org/projects/bavarder/"
"bavarder/pt/>\n"
"Language: pt\n"
@ -21,14 +23,34 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.3.1\n"
"X-Generator: Weblate 5.4\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 src/views/window.blp:6
#: src/views/window.blp:26 src/views/window.blp:62 src/views/window.blp:168
msgid "Bavarder"
msgstr "Bavarder"
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "Imagem"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr "Conversas"
#: src/providers/base.py:10
msgid "Voice"
msgstr "Voz"
#: src/providers/base.py:11
msgid "Text"
msgstr "Texto"
#: src/providers/base.py:12
msgid "Movie"
msgstr ""
#: src/providers/base.py:86
msgid "How to get a token"
msgstr "Como adquirir um token"
@ -55,7 +77,7 @@ msgstr "Desculpe, não sei o que dizer! (Erro: {output})"
msgid "API Key"
msgstr "Chave de API"
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr "Nenhuma configuração disponível"
@ -79,21 +101,21 @@ msgstr ""
msgid "Translate"
msgstr "Traduzir"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
msgstr "Exportar Conversa ?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "Exportar conversa?"
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr "Fechar"
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr "Exportar"
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
msgid "Models"
msgstr "Modelos"
@ -112,26 +134,26 @@ msgstr ""
"desfeita!"
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "Cancelar"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "Apagar"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr "Todas as conversas foram limpas!"
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "Preferências"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr "Provedores"
@ -170,14 +192,10 @@ msgstr "Nome de Utilizador"
msgid "Discard"
msgstr "Descartar"
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "Guardar"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "Exportar conversa?"
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr "Nome do Ficheiro"
@ -202,15 +220,15 @@ msgstr "Incapaz de salvar a Conversa"
msgid "Thread successfully saved!"
msgstr "Conversa salva com sucesso!"
#: src/views/window.py:177
#: src/views/window.py:179
msgid "New chat"
msgstr "Nova conversa"
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr "Apagar Todas as Conversas"
#: src/views/window.py:213
#: src/views/window.py:215
#, fuzzy
#| msgid "Are you sure you want to delete this thread?"
msgid ""
@ -218,30 +236,30 @@ msgid ""
"undone!"
msgstr "De certeza que pretende apagar o lembrete?"
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr ""
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr ""
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
#, fuzzy
#| msgctxt "shortcut window"
#| msgid "Clear"
msgid "Clear all"
msgstr "Limpar"
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr ""
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr ""
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr "Humano"
@ -270,10 +288,6 @@ msgstr ""
msgid "Message"
msgstr "Mensagem"
#: src/views/window.blp:108
msgid "Chat"
msgstr "Conversas"
#: src/views/window.blp:156
#, fuzzy
#| msgid "Message"
@ -292,10 +306,6 @@ msgstr ""
msgid "Get started by creating a new chat"
msgstr ""
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr ""
#: src/views/window.blp:259
msgid "Ask"
msgstr "Perguntar"
@ -334,11 +344,31 @@ msgstr "Cópia"
msgid "Edit"
msgstr "Editar"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "Remover"
#: src/widgets/item.py:189
#: src/widgets/item.py:219
#, fuzzy
#| msgid "Unable to save the Thread"
msgid "Failed to save the image"
msgstr "Incapaz de salvar a Conversa"
#: src/widgets/item.py:221
msgid "Image saved"
msgstr ""
#: src/widgets/item.py:231
msgid "No image to save"
msgstr ""
#: src/widgets/item.py:235
#, fuzzy
#| msgid "Message"
msgid "Save message"
msgstr "Mensagem"
#: src/widgets/item.py:251
#, fuzzy
#| msgid "Message"
msgid "Message copied"
@ -449,20 +479,23 @@ msgstr "De certeza que pretende apagar o lembrete?"
msgid "Thread Deleted"
msgstr ""
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
msgstr ""
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr ""
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr ""
#~ msgid "Export Thread ?"
#~ msgstr "Exportar Conversa ?"
#, fuzzy, python-format
#~| msgid "Chat"
#~ msgid "New Chat %i"

122
po/ru.po
View file

@ -8,13 +8,15 @@
# 0xMRTT <0xmrtt@proton.me>, 2023.
# nikrtyd <nikrtyd@gmail.com>, 2023.
# David Lapshin <ddaudix@gmail.com>, 2023.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2023-12-16 16:56+0000\n"
"Last-Translator: David Lapshin <ddaudix@gmail.com>\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-25 13:48+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
"memory@weblate.org>\n"
"Language-Team: Russian <https://translate.codeberg.org/projects/bavarder/"
"bavarder/ru/>\n"
"Language: ru\n"
@ -23,14 +25,34 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 5.2.1\n"
"X-Generator: Weblate 5.4\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 src/views/window.blp:6
#: src/views/window.blp:26 src/views/window.blp:62 src/views/window.blp:168
msgid "Bavarder"
msgstr "Bavarder"
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "Изображение"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr "Чат"
#: src/providers/base.py:10
msgid "Voice"
msgstr "Звук"
#: src/providers/base.py:11
msgid "Text"
msgstr "Текст"
#: src/providers/base.py:12
msgid "Movie"
msgstr ""
#: src/providers/base.py:86
msgid "How to get a token"
msgstr "Как получить токен"
@ -57,7 +79,7 @@ msgstr "Извините, я не знаю, что сказать! (Ошибка
msgid "API Key"
msgstr "Ключ API"
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr "Параметры отсутствуют"
@ -81,21 +103,21 @@ msgstr "Упаковка"
msgid "Translate"
msgstr "Перевести"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "Экспортировать беседу?"
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr "Закрыть"
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr "Экспортировать"
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
msgid "Models"
msgstr "Модели"
@ -112,26 +134,26 @@ msgid "Are you sure you want to delete all threads? This can't be undone!"
msgstr "Вы уверены, что хотите удалить все беседы? Это не может быть отменено!"
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "Отменить"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "Удалить"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr "Все чаты очищены!"
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "Параметры"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr "Провайдеры"
@ -167,14 +189,10 @@ msgstr "Имя пользователя"
msgid "Discard"
msgstr "Отменить"
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "Сохранить"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "Экспортировать беседу?"
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr "Имя файла"
@ -199,15 +217,15 @@ msgstr "Не удалось сохранить беседу"
msgid "Thread successfully saved!"
msgstr "Беседа сохранена успешно!"
#: src/views/window.py:177
#: src/views/window.py:179
msgid "New chat"
msgstr "Новый чат"
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr "Удалить все чаты"
#: src/views/window.py:213
#: src/views/window.py:215
msgid ""
"Are you sure you want to delete all chats in this thread? This can't be "
"undone!"
@ -215,27 +233,27 @@ msgstr ""
"Вы уверены, что хотите удалить все чаты в этой беседе? Это не может быть "
"отменено!"
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr "Нечего очищать!"
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr "Нечего экспортировать!"
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
msgid "Clear all"
msgstr "Очистить все"
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr "Генерируется ответ"
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr "Извините, я не знаю, что сказать."
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr "человек"
@ -261,10 +279,6 @@ msgstr ""
msgid "Message"
msgstr "Сообщение"
#: src/views/window.blp:108
msgid "Chat"
msgstr "Чат"
#: src/views/window.blp:156
msgid "No Messages"
msgstr "Нет сообщений"
@ -281,10 +295,6 @@ msgstr "Нет интернета"
msgid "Get started by creating a new chat"
msgstr "Начните с создания нового чата"
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr "Открыть панель выбора эмодзи"
#: src/views/window.blp:259
msgid "Ask"
msgstr "Спросить"
@ -323,11 +333,31 @@ msgstr "Копировать"
msgid "Edit"
msgstr "Изменить"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "Удалить"
#: src/widgets/item.py:189
#: src/widgets/item.py:219
#, fuzzy
#| msgid "Unable to save the Thread"
msgid "Failed to save the image"
msgstr "Не удалось сохранить беседу"
#: src/widgets/item.py:221
msgid "Image saved"
msgstr ""
#: src/widgets/item.py:231
msgid "No image to save"
msgstr ""
#: src/widgets/item.py:235
#, fuzzy
#| msgid "Message"
msgid "Save message"
msgstr "Сообщение"
#: src/widgets/item.py:251
msgid "Message copied"
msgstr "Сообщение скопировано"
@ -444,21 +474,27 @@ msgstr "Вы уверены, что хотите удалить эту бесе
msgid "Thread Deleted"
msgstr "Беседа удалена"
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
msgstr ""
"Пожалуйста, загрузите модель в Параметрах, нажав на меню с точками сверху!"
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr "Здравствуйте, я Bavarder, ИИ болтовни"
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr "Пожалуйста, включите провайдера в меню с точками"
#~ msgid "Export Thread ?"
#~ msgstr "Экспортировать беседу?"
#~ msgid "Open Emoji Picker"
#~ msgstr "Открыть панель выбора эмодзи"
#~ msgid "Set Title"
#~ msgstr "Установить название"

112
po/sv.po
View file

@ -7,13 +7,13 @@
# Morgan Antonsson <morgan.antonsson@gmail.com>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
# SomeTr <SomeTr@users.noreply.translate.codeberg.org>, 2023.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2023.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2023, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2023-11-09 09:13+0000\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-25 13:48+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
"memory@weblate.org>\n"
"Language-Team: Swedish <https://translate.codeberg.org/projects/bavarder/"
@ -23,14 +23,34 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.1\n"
"X-Generator: Weblate 5.4\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 src/views/window.blp:6
#: src/views/window.blp:26 src/views/window.blp:62 src/views/window.blp:168
msgid "Bavarder"
msgstr "Bavarder"
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "Bild"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr "Chatt"
#: src/providers/base.py:10
msgid "Voice"
msgstr "Ljud"
#: src/providers/base.py:11
msgid "Text"
msgstr "text"
#: src/providers/base.py:12
msgid "Movie"
msgstr ""
#: src/providers/base.py:86
msgid "How to get a token"
msgstr ""
@ -56,7 +76,7 @@ msgstr ""
msgid "API Key"
msgstr ""
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr ""
@ -82,21 +102,21 @@ msgstr ""
msgid "Translate"
msgstr "Översätt"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr ""
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr "Stäng"
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr "Exportera"
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
#, fuzzy
#| msgid "Model"
msgid "Models"
@ -117,26 +137,26 @@ msgid "Are you sure you want to delete all threads? This can't be undone!"
msgstr "Är du säker på att du vill ta bort detta?"
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "Avbryt"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "Radera"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr ""
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "Inställningar"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr "Leverantörer"
@ -180,14 +200,10 @@ msgstr "Användare"
msgid "Discard"
msgstr "Kassera"
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "Spara"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr ""
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr "filnamn"
@ -212,15 +228,15 @@ msgstr ""
msgid "Thread successfully saved!"
msgstr ""
#: src/views/window.py:177
#: src/views/window.py:179
msgid "New chat"
msgstr ""
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr ""
#: src/views/window.py:213
#: src/views/window.py:215
#, fuzzy
#| msgid "Are you sure you want to delete this thread?"
msgid ""
@ -228,30 +244,30 @@ msgid ""
"undone!"
msgstr "Är du säker på att du vill ta bort detta?"
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr ""
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr ""
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
#, fuzzy
#| msgctxt "shortcut window"
#| msgid "Clear"
msgid "Clear all"
msgstr "Rensa"
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr ""
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr ""
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr "Människa"
@ -278,10 +294,6 @@ msgstr ""
msgid "Message"
msgstr "Meddelande"
#: src/views/window.blp:108
msgid "Chat"
msgstr "Chatt"
#: src/views/window.blp:156
#, fuzzy
#| msgid "Message"
@ -300,10 +312,6 @@ msgstr ""
msgid "Get started by creating a new chat"
msgstr ""
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr ""
#: src/views/window.blp:259
msgid "Ask"
msgstr "Fråga"
@ -342,11 +350,29 @@ msgstr "Kopiera"
msgid "Edit"
msgstr "Redigera"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "Ta bort"
#: src/widgets/item.py:189
#: src/widgets/item.py:219
msgid "Failed to save the image"
msgstr ""
#: src/widgets/item.py:221
msgid "Image saved"
msgstr ""
#: src/widgets/item.py:231
msgid "No image to save"
msgstr ""
#: src/widgets/item.py:235
#, fuzzy
#| msgid "Message"
msgid "Save message"
msgstr "Meddelande"
#: src/widgets/item.py:251
#, fuzzy
#| msgid "Message"
msgid "Message copied"
@ -457,17 +483,17 @@ msgstr "Är du säker på att du vill ta bort detta?"
msgid "Thread Deleted"
msgstr ""
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
msgstr ""
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr ""
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr ""

124
po/ta.po
View file

@ -4,13 +4,15 @@
# Bavarder, 2023.
#
# "K.B.Dharun Krishna" <kbdharunkrishna@gmail.com>, 2023.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2023-10-14 17:53+0000\n"
"Last-Translator: \"K.B.Dharun Krishna\" <kbdharunkrishna@gmail.com>\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-25 13:48+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
"memory@weblate.org>\n"
"Language-Team: Tamil <https://translate.codeberg.org/projects/bavarder/"
"bavarder/ta/>\n"
"Language: ta\n"
@ -18,14 +20,34 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.0.2\n"
"X-Generator: Weblate 5.4\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 src/views/window.blp:6
#: src/views/window.blp:26 src/views/window.blp:62 src/views/window.blp:168
msgid "Bavarder"
msgstr "பவார்டர்"
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "படம்"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr "உரையாடல்"
#: src/providers/base.py:10
msgid "Voice"
msgstr ""
#: src/providers/base.py:11
msgid "Text"
msgstr "உரை"
#: src/providers/base.py:12
msgid "Movie"
msgstr ""
#: src/providers/base.py:86
msgid "How to get a token"
msgstr "குறி அடையாளம் பெறுவது எப்படி"
@ -52,7 +74,7 @@ msgstr "மன்னிக்கவும், எனக்கு என்ன
msgid "API Key"
msgstr "API விசை"
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr "விருப்பத்தேர்வுகள் இல்லை"
@ -76,21 +98,21 @@ msgstr "பொதியிடல்"
msgid "Translate"
msgstr "மொழிபெயர்"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
msgstr "ஏற்றுமதி தொடரிழை ?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "ஏற்றுமதி தொடரிழை?"
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr "மூடு"
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr "ஏற்றுமதி"
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
msgid "Models"
msgstr "மாதிரிகள்"
@ -108,26 +130,26 @@ msgstr ""
"எல்லா தொடரிழைகளையும் நிச்சயமாக நீக்க விரும்புகிறீர்களா? இதை செயல்தவிர்க்க முடியாது!"
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "ரத்துசெய்"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "நீக்கு"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr "அனைத்து உரையாடல்களும் அழிக்கப்பட்டன!"
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "விருப்பத்தேர்வுகள்"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr "வழங்குபவர்கள்"
@ -163,14 +185,10 @@ msgstr "பயனர் பெயர்"
msgid "Discard"
msgstr "நிராகரிக்கவும்"
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "சேமி"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "ஏற்றுமதி தொடரிழை?"
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr "File name"
@ -195,15 +213,15 @@ msgstr "தொடரிழையைச் சேமிக்க முடிய
msgid "Thread successfully saved!"
msgstr "தொடரிழை வெற்றிகரமாக சேமிக்கப்பட்டது!"
#: src/views/window.py:177
#: src/views/window.py:179
msgid "New chat"
msgstr "புதிய உரையாடல்"
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr "அனைத்து உரையாடல்களையும் நீக்கு"
#: src/views/window.py:213
#: src/views/window.py:215
msgid ""
"Are you sure you want to delete all chats in this thread? This can't be "
"undone!"
@ -211,27 +229,27 @@ msgstr ""
"இந்த தொடரிழையில் உள்ள அனைத்து உரையாடல்களையும் நிச்சயமாக நீக்க விரும்புகிறீர்களா? இதை "
"செயல்தவிர்க்க முடியாது!"
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr "தெளிவுபடுத்த எதுவும் இல்லை!"
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr "ஏற்றுமதி செய்ய எதுவும் இல்லை!"
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
msgid "Clear all"
msgstr "அனைத்தையும் அழி"
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr "பதிலை உருவாக்குகிறது"
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr "மன்னிக்கவும், எனக்கு என்ன சொல்வது என்று தெரியவில்லை."
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr "மனிதன்"
@ -258,10 +276,6 @@ msgstr ""
msgid "Message"
msgstr "செய்தி"
#: src/views/window.blp:108
msgid "Chat"
msgstr "உரையாடல்"
#: src/views/window.blp:156
msgid "No Messages"
msgstr "செய்திகள் இல்லை"
@ -278,10 +292,6 @@ msgstr "இணையம் இல்லை"
msgid "Get started by creating a new chat"
msgstr "புதிய உரையாடலை உருவாக்குவதன் மூலம் தொடங்கவும்"
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr "ஈமோஜி பிக்கரைத் திறக்கவும்"
#: src/views/window.blp:259
msgid "Ask"
msgstr "கேள்"
@ -320,11 +330,31 @@ msgstr "நகல்"
msgid "Edit"
msgstr "திருத்து"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "அகற்று"
#: src/widgets/item.py:189
#: src/widgets/item.py:219
#, fuzzy
#| msgid "Unable to save the Thread"
msgid "Failed to save the image"
msgstr "தொடரிழையைச் சேமிக்க முடியவில்லை"
#: src/widgets/item.py:221
msgid "Image saved"
msgstr ""
#: src/widgets/item.py:231
msgid "No image to save"
msgstr ""
#: src/widgets/item.py:235
#, fuzzy
#| msgid "Message"
msgid "Save message"
msgstr "செய்தி"
#: src/widgets/item.py:251
msgid "Message copied"
msgstr "செய்தி நகலெடுக்கப்பட்டது"
@ -442,21 +472,27 @@ msgstr "இந்த தொடரிழையை நிச்சயமாக ந
msgid "Thread Deleted"
msgstr "தொடரிழை நீக்கப்பட்டது"
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
msgstr ""
"மேலே உள்ள புள்ளி பட்டியலை தொடுவதன் மூலம் விருப்பங்களிலிருந்து மாதிரியைப் பதிவிறக்கவும்!"
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr "வணக்கம், நான் பவார்டர், ஒரு சிட்-சாட் AI"
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr "புள்ளி பட்டியலில் இருந்து வழங்குநரை இயக்கவும்"
#~ msgid "Export Thread ?"
#~ msgstr "ஏற்றுமதி தொடரிழை ?"
#~ msgid "Open Emoji Picker"
#~ msgstr "ஈமோஜி பிக்கரைத் திறக்கவும்"
#~ msgid "Set Title"
#~ msgstr "தலைப்பை அமைக்கவும்"

138
po/th.po
View file

@ -5,13 +5,15 @@
#
# watchakorn-18k <porton555@gmail.com>, 2023.
# yuttct <yuttct@yahoo.com>, 2024.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2024-02-02 01:56+0000\n"
"Last-Translator: yuttct <yuttct@yahoo.com>\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-25 13:48+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
"memory@weblate.org>\n"
"Language-Team: Thai <https://translate.codeberg.org/projects/bavarder/"
"bavarder/th/>\n"
"Language: th\n"
@ -19,14 +21,34 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.3.1\n"
"X-Generator: Weblate 5.4\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 src/views/window.blp:6
#: src/views/window.blp:26 src/views/window.blp:62 src/views/window.blp:168
msgid "Bavarder"
msgstr "แชท"
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "รูปภาพ"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr "พูดคุย"
#: src/providers/base.py:10
msgid "Voice"
msgstr ""
#: src/providers/base.py:11
msgid "Text"
msgstr ""
#: src/providers/base.py:12
msgid "Movie"
msgstr ""
#: src/providers/base.py:86
msgid "How to get a token"
msgstr "วิธีรับโทเค็น"
@ -53,7 +75,7 @@ msgstr "ขออภัย ฉันไม่รู้จะพูดอะไ
msgid "API Key"
msgstr "คีย์ API"
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr "ไม่มีค่ากำหนดที่ใช้ได้"
@ -77,21 +99,21 @@ msgstr "บรรจุภัณฑ์"
msgid "Translate"
msgstr "แปลภาษา"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
msgstr "ส่งออกเธรด ?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "ส่งออกเธรด?"
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr "ปิด"
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr "ส่งออก"
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
msgid "Models"
msgstr "โมเดล"
@ -108,26 +130,26 @@ msgid "Are you sure you want to delete all threads? This can't be undone!"
msgstr "คุณแน่ใจหรือไม่ว่าต้องการลบกระทู้ทั้งหมด? สิ่งนี้ไม่สามารถยกเลิกได้!"
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "ยกเลิก"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "ลบ"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr "ล้างแชททั้งหมดแล้ว!"
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "การตั้งค่า"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr "ผู้ให้บริการ"
@ -166,14 +188,10 @@ msgstr "ชื่อผู้ใช้"
msgid "Discard"
msgstr "ทิ้ง"
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "บันทึก"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "ส่งออกเธรด?"
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr "ชื่อไฟล์"
@ -198,43 +216,41 @@ msgstr "ไม่สามารถบันทึกกระทู้ได้
msgid "Thread successfully saved!"
msgstr "บันทึกชุดข้อความสำเร็จแล้ว!"
#: src/views/window.py:177
#: src/views/window.py:179
msgid "New chat"
msgstr "แชทใหม่"
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr "ลบแชททั้งหมด"
#: src/views/window.py:213
#: src/views/window.py:215
msgid ""
"Are you sure you want to delete all chats in this thread? This can't be "
"undone!"
msgstr ""
"คุณแน่ใจหรือไม่ว่าต้องการลบการแชททั้งหมดในกระทู้นี้ "
"สิ่งนี้ไม่สามารถยกเลิกได้!"
msgstr "คุณแน่ใจหรือไม่ว่าต้องการลบการแชททั้งหมดในกระทู้นี้ สิ่งนี้ไม่สามารถยกเลิกได้!"
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr "ไม่มีอะไรต้องเคลียร์!"
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr "ไม่มีอะไรจะส่งออก!"
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
msgid "Clear all"
msgstr "ลบทั้งหมด"
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr "กำลังสร้างการตอบสนอง"
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr "ขออภัย ฉันไม่รู้จะพูดอะไร"
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr "มนุษย์"
@ -259,10 +275,6 @@ msgstr "เริ่มต้นด้วยการสร้างแชทใ
msgid "Message"
msgstr "ข้อความ"
#: src/views/window.blp:108
msgid "Chat"
msgstr "พูดคุย"
#: src/views/window.blp:156
msgid "No Messages"
msgstr "ไม่มีข้อความ"
@ -279,10 +291,6 @@ msgstr "ไม่มีอินเทอร์เน็ต"
msgid "Get started by creating a new chat"
msgstr "เริ่มต้นด้วยการสร้างแชทใหม่"
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr "เปิดเครื่องมือเลือกอีโมจิ"
#: src/views/window.blp:259
msgid "Ask"
msgstr "ถาม"
@ -321,11 +329,31 @@ msgstr "คัดลอก"
msgid "Edit"
msgstr "แก้ไข"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "ลบ"
#: src/widgets/item.py:189
#: src/widgets/item.py:219
#, fuzzy
#| msgid "Unable to save the Thread"
msgid "Failed to save the image"
msgstr "ไม่สามารถบันทึกกระทู้ได้"
#: src/widgets/item.py:221
msgid "Image saved"
msgstr ""
#: src/widgets/item.py:231
msgid "No image to save"
msgstr ""
#: src/widgets/item.py:235
#, fuzzy
#| msgid "Message"
msgid "Save message"
msgstr "ข้อความ"
#: src/widgets/item.py:251
msgid "Message copied"
msgstr "คัดลอกข้อความแล้ว"
@ -349,8 +377,7 @@ msgstr "อุณหภูมิ"
msgid ""
"The model temperature. Larger values increase creativity but decrease "
"factuality."
msgstr ""
"อุณหภูมิของโมเดล ค่าที่มากขึ้นจะเพิ่มความคิดสร้างสรรค์แต่ลดความเป็นจริงลง"
msgstr "อุณหภูมิของโมเดล ค่าที่มากขึ้นจะเพิ่มความคิดสร้างสรรค์แต่ลดความเป็นจริงลง"
#: src/widgets/model_item.blp:45
msgid "Top K"
@ -361,8 +388,8 @@ msgid ""
"Randomly sample from the top_k most likely tokens at each generation step. "
"Set this to 1 for greedy decoding."
msgstr ""
"สุ่มตัวอย่างจากโทเค็นที่มีแนวโน้มมากที่สุด top_k ในแต่ละขั้นตอนการสร้าง "
"ตั้งค่านี้เป็น 1 สำหรับการถอดรหัสแบบละโมบ"
"สุ่มตัวอย่างจากโทเค็นที่มีแนวโน้มมากที่สุด top_k ในแต่ละขั้นตอนการสร้าง ตั้งค่านี้เป็น 1 "
"สำหรับการถอดรหัสแบบละโมบ"
#: src/widgets/model_item.blp:59
msgid "Top P"
@ -373,8 +400,7 @@ msgid ""
"Randomly sample at each generation step from the top most likely tokens "
"whose probabilities add up to top_p."
msgstr ""
"สุ่มตัวอย่างในแต่ละขั้นตอนการสร้างจากโทเค็นที่มีแนวโน้มสูงที่สุดซึ่งความน่าจะ"
"เป็นรวมกันเป็น top_p"
"สุ่มตัวอย่างในแต่ละขั้นตอนการสร้างจากโทเค็นที่มีแนวโน้มสูงที่สุดซึ่งความน่าจะเป็นรวมกันเป็น top_p"
#: src/widgets/model_item.blp:74
msgid "Repetition Penalty"
@ -439,20 +465,26 @@ msgstr "คุณแน่ใจไหมว่าต้องการลบส
msgid "Thread Deleted"
msgstr ""
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
msgstr ""
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr ""
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr ""
#~ msgid "Export Thread ?"
#~ msgstr "ส่งออกเธรด ?"
#~ msgid "Open Emoji Picker"
#~ msgstr "เปิดเครื่องมือเลือกอีโมจิ"
#~ msgid "Clear prompt after send"
#~ msgstr "ล้างพร้อมต์หลังจากส่ง"

122
po/tr.po
View file

@ -9,13 +9,15 @@
# Edip1 <medip642@gmail.com>, 2023.
# sabriunal <libreajans@gmail.com>, 2023.
# Sabri Ünal <libreajans@gmail.com>, 2023.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2023-10-22 08:53+0000\n"
"Last-Translator: Sabri Ünal <libreajans@gmail.com>\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-25 13:48+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
"memory@weblate.org>\n"
"Language-Team: Turkish <https://translate.codeberg.org/projects/bavarder/"
"bavarder/tr/>\n"
"Language: tr\n"
@ -23,14 +25,34 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.0.2\n"
"X-Generator: Weblate 5.4\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 src/views/window.blp:6
#: src/views/window.blp:26 src/views/window.blp:62 src/views/window.blp:168
msgid "Bavarder"
msgstr "Bavarder"
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "Resim"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr "Sohbet"
#: src/providers/base.py:10
msgid "Voice"
msgstr "Ses"
#: src/providers/base.py:11
msgid "Text"
msgstr "Metin"
#: src/providers/base.py:12
msgid "Movie"
msgstr ""
#: src/providers/base.py:86
msgid "How to get a token"
msgstr "Jeton nasıl alınır"
@ -57,7 +79,7 @@ msgstr "Üzgünüm, ne diyeceğimi bilemiyorum! (Hata: {output})"
msgid "API Key"
msgstr "API Anahtarı"
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr "Kullanılabilir tercih yok"
@ -85,21 +107,21 @@ msgstr "Paketleme"
msgid "Translate"
msgstr "Çevir"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "Başlık Dışa Aktarılsın Mı?"
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr "Kapat"
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr "Dışa Aktar"
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
msgid "Models"
msgstr "Modeller"
@ -117,26 +139,26 @@ msgstr ""
"Tüm başlıkları silmek istediğinize emin misiniz? Bu işlem geri alınamaz!"
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "İptal"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "Sil"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr "Tüm sohbetler temizlendi!"
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "Tercihler"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr "Sağlayıcılar"
@ -172,14 +194,10 @@ msgstr "Kullanıcı adı"
msgid "Discard"
msgstr "Yoksay"
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "Kaydet"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "Başlık Dışa Aktarılsın Mı?"
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr "Dosya Adı"
@ -204,15 +222,15 @@ msgstr "Başlık kaydedilemedi"
msgid "Thread successfully saved!"
msgstr "Başlık kaydedildi!"
#: src/views/window.py:177
#: src/views/window.py:179
msgid "New chat"
msgstr "Yeni sohbet"
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr "Tüm Sohbetleri Sil"
#: src/views/window.py:213
#: src/views/window.py:215
msgid ""
"Are you sure you want to delete all chats in this thread? This can't be "
"undone!"
@ -220,27 +238,27 @@ msgstr ""
"Tüm başlıktaki tüm sohbetleri silmek istediğinize emin misiniz? Bu işlem "
"geri alınamaz!"
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr "Temizlenecek bir şey yok!"
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr "Dışa aktarılacak bir şey yok!"
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
msgid "Clear all"
msgstr "Tümünü temizle"
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr "Yanıt oluşturuluyor"
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr "Üzgünüm, ne diyeceğimi bilmiyorum."
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr "insan"
@ -265,10 +283,6 @@ msgstr "Yeni sohbet oluşturarak ya da kenar çubuğundan sohbet seçerek başla
msgid "Message"
msgstr "İleti"
#: src/views/window.blp:108
msgid "Chat"
msgstr "Sohbet"
#: src/views/window.blp:156
msgid "No Messages"
msgstr "İleti Yok"
@ -285,10 +299,6 @@ msgstr "Internet Yok"
msgid "Get started by creating a new chat"
msgstr "Yeni sohbet oluşturarak başlayın"
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr "Emoji Seçiciyi Aç"
#: src/views/window.blp:259
msgid "Ask"
msgstr "Sor"
@ -327,11 +337,31 @@ msgstr "Kopyala"
msgid "Edit"
msgstr "Düzenle"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "Kaldır"
#: src/widgets/item.py:189
#: src/widgets/item.py:219
#, fuzzy
#| msgid "Unable to save the Thread"
msgid "Failed to save the image"
msgstr "Başlık kaydedilemedi"
#: src/widgets/item.py:221
msgid "Image saved"
msgstr ""
#: src/widgets/item.py:231
msgid "No image to save"
msgstr ""
#: src/widgets/item.py:235
#, fuzzy
#| msgid "Message"
msgid "Save message"
msgstr "İleti"
#: src/widgets/item.py:251
msgid "Message copied"
msgstr "İleti kopyalandı"
@ -450,21 +480,27 @@ msgstr "Bu başlığı silmek istediğinize emin misiniz?"
msgid "Thread Deleted"
msgstr "Başlık Silindi"
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
msgstr ""
"Lütfen üstteki Nokta Menüsüne tıklayarak Tercihler'den bir model indirin!"
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr "Merhaba, ben Bavarder, sohbet için bir Yapay Zekayım"
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr "Nokta Menüden bir sağlayıcı etkinleştiriniz"
#~ msgid "Export Thread ?"
#~ msgstr "Başlık Dışa Aktarılsın Mı?"
#~ msgid "Open Emoji Picker"
#~ msgstr "Emoji Seçiciyi Aç"
#~ msgid "Set Title"
#~ msgstr "Başlık Belirle"

118
po/uk.po
View file

@ -9,14 +9,14 @@
# volkov <d2oo1dle2x@gmail.com>, 2023.
# Anatolii Bielibov <anatoly136ua@gmail.com>, 2023.
# Anatolii Bielibov <Anatoly136UA@users.noreply.translate.codeberg.org>, 2023.
# SomeTr <SomeTr@users.noreply.translate.codeberg.org>, 2023.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2023.
# SomeTr <SomeTr@users.noreply.translate.codeberg.org>, 2023, 2024.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2023, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2023-12-26 08:56+0000\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-26 02:56+0000\n"
"Last-Translator: SomeTr <SomeTr@users.noreply.translate.codeberg.org>\n"
"Language-Team: Ukrainian <https://translate.codeberg.org/projects/bavarder/"
"bavarder/uk/>\n"
@ -26,14 +26,34 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 5.3.1\n"
"X-Generator: Weblate 5.4\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 src/views/window.blp:6
#: src/views/window.blp:26 src/views/window.blp:62 src/views/window.blp:168
msgid "Bavarder"
msgstr "Bavarder"
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "Зображення"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr "Бесіда"
#: src/providers/base.py:10
msgid "Voice"
msgstr "Звук"
#: src/providers/base.py:11
msgid "Text"
msgstr "Текст"
#: src/providers/base.py:12
msgid "Movie"
msgstr "Відео"
#: src/providers/base.py:86
msgid "How to get a token"
msgstr "Як отримати токен"
@ -60,7 +80,7 @@ msgstr "Вибачте, я не знаю, що сказати! (Помилка:
msgid "API Key"
msgstr "Ключ API"
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr "Налаштування відсутні"
@ -84,21 +104,21 @@ msgstr "Пакунок"
msgid "Translate"
msgstr "Перекласти"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "Експортувати гілку?"
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr "Закрити"
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr "Експортувати"
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
msgid "Models"
msgstr "Моделі"
@ -115,26 +135,26 @@ msgid "Are you sure you want to delete all threads? This can't be undone!"
msgstr "Ви впевнені, що хочете видалити всі гілки? Це не можна буде скасувати!"
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "Скасувати"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "Видалити"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr "Усі бесіди очищено!"
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "Налаштування"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr "Постачальники"
@ -170,14 +190,10 @@ msgstr "Ім'я користувача"
msgid "Discard"
msgstr "Скасувати зміни"
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "Зберегти"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "Експортувати гілку?"
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr "Ім'я файлу"
@ -202,15 +218,15 @@ msgstr "Не вдалося зберегти гілку"
msgid "Thread successfully saved!"
msgstr "Гілку успішно збережено!"
#: src/views/window.py:177
#: src/views/window.py:179
msgid "New chat"
msgstr "Нова бесіда"
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr "Видалити всі бесіди"
#: src/views/window.py:213
#: src/views/window.py:215
msgid ""
"Are you sure you want to delete all chats in this thread? This can't be "
"undone!"
@ -218,27 +234,27 @@ msgstr ""
"Ви впевнені, що хочете видалити всі бесіди в цій гілці? Це не можна буде "
"скасувати!"
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr "Нічого очищувати!"
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr "Нічого експортувати!"
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
msgid "Clear all"
msgstr "Очистити все"
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr "Відповідь генерується"
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr "Вибачте, я не знаю, що сказати."
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr "Людина"
@ -263,10 +279,6 @@ msgstr "Щоб почати, створіть нову бесіду або ви
msgid "Message"
msgstr "Повідомлення"
#: src/views/window.blp:108
msgid "Chat"
msgstr "Бесіда"
#: src/views/window.blp:156
msgid "No Messages"
msgstr "Немає повідомлень"
@ -283,10 +295,6 @@ msgstr "Немає підключення до Інтернету"
msgid "Get started by creating a new chat"
msgstr "Щоб почати, створіть нову бесіду"
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr "Відкрити панель вибору емоджі"
#: src/views/window.blp:259
msgid "Ask"
msgstr "Запитати"
@ -325,11 +333,27 @@ msgstr "Копіювати"
msgid "Edit"
msgstr "Редагувати"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "Вилучити"
#: src/widgets/item.py:189
#: src/widgets/item.py:219
msgid "Failed to save the image"
msgstr "Не вдалося зберегти зображення"
#: src/widgets/item.py:221
msgid "Image saved"
msgstr "Зображення збережено"
#: src/widgets/item.py:231
msgid "No image to save"
msgstr "Немає зображення для збереження"
#: src/widgets/item.py:235
msgid "Save message"
msgstr "Зберегти повідомлення"
#: src/widgets/item.py:251
msgid "Message copied"
msgstr "Повідомлення скопійовано"
@ -448,20 +472,26 @@ msgstr "Ви впевнені, що хочете видалити цю гілк
msgid "Thread Deleted"
msgstr "Гілку видалено"
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
msgstr "Завантажте модель у Налаштуваннях, натиснувши вгорі меню з крапками!"
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr "Привіт, я Bavarder, ШІ для розмов"
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr "Будь ласка, виберіть постачальника в меню з крапками"
#~ msgid "Export Thread ?"
#~ msgstr "Експортувати гілку?"
#~ msgid "Open Emoji Picker"
#~ msgstr "Відкрити панель вибору емоджі"
#~ msgid "Set Title"
#~ msgstr "Вказати назву"

View file

@ -1,4 +1,5 @@
#!/bin/bash
#!/usr/bin/env bash
po_dir=$(dirname "$(realpath "$0")")
xgettext -f "$po_dir"/POTFILES -o "$po_dir"/Bavarder.pot --add-comments=Translators --keyword=_ --keyword=C_1c,2 --from-code=UTF-8
sed -i "s/SOME DESCRIPTIVE TITLE./Bavarder POT file/" "$po_dir"/Bavarder.pot

View file

@ -5,13 +5,15 @@
#
# yangyangdaji <1504305527@qq.com>, 2023.
# ericjsz <codeberg@togr.top>, 2023.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2023-11-02 17:13+0000\n"
"Last-Translator: ericjsz <codeberg@togr.top>\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-25 13:48+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
"memory@weblate.org>\n"
"Language-Team: Chinese (Simplified) <https://translate.codeberg.org/projects/"
"bavarder/bavarder/zh_Hans/>\n"
"Language: zh_Hans\n"
@ -19,14 +21,34 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.1\n"
"X-Generator: Weblate 5.4\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 src/views/window.blp:6
#: src/views/window.blp:26 src/views/window.blp:62 src/views/window.blp:168
msgid "Bavarder"
msgstr "聊天"
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "图像"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr "聊天"
#: src/providers/base.py:10
msgid "Voice"
msgstr "语音"
#: src/providers/base.py:11
msgid "Text"
msgstr "文本"
#: src/providers/base.py:12
msgid "Movie"
msgstr ""
#: src/providers/base.py:86
msgid "How to get a token"
msgstr "如何获得令牌"
@ -52,7 +74,7 @@ msgstr "抱歉,我不知道该说什么!(Error: {output})"
msgid "API Key"
msgstr "API 密钥"
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr "没有可用的选项"
@ -76,21 +98,21 @@ msgstr "打包"
msgid "Translate"
msgstr "翻译"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "导出线程?"
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr "关闭"
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr "导出"
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
msgid "Models"
msgstr "模型"
@ -107,26 +129,26 @@ msgid "Are you sure you want to delete all threads? This can't be undone!"
msgstr "您确定要删除所有线程吗? 这无法挽回!"
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "取消"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "删除"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr "聊天全部清空!"
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "首选项"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr "提供者"
@ -162,14 +184,10 @@ msgstr "用户名称"
msgid "Discard"
msgstr "丢弃"
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "保存"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr "导出线程?"
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr "文件名"
@ -194,41 +212,41 @@ msgstr "无法保存线程"
msgid "Thread successfully saved!"
msgstr "线程成功保存!"
#: src/views/window.py:177
#: src/views/window.py:179
msgid "New chat"
msgstr "新聊天"
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr "删除所有聊天内容"
#: src/views/window.py:213
#: src/views/window.py:215
msgid ""
"Are you sure you want to delete all chats in this thread? This can't be "
"undone!"
msgstr "您确定要删除该线程中的所有聊天吗? 这无法挽回!"
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr "没有什么要澄清的!"
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr "没什么可导出的!"
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
msgid "Clear all"
msgstr "全部清除"
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr "生成响应"
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr "抱歉,我不知道该说什么。"
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr "人类"
@ -253,10 +271,6 @@ msgstr "通过创建新聊天或从侧边栏中选择一个开始"
msgid "Message"
msgstr "消息"
#: src/views/window.blp:108
msgid "Chat"
msgstr "聊天"
#: src/views/window.blp:156
msgid "No Messages"
msgstr "没有消息"
@ -273,10 +287,6 @@ msgstr "无网络"
msgid "Get started by creating a new chat"
msgstr "首先创建新的聊天"
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr "打开表情选择器"
#: src/views/window.blp:259
msgid "Ask"
msgstr "询问"
@ -315,11 +325,31 @@ msgstr "复制"
msgid "Edit"
msgstr "编辑"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "移除"
#: src/widgets/item.py:189
#: src/widgets/item.py:219
#, fuzzy
#| msgid "Unable to save the Thread"
msgid "Failed to save the image"
msgstr "无法保存线程"
#: src/widgets/item.py:221
msgid "Image saved"
msgstr ""
#: src/widgets/item.py:231
msgid "No image to save"
msgstr ""
#: src/widgets/item.py:235
#, fuzzy
#| msgid "Message"
msgid "Save message"
msgstr "消息"
#: src/widgets/item.py:251
msgid "Message copied"
msgstr "消息已复制"
@ -428,20 +458,26 @@ msgstr "您确定要删除此列表吗?"
msgid "Thread Deleted"
msgstr "线程已删除"
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
msgstr "请点击顶部的点菜单从首选项下载模型!"
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr "大家好,我是 Bavarder一个会聊天的AI"
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr "请从点菜单启用提供商"
#~ msgid "Export Thread ?"
#~ msgstr "导出线程?"
#~ msgid "Open Emoji Picker"
#~ msgstr "打开表情选择器"
#~ msgid "Set Title"
#~ msgstr "选择标题"

View file

@ -5,13 +5,15 @@
#
# PeterDaveHello <hsu@peterdavehello.org>, 2023.
# Weblate <noreply-mt-weblate@weblate.org>, 2023.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-04 15:21+0200\n"
"PO-Revision-Date: 2023-12-08 21:09+0000\n"
"Last-Translator: Weblate <noreply-mt-weblate@weblate.org>\n"
"POT-Creation-Date: 2024-02-25 14:46+0100\n"
"PO-Revision-Date: 2024-02-25 13:48+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
"memory@weblate.org>\n"
"Language-Team: Chinese (Traditional) <https://translate.codeberg.org/"
"projects/bavarder/bavarder/zh_Hant/>\n"
"Language: zh_Hant\n"
@ -19,14 +21,34 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.2.1\n"
"X-Generator: Weblate 5.4\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 src/views/window.blp:6
#: src/views/window.blp:26 src/views/window.blp:62 src/views/window.blp:168
msgid "Bavarder"
msgstr "Bavarder"
#: src/providers/base.py:79
#: src/providers/base.py:8
msgid "Image"
msgstr "圖片"
#: src/providers/base.py:9 src/views/window.blp:108
msgid "Chat"
msgstr "聊天"
#: src/providers/base.py:10
msgid "Voice"
msgstr "音訊"
#: src/providers/base.py:11
msgid "Text"
msgstr "文字"
#: src/providers/base.py:12
msgid "Movie"
msgstr ""
#: src/providers/base.py:86
msgid "How to get a token"
msgstr "如何取得金鑰"
@ -50,7 +72,7 @@ msgstr ""
msgid "API Key"
msgstr "API 金鑰"
#: src/providers/provider_item.blp:12
#: src/providers/provider_item.blp:18
msgid "No preferences available"
msgstr "無可用偏好設定"
@ -74,21 +96,21 @@ msgstr ""
msgid "Translate"
msgstr "翻譯"
#: src/views/export_dialog.blp:6
msgid "Export Thread ?"
#: src/views/export_dialog.blp:6 src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr ""
#: src/views/export_dialog.blp:53
msgid "Close"
msgstr "關閉"
#: src/views/export_dialog.blp:54 src/views/window.py:286
#: src/views/window.py:324
#: src/views/export_dialog.blp:54 src/views/window.py:288
#: src/views/window.py:326
msgid "Export"
msgstr "匯出"
#: src/views/preferences_window.py:53 src/views/preferences_window.blp:11
#: src/views/preferences_window.blp:19 src/views/window.py:311
#: src/views/preferences_window.blp:19 src/views/window.py:313
#, fuzzy
#| msgid "Model"
msgid "Models"
@ -109,26 +131,26 @@ msgid "Are you sure you want to delete all threads? This can't be undone!"
msgstr "您確定要刪除嗎?"
#: src/views/preferences_window.py:77 src/views/save_dialog.blp:7
#: src/views/window.py:217 src/views/window.py:382
#: src/views/window.py:219 src/views/window.py:384 src/widgets/item.py:240
#: src/widgets/thread_item.py:86 src/widgets/thread_item.py:126
msgid "Cancel"
msgstr "取消"
#: src/views/preferences_window.py:78 src/views/window.py:218
#: src/views/preferences_window.py:78 src/views/window.py:220
#: src/widgets/thread_item.blp:28 src/widgets/thread_item.py:127
msgid "Delete"
msgstr "刪除"
#: src/views/preferences_window.py:93 src/views/window.py:243
#: src/views/preferences_window.py:93 src/views/window.py:245
msgid "All chats cleared!"
msgstr ""
#: src/views/preferences_window.blp:5 src/views/preferences_window.blp:24
#: src/views/window.py:276 src/views/window.py:314 src/views/window.blp:299
#: src/views/window.py:278 src/views/window.py:316 src/views/window.blp:299
msgid "Preferences"
msgstr "偏好設定"
#: src/views/preferences_window.blp:15 src/views/window.py:273
#: src/views/preferences_window.blp:15 src/views/window.py:275
msgid "Providers"
msgstr "服務提供者"
@ -166,14 +188,10 @@ msgstr "使用者"
msgid "Discard"
msgstr "捨棄"
#: src/views/save_dialog.blp:9
#: src/views/save_dialog.blp:9 src/widgets/item.blp:110 src/widgets/item.py:241
msgid "Save"
msgstr "儲存"
#: src/views/save_dialog.blp:13
msgid "Export Thread?"
msgstr ""
#: src/views/save_dialog.blp:26
msgid "File Name"
msgstr "檔名"
@ -198,15 +216,15 @@ msgstr ""
msgid "Thread successfully saved!"
msgstr ""
#: src/views/window.py:177
#: src/views/window.py:179
msgid "New chat"
msgstr ""
#: src/views/window.py:212
#: src/views/window.py:214
msgid "Delete All Chats"
msgstr ""
#: src/views/window.py:213
#: src/views/window.py:215
#, fuzzy
#| msgid "Are you sure you want to delete this thread?"
msgid ""
@ -214,27 +232,27 @@ msgid ""
"undone!"
msgstr "您確定要刪除嗎?"
#: src/views/window.py:229 src/views/window.py:245
#: src/views/window.py:231 src/views/window.py:247
msgid "Nothing to clear!"
msgstr ""
#: src/views/window.py:255
#: src/views/window.py:257
msgid "Nothing to export!"
msgstr ""
#: src/views/window.py:281 src/views/window.py:319
#: src/views/window.py:283 src/views/window.py:321
msgid "Clear all"
msgstr ""
#: src/views/window.py:381
#: src/views/window.py:383
msgid "Generating response"
msgstr ""
#: src/views/window.py:395 src/views/window.py:400
#: src/views/window.py:397 src/views/window.py:410
msgid "Sorry, I don't know what to say."
msgstr ""
#: src/views/window.py:441
#: src/views/window.py:451
msgid "human"
msgstr "人類"
@ -261,10 +279,6 @@ msgstr ""
msgid "Message"
msgstr "訊息"
#: src/views/window.blp:108
msgid "Chat"
msgstr "聊天"
#: src/views/window.blp:156
#, fuzzy
#| msgid "Message"
@ -283,10 +297,6 @@ msgstr ""
msgid "Get started by creating a new chat"
msgstr ""
#: src/views/window.blp:243
msgid "Open Emoji Picker"
msgstr ""
#: src/views/window.blp:259
msgid "Ask"
msgstr "詢問"
@ -325,11 +335,29 @@ msgstr "複製"
msgid "Edit"
msgstr "編輯"
#: src/widgets/item.blp:112
#: src/widgets/item.blp:117
msgid "Remove"
msgstr "移除"
#: src/widgets/item.py:189
#: src/widgets/item.py:219
msgid "Failed to save the image"
msgstr ""
#: src/widgets/item.py:221
msgid "Image saved"
msgstr ""
#: src/widgets/item.py:231
msgid "No image to save"
msgstr ""
#: src/widgets/item.py:235
#, fuzzy
#| msgid "Message"
msgid "Save message"
msgstr "訊息"
#: src/widgets/item.py:251
#, fuzzy
#| msgid "Message"
msgid "Message copied"
@ -440,17 +468,17 @@ msgstr "您確定要刪除嗎?"
msgid "Thread Deleted"
msgstr ""
#: src/main.py:262
#: src/main.py:261
msgid ""
"Please download a model from Preferences by clicking on the Dot Menu at the "
"top!"
msgstr ""
#: src/main.py:266
#: src/main.py:265
msgid "Hello, I am Bavarder, a Chit-Chat AI"
msgstr ""
#: src/main.py:289
#: src/main.py:288
msgid "Please enable a provider from the Dot Menu"
msgstr ""

View file

@ -8,4 +8,5 @@ charset-normalizer
idna
urllib3
Babel
openai
openai
pillow

View file

@ -24,10 +24,9 @@ import time
gi.require_version('Gtk', '4.0')
gi.require_version('Adw', '1')
gi.require_version('Xdp', '1.0')
gi.require_version('XdpGtk4', '1.0')
gi.require_version('GtkSource', '5')
from gi.repository import Gtk, Gio, Adw, Xdp, XdpGtk4, GLib
from gi.repository import Gtk, Gio, Adw, Xdp, GLib
from .views.window import BavarderWindow
from .views.about_window import AboutWindow
from .views.preferences_window import PreferencesWindow

View file

@ -10,6 +10,12 @@ from .openassistantsft1pythia12b import HuggingFaceOpenAssistantSFT1PythiaProvid
from .robertasquad2 import RobertaSquad2Provider
from .local import LocalProvider
from .aihorde import AIHordeProvider
from .stablediffusion import StableDiffusionProvider
from .analogdiffusion import AnalogDiffusionProvider
from .nitrodiffusion import NitroDiffusionProvider
from .openjourney import OpenJourneyProvider
from .openaiimage import DallE2, DallE3
from .portraitplus import PortraitPlusProvider
PROVIDERS = {
AIHordeProvider,
@ -20,7 +26,14 @@ PROVIDERS = {
OpenAIGPT4Provider,
GoogleFlant5XXLProvider,
GPT2Provider,
LocalProvider
LocalProvider,
StableDiffusionProvider,
AnalogDiffusionProvider,
NitroDiffusionProvider,
OpenJourneyProvider,
DallE2,
DallE3,
PortraitPlusProvider,
# StableBeluga2Provider,
# HuggingFaceOpenAssistantSFT1PythiaProvider,
# RobertaSquad2Provider

View file

@ -13,7 +13,7 @@ class AIHordeProvider(BaseProvider):
STATUS_URL = "https://stablehorde.net/api/v2/generate/text/status/"
API_KEY = "0000000000"
model = "PygmalionAI/pygmalion-7b"
description = "AI Horde is a crowdsourced distributed cluster of Image generation workers and text generation workers."
def ask(self, prompt, chat, **kwargs):
self.API_KEY = self.data.get("api_key", "0000000000")

View file

@ -0,0 +1,6 @@
from .basehfimage import BaseHFImageProvider
class AnalogDiffusionProvider(BaseHFImageProvider):
name = "Analog Diffusion"
provider = "wavymulder/Analog-Diffusion"
description = "Analog Diffusion is a model that can generate images from a prompt."

View file

@ -2,11 +2,18 @@ import unicodedata
import re
from typing import List, Dict
from gi.repository import Gtk, Adw, GLib
from enum import Enum
class ProviderType(Enum):
IMAGE = _("Image")
CHAT = _("Chat")
VOICE = _("Voice")
TEXT = _("Text")
MOVIE = _("Movie")
class BaseProvider:
name: str
description: str = ""
provider_type: ProviderType = ProviderType.CHAT
languages: List[str] = []
developer_name: str = "0xMRTT"
developers = ["0xMRTT https://github.com/0xMRTT"]

View file

@ -0,0 +1,61 @@
from .baseimage import BaseImageProvider
import requests
import json
from gi.repository import Gtk, Adw, GLib
from PIL import Image, UnidentifiedImageError
import io
class BaseHFImageProvider(BaseImageProvider):
provider = None
def ask(self, prompt, chat, **kwargs):
chat = chat["content"]
API_URL = f"https://api-inference.huggingface.co/models/{self.provider}"
def query(payload):
if self.data.get('api_key'):
headers = {"Authorization": f"Bearer {self.data['api_key']}"}
response = requests.post(API_URL, json=payload, headers=headers)
else:
response = requests.post(API_URL, json=payload)
if response.status_code == 403:
return _("You've reached the rate limit! Please add a token to the preferences. You can get the token by following this [guide](https://bavarder.codeberg.page/help/huggingface/)")
elif response.status_code != 200:
return _("Sorry, I don't know what to say! (Error: {response.status_code})")
return response.content
prompt = self.make_prompt(prompt, chat)
output = query({
"inputs": prompt,
"negative_prompts": "",
})
if output:
try:
return Image.open(io.BytesIO(output))
except UnidentifiedImageError:
return output
def get_settings_rows(self):
self.rows = []
self.api_row = Adw.PasswordEntryRow()
self.api_row.connect("apply", self.on_apply)
self.api_row.props.text = self.data.get('api_key') or ""
self.api_row.props.title = _("API Key")
self.api_row.set_show_apply_button(True)
self.api_row.add_suffix(self.how_to_get_a_token())
self.rows.append(self.api_row)
return self.rows
def on_apply(self, widget):
api_key = self.api_row.get_text()
self.data["api_key"] = api_key
def make_prompt(self, prompt, chat):
return prompt

View file

@ -0,0 +1,10 @@
from .base import BaseProvider, ProviderType
import requests
from gi.repository import Gtk, Adw, GLib
class BaseImageProvider(BaseProvider):
provider_type = ProviderType.IMAGE

View file

@ -1,7 +1,7 @@
from .hfbasechat import BaseHFChatProvider
from .hfbasechat import BaseHFChatProvider, ProviderType
class BlenderBotProvider(BaseHFChatProvider):
name = "BlenderBot"
description = "An open domain chatbot"
provider = "facebook/blenderbot-400M-distill"
provider_type = ProviderType.TEXT

View file

@ -1,6 +1,7 @@
from .hfbasechat import BaseHFChatProvider
from .hfbasechat import BaseHFChatProvider, ProviderType
class DialoGPTProvider(BaseHFChatProvider):
name = "DialoGPT"
description = "A State-of-the-Art Large-scale Pretrained Response generation model"
provider = "microsoft/DialoGPT-large"
provider_type = ProviderType.CHAT

View file

@ -1,7 +1,7 @@
from .hfbasechat import BaseHFChatProvider
from .hfbasechat import BaseHFChatProvider, ProviderType
class GoogleFlant5XXLProvider(BaseHFChatProvider):
name = "Google Flan T5 XXL"
description = "A better Text-To-Text Transfer Transformer (T5) model"
provider = "google/flan-t5-xxl"
chat_mode = False
provider_type = ProviderType.TEXT

View file

@ -1,7 +1,7 @@
from .hfbasechat import BaseHFChatProvider
from .hfbasechat import BaseHFChatProvider, ProviderType
class GPT2Provider(BaseHFChatProvider):
name = "GPT 2"
description = "GPT-2 is a transformers model pretrained on a very large corpus of English data in a self-supervised fashion"
provider = "gpt2"
chat_mode = False
provider_type = ProviderType.TEXT

View file

@ -1,4 +1,4 @@
from .base import BaseProvider
from .base import BaseProvider, ProviderType
import requests
@ -23,7 +23,7 @@ class BaseHFChatProvider(BaseProvider):
return response.json()
if self.chat_mode:
if self.provider_type == ProviderType.CHAT:
output = query({
"inputs": {
"past_user_inputs": [i['content'] for i in chat if i['role'] == self.app.user_name],

View file

@ -1,5 +1,5 @@
from .openai import BaseOpenAIProvider
import openai
from gi.repository import Gtk, Adw
class LocalProvider(BaseOpenAIProvider):

View file

@ -2,8 +2,11 @@ providers_dir = join_paths(MODULE_DIR, 'providers')
providers_sources = [
'__init__.py',
'analogdiffusion.py',
'aihorde.py',
'base.py',
'basehfimage.py',
'baseimage.py',
'blenderbot.py',
'catgpt.py',
'dialogpt.py',
@ -11,14 +14,19 @@ providers_sources = [
'gpt2.py',
'hfbasechat.py',
'local.py',
'nitrodiffusion.py',
'openai.py',
'openaigpt35turbo.py',
'openaigpt4.py',
'openaiimage.py',
'openassistantsft1pythia12b.py',
'openjourney.py',
'petals.py',
'portraitplus.py',
'provider_item.py',
'stablebeluga2.py',
'robertasquad2.py',
'stablediffusion.py',
]
PY_INSTALLDIR.install_sources(providers_sources, subdir: providers_dir)

View file

@ -0,0 +1,6 @@
from .basehfimage import BaseHFImageProvider
class NitroDiffusionProvider(BaseHFImageProvider):
name = "Nitro Diffusion"
provider = "nitrosocke/Nitro-Diffusion"
description = "Nitro Diffusion is a model that can generate images from a prompt."

View file

@ -1,7 +1,8 @@
from .base import BaseProvider
import openai
from openai import OpenAI
import socket
import os
from gi.repository import Gtk, Adw, GLib
@ -9,15 +10,23 @@ from gi.repository import Gtk, Adw, GLib
class BaseOpenAIProvider(BaseProvider):
model = None
api_key_title = "API Key"
chat = openai.ChatCompletion
def __init__(self, app, window):
super().__init__(app, window)
try:
self.client = OpenAI(
api_key=os.environ.get("OPENAI_API_KEY"),
)
except openai.OpenAIError:
self.client = OpenAI(
api_key="",
)
if self.data.get("api_key"):
openai.api_key = self.data["api_key"]
self.client.api_key = self.data["api_key"]
if self.data.get("api_base"):
openai.api_base = self.data["api_base"]
self.client.base_url = self.data["api_base"]
def ask(self, prompt, chat):
_chat = []
@ -29,26 +38,20 @@ class BaseOpenAIProvider(BaseProvider):
_chat.append({"role": role, "content": c["content"]})
chat = _chat
if self.data.get("api_key"):
openai.api_key = self.data["api_key"]
if self.data.get("api_base"):
openai.api_base = self.data["api_base"]
if self.model:
prompt = self.chunk(prompt)
try:
print(chat)
response = self.chat.create(
response = self.client.chat.completions.create(
model=self.model,
messages=chat,
).choices[0].message.content
except openai.error.AuthenticationError:
except openai.AuthenticationError:
return _("Your API key is invalid, please check your preferences.")
except openai.error.InvalidRequestError:
except openai.BadRequestError:
return _("You don't have access to this model, please check your plan and billing details.")
except openai.error.RateLimitError:
except openai.RateLimitError:
return _("You exceeded your current quota, please check your plan and billing details.")
except openai.error.APIError:
except openai.APIConnectionError:
return _("I'm having trouble connecting to the API, please check your internet connection.")
except socket.gaierror:
return _("I'm having trouble connecting to the API, please check your internet connection.")
@ -64,7 +67,7 @@ class BaseOpenAIProvider(BaseProvider):
self.api_row = Adw.PasswordEntryRow()
self.api_row.connect("apply", self.on_apply)
self.api_row.props.text = openai.api_key or ""
self.api_row.props.text = self.client.api_key or ""
self.api_row.props.title = self.api_key_title
self.api_row.set_show_apply_button(True)
self.api_row.add_suffix(self.how_to_get_a_token())
@ -72,7 +75,7 @@ class BaseOpenAIProvider(BaseProvider):
self.api_url_row = Adw.EntryRow()
self.api_url_row.connect("apply", self.on_apply)
self.api_url_row.props.text = openai.api_base or ""
self.api_url_row.props.text=str(self.client.base_url) or ""
self.api_url_row.props.title = "API Url"
self.api_url_row.set_show_apply_button(True)
self.api_url_row.add_suffix(self.how_to_get_base_url())
@ -82,11 +85,11 @@ class BaseOpenAIProvider(BaseProvider):
def on_apply(self, widget):
api_key = self.api_row.get_text()
openai.api_key = api_key
openai.api_base = self.api_url_row.get_text()
self.client.api_key = api_key
self.client.base_url = self.api_url_row.get_text()
self.data["api_key"] = openai.api_key
self.data["api_base"] = openai.api_base
self.data["api_key"] = self.client.api_key
self.data["api_base"] = str(self.client.base_url)
def how_to_get_base_url(self):
@ -96,4 +99,4 @@ class BaseOpenAIProvider(BaseProvider):
about_button.add_css_class("flat")
about_button.set_valign(Gtk.Align.CENTER)
about_button.connect("clicked", self.open_documentation)
return about_button
return about_button

View file

@ -0,0 +1,118 @@
from .baseimage import BaseImageProvider
import openai
from openai import OpenAI
import socket
import os
import json
from gi.repository import Gtk, Adw, GLib
class BaseOpenAIImageProvider(BaseImageProvider):
model = None
api_key_title = "API Key"
def __init__(self, app, window):
super().__init__(app, window)
try:
self.client = OpenAI(
api_key=os.environ.get("OPENAI_API_KEY"),
)
except openai.OpenAIError:
self.client = OpenAI(
api_key="",
)
if self.data.get("api_key"):
self.client.api_key = self.data["api_key"]
if self.data.get("api_base"):
self.client.base_url = self.data["api_base"]
def ask(self, prompt, chat):
if self.model:
prompt = self.chunk(prompt)
try:
response = self.client.images.generate(
model=self.model,
prompt=prompt,
size="1024x1024",
quality="standard",
n=1,
)
image_url = response.data[0].url
image_bytes = requests.get(image_url).content
except openai.AuthenticationError:
return _("Your API key is invalid, please check your preferences.")
except openai.BadRequestError:
return _("You don't have access to this model, please check your plan and billing details.")
except openai.RateLimitError:
return _("You exceeded your current quota, please check your plan and billing details.")
except openai.APIConnectionError:
return _("I'm having trouble connecting to the API, please check your internet connection.")
except socket.gaierror:
return _("I'm having trouble connecting to the API, please check your internet connection.")
else:
if image_bytes:
try:
return Image.open(io.BytesIO(image_bytes))
except UnidentifiedImageError:
error = json.loads(image_bytes)["error"]
return error
else:
return None
else:
return _("No model selected, you can choose one in preferences")
def get_settings_rows(self):
self.rows = []
self.api_row = Adw.PasswordEntryRow()
self.api_row.connect("apply", self.on_apply)
self.api_row.props.text = self.client.api_key or ""
self.api_row.props.title = self.api_key_title
self.api_row.set_show_apply_button(True)
self.api_row.add_suffix(self.how_to_get_a_token())
self.rows.append(self.api_row)
self.api_url_row = Adw.EntryRow()
self.api_url_row.connect("apply", self.on_apply)
self.api_url_row.props.text=str(self.client.base_url) or ""
self.api_url_row.props.title = "API Url"
self.api_url_row.set_show_apply_button(True)
self.api_url_row.add_suffix(self.how_to_get_base_url())
self.rows.append(self.api_url_row)
return self.rows
def on_apply(self, widget):
api_key = self.api_row.get_text()
self.client.api_key = api_key
self.client.base_url = self.api_url_row.get_text()
self.data["api_key"] = self.client.api_key
self.data["api_base"] = str(self.client.base_url)
def how_to_get_base_url(self):
about_button = Gtk.Button()
about_button.set_icon_name("dialog-information-symbolic")
about_button.set_tooltip_text("How to choose base url")
about_button.add_css_class("flat")
about_button.set_valign(Gtk.Align.CENTER)
about_button.connect("clicked", self.open_documentation)
return about_button
class DallE2(BaseOpenAIImageProvider):
name = "DALL·E 2"
model = "dall-e-2"
description = "DALL·E is a AI system that can create realistic images and art from a description in natural language. "
class DallE3(BaseOpenAIImageProvider):
name = "DALL·E 3"
model = "dall-e-3"
description = "DALL·E is a AI system that can create realistic images and art from a description in natural language. "

View file

@ -3,6 +3,7 @@ from .hfbasechat import BaseHFChatProvider
class HuggingFaceOpenAssistantSFT1PythiaProvider(BaseHFChatProvider):
name = "Open-Assistant SFT-1 12B"
provider = "OpenAssistant/oasst-sft-4-pythia-12b-epoch-3.5"
description = "OpenAssistant's SFT-1 Pythia 12B model"
def make_prompt(self, prompt, chat):
p = ""

View file

@ -0,0 +1,6 @@
from .basehfimage import BaseHFImageProvider
class OpenJourneyProvider(BaseHFImageProvider):
name = "Open Journey"
provider = "prompthero/openjourney-v4"
description = "Open Journey is a model that can generate images from a prompt."

View file

@ -0,0 +1,6 @@
from .basehfimage import BaseHFImageProvider
class PortraitPlusProvider(BaseHFImageProvider):
name = "Portrait Plus"
model = "wavymulder/portraitplus"
description = "Portrait Plus is a model that can generate images from a prompt."

View file

@ -8,6 +8,12 @@ template $Provider : Adw.ExpanderRow {
valign: center;
}
[suffix]
Label provider_type {
valign: center;
styles [ "tag" ]
}
Adw.ActionRow no_preferences_available {
title: _("No preferences available");
}

View file

@ -4,7 +4,7 @@ from typing import List, Dict
from gi.repository import Gtk, Adw, GLib
from bavarder.constants import app_id, rootdir
from .base import ProviderType
@Gtk.Template(resource_path=f"{rootdir}/ui/provider_item.ui")
class Provider(Adw.ExpanderRow):
@ -12,6 +12,7 @@ class Provider(Adw.ExpanderRow):
enable_switch = Gtk.Template.Child()
no_preferences_available = Gtk.Template.Child()
provider_type = Gtk.Template.Child()
def __init__(self, app, window, provider, **kwargs):
super().__init__(**kwargs)
@ -24,6 +25,19 @@ class Provider(Adw.ExpanderRow):
def setup(self):
self.set_title(self.provider.name)
self.set_subtitle(self.provider.description)
self.provider_type.set_label(self.provider.provider_type.value)
match self.provider.provider_type:
case ProviderType.IMAGE:
self.provider_type.add_css_class("badge-titanium")
case ProviderType.CHAT:
self.provider_type.add_css_class("badge-gold")
case ProviderType.VOICE:
self.provider_type.add_css_class("badge-iron")
case ProviderType.TEXT:
self.provider_type.add_css_class("badge-tin")
case ProviderType.MOVIE:
self.provider_type.add_css_class("badge-silver")
self.enable_switch.set_active( self.app.data["providers"][self.provider.slug]["enabled"])
if self.provider.get_settings_rows():

View file

@ -3,6 +3,7 @@ from .hfbasechat import BaseHFChatProvider
class RobertaSquad2Provider(BaseHFChatProvider):
name = "Roberta Squad2"
provider = "deepset/roberta-base-squad2"
description = "A model for Question Answering on SQuAD2"
def make_prompt(self, prompt, chat):
context = ""

View file

@ -0,0 +1,6 @@
from .basehfimage import BaseHFImageProvider
class StableDiffusionProvider(BaseHFImageProvider):
name = "Stable Diffusion"
provider = "stabilityai/stable-diffusion-2-1"
description = "Stable Diffusion is a model that can generate images from a prompt."

View file

@ -33,3 +33,52 @@
.sourceview {
font-family: monospace;
}
.tag {
border-radius: 20px;
background-color: alpha(currentColor, 0.07);
padding: 5px 13px;
margin: 0 2px;
}
badge-gray {
background-color: #deddda;
color: #3d3846;
}
.badge-silver {
background-color: #deddda;
color: #3d3846;
}
.badge-gold {
background-color: #f6d32d;
color: #3d3846;
}
.badge-copper {
background-color: #a47e3c;
}
.badge-bronze {
background-color: #a47e3c;
}
.badge-iron {
background-color: #3d3846;
color: #deddda;
}
.badge-steel {
background-color: #3d3846;
color: #deddda;
}
.badge-tin {
background-color: #deddda;
color: #3d3846;
}
.badge-aluminum {
background-color: #deddda;
color: #3d3846;
}
.badge-cobalt {
background-color: #3584e4;
}
.badge-titanium {
background-color: #3d3846;
color: #deddda;
}

View file

@ -237,13 +237,13 @@ template $BavarderWindow : Adw.ApplicationWindow {
Gtk.Box {
orientation: horizontal;
Button emoji_button {
valign: end;
icon-name: "emoji-people-symbolic";
tooltip-text: _("Open Emoji Picker");
halign: start;
clicked => $on_emoji();
}
// Button emoji_button {
// valign: end;
// icon-name: "emoji-people-symbolic";
// tooltip-text: _("Open Emoji Picker");
// halign: start;
// clicked => $on_emoji();
// }
ScrolledWindow scrolled_window {
vexpand: true;

View file

@ -19,6 +19,8 @@
from datetime import datetime
import locale
import io
import base64
from gi.repository import Gtk, Gio, Adw, GLib
from babel.dates import format_date, format_datetime, format_time
@ -392,9 +394,17 @@ class BavarderWindow(Adw.ApplicationWindow):
self.toast.dismiss()
if not response:
response = _("Sorry, I don't know what to say.")
self.add_assistant_item(_("Sorry, I don't know what to say."))
else:
if isinstance(response, str):
self.add_assistant_item(response)
else:
buffered = io.BytesIO()
response.save(buffered, format="JPEG")
img_str = base64.b64encode(buffered.getvalue())
self.add_assistant_item(img_str.decode("utf-8"))
self.add_assistant_item(response)
except AttributeError:
self.toast.dismiss()
self.add_assistant_item(_("Sorry, I don't know what to say."))
@ -402,9 +412,9 @@ class BavarderWindow(Adw.ApplicationWindow):
self.t = KillableThread(target=thread_run)
self.t.start()
@Gtk.Template.Callback()
def on_emoji(self, *args):
self.message_entry.do_insert_emoji(self.message_entry)
# @Gtk.Template.Callback()
# def on_emoji(self, *args):
# self.message_entry.do_insert_emoji(self.message_entry)
def cancel(self, *args):
try:

View file

@ -105,6 +105,11 @@ menu popover-model {
label: _("Edit");
action: "event.edit";
}
item {
label: _("Save");
action: "event.save";
}
}
section {

View file

@ -1,6 +1,10 @@
from gi.repository import Gtk, Adw, Gio, GLib, Pango, GtkSource, Gdk
import re
import io
import base64
from PIL import Image, UnidentifiedImageError
from bavarder.constants import app_id, rootdir
from bavarder.widgets.code_block import CodeBlock
@ -72,63 +76,85 @@ class Item(Gtk.Box):
self.content_text = self.item["content"]
self.convert_content_to_pango()
result = ""
is_code = False
for line in self.content_markup:
if isinstance(line, str):
if "<tt></tt>`" in line.strip():
if is_code:
is_code = False
else:
is_code = True
continue
if is_code or not isinstance(line, str):
label = Gtk.Label()
label.set_use_markup(True)
label.set_wrap(True)
label.set_xalign(0)
label.set_wrap_mode(Pango.WrapMode.WORD)
label.set_markup(result)
label.set_justify(Gtk.Justification.LEFT)
label.set_valign(Gtk.Align.START)
label.set_hexpand(True)
label.set_halign(Gtk.Align.START)
self.content.append(label)
if not isinstance(line, str):
result = "\n".join(line)
else:
result = line.strip()
self.content.append(CodeBlock(result))
result = ""
else:
result += f"{line}\n"
else:
if not result.strip() == "<tt></tt>`":
label = Gtk.Label()
label.set_use_markup(True)
label.set_wrap(True)
label.set_xalign(0)
label.set_wrap_mode(Pango.WrapMode.WORD)
label.set_markup(result)
label.set_justify(Gtk.Justification.LEFT)
label.set_valign(Gtk.Align.START)
label.set_hexpand(True)
label.set_halign(Gtk.Align.START)
self.content.append(label)
t = self.item["role"].lower()
self.parent = parent
self.settings = parent.settings
self.app = self.parent.get_application()
self.win = self.app.get_active_window()
try:
if not isinstance(self.content_text, Image.Image):
if isinstance(self.content_text, bytes):
self.image = Image.open(io.BytesIO(self.content_text))
else:
self.image = Image.open(io.BytesIO(base64.b64decode(self.content_text)))
else:
self.image = self.content_text
except Exception:
self.convert_content_to_pango()
result = ""
is_code = False
for line in self.content_markup:
if isinstance(line, str):
if "<tt></tt>`" in line.strip():
if is_code:
is_code = False
else:
is_code = True
continue
if is_code or not isinstance(line, str):
label = Gtk.Label()
label.set_use_markup(True)
label.set_wrap(True)
label.set_xalign(0)
label.set_wrap_mode(Pango.WrapMode.WORD)
label.set_markup(result)
label.set_justify(Gtk.Justification.LEFT)
label.set_valign(Gtk.Align.START)
label.set_hexpand(True)
label.set_halign(Gtk.Align.START)
self.content.append(label)
if not isinstance(line, str):
result = "\n".join(line)
else:
result = line.strip()
self.content.append(CodeBlock(result))
result = ""
else:
result += f"{line}\n"
else:
if not result.strip() == "<tt></tt>`":
label = Gtk.Label()
label.set_use_markup(True)
label.set_wrap(True)
label.set_xalign(0)
label.set_wrap_mode(Pango.WrapMode.WORD)
label.set_markup(result)
label.set_justify(Gtk.Justification.LEFT)
label.set_valign(Gtk.Align.START)
label.set_hexpand(True)
label.set_halign(Gtk.Align.START)
self.content.append(label)
else:
picture = Gtk.Picture()
picture.set_halign(Gtk.Align.CENTER)
picture.set_can_shrink(True)
picture.set_content_fit(Gtk.ContentFit.FILL)
picture.set_visible(True)
picture.add_css_class("card")
picture.set_margin_start(12)
picture.set_margin_end(12)
picture.set_size_request(270, 270)
self.image.save("/tmp/image.png")
picture.set_file(Gio.File.new_for_path("/tmp/image.png"))
self.content.append(picture)
t = self.item["role"].lower()
if t == self.app.user_name.lower() or t == "user": # User
self.message_bubble.add_css_class("message-bubble-user")
self.avatar.add_css_class("avatar-user")
@ -164,6 +190,7 @@ class Item(Gtk.Box):
self.action_group = Gio.SimpleActionGroup()
self.create_action("delete", self.on_delete)
self.create_action("edit", self.on_edit)
self.create_action("save", self.on_save)
self.create_action("copy", self.on_copy)
self.insert_action_group("event", self.action_group);
@ -182,6 +209,41 @@ class Item(Gtk.Box):
def on_edit(self, *args):
self.win.message_entry.get_buffer().set_text(self.content_text)
def on_save(self, *args):
def on_save_response(dialog, response):
if response == Gtk.ResponseType.OK:
toast = Adw.Toast()
try:
self.image.save(dialog.get_file().get_path())
except Exception as e:
toast.set_title(_("Failed to save the image"))
else:
toast.set_title(_("Image saved"))
finally:
self.parent.toast_overlay.add_toast(toast)
dialog.destroy()
try:
self.image
except AttributeError:
toast = Adw.Toast()
toast.set_title(_("No image to save"))
self.parent.toast_overlay.add_toast(toast)
else:
dialog = Gtk.FileChooserDialog(
title=_("Save message"),
action=Gtk.FileChooserAction.SAVE,
modal=True,
transient_for=self.win,
)
dialog.add_button(_("Cancel"), Gtk.ResponseType.CANCEL)
dialog.add_button(_("Save"), Gtk.ResponseType.OK)
dialog.connect('response', on_save_response)
dialog.present()
def on_copy(self, *args):
Gdk.Display.get_default().get_clipboard().set(self.content_text)