gnucash master: Multiple changes pushed

John Ralls jralls at code.gnucash.org
Thu Apr 14 21:16:31 EDT 2022


Updated	 via  https://github.com/Gnucash/gnucash/commit/95487eb4 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/07fbcc0e (commit)
	 via  https://github.com/Gnucash/gnucash/commit/6ccd7741 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/022d2b08 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/baffae88 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/7bb576d2 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/677b585d (commit)
	 via  https://github.com/Gnucash/gnucash/commit/22985903 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/4e5932ac (commit)
	 via  https://github.com/Gnucash/gnucash/commit/1420368b (commit)
	 via  https://github.com/Gnucash/gnucash/commit/736d2231 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/d022651f (commit)
	 via  https://github.com/Gnucash/gnucash/commit/40d5db43 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/0c4d438a (commit)
	 via  https://github.com/Gnucash/gnucash/commit/aab33954 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/ebbf7565 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/8adedc22 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/c8f1caa9 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/6a668df1 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/fbaa416c (commit)
	 via  https://github.com/Gnucash/gnucash/commit/7b1c0509 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/7147e8a6 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/82634dd3 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/50df6b61 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/a4b18277 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/5ff0bc1b (commit)
	 via  https://github.com/Gnucash/gnucash/commit/26b009c0 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/3125352d (commit)
	 via  https://github.com/Gnucash/gnucash/commit/3df7bdf3 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/04bafdeb (commit)
	 via  https://github.com/Gnucash/gnucash/commit/ee8729df (commit)
	 via  https://github.com/Gnucash/gnucash/commit/11458bf8 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/842c4879 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/b9de1591 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/e75a2d21 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/b6d5cedd (commit)
	 via  https://github.com/Gnucash/gnucash/commit/9a50be4c (commit)
	 via  https://github.com/Gnucash/gnucash/commit/be8f798f (commit)
	 via  https://github.com/Gnucash/gnucash/commit/03e5d710 (commit)
	from  https://github.com/Gnucash/gnucash/commit/ae220b86 (commit)



commit 95487eb4a0d0ad73bc83c5641aff81a860abc9fd
Merge: ae220b86a 07fbcc0e9
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Apr 14 18:02:17 2022 -0700

    Merge branch 'maint'
    
    # Conflicts:
    #       gnucash/gnome/window-reconcile2.c
    #       libgnucash/app-utils/options.scm
    #       libgnucash/engine/gnc-numeric.cpp


commit 07fbcc0e9e02519c09dbd3c101ab0aac0dfbfe1b
Author: 154pinkchairs <ovehis at riseup.net>
Date:   Wed Apr 13 21:11:11 2022 +0200

    Translation update  by 154pinkchairs <ovehis at riseup.net> using Weblate
    
    po/glossary/pl.po: 97.2% (210 of 216 strings; 2 fuzzy)
    0 failing checks (0.0%)
    Translation: GnuCash/Glossary (Polish)
    Translate-URL: https://hosted.weblate.org/projects/gnucash/glossary/pl/
    
    Translation update  by 154pinkchairs <ovehis at riseup.net> using Weblate
    
    po/pl.po: 62.1% (3352 of 5390 strings; 1529 fuzzy)
    586 failing checks (10.8%)
    Translation: GnuCash/Program (Polish)
    Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/pl/
    
    Translation update  by 154pinkchairs <ovehis at riseup.net> using Weblate
    
    po/pl.po: 62.1% (3350 of 5390 strings; 1531 fuzzy)
    587 failing checks (10.8%)
    Translation: GnuCash/Program (Polish)
    Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/pl/
    
    Co-authored-by: 154pinkchairs <ovehis at riseup.net>

diff --git a/po/glossary/pl.po b/po/glossary/pl.po
index 4b5ea2b3e..c2e6ff6c6 100644
--- a/po/glossary/pl.po
+++ b/po/glossary/pl.po
@@ -3,14 +3,15 @@
 # A. Tokarski <szczur at malinablue.punkt.pl>, 2005.
 # Updated to 2.2.x by nowak2000 at poczta.onet.pl
 # Henio Szewczyk <henryk.szewczyk09 at gmail.com>, 2021.
+# 154pinkchairs <ovehis at riseup.net>, 2022.
 msgid ""
 msgstr ""
 "Project-Id-Version: GnuCash 4.8\n"
-"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
-"product=GnuCash&component=Translations\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug."
+"cgi?product=GnuCash&component=Translations\n"
 "POT-Creation-Date: 2021-12-05 20:11+0100\n"
-"PO-Revision-Date: 2022-01-02 22:54+0000\n"
-"Last-Translator: Anonymous <noreply at weblate.org>\n"
+"PO-Revision-Date: 2022-04-13 19:11+0000\n"
+"Last-Translator: 154pinkchairs <ovehis at riseup.net>\n"
 "Language-Team: Polish <https://hosted.weblate.org/projects/gnucash/glossary/"
 "pl/>\n"
 "Language: pl\n"
@@ -19,7 +20,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
 "|| n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.10.1\n"
+"X-Generator: Weblate 4.12-dev\n"
 
 #. "English Definition (Dear translator: This file will never be visible to the user! It should only serve as a tool for you, the translator. Nothing more.)"
 msgid "Term (Dear translator: This file will never be visible to the user!)"
@@ -881,7 +882,7 @@ msgid "due"
 msgstr ""
 
 msgid "Online"
-msgstr ""
+msgstr "Online"
 
 msgid "Direct Debit"
-msgstr ""
+msgstr "Polecenie zapłaty"
diff --git a/po/pl.po b/po/pl.po
index a8598b42a..6215a2026 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -9,7 +9,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug."
 "cgi?product=GnuCash&component=Translations\n"
 "POT-Creation-Date: 2022-03-09 18:00-0800\n"
-"PO-Revision-Date: 2022-04-12 02:10+0000\n"
+"PO-Revision-Date: 2022-04-13 19:11+0000\n"
 "Last-Translator: 154pinkchairs <ovehis at riseup.net>\n"
 "Language-Team: Polish <https://hosted.weblate.org/projects/gnucash/gnucash/"
 "pl/>\n"
@@ -3917,7 +3917,7 @@ msgstr "Pokaż wszystkie powiązania transakcji"
 
 #: gnucash/gnome/gnc-plugin-business.c:283
 msgid "Sales _Tax Table"
-msgstr "Tabela podatkowa dla sprzedaży"
+msgstr "Tab_ela podatkowa dla sprzedaży"
 
 #: gnucash/gnome/gnc-plugin-business.c:284
 msgid "View and edit the list of Sales Tax Tables (GST/VAT)"
@@ -3935,7 +3935,7 @@ msgstr "Wyświetla i pozwala na modyfikację terminów płatności"
 
 #: gnucash/gnome/gnc-plugin-business.c:293
 msgid "Bills _Due Reminder"
-msgstr "Przypomnienia o płatnościach"
+msgstr "Prz_ypomnienia o płatnościach"
 
 #: gnucash/gnome/gnc-plugin-business.c:294
 msgid "Open the Bills Due Reminder dialog"
@@ -4472,9 +4472,8 @@ msgid "Estimate"
 msgstr "Oszacuj"
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:224
-#, fuzzy
 msgid "All Periods"
-msgstr "Okres"
+msgstr "Wszystkie okresy"
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:225
 #, fuzzy
@@ -4732,7 +4731,7 @@ msgstr "E_dytuj rachunek"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:319
 msgid "_Duplicate Bill"
-msgstr "Duplikuj rachunek"
+msgstr "D_uplikuj rachunek"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:320
 #, fuzzy
@@ -5422,7 +5421,7 @@ msgstr "Usuń wszystkie podziały bieżącej transakcji"
 #: gnucash/gnome/gnc-plugin-page-register2.c:305
 #: gnucash/gnome/gnc-plugin-page-register.c:414
 msgid "_Enter Transaction"
-msgstr "Wprowadź transakcję"
+msgstr "Wp_rowadź transakcję"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:306
 #: gnucash/gnome/gnc-plugin-page-register.c:415
@@ -9269,7 +9268,7 @@ msgstr "_Zbilansuj ręcznie"
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:289
 #: gnucash/register/ledger-core/split-register-control.c:140
 msgid "Let GnuCash _add an adjusting split"
-msgstr "Pozwól programowi GnuCash dodać podział regulujący"
+msgstr "Pozwól programowi GnuCash _dodać podział regulujący"
 
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:294
 #: gnucash/register/ledger-core/split-register-control.c:145
@@ -10406,14 +10405,12 @@ msgid ""
 msgstr ""
 
 #: gnucash/gnucash-cli.cpp:113
-#, fuzzy
 msgid "Name of the report to run\n"
-msgstr "Nazwa firmy"
+msgstr "Nazwa raportu do wygenerowania\n"
 
 #: gnucash/gnucash-cli.cpp:115
-#, fuzzy
 msgid "Specify export type\n"
-msgstr "Wybierz typ zniżki"
+msgstr "Wybierz typ eksportu\n"
 
 #: gnucash/gnucash-cli.cpp:117
 #, fuzzy
@@ -13319,7 +13316,7 @@ msgstr "_Wybierz konta subkonta"
 #: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:625
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:470
 msgid "Select _All"
-msgstr "Zaznacz wszystko"
+msgstr "Z_aznacz wszystko"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:426
 #: gnucash/gtkbuilder/assistant-loan.glade:1208
@@ -13339,7 +13336,7 @@ msgstr "Zaznacz _wszystkie"
 #: gnucash/gtkbuilder/assistant-csv-export.glade:456
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:141
 msgid "Select _Range"
-msgstr "Wybierz zakres"
+msgstr "Wybierz za_kres"
 
 #. Filter By Dialog, Date Tab, Start section
 #: gnucash/gtkbuilder/assistant-csv-export.glade:484
@@ -17493,7 +17490,7 @@ msgstr "Automatycznie wywołaj listę kont lub zadań w czasie wprowadzania."
 
 #: gnucash/gtkbuilder/dialog-preferences.glade:2811
 msgid "Tab order in_cludes Transfer on Memorised Transactions"
-msgstr "Kolejność TAB uwzględnia pole Transfer w zapamiętanych transakcjach"
+msgstr "Kolejność TAB uwz_ględnia pole Transfer w zapamiętanych transakcjach"
 
 #: gnucash/gtkbuilder/dialog-preferences.glade:2817
 msgid "Move to Transfer field when memorised transaction auto filled."
@@ -18568,7 +18565,7 @@ msgstr "<b>Wpisy tabeli podatkowej</b>"
 
 #: gnucash/gtkbuilder/dialog-tax-table.glade:197
 msgid "De_lete"
-msgstr "Usuń"
+msgstr "_Usuń"
 
 #: gnucash/gtkbuilder/dialog-tax-table.glade:212
 msgid "Ne_w"
@@ -19204,9 +19201,8 @@ msgid "On the"
 msgstr "Dzień"
 
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:15
-#, fuzzy
 msgid "Edit budget for all periods"
-msgstr "Okres budżetu:"
+msgstr "Edytuj budżet dla wszystkich okresów"
 
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:117
 msgid "Replace"
@@ -21296,7 +21292,7 @@ msgstr "_RozciÄ…gnij kolumnÄ™"
 #: gnucash/import-export/csv-imp/assistant-csv-price-import.cpp:1325
 #: gnucash/import-export/csv-imp/assistant-csv-trans-import.cpp:1247
 msgid "_Narrow this column"
-msgstr "Zwęź bieżącą kolumnę"
+msgstr "Zwęź _bieżącą kolumnę"
 
 #. Translators: This is a ngettext(3) message, %d is the number of prices added
 #: gnucash/import-export/csv-imp/assistant-csv-price-import.cpp:1884
@@ -22293,7 +22289,7 @@ msgstr "Wypełniacz"
 
 #: gnucash/import-export/qif-imp/gnc-plugin-qif-import.c:48
 msgid "Import _QIF..."
-msgstr "Zaimportuj plik QIF..."
+msgstr "Zaimportuj plik _QIF..."
 
 #: gnucash/import-export/qif-imp/gnc-plugin-qif-import.c:49
 msgid "Import a Quicken QIF file"
@@ -23651,7 +23647,7 @@ msgstr "Przykłady"
 
 #: gnucash/report/report-core.scm:156
 msgid "_Experimental"
-msgstr "Eksprymentalny"
+msgstr "_Eksprymentalny"
 
 #: gnucash/report/report-core.scm:157
 #, fuzzy

commit 6ccd7741ca8e6348320b47866caf7d9f1e7dfec2
Author: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>
Date:   Wed Apr 13 02:43:00 2022 +0200

    Drop duplicate 'en_US.UTF-8 UTF-8' from archlinux-test
    
    https://lists.gnucash.org/logs/2022/04/12.html#T19:11:57

diff --git a/util/ci/actions/archlinux-test/Dockerfile b/util/ci/actions/archlinux-test/Dockerfile
index ed83c49fe..429cb48ab 100644
--- a/util/ci/actions/archlinux-test/Dockerfile
+++ b/util/ci/actions/archlinux-test/Dockerfile
@@ -4,7 +4,7 @@ run echo "NoExtract = !*locale*/fr*/* !usr/share/i18n/locales/fr_FR*" >> /etc/pa
 
 run pacman -Syu --quiet --noconfirm glibc gcc cmake make boost python2 pkg-config gettext gtk3 guile git ninja gtest gmock sqlite3 webkit2gtk swig gwenhywfar aqbanking intltool libxslt postgresql-libs libmariadbclient libdbi libdbi-drivers wayland-protocols > /dev/null
 
-run echo en_US.UTF-8 UTF-8 >> /etc/locale.gen
+run echo en_US.UTF-8 UTF-8 > /etc/locale.gen
 run echo en_GB.UTF-8 UTF-8 >> /etc/locale.gen
 run echo fr_FR.UTF-8 UTF-8 >> /etc/locale.gen
 run locale-gen

commit 022d2b08e2c16d9714520c3009191b6cc055b84d
Author: John Ralls <jralls at ceridwen.us>
Date:   Tue Apr 12 15:59:13 2022 -0700

    [CI]Work around new git security measure. This one works.

diff --git a/util/ci/actions/archlinux-test/Dockerfile b/util/ci/actions/archlinux-test/Dockerfile
index 6732a9b64..ed83c49fe 100644
--- a/util/ci/actions/archlinux-test/Dockerfile
+++ b/util/ci/actions/archlinux-test/Dockerfile
@@ -8,6 +8,5 @@ run echo en_US.UTF-8 UTF-8 >> /etc/locale.gen
 run echo en_GB.UTF-8 UTF-8 >> /etc/locale.gen
 run echo fr_FR.UTF-8 UTF-8 >> /etc/locale.gen
 run locale-gen
-run git config --global --add safe.directory /github/workspace
 copy entrypoint.sh /
 entrypoint /entrypoint.sh
diff --git a/util/ci/actions/archlinux-test/entrypoint.sh b/util/ci/actions/archlinux-test/entrypoint.sh
index aabcc9418..12c82c68a 100755
--- a/util/ci/actions/archlinux-test/entrypoint.sh
+++ b/util/ci/actions/archlinux-test/entrypoint.sh
@@ -7,6 +7,7 @@ cd build
 export TZ="America/Los_Angeles"
 export PATH="$PATH:/usr/bin/core_perl"
 export CTEST_OUTPUT_ON_FAILURE=On
+git config --global --add safe.directory /github/workspace
 cmake /github/workspace -DWITH_PYTHON=ON -DCMAKE_BUILD_TYPE=debug -G Ninja
 ninja
 ninja check

commit baffae88f80fda1fdafb925ac3666d9343b5fa98
Author: John Ralls <jralls at ceridwen.us>
Date:   Tue Apr 12 15:49:22 2022 -0700

    [CI]Work around new git security measure.

diff --git a/util/ci/actions/archlinux-test/Dockerfile b/util/ci/actions/archlinux-test/Dockerfile
index ed83c49fe..6732a9b64 100644
--- a/util/ci/actions/archlinux-test/Dockerfile
+++ b/util/ci/actions/archlinux-test/Dockerfile
@@ -8,5 +8,6 @@ run echo en_US.UTF-8 UTF-8 >> /etc/locale.gen
 run echo en_GB.UTF-8 UTF-8 >> /etc/locale.gen
 run echo fr_FR.UTF-8 UTF-8 >> /etc/locale.gen
 run locale-gen
+run git config --global --add safe.directory /github/workspace
 copy entrypoint.sh /
 entrypoint /entrypoint.sh

commit 7bb576d25c88e9420f7d3aafc6eafdb1370aa071
Author: Cow <javier.fserrador at gmail.com>
Date:   Tue Apr 12 21:10:41 2022 +0200

    Translation update  by Cow <javier.fserrador at gmail.com> using Weblate
    
    po/es.po: 100.0% (5390 of 5390 strings; 0 fuzzy)
    0 failing checks (0.0%)
    Translation: GnuCash/Program (Spanish)
    Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/es/
    
    Co-authored-by: Cow <javier.fserrador at gmail.com>

diff --git a/po/es.po b/po/es.po
index 49f7d61e6..0de607acf 100644
--- a/po/es.po
+++ b/po/es.po
@@ -10,6 +10,7 @@
 # Guille <willelopz+weblate at gmail.com>, 2021.
 # Adolfo Jayme Barrientos <fitojb at ubuntu.com>, 2021.
 # Francisco Serrador <fserrador at gmail.com>, 2021, 2022.
+# Cow <javier.fserrador at gmail.com>, 2022.
 #
 #
 # ###############################################################################
@@ -76,11 +77,11 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: GnuCash 4.9-pre1\n"
-"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
-"product=GnuCash&component=Translations\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug."
+"cgi?product=GnuCash&component=Translations\n"
 "POT-Creation-Date: 2022-03-09 18:00-0800\n"
-"PO-Revision-Date: 2022-02-23 18:56+0000\n"
-"Last-Translator: Francisco Serrador <fserrador at gmail.com>\n"
+"PO-Revision-Date: 2022-04-12 19:10+0000\n"
+"Last-Translator: Cow <javier.fserrador at gmail.com>\n"
 "Language-Team: Spanish <https://hosted.weblate.org/projects/gnucash/gnucash/"
 "es/>\n"
 "Language: es\n"
@@ -91,8 +92,8 @@ msgstr ""
 "X-Generator: Weblate 4.12-dev\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 "X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-KeywordsList: <b>;</b>;<span weight=\"bold\" size=\"larger\">;</"
-"span>;<span size=\"larger\" weight=\"bold\">\n"
+"X-Poedit-KeywordsList: <b>;</b>;<span weight=\"bold\" size=\"larger\""
+">;</span>;<span size=\"larger\" weight=\"bold\">\n"
 
 #: borrowed/goffice/go-charmap-sel.c:70
 msgid "Arabic"
@@ -557,6 +558,11 @@ msgid ""
 "(File[->Most Recently Used-List]).\n"
 "The full path is displayed in the status bar."
 msgstr ""
+"Si desea conocer cuales directorios donde están almacenados los archivos "
+"GnuCash recientes, pase el cursor sobre una de las entradas en el menú de "
+"historial\n"
+"(Archivo[->Listado más recientes utilizados]).\n"
+"La ruta completa es representada dentro de la barra de estado."
 
 #: doc/tip_of_the_day.list.c:24
 msgid ""
@@ -15861,6 +15867,9 @@ msgid ""
 "investment categories like STOCKS and BONDS or exchange names like NASDAQ "
 "and LSE."
 msgstr ""
+"Seleccione una categoría para la materia prima o introduzca una nueva. Uno "
+"quizá utilice categorías de inversión como MERCANCÍAS y BONOS o nombres de "
+"intercambio como NASDAQ y LSE."
 
 #: gnucash/gtkbuilder/dialog-commodity.glade:329
 msgid ""
@@ -17457,21 +17466,14 @@ msgid "Enable update match action"
 msgstr "Habilitar actualización de operación cotejada"
 
 #: gnucash/gtkbuilder/dialog-preferences.glade:2298
-#, fuzzy
-#| msgid ""
-#| "Enable the UPDATE AND RECONCILE action in the transaction matcher. If "
-#| "enabled, a transaction whose best match's score is above the Auto-CLEAR "
-#| "threshold and has a different date or amount than the matching existing "
-#| "transaction will cause the existing transaction to be updated and cleared "
-#| "by default."
 msgid ""
 "Enable the UPDATE AND CLEAR action in the transaction matcher. If enabled, a "
 "transaction whose best match's score is above the Auto-CLEAR threshold and "
 "has a different date or amount than the matching existing transaction will "
 "cause the existing transaction to be updated and cleared by default."
 msgstr ""
-"Habilita la operación ACTUALIZAR Y CONCILIAR en el cotejo de la transacción. "
-"Si está habilitada, una transacción cuyo mejor cotejo está por encima del "
+"Habilita la operación ACTUALIZAR Y VACIAR en el cotejo de la transacción. Si "
+"está habilitada, una transacción cuyo mejor cotejo está por encima del "
 "umbral de Auto-LIQUIDAR y tiene una fecha o cantidad distinta que el cotejo "
 "de transacción existente causará que la transacción existente sea "
 "actualizada y liquidada por defecto."
@@ -22049,10 +22051,10 @@ msgid "y/d/m"
 msgstr "a/d/m"
 
 #: gnucash/import-export/import-main-matcher.c:462
-#, fuzzy
-#| msgid "Do transaction report on this account."
 msgid "No new transactions were found in this import."
-msgstr "Crear boletín transaccional sobre esta cuenta."
+msgstr ""
+"No fue encontrada ninguna de las transacciones nuevas dentro de esta "
+"importación."
 
 #: gnucash/import-export/import-main-matcher.c:630
 #: gnucash/import-export/import-main-matcher.c:783
@@ -22060,44 +22062,32 @@ msgid "Destination account for the auto-balance split."
 msgstr "Cuenta de destino para el desglose de cuadrado automático."
 
 #: gnucash/import-export/import-main-matcher.c:943
-#, fuzzy
-#| msgid "Enter the Entry Description"
 msgid "Enter new Description"
-msgstr "Introduzca la Descripción del Apunte"
+msgstr "Introduzca Descripción nueva"
 
 #: gnucash/import-export/import-main-matcher.c:958
-#, fuzzy
-#| msgid "Enter Due Date"
 msgid "Enter new Memo"
-msgstr "Introducir Fecha de Vencimiento"
+msgstr "Introducir Memorandum nuevo"
 
 #: gnucash/import-export/import-main-matcher.c:971
-#, fuzzy
-#| msgid "Enter Note"
 msgid "Enter new Notes"
-msgstr "Agregar nota"
+msgstr "Introduzca Anotaciones nuevas"
 
 #: gnucash/import-export/import-main-matcher.c:1097
 msgid "Assign a transfer account to the selection."
 msgstr "Asigna una cuenta transferencial a la selección."
 
 #: gnucash/import-export/import-main-matcher.c:1108
-#, fuzzy
-#| msgid "Sort by description."
 msgid "Edit description."
-msgstr "Ordena por descripción."
+msgstr "Editar descripción."
 
 #: gnucash/import-export/import-main-matcher.c:1116
-#, fuzzy
-#| msgid "Edit Job"
 msgid "Edit memo."
-msgstr "Editar Ejercicio"
+msgstr "Editar memorandum."
 
 #: gnucash/import-export/import-main-matcher.c:1124
-#, fuzzy
-#| msgid "Edit Note"
 msgid "Edit notes."
-msgstr "Editar nota"
+msgstr "Edite anotaciones."
 
 #: gnucash/import-export/import-main-matcher.c:1286
 msgctxt "Column header for 'Adding transaction'"
@@ -22325,10 +22315,8 @@ msgstr ""
 "no ve su cambio o un tipo de inversión adecuada, puede introducir uno nuevo."
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:906
-#, fuzzy
-#| msgid "_Name or description"
 msgid "Name or _description"
-msgstr "_Nombre o descripción"
+msgstr "Nombre o _descripción"
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:930
 msgid "_Ticker symbol or other abbreviation"
@@ -28732,16 +28720,12 @@ msgid "Invoice number: "
 msgstr "Número de factura: "
 
 #: gnucash/report/reports/standard/taxinvoice.scm:194
-#, fuzzy
-#| msgid "To: "
 msgid "To:"
-msgstr "Destino: "
+msgstr "Destino:"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:196
-#, fuzzy
-#| msgid "Your ref: "
 msgid "Your ref:"
-msgstr "Su ref: "
+msgstr "Su ref:"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:208
 msgid "Embedded CSS."
@@ -29491,10 +29475,8 @@ msgid "Use regular expressions for account name filter"
 msgstr "Emplear expresiones regulares para filtrar nombres de cuentas"
 
 #: gnucash/report/trep-engine.scm:114
-#, fuzzy
-#| msgid "Transaction Filter excludes matched strings"
 msgid "Account Name Filter excludes matched strings"
-msgstr "El Filtro de Transacción excluye las cadenas de texto coincidentes"
+msgstr "El Filtro de Nombre de Cuenta excluye las cadenas de texto cotejadas"
 
 #: gnucash/report/trep-engine.scm:115
 msgid "Transaction Filter"
@@ -29646,13 +29628,10 @@ msgstr ""
 "2017/1 Londres'. "
 
 #: gnucash/report/trep-engine.scm:600
-#, fuzzy
-#| msgid ""
-#| "If this option is selected, transactions matching filter are excluded."
 msgid "If this option is selected, accounts matching filter are excluded."
 msgstr ""
-"Si selecciona esta opción, los filtros de coincidencia de transacción serán "
-"excluidos."
+"Si selecciona esta opción, serán excluidos los filtros de coincidencia de "
+"cuentas."
 
 #: gnucash/report/trep-engine.scm:606
 msgid ""
@@ -29777,10 +29756,8 @@ msgid "Display the reconciled date?"
 msgstr "¿Representar la fecha de conciliación?"
 
 #: gnucash/report/trep-engine.scm:945
-#, fuzzy
-#| msgid "Display the reconciled date?"
 msgid "Display the entered date?"
-msgstr "¿Representar la fecha de conciliación?"
+msgstr "¿Representar la fecha introducida?"
 
 #: gnucash/report/trep-engine.scm:950
 msgid "Display the notes if the memo is unavailable?"
@@ -30744,15 +30721,11 @@ msgstr ""
 "no se han anotado en ninguna otra parte."
 
 #: libgnucash/engine/gnc-commodity.h:112
-#, fuzzy
-#| msgid "All non-currency"
 msgctxt "Commodity Type"
 msgid "All non-currency"
 msgstr "Todas excepto moneda"
 
 #: libgnucash/engine/gnc-commodity.h:113
-#, fuzzy
-#| msgid "Currencies"
 msgctxt "Commodity Type"
 msgid "Currencies"
 msgstr "Monedas"

commit 677b585d202c841cd3faedb02d0b5b78e3a4c8d0
Author: 154pinkchairs <ovehis at riseup.net>
Date:   Tue Apr 12 04:10:23 2022 +0200

    Translation update  by 154pinkchairs <ovehis at riseup.net> using Weblate
    
    po/pl.po: 62.1% (3348 of 5390 strings; 1533 fuzzy)
    591 failing checks (10.9%)
    Translation: GnuCash/Program (Polish)
    Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/pl/
    
    Co-authored-by: 154pinkchairs <ovehis at riseup.net>

diff --git a/po/pl.po b/po/pl.po
index 4f081a73a..a8598b42a 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -9,7 +9,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug."
 "cgi?product=GnuCash&component=Translations\n"
 "POT-Creation-Date: 2022-03-09 18:00-0800\n"
-"PO-Revision-Date: 2022-03-25 15:09+0000\n"
+"PO-Revision-Date: 2022-04-12 02:10+0000\n"
 "Last-Translator: 154pinkchairs <ovehis at riseup.net>\n"
 "Language-Team: Polish <https://hosted.weblate.org/projects/gnucash/gnucash/"
 "pl/>\n"
@@ -1717,9 +1717,8 @@ msgid "Manage Document Link"
 msgstr ""
 
 #: gnucash/gnome/dialog-doclink.c:760
-#, fuzzy
 msgid "Transaction can not be modified."
-msgstr "Kwota transakcji"
+msgstr "Transakcja nie może zostać zmodyfikowana."
 
 #: gnucash/gnome/dialog-doclink.c:821 libgnucash/engine/gncOwner.c:215
 #, fuzzy
@@ -2794,11 +2793,8 @@ msgid "You must select a company for payment processing."
 msgstr "Aby przetworzyć płatność, musisz wybrać firmę."
 
 #: gnucash/gnome/dialog-payment.c:260
-#, fuzzy
 msgid "There is a problem with the Payment or Refund amount."
-msgstr ""
-"Wystąpił problem z opcją %s:%s.\n"
-"%s"
+msgstr "Wystąpił problem z kwotą płatności lub zwrotu."
 
 #: gnucash/gnome/dialog-payment.c:281
 msgid "You must select a transfer account from the account tree."
@@ -3699,9 +3695,8 @@ msgid "_New Budget"
 msgstr "Nowy budżet"
 
 #: gnucash/gnome/gnc-plugin-budget.c:64
-#, fuzzy
 msgid "Create a new Budget."
-msgstr "Utwórz nowy budżet"
+msgstr "Utwórz nowy budżet."
 
 #: gnucash/gnome/gnc-plugin-budget.c:69
 #, fuzzy
@@ -3720,18 +3715,16 @@ msgid "_Copy Budget"
 msgstr "Kopiuj budżet"
 
 #: gnucash/gnome/gnc-plugin-budget.c:76
-#, fuzzy
 msgid "Copy an existing Budget."
-msgstr "Skopiuj istniejący budżet"
+msgstr "Skopiuj istniejący budżet."
 
 #: gnucash/gnome/gnc-plugin-budget.c:80
 msgid "_Delete Budget"
 msgstr "_Usuń budżet"
 
 #: gnucash/gnome/gnc-plugin-budget.c:81
-#, fuzzy
 msgid "Delete an existing Budget."
-msgstr "Otwórz istniejący budżet"
+msgstr "Usuń istniejący budżet."
 
 #: gnucash/gnome/gnc-plugin-budget.c:288
 msgid "Select a Budget"
@@ -4398,60 +4391,51 @@ msgid "Are you sure you want to do this?"
 msgstr "Czy na pewno chcesz to zrobić?"
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:147
-#, fuzzy
 msgid "Open the selected account."
-msgstr "Otwórz zaznaczone konto"
+msgstr "Otwórz zaznaczone konto."
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:152
 msgid "Open _Subaccounts"
 msgstr "Otwórz konta po_drzędne"
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:153
-#, fuzzy
 msgid "Open the selected account and all its subaccounts."
-msgstr "Otwórz wybrane konto i wszystkie jego konta podrzędne"
+msgstr "Otwórz zaznaczone konto i wszystkie jego konta podrzędne."
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:159
-#, fuzzy
 msgid "_Delete Budget..."
-msgstr "_Usuń budżet"
+msgstr "_Usuń budżet..."
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:160
 msgid "Select this or another budget and delete it."
 msgstr ""
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:164
-#, fuzzy
 msgid "Budget _Options..."
-msgstr "Opcje budżetu"
+msgstr "_Opcje budżetu..."
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:165
-#, fuzzy
 msgid "Edit this budget's options."
-msgstr "Edytuj opcje bieżącego budżetu"
+msgstr "Edytuj opcje bieżącego budżetu."
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:169
-#, fuzzy
 msgid "Esti_mate Budget..."
-msgstr "Oszacuj budżet"
+msgstr "Osza_cuj budżet..."
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:171
-#, fuzzy
 msgid ""
 "Estimate a budget value for the selected accounts from past transactions."
 msgstr ""
 "Oszacuj wartość budżetu dla wybranych kont na podstawie poprzednich "
-"transakcji"
+"transakcji."
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:175
-#, fuzzy
 msgid "_All Periods..."
-msgstr "Okres"
+msgstr "_Wszystkie okresy..."
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:177
-#, fuzzy
 msgid "Edit budget for all periods for the selected accounts."
-msgstr "Modyfikuje zaznaczone konto"
+msgstr "Edytuj budżet z wszystkich okresów dla wybranych kont."
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:181
 #, fuzzy
@@ -4459,9 +4443,8 @@ msgid "Edit Note"
 msgstr "Nota kredytowa"
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:183
-#, fuzzy
 msgid "Edit note for the selected account and period."
-msgstr "Modyfikuje zaznaczone konto"
+msgstr "Edytuj notatkÄ™ dla zaznaczonego konta i okresu."
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:187
 #: gnucash/report/reports/standard/budget.scm:39
@@ -4469,15 +4452,12 @@ msgid "Budget Report"
 msgstr "Raport z budżetu"
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:189
-#, fuzzy
-#| msgid "Print the current report"
 msgid "Run the budget report."
-msgstr "Drukuje bieżący raport"
+msgstr "Drukuje bieżący raport."
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:199
-#, fuzzy
 msgid "Refresh this window."
-msgstr "Odświeża to okno"
+msgstr "Odśwież to okno."
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:222
 #: gnucash/gnome/gnc-plugin-page-report.c:1137

commit 22985903168f84e6a1d3d211f4557dd0ca848456
Merge: 4e5932ac9 8adedc224
Author: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>
Date:   Tue Apr 12 00:18:27 2022 +0200

    Merge PR #1309 into maint


commit 4e5932ac9200b021c034dedf4b4b005920b665d8
Author: ltai0001 <yltaief at gmail.com>
Date:   Sun Apr 10 23:10:27 2022 +0200

    Translation update  by ltai0001 <yltaief at gmail.com> using Weblate
    
    po/ar.po: 74.4% (4012 of 5390 strings; 898 fuzzy)
    424 failing checks (7.8%)
    Translation: GnuCash/Program (Arabic)
    Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ar/
    
    Translation update  by ltai0001 <yltaief at gmail.com> using Weblate
    
    po/ar.po: 74.4% (4011 of 5390 strings; 899 fuzzy)
    426 failing checks (7.9%)
    Translation: GnuCash/Program (Arabic)
    Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ar/
    
    Translation update  by ltai0001 <yltaief at gmail.com> using Weblate
    
    po/ar.po: 74.1% (3997 of 5390 strings; 913 fuzzy)
    430 failing checks (7.9%)
    Translation: GnuCash/Program (Arabic)
    Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ar/
    
    Co-authored-by: ltai0001 <yltaief at gmail.com>

diff --git a/po/ar.po b/po/ar.po
index a3f0c31e6..9c4037f81 100644
--- a/po/ar.po
+++ b/po/ar.po
@@ -16,7 +16,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug."
 "cgi?product=GnuCash&component=Translations\n"
 "POT-Creation-Date: 2022-03-09 18:00-0800\n"
-"PO-Revision-Date: 2022-04-04 05:08+0000\n"
+"PO-Revision-Date: 2022-04-10 21:10+0000\n"
 "Last-Translator: ltai0001 <yltaief at gmail.com>\n"
 "Language-Team: Arabic <https://hosted.weblate.org/projects/gnucash/gnucash/"
 "ar/>\n"
@@ -3775,7 +3775,7 @@ msgstr "فتح مربع الحوار \"العثور على العميل\""
 #: gnucash/gnome/gnc-plugin-business.c:319
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:201
 msgid "New _Invoice..."
-msgstr "فاتورة جديدة..."
+msgstr "_فاتورة جديدة..."
 
 #: gnucash/gnome/gnc-plugin-business.c:176
 #: gnucash/gnome/gnc-plugin-business.c:320
@@ -3784,7 +3784,7 @@ msgstr "فتح مربع الحوار \"فاتورة جديدة\""
 
 #: gnucash/gnome/gnc-plugin-business.c:180
 msgid "Find In_voice..."
-msgstr "العثور على الفاتورة..."
+msgstr "ال_عثور على الفاتورة..."
 
 #: gnucash/gnome/gnc-plugin-business.c:181
 msgid "Open the Find Invoice dialog"
@@ -3854,7 +3854,7 @@ msgstr "فتح مربع حوار بحث عن مورد"
 #: gnucash/gnome/gnc-plugin-business.c:218
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:196
 msgid "New _Bill..."
-msgstr "فاتورة جديدة..."
+msgstr "_فاتورة جديدة..."
 
 #: gnucash/gnome/gnc-plugin-business.c:219
 msgid "Open the New Bill dialog"
@@ -3862,7 +3862,7 @@ msgstr "فتح مربع حوار مطالبة جديدة"
 
 #: gnucash/gnome/gnc-plugin-business.c:223
 msgid "Find Bi_ll..."
-msgstr "بحث عن مطالبة"
+msgstr "_بحث عن مطالبة..."
 
 #: gnucash/gnome/gnc-plugin-business.c:224
 msgid "Open the Find Bill dialog"
@@ -3899,7 +3899,7 @@ msgstr "فتح مربع الحوار \"العثور على الموظف\""
 
 #: gnucash/gnome/gnc-plugin-business.c:261
 msgid "New _Expense Voucher..."
-msgstr "إيصال مصروفات جديد..."
+msgstr "إيصال _مصروفات جديد..."
 
 #: gnucash/gnome/gnc-plugin-business.c:262
 msgid "Open the New Expense Voucher dialog"
@@ -3907,7 +3907,7 @@ msgstr "أفتح صفحة نظرة عامة عن موظف"
 
 #: gnucash/gnome/gnc-plugin-business.c:266
 msgid "Find Expense _Voucher..."
-msgstr "العثور على إيصال المصاريف"
+msgstr "ال_عثور على إيصال المصاريف..."
 
 #: gnucash/gnome/gnc-plugin-business.c:267
 msgid "Open the Find Expense Voucher dialog"
@@ -3924,7 +3924,7 @@ msgstr "معلومات العملية"
 
 #: gnucash/gnome/gnc-plugin-business.c:283
 msgid "Sales _Tax Table"
-msgstr "جدول ضريبة المبيعات"
+msgstr "_جدول ضريبة المبيعات"
 
 #: gnucash/gnome/gnc-plugin-business.c:284
 msgid "View and edit the list of Sales Tax Tables (GST/VAT)"
@@ -3960,7 +3960,7 @@ msgstr "فتح مربع الحوار \"تذكير فواتير مستحقة\""
 
 #: gnucash/gnome/gnc-plugin-business.c:302
 msgid "E_xport"
-msgstr "تصدير"
+msgstr "ت_صدير"
 
 #: gnucash/gnome/gnc-plugin-business.c:307
 #: gnucash/gnome/gnc-plugin-business.c:308
@@ -4002,7 +4002,7 @@ msgstr "إنشاء حساب جديد"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:204
 msgid "New Account _Hierarchy..."
-msgstr "التسلسل الهرمي لحساب جديد..."
+msgstr "تسلسل هرمي جديد للحساب..."
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:205
 msgid "Extend the current book by merging with new account type categories"
@@ -4013,7 +4013,7 @@ msgstr "تمديد الدفتر الحالي عن طريق الدمج مع فئ
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:345
 #: gnucash/gnome/gnc-plugin-page-budget.c:146
 msgid "Open _Account"
-msgstr "فتح حساب"
+msgstr "_فتح حساب"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:211
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:222
@@ -4023,7 +4023,7 @@ msgstr "فتح الحساب المحدد"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:215
 msgid "Open _Old Style Register Account"
-msgstr "فتح نافذة دفتر أستاذ عام نمط قديم"
+msgstr "فتح نافذة دفتر أستاذ عام نمط _قديم"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:216
 msgid "Open the old style register selected account"
@@ -4033,7 +4033,7 @@ msgstr "فتح نافذة دفتر أستاذ عام نمط قديم محدد"
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:240
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:350
 msgid "Open _SubAccounts"
-msgstr "فتح الحسابات الفرعية"
+msgstr "فتح الحسابات ال_فرعية"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:230
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:241
@@ -4043,7 +4043,7 @@ msgstr "فتح الحساب المحدد وجميع ما لها من الحسا
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:234
 msgid "Open Old St_yle Subaccounts"
-msgstr "فتح الحسابات الفرعية بالنمط القديم"
+msgstr "فتح الحسابات الفرعية بالنمط ال_قديم"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:235
 msgid "Open the old style register selected account and all its subaccounts"
@@ -4053,7 +4053,7 @@ msgstr "فتح الحسابات بالنمط القديم و كذا كل حسا
 #: gnucash/gnome/gnc-plugin-page-register2.c:245
 #: gnucash/gnome/gnc-plugin-page-register.c:354
 msgid "Edit _Account"
-msgstr "تحرير الحساب"
+msgstr "_تحرير الحساب"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:249
 #: gnucash/gnome/gnc-plugin-page-register2.c:246
@@ -4070,9 +4070,8 @@ msgid "Delete selected account"
 msgstr "حذف الحساب المحدد"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:258
-#, fuzzy
 msgid "_Cascade Account Properties..."
-msgstr "لون الحساب"
+msgstr "لون الحساب..."
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:259
 #, fuzzy
@@ -4122,7 +4121,7 @@ msgstr "_تصفية بواسطة..."
 #: gnucash/gnome/gnc-plugin-page-sx-list.c:170
 #: gnucash/gnome-utils/gnc-main-window.c:351
 msgid "_Refresh"
-msgstr "تحديث"
+msgstr "ت_حديث"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:296
 #: gnucash/gnome/gnc-plugin-page-invoice.c:163
@@ -4139,7 +4138,7 @@ msgstr "تحديث هذه النافذة"
 #: gnucash/gnome/gnc-plugin-page-register2.c:357
 #: gnucash/gnome/gnc-plugin-page-register.c:475
 msgid "_Reconcile..."
-msgstr "تسوية"
+msgstr "_تسوية..."
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:303
 #: gnucash/gnome/gnc-plugin-page-register2.c:358
@@ -4151,7 +4150,7 @@ msgstr "التسوية بين الحسابات المختارة"
 #: gnucash/gnome/gnc-plugin-page-register2.c:362
 #: gnucash/gnome/gnc-plugin-page-register.c:480
 msgid "_Auto-clear..."
-msgstr "مسح تلقائي"
+msgstr "مسح _تلقائي..."
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:308
 msgid "Automatically clear individual transactions, given a cleared amount"
@@ -4175,7 +4174,7 @@ msgstr "نقل الأموال من حساب واحد إلى آخر"
 #: gnucash/gnome/gnc-plugin-page-register2.c:367
 #: gnucash/gnome/gnc-plugin-page-register.c:485
 msgid "Stoc_k Split..."
-msgstr "تجزئة السهم"
+msgstr "تجزئة ال_سهم..."
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:318
 #: gnucash/gnome/gnc-plugin-page-register2.c:368
@@ -4187,7 +4186,7 @@ msgstr "تسجيل تجزئة السهم أو الاندماج الأسهم"
 #: gnucash/gnome/gnc-plugin-page-register2.c:372
 #: gnucash/gnome/gnc-plugin-page-register.c:490
 msgid "View _Lots..."
-msgstr "عرض المجموعات"
+msgstr "عرض ال_مجموعات..."
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:323
 #: gnucash/gnome/gnc-plugin-page-register2.c:373
@@ -4197,7 +4196,7 @@ msgstr "عارض/محرر المجموعات"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:327
 msgid "Check & Repair A_ccount"
-msgstr "فحص وإصلاح حساب"
+msgstr "فحص وإ_صلاح حساب"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:328
 #: gnucash/gnome/window-reconcile2.c:2174 gnucash/gnome/window-reconcile.c:2436
@@ -4209,7 +4208,7 @@ msgstr ""
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:332
 msgid "Check & Repair Su_baccounts"
-msgstr "فحص و إصلاح الحسابات الفرعية"
+msgstr "فحص و إصلاح الحسابات ال_فرعية"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:333
 msgid ""
@@ -4221,7 +4220,7 @@ msgstr ""
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:338
 msgid "Check & Repair A_ll"
-msgstr "فحص & و إصلاح الجميع"
+msgstr "فحص و إصلاح ال_جميع"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:339
 msgid ""
@@ -4234,7 +4233,7 @@ msgstr ""
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:343
 #: gnucash/gnome/gnc-plugin-register2.c:64
 msgid "_Register2"
-msgstr "سجل2"
+msgstr "_دفتر2"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:406
 msgid "Open2"
@@ -4399,7 +4398,7 @@ msgstr "فتح الحساب المحدد"
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:152
 msgid "Open _Subaccounts"
-msgstr "فتح الحسابات الفرعية"
+msgstr "فتح ال_حسابات الفرعية"
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:153
 #, fuzzy
@@ -4416,9 +4415,8 @@ msgid "Select this or another budget and delete it."
 msgstr ""
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:164
-#, fuzzy
 msgid "Budget _Options..."
-msgstr "خيارات الميزانية"
+msgstr "خيارات ال_ميزانية..."
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:165
 #, fuzzy
@@ -4426,9 +4424,8 @@ msgid "Edit this budget's options."
 msgstr "تحرير خيارات هذه الميزانية"
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:169
-#, fuzzy
 msgid "Esti_mate Budget..."
-msgstr "تقديرات الميزانية"
+msgstr "ت_قديرات الميزانية..."
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:171
 #, fuzzy
@@ -4438,9 +4435,8 @@ msgstr ""
 "تقدير قيمة الميزانية لحسابات التقديرية المختارة بناء على المعاملات السابقة"
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:175
-#, fuzzy
 msgid "_All Periods..."
-msgstr "الفترة"
+msgstr "_كل الفترات..."
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:177
 #, fuzzy
@@ -4591,7 +4587,7 @@ msgstr "قم بإنشاء نسخة من الإدخال الحالي"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:204
 msgid "Move Entry _Up"
-msgstr "نقل الإدخال لأعلى"
+msgstr "نقل الإدخال لأ_على"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:205
 msgid "Move the current entry one row upwards"
@@ -4599,7 +4595,7 @@ msgstr "نقل الإدخال الحالي سطرا واحدا لأعلى"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:209
 msgid "Move Entry Do_wn"
-msgstr "نقل الإدخال لأسفل"
+msgstr "نقل الإدخال لأ_سفل"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:210
 msgid "Move the current entry one row downwards"
@@ -4672,9 +4668,8 @@ msgid "Sort by description"
 msgstr "فرز حسب الوصف"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:296
-#, fuzzy
 msgid "_Print Invoice"
-msgstr "طباعة الفاتورة"
+msgstr "_طباعة الفاتورة"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:297
 msgid "_Edit Invoice"
@@ -4719,9 +4714,8 @@ msgstr ""
 #: gnucash/gnome/gnc-plugin-page-invoice.c:346
 #: gnucash/gnome/gnc-plugin-page-invoice.c:367
 #: gnucash/gnome/gnc-plugin-page-register.c:304
-#, fuzzy
 msgid "_Open Linked Document"
-msgstr "حساب جديد"
+msgstr "إفتح المستند ال_مرتبط"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:310
 msgid "_Use as Default Layout for Customer Documents"
@@ -4732,24 +4726,20 @@ msgid "_Reset Default Layout for Customer Documents"
 msgstr ""
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:317
-#, fuzzy
 msgid "_Print Bill"
-msgstr "طباعة"
+msgstr "_طباعة الفاتورة"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:318
-#, fuzzy
 msgid "_Edit Bill"
-msgstr "تعديل الفاتورة"
+msgstr "ت_عديل الفاتورة"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:319
-#, fuzzy
 msgid "_Duplicate Bill"
-msgstr "مكررة"
+msgstr "ت_كرير الفاتورة"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:320
-#, fuzzy
 msgid "_Post Bill"
-msgstr "دفع الفاتورة"
+msgstr "_دفع الفاتورة"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:321
 #, fuzzy
@@ -4757,14 +4747,12 @@ msgid "_Unpost Bill"
 msgstr "_إلغ ترحيل هذه الفاتورة"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:322
-#, fuzzy
 msgid "New _Bill"
-msgstr "فاتورة جديدة"
+msgstr "فاتورة _جديدة"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:323
-#, fuzzy
 msgid "_Pay Bill"
-msgstr "دفع الفاتورة"
+msgstr "_دفع الفاتورة"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:331
 msgid "_Use as Default Layout for Vendor Documents"
@@ -4780,9 +4768,8 @@ msgid "_Print Voucher"
 msgstr "_طباعة الشيكات"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:339
-#, fuzzy
 msgid "_Edit Voucher"
-msgstr "عرض/تحرير القسيمة"
+msgstr "ت_حرير القسيمة"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:340
 #, fuzzy
@@ -4805,9 +4792,8 @@ msgid "New _Voucher"
 msgstr "قسيمة جديدة"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:344
-#, fuzzy
 msgid "_Pay Voucher"
-msgstr "قسيمة الشراء"
+msgstr "دفع قسيمة الشراء"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:352
 msgid "_Use as Default Layout for Employee Documents"
@@ -5106,7 +5092,7 @@ msgstr "اليوم"
 
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:145
 msgid "E_dit Vendor"
-msgstr "تحرير المورد"
+msgstr "ت_حرير المورد"
 
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:146
 msgid "Edit the selected vendor"
@@ -5122,7 +5108,7 @@ msgstr "تحرير العميل المحدد"
 
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:155
 msgid "E_dit Employee"
-msgstr "تحرير موظف"
+msgstr "ت_حرير موظف"
 
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:156
 msgid "Edit the selected employee"
@@ -5142,7 +5128,7 @@ msgstr "إنشاء موظف جديد"
 
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:177
 msgid "_Delete Owner..."
-msgstr "حذف مالك"
+msgstr "_حذف مالك..."
 
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:178
 msgid "Delete selected owner"
@@ -5158,7 +5144,7 @@ msgstr "إنشاء فاتورة جديدة"
 
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:206
 msgid "New _Voucher..."
-msgstr "قسيمة جديدة..."
+msgstr "_قسيمة جديدة..."
 
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:207
 msgid "Create a new voucher"
@@ -5250,7 +5236,7 @@ msgstr ""
 #: gnucash/gnome/gnc-plugin-page-register2.c:194
 #: gnucash/gnome/gnc-plugin-page-register.c:292
 msgid "Cu_t Transaction"
-msgstr "قص المعاملات"
+msgstr "ق_ص المعاملة"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:195
 #: gnucash/gnome/gnc-plugin-page-register.c:293
@@ -5265,7 +5251,7 @@ msgstr "_لصق المعاملات"
 #: gnucash/gnome/gnc-plugin-page-register2.c:197
 #: gnucash/gnome/gnc-plugin-page-register.c:295
 msgid "Dup_licate Transaction"
-msgstr "تكرار المعاملات"
+msgstr "ت_كرار المعاملة"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:198
 #: gnucash/gnome/gnc-plugin-page-register.c:296
@@ -5277,29 +5263,29 @@ msgstr "_حذف المعاملات"
 #: gnucash/gnome/gnc-plugin-page-register2.c:199
 #: gnucash/gnome/gnc-plugin-page-register.c:308
 msgid "Cu_t Split"
-msgstr "قص التقسيم"
+msgstr "ق_ص التقسيم"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:200
 #: gnucash/gnome/gnc-plugin-page-register.c:309
 msgid "_Copy Split"
-msgstr "نسخ التقسيم"
+msgstr "_نسخ التقسيم"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:201
 #: gnucash/gnome/gnc-plugin-page-register.c:310
 msgid "_Paste Split"
-msgstr "لصق التقسيم"
+msgstr "_لصق التقسيم"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:202
 #: gnucash/gnome/gnc-plugin-page-register.c:311
 msgid "Dup_licate Split"
-msgstr "تكرار التقسيم"
+msgstr "تك_رار التقسيم"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:203
 #: gnucash/gnome/gnc-plugin-page-register.c:312
 #: gnucash/gnome/gnc-split-reg.c:1504
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:1024
 msgid "_Delete Split"
-msgstr "حذف التقسيم."
+msgstr "ح_ذف التقسيم"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:204
 #: gnucash/gnome/gnc-plugin-page-register.c:313
@@ -5361,7 +5347,7 @@ msgstr "_طباعة الشيكات..."
 #: gnucash/gnome/gnc-plugin-page-report.c:1216
 #: gnucash/gnome-utils/gnc-main-window.c:320
 msgid "Cu_t"
-msgstr "قص"
+msgstr "_قص"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:231
 #: gnucash/gnome/gnc-plugin-page-register.c:340
@@ -5393,7 +5379,7 @@ msgstr "لصق محتوى الحافظة في موضع المؤشر"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:300
 msgid "Remo_ve All Splits"
-msgstr "أزل جميع التقسيمات"
+msgstr "أ_زل جميع التقسيمات"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:301
 #: gnucash/gnome/gnc-plugin-page-register.c:410
@@ -5413,7 +5399,7 @@ msgstr "سجل المعاملة الحالية"
 #: gnucash/gnome/gnc-plugin-page-register2.c:310
 #: gnucash/gnome/gnc-plugin-page-register.c:419
 msgid "Ca_ncel Transaction"
-msgstr "إلغاء المعاملات"
+msgstr "إل_غاء المعاملة"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:311
 #: gnucash/gnome/gnc-plugin-page-register.c:420
@@ -5428,16 +5414,16 @@ msgstr "_إلغاء المعاملات"
 #: gnucash/gnome/gnc-plugin-page-register2.c:319
 #: gnucash/gnome/gnc-plugin-page-register.c:428
 msgid "_Unvoid Transaction"
-msgstr "إعكس إلغاء هذه المعاملة"
+msgstr "إ_عكس إلغاء المعاملة"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:323
 #: gnucash/gnome/gnc-plugin-page-register.c:432
 msgid "Add _Reversing Transaction"
-msgstr "إضافة معاملة عكسية"
+msgstr "إضافة معاملة _عكسية"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:327
 msgid "Move Transaction _Up"
-msgstr "تحريك لأعلى"
+msgstr "تحريك لل_أعلى"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:328
 msgid ""
@@ -5449,7 +5435,7 @@ msgstr ""
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:332
 msgid "Move Transaction Do_wn"
-msgstr "تحريك لأسفل"
+msgstr "تحريك لأ_سفل"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:333
 msgid ""
@@ -5480,7 +5466,7 @@ msgstr "الانتقال إلى معاملة فارغة في أسفل السجل
 #: gnucash/gnome/gnc-plugin-page-register2.c:382
 #: gnucash/gnome/gnc-plugin-page-register.c:505
 msgid "Edit E_xchange Rate"
-msgstr "تحرير سعر الصرف"
+msgstr "تحرير سعر ال_صرف"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:383
 #: gnucash/gnome/gnc-plugin-page-register.c:506
@@ -5508,7 +5494,7 @@ msgstr "فتح تقرير سجل للمعاملات المحددة"
 #: gnucash/gnome/gnc-plugin-page-register2.c:392
 #: gnucash/gnome/gnc-plugin-page-register.c:518
 msgid "Sche_dule..."
-msgstr "الجدول الزمني..."
+msgstr "ال_جدول الزمني..."
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:393
 #: gnucash/gnome/gnc-plugin-page-register.c:519
@@ -5550,7 +5536,7 @@ msgstr "فتح تقرير سجل للمعاملات المحددة"
 #: gnucash/gnome/gnc-plugin-page-register2.c:424
 #: gnucash/gnome/gnc-plugin-page-register.c:553
 msgid "_Double Line"
-msgstr "خط مزدوج"
+msgstr "خط _مزدوج"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:425
 #: gnucash/gnome/gnc-plugin-page-register.c:554
@@ -5562,7 +5548,7 @@ msgstr "إظهار سطرين من المعلومات لكل معاملة"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:430
 msgid "Show _Extra Dates"
-msgstr "إظهار التواريخ الإضافية"
+msgstr "إظهار التواريخ الإ_ضافية"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:431
 msgid "Show entered and reconciled dates"
@@ -5571,7 +5557,7 @@ msgstr "أظهر تواريخ الإدخال و التسوية"
 #: gnucash/gnome/gnc-plugin-page-register2.c:436
 #: gnucash/gnome/gnc-plugin-page-register.c:559
 msgid "S_plit Transaction"
-msgstr "تقسيم المعاملات"
+msgstr "ت_قسيم المعاملات"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:437
 #: gnucash/gnome/gnc-plugin-page-register.c:560
@@ -5581,7 +5567,7 @@ msgstr "عرض كل التقسيمات في المعاملة الحالية"
 #: gnucash/gnome/gnc-plugin-page-register2.c:448
 #: gnucash/gnome/gnc-plugin-page-register.c:571
 msgid "_Basic Ledger"
-msgstr "دفتر الأستاذ الأساسي"
+msgstr "دفتر الأستاذ الأ_ساسي"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:449
 #: gnucash/gnome/gnc-plugin-page-register.c:572
@@ -5603,7 +5589,7 @@ msgstr "إظهار المعاملات على خط أو اثنين ووسع ال
 #: gnucash/gnome/gnc-plugin-page-register.c:581
 #: gnucash/gtkbuilder/dialog-preferences.glade:3251
 msgid "Transaction _Journal"
-msgstr "معاملات دفتر اليومية"
+msgstr "_دفتر المعاملات اليومية"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:459
 #: gnucash/gnome/gnc-plugin-page-register.c:582
@@ -5841,12 +5827,12 @@ msgstr ""
 
 #: gnucash/gnome/gnc-plugin-page-register.c:409
 msgid "Remo_ve Other Splits"
-msgstr "أزل التقسيمات الأخرى"
+msgstr "_أزل التقسيمات الأخرى"
 
 #: gnucash/gnome/gnc-plugin-page-register.c:454
 #: gnucash/gnome-utils/gnc-main-window.c:343
 msgid "_Sort By..."
-msgstr "فرز حسب..."
+msgstr "إ_فرز حسب..."
 
 #: gnucash/gnome/gnc-plugin-page-register.c:500
 #, fuzzy
@@ -6064,7 +6050,7 @@ msgstr "تصدير التقرير الحالي لمستند بصيغة PDF"
 
 #: gnucash/gnome/gnc-plugin-page-report.c:1236
 msgid "Save _Report Configuration"
-msgstr "حفظ خيارات التقرير"
+msgstr "حفظ _خيارات التقرير"
 
 #: gnucash/gnome/gnc-plugin-page-report.c:1240
 msgid "Save Report Configuration As..."
@@ -6223,7 +6209,7 @@ msgstr "إنشاء معاملة جديدة مجدولة"
 
 #: gnucash/gnome/gnc-plugin-page-sx-list.c:145
 msgid "_New 2"
-msgstr "جديد2"
+msgstr "_جديد 2"
 
 #: gnucash/gnome/gnc-plugin-page-sx-list.c:146
 msgid "Create a new scheduled transaction 2"
@@ -6235,7 +6221,7 @@ msgstr "تحرير المعاملة المجدولة المحددة"
 
 #: gnucash/gnome/gnc-plugin-page-sx-list.c:157
 msgid "_Edit 2"
-msgstr "تحرير2"
+msgstr "_تحرير2"
 
 #: gnucash/gnome/gnc-plugin-page-sx-list.c:158
 msgid "Edit the selected scheduled transaction 2"
@@ -6269,9 +6255,8 @@ msgstr[5] "هل تريد حذف هذه المعاملة المجدولة حقا
 
 #: gnucash/gnome/gnc-plugin-register2.c:57
 #: gnucash/gnome/gnc-plugin-register.c:58
-#, fuzzy
 msgid "_General Journal"
-msgstr "دفتر اليومية العامة"
+msgstr "_دفتر اليومية العامة"
 
 #: gnucash/gnome/gnc-plugin-register2.c:58
 #, fuzzy
@@ -8765,10 +8750,8 @@ msgstr "فتح ملف/موقع"
 
 #: gnucash/gnome-utils/gnc-gnome-utils.c:513
 #: gnucash/gnome-utils/gnc-gnome-utils.c:553
-#, fuzzy
-#| msgid "GnuCash could not find the associated file."
 msgid "GnuCash could not find the linked document."
-msgstr "جنوكاش لا يمكنه العثور على ملفات المرتبطة"
+msgstr "جنوكاش لا يمكنه العثور على ملفات المرتبطة."
 
 #: gnucash/gnome-utils/gnc-gnome-utils.c:583
 #, fuzzy

commit 1420368b5b3a8ce4fb8ec804473be811741da100
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Mon Apr 11 09:36:52 2022 +0800

    [balsheet-pnl] faster definition of balance lists
    
    because the accounts and accounts-cols-data have direct 1-to-1
    mapping, it is not necessary to map accounts and retrieve from
    accounts-cols-data. mapping from accounts-cols-data produces
    identical results, avoiding O(N^2) access from accounts-cols-data.

diff --git a/gnucash/report/reports/standard/balsheet-pnl.scm b/gnucash/report/reports/standard/balsheet-pnl.scm
index 79b81542f..085b60a32 100644
--- a/gnucash/report/reports/standard/balsheet-pnl.scm
+++ b/gnucash/report/reports/standard/balsheet-pnl.scm
@@ -753,17 +753,17 @@ also show overall period profit & loss."))
          ;; account-balances is a list of monetary amounts
          (accounts-balances
           (map
-           (lambda (acc)
-             (cons acc (let ((cols-data (assoc-ref accounts-cols-data acc)))
-                         (map col-datum-get-split-balance cols-data))))
-           accounts))
+           (match-lambda
+             ((acc . cols-data)
+              (cons acc (map col-datum-get-split-balance cols-data))))
+           accounts-cols-data))
 
          (accounts-balances-with-closing
           (map
-           (lambda (acc)
-             (cons acc (let ((cols-data (assoc-ref accounts-cols-data acc)))
-                         (map col-datum-get-split-balance-with-closing cols-data))))
-           accounts))
+           (match-lambda
+             ((acc . cols-data)
+              (cons acc (map col-datum-get-split-balance-with-closing cols-data))))
+           accounts-cols-data))
 
          (exchange-fn (and common-currency
                            (gnc:case-exchange-time-fn
@@ -914,11 +914,10 @@ also show overall period profit & loss."))
              ;; split is the last one at date boundary
              (accounts-splits-dates
               (map
-               (lambda (acc)
-                 (cons acc (let ((cols-data (assoc-ref accounts-cols-data acc)))
-                             (list->vector
-                              (map col-datum-get-last-split cols-data)))))
-               accounts))
+               (match-lambda
+                 ((acc . cols-data)
+                  (cons acc (list->vector (map col-datum-get-last-split cols-data)))))
+               accounts-cols-data))
 
              (get-cell-anchor-fn
               (lambda (account col-idx)
@@ -944,10 +943,10 @@ also show overall period profit & loss."))
              ;; dates. split-value-balance determined by transaction currency.
              (accounts-value-balances
               (map
-               (lambda (acc)
-                 (cons acc (let ((cols-data (assoc-ref accounts-cols-data acc)))
-                             (map col-datum-get-split-value-balance cols-data))))
-               accounts))
+               (match-lambda
+                 ((acc . cols-data)
+                  (cons acc (map col-datum-get-split-value-balance cols-data))))
+               accounts-cols-data))
 
              ;; a vector of collectors whereby each collector is the sum
              ;; of asset and liability split-value-balances at report

commit 736d2231987e8578ab2f70cef46cbce4e0e5f17a
Merge: d022651f3 aab33954e
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sun Apr 10 12:05:08 2022 +0800

    Merge branch 'maint-progress3' into maint #1312


commit d022651f38fdee1a9ceca100c819455db3a1c7b9
Merge: 6a668df16 40d5db43e
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sun Apr 10 12:04:51 2022 +0800

    Merge branch 'maint-progress2' into maint #1311


commit 40d5db43e63a749ea70af4330a226119b6e6e1b3
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Wed Apr 6 07:15:39 2022 +0800

    Bug 797163 - qof_book_get_option segfaults when retrieving a non-leaf frame
    
    returns a KvpFrame into a nested list of pairs
    returns a KvpValue GLIST into a list

diff --git a/bindings/guile/gnc-kvp-guile.cpp b/bindings/guile/gnc-kvp-guile.cpp
index e9748ebbf..33c04cf33 100644
--- a/bindings/guile/gnc-kvp-guile.cpp
+++ b/bindings/guile/gnc-kvp-guile.cpp
@@ -1,6 +1,7 @@
 #include <guid.hpp>
 #include <kvp-frame.hpp>
 #include <libguile.h>
+#include <numeric>
 
 extern "C"
 {
@@ -21,6 +22,17 @@ extern "C"
  *       types based only on the scheme type.
  */
 
+static bool scm_is_list_of_string_pairs (SCM val)
+{
+    for (; !scm_is_null (val); val = scm_cdr (val))
+    {
+        if (!(scm_is_pair (val) && scm_is_pair (scm_car (val)) &&
+              scm_is_string (scm_caar (val))))
+            return false;
+    }
+    return true;
+}
+
 KvpValue *
 gnc_scm_to_kvp_value_ptr(SCM val)
 {
@@ -59,16 +71,31 @@ gnc_scm_to_kvp_value_ptr(SCM val)
     {
         return new KvpValue{gnc_scm_to_utf8_string(val)};
     }
-    else if (SWIG_IsPointerOfType(val, SWIG_TypeQuery("_p_KvpFrame")))
+    else if (!scm_is_null (val) && scm_is_list_of_string_pairs (val))
+    {
+        auto frame = new KvpFrame;
+        for (; !scm_is_null (val); val = scm_cdr (val))
+        {
+            auto key_str = scm_to_utf8_stringn (scm_caar (val), nullptr);
+            auto val_scm = scm_cdar (val);
+            auto prev = frame->set ({key_str}, gnc_scm_to_kvp_value_ptr (val_scm));
+            g_free (key_str);
+            // there is a pre-existing key-value
+            if (prev)
+                delete prev;
+        }
+        return new KvpValue (frame);
+    }
+    else if (!scm_is_null (val) && scm_is_list (val))
     {
-#define FUNC_NAME G_STRFUNC
-        auto vp_frame = SWIG_MustGetPtr(val,
-                                        SWIG_TypeQuery("_p_KvpFrame"), 1, 0);
-        KvpFrame *frame = static_cast<KvpFrame*>(vp_frame);
-#undef FUNC_NAME
-        return new KvpValue{frame};
+        GList *kvplist = nullptr;
+        for (; !scm_is_null (val); val = scm_cdr (val))
+        {
+            auto elt = gnc_scm_to_kvp_value_ptr (scm_car (val));
+            kvplist = g_list_prepend (kvplist, elt);
+        }
+        return new KvpValue (g_list_reverse (kvplist));
     }
-    /* FIXME: add list handler here */
     return NULL;
 }
 
@@ -102,12 +129,26 @@ gnc_kvp_value_ptr_to_scm(KvpValue* val)
     break;
     case KvpValue::Type::FRAME:
     {
-        auto frame = val->get<KvpFrame*>();
-        if (frame != nullptr)
-            return SWIG_NewPointerObj(frame, SWIG_TypeQuery("_p_KvpFrame"), 0);
+        auto frame { val->get<KvpFrame*>() };
+        auto acc = [](const auto& rv, const auto& iter)
+        {
+            auto key_scm { scm_from_utf8_string (iter.first) };
+            auto val_scm { gnc_kvp_value_ptr_to_scm (iter.second) };
+            return scm_acons (key_scm, val_scm, rv);
+        };
+        return scm_reverse (std::accumulate (frame->begin(), frame->end(), SCM_EOL, acc));
     }
     break;
     case KvpValue::Type::GLIST:
+    {
+        SCM lst = SCM_EOL;
+        for (GList *n = val->get<GList*>(); n; n = n->next)
+        {
+            auto elt = gnc_kvp_value_ptr_to_scm (static_cast<KvpValue*>(n->data));
+            lst = scm_cons (elt, lst);
+        }
+        return scm_reverse (lst);
+    }
     default:
 	break;
     }
diff --git a/bindings/guile/test/CMakeLists.txt b/bindings/guile/test/CMakeLists.txt
index ee48e6f49..75e792795 100644
--- a/bindings/guile/test/CMakeLists.txt
+++ b/bindings/guile/test/CMakeLists.txt
@@ -61,6 +61,7 @@ set (scm_tests_with_srfi64_SOURCES
   test-core-utils.scm
   test-business-core.scm
   test-scm-engine.scm
+  test-scm-kvpvalue.scm
   )
 
 if (HAVE_SRFI64)
diff --git a/bindings/guile/test/test-scm-kvpvalue.scm b/bindings/guile/test/test-scm-kvpvalue.scm
new file mode 100644
index 000000000..a8d36b801
--- /dev/null
+++ b/bindings/guile/test/test-scm-kvpvalue.scm
@@ -0,0 +1,68 @@
+(use-modules (srfi srfi-64))
+(use-modules (tests srfi64-extras))
+(use-modules (gnucash engine))
+(use-modules (gnucash app-utils))
+
+(define (run-test)
+  (test-runner-factory gnc:test-runner)
+  (test-begin "test-app-utils")
+  (test-kvp-access)
+  (test-end "test-app-utils"))
+
+(define (setup book)
+  (qof-book-set-option book "bla" '("top" "lvl1a"))
+  (qof-book-set-option book "arg" '("top" "lvl1b"))
+  (qof-book-set-option book "baf" '("top" "lvl1c" "lvl2" "lvl3")))
+
+(define (teardown)
+  (gnc-clear-current-session))
+
+(define (test-kvp-access)
+  (define book (gnc-get-current-book))
+  (test-begin "kvp-access from guile")
+
+  (setup book)
+
+  (test-equal "top/lvl1a"
+    "bla"
+    (qof-book-get-option book '("top" "lvl1a")))
+
+  (test-equal "top/lvl1b"
+    "arg"
+    (qof-book-get-option book '("top" "lvl1b")))
+
+  (test-equal "top/lvl1c/lvl2/lvl3"
+    "baf"
+    (qof-book-get-option book '("top" "lvl1c" "lvl2" "lvl3")))
+
+  (test-equal "top/lvl1c/lvl2"
+    '(("lvl3" . "baf"))
+    (qof-book-get-option book '("top" "lvl1c" "lvl2")))
+
+  (test-equal "top/lvl1c"
+    '(("lvl2" ("lvl3" . "baf")))
+    (qof-book-get-option book '("top" "lvl1c")))
+
+  ;; this tests the reading & writing of KvpFrame, copying branch
+  ;; from top/lvl1c to top/lvl1d
+  (qof-book-set-option book
+                       (qof-book-get-option book '("top" "lvl1c"))
+                       '("top" "lvl1d"))
+
+  (test-equal "top/lvl1d, after copying from top/lvl1c"
+    '(("lvl2" ("lvl3" . "baf")))
+    (qof-book-get-option book '("top" "lvl1d")))
+
+  (test-equal "top/lvl1c/lvl2/error"
+    #f
+    (qof-book-get-option book '("top" "lvl1c" "lvl2" "error")))
+
+  (test-equal "top"
+    '(("lvl1a" . "bla")
+      ("lvl1b" . "arg")
+      ("lvl1c" ("lvl2" ("lvl3" . "baf")))
+      ("lvl1d" ("lvl2" ("lvl3" . "baf"))))
+    (qof-book-get-option book '("top")))
+
+  (test-end "kvp-access from guile")
+  (teardown))

commit 0c4d438a0e027f2dd295bc5f679adfe56f69f389
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Wed Apr 6 07:15:09 2022 +0800

    [kvp-frame.cpp] expose iterator, skip inexistent frame

diff --git a/libgnucash/engine/kvp-frame.cpp b/libgnucash/engine/kvp-frame.cpp
index 74d33b8fa..56be042d4 100644
--- a/libgnucash/engine/kvp-frame.cpp
+++ b/libgnucash/engine/kvp-frame.cpp
@@ -78,6 +78,8 @@ KvpFrame::get_child_frame_or_nullptr (Path const & path) noexcept
     if (map_iter == m_valuemap.end ())
         return nullptr;
     auto child = map_iter->second->get <KvpFrame *> ();
+    if (!child)
+        return nullptr;
     Path send;
     std::copy (path.begin () + 1, path.end (), std::back_inserter (send));
     return child->get_child_frame_or_nullptr (send);
diff --git a/libgnucash/engine/kvp-frame.hpp b/libgnucash/engine/kvp-frame.hpp
index 253eec318..704d5a3d7 100644
--- a/libgnucash/engine/kvp-frame.hpp
+++ b/libgnucash/engine/kvp-frame.hpp
@@ -226,6 +226,9 @@ struct KvpFrameImpl
     bool empty() const noexcept { return m_valuemap.empty(); }
     friend int compare(const KvpFrameImpl&, const KvpFrameImpl&) noexcept;
 
+    map_type::iterator begin() { return m_valuemap.begin(); }
+    map_type::iterator end() { return m_valuemap.end(); }
+
     private:
     map_type m_valuemap;
 

commit aab33954e73567c21e98bb5c610fefa880640049
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Fri Apr 8 22:34:15 2022 +0800

    [gnc-numeric.cpp] Reduce logging level of gnc_numeric exception message
    
    Exceptions are expected in some use cases.

diff --git a/libgnucash/engine/gnc-numeric.cpp b/libgnucash/engine/gnc-numeric.cpp
index 277e01e0f..3beaddfbb 100644
--- a/libgnucash/engine/gnc-numeric.cpp
+++ b/libgnucash/engine/gnc-numeric.cpp
@@ -1090,7 +1090,7 @@ gnc_numeric_to_decimal(gnc_numeric *a, guint8 *max_decimal_places)
     }
     catch (const std::exception& err)
     {
-        PWARN("%s", err.what());
+        PINFO ("%s", err.what());
         return FALSE;
     }
 }

commit ebbf7565c985dd03dd14135c6cd4b5b6770c74ac
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Tue Apr 5 23:15:26 2022 +0800

    Bug 798496 - gncEntry Quantity and Discount are misusing commodity scu

diff --git a/gnucash/register/ledger-core/gncEntryLedger.c b/gnucash/register/ledger-core/gncEntryLedger.c
index bff49b369..6bcfb8d0c 100644
--- a/gnucash/register/ledger-core/gncEntryLedger.c
+++ b/gnucash/register/ledger-core/gncEntryLedger.c
@@ -265,22 +265,6 @@ gnc_entry_ledger_config_cells (GncEntryLedger *ledger)
     ((ComboCell *)
      gnc_table_layout_get_cell (ledger->table->layout, ENTRY_ACTN_CELL), FALSE);
 
-    /* Use GNC_COMMODITY_MAX_FRACTION for all prices and quantities */
-    gnc_price_cell_set_fraction
-    ((PriceCell *)
-     gnc_table_layout_get_cell (ledger->table->layout, ENTRY_PRIC_CELL),
-     GNC_COMMODITY_MAX_FRACTION);
-
-    gnc_price_cell_set_fraction
-    ((PriceCell *)
-     gnc_table_layout_get_cell (ledger->table->layout, ENTRY_DISC_CELL),
-     GNC_COMMODITY_MAX_FRACTION);
-
-    gnc_price_cell_set_fraction
-    ((PriceCell *) gnc_table_layout_get_cell (ledger->table->layout,
-            ENTRY_QTY_CELL),
-     GNC_COMMODITY_MAX_FRACTION);
-
     /* add menu items for the action and payment cells */
     gnc_entry_ledger_config_action (ledger);
 }

commit 8adedc22482fb1c6f9b9f70726f4c6f6b3c5e573
Author: luz paz <luzpaz at pm.me>
Date:   Fri Apr 1 09:02:10 2022 -0400

    Fix various typos
    
    Found via `codespell -q 3 -S *.po,./po,*.min.js,./ChangeLog*,./NEWS,./borrowed,./doc/README*,./AUTHORS,./libgnucash/tax/us/txf-de*,./data/accounts -L ans,ba,cas,dragable,gae,iff,iif,mut,nd,numer,parm,parms,startd,stoll`

diff --git a/CMakeLists.txt b/CMakeLists.txt
index a738da2da..9184e0287 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -83,7 +83,7 @@ foreach(install_dir ${CMAKE_INSTALL_FULL_BINDIR}
   string(FIND ${install_dir} ${CMAKE_INSTALL_PREFIX} in_prefix)
   if(NOT (in_prefix EQUAL 0))
     set(ENABLE_BINRELOC OFF)
-    message(WARNING "${install_dir} is set outside of the intallation prefix ${CMAKE_INSTALL_PREFIX}. That will break relocation so ENABLE_BINRELOC is set to off. With relocation disabled GnuCash will run only in its configured install location. You must set GNC_UNINSTALLED=1 and GNC_BUILDDIR=/path/to/builddir to run from the build directory. GnuCash will not run from a DESTDIR.")
+    message(WARNING "${install_dir} is set outside of the installation prefix ${CMAKE_INSTALL_PREFIX}. That will break relocation so ENABLE_BINRELOC is set to off. With relocation disabled GnuCash will run only in its configured install location. You must set GNC_UNINSTALLED=1 and GNC_BUILDDIR=/path/to/builddir to run from the build directory. GnuCash will not run from a DESTDIR.")
     break()
   endif()
 endforeach()
diff --git a/cmake/configure-appdata.cmake b/cmake/configure-appdata.cmake
index c5ddeacdc..52330bebf 100644
--- a/cmake/configure-appdata.cmake
+++ b/cmake/configure-appdata.cmake
@@ -18,7 +18,7 @@
 # - SRC_DIR (top level source code directory)
 # - SRC (full path to gnucash.appdata.xml.in)
 # - DST (full path to destination for gnucash.appdata.xml)
-# - REL_FILE (path to file containg (packaging) release info)
+# - REL_FILE (path to file containing (packaging) release info)
 # - VCS_INFO_FILE (full path to gnc-vcs-info.h - can be in source tree (release builds) or build tree (git builds))
 # - GNUCASH_BUILD_ID (optional, extra version information supplied by packagers)
 
diff --git a/common/cmake_modules/GncAddSchemeTargets.cmake b/common/cmake_modules/GncAddSchemeTargets.cmake
index 3dea80613..63c1b3d20 100644
--- a/common/cmake_modules/GncAddSchemeTargets.cmake
+++ b/common/cmake_modules/GncAddSchemeTargets.cmake
@@ -135,8 +135,8 @@ endmacro(find_guile_dirs)
 # If keyword TEST is specified this target will be treated as a test target.
 # That is its compiled files won't be installed and will be added to the set
 # of tests to run via the "check" target. If TEST is not set the targets are
-# considerd normal targets and will be added to the list of files to install.
-# They will be installed in the guile compied directory relative to the prefix
+# considered normal targets and will be added to the list of files to install.
+# They will be installed in the guile compiled directory relative to the prefix
 # set up for this build, with the OUTPUT_DIR appended to it. For example:
 # /usr/local/lib/x86_64-linux-gnu/guile/2.0/site-cache/gnucash
 function(gnc_add_scheme_targets _TARGET)
diff --git a/common/cmake_modules/GncAddSwigCommand.cmake b/common/cmake_modules/GncAddSwigCommand.cmake
index 0276556b2..05e181084 100644
--- a/common/cmake_modules/GncAddSwigCommand.cmake
+++ b/common/cmake_modules/GncAddSwigCommand.cmake
@@ -6,7 +6,7 @@
 
 # gnc_add_swig_guile_command is used to generate guile swig wrappers
 # - _target is the name of a global target that will be set for this wrapper file,
-#    this can be used elsewhere to create a depencency on this wrapper
+#    this can be used elsewhere to create a dependency on this wrapper
 # - _out_var will be set to the full path to the generated wrapper file
 # - _output is the name of the wrapper file to generate
 # - _input is the swig interface file (*.i) to generate this wrapper from
@@ -47,7 +47,7 @@ endmacro (gnc_add_swig_guile_command)
 # gnc_add_swig_python_command is used to generate python swig wrappers
 # from the tarball will be used instead
 # - _target is the name of a global target that will be set for this wrapper file,
-#    this can be used elsewhere to create a depencency on this wrapper
+#    this can be used elsewhere to create a dependency on this wrapper
 # - _out_var will be set to the full path to the generated wrapper file
 # - _py_out_var is the same but for the python module that's generated together with the wrapper
 # - _output is the name of the wrapper file to generate
diff --git a/common/debug/valgrind/valgrind-libgda.supp b/common/debug/valgrind/valgrind-libgda.supp
index 64d5f971d..d940c483a 100644
--- a/common/debug/valgrind/valgrind-libgda.supp
+++ b/common/debug/valgrind/valgrind-libgda.supp
@@ -37,7 +37,7 @@
 #     if Free: name of free-ing fn)
 
 {
-	libgda permanant memory for gda_paramlist_dtd
+	libgda permanent memory for gda_paramlist_dtd
 	Memcheck:Leak
 	fun:malloc
 	fun:xmlStrndup
diff --git a/common/test-core/test-stuff.h b/common/test-core/test-stuff.h
index 6da2adb11..6c51e136f 100644
--- a/common/test-core/test-stuff.h
+++ b/common/test-core/test-stuff.h
@@ -86,7 +86,7 @@ void print_test_results(void);
  * Use this to set whether successful tests
  * should print a message.
  * Default is false.
- * Successful test messages are useful while initally constructing the
+ * Successful test messages are useful while initially constructing the
  * test suite, but when it's completed, no news is good news.
  * A successful test run will be indicated by the message
  * from print_test_results().
diff --git a/common/test-core/unittest-support.h b/common/test-core/unittest-support.h
index f9e4849c0..64eff447d 100644
--- a/common/test-core/unittest-support.h
+++ b/common/test-core/unittest-support.h
@@ -339,7 +339,7 @@ gboolean test_object_checked_destroy (GObject *obj);
 /**
  * Ensures that a GObject is still alive at the time
  * it's called and that it is finalized. The first assertion will
- * trigger if you pass it a ponter which isn't a GObject -- which
+ * trigger if you pass it a pointer which isn't a GObject -- which
  * could be the case if the object has already been finalized. Then it
  * calls test_object_checked_destroy() on it, asserting if the
  * finalize method wasn't called (which indicates a leak).
diff --git a/contrib/rapid2gnucash.py b/contrib/rapid2gnucash.py
index 76cfd698b..b408333dc 100755
--- a/contrib/rapid2gnucash.py
+++ b/contrib/rapid2gnucash.py
@@ -23,7 +23,7 @@ Convert a CSV file exported from Rapid Electronics (UK) to a form importable by
 Line format is:
 line number,product code,quantity,availability,product description,unit price,discounts,line total,delivery,sub total,vat,grand total
 
-Useage: rapid2gnucash.py  DOWNLOADED_BASKET.csv "ORDER_NUMBER" <"Expense account">  >  output.csv
+Usage: rapid2gnucash.py  DOWNLOADED_BASKET.csv "ORDER_NUMBER" <"Expense account">  >  output.csv
 
 We need to remove first line and totals
 
@@ -46,7 +46,7 @@ try:
 	INV_ID=sys.argv[2]
 except:
 	print "No order number  specified."
-	print "Useage: rapid2gnucash.py  DOWNLOADED_BASKET.csv \"ORDER_NUMBER\""
+	print "Usage: rapid2gnucash.py  DOWNLOADED_BASKET.csv \"ORDER_NUMBER\""
 	quit(1)
 try:
 	ACCOUNT=sys.argv[3]
diff --git a/doc/examples/taxreport.gnucash b/doc/examples/taxreport.gnucash
index 9ff77e6b0..818802d55 100644
--- a/doc/examples/taxreport.gnucash
+++ b/doc/examples/taxreport.gnucash
@@ -2116,7 +2116,7 @@
   <act:parent type="guid">ce8a0ff9cfc2c79c99e6c65d5e258a55</act:parent>
 </gnc:account>
 <gnc:account version="2.0.0">
-  <act:name>Pension Contrbution</act:name>
+  <act:name>Pension Contribution</act:name>
   <act:id type="guid">91e7e5e4cd2374c9aca8024cdc1c4997</act:id>
   <act:type>EXPENSE</act:type>
   <act:commodity>
@@ -2929,7 +2929,7 @@
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Federal 
-Witholding</act:name>
+Withholding</act:name>
   <act:id type="guid">2ea59a43e4fa1b7225e3b8896c74713d</act:id>
   <act:type>EXPENSE</act:type>
   <act:commodity>
@@ -3555,7 +3555,7 @@ Witholding</act:name>
   <trn:date-entered>
     <ts:date>2000-09-17 20:34:05 +0200</ts:date>
   </trn:date-entered>
-  <trn:description>Fed Tax Witholding</trn:description>
+  <trn:description>Fed Tax Withholding</trn:description>
   <trn:splits>
     <trn:split>
       <split:id type="guid">7faf50cecbe6d64bd04275aa35974d02</split:id>
diff --git a/gnucash/gnome-utils/gnc-cell-view.c b/gnucash/gnome-utils/gnc-cell-view.c
index 2a68dad32..508586a16 100644
--- a/gnucash/gnome-utils/gnc-cell-view.c
+++ b/gnucash/gnome-utils/gnc-cell-view.c
@@ -226,7 +226,7 @@ gcv_start_editing (GtkCellEditable *cell_editable,
     GncCellView *cv = GNC_CELL_VIEW(cell_editable);
     GtkTextIter siter, eiter;
 
-    // Remove the text_view tooltip after 5secs to stop it recuring
+    // Remove the text_view tooltip after 5secs to stop it recurring
     cv->tooltip_id = g_timeout_add (5000, (GSourceFunc) gcv_remove_tooltip, cv);
 
     gtk_text_buffer_get_bounds (cv->buffer, &siter, &eiter);
diff --git a/gnucash/gnome-utils/gnc-frequency.h b/gnucash/gnome-utils/gnc-frequency.h
index 9889c0ba6..561824da8 100644
--- a/gnucash/gnome-utils/gnc-frequency.h
+++ b/gnucash/gnome-utils/gnc-frequency.h
@@ -97,7 +97,7 @@ void gnc_frequency_set_frequency_label_text (GncFrequency *gf, const gchar *txt)
 
 /**
  * Set the label text for the date entry widget. In the current
- * impelmentation, the default label text is "Start Date"
+ * implementation, the default label text is "Start Date"
  */
 void gnc_frequency_set_date_label_text (GncFrequency *gf, const gchar *txt);
 
diff --git a/gnucash/gnome-utils/gnc-main-window.c b/gnucash/gnome-utils/gnc-main-window.c
index fdff025c1..a991bbcc9 100644
--- a/gnucash/gnome-utils/gnc-main-window.c
+++ b/gnucash/gnome-utils/gnc-main-window.c
@@ -1410,7 +1410,7 @@ gnc_main_window_quit(GncMainWindow *window)
     {
         GList *w, *next;
 
-        /* This is not a typical list iteration. There is a possability
+        /* This is not a typical list iteration. There is a possibility
          * that the window maybe removed from the active_windows list so
          * we have to cache the 'next' pointer before executing any code
          * in the loop. */
diff --git a/gnucash/gnome/dialog-print-check.c b/gnucash/gnome/dialog-print-check.c
index ad01d1d5a..1a3b65ddc 100644
--- a/gnucash/gnome/dialog-print-check.c
+++ b/gnucash/gnome/dialog-print-check.c
@@ -315,7 +315,7 @@ struct _print_check_dialog
 };
 
 
-/* This function walks ths list of available check formats looking for a
+/* This function walks the list of available check formats looking for a
  * specific format as specified by guid number.  If found, a pointer to it is
  * returned to the caller.  Additionally, if the caller passed a pointer to a
  * GtkTreeIter, then the iter for that entry will also be returned.
diff --git a/gnucash/gnome/dialog-sx-editor.c b/gnucash/gnome/dialog-sx-editor.c
index e79e3f2ac..1c6a5ee89 100644
--- a/gnucash/gnome/dialog-sx-editor.c
+++ b/gnucash/gnome/dialog-sx-editor.c
@@ -751,7 +751,7 @@ check_transaction_splits (Transaction *txn, gpointer data)
                                                sd->tcds))
         {
             gchar *message = g_strdup_printf
-                (_("Split with memo %s has an unparseable Credit Formula."),
+                (_("Split with memo %s has an unparsable Credit Formula."),
                  xaccSplitGetMemo (s));
             split_error_warning_dialog (sd->sxed->dialog,
                                         _("Unparsable Formula in Split"),
@@ -767,7 +767,7 @@ check_transaction_splits (Transaction *txn, gpointer data)
 
         {
             gchar *message = g_strdup_printf
-                (_("Split with memo %s has an unparseable Debit Formula."),
+                (_("Split with memo %s has an unparsable Debit Formula."),
                  xaccSplitGetMemo (s));
             split_error_warning_dialog (sd->sxed->dialog,
                                         _("Unparsable Formula in Split"),
diff --git a/gnucash/gnome/window-reconcile2.c b/gnucash/gnome/window-reconcile2.c
index 24b551fd8..9d4c4009f 100644
--- a/gnucash/gnome/window-reconcile2.c
+++ b/gnucash/gnome/window-reconcile2.c
@@ -569,7 +569,7 @@ gnc_save_reconcile_interval (Account *account, time64 statement_date)
 
     /*
      * See if we need to remember days(weeks) or months.  The only trick
-     * value is 28 days which could be wither 4 weeks or 1 month.
+     * value is 28 days which could be either 4 weeks or 1 month.
      */
     if (days == 28)
     {
diff --git a/gnucash/gschemas/pref_transformations.xml b/gnucash/gschemas/pref_transformations.xml
index 66f4a0191..d55b59b59 100644
--- a/gnucash/gschemas/pref_transformations.xml
+++ b/gnucash/gschemas/pref_transformations.xml
@@ -22,7 +22,7 @@
 
     <release version="encoded_version">
        ...
-    </releaase>
+    </release>
 
     encoded_version = gnucash_major  * 1000 + gnucash_minor
     For example for gnucash 4.7 encoded_version becomes 4 * 1000 + 7 = 4007
diff --git a/gnucash/import-export/import-backend.c b/gnucash/import-export/import-backend.c
index c17487a22..a993c3229 100644
--- a/gnucash/import-export/import-backend.c
+++ b/gnucash/import-export/import-backend.c
@@ -461,7 +461,7 @@ TransactionGetTokens(GNCImportTransInfo *info)
     tokens = tokenize_string(tokens, text);
 
     /* The day of week the transaction occurred is a good indicator of
-     * what account this transaction belongs in.  Get the date and covert
+     * what account this transaction belongs in.  Get the date and convert
      * it to day of week as a token
      */
     transtime = xaccTransGetDate(transaction);
diff --git a/gnucash/import-export/import-main-matcher.c b/gnucash/import-export/import-main-matcher.c
index 4486b944a..b3f3dd4d1 100644
--- a/gnucash/import-export/import-main-matcher.c
+++ b/gnucash/import-export/import-main-matcher.c
@@ -333,7 +333,7 @@ get_trans_info (GtkTreeModel* model, GtkTreeIter* iter)
                         -1);
     return transaction_info;
 }
-/* This fuction find the top matching register transaction for the imported transaction pointed to by iter
+/* This function finds the top matching register transaction for the imported transaction pointed to by iter
  * It then goes through the list of all other imported transactions and creates a list of the ones that
  * have the same register transaction as their top match (i.e., are in conflict). It finds the best of them
  * (match-score-wise) and returns the rest as a list. The imported transactions in that list will get their
diff --git a/gnucash/import-export/qif-imp/test/test-qif-merge-groups.scm b/gnucash/import-export/qif-imp/test/test-qif-merge-groups.scm
index e1177aebb..f0320de03 100644
--- a/gnucash/import-export/qif-imp/test/test-qif-merge-groups.scm
+++ b/gnucash/import-export/qif-imp/test/test-qif-merge-groups.scm
@@ -87,7 +87,7 @@
           2
           (length (assoc-ref matches new-txn2)))
 
-        (test-equal "test-gnc:account-tree-find-duplicates - 3nd txn matches none"
+        (test-equal "test-gnc:account-tree-find-duplicates - 3rd txn matches none"
           #f
           (assoc-ref matches new-txn3))
 
diff --git a/gnucash/python/pycons/pycons b/gnucash/python/pycons/pycons
index 6510d7573..9428c8f35 100644
--- a/gnucash/python/pycons/pycons
+++ b/gnucash/python/pycons/pycons
@@ -113,7 +113,7 @@ def replace (console, canvas, anchor):
 
 # ----------------------------------------------------------------------- refresh
 def refresh(console):
-    """ Refreshs all active canvas  """
+    """ Refreshes all active canvas  """
 
     figures = console.figures
     for fig in figures:
@@ -213,7 +213,7 @@ def insert (console, figure):
 
 # ----------------------------------------------------------------------- refresh
 def refresh(console):
-    """ Refreshs all active canvas  """
+    """ Refreshes all active canvas  """
     figures = console.figures
     for fig in figures:
         figure, canvas, anchor = fig
diff --git a/gnucash/register/ledger-core/split-register.c b/gnucash/register/ledger-core/split-register.c
index 88824e42b..6c0bfa4a1 100644
--- a/gnucash/register/ledger-core/split-register.c
+++ b/gnucash/register/ledger-core/split-register.c
@@ -1490,7 +1490,7 @@ gnc_split_register_save_to_copy_buffer (SplitRegister *reg,
 
     /* use the changed flag to avoid heavy-weight updates
      * of the split & transaction fields. This will help
-     * cut down on unneccessary register redraws. */
+     * cut down on unnecessary register redraws. */
     if (!gnc_table_current_cursor_changed (reg->table, FALSE))
         return FALSE;
 
diff --git a/libgnucash/app-utils/gnc-ui-util.h b/libgnucash/app-utils/gnc-ui-util.h
index 4e8867d10..ef133bb0e 100644
--- a/libgnucash/app-utils/gnc-ui-util.h
+++ b/libgnucash/app-utils/gnc-ui-util.h
@@ -446,7 +446,7 @@ gchar * gnc_filter_text_for_control_chars (const gchar *incoming_text);
  *
  * @param symbol to remove
  *
- * @param cursor_position the posistion of cursor in the incoming text
+ * @param cursor_position the position of cursor in the incoming text
  *
  * @return nothing
 */
@@ -460,7 +460,7 @@ void gnc_filter_text_set_cursor_position (const gchar *incoming_text,
  *
  * @param symbol to remove
  *
- * @param cursor_position the posistion of cursor in the incoming text
+ * @param cursor_position the position of cursor in the incoming text
  *
  * @return The incoming text with symbol removed to be freed by the caller
 */
diff --git a/libgnucash/app-utils/options.scm b/libgnucash/app-utils/options.scm
index 9e950dcfa..dc49f45ae 100644
--- a/libgnucash/app-utils/options.scm
+++ b/libgnucash/app-utils/options.scm
@@ -496,7 +496,7 @@ the option '~a'."))
        #f)
 
      ;; generate-restore-form
-     ;; "return 'ascii represention of a function'
+     ;; "return 'ascii representation of a function'
      ;; that will set the option passed as its lone parameter
      ;; to the value it was when the picker was first displayed"
      ;;
diff --git a/libgnucash/backend/xml/test/test-files/xml1/abcall.gml b/libgnucash/backend/xml/test/test-files/xml1/abcall.gml
index c14bf3a09..ee3e971c0 100644
--- a/libgnucash/backend/xml/test/test-files/xml1/abcall.gml
+++ b/libgnucash/backend/xml/test/test-files/xml1/abcall.gml
@@ -194,7 +194,7 @@
         </split>
         <split>
           <guid>686e0a76ab0ae02b10526729d4309509</guid>
-          <memo>soem as invst</memo>
+          <memo>some as invst</memo>
           <reconcile-state>n</reconcile-state>
           <value>-190000/100</value>
           <quantity>-190000/100</quantity>
diff --git a/libgnucash/backend/xml/test/test-files/xml2/abcall.gml2 b/libgnucash/backend/xml/test/test-files/xml2/abcall.gml2
index 398dcc384..33c366c66 100644
--- a/libgnucash/backend/xml/test/test-files/xml2/abcall.gml2
+++ b/libgnucash/backend/xml/test/test-files/xml2/abcall.gml2
@@ -236,7 +236,7 @@
     </trn:split>
     <trn:split>
       <split:id type="guid">686e0a76ab0ae02b10526729d4309509</split:id>
-      <split:memo>soem as invst</split:memo>
+      <split:memo>some as invst</split:memo>
       <split:reconciled-state>n</split:reconciled-state>
       <split:value>-190000/100</split:value>
       <split:quantity>-190000/100</split:quantity>
diff --git a/libgnucash/engine/Scrub.c b/libgnucash/engine/Scrub.c
index 424f1baeb..1754409c4 100644
--- a/libgnucash/engine/Scrub.c
+++ b/libgnucash/engine/Scrub.c
@@ -654,7 +654,7 @@ xaccTransClearTradingSplits (Transaction *trans)
 
     xaccTransBeginEdit (trans);
     /* destroy_splits doesn't actually free the splits but this gets
-     * the list ifself freed.
+     * the list itself freed.
      */
     g_list_free_full (trading_splits, destroy_split);
     xaccTransCommitEdit (trans);
diff --git a/libgnucash/engine/gnc-numeric.cpp b/libgnucash/engine/gnc-numeric.cpp
index 277e01e0f..e323a9c22 100644
--- a/libgnucash/engine/gnc-numeric.cpp
+++ b/libgnucash/engine/gnc-numeric.cpp
@@ -123,8 +123,8 @@ GncNumeric::GncNumeric(const std::string& str, bool autoround)
     static const std::string hex_frag("(0x[a-f0-9]+)");
     static const std::string slash( "[ \\t]*/[ \\t]*");
     /* The llvm standard C++ library refused to recognize the - in the
-     * numer_frag patter with the default ECMAScript syntax so we use the awk
-     * syntax.
+     * numer_frag pattern with the default ECMAScript syntax so we use the
+     * awk syntax.
      */
     static const regex numeral(numer_frag);
     static const regex hex(hex_frag);
diff --git a/libgnucash/engine/policy-p.h b/libgnucash/engine/policy-p.h
index 0ca7b04bc..973b8e570 100644
--- a/libgnucash/engine/policy-p.h
+++ b/libgnucash/engine/policy-p.h
@@ -44,7 +44,7 @@
  *  The PolicyGetLot() routine returns a lot into which the
  *     indicated split should be placed.
  *
- *  The PolicyGetSplit() routine returns an unassinged split
+ *  The PolicyGetSplit() routine returns an unassigned split
  *     from the account that is appropriate for placing into the
  *     indicated lot.  For the FIFO policy, that would be the
  *     earliest split that is not in any account, and is of the
diff --git a/libgnucash/engine/qofquery.h b/libgnucash/engine/qofquery.h
index 0af32384c..1bfc70cb0 100644
--- a/libgnucash/engine/qofquery.h
+++ b/libgnucash/engine/qofquery.h
@@ -115,7 +115,7 @@ typedef enum
 #define QOF_PARAM_VERSION "version"
 
 /* --------------------------------------------------------- */
-/** \name Query Subsystem Initialization and Shudown  */
+/** \name Query Subsystem Initialization and Shutdown  */
 // @{
 /** Subsystem initialization and shutdown. Call init() once
  *  to initialize the query subsystem; call shutdown() to free
diff --git a/libgnucash/engine/test/gtest-gnc-datetime.cpp b/libgnucash/engine/test/gtest-gnc-datetime.cpp
index d56cf2e6b..939876d7b 100644
--- a/libgnucash/engine/test/gtest-gnc-datetime.cpp
+++ b/libgnucash/engine/test/gtest-gnc-datetime.cpp
@@ -572,7 +572,7 @@ TEST(gnc_datetime_functions, test_date)
 /* This test works only in the America/LosAngeles time zone and
  * there's no straightforward way to make it more flexible. It ensures
  * that DST in that timezone transitions correctly for each day of the
- * week in which March begines.
+ * week in which March begins.
 
  TEST(gnc_datetime_functions, test_timezone_offset)
 {

commit c8f1caa95f6d6d9cba215a21d40e12c9164cdc81
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Tue Apr 5 23:15:09 2022 +0800

    Bug 798493 - Invoice Report Quantity & Unit Price fields have limited decimal precision on printed invoices
    
    use xaccPrintAmount which formats number nicely.

diff --git a/gnucash/report/reports/standard/invoice.scm b/gnucash/report/reports/standard/invoice.scm
index ef4263108..02916ff7f 100644
--- a/gnucash/report/reports/standard/invoice.scm
+++ b/gnucash/report/reports/standard/invoice.scm
@@ -447,7 +447,9 @@ for styling the invoice. Please see the exported report for the CSS class names.
           (addif (quantity-col used-columns)
                  (gnc:make-html-table-cell/markup
                   "number-cell"
-                  (gncEntryGetDocQuantity entry credit-note?)))
+                  (xaccPrintAmount
+                   (gncEntryGetDocQuantity entry credit-note?)
+                   (gnc-default-print-info #f))))
 
           (addif (price-col used-columns)
                  (gnc:make-html-table-cell/markup

commit 6a668df16851f21983af4556002b7dc1a1bf03f5
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Fri Apr 8 19:20:18 2022 +0800

    [qofutil.h] don't recurse includes

diff --git a/libgnucash/engine/qofutil.h b/libgnucash/engine/qofutil.h
index 79a02c6ff..0ce7cb168 100644
--- a/libgnucash/engine/qofutil.h
+++ b/libgnucash/engine/qofutil.h
@@ -40,7 +40,6 @@ extern "C"
 #include <stddef.h>
 #include "qof.h"
 #include "qoflog.h"
-#include "qofutil.h"
 #include "qofbackend.h"
 #include "qofclass.h"
 #include "qofbook.h"

commit fbaa416cfbc408f8e76ea28d8dbfa6281df03c30
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Apr 7 16:02:27 2022 -0700

    Fix gcc compilation errors.

diff --git a/gnucash/import-export/aqb/gnc-ab-utils.c b/gnucash/import-export/aqb/gnc-ab-utils.c
index d0804cffc..9707746b9 100644
--- a/gnucash/import-export/aqb/gnc-ab-utils.c
+++ b/gnucash/import-export/aqb/gnc-ab-utils.c
@@ -93,7 +93,7 @@ struct _GncABImExContextImport
     GData *tmp_job_list;
 };
 
-static inline is_leap_year (int year)
+static inline gboolean is_leap_year (int year)
 {
     return (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0 ));
 }
@@ -111,7 +111,7 @@ gnc_gwen_date_to_time64 (const GNC_GWEN_DATE* date)
      * that's the case then back up a day to get a real date for
      * posting.
      */
-    if (month == 2 && day <= 30 && day > is_leap_year(year) ? 29 : 28)
+    if (month == 2 && day <= 30 && day > (is_leap_year(year) ? 29 : 28))
         --day;
     return gnc_dmy2time64_neutral(day, month, year);
 #else

commit 7b1c0509f75f27ebd2a971fae7fd64fa34588589
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Apr 7 09:34:59 2022 -0700

    Fix wrong date of beginning of epoch.

diff --git a/gnucash/gnome-utils/gnc-date-edit.c b/gnucash/gnome-utils/gnc-date-edit.c
index 7f4181fbb..567a2cd99 100644
--- a/gnucash/gnome-utils/gnc-date-edit.c
+++ b/gnucash/gnome-utils/gnc-date-edit.c
@@ -655,7 +655,7 @@ gnc_date_edit_class_init (GNCDateEditClass *klass)
                                     PROP_TIME,
                                     g_param_spec_int64("time",
                                             "Date/time (seconds)",
-                                            "Date/time represented in seconds since Januari 31st, 1970",
+                                            "Date/time represented in seconds since midnight UTC, 1 January 1970",
                                             G_MININT64,
                                             G_MAXINT64,
                                             0,
diff --git a/gnucash/import-export/aqb/gnc-ab-utils.c b/gnucash/import-export/aqb/gnc-ab-utils.c
index be5905797..d0804cffc 100644
--- a/gnucash/import-export/aqb/gnc-ab-utils.c
+++ b/gnucash/import-export/aqb/gnc-ab-utils.c
@@ -93,13 +93,27 @@ struct _GncABImExContextImport
     GData *tmp_job_list;
 };
 
+static inline is_leap_year (int year)
+{
+    return (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0 ));
+}
+
 static inline time64
 gnc_gwen_date_to_time64 (const GNC_GWEN_DATE* date)
 {
 #if AQBANKING_VERSION_INT >= 59900
-    return gnc_dmy2time64_neutral(GWEN_Date_GetDay(date),
-                                  GWEN_Date_GetMonth(date),
-                                  GWEN_Date_GetYear(date));
+    int day = GWEN_Date_GetDay(date);
+    int month = GWEN_Date_GetMonth(date);
+    int year = GWEN_Date_GetYear(date);
+    /* Some banks use nominal 30-day months and set the value date as
+     * the day after the posted date. In February this can appear to
+     * be an invalid date because February has fewer than 30 days. If
+     * that's the case then back up a day to get a real date for
+     * posting.
+     */
+    if (month == 2 && day <= 30 && day > is_leap_year(year) ? 29 : 28)
+        --day;
+    return gnc_dmy2time64_neutral(day, month, year);
 #else
     int month, day, year;
     GWEN_Time_GetBrokenDownDate(date, &day, &month, &year);

commit 7147e8a6e59e04a6bc2e695039cb18a1929df18b
Author: Kárász Attila <cult.edie at gmail.com>
Date:   Wed Apr 6 11:36:00 2022 +0200

    Translation update  by Kárász Attila <cult.edie at gmail.com> using Weblate
    
    po/glossary/hu.po: 83.3% (180 of 216 strings; 23 fuzzy)
    2 failing checks (0.9%)
    Translation: GnuCash/Glossary (Hungarian)
    Translate-URL: https://hosted.weblate.org/projects/gnucash/glossary/hu/
    
    Translation update  by Kárász Attila <cult.edie at gmail.com> using Weblate
    
    po/hu.po: 55.9% (3018 of 5390 strings; 1396 fuzzy)
    527 failing checks (9.7%)
    Translation: GnuCash/Program (Hungarian)
    Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/
    
    Translation update  by Kárász Attila <cult.edie at gmail.com> using Weblate
    
    po/hu.po: 55.8% (3010 of 5390 strings; 1404 fuzzy)
    538 failing checks (9.9%)
    Translation: GnuCash/Program (Hungarian)
    Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/
    
    Co-authored-by: Kárász Attila <cult.edie at gmail.com>

diff --git a/po/glossary/hu.po b/po/glossary/hu.po
index b1f9a69cd..698454f27 100644
--- a/po/glossary/hu.po
+++ b/po/glossary/hu.po
@@ -10,7 +10,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug."
 "cgi?product=GnuCash&component=Translations\n"
 "POT-Creation-Date: 2021-12-05 20:11+0100\n"
-"PO-Revision-Date: 2022-03-16 10:54+0000\n"
+"PO-Revision-Date: 2022-04-06 09:35+0000\n"
 "Last-Translator: Kárász Attila <cult.edie at gmail.com>\n"
 "Language-Team: Hungarian <https://hosted.weblate.org/projects/gnucash/"
 "glossary/hu/>\n"
@@ -28,11 +28,11 @@ msgstr ""
 
 #. "Opening and closing quote symbols and optionally their key combos like [altgr]+[Y]/[X]. Define the preferred style of quotation, see https://en.wikipedia.org/wiki/Quotation_mark#Summary_table"
 msgid "\"\""
-msgstr ""
+msgstr "\"\""
 
 #. "A detailed record of money spent and received"
 msgid "account"
-msgstr "Számla "
+msgstr "Számla"
 
 #. "An alphanumerical key of an account in GnuCash, not at the bank, can be used to sort. Some templates provide them or the user can enter them."
 msgid "account code"
@@ -352,7 +352,7 @@ msgstr "Egyéni"
 
 #. "Compact, well-structured presentation of informations. See https://en.wikipedia.org/wiki/Dashboard_(business)"
 msgid "dashboard"
-msgstr ""
+msgstr "irányítópult"
 
 #. "The backend where the data is stored."
 msgid "database"
@@ -401,7 +401,7 @@ msgstr "Dupla bejegyzés"
 
 #. "Transactions or bills/invoices can contain a document link which links either to some file on the local disk or to some arbitrary URL."
 msgid "document link"
-msgstr ""
+msgstr "csatolt dokumentum"
 
 #. "The last day to pay an invoice in time."
 msgid "due date"
@@ -904,7 +904,7 @@ msgid "stock"
 msgstr ""
 
 msgid "due"
-msgstr ""
+msgstr "esedékes"
 
 msgid "Online"
 msgstr "Online"
diff --git a/po/hu.po b/po/hu.po
index 06476a62c..f0f930619 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -11,7 +11,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug."
 "cgi?product=GnuCash&component=Translations\n"
 "POT-Creation-Date: 2022-03-09 18:00-0800\n"
-"PO-Revision-Date: 2022-03-24 15:55+0000\n"
+"PO-Revision-Date: 2022-04-06 09:35+0000\n"
 "Last-Translator: Kárász Attila <cult.edie at gmail.com>\n"
 "Language-Team: Hungarian <https://hosted.weblate.org/projects/gnucash/"
 "gnucash/hu/>\n"
@@ -12666,11 +12666,8 @@ msgid "This dialog is presented before allowing you to cut a transaction."
 msgstr "E dialógus megjelenik, mielőtt engedélyezik egy tranzakció törlését."
 
 #: gnucash/gschemas/org.gnucash.GnuCash.warnings.gschema.xml.in:104
-#, fuzzy
 msgid "Cut a transaction with reconciled splits"
-msgstr ""
-"Nem lehet érvényteleníteni egyeztetett vagy igazolt résszel rendelkező "
-"tranzakciót."
+msgstr "Bontja a tranzakciót egyeztetett felosztással"
 
 #: gnucash/gschemas/org.gnucash.GnuCash.warnings.gschema.xml.in:105
 #, fuzzy
@@ -12699,11 +12696,8 @@ msgstr "E dialógus megjelenik, mielőtt engedélyezik egy tranzakció törlés
 
 #: gnucash/gschemas/org.gnucash.GnuCash.warnings.gschema.xml.in:114
 #: gnucash/gschemas/org.gnucash.GnuCash.warnings.gschema.xml.in:217
-#, fuzzy
 msgid "Delete a transaction with reconciled splits"
-msgstr ""
-"Nem lehet érvényteleníteni egyeztetett vagy igazolt résszel rendelkező "
-"tranzakciót."
+msgstr "Töröljük a tranzakciót egyeztetett felosztással"
 
 #: gnucash/gschemas/org.gnucash.GnuCash.warnings.gschema.xml.in:115
 #: gnucash/gschemas/org.gnucash.GnuCash.warnings.gschema.xml.in:218
@@ -12846,9 +12840,8 @@ msgid ""
 msgstr ""
 
 #: gnucash/gschemas/org.gnucash.GnuCash.window.pages.gschema.xml.in:5
-#, fuzzy
 msgid "Display this column"
-msgstr "Számla megjelenítése?"
+msgstr "Oszlop megjelenítése"
 
 #: gnucash/gschemas/org.gnucash.GnuCash.window.pages.gschema.xml.in:6
 msgid ""
@@ -12895,6 +12888,7 @@ msgid ""
 msgstr ""
 "\n"
 "Válasszon számlázási időszakot és záró napot az időszakhoz.\n"
+"\n"
 "A könyveket a kiválasztott napon éjfélkor zárják."
 
 #: gnucash/gtkbuilder/assistant-acct-period.glade:82
@@ -12963,9 +12957,8 @@ msgid "Choose File to Import"
 msgstr "Importálandó fájl kiválasztása"
 
 #: gnucash/gtkbuilder/assistant-csv-account-import.glade:99
-#, fuzzy
 msgid "Number of rows for the Header"
-msgstr "Cellák _száma:"
+msgstr "Sorok száma a fejlécben"
 
 #: gnucash/gtkbuilder/assistant-csv-account-import.glade:145
 #, fuzzy
@@ -13002,11 +12995,12 @@ msgstr ""
 
 #: gnucash/gtkbuilder/assistant-csv-account-import.glade:279
 #: gnucash/gtkbuilder/assistant-csv-export.glade:708
-#, fuzzy
 msgid ""
 "Press Apply to create export file.\n"
 "Cancel to abort."
-msgstr "Nyomjon Alkalmazást a tranzakció létrehozáshoz."
+msgstr ""
+"Nyomjon \"Alkalmaz\"-t az export fájlhoz.\n"
+"\"Mégsem\"-re a magszakításhoz."
 
 #: gnucash/gtkbuilder/assistant-csv-account-import.glade:285
 #, fuzzy
@@ -13037,9 +13031,8 @@ msgid "Use Quotes"
 msgstr "Adatszerzés"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:80
-#, fuzzy
 msgid "Simple Layout"
-msgstr "Minta adatok:"
+msgstr "Egyszerű elrendezés"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:128
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:316
@@ -13274,9 +13267,8 @@ msgstr ""
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:193
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:183
-#, fuzzy
 msgid "<b>Load and Save Settings</b>"
-msgstr "Takarék"
+msgstr "<b>Megnyitás és mentés beállítások</b>"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:242
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:231
@@ -13329,7 +13321,7 @@ msgstr "<b>Időformátum</b>"
 #: gnucash/gtkbuilder/dialog-preferences.glade:1133
 #: gnucash/gtkbuilder/gnc-date-format.glade:39
 msgid "Date Format"
-msgstr "Dátumformátum:"
+msgstr "Dátumformátum"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:601
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:599
@@ -13339,9 +13331,8 @@ msgstr "Pénznem-információ"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:613
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:611
-#, fuzzy
 msgid "Encoding"
-msgstr "Kódolás:"
+msgstr "Kódolás"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:625
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:623
@@ -13384,9 +13375,8 @@ msgstr "<b>Innen</b>"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:886
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:57
-#, fuzzy
 msgid "Currency To"
-msgstr "Pénznem: "
+msgstr "Pénznem"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:953
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:882
@@ -13407,11 +13397,12 @@ msgid "Import Preview"
 msgstr "Jelentésszámlák"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:1014
-#, fuzzy
 msgid ""
 "<b>Press \"Apply\" to add the Prices.\n"
 "\"Cancel\" to abort.</b>"
-msgstr "Nyomjon Alkalmazást a tranzakció létrehozáshoz."
+msgstr ""
+"<b>Nyomjon \"Alkalmazás\"-t az árak megadásához\n"
+"\"Mégsem\"-et a megszakításhoz</b>"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:1029
 #, fuzzy
@@ -13505,16 +13496,15 @@ msgid "Account ID"
 msgstr "Folyószámla-azonosító"
 
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:1009
-#, fuzzy
 msgid "Error text."
-msgstr "Hiba"
+msgstr "Hiba."
 
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:1019
 #: gnucash/gtkbuilder/assistant-qif-import.glade:619
 #: gnucash/gtkbuilder/assistant-qif-import.glade:750
 #: gnucash/gtkbuilder/assistant-qif-import.glade:879
 msgid "Change GnuCash _Account..."
-msgstr "GnuCash-számla cseréje"
+msgstr "GnuCash-számla cseréje..."
 
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:1042
 #, fuzzy
@@ -13556,7 +13546,6 @@ msgid "Match Transactions"
 msgstr "Tranzakció beillesztése"
 
 #: gnucash/gtkbuilder/assistant-hierarchy.glade:21
-#, fuzzy
 msgid ""
 "This assistant will help you create a set of GnuCash accounts for your "
 "assets (such as investments, checking or savings accounts), liabilities "
@@ -13574,6 +13563,11 @@ msgstr ""
 "befektetések, folyószámlák és betétszámlák), forrásokhoz (pl. kölcsönök), "
 "különféle bevételekhez és költségekhez.\n"
 "\n"
+"Itt kiválaszthat olyan fiókokat, amelyek megfelelnek az Ön igényeinek. Az "
+"asszisztens befejezése után a későbbiekben bármikor hozzáadhat, átnevezhet, "
+"módosíthat és eltávolíthat fiókokat. Alfiókokat is hozzáadhat, valamint "
+"áthelyezhet fiókokat (az alfiókjaikkal együtt) egyik szülőről a másikra.\n"
+"\n"
 "Kattintson a 'Megszakítás' -ra ha nem akar létrehozni új számlakészletet."
 
 #: gnucash/gtkbuilder/assistant-hierarchy.glade:30
@@ -13705,9 +13699,8 @@ msgstr ""
 
 #: gnucash/gtkbuilder/assistant-loan.glade:46
 #: gnucash/gtkbuilder/assistant-loan.glade:152
-#, fuzzy
 msgid "Interest Rate"
-msgstr "Kamatláb:"
+msgstr "Kamatláb"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:49
 msgid "APR (Compounded Daily)"
@@ -13936,9 +13929,8 @@ msgid ""
 msgstr ""
 
 #: gnucash/gtkbuilder/assistant-loan.glade:1111
-#, fuzzy
 msgid "Range"
-msgstr "Időtartam: "
+msgstr "Időtartam"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:1188
 #: gnucash/gtkbuilder/dialog-preferences.glade:390
@@ -13990,7 +13982,6 @@ msgstr "QIF-importálás"
 
 #. Run the assistant in your language to see GTK's translation of the button labels.
 #: gnucash/gtkbuilder/assistant-qif-import.glade:42
-#, fuzzy
 msgid ""
 "GnuCash can import financial data from QIF (Quicken Interchange Format) "
 "files written by Quicken/QuickBooks, MS Money, Moneydance, and many other "
@@ -14010,7 +14001,7 @@ msgstr ""
 "mialatt ön az 'Alkalmazás'-ra kattint a folyamat végén.\n"
 "\n"
 "Kattintson az \"Következő\" -re a QIF fájl betöltéséhez,vagy a \"Megszakítás"
-"\" -ra a kilépéshez. "
+"\" -ra a kilépéshez."
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:51
 msgid "Import QIF files"
@@ -14043,16 +14034,14 @@ msgid "Select a QIF file to load"
 msgstr "Betöltendő QIF-fájl kiválasztása"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:201
-#, fuzzy
 msgid "_Start"
-msgstr "Kezdés:"
+msgstr "_Kezdés"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:271
 msgid "Load QIF files"
-msgstr "QIF fájl betöltése..."
+msgstr "QIF fájl betöltése"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:285
-#, fuzzy
 msgid ""
 "The QIF file format does not specify which order the day, month, and year "
 "components of a date are printed. In most cases, it is possible to "
@@ -14069,7 +14058,7 @@ msgstr ""
 "állapítani, hogy egy adott fájl milyen formátumot használ.A most importált "
 "fájlban azonban több formátum is alkalmazható az adatokra.\n"
 "\n"
-"Válasszon egy egy dátumformátumot a fájlnak. Az európai szoftverek által "
+"Válasszon egy dátumformátumot a fájlnak. Az európai szoftverek által "
 "készített QIF fájlok \"n-h-é\" vagy nap-hónap-év formátumban vannak. Az US "
 "szoftverek által készítettek pedig \"h-n-é\" hónap-nap-év formátumban.\n"
 
@@ -14083,7 +14072,6 @@ msgid "Set a date format for this QIF file"
 msgstr "Dátumformátum kiválasztása ehhez a QIF fájlhoz"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:347
-#, fuzzy
 msgid ""
 "The QIF file that you just loaded appears to contain transactions for just "
 "one account, but the file does not specify a name for that account.\n"
@@ -14108,7 +14096,6 @@ msgstr "QIF számla alapértelmezett nevének beállítása"
 
 #. Run the assistant in your language to see GTK's translation of the button labels.
 #: gnucash/gtkbuilder/assistant-qif-import.glade:455
-#, fuzzy
 msgid ""
 "Click \"Load another file\" if you have more data to import at this time. Do "
 "this if you have saved your accounts to separate QIF files.\n"
@@ -14116,15 +14103,16 @@ msgid ""
 "Click \"Next\" to finish loading files and move to the next step of the QIF "
 "import process."
 msgstr ""
-"Click \"Load another file\" if you have more data to import at this time. Do "
-"this if you have saved your accounts to separate QIF files.\n"
+"Kattintson a \"Másik fájl betöltése\" gombra, ha jelenleg több adatot "
+"szeretne importálni. Tegye ezt akkor, ha számláit különálló QIF-fájlokba "
+"mentette.\n"
 "\n"
-"Click \"Forward\" to finish loading files and move to the next step of the "
-"QIF import process. "
+"Kattintson a „Tovább” gombra a fájlok betöltésének befejezéséhez, és lépjen "
+"a QIF importálási folyamat következő lépésére."
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:474
 msgid "_Unload selected file"
-msgstr "A kiválasztott fájl kihagyása"
+msgstr "_A kiválasztott fájl kihagyása"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:489
 msgid "_Load another file"
@@ -14151,20 +14139,21 @@ msgid ""
 "page so you can change them if you want to, but it is safe to leave them "
 "alone.\n"
 msgstr ""
-"On the next page, the accounts in your QIF files and any stocks or mutual "
-"funds you own will be matched with GnuCash accounts. If a GnuCash account "
-"already exists with the same name, or a similar name and compatible type, "
-"that account will be used as a match; otherwise, GnuCash will create a new "
-"account with the same name and type as the QIF account. If you do not like "
-"the suggested GnuCash account, double-click to change it.\n"
+"A következő oldalon a QIF-fájljaiban lévő számlák és a tulajdonában lévő "
+"részvények vagy befektetési alapok össze lesznek egyeztetve a GnuCash-"
+"számlákkal. Ha már létezik egy GnuCash számla azonos névvel vagy hasonló "
+"névvel és kompatibilis típussal, akkor azt a fiókot használja a rendszer "
+"egyezésként; ellenkező esetben a GnuCash új fiókot hoz létre a QIF-fiókkal "
+"azonos néven és típussal. Ha nem tetszik a javasolt GnuCash számla, "
+"kattintson duplán a módosításhoz.\n"
 "\n"
-"Note that GnuCash will be creating many accounts that did not exist on your "
-"other personal finance program, including a separate account for each stock "
-"you own, separate accounts for the brokerage commissions, special \"Equity\" "
-"accounts (subaccounts of Retained Earnings, by default) which are the source "
-"of your opening balances, etc. All of these accounts will appear on the next "
-"page so you can change them if you want to, but it is safe to leave them "
-"alone.\n"
+"Vegye figyelembe, hogy a GnuCash sok olyan számlát fog létrehozni, amelyek "
+"nem léteztek az Ön másik személyes pénzügyi programjában, beleértve egy "
+"külön számlát minden egyes tulajdonában lévő részvényhez, külön számlákat a "
+"közvetítői jutalékokhoz, speciális \"részvény\" számlákat (alapértelmezés "
+"szerint a felhalmozott nyereség alszámlái). amelyek a nyitó egyenlegek "
+"forrásai stb. Ezek a számlák mindegyike megjelenik a következő oldalon, így "
+"ha akarja, módosíthatja őket, de nyugodtan hagyhatja is őket.\n"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:540
 msgid "Accounts and stock holdings"
@@ -14174,13 +14163,13 @@ msgstr "Folyószámlák és birtokolt részvények"
 #: gnucash/gtkbuilder/assistant-qif-import.glade:685
 #: gnucash/gtkbuilder/assistant-qif-import.glade:814
 msgid "_Select the matchings you want to change"
-msgstr "_Select the matchings you want to change"
+msgstr "_Válassza ki a módosítani kívánt egyezéseket"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:594
 #: gnucash/gtkbuilder/assistant-qif-import.glade:725
 #: gnucash/gtkbuilder/assistant-qif-import.glade:854
 msgid "Matchings selected"
-msgstr "Matchings selected"
+msgstr "Kiválasztott egyezőségek"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:642
 msgid "Match QIF accounts with GnuCash accounts"

commit 82634dd3ef71753e0268c3ac3d60c1eed7fc88a7
Author: YTX <ytx.cash at gmail.com>
Date:   Wed Apr 6 11:35:59 2022 +0200

    Translation update  by YTX <ytx.cash at gmail.com> using Weblate
    
    po/zh_CN.po: 99.9% (5389 of 5390 strings; 0 fuzzy)
    0 failing checks (0.0%)
    Translation: GnuCash/Program (Chinese (Simplified))
    Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/zh_Hans/
    
    Co-authored-by: YTX <ytx.cash at gmail.com>

diff --git a/po/zh_CN.po b/po/zh_CN.po
index 6fe92fdcf..f89a62e77 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -27,7 +27,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug."
 "cgi?product=GnuCash&component=Translations\n"
 "POT-Creation-Date: 2022-03-09 18:00-0800\n"
-"PO-Revision-Date: 2022-03-31 04:07+0000\n"
+"PO-Revision-Date: 2022-04-03 09:06+0000\n"
 "Last-Translator: YTX <ytx.cash at gmail.com>\n"
 "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
 "gnucash/gnucash/zh_Hans/>\n"
@@ -21496,7 +21496,7 @@ msgstr "折扣类型"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:82
 msgid "Discount How"
-msgstr "折扣多少"
+msgstr "折扣方式"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:87
 #: gnucash/report/reports/standard/invoice.scm:96
@@ -21509,15 +21509,15 @@ msgstr "单价"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:102
 msgid "Taxable?"
-msgstr "须纳税的?"
+msgstr "应税"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:107
 msgid "Tax Included?"
-msgstr "含税?"
+msgstr "含税"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:112
 msgid "Invoiced?"
-msgstr "已开发票?"
+msgstr "发票"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:117
 #: gnucash/report/reports/standard/invoice.scm:249

commit 50df6b61762ee4cb5dd29623f9fdc1a1c5833ff7
Author: ltai0001 <yltaief at gmail.com>
Date:   Wed Apr 6 11:35:58 2022 +0200

    Translation update  by ltai0001 <yltaief at gmail.com> using Weblate
    
    po/ar.po: 74.1% (3996 of 5390 strings; 914 fuzzy)
    437 failing checks (8.1%)
    Translation: GnuCash/Program (Arabic)
    Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ar/
    
    Translation update  by ltai0001 <yltaief at gmail.com> using Weblate
    
    po/ar.po: 73.8% (3981 of 5390 strings; 929 fuzzy)
    462 failing checks (8.5%)
    Translation: GnuCash/Program (Arabic)
    Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ar/
    
    Co-authored-by: ltai0001 <yltaief at gmail.com>

diff --git a/po/ar.po b/po/ar.po
index 985d11017..a3f0c31e6 100644
--- a/po/ar.po
+++ b/po/ar.po
@@ -16,7 +16,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug."
 "cgi?product=GnuCash&component=Translations\n"
 "POT-Creation-Date: 2022-03-09 18:00-0800\n"
-"PO-Revision-Date: 2022-03-29 02:07+0000\n"
+"PO-Revision-Date: 2022-04-04 05:08+0000\n"
 "Last-Translator: ltai0001 <yltaief at gmail.com>\n"
 "Language-Team: Arabic <https://hosted.weblate.org/projects/gnucash/gnucash/"
 "ar/>\n"
@@ -2745,7 +2745,7 @@ msgstr "المجموعات في حساب %s"
 
 #: gnucash/gnome/dialog-order.c:171
 msgid "The Order must be given an ID."
-msgstr "يجب ان يعطى الطلب معرف للطلب."
+msgstr "يجب ان يعطى معرف للطلب"
 
 #: gnucash/gnome/dialog-order.c:278
 msgid "The Order must have at least one Entry."
@@ -2972,7 +2972,7 @@ msgstr "الأسعار المسجلة؟"
 
 #: gnucash/gnome/dialog-price-editor.c:238
 msgid "_Replace"
-msgstr ""
+msgstr "_إستبدل"
 
 #: gnucash/gnome/dialog-price-editor.c:269
 msgid "You must select a Security."
@@ -3361,14 +3361,14 @@ msgstr "هوية ضريبة الدخل"
 #: gnucash/gtkbuilder/dialog-reset-warnings.glade:40
 #: gnucash/gtkbuilder/dialog-tax-info.glade:43
 msgid "_Apply"
-msgstr ""
+msgstr "_تطبيق"
 
 #: gnucash/gnome/dialog-tax-info.c:1239
 msgid ""
 "CAUTION: If you set TXF categories, and later change 'Type', you will need "
 "to manually reset those categories one at a time"
 msgstr ""
-"تحذير: إذا قمت بتعيين فئات TXF، وقمت لاحقا بتغيير النوع، ​سوف تحتاج إلى إعادة "
+"تحذير: إذا قمت بتعيين فئات TXF، وقمت لاحقا بتغيير النوع، سوف تحتاج إلى إعادة "
 "تعيين تلك الفئات يدويا كلا على حدة"
 
 #: gnucash/gnome/dialog-tax-info.c:1392
@@ -3478,7 +3478,7 @@ msgstr "مجموع"
 
 #: gnucash/gnome/gnc-plugin-account-tree.c:59
 msgid "New Accounts _Page"
-msgstr "صفحة حسابات جديدة"
+msgstr "_صفحة حسابات جديدة"
 
 #: gnucash/gnome/gnc-plugin-account-tree.c:60
 msgid "Open a new Account Tree page"
@@ -3486,7 +3486,7 @@ msgstr "فتح صفحة جديدة في \"شجرة تصنيف الحساب\""
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:111
 msgid "New _File"
-msgstr "ملف جديد"
+msgstr "_ملف جديد"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:112
 msgid "Create a new file"
@@ -3513,7 +3513,7 @@ msgstr "حفظ الملف الحالي"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:126
 msgid "Save _As..."
-msgstr "حفظ باسم..."
+msgstr "حفظ _باسم..."
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:127
 msgid "Save this file with a different name"
@@ -3521,7 +3521,7 @@ msgstr "حفظ هذا الملف مع اسم مختلف"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:131
 msgid "Re_vert"
-msgstr "الغاء التغييرات"
+msgstr "_الغاء التغييرات"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:132
 msgid "Reload the current database, reverting all unsaved changes"
@@ -3529,7 +3529,7 @@ msgstr "إعادة تحميل قاعدة البيانات الحالية، با
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:137
 msgid "Export _Accounts"
-msgstr "تصدير الحسابات"
+msgstr "تصدير ال_حسابات"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:138
 msgid "Export the account hierarchy to a new GnuCash datafile"
@@ -3554,7 +3554,7 @@ msgstr "البحث عن المعاملات مع البحث"
 #: gnucash/gnome/gnc-plugin-page-register2.c:263
 #: gnucash/gnome/gnc-plugin-page-register.c:372
 msgid "Ta_x Report Options"
-msgstr "خيارات التقرير الضريبي"
+msgstr "خيارات التقرير ال_ضريبي"
 
 #. Translators: currently implemented are
 #. US: income tax and
@@ -3582,7 +3582,7 @@ msgstr "قائمة المعاملات المجدولة"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:171
 msgid "Since _Last Run..."
-msgstr "منذ آخر تشغيل..."
+msgstr "منذ آ_خر تشغيل..."
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:172
 msgid "Create Scheduled Transactions since the last time run"
@@ -3599,20 +3599,19 @@ msgstr "إعداد المعاملات الجدولة لسداد قرض"
 #: gnucash/gnome/gnc-plugin-basic-commands.c:180
 #: gnucash/report/report-core.scm:153
 msgid "B_udget"
-msgstr "الميزانية"
+msgstr "ال_ميزانية"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:183
 msgid "Close _Books"
-msgstr "إغلاق الدفاتر"
+msgstr "إ_غلاق الدفاتر"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:184
 msgid "Archive old data using accounting periods"
 msgstr "أرشيف البيانات القديمة باستخدام الفترات المحاسبية"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:191
-#, fuzzy
 msgid "_Price Database"
-msgstr "قاعدة بيانات الأسعار"
+msgstr "قاعدة بيانات الأ_سعار"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:192
 msgid "View and edit the prices for stocks and mutual funds"
@@ -3636,7 +3635,7 @@ msgstr "استخدام حاسبة سداد القرض/الرهن العقاري"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:206
 msgid "_Close Book"
-msgstr "إغلق الدفتر"
+msgstr "إ_غلق الدفتر"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:207
 msgid "Close the Book at the end of the Period"
@@ -3697,9 +3696,8 @@ msgstr[5] ""
 "لا توجد معاملات مجدولة للإدخال في هذا الوقت. (تم إنشاء %d معاملة أليا)"
 
 #: gnucash/gnome/gnc-plugin-budget.c:63
-#, fuzzy
 msgid "_New Budget"
-msgstr "الميزانية الجديدة"
+msgstr "ال_ميزانية الجديدة"
 
 #: gnucash/gnome/gnc-plugin-budget.c:64
 #, fuzzy
@@ -3707,9 +3705,8 @@ msgid "Create a new Budget."
 msgstr "إنشاء ميزانية جديدة"
 
 #: gnucash/gnome/gnc-plugin-budget.c:69
-#, fuzzy
 msgid "_Open Budget"
-msgstr "فتح الميزانية"
+msgstr "_فتح الميزانية"
 
 #: gnucash/gnome/gnc-plugin-budget.c:70
 msgid ""
@@ -3796,7 +3793,7 @@ msgstr "فتح مربع الحوار \"العثور على الفاتورة\""
 #: gnucash/gnome/gnc-plugin-business.c:185
 #: gnucash/gnome/gnc-plugin-business.c:228
 msgid "New _Job..."
-msgstr "الوظيفة الجديدة..."
+msgstr "ال_وظيفة الجديدة..."
 
 #: gnucash/gnome/gnc-plugin-business.c:186
 #: gnucash/gnome/gnc-plugin-business.c:229
@@ -3806,7 +3803,7 @@ msgstr "فتح مربع حوار وظيفة جديدة"
 #: gnucash/gnome/gnc-plugin-business.c:190
 #: gnucash/gnome/gnc-plugin-business.c:233
 msgid "Find Jo_b..."
-msgstr "البحث عن الوظيفة..."
+msgstr "ال_بحث عن الوظيفة..."
 
 #: gnucash/gnome/gnc-plugin-business.c:191
 #: gnucash/gnome/gnc-plugin-business.c:234
@@ -3840,7 +3837,7 @@ msgstr "_مورد"
 #: gnucash/gnome/gnc-plugin-business.c:208
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:160
 msgid "_New Vendor..."
-msgstr "مورد جديد ..."
+msgstr "مورد _جديد ..."
 
 #: gnucash/gnome/gnc-plugin-business.c:209
 msgid "Open the New Vendor dialog"
@@ -3848,7 +3845,7 @@ msgstr "فتح مربع حوار مورد جديد"
 
 #: gnucash/gnome/gnc-plugin-business.c:213
 msgid "_Find Vendor..."
-msgstr "العثور على المورد..."
+msgstr "ال_عثور على المورد..."
 
 #: gnucash/gnome/gnc-plugin-business.c:214
 msgid "Open the Find Vendor dialog"
@@ -4310,13 +4307,14 @@ msgid "Accounts"
 msgstr "حسابات"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:1430
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Account %s does not have the same currency as the one you're moving "
 "transactions from.\n"
 "Are you sure you want to do this?"
 msgstr ""
-"أنت على وشك الكتابة فوق المعاملة قائمة. هل أنت متأكد أنك تريد أن تفعل ذلك؟"
+"أنت على وشك الكتابة فوق المعاملة قائمة.\n"
+"هل أنت متأكد أنك تريد أن تفعل ذلك؟"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:1438
 #, fuzzy
@@ -5245,7 +5243,9 @@ msgstr "الموظفين"
 msgid ""
 "The owner %s will be deleted.\n"
 "Are you sure you want to do this?"
-msgstr "سيتم حذف المالك%s هل أنت متأكد أنك تريد أن تفعل هذا؟"
+msgstr ""
+"سيتم حذف المالك%s.\n"
+"هل أنت متأكد أنك تريد أن تفعل هذا؟"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:194
 #: gnucash/gnome/gnc-plugin-page-register.c:292
@@ -9994,7 +9994,7 @@ msgstr "لاتوازن"
 #. See "MAX_DATE_LENGTH" in https://code.gnucash.org/docs/MAINT/group__Date.html
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:1489
 msgid " Scheduled "
-msgstr "مجدولة"
+msgstr " مجدولة. "
 
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2316
 #: gnucash/register/ledger-core/split-register-control.c:1521
@@ -10322,17 +10322,17 @@ msgstr ""
 #: gnucash/gnucash-cli.cpp:113
 #, fuzzy
 msgid "Name of the report to run\n"
-msgstr "اسم الشركة."
+msgstr "اسم الشركة.\n"
 
 #: gnucash/gnucash-cli.cpp:115
 #, fuzzy
 msgid "Specify export type\n"
-msgstr "2. حدد نوع الاستيراد"
+msgstr "2. حدد نوع الاستيراد\n"
 
 #: gnucash/gnucash-cli.cpp:117
 #, fuzzy
 msgid "Output file for report\n"
-msgstr "خيارات الخلفية المكررة للتقارير"
+msgstr "خيارات الخلفية المكررة للتقارير\n"
 
 #: gnucash/gnucash-cli.cpp:132
 msgid "Unknown quotes command '{1}'"
@@ -10357,9 +10357,8 @@ msgid "Missing command or option"
 msgstr "هذا خيار اللون."
 
 #: gnucash/gnucash-commands.cpp:92
-#, fuzzy
 msgid "No quotes retrieved. Finance::Quote isn't installed properly."
-msgstr "العروض لم يتم استرجاعها. لم يتم تثبيت المالية :: العروض بشكل صحيح.\n"
+msgstr "العروض لم يتم استرجاعها. لم يتم تثبيت المالية :: العروض بشكل صحيح."
 
 #: gnucash/gnucash-core-app.cpp:81
 msgid "This is a development version. It may or may not work."
@@ -10505,11 +10504,10 @@ msgid ""
 msgstr ""
 
 #: gnucash/gnucash.cpp:345
-#, fuzzy
 msgid "Run '{1} --help' to see a full list of available command line options."
 msgstr ""
 "%s\n"
-"شغل '%s --help' to see a full list of available command line options.\n"
+"شغل '%s --help' to see a full list of available command line options."
 
 #. Translators: Do not translate $DISPLAY! It is an environment variable for X11
 #: gnucash/gnucash.cpp:348
@@ -11522,7 +11520,6 @@ msgid "Character to use as separator between account names"
 msgstr "الحرف المستخدم كفاصل بين أسماء الحسابات"
 
 #: gnucash/gschemas/org.gnucash.GnuCash.gschema.xml.in:21
-#, fuzzy
 msgid ""
 "This setting determines the character that will be used between components "
 "of an account name. Possible values are any single non-alphanumeric unicode "
@@ -11530,8 +11527,8 @@ msgid ""
 "\", \"dash\" and \"period\"."
 msgstr ""
 "يحدد هذا الإعداد الحرف الذي سيتم استخدامه بين مكونات اسم حساب. القيم الممكنة "
-"هي أي حرف يونيكود غير أبجدي رقمي واحد، أو أي من التالي\"نقطتان,خفض,خفض عكسي,"
-"شرطة,نقطة\""
+"هي أي حرف يونيكود غير أبجدي رقمي واحد، أو أي من التالي\"نقطتان\",\"خفض\","
+"\"خفض عكسي\",\"شرطة\",\"نقطة\"."
 
 #: gnucash/gschemas/org.gnucash.GnuCash.gschema.xml.in:25
 #, fuzzy
@@ -13222,7 +13219,7 @@ msgstr "تصدير الآن ..."
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:722
 msgid "Summary"
-msgstr "المـلخص"
+msgstr "الملخص"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:727
 msgid "Export Summary"
@@ -13646,7 +13643,7 @@ msgstr ""
 
 #: gnucash/gtkbuilder/assistant-hierarchy.glade:163
 msgid "<b>Categories</b>"
-msgstr "</b>التصنيفات<b>"
+msgstr "<b>التصنيفات<b/>"
 
 #: gnucash/gtkbuilder/assistant-hierarchy.glade:273
 #: gnucash/gtkbuilder/dialog-account.glade:906
@@ -13655,7 +13652,7 @@ msgstr "مسح الكل"
 
 #: gnucash/gtkbuilder/assistant-hierarchy.glade:311
 msgid "<b>Category Description</b>"
-msgstr "</b>وصف التصنيفات<b>"
+msgstr "<b>وصف التصنيفات<b/>"
 
 #. %s is an account template
 #: gnucash/gtkbuilder/assistant-hierarchy.glade:377
@@ -13671,13 +13668,11 @@ msgid ""
 msgstr ""
 
 #: gnucash/gtkbuilder/assistant-hierarchy.glade:484
-#, fuzzy
 msgid ""
 "The selection you make here is only the starting point for your personalized "
 "account hierarchy. Accounts can be added, renamed, moved, or deleted by hand "
 "later at any time."
 msgstr ""
-"\n"
 "حدد الفئات التي تتوافق مع الطرق التي ستستخدمها لجنوكاش. كل فئة قمت بتحديدها "
 "سوف تسبب إنشاء عدة حسابات. حدد الفئات التي تريدها. يمكنك إنشاء حسابات إضافية "
 "دائما باليد في وقت لاحق."
@@ -14359,11 +14354,8 @@ msgid "Enter Information about..."
 msgstr "أدخل معلومات عن"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:1050
-#, fuzzy
 msgid "All fields must be complete to continue..."
-msgstr ""
-"\n"
-"يجب أن يكون لكل الحسابات إدخالات صالحة للمتابعة.\n"
+msgstr "يجب أن يكون لكل الحسابات إدخالات صالحة للمتابعة."
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:1067
 msgid "Tradable commodities"
@@ -14455,7 +14447,7 @@ msgstr "تحديث حسابات GnuCash الخاصة بك"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:1369
 msgid "Summary Text"
-msgstr "المـلخص"
+msgstr "الملخص"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:1374
 msgid "Qif Import Summary"
@@ -15629,7 +15621,7 @@ msgid ""
 "the Reports menu or tool bar."
 msgstr ""
 "يتم حفظ خيارات التقارير المحفوظة من خلال فتحتقرير من تقارير القائمة،\n"
-"و تغيير خيارات التقرير ثم اختيار \"حفظ خيارات التقرير\" من\n"
+"و تغيير خيارات التقرير ثم اختيار \"حفظ خيارات التقرير\"\n"
 "من قائمة التقارير أو شريط الأدوات."
 
 #: gnucash/gtkbuilder/dialog-date-close.glade:7
@@ -16020,9 +16012,8 @@ msgid "Based On"
 msgstr ""
 
 #: gnucash/gtkbuilder/dialog-imap-editor.glade:219
-#, fuzzy
 msgid "Match String"
-msgstr "مماثل غير موجود!"
+msgstr "مماثل غير موجود"
 
 #: gnucash/gtkbuilder/dialog-imap-editor.glade:233
 #, fuzzy
@@ -16743,7 +16734,7 @@ msgid ""
 msgstr ""
 "الحرف الذي سيتم استخدامه بين مكونات اسم حساب. قيمة المسموحة هو أي حرف واحد "
 "إلا الحروف والأرقام، أو أي من التالي: \":\" أو \"\" أو \"/\" أو \"-\" أو \"."
-"\""
+"\"."
 
 #: gnucash/gtkbuilder/dialog-preferences.glade:946
 #: gnucash/gtkbuilder/dialog-preferences.glade:3674
@@ -17932,7 +17923,7 @@ msgstr "_العثور على..."
 
 #: gnucash/gtkbuilder/dialog-search.glade:134
 msgid " Search "
-msgstr "البحث"
+msgstr " البحث "
 
 #: gnucash/gtkbuilder/dialog-search.glade:207
 msgid "Search for items where"
@@ -19211,10 +19202,8 @@ msgid ""
 msgstr ""
 
 #: gnucash/gtkbuilder/window-autoclear.glade:101
-#, fuzzy
-#| msgid "Fraction"
 msgid "Caution!"
-msgstr "الكسور"
+msgstr "الكسور!"
 
 #: gnucash/gtkbuilder/window-autoclear.glade:116
 msgid ""
@@ -20430,9 +20419,9 @@ msgstr ""
 "الانترنت توفر مجموعة من التنسيقات التي من الممكن الإختيار منها."
 
 #: gnucash/import-export/bi-import/dialog-bi-import.c:297
-#, fuzzy, c-format
+#, c-format
 msgid "Validation...\n"
-msgstr "التطبيق"
+msgstr "التطبيق\n"
 
 #: gnucash/import-export/bi-import/dialog-bi-import.c:327
 #, c-format
@@ -20496,16 +20485,18 @@ msgid "Error(s) in invoice without id, all rows of this invoice ignored.\n"
 msgstr ""
 
 #: gnucash/import-export/bi-import/dialog-bi-import.c:647
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "Processing...\n"
-msgstr "_عملية الدفع..."
+msgstr ""
+"\n"
+"_عملية الدفع...\n"
 
 #: gnucash/import-export/bi-import/dialog-bi-import.c:716
-#, fuzzy, c-format
+#, c-format
 msgid "Invoice %s created.\n"
-msgstr "ملاحظات الفاتورة"
+msgstr "ملاحظات الفاتورة\n"
 
 #: gnucash/import-export/bi-import/dialog-bi-import.c:731
 #, fuzzy
@@ -20523,14 +20514,14 @@ msgid "Invoice %s not updated because it is already posted.\n"
 msgstr ""
 
 #: gnucash/import-export/bi-import/dialog-bi-import.c:767
-#, fuzzy, c-format
+#, c-format
 msgid "Invoice %s updated.\n"
-msgstr "ملاحظات الفاتورة"
+msgstr "ملاحظات الفاتورة.\n"
 
 #: gnucash/import-export/bi-import/dialog-bi-import.c:885
-#, fuzzy, c-format
+#, c-format
 msgid "Invoice %s posted.\n"
-msgstr "ملاحظات الفاتورة"
+msgstr "ملاحظات الفاتورة.\n"
 
 #: gnucash/import-export/bi-import/dialog-bi-import.c:890
 #, c-format
@@ -20543,9 +20534,9 @@ msgid "Invoice %s NOT posted because it requires currency conversion.\n"
 msgstr ""
 
 #: gnucash/import-export/bi-import/dialog-bi-import.c:920
-#, fuzzy, c-format
+#, c-format
 msgid "Nothing to process.\n"
-msgstr "لا تحذيرات لإعادة تعيينها."
+msgstr "لا تحذيرات لإعادة تعيينها.\n"
 
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:138
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:123
@@ -21256,9 +21247,8 @@ msgstr ""
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:519
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:574
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:582
-#, fuzzy
 msgid "Column '{1}' could not be understood.\n"
-msgstr "لا يمكن فهم العمود %s."
+msgstr "لا يمكن فهم العمود %s.\n"
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:280
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:327
@@ -23914,7 +23904,7 @@ msgstr "هذا خيار سلسلة نصيه ."
 #: gnucash/report/reports/example/hello-world.scm:301
 #: gnucash/report/reports/example/hello-world.scm:470
 msgid "Hello, World"
-msgstr "مرحبا بالعالم!"
+msgstr "‪‫مرحبا بالعالم"
 
 #: gnucash/report/reports/example/hello-world.scm:92
 msgid "Just a Date Option"
@@ -23930,7 +23920,7 @@ msgstr "خيار التاريخ المركب"
 
 #: gnucash/report/reports/example/hello-world.scm:100
 msgid "This is a combination date option."
-msgstr "هذا خيار خيار التاريخ المركب"
+msgstr "هذا خيار التاريخ المركب."
 
 #: gnucash/report/reports/example/hello-world.scm:106
 msgid "Relative Date Option"
@@ -24544,7 +24534,7 @@ msgid ""
 "rather as the average e.g. per month."
 msgstr ""
 "تحديد ما إذا كان ينبغي أن تظهر المبالغ على مدى فترة زمنية كاملة أو كمتوسط ."
-"على ​​سبيل المثال شهريا."
+"على سبيل المثال شهريا."
 
 #: gnucash/report/reports/standard/account-piecharts.scm:114
 #: gnucash/report/reports/standard/category-barchart.scm:119
@@ -24595,7 +24585,7 @@ msgstr "المتوسط الشهري"
 #: gnucash/report/reports/standard/account-piecharts.scm:401
 #: gnucash/report/reports/standard/category-barchart.scm:316
 msgid "Weekly Average"
-msgstr "المتوسط ​​الاسبوعي"
+msgstr "المتوسط الاسبوعي"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:535
 #, scheme-format
@@ -24936,10 +24926,8 @@ msgid "Basis calculation method."
 msgstr "طريقة حساب الأساس."
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:89
-#, fuzzy
-#| msgid "Use average cost of all shares for basis."
 msgid "Average cost of all shares"
-msgstr "استخدام متوسط ​​تكلفة كل سهم كأساس."
+msgstr "استخدام متوسط تكلفة كل سهم كأساس"
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:90
 msgid "First-in first-out"
@@ -25647,9 +25635,8 @@ msgid "Barchart"
 msgstr "المخطط البياني للأصول"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1188
-#, fuzzy
 msgid " to "
-msgstr "%s إلى %s"
+msgstr " إلى "
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1251
 #: gnucash/report/reports/standard/trial-balance.scm:855
@@ -26319,7 +26306,7 @@ msgstr ""
 
 #: gnucash/report/reports/standard/category-barchart.scm:317
 msgid "Daily Average"
-msgstr "المتوسط ​​اليومي"
+msgstr "المتوسط اليومي"
 
 #: gnucash/report/reports/standard/category-barchart.scm:505
 #, scheme-format
@@ -27068,7 +27055,7 @@ msgstr "سلسلة الاتصال بالشركة"
 
 #: gnucash/report/reports/standard/invoice.scm:276
 msgid "The phrase used to introduce the company contact."
-msgstr "نص عبارة عبارة بيانات اتصال الشركة."
+msgstr "نص عبارة بيانات اتصال الشركة."
 
 #: gnucash/report/reports/standard/invoice.scm:277
 #, fuzzy
@@ -27150,7 +27137,7 @@ msgstr "ملاحظات إضافية للوضع على الفاتورة."
 #: gnucash/report/reports/standard/invoice.scm:329
 #: gnucash/report/reports/standard/taxinvoice.scm:205
 msgid "Thank you for your patronage!"
-msgstr "شكرا لرعايتكم"
+msgstr "شكرا لرعايتكم!"
 
 #: gnucash/report/reports/standard/invoice.scm:333
 msgid "Row 1 Left"
@@ -27181,9 +27168,8 @@ msgstr "يمين"
 
 #: gnucash/report/reports/standard/invoice.scm:421
 #: gnucash/report/reports/standard/job-report.scm:239
-#, fuzzy
 msgid "Payment, thank you!"
-msgstr "نشكر لك ، دفع المبلغ"
+msgstr "نشكر لك ، دفع المبلغ!"
 
 #. Translators: This "T" is displayed in the taxable column, if this entry contains tax
 #: gnucash/report/reports/standard/invoice.scm:476
@@ -27966,9 +27952,8 @@ msgstr "%A %d %B %Y"
 
 #: gnucash/report/reports/standard/receipt.scm:139
 #: gnucash/report/reports/standard/taxinvoice.scm:190
-#, fuzzy
 msgid "Payment received, thank you!"
-msgstr "تم استلام المبلغ ، شكرا لك"
+msgstr "تم استلام المبلغ ، شكرا لك!"
 
 #: gnucash/report/reports/standard/receipt.scm:143
 #, fuzzy
@@ -29537,8 +29522,7 @@ msgstr "رقم المطالبة"
 msgid ""
 "The format string to use for generating bill numbers. This is a printf-style "
 "format string."
-msgstr ""
-"طريقة التنسيق لاستخدامها لتوليد أرقام أرقام المطالبات.هو نص على غرار printf."
+msgstr "طريقة التنسيق لاستخدامها لتوليد أرقام المطالبات.هو نص على غرار printf."
 
 #: libgnucash/app-utils/business-prefs.scm:55
 msgid ""
@@ -29606,8 +29590,7 @@ msgstr "رقم الطلب"
 msgid ""
 "The format string to use for generating order numbers. This is a printf-"
 "style format string."
-msgstr ""
-"طريقة التنسيق لاستخدامها لتوليد أرقام أرقام الطلبات.هو نص على غرار printf."
+msgstr "طريقة التنسيق لاستخدامها لتوليد أرقام الطلبات.هو نص على غرار printf."
 
 #: libgnucash/app-utils/business-prefs.scm:67
 msgid ""
@@ -29628,8 +29611,7 @@ msgstr "رقم المورد"
 msgid ""
 "The format string to use for generating vendor numbers. This is a printf-"
 "style format string."
-msgstr ""
-"طريقة التنسيق لاستخدامها لتوليد أرقام أرقام الموردين .هو نص على غرار printf."
+msgstr "طريقة التنسيق لاستخدامها لتوليد أرقام الموردين .هو نص على غرار printf."
 
 #: libgnucash/app-utils/business-prefs.scm:71
 msgid ""
@@ -30333,11 +30315,11 @@ msgstr "ولدت من فاتورة. حاول عكس ترحيل الفاتورة.
 
 #: libgnucash/engine/gncInvoice.c:2216
 msgid " (posted)"
-msgstr "(تم الترحيل)"
+msgstr " (تم الترحيل)"
 
 #: libgnucash/engine/gncOrder.c:546
 msgid " (closed)"
-msgstr "(مغلقة)"
+msgstr " (مغلقة)"
 
 #: libgnucash/engine/gncOwner.c:1015
 msgid "Offset between documents: "

commit a4b1827793b146e9d0fd8db87c76cb5caa211dc6
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sat Mar 26 21:48:59 2022 +0800

    [gnc-plugin-page-register] use gnc_g_list_stringjoin to store .gcm
    
    for gnc_plugin_page_register_filter_response_cb

diff --git a/gnucash/gnome/gnc-plugin-page-register.c b/gnucash/gnome/gnc-plugin-page-register.c
index 1fa6ad4c0..136dd52b3 100644
--- a/gnucash/gnome/gnc-plugin-page-register.c
+++ b/gnucash/gnome/gnc-plugin-page-register.c
@@ -3344,52 +3344,38 @@ gnc_plugin_page_register_filter_response_cb (GtkDialog* dialog,
 
         if (priv->fd.save_filter)
         {
-            gchar* filter = g_strdup_printf ("0x%04x",
-                                             priv->fd.cleared_match); // cleared match
-            gchar* tmp = g_strdup (filter);
+            gchar *filter;
+            GList *flist = NULL;
+
+            // cleared match
+            flist = g_list_prepend
+                (flist, g_strdup_printf ("0x%04x", priv->fd.cleared_match));
 
             // start time
-            if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (
-                                                  priv->fd.start_date_choose)) && priv->fd.start_time != 0)
-            {
-                gchar* timeval = gnc_plugin_page_register_filter_time2dmy (
-                                     priv->fd.start_time);
-                filter = g_strconcat (tmp, ",", timeval, NULL);
-                g_free (timeval);
-            }
+            if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->fd.start_date_choose)) && priv->fd.start_time != 0)
+                flist = g_list_prepend (flist, gnc_plugin_page_register_filter_time2dmy (priv->fd.start_time));
             else
-                filter = g_strconcat (tmp, ",0", NULL);
-
-            g_free (tmp);
-            tmp = g_strdup (filter);
-            g_free (filter);
+                flist = g_list_prepend (flist, g_strdup ("0"));
 
             // end time
             if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->fd.end_date_choose))
                 && priv->fd.end_time != 0)
-            {
-                gchar* timeval = gnc_plugin_page_register_filter_time2dmy (priv->fd.end_time);
-                filter = g_strconcat (tmp, ",", timeval, NULL);
-                g_free (timeval);
-            }
+                flist = g_list_prepend (flist, gnc_plugin_page_register_filter_time2dmy (priv->fd.end_time));
             else
-                filter = g_strconcat (tmp, ",0", NULL);
-
-            g_free (tmp);
-            tmp = g_strdup (filter);
-            g_free (filter);
+                flist = g_list_prepend (flist, g_strdup ("0"));
 
             // number of days
             if (priv->fd.days > 0)
-                filter = g_strdup_printf ("%s,%d", tmp, priv->fd.days);
+                flist = g_list_prepend (flist, g_strdup_printf ("%d", priv->fd.days));
             else
-                filter = g_strconcat (tmp, ",0", NULL);
-
-            g_free (tmp);
+                flist = g_list_prepend (flist, g_strdup ("0"));
 
+            flist = g_list_reverse (flist);
+            filter = gnc_g_list_stringjoin (flist, ",");
             PINFO ("The filter to save is %s", filter);
             gnc_plugin_page_register_set_filter (plugin_page, filter);
             g_free (filter);
+            g_list_free_full (flist, g_free);
         }
     }
     priv->fd.dialog = NULL;

commit 5ff0bc1b3cc19cbafa2636f60a19bb734ff84d29
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sat Mar 26 21:48:35 2022 +0800

    [gnc-plugin-page-register] use gnc_g_list_stringjoin to set tooltip
    
    instead of repeated g_free g_strconcat in
    gnc_plugin_page_register_set_filter_tooltip

diff --git a/gnucash/gnome/gnc-plugin-page-register.c b/gnucash/gnome/gnc-plugin-page-register.c
index ccdaeb4a3..1fa6ad4c0 100644
--- a/gnucash/gnome/gnc-plugin-page-register.c
+++ b/gnucash/gnome/gnc-plugin-page-register.c
@@ -66,6 +66,7 @@
 #include "gnc-engine.h"
 #include "gnc-event.h"
 #include "gnc-features.h"
+#include "gnc-glib-utils.h"
 #include "gnc-gnome-utils.h"
 #include "gnc-gobject-utils.h"
 #include "gnc-gui-query.h"
@@ -3398,42 +3399,19 @@ gnc_plugin_page_register_filter_response_cb (GtkDialog* dialog,
 
 static void
 gpp_update_match_filter_text (cleared_match_t match, const guint mask,
-                              const gchar* filter_name, gchar** show, gchar** hide)
+                              const gchar* filter_name, GList **show, GList **hide)
 {
     if ((match & mask) == mask)
-    {
-        if (*show == NULL)
-            *show = g_strdup (filter_name);
-        else
-        {
-            gchar* temp = g_strdup (*show);
-            g_free (*show);
-            *show = g_strconcat (temp, ", ", filter_name, NULL);
-        }
-    }
+        *show = g_list_prepend (*show, g_strdup (filter_name));
     else
-    {
-        if (*hide == NULL)
-            *hide = g_strdup (filter_name);
-        else
-        {
-            gchar* temp = g_strdup (*hide);
-            g_free (*hide);
-            *hide = g_strconcat (temp, ", ", filter_name, NULL);
-        }
-    }
+        *hide = g_list_prepend (*hide, g_strdup (filter_name));
 }
 
 static void
 gnc_plugin_page_register_set_filter_tooltip (GncPluginPageRegister* page)
 {
     GncPluginPageRegisterPrivate* priv;
-    GncPluginPage* plugin_page;
-    gchar* text = NULL;
-    gchar* text_header = g_strdup_printf ("%s", _ ("Filter By:"));
-    gchar* text_start = NULL;
-    gchar* text_end = NULL;
-    gchar* text_cleared = NULL;
+    GList *t_list = NULL;
 
     g_return_if_fail (GNC_IS_PLUGIN_PAGE_REGISTER (page));
 
@@ -3444,28 +3422,31 @@ gnc_plugin_page_register_set_filter_tooltip (GncPluginPageRegister* page)
     if (priv->fd.start_time != 0)
     {
         gchar* sdate = qof_print_date (priv->fd.start_time);
-        text_start = g_strdup_printf ("%s %s", _ ("Start Date:"), sdate);
+        t_list = g_list_prepend
+            (t_list, g_strdup_printf ("%s %s", _("Start Date:"), sdate));
         g_free (sdate);
     }
 
     // filtered number of days
     if (priv->fd.days > 0)
-        text_start = g_strdup_printf ("%s %d", _ ("Show previous number of days:"),
-                                      priv->fd.days);
+        t_list = g_list_prepend
+            (t_list, g_strdup_printf ("%s %d", _("Show previous number of days:"),
+                                      priv->fd.days));
 
     // filtered end time
     if (priv->fd.end_time != 0)
     {
         gchar* edate = qof_print_date (priv->fd.end_time);
-        text_end = g_strdup_printf ("%s %s", _ ("End Date:"), edate);
+        t_list = g_list_prepend
+            (t_list, g_strdup_printf ("%s %s", _("End Date:"), edate));
         g_free (edate);
     }
 
     // filtered match items
-    if (priv->fd.cleared_match != 31)
+    if (priv->fd.cleared_match != CLEARED_ALL)
     {
-        gchar* show = NULL;
-        gchar* hide = NULL;
+        GList *show = NULL;
+        GList *hide = NULL;
 
         gpp_update_match_filter_text (priv->fd.cleared_match, 0x01, _ ("Unreconciled"),
                                       &show, &hide);
@@ -3478,62 +3459,42 @@ gnc_plugin_page_register_set_filter_tooltip (GncPluginPageRegister* page)
         gpp_update_match_filter_text (priv->fd.cleared_match, 0x10, _ ("Voided"),
                                       &show, &hide);
 
-        if (show == NULL)
-            text_cleared = g_strconcat (_ ("Hide:"), " ", hide, NULL);
-        else
-            text_cleared = g_strconcat (_ ("Show:"), " ", show, "\n", _ ("Hide:"), " ",
-                                        hide, NULL);
+        show = g_list_reverse (show);
+        hide = g_list_reverse (hide);
 
-        g_free (show);
-        g_free (hide);
-    }
-    // create the tooltip based on created text variables
-    if ((text_start != NULL) || (text_end != NULL) || (text_cleared != NULL))
-    {
-        if (text_start != NULL)
-            text = g_strconcat (text_header, "\n", text_start, NULL);
-
-        if (text_end != NULL)
+        if (show)
         {
-            if (text == NULL)
-                text = g_strconcat (text_header, "\n", text_end, NULL);
-            else
-            {
-                gchar* temp = g_strdup (text);
-                g_free (text);
-                text = g_strconcat (temp, "\n", text_end, NULL);
-                g_free (temp);
-            }
+            char *str = gnc_g_list_stringjoin (show, ", ");
+            t_list = g_list_prepend
+                (t_list, g_strdup_printf ("%s %s", _("Show:"), str));
+            g_free (str);
         }
 
-        if (text_cleared != NULL)
+        if (hide)
         {
-            if (text == NULL)
-                text = g_strconcat (text_header, "\n", text_cleared, NULL);
-            else
-            {
-                gchar* temp = g_strdup (text);
-                g_free (text);
-                text = g_strconcat (temp, "\n", text_cleared, NULL);
-                g_free (temp);
-            }
+            char *str = gnc_g_list_stringjoin (hide, ", ");
+            t_list = g_list_prepend
+                (t_list, g_strdup_printf ("%s %s", _("Hide:"), str));
+            g_free (str);
         }
+
+        g_list_free_full (show, g_free);
+        g_list_free_full (hide, g_free);
     }
+
+    t_list = g_list_reverse (t_list);
+
+    if (t_list)
+        t_list = g_list_prepend (t_list, g_strdup (_("Filter By:")));
+
     // free the existing text if present
     if (priv->gsr->filter_text != NULL)
         g_free (priv->gsr->filter_text);
 
     // set the tooltip text variable in the gsr
-    priv->gsr->filter_text = g_strdup (text);
-
-    if (text_start)
-        g_free (text_start);
-    if (text_end)
-        g_free (text_end);
-    if (text_cleared)
-        g_free (text_cleared);
-    g_free (text_header);
-    g_free (text);
+    priv->gsr->filter_text = gnc_g_list_stringjoin (t_list, "\n");
+
+    g_list_free_full (t_list, g_free);
 
     LEAVE (" ");
 }

commit 26b009c0f4839b6ea9c89716613ed2033fe165d3
Author: John Ralls <jralls at ceridwen.us>
Date:   Sat Apr 2 16:41:52 2022 -0700

    Bug 798500 - FTBFS (tests failure) on armhf
    
    Ensure the transition_times are correctly aligned for their sizes
    before attempting to copy them into the transitions vector.

diff --git a/libgnucash/engine/gnc-timezone.cpp b/libgnucash/engine/gnc-timezone.cpp
index a150d619e..06aedb297 100644
--- a/libgnucash/engine/gnc-timezone.cpp
+++ b/libgnucash/engine/gnc-timezone.cpp
@@ -446,15 +446,23 @@ namespace IANAParser
 	    auto info_index = info_index_zero + index;
 	    if (transition_size  == 4)
 	    {
-		transitions.push_back(
-		    {*(endian_swap(reinterpret_cast<int32_t*>(&fileblock[fb_index]))),
-			    static_cast<uint8_t>(fileblock[info_index])});
+                int32_t transition_time;
+                // Ensure correct alignment for ARM.
+                memcpy(&transition_time,
+                       endian_swap(reinterpret_cast<int32_t*>(&fileblock[fb_index])),
+                       sizeof(int32_t));
+                auto info = static_cast<uint8_t>(fileblock[info_index]);
+                transitions.push_back({transition_time, info});
 	    }
 	    else
 	    {
-		transitions.push_back(
-		    {*(endian_swap(reinterpret_cast<int64_t*>(&fileblock[fb_index]))),
-			    static_cast<uint8_t>(fileblock[info_index])});
+                int64_t transition_time;
+                // Ensure correct alignment for ARM.
+                memcpy(&transition_time,
+                       endian_swap(reinterpret_cast<int64_t*>(&fileblock[fb_index])),
+                       sizeof(int64_t));
+                auto info = static_cast<uint8_t>(fileblock[info_index]);
+                transitions.push_back({transition_time, info});
 	    }
 	}
 

commit 3125352d5a2339b17628818c8490521b360f7163
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Tue Apr 5 22:29:21 2022 +0800

    Bug 798499 - Expense Chart data tables include extra columns of data
    
    Because all-data was shortened when it exceeds the max-sliecs, but
    list-of-rows and row-totals were not redefined.
    
    Delay list-of-rows and row-totals until after all-data is pruned.

diff --git a/gnucash/report/reports/standard/category-barchart.scm b/gnucash/report/reports/standard/category-barchart.scm
index 283e33bdb..6e35961dd 100644
--- a/gnucash/report/reports/standard/category-barchart.scm
+++ b/gnucash/report/reports/standard/category-barchart.scm
@@ -526,10 +526,8 @@ Please deselect the accounts with negative balances."))
                                  (list-head dates-list (1- (length dates-list)))
                                  dates-list))
                  (date-string-list (map qof-print-date dates-list))
-                 (list-of-rows (apply zip (map cadr all-data)))
-
-                 ;; total amounts
-                 (row-totals (map (cut fold + 0 <>) list-of-rows)))
+                 (list-of-rows #f)
+                 (row-totals #f))
 
             ;; Set chart title, subtitle etc.
             (gnc:html-chart-set-type!
@@ -578,6 +576,8 @@ Please deselect the accounts with negative balances."))
                       (gnc:report-anchor-text
                        (gnc:make-report reportguid options))))))
 
+            (set! list-of-rows (apply zip (map cadr all-data)))
+            (set! row-totals (map (cut fold + 0 <>) list-of-rows))
             (gnc:report-percent-done 92)
 
             (for-each

commit 3df7bdf31ebb0eb9489e48b98acd17ab4c3ca048
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Sun Apr 3 20:58:40 2022 +0200

    Remove icon experiment that accidentally slipped through.

diff --git a/gnucash/gnome/gnc-plugin-page-register.c b/gnucash/gnome/gnc-plugin-page-register.c
index 9e20841f2..ccdaeb4a3 100644
--- a/gnucash/gnome/gnc-plugin-page-register.c
+++ b/gnucash/gnome/gnc-plugin-page-register.c
@@ -400,7 +400,7 @@ static GtkActionEntry gnc_plugin_page_register_actions [] =
         G_CALLBACK (gnc_plugin_page_register_cmd_paste_transaction)
     },
     {
-        "DuplicateTransactionAction", "edit-copy-ours", DUPLICATE_TRANSACTION_LABEL, "",
+        "DuplicateTransactionAction", "edit-copy", DUPLICATE_TRANSACTION_LABEL, "",
         DUPLICATE_TRANSACTION_TIP,
         G_CALLBACK (gnc_plugin_page_register_cmd_duplicate_transaction)
     },

commit 04bafdebf0e7ea9844eac1796d4efe750fdc7e6a
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Sun Apr 3 19:22:56 2022 +0200

    Redo icon handling in cmake
    
    Using globs for file copying prevents cmake from discovering newly added icons.
    Writing rules that explicitly use lists of icons will fix this as a new icon
    in the sources will have to be added to the list and will force reparsing by
    cmake. We have to maintain the lists anyway for our dist target so there's
    actually no extra work involved for the devs.

diff --git a/data/pixmaps/CMakeLists.txt b/data/pixmaps/CMakeLists.txt
index e44e9b465..db331fb1b 100644
--- a/data/pixmaps/CMakeLists.txt
+++ b/data/pixmaps/CMakeLists.txt
@@ -1,40 +1,4 @@
-
-install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DESTINATION ${CMAKE_INSTALL_DATADIR}/gnucash
-    PATTERN Makefile* EXCLUDE
-    PATTERN CMake* EXCLUDE
-    PATTERN CTest* EXCLUDE
-    PATTERN cmake* EXCLUDE
-    PATTERN hicolor EXCLUDE
-)
-file(COPY ${CMAKE_CURRENT_SOURCE_DIR}
-    DESTINATION ${DATADIR_BUILD}/gnucash
-    PATTERN Makefile* EXCLUDE
-    PATTERN CMake* EXCLUDE
-    PATTERN CTest* EXCLUDE
-    PATTERN cmake* EXCLUDE
-    PATTERN hicolor EXCLUDE
-)
-install(
-    DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/hicolor DESTINATION  ${CMAKE_INSTALL_DATADIR}/gnucash/icons
-    REGEX "hicolor/.*/apps/.*" EXCLUDE
-)
-file(
-    COPY ${CMAKE_CURRENT_SOURCE_DIR}/hicolor
-    DESTINATION ${DATADIR_BUILD}/gnucash/icons
-    REGEX "hicolor/.*/apps/.*" EXCLUDE
-)
-
-install(
-    DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/hicolor DESTINATION  ${CMAKE_INSTALL_DATADIR}/icons
-    REGEX "hicolor/.*/actions/.*" EXCLUDE
-)
-file(
-    COPY ${CMAKE_CURRENT_SOURCE_DIR}/hicolor
-    DESTINATION ${DATADIR_BUILD}/icons
-    REGEX "hicolor/.*/actions/.*" EXCLUDE
-)
-
-set(gncpixmap_DATA
+set(gnc_action_icons
     hicolor/16x16/actions/gnc-account.png
     hicolor/24x24/actions/gnc-account.png
     hicolor/16x16/actions/gnc-account-delete.png
@@ -71,12 +35,9 @@ set(gncpixmap_DATA
     hicolor/24x24/actions/gnc-sx-new.png
     hicolor/16x16/actions/gnc-transfer.png
     hicolor/24x24/actions/gnc-transfer.png
-    gnucash-icon.ico
-    gnucash-icon-48x48.bmp
-    gnucash_splash.png
 )
 
-set(gncicon_DATA
+set(gnc_app_icons
     hicolor/16x16/apps/gnucash-icon.png
     hicolor/22x22/apps/gnucash-icon.png
     hicolor/24x24/apps/gnucash-icon.png
@@ -86,12 +47,35 @@ set(gncicon_DATA
     hicolor/96x96/apps/gnucash-icon.png
     hicolor/128x128/apps/gnucash-icon.png
     hicolor/256x256/apps/gnucash-icon.png
+    hicolor/scalable/apps/gnucash-icon.svg
 )
 
-set(gncscalableicon_DATA
-    hicolor/scalable/apps/gnucash-icon.svg
+set(gnc_other_pixmaps
+gnucash-icon.ico
+gnucash-icon-48x48.bmp
+gnucash_splash.png
 )
 
-set_local_dist(pixmaps_DIST_local CMakeLists.txt ${gncpixmap_DATA}
-    ${gncicon_DATA} ${gncscalableicon_DATA})
+install(FILES ${gnc_other_pixmaps} DESTINATION ${CMAKE_INSTALL_DATADIR}/gnucash/pixmaps)
+file(COPY ${gnc_other_pixmaps} DESTINATION ${DATADIR_BUILD}/gnucash/pixmaps)
+
+set(dest_base_dir "gnucash/icons")
+
+function (copy_iconpaths_to_dest iconpaths dest_base_dir)
+    foreach(iconpath ${iconpaths})
+        get_filename_component(dest_rel_dir ${iconpath} DIRECTORY)
+        set(dest_dir "${dest_base_dir}/${dest_rel_dir}")
+        install(FILES ${iconpath} DESTINATION "${CMAKE_INSTALL_DATADIR}/${dest_dir}")
+        file(COPY ${iconpath} DESTINATION "${DATADIR_BUILD}/${dest_dir}")
+    endforeach()
+endfunction()
+
+copy_iconpaths_to_dest ("${gnc_action_icons}" "gnucash/icons")
+copy_iconpaths_to_dest ("${gnc_app_icons}" "icons")
+
+#install(FILES ${gnc_app_icons} DESTINATION ${CMAKE_INSTALL_DATADIR}/icons)
+#file(COPY ${gnc_app_icons} DESTINATION ${DATADIR_BUILD}/icons)
+
+set_local_dist(pixmaps_DIST_local CMakeLists.txt ${gnc_action_icons}
+    ${gnc_other_pixmaps} ${gnc_app_icons})
 set(pixmaps_DIST ${pixmaps_DIST_local} PARENT_SCOPE)
diff --git a/gnucash/gnome/gnc-plugin-page-register.c b/gnucash/gnome/gnc-plugin-page-register.c
index ccdaeb4a3..9e20841f2 100644
--- a/gnucash/gnome/gnc-plugin-page-register.c
+++ b/gnucash/gnome/gnc-plugin-page-register.c
@@ -400,7 +400,7 @@ static GtkActionEntry gnc_plugin_page_register_actions [] =
         G_CALLBACK (gnc_plugin_page_register_cmd_paste_transaction)
     },
     {
-        "DuplicateTransactionAction", "edit-copy", DUPLICATE_TRANSACTION_LABEL, "",
+        "DuplicateTransactionAction", "edit-copy-ours", DUPLICATE_TRANSACTION_LABEL, "",
         DUPLICATE_TRANSACTION_TIP,
         G_CALLBACK (gnc_plugin_page_register_cmd_duplicate_transaction)
     },

commit ee8729dfb62642a78b04347891330fa0a8bc02e5
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sat Apr 2 14:14:50 2022 +0800

    [account.cpp] char* must be freed

diff --git a/libgnucash/engine/Account.cpp b/libgnucash/engine/Account.cpp
index e1e8e0f3d..92f4d2bf5 100644
--- a/libgnucash/engine/Account.cpp
+++ b/libgnucash/engine/Account.cpp
@@ -6025,6 +6025,8 @@ gnc_account_imap_get_info (Account *acc, const char *category)
         qof_instance_foreach_slot (QOF_INSTANCE(acc), IMAP_FRAME, category,
                                    build_non_bayes, &imapInfo);
     }
+    g_free (imapInfo.head);
+    g_free (imapInfo.category);
     return g_list_reverse(imapInfo.list);
 }
 

commit 11458bf8b37f874fa5929d269814e9cb6da570f6
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sat Apr 2 09:08:19 2022 +0800

    [core-utils.i] Use g_dpgettext2 instead of g_dpgettext
    
    avoids using \004 context and msg separator.
    
    Discussed in dae2ea8356931a34e198c83c7dac6858fee61248

diff --git a/bindings/core-utils.i b/bindings/core-utils.i
index f8c9edb3c..6cef88a98 100644
--- a/bindings/core-utils.i
+++ b/bindings/core-utils.i
@@ -171,16 +171,11 @@ extern const char* ngettext (const char *msgid1, const char *msgid2,
 extern const char* gettext(const char*);
 %rename ("gnc:C_gettext") wrap_C_;
 %inline %{
-    /* This helper function wraps the C_() macro in to a function.
-       Direct wrapping results in a compiler error on direct string concatenation
-       inside the macro expansion, so I'm making a detour via g_strconcat */
+    /* This helper function wraps the C_() macro in a function. */
     const char* wrap_C_(const char* context, const char* msg);
     const char* wrap_C_(const char* context, const char* msg)
     {
-        gchar* combo = g_strconcat (context, "\004", msg, NULL);
-        const gchar* translated = g_dpgettext (NULL, combo, strlen (context) + 1);
-        g_free (combo);
-        return translated;
+        return g_dpgettext2 (NULL, context, msg);
     }
 %}
 %rename ("gnc-utf8?") wrap_gnc_utf8_validate;

commit 842c4879a602010c6871257f5712e89175458135
Author: Avi Markovitz <avi.markovitz at gmail.com>
Date:   Thu Mar 31 10:08:05 2022 +0200

    Translation update  by Avi Markovitz <avi.markovitz at gmail.com> using Weblate
    
    po/he.po: 100.0% (5390 of 5390 strings; 0 fuzzy)
    0 failing checks (0.0%)
    Translation: GnuCash/Program (Hebrew)
    Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/he/
    
    Co-authored-by: Avi Markovitz <avi.markovitz at gmail.com>

diff --git a/po/he.po b/po/he.po
index 9c2e56164..cecef789a 100644
--- a/po/he.po
+++ b/po/he.po
@@ -11,7 +11,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug."
 "cgi?product=GnuCash&component=Translations\n"
 "POT-Creation-Date: 2022-03-09 18:00-0800\n"
-"PO-Revision-Date: 2022-03-22 07:56+0000\n"
+"PO-Revision-Date: 2022-03-31 08:08+0000\n"
 "Last-Translator: Avi Markovitz <avi.markovitz at gmail.com>\n"
 "Language-Team: Hebrew <https://hosted.weblate.org/projects/gnucash/gnucash/"
 "he/>\n"
@@ -4930,7 +4930,7 @@ msgstr "ביטול רישום"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:461
 msgid "Pay"
-msgstr "לשלם"
+msgstr "תשלום"
 
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:145
 msgid "E_dit Vendor"

commit b9de15915cdf3fe7aee3355381054c2159e2299c
Author: YTX <ytx.cash at gmail.com>
Date:   Thu Mar 31 10:08:04 2022 +0200

    Translation update  by YTX <ytx.cash at gmail.com> using Weblate
    
    po/zh_CN.po: 99.9% (5389 of 5390 strings; 0 fuzzy)
    0 failing checks (0.0%)
    Translation: GnuCash/Program (Chinese (Simplified))
    Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/zh_Hans/
    
    Translation update  by YTX <ytx.cash at gmail.com> using Weblate
    
    po/zh_CN.po: 99.9% (5389 of 5390 strings; 0 fuzzy)
    0 failing checks (0.0%)
    Translation: GnuCash/Program (Chinese (Simplified))
    Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/zh_Hans/
    
    Co-authored-by: YTX <ytx.cash at gmail.com>

diff --git a/po/zh_CN.po b/po/zh_CN.po
index 4668f9030..6fe92fdcf 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -27,7 +27,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug."
 "cgi?product=GnuCash&component=Translations\n"
 "POT-Creation-Date: 2022-03-09 18:00-0800\n"
-"PO-Revision-Date: 2022-03-23 09:56+0000\n"
+"PO-Revision-Date: 2022-03-31 04:07+0000\n"
 "Last-Translator: YTX <ytx.cash at gmail.com>\n"
 "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
 "gnucash/gnucash/zh_Hans/>\n"
@@ -492,7 +492,7 @@ msgid ""
 "stored, hover over one of the entries in the history menu\n"
 "(File[->Most Recently Used-List]).\n"
 "The full path is displayed in the status bar."
-msgstr ""
+msgstr "状态栏显示历史文件地址。"
 
 #: doc/tip_of_the_day.list.c:24
 msgid ""
@@ -3438,7 +3438,7 @@ msgstr "计划交易列表"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:171
 msgid "Since _Last Run..."
-msgstr "待执行(_L)..."
+msgstr "计划清单(_L)..."
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:172
 msgid "Create Scheduled Transactions since the last time run"
@@ -5665,7 +5665,7 @@ msgstr "交易汇总"
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:68
 #, c-format
 msgid "This transaction is marked read-only with the comment: '%s'"
-msgstr "这笔交易事项被标记只读,原因是:“%s”"
+msgstr "此交易只读,原因:“%s”"
 
 #: gnucash/gnome/gnc-plugin-page-register.c:4089
 #: gnucash/gnome/gnc-split-reg.c:1131
@@ -6199,7 +6199,7 @@ msgstr "剪切交易(_C)"
 #: gnucash/gnome/gnc-split-reg.c:1158
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:66
 msgid "Cannot modify or delete this transaction."
-msgstr "无法修改或删除该交易事项。"
+msgstr "无法修改或删除该交易。"
 
 #: gnucash/gnome/gnc-split-reg.c:1172
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:83
@@ -21890,7 +21890,7 @@ msgid ""
 "\n"
 "'%s'"
 msgstr ""
-"无法修改或删除这笔交易事项。这笔交易事项被标记为只读,因为:\n"
+"无法修改或删除此交易,这笔交易只读,因为:\n"
 "\n"
 "“%s”"
 
@@ -28954,7 +28954,7 @@ msgstr "额外的签账卡"
 
 #: libgnucash/engine/gncInvoice.c:1786
 msgid "Generated from an invoice. Try unposting the invoice."
-msgstr "从发票产生的。试着取消入账此发票。"
+msgstr "商业交易,无法直接删除,可以取消入账。"
 
 #: libgnucash/engine/gncInvoice.c:2216
 msgid " (posted)"

commit e75a2d212f4d6d2d91171d0bc5932390580eb303
Author: ltai0001 <yltaief at gmail.com>
Date:   Thu Mar 31 10:08:04 2022 +0200

    Translation update  by ltai0001 <yltaief at gmail.com> using Weblate
    
    po/ar.po: 73.6% (3972 of 5390 strings; 936 fuzzy)
    472 failing checks (8.7%)
    Translation: GnuCash/Program (Arabic)
    Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ar/
    
    Translation update  by ltai0001 <yltaief at gmail.com> using Weblate
    
    po/glossary/ar.po: 4.6% (10 of 216 strings; 0 fuzzy)
    0 failing checks (0.0%)
    Translation: GnuCash/Glossary (Arabic)
    Translate-URL: https://hosted.weblate.org/projects/gnucash/glossary/ar/
    
    Co-authored-by: ltai0001 <yltaief at gmail.com>

diff --git a/po/ar.po b/po/ar.po
index 47c9048ea..985d11017 100644
--- a/po/ar.po
+++ b/po/ar.po
@@ -9,14 +9,15 @@
 # ashalash1409 <ashalash1409 at hotmail.com>, 2013
 # khadiramd <khadird at yahoo.com>, 2013
 # ButterflyOfFire <ButterflyOfFire at protonmail.com>, 2022.
+# ltai0001 <yltaief at gmail.com>, 2022.
 msgid ""
 msgstr ""
 "Project-Id-Version: GnuCash 4.9-pre1\n"
 "Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug."
 "cgi?product=GnuCash&component=Translations\n"
 "POT-Creation-Date: 2022-03-09 18:00-0800\n"
-"PO-Revision-Date: 2022-03-25 19:09+0000\n"
-"Last-Translator: ButterflyOfFire <ButterflyOfFire at protonmail.com>\n"
+"PO-Revision-Date: 2022-03-29 02:07+0000\n"
+"Last-Translator: ltai0001 <yltaief at gmail.com>\n"
 "Language-Team: Arabic <https://hosted.weblate.org/projects/gnucash/gnucash/"
 "ar/>\n"
 "Language: ar\n"
@@ -678,7 +679,7 @@ msgid ""
 "the Menu key or the Ctrl-Down key combination."
 msgstr ""
 "لرفع قائمة الحسابات في مجال التحويلات في صفحة السجل، اضغط مفتاح القائمة أو "
-"تركيبة المفاتيح تحكم+سهم لأسفل"
+"تركيبة المفاتيح تحكم+سهم لأسفل."
 
 #: doc/tip_of_the_day.list.c:108
 msgid ""
@@ -903,17 +904,14 @@ msgid ""
 msgstr ""
 
 #: gnucash/gnome/assistant-hierarchy.c:1495
-#, fuzzy
 msgid "Please choose the currency to use for new accounts."
-msgstr ""
-"\n"
-"الرجاء اختيار عملة لاستخدامها في الحسابات جديدة."
+msgstr "الرجاء اختيار عملة لاستخدامها في الحسابات جديدة."
 
 #: gnucash/gnome/assistant-hierarchy.c:1540
 #: gnucash/gnome/assistant-hierarchy.c:1559
 #: gnucash/gnome-utils/dialog-utils.c:810
 msgid "New Book Options"
-msgstr "خيارات دفتر جديد."
+msgstr "خيارات دفتر جديد"
 
 #: gnucash/gnome/assistant-loan.cpp:128
 msgid "Taxes"
@@ -1245,7 +1243,7 @@ msgid ""
 "You must provide a unique name for this Billing Term. Your choice \"%s\" is "
 "already in use."
 msgstr ""
-"يجب توفير اسم فريد لهذا الفترة للمطالبات.الاسم المدخل \"%s\" مستخدم من قبل"
+"يجب توفير اسم فريد لهذا الفترة للمطالبات.الاسم المدخل \"%s\" مستخدم من قبل."
 
 #: gnucash/gnome/dialog-billterms.c:531
 #: gnucash/gnome-utils/gnc-date-delta.c:222
@@ -2160,7 +2158,7 @@ msgstr "البحث عن المعاملات"
 #: gnucash/report/trep-engine.scm:944 gnucash/report/trep-engine.scm:1069
 #: gnucash/report/trep-engine.scm:1183
 msgid "Reconciled Date"
-msgstr "تاريخ التسوية "
+msgstr "تاريخ التسوية"
 
 #. Translators: This is a ngettext(3) message, %d is the number of maps missing
 #: gnucash/gnome/dialog-imap-editor.c:363
@@ -2420,8 +2418,8 @@ msgid ""
 "One or more selected invoices have already been posted.\n"
 "Re-check your selection."
 msgstr ""
-"يوجد فاتورة واحدة أو أكثر قد تم ترحيلها إلى الأستاذ العام\n"
-"أعد تحديد خياراتك"
+"يوجد فاتورة واحدة أو أكثر قد تم ترحيلها إلى الأستاذ العام.\n"
+"أعد تحديد خياراتك."
 
 #: gnucash/gnome/dialog-invoice.c:3257
 msgid "Do you really want to post these invoices?"
@@ -2636,11 +2634,11 @@ msgstr "مطالبات الواجب تذكرها"
 
 #: gnucash/gnome/dialog-job.c:139
 msgid "The Job must be given a name."
-msgstr "هذه الوظيفة يجب أن تعطى اسم"
+msgstr "هذه الوظيفة يجب أن تعطى اسم."
 
 #: gnucash/gnome/dialog-job.c:149
 msgid "You must choose an owner for this job."
-msgstr "يجب عليك إختيار صاحب هذه الوظيفة"
+msgstr "يجب عليك إختيار صاحب هذه الوظيفة."
 
 #: gnucash/gnome/dialog-job.c:157
 #, fuzzy
@@ -2747,7 +2745,7 @@ msgstr "المجموعات في حساب %s"
 
 #: gnucash/gnome/dialog-order.c:171
 msgid "The Order must be given an ID."
-msgstr "يجب ان يعطى الطلب معرف للطلب"
+msgstr "يجب ان يعطى الطلب معرف للطلب."
 
 #: gnucash/gnome/dialog-order.c:278
 msgid "The Order must have at least one Entry."
@@ -2969,9 +2967,8 @@ msgid "Are you sure you want to replace the existing price?"
 msgstr "هل أنت متأكد أنك تريد حذف السعر المحدد؟"
 
 #: gnucash/gnome/dialog-price-editor.c:232
-#, fuzzy
 msgid "Replace price?"
-msgstr "الأسعار المسجلة."
+msgstr "الأسعار المسجلة؟"
 
 #: gnucash/gnome/dialog-price-editor.c:238
 msgid "_Replace"
@@ -2979,11 +2976,11 @@ msgstr ""
 
 #: gnucash/gnome/dialog-price-editor.c:269
 msgid "You must select a Security."
-msgstr "حدد الأمان"
+msgstr "من المفروض ان تحدد الأمان."
 
 #: gnucash/gnome/dialog-price-editor.c:274
 msgid "You must select a Currency."
-msgstr "إختر العملة"
+msgstr "إختر العملة."
 
 #: gnucash/gnome/dialog-price-editor.c:288
 #: gnucash/gnome-utils/dialog-transfer.c:1717
@@ -3126,12 +3123,12 @@ msgstr "لقد تغيرت العملية المجدولة. هل أنت متأك
 #: gnucash/gnome/dialog-sx-editor2.c:636
 #, c-format
 msgid "Couldn't parse credit formula for split \"%s\"."
-msgstr "لا يمكن تحليل صيغة الائتمان للتقسيم %s"
+msgstr "لا يمكن تحليل صيغة الائتمان للتقسيم %s."
 
 #: gnucash/gnome/dialog-sx-editor2.c:658
 #, c-format
 msgid "Couldn't parse debit formula for split \"%s\"."
-msgstr "لا يمكن تحليل صيغة الخصم للتقسيم %s"
+msgstr "لا يمكن تحليل صيغة الخصم للتقسيم %s."
 
 #: gnucash/gnome/dialog-sx-editor2.c:691 gnucash/gnome/dialog-sx-editor.c:874
 #: gnucash/gnome/dialog-sx-from-trans.c:261
@@ -3219,7 +3216,7 @@ msgstr "المعاملات المجدولة مع متغيرات أو عدة عم
 #: gnucash/gnome/dialog-sx-editor.c:675
 #, c-format
 msgid "Couldn't parse %s for split \"%s\"."
-msgstr "لا يمكن تحليل %s للعملية \"%s\""
+msgstr "لا يمكن تحليل %s للعملية \"%s\"."
 
 #: gnucash/gnome/dialog-sx-editor.c:739
 #, c-format
@@ -3338,11 +3335,11 @@ msgstr "المعاملات التي تم إنشاؤها"
 
 #: gnucash/gnome/dialog-tax-info.c:287
 msgid "Last Valid Year: "
-msgstr "اخر سنة صالحة:"
+msgstr "اخر سنة صالحة: "
 
 #: gnucash/gnome/dialog-tax-info.c:288
 msgid "Form Line Data: "
-msgstr "نموذج خط البيانات:"
+msgstr "نموذج خط البيانات: "
 
 #. Translators: Tax Code
 #: gnucash/gnome/dialog-tax-info.c:290
@@ -9485,7 +9482,7 @@ msgstr "الهاتف"
 #: gnucash/register/ledger-core/split-register.c:2555
 #: gnucash/register/ledger-core/split-register.c:2581
 msgid "Online"
-msgstr "على الإنترنت"
+msgstr "عبر الإنترنت"
 
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2864
 #: gnucash/register/ledger-core/split-register.c:2557
diff --git a/po/glossary/ar.po b/po/glossary/ar.po
index c3e443d6d..3911cfae4 100644
--- a/po/glossary/ar.po
+++ b/po/glossary/ar.po
@@ -1,15 +1,15 @@
 # SOME DESCRIPTIVE TITLE.
 # Copyright (C) YEAR Free Software Foundation, Inc.
 # "Frank H. Ellenberger" <frank.h.ellenberger at gmail.com>, 2013
-#
+# ltai0001 <yltaief at gmail.com>, 2022.
 msgid ""
 msgstr ""
 "Project-Id-Version: GnuCash 4.8\n"
-"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
-"product=GnuCash&component=Translations\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug."
+"cgi?product=GnuCash&component=Translations\n"
 "POT-Creation-Date: 2021-12-05 20:11+0100\n"
-"PO-Revision-Date: 2022-01-02 22:54+0000\n"
-"Last-Translator: Anonymous <noreply at weblate.org>\n"
+"PO-Revision-Date: 2022-03-29 02:07+0000\n"
+"Last-Translator: ltai0001 <yltaief at gmail.com>\n"
 "Language-Team: Arabic <https://hosted.weblate.org/projects/gnucash/glossary/"
 "ar/>\n"
 "Language: ar\n"
@@ -18,7 +18,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
 "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
-"X-Generator: Weblate 4.10.1\n"
+"X-Generator: Weblate 4.12-dev\n"
 
 #. "English Definition (Dear translator: This file will never be visible to the user! It should only serve as a tool for you, the translator. Nothing more.)"
 msgid "Term (Dear translator: This file will never be visible to the user!)"
@@ -258,7 +258,7 @@ msgstr ""
 
 #. "An estimate or plan of the money available to somebody and how it will be spent over a period of time."
 msgid "Budget"
-msgstr ""
+msgstr "الميزانية"
 
 #. "-"
 msgid "business (adjective)"
@@ -318,7 +318,7 @@ msgstr ""
 
 #. "-"
 msgid "Credit Card"
-msgstr ""
+msgstr "بطاقة الائتمان"
 
 #. "A transfer of money direct from one bank account to another, without using a cheque"
 msgid "credit transfer"
@@ -334,7 +334,7 @@ msgstr ""
 
 #. "Custom print format (i.e. according to the user's wishes) as opposed to a template choice."
 msgid "Custom"
-msgstr ""
+msgstr "مخصص"
 
 #. "Compact, well-structured presentation of informations. See https://en.wikipedia.org/wiki/Dashboard_(business)"
 msgid "dashboard"
@@ -346,7 +346,7 @@ msgstr ""
 
 #. "A specific numbered day of the month"
 msgid "Date"
-msgstr ""
+msgstr "تاريخ"
 
 #. "DD/MM/YY or MM/DD/YY or something else"
 msgid "date format"
@@ -498,7 +498,7 @@ msgstr ""
 
 #. "A particular collection of items that were bought in one transaction. A lot is typically formed when the item is bought, and is closed when the item is sold out. Needed e.g. for U.S. tax purposes."
 msgid "Lot"
-msgstr ""
+msgstr "مجموعة"
 
 #. "Combine two books into one (see book)."
 msgid "merge, to"
@@ -518,7 +518,7 @@ msgstr ""
 
 #. "One textfield per split that should help you remember what this split was about."
 msgid "Memo"
-msgstr ""
+msgstr "مذكرة"
 
 #. "(a) An agreement by which money is lent by a bank for buying a house or other property, the property being the security. (b) A sum of money lent in this way."
 msgid "Mortgage"
@@ -646,7 +646,7 @@ msgstr ""
 
 #. "OBSOLETE. This report was renamed to 'income statement' on 2004-07-13. Old definition: A list that shows the amount of money spent compared with the amount earned by a business in a particular period"
 msgid "Profit & Loss"
-msgstr ""
+msgstr "الأرباح والخسائر"
 
 #. "-"
 msgid "quick-fill"
@@ -706,7 +706,7 @@ msgstr ""
 
 #. "name of an equity account (?); to be distinguished from the opening balance."
 msgid "Retained Earnings"
-msgstr ""
+msgstr "الأرباح المحتجزة"
 
 #. "Create a new transaction that is the inverse of the old one.  When you add the two together they completely cancel out.  Accounts use this instead of voiding transactions, usually because the prior month has been closed and can no longer be changed, or the entire accounting system is 'write only'."
 msgid "reverse transaction, to (Action in the register)"
@@ -875,7 +875,7 @@ msgid "due"
 msgstr ""
 
 msgid "Online"
-msgstr ""
+msgstr "عبر الإنترنت"
 
 msgid "Direct Debit"
-msgstr ""
+msgstr "خصم من الحساب مباشرة"

commit b6d5cedd325096f322ab77f997263fed8e9a05ae
Merge: 9a50be4c5 03e5d710f
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Thu Mar 31 20:18:04 2022 +0800

    Merge branch 'maint-after-string-thaw' into maint #1295


commit 9a50be4c5d69e4407d5ce563ebd3ebf1816bb314
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun Mar 27 19:45:04 2022 -0700

    [QIF import] fix misplaced paren.

diff --git a/gnucash/import-export/qif-imp/qif-dialog-utils.scm b/gnucash/import-export/qif-imp/qif-dialog-utils.scm
index a297a4341..1e8500c27 100644
--- a/gnucash/import-export/qif-imp/qif-dialog-utils.scm
+++ b/gnucash/import-export/qif-imp/qif-dialog-utils.scm
@@ -741,12 +741,12 @@
                           ;; compatible with the QIF type?
                           (and (string=? s (caddr elt))
                                (not (and (string? qif-type)
-                                         (not (currency_ns? (cadr elt))
+                                         (not (currency_ns? (cadr elt)))
                                          (or (string-ci=? qif-type "stock")
                                              (string-ci=? qif-type "etf")
                                              (string-ci=? qif-type "mutual fund")
                                              (string-ci=? qif-type "index")
-)))))
+))))
                         prefs)
                    #f))))
         ;; If a preferences match was found, use its namespace.

commit be8f798fca8db57960334f62272d307c33254868
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun Mar 27 09:29:55 2022 -0700

    Fix wrong GNC-COMMODITY-NS-ISO4217

diff --git a/gnucash/import-export/qif-imp/qif-dialog-utils.scm b/gnucash/import-export/qif-imp/qif-dialog-utils.scm
index b7dd6a7c6..a297a4341 100644
--- a/gnucash/import-export/qif-imp/qif-dialog-utils.scm
+++ b/gnucash/import-export/qif-imp/qif-dialog-utils.scm
@@ -727,7 +727,7 @@
   (define (currency_ns? ns)
     (or (string=? (GNC-COMMODITY-NS-CURRENCY) ns)
         (string=? (GNC-COMMODITY-NS-LEGACY) ns)
-        (string=? (GNC-COMMODITY-NS-ISO4217) ns)))
+        (string=? (GNC-COMMODITY-NS-ISO) ns)))
 
   ;; Guess a namespace based on the symbol alone.
   (define (guess-by-symbol s)

commit 03e5d710f68a01d5444a7bc1d0eb7247eb2426b4
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Mon Mar 14 18:44:35 2022 +0800

    [assistant-stock-transaction] better Dr/Cr imbalance error message

diff --git a/gnucash/gnome/assistant-stock-transaction.cpp b/gnucash/gnome/assistant-stock-transaction.cpp
index 636bcaed0..8b6b7b919 100644
--- a/gnucash/gnome/assistant-stock-transaction.cpp
+++ b/gnucash/gnome/assistant-stock-transaction.cpp
@@ -751,7 +751,17 @@ refresh_page_finish (StockTransactionInfo *info)
     }
 
     if (!gnc_numeric_equal (debit, credit))
-        add_error_str (errors, N_("Debits and credits are not balanced"));
+    {
+        auto imbalance_str = N_("Total Debits of %s does not balance with total Credits of %s.");
+        auto print_info = gnc_commodity_print_info (info->currency, true);
+        auto debit_str = g_strdup (xaccPrintAmount (debit, print_info));
+        auto credit_str = g_strdup (xaccPrintAmount (credit, print_info));
+        auto error_str = g_strdup_printf (_(imbalance_str), debit_str, credit_str);
+        errors.emplace_back (error_str);
+        g_free (error_str);
+        g_free (credit_str);
+        g_free (debit_str);
+    }
 
     if (errors.empty())
     {



Summary of changes:
 CMakeLists.txt                                     |   2 +-
 bindings/core-utils.i                              |   9 +-
 bindings/guile/gnc-kvp-guile.cpp                   |  63 +++-
 bindings/guile/test/CMakeLists.txt                 |   1 +
 bindings/guile/test/test-scm-kvpvalue.scm          |  68 ++++
 cmake/configure-appdata.cmake                      |   2 +-
 common/cmake_modules/GncAddSchemeTargets.cmake     |   4 +-
 common/cmake_modules/GncAddSwigCommand.cmake       |   4 +-
 common/debug/valgrind/valgrind-libgda.supp         |   2 +-
 common/test-core/test-stuff.h                      |   2 +-
 common/test-core/unittest-support.h                |   2 +-
 contrib/rapid2gnucash.py                           |   4 +-
 data/pixmaps/CMakeLists.txt                        |  74 ++--
 doc/examples/taxreport.gnucash                     |   6 +-
 gnucash/gnome-utils/gnc-cell-view.c                |   2 +-
 gnucash/gnome-utils/gnc-date-edit.c                |   2 +-
 gnucash/gnome-utils/gnc-frequency.h                |   2 +-
 gnucash/gnome-utils/gnc-main-window.cpp            |   2 +-
 gnucash/gnome/assistant-stock-transaction.cpp      |  12 +-
 gnucash/gnome/dialog-print-check.c                 |   2 +-
 gnucash/gnome/dialog-sx-editor.c                   |   4 +-
 gnucash/gnome/gnc-plugin-page-register.c           | 163 +++------
 gnucash/gschemas/pref_transformations.xml          |   2 +-
 gnucash/import-export/aqb/gnc-ab-utils.c           |  20 +-
 gnucash/import-export/import-backend.c             |   2 +-
 gnucash/import-export/import-main-matcher.c        |   2 +-
 gnucash/import-export/qif-imp/qif-dialog-utils.scm |   6 +-
 .../qif-imp/test/test-qif-merge-groups.scm         |   2 +-
 gnucash/python/pycons/pycons                       |   4 +-
 gnucash/register/ledger-core/gncEntryLedger.c      |  16 -
 gnucash/register/ledger-core/split-register.c      |   2 +-
 gnucash/report/reports/standard/balsheet-pnl.scm   |  33 +-
 .../report/reports/standard/category-barchart.scm  |   8 +-
 gnucash/report/reports/standard/invoice.scm        |   4 +-
 libgnucash/app-utils/gnc-ui-util.h                 |   4 +-
 .../backend/xml/test/test-files/xml1/abcall.gml    |   2 +-
 .../backend/xml/test/test-files/xml2/abcall.gml2   |   2 +-
 libgnucash/engine/Account.cpp                      |   2 +
 libgnucash/engine/Scrub.c                          |   2 +-
 libgnucash/engine/gnc-numeric.cpp                  |   6 +-
 libgnucash/engine/gnc-timezone.cpp                 |  20 +-
 libgnucash/engine/kvp-frame.cpp                    |   2 +
 libgnucash/engine/kvp-frame.hpp                    |   3 +
 libgnucash/engine/policy-p.h                       |   2 +-
 libgnucash/engine/qofquery.h                       |   2 +-
 libgnucash/engine/qofutil.h                        |   1 -
 libgnucash/engine/test/gtest-gnc-datetime.cpp      |   2 +-
 po/ar.po                                           | 376 +++++++++------------
 po/es.po                                           |  93 ++---
 po/glossary/ar.po                                  |  32 +-
 po/glossary/hu.po                                  |  12 +-
 po/glossary/pl.po                                  |  15 +-
 po/he.po                                           |   4 +-
 po/hu.po                                           | 115 +++----
 po/pl.po                                           |  92 ++---
 po/zh_CN.po                                        |  22 +-
 util/ci/actions/archlinux-test/Dockerfile          |   2 +-
 util/ci/actions/archlinux-test/entrypoint.sh       |   1 +
 58 files changed, 654 insertions(+), 693 deletions(-)
 create mode 100644 bindings/guile/test/test-scm-kvpvalue.scm



More information about the gnucash-changes mailing list