201 Commits
0.2.2 ... 0.2.4

Author SHA1 Message Date
cb8ebad771 bump: 0.2.4
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 21m40s
2023-06-16 23:20:11 +02:00
e72f68c9b3 feat: new UI !
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 20m58s
2023-06-16 23:14:00 +02:00
Daudix_UFO
a74de76ae4 Translated using Weblate (Russian)
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 18m36s
Currently translated at 100.0% (43 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/ru/
2023-06-16 06:37:38 +00:00
0xMRTT
607258ef9f Merge pull request 'Add meson build instructions (fixes #34)' (#35) from WSDMatty/Bavarder:wsdmatty-patch-1 into main
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 29m18s
Reviewed-on: https://codeberg.org/Bavarder/Bavarder/pulls/35
2023-06-12 19:54:29 +00:00
WSDMatty
ce31253997 Add missing space 2023-06-12 19:32:51 +00:00
WSDMatty
511b0e6d65 Add meson build instructions 2023-06-12 17:57:58 +00:00
b7131cc212 From d4457f30e5b16432d53f94dff94f8cf849ef2b71 Mon Sep 17 00:00:00 2001
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 12m50s
From: soumyadghosh <soumyadeepghosh2004@zohomail.in>
Date: Sat, 10 Jun 2023 23:45:48 +0530
Subject: [PATCH] added snap build files
2023-06-10 21:19:54 +02:00
artnay
8d03619705 Translated using Weblate (Finnish)
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 15m17s
Currently translated at 100.0% (43 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fi/
2023-06-09 12:26:51 +00:00
vabaME
79f8f68ac2 Translated using Weblate (Estonian)
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 11m55s
Currently translated at 95.3% (41 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/et/
2023-06-05 19:37:36 +00:00
vabaME
d1e065a725 Translated using Weblate (Estonian)
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 10m34s
Currently translated at 13.9% (6 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/et/
2023-06-05 03:29:25 +00:00
Anonymous
f13392494b Translated using Weblate (Estonian)
Currently translated at 13.9% (6 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/et/
2023-06-05 03:29:25 +00:00
yangyangdaji
c5117dfa7f Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (43 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/zh_Hans/
2023-06-05 03:29:25 +00:00
gallegonovato
924ae707f7 Translated using Weblate (Spanish)
Currently translated at 100.0% (43 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/es/
2023-06-05 03:29:25 +00:00
vabaME
1e31459044 Added translation using Weblate (Estonian)
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 11m30s
2023-06-05 03:28:18 +00:00
Anatolii Bielibov
268f30b7a4 Translated using Weblate (Ukrainian)
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 11m19s
Currently translated at 93.0% (40 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/uk/
2023-06-04 00:37:36 +00:00
7e0e53774e Translated using Weblate (French)
Currently translated at 95.3% (41 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fr/
2023-06-04 00:37:36 +00:00
Eryk Michalak
fdf2d25b6a Translated using Weblate (Polish)
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 10m58s
Currently translated at 95.3% (41 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/pl/
2023-06-03 04:18:59 +00:00
Anonymous
416a4692c3 Translated using Weblate (Arabic)
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 11m37s
Currently translated at 83.7% (36 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/ar/
2023-06-03 00:37:37 +00:00
Anonymous
3311f222c7 Translated using Weblate (Thai)
Currently translated at 41.8% (18 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/th/
2023-06-03 00:37:37 +00:00
Anonymous
ae09b392fd Translated using Weblate (Persian)
Currently translated at 41.8% (18 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fa/
2023-06-03 00:37:37 +00:00
Anonymous
90177b3041 Translated using Weblate (Polish)
Currently translated at 65.1% (28 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/pl/
2023-06-03 00:37:37 +00:00
Anonymous
7f31ba23da Translated using Weblate (Dutch)
Currently translated at 100.0% (43 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/nl/
2023-06-03 00:37:37 +00:00
Vistaus
043febd966 Translated using Weblate (Dutch)
Currently translated at 100.0% (43 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/nl/
2023-06-03 00:37:37 +00:00
Anonymous
595a974bf8 Translated using Weblate (Turkish)
Currently translated at 95.3% (41 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/tr/
2023-06-03 00:37:36 +00:00
Anonymous
79bb2fe237 Translated using Weblate (Finnish)
Currently translated at 69.7% (30 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fi/
2023-06-03 00:37:36 +00:00
Anonymous
3d22dd0268 Translated using Weblate (Azerbaijani)
Currently translated at 95.3% (41 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/az/
2023-06-03 00:37:36 +00:00
Anonymous
5c20b22e93 Translated using Weblate (Hungarian)
Currently translated at 34.8% (15 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/hu/
2023-06-03 00:37:36 +00:00
Anonymous
74e58b9d71 Translated using Weblate (Swedish)
Currently translated at 44.1% (19 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/sv/
2023-06-03 00:37:36 +00:00
Anonymous
3be65b5af3 Translated using Weblate (Russian)
Currently translated at 95.3% (41 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/ru/
2023-06-03 00:37:36 +00:00
Anonymous
288154bb73 Translated using Weblate (Spanish)
Currently translated at 93.0% (40 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/es/
2023-06-03 00:37:36 +00:00
maymage
171dcb409a Translated using Weblate (German)
Currently translated at 100.0% (43 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/de/
2023-06-03 00:37:36 +00:00
Anonymous
e72c88977c Translated using Weblate (Chinese (Simplified))
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 10m47s
Currently translated at 95.3% (41 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/zh_Hans/
2023-06-02 11:46:24 +00:00
Anonymous
afa6bf29db Translated using Weblate (French)
Currently translated at 93.0% (40 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fr/
2023-06-02 11:46:24 +00:00
Anonymous
6804990133 Translated using Weblate (German)
Currently translated at 95.3% (41 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/de/
2023-06-02 11:46:24 +00:00
Anonymous
fc6a0aace6 Translated using Weblate (Portuguese)
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 11m13s
Currently translated at 90.6% (39 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/pt/
2023-06-02 11:46:21 +00:00
Anonymous
e7acf0925e Translated using Weblate (Ukrainian)
Currently translated at 88.3% (38 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/uk/
2023-06-02 11:46:20 +00:00
Anonymous
d6ed971d76 Translated using Weblate (Galician)
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 11m39s
Currently translated at 88.3% (38 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/gl/
2023-06-02 11:46:18 +00:00
Anonymous
51379483c4 Translated using Weblate (Czech)
Currently translated at 93.0% (40 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/cs/
2023-06-02 11:46:18 +00:00
Anonymous
025f7569b4 Translated using Weblate (Italian)
Currently translated at 90.6% (39 of 43 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/it/
2023-06-02 11:46:18 +00:00
Codeberg Translate
87433d5c80 Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/
2023-06-02 11:46:12 +00:00
K.B.Dharun Krishna
cfc948db06 Translated using Weblate (Tamil)
Currently translated at 100.0% (42 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/ta/
2023-06-02 11:46:10 +00:00
thepoladov13
64e6454840 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (42 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/az/
2023-06-02 11:46:10 +00:00
Daudix_UFO
0628c4443a Translated using Weblate (Russian)
Currently translated at 100.0% (42 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/ru/
2023-06-02 11:46:10 +00:00
abac750252 po: update pot
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 10m22s
2023-06-01 17:41:18 +00:00
Anonymous
d5dd123a0d Translated using Weblate (Tamil)
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 11m32s
Currently translated at 7.1% (3 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/ta/
2023-06-01 16:05:30 +00:00
yangyangdaji
021667b506 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (42 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/zh_Hans/
2023-06-01 16:05:30 +00:00
K.B.Dharun Krishna
812acbc855 Added translation using Weblate (Tamil)
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 12m49s
2023-06-01 15:05:10 +00:00
nakibrayan2
f67bfe3eea Translated using Weblate (Arabic)
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 11m2s
Currently translated at 88.0% (37 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/ar/
2023-06-01 02:37:36 +00:00
nakibrayan2
101348079a Translated using Weblate (Arabic)
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 10m26s
Currently translated at 88.0% (37 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/ar/
2023-05-31 13:37:37 +00:00
Anonymous
d3abe6584f Translated using Weblate (Arabic)
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 10m48s
Currently translated at 40.4% (17 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/ar/
2023-05-31 13:22:25 +00:00
nakibrayan2
65beca89da Translated using Weblate (Arabic)
Currently translated at 40.4% (17 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/ar/
2023-05-31 13:22:25 +00:00
Anonymous
c6fa60cd5a Translated using Weblate (Hungarian)
Currently translated at 35.7% (15 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/hu/
2023-05-31 13:22:24 +00:00
nakibrayan2
8e86c0e40d Added translation using Weblate (Arabic)
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 12m18s
2023-05-31 13:15:45 +00:00
maymage
ae3400b110 Translated using Weblate (German)
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 10m39s
Currently translated at 100.0% (42 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/de/
2023-05-30 04:37:36 +00:00
oktay454
46cfbb8e73 Translated using Weblate (Turkish)
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 22m47s
Currently translated at 100.0% (42 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/tr/
2023-05-29 15:20:56 +00:00
Anatolii Bielibov
5e8e3c6682 Translated using Weblate (Ukrainian)
Currently translated at 92.8% (39 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/uk/
2023-05-29 15:20:56 +00:00
maymage
2917dc202b Translated using Weblate (German)
Currently translated at 100.0% (42 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/de/
2023-05-29 15:20:56 +00:00
ff6818bba0 doc: update SEEN
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 22m12s
2023-05-29 12:52:33 +02:00
f1d5119e74 feat: use baichat v3
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 22m12s
2023-05-29 10:16:13 +02:00
57763b4d54 fix: use standard flatpak
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 21m23s
2023-05-29 00:32:24 +02:00
c3086e79c0 fix: remove starcoder
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 15m33s
2023-05-29 00:26:47 +02:00
890348f94e feat: use new baichat 2023-05-29 00:25:01 +02:00
d391c9801e deps: use baichat 0.3.0 (wip)
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 15m50s
2023-05-28 22:20:50 +00:00
ca3b4db83a ci: use normal
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 19m40s
2023-05-28 18:21:22 +02:00
1437d80260 ci: update gitea
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 20m55s
2023-05-28 17:25:38 +02:00
oktay454
e3ec9faa28 Translated using Weblate (Turkish)
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 11m18s
Currently translated at 100.0% (42 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/tr/
2023-05-28 12:22:27 +00:00
Anonymous
8c9a41e22f Translated using Weblate (Galician)
Currently translated at 92.8% (39 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/gl/
2023-05-28 12:22:27 +00:00
Anonymous
a7b8c0d207 Translated using Weblate (Chinese (Simplified))
Currently translated at 97.6% (41 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/zh_Hans/
2023-05-28 12:22:27 +00:00
Anonymous
8ec0e79fb4 Translated using Weblate (Dutch)
Currently translated at 100.0% (42 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/nl/
2023-05-28 12:22:27 +00:00
Vistaus
a880e9074a Translated using Weblate (Dutch)
Currently translated at 100.0% (42 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/nl/
2023-05-28 12:22:27 +00:00
Anonymous
fdb1efd6ab Translated using Weblate (Turkish)
Currently translated at 100.0% (42 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/tr/
2023-05-28 12:22:27 +00:00
oktay454
973c3abee2 Translated using Weblate (Turkish)
Currently translated at 100.0% (42 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/tr/
2023-05-28 12:22:27 +00:00
Anonymous
6c9daf6f0b Translated using Weblate (Finnish)
Currently translated at 73.8% (31 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fi/
2023-05-28 12:22:27 +00:00
Anonymous
cf13c731b9 Translated using Weblate (Hungarian)
Currently translated at 30.9% (13 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/hu/
2023-05-28 12:22:27 +00:00
Anonymous
3e59237358 Translated using Weblate (Czech)
Currently translated at 97.6% (41 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/cs/
2023-05-28 12:22:27 +00:00
Anonymous
9c1185b894 Translated using Weblate (French)
Currently translated at 97.6% (41 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fr/
2023-05-28 12:22:27 +00:00
Anonymous
eb6ba12c09 Translated using Weblate (Spanish)
Currently translated at 97.6% (41 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/es/
2023-05-28 12:22:27 +00:00
Anonymous
27bbec3d33 Translated using Weblate (German)
Currently translated at 97.6% (41 of 42 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/de/
2023-05-28 12:22:27 +00:00
a653e34d83 fix: resposne
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 10m52s
2023-05-28 09:56:32 +02:00
Codeberg Translate
fb17c035c3 Update translation files
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 10m34s
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/
2023-05-28 03:37:38 +00:00
elementbound
3048f741bc Translated using Weblate (Hungarian)
Currently translated at 38.2% (18 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/hu/
2023-05-28 03:37:36 +00:00
02e25c098b fix: remove files which moved
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 10m24s
2023-05-28 03:19:11 +02:00
64bad9291e feat: add bottom toolbar 2023-05-28 03:18:54 +02:00
04405252d0 fix: move experiment to a new file
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 10m24s
2023-05-28 01:03:42 +02:00
e22ebd5b8f wip: gtk use main
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 10m9s
2023-05-28 00:46:27 +02:00
37fec583ab wip: fix appstream
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 10m16s
2023-05-28 00:44:31 +02:00
447ab66a5e wip: add xmlb
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 10m16s
2023-05-28 00:42:58 +02:00
a7a8ef923b wip: add yaml
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 10m20s
2023-05-28 00:42:04 +02:00
a50a49e10d wip:: fix apstream
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 10m13s
2023-05-28 00:39:59 +02:00
b5a7784f4b wip: add appstream
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 10m16s
2023-05-28 00:38:40 +02:00
7f15cc59be wip: add gtk4
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 10m18s
2023-05-28 00:36:22 +02:00
e8bfb6cb2e wip: try libadwaita 1.4
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 10m23s
2023-05-28 00:33:02 +02:00
8feb5d98b5 doc: update readme
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 10m10s
2023-05-27 20:39:20 +02:00
6cdaab48c0 po: update POT + POTFILES 2023-05-27 20:37:29 +02:00
xosecalvo
cf9a619ee9 Translated using Weblate (Galician)
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 9m42s
Currently translated at 97.8% (46 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/gl/
2023-05-27 14:51:32 +00:00
xosecalvo
c6e88c7709 Translated using Weblate (Galician)
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 9m40s
Currently translated at 23.4% (11 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/gl/
2023-05-27 14:05:25 +00:00
Anonymous
c78885aaaf Translated using Weblate (Galician)
Currently translated at 23.4% (11 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/gl/
2023-05-27 14:05:25 +00:00
xosecalvo
403e78067a Added translation using Weblate (Galician)
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 9m48s
2023-05-27 14:05:05 +00:00
6ee13f7986 fix: theming
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 9m24s
2023-05-27 13:20:00 +02:00
aresende
702a4ba297 Translated using Weblate (Portuguese)
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 9m14s
Currently translated at 100.0% (47 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/pt/
2023-05-27 08:37:36 +00:00
muznyo
acd90b6e20 Translated using Weblate (Czech)
Currently translated at 100.0% (47 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/cs/
2023-05-27 08:37:36 +00:00
rene-coty
8131e8c4ef Translated using Weblate (French)
Currently translated at 100.0% (47 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fr/
2023-05-27 08:37:36 +00:00
gallegonovato
4109c45666 Translated using Weblate (Spanish)
Currently translated at 100.0% (47 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/es/
2023-05-27 08:37:36 +00:00
31689a1d72 feat: add message bubble
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 8m45s
2023-05-27 01:58:19 +02:00
dbfe5b4eb9 fix: imports 2023-05-27 01:58:18 +02:00
David Lapshin
de71bbdc32 Merge pull request 'Update 'SEEN.md'' (#32) from muznyo/Bavarder:muznyo-patch-1 into main
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 8m34s
Reviewed-on: https://codeberg.org/Bavarder/Bavarder/pulls/32
2023-05-26 20:27:39 +00:00
muznyo
43bf971588 Update 'SEEN.md' 2023-05-26 20:25:40 +00:00
0xMRTT
11ba62db06 doc: add https://www.root.cz/clanky/softwarova-sklizen-24-5-2023-organizace-casu-systemem-kanban/
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 6m49s
Signed-off-by: 0xMRTT <0xmrtt@noreply.codeberg.org>
2023-05-25 19:45:02 +00:00
ddb9588d30 feat: convert help overlay to blueprint
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 6m57s
2023-05-25 21:15:17 +02:00
201ede414a feat: add threading 2023-05-25 21:15:08 +02:00
1b048b229d feat: rework about
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 6m47s
2023-05-25 20:54:59 +02:00
fa9c41e131 feat: rework preferences
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 6m48s
2023-05-25 20:47:42 +02:00
fde6a5cb0a fix: use gnome-ngithly
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 8m58s
2023-05-25 20:44:01 +02:00
adb4885e9e fix: use devel in ci
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 10m32s
2023-05-25 20:35:59 +02:00
e108e3d52e feat: begin reworking architecutre 2023-05-25 20:35:59 +02:00
fd41349aa6 feat: use app_id instead of hardcoded id 2023-05-25 20:35:59 +02:00
4adf42c27b feat: add devel flatpak 2023-05-25 20:35:59 +02:00
1b86146a97 fix: rename provider to providers 2023-05-25 20:35:58 +02:00
yangyangdaji
d2d2351acd Translated using Weblate (Chinese (Simplified))
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 10m28s
Currently translated at 100.0% (47 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/zh_Hans/
2023-05-25 07:37:35 +00:00
thepoladov13
64e69bc732 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (47 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/az/
2023-05-25 07:37:35 +00:00
Anatolii Bielibov
be53aa82ae Translated using Weblate (Ukrainian)
Currently translated at 95.7% (45 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/uk/
2023-05-25 07:37:35 +00:00
8325e4ab1e fix: handle errors for transformer
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 9m54s
2023-05-24 22:41:10 +02:00
9460c9be00 deps: add jax
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 9m50s
2023-05-24 20:05:59 +00:00
5cbfffca0d deps: add jax
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 26m50s
2023-05-24 22:05:32 +02:00
d2e52bb659 deps: add tensorflow
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 27m9s
2023-05-24 20:03:46 +00:00
1b5a91232a fix: stbalelm
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 8m11s
2023-05-24 22:00:28 +02:00
f24f3724bf fix: deps
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 8m0s
2023-05-24 19:33:33 +00:00
3539be26b8 fix: remove rust
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 11m3s
2023-05-24 20:58:43 +02:00
90d590a77c feat: add stablelm
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 19m0s
2023-05-24 20:53:19 +02:00
f851e3a19a fix: add missing rust
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 18m5s
2023-05-24 20:47:15 +02:00
5d7c5cca4b feat: add transformer (wip)
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 10m55s
2023-05-24 20:41:36 +02:00
0xMRTT
d3f895f3fc Merge pull request 'Fix OpenAI base url text input' (#30) from shrugal/Bavarder:main into main
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 10m45s
Reviewed-on: https://codeberg.org/Bavarder/Bavarder/pulls/30
2023-05-24 10:33:44 +00:00
shrugal
998ff28c7d fix: fix openai base url text input 2023-05-24 10:15:30 +00:00
Daudix_UFO
e33cb1b63d Translated using Weblate (Russian)
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 9m22s
Currently translated at 100.0% (47 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/ru/
2023-05-22 22:01:48 +00:00
Vistaus
b245ae2c64 Translated using Weblate (Dutch)
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 8m44s
Currently translated at 100.0% (47 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/nl/
2023-05-22 19:05:06 +00:00
maymage
0662e6ab5b Translated using Weblate (Italian)
Currently translated at 100.0% (47 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/it/
2023-05-22 19:05:06 +00:00
maymage
71d0218a1b Translated using Weblate (German)
Currently translated at 100.0% (47 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/de/
2023-05-22 19:05:06 +00:00
Anonymous
6fded6f308 Translated using Weblate (Chinese (Simplified))
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 12m25s
Currently translated at 78.7% (37 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/zh_Hans/
2023-05-22 16:39:30 +00:00
Anonymous
7ce3d6af54 Translated using Weblate (Polish)
Currently translated at 76.5% (36 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/pl/
2023-05-22 16:39:30 +00:00
Anonymous
dd8472fa86 Translated using Weblate (Dutch)
Currently translated at 80.8% (38 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/nl/
2023-05-22 16:39:30 +00:00
Anonymous
7f81c114b7 Translated using Weblate (Turkish)
Currently translated at 53.1% (25 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/tr/
2023-05-22 16:39:30 +00:00
Anonymous
2b2f7fba65 Translated using Weblate (Finnish)
Currently translated at 78.7% (37 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fi/
2023-05-22 16:39:30 +00:00
Anonymous
4cda2d93ba Translated using Weblate (Hungarian)
Currently translated at 21.2% (10 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/hu/
2023-05-22 16:39:30 +00:00
Anonymous
15fbc035e7 Translated using Weblate (Portuguese)
Currently translated at 48.9% (23 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/pt/
2023-05-22 16:39:30 +00:00
Anonymous
195957b8e1 Translated using Weblate (Swedish)
Currently translated at 51.0% (24 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/sv/
2023-05-22 16:39:30 +00:00
Anonymous
cdbd36e843 Translated using Weblate (Russian)
Currently translated at 78.7% (37 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/ru/
2023-05-22 16:39:30 +00:00
a0c5fb35c9 Translated using Weblate (French)
Currently translated at 100.0% (47 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fr/
2023-05-22 16:39:30 +00:00
Anonymous
d2020fe05c Translated using Weblate (French)
Currently translated at 100.0% (47 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fr/
2023-05-22 16:39:30 +00:00
Anonymous
64eeaa2a9c Translated using Weblate (Spanish)
Currently translated at 76.5% (36 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/es/
2023-05-22 16:39:30 +00:00
Anonymous
0ea841eb18 Translated using Weblate (German)
Currently translated at 76.5% (36 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/de/
2023-05-22 16:39:30 +00:00
Anonymous
8be62d834e Translated using Weblate (Czech)
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 12m40s
Currently translated at 78.7% (37 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/cs/
2023-05-22 16:36:58 +00:00
Anonymous
6361d30a1a Translated using Weblate (Italian)
Currently translated at 72.3% (34 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/it/
2023-05-22 16:36:58 +00:00
Anonymous
f0c6cac09e Translated using Weblate (Ukrainian)
Currently translated at 59.5% (28 of 47 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/uk/
2023-05-22 16:36:57 +00:00
Codeberg Translate
c5dad67a7e Update translation files
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 12m15s
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/
2023-05-22 16:36:48 +00:00
2b15001e2a fix: make menu translatable (fix #29)
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 12m36s
2023-05-22 18:35:09 +02:00
1348069b07 fix: make more strings translatable (#29) 2023-05-22 18:34:58 +02:00
a17d462030 Update
All checks were successful
Build / Flatpak (x86_64) (push) Successful in 7m51s
2023-05-21 21:48:26 +00:00
2f77b51d0f fix: add current provider
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 8m42s
2023-05-21 23:24:23 +02:00
3ab6a403b9 fix: api error 2023-05-21 23:23:47 +02:00
a92847a33a bump: 0.2.3 2023-05-21 22:45:26 +02:00
b18bc99906 feat: add doc 2023-05-21 22:33:31 +02:00
1eb456b5f2 fix: local models doesn't require openai key 2023-05-21 22:18:52 +02:00
10b4ecbf5b fix: api_base url 2023-05-21 22:09:29 +02:00
f938d1f4b9 feat: add local model 2023-05-21 21:44:45 +02:00
fb1fea6d0f feat: allow openai custom model 2023-05-21 21:06:50 +02:00
82dc0d6bd0 feat: better error handling 2023-05-21 20:12:50 +02:00
f94d7338b6 feat: allow custom open ai base url 2023-05-21 20:12:36 +02:00
95dc455f9c feat: improve loading 2023-05-21 20:12:20 +02:00
muznyo
1acb6f3d80 Translated using Weblate (Czech)
Currently translated at 100.0% (35 of 35 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/cs/
2023-05-20 07:53:18 +00:00
Eryk Michalak
8347e592a5 Translated using Weblate (Polish)
Currently translated at 94.2% (33 of 35 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/pl/
2023-05-19 15:34:50 +00:00
gallegonovato
a52f752b30 Translated using Weblate (Spanish)
Currently translated at 100.0% (35 of 35 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/es/
2023-05-19 15:34:50 +00:00
artnay
ee5e70d8d7 Translated using Weblate (Finnish)
Currently translated at 100.0% (35 of 35 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fi/
2023-05-18 21:37:35 +00:00
492b6e693e fix: restore baichat 2023-05-18 16:39:51 +02:00
Daudix_UFO
d24f5d4a68 fix: baichat_py 2023-05-18 17:35:31 +03:00
d4cbb0813d Translated using Weblate (French)
Currently translated at 100.0% (35 of 35 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fr/
2023-05-18 07:49:29 +00:00
yangyangdaji
642fe3bd29 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (35 of 35 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/zh_Hans/
2023-05-18 07:47:20 +00:00
Codeberg Translate
ad4ae7aabb Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/
2023-05-18 00:37:40 +00:00
maymage
fb4d4dabe1 Translated using Weblate (Italian)
Currently translated at 91.6% (33 of 36 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/it/
2023-05-18 00:37:38 +00:00
b5f872b747 po: update pot 2023-05-17 17:12:28 +02:00
45bf25934d fix: remove hgchat 2023-05-17 16:48:01 +02:00
bc2fab30a8 feat: add hugging chat mask 2023-05-17 16:43:40 +02:00
5d073ab5c4 fix: remove hugging chat replaced by open assistant 2023-05-17 16:22:46 +02:00
61f626b20b fix: bard url 2023-05-17 16:20:15 +02:00
3817bed117 fix: disable translating CatGPT (#27) 2023-05-17 15:05:45 +02:00
maymage
0541fd582f Translated using Weblate (Italian)
Currently translated at 94.4% (34 of 36 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/it/
2023-05-17 11:04:18 +00:00
Daudix_UFO
673cce0cce Translated using Weblate (Russian)
Currently translated at 100.0% (36 of 36 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/ru/
2023-05-17 11:04:18 +00:00
maymage
1322f574c8 Translated using Weblate (German)
Currently translated at 97.2% (35 of 36 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/de/
2023-05-17 11:04:18 +00:00
8c07cd59ba doc: add latest commit install 2023-05-16 23:24:32 +02:00
c6e86d3bae ci: add codeberg token 2023-05-16 23:19:34 +02:00
c12112f925 ci: add codeberg token 2023-05-16 23:18:46 +02:00
ef57438385 ci: push to codeberg 2023-05-16 23:14:03 +02:00
Codeberg Translate
4346253c97 Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/
2023-05-16 20:52:09 +00:00
Vistaus
6fee4c15e1 Translated using Weblate (Dutch)
Currently translated at 100.0% (36 of 36 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/nl/
2023-05-16 20:52:08 +00:00
Anonymous
fcc30d7906 Translated using Weblate (German)
Currently translated at 80.5% (29 of 36 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/de/
2023-05-16 20:52:08 +00:00
79f752ae83 ci: fix translate 2023-05-16 22:44:29 +02:00
bc0a6b6704 ci: fix translate 2023-05-16 22:37:49 +02:00
d0c6bc1c31 Update 2023-05-16 20:36:10 +00:00
d4bff79293 Update 2023-05-16 20:35:59 +00:00
Codeberg Translate
43b35a57d8 Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/
2023-05-16 20:35:44 +00:00
Daudix_UFO
c0705b8a74 Translated using Weblate (Russian)
Currently translated at 100.0% (33 of 33 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/ru/
2023-05-16 20:35:42 +00:00
ecc296d7a2 Update 2023-05-16 20:22:34 +00:00
94 changed files with 5653 additions and 2261 deletions

View File

@@ -10,7 +10,7 @@ jobs:
name: Flatpak
runs-on: ubuntu-latest
container:
image: bilelmoussaoui/flatpak-github-actions:gnome-44
image: bilelmoussaoui/flatpak-github-actions:gnome-nightly
options: --privileged
strategy:
matrix:
@@ -22,7 +22,10 @@ jobs:
- name: Checkout
uses: actions/checkout@v3
- name: Install dependencies
run: dnf -y install docker flatpak-builder flatpak git
run: |
dnf -y install docker flatpak-builder flatpak git
flatpak install org.gnome.Sdk/x86_64/44 -y
flatpak install org.gnome.Platform/x86_64/44 -y
- name: Build
run: |
flatpak-builder --repo=repo --force-clean build build-aux/flatpak/io.github.Bavarder.Bavarder.json

View File

@@ -10,7 +10,7 @@ jobs:
name: Flatpak
runs-on: ubuntu-latest
container:
image: bilelmoussaoui/flatpak-github-actions:gnome-44
image: bilelmoussaoui/flatpak-github-actions:gnome-nightly
options: --privileged
strategy:
matrix:
@@ -29,8 +29,7 @@ jobs:
platforms: arm64
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6
with:
repository-name: gnome-44
bundle: bavarder.flatpak
manifest-path: build-aux/flatpak/io.github.Bavarder.Bavarder.json
manifest-path: build-aux/flatpak/io.github.Bavarder.Bavarder.Devel.json
cache-key: flatpak-builder-${{ github.sha }}
arch: ${{ matrix.arch }}

3
.gitignore vendored
View File

@@ -3,4 +3,5 @@ flatpak-pip-generator
repo/
build/
export/
bavarder.flatpak
bavarder.flatpak
r.txt

View File

@@ -13,19 +13,19 @@ clone:
pipeline:
build:
image: fish
secrets: [ access_token ]
secrets: [ access_token, codeberg_token ]
commands:
- nix-env -iA nixpkgs.flatpak-builder
- fish_add_path ~/.nix-profile/bin
- cd /home/0xmrtt/Bavarder
- flatpak-builder --repo=repo --force-clean build build-aux/flatpak/io.github.Bavarder.Bavarder.json
- flatpak build-bundle repo bavarder.flatpak io.github.Bavarder.Bavarder
- flatpak-builder --repo=repo --force-clean build build-aux/flatpak/io.github.Bavarder.Bavarder.Devel.json
- flatpak build-bundle repo bavarder.flatpak io.github.Bavarder.Bavarder.Devel
- ls -la
- curl --user 0xmrtt:$ACCESS_TOKEN --upload-file bavarder.flatpak "https://git.exozy.me/api/packages/$CI_REPO_OWNER/generic/$CI_REPO_NAME/$CI_BUILD_NUMBER/bavarder.flatpak"
- curl --user 0xmrtt:$CODEBERG_TOKEN --upload-file bavarder.flatpak "https://codeberg.org/api/packages/$CI_REPO_OWNER/generic/$CI_REPO_NAME/$CI_BUILD_NUMBER/bavarder.flatpak"
translate:
image: fish
secrets: [ access_token ]
commands:
- nix-env -iA nixpkgs.gettext
- fish_add_path ~/.nix-profile/bin
@@ -34,3 +34,5 @@ pipeline:
- git add po/Bavarder.pot
- git commit -m "Update"
- git push origin main
when:
event: [manual]

26
Cargo.toml Normal file
View File

@@ -0,0 +1,26 @@
[package]
name = "bavarder"
version = "0.1.0"
edition = "2021"
[dependencies]
env_logger = "0.10.0"
[dependencies.gtk]
package = "gtk4"
version = "0.6.2"
features = ["v4_10", "xml_validation"]
[dependencies.gio]
package = "gio"
version = "0.17.0"
features = ["v2_74"]
[dependencies.adw]
package = "libadwaita"
version = "0.4.1"
features = ["v1_4"]
[dependencies.gettext-rs]
version = "0.7.0"
features = ["gettext-system"]

View File

@@ -40,9 +40,9 @@
</p>
</a>
## About the name
## Usage
Bavarder is a french word, the definiton of Bavarder is "Parler abondamment de choses sans grande portée" (Talking a lot about things that don't matter) (Larousse) which can be translated by Chit-Chat (informal conversation about matters that are not important). For non-french speakers, Bavarder can be hard to speak, it's prounouced as [bavaʀde]. Hear [here](https://youtu.be/9Qoogwxo5YA)
Documentation is available [here](https://bavarder.codeberg.page)
## Installation
@@ -54,8 +54,18 @@ You can either use your GNOME Software and search for "Bavarder" or you can run
flatpak install io.github.Bavarder.Bavarder
```
### Latest
You can download a flatpak from the latest commit [here](https://codeberg.org/Bavarder/-/packages/generic/bavarder/). Download the file and run:
``` shell
flatpak install bavarder.flatpak
```
#### From Source
### Flatpak-builder
Clone the repo and run `flatpak-builder`
``` shell
@@ -63,6 +73,17 @@ git clone https://codeberg.org/Bavarder/Bavarder # or https://github.com/Bavarde
cd Bavarder
flatpak-builder --install --user --force-clean repo/ build-aux/flatpak/io.github.Bavarder.Bavarder.json
```
### Meson
``` shell
git clone https://codeberg.org/Bavarder/Bavarder # or https://github.com/Bavarder/Bavarder
cd Bavarder
meson setup build # Configure the build environment in subdirectory 'build'
meson compile -C build
meson check -C build
meson install -C build
chmod 0755 /usr/local/bin/bavarder # Fix binary permissions
```
### Others
@@ -80,13 +101,18 @@ See [`SEEN.md`](./SEEN.md) for a list of articles and posts about Bavarder
<img src="https://translate.codeberg.org/widgets/bavarder/-/multi-auto.svg" alt="Translation status" />
</a>
You can translate Bavarder using Codeberg Translate
You can translate Bavarder using [Codeberg Translate](https://translate.codeberg.org/engage/bavarder/)
### Mirrors
- [GitHub](https://github.com/Bavarder/Bavarder)
- [GitLab](https://gitlab.com/Bavarder/Bavarder)
- [Codeberg](https://codeberg.org/Bavarder/Bavarder)
## About the name
Bavarder is a french word, the definiton of Bavarder is "Parler abondamment de choses sans grande portée" (Talking a lot about things that don't matter) (Larousse) which can be translated by Chit-Chat (informal conversation about matters that are not important). For non-french speakers, Bavarder can be hard to speak, it's prounouced as [bavaʀde]. Hear [here](https://youtu.be/9Qoogwxo5YA)
## See also
### [Imaginer : Imagine with AI](https://imaginer.codeberg.page)

View File

@@ -1,4 +1,4 @@
# Where Bavarder has been saw
# Where Bavarder has been seen
## Press
@@ -14,6 +14,8 @@
- https://wiredgorilla.com/introducing-bavarder-a-user-friendly-linux-desktop-app-for-quick-chatgpt-interaction/
- https://www.linuxconsultant.org/bavarder-is-a-chatgpt-app-for-linux-desktops/
- https://www.linuxlinks.com/machine-learning-linux-bavarder/
- https://www.root.cz/clanky/softwarova-sklizen-24-5-2023-organizace-casu-systemem-kanban/
- https://www.makeuseof.com/use-chatgpt-on-linux-with-bavarder/
## Youtube
@@ -42,4 +44,4 @@
- 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
- https://www.prime-wow.com/?p=1136455
- https://www.prime-wow.com/?p=1136455

View File

@@ -0,0 +1,54 @@
{
"app-id" : "io.github.Bavarder.Bavarder.Devel",
"runtime" : "org.gnome.Platform",
"runtime-version" : "master",
"sdk" : "org.gnome.Sdk",
"command" : "bavarder",
"finish-args" : [
"--share=network",
"--share=ipc",
"--socket=fallback-x11",
"--device=dri",
"--socket=wayland",
"--filesystem=xdg-config/gtk-4.0"
],
"cleanup" : [
"/include",
"/lib/pkgconfig",
"/man",
"/share/doc",
"/share/gtk-doc",
"/share/man",
"/share/pkgconfig",
"*.la",
"*.a"
],
"modules" : [
"pypi-dependencies.json",
{
"name" : "blueprint-compiler",
"buildsystem" : "meson",
"sources" : [
{
"type" : "git",
"url" : "https://gitlab.gnome.org/jwestman/blueprint-compiler.git",
"branch" : "main"
}
]
},
{
"name" : "bavarder",
"builddir" : true,
"buildsystem" : "meson",
"config-opts": [
"-Dbuildtype=debug"
],
"sources" : [
{
"type" : "dir",
"path" : "../../."
}
]
}
]
}

View File

@@ -24,6 +24,7 @@
"*.a"
],
"modules" : [
"pypi-dependencies.json",
{
"name" : "blueprint-compiler",
@@ -32,7 +33,7 @@
{
"type" : "git",
"url" : "https://gitlab.gnome.org/jwestman/blueprint-compiler.git",
"tag" : "v0.8.0"
"tag" : "v0.8.1"
}
]
},
@@ -40,6 +41,9 @@
"name" : "bavarder",
"builddir" : true,
"buildsystem" : "meson",
"config-opts": [
"-Dbuildtype=release"
],
"sources" : [
{
"type" : "dir",

View File

@@ -0,0 +1,155 @@
{
"app-id" : "io.github.Bavarder.Bavarder",
"runtime" : "org.gnome.Platform",
"runtime-version" : "44",
"sdk" : "org.gnome.Sdk",
"command" : "bavarder",
"finish-args" : [
"--share=network",
"--share=ipc",
"--socket=fallback-x11",
"--device=dri",
"--socket=wayland",
"--filesystem=xdg-config/gtk-4.0"
],
"cleanup" : [
"/include",
"/lib/pkgconfig",
"/man",
"/share/doc",
"/share/gtk-doc",
"/share/man",
"/share/pkgconfig",
"*.la",
"*.a"
],
"modules" : [
"pypi-dependencies.json",
{
"name" : "libsass",
"buildsystem" : "meson",
"sources" : [
{
"type" : "git",
"url" : "https://github.com/lazka/libsass.git",
"branch" : "meson"
}
]
},
{
"name" : "sassc",
"buildsystem" : "meson",
"sources" : [
{
"type" : "git",
"url" : "https://github.com/lazka/sassc.git",
"branch" : "meson"
}
]
},
{
"name": "libyaml",
"buildsystem": "autotools",
"builddir": true,
"config-opts": [
"--libdir=/app/lib"
],
"sources": [
{
"type": "git",
"url": "https://github.com/yaml/libyaml"
}
]
},
{
"name": "lmdb",
"buildsystem": "simple",
"subdir": "libraries/liblmdb",
"build-commands": [
"make install prefix=/ DESTDIR=/app"
],
"sources": [
{
"type": "git",
"url": "https://git.openldap.org/openldap/openldap.git"
}
]
},
{
"name": "libxmlb",
"buildsystem": "meson",
"config-opts": [
"-Dgtkdoc=false"
],
"sources": [
{
"type": "git",
"url": "https://github.com/hughsie/libxmlb.git",
"branch": "main"
}
]
},
{
"name": "appstream",
"buildsystem": "meson",
"config-opts": [
"-Dstemming=false",
"-Dapidocs=false"
],
"sources": [
{
"type": "git",
"url": "https://github.com/ximion/appstream.git/",
"branch": "main"
}
]
},
{
"name": "gtk",
"buildsystem": "meson",
"sources": [
{
"type": "git",
"url": "https://gitlab.gnome.org/GNOME/gtk.git",
"branch": "main"
}
]
},
{
"name": "libadwaita",
"buildsystem": "meson",
"sources": [
{
"type": "git",
"url": "https://gitlab.gnome.org/GNOME/libadwaita.git",
"branch": "main"
}
]
},
{
"name" : "blueprint-compiler",
"buildsystem" : "meson",
"sources" : [
{
"type" : "git",
"url" : "https://gitlab.gnome.org/jwestman/blueprint-compiler.git",
"tag" : "v0.8.1"
}
]
},
{
"name" : "bavarder",
"builddir" : true,
"buildsystem" : "meson",
"config-opts": [
"-Dbuildtype=release"
],
"sources" : [
{
"type" : "dir",
"path" : "../../."
}
]
}
]
}

View File

@@ -4,69 +4,44 @@
"build-commands": [],
"modules": [
{
"name": "python3-baichat-py",
"name": "python3-baichat_py",
"buildsystem": "simple",
"build-commands": [
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"baichat-py>=0.1.2\" --no-build-isolation"
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"baichat_py\" --no-build-isolation"
],
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/c2/fd/1ff4da09ca29d8933fda3f3514980357e25419ce5e0f689041edb8f17dab/aiohttp-3.8.4.tar.gz",
"sha256": "bf2e1a9162c1e441bf805a1fd166e249d574ca04e03b34f97e2928769e91ab5c"
"url": "https://files.pythonhosted.org/packages/6f/a9/aad1eb9134fe0574b281ad1308fe029cf4ec1ba49ba0a061a18dd3ced789/baichat_py-0.3.0-py3-none-any.whl",
"sha256": "aa641939844ea364dcee0c4f40cdca2c42b7d6ed5f0cb360c29f7e35300259d0"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/76/ac/a7305707cb852b7e16ff80eaf5692309bde30e2b1100a1fcacdc8f731d97/aiosignal-1.3.1-py3-none-any.whl",
"sha256": "f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17"
"url": "https://files.pythonhosted.org/packages/2b/a8/050ab4f0c3d4c1b8aaa805f70e26e84d0e27004907c5b8ecc1d31815f92a/cffi-1.15.1.tar.gz",
"sha256": "d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/d6/c1/8991e7c5385b897b8c020cdaad718c5b087a6626d1d11a23e1ea87e325a7/async_timeout-4.0.2-py3-none-any.whl",
"sha256": "8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"
"url": "https://files.pythonhosted.org/packages/d1/6f/5d591a5628423af4598e2d6ff0861fcbc554cc259590fac9f97d9c984611/curl_cffi-0.5.6-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"sha256": "7a9df9fabff038f1ac9e7e6f32b5edb5d8df8c2eec64f53f513de1766c17ffdb"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/f0/eb/fcb708c7bf5056045e9e98f62b93bd7467eb718b0202e7698eb11d66416c/attrs-23.1.0-py3-none-any.whl",
"sha256": "1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"
"url": "https://files.pythonhosted.org/packages/8d/f3/28e7af53e09c9218140901dc23fdd75cdaf3e64d1d06f61801cf2a841bcb/fake_useragent-1.1.3-py3-none-any.whl",
"sha256": "695d3b1bf7d11d04ab0f971fb73b0ca8de98b78bbadfbc8bacbc9a48423f7531"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/f5/ba/2b3ff0140b714149b4ee0c3af857f5e9b5fecd0d877370ea89351c21f433/baichat_py-0.2.1-py3-none-any.whl",
"sha256": "af5e83d813b93b249009da35fbb6cfcea8c65ee36fa0102e3ed7340d90804391"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/ff/d7/8d757f8bd45be079d76309248845a04f09619a7b17d6dfc8c9ff6433cac2/charset-normalizer-3.1.0.tar.gz",
"sha256": "34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/e9/10/d629476346112b85c912527b9080944fd2c39a816c2225413dbc0bb6fcc0/frozenlist-1.3.3.tar.gz",
"sha256": "58bcc55721e8a90b88332d6cd441261ebb22342e238296bb330968952fbb3a6a"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/fc/34/3030de6f1370931b9dbb4dad48f6ab1015ab1d32447850b9fc94e60097be/idna-3.4-py3-none-any.whl",
"sha256": "90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/4a/15/bd620f7a6eb9aa5112c4ef93e7031bcd071e0611763d8e17706ef8ba65e0/multidict-6.0.4.tar.gz",
"sha256": "3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/5f/3f/04b3c5e57844fb9c034b09c5cb6d2b43de5d64a093c30529fd233e16cf09/yarl-1.9.2.tar.gz",
"sha256": "04ab9d4b9f587c06d801c2abfe9317b77cdf996c65a90d5e84ecc45010823571"
"url": "https://files.pythonhosted.org/packages/62/d5/5f610ebe421e85889f2e55e33b7f9a6795bd982198517d912eb1c76e1a53/pycparser-2.21-py2.py3-none-any.whl",
"sha256": "8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"
}
]
},
{
"name": "python3-hgchat",
"name": "python3-googlebardpy",
"buildsystem": "simple",
"build-commands": [
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"hgchat\" --no-build-isolation"
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"googlebardpy\" --no-build-isolation"
],
"sources": [
{
@@ -81,8 +56,8 @@
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/31/7b/e26fdbce33e2bb68ba952cb21c260792a900766b8f767f040bdfbee48d03/hgchat-0.1.3-py3-none-any.whl",
"sha256": "25725da85864cb57abd16d9ce15c270f785b7c1073ad30470609878226b93b0b"
"url": "https://files.pythonhosted.org/packages/a8/40/30a6440d5ceec49fc268710705b89e654fc854d9b8754850228deaf64892/googlebardpy-0.1.0-py3-none-any.whl",
"sha256": "12e65fdfe99392cbb5e8f93572340b757cd9d7aa83391316eaea3a1527995ef2"
},
{
"type": "file",
@@ -91,13 +66,8 @@
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/96/80/034ffeca15c0f4e01b7b9c6ad0fb704b44e190cde4e757edbd60be404c41/requests-2.30.0-py3-none-any.whl",
"sha256": "10e94cc4f3121ee6da529d358cdaeaff2f1c409cd377dbc72b825852f2f7e294"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl",
"sha256": "cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06"
"url": "https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl",
"sha256": "58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"
},
{
"type": "file",
@@ -160,13 +130,13 @@
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/9f/87/838149e472c58a141fa81e2eb4cc8828cb134054b59d67637031985ca770/openai-0.27.6-py3-none-any.whl",
"sha256": "1f07ed06f1cfc6c25126107193726fe4cf476edcc4e1485cd9eb708f068f2606"
"url": "https://files.pythonhosted.org/packages/35/c3/de7124146c3edbe8fd8163028d9ac998f2fd5dcda9225655f1d4ed684bbc/openai-0.27.7-py3-none-any.whl",
"sha256": "788fb7fa85bf7caac6c1ed7eea5984254a1bdaf09ef485acf0e5718c8b2dc25a"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/96/80/034ffeca15c0f4e01b7b9c6ad0fb704b44e190cde4e757edbd60be404c41/requests-2.30.0-py3-none-any.whl",
"sha256": "10e94cc4f3121ee6da529d358cdaeaff2f1c409cd377dbc72b825852f2f7e294"
"url": "https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl",
"sha256": "58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"
},
{
"type": "file",
@@ -186,10 +156,29 @@
]
},
{
"name": "python3-googlebardpy",
"name": "python3-pymdown-extensions",
"buildsystem": "simple",
"build-commands": [
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"googlebardpy\" --no-build-isolation"
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"pymdown-extensions\" --no-build-isolation"
],
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/36/2b/61d51a2c4f25ef062ae3f74576b01638bebad5e045f747ff12643df63844/PyYAML-6.0.tar.gz",
"sha256": "68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/a2/17/607fc71d709c0df9cca39ed57ed6f8b1cb77863073004c7def8a02a45fe2/pymdown_extensions-10.0.1-py3-none-any.whl",
"sha256": "ae66d84013c5d027ce055693e09a4628b67e9dec5bce05727e45b0918e36f274"
}
]
},
{
"name": "python3-requests",
"buildsystem": "simple",
"build-commands": [
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"requests\" --no-build-isolation"
],
"sources": [
{
@@ -202,11 +191,6 @@
"url": "https://files.pythonhosted.org/packages/ff/d7/8d757f8bd45be079d76309248845a04f09619a7b17d6dfc8c9ff6433cac2/charset-normalizer-3.1.0.tar.gz",
"sha256": "34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/a8/40/30a6440d5ceec49fc268710705b89e654fc854d9b8754850228deaf64892/googlebardpy-0.1.0-py3-none-any.whl",
"sha256": "12e65fdfe99392cbb5e8f93572340b757cd9d7aa83391316eaea3a1527995ef2"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/fc/34/3030de6f1370931b9dbb4dad48f6ab1015ab1d32447850b9fc94e60097be/idna-3.4-py3-none-any.whl",
@@ -214,8 +198,8 @@
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/96/80/034ffeca15c0f4e01b7b9c6ad0fb704b44e190cde4e757edbd60be404c41/requests-2.30.0-py3-none-any.whl",
"sha256": "10e94cc4f3121ee6da529d358cdaeaff2f1c409cd377dbc72b825852f2f7e294"
"url": "https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl",
"sha256": "58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"
},
{
"type": "file",
@@ -225,10 +209,10 @@
]
},
{
"name": "python3-pymdown-extensions",
"name": "python3-text-generation",
"buildsystem": "simple",
"build-commands": [
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"pymdown-extensions\" --no-build-isolation"
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"text-generation\" --no-build-isolation"
],
"sources": [
{
@@ -238,8 +222,212 @@
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/42/d5/ad2ce4fbd49f746c56f17ca4d1a8112cf76ea8797db670592923f7b3d96e/pymdown_extensions-9.11-py3-none-any.whl",
"sha256": "a499191d8d869f30339de86fcf072a787e86c42b6f16f280f5c2cf174182b7f3"
"url": "https://files.pythonhosted.org/packages/c2/fd/1ff4da09ca29d8933fda3f3514980357e25419ce5e0f689041edb8f17dab/aiohttp-3.8.4.tar.gz",
"sha256": "bf2e1a9162c1e441bf805a1fd166e249d574ca04e03b34f97e2928769e91ab5c"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/76/ac/a7305707cb852b7e16ff80eaf5692309bde30e2b1100a1fcacdc8f731d97/aiosignal-1.3.1-py3-none-any.whl",
"sha256": "f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/d6/c1/8991e7c5385b897b8c020cdaad718c5b087a6626d1d11a23e1ea87e325a7/async_timeout-4.0.2-py3-none-any.whl",
"sha256": "8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/f0/eb/fcb708c7bf5056045e9e98f62b93bd7467eb718b0202e7698eb11d66416c/attrs-23.1.0-py3-none-any.whl",
"sha256": "1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/9d/19/59961b522e6757f0c9097e4493fa906031b95b3ebe9360b2c3083561a6b4/certifi-2023.5.7-py3-none-any.whl",
"sha256": "c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/ff/d7/8d757f8bd45be079d76309248845a04f09619a7b17d6dfc8c9ff6433cac2/charset-normalizer-3.1.0.tar.gz",
"sha256": "34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/ad/73/b094a662ae05cdc4ec95bc54e434e307986a5de5960166b8161b7c1373ee/filelock-3.12.0-py3-none-any.whl",
"sha256": "ad98852315c2ab702aeb628412cbf7e95b7ce8c3bf9565670b4eaecf1db370a9"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/e9/10/d629476346112b85c912527b9080944fd2c39a816c2225413dbc0bb6fcc0/frozenlist-1.3.3.tar.gz",
"sha256": "58bcc55721e8a90b88332d6cd441261ebb22342e238296bb330968952fbb3a6a"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/ec/4e/397b234a369df06ec782666fcdf9791d125ca6de48729814b381af8c6c03/fsspec-2023.5.0-py3-none-any.whl",
"sha256": "51a4ad01a5bb66fcc58036e288c0d53d3975a0df2a5dc59a93b59bade0391f2a"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/58/34/c57b951aecd0248845932c1cfc15721237c50e463f26b0536673bcb76f4f/huggingface_hub-0.14.1-py3-none-any.whl",
"sha256": "9fc619170d800ff3793ad37c9757c255c8783051e1b5b00501205eb43ccc4f27"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/fc/34/3030de6f1370931b9dbb4dad48f6ab1015ab1d32447850b9fc94e60097be/idna-3.4-py3-none-any.whl",
"sha256": "90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/4a/15/bd620f7a6eb9aa5112c4ef93e7031bcd071e0611763d8e17706ef8ba65e0/multidict-6.0.4.tar.gz",
"sha256": "3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/ab/c3/57f0601a2d4fe15de7a553c00adbc901425661bf048f2a22dfc500caf121/packaging-23.1-py3-none-any.whl",
"sha256": "994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/23/65/2aa13873e9e0084ecaec00fbe6c6096b65e1ab99ba66bdbf7e4e7c4cc915/pydantic-1.10.8.tar.gz",
"sha256": "1410275520dfa70effadf4c21811d755e7ef9bb1f1d077a21958153a92c8d9ca"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl",
"sha256": "58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/83/14/643c55e7cf845db3c1ac96cd624511d56c50386f3760448e7dc2ff58f1c1/text_generation-0.5.2-py3-none-any.whl",
"sha256": "110dd5b05f8ec9cef00f3977001f1ce0464b133b14d4939b15260b0e863c942d"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/e6/02/a2cff6306177ae6bc73bc0665065de51dfb3b9db7373e122e2735faf0d97/tqdm-4.65.0-py3-none-any.whl",
"sha256": "c4f53a17fe37e132815abceec022631be8ffe1b9381c2e6e30aa70edc99e9671"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/38/60/300ad6f93adca578bf05d5f6cd1d854b7d140bebe2f9829561aa9977d9f3/typing_extensions-4.6.2-py3-none-any.whl",
"sha256": "3a8b36f13dd5fdc5d1b16fe317f5668545de77fa0b8e02006381fd49d731ab98"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/4b/1d/f8383ef593114755429c307449e7717b87044b3bcd5f7860b89b1f759e34/urllib3-2.0.2-py3-none-any.whl",
"sha256": "d055c2f9d38dc53c808f6fdc8eab7360b6fdbbde02340ed25cfbcd817c62469e"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/5f/3f/04b3c5e57844fb9c034b09c5cb6d2b43de5d64a093c30529fd233e16cf09/yarl-1.9.2.tar.gz",
"sha256": "04ab9d4b9f587c06d801c2abfe9317b77cdf996c65a90d5e84ecc45010823571"
}
]
},
{
"name": "python3-gradio_client",
"buildsystem": "simple",
"build-commands": [
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"gradio_client\" --no-build-isolation"
],
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/36/2b/61d51a2c4f25ef062ae3f74576b01638bebad5e045f747ff12643df63844/PyYAML-6.0.tar.gz",
"sha256": "68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/68/fe/7ce1926952c8a403b35029e194555558514b365ad77d75125f521a2bec62/anyio-3.7.0-py3-none-any.whl",
"sha256": "eddca883c4175f14df8aedce21054bfca3adb70ffe76a9f607aef9d7fa2ea7f0"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/9d/19/59961b522e6757f0c9097e4493fa906031b95b3ebe9360b2c3083561a6b4/certifi-2023.5.7-py3-none-any.whl",
"sha256": "c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/ff/d7/8d757f8bd45be079d76309248845a04f09619a7b17d6dfc8c9ff6433cac2/charset-normalizer-3.1.0.tar.gz",
"sha256": "34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/61/97/17ed81b7a8d24d8f69b62c0db37abbd8c0042d4b3fc429c73dab986e7483/exceptiongroup-1.1.1-py3-none-any.whl",
"sha256": "232c37c63e4f682982c8b6459f33a8981039e5fb8756b2074364e5055c498c9e"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/ad/73/b094a662ae05cdc4ec95bc54e434e307986a5de5960166b8161b7c1373ee/filelock-3.12.0-py3-none-any.whl",
"sha256": "ad98852315c2ab702aeb628412cbf7e95b7ce8c3bf9565670b4eaecf1db370a9"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/ec/4e/397b234a369df06ec782666fcdf9791d125ca6de48729814b381af8c6c03/fsspec-2023.5.0-py3-none-any.whl",
"sha256": "51a4ad01a5bb66fcc58036e288c0d53d3975a0df2a5dc59a93b59bade0391f2a"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/86/ed/3b8b8df6c66f5fd8ab3e458e2086502d7208557e9bbc31592d4c732cf1d3/gradio_client-0.2.5-py3-none-any.whl",
"sha256": "922a5188c93797adce023b4caa655318b9c09834095d31763443c1e7a707e301"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl",
"sha256": "e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/4d/32/b908f673ccef12b6425b848a541264ee3d95f5f571f18f6ab0d8c311442e/httpcore-0.17.2-py3-none-any.whl",
"sha256": "5581b9c12379c4288fe70f43c710d16060c10080617001e6b22a3b6dbcbefd36"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/ec/91/e41f64f03d2a13aee7e8c819d82ee3aa7cdc484d18c0ae859742597d5aa0/httpx-0.24.1-py3-none-any.whl",
"sha256": "06781eb9ac53cde990577af654bd990a4949de37a28bdb4a230d434f3a30b9bd"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/58/34/c57b951aecd0248845932c1cfc15721237c50e463f26b0536673bcb76f4f/huggingface_hub-0.14.1-py3-none-any.whl",
"sha256": "9fc619170d800ff3793ad37c9757c255c8783051e1b5b00501205eb43ccc4f27"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/fc/34/3030de6f1370931b9dbb4dad48f6ab1015ab1d32447850b9fc94e60097be/idna-3.4-py3-none-any.whl",
"sha256": "90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/ab/c3/57f0601a2d4fe15de7a553c00adbc901425661bf048f2a22dfc500caf121/packaging-23.1-py3-none-any.whl",
"sha256": "994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl",
"sha256": "58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/c3/a0/5dba8ed157b0136607c7f2151db695885606968d1fae123dc3391e0cfdbf/sniffio-1.3.0-py3-none-any.whl",
"sha256": "eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/e6/02/a2cff6306177ae6bc73bc0665065de51dfb3b9db7373e122e2735faf0d97/tqdm-4.65.0-py3-none-any.whl",
"sha256": "c4f53a17fe37e132815abceec022631be8ffe1b9381c2e6e30aa70edc99e9671"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/38/60/300ad6f93adca578bf05d5f6cd1d854b7d140bebe2f9829561aa9977d9f3/typing_extensions-4.6.2-py3-none-any.whl",
"sha256": "3a8b36f13dd5fdc5d1b16fe317f5668545de77fa0b8e02006381fd49d731ab98"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/4b/1d/f8383ef593114755429c307449e7717b87044b3bcd5f7860b89b1f759e34/urllib3-2.0.2-py3-none-any.whl",
"sha256": "d055c2f9d38dc53c808f6fdc8eab7360b6fdbbde02340ed25cfbcd817c62469e"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/d8/3b/2ed38e52eed4cf277f9df5f0463a99199a04d9e29c9e227cfafa57bd3993/websockets-11.0.3.tar.gz",
"sha256": "88fc51d9a26b10fc331be344f1781224a375b78488fc343620184e95a4b27016"
}
]
}

View File

@@ -2,6 +2,7 @@
<gresources>
<gresource prefix="/io/github/Bavarder/Bavarder">
<file preprocess="xml-stripblanks">ui/window.ui</file>
<file preprocess="xml-stripblanks">ui/message_bubble.ui</file>
<file preprocess="xml-stripblanks" alias="gtk/help-overlay.ui">ui/help-overlay.ui</file>
<file preprocess="xml-stripblanks">ui/preferences.ui</file>
<file>style.css</file>

View File

@@ -1,13 +1,12 @@
application_id = 'io.github.Bavarder.Bavarder'
scalable_dir = join_paths('hicolor', 'scalable', 'apps')
install_data(
join_paths(scalable_dir, ('@0@.svg').format(application_id)),
join_paths(scalable_dir, ('@0@.svg').format(APPLICATION_ID)),
install_dir: join_paths(get_option('datadir'), 'icons', scalable_dir)
)
symbolic_dir = join_paths('hicolor', 'symbolic', 'apps')
install_data(
join_paths(symbolic_dir, ('@0@-symbolic.svg').format(application_id)),
install_dir: join_paths(get_option('datadir'), 'icons', symbolic_dir)
join_paths(symbolic_dir, ('@0@-symbolic.svg').format(PROJECT_RDNN_NAME)),
install_dir: join_paths(get_option('datadir'), 'icons', symbolic_dir),
rename: '@0@-symbolic.svg'.format(APPLICATION_ID)
)

View File

@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id>io.github.Bavarder.Bavarder</id>
<id>@APP_ID@</id>
<name>Bavarder</name>
<summary>Chit-chat with an AI</summary>
<developer_name>0xMRTT</developer_name>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0-or-later</project_license>
<launchable type="desktop-id">io.github.Bavarder.Bavarder.desktop</launchable>
<launchable type="desktop-id">@APP_ID@.desktop</launchable>
<content_rating type="oars-1.1"/>
<description>
@@ -24,10 +24,10 @@
</screenshot>
</screenshots>
<url type="bugtracker">https://codeberg.org/Bavarder/Bavarder/issues</url>
<url type="translate">https://translate.codeberg.org/engage/bavarder/</url>
<url type="help">https://codeberg.org/Bavarder/Bavarder/issues</url>
<url type="homepage">https://bavarder.codeberg.page</url>
<url type="homepage">@PROJECT_URL@</url>
<url type="bugtracker">@BUGTRACKER_URL@</url>
<url type="help">@HELP_URL@</url>
<url type="translate">@TRANSLATE_URL@</url>
<kudos>
<kudo>HiDpiIcon</kudo>
@@ -65,6 +65,28 @@
</keywords>
<releases>
<release version="0.2.4" date="2023-6-16" type="stable">
<description>
<p>New UI</p>
<p>Faster BaiChat</p>
<p>Fix some bugs</p>
<p>Update translations</p>
<p>Add better error handling</p>
</description>
</release>
<release version="0.2.3" date="2023-5-21" type="stable">
<description>
<p>Add the ability to use local model</p>
<p>Add the ability to use custom model in OpenAI</p>
<p>Make loading mechanism faster</p>
<p>Fix some bugs</p>
<p>Update translations</p>
<p>Add CI</p>
<p>Add support for launching Bavarder offline</p>
<p>Update Blueprint to v0.8.0</p>
<p>Add better error handling</p>
</description>
</release>
<release version="0.2.2" date="2023-5-16" type="stable">
<description>
<p>Allow fetching news about providers and check if there is some issues about them</p>

View File

@@ -1,7 +1,7 @@
[Desktop Entry]
Name=Bavarder
Exec=bavarder
Icon=io.github.Bavarder.Bavarder
Icon=@APP_ID@
Terminal=false
Type=Application
Categories=GTK;

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<schemalist gettext-domain="bavarder">
<schema id="io.github.Bavarder.Bavarder" path="/io/github/Bavarder/Bavarder/">
<schema id="@APP_ID@" path="/io/github/Bavarder/Bavarder/">
<key name="width" type="i">
<default>350</default>
</key>

View File

@@ -3,51 +3,73 @@ pkgdatadir = join_paths(get_option('prefix'), get_option('datadir'), meson.proje
subdir('ui')
desktop_file = i18n.merge_file(
input: configure_file(
input: '@0@.desktop.in.in'.format(PROJECT_RDNN_NAME),
output: '@BASENAME@',
configuration: conf
),
output: '@0@.desktop'.format(APPLICATION_ID),
type: 'desktop',
po_dir: '../po',
install: true,
install_dir: join_paths(get_option('datadir'), 'applications')
)
desktop_utils = find_program('desktop-file-validate', required: false)
if desktop_utils.found()
test('Validate desktop file', desktop_utils,
args: [desktop_file.full_path()]
)
endif
gnome.compile_resources('bavarder',
'bavarder.gresource.xml',
gresource_bundle: true,
source_dir: meson.current_build_dir(),
install: true,
install_dir: pkgdatadir,
dependencies: blueprints,
install_dir: PKGDATA_DIR,
dependencies: blueprints
)
desktop_file = i18n.merge_file(
input: 'io.github.Bavarder.Bavarder.desktop.in',
output: 'io.github.Bavarder.Bavarder.desktop',
type: 'desktop',
po_dir: '../po',
install: true,
install_dir: join_paths(get_option('datadir'), 'applications')
)
desktop_utils = find_program('desktop-file-validate', required: false)
if desktop_utils.found()
test('Validate desktop file', desktop_utils, args: [desktop_file])
endif
appstream_file = i18n.merge_file(
input: 'io.github.Bavarder.Bavarder.appdata.xml.in',
output: 'io.github.Bavarder.Bavarder.appdata.xml',
po_dir: '../po',
install: true,
input: configure_file(
input: '@0@.appdata.xml.in.in'.format(PROJECT_RDNN_NAME),
output: '@BASENAME@',
configuration: configuration_data({
'APP_ID': APPLICATION_ID,
'PROJECT_URL': PROJECT_URL,
'BUGTRACKER_URL': BUGTRACKER_URL,
'HELP_URL': HELP_URL,
'TRANSLATE_URL': TRANSLATE_URL
})
),
output: '@0@.appdata.xml'.format(APPLICATION_ID),
po_dir: '../po',
install: true,
install_dir: join_paths(get_option('datadir'), 'appdata')
)
appstream_util = find_program('appstream-util', required: false)
if appstream_util.found()
test('Validate appstream file', appstream_util, args: ['validate', appstream_file])
test('Validate appstream file', appstream_util,
args: ['validate', appstream_file.full_path()]
)
endif
install_data('io.github.Bavarder.Bavarder.gschema.xml',
configure_file(
input: '@0@.gschema.xml.in'.format(PROJECT_RDNN_NAME),
output: '@0@.gschema.xml'.format(APPLICATION_ID),
configuration: conf,
install: true,
install_dir: join_paths(get_option('datadir'), 'glib-2.0/schemas')
)
compile_schemas = find_program('glib-compile-schemas', required: false)
if compile_schemas.found()
test('Validate schema file',
compile_schemas,
args: ['--strict', '--dry-run', meson.current_source_dir()])
test('Validate schema file', compile_schemas,
args: ['--strict', '--dry-run', meson.current_source_dir()]
)
endif
subdir('icons')

View File

@@ -13,3 +13,32 @@
box-shadow: inset 0 -1px alpha(@shade_color, .75);
background: linear-gradient(to top, alpha(@shade_color, .75), transparent 4px);
}
/* Global */
scrolledwindow > viewport > clamp > box {
margin: 42px 12px;
border-spacing: 24px;
}
entry:disabled {
border-color: transparent;
color: @view_fg_color;
background: none;
}
entry textview {
color: @view_fg_color;
background: none;
}
entry text {
color: @view_fg_color;
background: none;
}
entry .inline-pill {
margin-bottom: -0.5em;
}

49
data/ui/help-overlay.blp Normal file
View File

@@ -0,0 +1,49 @@
using Gtk 4.0;
ShortcutsWindow help_overlay {
modal: true;
ShortcutsSection {
section-name: "shortcuts";
max-height: 10;
ShortcutsGroup {
title: C_("shortcut window", "General");
ShortcutsShortcut {
title: C_("shortcut window", "Ask");
action-name: "app.ask";
}
ShortcutsShortcut {
title: C_("shortcut window", "Show Shortcuts");
action-name: "win.show-help-overlay";
}
ShortcutsShortcut {
title: C_("shortcut window", "Preferences");
action-name: "app.preferences";
}
ShortcutsShortcut {
title: C_("shortcut window", "Quit");
action-name: "app.quit";
}
ShortcutsShortcut {
title: C_("shortcut window", "Close all windows");
action-name: "app.quit_all";
}
ShortcutsShortcut {
title: C_("shortcut window", "Copy response");
action-name: "app.copy_bot";
}
ShortcutsShortcut {
title: C_("shortcut window", "Clear");
action-name: "app.clear";
}
}
}
}

View File

@@ -1,59 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<object class="GtkShortcutsWindow" id="help_overlay">
<property name="modal">True</property>
<child>
<object class="GtkShortcutsSection">
<property name="section-name">shortcuts</property>
<property name="max-height">10</property>
<child>
<object class="GtkShortcutsGroup">
<property name="title" translatable="yes" context="shortcut window">General</property>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes" context="shortcut window">Show Shortcuts</property>
<property name="action-name">win.show-help-overlay</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes" context="shortcut window">Ask</property>
<property name="action-name">app.ask</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes" context="shortcut window">Close current window</property>
<property name="action-name">app.quit</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes" context="shortcut window">Close all windows</property>
<property name="action-name">app.quit_all</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>
</child>
</object>
</interface>

View File

@@ -1,6 +1,8 @@
blueprints = custom_target('blueprints',
input: files(
'help-overlay.blp',
'preferences.blp',
'message_bubble.blp',
'window.blp',
),
output: '.',

View File

@@ -0,0 +1,20 @@
using Gtk 4.0;
using Adw 1;
template $MessageBubble: Gtk.Box {
orientation: vertical;
Label sender_label {
styles ["caption-heading"]
ellipsize: end;
xalign: 0;
}
Adw.Bin message_reply_bin {}
Adw.Bin prefix_bin {}
Label message_label {
}
}

View File

@@ -39,181 +39,189 @@ template $BavarderWindow : Adw.ApplicationWindow {
orientation: vertical;
vexpand: true;
hexpand: true;
margin-top: 0;
margin-bottom: 24;
margin-start: 24;
margin-end: 24;
spacing: 12;
Adw.PreferencesGroup prompt_group {
title: _("Message");
Adw.Bin {
vexpand: true;
hexpand: true;
Box {
orientation: vertical;
hexpand: true;
vexpand: true;
styles ["card", "text-box"]
ScrolledWindow {
margin-top: 12;
margin-bottom: 0;
margin-start: 12;
margin-end: 12;
styles ["scrolled-window"]
Stack stack {
transition-type: crossfade;
TextView prompt_text_view {
wrap-mode: word_char;
hexpand: true;
vexpand: true;
buffer: TextBuffer { };
//key-press => on_key_press_event();
styles [ "card"]
Gtk.StackPage {
name: "page_content";
child: Overlay overlay {
Adw.PreferencesGroup bot_group {
Box {
orientation: vertical;
hexpand: true;
vexpand: true;
styles [ "text-box"]
ScrolledWindow scrolled_response_window {
margin-top: 12;
margin-bottom: 0;
margin-start: 12;
margin-end: 12;
TextView bot_text_view {
wrap-mode: word_char;
hexpand: true;
vexpand: true;
editable: false;
}
}
Box {
hexpand: true;
halign: end;
styles ["toolbar"]
// Button speak {
// action-name: "app.speak";
// tooltip-text: _("Speak");
// icon-name: "audio-speakers-symbolic";
// }
// Button speak_wait {
// visible: false;
// sensitive: false;
// tooltip-text: _("Speaking");
// Spinner speak_spinner {
// margin-top: 8;
// margin-bottom: 8;
// margin-start: 8;
// margin-end: 8;
// }
// }
Button copy_bot {
sensitive: false;
icon-name: "edit-copy-symbolic";
tooltip-text: _("Copy to Clipboard");
hexpand: true;
halign: end;
action-name: "app.copy_bot";
}
Button stop_button {
visible: false;
sensitive: false;
icon-name: "x-circular-symbolic";
tooltip-text: _("Stop");
hexpand: true;
halign: end;
action-name: "app.stop";
styles ["suggested-action", "circular"]
}
}
}
}
};
}
Gtk.StackPage {
name: "page_loading";
child: Spinner {
valign: center;
halign: center;
vexpand: true;
};
}
Gtk.StackPage {
name: "page_error";
child: Adw.StatusPage error {
visible: true;
vexpand: true;
icon-name: "dialog-error-symbolic";
title: _("ERROR");
description: _("DESCRIPTION");
Button {
label: _("Try Again");
halign: center;
styles ["pill"]
}
};
}
}
Box {
hexpand: true;
halign: end;
styles ["toolbar"]
Button {
sensitive: false;
icon-name: "edit-copy-symbolic";
tooltip-text: _("Copy to Clipboard");
action-name: "app.copy_prompt";
}
// Button listen {
// action-name: "app.listen";
// tooltip-text: _("Listen");
// icon-name: "audio-input-microphone-symbolic";
// }
// Separator {}
// Button listen_wait {
// visible: false;
// sensitive: false;
// tooltip-text: _("Listening");
// Spinner listen_spinner {
// margin-top: 8;
// margin-bottom: 8;
// margin-start: 8;
// margin-end: 8;
// }
// }
Button ask_button {
visible: true;
sensitive: false;
icon-name: "paper-plane-symbolic";
tooltip-text: _("Ask");
hexpand: true;
halign: end;
action-name: "app.ask";
styles ["suggested-action", "circular"]
}
Button wait_button {
visible: false;
sensitive: false;
tooltip-text: _("Wait");
styles ["suggested-action", "circular"]
Spinner spinner {
margin-top: 8;
margin-bottom: 8;
margin-start: 8;
margin-end: 8;
Adw.Clamp {
vexpand: false;
hexpand: true;
maximum-size: 750;
tightening-threshold: 550;
margin-top: 8;
margin-bottom: 8;
Box {
// Button {
// valign: end;
// icon-name: "mail-attachment-symbolic";
// }
ScrolledWindow {
vexpand: true;
hexpand: true;
vscrollbar-policy: external;
max-content-height: 200;
propagate-natural-height: true;
styles [ "scrolled-window" ]
TextView prompt_text_view {
styles [ "entry "]
hexpand: true;
accepts-tab: false;
top-margin: 7;
bottom-margin: 7;
left-margin: 5;
right-margin: 5;
wrap-mode: word;
buffer: TextBuffer { };
}
}
Button ask_button {
valign: end;
margin-start: 5;
icon-name: "paper-plane-symbolic";
tooltip-text: _("Ask");
halign: end;
action-name: "app.ask";
styles ["suggested-action", "circular"]
}
}
}
}
}
Adw.PreferencesGroup bot_group {
title: _("Response");
Box {
orientation: vertical;
hexpand: true;
vexpand: true;
styles ["card", "text-box"]
ScrolledWindow scrolled_response_window {
margin-top: 12;
margin-bottom: 0;
margin-start: 12;
margin-end: 12;
styles ["scrolled-window"]
Gtk.Stack response_stack {
vexpand: true;
hexpand: true;
Gtk.StackPage {
name: "page_response";
child: TextView bot_text_view {
wrap-mode: word_char;
hexpand: true;
vexpand: true;
editable: false;
};
}
// Gtk.StackPage {
// name: "page_offline";
// child: Adw.StatusPage {
// //icon-name: "network-wireless-offline-symbolic";
// title: _("Offline");
// };
// }
}
}
Box {
hexpand: true;
halign: end;
styles ["toolbar"]
// Button speak {
// action-name: "app.speak";
// tooltip-text: _("Speak");
// icon-name: "audio-speakers-symbolic";
// }
// Button speak_wait {
// visible: false;
// sensitive: false;
// tooltip-text: _("Speaking");
// Spinner speak_spinner {
// margin-top: 8;
// margin-bottom: 8;
// margin-start: 8;
// margin-end: 8;
// }
// }
Button copy_bot {
sensitive: false;
icon-name: "edit-copy-symbolic";
tooltip-text: _("Copy to Clipboard");
hexpand: true;
halign: end;
action-name: "app.copy_bot";
}
Button stop_button {
visible: false;
sensitive: false;
icon-name: "x-circular-symbolic";
tooltip-text: _("Stop");
hexpand: true;
halign: end;
action-name: "app.stop";
styles ["suggested-action", "circular"]
}
}
}
}
}
}
}
}

View File

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

11
meson_options.txt Normal file
View File

@@ -0,0 +1,11 @@
option(
'profile',
type: 'combo',
description: 'The build profiles for the application. Use development or ci for the .Devel app ID. ci also produces optimized bundles.',
choices: [
'release',
'development',
'ci',
],
value: 'release'
)

View File

@@ -8,60 +8,20 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 20:19+0000\n"
"POT-Creation-Date: 2023-06-01 17:40+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3 data/ui/window.blp:7
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 data/ui/window.blp:7
msgid "Bavarder"
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 "Close current window"
msgstr ""
#: data/ui/help-overlay.ui:32
msgctxt "shortcut window"
msgid "Close all windows"
msgstr ""
#: data/ui/help-overlay.ui:38
msgctxt "shortcut window"
msgid "Preferences"
msgstr ""
#: data/ui/help-overlay.ui:44
msgctxt "shortcut window"
msgid "Copy response"
msgstr ""
#: data/ui/help-overlay.ui:50
msgctxt "shortcut window"
msgid "Clear"
msgstr ""
#: data/ui/preferences.blp:5 data/ui/window.blp:232 src/main.py:297
#: data/ui/preferences.blp:5 data/ui/window.blp:230 src/main.py:273
msgid "Preferences"
msgstr ""
@@ -101,7 +61,7 @@ msgstr ""
msgid "News about issues with providers will be fetched from Bavarder website"
msgstr ""
#: data/ui/preferences.blp:52 src/main.py:295
#: data/ui/preferences.blp:52 src/main.py:271
msgid "Providers"
msgstr ""
@@ -109,62 +69,123 @@ msgstr ""
msgid "Main Menu"
msgstr ""
#: data/ui/window.blp:34 src/provider/base.py:50
#: data/ui/window.blp:34 src/providers/base.py:50
msgid "No network connection"
msgstr ""
#: data/ui/window.blp:49
msgid "Message"
msgstr ""
#: data/ui/window.blp:82 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr ""
#: data/ui/window.blp:106
msgid "Ask"
msgstr ""
#: data/ui/window.blp:115
msgid "Wait"
msgstr ""
#: data/ui/window.blp:130
#: data/ui/window.blp:61
msgid "Response"
msgstr ""
#: data/ui/window.blp:208
#: data/ui/window.blp:113
msgid "Copy to Clipboard"
msgstr ""
#: data/ui/window.blp:123
msgid "Stop"
msgstr ""
#: data/ui/window.blp:226
#: data/ui/window.blp:152
msgid "ERROR"
msgstr ""
#: data/ui/window.blp:153
msgid "DESCRIPTION"
msgstr ""
#: data/ui/window.blp:156
msgid "Try Again"
msgstr ""
#: data/ui/window.blp:205
msgid "Ask"
msgstr ""
#: data/ui/window.blp:224
msgid "New window"
msgstr ""
#: data/ui/window.blp:237 src/main.py:298
#: data/ui/window.blp:235 src/main.py:274
msgid "Keyboard Shortcuts"
msgstr ""
#: data/ui/window.blp:242 src/main.py:299
#: data/ui/window.blp:240 src/main.py:275
msgid "About Bavarder"
msgstr ""
#: src/main.py:150
msgid "New version available!"
msgstr ""
#: src/main.py:266
msgid "New Window"
msgstr ""
#: src/provider/base.py:43
#: src/providers/base.py:43
msgid "No API key provided, you can provide one in settings"
msgstr ""
#: src/provider/base.py:45
#: src/providers/base.py:45
msgid "Open settings"
msgstr ""
#: src/provider/catgpt.py:9
msgid "CatGPT"
#: src/providers/base.py:81
msgid "About provider"
msgstr ""
#: src/providers/base.py:95
msgid "How to get a token"
msgstr ""
#: src/providers/base.py:118
msgid "No preferences available"
msgstr ""
#: src/providers/huggingface.py:73 src/providers/transformer.py:68
msgid "API Key"
msgstr ""
#: src/providers/openai.py:27
msgid "Prompt too long, splitting into chunks."
msgstr ""
#: src/providers/openai.py:49
msgid "You don't have access to this model"
msgstr ""
#: src/providers/openai.py:54
msgid ""
"You exceeded your current quota, please check your plan and billing details."
msgstr ""
#: src/providers/openai.py:59
msgid "API Error"
msgstr ""
#: src/providers/openai.py:70
msgid "No model selected, you can choose one in preferences"
msgstr ""
#: src/providers/openaicustom.py:33
msgid "API Url"
msgstr ""
#: src/providers/openaicustom.py:40
msgid "Model"
msgstr ""
#: src/providers/openaicustom.py:80
msgid "How to choose a model"
msgstr ""
#: src/views/about_window.py:12
msgid "translator-credits"
msgstr ""
#: src/views/about_window.py:26
msgid "0xMRTT"
msgstr ""
#: src/views/about_window.py:44
msgid "Copyright © 2023 0xMRTT"
msgstr ""
#: src/main.py:124
msgid "New version available!"
msgstr ""
#: src/main.py:240
msgid "New Window"
msgstr ""

View File

@@ -3,7 +3,9 @@ sv
fa
fi
ru
ta
nl
gl
es
fr
pt
@@ -11,8 +13,10 @@ hu
de
tr
pl
ar
it
zh_Hans
az
cs
uk
et

View File

@@ -1,10 +1,39 @@
data/io.github.Bavarder.Bavarder.desktop.in
data/io.github.Bavarder.Bavarder.gschema.xml
data/ui/help-overlay.ui
data/io.github.Bavarder.Bavarder.desktop.in.in
data/io.github.Bavarder.Bavarder.gschema.xml.in
data/ui/help-overlay.blp
data/ui/preferences.blp
data/ui/window.blp
src/main.py
src/preferences.py
src/window.py
src/provider/base.py
src/provider/catgpt.py
src/providers/__init__.py
src/providers/alpacalora.py
src/providers/baichat.py
src/providers/bard.py
src/providers/base.py
src/providers/baseoffline.py
src/providers/catgpt.py
src/providers/gradio.py
src/providers/hfdialogpt.py
src/providers/hfgoogleflant5xxl.py
src/providers/hfgoogleflanu12.py
src/providers/hfgpt2.py
src/providers/hfgpt2large.py
src/providers/hfgpt2xl.py
src/providers/hfopenassistantsft1pythia12b.py
src/providers/huggingchat.py
src/providers/huggingchatbase.py
src/providers/huggingface.py
src/providers/openai.py
src/providers/openaicustom.py
src/providers/openaigpt4.py
src/providers/openaigpt35turbo.py
src/providers/openaitextdavinci003.py
src/providers/stablelm.py
src/providers/starcoder.py
src/providers/transformer.py
src/views/__init__.py
src/views/about_window.py
src/views/main_window.py
src/views/preferences_window.py
src/widgets/__init__.py
src/__init__.py
src/threading.py
src/main.py

209
po/ar.po Normal file
View File

@@ -0,0 +1,209 @@
# Bavarder POT file
# Copyright (C) 2023 Bavarder
# This file is distributed under the GNU GPLv3 license.
# Bavarder, 2023.
#
# nakibrayan2 <codeberg.org.quoz7@aleeas.com>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-01 17:40+0000\n"
"PO-Revision-Date: 2023-06-03 00:37+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"Language-Team: Arabic <https://translate.codeberg.org/projects/bavarder/"
"bavarder/ar/>\n"
"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 data/ui/window.blp:7
msgid "Bavarder"
msgstr "Bavarder"
#: data/ui/preferences.blp:5 data/ui/window.blp:230 src/main.py:273
msgid "Preferences"
msgstr "التفضيلات"
#: data/ui/preferences.blp:12
#, fuzzy
msgid "Prompt"
msgstr "موجه"
#: data/ui/preferences.blp:15
#, fuzzy
msgid "Clear prompt after send"
msgstr "مسح نصح الموجه بعد الإرسال"
#: data/ui/preferences.blp:16
#, fuzzy
msgid "The prompt will be cleared after send"
msgstr "سيتم مسح نص الموجه بعد الإرسال"
#: data/ui/preferences.blp:24
msgid "Use plain text for output"
msgstr "إستخدام نص عادي للإخراج"
#: data/ui/preferences.blp:25
msgid "The plain text without formatting will be used"
msgstr "سيتم إستخدام نص عادي بدون تنسيق"
#: data/ui/preferences.blp:33
msgid "Close all windows without warning"
msgstr "إغلاق جميع النوافض بدون سابق إنذار"
#: data/ui/preferences.blp:34
msgid "All windows will be closed without warning, this can lead to data loss"
msgstr ""
"سيتم إغلاق جميع النوافذ دون سابق إنذار ، وهذا قد يؤدي إلى فقدان للبيانات"
#: data/ui/preferences.blp:42
msgid "Look for provider news"
msgstr "البحث عن أخبار مزود الخدمة"
#: data/ui/preferences.blp:43
msgid "News about issues with providers will be fetched from Bavarder website"
msgstr ""
"سيتم جلب الأخبار المتعلقة بالمشكلات مع مقدمي الخدمة من موقع Bavarder على "
"الويب"
#: data/ui/preferences.blp:52 src/main.py:271
msgid "Providers"
msgstr "مقدمي الخدمة"
#: data/ui/window.blp:28
msgid "Main Menu"
msgstr "القائمة الرئيسية"
#: data/ui/window.blp:34 src/providers/base.py:50
msgid "No network connection"
msgstr "ليس هناك اتصال بالشبكة"
#: data/ui/window.blp:61
msgid "Response"
msgstr "الجواب"
#: data/ui/window.blp:113
msgid "Copy to Clipboard"
msgstr "النسخ إلى الحافظة"
#: data/ui/window.blp:123
msgid "Stop"
msgstr "إيقاف"
#: data/ui/window.blp:152
msgid "ERROR"
msgstr ""
#: data/ui/window.blp:153
msgid "DESCRIPTION"
msgstr ""
#: data/ui/window.blp:156
msgid "Try Again"
msgstr "حاول مرة أخرى"
#: data/ui/window.blp:205
msgid "Ask"
msgstr "طرح سؤال"
#: data/ui/window.blp:224
msgid "New window"
msgstr "نافذة جديدة"
#: data/ui/window.blp:235 src/main.py:274
msgid "Keyboard Shortcuts"
msgstr "اختصارات لوحة المفاتيح"
#: data/ui/window.blp:240 src/main.py:275
msgid "About Bavarder"
msgstr "حول Bavarder"
#: src/providers/base.py:43
msgid "No API key provided, you can provide one in settings"
msgstr "لم يتم توفير مفتاح API ، يمكنك توفير مفتاح في الإعدادات"
#: src/providers/base.py:45
msgid "Open settings"
msgstr "افتح الإعدادات"
#: src/providers/base.py:81
msgid "About provider"
msgstr "حول مقدم الخدمة"
#: src/providers/base.py:95
msgid "How to get a token"
msgstr "كيف تحصل على توكن"
#: src/providers/base.py:118
msgid "No preferences available"
msgstr "لا توجد تفضيلات متاحة"
#: src/providers/huggingface.py:73 src/providers/transformer.py:68
msgid "API Key"
msgstr "مفتاح API"
#: src/providers/openai.py:27
#, fuzzy
msgid "Prompt too long, splitting into chunks."
msgstr "النص في الموجه طويل ، يمكن تقسيمة إلى قطع"
#: src/providers/openai.py:49
msgid "You don't have access to this model"
msgstr "ليس لديك حق الوصول إلى هذا النموذج"
#: src/providers/openai.py:54
#, fuzzy
msgid ""
"You exceeded your current quota, please check your plan and billing details."
msgstr "لقد تجاوزت حصتك الحالية ، يرجى التأكد من إشتراكك و تفاصيل الفواتير."
#: src/providers/openai.py:59
msgid "API Error"
msgstr "خطأ في ال API"
#: src/providers/openai.py:70
msgid "No model selected, you can choose one in preferences"
msgstr "لم يتم تحديد أي نموذج ، يمكن اختيار نموذج في الإعدادات"
#: src/providers/openaicustom.py:33
msgid "API Url"
msgstr "رابط ال API"
#: src/providers/openaicustom.py:40
msgid "Model"
msgstr "نموذج"
#: src/providers/openaicustom.py:80
msgid "How to choose a model"
msgstr "كيف تختار نموذج"
#: src/views/about_window.py:12
msgid "translator-credits"
msgstr "حقوق المترجم"
#: src/views/about_window.py:26
msgid "0xMRTT"
msgstr "0xMRTT"
#: src/views/about_window.py:44
msgid "Copyright © 2023 0xMRTT"
msgstr "حقوق النشر © 2023 0xMRTT"
#: src/main.py:124
msgid "New version available!"
msgstr "هنالك إصدار جديد متوفر!"
#: src/main.py:240
msgid "New Window"
msgstr "نافذة جديدة"
#~ msgid "Message"
#~ msgstr "رسالة"
#~ msgid "Wait"
#~ msgstr "يرجى الإنتضار"

245
po/az.po
View File

@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 14:05+0000\n"
"PO-Revision-Date: 2023-05-16 12:00+0000\n"
"POT-Creation-Date: 2023-06-01 17:40+0000\n"
"PO-Revision-Date: 2023-06-03 00:37+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"Language-Team: Azerbaijani <https://translate.codeberg.org/projects/bavarder/"
"bavarder/az/>\n"
@@ -21,53 +21,11 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3 data/ui/window.blp:7
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 data/ui/window.blp:7
msgid "Bavarder"
msgstr "Bavarder"
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
msgid "General"
msgstr "Ümumi"
#: data/ui/help-overlay.ui:14
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgstr "Qısayolları göstərin"
#: data/ui/help-overlay.ui:20
msgctxt "shortcut window"
msgid "Ask"
msgstr "Soruş"
#: data/ui/help-overlay.ui:26
msgctxt "shortcut window"
msgid "Close current window"
msgstr ""
#: data/ui/help-overlay.ui:32
msgctxt "shortcut window"
msgid "Close all windows"
msgstr ""
#: data/ui/help-overlay.ui:38
msgctxt "shortcut window"
msgid "Preferences"
msgstr "Üstünlüklər"
#: data/ui/help-overlay.ui:44
#, fuzzy
#| msgid "Response"
msgctxt "shortcut window"
msgid "Copy response"
msgstr "Cavab"
#: data/ui/help-overlay.ui:50
msgctxt "shortcut window"
msgid "Clear"
msgstr ""
#: data/ui/preferences.blp:5 data/ui/window.blp:232 src/main.py:280
#: data/ui/preferences.blp:5 data/ui/window.blp:230 src/main.py:273
msgid "Preferences"
msgstr "Üstünlüklər"
@@ -85,21 +43,33 @@ msgstr "Sorğu göndərildikdən sonra silinəcək"
#: data/ui/preferences.blp:24
msgid "Use plain text for output"
msgstr ""
msgstr "Çıxış üçün düz mətndən istifadə edin"
#: data/ui/preferences.blp:25
msgid "The plain text without formatting will be used"
msgstr ""
msgstr "Formatlaşdırmadan düz mətndən istifadə ediləcək"
#: data/ui/preferences.blp:33
msgid "Close all windows without warning"
msgstr ""
msgstr "Xəbərdarlıq etmədən bütün pəncərələri bağlayın"
#: data/ui/preferences.blp:34
msgid "All windows will be closed without warning, this can lead to data loss"
msgstr ""
"Bütün pəncərələr xəbərdarlıq edilmədən bağlanacaq, bu məlumat itkisinə səbəb "
"ola bilər"
#: data/ui/preferences.blp:43 src/main.py:278
#: data/ui/preferences.blp:42
msgid "Look for provider news"
msgstr "Yeni provayder xəbərlərinə bax"
#: data/ui/preferences.blp:43
msgid "News about issues with providers will be fetched from Bavarder website"
msgstr ""
"Provayderlərlə bağlı problemlər haqqında xəbərlər Bavarder saytından "
"götürüləcək"
#: data/ui/preferences.blp:52 src/main.py:271
msgid "Providers"
msgstr "Provayderlər"
@@ -107,68 +77,173 @@ msgstr "Provayderlər"
msgid "Main Menu"
msgstr "Əsas menyu"
#: data/ui/window.blp:34 src/provider/base.py:50
#: data/ui/window.blp:34 src/providers/base.py:50
msgid "No network connection"
msgstr "Şəbəkə bağlantısı yoxdur"
#: data/ui/window.blp:49
msgid "Message"
msgstr "Mesaj"
#: data/ui/window.blp:82 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Buferə kopyalayın"
#: data/ui/window.blp:106
msgid "Ask"
msgstr "Soruş"
#: data/ui/window.blp:115
msgid "Wait"
msgstr "Gözləyin"
#: data/ui/window.blp:130
#: data/ui/window.blp:61
msgid "Response"
msgstr "Cavab"
#: data/ui/window.blp:208
#: data/ui/window.blp:113
msgid "Copy to Clipboard"
msgstr "Buferə kopyalayın"
#: data/ui/window.blp:123
msgid "Stop"
msgstr "Dayan"
#: data/ui/window.blp:152
msgid "ERROR"
msgstr ""
#: data/ui/window.blp:226
#: data/ui/window.blp:153
msgid "DESCRIPTION"
msgstr ""
#: data/ui/window.blp:156
msgid "Try Again"
msgstr "Yenidən cəhd et"
#: data/ui/window.blp:205
msgid "Ask"
msgstr "Soruş"
#: data/ui/window.blp:224
msgid "New window"
msgstr ""
msgstr "Yeni pəncərə"
#: data/ui/window.blp:237 src/main.py:281
#: data/ui/window.blp:235 src/main.py:274
msgid "Keyboard Shortcuts"
msgstr "Klaviatura Qısayolları"
#: data/ui/window.blp:242 src/main.py:282
#: data/ui/window.blp:240 src/main.py:275
msgid "About Bavarder"
msgstr "Bavarder haqqında"
#: src/main.py:246
msgid "New Window"
msgstr ""
#: src/provider/base.py:43
#: src/providers/base.py:43
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:45
#: src/providers/base.py:45
msgid "Open settings"
msgstr "Parametrləri açın"
#: src/provider/catgpt.py:9
msgid "CatGPT"
msgstr "Cat GPT"
#: src/providers/base.py:81
msgid "About provider"
msgstr "Provayder haqqında"
#: src/providers/base.py:95
msgid "How to get a token"
msgstr "Tokeni necə əldə etmək olar"
#: src/providers/base.py:118
msgid "No preferences available"
msgstr "Heç bir tərcih yoxdur"
#: src/providers/huggingface.py:73 src/providers/transformer.py:68
msgid "API Key"
msgstr "API Açarı"
#: src/providers/openai.py:27
msgid "Prompt too long, splitting into chunks."
msgstr "Tələb çox uzundur, parçalara bölünür."
#: src/providers/openai.py:49
msgid "You don't have access to this model"
msgstr "Bu modelə girişiniz yoxdur"
#: src/providers/openai.py:54
msgid ""
"You exceeded your current quota, please check your plan and billing details."
msgstr ""
"Cari kvotanızı keçdiniz, lütfən, planınızı və faktura məlumatlarınızı "
"yoxlayın."
#: src/providers/openai.py:59
msgid "API Error"
msgstr "API xətası"
#: src/providers/openai.py:70
msgid "No model selected, you can choose one in preferences"
msgstr "Heç bir model seçilməyib, üstünlüklərdən birini seçə bilərsiniz"
#: src/providers/openaicustom.py:33
msgid "API Url"
msgstr "API Url"
#: src/providers/openaicustom.py:40
msgid "Model"
msgstr "Model"
#: src/providers/openaicustom.py:80
msgid "How to choose a model"
msgstr "Bir modeli necə seçmək olar"
#: src/views/about_window.py:12
msgid "translator-credits"
msgstr "Mehrab Poladov | thepoladov@protonmail.com"
#: src/views/about_window.py:26
msgid "0xMRTT"
msgstr "0xMRTT"
#: src/views/about_window.py:44
msgid "Copyright © 2023 0xMRTT"
msgstr "Müəlliflik hüququ © 2023 0xMRTT"
#: src/main.py:124
msgid "New version available!"
msgstr "Yeni versiya mövcuddur!"
#: src/main.py:240
msgid "New Window"
msgstr "Yeni Pəncərə"
#~ msgid "Message"
#~ msgstr "Mesaj"
#~ msgid "Wait"
#~ msgstr "Gözləyin"
#~ msgctxt "shortcut window"
#~ msgid "General"
#~ msgstr "Ümumi"
#~ msgctxt "shortcut window"
#~ msgid "Show Shortcuts"
#~ msgstr "Qısayolları göstərin"
#~ msgctxt "shortcut window"
#~ msgid "Ask"
#~ msgstr "Soruş"
#~ msgctxt "shortcut window"
#~ msgid "Close current window"
#~ msgstr "Cari pəncərəni bağla"
#~ msgctxt "shortcut window"
#~ msgid "Close all windows"
#~ msgstr "Bütün pəncərələri bağla"
#~ msgctxt "shortcut window"
#~ msgid "Preferences"
#~ msgstr "Üstünlüklər"
#~ msgctxt "shortcut window"
#~ msgid "Copy response"
#~ msgstr "Cavabı kopyala"
#~ msgctxt "shortcut window"
#~ msgid "Clear"
#~ msgstr "Təmizlə"
#~ msgid "CatGPT"
#~ msgstr "Cat GPT"
#~ msgid "Chit-chat with an AI"
#~ msgstr "Chit AI ilə söhbət edin"
#~ msgid "0xMRTT"
#~ msgstr "0xMRTT"
#~ msgid "Screenshot of Main UI"
#~ msgstr "Əsas UI ekran görüntüsü"

241
po/cs.po
View File

@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 14:05+0000\n"
"PO-Revision-Date: 2023-05-16 12:00+0000\n"
"POT-Creation-Date: 2023-06-01 17:40+0000\n"
"PO-Revision-Date: 2023-06-02 11:46+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"Language-Team: Czech <https://translate.codeberg.org/projects/bavarder/"
"bavarder/cs/>\n"
@@ -21,51 +21,11 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3 data/ui/window.blp:7
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 data/ui/window.blp:7
msgid "Bavarder"
msgstr "Bavarder"
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
msgid "General"
msgstr "Obecné"
#: data/ui/help-overlay.ui:14
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgstr "Zobrazit zkratky"
#: data/ui/help-overlay.ui:20
msgctxt "shortcut window"
msgid "Ask"
msgstr "Zeptat se"
#: data/ui/help-overlay.ui:26
msgctxt "shortcut window"
msgid "Close current window"
msgstr ""
#: data/ui/help-overlay.ui:32
msgctxt "shortcut window"
msgid "Close all windows"
msgstr ""
#: data/ui/help-overlay.ui:38
msgctxt "shortcut window"
msgid "Preferences"
msgstr "Nastavení"
#: data/ui/help-overlay.ui:44
msgctxt "shortcut window"
msgid "Copy response"
msgstr "Zkopírovat odpověď"
#: data/ui/help-overlay.ui:50
msgctxt "shortcut window"
msgid "Clear"
msgstr "Vymazat"
#: data/ui/preferences.blp:5 data/ui/window.blp:232 src/main.py:280
#: data/ui/preferences.blp:5 data/ui/window.blp:230 src/main.py:273
msgid "Preferences"
msgstr "Nastavení"
@@ -91,13 +51,22 @@ msgstr "Použije se prostý text bez formátování"
#: data/ui/preferences.blp:33
msgid "Close all windows without warning"
msgstr ""
msgstr "Zavřít všechna okna bez varování"
#: data/ui/preferences.blp:34
msgid "All windows will be closed without warning, this can lead to data loss"
msgstr ""
msgstr "Všechna okna se bez varování zavřou, což může vést ke ztrátě dat"
#: data/ui/preferences.blp:43 src/main.py:278
#: data/ui/preferences.blp:42
msgid "Look for provider news"
msgstr "Podívat se na novinky od poskytovatelů"
#: data/ui/preferences.blp:43
msgid "News about issues with providers will be fetched from Bavarder website"
msgstr ""
"Zprávy o problémech s poskytovateli budou získávány ze stránek Bavarder"
#: data/ui/preferences.blp:52 src/main.py:271
msgid "Providers"
msgstr "Poskytovatelé"
@@ -105,70 +74,176 @@ msgstr "Poskytovatelé"
msgid "Main Menu"
msgstr "Hlavní menu"
#: data/ui/window.blp:34 src/provider/base.py:50
#: data/ui/window.blp:34 src/providers/base.py:50
msgid "No network connection"
msgstr "Žádné připojení k síti"
#: data/ui/window.blp:49
msgid "Message"
msgstr "Zpráva"
#: data/ui/window.blp:82 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Kopírovat do schránky"
#: data/ui/window.blp:106
msgid "Ask"
msgstr "Zeptat se"
#: data/ui/window.blp:115
msgid "Wait"
msgstr "Čekejte"
#: data/ui/window.blp:130
#: data/ui/window.blp:61
msgid "Response"
msgstr "Odpověď"
#: data/ui/window.blp:208
#: data/ui/window.blp:113
msgid "Copy to Clipboard"
msgstr "Kopírovat do schránky"
#: data/ui/window.blp:123
msgid "Stop"
msgstr "Zastavit"
#: data/ui/window.blp:226
#: data/ui/window.blp:152
msgid "ERROR"
msgstr ""
#: data/ui/window.blp:153
msgid "DESCRIPTION"
msgstr ""
#: data/ui/window.blp:156
msgid "Try Again"
msgstr "Zkusit znovu"
#: data/ui/window.blp:205
msgid "Ask"
msgstr "Zeptat se"
#: data/ui/window.blp:224
msgid "New window"
msgstr "Nové okno"
#: data/ui/window.blp:237 src/main.py:281
#: data/ui/window.blp:235 src/main.py:274
msgid "Keyboard Shortcuts"
msgstr "Klávesové zkratky"
#: data/ui/window.blp:242 src/main.py:282
#: data/ui/window.blp:240 src/main.py:275
msgid "About Bavarder"
msgstr "O Bavarder"
#: src/main.py:246
#, fuzzy
#| msgid "New window"
msgid "New Window"
msgstr "Nové okno"
#: src/provider/base.py:43
#: src/providers/base.py:43
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:45
#: src/providers/base.py:45
msgid "Open settings"
msgstr "Otevřít nastavení"
#: src/provider/catgpt.py:9
msgid "CatGPT"
msgstr "Cat GPT"
#: src/providers/base.py:81
msgid "About provider"
msgstr "O poskytovateli"
#: src/providers/base.py:95
msgid "How to get a token"
msgstr "Jak získat token"
#: src/providers/base.py:118
msgid "No preferences available"
msgstr "Žádná nastavení nejsou k dispozici"
#: src/providers/huggingface.py:73 src/providers/transformer.py:68
msgid "API Key"
msgstr "Klíč API"
#: src/providers/openai.py:27
msgid "Prompt too long, splitting into chunks."
msgstr "Dotaz je příliš dlouhý, rozděluji jej na části."
#: src/providers/openai.py:49
msgid "You don't have access to this model"
msgstr "Nemáte přístup k tomuto modelu"
#: src/providers/openai.py:54
msgid ""
"You exceeded your current quota, please check your plan and billing details."
msgstr ""
"Překročili jste svůj limit, zkontrolujte prosím svůj tarif a fakturační "
"údaje."
#: src/providers/openai.py:59
msgid "API Error"
msgstr "API chyba"
#: src/providers/openai.py:70
msgid "No model selected, you can choose one in preferences"
msgstr "Není vybrán model, vyberte si jeden z nastavení"
#: src/providers/openaicustom.py:33
msgid "API Url"
msgstr "API Url"
#: src/providers/openaicustom.py:40
msgid "Model"
msgstr "Model"
#: src/providers/openaicustom.py:80
msgid "How to choose a model"
msgstr "Jak vybrat model"
#: src/views/about_window.py:12
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
" Gmisiycs https://launchpad.net/~gmisiycs\n"
" Pavel Borecki https://launchpad.net/~pavel-borecki"
#: src/views/about_window.py:26
msgid "0xMRTT"
msgstr "0xMRTT"
#: src/views/about_window.py:44
msgid "Copyright © 2023 0xMRTT"
msgstr ""
#: src/main.py:124
msgid "New version available!"
msgstr "Nová verze je k dispozici!"
#: src/main.py:240
msgid "New Window"
msgstr "Nové okno"
#~ msgid "Message"
#~ msgstr "Zpráva"
#~ msgid "Wait"
#~ msgstr "Čekejte"
#~ msgctxt "shortcut window"
#~ msgid "General"
#~ msgstr "Obecné"
#~ msgctxt "shortcut window"
#~ msgid "Show Shortcuts"
#~ msgstr "Zobrazit zkratky"
#~ msgctxt "shortcut window"
#~ msgid "Ask"
#~ msgstr "Zeptat se"
#~ msgctxt "shortcut window"
#~ msgid "Close current window"
#~ msgstr "Zavřít aktuální okno"
#~ msgctxt "shortcut window"
#~ msgid "Close all windows"
#~ msgstr "Zavřít všechna okna"
#~ msgctxt "shortcut window"
#~ msgid "Preferences"
#~ msgstr "Nastavení"
#~ msgctxt "shortcut window"
#~ msgid "Copy response"
#~ msgstr "Zkopírovat odpověď"
#~ msgctxt "shortcut window"
#~ msgid "Clear"
#~ msgstr "Vymazat"
#~ msgid "CatGPT"
#~ msgstr "Cat GPT"
#~ msgid "Chit-chat with an AI"
#~ msgstr "Chatovat s umělou inteligencí"
#~ msgid "0xMRTT"
#~ msgstr "0xMRTT"
#~ msgid "Screenshot of Main UI"
#~ msgstr "Snímek obrazovky hlavního uživatelského rozhraní"

247
po/de.po
View File

@@ -5,13 +5,14 @@
#
# 0xMRTT <0xmrtt@tuta.io>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
# maymage <maymage@gmail.com>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 14:05+0000\n"
"PO-Revision-Date: 2023-05-16 12:00+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"POT-Creation-Date: 2023-06-01 17:40+0000\n"
"PO-Revision-Date: 2023-06-03 00:37+0000\n"
"Last-Translator: maymage <maymage@gmail.com>\n"
"Language-Team: German <https://translate.codeberg.org/projects/bavarder/"
"bavarder/de/>\n"
"Language: de\n"
@@ -21,51 +22,11 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3 data/ui/window.blp:7
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 data/ui/window.blp:7
msgid "Bavarder"
msgstr "Bavarder"
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
msgid "General"
msgstr "Allgemein"
#: data/ui/help-overlay.ui:14
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgstr "Verknüpfungen anzeigen"
#: data/ui/help-overlay.ui:20
msgctxt "shortcut window"
msgid "Ask"
msgstr "Fragen"
#: data/ui/help-overlay.ui:26
msgctxt "shortcut window"
msgid "Close current window"
msgstr ""
#: data/ui/help-overlay.ui:32
msgctxt "shortcut window"
msgid "Close all windows"
msgstr ""
#: data/ui/help-overlay.ui:38
msgctxt "shortcut window"
msgid "Preferences"
msgstr "Einstellungen"
#: data/ui/help-overlay.ui:44
msgctxt "shortcut window"
msgid "Copy response"
msgstr "Antwort kopieren"
#: data/ui/help-overlay.ui:50
msgctxt "shortcut window"
msgid "Clear"
msgstr "Löschen"
#: data/ui/preferences.blp:5 data/ui/window.blp:232 src/main.py:280
#: data/ui/preferences.blp:5 data/ui/window.blp:230 src/main.py:273
msgid "Preferences"
msgstr "Einstellungen"
@@ -83,21 +44,31 @@ msgstr "Die Eingabeaufforderung wird nach dem Senden gelöscht"
#: data/ui/preferences.blp:24
msgid "Use plain text for output"
msgstr "Verwenden Sie für die Ausgabe Klartext"
msgstr "Klartextausgabe verwenden"
#: data/ui/preferences.blp:25
msgid "The plain text without formatting will be used"
msgstr "Es wird der reine Text ohne Formatierung verwendet"
msgstr "Es wird Reintext ohne Formatierung verwendet"
#: data/ui/preferences.blp:33
msgid "Close all windows without warning"
msgstr ""
msgstr "Alle Fenster ohne Warnung schließen"
#: data/ui/preferences.blp:34
msgid "All windows will be closed without warning, this can lead to data loss"
msgstr ""
"Alle Fester werden ohne Warnung geschlossen, dies kann zu Datenverlust führen"
#: data/ui/preferences.blp:43 src/main.py:278
#: data/ui/preferences.blp:42
msgid "Look for provider news"
msgstr "Nach neuen Anbietern suchen"
#: data/ui/preferences.blp:43
msgid "News about issues with providers will be fetched from Bavarder website"
msgstr ""
"Neuigkeiten zu Anbieterproblemen werden von der Bavarder Webseite bezogen"
#: data/ui/preferences.blp:52 src/main.py:271
msgid "Providers"
msgstr "Anbieter"
@@ -105,71 +76,175 @@ msgstr "Anbieter"
msgid "Main Menu"
msgstr "Hauptmenü"
#: data/ui/window.blp:34 src/provider/base.py:50
#: data/ui/window.blp:34 src/providers/base.py:50
msgid "No network connection"
msgstr "Keine Netzwerkverbindung"
#: data/ui/window.blp:49
msgid "Message"
msgstr "Meldung"
#: data/ui/window.blp:82 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "In die Zwischenablage kopieren"
#: data/ui/window.blp:106
msgid "Ask"
msgstr "Fragen"
#: data/ui/window.blp:115
msgid "Wait"
msgstr "Warten"
#: data/ui/window.blp:130
#: data/ui/window.blp:61
msgid "Response"
msgstr "Antwort"
#: data/ui/window.blp:208
#: data/ui/window.blp:113
msgid "Copy to Clipboard"
msgstr "In die Zwischenablage kopieren"
#: data/ui/window.blp:123
msgid "Stop"
msgstr "Stop"
#: data/ui/window.blp:226
#: data/ui/window.blp:152
msgid "ERROR"
msgstr "Fehler"
#: data/ui/window.blp:153
msgid "DESCRIPTION"
msgstr "Beschreibung"
#: data/ui/window.blp:156
msgid "Try Again"
msgstr "Erneut versuchen"
#: data/ui/window.blp:205
msgid "Ask"
msgstr "Fragen"
#: data/ui/window.blp:224
msgid "New window"
msgstr "Neues Fenster"
#: data/ui/window.blp:237 src/main.py:281
#: data/ui/window.blp:235 src/main.py:274
msgid "Keyboard Shortcuts"
msgstr "Tastatürkürzel"
msgstr "Tastenkürzel"
#: data/ui/window.blp:242 src/main.py:282
#: data/ui/window.blp:240 src/main.py:275
msgid "About Bavarder"
msgstr "Über Bavarder"
#: src/main.py:246
#, fuzzy
#| msgid "New window"
msgid "New Window"
msgstr "Neues Fenster"
#: src/provider/base.py:43
#: src/providers/base.py:43
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:45
#: src/providers/base.py:45
msgid "Open settings"
msgstr "Einstellungen öffnen"
#: src/provider/catgpt.py:9
msgid "CatGPT"
msgstr "Katze GPT"
#: src/providers/base.py:81
msgid "About provider"
msgstr "Über den Anbieter"
#: src/providers/base.py:95
msgid "How to get a token"
msgstr "Wie Sie einen Schlüssel bekommen"
#: src/providers/base.py:118
msgid "No preferences available"
msgstr "Keine Einstellungen verfügbar"
#: src/providers/huggingface.py:73 src/providers/transformer.py:68
msgid "API Key"
msgstr "API Schlüssel"
#: src/providers/openai.py:27
msgid "Prompt too long, splitting into chunks."
msgstr "Zu lange Eingabe, sie wird zerlegt."
#: src/providers/openai.py:49
msgid "You don't have access to this model"
msgstr "Sie haben keine Zugang zu diesem Modell"
#: src/providers/openai.py:54
msgid ""
"You exceeded your current quota, please check your plan and billing details."
msgstr ""
"Sie haben ihre laufende Quote überschritten, bitte überprüfen Sie Ihren Plan "
"und Rechnungsdetails."
#: src/providers/openai.py:59
msgid "API Error"
msgstr "API Fehler"
#: src/providers/openai.py:70
msgid "No model selected, you can choose one in preferences"
msgstr "Kein Modell ausgewählt, Sie können eines in den Einstellungen wählen"
#: src/providers/openaicustom.py:33
msgid "API Url"
msgstr "API Url"
#: src/providers/openaicustom.py:40
msgid "Model"
msgstr "Modell"
#: src/providers/openaicustom.py:80
msgid "How to choose a model"
msgstr "Wie Sie ein Modell wählen"
#: src/views/about_window.py:12
msgid "translator-credits"
msgstr "Übersetzerwürdigung"
#: src/views/about_window.py:26
msgid "0xMRTT"
msgstr "0xMRTT"
#: src/views/about_window.py:44
msgid "Copyright © 2023 0xMRTT"
msgstr "Urheberrechte © 2023 0xMRTT"
#: src/main.py:124
msgid "New version available!"
msgstr "Neue Version verfügbar!"
#: src/main.py:240
msgid "New Window"
msgstr "Neues Fenster"
#~ msgid "Message"
#~ msgstr "Meldung"
#~ msgid "Wait"
#~ msgstr "Warten"
#~ msgctxt "shortcut window"
#~ msgid "General"
#~ msgstr "Allgemein"
#~ msgctxt "shortcut window"
#~ msgid "Show Shortcuts"
#~ msgstr "Tastenkürzel anzeigen"
#~ msgctxt "shortcut window"
#~ msgid "Ask"
#~ msgstr "Fragen"
#~ msgctxt "shortcut window"
#~ msgid "Close current window"
#~ msgstr "Aktuelles Fenster schließen"
#~ msgctxt "shortcut window"
#~ msgid "Close all windows"
#~ msgstr "Alle Fenster schließen"
#~ msgctxt "shortcut window"
#~ msgid "Preferences"
#~ msgstr "Einstellungen"
#~ msgctxt "shortcut window"
#~ msgid "Copy response"
#~ msgstr "Antwort kopieren"
#~ msgctxt "shortcut window"
#~ msgid "Clear"
#~ msgstr "Löschen"
#, fuzzy
#~ msgid "CatGPT"
#~ msgstr "Katze GPT"
#~ msgid "Chit-chat with an AI"
#~ msgstr "Plaudern Sie mit GPT"
#~ msgid "0xMRTT"
#~ msgstr "0xMRTT"
#~ msgid "Screenshot of Main UI"
#~ msgstr "Screenshot der Hauptbenutzeroberfläche"

250
po/es.po
View File

@@ -12,9 +12,9 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 14:05+0000\n"
"PO-Revision-Date: 2023-05-16 12:00+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"POT-Creation-Date: 2023-06-01 17:40+0000\n"
"PO-Revision-Date: 2023-06-05 03:29+0000\n"
"Last-Translator: gallegonovato <fran-carro@hotmail.es>\n"
"Language-Team: Spanish <https://translate.codeberg.org/projects/bavarder/"
"bavarder/es/>\n"
"Language: es\n"
@@ -24,51 +24,11 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3 data/ui/window.blp:7
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 data/ui/window.blp:7
msgid "Bavarder"
msgstr "Bavarder"
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
msgid "General"
msgstr "General"
#: data/ui/help-overlay.ui:14
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgstr "Mostrar Atajos de Teclado"
#: data/ui/help-overlay.ui:20
msgctxt "shortcut window"
msgid "Ask"
msgstr "Preguntar"
#: data/ui/help-overlay.ui:26
msgctxt "shortcut window"
msgid "Close current window"
msgstr ""
#: data/ui/help-overlay.ui:32
msgctxt "shortcut window"
msgid "Close all windows"
msgstr ""
#: data/ui/help-overlay.ui:38
msgctxt "shortcut window"
msgid "Preferences"
msgstr "Preferencias"
#: data/ui/help-overlay.ui:44
msgctxt "shortcut window"
msgid "Copy response"
msgstr "Copiar la respuesta"
#: data/ui/help-overlay.ui:50
msgctxt "shortcut window"
msgid "Clear"
msgstr "Borrar"
#: data/ui/preferences.blp:5 data/ui/window.blp:232 src/main.py:280
#: data/ui/preferences.blp:5 data/ui/window.blp:230 src/main.py:273
msgid "Preferences"
msgstr "Preferencias"
@@ -86,21 +46,33 @@ msgstr "La entrada será borrada después de enviar"
#: data/ui/preferences.blp:24
msgid "Use plain text for output"
msgstr ""
msgstr "Utiliza el texto sin formato para la salida"
#: data/ui/preferences.blp:25
msgid "The plain text without formatting will be used"
msgstr ""
msgstr "Se utilizará el texto sin formato"
#: data/ui/preferences.blp:33
msgid "Close all windows without warning"
msgstr ""
msgstr "Cerrar todas las ventanas sin previo aviso"
#: data/ui/preferences.blp:34
msgid "All windows will be closed without warning, this can lead to data loss"
msgstr ""
"Todas las ventanas se cerrarán sin previo aviso, lo que puede provocar la "
"pérdida de datos"
#: data/ui/preferences.blp:43 src/main.py:278
#: data/ui/preferences.blp:42
msgid "Look for provider news"
msgstr "Buscar las noticias de los proveedores"
#: data/ui/preferences.blp:43
msgid "News about issues with providers will be fetched from Bavarder website"
msgstr ""
"Las noticias con los problemas de los proveedores se buscarán en la página "
"web de Bavarder"
#: data/ui/preferences.blp:52 src/main.py:271
msgid "Providers"
msgstr "Proveedores"
@@ -108,69 +80,177 @@ msgstr "Proveedores"
msgid "Main Menu"
msgstr "Menú Principal"
#: data/ui/window.blp:34 src/provider/base.py:50
#: data/ui/window.blp:34 src/providers/base.py:50
msgid "No network connection"
msgstr "No hay conexión de red"
#: data/ui/window.blp:49
msgid "Message"
msgstr "Mensaje"
#: data/ui/window.blp:82 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Copiar al portapapeles"
#: data/ui/window.blp:106
msgid "Ask"
msgstr "Preguntar"
#: data/ui/window.blp:115
msgid "Wait"
msgstr "Espera"
#: data/ui/window.blp:130
#: data/ui/window.blp:61
msgid "Response"
msgstr "Respuesta"
#: data/ui/window.blp:208
#: data/ui/window.blp:113
msgid "Copy to Clipboard"
msgstr "Copiar al portapapeles"
#: data/ui/window.blp:123
msgid "Stop"
msgstr "Parar"
msgstr "Detener"
#: data/ui/window.blp:226
#: data/ui/window.blp:152
msgid "ERROR"
msgstr "ERROR"
#: data/ui/window.blp:153
msgid "DESCRIPTION"
msgstr "DESCRIPCIÓN"
#: data/ui/window.blp:156
msgid "Try Again"
msgstr "Intentar de nuevo"
#: data/ui/window.blp:205
msgid "Ask"
msgstr "Preguntar"
#: data/ui/window.blp:224
msgid "New window"
msgstr ""
msgstr "Nueva ventana"
#: data/ui/window.blp:237 src/main.py:281
#: data/ui/window.blp:235 src/main.py:274
msgid "Keyboard Shortcuts"
msgstr "Atajos de Teclado"
#: data/ui/window.blp:242 src/main.py:282
#: data/ui/window.blp:240 src/main.py:275
msgid "About Bavarder"
msgstr "Sobre Bavarder"
#: src/main.py:246
msgid "New Window"
msgstr ""
#: src/provider/base.py:43
#: src/providers/base.py:43
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:45
#: src/providers/base.py:45
msgid "Open settings"
msgstr "Abrir configuraciones"
#: src/provider/catgpt.py:9
msgid "CatGPT"
msgstr "Charla GPT"
#: src/providers/base.py:81
msgid "About provider"
msgstr "Acerca del proveedor"
#: src/providers/base.py:95
msgid "How to get a token"
msgstr "Cómo conseguir un token"
#: src/providers/base.py:118
msgid "No preferences available"
msgstr "No existen preferencias"
#: src/providers/huggingface.py:73 src/providers/transformer.py:68
msgid "API Key"
msgstr "Clave de la API"
#: src/providers/openai.py:27
msgid "Prompt too long, splitting into chunks."
msgstr "Prompt demasiado largo, dividido en trozos."
#: src/providers/openai.py:49
msgid "You don't have access to this model"
msgstr "No tienes acceso a este modelo"
#: src/providers/openai.py:54
msgid ""
"You exceeded your current quota, please check your plan and billing details."
msgstr ""
"Has superado tu cuota actual, por favor comprueba los detalles de tu plan y "
"la facturación."
#: src/providers/openai.py:59
msgid "API Error"
msgstr "Error de la API"
#: src/providers/openai.py:70
msgid "No model selected, you can choose one in preferences"
msgstr ""
"No hay ningún modelo seleccionado, puedes elegir uno en las preferencias"
#: src/providers/openaicustom.py:33
msgid "API Url"
msgstr "Dirección url de la API"
#: src/providers/openaicustom.py:40
msgid "Model"
msgstr "Modelo"
#: src/providers/openaicustom.py:80
msgid "How to choose a model"
msgstr "Cómo elegir un modelo"
#: src/views/about_window.py:12
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
" Hector A. Mantellini https://launchpad.net/~xombra"
#: src/views/about_window.py:26
msgid "0xMRTT"
msgstr "0xMRTT"
#: src/views/about_window.py:44
msgid "Copyright © 2023 0xMRTT"
msgstr "Copyright © 2023 0xMRTT"
#: src/main.py:124
msgid "New version available!"
msgstr "¡Una nueva versión está disponible!"
#: src/main.py:240
msgid "New Window"
msgstr "Nueva Ventana"
#~ msgid "Message"
#~ msgstr "Mensaje"
#~ msgid "Wait"
#~ msgstr "Espera"
#~ msgctxt "shortcut window"
#~ msgid "General"
#~ msgstr "General"
#~ msgctxt "shortcut window"
#~ msgid "Show Shortcuts"
#~ msgstr "Mostrar Atajos de Teclado"
#~ msgctxt "shortcut window"
#~ msgid "Ask"
#~ msgstr "Preguntar"
#~ msgctxt "shortcut window"
#~ msgid "Close current window"
#~ msgstr "Cerrar la ventana actual"
#~ msgctxt "shortcut window"
#~ msgid "Close all windows"
#~ msgstr "Cerrar todas las ventanas"
#~ msgctxt "shortcut window"
#~ msgid "Preferences"
#~ msgstr "Preferencias"
#~ msgctxt "shortcut window"
#~ msgid "Copy response"
#~ msgstr "Copiar la respuesta"
#~ msgctxt "shortcut window"
#~ msgid "Clear"
#~ msgstr "Borrar"
#~ msgid "CatGPT"
#~ msgstr "Charla GPT"
#~ msgid "Chit-chat with an AI"
#~ msgstr "Conversa con una IA"
#~ msgid "0xMRTT"
#~ msgstr "0xMRTT"
#~ msgid "Screenshot of Main UI"
#~ msgstr "Captura de Pantalla de la Interfaz de Usuario Principal"

196
po/et.po Normal file
View File

@@ -0,0 +1,196 @@
# Bavarder POT file
# Copyright (C) 2023 Bavarder
# This file is distributed under the GNU GPLv3 license.
# Bavarder, 2023.
#
# vabaME <vaba@riseup.net>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-01 17:40+0000\n"
"PO-Revision-Date: 2023-06-05 19:37+0000\n"
"Last-Translator: vabaME <vaba@riseup.net>\n"
"Language-Team: Estonian <https://translate.codeberg.org/projects/bavarder/"
"bavarder/et/>\n"
"Language: et\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.in:3 data/ui/window.blp:7
msgid "Bavarder"
msgstr "Bavarder"
#: data/ui/preferences.blp:5 data/ui/window.blp:230 src/main.py:273
msgid "Preferences"
msgstr "Eelistused"
#: data/ui/preferences.blp:12
msgid "Prompt"
msgstr "Viip"
#: data/ui/preferences.blp:15
msgid "Clear prompt after send"
msgstr "Kustuta viip pärast saatmist"
#: data/ui/preferences.blp:16
msgid "The prompt will be cleared after send"
msgstr "Viip kustutatakse pärast saatmist"
#: data/ui/preferences.blp:24
msgid "Use plain text for output"
msgstr "Kasuta väljundiks lihtteksti"
#: data/ui/preferences.blp:25
msgid "The plain text without formatting will be used"
msgstr "Kasutatakse vorminguta lihtteksti"
#: data/ui/preferences.blp:33
msgid "Close all windows without warning"
msgstr "Sulge kõik aknad ilma hoiatuseta"
#: data/ui/preferences.blp:34
msgid "All windows will be closed without warning, this can lead to data loss"
msgstr "Kõik aknad suletakse hoiatamata, see võib põhjustada andmete kadumise"
#: data/ui/preferences.blp:42
msgid "Look for provider news"
msgstr "Otsi teenusepakkuja uudiseid"
#: data/ui/preferences.blp:43
msgid "News about issues with providers will be fetched from Bavarder website"
msgstr ""
"Uudised teenusepakkujatega seotud probleemide kohta hangitakse Bavarderi "
"veebisaidilt"
#: data/ui/preferences.blp:52 src/main.py:271
msgid "Providers"
msgstr "Teenusepakkujad"
#: data/ui/window.blp:28
msgid "Main Menu"
msgstr "Peamenüü"
#: data/ui/window.blp:34 src/providers/base.py:50
msgid "No network connection"
msgstr "Võrguühendus puudub"
#: data/ui/window.blp:61
msgid "Response"
msgstr "Vastus"
#: data/ui/window.blp:113
msgid "Copy to Clipboard"
msgstr "Kopeeri lõikelauale"
#: data/ui/window.blp:123
msgid "Stop"
msgstr "Stopp"
#: data/ui/window.blp:152
msgid "ERROR"
msgstr "VIGA"
#: data/ui/window.blp:153
msgid "DESCRIPTION"
msgstr "KIRJELDUS"
#: data/ui/window.blp:156
msgid "Try Again"
msgstr "Proovi uuesti"
#: data/ui/window.blp:205
msgid "Ask"
msgstr "Küsi"
#: data/ui/window.blp:224
msgid "New window"
msgstr "Uus aken"
#: data/ui/window.blp:235 src/main.py:274
msgid "Keyboard Shortcuts"
msgstr "Klaviatuuri kiirvalikud"
#: data/ui/window.blp:240 src/main.py:275
msgid "About Bavarder"
msgstr "Teave"
#: src/providers/base.py:43
msgid "No API key provided, you can provide one in settings"
msgstr "API-võtit ei pakuta, saad selle seadistustes sisestada"
#: src/providers/base.py:45
msgid "Open settings"
msgstr "Ava seadistused"
#: src/providers/base.py:81
msgid "About provider"
msgstr "Pakkuja kohta"
#: src/providers/base.py:95
msgid "How to get a token"
msgstr ""
#: src/providers/base.py:118
msgid "No preferences available"
msgstr "No preferences available"
#: src/providers/huggingface.py:73 src/providers/transformer.py:68
msgid "API Key"
msgstr "API võti"
#: src/providers/openai.py:27
msgid "Prompt too long, splitting into chunks."
msgstr "Viip liiga pikk, jaguneb tükkideks."
#: src/providers/openai.py:49
msgid "You don't have access to this model"
msgstr "Sul pole sellele mudelile juurdepääsu"
#: src/providers/openai.py:54
msgid ""
"You exceeded your current quota, please check your plan and billing details."
msgstr "Ületasid oma praeguse kvoodi, kontrolli oma plaani ja arveldusandmeid."
#: src/providers/openai.py:59
msgid "API Error"
msgstr "API viga"
#: src/providers/openai.py:70
msgid "No model selected, you can choose one in preferences"
msgstr "Ühtegi mudelit pole valitud, saate ühe valida eelistustes"
#: src/providers/openaicustom.py:33
msgid "API Url"
msgstr "API Url"
#: src/providers/openaicustom.py:40
msgid "Model"
msgstr "Mudel"
#: src/providers/openaicustom.py:80
msgid "How to choose a model"
msgstr "Kuidas valida mudelit"
#: src/views/about_window.py:12
msgid "translator-credits"
msgstr ""
#: src/views/about_window.py:26
msgid "0xMRTT"
msgstr "0xMRTT"
#: src/views/about_window.py:44
msgid "Copyright © 2023 0xMRTT"
msgstr "Autoriõigus © 2023 0xMRTT"
#: src/main.py:124
msgid "New version available!"
msgstr "Uus versioon on saadaval!"
#: src/main.py:240
msgid "New Window"
msgstr "Uus aken"

231
po/fa.po
View File

@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 14:05+0000\n"
"PO-Revision-Date: 2023-05-16 12:00+0000\n"
"POT-Creation-Date: 2023-06-01 17:40+0000\n"
"PO-Revision-Date: 2023-06-03 00:37+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"Language-Team: Persian <https://translate.codeberg.org/projects/bavarder/"
"bavarder/fa/>\n"
@@ -21,55 +21,11 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3 data/ui/window.blp:7
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 data/ui/window.blp:7
msgid "Bavarder"
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 "Close current window"
msgstr ""
#: data/ui/help-overlay.ui:32
msgctxt "shortcut window"
msgid "Close all windows"
msgstr ""
#: data/ui/help-overlay.ui:38
#, fuzzy
#| msgid "Preferences"
msgctxt "shortcut window"
msgid "Preferences"
msgstr "پیش‌فرض‌ها"
#: data/ui/help-overlay.ui:44
#, fuzzy
#| msgid "Response"
msgctxt "shortcut window"
msgid "Copy response"
msgstr "پاسخ"
#: data/ui/help-overlay.ui:50
msgctxt "shortcut window"
msgid "Clear"
msgstr "پاک‌سازی"
#: data/ui/preferences.blp:5 data/ui/window.blp:232 src/main.py:280
#: data/ui/preferences.blp:5 data/ui/window.blp:230 src/main.py:273
msgid "Preferences"
msgstr "پیش‌فرض‌ها"
@@ -101,7 +57,15 @@ msgstr ""
msgid "All windows will be closed without warning, this can lead to data loss"
msgstr ""
#: data/ui/preferences.blp:43 src/main.py:278
#: data/ui/preferences.blp:42
msgid "Look for provider news"
msgstr ""
#: data/ui/preferences.blp:43
msgid "News about issues with providers will be fetched from Bavarder website"
msgstr ""
#: data/ui/preferences.blp:52 src/main.py:271
msgid "Providers"
msgstr "تامین کنندگان"
@@ -109,68 +73,169 @@ msgstr "تامین کنندگان"
msgid "Main Menu"
msgstr "منوی اصلی"
#: data/ui/window.blp:34 src/provider/base.py:50
#: data/ui/window.blp:34 src/providers/base.py:50
msgid "No network connection"
msgstr "ارتباط شبکه برقرار نیست"
#: data/ui/window.blp:49
msgid "Message"
msgstr "پیام"
#: data/ui/window.blp:82 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "کپی به کلیپ بورد"
#: data/ui/window.blp:106
msgid "Ask"
msgstr "بپرس"
#: data/ui/window.blp:115
msgid "Wait"
msgstr "منتظر باش"
#: data/ui/window.blp:130
#: data/ui/window.blp:61
msgid "Response"
msgstr "پاسخ"
#: data/ui/window.blp:208
#: data/ui/window.blp:113
msgid "Copy to Clipboard"
msgstr "کپی به کلیپ بورد"
#: data/ui/window.blp:123
msgid "Stop"
msgstr "توقف"
#: data/ui/window.blp:226
#: data/ui/window.blp:152
msgid "ERROR"
msgstr ""
#: data/ui/window.blp:153
msgid "DESCRIPTION"
msgstr ""
#: data/ui/window.blp:156
msgid "Try Again"
msgstr "تلاش مجدد"
#: data/ui/window.blp:205
msgid "Ask"
msgstr "بپرس"
#: data/ui/window.blp:224
msgid "New window"
msgstr ""
#: data/ui/window.blp:237 src/main.py:281
#: data/ui/window.blp:235 src/main.py:274
msgid "Keyboard Shortcuts"
msgstr "کلیدهای میانبر"
#: data/ui/window.blp:242 src/main.py:282
#: data/ui/window.blp:240 src/main.py:275
msgid "About Bavarder"
msgstr "درباره"
#: src/main.py:246
msgid "New Window"
msgstr ""
#: src/provider/base.py:43
#: src/providers/base.py:43
msgid "No API key provided, you can provide one in settings"
msgstr "کلید API پیدا نشد، می توانید دربخش تنطیمات آن را وارد کنید"
#: src/provider/base.py:45
#: src/providers/base.py:45
msgid "Open settings"
msgstr "تنظيمات"
#: src/provider/catgpt.py:9
msgid "CatGPT"
msgstr "کت جی پی تی"
#: src/providers/base.py:81
#, fuzzy
#| msgid "About Bavarder"
msgid "About provider"
msgstr "درباره"
#: src/providers/base.py:95
msgid "How to get a token"
msgstr ""
#: src/providers/base.py:118
msgid "No preferences available"
msgstr ""
#: src/providers/huggingface.py:73 src/providers/transformer.py:68
msgid "API Key"
msgstr ""
#: src/providers/openai.py:27
msgid "Prompt too long, splitting into chunks."
msgstr ""
#: src/providers/openai.py:49
msgid "You don't have access to this model"
msgstr ""
#: src/providers/openai.py:54
msgid ""
"You exceeded your current quota, please check your plan and billing details."
msgstr ""
#: src/providers/openai.py:59
msgid "API Error"
msgstr ""
#: src/providers/openai.py:70
msgid "No model selected, you can choose one in preferences"
msgstr ""
#: src/providers/openaicustom.py:33
msgid "API Url"
msgstr ""
#: src/providers/openaicustom.py:40
msgid "Model"
msgstr ""
#: src/providers/openaicustom.py:80
msgid "How to choose a model"
msgstr ""
#: src/views/about_window.py:12
msgid "translator-credits"
msgstr ""
#: src/views/about_window.py:26
msgid "0xMRTT"
msgstr "سازنده: 0xMRTT"
#: src/views/about_window.py:44
msgid "Copyright © 2023 0xMRTT"
msgstr ""
#: src/main.py:124
msgid "New version available!"
msgstr ""
#: src/main.py:240
msgid "New Window"
msgstr ""
#~ msgid "Message"
#~ msgstr "پیام"
#~ msgid "Wait"
#~ msgstr "منتظر باش"
#~ msgctxt "shortcut window"
#~ msgid "General"
#~ msgstr "عمومی"
#~ msgctxt "shortcut window"
#~ msgid "Show Shortcuts"
#~ msgstr "نمایش کلیدهای میانبر"
#~ msgctxt "shortcut window"
#~ msgid "Ask"
#~ msgstr "بپرس"
#, fuzzy
#~| msgid "Preferences"
#~ msgctxt "shortcut window"
#~ msgid "Preferences"
#~ msgstr "پیش‌فرض‌ها"
#, fuzzy
#~| msgid "Response"
#~ msgctxt "shortcut window"
#~ msgid "Copy response"
#~ msgstr "پاسخ"
#~ msgctxt "shortcut window"
#~ msgid "Clear"
#~ msgstr "پاک‌سازی"
#~ msgid "CatGPT"
#~ msgstr "کت جی پی تی"
#~ msgid "Chit-chat with an AI"
#~ msgstr "گپی با هوش مصنوعی"
#~ msgid "0xMRTT"
#~ msgstr "سازنده: 0xMRTT"
#~ msgid "Screenshot of Main UI"
#~ msgstr "تصویر نمای اصلی"

241
po/fi.po
View File

@@ -9,9 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 14:05+0000\n"
"PO-Revision-Date: 2023-05-16 12:00+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"POT-Creation-Date: 2023-06-01 17:40+0000\n"
"PO-Revision-Date: 2023-06-09 12:26+0000\n"
"Last-Translator: artnay <jiri.gronroos@iki.fi>\n"
"Language-Team: Finnish <https://translate.codeberg.org/projects/bavarder/"
"bavarder/fi/>\n"
"Language: fi\n"
@@ -21,51 +21,11 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3 data/ui/window.blp:7
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 data/ui/window.blp:7
msgid "Bavarder"
msgstr "Bavarder"
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
msgid "General"
msgstr "Yleiset"
#: data/ui/help-overlay.ui:14
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgstr "Näytä pikanäppäimet"
#: data/ui/help-overlay.ui:20
msgctxt "shortcut window"
msgid "Ask"
msgstr "Kysy"
#: data/ui/help-overlay.ui:26
msgctxt "shortcut window"
msgid "Close current window"
msgstr ""
#: data/ui/help-overlay.ui:32
msgctxt "shortcut window"
msgid "Close all windows"
msgstr ""
#: data/ui/help-overlay.ui:38
msgctxt "shortcut window"
msgid "Preferences"
msgstr "Asetukset"
#: data/ui/help-overlay.ui:44
msgctxt "shortcut window"
msgid "Copy response"
msgstr "Kopioi vastaus"
#: data/ui/help-overlay.ui:50
msgctxt "shortcut window"
msgid "Clear"
msgstr "Tyhjennä"
#: data/ui/preferences.blp:5 data/ui/window.blp:232 src/main.py:280
#: data/ui/preferences.blp:5 data/ui/window.blp:230 src/main.py:273
msgid "Preferences"
msgstr "Asetukset"
@@ -91,13 +51,24 @@ msgstr "Käytetään raakatekstiä ilman muotoilua"
#: data/ui/preferences.blp:33
msgid "Close all windows without warning"
msgstr ""
msgstr "Sulje kaikki ikkunat varoittamatta"
#: data/ui/preferences.blp:34
msgid "All windows will be closed without warning, this can lead to data loss"
msgstr ""
"Kaikki ikkunat suljetaan varoittamatta, tämä voi johtaa tietojen katoamiseen"
#: data/ui/preferences.blp:43 src/main.py:278
#: data/ui/preferences.blp:42
msgid "Look for provider news"
msgstr "Etsi uutisia palveluntarjoajista"
#: data/ui/preferences.blp:43
msgid "News about issues with providers will be fetched from Bavarder website"
msgstr ""
"Palveluntarjoajiin liittyviä asioita käsitteleviä uutisia haetaan Bavarderin "
"verkkosivustolta"
#: data/ui/preferences.blp:52 src/main.py:271
msgid "Providers"
msgstr "Palveluntarjoajat"
@@ -105,70 +76,174 @@ msgstr "Palveluntarjoajat"
msgid "Main Menu"
msgstr "Päävalikko"
#: data/ui/window.blp:34 src/provider/base.py:50
#: data/ui/window.blp:34 src/providers/base.py:50
msgid "No network connection"
msgstr "Ei verkkoyhteyttä"
#: data/ui/window.blp:49
msgid "Message"
msgstr "Viesti"
#: data/ui/window.blp:82 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Kopioi leikepöydälle"
#: data/ui/window.blp:106
msgid "Ask"
msgstr "Kysy"
#: data/ui/window.blp:115
msgid "Wait"
msgstr "Odota"
#: data/ui/window.blp:130
#: data/ui/window.blp:61
msgid "Response"
msgstr "Vastaus"
#: data/ui/window.blp:208
#: data/ui/window.blp:113
msgid "Copy to Clipboard"
msgstr "Kopioi leikepöydälle"
#: data/ui/window.blp:123
msgid "Stop"
msgstr "Lopeta"
#: data/ui/window.blp:226
#: data/ui/window.blp:152
msgid "ERROR"
msgstr "VIRHE"
#: data/ui/window.blp:153
msgid "DESCRIPTION"
msgstr "KUVAUS"
#: data/ui/window.blp:156
msgid "Try Again"
msgstr "Yritä uudelleen"
#: data/ui/window.blp:205
msgid "Ask"
msgstr "Kysy"
#: data/ui/window.blp:224
msgid "New window"
msgstr "Uusi ikkuna"
#: data/ui/window.blp:237 src/main.py:281
#: data/ui/window.blp:235 src/main.py:274
msgid "Keyboard Shortcuts"
msgstr "Pikanäppäimet"
#: data/ui/window.blp:242 src/main.py:282
#: data/ui/window.blp:240 src/main.py:275
msgid "About Bavarder"
msgstr "Tietoja - Bavarder"
#: src/main.py:246
#, fuzzy
#| msgid "New window"
msgid "New Window"
msgstr "Uusi ikkuna"
#: src/provider/base.py:43
#: src/providers/base.py:43
msgid "No API key provided, you can provide one in settings"
msgstr "API-avainta ei asetettu, aseta avain asetuksissa"
#: src/provider/base.py:45
#: src/providers/base.py:45
msgid "Open settings"
msgstr "Avaa asetukset"
#: src/provider/catgpt.py:9
msgid "CatGPT"
msgstr "Cat GPT"
#: src/providers/base.py:81
msgid "About provider"
msgstr "Tietoja palveluntarjoajasta"
#: src/providers/base.py:95
msgid "How to get a token"
msgstr "Miten saat poletin"
#: src/providers/base.py:118
msgid "No preferences available"
msgstr "Asetuksia ei ole saatavilla"
#: src/providers/huggingface.py:73 src/providers/transformer.py:68
msgid "API Key"
msgstr "API-avain"
#: src/providers/openai.py:27
msgid "Prompt too long, splitting into chunks."
msgstr "Kehote on liian pitkä, pilkotaan osiin."
#: src/providers/openai.py:49
msgid "You don't have access to this model"
msgstr "Sinulla ei ole pääsyä tähän malliin"
#: src/providers/openai.py:54
msgid ""
"You exceeded your current quota, please check your plan and billing details."
msgstr "Ylitit kiintiösi, tarkista käyttämäsi tilaus ja maksutapatiedot."
#: src/providers/openai.py:59
msgid "API Error"
msgstr "API-virhe"
#: src/providers/openai.py:70
msgid "No model selected, you can choose one in preferences"
msgstr "Mallia ei ole valittu. Valitse malli asetuksista"
#: src/providers/openaicustom.py:33
msgid "API Url"
msgstr "API:n osoite"
#: src/providers/openaicustom.py:40
msgid "Model"
msgstr "Malli"
#: src/providers/openaicustom.py:80
msgid "How to choose a model"
msgstr "Miten valita malli"
#: src/views/about_window.py:12
msgid "translator-credits"
msgstr ""
"Jiri Grönroos\n"
"Launchpad Contributions:\n"
"Kimmo Kujansuu https://launchpad.net/~mahtiankka"
#: src/views/about_window.py:26
msgid "0xMRTT"
msgstr "0xMRTT"
#: src/views/about_window.py:44
msgid "Copyright © 2023 0xMRTT"
msgstr "Tekijänoikeus © 2023 0xMRTT"
#: src/main.py:124
msgid "New version available!"
msgstr "Uusi versio saatavilla!"
#: src/main.py:240
msgid "New Window"
msgstr "Uusi ikkuna"
#~ msgid "Message"
#~ msgstr "Viesti"
#~ msgid "Wait"
#~ msgstr "Odota"
#~ msgctxt "shortcut window"
#~ msgid "General"
#~ msgstr "Yleiset"
#~ msgctxt "shortcut window"
#~ msgid "Show Shortcuts"
#~ msgstr "Näytä pikanäppäimet"
#~ msgctxt "shortcut window"
#~ msgid "Ask"
#~ msgstr "Kysy"
#~ msgctxt "shortcut window"
#~ msgid "Close current window"
#~ msgstr "Sulje nykyinen ikkuna"
#~ msgctxt "shortcut window"
#~ msgid "Close all windows"
#~ msgstr "Sulje kaikki ikkunat"
#~ msgctxt "shortcut window"
#~ msgid "Preferences"
#~ msgstr "Asetukset"
#~ msgctxt "shortcut window"
#~ msgid "Copy response"
#~ msgstr "Kopioi vastaus"
#~ msgctxt "shortcut window"
#~ msgid "Clear"
#~ msgstr "Tyhjennä"
#~ msgid "CatGPT"
#~ msgstr "Cat GPT"
#~ msgid "Chit-chat with an AI"
#~ msgstr "Keskustele tekoälyn kanssa"
#~ msgid "0xMRTT"
#~ msgstr "0xMRTT"
#~ msgid "Screenshot of Main UI"
#~ msgstr "Kuvakaappaus käyttöliittymästä"

236
po/fr.po
View File

@@ -11,8 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 14:05+0000\n"
"PO-Revision-Date: 2023-05-16 14:07+0000\n"
"POT-Creation-Date: 2023-06-01 17:40+0000\n"
"PO-Revision-Date: 2023-06-04 00:37+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@proton.me>\n"
"Language-Team: French <https://translate.codeberg.org/projects/bavarder/"
"bavarder/fr/>\n"
@@ -23,51 +23,11 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3 data/ui/window.blp:7
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 data/ui/window.blp:7
msgid "Bavarder"
msgstr "Bavarder"
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
msgid "General"
msgstr "Général"
#: data/ui/help-overlay.ui:14
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgstr "Afficher les raccourcis"
#: data/ui/help-overlay.ui:20
msgctxt "shortcut window"
msgid "Ask"
msgstr "Demander"
#: data/ui/help-overlay.ui:26
msgctxt "shortcut window"
msgid "Close current window"
msgstr "Fermer la fenêtre actuelle"
#: data/ui/help-overlay.ui:32
msgctxt "shortcut window"
msgid "Close all windows"
msgstr "Fermer toutes les fenêtres"
#: data/ui/help-overlay.ui:38
msgctxt "shortcut window"
msgid "Preferences"
msgstr "Préférences"
#: data/ui/help-overlay.ui:44
msgctxt "shortcut window"
msgid "Copy response"
msgstr "Copier la réponse"
#: data/ui/help-overlay.ui:50
msgctxt "shortcut window"
msgid "Clear"
msgstr "Vider"
#: data/ui/preferences.blp:5 data/ui/window.blp:232 src/main.py:280
#: data/ui/preferences.blp:5 data/ui/window.blp:230 src/main.py:273
msgid "Preferences"
msgstr "Préférences"
@@ -101,7 +61,17 @@ msgstr ""
"Toutes les fenêtres vont être fermées sans avertissement, cela peut créer "
"des pertes de données"
#: data/ui/preferences.blp:43 src/main.py:278
#: data/ui/preferences.blp:42
msgid "Look for provider news"
msgstr "Chercher des informations à propos des fournisseurs"
#: data/ui/preferences.blp:43
msgid "News about issues with providers will be fetched from Bavarder website"
msgstr ""
"Des informations à propos des problèmes avec les fournisseurs seront "
"téléchargées depuis le site de Bavarder"
#: data/ui/preferences.blp:52 src/main.py:271
msgid "Providers"
msgstr "Fournisseurs"
@@ -109,69 +79,177 @@ msgstr "Fournisseurs"
msgid "Main Menu"
msgstr "Menu principal"
#: data/ui/window.blp:34 src/provider/base.py:50
#: data/ui/window.blp:34 src/providers/base.py:50
msgid "No network connection"
msgstr "Pas de connexion réseau"
#: data/ui/window.blp:49
msgid "Message"
msgstr "Message"
#: data/ui/window.blp:82 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Copier dans le presse-papiers"
#: data/ui/window.blp:106
msgid "Ask"
msgstr "Demander"
#: data/ui/window.blp:115
msgid "Wait"
msgstr "Attendez"
#: data/ui/window.blp:130
#: data/ui/window.blp:61
msgid "Response"
msgstr "Réponse"
#: data/ui/window.blp:208
#: data/ui/window.blp:113
msgid "Copy to Clipboard"
msgstr "Copier dans le presse-papiers"
#: data/ui/window.blp:123
msgid "Stop"
msgstr "Stop"
#: data/ui/window.blp:226
#: data/ui/window.blp:152
msgid "ERROR"
msgstr "Erreur"
#: data/ui/window.blp:153
msgid "DESCRIPTION"
msgstr ""
#: data/ui/window.blp:156
msgid "Try Again"
msgstr "Réessayer"
#: data/ui/window.blp:205
msgid "Ask"
msgstr "Demander"
#: data/ui/window.blp:224
msgid "New window"
msgstr "Nouvelle fenêtre"
#: data/ui/window.blp:237 src/main.py:281
#: data/ui/window.blp:235 src/main.py:274
msgid "Keyboard Shortcuts"
msgstr "Raccourcis clavier"
#: data/ui/window.blp:242 src/main.py:282
#: data/ui/window.blp:240 src/main.py:275
msgid "About Bavarder"
msgstr "À propos de Bavarder"
#: src/main.py:246
msgid "New Window"
msgstr "Nouvelle Fenêtre"
#: src/provider/base.py:43
#: src/providers/base.py:43
msgid "No API key provided, you can provide one in settings"
msgstr ""
"Pas de clé dAPI fournie, vous pouvez en ajouter une dans les paramètres"
#: src/provider/base.py:45
#: src/providers/base.py:45
msgid "Open settings"
msgstr "Ouvrir les paramètres"
#: src/provider/catgpt.py:9
msgid "CatGPT"
msgstr "Cat GPT"
#: src/providers/base.py:81
msgid "About provider"
msgstr "À propos du fournisseur"
#: src/providers/base.py:95
msgid "How to get a token"
msgstr "Comment obtenir un jeton"
#: src/providers/base.py:118
msgid "No preferences available"
msgstr "Aucune préférences disponibles"
#: src/providers/huggingface.py:73 src/providers/transformer.py:68
msgid "API Key"
msgstr "Clé dAPI"
#: src/providers/openai.py:27
msgid "Prompt too long, splitting into chunks."
msgstr "Requête trop longue, découpage en morceaux."
#: src/providers/openai.py:49
msgid "You don't have access to this model"
msgstr "Vous navez pas accès à ce modèle"
#: src/providers/openai.py:54
msgid ""
"You exceeded your current quota, please check your plan and billing details."
msgstr ""
"Vous avez dépassé votre quota actuel, veuillez vérifier votre forfait et vos "
"informations de facturation."
#: src/providers/openai.py:59
msgid "API Error"
msgstr "Erreur dAPI"
#: src/providers/openai.py:70
msgid "No model selected, you can choose one in preferences"
msgstr ""
"Aucun modèle sélectionné, vous pouvez en choisir un dans les préférences"
#: src/providers/openaicustom.py:33
msgid "API Url"
msgstr "URL dAPI"
#: src/providers/openaicustom.py:40
msgid "Model"
msgstr "Modèle"
#: src/providers/openaicustom.py:80
msgid "How to choose a model"
msgstr "Comment choisir un modèle"
#: src/views/about_window.py:12
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
" Calinou https://launchpad.net/~calinou"
#: src/views/about_window.py:26
msgid "0xMRTT"
msgstr "0xMRTT"
#: src/views/about_window.py:44
msgid "Copyright © 2023 0xMRTT"
msgstr ""
#: src/main.py:124
msgid "New version available!"
msgstr "Nouvelle version disponible !"
#: src/main.py:240
msgid "New Window"
msgstr "Nouvelle fenêtre"
#~ msgid "Message"
#~ msgstr "Message"
#~ msgid "Wait"
#~ msgstr "Attendez"
#~ msgctxt "shortcut window"
#~ msgid "General"
#~ msgstr "Général"
#~ msgctxt "shortcut window"
#~ msgid "Show Shortcuts"
#~ msgstr "Afficher les raccourcis"
#~ msgctxt "shortcut window"
#~ msgid "Ask"
#~ msgstr "Demander"
#~ msgctxt "shortcut window"
#~ msgid "Close current window"
#~ msgstr "Fermer la fenêtre actuelle"
#~ msgctxt "shortcut window"
#~ msgid "Close all windows"
#~ msgstr "Fermer toutes les fenêtres"
#~ msgctxt "shortcut window"
#~ msgid "Preferences"
#~ msgstr "Préférences"
#~ msgctxt "shortcut window"
#~ msgid "Copy response"
#~ msgstr "Copier la réponse"
#~ msgctxt "shortcut window"
#~ msgid "Clear"
#~ msgstr "Effacer"
#~ msgid "CatGPT"
#~ msgstr "Cat GPT"
#~ msgid "Chit-chat with an AI"
#~ msgstr "Bavarder avec GPT"
#~ msgid "0xMRTT"
#~ msgstr "0xMRTT"
#~ msgid "Screenshot of Main UI"
#~ msgstr "Capture décran de linterface principale"

240
po/gl.po Normal file
View File

@@ -0,0 +1,240 @@
# Bavarder POT file
# Copyright (C) 2023 Bavarder
# This file is distributed under the GNU GPLv3 license.
# Bavarder, 2023.
#
# xosecalvo <xosecalvo@gmail.com>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-01 17:40+0000\n"
"PO-Revision-Date: 2023-06-02 11:46+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"Language-Team: Galician <https://translate.codeberg.org/projects/bavarder/"
"bavarder/gl/>\n"
"Language: gl\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.in:3 data/ui/window.blp:7
msgid "Bavarder"
msgstr "Bavarder"
#: data/ui/preferences.blp:5 data/ui/window.blp:230 src/main.py:273
msgid "Preferences"
msgstr "Preferencias"
#: data/ui/preferences.blp:12
msgid "Prompt"
msgstr "Pé"
#: data/ui/preferences.blp:15
msgid "Clear prompt after send"
msgstr "Limpar pé despois de enviar"
#: data/ui/preferences.blp:16
msgid "The prompt will be cleared after send"
msgstr "O pé límpase após ser enviado"
#: data/ui/preferences.blp:24
msgid "Use plain text for output"
msgstr "Empregar texto simple para a saída"
#: data/ui/preferences.blp:25
msgid "The plain text without formatting will be used"
msgstr "Emprégase texto simple sen formato"
#: data/ui/preferences.blp:33
msgid "Close all windows without warning"
msgstr "Pechar todas as xanelas sen avisar"
#: data/ui/preferences.blp:34
msgid "All windows will be closed without warning, this can lead to data loss"
msgstr ""
"Todas as xanelas péchanse sen avisar; isto pode provocar a perda de datos"
#: data/ui/preferences.blp:42
msgid "Look for provider news"
msgstr "Procurar novas do forcenecedor"
#: data/ui/preferences.blp:43
msgid "News about issues with providers will be fetched from Bavarder website"
msgstr ""
"Obtéñense novas relacionadas con problemas cos fornecedores desde o sitio "
"web de Bavarder"
#: data/ui/preferences.blp:52 src/main.py:271
msgid "Providers"
msgstr "Fornecedores"
#: data/ui/window.blp:28
msgid "Main Menu"
msgstr "Menú principal"
#: data/ui/window.blp:34 src/providers/base.py:50
msgid "No network connection"
msgstr "Sen conexión a rede"
#: data/ui/window.blp:61
msgid "Response"
msgstr "Resposta"
#: data/ui/window.blp:113
msgid "Copy to Clipboard"
msgstr "Copiar ao portapapeis"
#: data/ui/window.blp:123
msgid "Stop"
msgstr "Parar"
#: data/ui/window.blp:152
msgid "ERROR"
msgstr ""
#: data/ui/window.blp:153
msgid "DESCRIPTION"
msgstr ""
#: data/ui/window.blp:156
msgid "Try Again"
msgstr "Inténteo de novo"
#: data/ui/window.blp:205
msgid "Ask"
msgstr "Preguntar"
#: data/ui/window.blp:224
msgid "New window"
msgstr "Nova xanela"
#: data/ui/window.blp:235 src/main.py:274
msgid "Keyboard Shortcuts"
msgstr "Atallos de teclado"
#: data/ui/window.blp:240 src/main.py:275
msgid "About Bavarder"
msgstr "Sobre o Bavarder"
#: src/providers/base.py:43
msgid "No API key provided, you can provide one in settings"
msgstr "Non se forneceu ningunha API; pode fornecer unha na configuración"
#: src/providers/base.py:45
msgid "Open settings"
msgstr "Abrir configuración"
#: src/providers/base.py:81
msgid "About provider"
msgstr "Sobre o fornecedor"
#: src/providers/base.py:95
msgid "How to get a token"
msgstr ""
#: src/providers/base.py:118
msgid "No preferences available"
msgstr "Non hai ningunha preferencia dispoñíbel"
#: src/providers/huggingface.py:73 src/providers/transformer.py:68
msgid "API Key"
msgstr "Chave da API"
#: src/providers/openai.py:27
msgid "Prompt too long, splitting into chunks."
msgstr "O pé é demasiado longo; divídese en anacos."
#: src/providers/openai.py:49
msgid "You don't have access to this model"
msgstr "Vostede non ten acceso a este modelo"
#: src/providers/openai.py:54
msgid ""
"You exceeded your current quota, please check your plan and billing details."
msgstr ""
"Excedeu a cota actual; comprobe o seu plan e os detalles de facturación."
#: src/providers/openai.py:59
msgid "API Error"
msgstr "Erro da API"
#: src/providers/openai.py:70
msgid "No model selected, you can choose one in preferences"
msgstr "Ningún modelo seleccionado; pode escoller un nas preferencias"
#: src/providers/openaicustom.py:33
msgid "API Url"
msgstr "URL da API"
#: src/providers/openaicustom.py:40
msgid "Model"
msgstr "Modelo"
#: src/providers/openaicustom.py:80
msgid "How to choose a model"
msgstr "Como escoller un modelo"
#: src/views/about_window.py:12
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
" Manuel Xosé Lemos https://launchpad.net/~mxlemos\n"
" Miguel Anxo Bouzada https://launchpad.net/~mbouzada\n"
" oterobueu https://launchpad.net/~oterobueu"
#: src/views/about_window.py:26
msgid "0xMRTT"
msgstr ""
#: src/views/about_window.py:44
msgid "Copyright © 2023 0xMRTT"
msgstr ""
#: src/main.py:124
msgid "New version available!"
msgstr "Nova versión dispoñíbel!"
#: src/main.py:240
msgid "New Window"
msgstr "Nova xanela"
#~ msgid "Message"
#~ msgstr "Mensaxe"
#~ msgid "Wait"
#~ msgstr "Agardar"
#~ msgctxt "shortcut window"
#~ msgid "General"
#~ msgstr "Xeral"
#~ msgctxt "shortcut window"
#~ msgid "Show Shortcuts"
#~ msgstr "Mostrar atallos"
#~ msgctxt "shortcut window"
#~ msgid "Ask"
#~ msgstr "Preguntar"
#~ msgctxt "shortcut window"
#~ msgid "Close current window"
#~ msgstr "Pechar esta xanela"
#~ msgctxt "shortcut window"
#~ msgid "Close all windows"
#~ msgstr "Pechar todas as xanelas"
#~ msgctxt "shortcut window"
#~ msgid "Preferences"
#~ msgstr "Preferencias"
#~ msgctxt "shortcut window"
#~ msgid "Copy response"
#~ msgstr "Copiar resposta"
#~ msgctxt "shortcut window"
#~ msgid "Clear"
#~ msgstr "Limpar"

219
po/hu.po
View File

@@ -5,12 +5,13 @@
#
# osiixy <osiixy@gmail.com>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
# elementbound <ezittgtx@gmail.com>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 14:05+0000\n"
"PO-Revision-Date: 2023-05-16 12:00+0000\n"
"POT-Creation-Date: 2023-06-01 17:40+0000\n"
"PO-Revision-Date: 2023-06-03 00:37+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"Language-Team: Hungarian <https://translate.codeberg.org/projects/bavarder/"
"bavarder/hu/>\n"
@@ -21,51 +22,11 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3 data/ui/window.blp:7
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 data/ui/window.blp:7
msgid "Bavarder"
msgstr "Bavarder"
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
msgid "General"
msgstr "Általános"
#: 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 "Close current window"
msgstr ""
#: data/ui/help-overlay.ui:32
msgctxt "shortcut window"
msgid "Close all windows"
msgstr ""
#: data/ui/help-overlay.ui:38
msgctxt "shortcut window"
msgid "Preferences"
msgstr "Beállítások"
#: data/ui/help-overlay.ui:44
msgctxt "shortcut window"
msgid "Copy response"
msgstr ""
#: data/ui/help-overlay.ui:50
msgctxt "shortcut window"
msgid "Clear"
msgstr "Kiürítés"
#: data/ui/preferences.blp:5 data/ui/window.blp:232 src/main.py:280
#: data/ui/preferences.blp:5 data/ui/window.blp:230 src/main.py:273
msgid "Preferences"
msgstr "Beállítások"
@@ -96,71 +57,175 @@ msgstr ""
#: data/ui/preferences.blp:34
msgid "All windows will be closed without warning, this can lead to data loss"
msgstr ""
"Minden ablak be fog záródni figyelmeztetés nélkül; ez adatvesztéshez is "
"vezethet"
#: data/ui/preferences.blp:43 src/main.py:278
msgid "Providers"
#: data/ui/preferences.blp:42
msgid "Look for provider news"
msgstr ""
#: data/ui/preferences.blp:43
msgid "News about issues with providers will be fetched from Bavarder website"
msgstr ""
#: data/ui/preferences.blp:52 src/main.py:271
msgid "Providers"
msgstr "Szolgáltatók"
#: data/ui/window.blp:28
msgid "Main Menu"
msgstr ""
#: data/ui/window.blp:34 src/provider/base.py:50
#: data/ui/window.blp:34 src/providers/base.py:50
msgid "No network connection"
msgstr "Nincs hálózati kapcsolat"
#: data/ui/window.blp:49
msgid "Message"
msgstr "Üzenet"
#: data/ui/window.blp:61
msgid "Response"
msgstr "Válasz"
#: data/ui/window.blp:82 data/ui/window.blp:198
#: data/ui/window.blp:113
msgid "Copy to Clipboard"
msgstr "Másolás a vágólapra"
#: data/ui/window.blp:106
msgid "Ask"
msgstr ""
#: data/ui/window.blp:115
msgid "Wait"
msgstr ""
#: data/ui/window.blp:130
msgid "Response"
msgstr ""
#: data/ui/window.blp:208
#: data/ui/window.blp:123
msgid "Stop"
msgstr "Megállítás"
#: data/ui/window.blp:226
#: data/ui/window.blp:152
msgid "ERROR"
msgstr ""
#: data/ui/window.blp:153
msgid "DESCRIPTION"
msgstr ""
#: data/ui/window.blp:156
msgid "Try Again"
msgstr "Próbálja újra"
#: data/ui/window.blp:205
msgid "Ask"
msgstr ""
#: data/ui/window.blp:224
msgid "New window"
msgstr ""
msgstr "Új ablak"
#: data/ui/window.blp:237 src/main.py:281
#: data/ui/window.blp:235 src/main.py:274
msgid "Keyboard Shortcuts"
msgstr ""
msgstr "Gyorsbillentyűk"
#: data/ui/window.blp:242 src/main.py:282
#: data/ui/window.blp:240 src/main.py:275
msgid "About Bavarder"
msgstr ""
#: src/main.py:246
msgid "New Window"
msgstr ""
#: src/provider/base.py:43
#: src/providers/base.py:43
msgid "No API key provided, you can provide one in settings"
msgstr ""
#: src/provider/base.py:45
#: src/providers/base.py:45
msgid "Open settings"
msgstr "Beállítások megnyitása"
#: src/providers/base.py:81
msgid "About provider"
msgstr ""
#: src/provider/catgpt.py:9
msgid "CatGPT"
#: src/providers/base.py:95
msgid "How to get a token"
msgstr ""
#: src/providers/base.py:118
msgid "No preferences available"
msgstr ""
#: src/providers/huggingface.py:73 src/providers/transformer.py:68
msgid "API Key"
msgstr ""
#: src/providers/openai.py:27
msgid "Prompt too long, splitting into chunks."
msgstr ""
#: src/providers/openai.py:49
msgid "You don't have access to this model"
msgstr ""
#: src/providers/openai.py:54
msgid ""
"You exceeded your current quota, please check your plan and billing details."
msgstr ""
#: src/providers/openai.py:59
msgid "API Error"
msgstr ""
#: src/providers/openai.py:70
msgid "No model selected, you can choose one in preferences"
msgstr ""
#: src/providers/openaicustom.py:33
msgid "API Url"
msgstr ""
#: src/providers/openaicustom.py:40
msgid "Model"
msgstr "Modell"
#: src/providers/openaicustom.py:80
msgid "How to choose a model"
msgstr ""
#: src/views/about_window.py:12
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
" Kulhanek László https://launchpad.net/~hunyos"
#: src/views/about_window.py:26
msgid "0xMRTT"
msgstr ""
#: src/views/about_window.py:44
msgid "Copyright © 2023 0xMRTT"
msgstr ""
#: src/main.py:124
msgid "New version available!"
msgstr ""
#: src/main.py:240
msgid "New Window"
msgstr "Új ablak"
#~ msgid "Message"
#~ msgstr "Üzenet"
#~ msgctxt "shortcut window"
#~ msgid "General"
#~ msgstr "Általános"
#~ msgctxt "shortcut window"
#~ msgid "Close current window"
#~ msgstr "Ablak bezárása"
#~ msgctxt "shortcut window"
#~ msgid "Close all windows"
#~ msgstr "Összes ablak bezárása"
#~ msgctxt "shortcut window"
#~ msgid "Preferences"
#~ msgstr "Beállítások"
#~ msgctxt "shortcut window"
#~ msgid "Copy response"
#~ msgstr "Válasz másolása"
#~ msgctxt "shortcut window"
#~ msgid "Clear"
#~ msgstr "Kiürítés"
#~ msgid "Chat"
#~ msgstr "Csevegés"

236
po/it.po
View File

@@ -7,12 +7,13 @@
# phaerrax <davide.ferracin@protonmail.com>, 2023.
# elgandoz <gandi.marco@gmail.com>, 2023.
# CraftWorksMC <thelonegamer87@gmail.com>, 2023.
# maymage <maymage@gmail.com>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 14:05+0000\n"
"PO-Revision-Date: 2023-05-16 12:00+0000\n"
"POT-Creation-Date: 2023-06-01 17:40+0000\n"
"PO-Revision-Date: 2023-06-02 11:46+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"Language-Team: Italian <https://translate.codeberg.org/projects/bavarder/"
"bavarder/it/>\n"
@@ -23,51 +24,11 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3 data/ui/window.blp:7
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 data/ui/window.blp:7
msgid "Bavarder"
msgstr "Bavarder"
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
msgid "General"
msgstr "Generale"
#: data/ui/help-overlay.ui:14
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgstr "Mostra scorciatoie"
#: data/ui/help-overlay.ui:20
msgctxt "shortcut window"
msgid "Ask"
msgstr "Chiedi"
#: data/ui/help-overlay.ui:26
msgctxt "shortcut window"
msgid "Close current window"
msgstr "Chiudi la finestra corrente"
#: data/ui/help-overlay.ui:32
msgctxt "shortcut window"
msgid "Close all windows"
msgstr "Chiudi tutte le finestre"
#: data/ui/help-overlay.ui:38
msgctxt "shortcut window"
msgid "Preferences"
msgstr "Preferenze"
#: data/ui/help-overlay.ui:44
msgctxt "shortcut window"
msgid "Copy response"
msgstr "Copia Risposta"
#: data/ui/help-overlay.ui:50
msgctxt "shortcut window"
msgid "Clear"
msgstr "Cancella"
#: data/ui/preferences.blp:5 data/ui/window.blp:232 src/main.py:280
#: data/ui/preferences.blp:5 data/ui/window.blp:230 src/main.py:273
msgid "Preferences"
msgstr "Preferenze"
@@ -85,7 +46,7 @@ msgstr "Il prompt verrà svuotato dopo l'invio"
#: data/ui/preferences.blp:24
msgid "Use plain text for output"
msgstr "Utlizzare testo semplice per l'output"
msgstr "Utlizzare testo semplice per il rendimento"
#: data/ui/preferences.blp:25
msgid "The plain text without formatting will be used"
@@ -101,7 +62,17 @@ msgstr ""
"Tutte le finestre verranno chiuse senza avviso, questo può portare alla "
"perdita di dati"
#: data/ui/preferences.blp:43 src/main.py:278
#: data/ui/preferences.blp:42
msgid "Look for provider news"
msgstr "Cerca nuovi gestori"
#: data/ui/preferences.blp:43
msgid "News about issues with providers will be fetched from Bavarder website"
msgstr ""
"Notizie su problemi con i gestori verranno recuperate dal sito web di "
"Bavander"
#: data/ui/preferences.blp:52 src/main.py:271
msgid "Providers"
msgstr "Fornitori"
@@ -109,69 +80,174 @@ msgstr "Fornitori"
msgid "Main Menu"
msgstr "Menù principale"
#: data/ui/window.blp:34 src/provider/base.py:50
#: data/ui/window.blp:34 src/providers/base.py:50
msgid "No network connection"
msgstr "Nessuna connessione di rete"
#: data/ui/window.blp:49
msgid "Message"
msgstr "Messaggio"
#: data/ui/window.blp:82 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Copia negli appunti"
#: data/ui/window.blp:106
msgid "Ask"
msgstr "Chiedi"
#: data/ui/window.blp:115
msgid "Wait"
msgstr "Attendere"
#: data/ui/window.blp:130
#: data/ui/window.blp:61
msgid "Response"
msgstr "Risposta"
#: data/ui/window.blp:208
#: data/ui/window.blp:113
msgid "Copy to Clipboard"
msgstr "Copia negli appunti"
#: data/ui/window.blp:123
msgid "Stop"
msgstr "Stop"
#: data/ui/window.blp:226
#: data/ui/window.blp:152
msgid "ERROR"
msgstr ""
#: data/ui/window.blp:153
msgid "DESCRIPTION"
msgstr ""
#: data/ui/window.blp:156
msgid "Try Again"
msgstr "Prova di nuovo"
#: data/ui/window.blp:205
msgid "Ask"
msgstr "Chiedi"
#: data/ui/window.blp:224
msgid "New window"
msgstr "Nuova finestra"
#: data/ui/window.blp:237 src/main.py:281
#: data/ui/window.blp:235 src/main.py:274
msgid "Keyboard Shortcuts"
msgstr "Scorciatoie da tastiera"
#: data/ui/window.blp:242 src/main.py:282
#: data/ui/window.blp:240 src/main.py:275
msgid "About Bavarder"
msgstr "Informazioni su Bavarder"
#: src/main.py:246
msgid "New Window"
msgstr "Nuova finestra"
#: src/provider/base.py:43
#: src/providers/base.py:43
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:45
#: src/providers/base.py:45
msgid "Open settings"
msgstr "Apri impostazioni"
#: src/provider/catgpt.py:9
msgid "CatGPT"
msgstr "Cat GPT"
#: src/providers/base.py:81
msgid "About provider"
msgstr "Sul gestore"
#: src/providers/base.py:95
msgid "How to get a token"
msgstr "Come avere una chiave"
#: src/providers/base.py:118
msgid "No preferences available"
msgstr "Impostazioni non disponibili"
#: src/providers/huggingface.py:73 src/providers/transformer.py:68
msgid "API Key"
msgstr "Chiave API"
#: src/providers/openai.py:27
msgid "Prompt too long, splitting into chunks."
msgstr "Promt troppo lungo, frazionando in pezzi."
#: src/providers/openai.py:49
msgid "You don't have access to this model"
msgstr "Non ha accesso a questo modello"
#: src/providers/openai.py:54
msgid ""
"You exceeded your current quota, please check your plan and billing details."
msgstr ""
"Superato la quota corrente, perfavore contrallare il proprio piano ed i "
"dettagli della fatturazione."
#: src/providers/openai.py:59
msgid "API Error"
msgstr "Errore API"
#: src/providers/openai.py:70
msgid "No model selected, you can choose one in preferences"
msgstr "Nessun modello selezionato, puo scegliere uno nelle impostazioni"
#: src/providers/openaicustom.py:33
msgid "API Url"
msgstr "API Url"
#: src/providers/openaicustom.py:40
msgid "Model"
msgstr "Modello"
#: src/providers/openaicustom.py:80
msgid "How to choose a model"
msgstr "Come selezionare un modello"
#: src/views/about_window.py:12
msgid "translator-credits"
msgstr ""
#: src/views/about_window.py:26
msgid "0xMRTT"
msgstr "0xMRTT"
#: src/views/about_window.py:44
msgid "Copyright © 2023 0xMRTT"
msgstr ""
#: src/main.py:124
msgid "New version available!"
msgstr "Nuova versione disponibile!"
#: src/main.py:240
msgid "New Window"
msgstr "Nuova finestra"
#~ msgid "Message"
#~ msgstr "Messaggio"
#~ msgid "Wait"
#~ msgstr "Attendere"
#~ msgctxt "shortcut window"
#~ msgid "General"
#~ msgstr "Generale"
#~ msgctxt "shortcut window"
#~ msgid "Show Shortcuts"
#~ msgstr "Mostra scorciatoie"
#~ msgctxt "shortcut window"
#~ msgid "Ask"
#~ msgstr "Chiedi"
#~ msgctxt "shortcut window"
#~ msgid "Close current window"
#~ msgstr "Chiudi la finestra corrente"
#~ msgctxt "shortcut window"
#~ msgid "Close all windows"
#~ msgstr "Chiudi tutte le finestre"
#~ msgctxt "shortcut window"
#~ msgid "Preferences"
#~ msgstr "Preferenze"
#~ msgctxt "shortcut window"
#~ msgid "Copy response"
#~ msgstr "Copia risposta"
#~ msgctxt "shortcut window"
#~ msgid "Clear"
#~ msgstr "Cancella"
#~ msgid "CatGPT"
#~ msgstr "Cat GPT"
#~ msgid "Chit-chat with an AI"
#~ msgstr "Chiacchiera con un'IA"
#~ msgid "0xMRTT"
#~ msgstr "0xMRTT"
#~ msgid "Screenshot of Main UI"
#~ msgstr "Schermata dell'interfaccia principale"

234
po/nl.po
View File

@@ -8,9 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 14:05+0000\n"
"PO-Revision-Date: 2023-05-16 14:05+0000\n"
"Last-Translator: Vistaus <vistausss@fastmail.com>\n"
"POT-Creation-Date: 2023-06-01 17:40+0000\n"
"PO-Revision-Date: 2023-06-03 00:37+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"Language-Team: Dutch <https://translate.codeberg.org/projects/bavarder/"
"bavarder/nl/>\n"
"Language: nl\n"
@@ -20,51 +20,11 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3 data/ui/window.blp:7
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 data/ui/window.blp:7
msgid "Bavarder"
msgstr "Bavarder"
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
msgid "General"
msgstr "Algemeen"
#: data/ui/help-overlay.ui:14
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgstr "Sneltoetsen tonen"
#: data/ui/help-overlay.ui:20
msgctxt "shortcut window"
msgid "Ask"
msgstr "Vraag stellen"
#: data/ui/help-overlay.ui:26
msgctxt "shortcut window"
msgid "Close current window"
msgstr "Huidig venster sluiten"
#: data/ui/help-overlay.ui:32
msgctxt "shortcut window"
msgid "Close all windows"
msgstr "Alle vensters sluiten"
#: data/ui/help-overlay.ui:38
msgctxt "shortcut window"
msgid "Preferences"
msgstr "Voorkeuren"
#: data/ui/help-overlay.ui:44
msgctxt "shortcut window"
msgid "Copy response"
msgstr "Antwoord kopiëren"
#: data/ui/help-overlay.ui:50
msgctxt "shortcut window"
msgid "Clear"
msgstr "Wissen"
#: data/ui/preferences.blp:5 data/ui/window.blp:232 src/main.py:280
#: data/ui/preferences.blp:5 data/ui/window.blp:230 src/main.py:273
msgid "Preferences"
msgstr "Voorkeuren"
@@ -98,7 +58,16 @@ msgstr ""
"Alle vensters worden zonder bevestiging gesloten, wat tot gegevensverlies "
"kan leiden"
#: data/ui/preferences.blp:43 src/main.py:278
#: data/ui/preferences.blp:42
msgid "Look for provider news"
msgstr "Nieuws over de diensten"
#: data/ui/preferences.blp:43
msgid "News about issues with providers will be fetched from Bavarder website"
msgstr ""
"Nieuws omtrent problemen met diensten wordt opgehaald van de Bavarderwebsite"
#: data/ui/preferences.blp:52 src/main.py:271
msgid "Providers"
msgstr "Diensten"
@@ -106,68 +75,173 @@ msgstr "Diensten"
msgid "Main Menu"
msgstr "Hoofdmenu"
#: data/ui/window.blp:34 src/provider/base.py:50
#: data/ui/window.blp:34 src/providers/base.py:50
msgid "No network connection"
msgstr "Geen netwerkverbinding"
#: data/ui/window.blp:49
msgid "Message"
msgstr "Bericht"
#: data/ui/window.blp:82 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Kopiëren naar klembord"
#: data/ui/window.blp:106
msgid "Ask"
msgstr "Vraag stellen"
#: data/ui/window.blp:115
msgid "Wait"
msgstr "Even geduld…"
#: data/ui/window.blp:130
#: data/ui/window.blp:61
msgid "Response"
msgstr "Antwoord"
#: data/ui/window.blp:208
#: data/ui/window.blp:113
msgid "Copy to Clipboard"
msgstr "Kopiëren naar klembord"
#: data/ui/window.blp:123
msgid "Stop"
msgstr "Stoppen"
#: data/ui/window.blp:226
#: data/ui/window.blp:152
msgid "ERROR"
msgstr "FOUTMELDING"
#: data/ui/window.blp:153
msgid "DESCRIPTION"
msgstr "BESCHRIJVING"
#: data/ui/window.blp:156
msgid "Try Again"
msgstr "Opnieuw proberen"
#: data/ui/window.blp:205
msgid "Ask"
msgstr "Vraag stellen"
#: data/ui/window.blp:224
msgid "New window"
msgstr "Nieuw venster"
#: data/ui/window.blp:237 src/main.py:281
#: data/ui/window.blp:235 src/main.py:274
msgid "Keyboard Shortcuts"
msgstr "Sneltoetsen"
#: data/ui/window.blp:242 src/main.py:282
#: data/ui/window.blp:240 src/main.py:275
msgid "About Bavarder"
msgstr "Over Bavarder"
#: src/main.py:246
msgid "New Window"
msgstr "Nieuw venster"
#: src/provider/base.py:43
#: src/providers/base.py:43
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:45
#: src/providers/base.py:45
msgid "Open settings"
msgstr "Voorkeuren openen"
#: src/provider/catgpt.py:9
msgid "CatGPT"
msgstr "Cat GPT"
#: src/providers/base.py:81
msgid "About provider"
msgstr "Over deze dienst"
#: src/providers/base.py:95
msgid "How to get a token"
msgstr "Hoe verkrijg ik een sleutel?"
#: src/providers/base.py:118
msgid "No preferences available"
msgstr "Er zijn geen voorkeuren beschikbaar"
#: src/providers/huggingface.py:73 src/providers/transformer.py:68
msgid "API Key"
msgstr "Api-sleutel"
#: src/providers/openai.py:27
msgid "Prompt too long, splitting into chunks."
msgstr "De invoer is te lang — deze wordt opgedeeld."
#: src/providers/openai.py:49
msgid "You don't have access to this model"
msgstr "Je hebt geen toegang tot dit model"
#: src/providers/openai.py:54
msgid ""
"You exceeded your current quota, please check your plan and billing details."
msgstr ""
"Je hebt de huidige quota overschreven. Controleer je abonnement en "
"factuurgegevens."
#: src/providers/openai.py:59
msgid "API Error"
msgstr "Api-foutmelding"
#: src/providers/openai.py:70
msgid "No model selected, you can choose one in preferences"
msgstr "Geen model gekozen - kies er een in de voorkeuren"
#: src/providers/openaicustom.py:33
msgid "API Url"
msgstr "Api-url"
#: src/providers/openaicustom.py:40
msgid "Model"
msgstr "Model"
#: src/providers/openaicustom.py:80
msgid "How to choose a model"
msgstr "Hoe kies ik een model?"
#: src/views/about_window.py:12
msgid "translator-credits"
msgstr "Heimen Stoffels <vistausss@fastmail.com>"
#: src/views/about_window.py:26
msgid "0xMRTT"
msgstr "0xMRTT"
#: src/views/about_window.py:44
msgid "Copyright © 2023 0xMRTT"
msgstr "Copyright © 2023 0xMRTT"
#: src/main.py:124
msgid "New version available!"
msgstr "Er is een nieuwe versie beschikbaar!"
#: src/main.py:240
msgid "New Window"
msgstr "Nieuw venster"
#~ msgid "Message"
#~ msgstr "Bericht"
#~ msgid "Wait"
#~ msgstr "Even geduld…"
#~ msgctxt "shortcut window"
#~ msgid "General"
#~ msgstr "Algemeen"
#~ msgctxt "shortcut window"
#~ msgid "Show Shortcuts"
#~ msgstr "Sneltoetsen tonen"
#~ msgctxt "shortcut window"
#~ msgid "Ask"
#~ msgstr "Vraag stellen"
#~ msgctxt "shortcut window"
#~ msgid "Close current window"
#~ msgstr "Huidig venster sluiten"
#~ msgctxt "shortcut window"
#~ msgid "Close all windows"
#~ msgstr "Alle vensters sluiten"
#~ msgctxt "shortcut window"
#~ msgid "Preferences"
#~ msgstr "Voorkeuren"
#~ msgctxt "shortcut window"
#~ msgid "Copy response"
#~ msgstr "Antwoord kopiëren"
#~ msgctxt "shortcut window"
#~ msgid "Clear"
#~ msgstr "Wissen"
#~ msgid "CatGPT"
#~ msgstr "CatGPT"
#~ msgid "Chit-chat with an AI"
#~ msgstr "Babbel met een KI"
#~ msgid "0xMRTT"
#~ msgstr "0xMRTT"
#~ msgid "Screenshot of Main UI"
#~ msgstr "Schermfoto van het hoofdscherm"

237
po/pl.po
View File

@@ -10,9 +10,9 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 14:05+0000\n"
"PO-Revision-Date: 2023-05-16 12:00+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"POT-Creation-Date: 2023-06-01 17:40+0000\n"
"PO-Revision-Date: 2023-06-03 04:18+0000\n"
"Last-Translator: Eryk Michalak <gnu.ewm@protonmail.com>\n"
"Language-Team: Polish <https://translate.codeberg.org/projects/bavarder/"
"bavarder/pl/>\n"
"Language: pl\n"
@@ -23,51 +23,11 @@ msgstr ""
"|| n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3 data/ui/window.blp:7
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 data/ui/window.blp:7
msgid "Bavarder"
msgstr "Bavarder"
#: 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 "Close current window"
msgstr ""
#: data/ui/help-overlay.ui:32
msgctxt "shortcut window"
msgid "Close all windows"
msgstr ""
#: data/ui/help-overlay.ui:38
msgctxt "shortcut window"
msgid "Preferences"
msgstr "Preferencje"
#: data/ui/help-overlay.ui:44
msgctxt "shortcut window"
msgid "Copy response"
msgstr "Kopiuj odpowiedź"
#: data/ui/help-overlay.ui:50
msgctxt "shortcut window"
msgid "Clear"
msgstr "Wyczyść"
#: data/ui/preferences.blp:5 data/ui/window.blp:232 src/main.py:280
#: data/ui/preferences.blp:5 data/ui/window.blp:230 src/main.py:273
msgid "Preferences"
msgstr "Preferencje"
@@ -93,13 +53,23 @@ msgstr "Użyty zostanie zwykły tekst bez formatowania"
#: data/ui/preferences.blp:33
msgid "Close all windows without warning"
msgstr ""
msgstr "Zamknij wszystkie okna bez ostrzeżenia"
#: data/ui/preferences.blp:34
msgid "All windows will be closed without warning, this can lead to data loss"
msgstr ""
"Wszystkie okna zostaną zamknięte bez żadnego ostrzeżenia, może to spowodować "
"utratę danych"
#: data/ui/preferences.blp:43 src/main.py:278
#: data/ui/preferences.blp:42
msgid "Look for provider news"
msgstr "Szukaj dostawcy wiadomości"
#: data/ui/preferences.blp:43
msgid "News about issues with providers will be fetched from Bavarder website"
msgstr ""
#: data/ui/preferences.blp:52 src/main.py:271
msgid "Providers"
msgstr "Dostawcy"
@@ -107,70 +77,171 @@ msgstr "Dostawcy"
msgid "Main Menu"
msgstr "Główne menu"
#: data/ui/window.blp:34 src/provider/base.py:50
#: data/ui/window.blp:34 src/providers/base.py:50
msgid "No network connection"
msgstr "Brak połączenia z siecią"
#: data/ui/window.blp:49
msgid "Message"
msgstr "Wiadomość"
#: data/ui/window.blp:82 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Skopiuj do schowka"
#: data/ui/window.blp:106
msgid "Ask"
msgstr "Zapytaj"
#: data/ui/window.blp:115
msgid "Wait"
msgstr "Czekaj"
#: data/ui/window.blp:130
#: data/ui/window.blp:61
msgid "Response"
msgstr "Odpowiedź"
#: data/ui/window.blp:208
#: data/ui/window.blp:113
msgid "Copy to Clipboard"
msgstr "Skopiuj do schowka"
#: data/ui/window.blp:123
msgid "Stop"
msgstr "Zatrzymaj"
#: data/ui/window.blp:226
#: data/ui/window.blp:152
msgid "ERROR"
msgstr "BŁĄD"
#: data/ui/window.blp:153
msgid "DESCRIPTION"
msgstr "OPIS"
#: data/ui/window.blp:156
msgid "Try Again"
msgstr "Spróbuj ponownie"
#: data/ui/window.blp:205
msgid "Ask"
msgstr "Zapytaj"
#: data/ui/window.blp:224
msgid "New window"
msgstr "Nowe okno"
#: data/ui/window.blp:237 src/main.py:281
#: data/ui/window.blp:235 src/main.py:274
msgid "Keyboard Shortcuts"
msgstr "Skróty klawiszowe"
#: data/ui/window.blp:242 src/main.py:282
#: data/ui/window.blp:240 src/main.py:275
msgid "About Bavarder"
msgstr "O Bavarderze"
#: src/main.py:246
#, fuzzy
#| msgid "New window"
msgid "New Window"
msgstr "Nowe okno"
#: src/provider/base.py:43
#: src/providers/base.py:43
msgid "No API key provided, you can provide one in settings"
msgstr "Nie podano klucza API, dodaj go w ustawieniach"
#: src/provider/base.py:45
#: src/providers/base.py:45
msgid "Open settings"
msgstr "Otwórz ustawienia"
#: src/provider/catgpt.py:9
msgid "CatGPT"
msgstr "Cat GPT"
#: src/providers/base.py:81
msgid "About provider"
msgstr "O dostawcy"
#: src/providers/base.py:95
msgid "How to get a token"
msgstr "Jak uzyskać token"
#: src/providers/base.py:118
msgid "No preferences available"
msgstr "Brak dostępnych preferencji"
#: src/providers/huggingface.py:73 src/providers/transformer.py:68
msgid "API Key"
msgstr "Klucz API"
#: src/providers/openai.py:27
msgid "Prompt too long, splitting into chunks."
msgstr "Zapytanie zbyt długie; dzielenie na kawałki."
#: src/providers/openai.py:49
msgid "You don't have access to this model"
msgstr "Nie posiadasz dostępu do tego modelu"
#: src/providers/openai.py:54
msgid ""
"You exceeded your current quota, please check your plan and billing details."
msgstr ""
#: src/providers/openai.py:59
msgid "API Error"
msgstr "Błąd API"
#: src/providers/openai.py:70
msgid "No model selected, you can choose one in preferences"
msgstr "Nie wybrano modelu; można go wybrać w preferencjach"
#: src/providers/openaicustom.py:33
msgid "API Url"
msgstr "Adres Url API"
#: src/providers/openaicustom.py:40
msgid "Model"
msgstr "Tryb:"
#: src/providers/openaicustom.py:80
msgid "How to choose a model"
msgstr "Jak wybrać model"
#: src/views/about_window.py:12
msgid "translator-credits"
msgstr "ewm"
#: src/views/about_window.py:26
msgid "0xMRTT"
msgstr "0xMRTT"
#: src/views/about_window.py:44
msgid "Copyright © 2023 0xMRTT"
msgstr "Copyright © 2023 0xMRTT"
#: src/main.py:124
msgid "New version available!"
msgstr "Dostępna jest nowa wersja!"
#: src/main.py:240
msgid "New Window"
msgstr "Nowe okno"
#~ msgid "Message"
#~ msgstr "Wiadomość"
#~ msgid "Wait"
#~ msgstr "Czekaj"
#~ msgctxt "shortcut window"
#~ msgid "General"
#~ msgstr "Ogólne"
#~ msgctxt "shortcut window"
#~ msgid "Show Shortcuts"
#~ msgstr "Pokaż skróty"
#~ msgctxt "shortcut window"
#~ msgid "Ask"
#~ msgstr "Zapytaj"
#~ msgctxt "shortcut window"
#~ msgid "Close current window"
#~ msgstr "Zamknij bieżące okno"
#~ msgctxt "shortcut window"
#~ msgid "Close all windows"
#~ msgstr "Zamknij wszystkie okna"
#~ msgctxt "shortcut window"
#~ msgid "Preferences"
#~ msgstr "Preferencje"
#~ msgctxt "shortcut window"
#~ msgid "Copy response"
#~ msgstr "Kopiuj odpowiedź"
#~ msgctxt "shortcut window"
#~ msgid "Clear"
#~ msgstr "Wyczyść"
#~ msgid "CatGPT"
#~ msgstr "Cat GPT"
#~ msgid "Chit-chat with an AI"
#~ msgstr "Pogawędka z SI"
#~ msgid "0xMRTT"
#~ msgstr "0xMRTT"
#~ msgid "Screenshot of Main UI"
#~ msgstr "Zrzut ekranu interfejsu"

248
po/pt.po
View File

@@ -5,12 +5,13 @@
#
# galegovski <galegovski@outlook.com>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
# aresende <contact@aresende.com>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 14:05+0000\n"
"PO-Revision-Date: 2023-05-16 12:00+0000\n"
"POT-Creation-Date: 2023-06-01 17:40+0000\n"
"PO-Revision-Date: 2023-06-02 11:46+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"Language-Team: Portuguese <https://translate.codeberg.org/projects/bavarder/"
"bavarder/pt/>\n"
@@ -21,55 +22,11 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3 data/ui/window.blp:7
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 data/ui/window.blp:7
msgid "Bavarder"
msgstr "Bavarder"
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
msgid "General"
msgstr "Geral"
#: data/ui/help-overlay.ui:14
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgstr "Mostrar Atalhos"
#: data/ui/help-overlay.ui:20
msgctxt "shortcut window"
msgid "Ask"
msgstr "Perguntar"
#: data/ui/help-overlay.ui:26
msgctxt "shortcut window"
msgid "Close current window"
msgstr ""
#: data/ui/help-overlay.ui:32
msgctxt "shortcut window"
msgid "Close all windows"
msgstr ""
#: data/ui/help-overlay.ui:38
#, fuzzy
#| msgid "Preferences"
msgctxt "shortcut window"
msgid "Preferences"
msgstr "Preferências"
#: data/ui/help-overlay.ui:44
#, fuzzy
#| msgid "Response"
msgctxt "shortcut window"
msgid "Copy response"
msgstr "Resposta"
#: data/ui/help-overlay.ui:50
msgctxt "shortcut window"
msgid "Clear"
msgstr "Limpar"
#: data/ui/preferences.blp:5 data/ui/window.blp:232 src/main.py:280
#: data/ui/preferences.blp:5 data/ui/window.blp:230 src/main.py:273
msgid "Preferences"
msgstr "Preferências"
@@ -87,21 +44,33 @@ msgstr "O prompt será limpo após o envio"
#: data/ui/preferences.blp:24
msgid "Use plain text for output"
msgstr ""
msgstr "Usar apenas texto nos resultados"
#: data/ui/preferences.blp:25
msgid "The plain text without formatting will be used"
msgstr ""
msgstr "Apenas o texto sem formatação será utilizado"
#: data/ui/preferences.blp:33
msgid "Close all windows without warning"
msgstr ""
msgstr "Fechar todas as janelas sem alerta"
#: data/ui/preferences.blp:34
msgid "All windows will be closed without warning, this can lead to data loss"
msgstr ""
"Todas as janelas serão fechadas sem aviso e isso pode ocasionar em perda de "
"dados"
#: data/ui/preferences.blp:43 src/main.py:278
#: data/ui/preferences.blp:42
msgid "Look for provider news"
msgstr "Procurar por novidades acerca do provedor"
#: data/ui/preferences.blp:43
msgid "News about issues with providers will be fetched from Bavarder website"
msgstr ""
"Novidades sobre problemas com provedores serão consultadas através site "
"oficial de Barvarder"
#: data/ui/preferences.blp:52 src/main.py:271
msgid "Providers"
msgstr "Provedores"
@@ -109,69 +78,174 @@ msgstr "Provedores"
msgid "Main Menu"
msgstr "Menu principal"
#: data/ui/window.blp:34 src/provider/base.py:50
#: data/ui/window.blp:34 src/providers/base.py:50
msgid "No network connection"
msgstr "Nenhuma conexão de rede"
#: data/ui/window.blp:49
msgid "Message"
msgstr "Mensagem"
#: data/ui/window.blp:82 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Copiar para área de transferência"
#: data/ui/window.blp:106
msgid "Ask"
msgstr "Perguntar"
#: data/ui/window.blp:115
msgid "Wait"
msgstr "Espere"
#: data/ui/window.blp:130
#: data/ui/window.blp:61
msgid "Response"
msgstr "Resposta"
#: data/ui/window.blp:208
#: data/ui/window.blp:113
msgid "Copy to Clipboard"
msgstr "Copiar para área de transferência"
#: data/ui/window.blp:123
msgid "Stop"
msgstr "Parar"
#: data/ui/window.blp:226
msgid "New window"
#: data/ui/window.blp:152
msgid "ERROR"
msgstr ""
#: data/ui/window.blp:237 src/main.py:281
#: data/ui/window.blp:153
msgid "DESCRIPTION"
msgstr ""
#: data/ui/window.blp:156
msgid "Try Again"
msgstr "Tentar novamente"
#: data/ui/window.blp:205
msgid "Ask"
msgstr "Perguntar"
#: data/ui/window.blp:224
msgid "New window"
msgstr "Nova janela"
#: data/ui/window.blp:235 src/main.py:274
msgid "Keyboard Shortcuts"
msgstr "Atalhos do teclado"
#: data/ui/window.blp:242 src/main.py:282
#: data/ui/window.blp:240 src/main.py:275
msgid "About Bavarder"
msgstr "Sobre Bavarder"
#: src/main.py:246
msgid "New Window"
msgstr ""
#: src/provider/base.py:43
#: src/providers/base.py:43
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:45
#: src/providers/base.py:45
msgid "Open settings"
msgstr "Abrir configurações"
#: src/provider/catgpt.py:9
msgid "CatGPT"
msgstr "Cat GPT"
#: src/providers/base.py:81
msgid "About provider"
msgstr "Sobre provedor"
#: src/providers/base.py:95
msgid "How to get a token"
msgstr "Como adquirir um token"
#: src/providers/base.py:118
msgid "No preferences available"
msgstr "Nenhuma configuração disponível"
#: src/providers/huggingface.py:73 src/providers/transformer.py:68
msgid "API Key"
msgstr "Chave de API"
#: src/providers/openai.py:27
msgid "Prompt too long, splitting into chunks."
msgstr "Informação de entrada muito longa. Divida o texto em pedaços menores."
#: src/providers/openai.py:49
msgid "You don't have access to this model"
msgstr "Você não possui acesso a esse modelo"
#: src/providers/openai.py:54
msgid ""
"You exceeded your current quota, please check your plan and billing details."
msgstr ""
"Você excedeu sua cota de requisições. Por favor, consulte seu plano e "
"detalhes de pagamento."
#: src/providers/openai.py:59
msgid "API Error"
msgstr "Erro em API"
#: src/providers/openai.py:70
msgid "No model selected, you can choose one in preferences"
msgstr "Nenhum modelo selecionado. Escolha um através das configurações"
#: src/providers/openaicustom.py:33
msgid "API Url"
msgstr "API URL"
#: src/providers/openaicustom.py:40
msgid "Model"
msgstr "Modelo"
#: src/providers/openaicustom.py:80
msgid "How to choose a model"
msgstr "Como escolher um modelo"
#: src/views/about_window.py:12
msgid "translator-credits"
msgstr ""
#: src/views/about_window.py:26
msgid "0xMRTT"
msgstr "0xMRTT"
#: src/views/about_window.py:44
msgid "Copyright © 2023 0xMRTT"
msgstr ""
#: src/main.py:124
msgid "New version available!"
msgstr "Nova versão disponível!"
#: src/main.py:240
msgid "New Window"
msgstr "Nova janela"
#~ msgid "Message"
#~ msgstr "Mensagem"
#~ msgid "Wait"
#~ msgstr "Espere"
#~ msgctxt "shortcut window"
#~ msgid "General"
#~ msgstr "Geral"
#~ msgctxt "shortcut window"
#~ msgid "Show Shortcuts"
#~ msgstr "Mostrar Atalhos"
#~ msgctxt "shortcut window"
#~ msgid "Ask"
#~ msgstr "Perguntar"
#~ msgctxt "shortcut window"
#~ msgid "Close current window"
#~ msgstr "Fechar janela atual"
#~ msgctxt "shortcut window"
#~ msgid "Close all windows"
#~ msgstr "Fechar todas as janelas"
#~ msgctxt "shortcut window"
#~ msgid "Preferences"
#~ msgstr "Preferências"
#~ msgctxt "shortcut window"
#~ msgid "Copy response"
#~ msgstr "Copiar resposta"
#~ msgctxt "shortcut window"
#~ msgid "Clear"
#~ msgstr "Limpar"
#~ msgid "CatGPT"
#~ msgstr "Cat GPT"
#~ msgid "Chit-chat with an AI"
#~ msgstr "Bate-papo com uma IA"
#~ msgid "0xMRTT"
#~ msgstr "0xMRTT"
#~ msgid "Screenshot of Main UI"
#~ msgstr "Captura da tela principal"

235
po/ru.po
View File

@@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 14:05+0000\n"
"PO-Revision-Date: 2023-05-16 14:05+0000\n"
"POT-Creation-Date: 2023-06-01 17:40+0000\n"
"PO-Revision-Date: 2023-06-16 06:37+0000\n"
"Last-Translator: Daudix_UFO <ddaudix@gmail.com>\n"
"Language-Team: Russian <https://translate.codeberg.org/projects/bavarder/"
"bavarder/ru/>\n"
@@ -19,55 +19,15 @@ msgstr ""
"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/ui/window.blp:7
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 data/ui/window.blp:7
msgid "Bavarder"
msgstr "Bavarder"
#: 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 "Close current window"
msgstr "Закрыть текущее окно"
#: data/ui/help-overlay.ui:32
msgctxt "shortcut window"
msgid "Close all windows"
msgstr "Закрыть все окна"
#: data/ui/help-overlay.ui:38
msgctxt "shortcut window"
msgid "Preferences"
msgstr "Параметры"
#: data/ui/help-overlay.ui:44
msgctxt "shortcut window"
msgid "Copy response"
msgstr "Скопировать ответ"
#: data/ui/help-overlay.ui:50
msgctxt "shortcut window"
msgid "Clear"
msgstr "Очистить"
#: data/ui/preferences.blp:5 data/ui/window.blp:232 src/main.py:280
#: data/ui/preferences.blp:5 data/ui/window.blp:230 src/main.py:273
msgid "Preferences"
msgstr "Параметры"
@@ -101,7 +61,15 @@ msgstr ""
"Все окна будут закрываться без предупреждения, это может перевести к потере "
"данных"
#: data/ui/preferences.blp:43 src/main.py:278
#: data/ui/preferences.blp:42
msgid "Look for provider news"
msgstr "Искать новости о провайдерах"
#: data/ui/preferences.blp:43
msgid "News about issues with providers will be fetched from Bavarder website"
msgstr "Новости о проблемах с провайдерами будут получены с сайта Bavarder"
#: data/ui/preferences.blp:52 src/main.py:271
msgid "Providers"
msgstr "Провайдеры"
@@ -109,68 +77,173 @@ msgstr "Провайдеры"
msgid "Main Menu"
msgstr "Главное меню"
#: data/ui/window.blp:34 src/provider/base.py:50
#: data/ui/window.blp:34 src/providers/base.py:50
msgid "No network connection"
msgstr "Нет подключения к сети"
#: data/ui/window.blp:49
msgid "Message"
msgstr "Сообщение"
#: data/ui/window.blp:82 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Скопировать в буфер обмена"
#: data/ui/window.blp:106
msgid "Ask"
msgstr "Спросить"
#: data/ui/window.blp:115
msgid "Wait"
msgstr "Ждите"
#: data/ui/window.blp:130
#: data/ui/window.blp:61
msgid "Response"
msgstr "Ответ"
#: data/ui/window.blp:208
#: data/ui/window.blp:113
msgid "Copy to Clipboard"
msgstr "Скопировать в буфер обмена"
#: data/ui/window.blp:123
msgid "Stop"
msgstr "Остановить"
#: data/ui/window.blp:226
#: data/ui/window.blp:152
msgid "ERROR"
msgstr "ОШИБКА"
#: data/ui/window.blp:153
msgid "DESCRIPTION"
msgstr "ОПИСАНИЕ"
#: data/ui/window.blp:156
msgid "Try Again"
msgstr "Повторить"
#: data/ui/window.blp:205
msgid "Ask"
msgstr "Спросить"
#: data/ui/window.blp:224
msgid "New window"
msgstr "Новое окно"
#: data/ui/window.blp:237 src/main.py:281
#: data/ui/window.blp:235 src/main.py:274
msgid "Keyboard Shortcuts"
msgstr "Комбинации клавиш"
#: data/ui/window.blp:242 src/main.py:282
#: data/ui/window.blp:240 src/main.py:275
msgid "About Bavarder"
msgstr "О Bavarder"
#: src/main.py:246
msgid "New Window"
msgstr "Новое окно"
#: src/provider/base.py:43
#: src/providers/base.py:43
msgid "No API key provided, you can provide one in settings"
msgstr "Ключ API не предоставлен, вы можете предоставить его в настройках"
#: src/provider/base.py:45
#: src/providers/base.py:45
msgid "Open settings"
msgstr "Открыть настройки"
#: src/provider/catgpt.py:9
msgid "CatGPT"
msgstr "Cat GPT"
#: src/providers/base.py:81
msgid "About provider"
msgstr "О Провайдере"
#: src/providers/base.py:95
msgid "How to get a token"
msgstr "Как получить токен"
#: src/providers/base.py:118
msgid "No preferences available"
msgstr "Параметры отсутствуют"
#: src/providers/huggingface.py:73 src/providers/transformer.py:68
msgid "API Key"
msgstr "Ключ API"
#: src/providers/openai.py:27
msgid "Prompt too long, splitting into chunks."
msgstr "Запрос слишком длинный, разбиваем на фрагменты."
#: src/providers/openai.py:49
msgid "You don't have access to this model"
msgstr "Вы не имеете доступа к этой модели"
#: src/providers/openai.py:54
msgid ""
"You exceeded your current quota, please check your plan and billing details."
msgstr ""
"Вы превысили текущую квоту, пожалуйста, проверьте информацию о вашем "
"тарифном плане и счетах."
#: src/providers/openai.py:59
msgid "API Error"
msgstr "Ошибка API"
#: src/providers/openai.py:70
msgid "No model selected, you can choose one in preferences"
msgstr "Модель не выбрана, вы можете выбрать ее в параметрах"
#: src/providers/openaicustom.py:33
msgid "API Url"
msgstr "Url-адрес API"
#: src/providers/openaicustom.py:40
msgid "Model"
msgstr "Модель"
#: src/providers/openaicustom.py:80
msgid "How to choose a model"
msgstr "Как выбрать модель"
#: src/views/about_window.py:12
msgid "translator-credits"
msgstr "Давид Лапшин"
#: src/views/about_window.py:26
msgid "0xMRTT"
msgstr "0xMRTT"
#: src/views/about_window.py:44
msgid "Copyright © 2023 0xMRTT"
msgstr "Авторское право © 2023 0xMRTT"
#: src/main.py:124
msgid "New version available!"
msgstr "Доступна новая версия!"
#: src/main.py:240
msgid "New Window"
msgstr "Новое окно"
#~ msgid "Message"
#~ msgstr "Сообщение"
#~ msgid "Wait"
#~ msgstr "Ждите"
#~ msgctxt "shortcut window"
#~ msgid "General"
#~ msgstr "Общее"
#~ msgctxt "shortcut window"
#~ msgid "Show Shortcuts"
#~ msgstr "Показать комбинации клавиш"
#~ msgctxt "shortcut window"
#~ msgid "Ask"
#~ msgstr "Спросить"
#~ msgctxt "shortcut window"
#~ msgid "Close current window"
#~ msgstr "Закрыть текущее окно"
#~ msgctxt "shortcut window"
#~ msgid "Close all windows"
#~ msgstr "Закрыть все окна"
#~ msgctxt "shortcut window"
#~ msgid "Preferences"
#~ msgstr "Параметры"
#~ msgctxt "shortcut window"
#~ msgid "Copy response"
#~ msgstr "Скопировать ответ"
#~ msgctxt "shortcut window"
#~ msgid "Clear"
#~ msgstr "Очистить"
#~ msgid "CatGPT"
#~ msgstr "CatGPT"
#~ msgid "Chit-chat with an AI"
#~ msgstr "Болтайте с GPT"
#~ msgid "0xMRTT"
#~ msgstr "0xMRTT"
#~ msgid "Screenshot of Main UI"
#~ msgstr "Снимок экрана главного интерфейса"

227
po/sv.po
View File

@@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 14:05+0000\n"
"PO-Revision-Date: 2023-05-16 12:00+0000\n"
"POT-Creation-Date: 2023-06-01 17:40+0000\n"
"PO-Revision-Date: 2023-06-03 00:37+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"Language-Team: Swedish <https://translate.codeberg.org/projects/bavarder/"
"bavarder/sv/>\n"
@@ -22,53 +22,11 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3 data/ui/window.blp:7
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 data/ui/window.blp:7
msgid "Bavarder"
msgstr "Bavarder"
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
msgid "General"
msgstr "Generellt"
#: data/ui/help-overlay.ui:14
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgstr "Visa genvägar"
#: data/ui/help-overlay.ui:20
msgctxt "shortcut window"
msgid "Ask"
msgstr "Fråga"
#: data/ui/help-overlay.ui:26
msgctxt "shortcut window"
msgid "Close current window"
msgstr ""
#: data/ui/help-overlay.ui:32
msgctxt "shortcut window"
msgid "Close all windows"
msgstr ""
#: data/ui/help-overlay.ui:38
msgctxt "shortcut window"
msgid "Preferences"
msgstr "Inställningar"
#: data/ui/help-overlay.ui:44
#, fuzzy
#| msgid "Response"
msgctxt "shortcut window"
msgid "Copy response"
msgstr "Svar"
#: data/ui/help-overlay.ui:50
msgctxt "shortcut window"
msgid "Clear"
msgstr "Rensa"
#: data/ui/preferences.blp:5 data/ui/window.blp:232 src/main.py:280
#: data/ui/preferences.blp:5 data/ui/window.blp:230 src/main.py:273
msgid "Preferences"
msgstr "Inställningar"
@@ -100,7 +58,15 @@ msgstr ""
msgid "All windows will be closed without warning, this can lead to data loss"
msgstr ""
#: data/ui/preferences.blp:43 src/main.py:278
#: data/ui/preferences.blp:42
msgid "Look for provider news"
msgstr ""
#: data/ui/preferences.blp:43
msgid "News about issues with providers will be fetched from Bavarder website"
msgstr ""
#: data/ui/preferences.blp:52 src/main.py:271
msgid "Providers"
msgstr "Leverantörer"
@@ -108,68 +74,167 @@ msgstr "Leverantörer"
msgid "Main Menu"
msgstr "Huvudmeny"
#: data/ui/window.blp:34 src/provider/base.py:50
#: data/ui/window.blp:34 src/providers/base.py:50
msgid "No network connection"
msgstr "Ingen kontakt med nätverket"
#: data/ui/window.blp:49
msgid "Message"
msgstr "Meddelande"
#: data/ui/window.blp:82 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Kopiera till urklipp"
#: data/ui/window.blp:106
msgid "Ask"
msgstr "Fråga"
#: data/ui/window.blp:115
msgid "Wait"
msgstr "Vänta"
#: data/ui/window.blp:130
#: data/ui/window.blp:61
msgid "Response"
msgstr "Svar"
#: data/ui/window.blp:208
#: data/ui/window.blp:113
msgid "Copy to Clipboard"
msgstr "Kopiera till urklipp"
#: data/ui/window.blp:123
msgid "Stop"
msgstr "Stoppa"
#: data/ui/window.blp:226
#: data/ui/window.blp:152
msgid "ERROR"
msgstr ""
#: data/ui/window.blp:153
msgid "DESCRIPTION"
msgstr ""
#: data/ui/window.blp:156
msgid "Try Again"
msgstr "Försök igen"
#: data/ui/window.blp:205
msgid "Ask"
msgstr "Fråga"
#: data/ui/window.blp:224
msgid "New window"
msgstr ""
#: data/ui/window.blp:237 src/main.py:281
#: data/ui/window.blp:235 src/main.py:274
msgid "Keyboard Shortcuts"
msgstr "Tangentbordsgenvägar"
#: data/ui/window.blp:242 src/main.py:282
#: data/ui/window.blp:240 src/main.py:275
msgid "About Bavarder"
msgstr "Om Bavarder"
#: src/main.py:246
msgid "New Window"
msgstr ""
#: src/provider/base.py:43
#: src/providers/base.py:43
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:45
#: src/providers/base.py:45
msgid "Open settings"
msgstr "Öppna inställningar"
#: src/provider/catgpt.py:9
msgid "CatGPT"
msgstr "Cat GPT"
#: src/providers/base.py:81
#, fuzzy
#| msgid "About Bavarder"
msgid "About provider"
msgstr "Om Bavarder"
#: src/providers/base.py:95
msgid "How to get a token"
msgstr ""
#: src/providers/base.py:118
msgid "No preferences available"
msgstr ""
#: src/providers/huggingface.py:73 src/providers/transformer.py:68
msgid "API Key"
msgstr ""
#: src/providers/openai.py:27
msgid "Prompt too long, splitting into chunks."
msgstr ""
#: src/providers/openai.py:49
msgid "You don't have access to this model"
msgstr ""
#: src/providers/openai.py:54
msgid ""
"You exceeded your current quota, please check your plan and billing details."
msgstr ""
#: src/providers/openai.py:59
msgid "API Error"
msgstr ""
#: src/providers/openai.py:70
msgid "No model selected, you can choose one in preferences"
msgstr ""
#: src/providers/openaicustom.py:33
msgid "API Url"
msgstr ""
#: src/providers/openaicustom.py:40
msgid "Model"
msgstr "Läge:"
#: src/providers/openaicustom.py:80
msgid "How to choose a model"
msgstr ""
#: src/views/about_window.py:12
msgid "translator-credits"
msgstr ""
#: src/views/about_window.py:26
msgid "0xMRTT"
msgstr "0xMRTT"
#: src/views/about_window.py:44
msgid "Copyright © 2023 0xMRTT"
msgstr ""
#: src/main.py:124
msgid "New version available!"
msgstr ""
#: src/main.py:240
msgid "New Window"
msgstr ""
#~ msgid "Message"
#~ msgstr "Meddelande"
#~ msgid "Wait"
#~ msgstr "Vänta"
#~ msgctxt "shortcut window"
#~ msgid "General"
#~ msgstr "Generellt"
#~ msgctxt "shortcut window"
#~ msgid "Show Shortcuts"
#~ msgstr "Visa genvägar"
#~ msgctxt "shortcut window"
#~ msgid "Ask"
#~ msgstr "Fråga"
#~ msgctxt "shortcut window"
#~ msgid "Preferences"
#~ msgstr "Inställningar"
#, fuzzy
#~| msgid "Response"
#~ msgctxt "shortcut window"
#~ msgid "Copy response"
#~ msgstr "Svar"
#~ msgctxt "shortcut window"
#~ msgid "Clear"
#~ msgstr "Rensa"
#~ msgid "CatGPT"
#~ msgstr "Cat GPT"
#~ msgid "Chit-chat with an AI"
#~ msgstr "Chatta med en AI"
#~ msgid "0xMRTT"
#~ msgstr "0xMRTT"
#~ msgid "Screenshot of Main UI"
#~ msgstr "Skärmdump av huvudgränssnittet"

203
po/ta.po Normal file
View File

@@ -0,0 +1,203 @@
# Bavarder POT file
# Copyright (C) 2023 Bavarder
# This file is distributed under the GNU GPLv3 license.
# Bavarder, 2023.
#
# "K.B.Dharun Krishna" <kbdharunkrishna@gmail.com>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-01 17:40+0000\n"
"PO-Revision-Date: 2023-06-02 11:46+0000\n"
"Last-Translator: \"K.B.Dharun Krishna\" <kbdharunkrishna@gmail.com>\n"
"Language-Team: Tamil <https://translate.codeberg.org/projects/bavarder/"
"bavarder/ta/>\n"
"Language: ta\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.in:3 data/ui/window.blp:7
msgid "Bavarder"
msgstr "பவார்டர்"
#: data/ui/preferences.blp:5 data/ui/window.blp:230 src/main.py:273
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:24
msgid "Use plain text for output"
msgstr "வெளியீட்டிற்கு எளிய உரையைப் பயன்படுத்தவும்"
#: data/ui/preferences.blp:25
msgid "The plain text without formatting will be used"
msgstr "வடிவமைப்பு இல்லாத எளிய உரை பயன்படுத்தப்படும்"
#: data/ui/preferences.blp:33
msgid "Close all windows without warning"
msgstr "எச்சரிக்கை இல்லாமல் அனைத்து சாளரங்களையும் மூடு"
#: data/ui/preferences.blp:34
msgid "All windows will be closed without warning, this can lead to data loss"
msgstr ""
"அனைத்து சாளரங்களும் எச்சரிக்கை இல்லாமல் மூடப்படும், இது தரவு இழப்புக்கு வழிவகுக்கும்"
#: data/ui/preferences.blp:42
msgid "Look for provider news"
msgstr "வழங்குநர் செய்திகளைத் தேடுங்கள்"
#: data/ui/preferences.blp:43
msgid "News about issues with providers will be fetched from Bavarder website"
msgstr "வழங்குநர்களுடனான சிக்கல்கள் பற்றிய செய்திகள் பவார்டர் இணையதளத்தில் இருந்து பெறப்படும்"
#: data/ui/preferences.blp:52 src/main.py:271
msgid "Providers"
msgstr "வழங்குபவர்கள்"
#: data/ui/window.blp:28
msgid "Main Menu"
msgstr "முதன்மை பட்டியல்"
#: data/ui/window.blp:34 src/providers/base.py:50
msgid "No network connection"
msgstr "பிணைய இணைப்பு இல்லை"
#: data/ui/window.blp:61
msgid "Response"
msgstr "பதில்"
#: data/ui/window.blp:113
msgid "Copy to Clipboard"
msgstr "கிளிப்போர்டுக்கு நகலெடுக்கவும்"
#: data/ui/window.blp:123
msgid "Stop"
msgstr "நிறுத்து"
#: data/ui/window.blp:152
msgid "ERROR"
msgstr ""
#: data/ui/window.blp:153
msgid "DESCRIPTION"
msgstr ""
#: data/ui/window.blp:156
msgid "Try Again"
msgstr ""
#: data/ui/window.blp:205
msgid "Ask"
msgstr "கேள்"
#: data/ui/window.blp:224
msgid "New window"
msgstr "புதிய சாளரம்"
#: data/ui/window.blp:235 src/main.py:274
msgid "Keyboard Shortcuts"
msgstr "விசைப்பலகை குறுக்குவழிகள்"
#: data/ui/window.blp:240 src/main.py:275
msgid "About Bavarder"
msgstr "பவார்டர் பற்றி"
#: src/providers/base.py:43
msgid "No API key provided, you can provide one in settings"
msgstr "API விசை எதுவும் வழங்கப்படவில்லை, நீங்கள் அமைப்புகளில் ஒன்றை வழங்கலாம்"
#: src/providers/base.py:45
msgid "Open settings"
msgstr "அமைப்புகளைத் திறக்கவும்"
#: src/providers/base.py:81
msgid "About provider"
msgstr "வழங்குபவர் பற்றி"
#: src/providers/base.py:95
msgid "How to get a token"
msgstr "குறி அடையாளம் பெறுவது எப்படி"
#: src/providers/base.py:118
msgid "No preferences available"
msgstr "விருப்பத்தேர்வுகள் இல்லை"
#: src/providers/huggingface.py:73 src/providers/transformer.py:68
msgid "API Key"
msgstr "API விசை"
#: src/providers/openai.py:27
msgid "Prompt too long, splitting into chunks."
msgstr "உள்ளீடு மிக நீளமானது, துண்டுகளாகப் பிரிக்கப்படுகிறது."
#: src/providers/openai.py:49
msgid "You don't have access to this model"
msgstr "இந்த மாதிரிக்கான அணுகல் உங்களிடம் இல்லை"
#: src/providers/openai.py:54
msgid ""
"You exceeded your current quota, please check your plan and billing details."
msgstr ""
"உங்கள் தற்போதைய ஒதுக்கீட்டை மீறிவிட்டீர்கள், உங்கள் திட்டம் மற்றும் கட்டண விவரங்களைச் "
"சரிபார்க்கவும்."
#: src/providers/openai.py:59
msgid "API Error"
msgstr "API பிழை"
#: src/providers/openai.py:70
msgid "No model selected, you can choose one in preferences"
msgstr "எந்த மாதிரியும் தேர்ந்தெடுக்கப்படவில்லை, விருப்பத்தேர்வுகளில் ஒன்றைத் தேர்ந்தெடுக்கலாம்"
#: src/providers/openaicustom.py:33
msgid "API Url"
msgstr "API Url"
#: src/providers/openaicustom.py:40
msgid "Model"
msgstr "மாதிரி"
#: src/providers/openaicustom.py:80
msgid "How to choose a model"
msgstr "ஒரு மாதிரியை எவ்வாறு தேர்வு செய்வது"
#: src/views/about_window.py:12
msgid "translator-credits"
msgstr "K.B.Dharun Krishna https://github.com/kbdharun"
#: src/views/about_window.py:26
msgid "0xMRTT"
msgstr "0xMRTT"
#: src/views/about_window.py:44
msgid "Copyright © 2023 0xMRTT"
msgstr "பதிப்புரிமை © 2023 0xMRTT"
#: src/main.py:124
msgid "New version available!"
msgstr "புதிய பதிப்பு உள்ளது!"
#: src/main.py:240
msgid "New Window"
msgstr "புதிய சாளரம்"
#~ msgid "Message"
#~ msgstr "செய்தி"
#~ msgid "Wait"
#~ msgstr "காத்திரு"

223
po/th.po
View File

@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 14:05+0000\n"
"PO-Revision-Date: 2023-05-16 12:00+0000\n"
"POT-Creation-Date: 2023-06-01 17:40+0000\n"
"PO-Revision-Date: 2023-06-03 00:37+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"Language-Team: Thai <https://translate.codeberg.org/projects/bavarder/"
"bavarder/th/>\n"
@@ -20,51 +20,11 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3 data/ui/window.blp:7
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 data/ui/window.blp:7
msgid "Bavarder"
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 "Close current window"
msgstr ""
#: data/ui/help-overlay.ui:32
msgctxt "shortcut window"
msgid "Close all windows"
msgstr ""
#: data/ui/help-overlay.ui:38
msgctxt "shortcut window"
msgid "Preferences"
msgstr "การตั้งค่า"
#: data/ui/help-overlay.ui:44
msgctxt "shortcut window"
msgid "Copy response"
msgstr "คัดลอกการตอบกลับ"
#: data/ui/help-overlay.ui:50
msgctxt "shortcut window"
msgid "Clear"
msgstr "ล้าง"
#: data/ui/preferences.blp:5 data/ui/window.blp:232 src/main.py:280
#: data/ui/preferences.blp:5 data/ui/window.blp:230 src/main.py:273
msgid "Preferences"
msgstr "การตั้งค่า"
@@ -96,7 +56,15 @@ msgstr ""
msgid "All windows will be closed without warning, this can lead to data loss"
msgstr ""
#: data/ui/preferences.blp:43 src/main.py:278
#: data/ui/preferences.blp:42
msgid "Look for provider news"
msgstr ""
#: data/ui/preferences.blp:43
msgid "News about issues with providers will be fetched from Bavarder website"
msgstr ""
#: data/ui/preferences.blp:52 src/main.py:271
msgid "Providers"
msgstr "ผู้ให้บริการ"
@@ -104,68 +72,165 @@ msgstr "ผู้ให้บริการ"
msgid "Main Menu"
msgstr "เมนูหลัก"
#: data/ui/window.blp:34 src/provider/base.py:50
#: data/ui/window.blp:34 src/providers/base.py:50
msgid "No network connection"
msgstr "ไม่มีการเชื่อมต่อเครือข่าย"
#: data/ui/window.blp:49
msgid "Message"
msgstr "ข้อความ"
#: data/ui/window.blp:82 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "คัดลอกไปยังคลิปบอร์ด"
#: data/ui/window.blp:106
msgid "Ask"
msgstr "ถาม"
#: data/ui/window.blp:115
msgid "Wait"
msgstr "รอ"
#: data/ui/window.blp:130
#: data/ui/window.blp:61
msgid "Response"
msgstr "การตอบสนอง"
#: data/ui/window.blp:208
#: data/ui/window.blp:113
msgid "Copy to Clipboard"
msgstr "คัดลอกไปยังคลิปบอร์ด"
#: data/ui/window.blp:123
msgid "Stop"
msgstr "Stop"
#: data/ui/window.blp:226
#: data/ui/window.blp:152
msgid "ERROR"
msgstr ""
#: data/ui/window.blp:153
msgid "DESCRIPTION"
msgstr ""
#: data/ui/window.blp:156
msgid "Try Again"
msgstr "ลองใหม่อีกครั้ง"
#: data/ui/window.blp:205
msgid "Ask"
msgstr "ถาม"
#: data/ui/window.blp:224
msgid "New window"
msgstr ""
#: data/ui/window.blp:237 src/main.py:281
#: data/ui/window.blp:235 src/main.py:274
msgid "Keyboard Shortcuts"
msgstr "แป้นพิมพ์ลัด"
#: data/ui/window.blp:242 src/main.py:282
#: data/ui/window.blp:240 src/main.py:275
msgid "About Bavarder"
msgstr "เกี่ยวกับแบบวาร์เดอร์"
#: src/main.py:246
msgid "New Window"
msgstr ""
#: src/provider/base.py:43
#: src/providers/base.py:43
msgid "No API key provided, you can provide one in settings"
msgstr "ไม่มีรหัส API คุณสามารถระบุได้ในการตั้งค่าได้"
#: src/provider/base.py:45
#: src/providers/base.py:45
msgid "Open settings"
msgstr "เปิดการตั้งค่า"
#: src/provider/catgpt.py:9
msgid "CatGPT"
msgstr "แมว GPT"
#: src/providers/base.py:81
#, fuzzy
#| msgid "About Bavarder"
msgid "About provider"
msgstr "เกี่ยวกับแบบวาร์เดอร์"
#: src/providers/base.py:95
msgid "How to get a token"
msgstr ""
#: src/providers/base.py:118
msgid "No preferences available"
msgstr ""
#: src/providers/huggingface.py:73 src/providers/transformer.py:68
msgid "API Key"
msgstr ""
#: src/providers/openai.py:27
msgid "Prompt too long, splitting into chunks."
msgstr ""
#: src/providers/openai.py:49
msgid "You don't have access to this model"
msgstr ""
#: src/providers/openai.py:54
msgid ""
"You exceeded your current quota, please check your plan and billing details."
msgstr ""
#: src/providers/openai.py:59
msgid "API Error"
msgstr ""
#: src/providers/openai.py:70
msgid "No model selected, you can choose one in preferences"
msgstr ""
#: src/providers/openaicustom.py:33
msgid "API Url"
msgstr ""
#: src/providers/openaicustom.py:40
msgid "Model"
msgstr ""
#: src/providers/openaicustom.py:80
msgid "How to choose a model"
msgstr ""
#: src/views/about_window.py:12
msgid "translator-credits"
msgstr ""
#: src/views/about_window.py:26
msgid "0xMRTT"
msgstr "0xMRTT"
#: src/views/about_window.py:44
msgid "Copyright © 2023 0xMRTT"
msgstr ""
#: src/main.py:124
msgid "New version available!"
msgstr ""
#: src/main.py:240
msgid "New Window"
msgstr ""
#~ msgid "Message"
#~ msgstr "ข้อความ"
#~ msgid "Wait"
#~ msgstr "รอ"
#~ msgctxt "shortcut window"
#~ msgid "General"
#~ msgstr "ทั่วไป"
#~ msgctxt "shortcut window"
#~ msgid "Show Shortcuts"
#~ msgstr "แสดงทางลัด"
#~ msgctxt "shortcut window"
#~ msgid "Ask"
#~ msgstr "ถาม"
#~ msgctxt "shortcut window"
#~ msgid "Preferences"
#~ msgstr "การตั้งค่า"
#~ msgctxt "shortcut window"
#~ msgid "Copy response"
#~ msgstr "คัดลอกการตอบกลับ"
#~ msgctxt "shortcut window"
#~ msgid "Clear"
#~ msgstr "ล้าง"
#~ msgid "CatGPT"
#~ msgstr "แมว GPT"
#~ msgid "Chit-chat with an AI"
#~ msgstr "แชทกับ AI"
#~ msgid "0xMRTT"
#~ msgstr "0xMRTT"
#~ msgid "Screenshot of Main UI"
#~ msgstr "ภาพหน้าจอของ UI หลัก"

254
po/tr.po
View File

@@ -5,12 +5,13 @@
#
# keyiflerolsun <keyiflerolsun@gmail.com>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
# oktay454 <oktay@e.email>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 14:05+0000\n"
"PO-Revision-Date: 2023-05-16 12:00+0000\n"
"POT-Creation-Date: 2023-06-01 17:40+0000\n"
"PO-Revision-Date: 2023-06-03 00:37+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"Language-Team: Turkish <https://translate.codeberg.org/projects/bavarder/"
"bavarder/tr/>\n"
@@ -21,55 +22,11 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3 data/ui/window.blp:7
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 data/ui/window.blp:7
msgid "Bavarder"
msgstr "Bavarder"
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
msgid "General"
msgstr "Genel"
#: data/ui/help-overlay.ui:14
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgstr "Kısayolları Göster\""
#: data/ui/help-overlay.ui:20
msgctxt "shortcut window"
msgid "Ask"
msgstr "Sor"
#: data/ui/help-overlay.ui:26
msgctxt "shortcut window"
msgid "Close current window"
msgstr ""
#: data/ui/help-overlay.ui:32
msgctxt "shortcut window"
msgid "Close all windows"
msgstr ""
#: data/ui/help-overlay.ui:38
#, fuzzy
#| msgid "Preferences"
msgctxt "shortcut window"
msgid "Preferences"
msgstr "Tercihler"
#: data/ui/help-overlay.ui:44
#, fuzzy
#| msgid "Response"
msgctxt "shortcut window"
msgid "Copy response"
msgstr "Yanıt"
#: data/ui/help-overlay.ui:50
msgctxt "shortcut window"
msgid "Clear"
msgstr "Temizle"
#: data/ui/preferences.blp:5 data/ui/window.blp:232 src/main.py:280
#: data/ui/preferences.blp:5 data/ui/window.blp:230 src/main.py:273
msgid "Preferences"
msgstr "Tercihler"
@@ -79,29 +36,40 @@ msgstr "Girdi"
#: data/ui/preferences.blp:15
msgid "Clear prompt after send"
msgstr "Gönderdikten sonra giriş alanını temizle"
msgstr "Gönderdikten sonra girdi alanını temizle"
#: data/ui/preferences.blp:16
msgid "The prompt will be cleared after send"
msgstr "Gönderimden sonra giriş alanı temizlenecek"
msgstr "Gönderimden sonra girdi alanı temizlenecek"
#: data/ui/preferences.blp:24
msgid "Use plain text for output"
msgstr ""
msgstr "Çıktı için düz metin kullanın"
#: data/ui/preferences.blp:25
msgid "The plain text without formatting will be used"
msgstr ""
msgstr "Biçimlendirilmemiş düz metin kullanılacaktır"
#: data/ui/preferences.blp:33
msgid "Close all windows without warning"
msgstr ""
msgstr "Uyarı vermeden tüm pencereleri kapatın"
#: data/ui/preferences.blp:34
msgid "All windows will be closed without warning, this can lead to data loss"
msgstr ""
"Tüm pencereler uyarılmadan kapatılacaktır, bu veri kaybına neden olabilir"
#: data/ui/preferences.blp:43 src/main.py:278
#: data/ui/preferences.blp:42
msgid "Look for provider news"
msgstr "Sağlayıcı haberlerini arayın"
#: data/ui/preferences.blp:43
msgid "News about issues with providers will be fetched from Bavarder website"
msgstr ""
"Sağlayıcılarla ilgili sorunlar hakkındaki haberler Bavarder web sitesinden "
"alınacaktır"
#: data/ui/preferences.blp:52 src/main.py:271
msgid "Providers"
msgstr "Sağlayıcılar"
@@ -109,70 +77,172 @@ msgstr "Sağlayıcılar"
msgid "Main Menu"
msgstr "Ana Menü"
#: data/ui/window.blp:34 src/provider/base.py:50
#: data/ui/window.blp:34 src/providers/base.py:50
msgid "No network connection"
msgstr "Ağ bağlantısı yok"
#: data/ui/window.blp:49
msgid "Message"
msgstr "Mesaj"
#: data/ui/window.blp:82 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Panoya kopyala"
#: data/ui/window.blp:106
msgid "Ask"
msgstr "Sor"
#: data/ui/window.blp:115
msgid "Wait"
msgstr "Bekle"
#: data/ui/window.blp:130
#: data/ui/window.blp:61
msgid "Response"
msgstr "Yanıt"
#: data/ui/window.blp:208
#: data/ui/window.blp:113
msgid "Copy to Clipboard"
msgstr "Panoya kopyala"
#: data/ui/window.blp:123
msgid "Stop"
msgstr "Dur"
#: data/ui/window.blp:226
msgid "New window"
msgstr "Yeni Pencere"
#: data/ui/window.blp:152
msgid "ERROR"
msgstr ""
#: data/ui/window.blp:237 src/main.py:281
#: data/ui/window.blp:153
msgid "DESCRIPTION"
msgstr ""
#: data/ui/window.blp:156
msgid "Try Again"
msgstr "Yeniden deneyin"
#: data/ui/window.blp:205
msgid "Ask"
msgstr "Sor"
#: data/ui/window.blp:224
msgid "New window"
msgstr "Yeni pencere"
#: data/ui/window.blp:235 src/main.py:274
msgid "Keyboard Shortcuts"
msgstr "Klavye kısayolları"
#: data/ui/window.blp:242 src/main.py:282
#: data/ui/window.blp:240 src/main.py:275
msgid "About Bavarder"
msgstr "Bavarder Hakkında"
#: src/main.py:246
#, fuzzy
#| msgid "New window"
msgid "New Window"
msgstr "Yeni Pencere"
#: src/provider/base.py:43
#: src/providers/base.py:43
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:45
#: src/providers/base.py:45
msgid "Open settings"
msgstr "Ayarları aç"
#: src/provider/catgpt.py:9
msgid "CatGPT"
msgstr "Cat GPT"
#: src/providers/base.py:81
msgid "About provider"
msgstr "Sağlayıcı hakkında"
#: src/providers/base.py:95
msgid "How to get a token"
msgstr "Jeton nasıl alınır"
#: src/providers/base.py:118
msgid "No preferences available"
msgstr "Kullanılabilir tercih yok"
#: src/providers/huggingface.py:73 src/providers/transformer.py:68
msgid "API Key"
msgstr "API Anahtarı"
#: src/providers/openai.py:27
msgid "Prompt too long, splitting into chunks."
msgstr "Girdi çok uzun, parçalara ayırıyor."
#: src/providers/openai.py:49
msgid "You don't have access to this model"
msgstr "Bu modele erişiminiz yok"
#: src/providers/openai.py:54
msgid ""
"You exceeded your current quota, please check your plan and billing details."
msgstr ""
"Mevcut kotanızı aştınız, lütfen planınızı ve fatura ayrıntılarınızı kontrol "
"edin."
#: src/providers/openai.py:59
msgid "API Error"
msgstr "API Hatası"
#: src/providers/openai.py:70
msgid "No model selected, you can choose one in preferences"
msgstr "Seçili model yok, tercihlerden birini seçebilirsiniz"
#: src/providers/openaicustom.py:33
msgid "API Url"
msgstr "API URL"
#: src/providers/openaicustom.py:40
msgid "Model"
msgstr "Model"
#: src/providers/openaicustom.py:80
msgid "How to choose a model"
msgstr "Bir model nasıl seçilir"
#: src/views/about_window.py:12
msgid "translator-credits"
msgstr ""
"Kemal Oktay Aktoğan | @oktay454 | oktay@e.email\n"
"Launchpad Contributions:\n"
" Kudret EMRE https://launchpad.net/~kudretemre"
#: src/views/about_window.py:26
msgid "0xMRTT"
msgstr "0xMRTT"
#: src/views/about_window.py:44
msgid "Copyright © 2023 0xMRTT"
msgstr "Telif hakkı © 2023 0xMRTT"
#: src/main.py:124
msgid "New version available!"
msgstr "Yeni sürüm mevcut!"
#: src/main.py:240
msgid "New Window"
msgstr "Yeni Pencere"
#~ msgid "Message"
#~ msgstr "Mesaj"
#~ msgid "Wait"
#~ msgstr "Bekle"
#~ msgctxt "shortcut window"
#~ msgid "General"
#~ msgstr "Genel"
#~ msgctxt "shortcut window"
#~ msgid "Show Shortcuts"
#~ msgstr "Kısayolları Göster\""
#~ msgctxt "shortcut window"
#~ msgid "Ask"
#~ msgstr "Sor"
#, fuzzy
#~| msgid "Preferences"
#~ msgctxt "shortcut window"
#~ msgid "Preferences"
#~ msgstr "Tercihler"
#, fuzzy
#~| msgid "Response"
#~ msgctxt "shortcut window"
#~ msgid "Copy response"
#~ msgstr "Yanıt"
#~ msgctxt "shortcut window"
#~ msgid "Clear"
#~ msgstr "Temizle"
#~ msgid "CatGPT"
#~ msgstr "Cat GPT"
#~ msgid "Chit-chat with an AI"
#~ msgstr "Chit AI ile sohbet edin"
#~ msgid "0xMRTT"
#~ msgstr "0xMRTT"
#~ msgid "Screenshot of Main UI"
#~ msgstr "Ana Kullanıcı Arayüzü'nün ekran görüntüsü"

263
po/uk.po
View File

@@ -7,70 +7,33 @@
# Orest58008 <orest58008@tuta.io>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
# volkov <d2oo1dle2x@gmail.com>, 2023.
# Anatolii Bielibov <anatoly136ua@gmail.com>, 2023.
# Anatolii Bielibov <Anatoly136UA@users.noreply.translate.codeberg.org>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 14:05+0000\n"
"PO-Revision-Date: 2023-05-16 12:00+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"POT-Creation-Date: 2023-06-01 17:40+0000\n"
"PO-Revision-Date: 2023-06-04 00:37+0000\n"
"Last-Translator: Anatolii Bielibov <Anatoly136UA@users.noreply.translate."
"codeberg.org>\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/ui/window.blp:7
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 data/ui/window.blp:7
msgid "Bavarder"
msgstr "Bavarder"
#: 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 "Close current window"
msgstr ""
#: data/ui/help-overlay.ui:32
msgctxt "shortcut window"
msgid "Close all windows"
msgstr ""
#: data/ui/help-overlay.ui:38
msgctxt "shortcut window"
#: data/ui/preferences.blp:5 data/ui/window.blp:230 src/main.py:273
msgid "Preferences"
msgstr "Опції"
#: data/ui/help-overlay.ui:44
msgctxt "shortcut window"
msgid "Copy response"
msgstr "Копіювати відповідь"
#: data/ui/help-overlay.ui:50
msgctxt "shortcut window"
msgid "Clear"
msgstr "Очистити"
#: data/ui/preferences.blp:5 data/ui/window.blp:232 src/main.py:280
msgid "Preferences"
msgstr "Опції"
msgstr "Налаштування"
#: data/ui/preferences.blp:12
msgid "Prompt"
@@ -78,16 +41,15 @@ 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:24
#, fuzzy
msgid "Use plain text for output"
msgstr "Використовувати звичайний текст для виводу"
msgstr "Виводити звичайний текст"
#: data/ui/preferences.blp:25
msgid "The plain text without formatting will be used"
@@ -95,84 +57,199 @@ msgstr "Звичайний текст, без форматування, буде
#: data/ui/preferences.blp:33
msgid "Close all windows without warning"
msgstr ""
msgstr "Закривати всі вікна без попередження"
#: data/ui/preferences.blp:34
msgid "All windows will be closed without warning, this can lead to data loss"
msgstr ""
"Усі вікна закриватимуться без попередження, це може призвести до втрати даних"
#: data/ui/preferences.blp:43 src/main.py:278
#: data/ui/preferences.blp:42
msgid "Look for provider news"
msgstr "Шукати новини про постачальників"
#: data/ui/preferences.blp:43
msgid "News about issues with providers will be fetched from Bavarder website"
msgstr ""
"Новини про проблеми з постачальниками надходитимуть з вебсайту Bavarder"
#: data/ui/preferences.blp:52 src/main.py:271
msgid "Providers"
msgstr "Постачальники"
#: data/ui/window.blp:28
msgid "Main Menu"
msgstr "Головне Меню"
msgstr "Головне меню"
#: data/ui/window.blp:34 src/provider/base.py:50
#: data/ui/window.blp:34 src/providers/base.py:50
msgid "No network connection"
msgstr "Відсутнє з'єднання з мережею"
msgstr "Відсутнє зєднання з мережею"
#: data/ui/window.blp:49
msgid "Message"
msgstr "Повідомлення"
#: data/ui/window.blp:82 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Копіювати"
#: data/ui/window.blp:106
msgid "Ask"
msgstr "Запитати"
#: data/ui/window.blp:115
msgid "Wait"
msgstr "Чекайте"
#: data/ui/window.blp:130
#: data/ui/window.blp:61
msgid "Response"
msgstr "Відповідь"
#: data/ui/window.blp:208
#: data/ui/window.blp:113
msgid "Copy to Clipboard"
msgstr "Копіювати до буфера обміну"
#: data/ui/window.blp:123
msgid "Stop"
msgstr "Зупинити"
#: data/ui/window.blp:226
#: data/ui/window.blp:152
msgid "ERROR"
msgstr "ПОМИЛКА"
#: data/ui/window.blp:153
msgid "DESCRIPTION"
msgstr "ОПИС"
#: data/ui/window.blp:156
msgid "Try Again"
msgstr "Спробуйте ще"
#: data/ui/window.blp:205
msgid "Ask"
msgstr "Запитати"
#: data/ui/window.blp:224
msgid "New window"
msgstr "Нове вікно"
#: data/ui/window.blp:237 src/main.py:281
#: data/ui/window.blp:235 src/main.py:274
msgid "Keyboard Shortcuts"
msgstr "Комбінації Клавіш"
msgstr "Клавіатурні скорочення"
#: data/ui/window.blp:242 src/main.py:282
#: data/ui/window.blp:240 src/main.py:275
msgid "About Bavarder"
msgstr "Про Bavarder"
#: src/main.py:246
#, fuzzy
#| msgid "New window"
msgid "New Window"
msgstr "Нове вікно"
#: src/provider/base.py:43
#: src/providers/base.py:43
msgid "No API key provided, you can provide one in settings"
msgstr "Відсутній ключ API, надайте його в налаштуваннях"
#: src/provider/base.py:45
#: src/providers/base.py:45
msgid "Open settings"
msgstr "Відкрити налаштування"
#: src/provider/catgpt.py:9
msgid "CatGPT"
msgstr "Кіт GPT"
#: src/providers/base.py:81
msgid "About provider"
msgstr "Про постачальника"
#: src/providers/base.py:95
msgid "How to get a token"
msgstr "Як отримати токен"
#: src/providers/base.py:118
msgid "No preferences available"
msgstr "Налаштування відсутні"
#: src/providers/huggingface.py:73 src/providers/transformer.py:68
msgid "API Key"
msgstr "Ключ API"
#: src/providers/openai.py:27
#, fuzzy
msgid "Prompt too long, splitting into chunks."
msgstr "Завеликий запит, розділяємо на шматки."
#: src/providers/openai.py:49
msgid "You don't have access to this model"
msgstr "Ви не маєте доступу до цієї моделі"
#: src/providers/openai.py:54
#, fuzzy
msgid ""
"You exceeded your current quota, please check your plan and billing details."
msgstr ""
"Ви перевищили свою поточну квоту — будь ласка, перевірте свій тарифний план "
"і платіжні дані."
#: src/providers/openai.py:59
msgid "API Error"
msgstr "Помилка API"
#: src/providers/openai.py:70
msgid "No model selected, you can choose one in preferences"
msgstr "Модель не вибрано, виберіть будь-яку в налаштуваннях"
#: src/providers/openaicustom.py:33
msgid "API Url"
msgstr "URL-адреса API"
#: src/providers/openaicustom.py:40
msgid "Model"
msgstr "Модель"
#: src/providers/openaicustom.py:80
msgid "How to choose a model"
msgstr "Як вибрати модель"
#: src/views/about_window.py:12
msgid "translator-credits"
msgstr ""
#: src/views/about_window.py:26
msgid "0xMRTT"
msgstr "0xMRTT"
#: src/views/about_window.py:44
msgid "Copyright © 2023 0xMRTT"
msgstr "Авторське право © 2023 0xMRTT"
#: src/main.py:124
msgid "New version available!"
msgstr "Доступна нова версія!"
#: src/main.py:240
msgid "New Window"
msgstr "Нове вікно"
#~ msgid "Message"
#~ msgstr "Повідомлення"
#~ msgid "Wait"
#~ msgstr "Чекайте"
#~ msgctxt "shortcut window"
#~ msgid "General"
#~ msgstr "Загальні"
#~ msgctxt "shortcut window"
#~ msgid "Show Shortcuts"
#~ msgstr "Показати клавіатурні скорочення"
#~ msgctxt "shortcut window"
#~ msgid "Ask"
#~ msgstr "Запитати"
#~ msgctxt "shortcut window"
#~ msgid "Close current window"
#~ msgstr "Закрити поточне вікно"
#~ msgctxt "shortcut window"
#~ msgid "Close all windows"
#~ msgstr "Закрити всі вікна"
#~ msgctxt "shortcut window"
#~ msgid "Preferences"
#~ msgstr "Налаштування"
#~ msgctxt "shortcut window"
#~ msgid "Copy response"
#~ msgstr "Копіювати відповідь"
#~ msgctxt "shortcut window"
#~ msgid "Clear"
#~ msgstr "Очистити"
#~ msgid "CatGPT"
#~ msgstr "Кіт GPT"
#~ msgid "Chit-chat with an AI"
#~ msgstr "Побалакати з ШІ"
#~ msgid "0xMRTT"
#~ msgstr "0xMRTT"
#~ msgid "Screenshot of Main UI"
#~ msgstr "Знімок головного інтерфейсу"

View File

@@ -8,9 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-16 14:05+0000\n"
"PO-Revision-Date: 2023-05-16 12:00+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"POT-Creation-Date: 2023-06-01 17:40+0000\n"
"PO-Revision-Date: 2023-06-05 03:29+0000\n"
"Last-Translator: yangyangdaji <1504305527@qq.com>\n"
"Language-Team: Chinese (Simplified) <https://translate.codeberg.org/projects/"
"bavarder/bavarder/zh_Hans/>\n"
"Language: zh_Hans\n"
@@ -20,51 +20,11 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3 data/ui/window.blp:7
#: data/io.github.Bavarder.Bavarder.desktop.in.in:3 data/ui/window.blp:7
msgid "Bavarder"
msgstr "Bavarder"
#: 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 "Close current window"
msgstr "关闭当前窗口"
#: data/ui/help-overlay.ui:32
msgctxt "shortcut window"
msgid "Close all windows"
msgstr "关闭全部窗口"
#: data/ui/help-overlay.ui:38
msgctxt "shortcut window"
msgid "Preferences"
msgstr "首选项"
#: data/ui/help-overlay.ui:44
msgctxt "shortcut window"
msgid "Copy response"
msgstr "复制回复"
#: data/ui/help-overlay.ui:50
msgctxt "shortcut window"
msgid "Clear"
msgstr "清除"
#: data/ui/preferences.blp:5 data/ui/window.blp:232 src/main.py:280
#: data/ui/preferences.blp:5 data/ui/window.blp:230 src/main.py:273
msgid "Preferences"
msgstr "首选项"
@@ -96,7 +56,15 @@ msgstr "毫无警告地关闭所有窗口"
msgid "All windows will be closed without warning, this can lead to data loss"
msgstr "所有窗口将在没有警告的情况下关闭,这可能导致数据丢失"
#: data/ui/preferences.blp:43 src/main.py:278
#: data/ui/preferences.blp:42
msgid "Look for provider news"
msgstr "寻找提供商新闻"
#: data/ui/preferences.blp:43
msgid "News about issues with providers will be fetched from Bavarder website"
msgstr "有关提供商问题的新闻将从 Bavarder 网站获取"
#: data/ui/preferences.blp:52 src/main.py:271
msgid "Providers"
msgstr "提供者"
@@ -104,68 +72,175 @@ msgstr "提供者"
msgid "Main Menu"
msgstr "主菜单"
#: data/ui/window.blp:34 src/provider/base.py:50
#: data/ui/window.blp:34 src/providers/base.py:50
msgid "No network connection"
msgstr "无网络连接"
#: data/ui/window.blp:49
msgid "Message"
msgstr "消息"
#: data/ui/window.blp:82 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "复制到剪贴板"
#: data/ui/window.blp:106
msgid "Ask"
msgstr "询问"
#: data/ui/window.blp:115
msgid "Wait"
msgstr "等待"
#: data/ui/window.blp:130
#: data/ui/window.blp:61
msgid "Response"
msgstr "回复"
#: data/ui/window.blp:208
#: data/ui/window.blp:113
msgid "Copy to Clipboard"
msgstr "复制到剪贴板"
#: data/ui/window.blp:123
msgid "Stop"
msgstr "停止"
#: data/ui/window.blp:226
#: data/ui/window.blp:152
msgid "ERROR"
msgstr "错误"
#: data/ui/window.blp:153
msgid "DESCRIPTION"
msgstr "描述"
#: data/ui/window.blp:156
msgid "Try Again"
msgstr "重试"
#: data/ui/window.blp:205
msgid "Ask"
msgstr "询问"
#: data/ui/window.blp:224
msgid "New window"
msgstr "新窗口"
#: data/ui/window.blp:237 src/main.py:281
#: data/ui/window.blp:235 src/main.py:274
msgid "Keyboard Shortcuts"
msgstr "键盘快捷键"
#: data/ui/window.blp:242 src/main.py:282
#: data/ui/window.blp:240 src/main.py:275
msgid "About Bavarder"
msgstr "关于 Bavarder"
#: src/main.py:246
msgid "New Window"
msgstr "新窗口"
#: src/provider/base.py:43
#: src/providers/base.py:43
msgid "No API key provided, you can provide one in settings"
msgstr "没有提供API密钥您可以在设置中提供一个"
#: src/provider/base.py:45
#: src/providers/base.py:45
msgid "Open settings"
msgstr "打开设置"
#: src/provider/catgpt.py:9
msgid "CatGPT"
msgstr "Cat GPT"
#: src/providers/base.py:81
msgid "About provider"
msgstr "关于供应商"
#: src/providers/base.py:95
msgid "How to get a token"
msgstr "如何获得 token"
#: src/providers/base.py:118
msgid "No preferences available"
msgstr "没有可用的选项"
#: src/providers/huggingface.py:73 src/providers/transformer.py:68
msgid "API Key"
msgstr "API 密钥"
#: src/providers/openai.py:27
msgid "Prompt too long, splitting into chunks."
msgstr "提示太长,分裂成块。"
#: src/providers/openai.py:49
msgid "You don't have access to this model"
msgstr "您无权访问此模型"
#: src/providers/openai.py:54
msgid ""
"You exceeded your current quota, please check your plan and billing details."
msgstr "您超出了当前配额,请检查您的计划和账单明细。"
#: src/providers/openai.py:59
msgid "API Error"
msgstr "API 错误"
#: src/providers/openai.py:70
msgid "No model selected, you can choose one in preferences"
msgstr "没有选择模型,您可以在选项中选择一个"
#: src/providers/openaicustom.py:33
msgid "API Url"
msgstr "API 地址"
#: src/providers/openaicustom.py:40
msgid "Model"
msgstr "模型"
#: src/providers/openaicustom.py:80
msgid "How to choose a model"
msgstr "如何选择一个模型"
#: src/views/about_window.py:12
msgid "translator-credits"
msgstr ""
"Launchpad Contributions:\n"
" Wang Dianjin https://launchpad.net/~tuhaihe\n"
" aerowolf https://launchpad.net/~aerowolf-tom\n"
" 长孙弘奕 https://launchpad.net/~krwy0330"
#: src/views/about_window.py:26
msgid "0xMRTT"
msgstr "0xMRTT"
#: src/views/about_window.py:44
msgid "Copyright © 2023 0xMRTT"
msgstr "Copyright © 2023 0xMRTT"
#: src/main.py:124
msgid "New version available!"
msgstr "新版本可用!"
#: src/main.py:240
msgid "New Window"
msgstr "新窗口"
#~ msgid "Message"
#~ msgstr "消息"
#~ msgid "Wait"
#~ msgstr "等待"
#~ msgctxt "shortcut window"
#~ msgid "General"
#~ msgstr "常规"
#~ msgctxt "shortcut window"
#~ msgid "Show Shortcuts"
#~ msgstr "显示快捷方式"
#~ msgctxt "shortcut window"
#~ msgid "Ask"
#~ msgstr "问"
#~ msgctxt "shortcut window"
#~ msgid "Close current window"
#~ msgstr "关闭当前窗口"
#~ msgctxt "shortcut window"
#~ msgid "Close all windows"
#~ msgstr "关闭全部窗口"
#~ msgctxt "shortcut window"
#~ msgid "Preferences"
#~ msgstr "首选项"
#~ msgctxt "shortcut window"
#~ msgid "Copy response"
#~ msgstr "复制回复"
#~ msgctxt "shortcut window"
#~ msgid "Clear"
#~ msgstr "清除"
#~ msgid "CatGPT"
#~ msgstr "Cat GPT"
#~ msgid "Chit-chat with an AI"
#~ msgstr "与AI一起聊天"
#~ msgid "0xMRTT"
#~ msgstr "0xMRTT"
#~ msgid "Screenshot of Main UI"
#~ msgstr "主界面的屏幕截图"

View File

@@ -2,10 +2,25 @@
# chmod +x flatpak-pip-generator
# ./flatpak-pip-generator --requirements-file=requirements.txt --output pypi-dependencies
baichat-py>=0.1.2
hgchat
openai
# use https://johannesjh.github.io/req2flatpak/main/cli.html
# 1. pip-compile -o r.txt requirements.txt
# 2. ./req2flatpak.py --requirements-file requirements.txt --target-platforms 310-x86_64 310-aarch64 > build-aux/pypi-dependencies.json
Pygments
baichat_py
googlebardpy
markdown
openai
pymdown-extensions
Pygments
requests
text-generation
gradio_client
# replace the curl-cffi entry with
# {
# "type": "file",
# "url": "https://files.pythonhosted.org/packages/d1/6f/5d591a5628423af4598e2d6ff0861fcbc554cc259590fac9f97d9c984611/curl_cffi-0.5.6-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
# "sha256": "7a9df9fabff038f1ac9e7e6f32b5edb5d8df8c2eec64f53f513de1766c17ffdb"
# },
#

23
snap/bavarder.patch Normal file
View File

@@ -0,0 +1,23 @@
diff -Naur a/data/io.github.Bavarder.Bavarder.appdata.xml.in b/data/io.github.Bavarder.Bavarder.appdata.xml.in
--- a/data/io.github.Bavarder.Bavarder.appdata.xml.in 2023-06-09 11:17:01.939402268 +0530
+++ b/data/io.github.Bavarder.Bavarder.appdata.xml.in 2023-06-09 11:17:25.235254967 +0530
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id>io.github.Bavarder.Bavarder</id>
+ <icon type="stock">snap.bavarder.io.github.Bavarder.Bavarder</icon>
<name>Bavarder</name>
<summary>Chit-chat with an AI</summary>
<developer_name>0xMRTT</developer_name>
diff -Naur a/data/io.github.Bavarder.Bavarder.desktop.in b/data/io.github.Bavarder.Bavarder.desktop.in
--- a/data/io.github.Bavarder.Bavarder.desktop.in 2023-06-09 11:09:08.652098824 +0530
+++ b/data/io.github.Bavarder.Bavarder.desktop.in 2023-06-09 11:17:37.047177451 +0530
@@ -1,7 +1,7 @@
[Desktop Entry]
Name=Bavarder
Exec=bavarder
-Icon=io.github.Bavarder.Bavarder
+Icon=snap.bavarder.io.github.Bavarder.Bavarder
Terminal=false
Type=Application
Categories=GTK;

94
snap/snapcraft.yaml Normal file
View File

@@ -0,0 +1,94 @@
name: bavarder # you probably want to 'snapcraft register <name>'
base: core22 # the base snap is the execution environment for this snap
adopt-info: bavarder
grade: stable # must be 'stable' to release into candidate/stable channels
confinement: strict # use 'strict' once you have the right plugs and slots
layout:
/usr/lib/x86_64-linux-gnu/webkitgtk-6.0:
bind: $SNAP/webkitgtk-platform/usr/lib/x86_64-linux-gnu/webkitgtk-6.0
parts:
blueprint-compiler:
source: https://gitlab.gnome.org/jwestman/blueprint-compiler.git
source-tag: 'v0.8.1'
plugin: meson
meson-parameters:
- --prefix=/usr
override-prime: |
echo 'Skip'
bavarder:
after: [blueprint-compiler]
# See 'snapcraft plugins'
plugin: meson
source: https://github.com/Bavarder/Bavarder.git
source-tag: '0.2.3'
meson-parameters:
- --prefix=/snap/bavarder/current/usr
- -Dbuildtype=release
build-snaps:
- webkitgtk-6-gnome-2204-sdk/latest/stable
build-environment:
- LD_LIBRARY_PATH: /snap/webkitgtk-sdk/current/usr/lib:/snap/webkitgtk-sdk/current/usr/lib/$CRAFT_ARCH_TRIPLET:/snap/webkitgtk-sdk/current/usr/lib/webkitgtk-6.0:/snap/webkitgtk-sdk/current/usr/lib/$CRAFT_ARCH_TRIPLET/girepository-1.0:$LD_LIBRARY_PATH
- PYTHONPATH: $CRAFT_STAGE/usr/lib/python3/dist-packages:$CRAFT_PART_INSTALL/usr/local/lib/python3.10/dist-packages:$PYTHONPATH
- GI_TYPELIB_PATH: /snap/gnome-42-2204-sdk/current/usr/lib/$CRAFT_ARCH_TRIPLET/girepository-1.0:/snap/gnome-42-2204-sdk/current/usr/lib/girepository-1.0:/snap/webkitgtk-6-gnome-2204-sdk/current/usr/lib/$CRAFT_ARCH_TRIPLET/girepository-1.0
override-pull: |
craftctl default
patch -p1 < $CRAFT_PROJECT_DIR/snap/bavarder.patch
pip install --prefix=$CRAFT_PART_INSTALL/usr baichat-py==0.2.1 googlebardpy==0.1.0 openai==0.27.7 pymdown-extensions==10.0.1 requests==2.30.0 text-generation==0.5.2 gradio-client==0.2.5 lxml
override-build: |
craftctl default
mkdir -p $CRAFT_PART_INSTALL/meta/gui
cp -r $CRAFT_PART_INSTALL/snap/bavarder/current/usr/share/icons $CRAFT_PART_INSTALL/meta/gui/
find $CRAFT_PART_INSTALL/meta/gui/icons -type f -not -name 'io.github.Bavarder.Bavarder*' -exec rm {} + -o -type d -empty -exec rmdir {} +
for i in `find $CRAFT_PART_INSTALL/meta/gui/icons -name "*.svg" -o -name "*.png"`; do
mv $i "`dirname $i`/snap.$CRAFT_PROJECT_NAME.`basename $i`"
done
sed -e '1c#!/usr/bin/python3' -i $CRAFT_PART_INSTALL/usr/local/bin/*
sed -e '1c#!/usr/bin/env python3' -i $CRAFT_PART_INSTALL/snap/bavarder/current/usr/bin/bavarder
chmod +x $CRAFT_PART_INSTALL/snap/bavarder/current/usr/bin/bavarder
parse-info: [usr/share/appdata/io.github.Bavarder.Bavarder.appdata.xml]
organize:
snap/bavarder/current: .
usr/local: usr
prime:
- -snap/bavarder
gst:
after: [ bavarder ]
plugin: nil
stage-packages:
- gir1.2-gstreamer-1.0
prime:
- usr/lib/$CRAFT_ARCH_TRIPLET/girepository-1.0/Gst-1.0.typelib
- usr/lib/$CRAFT_ARCH_TRIPLET/girepository-1.0/GstBase-1.0.typelib
- usr/lib/$CRAFT_ARCH_TRIPLET/girepository-1.0/GstCheck-1.0.typelib
- usr/lib/$CRAFT_ARCH_TRIPLET/girepository-1.0/GstController-1.0.typelib
- usr/lib/$CRAFT_ARCH_TRIPLET/girepository-1.0/GstNet-1.0.typelib
plugs:
webkitgtk-6-gnome-2204:
interface: content
target: $SNAP/webkitgtk-platform
default-provider: webkitgtk-6-gnome-2204
slots:
bavarder:
interface: dbus
bus: session
name: io.github.Bavarder.Bavarder
apps:
bavarder:
command: usr/bin/bavarder
extensions: [gnome]
common-id: io.github.Bavarder.Bavarder
environment:
PYTHONPATH: $SNAP/usr/lib/python3.10/dist-packages:$PYTHONPATH
GI_TYPELIB_PATH: $SNAP/webkitgtk-platform/usr/lib/$CRAFT_ARCH_TRIPLET/girepository-1.0:$GI_TYPELIB_PATH
LD_LIBRARY_PATH: $SNAP/webkitgtk-platform/usr/lib/$SNAPCRAFT_ARCH_TRIPLET:$SNAP/webkitgtk-platform/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/webkitgtk-6.0:$LD_LIBRARY_PATH
plugs:
- network
- network-status
- network-bind
- unity7

View File

@@ -30,16 +30,16 @@ gi.require_version("Gst", "1.0")
gi.require_version('WebKit', '6.0')
from gi.repository import Gtk, Gio, Adw, Gdk, GLib, Gst, WebKit
from .window import BavarderWindow
from .preferences import Preferences
from .views.main_window import BavarderWindow
from .views.preferences_window import Preferences
from .views.about_window import BavarderAboutWindow
from enum import auto, IntEnum
from gettext import gettext as _
from .constants import app_id, version, build_type
from tempfile import NamedTemporaryFile
from .provider import PROVIDERS
from .providers import PROVIDERS
import platform
import os
import markdown
@@ -47,42 +47,15 @@ import tempfile
import re
import requests
from .threading import KillableThread
from enum import auto, IntEnum
class Step(IntEnum):
CONVERT_HTML = auto()
LOAD_WEBVIEW = auto()
RENDER = auto()
class KillableThread(threading.Thread):
def __init__(self, *args, **keywords):
threading.Thread.__init__(self, *args, **keywords)
self.killed = False
def start(self):
self.__run_backup = self.run
self.run = self.__run
threading.Thread.start(self)
def __run(self):
sys.settrace(self.globaltrace)
self.__run_backup()
self.run = self.__run_backup
def globaltrace(self, frame, event, arg):
if event == 'call':
return self.localtrace
else:
return None
def localtrace(self, frame, event, arg):
if self.killed:
if event == 'line':
raise SystemExit()
return self.localtrace
def kill(self):
self.killed = True
ANNOUCEMENT_URL = "https://bavarder.codeberg.page/annoucements.json"
@@ -93,7 +66,7 @@ class BavarderApplication(Adw.Application):
def __init__(self):
super().__init__(
application_id="io.github.Bavarder.Bavarder",
application_id=app_id,
flags=Gio.ApplicationFlags.DEFAULT_FLAGS,
)
self.create_action("quit_all", self.on_close_all, ["<primary>q"])
@@ -112,7 +85,7 @@ class BavarderApplication(Adw.Application):
# self.create_action("speak", self.on_speak_action, ["<primary>S"])
# self.create_action("listen", self.on_listen_action, ["<primary>L"])
self.settings = Gio.Settings(schema_id="io.github.Bavarder.Bavarder")
self.settings = Gio.Settings(schema_id=app_id)
self.clear_after_send = self.settings.get_boolean("clear-after-send")
self.use_text_view = self.settings.get_boolean("use-text-view")
@@ -133,6 +106,7 @@ class BavarderApplication(Adw.Application):
)
self.allow_remote_fetching = self.settings.get_boolean("allow-remote-fetching")
self.use_theme = False
self.providers = {}
def load_annoucements(self):
try:
@@ -274,24 +248,26 @@ class BavarderApplication(Adw.Application):
self.providers_data = self.settings.get_value("providers-data")
for provider in self.enabled_providers:
print("Loading provider", provider)
try:
item = PROVIDERS[provider]
item_model = Gio.MenuItem()
item_model.set_label(item.name)
item_model.set_action_and_target_value(
"app.set_provider",
GLib.Variant("s", item.slug))
provider_menu.append_item(item_model)
except KeyError:
print("Provider", provider, "not found")
continue
if provider in self.providers:
p = self.providers[provider]
name = p.name
slug = p.slug
else:
try:
self.providers[item.slug] # doesn't re load if already loaded
p = PROVIDERS[provider]
name = p.name
slug = p.slug
except KeyError:
self.providers[item.slug] = PROVIDERS[provider](window, self)
continue
else:
self.providers[slug] = PROVIDERS[provider](window, self)
item_model = Gio.MenuItem()
item_model.set_label(name)
item_model.set_action_and_target_value(
"app.set_provider",
GLib.Variant("s", slug))
provider_menu.append_item(item_model)
section_menu.append_submenu(_("Providers"), provider_menu)
section_menu.append_item(Gio.MenuItem.new(label=_("Preferences"), detailed_action="app.preferences"))
@@ -317,59 +293,13 @@ class BavarderApplication(Adw.Application):
def on_about_action(self, widget, _):
"""Callback for the app.about action."""
about = Adw.AboutWindow(
transient_for=self.props.active_window,
application_name="Bavarder",
application_icon=app_id,
developer_name="0xMRTT",
developers=["0xMRTT https://github.com/0xMRTT"],
designers=["David Lapshin https://github.com/daudix-UFO"],
artists=["David Lapshin https://github.com/daudix-UFO"],
documenters=[],
translator_credits="""0xMRTT <0xmrtt@proton.me>
David Lapshin <ddaudix@gmail.com>
Morgan Antonsson <morgan.antonsson@gmail.com>
thepoladov13 <thepoladov@protonmail.com>
Muznyo <codeberg.vqtek@simplelogin.com>
Deimidis <gmovia@pm.me>
sjdonado <jsrd98@gmail.com>
artnay <jiri.gronroos@iki.fi>
Rene Coty <irenee.thirion@e.email>
galegovski <galegovski@outlook.com>""",
license_type=Gtk.License.GPL_3_0,
version=version,
website="https://bavarder.codeberg.page",
issue_url="https://github.com/Bavarder/Bavarder/issues",
support_url="https://codeberg.org/Bavarder/Bavarder/issues",
copyright="© 2023 0xMRTT",
)
about.add_acknowledgement_section(
"Special thanks to",
[
"Telegraph https://apps.gnome.org/app/io.github.fkinoshita.Telegraph",
"Apostrophe https://apps.gnome.org/app/org.gnome.gitlab.somas.Apostrophe",
],
)
about.set_debug_info(
f"""{app_id} {version}
Environment: {os.environ.get("XDG_CURRENT_DESKTOP", "Unknown")}
Gtk: {Gtk.MAJOR_VERSION}.{Gtk.MINOR_VERSION}.{Gtk.MICRO_VERSION}
Python: {platform.python_version()}
OS: {platform.system()} {platform.release()} {platform.version()}
Providers: {self.enabled_providers}
Use Theme: {self.use_theme}
Use Text View: {self.use_text_view}
Clear After Send: {self.clear_after_send}
Close All Without Dialog: {self.close_all_without_dialog}
"""
)
about.present()
about = BavarderAboutWindow(self.win)
about.show_about()
def on_preferences_action(self, widget, *args, **kwargs):
"""Callback for the app.preferences action."""
preferences = Preferences(
application=self, transient_for=self.props.active_window
parent=self.win
)
preferences.present()
@@ -447,8 +377,7 @@ Close All Without Dialog: {self.close_all_without_dialog}
self.win.web_view.set_hexpand(True)
self.win.web_view.set_vexpand(True)
self.win.response_stack.add_child(self.win.web_view)
self.win.response_stack.set_visible_child(self.win.web_view)
self.win.scrolled_response_window.set_child(self.win.web_view)
if self.win.web_view.is_loading():
self.win.web_view_pending_html = html
@@ -1070,8 +999,8 @@ Close All Without Dialog: {self.close_all_without_dialog}
}
}"""
CUSTOM_STYLE = """
--text-color: {card_fg_color};
--background-color: {card_bg_color};
--text-color: {view_fg_color};
--background-color: {view_bg_color};
--alt-background-color: {view_bg_color};
--link-color: {accent_fg_color};
--blockquote-text-color: {card_fg_color};
@@ -1086,8 +1015,8 @@ Close All Without Dialog: {self.close_all_without_dialog}
--kbd-shadow-color: #8c939a;
"""
DARK_CUSTOM_STYLE = """
--text-color: {card_fg_color};
--background-color: {card_bg_color};
--text-color: {view_fg_color};
--background-color: {view_bg_color};
--alt-background-color: {view_bg_color};
--link-color: {accent_fg_color};
--blockquote-text-color: {card_fg_color};
@@ -1106,34 +1035,42 @@ Close All Without Dialog: {self.close_all_without_dialog}
self.use_theme = True
variables, palette, css = self.parse_css(os.path.expanduser("~/.config/gtk-4.0/gtk.css"))
variables["card_fg_color"] = variables.get("card_fg_color", "#2e3436")
variables["view_fg_color"] = variables.get("view_fg_color", "#2e3436")
variables["dark_3"] = variables.get("dark_3", "#3d3846")
variables["card_bg_color"] = variables.get("card_bg_color", "#f6f5f4")
variables["view_bg_color"] = variables.get("view_bg_color", "#edeeef")
variables["accent_fg_color"] = variables.get("accent_fg_color", "#0d71de")
variables["headerbar_border_color"] = variables.get("headerbar_border_color", "#e1e2e4")
variables["headerbar_bg_color"] = variables.get("headerbar_bg_color", "#d8dadd")
theme_css = ":root {\n" + CUSTOM_STYLE.format(**variables) + " \n}\n" + "@media (prefers-color-scheme: dark) {\n:root {\n" + \
DARK_CUSTOM_STYLE.format(**variables) + "\n}\n}\n" + css
DARK_CUSTOM_STYLE.format(**variables) + "\n}\n}\n"
print(theme_css)
theme_css += css
else:
self.use_theme = False
theme_css = ADWAITA_STYLE
self.show(TEMPLATE.replace("{response}", response).replace("{theme_css}", theme_css), Step.LOAD_WEBVIEW)
else:
self.win.bot_text_view.get_buffer().props.text = response
self.win.response_stack.set_visible_child_name("page_response")
def on_ask_action(self, widget, _):
"""Callback for the app.ask action."""
self.win.banner.set_revealed(False)
for an in self.annoucements.values():
for key, an in self.annoucements.items():
if an["provider"] == self.provider:
if an["status"] == "open":
self.win.banner.set_title(an["message"])
self.win.banner.props.button_label = "Open settings"
self.win.banner.connect("button-clicked", self.on_preferences_action)
self.win.banner.set_revealed(True)
return
match an["action"]:
case "error": # show an error banner with a button to open settings
self.win.banner.set_title(an["message"])
self.win.banner.props.button_label = "Open settings"
self.win.banner.connect("button-clicked", self.on_preferences_action)
self.win.banner.set_revealed(True)
case _:
self.win.banner.set_title(an["message"])
self.win.banner.set_revealed(True)
del self.annoucements[key]
break
self.prompt = self.win.prompt_text_view.get_buffer().props.text.strip()
@@ -1141,9 +1078,13 @@ Close All Without Dialog: {self.close_all_without_dialog}
if self.prompt == "" or self.prompt is None: # empty prompt
return
else:
self.win.spinner = Gtk.Spinner()
self.win.spinner.set_margin_top(8)
self.win.spinner.set_margin_bottom(8)
self.win.spinner.set_margin_start(8)
self.win.spinner.set_margin_end(8)
self.win.ask_button.set_child(self.win.spinner)
self.win.spinner.start()
self.win.ask_button.set_visible(False)
self.win.wait_button.set_visible(True)
self.win.stop_button.set_visible(True)
def thread_run():
@@ -1151,12 +1092,13 @@ Close All Without Dialog: {self.close_all_without_dialog}
response = self.providers[self.provider].ask(self.prompt)
except GLib.Error as e:
response = e.message
except KeyError:
del self.providers[self.provider]
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)
self.win.ask_button.set_icon_name("paper-plane-symbolic")
self.win.stop_button.set_visible(False)
GLib.idle_add(self.update_response, response)
self.t.join()

View File

@@ -24,10 +24,11 @@ configure_file(
bavarder_sources = [
'__init__.py',
'main.py',
'preferences.py',
'window.py',
'threading.py',
]
PY_INSTALLDIR.install_sources(bavarder_sources, subdir: moduledir)
subdir('provider')
subdir('providers')
subdir('views')
subdir('widgets')

View File

@@ -1,54 +0,0 @@
from .base import BavarderProvider
from hgchat import HGChat
import socket
import requests
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)
try:
self.chat = HGChat(self.model)
except requests.exceptions.ConnectionError:
pass
def ask(self, prompt):
try:
response = self.chat.ask(prompt)
except socket.gaierror:
self.no_connection()
return ""
except Exception as e:
self.win.banner.props.title = str(e)
self.win.banner.props.button_label = ""
self.win.banner.set_revealed(True)
return ""
else:
self.win.banner.set_revealed(False)
r = ""
for i in response:
char = i["token"]["text"]
if char == "</s>":
r += "\n"
else:
r += char
GLib.idle_add(self.update_response, r)
return r
@property
def require_api_key(self):
return False
def save(self):
return {}
def load(self, data):
pass

View File

@@ -1,98 +0,0 @@
from .base import BavarderProvider
import openai
import socket
from gi.repository import Gtk, Adw, GLib
class BaseOpenAIProvider(BavarderProvider):
name = None
slug = None
model = None
version = "0.1.0"
api_key_title = "API Key"
url = "https://bavarder.codeberg.page/help/openai"
def __init__(self, win, app, *args, **kwargs):
super().__init__(win, app, *args, **kwargs)
self.chat = openai.ChatCompletion
self.pref_win = None
def ask(self, prompt):
prompt = self.chunk(prompt)
try:
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 ""
except openai.error.InvalidRequestError:
self.win.banner.props.title = "You don't have access to this model"
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()
GLib.idle_add(self.update_response, response)
return response
@property
def require_api_key(self):
return True
def preferences(self, win):
self.pref_win = win
self.expander = Adw.ExpanderRow()
self.expander.props.title = self.name
self.expander.add_action(self.about()) # TODO: in Adw 1.4, use add_suffix
self.expander.add_action(self.enable_switch())
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.api_row.add_suffix(self.how_to_get_a_token())
self.expander.add_row(self.api_row)
return self.expander
def on_apply(self, widget):
self.hide_banner()
api_key = self.api_row.get_text()
openai.api_key = api_key
def save(self):
return {"api_key": openai.api_key}
def load(self, data):
if data["api_key"]:
openai.api_key = data["api_key"]

View File

@@ -1,7 +0,0 @@
from .huggingchatbase import BaseHuggingChatProvider
class StarCoderProvider(BaseHuggingChatProvider):
name = "Star Coder"
slug = "starcoder"
model = "bigcode/starcoder"

View File

@@ -1,19 +1,20 @@
from .huggingchat import HuggingChatProvider
# from .huggingchat import HuggingChatProvider
from .baichat import BAIChatProvider
from .openaigpt35turbo import OpenAIGPT35TurboProvider
from .openaigpt4 import OpenAIGPT4Provider
from .openaicustom import OpenAICustomProvider, LocalModel
from .catgpt import CatGPTProvider
from .openaitextdavinci003 import OpenAITextDavinci003
from .alpacalora import AlpacaLoRAProvider
from .hfgoogleflant5xxl import HuggingFaceGoogleFlanT5XXLProvider
from .hfgoogleflanu12 import HuggingFaceGoogleFlanU12Provider
from .hfopenassistantsft1pythia12b import HuggingFaceOpenAssistantSFT1PythiaProvider
from .hfopenassistantsft1pythia12b import HuggingFaceOpenAssistantSFT1PythiaProvider, HuggingChatMask
from .hfgpt2 import HuggingFaceGPT2Provider
from .hfdialogpt import HuggingFaceDialoGPTLargeProvider
from .bard import BardProvider
# from .bard import BardProvider
from .hfgpt2large import HuggingFaceGPT2LargeProvider
from .hfgpt2xl import HuggingFaceGPT2XLProvider
from .starcoder import StarCoderProvider
from .stablelm import StableLMProvider
PROVIDERS = {
"alpacalora": AlpacaLoRAProvider,
@@ -27,9 +28,11 @@ PROVIDERS = {
"hfgpt2large": HuggingFaceGPT2LargeProvider,
"hfgpt2xl": HuggingFaceGPT2XLProvider,
"hfopenassistantsft1pythia12b": HuggingFaceOpenAssistantSFT1PythiaProvider,
"huggingchat": HuggingChatProvider,
"huggingchat": HuggingChatMask, # hugging chat is replaced by open assistant
"local": LocalModel,
"openaicustom": OpenAICustomProvider,
"openaigpt35turbo": OpenAIGPT35TurboProvider,
"openaigpt4": OpenAIGPT4Provider,
"openaitextdavinci003": OpenAITextDavinci003,
"starcoder": StarCoderProvider,
"stablelm": StableLMProvider,
}

View File

@@ -1,6 +1,6 @@
from .base import BavarderProvider
from baichat_py import BAIChat
from baichat_py import Completion
import socket
from gi.repository import Gtk, Adw, GLib
@@ -12,11 +12,13 @@ class BAIChatProvider(BavarderProvider):
def __init__(self, win, app, *args, **kwargs):
super().__init__(win, app, *args, **kwargs)
self.chat = BAIChat(sync=True)
def ask(self, prompt):
try:
response = self.chat.sync_ask(prompt)
response = ""
for token in Completion.create(prompt):
response += token
GLib.idle_add(self.update_response, response)
except KeyError:
self.win.banner.set_revealed(False)
return ""
@@ -25,8 +27,8 @@ class BAIChatProvider(BavarderProvider):
return ""
else:
self.win.banner.set_revealed(False)
GLib.idle_add(self.update_response, response.text)
return response.text
GLib.idle_add(self.update_response, response)
return response
@property
def require_api_key(self):

View File

@@ -11,7 +11,7 @@ class BardProvider(BavarderProvider):
name = "Bard"
slug = "bard"
version = "0.1.0"
url = "https://bavarder.codeberg.page/docs/providers/bard.html"
url = "https://bavarder.codeberg.page/help/bavarder"
def __init__(self, win, app, *args, **kwargs):
super().__init__(win, app, *args, **kwargs)

View File

@@ -78,7 +78,7 @@ class BavarderProvider:
about_button = Gtk.MenuButton()
about_button.set_icon_name("help-about-symbolic")
about_button.set_tooltip_text("About provider")
about_button.set_tooltip_text(_("About provider"))
about_button.add_css_class("flat")
about_button.set_valign(Gtk.Align.CENTER)
about_button.set_popover(popover)
@@ -92,7 +92,7 @@ class BavarderProvider:
def how_to_get_a_token(self):
about_button = Gtk.Button()
about_button.set_icon_name("dialog-information-symbolic")
about_button.set_tooltip_text("How to get a token")
about_button.set_tooltip_text(_("How to get a token"))
about_button.add_css_class("flat")
about_button.set_valign(Gtk.Align.CENTER)
about_button.connect("clicked", self.open_documentation)
@@ -115,7 +115,7 @@ class BavarderProvider:
self.expander.add_action(self.enable_switch())
self.no_pref_row = Adw.ActionRow()
self.no_pref_row.props.title = "No preferences available"
self.no_pref_row.props.title = _("No preferences available")
self.expander.add_row(self.no_pref_row)
return self.expander

View File

@@ -6,7 +6,7 @@ from gi.repository import Gtk, Adw, GLib
class CatGPTProvider(BavarderProvider):
name = _("CatGPT")
name = "CatGPT"
slug = "catgpt"
description = "🐱️"
version = "0.1.0"

64
src/providers/gradio.py Normal file
View File

@@ -0,0 +1,64 @@
import requests
import json
from .base import BavarderProvider
import socket
from gi.repository import Gtk, Adw, GLib
from gradio_client import Client
class BaseGradioProvider(BavarderProvider):
name = None
slug = None
url = None
def __init__(self, win, app, *args, **kwargs):
super().__init__(win, app, *args, **kwargs)
self.client = Client(self.url)
def ask(self, prompt):
print("ASKING " + "="*100)
try:
response = self.client.predict(
prompt, # str representing string value in 'Chat Message Box' Textbox component
fn_index=0
)
print(response)
except Exception as e:
print(e)
self.win.banner.props.title = str(e)
self.win.banner.props.button_label = ""
self.win.banner.set_revealed(True)
else:
self.hide_banner()
GLib.idle_add(self.update_response, response)
return response
@property
def require_api_key(self):
return False
def preferences(self, win):
if self.require_api_key:
self.expander = Adw.ExpanderRow()
self.expander.props.title = self.name
self.expander.add_action(self.about())
self.expander.add_action(self.enable_switch())
# TODO: ADD DEVICE
return self.expander
else:
return self.no_preferences(win)
def on_apply(self, widget):
self.hide_banner()
def save(self):
return {}
def load(self, data):
pass

View File

@@ -46,4 +46,9 @@ class HuggingFaceOpenAssistantSFT1PythiaProvider(BaseHFProvider):
self.hide_banner()
print(response)
GLib.idle_add(self.update_response, response)
return response
return response
class HuggingChatMask(HuggingFaceOpenAssistantSFT1PythiaProvider):
url = "https://bavarder.codeberg.page/help/huggingchat"
name = "Open-Assistant SFT-1 12B Model (HuggingChat)"
slug = "huggingchat"

View File

@@ -0,0 +1,92 @@
from .base import BavarderProvider
from hugchat import hugchat
import socket
import requests
import json
from gi.repository import Gtk, Adw, GLib
class BaseHuggingChatProvider(BavarderProvider):
name = "Hugging Chat"
slug = "huggingchat"
model = None
url = "https://bavarder.codeberg.page/help/huggingchat"
cookies = {}
def __init__(self, win, app, *args, **kwargs):
super().__init__(win, app, *args, **kwargs)
def ask(self, prompt):
print(self.cookies)
try:
self.chat = hugchat.ChatBot(cookies=self.cookies) # or cookies=[...]
print(self.chat)
print(self.cookies)
except Exception as e:
print(e)
self.win.banner.props.title = str(e)
self.win.banner.props.button_label = ""
self.win.banner.set_revealed(True)
return ""
else:
try:
response = self.chat.chat(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 True
def preferences(self, win):
self.pref_win = win
self.expander = Adw.ExpanderRow()
self.expander.props.title = self.name
self.expander.add_action(self.about()) # TODO: in Adw 1.4, use add_suffix
self.expander.add_action(self.enable_switch())
self.api_row = Adw.EntryRow()
self.api_row.connect("apply", self.on_apply)
self.api_row.props.text = str(self.cookies) or ""
self.api_row.props.title = "Cookies"
self.api_row.set_show_apply_button(True)
self.api_row.add_suffix(self.how_to_get_a_token())
self.expander.add_row(self.api_row)
return self.expander
def on_apply(self, widget):
self.hide_banner()
cookies = self.api_row.get_text()
print("cookies", cookies)
self.cookies = json.loads(cookies)
print("Applied cookies", self.cookies)
def save(self):
print(self.cookies)
print("Saved cookies", self.cookies)
return self.cookies
def load(self, data):
self.cookies = data

View File

@@ -6,6 +6,7 @@ import socket
from gi.repository import Gtk, Adw, GLib
# from text_generation import InferenceAPIClient
class BaseHFProvider(BavarderProvider):
name = None
@@ -16,6 +17,7 @@ class BaseHFProvider(BavarderProvider):
def __init__(self, win, app, *args, **kwargs):
super().__init__(win, app, *args, **kwargs)
self.api_key = None
# self.client = InferenceAPIClient(self.model)
def ask(self, prompt):
try:
@@ -43,6 +45,11 @@ class BaseHFProvider(BavarderProvider):
except socket.gaierror:
self.no_connection()
return ""
except Exception as e:
print(e)
self.win.banner.props.title = str(e)
self.win.banner.props.button_label = ""
self.win.banner.set_revealed(True)
else:
self.hide_banner()
print(response)
@@ -63,7 +70,7 @@ class BaseHFProvider(BavarderProvider):
self.api_row = Adw.PasswordEntryRow()
self.api_row.connect("apply", self.on_apply)
self.api_row.props.title = "API Key"
self.api_row.props.title = _("API Key")
self.api_row.props.text = self.api_key or ""
self.api_row.add_suffix(self.how_to_get_a_token())
self.api_row.set_show_apply_button(True)

View File

@@ -1,13 +1,14 @@
providers_dir = join_paths(moduledir, 'provider')
providers_dir = join_paths(moduledir, 'providers')
providers_sources = [
'__init__.py',
'alpacalora.py',
'baichat.py',
'bard.py',
# 'bard.py',
'base.py',
'catgpt.py',
'gradio.py',
'hfdialogpt.py',
'hfgoogleflant5xxl.py',
'hfgoogleflanu12.py',
@@ -15,14 +16,17 @@ providers_sources = [
'hfgpt2large.py',
'hfgpt2xl.py',
'hfopenassistantsft1pythia12b.py',
'huggingchat.py',
'huggingchatbase.py',
# 'huggingchat.py',
# 'huggingchatbase.py',
'huggingface.py',
'openai.py',
'openaicustom.py',
'openaigpt4.py',
'openaigpt35turbo.py',
'openaitextdavinci003.py',
'stablelm.py',
'starcoder.py',
'transformer.py',
]
PY_INSTALLDIR.install_sources(providers_sources, subdir: providers_dir)

130
src/providers/openai.py Normal file
View File

@@ -0,0 +1,130 @@
from .base import BavarderProvider
import openai
import socket
from gi.repository import Gtk, Adw, GLib
class BaseOpenAIProvider(BavarderProvider):
name = None
slug = None
model = None
version = "0.1.0"
api_key_title = "API Key"
url = "https://bavarder.codeberg.page/help/openai"
def __init__(self, win, app, *args, **kwargs):
super().__init__(win, app, *args, **kwargs)
self.chat = openai.ChatCompletion
self.pref_win = None
def ask(self, prompt):
if self.model:
prompt = self.chunk(prompt)
try:
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 ""
except openai.error.InvalidRequestError:
self.win.banner.props.title = _("You don't have access to this model")
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 openai.error.APIError:
self.win.banner.props.title = _("API Error")
self.win.banner.props.button_label = ""
self.win.banner.set_revealed(True)
except socket.gaierror:
self.no_connection()
return ""
else:
self.hide_banner()
GLib.idle_add(self.update_response, response)
return response
else:
self.no_api_key(title=_("No model selected, you can choose one in preferences"))
return ""
@property
def require_api_key(self):
return True
def preferences(self, win):
self.pref_win = win
self.expander = Adw.ExpanderRow()
self.expander.props.title = self.name
self.expander.add_action(self.about()) # TODO: in Adw 1.4, use add_suffix
self.expander.add_action(self.enable_switch())
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.api_row.add_suffix(self.how_to_get_a_token())
self.expander.add_row(self.api_row)
self.api_url_row = Adw.EntryRow()
self.api_url_row.connect("apply", self.on_apply)
self.api_url_row.props.text = openai.api_base or ""
self.api_url_row.props.title = "API Url"
self.api_url_row.set_show_apply_button(True)
self.api_url_row.add_suffix(self.how_to_get_base_url())
self.expander.add_row(self.api_url_row)
return self.expander
def on_apply(self, widget):
self.hide_banner()
api_key = self.api_row.get_text()
openai.api_key = api_key
openai.api_base = self.api_url_row.get_text()
def save(self):
return {
"api_key": openai.api_key,
"api_base": openai.api_base,
}
def load(self, data):
if data["api_key"]:
openai.api_key = data["api_key"]
if data["api_base"]:
openai.api_base = data["api_base"]
def how_to_get_base_url(self):
about_button = Gtk.Button()
about_button.set_icon_name("dialog-information-symbolic")
about_button.set_tooltip_text("How to choose base url")
about_button.add_css_class("flat")
about_button.set_valign(Gtk.Align.CENTER)
about_button.connect("clicked", self.open_documentation)
return about_button

View File

@@ -0,0 +1,89 @@
from .openai import BaseOpenAIProvider
from gi.repository import Gtk, Adw, GLib
import openai
class OpenAICustomProvider(BaseOpenAIProvider):
name = "OpenAI Custom Model"
slug = "openaicustom"
api_base = ""
def preferences(self, win):
self.pref_win = win
self.expander = Adw.ExpanderRow()
self.expander.props.title = self.name
self.expander.add_action(self.about()) # TODO: in Adw 1.4, use add_suffix
self.expander.add_action(self.enable_switch())
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.api_row.add_suffix(self.how_to_get_a_token())
self.expander.add_row(self.api_row)
self.api_url_row = Adw.EntryRow()
self.api_url_row.connect("apply", self.on_apply)
self.api_url_row.props.text = self.api_base or ""
self.api_url_row.props.title = _("API Url")
self.api_url_row.set_show_apply_button(True)
self.api_url_row.add_suffix(self.how_to_get_a_token())
self.expander.add_row(self.api_url_row)
self.model_row = Adw.EntryRow()
self.model_row.connect("apply", self.on_apply)
self.model_row.props.title = _("Model")
if self.model:
self.model_row.props.text = str(self.model)
else:
print("No model")
self.model_row.props.text = ""
self.model_row.add_suffix(self.how_to_choose_model())
self.model_row.set_show_apply_button(True)
self.expander.add_row(self.model_row)
return self.expander
def on_apply(self, widget):
self.hide_banner()
api_key = self.api_row.get_text()
openai.api_key = api_key
self.api_base = self.api_url_row.get_text()
openai.api_base = self.api_base
self.model = str(self.model_row.get_text())
def save(self):
return {
"api_key": openai.api_key,
"api_base": self.api_base,
"model": self.model,
}
def load(self, data):
if data["api_key"]:
openai.api_key = data["api_key"]
else:
openai.api_key = ""
if data["api_base"]:
self.api_base = data["api_base"]
openai.api_base = self.api_base
if data["model"]:
self.model = data["model"]
def how_to_choose_model(self):
about_button = Gtk.Button()
about_button.set_icon_name("dialog-information-symbolic")
about_button.set_tooltip_text(_("How to choose a model"))
about_button.add_css_class("flat")
about_button.set_valign(Gtk.Align.CENTER)
about_button.connect("clicked", self.open_documentation)
return about_button
class LocalModel(OpenAICustomProvider):
name = "Local Model"
slug = "local"
url = "https://bavarder.codeberg.page/help/local" # just for the url :)

View File

@@ -0,0 +1,6 @@
from .huggingface import BaseHFProvider
class StableLMProvider(BaseHFProvider):
name = "StableLM"
slug = "stablelm"
model = "stabilityai/stablelm-tuned-alpha-3b"

View File

@@ -0,0 +1,7 @@
from .transformer import BaseTransformerProvider
class StarCoderProvider(BaseTransformerProvider):
name = "Star Coder"
slug = "starcoder"
checkpoint = "bigcode/starcoder"

View File

@@ -0,0 +1,89 @@
import requests
import json
from .base import BavarderProvider
import socket
from gi.repository import Gtk, Adw, GLib
from transformers import AutoModelForCausalLM, AutoTokenizer
class BaseTransformerProvider(BavarderProvider):
name = None
slug = None
checkpoint = None
device = "cpu"
is_setup = False
api_key = None
def __init__(self, win, app, *args, **kwargs):
super().__init__(win, app, *args, **kwargs)
def setup(self):
try:
if self.require_api_key:
self.tokenizer = AutoTokenizer.from_pretrained(self.checkpoint, use_auth_token=self.api_key)
else:
self.tokenizer = AutoTokenizer.from_pretrained(self.checkpoint)
self.model = AutoModelForCausalLM.from_pretrained(self.checkpoint).to(self.device)
except Exception as e:
print(e)
self.win.banner.props.title = str(e)
self.win.banner.props.button_label = ""
self.win.banner.set_revealed(True)
else:
self.is_setup = True
def ask(self, prompt):
self.setup()
if self.is_setup:
try:
inputs = self.tokenizer.encode(prompt, return_tensors="pt").to(self.device)
outputs = self.model.generate(inputs)
response = self.tokenizer.decode(outputs[0])
except Exception as e:
print(e)
self.win.banner.props.title = str(e)
self.win.banner.props.button_label = ""
self.win.banner.set_revealed(True)
else:
self.hide_banner()
GLib.idle_add(self.update_response, response)
return response
@property
def require_api_key(self):
return True
def preferences(self, win):
if self.require_api_key:
self.expander = Adw.ExpanderRow()
self.expander.props.title = self.name
self.expander.add_action(self.about())
self.expander.add_action(self.enable_switch())
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.add_suffix(self.how_to_get_a_token())
self.api_row.set_show_apply_button(True)
self.expander.add_row(self.api_row)
return self.expander
else:
return self.no_preferences(win)
def on_apply(self, widget):
self.hide_banner()
self.api_key = self.api_row.get_text()
def save(self):
if self.require_api_key:
return {"api_key": self.api_key}
return {}
def load(self, data):
if self.require_api_key:
self.api_key = data["api_key"]

32
src/threading.py Normal file
View File

@@ -0,0 +1,32 @@
import threading
import sys
class KillableThread(threading.Thread):
def __init__(self, *args, **keywords):
threading.Thread.__init__(self, *args, **keywords)
self.killed = False
def start(self):
self.__run_backup = self.run
self.run = self.__run
threading.Thread.start(self)
def __run(self):
sys.settrace(self.globaltrace)
self.__run_backup()
self.run = self.__run_backup
def globaltrace(self, frame, event, arg):
if event == 'call':
return self.localtrace
else:
return None
def localtrace(self, frame, event, arg):
if self.killed:
if event == 'line':
raise SystemExit()
return self.localtrace
def kill(self):
self.killed = True

0
src/views/__init__.py Normal file
View File

76
src/views/about_window.py Normal file
View File

@@ -0,0 +1,76 @@
from gi.repository import Gtk, Adw
from bavarder import constants
import os
import platform
# TRANSLATORS: This is a place to put your credits (formats:
# "Name https://example.com" or "Name <email@example.com>",
# no quotes) and is not meant to be translated literally.
translator_credits = _("translator-credits")
class BavarderAboutWindow:
def __init__(self, parent):
self.parent = parent
self.app = self.parent.get_application()
self.setup()
def setup(self):
self.about_window = Adw.AboutWindow(
application_name="Bavarder",
transient_for=self.app.get_active_window(),
application_icon=constants.app_id,
developer_name=_("0xMRTT"),
website=constants.project_url,
support_url=constants.help_url,
issue_url=constants.bugtracker_url,
developers=[
"0xMRTT https://github.com/0xMRTT",
],
documenters=[
"0xMRTT https://github.com/0xMRTT",
],
designers=[
"David Lapshin https://github.com/daudix-UFO"
],
artists=[
"David Lapshin https://github.com/daudix-UFO"
],
translator_credits=_(translator_credits),
copyright=_("Copyright © 2023 0xMRTT"),
license_type=Gtk.License.GPL_3_0,
version=constants.version,
release_notes_version=constants.rel_ver,
)
self.about_window.add_acknowledgement_section(
"Special thanks to",
[
"Telegraph https://apps.gnome.org/app/io.github.fkinoshita.Telegraph",
"Apostrophe https://apps.gnome.org/app/org.gnome.gitlab.somas.Apostrophe",
],
)
self.about_window.set_debug_info(
f"""{constants.app_id} {constants.version}
Environment: {os.environ.get("XDG_CURRENT_DESKTOP", "Unknown")}
Gtk: {Gtk.MAJOR_VERSION}.{Gtk.MINOR_VERSION}.{Gtk.MICRO_VERSION}
Python: {platform.python_version()}
OS: {platform.system()} {platform.release()} {platform.version()}
Providers: {self.app.enabled_providers}
Use Theme: {self.app.use_theme}
Use Text View: {self.app.use_text_view}
Clear After Send: {self.app.clear_after_send}
Close All Without Dialog: {self.app.close_all_without_dialog}
Current Provider: {self.app.provider}
"""
)
self.about_window.present()
def show_about(self):
self.about_window.present()

View File

@@ -1,25 +1,7 @@
# window.py
#
# Copyright 2023 Me
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# SPDX-License-Identifier: GPL-3.0-or-later
from gi.repository import Adw
from gi.repository import Gtk, Gio
from gi.repository import Adw, Gtk, Gio
from bavarder.constants import app_id, build_type
@Gtk.Template(resource_path="/io/github/Bavarder/Bavarder/ui/window.ui")
class BavarderWindow(Adw.ApplicationWindow):
@@ -27,12 +9,9 @@ class BavarderWindow(Adw.ApplicationWindow):
toast_overlay = Gtk.Template.Child()
prompt_text_view = Gtk.Template.Child()
spinner = Gtk.Template.Child()
ask_button = Gtk.Template.Child()
wait_button = Gtk.Template.Child()
scrolled_response_window = Gtk.Template.Child()
bot_text_view = Gtk.Template.Child()
response_stack = Gtk.Template.Child()
banner = Gtk.Template.Child()
stop_button = Gtk.Template.Child()
# listen = Gtk.Template.Child()
@@ -46,13 +25,16 @@ class BavarderWindow(Adw.ApplicationWindow):
def __init__(self, **kwargs):
super().__init__(**kwargs)
app = kwargs.get('application')
if app is None:
raise ValueError("Application should be passed to ImaginerWindow")
self.app = app
self.app = Gtk.Application.get_default()
self.settings = Gio.Settings(schema_id=app_id)
self.settings = Gio.Settings(schema_id="io.github.Bavarder.Bavarder")
self.setup_signals()
self.setup_window_props()
self.setup()
def setup_window_props(self):
self.settings.bind(
"width", self, "default-width", Gio.SettingsBindFlags.DEFAULT
)
@@ -65,3 +47,21 @@ class BavarderWindow(Adw.ApplicationWindow):
self.settings.bind(
"is-fullscreen", self, "fullscreened", Gio.SettingsBindFlags.DEFAULT
)
def setup_signals(self):
self.connect("close-request",
self.on_close_request)
def setup(self):
# Set devel style
if build_type == "debug":
self.get_style_context().add_class("devel")
def on_close_request(self, *args):
self.settings.set_strv("enabled-providers", list(self.app.enabled_providers))
self.settings.set_string("latest-provider", self.app.provider)
self.app.save_providers()
self.close()

11
src/views/meson.build Normal file
View File

@@ -0,0 +1,11 @@
views_dir = join_paths(moduledir, 'views')
views_sources = [
'__init__.py',
'about_window.py',
'main_window.py',
'preferences_window.py',
]
PY_INSTALLDIR.install_sources(views_sources, subdir: views_dir)

View File

@@ -1,6 +1,8 @@
from gi.repository import Gtk, Adw
from gi.repository import Gtk, Adw, Gio
from .provider import PROVIDERS
from bavarder.constants import app_id
from bavarder.providers import PROVIDERS
@Gtk.Template(resource_path="/io/github/Bavarder/Bavarder/ui/preferences.ui")
@@ -13,11 +15,23 @@ class Preferences(Adw.PreferencesWindow):
close_all_without_dialog_switch = Gtk.Template.Child()
allow_remote_fetching_switch = Gtk.Template.Child()
def __init__(self, application, **kwargs):
def __init__(self, parent, **kwargs):
super().__init__(**kwargs)
self.app = application
self.settings = application.settings
self.parent = parent
self.settings = parent.settings
self.app = self.parent.get_application()
self.win = self.app.get_active_window()
self.set_transient_for(self.win)
self.setup()
def setup(self):
self.setup_signals()
def setup_signals(self):
self.clear_after_send_switch.set_active(self.app.clear_after_send)
self.clear_after_send_switch.connect(
@@ -72,6 +86,7 @@ class Preferences(Adw.PreferencesWindow):
"""Callback for the allow_remote_fetching_switch toggled event."""
if widget.get_active():
self.settings.set_boolean("allow-remote-fetching", True)
self.app.load_annoucements()
self.app.allow_remote_fetching = True
else:
self.settings.set_boolean("allow-remote-fetching", False)
@@ -88,9 +103,11 @@ class Preferences(Adw.PreferencesWindow):
# row.props.title = "No providers available"
# self.provider_group.add(row)
for provider in PROVIDERS.values():
try:
if provider.slug in self.app.providers:
self.provider_group.add(
provider(self.app.win, self.app).preferences(self)
self.app.providers[provider.slug].preferences(win=self.app.win)
)
else:
self.provider_group.add(
provider(self.app.win, self.app).preferences(win=self.app.win)
)
except TypeError:
pass

0
src/widgets/__init__.py Normal file
View File

9
src/widgets/meson.build Normal file
View File

@@ -0,0 +1,9 @@
widgets_dir = join_paths(moduledir, 'widgets')
widgets_sources = [
'__init__.py',
'message_bubble.py',
]
PY_INSTALLDIR.install_sources(widgets_sources, subdir: widgets_dir)

View File

@@ -0,0 +1,59 @@
from gi.repository import Adw, Gtk, Gio
from bavarder.constants import app_id, build_type
MAX_WIDTH = 400
@Gtk.Template(resource_path="/io/github/Bavarder/Bavarder/ui/message_bubble.ui")
class MessageBubble(Gtk.Box):
__gtype_name__ = "MessageBubble"
sender_label = Gtk.Template.Child()
message_reply_bin = Gtk.Template.Child()
prefix_bin = Gtk.Template.Child()
message_label = Gtk.Template.Child()
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.app = Gtk.Application.get_default()
# def measure(self, orientation, , for_size):
# # Limit the widget width
# if orientation == Gtk.Orientation.HORIZONTAL:
# minimum, natural, minimum_baseline, natural_baseline = \
# self.overlay.measure(orientation, for_size)
# return (
# minimum.min(MAX_WIDTH),
# natural.min(MAX_WIDTH),
# minimum_baseline,
# natural_baseline,
# )
# else:
# adjusted_for_size = for_size.min(MAX_WIDTH);
# self.overlay.measure(orientation, adjusted_for_size)
#
#
# def size_allocate(self, width, height, baseline):
# self.overlay.allocate(width, height, baseline, None)
#
# def request_mode(self):
# return Gtk.SizeRequestMode.HEIGHT_FOR_WIDTH
def set_label(self, label):
if label.is_empty():
self.message_label.set_label("")
self..message_label.set_visible(false)
self.remove_css_class("with-label")
else:
self.message_label.set_label(label)
self.message_label.set_visible(true)
self.add_css_class("with-label")