diff --git a/src/gui/AboutDialog.cpp b/src/gui/AboutDialog.cpp
index 7abd9059e..4b9fe5f85 100644
--- a/src/gui/AboutDialog.cpp
+++ b/src/gui/AboutDialog.cpp
@@ -49,6 +49,14 @@ static const QString aboutContributors = R"(
Igor Zinovik
Morgan Courbet
Sergiu Coroi
+ Chris Sohns
+ Kyle Kneitinger
+ Sergey Vilgelm
+ Roman Vaughan (NZSmartie)
+ Shmavon Gazanchyan
+ Riley Moses
+ Korbinian Schildmann
+ Andreas (nitrohorse)
Notable Code Contributions:
@@ -61,11 +69,15 @@ static const QString aboutContributors = R"(
- hifi (SSH Agent)
- ckieschnick (KeeShare)
- seatedscribe (CSV Import)
+ - Aetf (Secret Storage Server)
- brainplot (many improvements)
- kneitinger (many improvements)
- frostasm (many improvements)
- fonic (Entry Table View)
- kylemanna (YubiKey)
+ - c4rlo (Offline HIBP Checker)
+ - wolframroesler (HTML Exporter)
+ - mdaniel (OpVault Importer)
- keithbennett (KeePassHTTP)
- Typz (KeePassHTTP)
- denk-mal (KeePassHTTP)
@@ -75,7 +87,6 @@ static const QString aboutContributors = R"(
Patreon Supporters:
- - Ashura
- Alexanderjb
- Andreas Kollmann
- Richard Ames
@@ -83,77 +94,101 @@ static const QString aboutContributors = R"(
- Gregory Werbin
- Nuutti Toivola
- SLmanDR
+ - Ashura
- Tyler Gass
- Lionel Laské
- Dmitrii Galinskii
- Sergei Maximov
- John-Ivar
- Clayton Casciato
+ - John
+ - Darren
+ - Brad
+ - Mathieu Peltier
+ - Oleksii Aleksieiev
+ - Daniel Epp
+ - Gernot Premper
+ - Julian Stier
+ - gonczor
+ - Ruben Schade
+ - Esteban Martinez
+ - turin231
+ - judd
+ - Niels Ganser
Translations:
- - Arabic: AboShanab, Night1, kmutahar, muha_abdulaziz, omar.nsy
- - Basque: azken_tximinoa, Hey_neken
- - Bengali: codesmite
- - Burmese: Phyu
- - Catalan: capitantrueno, dsoms, mcus, raulua, ZJaume
- - Chinese (China): Biggulu, Brandon_c, Dy64, Felix2yu, Small_Ku, Z4HD,
- carp0129, ef6, holic, kikyous, kofzhanganguo, ligyxy, remonli, slgray, umi_neko, vc5
- - Chinese (Taiwan): BestSteve, MiauLightouch, Small_Ku, flachesis, gojpdchx,
- raymondtau, th3lusive, yan12125, ymhuang0808
- - Czech: DanielMilde, JosefVitu, awesomevojta, pavelb, tpavelek
- - Danish: nlkl, KalleDK, MannVera, alfabetacain, ebbe, thniels
- - Dutch: Bubbel, Dr.Default, apie, bartlibert, evanoosten, fvw, KnooL,
- srgvg, Vistaus, wanderingidea, Stephan_P, Zombaya1, e2jk, ovisicnarf, pietermj, rigrig,
- theniels17
- - English (UK): YCMHARHZ, rookwood01, throne3d
- - Esperanto: batisteo
- - Estonian: Hermanio
- - Finnish: artnay, Jarppi, MawKKe, petri, tomisalmi, hifi, varjolintu
- - French: yahoe.001, A1RO, Albynton, Cabirto, Fumble, Gui13, MartialBis,
- MrHeadwar, Nesousx, Raphi111, Scrat15, aghilas.messara, alexisju, b_mortgat, benoitbalon,
- bisaloo, e2jk, ebrious, frgnca, ggtr1138, gilbsgilbs, gtalbot, houdini, houdini69,
- iannick, jlutran, kyodev, lacnic, laetilodie, logut, mlpo, narzb, nekopep, pBouillon,
- plunkets, theodex, tl_pierre, wilfriedroset
- - German: origin_de, mithrial, andreas.maier, NotAName, Atalanttore,
- Hativ, muellerma, mircsicz, derhagen, Wyrrrd, mbetz, kflesch, nursoda, BasicBaer,
- mfernau77, for1real, joe776, waster, eth0, marcbone, mcliquid, transi_222, MarcEdinger,
- DavidHamburg, jensrutschmann, codejunky, vlenzer, montilo, antsas, rgloor, Calyrx,
- omnisome4, pcrcoding
- - Greek: magkopian, nplatis, tassos.b, xinomilo
- - Hungarian: bubu, meskobalazs, urbalazs, andras_tim
- - Indonesian: zk, bora_ach
- - Italian: the.sailor, VosaxAlo, tosky, seatedscribe, bovirus, Peo,
- NITAL, FranzMari, Gringoarg, amaxis, salvatorecordiano, duncanmid, lucaim
- - Japanese: masoo, metalic_cat, p2635, Shinichirou_Yamada,
- vargas.peniel, vmemjp, yukinakato, gojpdchx, saita
- - Korean: cancantun, peremen
- - Lithuanian: Moo, pauliusbaulius, rookwood101
- - Norweigian Bokmål: sattor, ysteinalver, jumpingmushroom,
- JardarBolin, eothred, torgeirf, haarek
- - Polish: keypress, konradmb, mrerexx, psobczak, SebJez, hoek
- - Portuguese: weslly, xendez
- - Portuguese (Brazil): danielbibit, guilherme__sr, Havokdan, fabiom,
- flaviobn, weslly, newmanisaac, rafaelnp, RockyTV, xendez, lucasjsoliveira, vitor895,
- mauri.andres, andersoniop
- - Portuguese (Portugal): American_Jesus, xendez, hds, arainho, a.santos,
- pfialho, smarquespt, mihai.ile, smiguel, lmagomes, xnenjm
- - Russian: Mogost, alexminza, KekcuHa, NcNZllQnHVU, ruslan.denisenko,
- agag11507, anm, cl0ne, JayDi85, RKuchma, Rakleed, vsvyatski, NetWormKido, DG,
- Mr.GreyWolf, VictorR2007, _nomoretears_, netforhack, denoos, wkill95, Shevchuk,
- talvind, artemkonenko, ShareDVI
- - Slovak: l.martinicky, Slavko, crazko, pecer
- - Spanish: gonrial, iglpdc, vsvyatski, Xlate1984, erinm, AndreachongB,
- piegope, lupa18, e2jk, capitantrueno, LeoBeltran, antifaz, Zranz, AdrianClv,
- EdwardNavarro, rodolfo.guagnini, NicolasCGN, caralu74, puchrojo, DarkHolme,
- pdinoto, masanchez5000, adolfogc, systurbed, mauri.andres, Bendhet, vargas.peniel,
- eliluminado, jojobrambs, pquin
- - Swedish: theschitz, Anders_Bergqvist, LIINdd, krklns, henziger,
- jpyllman, peron, Thelin, baxtex, zeroxfourc
- - Thai: arthit, rayg
- - Turkish: TeknoMobil, etc, SeLeNLeR, ethem578, cagries, N3pp
- - Ukrainian: brisk022, exlevan, chulivska, cl0ne, zoresvit,
- netforhack, ShareDVI
+ - العربية (Arabic): AboShanab, kmutahar, muha_abdulaziz, Night1, omar.nsy
+ - euskara (Basque): azken_tximinoa, Galaipa, Hey_neken
+ - বাংলা (Bengali): codesmite
+ - ဗမာစာ (Burmese): Snooooowwwwwman
+ - català (Catalan): antoniopolonio, capitantrueno, dsoms, MarcRiera, mcus, raulua, ZJaume
+ - 中文 (Chinese (Simplified)): Biggulu, Brandon_c, carp0129, Dy64, ef6, Felix2yu, hoilc, ivlioioilvi,
+ kikyous, kofzhanganguo, ligyxy, lxx4380, remonli, ShuiHuo, slgray, Small_Ku, snhun, umi_neko, vc5, Wylmer_Wang, Z4HD
+ - 中文 (台灣) (Chinese (Traditional)): BestSteve, flachesis, gojpdchx, ligyxy, MiauLightouch, plesry,
+ priv, raymondtau, Small_Ku, th3lusive, yan12125, ymhuang0808
+ - hrvatski jezik (Croatian): Halberd, mladenuzelac
+ - čeština (Czech): awesomevojta, DanielMilde, JosefVitu, pavelb, stps, tpavelek
+ - dansk (Danish): alfabetacain, ebbe, GimliDk, JakobPP, KalleDK, MannVera, nlkl, thniels
+ - Nederlands (Dutch): apie, bartlibert, Bubbel, bython, Dr.Default, e2jk, evanoosten, fourwood,
+ fvw, glotzbach, JCKalman, KnooL, ovisicnarf, pietermj, rigrig, srgvg, Stephan_P, stijndubrul, theniels17,
+ ThomasChurchman, Vistaus, wanderingidea, Zombaya1
+ - English (UK): CisBetter, rookwood101, spacemanspiff, throne3d, YCMHARHZ
+ - English (USA): alexandercrice, caralu74, cl0ne, DarkHolme, nguyenlekhtn, thedoctorsoad, throne3d
+ - Esperanto (Esperanto): batisteo
+ - eesti (Estonian): Hermanio
+ - suomi (Finnish): artnay, hif1, MawKKe, petri, tomisalmi, varjolintu
+ - français (French): A1RO, aghilas.messara, Albynton, alexisju, b_mortgat, Beatussum, benoitbalon,
+ bertranoel, bisaloo, Cabirto, Code2Mirabeau, e2jk, ebrious, frgnca, Fumble, ggtr1138, gilbsgilbs, gohuros, gtalbot,
+ Gui13, houdini, houdini69, iannick, jlutran, John.Mickael, kyodev, lacnic, laetilodie, logut, MartialBis, Maxime_J,
+ mlpo, Morgan, MrHeadwar, narzb, nekopep, Nesousx, pBouillon, Raphi111, Scrat15, TheFrenchGhosty, theodex, tl_pierre,
+ webafrancois, wilfriedroset, yahoe.001, zedentox
+ - Galego (Galician): enfeitizador
+ - Deutsch (German): andreas.maier, antsas, Atalanttore, BasicBaer, bwolkchen, Calyrx, codejunky,
+ DavidHamburg, derhagen, eth0, fahstat, for1real, Gyges, Hativ, hjonas, HoferJulian, janis91, jensrutschmann,
+ joe776, kflesch, man_at_home, marcbone, MarcEdinger, markusd112, Maxime_J, mbetz, mcliquid, mfernau77, mircsicz,
+ mithrial, montilo, MuehlburgPhoenix, muellerma, nautilusx, Nerzahd, Nightwriter, NotAName, nursoda, omnisome4,
+ origin_de, pcrcoding, PFischbeck, rgloor, rugk, ScholliYT, Silas_229, spacemanspiff, testarossa47, TheForcer,
+ transi_222, traschke, vlenzer, vpav, waster, wolfram.roesler, Wyrrrd
+ - ελληνικά (Greek): anvo, magkopian, nplatis, tassos.b, xinomilo
+ - עברית (Hebrew): shmag18
+ - magyar (Hungarian): andras_tim, bubu, meskobalazs, urbalazs
+ - Íslenska (Icelandic): MannVera
+ - Bahasa (Indonesian): achmad, bora_ach, zk
+ - Italiano (Italian): amaxis, bovirus, duncanmid, FranzMari, Gringoarg, lucaim, NITAL, Peo,
+ salvatorecordiano, seatedscribe, Stemby, the.sailor, tosky, VosaxAlo
+ - 日本語 (Japanese): gojpdchx, masoo, metalic_cat, p2635, saita, Shinichirou_Yamada, take100yen,
+ Umoxfo, vargas.peniel, vmemjp, WatanabeShint, yukinakato
+ - қазақ тілі (Kazakh): sotrud_nik
+ - 한국어 (Korean): cancantun, peremen
+ - latine (Latin): alexandercrice
+ - lietuvių kalba (Lithuanian): Moo, pauliusbaulius, rookwood101
+ - Norsk Bokmål (Norwegian Bokmål): eothred, haarek, JardarBolin, jumpingmushroom, sattor, torgeirf,
+ ysteinalver
+ - język polski (Polish): AreYouLoco, dedal123, hoek, keypress, konradmb, mrerexx, pabli, psobczak,
+ SebJez
+ - Português (Portuguese): weslly, xendez
+ - Português (Portuguese (Brazil)): andersoniop, danielbibit, fabiom, flaviobn, guilherme__sr,
+ Havokdan, lucasjsoliveira, mauri.andres, newmanisaac, rafaelnp, RockyTV, vitor895, weslly, xendez
+ - Português (Portuguese (Portugal)): a.santos, American_Jesus, arainho, hds, lmagomes, mihai.ile,
+ pfialho, smarquespt, smiguel, xendez, xnenjm
+ - Română (Romanian): alexminza, drazvan, polearnik
+ - русский (Russian): _nomoretears_, agag11507, alexminza, anm, artemkonenko, cl0ne, denoos, DG,
+ JayDi85, KekcuHa, Mogost, Mr.GreyWolf, MustangDSG, NcNZllQnHVU, netforhack, NetWormKido, Rakleed, RKuchma,
+ ruslan.denisenko, ShareDVI, Shevchuk, solodyagin, talvind, VictorR2007, vsvyatski, wkill95
+ - српски језик (Serbian): ArtBIT, oros
+ - Slovenčina (Slovak): Asprotes, crazko, l.martinicky, pecer, Slavko
+ - Español (Spanish): adolfogc, AdrianClv, AndreachongB, AndresQ, antifaz, Bendhet, capitantrueno,
+ caralu74, DarkHolme, e2jk, EdwardNavarro, eliluminado, erinm, gonrial, iglpdc, jojobrambs, LeoBeltran, lupa18,
+ masanchez5000, mauri.andres, NicolasCGN, Pablohn, pdinoto, picodotdev, piegope, pquin, puchrojo, rcalpha,
+ rodolfo.guagnini, systurbed, vargas.peniel, ventolinmono, vsvyatski, Xlate1984, zmzpa, Zranz
+ - Svenska (Swedish): 0x9fff00, Anders_Bergqvist, ArmanB, baxtex, eson, henziger, jpyllman, krklns,
+ LIINdd, malkus, peron, Thelin, theschitz, victorhggqvst, zeroxfourc
+ - ไทย (Thai): arthit, ben_cm, chumaporn.t, darika, digitalthailandproject, GitJirasamatakij,
+ muhammadmumean, nipattra, ordinaryjane, rayg, sirawat, Socialister, Wipanee
+ - Türkçe (Turkish): cagries, etc, ethem578, mcveri, N3pp, SeLeNLeR, TeknoMobil, Ven_Zallow
+ - Українська (Ukrainian): brisk022, chulivska, cl0ne, exlevan, m0stik, netforhack, paul_sm, ShareDVI,
+ zoresvit
)";
diff --git a/utils/transifex_translators.py b/utils/transifex_translators.py
new file mode 100644
index 000000000..6c79c13d2
--- /dev/null
+++ b/utils/transifex_translators.py
@@ -0,0 +1,79 @@
+#!/usr/bin/env python3
+import json
+import os
+
+# Download Transifex languages dump at: https://www.transifex.com/api/2/project/keepassxc/languages
+# Language information from https://www.wikiwand.com/en/List_of_ISO_639-1_codes and http://www.lingoes.net/en/translator/langcode.htm
+
+LANGS = {
+ "ar" : "العربية (Arabic)",
+ "bn" : "বাংলা (Bengali)",
+ "ca" : "català (Catalan)",
+ "cs" : "čeština (Czech)",
+ "da" : "dansk (Danish)",
+ "de" : "Deutsch (German)",
+ "el" : "ελληνικά (Greek)",
+ "en_GB" : "English (UK)",
+ "en_US" : "English (USA)",
+ "eo" : "Esperanto (Esperanto)",
+ "es" : "Español (Spanish)",
+ "et" : "eesti (Estonian)",
+ "eu" : "euskara (Basque)",
+ "fa" : "فارسی (Farsi)",
+ "fa_IR" : "فارسی (Farsi (Iran))",
+ "fi" : "suomi (Finnish)",
+ "fr" : "français (French)",
+ "gl" : "Galego (Galician)",
+ "he" : "עברית (Hebrew)",
+ "hr_HR" : "hrvatski jezik (Croatian)",
+ "hu" : "magyar (Hungarian)",
+ "id" : "Bahasa (Indonesian)",
+ "is_IS" : "Íslenska (Icelandic)",
+ "it" : "Italiano (Italian)",
+ "ja" : "日本語 (Japanese)",
+ "kk" : "қазақ тілі (Kazakh)",
+ "ko" : "한국어 (Korean)",
+ "la" : "latine (Latin)",
+ "lt" : "lietuvių kalba (Lithuanian)",
+ "lv" : "latviešu valoda (Latvian)",
+ "nb" : "Norsk Bokmål (Norwegian Bokmål)",
+ "nl_NL" : "Nederlands (Dutch)",
+ "my" : "ဗမာစာ (Burmese)",
+ "pa" : "ਪੰਜਾਬੀ (Punjabi)",
+ "pa_IN" : "ਪੰਜਾਬੀ (Punjabi (India))",
+ "pl" : "język polski (Polish)",
+ "pt" : "Português (Portuguese)",
+ "pt_BR" : "Português (Portuguese (Brazil))",
+ "pt_PT" : "Português (Portuguese (Portugal))",
+ "ro" : "Română (Romanian)",
+ "ru" : "русский (Russian)",
+ "sk" : "Slovenčina (Slovak)",
+ "sl_SI" : "Slovenščina (Slovenian)",
+ "sr" : "српски језик (Serbian)",
+ "sv" : "Svenska (Swedish)",
+ "th" : "ไทย (Thai)",
+ "tr" : "Türkçe (Turkish)",
+ "uk" : "Українська (Ukrainian)",
+ "zh_CN" : "中文 (Chinese (Simplified))",
+ "zh_TW" : "中文 (台灣) (Chinese (Traditional))",
+}
+
+TEMPLATE = "{0}: {1}\n"
+
+if not os.path.exists("languages.json"):
+ print("Could not find 'languages.json' in current directory!")
+ print("Save the output from https://www.transifex.com/api/2/project/keepassxc/languages")
+ exit(0)
+
+with open("languages.json") as json_file:
+ output = open("translators.html", "w", encoding="utf-8")
+ languages = json.load(json_file)
+ for lang in languages:
+ code = lang["language_code"]
+ if code not in LANGS:
+ print("WARNING: Could not find language code:", code)
+ continue
+ translators = ", ".join(sorted(lang["reviewers"] + lang["translators"], key=str.casefold))
+ output.write(TEMPLATE.format(LANGS[code], translators))
+ output.close()
+ print("Language translators written to 'translators.html'!")
\ No newline at end of file