77 Commits
0.1.5 ... 0.1.7

Author SHA1 Message Date
62b57a6ad9 fix: remove a provider enabled if doesn't exist
only if bard was enabled
2023-05-07 16:27:12 +02:00
72715e0bde provider: fix gpt2 name 2023-05-07 16:15:28 +02:00
af9bfc1d87 fix: accelerator 2023-05-07 16:14:29 +02:00
cd5d73d64f provider(gpt2): add gpt2 xl and large 2023-05-07 16:08:29 +02:00
4867f9c02d provider: remove gpt4 from default 2023-05-07 16:07:38 +02:00
916ff133da bump: version 2023-05-07 16:03:34 +02:00
61d69aaf06 data(appdata): add release details 2023-05-07 16:02:51 +02:00
25cefc9671 main: fix preferences shortcut 2023-05-07 16:02:40 +02:00
722ee665ec provider(bard): disable bard 2023-05-07 16:02:29 +02:00
8a328e1bd6 a11y: add keyboard shortcuts 2023-05-07 15:58:04 +02:00
499723d11e meson: add hfbase 2023-05-07 15:50:22 +02:00
3664324a69 provider(hf): fix authorization header issue 2023-05-07 15:50:12 +02:00
b559289c3d provider(hgchat): refactor for adding new models 2023-05-07 15:49:56 +02:00
4d4bcf5957 provider(alpacalora): add handling of error 2023-05-07 15:49:37 +02:00
3c6e11cf61 main: doesn't reload if already loaded 2023-05-07 15:49:24 +02:00
5bbfdffb10 provider: disable about 2023-05-07 15:30:46 +02:00
9c1ae1f105 provider: add on enabled switch and global about 2023-05-07 15:28:01 +02:00
73a391fd9e provider: remove about 2023-05-07 15:27:45 +02:00
edf12c954d preferences: add pref for all providers even disabled one 2023-05-07 15:27:19 +02:00
a335768d76 src: add load dropdown 2023-05-07 15:27:03 +02:00
ad287c34c2 provider: fix slug 2023-05-07 15:16:26 +02:00
75f4578bce Translated using Weblate (Polish)
Currently translated at 100.0% (26 of 26 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/pl/
2023-05-07 09:49:24 +00:00
dc477edebb Translated using Weblate (Turkish)
Currently translated at 100.0% (26 of 26 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/tr/
2023-05-07 09:49:24 +00:00
73b6c2edd5 Translated using Weblate (Finnish)
Currently translated at 100.0% (26 of 26 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fi/
2023-05-07 09:49:24 +00:00
e3acaec9d2 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (26 of 26 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/az/
2023-05-07 09:49:24 +00:00
e1cab5b574 Translated using Weblate (Portuguese)
Currently translated at 100.0% (26 of 26 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/pt/
2023-05-07 09:49:24 +00:00
f324a71b13 Translated using Weblate (Czech)
Currently translated at 100.0% (26 of 26 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/cs/
2023-05-07 09:49:24 +00:00
bff077f0c6 Translated using Weblate (Swedish)
Currently translated at 100.0% (26 of 26 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/sv/
2023-05-07 09:49:24 +00:00
elgandoz
a7fad0d4c7 Translated using Weblate (Italian)
Currently translated at 100.0% (26 of 26 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/it/
2023-05-07 09:49:24 +00:00
bf530e13c4 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (26 of 26 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/uk/
2023-05-07 09:49:24 +00:00
86ab05b19b Translated using Weblate (Russian)
Currently translated at 100.0% (26 of 26 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/ru/
2023-05-07 09:49:23 +00:00
d8fffffb77 Translated using Weblate (Spanish)
Currently translated at 100.0% (26 of 26 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/es/
2023-05-07 09:49:23 +00:00
a06c422ab2 Translated using Weblate (German)
Currently translated at 100.0% (26 of 26 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/de/
2023-05-07 09:49:23 +00:00
Kourosh
3ebc510c20 Translated using Weblate (Persian)
Currently translated at 100.0% (26 of 26 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fa/
2023-05-07 09:45:15 +00:00
elgandoz
aebdcb2e86 Translated using Weblate (Italian)
Currently translated at 96.1% (25 of 26 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/it/
2023-05-07 09:45:15 +00:00
Anonymous
57f351eaca Translated using Weblate (Persian)
Currently translated at 61.5% (16 of 26 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fa/
2023-05-07 09:01:37 +00:00
kouroshtaf
63ffe24403 Translated using Weblate (Persian)
Currently translated at 61.5% (16 of 26 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fa/
2023-05-07 09:01:37 +00:00
Vistaus
1c08f7d639 Translated using Weblate (Dutch)
Currently translated at 100.0% (26 of 26 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/nl/
2023-05-07 08:51:53 +00:00
kouroshtaf
ec27bd38ae Added translation using Weblate (Persian) 2023-05-07 08:51:53 +00:00
f478aa80d5 flatpak: update hgchat 2023-05-07 10:35:05 +02:00
dd781d2f01 provider(huggingface): add better handling of exeptions 2023-05-07 10:35:05 +02:00
764cba5e27 format: black 2023-05-07 10:35:04 +02:00
17557b478f Translated using Weblate (French)
Currently translated at 100.0% (26 of 26 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fr/
2023-05-07 07:43:03 +00:00
Codeberg Translate
a3df738a9c 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/
2023-05-07 07:42:15 +00:00
Orest58008
a60264ea98 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (30 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/uk/
2023-05-07 07:42:14 +00:00
0xMRTT
018f9a5493 doc: fix github name 2023-05-06 15:20:08 +00:00
David Lapshin
9b47afcbe6 misc: C O N S I S T E N C Y 2023-05-06 15:15:49 +00:00
6f27cae7a8 po: update pot 2023-05-06 17:03:41 +02:00
0xMRTT
38b5f67973 Update 'SEEN.md' 2023-05-06 14:56:58 +00:00
0xMRTT
304f816cab doc: add ref to seen 2023-05-06 14:52:44 +00:00
0xMRTT
2a74cdee81 doc: add more seen
Signed-off-by: 0xMRTT <0xmrtt@noreply.codeberg.org>
2023-05-06 14:51:43 +00:00
0xMRTT
46c1891e24 doc: add more seen 2023-05-06 14:39:53 +00:00
0xMRTT
d62b0bbcdf doc: add mirror 2023-05-06 13:49:01 +00:00
ioghjog
0979652e87 Translated using Weblate (Polish)
Currently translated at 100.0% (30 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/pl/
2023-05-06 10:29:20 +00:00
ioghjog
6524de02a5 Translated using Weblate (Polish)
Currently translated at 36.6% (11 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/pl/
2023-05-06 10:02:20 +00:00
ioghjog
9656830647 Translated using Weblate (Polish)
Currently translated at 33.3% (10 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/pl/
2023-05-06 10:02:18 +00:00
Anonymous
34bd7149e1 Translated using Weblate (Polish)
Currently translated at 30.0% (9 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/pl/
2023-05-06 10:02:02 +00:00
ioghjog
18f053d47f Translated using Weblate (Polish)
Currently translated at 30.0% (9 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/pl/
2023-05-06 10:02:01 +00:00
Anonymous
6423730b1b Translated using Weblate (Italian)
Currently translated at 90.0% (27 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/it/
2023-05-06 10:02:01 +00:00
ioghjog
0e468f9f17 Added translation using Weblate (Polish) 2023-05-06 10:00:53 +00:00
bd177b73fb data: fix release date 2023-05-06 11:27:50 +02:00
d42c0265b5 data: update release in appdata 2023-05-06 11:22:02 +02:00
455370416f data: update appdata for 0.1.6 2023-05-06 11:19:44 +02:00
0ef94b2036 meson: bump 0.1.6 2023-05-06 11:19:34 +02:00
62bba52dd2 src: update thread 2023-05-06 11:19:14 +02:00
6cf10e6f2e fix: app crash randomly when updating the response (#19) 2023-05-06 11:10:53 +02:00
phaerrax
22ca867a65 Translated using Weblate (Italian)
Currently translated at 86.6% (26 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/it/
2023-05-06 00:15:55 +00:00
aa5c6bbfd9 provider(oa): add warning for chunking (#13) 2023-05-06 00:42:49 +02:00
28de905b19 provider(openai): add chunk (#13) and rate limit 2023-05-06 00:41:46 +02:00
b2fd2566ab provider(base): add chunk (#13) 2023-05-06 00:41:22 +02:00
e306d8dd2d provider(bard): add load 2023-05-06 00:27:20 +02:00
f71124df62 provider(oa): add load 2023-05-06 00:27:09 +02:00
f31e9ff99c provider(hf): update authroization 2023-05-06 00:26:47 +02:00
2d33daf998 provider(base): add default save and load 2023-05-06 00:26:23 +02:00
243910c5c0 src: add save/load data 2023-05-06 00:25:57 +02:00
0xMRTT
acf8560f11 fix: save settings when closing (#16)
Reviewed-on: https://codeberg.org/Bavarder/Bavarder/pulls/16
2023-05-05 20:23:33 +00:00
Bytez
fc023a3b4c Saving settings on window closing. 2023-05-05 22:16:17 +02:00
46 changed files with 1175 additions and 783 deletions

View File

@@ -11,7 +11,7 @@
<p align="center">
<a href="https://flathub.org/apps/details/io.github.Bavarder.Bavarder">
<img width="200" alt="Download on Flathub" src="https://dl.flathub.org/assets/badges/flathub-badge-en.svg"/>
<img width="200" alt="Download on Flathub" src="https://dl.flathub.org/assets/badges/flathub-badge-i-en.svg"/>
</a>
<br>
</p>
@@ -71,6 +71,8 @@ flatpak-builder --install --user --force-clean repo/ build-aux/flatpak/io.github
The [GNOME Code of Conduct](https://wiki.gnome.org/Foundation/CodeOfConduct) is applicable to this project
See [`SEEN.md`](./SEEN.md) for a list of articles and posts about Bavarder
### Translate
<a href="https://translate.codeberg.org/engage/bavarder/">
@@ -79,6 +81,11 @@ The [GNOME Code of Conduct](https://wiki.gnome.org/Foundation/CodeOfConduct) is
You can translate Bavarder using Codeberg Translate
### Mirrors
- [GitHub](https://github.com/Bavarder/Bavarder)
- [Codeberg](https://codeberg.org/Bavarder/Bavarder)
## See also
### Imaginer : Imagine with AI

10
SEEN.md
View File

@@ -6,10 +6,16 @@
- https://gnulinux.ch/bavarder-chatgpt-ohne-account
- https://infoidevice.fr/bavarder-application-chatgpt-linux/
- https://sempreupdate.com.br/como-instalar-o-chat-bavarder-no-linux/
- https://www.linuxjournal.com/content/introducing-bavarder-user-friendly-linux-desktop-app-quick-chatgpt-interaction
- https://fostips.com/bavarder-open-source-ai-chat-linux/
- https://voyagerlive.org/voyager-chatgpt/
- https://plus.diolinux.com.br/t/bavarder-um-aplicativo-de-chatgpt-para-linux/53155
- https://mindaizer.com/chatgpt-et-linux-presentation-de-bavarder/
## Youtube
- https://youtu.be/dtAi2ejMwrk
- https://youtu.be/bXcSEGb8IPE
## Fediverse
@@ -27,4 +33,6 @@
## Misc
- https://alternativeto.net/software/bavarder/
- https://linuxphoneapps.org/apps/io.github.bavarder.bavarder/
- https://linuxphoneapps.org/apps/io.github.bavarder.bavarder/
- https://www.linuxquestions.org/questions/showthread.php?s=7c645a66bd3800801946c6f238e2ee25&p=6429159#post6429159
- http://lxer.com/module/newswire/view/329486/index.html

View File

@@ -81,8 +81,8 @@
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/a2/d2/8847383637ae526c6b072356bc1c7d9e7e34040b3acf27c0ec529885ac3d/hgchat-0.1.2-py3-none-any.whl",
"sha256": "fb0699dff7ab9ed208e6801c5e558f7c62422c630f5976062bf75e0580c20f83"
"url": "https://files.pythonhosted.org/packages/31/7b/e26fdbce33e2bb68ba952cb21c260792a900766b8f767f040bdfbee48d03/hgchat-0.1.3-py3-none-any.whl",
"sha256": "25725da85864cb57abd16d9ce15c270f785b7c1073ad30470609878226b93b0b"
},
{
"type": "file",

View File

@@ -59,6 +59,21 @@
</keywords>
<releases>
<release version="0.1.7" date="2023-5-7" type="stable">
<description>
<p>Fix an issue which caused the app to crash randomly</p>
<p>Add the ability to enable/disable providers from the preferences</p>
<p>Add more keyboard shortcuts</p>
<p>Update translations</p>
<p>Add better error handling</p>
</description>
</release>
<release version="0.1.6" date="2023-5-6" type="stable">
<description>
<p>Fix an issue which caused the app to crash randomly</p>
<p>Add save/load of settings</p>
</description>
</release>
<release version="0.1.5" date="2023-5-4" type="stable">
<description>
<p>Fix HuggingChat (again)</p>

View File

@@ -17,7 +17,7 @@
<default>false</default>
</key>
<key name="enabled-providers" type="as">
<default>["baichat", "catgpt", "huggingchat", "openaigpt35turbo", "openaigpt4"]</default>
<default>["baichat", "catgpt", "huggingchat", "openaigpt35turbo"]</default>
</key>
<key name="latest-provider" type="s">
<default>'huggingchat'</default>

View File

@@ -27,6 +27,30 @@
<property name="action-name">app.quit</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes" context="shortcut window">About</property>
<property name="action-name">app.about</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes" context="shortcut window">Preferences</property>
<property name="action-name">app.preferences</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes" context="shortcut window">Copy response</property>
<property name="action-name">app.copy_bot</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes" context="shortcut window">Clear</property>
<property name="action-name">app.clear</property>
</object>
</child>
</object>
</child>
</object>

View File

@@ -1,5 +1,5 @@
project('bavarder',
version: '0.1.5',
version: '0.1.7',
meson_version: '>= 0.62.0',
default_options: [ 'warning_level=2', 'werror=false', ],
)

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"POT-Creation-Date: 2023-05-06 17:03+0200\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"
@@ -18,20 +18,20 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6 data/ui/window.blp:6
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:4 data/ui/window.blp:6
msgid "Bavarder"
msgstr ""
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:5
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:13
msgid "Chit-chat with an AI"
msgstr ""
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6
msgid "0xMRTT"
msgstr ""
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:15
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:18
msgid "Screenshot of Main UI"
msgstr ""
@@ -79,7 +79,7 @@ msgstr ""
msgid "Main Menu"
msgstr ""
#: data/ui/window.blp:36 src/provider/base.py:43
#: data/ui/window.blp:36 src/provider/base.py:40
msgid "No network connection"
msgstr ""
@@ -91,14 +91,6 @@ msgstr ""
msgid "Copy to Clipboard"
msgstr ""
#: data/ui/window.blp:89
msgid "Listen"
msgstr ""
#: data/ui/window.blp:96
msgid "Listening"
msgstr ""
#: data/ui/window.blp:108
msgid "Ask"
msgstr ""
@@ -111,34 +103,26 @@ msgstr ""
msgid "Response"
msgstr ""
#: data/ui/window.blp:179
msgid "Speak"
msgstr ""
#: data/ui/window.blp:186
msgid "Speaking"
msgstr ""
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr ""
#: data/ui/window.blp:225
msgid "Quit"
msgstr ""
#: data/ui/window.blp:230
msgid "About Bavarder"
msgstr ""
#: src/main.py:156
msgid "Special thanks to"
msgstr ""
#: src/provider/base.py:36
#: src/provider/base.py:33
msgid "No API key provided, you can provide one in settings"
msgstr ""
#: src/provider/base.py:38
#: src/provider/base.py:35
msgid "Open settings"
msgstr ""
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
#: src/provider/catgpt.py:8 src/provider/catgpt.py:56
msgid "Cat GPT"
msgstr ""

View File

@@ -1,14 +1,16 @@
uk
ru
fr
tr
fi
pl
hu
az
es
sv
it
nl
pt
de
cs
pt
hu
az
fi
tr
nl
fa

View File

@@ -4,13 +4,14 @@
# Bavarder, 2023.
#
# thepoladov13 <thepoladov@protonmail.com>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-05-03 18:51+0000\n"
"Last-Translator: thepoladov13 <thepoladov@protonmail.com>\n"
"POT-Creation-Date: 2023-05-06 17:03+0200\n"
"PO-Revision-Date: 2023-05-07 09:49+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@proton.me>\n"
"Language-Team: Azerbaijani <https://translate.codeberg.org/projects/bavarder/"
"bavarder/az/>\n"
"Language: az\n"
@@ -21,20 +22,20 @@ msgstr ""
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6 data/ui/window.blp:6
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:4 data/ui/window.blp:6
msgid "Bavarder"
msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:5
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:13
msgid "Chit-chat with an AI"
msgstr "Chit AI ilə söhbət edin"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6
msgid "0xMRTT"
msgstr "0xMRTT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:15
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:18
msgid "Screenshot of Main UI"
msgstr "Əsas UI ekran görüntüsü"
@@ -82,7 +83,7 @@ msgstr "Provayderlər"
msgid "Main Menu"
msgstr "Əsas menyu"
#: data/ui/window.blp:36 src/provider/base.py:43
#: data/ui/window.blp:36 src/provider/base.py:40
msgid "No network connection"
msgstr "Şəbəkə bağlantısı yoxdur"
@@ -94,14 +95,6 @@ msgstr "Mesaj"
msgid "Copy to Clipboard"
msgstr "Buferə kopyalayın"
#: data/ui/window.blp:89
msgid "Listen"
msgstr "Dinləmək"
#: data/ui/window.blp:96
msgid "Listening"
msgstr "Dinləyirəm"
#: data/ui/window.blp:108
msgid "Ask"
msgstr "Soruş"
@@ -114,34 +107,41 @@ msgstr "Gözləyin"
msgid "Response"
msgstr "Cavab"
#: data/ui/window.blp:179
msgid "Speak"
msgstr "Danış"
#: data/ui/window.blp:186
msgid "Speaking"
msgstr "Danışıram"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr "Klaviatura Qısayolları"
#: data/ui/window.blp:225
msgid "Quit"
msgstr "Çıx"
#: data/ui/window.blp:230
msgid "About Bavarder"
msgstr "Bavarder haqqında"
#: src/main.py:156
msgid "Special thanks to"
msgstr "Xüsusi təşəkkürlər"
#: src/provider/base.py:36
#: src/provider/base.py:33
msgid "No API key provided, you can provide one in settings"
msgstr "API açarı təqdim edilməyib, siz onu ayarlarda təmin edə bilərsiniz"
#: src/provider/base.py:38
#: src/provider/base.py:35
msgid "Open settings"
msgstr "Parametrləri açın"
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
#: src/provider/catgpt.py:8 src/provider/catgpt.py:56
msgid "Cat GPT"
msgstr "Cat GPT"
#~ msgid "Listen"
#~ msgstr "Dinləmək"
#~ msgid "Listening"
#~ msgstr "Dinləyirəm"
#~ msgid "Speak"
#~ msgstr "Danış"
#~ msgid "Speaking"
#~ msgstr "Danışıram"
#~ msgid "Special thanks to"
#~ msgstr "Xüsusi təşəkkürlər"

View File

@@ -4,13 +4,14 @@
# Bavarder, 2023.
#
# muznyo <codeberg.vqtek@simplelogin.com>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-05-03 12:23+0000\n"
"Last-Translator: muznyo <codeberg.vqtek@simplelogin.com>\n"
"POT-Creation-Date: 2023-05-06 17:03+0200\n"
"PO-Revision-Date: 2023-05-07 09:49+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@proton.me>\n"
"Language-Team: Czech <https://translate.codeberg.org/projects/bavarder/"
"bavarder/cs/>\n"
"Language: cs\n"
@@ -21,20 +22,20 @@ msgstr ""
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6 data/ui/window.blp:6
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:4 data/ui/window.blp:6
msgid "Bavarder"
msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:5
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:13
msgid "Chit-chat with an AI"
msgstr "Chatovat s umělou inteligencí"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6
msgid "0xMRTT"
msgstr "0xMRTT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:15
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:18
msgid "Screenshot of Main UI"
msgstr "Snímek obrazovky hlavního uživatelského rozhraní"
@@ -82,7 +83,7 @@ msgstr "Poskytovatelé"
msgid "Main Menu"
msgstr "Hlavní menu"
#: data/ui/window.blp:36 src/provider/base.py:43
#: data/ui/window.blp:36 src/provider/base.py:40
msgid "No network connection"
msgstr "Žádné připojení k síti"
@@ -94,14 +95,6 @@ msgstr "Zpráva"
msgid "Copy to Clipboard"
msgstr "Kopírovat do schránky"
#: data/ui/window.blp:89
msgid "Listen"
msgstr "Poslech"
#: data/ui/window.blp:96
msgid "Listening"
msgstr "Poslouchání"
#: data/ui/window.blp:108
msgid "Ask"
msgstr "Zeptat se"
@@ -114,37 +107,44 @@ msgstr "Čekejte"
msgid "Response"
msgstr "Odpověď"
#: data/ui/window.blp:179
msgid "Speak"
msgstr "Mluvit"
#: data/ui/window.blp:186
msgid "Speaking"
msgstr "Mluvení"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr "Klávesové zkratky"
#: data/ui/window.blp:225
msgid "Quit"
msgstr "Ukončit"
#: data/ui/window.blp:230
msgid "About Bavarder"
msgstr "O Bavarder"
#: src/main.py:156
msgid "Special thanks to"
msgstr "Zvláštní poděkování patří"
#: src/provider/base.py:36
#: src/provider/base.py:33
msgid "No API key provided, you can provide one in settings"
msgstr "API klíč nebyl přidán, můžete jej přidat v nastavení"
#: src/provider/base.py:38
#: src/provider/base.py:35
msgid "Open settings"
msgstr "Otevřít nastavení"
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
#: src/provider/catgpt.py:8 src/provider/catgpt.py:56
msgid "Cat GPT"
msgstr "Cat GPT"
#~ msgid "Listen"
#~ msgstr "Poslech"
#~ msgid "Listening"
#~ msgstr "Poslouchání"
#~ msgid "Speak"
#~ msgstr "Mluvit"
#~ msgid "Speaking"
#~ msgstr "Mluvení"
#~ msgid "Special thanks to"
#~ msgstr "Zvláštní poděkování patří"
#~ msgid "Ready"
#~ msgstr "Připraveno"

View File

@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-05-03 13:47+0000\n"
"POT-Creation-Date: 2023-05-06 17:03+0200\n"
"PO-Revision-Date: 2023-05-07 09:49+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@proton.me>\n"
"Language-Team: German <https://translate.codeberg.org/projects/bavarder/"
"bavarder/de/>\n"
@@ -22,20 +22,20 @@ msgstr ""
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6 data/ui/window.blp:6
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:4 data/ui/window.blp:6
msgid "Bavarder"
msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:5
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:13
msgid "Chit-chat with an AI"
msgstr "Plaudern Sie mit GPT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6
msgid "0xMRTT"
msgstr "0xMRTT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:15
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:18
msgid "Screenshot of Main UI"
msgstr "Screenshot der Hauptbenutzeroberfläche"
@@ -83,7 +83,7 @@ msgstr "Anbieter"
msgid "Main Menu"
msgstr "Hauptmenü"
#: data/ui/window.blp:36 src/provider/base.py:43
#: data/ui/window.blp:36 src/provider/base.py:40
msgid "No network connection"
msgstr "Keine Netzwerkverbindung"
@@ -95,14 +95,6 @@ msgstr "Meldung"
msgid "Copy to Clipboard"
msgstr "In die Zwischenablage kopieren"
#: data/ui/window.blp:89
msgid "Listen"
msgstr "Hören"
#: data/ui/window.blp:96
msgid "Listening"
msgstr "Hören"
#: data/ui/window.blp:108
msgid "Ask"
msgstr "Fragen"
@@ -115,39 +107,46 @@ msgstr "Warten"
msgid "Response"
msgstr "Antwort"
#: data/ui/window.blp:179
msgid "Speak"
msgstr "Sprechen"
#: data/ui/window.blp:186
msgid "Speaking"
msgstr "Reden"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr "Tastatürkürzel"
#: data/ui/window.blp:225
msgid "Quit"
msgstr "Aufhören"
#: data/ui/window.blp:230
msgid "About Bavarder"
msgstr "Über Bavarder"
#: src/main.py:156
msgid "Special thanks to"
msgstr "Besonderer Dank an"
#: src/provider/base.py:36
#: src/provider/base.py:33
msgid "No API key provided, you can provide one in settings"
msgstr ""
"Kein API-Schlüssel angegeben, Sie können einen in den Einstellungen angeben"
#: src/provider/base.py:38
#: src/provider/base.py:35
msgid "Open settings"
msgstr "Einstellungen öffnen"
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
#: src/provider/catgpt.py:8 src/provider/catgpt.py:56
msgid "Cat GPT"
msgstr "Katze GPT"
#~ msgid "Listen"
#~ msgstr "Hören"
#~ msgid "Listening"
#~ msgstr "Hören"
#~ msgid "Speak"
#~ msgstr "Sprechen"
#~ msgid "Speaking"
#~ msgstr "Reden"
#~ msgid "Special thanks to"
#~ msgstr "Besonderer Dank an"
#~ msgid "Ready"
#~ msgstr "Bereit"

View File

@@ -11,8 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-05-03 18:52+0000\n"
"POT-Creation-Date: 2023-05-06 17:03+0200\n"
"PO-Revision-Date: 2023-05-07 09:49+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@proton.me>\n"
"Language-Team: Spanish <https://translate.codeberg.org/projects/bavarder/"
"bavarder/es/>\n"
@@ -24,20 +24,20 @@ msgstr ""
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6 data/ui/window.blp:6
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:4 data/ui/window.blp:6
msgid "Bavarder"
msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:5
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:13
msgid "Chit-chat with an AI"
msgstr "Conversa con una IA"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6
msgid "0xMRTT"
msgstr "0xMRTT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:15
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:18
msgid "Screenshot of Main UI"
msgstr "Captura de Pantalla de la Interfaz de Usuario Principal"
@@ -85,7 +85,7 @@ msgstr "Proveedores"
msgid "Main Menu"
msgstr "Menú Principal"
#: data/ui/window.blp:36 src/provider/base.py:43
#: data/ui/window.blp:36 src/provider/base.py:40
msgid "No network connection"
msgstr "No hay conexión de red"
@@ -97,14 +97,6 @@ msgstr "Mensaje"
msgid "Copy to Clipboard"
msgstr "Copiar al portapapeles"
#: data/ui/window.blp:89
msgid "Listen"
msgstr "Escuchar"
#: data/ui/window.blp:96
msgid "Listening"
msgstr "Escuchando"
#: data/ui/window.blp:108
msgid "Ask"
msgstr "Preguntar"
@@ -117,39 +109,46 @@ msgstr "Espera"
msgid "Response"
msgstr "Respuesta"
#: data/ui/window.blp:179
msgid "Speak"
msgstr "Hablar"
#: data/ui/window.blp:186
msgid "Speaking"
msgstr "Hablando"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr "Atajos de Teclado"
#: data/ui/window.blp:225
msgid "Quit"
msgstr "Salir"
#: data/ui/window.blp:230
msgid "About Bavarder"
msgstr "Sobre Bavarder"
#: src/main.py:156
msgid "Special thanks to"
msgstr "Agradecimientos especiales a"
#: src/provider/base.py:36
#: src/provider/base.py:33
msgid "No API key provided, you can provide one in settings"
msgstr ""
"No se ha ingresado una API Key valida, puede ingresar una en Configuraciones"
#: src/provider/base.py:38
#: src/provider/base.py:35
msgid "Open settings"
msgstr "Abrir configuraciones"
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
#: src/provider/catgpt.py:8 src/provider/catgpt.py:56
msgid "Cat GPT"
msgstr "Charla GPT"
#~ msgid "Listen"
#~ msgstr "Escuchar"
#~ msgid "Listening"
#~ msgstr "Escuchando"
#~ msgid "Speak"
#~ msgstr "Hablar"
#~ msgid "Speaking"
#~ msgstr "Hablando"
#~ msgid "Special thanks to"
#~ msgstr "Agradecimientos especiales a"
#~ msgid "Ready"
#~ msgstr "Leer"

132
po/fa.po Normal file
View File

@@ -0,0 +1,132 @@
# Bavarder POT file
# Copyright (C) 2023 Bavarder
# This file is distributed under the GNU GPLv3 license.
# Bavarder, 2023.
#
# kouroshtaf <kouroshtaf@gmail.com>, 2023.
# Kourosh <kouroshtaf@gmail.com>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-06 17:03+0200\n"
"PO-Revision-Date: 2023-05-07 09:45+0000\n"
"Last-Translator: Kourosh <kouroshtaf@gmail.com>\n"
"Language-Team: Persian <https://translate.codeberg.org/projects/bavarder/"
"bavarder/fa/>\n"
"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:4 data/ui/window.blp:6
msgid "Bavarder"
msgstr "باوارده"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:5
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:13
msgid "Chit-chat with an AI"
msgstr "گپی با هوش مصنوعی"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6
msgid "0xMRTT"
msgstr "سازنده: 0xMRTT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:18
msgid "Screenshot of Main UI"
msgstr "تصویر نمای اصلی"
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
msgid "General"
msgstr "عمومی"
#: data/ui/help-overlay.ui:14
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgstr "نمایش کلیدهای میانبر"
#: data/ui/help-overlay.ui:20
msgctxt "shortcut window"
msgid "Ask"
msgstr "بپرس"
#: data/ui/help-overlay.ui:26
msgctxt "shortcut window"
msgid "Quit"
msgstr "خروج"
#: data/ui/preferences.blp:5 data/ui/window.blp:215
msgid "Preferences"
msgstr "پیش‌فرض‌ها"
#: data/ui/preferences.blp:12
msgid "Prompt"
msgstr "متن درخواست"
#: data/ui/preferences.blp:15
msgid "Clear prompt after send"
msgstr "متن درخواست رو بعد از ارسال پاک کن"
#: data/ui/preferences.blp:16
msgid "The prompt will be cleared after send"
msgstr "متن درخواست بعد از ارسال پاک خواهد شد"
#: data/ui/preferences.blp:25
msgid "Providers"
msgstr "تامین کنندگان"
#: data/ui/window.blp:27
msgid "Main Menu"
msgstr "منوی اصلی"
#: data/ui/window.blp:36 src/provider/base.py:40
msgid "No network connection"
msgstr "ارتباط شبکه برقرار نیست"
#: data/ui/window.blp:51
msgid "Message"
msgstr "پیام"
#: data/ui/window.blp:84 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "کپی به کلیپ بورد"
#: data/ui/window.blp:108
msgid "Ask"
msgstr "بپرس"
#: data/ui/window.blp:117
msgid "Wait"
msgstr "منتظر باش"
#: data/ui/window.blp:132
msgid "Response"
msgstr "پاسخ"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr "کلیدهای میانبر"
#: data/ui/window.blp:225
msgid "Quit"
msgstr "خروج"
#: data/ui/window.blp:230
msgid "About Bavarder"
msgstr "درباره"
#: src/provider/base.py:33
msgid "No API key provided, you can provide one in settings"
msgstr "کلید API پیدا نشد، می توانید دربخش تنطیمات آن را وارد کنید"
#: src/provider/base.py:35
msgid "Open settings"
msgstr "تنظيمات"
#: src/provider/catgpt.py:8 src/provider/catgpt.py:56
msgid "Cat GPT"
msgstr "کت جی پی تی"

View File

@@ -4,13 +4,14 @@
# Bavarder, 2023.
#
# artnay <jiri.gronroos@iki.fi>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-05-04 20:52+0000\n"
"Last-Translator: artnay <jiri.gronroos@iki.fi>\n"
"POT-Creation-Date: 2023-05-06 17:03+0200\n"
"PO-Revision-Date: 2023-05-07 09:49+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@proton.me>\n"
"Language-Team: Finnish <https://translate.codeberg.org/projects/bavarder/"
"bavarder/fi/>\n"
"Language: fi\n"
@@ -21,20 +22,20 @@ msgstr ""
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6 data/ui/window.blp:6
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:4 data/ui/window.blp:6
msgid "Bavarder"
msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:5
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:13
msgid "Chit-chat with an AI"
msgstr "Keskustele tekoälyn kanssa"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6
msgid "0xMRTT"
msgstr "0xMRTT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:15
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:18
msgid "Screenshot of Main UI"
msgstr "Kuvakaappaus käyttöliittymästä"
@@ -82,7 +83,7 @@ msgstr "Palveluntarjoajat"
msgid "Main Menu"
msgstr "Päävalikko"
#: data/ui/window.blp:36 src/provider/base.py:43
#: data/ui/window.blp:36 src/provider/base.py:40
msgid "No network connection"
msgstr "Ei verkkoyhteyttä"
@@ -94,14 +95,6 @@ msgstr "Viesti"
msgid "Copy to Clipboard"
msgstr "Kopioi leikepöydälle"
#: data/ui/window.blp:89
msgid "Listen"
msgstr "Kuuntele"
#: data/ui/window.blp:96
msgid "Listening"
msgstr "Kuunnellaan"
#: data/ui/window.blp:108
msgid "Ask"
msgstr "Kysy"
@@ -114,34 +107,41 @@ msgstr "Odota"
msgid "Response"
msgstr "Vastaus"
#: data/ui/window.blp:179
msgid "Speak"
msgstr "Puhu"
#: data/ui/window.blp:186
msgid "Speaking"
msgstr "Puhutaan"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr "Pikanäppäimet"
#: data/ui/window.blp:225
msgid "Quit"
msgstr "Lopeta"
#: data/ui/window.blp:230
msgid "About Bavarder"
msgstr "Tietoja - Bavarder"
#: src/main.py:156
msgid "Special thanks to"
msgstr "Erityiskiitokset"
#: src/provider/base.py:36
#: src/provider/base.py:33
msgid "No API key provided, you can provide one in settings"
msgstr "API-avainta ei asetettu, aseta avain asetuksissa"
#: src/provider/base.py:38
#: src/provider/base.py:35
msgid "Open settings"
msgstr "Avaa asetukset"
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
#: src/provider/catgpt.py:8 src/provider/catgpt.py:56
msgid "Cat GPT"
msgstr "Cat GPT"
#~ msgid "Listen"
#~ msgstr "Kuuntele"
#~ msgid "Listening"
#~ msgstr "Kuunnellaan"
#~ msgid "Speak"
#~ msgstr "Puhu"
#~ msgid "Speaking"
#~ msgstr "Puhutaan"
#~ msgid "Special thanks to"
#~ msgstr "Erityiskiitokset"

View File

@@ -11,9 +11,9 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-05-03 18:22+0000\n"
"Last-Translator: rene-coty <irenee.thirion@e.email>\n"
"POT-Creation-Date: 2023-05-06 17:03+0200\n"
"PO-Revision-Date: 2023-05-07 07:43+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@proton.me>\n"
"Language-Team: French <https://translate.codeberg.org/projects/bavarder/"
"bavarder/fr/>\n"
"Language: fr\n"
@@ -24,20 +24,20 @@ msgstr ""
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6 data/ui/window.blp:6
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:4 data/ui/window.blp:6
msgid "Bavarder"
msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:5
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:13
msgid "Chit-chat with an AI"
msgstr "Bavarder avec GPT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6
msgid "0xMRTT"
msgstr "0xMRTT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:15
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:18
msgid "Screenshot of Main UI"
msgstr "Capture décran de linterface principale"
@@ -85,7 +85,7 @@ msgstr "Fournisseurs"
msgid "Main Menu"
msgstr "Menu Principal"
#: data/ui/window.blp:36 src/provider/base.py:43
#: data/ui/window.blp:36 src/provider/base.py:40
msgid "No network connection"
msgstr "Pas de connexion réseau"
@@ -97,14 +97,6 @@ msgstr "Message"
msgid "Copy to Clipboard"
msgstr "Copier dans le presse-papiers"
#: data/ui/window.blp:89
msgid "Listen"
msgstr "Écouter"
#: data/ui/window.blp:96
msgid "Listening"
msgstr "En écoute"
#: data/ui/window.blp:108
msgid "Ask"
msgstr "Demander"
@@ -117,39 +109,46 @@ msgstr "Attendez"
msgid "Response"
msgstr "Réponse"
#: data/ui/window.blp:179
msgid "Speak"
msgstr "Parler"
#: data/ui/window.blp:186
msgid "Speaking"
msgstr "En train de parler"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr "Raccourcis clavier"
#: data/ui/window.blp:225
msgid "Quit"
msgstr "Quitter"
#: data/ui/window.blp:230
msgid "About Bavarder"
msgstr "À propos de Bavarder"
#: src/main.py:156
msgid "Special thanks to"
msgstr "Remerciements spéciaux à"
#: src/provider/base.py:36
#: src/provider/base.py:33
msgid "No API key provided, you can provide one in settings"
msgstr ""
"Pas de clé dAPI fournie, vous pouvez en ajouter une dans les paramètres"
#: src/provider/base.py:38
#: src/provider/base.py:35
msgid "Open settings"
msgstr "Ouvrir les paramètres"
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
#: src/provider/catgpt.py:8 src/provider/catgpt.py:56
msgid "Cat GPT"
msgstr "Chat GPT"
#~ msgid "Listen"
#~ msgstr "Écouter"
#~ msgid "Listening"
#~ msgstr "En écoute"
#~ msgid "Speak"
#~ msgstr "Parler"
#~ msgid "Speaking"
#~ msgstr "En train de parler"
#~ msgid "Special thanks to"
#~ msgstr "Remerciements spéciaux à"
#~ msgid "Ready"
#~ msgstr "Prêt"

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"POT-Creation-Date: 2023-05-06 17:03+0200\n"
"PO-Revision-Date: 2023-05-03 19:17+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@proton.me>\n"
"Language-Team: Hungarian <https://translate.codeberg.org/projects/bavarder/"
@@ -22,20 +22,20 @@ msgstr ""
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6 data/ui/window.blp:6
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:4 data/ui/window.blp:6
msgid "Bavarder"
msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:5
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:13
msgid "Chit-chat with an AI"
msgstr ""
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6
msgid "0xMRTT"
msgstr ""
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:15
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:18
msgid "Screenshot of Main UI"
msgstr ""
@@ -83,7 +83,7 @@ msgstr ""
msgid "Main Menu"
msgstr ""
#: data/ui/window.blp:36 src/provider/base.py:43
#: data/ui/window.blp:36 src/provider/base.py:40
msgid "No network connection"
msgstr "Nincs hálózati kapcsolat"
@@ -95,14 +95,6 @@ msgstr "Üzenet"
msgid "Copy to Clipboard"
msgstr "Másolás a vágólapra"
#: data/ui/window.blp:89
msgid "Listen"
msgstr ""
#: data/ui/window.blp:96
msgid "Listening"
msgstr ""
#: data/ui/window.blp:108
msgid "Ask"
msgstr ""
@@ -115,34 +107,29 @@ msgstr ""
msgid "Response"
msgstr ""
#: data/ui/window.blp:179
msgid "Speak"
msgstr ""
#: data/ui/window.blp:186
msgid "Speaking"
msgstr ""
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr ""
#: data/ui/window.blp:225
#, fuzzy
#| msgctxt "shortcut window"
#| msgid "Quit"
msgid "Quit"
msgstr "Kilépés"
#: data/ui/window.blp:230
msgid "About Bavarder"
msgstr ""
#: src/main.py:156
msgid "Special thanks to"
msgstr ""
#: src/provider/base.py:36
#: src/provider/base.py:33
msgid "No API key provided, you can provide one in settings"
msgstr ""
#: src/provider/base.py:38
#: src/provider/base.py:35
msgid "Open settings"
msgstr ""
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
#: src/provider/catgpt.py:8 src/provider/catgpt.py:56
msgid "Cat GPT"
msgstr ""

View File

@@ -4,13 +4,15 @@
# Bavarder, 2023.
#
# 0xMRTT <0xmrtt@tuta.io>, 2023.
# phaerrax <davide.ferracin@protonmail.com>, 2023.
# elgandoz <gandi.marco@gmail.com>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-05-01 08:57+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"POT-Creation-Date: 2023-05-06 17:03+0200\n"
"PO-Revision-Date: 2023-05-07 09:49+0000\n"
"Last-Translator: elgandoz <gandi.marco@gmail.com>\n"
"Language-Team: Italian <https://translate.codeberg.org/projects/bavarder/"
"bavarder/it/>\n"
"Language: it\n"
@@ -21,22 +23,22 @@ msgstr ""
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6 data/ui/window.blp:6
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:4 data/ui/window.blp:6
msgid "Bavarder"
msgstr ""
msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:5
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:13
msgid "Chit-chat with an AI"
msgstr ""
msgstr "Chiacchiera con un'IA"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6
msgid "0xMRTT"
msgstr ""
msgstr "0xMRTT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:15
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:18
msgid "Screenshot of Main UI"
msgstr ""
msgstr "Schermata dell'interfaccia principale"
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
@@ -46,12 +48,12 @@ msgstr "Generale"
#: data/ui/help-overlay.ui:14
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgstr ""
msgstr "Mostra scorciatoie"
#: data/ui/help-overlay.ui:20
msgctxt "shortcut window"
msgid "Ask"
msgstr ""
msgstr "Chiedi"
#: data/ui/help-overlay.ui:26
msgctxt "shortcut window"
@@ -64,25 +66,25 @@ msgstr "Preferenze"
#: data/ui/preferences.blp:12
msgid "Prompt"
msgstr ""
msgstr "Prompt"
#: data/ui/preferences.blp:15
msgid "Clear prompt after send"
msgstr ""
msgstr "Svuota il prompt dopo l'invio"
#: data/ui/preferences.blp:16
msgid "The prompt will be cleared after send"
msgstr ""
msgstr "Il prompt verrà svuotato dopo l'invio"
#: data/ui/preferences.blp:25
msgid "Providers"
msgstr ""
msgstr "Fornitori"
#: data/ui/window.blp:27
msgid "Main Menu"
msgstr ""
msgstr "Menù principale"
#: data/ui/window.blp:36 src/provider/base.py:43
#: data/ui/window.blp:36 src/provider/base.py:40
msgid "No network connection"
msgstr "Nessuna connessione di rete"
@@ -94,57 +96,54 @@ msgstr "Messaggio"
msgid "Copy to Clipboard"
msgstr "Copia negli appunti"
#: data/ui/window.blp:89
msgid "Listen"
msgstr ""
#: data/ui/window.blp:96
msgid "Listening"
msgstr ""
#: data/ui/window.blp:108
msgid "Ask"
msgstr ""
msgstr "Chiedi"
#: data/ui/window.blp:117
msgid "Wait"
msgstr ""
msgstr "Attendere"
#: data/ui/window.blp:132
msgid "Response"
msgstr ""
#: data/ui/window.blp:179
msgid "Speak"
msgstr ""
#: data/ui/window.blp:186
msgid "Speaking"
msgstr ""
msgstr "Risposta"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr ""
msgstr "Scorciatoie da tastiera"
#: data/ui/window.blp:225
msgid "Quit"
msgstr "Esci"
#: data/ui/window.blp:230
msgid "About Bavarder"
msgstr ""
msgstr "Informazioni su Bavarder"
#: src/main.py:156
msgid "Special thanks to"
msgstr ""
#: src/provider/base.py:36
#: src/provider/base.py:33
msgid "No API key provided, you can provide one in settings"
msgstr ""
"Nessuna chiave API fornita; è possibile fornirne una nelle impostazioni"
#: src/provider/base.py:38
#: src/provider/base.py:35
msgid "Open settings"
msgstr "Apri impostazioni"
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
#: src/provider/catgpt.py:8 src/provider/catgpt.py:56
msgid "Cat GPT"
msgstr ""
msgstr "Cat GPT"
#~ msgid "Listen"
#~ msgstr "Ascolta"
#~ msgid "Listening"
#~ msgstr "In ascolto"
#~ msgid "Speak"
#~ msgstr "Parla"
#~ msgid "Special thanks to"
#~ msgstr "Un ringraziamento speciale a"
#~ msgid "Ready"
#~ msgstr "Pronto"

View File

@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-05-05 10:18+0000\n"
"POT-Creation-Date: 2023-05-06 17:03+0200\n"
"PO-Revision-Date: 2023-05-07 08:51+0000\n"
"Last-Translator: Vistaus <vistausss@fastmail.com>\n"
"Language-Team: Dutch <https://translate.codeberg.org/projects/bavarder/"
"bavarder/nl/>\n"
@@ -21,20 +21,20 @@ msgstr ""
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6 data/ui/window.blp:6
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:4 data/ui/window.blp:6
msgid "Bavarder"
msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:5
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:13
msgid "Chit-chat with an AI"
msgstr "Babbel met een KI"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6
msgid "0xMRTT"
msgstr "0xMRTT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:15
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:18
msgid "Screenshot of Main UI"
msgstr "Schermfoto van het hoofdscherm"
@@ -82,7 +82,7 @@ msgstr "Diensten"
msgid "Main Menu"
msgstr "Hoofdmenu"
#: data/ui/window.blp:36 src/provider/base.py:43
#: data/ui/window.blp:36 src/provider/base.py:40
msgid "No network connection"
msgstr "Geen netwerkverbinding"
@@ -94,14 +94,6 @@ msgstr "Bericht"
msgid "Copy to Clipboard"
msgstr "Kopiëren naar klembord"
#: data/ui/window.blp:89
msgid "Listen"
msgstr "Luisteren"
#: data/ui/window.blp:96
msgid "Listening"
msgstr "Bezig met luisteren…"
#: data/ui/window.blp:108
msgid "Ask"
msgstr "Vraag stellen"
@@ -114,34 +106,41 @@ msgstr "Even geduld…"
msgid "Response"
msgstr "Antwoord"
#: data/ui/window.blp:179
msgid "Speak"
msgstr "Praten"
#: data/ui/window.blp:186
msgid "Speaking"
msgstr "Bezig met praten…"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr "Sneltoetsen"
#: data/ui/window.blp:225
msgid "Quit"
msgstr "Afsluiten"
#: data/ui/window.blp:230
msgid "About Bavarder"
msgstr "Over Bavarder"
#: src/main.py:156
msgid "Special thanks to"
msgstr "Met veel dank aan"
#: src/provider/base.py:36
#: src/provider/base.py:33
msgid "No API key provided, you can provide one in settings"
msgstr "Er is geen api-sleutel opgegeven - open de voorkeuren"
#: src/provider/base.py:38
#: src/provider/base.py:35
msgid "Open settings"
msgstr "Voorkeuren openen"
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
#: src/provider/catgpt.py:8 src/provider/catgpt.py:56
msgid "Cat GPT"
msgstr "Cat GPT"
#~ msgid "Listen"
#~ msgstr "Luisteren"
#~ msgid "Listening"
#~ msgstr "Bezig met luisteren…"
#~ msgid "Speak"
#~ msgstr "Praten"
#~ msgid "Speaking"
#~ msgstr "Bezig met praten…"
#~ msgid "Special thanks to"
#~ msgstr "Met veel dank aan"

148
po/pl.po Normal file
View File

@@ -0,0 +1,148 @@
# Bavarder POT file
# Copyright (C) 2023 Bavarder
# This file is distributed under the GNU GPLv3 license.
# Bavarder, 2023.
#
# ioghjog <michal.d1191@gmail.com>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-06 17:03+0200\n"
"PO-Revision-Date: 2023-05-07 09:49+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@proton.me>\n"
"Language-Team: Polish <https://translate.codeberg.org/projects/bavarder/"
"bavarder/pl/>\n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"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 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:4 data/ui/window.blp:6
msgid "Bavarder"
msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:5
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:13
msgid "Chit-chat with an AI"
msgstr "Pogawędka z SI"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6
msgid "0xMRTT"
msgstr "0xMRTT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:18
msgid "Screenshot of Main UI"
msgstr "Zrzut ekranu interfejsu"
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
msgid "General"
msgstr "Ogólne"
#: data/ui/help-overlay.ui:14
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgstr "Pokaż skróty"
#: data/ui/help-overlay.ui:20
msgctxt "shortcut window"
msgid "Ask"
msgstr "Zapytaj"
#: data/ui/help-overlay.ui:26
msgctxt "shortcut window"
msgid "Quit"
msgstr "Wyjdź"
#: data/ui/preferences.blp:5 data/ui/window.blp:215
msgid "Preferences"
msgstr "Preferencje"
#: data/ui/preferences.blp:12
msgid "Prompt"
msgstr "Zapytanie"
#: data/ui/preferences.blp:15
msgid "Clear prompt after send"
msgstr "Czyść zapytanie po wysłaniu"
#: data/ui/preferences.blp:16
msgid "The prompt will be cleared after send"
msgstr "Zapytanie zostanie wyczyszczone po wysłaniu"
#: data/ui/preferences.blp:25
msgid "Providers"
msgstr "Dostawcy"
#: data/ui/window.blp:27
msgid "Main Menu"
msgstr "Główne menu"
#: data/ui/window.blp:36 src/provider/base.py:40
msgid "No network connection"
msgstr "Brak połączenia z siecią"
#: data/ui/window.blp:51
msgid "Message"
msgstr "Wiadomość"
#: data/ui/window.blp:84 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Skopiuj do schowka"
#: data/ui/window.blp:108
msgid "Ask"
msgstr "Zapytaj"
#: data/ui/window.blp:117
msgid "Wait"
msgstr "Czekaj"
#: data/ui/window.blp:132
msgid "Response"
msgstr "Odpowiedź"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr "Skróty klawiszowe"
#: data/ui/window.blp:225
msgid "Quit"
msgstr "Wyjdź"
#: data/ui/window.blp:230
msgid "About Bavarder"
msgstr "O Bavarderze"
#: src/provider/base.py:33
msgid "No API key provided, you can provide one in settings"
msgstr "Nie podano klucza API, dodaj go w ustawieniach"
#: src/provider/base.py:35
msgid "Open settings"
msgstr "Otwórz ustawienia"
#: src/provider/catgpt.py:8 src/provider/catgpt.py:56
msgid "Cat GPT"
msgstr "Cat GPT"
#~ msgid "Listen"
#~ msgstr "Słuchaj"
#~ msgid "Listening"
#~ msgstr "Słuchanie"
#~ msgid "Speak"
#~ msgstr "Powiedz"
#~ msgid "Speaking"
#~ msgstr "Mówienie"
#~ msgid "Special thanks to"
#~ msgstr "Specjalne podziękowania dla"

View File

@@ -4,13 +4,14 @@
# Bavarder, 2023.
#
# galegovski <galegovski@outlook.com>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-05-03 13:42+0000\n"
"Last-Translator: galegovski <galegovski@outlook.com>\n"
"POT-Creation-Date: 2023-05-06 17:03+0200\n"
"PO-Revision-Date: 2023-05-07 09:49+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@proton.me>\n"
"Language-Team: Portuguese <https://translate.codeberg.org/projects/bavarder/"
"bavarder/pt/>\n"
"Language: pt\n"
@@ -21,20 +22,20 @@ msgstr ""
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6 data/ui/window.blp:6
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:4 data/ui/window.blp:6
msgid "Bavarder"
msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:5
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:13
msgid "Chit-chat with an AI"
msgstr "Bate-papo com uma IA"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6
msgid "0xMRTT"
msgstr "0xMRTT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:15
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:18
msgid "Screenshot of Main UI"
msgstr "Captura da tela principal"
@@ -82,7 +83,7 @@ msgstr "Provedores"
msgid "Main Menu"
msgstr "Menu principal"
#: data/ui/window.blp:36 src/provider/base.py:43
#: data/ui/window.blp:36 src/provider/base.py:40
msgid "No network connection"
msgstr "Nenhuma conexão de rede"
@@ -94,14 +95,6 @@ msgstr "Mensagem"
msgid "Copy to Clipboard"
msgstr "Copiar para área de transferência"
#: data/ui/window.blp:89
msgid "Listen"
msgstr "Ouvir"
#: data/ui/window.blp:96
msgid "Listening"
msgstr "Audição"
#: data/ui/window.blp:108
msgid "Ask"
msgstr "Perguntar"
@@ -114,35 +107,42 @@ msgstr "Espere"
msgid "Response"
msgstr "Resposta"
#: data/ui/window.blp:179
msgid "Speak"
msgstr "Falar"
#: data/ui/window.blp:186
msgid "Speaking"
msgstr "Falando"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr "Atalhos do teclado"
#: data/ui/window.blp:225
msgid "Quit"
msgstr "Sair"
#: data/ui/window.blp:230
msgid "About Bavarder"
msgstr "Sobre Bavarder"
#: src/main.py:156
msgid "Special thanks to"
msgstr "Agradecimentos especiais para"
#: src/provider/base.py:36
#: src/provider/base.py:33
msgid "No API key provided, you can provide one in settings"
msgstr ""
"Nenhuma chave de API fornecida, você pode fornecer uma nas configurações"
#: src/provider/base.py:38
#: src/provider/base.py:35
msgid "Open settings"
msgstr "Abrir configurações"
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
#: src/provider/catgpt.py:8 src/provider/catgpt.py:56
msgid "Cat GPT"
msgstr "Cat GPT"
#~ msgid "Listen"
#~ msgstr "Ouvir"
#~ msgid "Listening"
#~ msgstr "Audição"
#~ msgid "Speak"
#~ msgstr "Falar"
#~ msgid "Speaking"
#~ msgstr "Falando"
#~ msgid "Special thanks to"
#~ msgstr "Agradecimentos especiais para"

View File

@@ -5,13 +5,14 @@
#
# 0xMRTT <0xmrtt@tuta.io>, 2023.
# Daudix_UFO <ddaudix@gmail.com>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-05-01 08:57+0000\n"
"Last-Translator: Daudix_UFO <ddaudix@gmail.com>\n"
"POT-Creation-Date: 2023-05-06 17:03+0200\n"
"PO-Revision-Date: 2023-05-07 09:49+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@proton.me>\n"
"Language-Team: Russian <https://translate.codeberg.org/projects/bavarder/"
"bavarder/ru/>\n"
"Language: ru\n"
@@ -23,20 +24,20 @@ msgstr ""
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6 data/ui/window.blp:6
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:4 data/ui/window.blp:6
msgid "Bavarder"
msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:5
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:13
msgid "Chit-chat with an AI"
msgstr "Болтайте с GPT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6
msgid "0xMRTT"
msgstr "0xMRTT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:15
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:18
msgid "Screenshot of Main UI"
msgstr "Снимок экрана главного интерфейса"
@@ -84,7 +85,7 @@ msgstr "Провайдеры"
msgid "Main Menu"
msgstr "Главное меню"
#: data/ui/window.blp:36 src/provider/base.py:43
#: data/ui/window.blp:36 src/provider/base.py:40
msgid "No network connection"
msgstr "Нет подключения к сети"
@@ -96,14 +97,6 @@ msgstr "Сообщение"
msgid "Copy to Clipboard"
msgstr "Скопировать в буфер обмена"
#: data/ui/window.blp:89
msgid "Listen"
msgstr "Прослушать"
#: data/ui/window.blp:96
msgid "Listening"
msgstr "Прослушивание"
#: data/ui/window.blp:108
msgid "Ask"
msgstr "Спросить"
@@ -116,38 +109,45 @@ msgstr "Ждите"
msgid "Response"
msgstr "Ответ"
#: data/ui/window.blp:179
msgid "Speak"
msgstr "Произнести"
#: data/ui/window.blp:186
msgid "Speaking"
msgstr "Произношение"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr "Комбинации клавиш"
#: data/ui/window.blp:225
msgid "Quit"
msgstr "Выйти"
#: data/ui/window.blp:230
msgid "About Bavarder"
msgstr "О Bavarder"
#: src/main.py:156
msgid "Special thanks to"
msgstr "Особое спасибо"
#: src/provider/base.py:36
#: src/provider/base.py:33
msgid "No API key provided, you can provide one in settings"
msgstr "Ключ API не предоставлен, вы можете предоставить его в настройках"
#: src/provider/base.py:38
#: src/provider/base.py:35
msgid "Open settings"
msgstr "Открыть настройки"
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
#: src/provider/catgpt.py:8 src/provider/catgpt.py:56
msgid "Cat GPT"
msgstr "Cat GPT"
#~ msgid "Listen"
#~ msgstr "Прослушать"
#~ msgid "Listening"
#~ msgstr "Прослушивание"
#~ msgid "Speak"
#~ msgstr "Произнести"
#~ msgid "Speaking"
#~ msgstr "Произношение"
#~ msgid "Special thanks to"
#~ msgstr "Особое спасибо"
#~ msgid "Ready"
#~ msgstr "Готов"

View File

@@ -5,13 +5,14 @@
#
# 0xMRTT <0xmrtt@tuta.io>, 2023.
# Morgan Antonsson <morgan.antonsson@gmail.com>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-05-03 18:22+0000\n"
"Last-Translator: Morgan Antonsson <morgan.antonsson@gmail.com>\n"
"POT-Creation-Date: 2023-05-06 17:03+0200\n"
"PO-Revision-Date: 2023-05-07 09:49+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@proton.me>\n"
"Language-Team: Swedish <https://translate.codeberg.org/projects/bavarder/"
"bavarder/sv/>\n"
"Language: sv\n"
@@ -22,20 +23,20 @@ msgstr ""
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6 data/ui/window.blp:6
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:4 data/ui/window.blp:6
msgid "Bavarder"
msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:5
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:13
msgid "Chit-chat with an AI"
msgstr "Chatta med en AI"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6
msgid "0xMRTT"
msgstr "0xMRTT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:15
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:18
msgid "Screenshot of Main UI"
msgstr "Skärmdump av huvudgränssnittet"
@@ -83,7 +84,7 @@ msgstr "Leverantörer"
msgid "Main Menu"
msgstr "Huvudmeny"
#: data/ui/window.blp:36 src/provider/base.py:43
#: data/ui/window.blp:36 src/provider/base.py:40
msgid "No network connection"
msgstr "Ingen kontakt med nätverket"
@@ -95,14 +96,6 @@ msgstr "Meddelande"
msgid "Copy to Clipboard"
msgstr "Kopiera till urklipp"
#: data/ui/window.blp:89
msgid "Listen"
msgstr "Lyssna"
#: data/ui/window.blp:96
msgid "Listening"
msgstr "Lyssnar"
#: data/ui/window.blp:108
msgid "Ask"
msgstr "Fråga"
@@ -115,38 +108,45 @@ msgstr "Vänta"
msgid "Response"
msgstr "Svar"
#: data/ui/window.blp:179
msgid "Speak"
msgstr "Tala"
#: data/ui/window.blp:186
msgid "Speaking"
msgstr "Talar"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr "Tangentbordsgenvägar"
#: data/ui/window.blp:225
msgid "Quit"
msgstr "Avsluta"
#: data/ui/window.blp:230
msgid "About Bavarder"
msgstr "Om Bavarder"
#: src/main.py:156
msgid "Special thanks to"
msgstr "Särskilt tack till"
#: src/provider/base.py:36
#: src/provider/base.py:33
msgid "No API key provided, you can provide one in settings"
msgstr "Ingen API-nyckel har angetts, du kan ange en i inställningarna"
#: src/provider/base.py:38
#: src/provider/base.py:35
msgid "Open settings"
msgstr "Öppna inställningar"
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
#: src/provider/catgpt.py:8 src/provider/catgpt.py:56
msgid "Cat GPT"
msgstr "Cat GPT"
#~ msgid "Listen"
#~ msgstr "Lyssna"
#~ msgid "Listening"
#~ msgstr "Lyssnar"
#~ msgid "Speak"
#~ msgstr "Tala"
#~ msgid "Speaking"
#~ msgstr "Talar"
#~ msgid "Special thanks to"
#~ msgstr "Särskilt tack till"
#~ msgid "Ready"
#~ msgstr "läst"

View File

@@ -4,13 +4,14 @@
# Bavarder, 2023.
#
# keyiflerolsun <keyiflerolsun@gmail.com>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-05-04 20:56+0000\n"
"Last-Translator: keyiflerolsun <keyiflerolsun@gmail.com>\n"
"POT-Creation-Date: 2023-05-06 17:03+0200\n"
"PO-Revision-Date: 2023-05-07 09:49+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@proton.me>\n"
"Language-Team: Turkish <https://translate.codeberg.org/projects/bavarder/"
"bavarder/tr/>\n"
"Language: tr\n"
@@ -21,20 +22,20 @@ msgstr ""
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6 data/ui/window.blp:6
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:4 data/ui/window.blp:6
msgid "Bavarder"
msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:5
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:13
msgid "Chit-chat with an AI"
msgstr "Chit AI ile sohbet edin"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6
msgid "0xMRTT"
msgstr "0xMRTT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:15
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:18
msgid "Screenshot of Main UI"
msgstr "Ana Kullanıcı Arayüzü'nün ekran görüntüsü"
@@ -82,7 +83,7 @@ msgstr "Sağlayıcılar"
msgid "Main Menu"
msgstr "Ana Menü"
#: data/ui/window.blp:36 src/provider/base.py:43
#: data/ui/window.blp:36 src/provider/base.py:40
msgid "No network connection"
msgstr "Ağ bağlantısı yok"
@@ -94,14 +95,6 @@ msgstr "Mesaj"
msgid "Copy to Clipboard"
msgstr "Panoya kopyala"
#: data/ui/window.blp:89
msgid "Listen"
msgstr "Dinle"
#: data/ui/window.blp:96
msgid "Listening"
msgstr "Dinleniyor"
#: data/ui/window.blp:108
msgid "Ask"
msgstr "Sor"
@@ -114,34 +107,41 @@ msgstr "Bekle"
msgid "Response"
msgstr "Yanıt"
#: data/ui/window.blp:179
msgid "Speak"
msgstr "Konuş"
#: data/ui/window.blp:186
msgid "Speaking"
msgstr "Konuşuyor"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr "Klavye kısayolları"
#: data/ui/window.blp:225
msgid "Quit"
msgstr "Çıkış"
#: data/ui/window.blp:230
msgid "About Bavarder"
msgstr "Bavarder Hakkında"
#: src/main.py:156
msgid "Special thanks to"
msgstr "Özel teşekkürler"
#: src/provider/base.py:36
#: src/provider/base.py:33
msgid "No API key provided, you can provide one in settings"
msgstr "API anahtarı sağlanmadı, ayarlarda bir tane sağlayabilirsiniz"
#: src/provider/base.py:38
#: src/provider/base.py:35
msgid "Open settings"
msgstr "Ayarları aç"
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
#: src/provider/catgpt.py:8 src/provider/catgpt.py:56
msgid "Cat GPT"
msgstr "Cat GPT"
#~ msgid "Listen"
#~ msgstr "Dinle"
#~ msgid "Listening"
#~ msgstr "Dinleniyor"
#~ msgid "Speak"
#~ msgstr "Konuş"
#~ msgid "Speaking"
#~ msgstr "Konuşuyor"
#~ msgid "Special thanks to"
#~ msgstr "Özel teşekkürler"

107
po/uk.po
View File

@@ -4,40 +4,42 @@
# Bavarder, 2023.
#
# 0xMRTT <0xmrtt@tuta.io>, 2023.
# Orest58008 <orest58008@tuta.io>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-04-27 17:37+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@tuta.io>\n"
"POT-Creation-Date: 2023-05-06 17:03+0200\n"
"PO-Revision-Date: 2023-05-07 09:49+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@proton.me>\n"
"Language-Team: Ukrainian <https://translate.codeberg.org/projects/bavarder/"
"bavarder/uk/>\n"
"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"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"
"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 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6 data/ui/window.blp:6
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:4 data/ui/window.blp:6
msgid "Bavarder"
msgstr ""
msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:5
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:13
msgid "Chit-chat with an AI"
msgstr ""
msgstr "Побалакати з ШІ"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6
msgid "0xMRTT"
msgstr ""
msgstr "0xMRTT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:15
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:18
msgid "Screenshot of Main UI"
msgstr ""
msgstr "Знімок головного інтерфейсу"
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
@@ -47,12 +49,12 @@ msgstr "Загальні"
#: data/ui/help-overlay.ui:14
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgstr ""
msgstr "Показати Скорочення"
#: data/ui/help-overlay.ui:20
msgctxt "shortcut window"
msgid "Ask"
msgstr ""
msgstr "Запитати"
#: data/ui/help-overlay.ui:26
msgctxt "shortcut window"
@@ -65,25 +67,25 @@ msgstr "Опції"
#: data/ui/preferences.blp:12
msgid "Prompt"
msgstr ""
msgstr "Запит"
#: data/ui/preferences.blp:15
msgid "Clear prompt after send"
msgstr ""
msgstr "Очистити запит після надсилання"
#: data/ui/preferences.blp:16
msgid "The prompt will be cleared after send"
msgstr ""
msgstr "Запит буде очищений після надсилання"
#: data/ui/preferences.blp:25
msgid "Providers"
msgstr ""
msgstr "Постачальники"
#: data/ui/window.blp:27
msgid "Main Menu"
msgstr ""
msgstr "Головне Меню"
#: data/ui/window.blp:36 src/provider/base.py:43
#: data/ui/window.blp:36 src/provider/base.py:40
msgid "No network connection"
msgstr "Відсутнє з'єднання з мережею"
@@ -95,57 +97,56 @@ msgstr "Повідомлення"
msgid "Copy to Clipboard"
msgstr "Копіювати"
#: data/ui/window.blp:89
msgid "Listen"
msgstr ""
#: data/ui/window.blp:96
msgid "Listening"
msgstr ""
#: data/ui/window.blp:108
msgid "Ask"
msgstr ""
msgstr "Запитати"
#: data/ui/window.blp:117
msgid "Wait"
msgstr ""
msgstr "Чекати"
#: data/ui/window.blp:132
msgid "Response"
msgstr ""
#: data/ui/window.blp:179
msgid "Speak"
msgstr ""
#: data/ui/window.blp:186
msgid "Speaking"
msgstr ""
msgstr "Відповідь"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr ""
msgstr "Комбінації Клавіш"
#: data/ui/window.blp:225
msgid "Quit"
msgstr "Вийти"
#: data/ui/window.blp:230
msgid "About Bavarder"
msgstr ""
msgstr "Про Bavarder"
#: src/main.py:156
msgid "Special thanks to"
msgstr ""
#: src/provider/base.py:36
#: src/provider/base.py:33
msgid "No API key provided, you can provide one in settings"
msgstr ""
msgstr "Відсутній ключ API, надайте його в налаштуваннях"
#: src/provider/base.py:38
#: src/provider/base.py:35
msgid "Open settings"
msgstr ""
msgstr "Відкрити налаштування"
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
#: src/provider/catgpt.py:8 src/provider/catgpt.py:56
msgid "Cat GPT"
msgstr ""
msgstr "Кіт GPT"
#~ msgid "Listen"
#~ msgstr "Слухати"
#~ msgid "Listening"
#~ msgstr "Слухає"
#~ msgid "Speak"
#~ msgstr "Говорити"
#~ msgid "Speaking"
#~ msgstr "Говорить"
#~ msgid "Special thanks to"
#~ msgstr "Особлива подяка"
#~ msgid "Ready"
#~ msgstr "Готово"

View File

@@ -41,6 +41,7 @@ from .provider import PROVIDERS
import platform
import os
class BavarderApplication(Adw.Application):
"""The main application singleton class."""
@@ -50,11 +51,12 @@ class BavarderApplication(Adw.Application):
flags=Gio.ApplicationFlags.DEFAULT_FLAGS,
)
self.create_action("quit", self.on_quit, ["<primary>q"])
self.create_action("about", self.on_about_action)
self.create_action("preferences", self.on_preferences_action)
self.create_action("about", self.on_about_action, ["<primary>a"])
self.create_action("preferences", self.on_preferences_action, ["<primary>comma"])
self.create_action("copy_prompt", self.on_copy_prompt_action)
self.create_action("copy_bot", self.on_copy_bot_action)
self.create_action("copy_bot", self.on_copy_bot_action, ["<primary>c"])
self.create_action("ask", self.on_ask_action, ["<primary>Return"])
self.create_action("clear", self.on_clear_action, ["<primary>BackSpace"])
# self.create_action("speak", self.on_speak_action, ["<primary>S"])
# self.create_action("listen", self.on_listen_action, ["<primary>L"])
@@ -62,22 +64,13 @@ class BavarderApplication(Adw.Application):
self.clear_after_send = self.settings.get_boolean("clear-after-send")
self.enabled_providers = sorted(set(self.settings.get_strv("enabled-providers")))
self.enabled_providers = sorted(
set(self.settings.get_strv("enabled-providers"))
)
self.latest_provider = self.settings.get_string("latest-provider")
# GStreamer playbin object and related setup
# Gst.init(None)
# self.player = Gst.ElementFactory.make("playbin", "player")
# self.pipeline = Gst.Pipeline()
# bus = self.player.get_bus()
# bus.add_signal_watch()
# bus.connect('message', self.on_gst_message)
# self.player_event = (
# threading.Event()
# ) # An event for letting us know when Gst is done playing
def on_quit(self, action, param):
"""Called when the user activates the Quit action."""
def quitting(self, *args, **kwargs):
"""Called before closing main window."""
self.settings.set_strv("enabled-providers", list(self.enabled_providers))
self.settings.set_string("latest-provider", self.get_provider().slug)
@@ -86,17 +79,23 @@ class BavarderApplication(Adw.Application):
self.save_providers()
self.quit()
def on_quit(self, action, param):
"""Called when the user activates the Quit action."""
self.quitting()
def save_providers(self):
r = {}
for k, p in self.providers.items():
r[str(k)] = json.dumps(p.save())
r[p.slug] = json.dumps(p.save())
print(r)
data = GLib.Variant(
"a{ss}",
r
)
data = GLib.Variant("a{ss}", r)
self.settings.set_value("providers-data", data)
def on_clear_action(self, action, param):
self.win.bot_text_view.get_buffer().set_text("")
self.win.prompt_text_view.get_buffer().set_text("")
self.win.prompt_text_view.grab_focus()
def get_provider(self):
print(self.providers)
return self.providers[self.win.provider_selector.props.selected]
@@ -114,6 +113,24 @@ class BavarderApplication(Adw.Application):
self.win.response_stack.set_visible_child_name("page_response")
self.win.connect("close-request", self.quitting)
self.load_dropdown()
self.load()
print(self.latest_provider)
for k, p in self.providers.items():
if p.slug == self.latest_provider:
print("Setting selected provider to", k)
self.win.provider_selector.set_selected(k)
break
self.win.prompt_text_view.grab_focus()
def load_dropdown(self):
self.provider_selector_model = Gtk.StringList()
self.providers = {}
@@ -124,31 +141,30 @@ class BavarderApplication(Adw.Application):
for provider, i in zip(
self.enabled_providers, range(len(self.enabled_providers))
):
print("Loading provider", provider)
try:
print("Loading provider", provider)
self.provider_selector_model.append(PROVIDERS[provider].name)
self.providers[i] = PROVIDERS[provider](
self.win, self, self.providers_data[i]
)
except KeyError:
print("Provider", provider, " -> KeyError, skipping...")
self.providers[i] = PROVIDERS[provider](
self.win, self, None
)
print("Provider", provider, "not found")
self.enabled_providers.remove(provider)
continue
else:
try:
_ = self.providers[i] # doesn't re load if already loaded
except KeyError:
self.providers[i] = PROVIDERS[provider](self.win, self)
self.win.provider_selector.set_model(self.provider_selector_model)
self.win.provider_selector.connect("notify", self.on_provider_selector_notify)
print(self.latest_provider)
for k, p in self.providers.items():
if p.slug == self.latest_provider:
print("Setting selected provider to", k)
self.win.provider_selector.set_selected(k)
break
self.win.prompt_text_view.grab_focus()
def load(self):
for p in self.providers.values():
print(self.providers_data)
try:
p.load(data=json.loads(self.providers_data[p.slug]))
except KeyError: # provider not in data
pass
def on_provider_selector_notify(self, _unused, pspec):
self.win.banner.set_revealed(False)
@@ -179,7 +195,6 @@ class BavarderApplication(Adw.Application):
website="https://bavarder.codeberg.page",
issue_url="https://github.com/Bavarder/Bavarder/issues",
support_url="https://codeberg.org/Bavarder/Bavarder/issues",
copyright="© 2023 0xMRTT",
)
@@ -197,7 +212,6 @@ Python: {platform.python_version()}
OS: {platform.system()} {platform.release()} {platform.version()}
Providers: {self.enabled_providers}
"""
)
about.present()
@@ -258,28 +272,34 @@ Providers: {self.enabled_providers}
self.win.wait_button.set_visible(True)
self.prompt = self.win.prompt_text_view.get_buffer().props.text
if self.prompt == "":
return
self.provider = self.win.provider_selector.props.selected
def thread_run():
response = self.ask(self.prompt)
try:
response = self.ask(self.prompt)
except GLib.Error as e:
response = e.message
GLib.idle_add(cleanup, response)
def cleanup(response):
self.win.spinner.stop()
self.win.ask_button.set_visible(True)
self.win.wait_button.set_visible(False)
t.join()
self.win.bot_text_view.get_buffer().set_text(response)
GLib.idle_add(self.update_response, response)
if self.clear_after_send:
self.win.prompt_text_view.get_buffer().set_text("")
GLib.idle_add(self.update_response, "")
self.t.join()
t = threading.Thread(target=thread_run)
t.start()
self.t = threading.Thread(target=thread_run)
self.t.start()
# def on_speak_action(self, widget, _):
# """Callback for the app.speak action."""
# print("app.speak action activated")
#
#
# try:
#
# with NamedTemporaryFile() as file_to_play:
@@ -290,7 +310,7 @@ Providers: {self.enabled_providers}
# self._play_audio(file_to_play.name)
# except Exception as exc:
# print(exc)
#
#
# def _play_audio(self, path):
# uri = "file://" + path
# self.player.set_property("uri", uri)

View File

@@ -1,5 +1,6 @@
from gi.repository import Gtk, Adw
from .provider import PROVIDERS
@Gtk.Template(resource_path="/io/github/Bavarder/Bavarder/ui/preferences.ui")
class Preferences(Adw.PreferencesWindow):
@@ -32,8 +33,18 @@ class Preferences(Adw.PreferencesWindow):
self.settings.set_boolean("clear-after-send", False)
def setup_providers(self):
for provider in self.app.providers.values():
# for provider in self.app.providers.values():
# try:
# self.provider_group.add(provider.preferences(self))
# except TypeError: # no prefs
# pass
# else:
# row = Adw.ActionRow()
# row.props.title = "No providers available"
# self.provider_group.add(row)
for provider in PROVIDERS.values():
try:
self.provider_group.add(provider.preferences(self))
except TypeError: # no prefs
self.provider_group.add(provider(self.app.win, self.app).preferences(self))
except TypeError:
pass

View File

@@ -11,16 +11,20 @@ from .hfopenassistantsft1pythia12b import HuggingFaceOpenAssistantSFT1PythiaProv
from .hfgpt2 import HuggingFaceGPT2Provider
from .hfdialogpt import HuggingFaceDialoGPTLargeProvider
from .bard import BardProvider
from .hfgpt2large import HuggingFaceGPT2LargeProvider
from .hfgpt2xl import HuggingFaceGPT2XLProvider
PROVIDERS = {
"alpacalora": AlpacaLoRAProvider,
"baichat": BAIChatProvider,
"bard": BardProvider,
#"bard": BardProvider, # Disabled because we need more documentation on how to use it
"catgpt": CatGPTProvider,
"hfdialogpt": HuggingFaceDialoGPTLargeProvider,
"hfgoogleflant5xxl": HuggingFaceGoogleFlanT5XXLProvider,
"hfgoogleflanu12": HuggingFaceGoogleFlanU12Provider,
"hfgpt2": HuggingFaceGPT2Provider,
"hfgpt2large": HuggingFaceGPT2LargeProvider,
"hfgpt2xl": HuggingFaceGPT2XLProvider,
"hfopenassistantsft1pythia12b": HuggingFaceOpenAssistantSFT1PythiaProvider,
"huggingchat": HuggingChatProvider,
"openaigpt35turbo": OpenAIGPT35TurboProvider,

View File

@@ -3,7 +3,7 @@ from .base import BavarderProvider
import socket
import requests
from gi.repository import Gtk, Adw
from gi.repository import Gtk, Adw, GLib
class AlpacaLoRAProvider(BavarderProvider):
@@ -34,28 +34,20 @@ class AlpacaLoRAProvider(BavarderProvider):
return ""
else:
self.win.banner.set_revealed(False)
r = response["data"][0]
self.update_response(r)
return r
if "error" in response:
self.win.banner.props.title = response["error"]
self.win.banner.props.button_label = ""
self.win.banner.set_revealed(True)
return ""
else:
r = response["data"][0]
GLib.idle_add(self.update_response, r)
return r
@property
def require_api_key(self):
return False
def preferences(self):
self.no_preferences()
def about(self):
about = Adw.AboutWindow(
transient_for=self.props.active_window,
application_name="Alpaca-LoRA",
developer_name="Stanford Alpaca",
developers=["0xMRTT https://github.com/0xMRTT"],
license_type=Gtk.License.GPL_3_0,
version=version,
copyright="© 2023 0xMRTT",
)
def save(self):
return {}

View File

@@ -3,6 +3,8 @@ from .base import BavarderProvider
from baichat_py import BAIChat
import socket
from gi.repository import Gtk, Adw, GLib
class BAIChatProvider(BavarderProvider):
name = "BAI Chat"
@@ -23,27 +25,13 @@ class BAIChatProvider(BavarderProvider):
return ""
else:
self.win.banner.set_revealed(False)
self.update_response(response.text)
GLib.idle_add(self.update_response, response.text)
return response.text
@property
def require_api_key(self):
return False
def preferences(self):
self.no_preferences()
def about(self):
about = Adw.AboutWindow(
transient_for=self.props.active_window,
application_name="BAI Chat",
developer_name="Theb.ai",
developers=["0xMRTT https://github.com/0xMRTT"],
license_type=Gtk.License.GPL_3_0,
version=version,
copyright="© 2023 0xMRTT",
)
def save(self):
return {}

View File

@@ -4,7 +4,8 @@ import socket
from googlebardpy import BardChat
from gi.repository import Gtk, Adw
from gi.repository import Gtk, Adw, GLib
class BardProvider(BavarderProvider):
name = "Bard"
@@ -27,7 +28,7 @@ class BardProvider(BavarderProvider):
return ""
else:
self.hide_banner()
self.update_response(response)
GLib.idle_add(self.update_response, response)
return response
@property
@@ -40,12 +41,18 @@ class BardProvider(BavarderProvider):
self.expander = Adw.ExpanderRow()
self.expander.props.title = self.name
about_button = Gtk.Button()
about_button.set_label("About")
about_button.connect("clicked", self.about)
about_button.set_valign(Gtk.Align.CENTER)
self.expander.add_action(about_button) # TODO: in Adw 1.4, use add_suffix
# about_button = Gtk.Button()
# about_button.set_label("About")
# about_button.connect("clicked", self.about)
# about_button.set_valign(Gtk.Align.CENTER)
# self.expander.add_action(about_button) # TODO: in Adw 1.4, use add_suffix
enabled = Gtk.Switch()
enabled.set_active(self.slug in self.app.enabled_providers)
enabled.connect("notify::active", self.on_enabled)
enabled.set_valign(Gtk.Align.CENTER)
self.expander.add_action(enabled)
self.api_row = Adw.PasswordEntryRow()
self.api_row.connect("apply", self.on_apply)
@@ -58,28 +65,24 @@ class BardProvider(BavarderProvider):
def on_apply(self, widget):
self.hide_banner()
api_key = self.api_row.get_text()
print(api_key)
self.api_key = api_key
self.chat = BardChat(api_key)
def about(self, *args):
about = Adw.AboutWindow(
transient_for=self.pref_win,
application_name="Bard",
developer_name="Google",
developers=["0xMRTT https://github.com/0xMRTT"],
license_type=Gtk.License.GPL_3_0,
version=self.version,
copyright="© 2023 0xMRTT",
)
about.present()
try:
self.chat = BardChat(api_key)
except AttributeError:
self.banner.props.title = "Invalid API key"
self.banner.props.button_label = ""
self.banner.set_revealed(True)
def save(self):
try:
return {"api_key": self.api_key}
except AttributeError: # no api key
except AttributeError: # no api key
return {}
def load(self, data):
self.chat = BardChat(api_key)
self.api_key = api_key
try:
self.chat = BardChat(data["api_key"])
self.api_key = data["api_key"]
except AttributeError:
self.chat = None
self.api_key = None

View File

@@ -2,24 +2,25 @@ from gettext import gettext as _
from gi.repository import Gtk, Adw
import json
import json
class BavarderProvider:
name = None
slug = None
version = "0.1.7"
developer_name = "0xMRTT"
developers = ["0xMRTT https://github.com/0xMRTT"]
license_type = Gtk.License.GPL_3_0
copyright = "© 2023 0xMRTT"
def __init__(self, win, app, data, *args, **kwargs):
def __init__(self, win, app, *args, **kwargs):
self.win = win
self.banner = win.banner
self.bot_text_view = win.bot_text_view
self.app = app
self.chat = None
self.data = data
self.update_response = app.update_response
if self.data:
self.load(json.loads(self.data))
self.no_data = False
else:
self.no_data = True
def ask(self, prompt):
raise NotImplementedError()
@@ -28,15 +29,15 @@ class BavarderProvider:
def require_api_key(self):
raise NotImplementedError()
def preferences(self):
raise NotImplementedError()
def preferences(self, win):
return self.no_preferences(win)
def no_api_key(self, title=None):
if title:
self.win.banner.props.title = title
else:
self.win.banner.props.title = (
_("No API key provided, you can provide one in settings")
self.win.banner.props.title = _(
"No API key provided, you can provide one in settings"
)
self.win.banner.props.button_label = _("Open settings")
self.win.banner.connect("button-clicked", self.app.on_preferences_action)
@@ -50,8 +51,17 @@ class BavarderProvider:
def hide_banner(self):
self.win.banner.set_revealed(False)
def about(self, *args):
raise NotImplementedError()
def about(self, *args, **kwargs):
about = Adw.AboutWindow(
transient_for=self.pref_win,
application_name=self.name,
developer_name=self.developer_name,
developers=self.developers,
license_type=self.license_type,
version=self.version,
copyright=self.copyright,
)
about.present()
def no_preferences(self, win):
self.pref_win = win
@@ -59,12 +69,18 @@ class BavarderProvider:
self.expander = Adw.ExpanderRow()
self.expander.props.title = self.name
about_button = Gtk.Button()
about_button.set_label("About")
about_button.connect("clicked", self.about)
about_button.set_valign(Gtk.Align.CENTER)
self.expander.add_action(about_button) # TODO: in Adw 1.4, use add_suffix
# about_button = Gtk.Button()
# about_button.set_label("About")
# about_button.connect("clicked", self.about)
# about_button.set_valign(Gtk.Align.CENTER)
# self.expander.add_action(about_button) # TODO: in Adw 1.4, use add_suffix
enabled = Gtk.Switch()
enabled.set_active(self.slug in self.app.enabled_providers)
enabled.connect("notify::active", self.on_enabled)
enabled.set_valign(Gtk.Align.CENTER)
self.expander.add_action(enabled)
self.no_pref_row = Adw.ActionRow()
self.no_pref_row.props.title = "No preferences available"
@@ -73,7 +89,20 @@ class BavarderProvider:
return self.expander
def save(self):
raise NotImplementedError()
return {}
def load(self, data):
raise NotImplementedError()
def chunk(self, prompt, n=4000):
if len(prompt) > n:
print("Chuncking prompt")
prompt = [(prompt[i : i + n]) for i in range(0, len(prompt), n)]
return prompt
def on_enabled(self, widget, *args):
if widget.get_active():
self.app.enabled_providers.append(self.slug)
else:
self.app.enabled_providers.remove(self.slug)
self.app.load_dropdown()

View File

@@ -2,7 +2,8 @@ from .base import BavarderProvider
from random import choice, randint
from gi.repository import Gtk, Adw
from gi.repository import Gtk, Adw, GLib
class CatGPTProvider(BavarderProvider):
name = _("Cat GPT")
@@ -47,21 +48,6 @@ class CatGPTProvider(BavarderProvider):
def require_api_key(self):
return False
def preferences(self, win):
return self.no_preferences(win)
def about(self, *args):
about = Adw.AboutWindow(
transient_for=self.pref_win,
application_name=_("Cat GPT"),
developer_name="0xMRTT",
developers=["0xMRTT https://github.com/0xMRTT"],
license_type=Gtk.License.GPL_3_0,
version=self.version,
copyright="© 2023 0xMRTT",
)
about.present()
def save(self):
return {}

View File

@@ -3,12 +3,17 @@ import json
import socket
import requests
from gi.repository import Gtk, Adw, GLib
class HuggingFaceDialoGPTLargeProvider(BaseHFProvider):
name = "DialoGPT"
slug = "dialogpt"
slug = "hfdialogpt"
model = "microsoft/DialoGPT-large"
authorization = False
@property
def require_api_key(self):
return False
def ask(self, prompt):
try:
@@ -41,5 +46,5 @@ class HuggingFaceDialoGPTLargeProvider(BaseHFProvider):
else:
self.hide_banner()
print(response)
self.update_response(response)
GLib.idle_add(self.update_response, response)
return response

View File

@@ -5,4 +5,7 @@ class HuggingFaceGoogleFlanT5XXLProvider(BaseHFProvider):
name = "Google Flan T5 XXL"
slug = "hfgoogleflant5xxl"
model = "google/flan-t5-xxl"
authorization = False
@property
def require_api_key(self):
return False

View File

@@ -5,4 +5,7 @@ class HuggingFaceGoogleFlanU12Provider(BaseHFProvider):
name = "Google Flan U12"
slug = "hfgoogleflanu12"
model = "google/flan-ul2"
authorization = False
@property
def require_api_key(self):
return False

View File

@@ -3,6 +3,9 @@ from .huggingface import BaseHFProvider
class HuggingFaceGPT2Provider(BaseHFProvider):
name = "GPT 2"
slug = "gpt2"
slug = "hfgpt2"
model = "gpt2"
authorization = False
@property
def require_api_key(self):
return False

View File

@@ -0,0 +1,11 @@
from .huggingface import BaseHFProvider
class HuggingFaceGPT2LargeProvider(BaseHFProvider):
name = "GPT 2 Large"
slug = "hfgpt2large"
model = "gpt2-large"
@property
def require_api_key(self):
return False

11
src/provider/hfgpt2xl.py Normal file
View File

@@ -0,0 +1,11 @@
from .huggingface import BaseHFProvider
class HuggingFaceGPT2XLProvider(BaseHFProvider):
name = "GPT 2 XL"
slug = "hfgpt2"
model = "gpt2-xl"
@property
def require_api_key(self):
return False

View File

@@ -5,4 +5,7 @@ class HuggingFaceOpenAssistantSFT1PythiaProvider(BaseHFProvider):
name = "Open-Assistant SFT-1 12B Model "
slug = "hfopenassistantsft1pythia12b"
model = "OpenAssistant/oasst-sft-1-pythia-12b"
authorization = False
@property
def require_api_key(self):
return False

View File

@@ -1,58 +1,6 @@
from .base import BavarderProvider
from .huggingchatbase import BaseHuggingChatProvider
from hgchat import HGChat
import socket
from gi.repository import Gtk, Adw
class HuggingChatProvider(BavarderProvider):
class HuggingChatProvider(BaseHuggingChatProvider):
name = "Hugging Chat"
slug = "huggingchat"
def __init__(self, win, app, *args, **kwargs):
super().__init__(win, app, *args, **kwargs)
self.chat = HGChat()
def ask(self, prompt):
try:
response = self.chat.ask(prompt)
except socket.gaierror:
self.no_connection()
return ""
else:
self.win.banner.set_revealed(False)
r = ""
for i in response:
char = i["token"]["text"]
if char == "</s>":
r += "\n"
else:
r += char
self.update_response(r)
return r
@property
def require_api_key(self):
return False
def preferences(self):
self.no_preferences()
def about(self):
about = Adw.AboutWindow(
transient_for=self.props.active_window,
application_name="Hugging Chat",
developer_name="Hugging Face",
developers=["0xMRTT https://github.com/0xMRTT"],
license_type=Gtk.License.GPL_3_0,
version=version,
copyright="© 2023 0xMRTT",
)
def save(self):
return {}
def load(self, data):
pass
model = "OpenAssistant/oasst-sft-6-llama-30b-xor"

View File

@@ -0,0 +1,50 @@
from .base import BavarderProvider
from hgchat import HGChat
import socket
from gi.repository import Gtk, Adw, GLib
class BaseHuggingChatProvider(BavarderProvider):
name = "Hugging Chat"
slug = "huggingchat"
model = None
def __init__(self, win, app, *args, **kwargs):
super().__init__(win, app, *args, **kwargs)
self.chat = HGChat(self.model)
def ask(self, prompt):
try:
response = self.chat.ask(prompt)
except socket.gaierror:
self.no_connection()
return ""
except Exception as e:
self.win.banner.props.title = str(e)
self.win.banner.props.button_label = ""
self.win.banner.set_revealed(True)
return ""
else:
self.win.banner.set_revealed(False)
r = ""
for i in response:
char = i["token"]["text"]
if char == "</s>":
r += "\n"
else:
r += char
GLib.idle_add(self.update_response, r)
return r
@property
def require_api_key(self):
return False
def save(self):
return {}
def load(self, data):
pass

View File

@@ -4,14 +4,13 @@ from .base import BavarderProvider
import socket
from gi.repository import Gtk, Adw
from gi.repository import Gtk, Adw, GLib
class BaseHFProvider(BavarderProvider):
name = None
slug = None
model = None
authorization = True
def __init__(self, win, app, *args, **kwargs):
super().__init__(win, app, *args, **kwargs)
@@ -21,10 +20,9 @@ class BaseHFProvider(BavarderProvider):
try:
payload = json.dumps({"inputs": prompt})
headers = {"Content-Type": "application/json"}
if self.authorization:
if self.require_api_key:
headers["Authorization"] = f"Bearer {self.api_key}"
url = f"https://api-inference.huggingface.co/models/{self.model}"
print(url)
response = requests.request("POST", url, headers=headers, data=payload)
if response.status_code == 403:
self.no_api_key()
@@ -34,7 +32,6 @@ class BaseHFProvider(BavarderProvider):
self.win.banner.props.button_label = ""
self.win.banner.set_revealed(True)
return ""
print(response)
response = response.json()[0]["generated_text"]
# except NoApikey:
@@ -48,50 +45,53 @@ class BaseHFProvider(BavarderProvider):
else:
self.hide_banner()
print(response)
self.update_response(response)
GLib.idle_add(self.update_response, response)
return response
@property
def require_api_key(self):
if self.authorization:
return True
return False
def preferences(self):
if self.authorization:
def preferences(self, win):
if self.require_api_key:
self.expander = Adw.ExpanderRow()
self.expander.props.title = self.name
# about_button = Gtk.Button()
# about_button.set_label("About")
# about_button.connect("clicked", self.about)
# about_button.set_valign(Gtk.Align.CENTER)
# self.expander.add_action(about_button) # TODO: in Adw 1.4, use add_suffix
enabled = Gtk.Switch()
enabled.set_active(self.slug in self.app.enabled_providers)
enabled.connect("notify::active", self.on_enabled)
enabled.set_valign(Gtk.Align.CENTER)
self.expander.add_action(enabled)
self.api_row = Adw.PasswordEntryRow()
self.api_row.connect("apply", self.on_apply)
self.api_row.props.title = "API Key"
self.api_row.props.text = self.api_key or ""
self.api_row.set_show_apply_button(True)
self.expander.add_row(self.api_row)
return self.expander
pass
else:
return self.no_preferences(win)
def on_apply(self, widget):
self.hide_banner()
self.api_key = self.api_row.get_text()
print(self.api_key)
def about(self):
about = Adw.AboutWindow(
transient_for=self.props.active_window,
application_name=self.name,
developer_name="HuggingFace",
developers=["0xMRTT https://github.com/0xMRTT"],
license_type=Gtk.License.GPL_3_0,
version=version,
copyright="© 2023 0xMRTT",
)
def save(self):
if self.authorization:
if self.require_api_key:
return {"api_key": self.api_key}
return {}
def load(self, data):
if self.authorization:
if self.require_api_key:
self.api_key = data["api_key"]

View File

@@ -12,8 +12,11 @@ providers_sources = [
'hfgoogleflant5xxl.py',
'hfgoogleflanu12.py',
'hfgpt2.py',
'hfgpt2large.py',
'hfgpt2xl.py',
'hfopenassistantsft1pythia12b.py',
'huggingchat.py',
'huggingchatbase.py',
'huggingface.py',
'openai.py',
'openaigpt4.py',

View File

@@ -3,7 +3,7 @@ from .base import BavarderProvider
import openai
import socket
from gi.repository import Gtk, Adw
from gi.repository import Gtk, Adw, GLib
class BaseOpenAIProvider(BavarderProvider):
@@ -19,11 +19,27 @@ class BaseOpenAIProvider(BavarderProvider):
self.pref_win = None
def ask(self, prompt):
prompt = self.chunk(prompt)
try:
response = self.chat.create(
model=self.model, messages=[{"role": "user", "content": prompt}]
)
response = response.choices[0].message.content
if isinstance(prompt, list):
self.win.banner.props.title = "Prompt too long, splitting into chunks."
self.win.banner.props.button_label = ""
self.win.banner.set_revealed(True)
response = ""
for chunk in prompt:
response += (
self.chat.create(
model=self.model,
messages=[{"role": "user", "content": chunk}],
)
.choices[0]
.message.content
)
else:
response = self.chat.create(
model=self.model, messages=[{"role": "user", "content": prompt}]
)
response = response.choices[0].message.content
except openai.error.AuthenticationError:
self.no_api_key()
return ""
@@ -32,12 +48,17 @@ class BaseOpenAIProvider(BavarderProvider):
self.win.banner.props.button_label = ""
self.win.banner.set_revealed(True)
return ""
except openai.error.RateLimitError:
self.win.banner.props.title = "You exceeded your current quota, please check your plan and billing details."
self.win.banner.props.button_label = ""
self.win.banner.set_revealed(True)
return ""
except socket.gaierror:
self.no_connection()
return ""
else:
self.hide_banner()
self.update_response(response)
GLib.idle_add(self.update_response, response)
return response
@property
@@ -50,15 +71,22 @@ class BaseOpenAIProvider(BavarderProvider):
self.expander = Adw.ExpanderRow()
self.expander.props.title = self.name
about_button = Gtk.Button()
about_button.set_label("About")
about_button.connect("clicked", self.about)
about_button.set_valign(Gtk.Align.CENTER)
self.expander.add_action(about_button) # TODO: in Adw 1.4, use add_suffix
# about_button = Gtk.Button()
# about_button.set_label("About")
# about_button.connect("clicked", self.about)
# about_button.set_valign(Gtk.Align.CENTER)
# self.expander.add_action(about_button) # TODO: in Adw 1.4, use add_suffix
enabled = Gtk.Switch()
enabled.set_active(self.slug in self.app.enabled_providers)
enabled.connect("notify::active", self.on_enabled)
enabled.set_valign(Gtk.Align.CENTER)
self.expander.add_action(enabled)
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.title = self.api_key_title
self.api_row.set_show_apply_button(True)
self.expander.add_row(self.api_row)
@@ -68,23 +96,11 @@ class BaseOpenAIProvider(BavarderProvider):
def on_apply(self, widget):
self.hide_banner()
api_key = self.api_row.get_text()
print(api_key)
openai.api_key = api_key
def about(self, *args):
about = Adw.AboutWindow(
transient_for=self.pref_win,
application_name=self.name,
developer_name="OpenAI",
developers=["0xMRTT https://github.com/0xMRTT"],
license_type=Gtk.License.GPL_3_0,
version=self.version,
copyright="© 2023 0xMRTT",
)
about.present()
def save(self):
return {"api_key": openai.api_key}
def load(self, data):
openai.api_key = data["api_key"]
if data["api_key"]:
openai.api_key = data["api_key"]

View File

@@ -5,4 +5,4 @@ class OpenAIGPT4Provider(BaseOpenAIProvider):
name = "OpenAI GPT 4"
slug = "openaigpt4"
model = "gpt-4"
api_key_title = "API Key (Require a plan with access to the GPT-4 model)"
api_key_title = "API Key (Require a plan with access to the GPT-4 model)"