Compare commits
77 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
62b57a6ad9
|
|||
|
72715e0bde
|
|||
|
af9bfc1d87
|
|||
|
cd5d73d64f
|
|||
|
4867f9c02d
|
|||
|
916ff133da
|
|||
|
61d69aaf06
|
|||
|
25cefc9671
|
|||
|
722ee665ec
|
|||
|
8a328e1bd6
|
|||
|
499723d11e
|
|||
|
3664324a69
|
|||
|
b559289c3d
|
|||
|
4d4bcf5957
|
|||
|
3c6e11cf61
|
|||
|
5bbfdffb10
|
|||
|
9c1ae1f105
|
|||
|
73a391fd9e
|
|||
|
edf12c954d
|
|||
|
a335768d76
|
|||
|
ad287c34c2
|
|||
| 75f4578bce | |||
| dc477edebb | |||
| 73b6c2edd5 | |||
| e3acaec9d2 | |||
| e1cab5b574 | |||
| f324a71b13 | |||
| bff077f0c6 | |||
|
|
a7fad0d4c7 | ||
| bf530e13c4 | |||
| 86ab05b19b | |||
| d8fffffb77 | |||
| a06c422ab2 | |||
|
|
3ebc510c20 | ||
|
|
aebdcb2e86 | ||
|
|
57f351eaca | ||
|
|
63ffe24403 | ||
|
|
1c08f7d639 | ||
|
|
ec27bd38ae | ||
|
f478aa80d5
|
|||
|
dd781d2f01
|
|||
|
764cba5e27
|
|||
| 17557b478f | |||
|
|
a3df738a9c | ||
|
|
a60264ea98 | ||
|
|
018f9a5493 | ||
|
|
9b47afcbe6 | ||
|
6f27cae7a8
|
|||
|
|
38b5f67973 | ||
|
|
304f816cab | ||
|
|
2a74cdee81 | ||
|
|
46c1891e24 | ||
|
|
d62b0bbcdf | ||
|
|
0979652e87 | ||
|
|
6524de02a5 | ||
|
|
9656830647 | ||
|
|
34bd7149e1 | ||
|
|
18f053d47f | ||
|
|
6423730b1b | ||
|
|
0e468f9f17 | ||
|
bd177b73fb
|
|||
|
d42c0265b5
|
|||
|
455370416f
|
|||
|
0ef94b2036
|
|||
|
62bba52dd2
|
|||
|
6cf10e6f2e
|
|||
|
|
22ca867a65 | ||
|
aa5c6bbfd9
|
|||
|
28de905b19
|
|||
|
b2fd2566ab
|
|||
|
e306d8dd2d
|
|||
|
f71124df62
|
|||
|
f31e9ff99c
|
|||
|
2d33daf998
|
|||
|
243910c5c0
|
|||
|
|
acf8560f11 | ||
|
|
fc023a3b4c |
@@ -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
10
SEEN.md
@@ -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
|
||||
@@ -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",
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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', ],
|
||||
)
|
||||
|
||||
@@ -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 ""
|
||||
|
||||
14
po/LINGUAS
14
po/LINGUAS
@@ -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
|
||||
|
||||
64
po/az.po
64
po/az.po
@@ -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"
|
||||
|
||||
64
po/cs.po
64
po/cs.po
@@ -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"
|
||||
|
||||
61
po/de.po
61
po/de.po
@@ -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"
|
||||
|
||||
|
||||
61
po/es.po
61
po/es.po
@@ -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
132
po/fa.po
Normal 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 "کت جی پی تی"
|
||||
64
po/fi.po
64
po/fi.po
@@ -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"
|
||||
|
||||
63
po/fr.po
63
po/fr.po
@@ -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 l’interface 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é d’API 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"
|
||||
|
||||
|
||||
47
po/hu.po
47
po/hu.po
@@ -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 ""
|
||||
|
||||
97
po/it.po
97
po/it.po
@@ -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"
|
||||
|
||||
61
po/nl.po
61
po/nl.po
@@ -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
148
po/pl.po
Normal 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"
|
||||
64
po/pt.po
64
po/pt.po
@@ -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"
|
||||
|
||||
64
po/ru.po
64
po/ru.po
@@ -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 "Готов"
|
||||
|
||||
|
||||
64
po/sv.po
64
po/sv.po
@@ -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"
|
||||
|
||||
|
||||
64
po/tr.po
64
po/tr.po
@@ -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
107
po/uk.po
@@ -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 "Готово"
|
||||
|
||||
120
src/main.py
120
src/main.py
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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 {}
|
||||
|
||||
|
||||
@@ -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 {}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
@@ -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 {}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
11
src/provider/hfgpt2large.py
Normal file
11
src/provider/hfgpt2large.py
Normal 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
11
src/provider/hfgpt2xl.py
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
50
src/provider/huggingchatbase.py
Normal file
50
src/provider/huggingchatbase.py
Normal 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
|
||||
@@ -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"]
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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)"
|
||||
|
||||
Reference in New Issue
Block a user